| 2017-07-05 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [WTF] Clean up StringStatics.cpp by using LazyNeverDestroyed<> for Atoms |
| https://bugs.webkit.org/show_bug.cgi?id=174150 |
| |
| Reviewed by Mark Lam. |
| |
| * Modules/mediacontrols/MediaControlsHost.cpp: |
| (WebCore::MediaControlsHost::captionDisplayMode): |
| * Modules/mediastream/RTCDataChannel.cpp: |
| (WebCore::RTCDataChannel::binaryType): |
| * accessibility/AXObjectCache.cpp: |
| (WebCore::createFromRenderer): |
| * accessibility/AccessibilityMediaControls.cpp: |
| (WebCore::AccessibilityMediaControl::controlTypeName): |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::language): |
| (WebCore::AccessibilityObject::defaultLiveRegionStatusForRole): |
| (WebCore::AccessibilityObject::actionVerb): |
| (WebCore::AccessibilityObject::getAttribute): |
| (WebCore::AccessibilityObject::placeholderValue): |
| * accessibility/AccessibilityObject.h: |
| (WebCore::AccessibilityObject::accessKey): |
| (WebCore::AccessibilityObject::ariaLiveRegionRelevant): |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::accessKey): |
| (WebCore::AccessibilityRenderObject::actionVerb): |
| * bindings/js/JSCustomElementInterface.cpp: |
| (WebCore::JSCustomElementInterface::constructElementWithFallback): |
| * bindings/js/JSCustomElementRegistryCustom.cpp: |
| (WebCore::JSCustomElementRegistry::define): |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateDefaultValue): |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomicStringBody): |
| (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomicStringIsNullBody): |
| (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomicStringIsEmptyStringBody): |
| * css/CSSPageRule.cpp: |
| (WebCore::CSSPageRule::selectorText): |
| * css/CSSPrimitiveValue.cpp: |
| (WebCore::valueName): |
| * css/CSSSelector.cpp: |
| (WebCore::simpleSelectorSpecificityInternal): |
| (WebCore::CSSSelector::specificityForPage): |
| (WebCore::CSSSelector::RareData::RareData): |
| * css/CSSSelector.h: |
| (WebCore::CSSSelector::argument): |
| * css/CSSSelectorList.cpp: |
| (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()): |
| * css/PageRuleCollector.cpp: |
| (WebCore::checkPageSelectorComponents): |
| * css/RuleSet.cpp: |
| (WebCore::computeMatchBasedOnRuleHash): |
| (WebCore::RuleSet::addRule): |
| * css/SelectorChecker.cpp: |
| (WebCore::tagMatches): |
| * css/SelectorFilter.cpp: |
| (WebCore::collectDescendantSelectorIdentifierHashes): |
| * css/StyleBuilderConverter.h: |
| (WebCore::StyleBuilderConverter::convertStringOrAuto): |
| (WebCore::StyleBuilderConverter::convertStringOrNone): |
| * css/StyleBuilderCustom.h: |
| (WebCore::StyleBuilderCustom::applyValueWebkitLocale): |
| (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle): |
| (WebCore::StyleBuilderCustom::applyValueContent): |
| (WebCore::StyleBuilderCustom::applyValueAlt): |
| * css/StyleSheetContents.cpp: |
| (WebCore::StyleSheetContents::StyleSheetContents): |
| (WebCore::StyleSheetContents::namespaceURIFromPrefix): |
| * css/makeprop.pl: |
| * css/parser/CSSParserImpl.cpp: |
| (WebCore::CSSParserImpl::parsePageSelector): |
| * css/parser/CSSSelectorParser.cpp: |
| (WebCore::CSSSelectorParser::consumeCompoundSelector): |
| (WebCore::CSSSelectorParser::consumeName): |
| (WebCore::CSSSelectorParser::consumeAttribute): |
| (WebCore::CSSSelectorParser::defaultNamespace): |
| (WebCore::CSSSelectorParser::determineNamespace): |
| (WebCore::CSSSelectorParser::prependTypeSelectorIfNeeded): |
| * cssjit/SelectorCompiler.cpp: |
| (WebCore::SelectorCompiler::attributeNameTestingRequiresNamespaceRegister): |
| (WebCore::SelectorCompiler::equalTagNames): |
| (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeMatching): |
| (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasTagName): |
| * dom/Attr.cpp: |
| (WebCore::Attr::setPrefix): |
| (WebCore::Attr::attachToElement): |
| * dom/Attribute.h: |
| (WebCore::Attribute::nameMatchesFilter): |
| * dom/ConstantPropertyMap.cpp: |
| (WebCore::ConstantPropertyMap::nameForProperty): |
| * dom/ContainerNode.cpp: |
| (WebCore::ContainerNode::getElementsByTagName): |
| (WebCore::ContainerNode::getElementsByTagNameNS): |
| * dom/CustomElementReactionQueue.cpp: |
| (WebCore::CustomElementReactionQueue::enqueuePostUpgradeReactions): |
| * dom/DatasetDOMStringMap.cpp: |
| (WebCore::convertPropertyNameToAttributeName): |
| * dom/Document.cpp: |
| (WebCore::createUpgradeCandidateElement): |
| (WebCore::Document::createElementForBindings): |
| (WebCore::Document::importNode): |
| (WebCore::Document::hasValidNamespaceForElements): |
| (WebCore::Document::processBaseElement): |
| (WebCore::Document::dir): |
| (WebCore::Document::bgColor): |
| (WebCore::Document::fgColor): |
| (WebCore::Document::alinkColor): |
| (WebCore::Document::linkColorForBindings): |
| (WebCore::Document::vlinkColor): |
| * dom/Document.h: |
| * dom/Element.cpp: |
| (WebCore::Element::setBooleanAttribute): |
| (WebCore::Element::synchronizeAttribute): |
| (WebCore::Element::getAttribute): |
| (WebCore::Element::getAttributeNS): |
| (WebCore::Element::setAttribute): |
| (WebCore::Element::parserSetAttributes): |
| (WebCore::Element::didMoveToNewDocument): |
| (WebCore::Element::setPrefix): |
| (WebCore::Element::insertedInto): |
| (WebCore::Element::removedFrom): |
| (WebCore::Element::removeAttributeInternal): |
| (WebCore::Element::addAttributeInternal): |
| (WebCore::Element::removeAttributeNS): |
| (WebCore::Element::getAttributeNodeNS): |
| (WebCore::Element::hasAttributeNS): |
| (WebCore::Element::computeInheritedLanguage): |
| (WebCore::Element::updateNameForDocument): |
| (WebCore::Element::updateIdForDocument): |
| (WebCore::Element::didAddAttribute): |
| (WebCore::Element::didRemoveAttribute): |
| (WebCore::Element::cloneAttributesFromElement): |
| * dom/Element.h: |
| (WebCore::Element::attributeWithoutSynchronization): |
| (WebCore::Element::idForStyleResolution): |
| (WebCore::Element::getIdAttribute): |
| (WebCore::Element::getNameAttribute): |
| * dom/EventTarget.cpp: |
| (WebCore::legacyType): |
| * dom/MutationRecord.h: |
| (WebCore::MutationRecord::attributeName): |
| (WebCore::MutationRecord::attributeNamespace): |
| * dom/NamedNodeMap.cpp: |
| (WebCore::NamedNodeMap::removeNamedItemNS): |
| * dom/Node.cpp: |
| (WebCore::Node::prefix): |
| (WebCore::Node::localName): |
| (WebCore::Node::namespaceURI): |
| (WebCore::Node::checkSetPrefix): |
| (WebCore::locateDefaultNamespace): |
| (WebCore::Node::isDefaultNamespace): |
| (WebCore::Node::lookupNamespaceURI): |
| (WebCore::locateNamespacePrefix): |
| (WebCore::Node::lookupPrefix): |
| * dom/NodeRareData.h: |
| (WebCore::NodeListsNodeData::addCachedTagCollectionNS): |
| (WebCore::NodeListsNodeData::addCachedCollection): |
| (WebCore::NodeListsNodeData::cachedCollection): |
| (WebCore::NodeListsNodeData::removeCacheWithAtomicName): |
| (WebCore::NodeListsNodeData::removeCachedTagCollectionNS): |
| (WebCore::NodeListsNodeData::removeCachedCollection): |
| * dom/PseudoElement.cpp: |
| (WebCore::pseudoElementTagName): |
| * dom/QualifiedName.cpp: |
| (WebCore::QualifiedName::init): |
| (WebCore::nullQName): |
| (WebCore::createQualifiedName): |
| * dom/QualifiedName.h: |
| (WebCore::QualifiedName::hasPrefix): |
| * dom/SelectorQuery.cpp: |
| (WebCore::SelectorDataList::executeSingleTagNameSelectorData): |
| * dom/SlotAssignment.cpp: |
| (WebCore::slotNameFromAttributeValue): |
| * dom/SlotAssignment.h: |
| (WebCore::SlotAssignment::defaultSlotName): |
| (WebCore::ShadowRoot::didRemoveAllChildrenOfShadowHost): |
| (WebCore::ShadowRoot::didChangeDefaultSlot): |
| * dom/TagCollection.cpp: |
| (WebCore::TagCollection::TagCollection): |
| (WebCore::HTMLTagCollection::HTMLTagCollection): |
| * dom/TagCollection.h: |
| (WebCore::TagCollectionNS::elementMatches): |
| * dom/make_names.pl: |
| (printNamesCppFile): |
| (printDefinitions): |
| (printFactoryCppFile): |
| * editing/CompositeEditCommand.cpp: |
| (WebCore::CompositeEditCommand::removeNodeAttribute): |
| * editing/Editing.cpp: |
| (WebCore::createHTMLElement): |
| * editing/MarkupAccumulator.cpp: |
| (WebCore::MarkupAccumulator::serializeNodesWithNamespaces): |
| (WebCore::MarkupAccumulator::shouldAddNamespaceElement): |
| (WebCore::MarkupAccumulator::shouldAddNamespaceAttribute): |
| (WebCore::MarkupAccumulator::appendNamespace): |
| (WebCore::MarkupAccumulator::appendOpenTag): |
| (WebCore::MarkupAccumulator::appendAttribute): |
| * editing/gtk/EditorGtk.cpp: |
| (WebCore::elementURL): |
| * editing/markup.cpp: |
| (WebCore::AttributeChange::AttributeChange): |
| * html/Autocapitalize.cpp: |
| (WebCore::stringForAutocapitalizeType): |
| * html/Autofill.cpp: |
| (WebCore::AutofillData::createFromHTMLFormControlElement): |
| * html/DOMTokenList.h: |
| (WebCore::DOMTokenList::item): |
| * html/FormAssociatedElement.cpp: |
| (WebCore::FormAssociatedElement::name): |
| * html/HTMLButtonElement.cpp: |
| (WebCore::HTMLButtonElement::formControlType): |
| * html/HTMLDetailsElement.cpp: |
| (WebCore::HTMLDetailsElement::toggleOpen): |
| * html/HTMLDocument.cpp: |
| (WebCore::HTMLDocument::isCaseSensitiveAttribute): |
| * html/HTMLElement.cpp: |
| (WebCore::HTMLElement::eventNameForEventHandlerAttribute): |
| (WebCore::toValidDirValue): |
| * html/HTMLImageElement.cpp: |
| (WebCore::HTMLImageElement::bestFitSourceFromPictureElement): |
| * html/HTMLInputElement.cpp: |
| (WebCore::HTMLInputElement::name): |
| (WebCore::HTMLInputElement::updateType): |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::doesHaveAttribute): |
| * html/HTMLOptionElement.cpp: |
| (WebCore::HTMLOptionElement::createForJSConstructor): |
| * html/HTMLParamElement.cpp: |
| (WebCore::HTMLParamElement::name): |
| * html/HTMLSelectElement.cpp: |
| (WebCore::HTMLSelectElement::setMultiple): |
| * html/HTMLTableCellElement.cpp: |
| (WebCore::HTMLTableCellElement::scope): |
| * html/HTMLTrackElement.cpp: |
| (WebCore::HTMLTrackElement::mediaElementCrossOriginAttribute): |
| * html/LabelableElement.cpp: |
| (WebCore::LabelableElement::labels): |
| * html/LabelsNodeList.cpp: |
| (WebCore::LabelsNodeList::~LabelsNodeList): |
| * html/MediaController.cpp: |
| (MediaController::playbackState): |
| (eventNameForReadyState): |
| * html/MediaDocument.cpp: |
| (WebCore::MediaDocumentParser::createDocumentStructure): |
| * html/parser/AtomicHTMLToken.h: |
| (WebCore::AtomicHTMLToken::initializeAttributes): |
| * html/parser/HTMLConstructionSite.cpp: |
| (WebCore::HTMLConstructionSite::createElement): |
| (WebCore::HTMLConstructionSite::createHTMLElementOrFindCustomElementInterface): |
| * html/parser/HTMLParserIdioms.cpp: |
| (WebCore::stripLeadingAndTrailingHTMLSpaces): |
| (WebCore::parseHTMLHashNameReference): |
| * html/parser/HTMLTreeBuilder.cpp: |
| (WebCore::createForeignAttributesMap): |
| * html/track/InbandTextTrack.cpp: |
| (WebCore::InbandTextTrack::InbandTextTrack): |
| * html/track/LoadableTextTrack.cpp: |
| (WebCore::LoadableTextTrack::id): |
| * html/track/TextTrack.cpp: |
| (WebCore::TextTrack::captionMenuOffItem): |
| (WebCore::TextTrack::captionMenuAutomaticItem): |
| * html/track/TrackBase.cpp: |
| (WebCore::MediaTrackBase::setKindInternal): |
| * html/track/VTTRegion.cpp: |
| (WebCore::VTTRegion::scroll): |
| * html/track/WebVTTElement.cpp: |
| (WebCore::nodeTypeToTagName): |
| * html/track/WebVTTElement.h: |
| * html/track/WebVTTToken.h: |
| (WebCore::WebVTTToken::StartTag): |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::clear): |
| * loader/FrameLoader.h: |
| * loader/ImageLoader.cpp: |
| (WebCore::ImageLoader::clearFailedLoadURL): |
| * loader/NavigationAction.h: |
| * loader/PolicyChecker.cpp: |
| (WebCore::PolicyChecker::checkNavigationPolicy): |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::showModalDialog): |
| * page/EventHandler.cpp: |
| (WebCore::eventNameForTouchPointState): |
| * page/FrameTree.cpp: |
| (WebCore::FrameTree::setName): |
| (WebCore::FrameTree::clearName): |
| * page/Page.cpp: |
| (WebCore::Page::groupName): |
| * platform/graphics/ComplexTextController.cpp: |
| (WebCore::ComplexTextController::offsetForPosition): |
| * platform/graphics/FontCache.cpp: |
| (WebCore::FontCache::alternateFamilyName): |
| * platform/graphics/FontDescription.h: |
| (WebCore::FontCascadeDescription::initialLocale): |
| * platform/graphics/FontGenericFamilies.cpp: |
| (WebCore::genericFontFamilyForScript): |
| * platform/graphics/InbandTextTrackPrivate.h: |
| (WebCore::InbandTextTrackPrivate::inBandMetadataTrackDispatchType): |
| * platform/graphics/TrackPrivateBase.h: |
| (WebCore::TrackPrivateBase::id): |
| (WebCore::TrackPrivateBase::label): |
| (WebCore::TrackPrivateBase::language): |
| * platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm: |
| (WebCore::AVTrackPrivateAVFObjCImpl::id): |
| (WebCore::AVTrackPrivateAVFObjCImpl::label): |
| (WebCore::AVTrackPrivateAVFObjCImpl::language): |
| * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h: |
| * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp: |
| (WebCore::InbandTextTrackPrivateAVCF::label): |
| (WebCore::InbandTextTrackPrivateAVCF::language): |
| * platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.cpp: |
| (WebCore::InbandTextTrackPrivateLegacyAVCF::label): |
| (WebCore::InbandTextTrackPrivateLegacyAVCF::language): |
| * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm: |
| (WebCore::InbandTextTrackPrivateAVFObjC::label): |
| (WebCore::InbandTextTrackPrivateAVFObjC::language): |
| * platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm: |
| (WebCore::InbandTextTrackPrivateLegacyAVFObjC::label): |
| (WebCore::InbandTextTrackPrivateLegacyAVFObjC::language): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::metadataType): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive): |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::FontCache::platformAlternateFamilyName): |
| * platform/graphics/cocoa/FontDescriptionCocoa.cpp: |
| (WebCore::FontCascadeDescription::effectiveFamilyAt): |
| * platform/graphics/freetype/FontCacheFreeType.cpp: |
| (WebCore::FontCache::platformAlternateFamilyName): |
| * platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h: |
| (WebCore::InbandMetadataTextTrackPrivateGStreamer::create): |
| * platform/graphics/win/FontCacheWin.cpp: |
| (WebCore::FontCache::platformAlternateFamilyName): |
| * platform/mediastream/AudioTrackPrivateMediaStream.h: |
| * platform/mediastream/RealtimeMediaSourceSettings.cpp: |
| (WebCore::RealtimeMediaSourceSettings::facingMode): |
| * platform/mediastream/VideoTrackPrivateMediaStream.h: |
| * rendering/HitTestResult.cpp: |
| (WebCore::HitTestResult::linkSuggestedFilename): |
| * rendering/InlineTextBox.cpp: |
| (WebCore::InlineTextBox::paint): |
| * rendering/RenderListItem.cpp: |
| (WebCore::RenderListItem::markerText): |
| * rendering/RenderText.cpp: |
| (WebCore::RenderText::previousOffset): |
| (WebCore::RenderText::nextOffset): |
| * rendering/RenderTreeAsText.cpp: |
| (WebCore::RenderTreeAsText::writeRenderObject): |
| * rendering/TextPainter.cpp: |
| (WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded): |
| * rendering/style/RenderStyle.cpp: |
| (WebCore::RenderStyle::textEmphasisMarkString): |
| * rendering/style/RenderStyle.h: |
| (WebCore::RenderStyle::initialHyphenationString): |
| (WebCore::RenderStyle::initialTextEmphasisCustomMark): |
| (WebCore::RenderStyle::initialContentAltText): |
| (WebCore::RenderStyle::initialLineGrid): |
| (WebCore::RenderStyle::initialFlowThread): |
| (WebCore::RenderStyle::initialRegionThread): |
| * style/StyleScope.cpp: |
| (WebCore::Style::Scope::collectActiveStyleSheets): |
| * svg/SVGElement.cpp: |
| (WebCore::SVGElement::getPresentationAttribute): |
| * svg/SVGElement.h: |
| (WebCore::SVGAttributeHashTranslator::hash): |
| * svg/SVGUseElement.cpp: |
| (WebCore::SVGUseElement::transferSizeAttributesToTargetClone): |
| * svg/animation/SVGSMILElement.cpp: |
| (WebCore::SVGSMILElement::constructAttributeName): |
| * testing/MockCDMFactory.cpp: |
| (WebCore::MockCDMInstance::requestLicense): |
| * xml/XMLErrors.cpp: |
| (WebCore::createXHTMLParserErrorHeader): |
| * xml/XPathStep.cpp: |
| (WebCore::XPath::nodeMatchesBasicTest): |
| (WebCore::XPath::Step::nodesInAxis): |
| * xml/parser/XMLDocumentParserLibxml2.cpp: |
| (WebCore::XMLDocumentParser::XMLDocumentParser): |
| (WebCore::handleNamespaceAttributes): |
| (WebCore::handleElementAttributes): |
| |
| 2017-07-05 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] User agent string incorrectly says "iPhone" instead of "iPad" on newer iPads |
| https://bugs.webkit.org/show_bug.cgi?id=174182 |
| <rdar://problem/32868369> |
| |
| Reviewed by Tim Horton. |
| |
| In deviceNameForUserAgent() on iOS, we were forcefully returning "iPhone" if |
| [UIApplication _isClassic] returns true. Update check to return "iPad" if |
| [UIApplication _isClassic] returns true but [UIApplication _classMode] returns |
| UIApplicationSceneClassicModeOriginalPad. |
| |
| * page/ios/UserAgentIOS.mm: |
| (WebCore::isClassicPad): |
| (WebCore::isClassicPhone): |
| (WebCore::osNameForUserAgent): |
| (WebCore::deviceNameForUserAgent): |
| * platform/spi/ios/UIKitSPI.h: |
| |
| 2017-07-05 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| WTF::Thread should have the threads stack bounds. |
| https://bugs.webkit.org/show_bug.cgi?id=173975 |
| |
| Reviewed by Keith Miller. |
| |
| When creating WebThread, we first allocate WebCore::ThreadGlobalData in UI thread |
| and share it with WebThread. |
| The problem is that WebCore::ThreadGlobalData has CachedResourceRequestInitiators. |
| It allocates AtomicString, which requires WTFThreadData. |
| |
| Before this patch, it was OK because WTFThreadData does not touch threading related |
| things except for ThreadSpecific<>. However, after this patch, it touches |
| WTF::Thread::current() which requires WTF::initializeThreading(). |
| |
| In this patch, we call WTF::initializeThreading() before allocating WebCore::ThreadGlobalData. |
| And we also call AtomicString::init() before calling WebCore::ThreadGlobalData since |
| WebCore::ThreadGlobalData allocates AtomicString. |
| |
| This fixes crashes in the iOS web threading environment (UIWebView). |
| |
| * platform/ios/wak/WebCoreThread.mm: |
| (StartWebThread): |
| |
| 2017-07-05 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| CSSFontStyleValue::isItalic seems a bit bogus. |
| https://bugs.webkit.org/show_bug.cgi?id=174149 |
| |
| Reviewed by Tim Horton. |
| |
| Simple typo. |
| |
| Test: editing/execCommand/italicizeByCharacter-normal.html |
| |
| * css/CSSFontStyleValue.h: |
| |
| 2017-07-05 Brady Eidson <beidson@apple.com> |
| |
| Allow navigations in subframes to get a ShouldOpenExternalURLsPolicy of "ShouldAllow". |
| <rdar://problem/22485589> and https://bugs.webkit.org/show_bug.cgi?id=174178 |
| |
| Reviewed by Alex Christensen. |
| |
| Test: loader/navigation-policy/should-open-external-urls/subframe-navigated-programatically-by-main-frame.html |
| |
| This patch introduces a new flag to FrameLoadRequest to track when it is known with certainty that a |
| FrameLoadRequest originates from the main frame. |
| |
| Later, when calculating the final ShouldOpenExternalURLsPolicy, main frames navigating iframes get to propagate |
| their permissions to the iframe. |
| |
| * bindings/js/CommonVM.cpp: |
| (WebCore::lexicalFrameFromCommonVM): Helper to grab the current frame associated with the current JS callstack. |
| * bindings/js/CommonVM.h: |
| |
| * inspector/InspectorFrontendClientLocal.cpp: |
| (WebCore::InspectorFrontendClientLocal::openInNewTab): |
| |
| * inspector/InspectorPageAgent.cpp: |
| (WebCore::InspectorPageAgent::navigate): |
| |
| Add the new flag to FrameLoadRequest (and force almost everybody to explicitly include the flag): |
| * loader/FrameLoadRequest.cpp: |
| (WebCore::FrameLoadRequest::FrameLoadRequest): |
| * loader/FrameLoadRequest.h: |
| (WebCore::FrameLoadRequest::FrameLoadRequest): |
| (WebCore::FrameLoadRequest::navigationInitiatedByMainFrame): |
| |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::urlSelected): |
| (WebCore::FrameLoader::loadURLIntoChildFrame): |
| (WebCore::shouldOpenExternalURLsPolicyToApply): Helper that takes the new flag into account when deciding |
| what the final ShouldOpenExternalURLsPolicy will be. |
| (WebCore::applyShouldOpenExternalURLsPolicyToNewDocumentLoader): |
| (WebCore::FrameLoader::loadURL): |
| (WebCore::FrameLoader::load): |
| (WebCore::FrameLoader::loadWithNavigationAction): |
| (WebCore::FrameLoader::reloadWithOverrideEncoding): |
| (WebCore::FrameLoader::reload): |
| (WebCore::FrameLoader::loadPostRequest): |
| (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): |
| (WebCore::FrameLoader::loadDifferentDocumentItem): |
| (WebCore::createWindow): |
| (WebCore::FrameLoader::applyShouldOpenExternalURLsPolicyToNewDocumentLoader): Deleted. |
| * loader/FrameLoader.h: |
| |
| * loader/FrameLoaderTypes.h: |
| |
| * loader/NavigationAction.h: |
| (WebCore::NavigationAction::navigationInitiatedByMainFrame): |
| * loader/NavigationScheduler.cpp: |
| (WebCore::ScheduledNavigation::ScheduledNavigation): Grab the "initiating frame" at the time the |
| ScheduledNavigation is created, as it dictates the policy we decide later. |
| (WebCore::ScheduledNavigation::navigationInitiatedByMainFrame): |
| (WebCore::NavigationScheduler::scheduleLocationChange): |
| |
| * page/ContextMenuController.cpp: |
| (WebCore::openNewWindow): |
| (WebCore::ContextMenuController::contextMenuItemSelected): |
| |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::createWindow): |
| |
| 2017-07-05 Simon Fraser <simon.fraser@apple.com> |
| |
| Another build fix, for Mac. |
| |
| * platform/graphics/cocoa/IOSurface.mm: |
| (WebCore::IOSurface::surfaceID): |
| |
| 2017-07-05 Simon Fraser <simon.fraser@apple.com> |
| |
| Further attempts to fix the iOS public SDK build. |
| |
| * platform/graphics/cocoa/IOSurface.mm: |
| (WebCore::IOSurface::surfaceID): |
| * platform/spi/cocoa/IOSurfaceSPI.h: |
| |
| 2017-07-05 Don Olmstead <don.olmstead@sony.com> |
| |
| [WinCairo] Consolidate CMake code related to CURL |
| https://bugs.webkit.org/show_bug.cgi?id=170860 |
| |
| Reviewed by Alex Christensen. |
| |
| No new tests. No change in functionality. |
| |
| * PlatformWinCairo.cmake: |
| * platform/Curl.cmake: Added. |
| |
| 2017-07-03 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Remove copy of ICU headers from WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=116407 |
| |
| Reviewed by Alex Christensen. |
| |
| Use WTF's copy of ICU headers. |
| |
| No new tests because there is no behavior change. |
| |
| * Configurations/WebCore.xcconfig: |
| * icu/unicode/bytestream.h: Removed. |
| * icu/unicode/localpointer.h: Removed. |
| * icu/unicode/parseerr.h: Removed. |
| * icu/unicode/platform.h: Removed. |
| * icu/unicode/ptypes.h: Removed. |
| * icu/unicode/putil.h: Removed. |
| * icu/unicode/rep.h: Removed. |
| * icu/unicode/std_string.h: Removed. |
| * icu/unicode/strenum.h: Removed. |
| * icu/unicode/stringpiece.h: Removed. |
| * icu/unicode/ubrk.h: Removed. |
| * icu/unicode/uchar.h: Removed. |
| * icu/unicode/ucnv.h: Removed. |
| * icu/unicode/ucnv_err.h: Removed. |
| * icu/unicode/ucol.h: Removed. |
| * icu/unicode/uconfig.h: Removed. |
| * icu/unicode/ucurr.h: Removed. |
| * icu/unicode/uenum.h: Removed. |
| * icu/unicode/uiter.h: Removed. |
| * icu/unicode/uloc.h: Removed. |
| * icu/unicode/umachine.h: Removed. |
| * icu/unicode/unistr.h: Removed. |
| * icu/unicode/unorm.h: Removed. |
| * icu/unicode/unorm2.h: Removed. |
| * icu/unicode/uobject.h: Removed. |
| * icu/unicode/urename.h: Removed. |
| * icu/unicode/uscript.h: Removed. |
| * icu/unicode/uset.h: Removed. |
| * icu/unicode/ustring.h: Removed. |
| * icu/unicode/utext.h: Removed. |
| * icu/unicode/utf.h: Removed. |
| * icu/unicode/utf16.h: Removed. |
| * icu/unicode/utf8.h: Removed. |
| * icu/unicode/utf_old.h: Removed. |
| * icu/unicode/utypes.h: Removed. |
| * icu/unicode/uvernum.h: Removed. |
| * icu/unicode/uversion.h: Removed. |
| * platform/graphics/FontCache.h: |
| (WebCore::FontDescriptionKey::makeFlagsKey): |
| |
| 2017-07-05 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| When dragging a selection, clearing the selection in dragstart should not crash the web process |
| https://bugs.webkit.org/show_bug.cgi?id=174142 |
| <rdar://problem/33067501> |
| |
| Reviewed by Tim Horton. |
| |
| Currenly, if the page clears the current selection after dragging starts on selected content, the web process |
| will crash while attempting to write pasteboard data for a nonexistent selection. This patch adds a trivial |
| check for this case, bailing if no DHTML dragging data was specified by the page during a selection drag and the |
| selection has been cleared. |
| |
| Also removes some unused code for estimating the bounds of the current selection. On iOS, dragging was actually |
| crashing earlier, in this codepath. However, this information isn't even used anymore, since the drag anchor |
| point is no longer necessary on iOS. |
| |
| Test: DataInteractionTests.DoNotCrashWhenSelectionIsClearedInDragStart |
| |
| * page/DragController.cpp: |
| (WebCore::DragController::startDrag): |
| |
| 2017-07-05 Simon Fraser <simon.fraser@apple.com> |
| |
| Try to fix iOS 10.3 public SDK builds. |
| |
| * platform/spi/cocoa/IOSurfaceSPI.h: |
| |
| 2017-07-05 Zalan Bujtas <zalan@apple.com> |
| |
| REGRESSION (r217522): "Show My Relationship" link in familysearch.org does not work. |
| https://bugs.webkit.org/show_bug.cgi?id=174070 |
| <rdar://problem/32940653> |
| |
| Reviewed by Simon Fraser. |
| |
| Decouple in- and out-of-flow computed position values. Now we match blink's implementation on |
| in-flow values. |
| This also fixes the flickering content while scrolling on hbr.org. |
| |
| Covered by existing test cases. |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::positionOffsetValue): |
| |
| 2017-07-05 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Allow users to log any tracked canvas context |
| https://bugs.webkit.org/show_bug.cgi?id=173397 |
| <rdar://problem/33111581> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Tests: inspector/canvas/resolveCanvasContext-2d.html |
| inspector/canvas/resolveCanvasContext-webgl.html |
| inspector/canvas/resolveCanvasContext-webgl2.html |
| inspector/canvas/resolveCanvasContext-webgpu.html |
| |
| * inspector/InspectorCanvasAgent.h: |
| * inspector/InspectorCanvasAgent.cpp: |
| (WebCore::InspectorCanvasAgent::InspectorCanvasAgent): |
| (WebCore::contextAsScriptValue): |
| (WebCore::InspectorCanvasAgent::resolveCanvasContext): |
| |
| 2017-07-05 Emilio Cobos Álvarez <ecobos@igalia.com> |
| |
| Style sharing check for fullscreen element seems bogus. |
| https://bugs.webkit.org/show_bug.cgi?id=160196 |
| |
| Reviewed by Antti Koivisto. |
| |
| No new tests (no easy way to test this reliably). |
| |
| * style/StyleSharingResolver.cpp: |
| (WebCore::Style::SharingResolver::canShareStyleWithElement): |
| |
| 2017-07-05 Simon Fraser <simon.fraser@apple.com> |
| |
| Add a logging channel for IOSurface allocations |
| https://bugs.webkit.org/show_bug.cgi?id=174167 |
| |
| Reviewed by Tim Horton. |
| |
| Add an "IOSurface" log channel, make IOSurface TextStream-loggable, and log cached |
| and new IOSurface allocations. Do some namespace-related cleanup. |
| |
| * platform/Logging.h: |
| * platform/graphics/cocoa/IOSurface.h: |
| * platform/graphics/cocoa/IOSurface.mm: |
| (WebCore::WebCore::IOSurface::create): |
| (WebCore::WebCore::IOSurface::surfaceID): |
| (WebCore::operator<<): |
| |
| 2017-07-05 Antti Koivisto <antti@apple.com> |
| |
| Low memory notification shouldn't cause style recalc |
| https://bugs.webkit.org/show_bug.cgi?id=173574 |
| <rdar://problem/32616997> |
| |
| Reviewed by Andreas Kling. |
| |
| Patch mostly by Myles. |
| |
| When we receive a low memory warning, we clear the style resolver. Previously, we were using |
| this as an opportunity to also purge the CSSFontSelector. However, purging the font selector |
| is wasteful, since the exact same set of CSSFontFace objects will be recreated as soon as the |
| CSSFontSelector is recreated. It's also harmful because this purge operation causes fonts to |
| be removed from the document's working set, and therefore triggers a relayout. Instead, this |
| call should be softened to only delete any transitory caches the CSSFontSelector owns. |
| |
| We can simply delay the rebuild of the CSSFontSelector to |
| StyleResolver::appendAuthorStyleSheets(), when it's really needed. This way, we can sidestep |
| this whole problem. |
| |
| There's also an added benefit: Now, buildStarted() doesn't have to be idempotent, so we can |
| enforce a stricter calling sequence with ASSERT()s. |
| |
| * css/CSSFontFaceSet.cpp: |
| (WebCore::CSSFontFaceSet::emptyCaches): |
| * css/CSSFontFaceSet.h: |
| * css/CSSFontSelector.cpp: |
| (WebCore::CSSFontSelector::emptyCaches): |
| |
| Add a separate function to clear font selector caches. |
| |
| (WebCore::CSSFontSelector::buildStarted): |
| (WebCore::CSSFontSelector::buildCompleted): |
| (WebCore::CSSFontSelector::addFontFaceRule): |
| (WebCore::CSSFontSelector::fontModified): |
| |
| No need to invalidate while building. |
| |
| (WebCore::CSSFontSelector::fontRangesForFamily): |
| * css/CSSFontSelector.h: |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::StyleResolver): |
| (WebCore::StyleResolver::addCurrentSVGFontFaceRules): |
| |
| Factor into a function from the constructor. |
| |
| (WebCore::StyleResolver::appendAuthorStyleSheets): |
| |
| Font selector build is now started and finished by StyleScope. |
| |
| * css/StyleResolver.h: |
| * dom/Document.cpp: |
| (WebCore::Document::resolveStyle): |
| |
| Call FrameView::styleDidChange() to update any custom scrollbars. |
| This bug was hidden by spurious style recalcs, tested by fast/css/scrollbar-dynamic-style-change.html |
| |
| (WebCore::Document::userAgentShadowTreeStyleResolver): |
| (WebCore::Document::didClearStyleResolver): |
| |
| Don't start the font selector rebuild after clearing the resolver. It would cause style recalc trashing. |
| Instead the build starts when the new resolver is constructed. |
| |
| * page/MemoryRelease.cpp: |
| (WebCore::releaseCriticalMemory): |
| |
| Release font selector caches. |
| |
| * style/StyleScope.cpp: |
| (WebCore::Style::Scope::resolver): |
| |
| 2017-07-05 Brent Fulgham <bfulgham@apple.com> |
| |
| [WK2] Prevent ResourceLoadStatistics from triggering a cascade of read/write events |
| https://bugs.webkit.org/show_bug.cgi?id=174062\ |
| <rdar://problem/33086744> |
| |
| Reviewed by Chris Dumez. |
| |
| Treat DISPATCH_VNODE_DELETE, DISPATCH_VNODE_RENAME, and DISPATCH_VNODE_REVOKE as equivalent |
| "file is unavailable" events, and act as though the file was deleted. Don't listen for |
| DISPATCH_VNODE_EXTEND, since we always get a DISPATCH_VNODE_WRITE as well, and we only |
| want to read once. |
| |
| Finally, add some logging to support future investigations. |
| |
| * platform/FileMonitor.h: |
| (WebCore::FileMonitor::platformMonitor): Expose dispatch_source_t for logging purposes. |
| * platform/cocoa/FileMonitorCocoa.mm: |
| (WebCore::FileMonitor::startMonitoring): Add logging. |
| (WebCore::FileMonitor::stopMonitoring): Ditto. |
| |
| 2017-07-05 Jonathan Bedard <jbedard@apple.com> |
| |
| Add WebKitPrivateFrameworkStubs for iOS 11 |
| https://bugs.webkit.org/show_bug.cgi?id=173988 |
| |
| Reviewed by David Kilzer. |
| |
| * Configurations/WebCore.xcconfig: iphoneos and iphonesimulator should use the |
| same directory for private framework stubs. |
| |
| 2017-07-05 Emilio Cobos Álvarez <ecobos@igalia.com> |
| |
| Don't resolve an extra computed style for getComputedStyle in a display: none subtree. |
| https://bugs.webkit.org/show_bug.cgi?id=174145 |
| |
| Before this, we were also resolving the first ancestor's style as |
| inheriting from itself, which felt pretty wrong (though I think it's |
| not observable). |
| |
| Reviewed by Antti Koivisto. |
| |
| No new tests (non-observable behavior). |
| |
| * dom/Element.cpp: |
| (WebCore::Element::resolveComputedStyle): |
| |
| 2017-07-05 Frederic Wang <fwang@igalia.com> |
| |
| Move ScrolledContentsLayer property to ScrollingStateScrollingNode |
| https://bugs.webkit.org/show_bug.cgi?id=174134 |
| |
| Reviewed by Simon Fraser. |
| |
| ScrollingStateFrameScrollingNode and ScrollingStateOverflowScrollingNode both use a |
| ScrolledContentsLayer property for the same purpose. This commit moves that property into |
| their parent class ScrollingStateScrollingNode, so that more code is shared between the two |
| classes. This will also help the refactoring in bug 174130. |
| |
| No new tests, only dumped tree may change a bit. |
| |
| * page/scrolling/ScrollingStateFrameScrollingNode.cpp: Remove scrolled contents layer. |
| (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode): |
| (WebCore::ScrollingStateFrameScrollingNode::dumpProperties): |
| (WebCore::ScrollingStateFrameScrollingNode::setScrolledContentsLayer): Deleted. |
| * page/scrolling/ScrollingStateFrameScrollingNode.h: Ditto. |
| * page/scrolling/ScrollingStateOverflowScrollingNode.cpp: Ditto. |
| (WebCore::ScrollingStateOverflowScrollingNode::ScrollingStateOverflowScrollingNode): |
| (WebCore::ScrollingStateOverflowScrollingNode::dumpProperties): |
| (WebCore::ScrollingStateOverflowScrollingNode::setScrolledContentsLayer): Deleted. |
| * page/scrolling/ScrollingStateOverflowScrollingNode.h: Ditto. |
| (): Deleted. |
| (WebCore::ScrollingStateOverflowScrollingNode::scrolledContentsLayer): Deleted. |
| * page/scrolling/ScrollingStateScrollingNode.cpp: Add scrolled contents layer. |
| (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): |
| (WebCore::ScrollingStateScrollingNode::setScrolledContentsLayer): |
| (WebCore::ScrollingStateScrollingNode::dumpProperties): Use the label from the overflow class |
| which is different from the frame class. The dumping order may change a bit too. |
| * page/scrolling/ScrollingStateScrollingNode.h: Add ScrolledContentsLayer to the enum and |
| scrolled contents layer. |
| (WebCore::ScrollingStateScrollingNode::scrolledContentsLayer): |
| * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: |
| (WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren): Adjust enum value |
| to use ScrollingStateScrollingNode::ScrolledContentsLayer. |
| |
| 2017-07-05 Emilio Cobos Álvarez <ecobos@igalia.com> |
| |
| ProcessingInstruction::clearExistingCachedSheet doesn't really exist. |
| https://bugs.webkit.org/show_bug.cgi?id=174146 |
| |
| Reviewed by Chris Dumez. |
| |
| No new tests (no functionality change). |
| |
| * dom/ProcessingInstruction.h: Remove dead declaration. |
| |
| 2017-07-05 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r219128. |
| |
| Spoke with engineer who originally submitted, Patch for APi |
| test to follow. |
| |
| Reverted changeset: |
| |
| "Unreviewed, rolling out r219070." |
| https://bugs.webkit.org/show_bug.cgi?id=174082 |
| http://trac.webkit.org/changeset/219128 |
| |
| 2017-07-05 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r219070. |
| |
| This revision caused consistent failures of the API test |
| UIPasteboardTests.DoNotPastePlainTextAsURL on iOS. |
| |
| Reverted changeset: |
| |
| "Pasting single words copied to UIPasteboard inserts URLs in |
| editable areas" |
| https://bugs.webkit.org/show_bug.cgi?id=174082 |
| http://trac.webkit.org/changeset/219070 |
| |
| 2017-07-05 Youenn Fablet <youenn@apple.com> |
| |
| Receiving tracks should be ended when peer connection is being closed |
| https://bugs.webkit.org/show_bug.cgi?id=174109 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: webrtc/peer-connection-track-end.html |
| |
| As per https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-close, tracks should be ended when peer connection is closed. |
| Also updating transceiver stopped state. |
| |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::doClose): |
| * Modules/mediastream/RTCRtpReceiver.cpp: |
| (WebCore::RTCRtpReceiver::stop): |
| * Modules/mediastream/RTCRtpReceiver.h: |
| |
| 2017-07-04 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Unreviewed, review follow-up after r218961 |
| |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::updateFromSettings): |
| |
| 2017-07-04 Antti Koivisto <antti@apple.com> |
| |
| RenderThemeCocoa::mediaControlsFormattedStringForDuration is leaking NSDateComponentsFormatters |
| https://bugs.webkit.org/show_bug.cgi?id=174138 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Saw a random spin here during media playback. Looks like we are leaking. |
| |
| * rendering/RenderThemeCocoa.h: |
| * rendering/RenderThemeCocoa.mm: |
| (WebCore::RenderThemeCocoa::mediaControlsFormattedStringForDuration): |
| |
| Reuse NSDateComponentsFormatter. |
| |
| 2017-07-04 Antti Koivisto <antti@apple.com> |
| |
| FrameView should not set RenderView::logicalWidth directly for printing |
| https://bugs.webkit.org/show_bug.cgi?id=174135 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Renderer logicalWidth should be set by layout. Direct override by RenderView when printing means |
| that we don't layout children in all cases when the width changes. This is currently mostly hidden |
| by spurious layouts but causes problems when trying to fix other things that reduces those. |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::forceLayoutForPagination): |
| |
| Instead of calling setLogicalWidth directly call the new setPageLogicalSize that sets both the width |
| and the height uniformly. |
| |
| * rendering/RenderView.cpp: |
| (WebCore::RenderView::updateLogicalWidth): |
| |
| Use pageLogicalSize->width() in printing state instead of skipping the logical width update entirely. |
| This ensures that the layout will progress to children when the page logical width changes. |
| |
| (WebCore::RenderView::initializeLayoutState): |
| (WebCore::RenderView::layout): |
| (WebCore::RenderView::pageOrViewLogicalHeight): |
| (WebCore::RenderView::setPageLogicalSize): |
| * rendering/RenderView.h: |
| |
| Replace the existing m_pageLogicalHeight with std::optional m_pageLogicalSize. |
| |
| 2017-07-04 Xabier Rodriguez Calvar <calvaris@igalia.com> |
| |
| [EME] Solve a couple of compiler warnings |
| https://bugs.webkit.org/show_bug.cgi?id=174020 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * Modules/encryptedmedia/CDM.cpp: |
| (WebCore::CDM::isPersistentType): Added default return and |
| assertion. |
| * Modules/encryptedmedia/MediaKeySession.cpp: |
| (WebCore::MediaKeySession::updateKeyStatuses): This warning was |
| already solved but I think adding an assertion for the default |
| case can help catch errors in the future. |
| |
| 2017-07-04 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Cleanup some StringBuilder use |
| https://bugs.webkit.org/show_bug.cgi?id=174118 |
| |
| Reviewed by Andreas Kling. |
| |
| * Modules/mediastream/PeerConnectionBackend.cpp: |
| (WebCore::filterICECandidate): |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| * contentextensions/ContentExtension.cpp: |
| (WebCore::ContentExtensions::ContentExtension::compileGlobalDisplayNoneStyleSheet): |
| * css/CSSFontStyleRangeValue.cpp: |
| (WebCore::CSSFontStyleRangeValue::customCSSText): |
| * css/CSSFontStyleValue.cpp: |
| (WebCore::CSSFontStyleValue::customCSSText): |
| * css/CSSGridAutoRepeatValue.cpp: |
| (WebCore::CSSGridAutoRepeatValue::customCSSText): |
| * css/parser/CSSParser.cpp: |
| (WebCore::CSSParser::parseFontFaceDescriptor): |
| * dom/Attr.cpp: |
| * html/canvas/WebGPURenderingContext.cpp: |
| * html/parser/HTMLParserIdioms.cpp: |
| * platform/network/ParsedContentType.cpp: |
| * platform/network/cocoa/CookieCocoa.mm: |
| * platform/text/mac/LocaleMac.mm: |
| * xml/XMLHttpRequest.cpp: |
| (WebCore::XMLHttpRequest::getAllResponseHeaders): |
| |
| 2017-07-03 Andreas Kling <akling@apple.com> |
| |
| Null RenderLayer* deref in FrameView::adjustTiledBackingCoverage() |
| https://bugs.webkit.org/show_bug.cgi?id=174106 |
| <rdar://problem/33085838> |
| |
| Reviewed by Tim Horton. |
| |
| I haven't been able to reproduce this crash locally, but I have seen |
| video of someone who can, so here's a null check for the RenderView::layer() |
| which could be null if we're called between RenderView construction |
| and the first callback to RenderLayerModelObject::styleDidChange(). |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::adjustTiledBackingCoverage): |
| |
| 2017-07-03 Matt Rajca <mrajca@apple.com> |
| |
| Add/remove appropriate media element behavior restrictions when updateWebsitePolicies is called |
| https://bugs.webkit.org/show_bug.cgi?id=174103 |
| |
| Reviewed by Alex Christensen. |
| |
| Test: Added API test. |
| |
| Added support for updating rate change behavior restrictions on media elements that have already |
| been created. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::updateRateChangeRestrictions): |
| * html/HTMLMediaElement.h: |
| * page/Page.cpp: |
| (WebCore::Page::updateMediaElementRateChangeRestrictions): |
| * page/Page.h: |
| |
| 2017-07-03 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r219103. |
| |
| Caused multiple build failures. |
| |
| Reverted changeset: |
| |
| "Remove copy of ICU headers from WebKit" |
| https://bugs.webkit.org/show_bug.cgi?id=116407 |
| http://trac.webkit.org/changeset/219103 |
| |
| 2017-07-03 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Remove copy of ICU headers from WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=116407 |
| |
| Reviewed by Alex Christensen. |
| |
| Use WTF's copy of ICU headers. |
| |
| No new tests because there is no behavior change. |
| |
| * Configurations/WebCore.xcconfig: |
| * icu/unicode/bytestream.h: Removed. |
| * icu/unicode/localpointer.h: Removed. |
| * icu/unicode/parseerr.h: Removed. |
| * icu/unicode/platform.h: Removed. |
| * icu/unicode/ptypes.h: Removed. |
| * icu/unicode/putil.h: Removed. |
| * icu/unicode/rep.h: Removed. |
| * icu/unicode/std_string.h: Removed. |
| * icu/unicode/strenum.h: Removed. |
| * icu/unicode/stringpiece.h: Removed. |
| * icu/unicode/ubrk.h: Removed. |
| * icu/unicode/uchar.h: Removed. |
| * icu/unicode/ucnv.h: Removed. |
| * icu/unicode/ucnv_err.h: Removed. |
| * icu/unicode/ucol.h: Removed. |
| * icu/unicode/uconfig.h: Removed. |
| * icu/unicode/ucurr.h: Removed. |
| * icu/unicode/uenum.h: Removed. |
| * icu/unicode/uiter.h: Removed. |
| * icu/unicode/uloc.h: Removed. |
| * icu/unicode/umachine.h: Removed. |
| * icu/unicode/unistr.h: Removed. |
| * icu/unicode/unorm.h: Removed. |
| * icu/unicode/unorm2.h: Removed. |
| * icu/unicode/uobject.h: Removed. |
| * icu/unicode/urename.h: Removed. |
| * icu/unicode/uscript.h: Removed. |
| * icu/unicode/uset.h: Removed. |
| * icu/unicode/ustring.h: Removed. |
| * icu/unicode/utext.h: Removed. |
| * icu/unicode/utf.h: Removed. |
| * icu/unicode/utf16.h: Removed. |
| * icu/unicode/utf8.h: Removed. |
| * icu/unicode/utf_old.h: Removed. |
| * icu/unicode/utypes.h: Removed. |
| * icu/unicode/uvernum.h: Removed. |
| * icu/unicode/uversion.h: Removed. |
| |
| 2017-07-03 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| REGRESSION(Variation Fonts): Specifying Skia by PostScript name does not yield the expected result |
| https://bugs.webkit.org/show_bug.cgi?id=174079 |
| <rdar://problem/33040854> |
| |
| Reviewed by Alex Christensen. |
| |
| Because Skia is a variation font, its PostScript name contains values to apply to its variation |
| axes. However, WebKit's variation code was overwriting these intrinsive values with ones specified |
| by CSS. Therefore, the intrinsic ones were being ignored. The solution is just to pass a flag from |
| the lookup code to the variations code describing if the font was created via a PostScript name, |
| and to not apply the CSS properties to it if it was. |
| |
| Test: fast/text/variations/skia-postscript-name.html |
| |
| * platform/graphics/FontCache.h: |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::preparePlatformFont): |
| (WebCore::platformFontLookupWithFamily): |
| (WebCore::fontWithFamily): |
| |
| 2017-07-03 Brady Eidson <beidson@apple.com> |
| |
| Switch all WebKit API related to favicons from WebIconDatabase over to new WebCore::IconLoader mechanism. |
| https://bugs.webkit.org/show_bug.cgi?id=174073 |
| |
| Reviewed by Andy Estes. |
| |
| Covered by existing API test. |
| |
| * loader/DocumentLoader.cpp: |
| (WebCore::DocumentLoader::startIconLoading): |
| * loader/EmptyClients.cpp: |
| * loader/FrameLoaderClient.h: |
| |
| 2017-07-03 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Remove more unnecessary uses of the preprocessor in idl files |
| https://bugs.webkit.org/show_bug.cgi?id=174083 |
| |
| Reviewed by Alex Christensen. |
| |
| Purge as much preprocessor use as possible. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| Add ENABLE_NAVIGATOR_STANDALONE. |
| |
| * animation/Animatable.idl: |
| Remove unnecessary check for LANGUAGE_OBJECTIVE_C. We no longer generate those bindings. |
| |
| * html/MediaError.idl: |
| Use [Conditional] rather than the preprocessor. |
| |
| * page/Navigator.idl: |
| Use [Conditional] rather than the preprocessor with the new ENABLE_NAVIGATOR_STANDALONE. |
| |
| * testing/Internals.cpp: |
| * testing/Internals.h: |
| Expose setQuickLookPassword on all platforms, as it doesn't hurt since it is only for testing, |
| but make the implementation do nothing. |
| |
| * testing/Internals.idl: |
| Use [Conditional] rather than the preprocessor. |
| |
| 2017-07-03 Daewoong Jang <daewoong.jang@navercorp.com> |
| |
| [Curl] Fix compilation errors |
| https://bugs.webkit.org/show_bug.cgi?id=174085 |
| |
| Reviewed by Alex Christensen. |
| |
| * platform/network/curl/CurlContext.cpp: |
| (WebCore::CurlContext::initCookieSession): |
| * platform/network/curl/CurlContext.h: |
| |
| 2017-07-03 Youenn Fablet <youenn@apple.com> |
| |
| WebAudioSourceProviderAVFObjC should not reconfigure for each data call |
| https://bugs.webkit.org/show_bug.cgi?id=174101 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by manual testing, in particular |
| https://webrtc.github.io/samples/src/content/peerconnection/webaudio-output/ |
| and https://webrtc.github.io/samples/src/content/getusermedia/volume/. |
| Also improved LayoutTests web audio peer connection tests to make them more robust. |
| |
| Before the patch, reconfiguration of the web audio provider was happening for every audioSamplesAvailable call. |
| It is now happening only when the format of the audio samples is changing. |
| Changed some member fields from uinque_ptr to optional as a minor improvement. |
| |
| * platform/mediastream/mac/WebAudioSourceProviderAVFObjC.h: |
| * platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm: |
| (WebCore::WebAudioSourceProviderAVFObjC::provideInput): |
| (WebCore::WebAudioSourceProviderAVFObjC::prepare): |
| (WebCore::WebAudioSourceProviderAVFObjC::unprepare): |
| (WebCore::WebAudioSourceProviderAVFObjC::audioSamplesAvailable): |
| |
| 2017-06-30 Alex Christensen <achristensen@webkit.org> |
| |
| Stop using dispatch_async in ResourceHandleCFURLConnectionDelegateWithOperationQueue |
| https://bugs.webkit.org/show_bug.cgi?id=174059 |
| |
| Reviewed by Andy Estes. |
| |
| Use dispatch_async_f and callOnMainThread instead. |
| No change in behavior. |
| This will allow me to use this code on Windows. |
| |
| * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp: |
| (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest): |
| (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse): |
| (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData): |
| (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading): |
| (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFail): |
| (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse): |
| (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveChallenge): |
| (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData): |
| (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace): |
| |
| 2017-07-03 Andy Estes <aestes@apple.com> |
| |
| [Xcode] Add an experimental setting to build with ccache |
| https://bugs.webkit.org/show_bug.cgi?id=173875 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/DebugRelease.xcconfig: Included ccache.xcconfig. |
| |
| 2017-07-02 Ryosuke Niwa <rniwa@webkit.org> |
| |
| REGRESSION(r218910): Crash inside textMarkerDataForFirstPositionInTextControl |
| https://bugs.webkit.org/show_bug.cgi?id=174077 |
| <rdar://problem/33083972> |
| |
| Reviewed by Chris Fleizach. |
| |
| The bug was caused by textMarkerDataForFirstPositionInTextControl assuming that |
| there is always a root editable element (a.k.a. editing host) in the text control. |
| When the text control is readonly or disabled, this is not the case. |
| |
| Fixed the bug by adding an early exit when there is no editing host. |
| |
| Test: accessibility/mac/input-type-change-crash.html |
| |
| * accessibility/AXObjectCache.cpp: |
| (WebCore::AXObjectCache::textMarkerDataForFirstPositionInTextControl): |
| |
| 2017-07-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Support listing WebGL2 and WebGPU contexts |
| https://bugs.webkit.org/show_bug.cgi?id=173396 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Tests: inspector/canvas/create-context-2d.html |
| inspector/canvas/create-context-webgl.html |
| inspector/canvas/create-context-webgl2.html |
| inspector/canvas/create-context-webgpu.html |
| |
| Split "inspector/canvas/create-canvas-contexts.html" into a test for each context type. |
| |
| * html/HTMLCanvasElement.cpp: |
| (WebCore::HTMLCanvasElement::getContextWebGPU): |
| * inspector/InspectorCanvasAgent.cpp: |
| (WebCore::InspectorCanvasAgent::buildObjectForCanvas): |
| |
| 2017-07-03 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION(r215096) Queries of URLs with non-special schemes should not percent-encode single quotes |
| https://bugs.webkit.org/show_bug.cgi?id=174051 |
| |
| Reviewed by Tim Horton. |
| |
| In r215096 I added ' to the set of characters to be percent-encoded in queries, |
| but for interoperability and compatibility we need to do this only for special schemes, like http. |
| |
| Covered by new API tests. |
| |
| * platform/URLParser.cpp: |
| (WebCore::isC0Control): |
| (WebCore::shouldPercentEncodeQueryByte): |
| (WebCore::URLParser::utf8QueryEncode): |
| (WebCore::URLParser::encodeQuery): |
| |
| 2017-07-03 Chris Fleizach <cfleizach@apple.com> |
| |
| AX: role="none" (or presentation) does not work on iframes |
| https://bugs.webkit.org/show_bug.cgi?id=173930 |
| <rdar://problem/33034347> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Support setting a presentational role on an iframe so that the AXWebArea disappears from the hierarchy. |
| Accomplish this by adding children for attachment and scroll view elements the way other children are added. |
| That is, only add the non-ignored children directly (which means move the addChild logic into AccessibilityObject.) |
| |
| Test: accessibility/presentation-role-iframe.html |
| |
| * accessibility/AccessibilityNodeObject.cpp: |
| (WebCore::AccessibilityNodeObject::AccessibilityNodeObject): |
| (WebCore::AccessibilityNodeObject::insertChild): Deleted. |
| (WebCore::AccessibilityNodeObject::addChild): Deleted. |
| * accessibility/AccessibilityNodeObject.h: |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::AccessibilityObject): |
| (WebCore::AccessibilityObject::insertChild): |
| (WebCore::AccessibilityObject::addChild): |
| (WebCore::nodeHasPresentationRole): |
| * accessibility/AccessibilityObject.h: |
| (WebCore::AccessibilityObject::addChild): Deleted. |
| (WebCore::AccessibilityObject::insertChild): Deleted. |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::webAreaIsPresentational): |
| (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored): |
| (WebCore::AccessibilityRenderObject::addAttachmentChildren): |
| * accessibility/AccessibilityScrollView.cpp: |
| (WebCore::AccessibilityScrollView::addChildren): |
| |
| 2017-07-03 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r219024. |
| |
| This patch cause 3 didferent test to fail. |
| |
| Reverted changeset: |
| |
| "REGRESSION(r215096) Queries of URLs with non-special schemes |
| should not percent-encode single quotes" |
| https://bugs.webkit.org/show_bug.cgi?id=174051 |
| http://trac.webkit.org/changeset/219024 |
| |
| 2017-07-03 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Pasting single words copied to UIPasteboard inserts URLs in editable areas |
| https://bugs.webkit.org/show_bug.cgi?id=174082 |
| <rdar://problem/33046992> |
| |
| Reviewed by Tim Horton. |
| |
| Currently, our heuristics for coercing plain text to URLs when reading URLs off of the UIPasteboard allows URLs |
| to be created as long as -[UIPasteboard valuesForPasteboardType:inItemSet:] returns a non-null NSURL. However, |
| UIPasteboard automatically coerces any NSString into an NSURL if it initializes an NSURL via +URLWithString:. |
| Thus, single-word strings such as "hello" that are written to the pasteboard as "public.utf8-plain-text" can |
| be read back as NSURLs for "public.url". This currently causes bugs in shipping software: e.g. copying and |
| pasting a single word from an editable input or textarea and pasting into a rich contenteditable area using |
| WebKit1 inserts a link. However, when combined with another change in WebKit that attempts to read "public.url" |
| before "public.text" when reading plain text from the pasteboard, this now also affects pasting in plain text |
| areas, where pasted plain-text strings that are not URLs will paste as URL-encoded strings anyways (for |
| instance, replacing "[hello]" with "%5Bhello%5D"). |
| |
| To fix this, and existing issues with pasting single words in contenteditables, we make |
| PlatformPasteboard::readString and PlatformPasteboard::readURL only accept a coerced NSURL as an URL if it also |
| parses as a valid URL in WebKit (otherwise, we return an empty string). |
| |
| Tests: |
| UIPasteboardTests.DoNotPastePlainTextAsURL |
| UIPasteboardTests.PastePlainTextAsURL |
| UIPasteboardTests.PasteURLWithPlainTextAsURL |
| |
| * platform/PlatformPasteboard.h: |
| * platform/ios/AbstractPasteboard.h: |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::allowReadingURLAtIndex): |
| |
| Allow an URL to be read if either (1) an URL was explicitly specified in the UIPasteboard, or (2) the "proposed" |
| URL returned from -valuesForPasteboardType: is valid. |
| |
| (WebCore::PlatformPasteboard::readString): |
| (WebCore::PlatformPasteboard::readURL): |
| |
| Consult allowReadingURLAtIndex here (in the case of ::readString, only if the given pasteboard type is |
| "public.url"). |
| |
| * platform/ios/WebItemProviderPasteboard.h: |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (-[WebItemProviderPasteboard itemProviders]): |
| (-[WebItemProviderPasteboard setItemProviders:]): |
| |
| 2017-07-03 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] Implement CryptoKeyEC SPKI exports |
| https://bugs.webkit.org/show_bug.cgi?id=173646 |
| |
| Reviewed by Jiewen Tan. |
| |
| No new tests -- affected tests are now passing and are unskipped. |
| |
| Implement libgcrypt-based support for SPKI exports of EC keys. |
| |
| Initially, the ECParameters structure is created so that it will be later embedded |
| into the SubjectPublicKeyInfo structure. First the root element of this structure |
| is written into, specifying namedCurve as the chosen member (even if other choices |
| are not really available). We then write out the object identifier into this |
| namedCurve member that properly represents this key's curve type. |
| |
| The SubjectPublicKeyInfo structure is created next. We write out id-ecPublicKey |
| identifier as the chosen algorithm identifier. Web Crypto specification demands |
| that the id-ecDH identifier is used in case of ECDH keys, but no existing test in |
| the W3C test suite expects this, so this should be revisited later. Data of the |
| previously-constructed ECParameters structure is written out into the |
| AlgorithmIdentifier's parameters member. |
| |
| The `q` MPI data is then retrieved. Its size is validated, as well as the first |
| byte of data in order to ensure the MPI represents an uncompressed EC point. |
| The data is then written into the subjectPublicKey member. |
| |
| Finally the encoded SubjectPublicKeyInfo structure data is extracted and returned |
| from the platformExportSpki() function, completion the export operation. |
| |
| * crypto/gcrypt/CryptoKeyECGCrypt.cpp: |
| (WebCore::curveIdentifier): |
| (WebCore::CryptoKeyEC::platformExportSpki): |
| |
| 2017-07-02 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Remove special casing for RegExp which is no longer required by the spec |
| https://bugs.webkit.org/show_bug.cgi?id=174025 |
| |
| Reviewed by Chris Dumez. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateDictionaryImplementationContent): |
| (GenerateOverloadDispatcher): |
| Remove special casing. |
| |
| * bindings/scripts/IDLParser.pm: |
| (parseNonAnyType): |
| Remove parsing of RegExp. |
| |
| * bindings/scripts/test/JS/JSTestCallbackInterface.cpp: |
| * bindings/scripts/test/JS/JSTestEventConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| * bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp: |
| * bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp: |
| Update test results. |
| |
| 2017-07-02 Youenn Fablet <youenn@apple.com> |
| |
| RealtimeOutgoingVideoSource should pass frame timestamp |
| https://bugs.webkit.org/show_bug.cgi?id=174055 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by manual testing since this only affects video encoding quality. |
| |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: |
| (WebCore::RealtimeOutgoingVideoSource::sendFrame): |
| |
| 2017-07-01 Dan Bernstein <mitz@apple.com> |
| |
| <rdar://problem/33096441> r219055 broke non-iOS builds. |
| |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::lookupFallbackFont): |
| |
| 2017-07-01 Dan Bernstein <mitz@apple.com> |
| |
| [iOS] Remove code only needed when building for iOS 9.x |
| https://bugs.webkit.org/show_bug.cgi?id=174068 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * editing/cocoa/DataDetection.mm: |
| (WebCore::DataDetection::isDataDetectorLink): |
| (WebCore::DataDetection::shouldCancelDefaultAction): |
| (WebCore::constructURLStringForResult): |
| (WebCore::DataDetection::detectContentInRange): |
| * page/cocoa/ResourceUsageThreadCocoa.mm: |
| (WebCore::vmPageSize): |
| * platform/cocoa/DataDetectorsCoreSoftLink.h: |
| * platform/cocoa/DataDetectorsCoreSoftLink.mm: |
| * platform/graphics/FontPlatformData.cpp: |
| * platform/graphics/FontPlatformData.h: |
| * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: |
| (layerContentsFormat): |
| (PlatformCALayerCocoa::updateContentsFormat): |
| (PlatformCALayerCocoa::backingStoreBytesPerPixel): |
| * platform/graphics/cg/GraphicsContextCG.cpp: |
| (WebCore::extendedSRGBColorSpaceRef): |
| * platform/graphics/cg/PDFDocumentImage.cpp: |
| (WebCore::PDFDocumentImage::drawPDFPage): |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::lookupFallbackFont): |
| * platform/graphics/cocoa/FontCocoa.mm: |
| (WebCore::Font::variantCapsSupportsCharacterForSynthesis): |
| (WebCore::Font::platformWidthForGlyph): |
| * platform/graphics/cocoa/FontPlatformDataCocoa.mm: |
| (WebCore::FontPlatformData::FontPlatformData): |
| (WebCore::FontPlatformData::ctFont): |
| * platform/graphics/cocoa/IOSurface.mm: |
| (WebCore::IOSurface::sinkIntoImage): |
| * platform/graphics/cocoa/WebCoreDecompressionSession.mm: |
| (WebCore::WebCoreDecompressionSession::setTimebase): |
| * platform/graphics/ios/FontCacheIOS.mm: |
| (WebCore::systemFontModificationAttributes): |
| (WebCore::systemFontDescriptor): |
| * platform/graphics/mac/FontCustomPlatformData.cpp: |
| (WebCore::FontCustomPlatformData::supportsFormat): |
| * platform/ios/LegacyTileGridTile.mm: |
| (WebCore::LegacyTileGridTile::LegacyTileGridTile): |
| * platform/ios/PlatformScreenIOS.mm: |
| (WebCore::screenSupportsExtendedColor): |
| * platform/ios/RemoteCommandListenerIOS.mm: |
| (WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS): |
| (WebCore::RemoteCommandListenerIOS::~RemoteCommandListenerIOS): |
| (WebCore::RemoteCommandListenerIOS::updateSupportedCommands): |
| * platform/spi/cf/CFNetworkSPI.h: |
| * platform/spi/cg/CoreGraphicsSPI.h: |
| * platform/spi/cocoa/DataDetectorsCoreSPI.h: |
| * platform/spi/cocoa/QuartzCoreSPI.h: |
| * platform/spi/mac/AVFoundationSPI.h: |
| |
| 2017-07-01 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| REGRESSION(r218371): Reeder's default font is Times instead of San Francisco |
| https://bugs.webkit.org/show_bug.cgi?id=173617 |
| <rdar://problem/32969819> |
| |
| Reviewed by Simon Fraser. |
| |
| On systems where USE_PLATFORM_SYSTEM_FALLBACK_LIST is set to true, the code in |
| platformFontWithFamilySpecialCase() is still used when @font-face blocks specify |
| src:local(system-ui), which made the assertion erroneously fire. |
| |
| Unfortunately, our architecture is such that an @font-face block represents a |
| single entry in the font-family fallback list, which means it would be quite |
| difficult to make local(system-ui) in an @font-face block expand at the level |
| of the font cascade. So, this patch simply reverts to the previous behavior for |
| local(system-ui) (which doesn't include the entire Core Text cascade list). |
| This means that "font-family: system-ui" and "src: local(system-ui)" have |
| different behavior, which is undesirable, but architecturally difficult to |
| solve. I've added some FIXMEs to the code in the relevant places and filed |
| https://bugs.webkit.org/show_bug.cgi?id=174023. |
| |
| Test: fast/text/font-face-local-system.html |
| |
| * platform/graphics/cocoa/FontDescriptionCocoa.cpp: |
| (WebCore::FontCascadeDescription::effectiveFamilyAt): |
| * platform/graphics/ios/FontCacheIOS.mm: |
| (WebCore::systemFontDescriptor): |
| (WebCore::platformFontWithFamilySpecialCase): |
| * platform/graphics/mac/FontCacheMac.mm: |
| (WebCore::platformFontWithFamilySpecialCase): |
| |
| 2017-07-01 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Frame.h doesn't need to include FrameLoader.h, IntRect.h, and NavigationScheduler.h |
| https://bugs.webkit.org/show_bug.cgi?id=174004 |
| |
| Reviewed by Simon Fraser. |
| |
| Made FrameLoader and NavigationScheduler UniqueRef in Frame so that we can forward declare them, |
| and forward declared IntPoint and IntRect to avoid including FrameLoader.h, IntRect.h, |
| and NavigationScheduler.h in Frame.h |
| |
| * Modules/mediastream/MediaStream.cpp: |
| * Modules/webaudio/AudioContext.cpp: |
| * Modules/websockets/WebSocket.cpp: |
| (WebCore::WebSocket::connect): Avoid calling loader().mixedContentChecker().canRunInsecureContent(~) |
| on a nullptr even though this used to work because we weren't de-referencing it. |
| * bindings/js/ScriptController.cpp: |
| * dom/Document.cpp: |
| * dom/EventDispatcher.cpp: |
| * editing/Editor.cpp: |
| * editing/cocoa/EditorCocoa.mm: |
| * editing/ios/EditorIOS.mm: |
| * editing/mac/EditorMac.mm: |
| * history/CachedPage.cpp: |
| * html/HTMLObjectElement.cpp: |
| * html/parser/HTMLDocumentParser.cpp: |
| (WebCore::DocumentLoader::~DocumentLoader): Check !isLoading() before accessing frameLoader to avoid |
| accessing m_frame->loader() inside ~FrameLoader. |
| * html/parser/XSSAuditor.cpp: |
| * html/parser/XSSAuditorDelegate.cpp: |
| * inspector/InspectorInstrumentation.h: |
| * loader/CrossOriginPreflightChecker.cpp: |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::setOpener): Avoid accessing this FrameLoader via m_opener->loader() when it's |
| this FrameLoader inside ~FrameLoader since UniqueRef<FrameLoader> is clears itself before calling |
| the destructor of FrameLoader. |
| * loader/ImageLoader.cpp: |
| * loader/LinkLoader.cpp: |
| * loader/SubframeLoader.cpp: |
| * loader/appcache/ApplicationCacheGroup.cpp: |
| * loader/appcache/DOMApplicationCache.cpp: |
| * mathml/MathMLElement.cpp: |
| * page/DOMWindow.cpp: |
| * page/Frame.cpp: |
| (WebCore::Frame::Frame): |
| (WebCore::Frame::init): Moved here from Frame.h |
| (WebCore::Frame::setDocument): |
| * page/Frame.h: |
| (WebCore::Frame::loader): |
| (WebCore::Frame::navigationScheduler): |
| * page/History.cpp: |
| * page/Location.cpp: |
| * page/PerformanceLogging.cpp: |
| * page/PerformanceNavigation.cpp: |
| * page/UserContentProvider.cpp: |
| * page/ios/FrameIOS.mm: |
| (WebCore::Frame::initWithSimpleHTMLDocument): |
| * plugins/PluginInfoProvider.cpp: |
| * replay/ReplayInputCreationMethods.cpp: |
| * replay/UserInputBridge.cpp: |
| * xml/XSLTProcessorLibxslt.cpp: |
| * xml/parser/XMLDocumentParserLibxml2.cpp: |
| |
| 2017-07-01 Dan Bernstein <mitz@apple.com> |
| |
| [macOS] Remove code only needed when building for OS X Yosemite |
| https://bugs.webkit.org/show_bug.cgi?id=174067 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/DebugRelease.xcconfig: |
| * Configurations/FeatureDefines.xcconfig: |
| * Configurations/Version.xcconfig: |
| * accessibility/AXObjectCache.cpp: |
| (WebCore::AXObjectCache::setEnhancedUserInterfaceAccessibility): |
| * html/HTMLCanvasElement.cpp: |
| * page/WheelEventDeltaFilter.cpp: |
| (WebCore::WheelEventDeltaFilter::create): |
| * page/mac/WheelEventDeltaFilterMac.h: |
| * page/mac/WheelEventDeltaFilterMac.mm: |
| * page/scrolling/ScrollingMomentumCalculator.cpp: |
| * page/scrolling/mac/ScrollingMomentumCalculatorMac.h: |
| * page/scrolling/mac/ScrollingMomentumCalculatorMac.mm: |
| * platform/cocoa/NetworkExtensionContentFilter.mm: |
| (replacementDataFromDecisionInfo): |
| (WebCore::NetworkExtensionContentFilter::initialize): |
| (WebCore::NetworkExtensionContentFilter::willSendRequest): |
| (WebCore::NetworkExtensionContentFilter::responseReceived): |
| (WebCore::NetworkExtensionContentFilter::addData): |
| (WebCore::NetworkExtensionContentFilter::finishedAddingData): |
| (WebCore::NetworkExtensionContentFilter::unblockHandler): |
| * platform/graphics/ComplexTextController.h: |
| * platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm: |
| (PlatformCAAnimationCocoa::setTimingFunction): |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::FontCache::platformAlternateFamilyName): |
| * platform/graphics/cocoa/FontCocoa.mm: |
| (WebCore::Font::platformInit): |
| * platform/graphics/cocoa/IOSurface.mm: |
| (WebCore::IOSurface::sinkIntoImage): |
| * platform/graphics/cocoa/WebGPULayer.mm: |
| (-[WebGPULayer initWithGPUDevice:]): |
| * platform/graphics/mac/ComplexTextControllerCoreText.mm: |
| (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): |
| * platform/graphics/mac/WebGLLayer.mm: |
| (-[WebGLLayer initWithGraphicsContext3D:]): |
| * platform/mac/BlacklistUpdater.mm: |
| * platform/mac/PlatformScreenMac.mm: |
| (WebCore::screenSupportsExtendedColor): |
| * platform/mac/ValidationBubbleMac.mm: |
| (WebCore::ValidationBubble::ValidationBubble): |
| * platform/mac/WebGLBlacklist.mm: |
| (WebCore::WebGLBlacklist::create): |
| * platform/network/cocoa/WebCoreNSURLSession.h: |
| * platform/network/cocoa/WebCoreNSURLSession.mm: |
| * platform/network/mac/CertificateInfoMac.mm: |
| (WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate): |
| * platform/network/mac/CookieJarMac.mm: |
| (WebCore::setCookiesFromDOM): |
| * platform/spi/cf/CFNetworkSPI.h: |
| * platform/spi/cg/CoreGraphicsSPI.h: |
| * platform/spi/cocoa/NEFilterSourceSPI.h: |
| * platform/spi/cocoa/NSURLConnectionSPI.h: |
| * platform/spi/cocoa/QuartzCoreSPI.h: |
| * platform/spi/mac/NSScrollingInputFilterSPI.h: |
| * platform/spi/mac/NSScrollingMomentumCalculatorSPI.h: |
| * platform/spi/mac/TUCallSPI.h: |
| * rendering/RenderThemeMac.mm: |
| (WebCore::RenderThemeMac::levelIndicatorFor): |
| * svg/SVGToOTFFontConversion.cpp: |
| (WebCore::SVGToOTFFontConverter::appendKERNTable): |
| (WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter): |
| |
| 2017-06-30 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| If an image appears more than once on a page, decoding for painting one instance repaints them all |
| https://bugs.webkit.org/show_bug.cgi?id=169944 |
| |
| Reviewed by Simon Fraser. |
| |
| Make the Image::draw*() and GraphicsContext::draw*() functions return an |
| ImageDrawResult which indicates whether the image is drawn or has requested |
| an asynchronous image decoding. |
| |
| If the image requested an asynchronous image decoding, the issuer of the |
| Image::draw(), which is of type CachedImageClient, will add itself to a |
| set of m_pendingImageDrawingClients, which owned by CachedImage. |
| |
| When receiving the imageFrameAvailable() notification for a lrage image |
| from the decoding thread, CachedImage will loop through the clients that |
| are only in m_pendingImageDrawingClients to ask them to repaint their |
| rectangles. |
| |
| Test: fast/images/async-image-multiple-clients-repaint.html |
| |
| * loader/cache/CachedImage.cpp: |
| (WebCore::CachedImage::didRemoveClient): |
| (WebCore::CachedImage::addPendingImageDrawingClient): |
| (WebCore::CachedImage::allClientsRemoved): |
| (WebCore::CachedImage::clear): |
| (WebCore::CachedImage::imageFrameAvailable): |
| * loader/cache/CachedImage.h: |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::draw): |
| * platform/graphics/BitmapImage.h: |
| * platform/graphics/CrossfadeGeneratedImage.cpp: |
| (WebCore::CrossfadeGeneratedImage::draw): |
| * platform/graphics/CrossfadeGeneratedImage.h: |
| * platform/graphics/GeneratedImage.h: |
| * platform/graphics/GradientImage.cpp: |
| (WebCore::GradientImage::draw): |
| * platform/graphics/GradientImage.h: |
| * platform/graphics/GraphicsContext.cpp: |
| (WebCore::GraphicsContext::drawImage): |
| (WebCore::GraphicsContext::drawTiledImage): |
| * platform/graphics/GraphicsContext.h: |
| * platform/graphics/Image.cpp: |
| (WebCore::Image::drawTiled): |
| * platform/graphics/Image.h: |
| * platform/graphics/ImageTypes.h: |
| * platform/graphics/NamedImageGeneratedImage.cpp: |
| (WebCore::NamedImageGeneratedImage::draw): |
| * platform/graphics/NamedImageGeneratedImage.h: |
| * platform/graphics/cg/PDFDocumentImage.cpp: |
| (WebCore::PDFDocumentImage::draw): |
| * platform/graphics/cg/PDFDocumentImage.h: |
| * rendering/RenderBoxModelObject.cpp: |
| (WebCore::RenderBoxModelObject::paintFillLayerExtended): |
| * rendering/RenderImage.cpp: |
| (WebCore::RenderImage::paintIntoRect): |
| * svg/graphics/SVGImage.cpp: |
| (WebCore::SVGImage::drawForContainer): |
| (WebCore::SVGImage::draw): |
| * svg/graphics/SVGImage.h: |
| * svg/graphics/SVGImageForContainer.cpp: |
| (WebCore::SVGImageForContainer::draw): |
| * svg/graphics/SVGImageForContainer.h: |
| |
| 2017-06-30 Ryosuke Niwa <rniwa@webkit.org> |
| |
| REGRESSION(r214194): Safari leaves a popup window open opened during before unload |
| https://bugs.webkit.org/show_bug.cgi?id=174016 |
| |
| Reviewed by Chris Dumez. |
| |
| Address Dan's review comments. |
| |
| * loader/NavigationDisabler.h: |
| (WebCore::NavigationDisabler::NavigationDisabler): |
| (WebCore::NavigationDisabler::~NavigationDisabler): |
| |
| 2017-06-30 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS DnD] Text indicators for dragged links should always be legible if the link is legible |
| https://bugs.webkit.org/show_bug.cgi?id=173860 |
| <rdar://problem/32974385> |
| |
| Reviewed by Tim Horton. |
| |
| Currently, TextIndicatorOptionUseBoundingRectAndPaintAllContentForComplexRanges ensures that links backed by a |
| RenderReplaced element don't render blank text indicators by additionally forcing the |
| TextIndicatorOptionPaintAllContent option in order to capture the RenderReplaced content. If estimated |
| background color is requested, this patch adds an additional path for "upgrading" the text indicator to paint |
| all content: if the text color is not legible against the estimated background color, then it is likely that the |
| background color estimate failed or the link itself was not legible in the first place; in the former case, to |
| ensure that the link is still legible, we upgrade the given TextIndicatorOptions to paint all contents in the |
| range. |
| |
| There is currently no way to test this, and also no simple way to introduce infrastructure to test text |
| indicators. |
| |
| * page/TextIndicator.cpp: |
| (WebCore::estimatedTextColorsForRange): |
| |
| Estimates all text colors that appear in a range by iterating over the text node renderers and consulting their |
| render styles. |
| |
| (WebCore::adjustTextIndicatorDataOptionsForEstimatedColorsIfNecessary): |
| |
| If foreground text color is deemed not legible, force TextIndicatorOptionPaintAllContent instead of |
| TextIndicatorOptionUseBoundingRectAndPaintAllContentForComplexRanges. |
| |
| (WebCore::initializeIndicator): |
| * rendering/TextPaintStyle.cpp: |
| (WebCore::textColorIsLegibleAgainstBackgroundColor): |
| (WebCore::adjustColorForVisibilityOnBackground): |
| |
| Allow other parts of WebCore to check the legibility of text against a background color. |
| |
| * rendering/TextPaintStyle.h: |
| |
| 2017-06-30 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION(r215096) Queries of URLs with non-special schemes should not percent-encode single quotes |
| https://bugs.webkit.org/show_bug.cgi?id=174051 |
| <rdar://problem/33002846> |
| |
| Reviewed by Tim Horton. |
| |
| In r215096 I added ' to the set of characters to be percent-encoded in queries, |
| but for interoperability and compatibility we need to do this only for special schemes, like http. |
| |
| Covered by new API tests. |
| |
| * platform/URLParser.cpp: |
| (WebCore::isC0Control): |
| (WebCore::shouldPercentEncodeQueryByte): |
| (WebCore::URLParser::utf8QueryEncode): |
| (WebCore::URLParser::encodeQuery): |
| |
| 2017-06-30 Daniel Bates <dabates@apple.com> |
| |
| Attempt to fix the build following <https://trac.webkit.org/changeset/219019> |
| (https://bugs.webkit.org/show_bug.cgi?id=165160) |
| |
| Export the FrameLoadRequest move constructor and move operator so that they |
| can be used from WebKit. |
| |
| * loader/FrameLoadRequest.h: |
| |
| 2017-06-30 Don Olmstead <don.olmstead@sony.com> |
| |
| [WebCore] Update AXObjectCache for !HAVE(ACCESSIBILITY) |
| https://bugs.webkit.org/show_bug.cgi?id=174045 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| No new tests. No change in behavior. |
| |
| * accessibility/AXObjectCache.h: |
| (WebCore::AXObjectCache::checkedStateChanged): |
| (WebCore::AXObjectCache::childrenChanged): |
| (WebCore::AXObjectCache::deferRecomputeIsIgnored): |
| (WebCore::AXObjectCache::deferTextChangedIfNeeded): |
| (WebCore::AXObjectCache::focusAriaModalNodeTimerFired): |
| (WebCore::AXObjectCache::handleAriaExpandedChange): |
| (WebCore::AXObjectCache::handleAriaRoleChanged): |
| (WebCore::AXObjectCache::handleAttributeChanged): |
| (WebCore::AXObjectCache::handleScrollbarUpdate): |
| (WebCore::AXObjectCache::liveRegionChangedNotificationPostTimerFired): |
| (WebCore::AXObjectCache::notificationPostTimerFired): |
| (WebCore::AXObjectCache::passwordNotificationPostTimerFired): |
| (WebCore::AXObjectCache::performDeferredCacheUpdate): |
| (WebCore::AXObjectCache::postNotification): |
| (WebCore::AXObjectCache::postPlatformNotification): |
| (WebCore::AXObjectCache::postTextReplacementNotification): |
| (WebCore::AXObjectCache::postTextReplacementNotificationForTextControl): |
| (WebCore::AXObjectCache::postTextStateChangeNotification): |
| (WebCore::AXObjectCache::recomputeIsIgnored): |
| (WebCore::AXObjectCache::textChanged): |
| (WebCore::AXObjectCache::updateCacheAfterNodeIsAttached): |
| (WebCore::AXObjectCache::focusAriaModalNode): Deleted. |
| |
| 2017-06-30 Daniel Bates <dabates@apple.com> |
| |
| Attempt to fix the Apple Windows build following <https://trac.webkit.org/changeset/219013> |
| (https://bugs.webkit.org/show_bug.cgi?id=165160) |
| |
| Make FrameLoadRequest move constructor and move operator out-of-line so that callers |
| do not need to include header SecurityOrigin.h. |
| |
| * loader/FrameLoadRequest.cpp: |
| * loader/FrameLoadRequest.h: |
| |
| 2017-06-30 Alex Christensen <achristensen@webkit.org> |
| |
| Stop soft linking with CFNetwork |
| https://bugs.webkit.org/show_bug.cgi?id=174029 |
| |
| Reviewed by Jer Noble. |
| |
| We link directly with CFNetwork. There's no reason to soft link, |
| and it is causing a problem with linking when doing interesting things with CFNetwork. |
| |
| * platform/spi/cf/CFNetworkSPI.h: |
| |
| 2017-06-30 Daniel Bates <dabates@apple.com> |
| |
| API::FrameInfo should know the web page that contains the frame; add API property webView to WKFrameInfo |
| https://bugs.webkit.org/show_bug.cgi?id=165160 |
| <rdar://problem/29451999> |
| |
| Reviewed by Brady Eidson. |
| |
| Pass the document that is requesting the load to the loader. |
| |
| * inspector/InspectorFrontendClientLocal.cpp: |
| (WebCore::InspectorFrontendClientLocal::openInNewTab): Pass the document when instantiating the FrameLoadRequest. |
| Also use C++11 brace initialization to instantiate ResourceRequest. |
| * inspector/InspectorPageAgent.cpp: |
| (WebCore::InspectorPageAgent::navigate): Pass the document when instantiating the FrameLoadRequest. |
| * loader/FrameLoadRequest.cpp: |
| (WebCore::FrameLoadRequest::FrameLoadRequest): Moved from FrameLoadRequest.h. |
| (WebCore::FrameLoadRequest::requester): Added. |
| (WebCore::FrameLoadRequest::requesterSecurityOrigin): Added. |
| * loader/FrameLoadRequest.h: |
| (WebCore::FrameLoadRequest::FrameLoadRequest): Marked as WEBCORE_EXPORT and modified to take |
| the document that requested the load. |
| (WebCore::FrameLoadRequest::requester): Deleted; made out-of-line/moved to FrameLoadRequest.cpp. |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::urlSelected): Pass the document when instantiating the FrameLoadRequest. Also use C++11 |
| brace initialization to instantiate ResourceRequest. |
| (WebCore::FrameLoader::loadURLIntoChildFrame): Pass the document when instantiating the FrameLoadRequest. |
| (WebCore::FrameLoader::loadFrameRequest): Substitute FrameLoadRequest::requesterSecurityOrigin() for |
| FrameLoadRequest::requester() as the former replaces the latter. |
| (WebCore::FrameLoader::loadURL): Pass the document when instantiating the NavigationAction. |
| (WebCore::FrameLoader::load): Ditto. |
| (WebCore::FrameLoader::loadWithDocumentLoader): Pass the document when instantiating the NavigationAction. |
| Also use C++11 brace initialization syntax to instantiate the NavigationAction. |
| (WebCore::FrameLoader::reload): Ditto. |
| (WebCore::FrameLoader::loadPostRequest): Ditto. |
| (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): Pass the document when instantiating the NavigationAction. |
| (WebCore::FrameLoader::loadDifferentDocumentItem): Pass the document when instantiating the NavigationAction. |
| Also use C++11 brace initialization syntax to instantiate the NavigationAction. |
| (WebCore::createWindow): Pass the document when instantiating the NavigationAction. |
| * loader/NavigationAction.cpp: |
| (WebCore::NavigationAction::NavigationAction): Modified to take the source document. |
| * loader/NavigationAction.h: |
| (WebCore::NavigationAction::isEmpty): Consider a NavigationAction empty if does not have a source document |
| or the associated ResourceRequest has an empty URL. |
| (WebCore::NavigationAction::sourceDocument): Added. |
| (WebCore::NavigationAction::NavigationAction): Deleted; made out-of-line/moved to NavigationAction.cpp to |
| avoid the need to include the header Document.h. |
| * loader/NavigationScheduler.cpp: |
| (WebCore::ScheduledURLNavigation::ScheduledURLNavigation): Store the document that scheduled the navigation. |
| Also use C++11 brace initialization to instantiate in the member initialization list. |
| (WebCore::ScheduledURLNavigation::initiatingDocument): Added. Retrieves the document that scheduled the navigation. |
| (WebCore::NavigationScheduler::scheduleLocationChange): Pass the document when instantiating the FrameLoadRequest. |
| * loader/PolicyChecker.cpp: |
| (WebCore::PolicyChecker::checkNavigationPolicy): Pass the document when instantiating the NavigationAction. |
| Also use C++11 brace initialization syntax to instantiate the NavigationAction. |
| * page/ContextMenuController.cpp: |
| (WebCore::openNewWindow): |
| (WebCore::ContextMenuController::contextMenuItemSelected): Pass the document when instantiating the FrameLoadRequest. |
| Also use C++11 brace initialization syntax to instantiate the FrameLoadRequest. |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::createWindow): Pass the document when instantiating the FrameLoadRequest. |
| |
| 2017-06-29 Jer Noble <jer.noble@apple.com> |
| |
| Make Legacy EME API controlled by RuntimeEnabled setting. |
| https://bugs.webkit.org/show_bug.cgi?id=173994 |
| |
| Reviewed by Sam Weinig. |
| |
| Add a new RuntimeEnabledFeatures setting to control the availability of the WebKit prefixed EME APIs. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Modules/encryptedmedia/legacy/WebKitMediaKeyMessageEvent.idl: |
| * Modules/encryptedmedia/legacy/WebKitMediaKeyNeededEvent.idl: |
| * Modules/encryptedmedia/legacy/WebKitMediaKeySession.idl: |
| * Modules/encryptedmedia/legacy/WebKitMediaKeys.idl: |
| * dom/Element.idl: |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): |
| (WebCore::HTMLMediaElement::webkitSetMediaKeys): |
| (WebCore::HTMLMediaElement::keyAdded): |
| * html/HTMLMediaElement.idl: |
| * html/WebKitMediaKeyError.idl: |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::setLegacyEncryptedMediaAPIEnabled): |
| (WebCore::RuntimeEnabledFeatures::legacyEncryptedMediaAPIEnabled): |
| |
| 2017-06-30 Chris Dumez <cdumez@apple.com> |
| |
| Move ResourceLoadStatisticsStore to WebKit2/UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=174033 |
| |
| Reviewed by Brent Fulgham. |
| |
| Move ResourceLoadStatisticsStore to WebKit2/UIProcess since it is only |
| used in the WebKit2 UIProcess. |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::primaryDomain): |
| * loader/ResourceLoadStatistics.cpp: |
| (WebCore::ResourceLoadStatistics::primaryDomain): |
| * loader/ResourceLoadStatistics.h: |
| |
| 2017-06-30 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Ran sort-Xcode-project-file. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| 2017-06-30 Ryosuke Niwa <rniwa@webkit.org> |
| |
| REGRESSION(r214194): Safari leaves a popup window open opened during before unload |
| https://bugs.webkit.org/show_bug.cgi?id=174016 |
| |
| Reviewed by Chris Dumez. |
| |
| The bug was caused by WebKit allowing the opening of a new window via window.open but disallowing |
| the initial navigation within the newly opened window while a beforeunload event is being dispatched. |
| |
| Because some websites which opens a window during a beforeunload event relies on the opened page |
| to communicate back in order to close it. This resulted in a newly opened popup window with about:blank |
| being left out on those websites. |
| |
| Fixed the bug by allowing the navigation of a new window as well as an existing another window. |
| More concretely, we disallow navigations within the same frame tree as the one in which a beforeunload |
| event is being dispatched, and allow navigations elsewhere (i.e. different window / page). |
| During the destruction of a frame-less document, disallow all the navigations. |
| |
| Tests: fast/events/before-unload-navigate-different-window.html |
| fast/events/before-unload-open-window.html |
| fast/events/before-unload-sibling-frame.html |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * dom/Document.cpp: |
| (WebCore::Document::prepareForDestruction): |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::isNavigationAllowed): |
| (WebCore::FrameLoader::shouldClose): |
| * loader/NavigationDisabler.h: Added. Extracted from NavigationScheduler.h |
| (WebCore::NavigationDisabler::NavigationDisabler): Increment the newly added counter on MainFrame unless |
| the frame is null (during the destruction of a frameless document) in which case we increment the global |
| disable count. |
| (WebCore::NavigationDisabler::~NavigationDisabler): Ditto for decrementation. |
| (WebCore::NavigationDisabler::isNavigationAllowed): Only allow the navigation when there is no frameless |
| document in destruction, and none of the frame in the same frame tree as the one given is currently in |
| the process of dispatching a beforeunload event. |
| * loader/NavigationScheduler.cpp: |
| (WebCore::NavigationScheduler::shouldScheduleNavigation): |
| * loader/NavigationScheduler.h: |
| (WebCore::NavigationDisabler): Moved to NavigationDisabler.h. |
| * page/MainFrame.h: |
| (WebCore::MainFrame): Added s_globalNavigationDisableCount. |
| |
| 2017-06-30 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Add support for conditionally read-write attributes |
| https://bugs.webkit.org/show_bug.cgi?id=173993 |
| |
| Reviewed by Alex Christensen. |
| |
| The MEDIA_SOURCE feature/conditional requires changing a few readonly |
| attributes into read-write attributes. In the past we handled this with |
| custom bindings. This patch adds a new extended attribute, ConditionallyReadWrite |
| which achieves the same result. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| Move a few custom binding to the "GC / Wrapping Only" group. |
| |
| * bindings/js/JSAudioTrackCustom.cpp: |
| (WebCore::JSAudioTrack::setKind): Deleted. |
| (WebCore::JSAudioTrack::setLanguage): Deleted. |
| * bindings/js/JSTextTrackCustom.cpp: |
| (WebCore::JSTextTrack::setLanguage): Deleted. |
| * bindings/js/JSVideoTrackCustom.cpp: |
| (WebCore::JSVideoTrack::setKind): Deleted. |
| (WebCore::JSVideoTrack::setLanguage): Deleted. |
| Remove no longer needed custom bindings. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GeneratePropertiesHashTable): |
| (GenerateImplementation): |
| (GenerateAttributeSetterDefinition): |
| (GenerateCallbackImplementationContent): |
| (GenerateHashTableValueArray): |
| (GenerateHashTable): |
| Pipe ConditionallyReadWrite through the generator. |
| |
| * bindings/scripts/IDLAttributes.json: |
| Add ConditionallyReadWrite. |
| |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| * bindings/scripts/test/TestObj.idl: |
| Add tests for ConditionallyReadWrite. |
| |
| * html/track/AudioTrack.idl: |
| * html/track/TextTrack.idl: |
| * html/track/VideoTrack.idl: |
| Replace [Custom] with [ConditionallyReadWrite]. |
| |
| 2017-06-30 Chris Dumez <cdumez@apple.com> |
| |
| ResourceLoadObserver does not need a ResourceLoadStatisticsStore |
| https://bugs.webkit.org/show_bug.cgi?id=174013 |
| |
| Reviewed by Brent Fulgham. |
| |
| ResourceLoadObserver does not need a ResourceLoadStatisticsStore. ResourceLoadStatisticsStore is too complicated for its needs. |
| ResourceLoadStatisticsStore can then be moved to WebKit2/UIProcess in a follow-up. |
| |
| * Modules/websockets/WebSocket.cpp: |
| (WebCore::WebSocket::connect): |
| * dom/UserGestureIndicator.cpp: |
| (WebCore::UserGestureIndicator::UserGestureIndicator): |
| * loader/DocumentLoader.cpp: |
| (WebCore::DocumentLoader::willSendRequest): |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::loadResourceSynchronously): |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::shared): |
| (WebCore::ResourceLoadObserver::setNotificationCallback): |
| (WebCore::ResourceLoadObserver::shouldLog): |
| (WebCore::ResourceLoadObserver::logFrameNavigation): |
| (WebCore::ResourceLoadObserver::logSubresourceLoading): |
| (WebCore::ResourceLoadObserver::logWebSocketLoading): |
| (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution): |
| (WebCore::ResourceLoadObserver::ensureResourceStatisticsForPrimaryDomain): |
| (WebCore::ResourceLoadObserver::takeResourceStatisticsForPrimaryDomain): |
| (WebCore::ResourceLoadObserver::isPrevalentResource): |
| (WebCore::ResourceLoadObserver::statisticsForOrigin): |
| (WebCore::ResourceLoadObserver::takeStatistics): |
| * loader/ResourceLoadObserver.h: |
| * loader/ResourceLoadStatisticsStore.cpp: |
| * loader/ResourceLoadStatisticsStore.h: |
| * loader/SubresourceLoader.cpp: |
| (WebCore::SubresourceLoader::willSendRequestInternal): |
| * testing/Internals.cpp: |
| (WebCore::Internals::resourceLoadStatisticsForOrigin): |
| |
| 2017-06-30 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| ASSERTION FAILED: !canAnimate() && !m_currentFrame |
| https://bugs.webkit.org/show_bug.cgi?id=173089 |
| |
| Reviewed by Said Abou-Hallawa. |
| |
| WebCore::BitmapImage::draw() has an assertion which ensures |
| m_currentFrame is zero in case of async decoding. But, this |
| assertion failed if an GIF animation image which have finished its |
| animation was repainted. In that time, m_currentFrame was the last |
| frame index of the image. |
| |
| Test: fast/images/animated-gif-paint-after-animation.html |
| |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::draw): Assert m_currentFrame is zero or the animation finished. |
| Call requestFrameAsyncDecodingAtIndex with m_currentFrame instead of zero. |
| |
| 2017-06-30 Ross Kirsling <ross.kirsling@sony.com> |
| |
| [PAL] Move Sound into PAL |
| https://bugs.webkit.org/show_bug.cgi?id=173999 |
| |
| Reviewed by Alex Christensen. |
| |
| * Configurations/WebCore.xcconfig: |
| * PlatformGTK.cmake: |
| * PlatformMac.cmake: |
| * PlatformWPE.cmake: |
| * PlatformWin.cmake: |
| * WebCore.xcodeproj/project.pbxproj: |
| * editing/Editor.cpp: |
| (WebCore::Editor::cut): |
| (WebCore::Editor::copy): |
| (WebCore::Editor::performDelete): |
| * editing/EditorCommand.cpp: |
| (WebCore::executeSelectToMark): |
| (WebCore::executeSwapWithMark): |
| * editing/mac/EditorMac.mm: |
| (WebCore::Editor::takeFindStringFromSelection): |
| * inspector/InspectorFrontendHost.cpp: |
| (WebCore::InspectorFrontendHost::beep): |
| * platform/Sound.h: Removed. |
| |
| 2017-06-30 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS DnD] Drag caret rect is incorrectly computed when dropping in editable content in iframes |
| https://bugs.webkit.org/show_bug.cgi?id=174017 |
| <rdar://problem/32959782> |
| |
| Reviewed by Simon Fraser. |
| |
| We're currenly computing the drag caret rect (for the purposes of presentation at the client layers) |
| incorrectly, in per-frame document coordinates instead of root view coordinates in the mainframe. This means |
| drag caret geometry from embedded iframes in the document will show up in the content view with a rect in the |
| coordinate space of the iframe. |
| |
| To fix this, we need to convert the drag caret rect to root view coordinates. This patch teaches |
| DragCaretController to do this, and tweaks WebKit/WebKit2 to use caretRectInRootViewCoordinates. |
| |
| Test: DataInteractionTests.ExternalSourcePlainTextToIFrame |
| |
| * editing/FrameSelection.cpp: |
| (WebCore::DragCaretController::caretRectInRootViewCoordinates): |
| * editing/FrameSelection.h: |
| |
| 2017-06-30 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Replace use of __is_polymorphic with standard std::is_polymorphic<>::value |
| https://bugs.webkit.org/show_bug.cgi?id=174012 |
| |
| Reviewed by Alex Christensen. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateImplementation): |
| Replace __is_polymorphic with standard std::is_polymorphic<>::value. Remove clang |
| specific guard now that we are using something other compilers support. |
| |
| * bindings/scripts/test/JS/JSInterfaceName.cpp: |
| * bindings/scripts/test/JS/JSMapLike.cpp: |
| * bindings/scripts/test/JS/JSReadOnlyMapLike.cpp: |
| * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactions.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp: |
| * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp: |
| * bindings/scripts/test/JS/JSTestEventConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestEventTarget.cpp: |
| * bindings/scripts/test/JS/JSTestException.cpp: |
| * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: |
| * bindings/scripts/test/JS/JSTestGlobalObject.cpp: |
| * bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp: |
| * bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestInterface.cpp: |
| * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp: |
| * bindings/scripts/test/JS/JSTestIterable.cpp: |
| * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: |
| * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp: |
| * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp: |
| * bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp: |
| * bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp: |
| * bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp: |
| * bindings/scripts/test/JS/JSTestNode.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/JSTestPromiseRejectionEvent.cpp: |
| * bindings/scripts/test/JS/JSTestSerialization.cpp: |
| * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: |
| * bindings/scripts/test/JS/JSTestStringifier.cpp: |
| * bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp: |
| * bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp: |
| * bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp: |
| * bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp: |
| * bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp: |
| * bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp: |
| * bindings/scripts/test/JS/JSTestTypedefs.cpp: |
| Update test results. |
| |
| 2017-06-30 Youenn Fablet <youenn@apple.com> |
| |
| Support PeerConnectionStates::BundlePolicy::MaxBundle when setting rtc configuration |
| https://bugs.webkit.org/show_bug.cgi?id=169389 |
| |
| Reviewed by Alex Christensen. |
| |
| Covered by manual testing (appr.tc and https://youennf.github.io/webrtc-tests/src/content/peerconnection/trickle-ice/). |
| Updated test is showing some more failing but this is due to the fact that we are no longer totally lying on the configuration of the |
| underlying libwebrtc backend. |
| |
| Previously, we were creating a libwebrtc peer connection and then setting its configuration. |
| libwebrtc does not like the configuration to be changed and may refuse to set the configuration. |
| Instead of doing that, we are now creating the libwebrtc peer connection with the provided configuration. |
| |
| ICE candidate pool size is disabled as it is creating issues with running tests on bots. |
| |
| * Modules/mediastream/MediaEndpointPeerConnection.cpp: |
| (WebCore::MediaEndpointPeerConnection::setConfiguration): |
| * Modules/mediastream/MediaEndpointPeerConnection.h: |
| * Modules/mediastream/PeerConnectionBackend.h: |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::initializeWith): |
| (WebCore::iceServersFromConfiguration): |
| (WebCore::RTCPeerConnection::initializeConfiguration): |
| (WebCore::RTCPeerConnection::setConfiguration): |
| * Modules/mediastream/RTCPeerConnection.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::LibWebRTCMediaEndpoint): |
| (WebCore::LibWebRTCMediaEndpoint::setConfiguration): |
| (WebCore::LibWebRTCMediaEndpoint::stop): |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::configurationFromMediaEndpointConfiguration): |
| (WebCore::LibWebRTCPeerConnectionBackend::setConfiguration): |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h: |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: |
| (WebCore::createActualPeerConnection): |
| (WebCore::LibWebRTCProvider::createPeerConnection): |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.h: |
| |
| |
| 2017-06-30 Antoine Quint <graouts@apple.com> |
| |
| Top controls bars should invert with right-to-left user interface layout direction locale |
| https://bugs.webkit.org/show_bug.cgi?id=173989 |
| <rdar://problem/32863552> |
| |
| Reviewed by Dean Jackson. |
| |
| When the user interface layout direction is set by the locale to be right-to-left, we now: |
| |
| - invert the two top controls bars |
| - invert the layout order for the fullscreen / PiP controls bar |
| - orient the volume button the opposite direction when presented in a top controls bar |
| |
| Test: media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-rtl.html |
| |
| * Modules/modern-media-controls/controls/icon-service.js: Add new RTL variants for the mute and unmute icons. |
| * Modules/modern-media-controls/controls/inline-media-controls.css: Invert the position of the two top controls |
| bars when we switch user interface layout direction. |
| (.media-controls.inline.uses-ltr-user-interface-layout-direction > .controls-bar.top-left,): |
| (.media-controls.inline.uses-ltr-user-interface-layout-direction > .controls-bar.top-right,): |
| (.media-controls.inline > .controls-bar.top-left): Deleted. |
| (.media-controls.inline > .controls-bar.top-right): Deleted. |
| * Modules/modern-media-controls/controls/inline-media-controls.js: |
| (InlineMediaControls.prototype.layout): Default to using the LTR variant for the mute button icon since |
| it should only use the RTL variant in case the locale requires it *and* we display the mute button in a |
| top controls bar rather than the bottom controls bar (ie. when width becomes constrained). |
| (InlineMediaControls.prototype._topLeftContainerButtons): Invert the order of the fullscreen and PiP |
| buttons based on the user interface layout direction. |
| (InlineMediaControls.prototype._addTopRightBarWithMuteButtonToChildren): |
| (InlineMediaControls): |
| * Modules/modern-media-controls/controls/media-controls.js: |
| (MediaControls.prototype.set usesLTRUserInterfaceLayoutDirection): Schedule a layout when the user interface |
| layout direction changes. |
| * Modules/modern-media-controls/controls/mute-button.js: Add a new "usesRTLIconVariant" property, false by |
| default, to indicate we want to use the RTL variant of the button's icon. |
| (MuteButton): |
| (MuteButton.prototype.get muted): |
| (MuteButton.prototype.set muted): |
| (MuteButton.prototype.set usesRTLIconVariant): |
| (MuteButton.prototype.layout): |
| * Modules/modern-media-controls/images/iOS/Mute-RTL.svg: Added. |
| * Modules/modern-media-controls/images/iOS/VolumeHi-RTL.svg: Added. |
| * Modules/modern-media-controls/images/macOS/Mute-RTL.svg: Added. |
| * Modules/modern-media-controls/images/macOS/VolumeHi-RTL.svg: Added. |
| * Modules/modern-media-controls/media/media-controller.js: Use an ivar to track when it's worth notifying the |
| media controls that the user interface layout direction has changed. This means we won't need to schedule a |
| layout in case it's set to the current value. |
| (MediaController): |
| (MediaController.prototype.set usesLTRUserInterfaceLayoutDirection): |
| |
| 2017-06-29 Zalan Bujtas <zalan@apple.com> |
| |
| BreakingContext::handleReplaced() should use replacedBox instead of m_current.renderer(). |
| https://bugs.webkit.org/show_bug.cgi?id=174011 |
| |
| Reviewed by Simon Fraser. |
| |
| No change in functionality. |
| |
| * rendering/line/BreakingContext.h: |
| (WebCore::BreakingContext::handleReplaced): |
| * rendering/line/LineWidth.cpp: |
| (WebCore::LineWidth::applyOverhang): |
| * rendering/line/LineWidth.h: |
| |
| 2017-06-29 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS DnD] Web content process crashes when the selection is moved far offscreen in dragstart |
| https://bugs.webkit.org/show_bug.cgi?id=174010 |
| <rdar://problem/32597802> |
| |
| Reviewed by Tim Horton. |
| |
| The TextIndicator snapshot generated in createDragImageForSelection is not guaranteed to succeed; this patch |
| adds a null check following TextIndicator::createWithSelectionInFrame and bails early if the snapshot was not |
| successful. |
| |
| Test: DataInteractionTests.DoNotCrashWhenSelectionMovesOffscreenAfterDragStart |
| |
| * platform/ios/DragImageIOS.mm: |
| (WebCore::createDragImageForSelection): |
| |
| 2017-06-29 Chris Fleizach <cfleizach@apple.com> |
| |
| AX: Cannot call setValue() on contenteditable or ARIA text controls |
| https://bugs.webkit.org/show_bug.cgi?id=173520 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add support for changing the value of a contenteditable and any other aria text control in setValue(). |
| |
| Test: accessibility/mac/set-value-editable-types.html |
| |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::setValue): |
| |
| 2017-06-28 Simon Fraser <simon.fraser@apple.com> |
| |
| getBoundingClientRect returns wrong value for combination of page zoom and scroll |
| https://bugs.webkit.org/show_bug.cgi?id=173841 |
| rdar://problem/32983841 |
| |
| Reviewed by Dean Jackson. |
| |
| The layout viewport returned by FrameView::layoutViewportRect() is affected by page (Command-+) zooming, |
| since it's computed using scroll positions, so when we use its origin to convert into client coordinates |
| (which are zoom-agnostic), we need to account for page zoom, so fix FrameView::documentToClientOffset() |
| to do this. |
| |
| Callers of documentToClientOffset() were checked, revealing that event client coordinates were also |
| wrong with page zoom and are fixed in the same way. It was found that SimulatedClick was using an |
| entirely wrong rect to compute its location: Element::clientRect() is NOT in client coordinates, |
| so change this code to use getBoundingClientRect() instead. |
| |
| Minor refactoring in MouseRelatedEvent to make getting to the FrameView cleaner. |
| |
| Some geometry types enhanced to have non-mutating scale functions. |
| |
| Tests: fast/events/simulated-click-zoomed.html |
| fast/visual-viewport/client-rects-relative-to-layout-viewport-zoomed.html |
| |
| * dom/MouseRelatedEvent.cpp: |
| (WebCore::MouseRelatedEvent::init): |
| (WebCore::MouseRelatedEvent::initCoordinates): |
| (WebCore::MouseRelatedEvent::frameView): |
| (WebCore::MouseRelatedEvent::documentToAbsoluteScaleFactor): |
| (WebCore::MouseRelatedEvent::computePageLocation): |
| (WebCore::MouseRelatedEvent::computeRelativePosition): |
| (WebCore::pageZoomFactor): Deleted. |
| (WebCore::frameScaleFactor): Deleted. |
| * dom/MouseRelatedEvent.h: |
| (WebCore::MouseRelatedEvent::absoluteLocation): |
| (WebCore::MouseRelatedEvent::setAbsoluteLocation): Deleted. |
| * dom/SimulatedClick.cpp: |
| * page/FrameView.cpp: |
| (WebCore::FrameView::layoutViewportRect): baseLayoutViewportSize() is the same as the old code. |
| (WebCore::FrameView::documentToAbsoluteScaleFactor): |
| (WebCore::FrameView::absoluteToDocumentScaleFactor): |
| (WebCore::FrameView::absoluteToDocumentPoint): |
| (WebCore::FrameView::documentToClientOffset): |
| * page/FrameView.h: |
| * platform/graphics/FloatPoint.h: |
| (WebCore::FloatPoint::scale): |
| (WebCore::FloatPoint::scaled): |
| * platform/graphics/FloatSize.h: |
| (WebCore::FloatSize::scaled): |
| * platform/graphics/LayoutPoint.h: |
| (WebCore::LayoutPoint::scaled): |
| |
| 2017-06-29 Megan Gardner <megan_gardner@apple.com> |
| |
| Unreviewed, fixing Window's build after r218976 |
| |
| * rendering/ScrollAlignment.cpp: |
| (WebCore::operator<<): |
| |
| 2017-06-29 Megan Gardner <megan_gardner@apple.com> |
| |
| Add TextStream operators for Range, VisiblePosition, VisibleSelection, and ScrollAlignment |
| https://bugs.webkit.org/show_bug.cgi?id=173997 |
| |
| Reviewed by Simon Fraser. |
| |
| Adding logging that can be used with TextStream-based LOG_WITH_STREAM. |
| |
| * dom/Range.cpp: |
| (WebCore::operator<<): |
| * dom/Range.h: |
| * editing/VisiblePosition.h: |
| * editing/VisibleSelection.cpp: |
| (WebCore::operator<<): |
| * editing/VisibleSelection.h: |
| * rendering/ScrollAlignment.cpp: |
| (WebCore::operator<<): |
| * rendering/ScrollAlignment.h: |
| |
| 2017-06-29 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r218903. |
| |
| This patch and its fix cause immediate flakiness on all WK2 |
| testers |
| |
| Reverted changeset: |
| |
| "Support PeerConnectionStates::BundlePolicy::MaxBundle when |
| setting rtc configuration" |
| https://bugs.webkit.org/show_bug.cgi?id=169389 |
| http://trac.webkit.org/changeset/218903 |
| |
| 2017-06-29 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r218963. |
| |
| This patch and its fix cause immediate flakiness on all WK2 |
| testers |
| |
| Reverted changeset: |
| |
| "Support PeerConnectionStates::BundlePolicy::MaxBundle when |
| setting rtc configuration" |
| https://bugs.webkit.org/show_bug.cgi?id=169389 |
| http://trac.webkit.org/changeset/218963 |
| |
| 2017-06-29 Chris Dumez <cdumez@apple.com> |
| |
| Split ResourceLoadObserver into 2 classes: one for WebCore and one for the UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=173990 |
| |
| Reviewed by Brent Fulgham. |
| |
| Split ResourceLoadObserver into 2 classes: one for WebCore and one for the UIProcess. |
| They really have different API and there is therefore close to no code duplication. |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::primaryDomain): |
| (WebCore::ResourceLoadObserver::setStatisticsQueue): |
| (WebCore::ResourceLoadObserver::shouldLog): |
| * loader/ResourceLoadObserver.h: |
| * loader/ResourceLoadStatisticsStore.cpp: |
| (WebCore::ResourceLoadStatisticsStore::primaryDomain): |
| * loader/ResourceLoadStatisticsStore.h: |
| * platform/URL.h: |
| |
| 2017-06-29 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Remove custom binding for UserMessageHandlersNamespace |
| https://bugs.webkit.org/show_bug.cgi?id=173956 |
| |
| Reviewed by Darin Adler. |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSUserMessageHandlersNamespaceCustom.cpp: Removed. |
| Remove JSUserMessageHandlersNamespaceCustom.cpp |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateNamedGetterLambda): |
| Add support for calling named getters with additional arguments from [CallWith]. |
| |
| (GenerateAttributeGetterBodyDefinition): |
| (GenerateAttributeSetterBodyDefinition): |
| (GenerateCallWithUsingReferences): |
| (GenerateCallWithUsingPointers): |
| (GenerateConstructorCallWithUsingPointers): |
| (GenerateCallWith): |
| (GenerateParametersCheck): |
| Update arguments to GenerateCallWith(Using...) to no longer pass an operation, |
| which was only needed for the no longer used ScriptArguments, pass a thisObject |
| reference, and optionally pass an indentation. |
| |
| * bindings/scripts/IDLAttributes.json: |
| Remove no longer used ScriptArguments and CallStack, add World. |
| |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttributeGetter): Deleted. |
| (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute): Deleted. |
| (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttributeSetter): Deleted. |
| (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute): Deleted. |
| (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStackBody): Deleted. |
| (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack): Deleted. |
| * bindings/scripts/test/TestObj.idl: |
| Remove tests of ScriptArguments and CallStack. |
| |
| * bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp: Added. |
| * bindings/scripts/test/JS/JSTestNamedGetterCallWith.h: Added. |
| * bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp: Added. |
| * bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.h: Added. |
| * bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp: Added. |
| * bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.h: Added. |
| * bindings/scripts/test/TestNamedGetterCallWith.idl: Added. |
| * bindings/scripts/test/TestNamedGetterNoIdentifier.idl: Added. |
| * bindings/scripts/test/TestNamedGetterWithIdentifier.idl: Added. |
| Add basic named getter tests and a specific test of named getters using CallWith. |
| |
| * page/UserMessageHandlersNamespace.cpp: |
| (WebCore::UserMessageHandlersNamespace::supportedPropertyNames): |
| (WebCore::UserMessageHandlersNamespace::namedItem): |
| (WebCore::UserMessageHandlersNamespace::handler): Deleted. |
| * page/UserMessageHandlersNamespace.h: |
| Rename handler to namedItem, matching convention and the expectations of the |
| bindings generator and swap the order of the arguments for the same reason. |
| |
| * page/UserMessageHandlersNamespace.idl: |
| Remove CustomGetOwnPropertySlotAndDescriptor, and add the anonymous named getter. |
| |
| 2017-06-29 Chris Dumez <cdumez@apple.com> |
| |
| Avoid copying ResourceLoadStatistics objects |
| https://bugs.webkit.org/show_bug.cgi?id=173972 |
| |
| Reviewed by Brent Fulgham. |
| |
| Avoid copying ResourceLoadStatistics objects given that they are big. Make the type move-only |
| to avoid such mistakes in the future. |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::logFrameNavigation): |
| * loader/ResourceLoadStatistics.h: |
| (WebCore::ResourceLoadStatistics::ResourceLoadStatistics): |
| |
| 2017-06-29 John Wilander <wilander@apple.com> |
| |
| Fix for intermittent Layout Test fail http/tests/loading/resourceLoadStatistics/telemetry-generation.html |
| https://bugs.webkit.org/show_bug.cgi?id=173940 |
| <rdar://problem/33018125> |
| |
| Reviewed by Brent Fulgham. |
| |
| No new tests. This change enables the exiting test to pass. |
| |
| * loader/ResourceLoadStatisticsStore.cpp: |
| (WebCore::ResourceLoadStatisticsStore::sortedPrevalentResourceTelemetry): |
| Added an assert. |
| |
| 2017-06-29 Youenn Fablet <youenn@apple.com> |
| |
| Support PeerConnectionStates::BundlePolicy::MaxBundle when setting rtc configuration |
| https://bugs.webkit.org/show_bug.cgi?id=169389 |
| |
| Unreviewed. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::configurationFromMediaEndpointConfiguration): Reactivating CPU overuse detection as it might be the cause of the bots regressions. |
| |
| 2017-06-29 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] ResourceHandleManager violate the class responsibility of ResourceHandle |
| https://bugs.webkit.org/show_bug.cgi?id=173630 |
| |
| Reviewed by Alex Christensen. |
| |
| * platform/network/ResourceHandle.h: |
| * platform/network/curl/ResourceHandleCurl.cpp: |
| (WebCore::ResourceHandle::platformLoadResourceSynchronously): |
| (WebCore::calculateWebTimingInformations): |
| (WebCore::handleLocalReceiveResponse): |
| (WebCore::writeCallback): |
| (WebCore::isHttpInfo): |
| (WebCore::isHttpRedirect): |
| (WebCore::isHttpAuthentication): |
| (WebCore::isHttpNotModified): |
| (WebCore::isAppendableHeader): |
| (WebCore::removeLeadingAndTrailingQuotes): |
| (WebCore::getProtectionSpace): |
| (WebCore::headerCallback): |
| (WebCore::readCallback): |
| (WebCore::getFormElementsCount): |
| (WebCore::setupFormData): |
| (WebCore::ResourceHandle::setupPUT): |
| (WebCore::ResourceHandle::setupPOST): |
| (WebCore::ResourceHandle::handleDataURL): |
| (WebCore::ResourceHandle::dispatchSynchronousJob): |
| (WebCore::ResourceHandle::applyAuthentication): |
| (WebCore::ResourceHandle::initialize): |
| (WebCore::ResourceHandle::handleCurlMsg): |
| * platform/network/curl/ResourceHandleManager.cpp: |
| (WebCore::ResourceHandleManager::downloadTimerCallback): |
| (WebCore::ResourceHandleManager::startJob): |
| (WebCore::calculateWebTimingInformations): Deleted. |
| (WebCore::isHttpInfo): Deleted. |
| (WebCore::isHttpRedirect): Deleted. |
| (WebCore::isHttpAuthentication): Deleted. |
| (WebCore::isHttpNotModified): Deleted. |
| (WebCore::handleLocalReceiveResponse): Deleted. |
| (WebCore::writeCallback): Deleted. |
| (WebCore::isAppendableHeader): Deleted. |
| (WebCore::removeLeadingAndTrailingQuotes): Deleted. |
| (WebCore::getProtectionSpace): Deleted. |
| (WebCore::headerCallback): Deleted. |
| (WebCore::readCallback): Deleted. |
| (WebCore::getFormElementsCount): Deleted. |
| (WebCore::setupFormData): Deleted. |
| (WebCore::ResourceHandleManager::setupPUT): Deleted. |
| (WebCore::ResourceHandleManager::setupPOST): Deleted. |
| (WebCore::handleDataURL): Deleted. |
| (WebCore::ResourceHandleManager::dispatchSynchronousJob): Deleted. |
| (WebCore::ResourceHandleManager::applyAuthenticationToRequest): Deleted. |
| (WebCore::ResourceHandleManager::initializeHandle): Deleted. |
| * platform/network/curl/ResourceHandleManager.h: |
| |
| 2017-06-29 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Async image decoding should be disabled for iBooks on tvOS |
| https://bugs.webkit.org/show_bug.cgi?id=173945 |
| |
| Reviewed by Simon Fraser. |
| |
| The iBooks on tvOS is an AppStore application. We need to disable async |
| image decoding for iBooks on tvOS permanently through WebKit. |
| |
| * platform/cocoa/RuntimeApplicationChecksCocoa.mm: |
| (WebCore::IOSApplication::isIBooks): |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::updateFromSettings): |
| |
| 2017-06-29 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Add a new extended attribute to model the forced return value optimization used on Node and Crypto |
| https://bugs.webkit.org/show_bug.cgi?id=173961 |
| |
| Reviewed by Darin Adler. |
| |
| Node and Crypto were both using custom bindings to implement an optimization |
| for operations that always returned one one of the arguments passed in. The |
| optimization directly returns the JSValue argument, avoiding wrapping and |
| unwrapping, and all the cache lookups that might entail. This allows that |
| optimization to work without custom bindings by adding a new extended attribute |
| [ReturnValue] that can annotate an argument. When used, the implementation |
| function is expected to return either void or ExceptionOr<void>. |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSBindingsAllInOne.cpp: |
| * bindings/js/JSCryptoCustom.cpp: Removed. |
| Remove JSCryptoCustom.cpp. |
| |
| * bindings/js/JSNodeCustom.cpp: |
| (WebCore::JSNode::insertBefore): Deleted. |
| (WebCore::JSNode::replaceChild): Deleted. |
| (WebCore::JSNode::removeChild): Deleted. |
| (WebCore::JSNode::appendChild): Deleted. |
| Remove custom functions. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (OperationHasForcedReturnValue): |
| Add helper to determine if an operation has [ReturnValue] on any argument. |
| |
| (NeedsExplicitPropagateExceptionCall): |
| We must treat operations with a [ReturnValue] argument like we do operations |
| returning void, and explicitly check for exceptions. |
| |
| (GenerateParametersCheck): |
| Pull out the argument in a variable called 'returnValue' if it is annotated |
| with [ReturnValue]. |
| |
| (GenerateImplementationFunctionCall): |
| Special case operations with a [ReturnValue] argument to return the previously |
| set aside 'returnValue' variable. |
| |
| * bindings/scripts/IDLAttributes.json: |
| Add [ReturnValue]. |
| |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| (WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationBody): |
| (WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimization): |
| (WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationWithExceptionBody): |
| (WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationWithException): |
| * bindings/scripts/test/TestObj.idl: |
| Add tests for [ReturnValue]. |
| |
| * dom/Node.idl: |
| * page/Crypto.idl: |
| Add [ReturnValue] annotations and remove [Custom] annotations. |
| |
| 2017-06-29 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r218944. |
| |
| Optimization is incorrect |
| |
| Reverted changeset: |
| |
| "Avoid copying ResourceLoadStatistics objects" |
| https://bugs.webkit.org/show_bug.cgi?id=173972 |
| http://trac.webkit.org/changeset/218944 |
| |
| 2017-06-29 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r218896): ASSERT in WebPageProxy::dataCallback |
| https://bugs.webkit.org/show_bug.cgi?id=173968 |
| |
| Reviewed by Michael Catanzaro. |
| |
| The problem is that WebPageProxy::getLoadDecisionForIcon() sends 0 as callback ID when the decision is to not |
| load the icon. Since r218896 we always notify the client even when the decision is to not load the icon, in |
| which case the UI doesn't really expect a callback. When WebPageProxy::dataCallback is called with a 0 callback ID, |
| CallbackMap::take() crashes in RELEASE_ASSERT(callbackID). |
| |
| Fixes several GTK+ unit tests that are crashing. |
| |
| * loader/DocumentLoader.cpp: |
| (WebCore::DocumentLoader::didGetLoadDecisionForIcon): Return earlier if decision is false or frame is nullptr. |
| (WebCore::DocumentLoader::finishedLoadingIcon): Move RELEASE_ASSERT to notifyFinishedLoadingIcon(). |
| (WebCore::DocumentLoader::notifyFinishedLoadingIcon): Assert if callbackIdentifier is 0 or m_frame is nullptr, |
| since it's no longer expected to happen. |
| |
| 2017-06-29 Chris Dumez <cdumez@apple.com> |
| |
| statistics.mostRecentUserInteraction should be of type WallTime |
| https://bugs.webkit.org/show_bug.cgi?id=173974 |
| |
| Reviewed by Brent Fulgham. |
| |
| statistics.mostRecentUserInteraction should be of type WallTime for clarity. |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution): |
| (WebCore::ResourceLoadObserver::logUserInteraction): |
| (WebCore::ResourceLoadObserver::clearUserInteraction): |
| * loader/ResourceLoadStatistics.cpp: |
| (WebCore::ResourceLoadStatistics::encode): |
| (WebCore::ResourceLoadStatistics::decode): |
| (WebCore::ResourceLoadStatistics::toString): |
| (WebCore::ResourceLoadStatistics::merge): |
| * loader/ResourceLoadStatistics.h: |
| (WebCore::ResourceLoadStatistics::mostRecentUserInteractionTime): Deleted. |
| * loader/ResourceLoadStatisticsStore.cpp: |
| (WebCore::shouldPartitionCookies): |
| (WebCore::ResourceLoadStatisticsStore::hasHadRecentUserInteraction): |
| (WebCore::ResourceLoadStatisticsStore::sortedPrevalentResourceTelemetry): |
| |
| 2017-06-29 JF Bastien <jfbastien@apple.com> |
| |
| WebAssembly: disable some APIs under CSP |
| https://bugs.webkit.org/show_bug.cgi?id=173892 |
| <rdar://problem/32914613> |
| |
| Reviewed by Daniel Bates. |
| |
| This does the basic separation of eval-blocked and |
| WebAssembly-blocked, but currently only blocks neither or both. I |
| think we'll eventually consider allowing one to be blocked but not |
| the other, so this separation makes sense and means that when we |
| want to do the change it'll be tiny. At a minimum we want a |
| different error message, which this patch provides (a lot of the |
| code ties blocking to the error message). |
| |
| Tests: http/tests/security/contentSecurityPolicy/WebAssembly-allowed.html |
| http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-about-blank-iframe.html |
| http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-external-script.html |
| http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-subframe.html |
| http/tests/security/contentSecurityPolicy/WebAssembly-blocked.html |
| |
| * bindings/js/ScriptController.cpp: |
| (WebCore::ScriptController::enableWebAssembly): |
| (WebCore::ScriptController::disableWebAssembly): |
| * bindings/js/ScriptController.h: |
| * bindings/js/WorkerScriptController.cpp: |
| (WebCore::WorkerScriptController::disableWebAssembly): |
| * bindings/js/WorkerScriptController.h: |
| * dom/Document.cpp: |
| (WebCore::Document::disableWebAssembly): |
| * dom/Document.h: |
| * dom/ScriptExecutionContext.h: |
| * page/csp/ContentSecurityPolicy.cpp: |
| (WebCore::ContentSecurityPolicy::didCreateWindowProxy): |
| (WebCore::ContentSecurityPolicy::applyPolicyToScriptExecutionContext): |
| * page/csp/ContentSecurityPolicy.h: |
| * page/csp/ContentSecurityPolicyDirectiveList.cpp: |
| (WebCore::ContentSecurityPolicyDirectiveList::create): |
| * page/csp/ContentSecurityPolicyDirectiveList.h: |
| (WebCore::ContentSecurityPolicyDirectiveList::webAssemblyDisabledErrorMessage): |
| (WebCore::ContentSecurityPolicyDirectiveList::setWebAssemblyDisabledErrorMessage): |
| * workers/WorkerGlobalScope.cpp: |
| (WebCore::WorkerGlobalScope::disableWebAssembly): |
| * workers/WorkerGlobalScope.h: |
| |
| 2017-06-29 Zalan Bujtas <zalan@apple.com> |
| |
| Make InlineBox::m_topLeft and m_logicalWidth protected. |
| https://bugs.webkit.org/show_bug.cgi?id=173973 |
| |
| Reviewed by Simon Fraser. |
| |
| I don't think this reasoning from 10 years ago is valid anymore -> |
| "FIXME: Would like to make this protected, but methods are accessing these members over in the part." |
| (comment was conveniently removed in a later commit). |
| |
| No change in functionality. |
| |
| * rendering/InlineBox.h: |
| (WebCore::InlineBox::InlineBox): |
| |
| 2017-06-29 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS DnD] Adopt +objectWithItemProviderData: for serializing NSItemProviderReading-conformant objects |
| https://bugs.webkit.org/show_bug.cgi?id=173971 |
| <rdar://problem/33006605> |
| |
| Reviewed by Tim Horton. |
| |
| Moves off of a very-recently-deprecated API, in favor of its replacement. Guarded by a runtime check and staging |
| declarations. No change in behavior. |
| |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (-[WebItemProviderPasteboard valuesForPasteboardType:inItemSet:]): |
| |
| 2017-06-29 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Separate global curl settings from ResourceHandleManager as CurlContext class |
| https://bugs.webkit.org/show_bug.cgi?id=173629 |
| |
| Reviewed by Alex Christensen. |
| |
| * PlatformWinCairo.cmake: |
| * platform/network/curl/CookieJarCurl.cpp: |
| (WebCore::setCookiesFromDOM): |
| (WebCore::cookiesForSession): |
| * platform/network/curl/CurlContext.cpp: Added. |
| (WebCore::certificatePath): |
| (WebCore::cookieJarPath): |
| (WebCore::CurlContext::CurlContext): |
| (WebCore::CurlContext::~CurlContext): |
| (WebCore::CurlContext::initCookieSession): |
| (WebCore::CurlContext::ProxyInfo::url): |
| (WebCore::CurlContext::setProxyInfo): |
| (WebCore::CurlContext::getEffectiveURL): |
| (WebCore::CurlContext::createMultiHandle): |
| (WebCore::CurlContext::mutexFor): |
| (WebCore::CurlContext::lock): |
| (WebCore::CurlContext::unlock): |
| * platform/network/curl/CurlContext.h: Added. |
| (WebCore::CurlContext::singleton): |
| (WebCore::CurlContext::curlShareHandle): |
| (WebCore::CurlContext::getCookieJarFileName): |
| (WebCore::CurlContext::setCookieJarFileName): |
| (WebCore::CurlContext::getCertificatePath): |
| (WebCore::CurlContext::shouldIgnoreSSLErrors): |
| (WebCore::CurlContext::proxyInfo): |
| (WebCore::CurlContext::setProxyInfo): |
| (WebCore::CurlContext::getLogFile): |
| (WebCore::CurlContext::isVerbose): |
| * platform/network/curl/CurlDownload.cpp: |
| (WebCore::CurlDownload::init): |
| (WebCore::CurlDownload::start): |
| (WebCore::CurlDownload::cancel): |
| (WebCore::CurlDownload::didReceiveHeader): |
| * platform/network/curl/CurlDownload.h: |
| * platform/network/curl/CurlJobManager.cpp: Renamed from Source/WebCore/platform/network/curl/CurlManager.cpp. |
| (WebCore::CurlJobManager::CurlJobManager): |
| (WebCore::CurlJobManager::~CurlJobManager): |
| (WebCore::CurlJobManager::add): |
| (WebCore::CurlJobManager::remove): |
| (WebCore::CurlJobManager::getActiveCount): |
| (WebCore::CurlJobManager::getPendingCount): |
| (WebCore::CurlJobManager::startThreadIfNeeded): |
| (WebCore::CurlJobManager::stopThread): |
| (WebCore::CurlJobManager::stopThreadIfIdle): |
| (WebCore::CurlJobManager::updateHandleList): |
| (WebCore::CurlJobManager::addToCurl): |
| (WebCore::CurlJobManager::removeFromCurl): |
| (WebCore::CurlJobManager::workerThread): |
| * platform/network/curl/CurlJobManager.h: Renamed from Source/WebCore/platform/network/curl/CurlManager.h. |
| (WebCore::CurlJobManager::singleton): |
| * platform/network/curl/ResourceHandleManager.cpp: |
| (WebCore::ResourceHandleManager::ResourceHandleManager): |
| (WebCore::ResourceHandleManager::~ResourceHandleManager): |
| (WebCore::handleLocalReceiveResponse): |
| (WebCore::getProtectionSpace): |
| (WebCore::headerCallback): |
| (WebCore::ResourceHandleManager::downloadTimerCallback): |
| (WebCore::ResourceHandleManager::initializeHandle): |
| (WebCore::certificatePath): Deleted. |
| (WebCore::cookieJarPath): Deleted. |
| (WebCore::ResourceHandleManager::setCookieJarFileName): Deleted. |
| (WebCore::ResourceHandleManager::getCookieJarFileName): Deleted. |
| (WebCore::ResourceHandleManager::setProxyInfo): Deleted. |
| (WebCore::ResourceHandleManager::initCookieSession): Deleted. |
| * platform/network/curl/ResourceHandleManager.h: |
| (): Deleted. |
| |
| 2017-06-29 Chris Dumez <cdumez@apple.com> |
| |
| Avoid copying ResourceLoadStatistics objects |
| https://bugs.webkit.org/show_bug.cgi?id=173972 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Avoid copying ResourceLoadStatistics objects given that they are big. Make the type move-only |
| to avoid such mistakes in the future. |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::logFrameNavigation): |
| * loader/ResourceLoadStatistics.h: |
| (WebCore::ResourceLoadStatistics::ResourceLoadStatistics): |
| |
| 2017-06-29 Antoine Quint <graouts@apple.com> |
| |
| Full stop shows to the right of the picture-in-picture localised string in Hebrew |
| https://bugs.webkit.org/show_bug.cgi?id=173966 |
| <rdar://problem/32847376> |
| |
| Reviewed by Dean Jackson. |
| |
| We manually set the CSS "direction" property to "rtl" when we're not using an LTR language for a placard. |
| |
| Test: media/modern-media-controls/placard/placard-ltr.html |
| |
| * Modules/modern-media-controls/controls/placard.css: |
| (.media-controls:not(.uses-ltr-user-interface-layout-direction) .placard): |
| |
| 2017-06-29 Brent Fulgham <bfulgham@apple.com> |
| |
| Unreviewed Apple CMake build after r218901 |
| |
| I did not add 'cocoa/FileMonitorCocoa.mm' to the PlatformMac.cmake file as part of r218901.): |
| |
| * PlatformMac.cmake: |
| |
| 2017-06-29 Frederic Wang <fwang@igalia.com> |
| |
| Small improvement of calls to RenderLayerBacking members |
| https://bugs.webkit.org/show_bug.cgi?id=173969 |
| |
| Reviewed by Simon Fraser. |
| |
| No new tests, behavior unchanged. |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::tiledBacking): Access the member with RenderLayerBacking::tiledBacking. |
| (WebCore::FrameView::updateTilesForExtendedBackgroundMode): Ditto. |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::usesCompositedScrolling): Use RenderLayerBacking::hasScrollingLayer as |
| it better matches the intention of the check here. |
| |
| 2017-06-29 Romain Bellessort <romain.bellessort@crf.canon.fr> |
| |
| [Readable Streams API] Fix ReadableStream "strategy" argument handling |
| https://bugs.webkit.org/show_bug.cgi?id=172716 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| Aligned default strategy parameter with spec, as defined in [1]. |
| |
| [1] https://streams.spec.whatwg.org/#rs-constructor |
| |
| Added new tests and updated some existing ones based on the newly |
| expected behavior. Also updated expectations for WPT streams tests. |
| |
| * Modules/streams/ReadableStream.js: |
| (initializeReadableStream): Fixed initialization of strategy. |
| |
| 2017-06-29 Antti Koivisto <antti@apple.com> |
| |
| REGRESSION(r215347): NAS4Free Pop-down menus fail to appear |
| https://bugs.webkit.org/show_bug.cgi?id=173967 |
| <rdar://problem/32690114> |
| |
| Reviewed by Andreas Kling. |
| |
| Menus on this configuration page operate by mutating visibility. We fail to trigger required |
| compositing updates when visibility changes on non-composited layer. Visibility of a non-composited |
| descendant may affect geometry of the composited ancestor layer. |
| |
| Test: compositing/backing/non-composited-visibility-change.html |
| |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::layerStyleChanged): |
| (WebCore::RenderLayerCompositor::needsCompositingUpdateForStyleChangeOnNonCompositedLayer): Added. |
| |
| Trigger compositing update for non-composited layers on visibility change. |
| Factor tests into function. |
| |
| * rendering/RenderLayerCompositor.h: |
| |
| 2017-06-28 Frederic Wang <fwang@igalia.com> |
| |
| Align Document::canNavigate on the HTM5 specification |
| https://bugs.webkit.org/show_bug.cgi?id=173162 |
| |
| Reviewed by Chris Dumez. |
| |
| Currently when a frame A with a sandboxed navigation flag tries and navigates another frame B |
| then Document::canNavigate verifies the cases where we try to navigate A's top frame (in |
| that case the allow-top-navigation flag is needed) or not (in that case, B must be a |
| descendant of A). This patch refines that a bit to check the case where B is a popup (in that |
| case navigation is permitted if A is the opener of B). This change aligns on the HTML5 |
| specification and allows to pass more W3C Web Platform tests. |
| See https://html.spec.whatwg.org/multipage/browsers.html#allowed-to-navigate |
| |
| Tests: imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html |
| imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::canNavigate): This refines the case where the document's frame has the |
| sandbox navigation flag set in order to handle popup navigation. New comments referring to |
| the HTML5 specification are also added. |
| |
| 2017-06-28 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Only apply font features for the particular type of font they are being applied to |
| https://bugs.webkit.org/show_bug.cgi?id=172661 |
| <rdar://problem/31534119> |
| <rdar://problem/32799624> |
| |
| Reviewed by Simon Fraser. |
| |
| There are two types of font formats which support features: AAT and OTF. Each of them has |
| a different idea about what the identity of a feature is. We were specifying both types |
| of feature identities to Core Text; however, this is causing Core Text to get confused. |
| Instead, we should only apply AAT features to AAT fonts and OTF features to OTF fonts. |
| |
| Test: Un-marking these tests as failure on High Sierra: |
| css3/font-variant-petite-caps-synthesis-coverage.html |
| css3/font-variant-small-caps-synthesis-coverage.html |
| |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::FontType::FontType): |
| (WebCore::preparePlatformFont): |
| (WebCore::variationCapabilitiesForFontDescriptor): |
| (WebCore::isGXVariableFont): Deleted. |
| |
| 2017-06-28 Chris Dumez <cdumez@apple.com> |
| |
| [ResourceLoadStatistics] Simplify PrevalentResourceTelemetry struct |
| https://bugs.webkit.org/show_bug.cgi?id=173953 |
| |
| Reviewed by Sam Weinig. |
| |
| * loader/ResourceLoadStatisticsStore.cpp: |
| (WebCore::ResourceLoadStatisticsStore::sortedPrevalentResourceTelemetry): |
| * loader/ResourceLoadStatisticsStore.h: |
| (WebCore::PrevalentResourceTelemetry::PrevalentResourceTelemetry): Deleted. |
| |
| 2017-06-28 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Crash in WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange |
| https://bugs.webkit.org/show_bug.cgi?id=173958 |
| |
| Reviewed by Simon Fraser. |
| |
| The crashed is most likely caused by updateLayersAfterAncestorChange calling [CALayer setPosition] |
| with a CGPoint which contains the x coordinate or the y coordinate of NaN. |
| |
| Simon and I inpected the code but we couldn't figure out how we get there. Detect this case and bail out. |
| Also log the relevant values and debug assert when this condition is hit to help identifying the root cause. |
| |
| * page/scrolling/mac/ScrollingTreeFixedNode.mm: |
| (WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange): |
| |
| 2017-06-28 Chris Dumez <cdumez@apple.com> |
| |
| ResourceLoadObserver clean up |
| https://bugs.webkit.org/show_bug.cgi?id=173955 |
| |
| Reviewed by Sam Weinig and Brent Fulgham. |
| |
| ResourceLoadObserver clean up: Modernize code a bit and get rid of unused variables. |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::clearInMemoryStore): |
| (WebCore::ResourceLoadObserver::clearInMemoryAndPersistentStore): |
| (WebCore::ResourceLoadObserver::shouldLog): |
| (WebCore::ResourceLoadObserver::logFrameNavigation): |
| (WebCore::ResourceLoadObserver::logSubresourceLoading): |
| (WebCore::ResourceLoadObserver::logWebSocketLoading): |
| (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution): |
| (WebCore::ResourceLoadObserver::logUserInteraction): |
| (WebCore::ResourceLoadObserver::setSubframeUnderTopFrameOrigin): |
| (WebCore::ResourceLoadObserver::setSubresourceUnderTopFrameOrigin): |
| (WebCore::ResourceLoadObserver::setSubresourceUniqueRedirectTo): |
| (WebCore::ResourceLoadObserver::fireDataModificationHandler): |
| (WebCore::ResourceLoadObserver::fireShouldPartitionCookiesHandler): |
| (WebCore::ResourceLoadObserver::primaryDomain): |
| (WebCore::ResourceLoadObserver::statisticsForOrigin): |
| |
| 2017-06-28 Zalan Bujtas <zalan@apple.com> |
| |
| Move RenderEmbeddedObject::isReplacementObscured to HTMLPlugInElement |
| https://bugs.webkit.org/show_bug.cgi?id=173802 |
| <rdar://problem/32884389> |
| |
| Reviewed by Simon Fraser. |
| |
| Hittesting could potentially destroy "this" renderer so calling it inside RenderEmbeddedObject |
| could leave the caller with a stale pointer. |
| This patch protects the plugin element from getting destroyed and checks if the renderer got |
| deleted during the hittest to avoid nullptr dereference. |
| |
| Speculative fix. |
| |
| * html/HTMLPlugInElement.cpp: |
| (WebCore::HTMLPlugInElement::isReplacementObscured): |
| * html/HTMLPlugInElement.h: |
| * rendering/RenderEmbeddedObject.cpp: |
| (WebCore::RenderEmbeddedObject::isReplacementObscured): Deleted. |
| * rendering/RenderEmbeddedObject.h: |
| * testing/Internals.cpp: |
| (WebCore::Internals::isPluginUnavailabilityIndicatorObscured): |
| |
| 2017-06-28 Chris Dumez <cdumez@apple.com> |
| |
| Avoid copying statistics in ResourceLoadStatisticsStore::readDataFromDecoder() |
| https://bugs.webkit.org/show_bug.cgi?id=173951 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * loader/ResourceLoadStatisticsStore.cpp: |
| (WebCore::ResourceLoadStatisticsStore::readDataFromDecoder): |
| |
| 2017-06-28 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Safari's Speedometer score massively regresses when accessibility is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=173912 |
| |
| Reviewed by Chris Fleizach. |
| |
| The bug was caused by HTMLTextFormControlElement::setInnerTextValue triggering a synchronous layout |
| via constructing VisiblePosition when the accessibility tree is present. |
| |
| Added AXObjectCache::postTextReplacementNotificationForTextControl which avoids the construction of |
| VisiblePosition and other means of triggering a synchronous layout. This patch also fixes a subtle bug |
| that HTMLTextFormControlElement was creating TextMarkerData with axID set to that of the text control |
| element instead of the root editable element inside its shadow tree even though the typing command uses |
| axID of the root editable element. While I couldn't find any user-visible behavioral change from this |
| code change, new code is more self-consistent. |
| |
| Also added LayoutDisallowedScope which asserts that no synchronous layout happens in setInnerTextValue |
| so that we don't introduce a new performance regression like this in the future. |
| |
| No new tests. Existing tests in accessibility directory covers this. |
| |
| * CMakeLists.txt: Added LayoutDisallowedScope.cpp. |
| * WebCore.xcodeproj/project.pbxproj: Ditto. |
| |
| * accessibility/AXObjectCache.cpp: |
| (WebCore::AXObjectCache::postTextReplacementNotificationForTextControl): Added. |
| (WebCore::AXObjectCache::textMarkerDataForVisiblePosition): Modernized. Returns optional<TextMarkerData> |
| instead of taking TextMarkerData as an out-argument, and returning with axID of 0. |
| (WebCore::AXObjectCache::textMarkerDataForFirstPositionInTextControl): Added. This specialized version |
| constructs TextMarkerData for the first position inside the editable region in a text control without |
| triggering a synchronous layout. |
| |
| * accessibility/AXObjectCache.h: |
| (WebCore::TextMarkerData): Initialize each member automatically. |
| (WebCore::AXObjectCache::postTextReplacementNotificationForTextControl): |
| |
| * accessibility/ios/AXObjectCacheIOS.mm: |
| (WebCore::AXObjectCache::postTextReplacementPlatformNotificationForTextControl): Added. |
| |
| * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: |
| (+[WebAccessibilityTextMarker textMarkerWithVisiblePosition:cache:]): |
| |
| * accessibility/mac/AXObjectCacheMac.mm: |
| (WebCore::addTextMarkerFor): Extracted from textReplacementChangeDictionary. Added a new variant which |
| takes a text form control instead. |
| (WebCore::textReplacementChangeDictionary): Templatized this function to either take VisiblePosition |
| and call textMarkerForVisiblePosition or take HTMLTextFormControlElement and call |
| textMarkerForFirstPositionInTextControl. |
| (WebCore::postUserInfoForChanges): Extracted from postTextReplacementPlatformNotification. |
| (WebCore::AXObjectCache::postTextReplacementPlatformNotification): |
| (WebCore::AXObjectCache::postTextReplacementPlatformNotificationForTextControl): Added. |
| |
| * accessibility/mac/WebAccessibilityObjectWrapperBase.h: |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.h: |
| |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: |
| (textMarkerForVisiblePosition): |
| (-[WebAccessibilityObjectWrapper textMarkerForFirstPositionInTextControl:]): Added. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::updateLayout): Assert that LayoutDisallowedScope is not in the stack frame. |
| |
| * html/HTMLTextFormControlElement.cpp: |
| (WebCore::HTMLTextFormControlElement::setInnerTextValue): Call postTextReplacementNotificationForTextControl |
| to avoid triggering a synchronous layout. Also create LayoutDisallowedScope to avoid a similar performance |
| regression from being introduced in the future in this function. Finally, made innerText a RefPtr for extra |
| safety since we're using it after updating the DOM tree. |
| |
| * rendering/LayoutDisallowedScope.cpp: Added. |
| * rendering/LayoutDisallowedScope.h: Added. |
| (WebCore::LayoutDisallowedScope::LayoutDisallowedScope): |
| (WebCore::LayoutDisallowedScope::~LayoutDisallowedScope): |
| (WebCore::LayoutDisallowedScope::isLayoutAllowed): |
| |
| 2017-06-27 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [iOS] Cannot italicize or bold text rendered with text styles |
| https://bugs.webkit.org/show_bug.cgi?id=173634 |
| |
| Reviewed by Darin Adler. |
| |
| r218616 enabled the new cascade list codepath for "system-ui," but didn't do it for the named |
| text styles (like "font: -apple-system-tall-body;"). This new codepath is better because it |
| correctly specifies weights and italics (using kCTFontWeightTrait and kCTFontSlantTrait) instead |
| of using symbolic traits, and because it correctly handles fonts in the Core Text fallback chain. |
| This patch migrates the named text styles to this new codepath. |
| |
| Test: fast/text/ipad/bold-tall-body-text-style.html |
| |
| * platform/graphics/cocoa/FontDescriptionCocoa.cpp: |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::CoreTextCascadeListParameters): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::isHashTableDeletedValue): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::operator==): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::hash): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::CoreTextCascadeListParametersHash::hash): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::CoreTextCascadeListParametersHash::equal): |
| (WebCore::SystemFontDatabase::systemFontCascadeList): |
| (WebCore::convertArray): |
| (WebCore::convertArray): |
| (WebCore::makeNeverDestroyed): |
| (WebCore::isUIFontTextStyle): |
| (WebCore::systemFontParameters): |
| (WebCore::FontCascadeDescription::effectiveFamilyCount): |
| (WebCore::FontCascadeDescription::effectiveFamilyAt): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParametersHash::hash): Deleted. |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParametersHash::equal): Deleted. |
| * platform/graphics/ios/FontCacheIOS.mm: |
| (WebCore::platformFontWithFamilySpecialCase): |
| |
| 2017-06-28 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Instrument active pixel memory used by canvases |
| https://bugs.webkit.org/show_bug.cgi?id=173087 |
| <rdar://problem/32719261> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Test: inspector/canvas/memory.html |
| |
| * html/HTMLCanvasElement.cpp: |
| (WebCore::HTMLCanvasElement::setImageBuffer): |
| * inspector/InspectorCanvasAgent.h: |
| * inspector/InspectorCanvasAgent.cpp: |
| (WebCore::InspectorCanvasAgent::didChangeCanvasMemory): |
| (WebCore::InspectorCanvasAgent::buildObjectForCanvas): |
| * inspector/InspectorInstrumentation.h: |
| * inspector/InspectorInstrumentation.cpp: |
| (WebCore::InspectorInstrumentation::didChangeCanvasMemory): |
| (WebCore::InspectorInstrumentation::didChangeCanvasMemoryImpl): |
| |
| 2017-06-28 Alex Christensen <achristensen@webkit.org> |
| |
| Prevent displaying URLs with small capital letters |
| https://bugs.webkit.org/show_bug.cgi?id=173949 |
| <rdar://problem/32952058> |
| |
| Reviewed by Brent Fulgham. |
| |
| Covered by new API tests. |
| |
| * platform/mac/WebCoreNSURLExtras.mm: |
| (WebCore::isLookalikeCharacter): |
| |
| 2017-06-28 Youenn Fablet <youenn@apple.com> |
| |
| Support PeerConnectionStates::BundlePolicy::MaxBundle when setting rtc configuration |
| https://bugs.webkit.org/show_bug.cgi?id=169389 |
| |
| Reviewed by Alex Christensen. |
| |
| Covered by manual testing (appr.tc and https://youennf.github.io/webrtc-tests/src/content/peerconnection/trickle-ice/). |
| Previously, we were creating a libwebrtc peer connection and then setting its configuration. |
| libwebrtc does not like the configuration to be changed and may refuse to set the configuration. |
| Instead of doing that, we are now creating the libwebrtc peer connection with the provided configuration. |
| |
| * Modules/mediastream/MediaEndpointPeerConnection.cpp: |
| (WebCore::MediaEndpointPeerConnection::setConfiguration): |
| * Modules/mediastream/MediaEndpointPeerConnection.h: |
| * Modules/mediastream/PeerConnectionBackend.h: |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::initializeWith): |
| (WebCore::iceServersFromConfiguration): |
| (WebCore::RTCPeerConnection::initializeConfiguration): |
| (WebCore::RTCPeerConnection::setConfiguration): |
| * Modules/mediastream/RTCPeerConnection.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::LibWebRTCMediaEndpoint): |
| (WebCore::LibWebRTCMediaEndpoint::setConfiguration): |
| (WebCore::LibWebRTCMediaEndpoint::stop): |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::configurationFromMediaEndpointConfiguration): |
| (WebCore::LibWebRTCPeerConnectionBackend::setConfiguration): |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h: |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: |
| (WebCore::createActualPeerConnection): |
| (WebCore::LibWebRTCProvider::createPeerConnection): |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.h: |
| |
| 2017-06-28 Brent Fulgham <bfulgham@apple.com> |
| |
| Teach ResourceLoadStatistics to recognize changes in the file system |
| https://bugs.webkit.org/show_bug.cgi?id=173800 |
| <rdar://problem/32937842> |
| |
| Reviewed by Chris Dumez. |
| |
| We want to support the case where multiple UI processes choose to share the same |
| statistics file. To support this, update the ResourceLoadStatistics logic to be aware |
| that the statistics data file might change underneath it, and to take appropriate |
| action when it does. |
| |
| * WebCore.xcodeproj/project.pbxproj: Update for new sources. |
| * WebCore/CMakeLists.txt: Update for new FileMonitor source file. |
| * loader/ResourceLoadStatisticsStore.cpp: |
| (WebCore::ResourceLoadStatisticsStore::clearInMemoryAndPersistent): Use the new deletion |
| handler for the data file instead of writing out an empty file. |
| (WebCore::ResourceLoadStatisticsStore::setDeletePersistentStoreCallback): Added. |
| * loader/ResourceLoadStatisticsStore.h: |
| * platform/FileMonitor.cpp: Added. |
| (WebCore::FileMonitor::create): |
| (WebCore::FileMonitor::FileMonitor): Register handlers and begin monitoring file. |
| (WebCore::FileMonitor::~FileMonitor): Stop any active file monitoring. |
| (WebCore::FileMonitor::startMonitoringPath): Stub implementation. |
| (WebCore::FileMonitor::stopMonitoring): Ditto. |
| * platform/FileMonitor.h: Added. |
| * platform/FileSystem.h: Export files needed by WebKit2. Add support for O_EVTONLY |
| Darwin file handles. |
| * platform/Logging.h: Add 'ResourceLoadStatistics' category. |
| * platform/cocoa/FileMonitorCocoa.mm: Added. |
| (WebCore::FileMonitor::startMonitoringPath): Create a new VNODE type dispatch_source |
| to receive notifications when the specified file changes. |
| (WebCore::FileMonitor::stopMonitoring): Cancel the dispatch_source when we are done |
| monitoring the file. |
| * platform/posix/FileSystemPOSIX.cpp: Update 'openFile' to understand the O_EVTONLY |
| mode of file handles (Darwin-only). |
| |
| 2017-06-28 Brady Eidson <beidson@apple.com> |
| |
| DocumentLoader should always notify the client if there are pending icon loads when the load is stopped. |
| https://bugs.webkit.org/show_bug.cgi?id=173874 |
| |
| Reviewed by Alex Christensen. |
| |
| Covered by API tests. |
| |
| Patch started by Carlos Garcia Campos, finished by me. |
| |
| * loader/DocumentLoader.cpp: |
| (WebCore::DocumentLoader::stopLoading): Make all of the callbacks for cancelled IconLoaders. |
| (WebCore::DocumentLoader::didGetLoadDecisionForIcon): Make the callback even if there's no IconLoader. |
| (WebCore::DocumentLoader::finishedLoadingIcon): |
| (WebCore::DocumentLoader::notifyFinishedLoadingIcon): |
| * loader/DocumentLoader.h: |
| |
| 2017-06-28 Antoine Quint <graouts@apple.com> |
| |
| Volume controls should be hidden when AirPlay is active |
| https://bugs.webkit.org/show_bug.cgi?id=173933 |
| <rdar://problem/33011931> |
| |
| Reviewed by Dean Jackson. |
| |
| Ensure we don't show any volume controls during AirPlay. We set the mute button's enabled state to "false" |
| when AirPlay is active and key off this enabled stated to control the display of all volume-related controls |
| throughout the UI. |
| |
| Tests: media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-controls-hidden-when-mute-button-disabled.html |
| media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-top-right-controls-bar-hidden-when-mute-button-disabled.html |
| |
| * Modules/modern-media-controls/controls/inline-media-controls.js: |
| (InlineMediaControls.prototype._addTopRightBarWithMuteButtonToChildren): |
| (InlineMediaControls): |
| * Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js: |
| (MacOSFullscreenMediaControls.prototype.layout): |
| * Modules/modern-media-controls/media/airplay-support.js: |
| (AirplaySupport.prototype.syncControl): |
| (AirplaySupport): |
| |
| 2017-06-28 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Remove excessive includes from WebCore/css sources |
| https://bugs.webkit.org/show_bug.cgi?id=173919 |
| |
| Reviewed by Simon Fraser. |
| |
| No new tests needed. |
| |
| * css/CSSCanvasValue.cpp: |
| * css/CSSComputedStyleDeclaration.cpp: |
| * css/CSSContentDistributionValue.cpp: |
| * css/CSSCrossfadeValue.cpp: |
| * css/CSSCursorImageValue.cpp: |
| * css/CSSCustomPropertyValue.cpp: |
| * css/CSSDefaultStyleSheets.cpp: |
| * css/CSSFilterImageValue.cpp: |
| * css/CSSFontFace.cpp: |
| * css/CSSFontFaceSet.cpp: |
| * css/CSSFontFaceSource.cpp: |
| * css/CSSFontFaceSrcValue.cpp: |
| * css/CSSFontFeatureValue.cpp: |
| * css/CSSFontSelector.cpp: |
| * css/CSSFontValue.cpp: |
| * css/CSSImageGeneratorValue.cpp: |
| * css/CSSImageSetValue.cpp: |
| * css/CSSImageValue.cpp: |
| * css/CSSImportRule.cpp: |
| * css/CSSKeyframesRule.cpp: |
| * css/CSSMediaRule.cpp: |
| * css/CSSNamedImageValue.cpp: |
| * css/CSSPrimitiveValue.cpp: |
| * css/CSSProperty.cpp: |
| * css/CSSPropertySourceData.cpp: |
| * css/CSSReflectValue.cpp: |
| * css/CSSRuleList.cpp: |
| * css/CSSSegmentedFontFace.cpp: |
| * css/CSSSelector.cpp: |
| * css/CSSStyleRule.cpp: |
| * css/CSSStyleSheet.cpp: |
| * css/CSSSupportsRule.cpp: |
| * css/CSSToStyleMap.cpp: |
| * css/CSSValueList.cpp: |
| * css/CSSValuePool.cpp: |
| * css/CSSVariableData.cpp: |
| * css/ElementRuleCollector.cpp: |
| * css/InspectorCSSOMWrappers.cpp: |
| * css/MediaList.cpp: |
| * css/MediaQueryEvaluator.cpp: |
| * css/MediaQueryExpression.cpp: |
| * css/PropertySetCSSStyleDeclaration.cpp: |
| * css/RGBColor.cpp: |
| * css/SelectorChecker.cpp: |
| * css/StyleProperties.cpp: |
| * css/StyleResolver.cpp: |
| * css/StyleRule.cpp: |
| * css/StyleSheetContents.cpp: |
| * css/TransformFunctions.cpp: |
| * css/ViewportStyleResolver.cpp: |
| * css/WebKitCSSRegionRule.cpp: |
| * css/parser/CSSParser.cpp: |
| * css/parser/CSSParserFastPaths.cpp: |
| * css/parser/CSSParserIdioms.cpp: |
| * css/parser/CSSParserSelector.cpp: |
| * css/parser/CSSParserToken.cpp: |
| * css/parser/CSSPropertyParser.cpp: |
| * css/parser/CSSSelectorParser.cpp: |
| * css/parser/MediaQueryParser.cpp: |
| |
| 2017-06-28 Alex Christensen <achristensen@webkit.org> |
| |
| Fix CMake build. |
| |
| * PlatformMac.cmake: |
| |
| 2017-06-28 Antoine Quint <graouts@apple.com> |
| |
| Remove unnecessary `const double` method arguments |
| https://bugs.webkit.org/show_bug.cgi?id=173925 |
| |
| Reviewed by Dean Jackson. |
| |
| Addressing post-landing feedback from webkit.org/b/173858. |
| |
| * Modules/mediacontrols/MediaControlsHost.cpp: |
| (WebCore::MediaControlsHost::formattedStringForDuration): |
| * Modules/mediacontrols/MediaControlsHost.h: |
| * rendering/RenderTheme.h: |
| (WebCore::RenderTheme::mediaControlsFormattedStringForDuration): |
| * rendering/RenderThemeCocoa.h: |
| |
| 2017-06-28 Zalan Bujtas <zalan@apple.com> |
| |
| Unreviewed, rolling out r218373. |
| |
| Output is not right |
| |
| Reverted changeset: |
| |
| "Use WTFLogAlways for debug logging so that it shows up in |
| device system logs" |
| https://bugs.webkit.org/show_bug.cgi?id=173450 |
| http://trac.webkit.org/changeset/218373 |
| |
| 2017-06-28 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Some web pages disappear immediately after rendering |
| https://bugs.webkit.org/show_bug.cgi?id=173768 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| This is happening with websites having a "hidden" class in HTML tag when a media element is added. In the GTK+ |
| port the media controls CSS contains the following code: |
| |
| .hidden { |
| display: none !important; |
| } |
| |
| That causes the whole HTML document to become display: none. That's why we just render a white page, and also |
| the reason why it only happens with the GTK+ port and only with some specific websites. We should limit the |
| scope of the hidden class to the media control elements. |
| |
| * css/mediaControlsGtk.css: |
| (audio::-webkit-media-controls-panel.hidden,): |
| (audio::-webkit-media-controls-panel div.mute-box.hidden,): |
| (audio::-webkit-media-controls-current-time-display.hidden,): |
| (audio::-webkit-media-controls-timeline.hidden,): |
| (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button): |
| (audio::-webkit-media-controls-toggle-closed-captions-button.hidden,): |
| (video::-webkit-media-controls-closed-captions-container.hidden): |
| (audio::-webkit-media-controls-fullscreen-button.hidden,): |
| (.hidden): Deleted. |
| |
| 2017-06-28 Antoine Quint <graouts@apple.com> |
| |
| Media controls volume glyph does not have the correct material |
| https://bugs.webkit.org/show_bug.cgi?id=173918 |
| <rdar://problem/33012697> |
| |
| Reviewed by Eric Carlson. |
| |
| Test: media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-mute-button-in-bottom-or-top-right-controls-bar.html |
| |
| All buttons were hosted in a ControlsBar save for the MuteButton, so we now host it in a controls bar as well |
| to ensure compositing is similar to all other buttons. |
| |
| * Modules/modern-media-controls/controls/inline-media-controls.css: |
| (.media-controls.inline > .controls-bar.top-right): |
| (.media-controls.inline > button.mute): Deleted. |
| * Modules/modern-media-controls/controls/inline-media-controls.js: |
| (InlineMediaControls): |
| (InlineMediaControls.prototype.layout): |
| (InlineMediaControls.prototype._addTopRightBarWithMuteButtonToChildren): |
| * Modules/modern-media-controls/controls/macos-inline-media-controls.js: |
| (MacOSInlineMediaControls.prototype.handleEvent): |
| |
| 2017-06-28 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r218799): [GTK][WPE] Critical warning at exit |
| https://bugs.webkit.org/show_bug.cgi?id=173907 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed |
| |
| This is now always happening when closing the MeiniBrowser and it's causing a lot of unit tests to fail. In |
| r218799, GRefPtrGtk.h include was removed from PasteboardHelper.h that contains a GRefPtr<GtkTargetList>. The |
| targets are destroyed at exit, but now trying to use g_object_unref instead of gtk_target_list_unref(). I've |
| found two more cases like this in r218799, that removes GUniquePtrSoup.h from ResourceHandleInternal.h and |
| ResourceRequest.h that have GUniquePtr<SoupBuffer> and GUniquePtr<SoupURI>. |
| |
| Fixes several GTK+ and WPE unit tests. |
| |
| * platform/gtk/PasteboardHelper.h: Bring back GRefPtrGtk.h. |
| * platform/network/ResourceHandleInternal.h: Bring back GUniquePtrSoup.h. |
| * platform/network/soup/ResourceRequest.h: Ditto. |
| |
| 2017-06-27 Chris Dumez <cdumez@apple.com> |
| |
| [ResourceLoadStatistics] Update minimumTimeBetweeenDataRecordsRemoval to 1 hour instead of 1 minute |
| https://bugs.webkit.org/show_bug.cgi?id=173895 |
| <rdar://problem/32984366> |
| |
| Reviewed by Brent Fulgham. |
| |
| Update minimumTimeBetweeenDataRecordsRemoval to 1 hour instead of 1 minute to save battery. |
| Also port code to modern time types. |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::reduceTimeResolution): |
| (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution): |
| (WebCore::ResourceLoadObserver::setTimeToLiveUserInteraction): |
| (WebCore::ResourceLoadObserver::setTimeToLiveCookiePartitionFree): |
| (WebCore::ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval): |
| (WebCore::ResourceLoadObserver::setReducedTimestampResolution): |
| (WebCore::ResourceLoadObserver::setGrandfatheringTime): |
| * loader/ResourceLoadObserver.h: |
| * loader/ResourceLoadStatistics.h: |
| (WebCore::ResourceLoadStatistics::mostRecentUserInteractionTime): |
| * loader/ResourceLoadStatisticsStore.cpp: |
| (WebCore::ResourceLoadStatisticsStore::createEncoderFromData): |
| (WebCore::ResourceLoadStatisticsStore::readDataFromDecoder): |
| (WebCore::shouldPartitionCookies): |
| (WebCore::ResourceLoadStatisticsStore::setTimeToLiveUserInteraction): |
| (WebCore::ResourceLoadStatisticsStore::setTimeToLiveCookiePartitionFree): |
| (WebCore::ResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval): |
| (WebCore::ResourceLoadStatisticsStore::setGrandfatheringTime): |
| (WebCore::ResourceLoadStatisticsStore::hasHadRecentUserInteraction): |
| (WebCore::ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor): |
| (WebCore::ResourceLoadStatisticsStore::handleFreshStartWithEmptyOrNoStore): |
| (WebCore::ResourceLoadStatisticsStore::shouldRemoveDataRecords): |
| (WebCore::ResourceLoadStatisticsStore::dataRecordsBeingRemoved): |
| * loader/ResourceLoadStatisticsStore.h: |
| |
| 2017-06-27 Chris Dumez <cdumez@apple.com> |
| |
| Port HysteresisActivity to Seconds type |
| https://bugs.webkit.org/show_bug.cgi?id=173902 |
| |
| Reviewed by Simon Fraser. |
| |
| * platform/HysteresisActivity.h: |
| (WebCore::HysteresisActivity::HysteresisActivity): |
| (WebCore::HysteresisActivity::stop): |
| * platform/ios/WebSQLiteDatabaseTrackerClient.mm: |
| |
| 2017-06-27 Jeremy Jones <jeremyj@apple.com> |
| |
| MediaPlayerPrivate m_private may not yet be created when setPrivateBrowsingMode is called. |
| https://bugs.webkit.org/show_bug.cgi?id=173893 |
| rdar://problem/32986872 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| No new tests because no reproducable case. |
| |
| setPrivateBrowsingMode can be called on MediaPlayer before the MediaPlayerPrivate is created. |
| The value should only be pushed down the m_private if it has been created. |
| |
| * platform/graphics/MediaPlayer.cpp: |
| (WebCore::MediaPlayer::setPrivateBrowsingMode): |
| |
| 2017-06-27 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS DnD] Support dragging out of contenteditable areas without a prior selection |
| https://bugs.webkit.org/show_bug.cgi?id=173854 |
| <rdar://problem/32236827> |
| |
| Reviewed by Ryosuke Niwa and Tim Horton. |
| |
| Allows elements to be dragged from contenteditable areas for both WebKit1 and WebKit2 iOS. There are two main |
| changes in WebCore: move the touch point adjustment code into EventHandler::tryToBeginDataInteractionAtPoint, so |
| that the clientPosition specified will be adjusted to an appropriate clickable node if needed. This is necessary |
| because UIWebDocumentView and WKContentView no longer send adjusted points to WebCore when requesting drag |
| start. See <https://bugs.webkit.org/show_bug.cgi?id=173855> for a followup regarding the globalPosition and |
| clientPositions passed in to the MouseEvents when performing a drag or synthetic click. |
| |
| Secondly, image elements in Mail's contenteditable area are not draggable unless the heuristic in |
| DragController::draggableElement is tweaked to not reject image dragging across the board if the |
| loadsImagesAutomatically setting is turned off. Instead, even if images are not automatically loaded, allow the |
| image drag to commence if the image renderer already has a cached image. |
| |
| Test: DataInteractionTests.DragImageFromContentEditable |
| |
| * page/DragController.cpp: |
| (WebCore::imageElementIsDraggable): |
| (WebCore::DragController::draggableElement): |
| * page/ios/EventHandlerIOS.mm: |
| (WebCore::EventHandler::tryToBeginDataInteractionAtPoint): |
| |
| 2017-06-27 Antoine Quint <graouts@apple.com> |
| |
| [Modern Media Controls] Accessibility labels should be formatted using NSDateComponentsFormatter |
| https://bugs.webkit.org/show_bug.cgi?id=173858 |
| <rdar://problem/32643171> |
| |
| Reviewed by Dean Jackson. |
| |
| We shouldn't be manually trying to create a formatted string for media controls and instead rely |
| on NSDateComponentsFormatter to perform this task for us. So we remove the ad-hoc code in the JS |
| media controls code and instead add a new MediaControlsHost method to format durations which calls |
| into RenderTheme to provide a formatted duration string relevant to the current platform and locale. |
| |
| * English.lproj/modern-media-controls-localized-strings.js: |
| * Modules/mediacontrols/MediaControlsHost.cpp: |
| (WebCore::MediaControlsHost::formattedStringForDuration): |
| * Modules/mediacontrols/MediaControlsHost.h: |
| * Modules/mediacontrols/MediaControlsHost.idl: |
| * Modules/modern-media-controls/controls/slider.js: |
| (Slider.prototype.set inputAccessibleLabel): |
| * Modules/modern-media-controls/controls/time-label.js: |
| (TimeLabel.prototype.commitProperty): |
| * Modules/modern-media-controls/main.js: |
| (createControls): |
| (formattedStringForDuration): |
| (formatTimeToString): Deleted. |
| * rendering/RenderTheme.h: |
| (WebCore::RenderTheme::mediaControlsFormattedStringForDuration): |
| * rendering/RenderThemeCocoa.h: |
| * rendering/RenderThemeCocoa.mm: |
| (WebCore::RenderThemeCocoa::mediaControlsFormattedStringForDuration): |
| |
| 2017-06-27 Eric Carlson <eric.carlson@apple.com> |
| |
| r218647 causes getUserMedia to fail on some machines |
| https://bugs.webkit.org/show_bug.cgi?id=173894 |
| |
| Reviewed by Youenn Fablet. |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::isFrameRateSupported): Change frame rate epsilon from 0.00001 |
| to 0.001. |
| |
| 2017-06-27 Antoine Quint <graouts@apple.com> |
| |
| Placard icons act like buttons (can get keyboard focus and shows up in VoiceOver) |
| https://bugs.webkit.org/show_bug.cgi?id=173891 |
| <rdar://problem/33011855> |
| |
| Reviewed by Dean Jackson. |
| |
| Ensure that we disable buttons inside placards as they're only decorative and should |
| not be interactive. |
| |
| * Modules/modern-media-controls/controls/placard.js: |
| (Placard.): |
| |
| 2017-06-27 Jeremy Jones <jeremyj@apple.com> |
| |
| Disable m_temporarilyAllowingInlinePlaybackAfterFullscreen on pause |
| https://bugs.webkit.org/show_bug.cgi?id=173843 |
| rdar://problem/32982431 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: media/media-fullscreen-pause-inline.html |
| |
| Some pages may not have a fullscreen button, so disabled m_temporarilyAllowingInlinePlaybackAfterFullscreen on pause. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::pause): |
| |
| 2017-06-27 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Avoid taking / releasing process assertions too quickly due to database activity |
| https://bugs.webkit.org/show_bug.cgi?id=173879 |
| <rdar://problem/32412701> |
| |
| Reviewed by Antti Koivisto. |
| |
| Add HysteresisActivity to WebSQLiteDatabaseTrackerClient to avoid taking / releasing |
| process assertion too quickly due to database activity. |
| |
| * platform/ios/WebSQLiteDatabaseTrackerClient.h: |
| * platform/ios/WebSQLiteDatabaseTrackerClient.mm: |
| (WebCore::WebSQLiteDatabaseTrackerClient::WebSQLiteDatabaseTrackerClient): |
| (WebCore::WebSQLiteDatabaseTrackerClient::willBeginFirstTransaction): |
| (WebCore::WebSQLiteDatabaseTrackerClient::didFinishLastTransaction): |
| (WebCore::WebSQLiteDatabaseTrackerClient::hysteresisUpdated): |
| |
| 2017-06-27 Youenn Fablet <youenn@apple.com> |
| |
| Using public logging for WebRTC release logging |
| https://bugs.webkit.org/show_bug.cgi?id=173881 |
| |
| Reviewed by Eric Carlson. |
| |
| No change of behavior. |
| |
| * Modules/mediastream/PeerConnectionBackend.cpp: |
| (WebCore::PeerConnectionBackend::createOfferSucceeded): |
| (WebCore::PeerConnectionBackend::createOfferFailed): |
| (WebCore::PeerConnectionBackend::createAnswerSucceeded): |
| (WebCore::PeerConnectionBackend::createAnswerFailed): |
| (WebCore::PeerConnectionBackend::setLocalDescriptionFailed): |
| (WebCore::PeerConnectionBackend::setRemoteDescriptionFailed): |
| (WebCore::PeerConnectionBackend::addIceCandidateFailed): |
| (WebCore::PeerConnectionBackend::newICECandidate): |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::queuedSetLocalDescription): |
| (WebCore::RTCPeerConnection::queuedSetRemoteDescription): |
| (WebCore::RTCPeerConnection::queuedAddIceCandidate): |
| (WebCore::RTCPeerConnection::updateIceGatheringState): |
| (WebCore::RTCPeerConnection::updateIceConnectionState): |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered): |
| |
| 2017-06-27 Don Olmstead <don.olmstead@sony.com> |
| |
| [PAL] Add symbol export macros for PAL |
| https://bugs.webkit.org/show_bug.cgi?id=171519 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| No new tests. No change in behavior. |
| |
| * CMakeLists.txt: |
| * config.h: |
| * platform/PlatformExportMacros.h: |
| |
| 2017-06-27 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Add telemetry |
| https://bugs.webkit.org/show_bug.cgi?id=173499 |
| <rdar://problem/32826094> |
| |
| Reviewed by Brent Fulgham. |
| |
| Test: http/tests/loading/resourceLoadStatistics/telemetry-generation.html |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::fireTelemetryHandler): |
| Test infrastructure. |
| * loader/ResourceLoadObserver.h: |
| * loader/ResourceLoadStatisticsStore.cpp: |
| (WebCore::ResourceLoadStatisticsStore::setFireTelemetryCallback): |
| (WebCore::ResourceLoadStatisticsStore::fireTelemetryHandler): |
| Test infrastructure. |
| (WebCore::ResourceLoadStatisticsStore::sortedPrevalentResourceTelemetry): |
| Convenience function for telemetry. |
| * loader/ResourceLoadStatisticsStore.h: |
| Added struct WebCore::PrevalentResourceTelemetry. |
| * page/DiagnosticLoggingKeys.cpp: |
| (WebCore::DiagnosticLoggingKeys::resourceLoadStatisticsTelemetryKey): |
| Added. |
| * page/DiagnosticLoggingKeys.h: |
| |
| 2017-06-27 Ting-Wei Lan <lantw44@gmail.com> |
| |
| Add missing includes to fix compilation error on FreeBSD |
| https://bugs.webkit.org/show_bug.cgi?id=172919 |
| |
| Reviewed by Mark Lam. |
| |
| No new tests needed. |
| |
| * crypto/gcrypt/CryptoKeyECGCrypt.cpp: |
| * platform/audio/ReverbAccumulationBuffer.cpp: |
| |
| 2017-06-27 Zalan Bujtas <zalan@apple.com> |
| |
| Add RenderEmbeddedObject::getReplacementTextGeometry helper. |
| https://bugs.webkit.org/show_bug.cgi?id=173847 |
| |
| Reviewed by Simon Fraser. |
| |
| ...and remove getReplacementTextGeometry's redundant return value. |
| |
| No change in functionality. |
| |
| * rendering/RenderEmbeddedObject.cpp: |
| (WebCore::RenderEmbeddedObject::paintReplaced): |
| (WebCore::RenderEmbeddedObject::getReplacementTextGeometry): |
| (WebCore::RenderEmbeddedObject::unavailablePluginIndicatorBounds): |
| (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator): |
| * rendering/RenderEmbeddedObject.h: |
| |
| 2017-06-27 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Refactor drag start codepaths to plumb a DragItem to client layers |
| https://bugs.webkit.org/show_bug.cgi?id=173832 |
| Work towards <rdar://problem/32236827> |
| |
| Reviewed by Ryosuke Niwa and Tim Horton. |
| |
| Refactor drag start logic in WebCore to set up a DragItem and propagate it to WebDragClient. No change in behavior. |
| |
| * loader/EmptyClients.cpp: |
| * page/DragClient.h: |
| * page/DragController.cpp: |
| (WebCore::DragController::startDrag): |
| (WebCore::DragController::doImageDrag): |
| (WebCore::DragController::doSystemDrag): |
| |
| Refactor to pass along a DragItem. Also, remove unused drag image anchor computation. |
| |
| * page/DragController.h: |
| * platform/DragImage.h: |
| * platform/DragItem.h: |
| |
| Add additional information needed to begin a drag on iOS. |
| |
| (WebCore::DragItem::encode): |
| (WebCore::DragItem::decode): |
| |
| Add IPC serialization/deserialization support for DragItem. |
| |
| * platform/PasteboardWriterData.cpp: |
| (WebCore::PasteboardWriterData::isEmpty): |
| * platform/PasteboardWriterData.h: |
| |
| 2017-06-27 Frederic Wang <fwang@igalia.com> |
| |
| Some tests to verify forbidden frame navigation time out |
| https://bugs.webkit.org/show_bug.cgi?id=173657 |
| |
| Reviewed by Chris Dumez. |
| |
| Currently some tests try and perform a forbidden frame navigation and verify the |
| corresponding console error. However, WebKit does not raise any exception for such error so |
| the tests have to wait until the timeout limit to complete, which makes execution slow. |
| This patch modifies the setters of window.location for which such error may happen in order |
| to raise an exception so the tests behave as expected. |
| |
| No new tests, already covered by existing tests. |
| |
| * page/Location.cpp: Adjust Location::setLocation to return a security exception and pass it |
| to the callers. |
| (WebCore::Location::setHref): Adjust function to possibly return an exception. |
| (WebCore::Location::setProtocol): Ditto. |
| (WebCore::Location::setHost): Ditto. |
| (WebCore::Location::setHostname): Ditto. |
| (WebCore::Location::setPort): Ditto. |
| (WebCore::Location::setPathname): Ditto. |
| (WebCore::Location::setSearch): Ditto. |
| (WebCore::Location::setHash): Ditto. |
| (WebCore::Location::assign): Ditto. |
| (WebCore::Location::setLocation): FrameLoader::findFrameForNavigation is really only used |
| to verify whether navigating m_frame is permitted so it is more simple and clearer to do it |
| directly. When navigation is not permitted, this function now raises a security exception. |
| * page/Location.h: Modify some setters to return an ExceptionOr<void>. |
| * page/Location.idl: Allow some setters to raise an exception. |
| |
| 2017-06-26 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [GTK] Layout Test webrtc/video.html issues "stack smashing detected" |
| https://bugs.webkit.org/show_bug.cgi?id=173862 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Tests: webrtc/video.html |
| |
| Passing a bool variable to g_object_get causes out-of-bound write. |
| gboolean should be used, which is 4 bytes while bool is one byte. |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::muted): Use gboolean instead of bool. |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerOwr::trackEnded): Ditto. |
| |
| 2017-06-26 Chris Dumez <cdumez@apple.com> |
| |
| WebsiteDataStore::fetchDataForTopPrivatelyControlledDomains() is inefficient |
| https://bugs.webkit.org/show_bug.cgi?id=173850 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * loader/ResourceLoadStatisticsStore.cpp: |
| (WebCore::ResourceLoadStatisticsStore::updateStatisticsForRemovedDataRecords): |
| * loader/ResourceLoadStatisticsStore.h: |
| |
| 2017-06-26 Antti Koivisto <antti@apple.com> |
| |
| REGRESSION (AsyncImageDecoding): A tab with the WWDC keynote paused is killed for using excessive power (Image thrashing) |
| https://bugs.webkit.org/show_bug.cgi?id=173804 |
| <rdar://problem/32623745> |
| |
| Reviewed by Simon Fraser. |
| |
| When under memory pressure MemoryCache::singleton().pruneLiveResources(true) is called inFrameView::didPaintContents() |
| after top level paint. We end up decoding and pruning bitmaps repeatedly for each tile, which is not great. |
| |
| Situation gets worse with async decoding. Painting now doesn’t actually decode the image, it just starts the decoding. |
| When it completes we trigger another paint to get the bits to the tiles. The paint for the first tile then calls |
| pruneLiveResources and loses the bitmap and the second tile triggers another round of async decoding. We have code |
| that prevents pruning of visible images but non-visible images in tiling area can hit this bug easily. |
| |
| Test: fast/images/low-memory-decode.html |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::willPaintContents): |
| (WebCore::FrameView::didPaintContents): |
| |
| Eliminate synchronous pruning during painting. This is an obsolete mechanism from early iOS times. |
| |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::imageFrameAvailableAtIndex): |
| (WebCore::BitmapImage::decodeCountForTesting): |
| |
| Testing support. |
| |
| * platform/graphics/BitmapImage.h: |
| * testing/Internals.cpp: |
| (WebCore::Internals::imageDecodeCount): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-06-26 Chris Dumez <cdumez@apple.com> |
| |
| ImageFrameCache::startAsyncDecodingQueue() unsafely passes Strings across threads |
| https://bugs.webkit.org/show_bug.cgi?id=173842 |
| |
| Reviewed by Simon Fraser. |
| |
| The URL string was passed across thread without isolated copy. |
| |
| * platform/graphics/ImageFrameCache.cpp: |
| (WebCore::ImageFrameCache::startAsyncDecodingQueue): |
| |
| 2017-06-26 Jonathan Bedard <jbedard@apple.com> |
| |
| Unreviewed, rolling out r218783. |
| |
| Causing accessibility/mac/setting-attributes-is- |
| asynchronous.html to crash consistently on mac-wk2 Debug |
| |
| Reverted changeset: |
| |
| "AX: Cannot call setValue() on contenteditable or ARIA text |
| controls" |
| https://bugs.webkit.org/show_bug.cgi?id=173520 |
| http://trac.webkit.org/changeset/218783 |
| |
| 2017-06-26 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [WTF] Drop Thread::create(obsolete things) API since we can use lambda |
| https://bugs.webkit.org/show_bug.cgi?id=173825 |
| |
| Reviewed by Saam Barati. |
| |
| No behavior change. |
| |
| * Modules/indexeddb/server/IDBServer.cpp: |
| (WebCore::IDBServer::IDBServer::IDBServer): |
| (WebCore::IDBServer::IDBServer::databaseThreadEntry): Deleted. |
| * Modules/indexeddb/server/IDBServer.h: |
| * Modules/webaudio/AsyncAudioDecoder.cpp: |
| (WebCore::AsyncAudioDecoder::AsyncAudioDecoder): |
| (WebCore::AsyncAudioDecoder::threadEntry): Deleted. |
| * Modules/webaudio/AsyncAudioDecoder.h: |
| * Modules/webaudio/OfflineAudioDestinationNode.cpp: |
| (WebCore::OfflineAudioDestinationNode::startRendering): |
| (WebCore::OfflineAudioDestinationNode::offlineRenderEntry): Deleted. |
| * Modules/webaudio/OfflineAudioDestinationNode.h: |
| * Modules/webdatabase/DatabaseThread.cpp: |
| (WebCore::DatabaseThread::start): |
| (WebCore::DatabaseThread::databaseThreadStart): Deleted. |
| * Modules/webdatabase/DatabaseThread.h: |
| * bindings/js/GCController.cpp: |
| (WebCore::collect): |
| (WebCore::GCController::gcTimerFired): |
| (WebCore::GCController::garbageCollectOnAlternateThreadForDebugging): |
| * loader/icon/IconDatabase.cpp: |
| (WebCore::IconDatabase::open): |
| (WebCore::IconDatabase::iconDatabaseSyncThreadStart): Deleted. |
| * loader/icon/IconDatabase.h: |
| * page/ResourceUsageThread.cpp: |
| (WebCore::ResourceUsageThread::createThreadIfNeeded): |
| (WebCore::ResourceUsageThread::threadCallback): Deleted. |
| * page/ResourceUsageThread.h: |
| * page/scrolling/ScrollingThread.cpp: |
| (WebCore::ScrollingThread::createThreadIfNeeded): |
| (WebCore::ScrollingThread::threadCallback): Deleted. |
| (WebCore::ScrollingThread::threadBody): Deleted. |
| * page/scrolling/ScrollingThread.h: |
| * platform/audio/HRTFDatabaseLoader.cpp: |
| (WebCore::HRTFDatabaseLoader::loadAsynchronously): |
| (WebCore::databaseLoaderEntry): Deleted. |
| * platform/audio/HRTFDatabaseLoader.h: |
| * platform/audio/ReverbConvolver.cpp: |
| (WebCore::ReverbConvolver::ReverbConvolver): |
| (WebCore::backgroundThreadEntry): Deleted. |
| * platform/audio/ReverbConvolver.h: |
| (WebCore::ReverbConvolver::useBackgroundThreads): |
| * platform/network/cf/LoaderRunLoopCF.cpp: |
| (WebCore::loaderRunLoop): |
| (WebCore::runLoaderThread): Deleted. |
| * platform/network/curl/CurlManager.cpp: |
| (WebCore::CurlManager::startThreadIfNeeded): |
| (WebCore::CurlManager::workerThread): |
| * platform/network/curl/CurlManager.h: |
| * workers/WorkerThread.cpp: |
| (WebCore::WorkerThread::start): |
| (WebCore::WorkerThread::workerThreadStart): Deleted. |
| * workers/WorkerThread.h: |
| |
| 2017-06-26 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| [ATK] Add support for aria-details and aria-errormessage |
| https://bugs.webkit.org/show_bug.cgi?id=172588 |
| |
| Reviewed by Chris Fleizach. |
| |
| Add methods to retrieve elements referenced by or referencing the new |
| aria-details and aria-errormessage attributes. Include aria-details and |
| aria-errormessage in AccessibilityObject::supportsARIAAttributes() to ensure |
| elements with these attributes will be included in the accessibility tree. |
| |
| New test cases added to accessibility/gtk/relation-types.html. |
| |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::supportsARIAAttributes): |
| (WebCore::AccessibilityObject::ariaDetailsElements): |
| (WebCore::AccessibilityObject::ariaDetailsReferencingElements): |
| (WebCore::AccessibilityObject::ariaErrorMessageElements): |
| (WebCore::AccessibilityObject::ariaErrorMessageReferencingElements): |
| * accessibility/AccessibilityObject.h: |
| * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: |
| (setAtkRelationSetFromCoreObject): |
| * html/HTMLAttributeNames.in: |
| |
| 2017-06-26 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Remove excessive headers from WebCore/{Modules,animation,crypto,domjit} |
| https://bugs.webkit.org/show_bug.cgi?id=173824 |
| |
| Reviewed by Darin Adler. |
| |
| No new tests needed. |
| |
| * Modules/credentials/CredentialCreationOptions.h: |
| * Modules/credentials/PasswordCredential.h: |
| * Modules/fetch/FetchBody.h: |
| * Modules/fetch/FetchBodyOwner.h: |
| * Modules/gamepad/GamepadManager.h: |
| * Modules/geolocation/Coordinates.h: |
| * Modules/geolocation/Geoposition.h: |
| * Modules/indexeddb/IDBActiveDOMObject.h: |
| * Modules/indexeddb/IDBCursor.h: |
| * Modules/indexeddb/IDBDatabase.h: |
| * Modules/indexeddb/IDBDatabaseIdentifier.h: |
| * Modules/indexeddb/IDBObjectStore.cpp: |
| * Modules/indexeddb/IDBObjectStore.h: |
| * Modules/indexeddb/server/UniqueIDBDatabase.cpp: |
| * Modules/indexeddb/server/UniqueIDBDatabase.h: |
| * Modules/indexeddb/shared/InProcessIDBServer.h: |
| * Modules/indexeddb/shared/IndexKey.h: |
| * Modules/mediacontrols/MediaControlsHost.h: |
| * Modules/mediasession/WebMediaSessionManager.h: |
| * Modules/mediasource/SourceBufferList.h: |
| * Modules/mediasource/VideoPlaybackQuality.h: |
| * Modules/notifications/Notification.h: |
| * Modules/quota/WorkerNavigatorStorageQuota.h: |
| * Modules/webaudio/AudioBasicProcessorNode.h: |
| * Modules/webaudio/AudioContext.h: |
| * Modules/webaudio/AudioDestinationNode.h: |
| * Modules/webaudio/AudioParamTimeline.h: |
| * Modules/webaudio/ConvolverNode.cpp: |
| * Modules/webaudio/MediaStreamAudioSource.h: |
| * Modules/webaudio/MediaStreamAudioSourceNode.h: |
| * Modules/webaudio/PannerNode.h: |
| * Modules/webaudio/PeriodicWave.h: |
| * Modules/webaudio/ScriptProcessorNode.h: |
| * Modules/webdatabase/DatabaseManager.h: |
| * Modules/webdatabase/DatabaseTask.h: |
| * Modules/webdatabase/SQLTransaction.h: |
| * Modules/webdatabase/SQLTransactionBackend.h: |
| * Modules/webdatabase/SQLTransactionStateMachine.h: |
| * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h: |
| * Modules/websockets/WebSocketDeflater.h: |
| * Modules/websockets/WorkerThreadableWebSocketChannel.h: |
| * animation/AnimationEffect.h: |
| * crypto/CryptoKeyPair.h: |
| * crypto/parameters/CryptoAlgorithmEcdhKeyDeriveParams.h: |
| * dom/ScriptExecutionContext.h: |
| * domjit/DOMJITHelpers.h: |
| * domjit/DOMJITIDLConvert.h: |
| * domjit/DOMJITIDLType.h: |
| |
| 2017-06-26 Konstantin Tokarev <annulen@yandex.ru> |
| |
| [GTK] Unreviewed, added missing includes to fix debug build |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| |
| 2017-06-25 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Remove excessive headers from WebCore/platform |
| https://bugs.webkit.org/show_bug.cgi?id=173822 |
| |
| Reviewed by Tim Horton. |
| |
| No new tests needed. |
| |
| * html/ColorInputType.h: |
| * html/MediaElementSession.h: |
| * page/SecurityOriginData.cpp: |
| * platform/CalculationValue.cpp: |
| * platform/CalculationValue.h: |
| * platform/ColorChooserClient.h: |
| * platform/ContentType.h: |
| * platform/LogMacros.h: |
| * platform/PODRedBlackTree.h: |
| * platform/PasteboardStrategy.h: |
| * platform/PlatformPasteboard.h: |
| * platform/PopupMenuStyle.h: |
| * platform/ScrollAnimator.h: |
| * platform/Theme.h: |
| * platform/ThreadGlobalData.h: |
| * platform/animation/AnimationList.h: |
| * platform/audio/AudioArray.h: |
| * platform/audio/AudioChannel.h: |
| * platform/audio/DynamicsCompressor.h: |
| * platform/audio/DynamicsCompressorKernel.h: |
| * platform/audio/FFTFrame.h: |
| * platform/audio/HRTFDatabaseLoader.cpp: |
| * platform/audio/HRTFDatabaseLoader.h: |
| * platform/audio/HRTFElevation.h: |
| * platform/audio/MultiChannelResampler.h: |
| * platform/audio/PlatformMediaSession.h: |
| * platform/audio/ReverbConvolver.h: |
| * platform/audio/ReverbConvolverStage.cpp: |
| * platform/graphics/ANGLEWebKitBridge.h: |
| * platform/graphics/BitmapImage.h: |
| * platform/graphics/CrossfadeGeneratedImage.h: |
| * platform/graphics/FloatPolygon.h: |
| * platform/graphics/FloatSizeHash.h: |
| * platform/graphics/Font.h: |
| * platform/graphics/FontMetrics.h: |
| * platform/graphics/FontPlatformData.h: |
| * platform/graphics/FontRanges.h: |
| * platform/graphics/FontTaggedSettings.h: |
| * platform/graphics/GraphicsContext3D.h: |
| * platform/graphics/GraphicsContext3DPrivate.h: |
| * platform/graphics/GraphicsLayerClient.h: |
| * platform/graphics/Image.cpp: |
| * platform/graphics/ImageFrame.h: |
| * platform/graphics/ImageFrameCache.h: |
| * platform/graphics/ImageSource.h: |
| * platform/graphics/IntRectHash.h: |
| * platform/graphics/IntSizeHash.h: |
| * platform/graphics/MediaPlaybackTargetClient.h: |
| * platform/graphics/Pattern.h: |
| * platform/graphics/PlatformTimeRanges.h: |
| * platform/graphics/TextRun.h: |
| * platform/graphics/TiledBacking.h: |
| * platform/graphics/cairo/FontCustomPlatformData.h: |
| * platform/graphics/filters/FEConvolveMatrix.h: |
| * platform/graphics/filters/FELighting.h: |
| * platform/graphics/filters/SourceAlpha.h: |
| * platform/graphics/gstreamer/GStreamerUtilities.h: |
| * platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h: |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: |
| * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h: |
| * platform/graphics/harfbuzz/HarfBuzzShaper.h: |
| * platform/graphics/opengl/Extensions3DOpenGL.h: |
| * platform/graphics/texmap/GraphicsLayerTextureMapper.h: |
| * platform/graphics/texmap/TextureMapperBackingStore.h: |
| * platform/graphics/texmap/TextureMapperGL.cpp: |
| * platform/graphics/texmap/TextureMapperGL.h: |
| * platform/graphics/texmap/TextureMapperPlatformLayerProxy.h: |
| * platform/graphics/texmap/TextureMapperTile.h: |
| * platform/graphics/texmap/coordinated/Tile.h: |
| * platform/graphics/texmap/coordinated/TiledBackingStore.h: |
| * platform/graphics/transforms/TransformState.h: |
| * platform/gtk/PasteboardHelper.h: |
| * platform/gtk/ScrollbarThemeGtk.h: |
| * platform/image-decoders/ImageDecoder.h: |
| * platform/network/BlobData.h: |
| * platform/network/BlobDataFileReference.h: |
| * platform/network/ResourceHandle.h: |
| * platform/network/ResourceHandleInternal.h: |
| * platform/network/SocketStreamHandleClient.h: |
| * platform/network/soup/ResourceRequest.h: |
| * platform/network/soup/SocketStreamHandleImpl.h: |
| * platform/network/soup/SoupNetworkSession.h: |
| * platform/sql/SQLiteFileSystem.h: |
| * platform/text/LocaleICU.h: |
| |
| 2017-06-25 Youenn Fablet <youenn@apple.com> |
| |
| Remove use of mock webrtc backend factory at injected bundle reset time |
| https://bugs.webkit.org/show_bug.cgi?id=173817 |
| |
| Reviewed by Darin Adler. |
| |
| * testing/Internals.cpp: |
| (WebCore::Internals::resetToConsistentState): Resetting the peer connection backend. |
| * testing/MockLibWebRTCPeerConnection.cpp: Doing some clean-up |
| (WebCore::useRealRTCPeerConnectionFactory): |
| (WebCore::MockLibWebRTCPeerConnectionFactory::MockLibWebRTCPeerConnectionFactory): |
| (WebCore::MockLibWebRTCPeerConnectionFactory::CreatePeerConnection): |
| (WebCore::MockLibWebRTCPeerConnectionFactory::CreateVideoTrack): |
| (WebCore::MockLibWebRTCPeerConnectionFactory::CreateAudioTrack): |
| * testing/MockLibWebRTCPeerConnection.h: |
| |
| 2017-06-25 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Remove excessive headers from JavaScriptCore |
| https://bugs.webkit.org/show_bug.cgi?id=173812 |
| |
| Reviewed by Darin Adler. |
| |
| No new tests needed. |
| |
| * Modules/indexeddb/IDBObjectStore.cpp: |
| * bindings/js/JSDOMPromiseDeferred.h: |
| * bindings/js/JSLazyEventListener.cpp: |
| * bindings/js/JSMainThreadExecState.h: |
| * bindings/js/ReadableStreamDefaultController.cpp: |
| * bindings/js/ScriptGlobalObject.cpp: |
| * bindings/js/SerializedScriptValue.cpp: |
| * bridge/NP_jsobject.cpp: |
| * dom/ScriptExecutionContext.cpp: |
| * html/HTMLPlugInImageElement.cpp: |
| |
| 2017-06-25 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Remove excessive headers from WebCore/{rendering,style,svg} |
| https://bugs.webkit.org/show_bug.cgi?id=173773 |
| |
| Reviewed by Darin Adler. |
| |
| No new tests needed. |
| |
| * css/StyleBuilderConverter.h: |
| * editing/TextIterator.cpp: |
| * rendering/CounterNode.h: |
| * rendering/FlexibleBoxAlgorithm.h: |
| * rendering/HitTestLocation.h: |
| * rendering/HitTestResult.h: |
| * rendering/HitTestingTransformState.h: |
| * rendering/OrderIterator.h: |
| * rendering/RenderButton.h: |
| * rendering/RenderCombineText.h: |
| * rendering/RenderFlowThread.h: |
| * rendering/RenderFullScreen.h: |
| * rendering/RenderGeometryMap.h: |
| * rendering/RenderListItem.h: |
| * rendering/RenderMediaControlElements.cpp: |
| * rendering/RenderMediaControlElements.h: |
| * rendering/RenderMediaControls.h: |
| * rendering/RenderMeter.h: |
| * rendering/RenderMultiColumnSet.cpp: |
| * rendering/RenderObject.h: |
| * rendering/RenderRegion.h: |
| * rendering/RenderRegionSet.cpp: |
| * rendering/RenderRegionSet.h: |
| * rendering/RenderTheme.h: |
| * rendering/RenderVTTCue.cpp: |
| * rendering/RenderVTTCue.h: |
| * rendering/SimpleLineLayoutFunctions.h: |
| * rendering/SimpleLineLayoutResolver.h: |
| * rendering/line/BreakingContext.h: |
| * rendering/line/LineBreaker.h: |
| * rendering/mathml/MathMLStyle.h: |
| * rendering/mathml/RenderMathMLOperator.h: |
| * rendering/mathml/RenderMathMLRoot.h: |
| * rendering/shapes/RectangleShape.h: |
| * rendering/style/BasicShapes.h: |
| * rendering/style/BorderData.h: |
| * rendering/style/CounterDirectives.h: |
| * rendering/style/GridArea.h: |
| * rendering/style/KeyframeList.h: |
| * rendering/style/RenderStyle.h: |
| * rendering/style/SVGRenderStyle.h: |
| * rendering/style/ShapeValue.h: |
| * rendering/style/StyleCachedImage.h: |
| * rendering/style/StyleMultiColData.h: |
| * rendering/style/StyleRareNonInheritedData.h: |
| * rendering/style/WillChangeData.h: |
| * rendering/svg/RenderSVGBlock.h: |
| * rendering/svg/RenderSVGRect.h: |
| * rendering/svg/RenderSVGResource.h: |
| * rendering/svg/RenderSVGResourceContainer.h: |
| * rendering/svg/RenderSVGResourceMarker.h: |
| * rendering/svg/RenderSVGResourceMasker.h: |
| * rendering/svg/RenderSVGResourcePattern.h: |
| * rendering/svg/SVGInlineFlowBox.cpp: |
| * rendering/svg/SVGInlineTextBox.h: |
| * rendering/svg/SVGRootInlineBox.h: |
| * rendering/svg/SVGTextChunk.cpp: |
| * rendering/svg/SVGTextChunk.h: |
| * rendering/svg/SVGTextChunkBuilder.cpp: |
| * rendering/svg/SVGTextLayoutEngine.cpp: |
| * rendering/svg/SVGTextLayoutEngineSpacing.h: |
| * style/RenderTreePosition.cpp: |
| * style/RenderTreePosition.h: |
| * style/RenderTreeUpdater.h: |
| * style/StyleFontSizeFunctions.h: |
| * style/StyleInvalidator.h: |
| * style/StyleResolveForDocument.h: |
| * style/StyleScope.h: |
| * style/StyleTreeResolver.cpp: |
| * style/StyleTreeResolver.h: |
| * style/StyleUpdate.h: |
| * svg/SVGAnimationElement.h: |
| * svg/SVGFEBlendElement.cpp: |
| * svg/SVGFEBlendElement.h: |
| * svg/SVGFEComponentTransferElement.h: |
| * svg/SVGFEFloodElement.cpp: |
| * svg/SVGFEFloodElement.h: |
| * svg/SVGFEImageElement.h: |
| * svg/SVGFEMergeElement.cpp: |
| * svg/SVGFEMergeElement.h: |
| * svg/SVGFEOffsetElement.cpp: |
| * svg/SVGFEOffsetElement.h: |
| * svg/SVGFETileElement.cpp: |
| * svg/SVGFETileElement.h: |
| * svg/SVGParserUtilities.h: |
| * svg/SVGPathByteStream.h: |
| * svg/SVGPathElement.cpp: |
| * svg/SVGPolyElement.cpp: |
| * svg/SVGSVGElement.cpp: |
| * svg/SVGTRefElement.cpp: |
| * svg/SVGTextPathElement.cpp: |
| * svg/SVGUseElement.cpp: |
| * svg/animation/SMILTimeContainer.h: |
| * svg/graphics/SVGImageCache.h: |
| * svg/graphics/filters/SVGFilter.h: |
| |
| 2017-06-25 Antoine Quint <graouts@apple.com> |
| |
| Remove rAf suspension logging |
| https://bugs.webkit.org/show_bug.cgi?id=173821 |
| |
| Reviewed by Tim Horton. |
| |
| Now that webkit.org/b/173628 is fixed, we can remove the logging code we added. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::requestAnimationFrame): |
| * dom/ScriptedAnimationController.cpp: |
| (WebCore::ScriptedAnimationController::suspend): |
| (WebCore::ScriptedAnimationController::resume): |
| * page/Page.cpp: |
| (WebCore::Page::suspendScriptedAnimations): |
| (WebCore::Page::resumeScriptedAnimations): |
| (WebCore::Page::setIsVisibleInternal): |
| * platform/RuntimeApplicationChecks.h: |
| * platform/cocoa/RuntimeApplicationChecksCocoa.mm: |
| (WebCore::MacApplication::isDumpRenderTree): Deleted. |
| |
| 2017-06-24 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Add complete support for stringifier |
| https://bugs.webkit.org/show_bug.cgi?id=173724 |
| |
| Reviewed by Darin Adler. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (AddStringifierOperationIfNeeded): |
| Update AddStringifierOperationIfNeeded to support stringifier on operations and be more |
| strict about the allowed types. Also copies over all extended attributes to the synthetic |
| operation. |
| |
| * bindings/scripts/IDLParser.pm: |
| (parseInterfaceMember): |
| (parseOperationOrReadWriteAttributeOrMaplike): |
| (parseReadOnlyMember): |
| (parseStringifier): |
| (parseStaticMember): |
| (parseAttributeOrOperationForStringifierOrStatic): |
| (parseReadWriteAttribute): |
| (parseAttributeRest): |
| (parseOperation): |
| (parseSpecialOperation): |
| (parseMapLikeProperties): |
| (parseOperationRest): |
| (parseAttributeOrOperationOrIterator): Deleted. |
| (parseQualifier): Deleted. |
| (parseAttributeOrOperationRest): Deleted. |
| (parseAttribute): Deleted. |
| (parseOperationOrIterator): Deleted. |
| - Update parser to more closely resemble the WebIDL grammar, splitting out parseStringifier and |
| parseStaticMember into their own subroutines. |
| - Move those and parseSerializer, parseStringifier, parseStaticMember, parseIterableRest and a split out |
| parseReadOnlyMembers up into parseInterfaceMember to make it clearer that they are top level members |
| and match the grammar. |
| - Rename parseAttributeOrOperationOrIterator to parseOperationOrReadWriteAttributeOrMaplike to match the |
| grammar language and make it clear what it does. |
| - Add parseAttributeOrOperationForStringifierOrStatic which contains most of the logic for parsing stringifiers |
| and static members, which have almost identical grammars. |
| - Remove creator special which no longer exists in the spec. |
| |
| * css/DOMMatrixReadOnly.idl: |
| * css/WebKitCSSMatrix.idl: |
| * dom/Range.idl: |
| * html/URLSearchParams.idl: |
| Fix FIXMEs by switching to use stringifier. |
| |
| * bindings/scripts/test/JS/JSTestStringifier.cpp: Added. |
| * bindings/scripts/test/JS/JSTestStringifier.h: Added. |
| * bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp: Added. |
| * bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.h: Added. |
| * bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp: Added. |
| * bindings/scripts/test/JS/JSTestStringifierNamedOperation.h: Added. |
| * bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp: Added. |
| * bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.h: Added. |
| * bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp: Added. |
| * bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.h: Added. |
| * bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp: Added. |
| * bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.h: Added. |
| * bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp: Added. |
| * bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.h: Added. |
| * bindings/scripts/test/TestStringifier.idl: Added. |
| * bindings/scripts/test/TestStringifierAnonymousOperation.idl: Added. |
| * bindings/scripts/test/TestStringifierNamedOperation.idl: Added. |
| * bindings/scripts/test/TestStringifierOperationImplementedAs.idl: Added. |
| * bindings/scripts/test/TestStringifierOperationNamedToString.idl: Added. |
| * bindings/scripts/test/TestStringifierReadOnlyAttribute.idl: Added. |
| * bindings/scripts/test/TestStringifierReadWriteAttribute.idl: Added. |
| Add new tests. |
| |
| 2017-06-24 Chris Fleizach <cfleizach@apple.com> |
| |
| AX: Cannot call setValue() on contenteditable or ARIA text controls |
| https://bugs.webkit.org/show_bug.cgi?id=173520 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add support for changing the value of a contenteditable and any other aria text control in setValue(). |
| |
| Test: accessibility/mac/set-value-editable-types.html |
| |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::setValue): |
| |
| 2017-06-23 Simon Fraser <simon.fraser@apple.com> |
| |
| Attempt to fix an internal build after r218755. |
| |
| * bindings/js/JSMainThreadExecStateInstrumentation.h: |
| |
| 2017-06-23 Chris Dumez <cdumez@apple.com> |
| |
| Add release assertion to make sure callbackIdentifier is not 0 in DocumentLoader::finishedLoadingIcon() |
| https://bugs.webkit.org/show_bug.cgi?id=173792 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add release assertion to make sure callbackIdentifier is not 0 in DocumentLoader::finishedLoadingIcon() |
| as this could cause HashTable corruption on WebPageProxy side. |
| |
| * loader/DocumentLoader.cpp: |
| (WebCore::DocumentLoader::finishedLoadingIcon): |
| |
| 2017-06-23 Youenn Fablet <youenn@apple.com> |
| |
| webrtc::WebRtcSession is not handling correctly its state when setLocalDescription fails and is called again |
| https://bugs.webkit.org/show_bug.cgi?id=173783 |
| |
| Reviewed by Alex Christensen. |
| |
| Test: webrtc/libwebrtc/setLocalDescriptionCrash.html |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::doSetLocalDescription): Fail early if there is no pending remote description and description is for an answer. |
| |
| 2017-06-23 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream macOS] enumerateDevices should only return valid audio capture devices |
| https://bugs.webkit.org/show_bug.cgi?id=173790 |
| <rdar://problem/32260334> |
| |
| Reviewed by Youenn Fablet. |
| |
| * platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp: |
| (WebCore::isValidCaptureDevice): A valid device has a name and is not an aggregate device |
| created by VPIO. |
| (WebCore::CoreAudioCaptureDeviceManager::refreshAudioCaptureDevices): |
| |
| 2017-06-23 Jer Noble <jer.noble@apple.com> |
| |
| [WK2] Support -[WebAVPlayerController setMuted:] |
| https://bugs.webkit.org/show_bug.cgi?id=173777 |
| |
| Reviewed by Eric Carlson. |
| |
| Have -[WebAVPlayerController setMuted:] pass the request to its delegate (the model) |
| rather than just storing the value. |
| |
| * platform/cocoa/WebPlaybackSessionModel.h: |
| * platform/cocoa/WebPlaybackSessionModelMediaElement.h: |
| * platform/cocoa/WebPlaybackSessionModelMediaElement.mm: |
| (WebCore::WebPlaybackSessionModelMediaElement::toggleMuted): |
| (WebCore::WebPlaybackSessionModelMediaElement::setMuted): |
| * platform/ios/WebAVPlayerController.h: |
| * platform/ios/WebAVPlayerController.mm: |
| (-[WebAVPlayerController isMuted]): |
| (-[WebAVPlayerController setMuted:]): |
| * platform/ios/WebVideoFullscreenControllerAVKit.mm: |
| (WebVideoFullscreenControllerContext::setMuted): |
| |
| 2017-06-23 Frederic Wang <fwang@igalia.com> |
| |
| Make RenderLayer::handleTouchEvent use usesAcceleratedScrolling() |
| https://bugs.webkit.org/show_bug.cgi?id=173763 |
| |
| Reviewed by Simon Fraser. |
| |
| No new tests, behavior is unchanged. |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::handleTouchEvent): Call usesAcceleratedScrolling() instead of |
| hasTouchScrollableOverflow() for clarity. |
| |
| 2017-06-23 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Remove excessive headers from WebCore/{bindings,css,dom} |
| https://bugs.webkit.org/show_bug.cgi?id=173766 |
| |
| Reviewed by Simon Fraser. |
| |
| No new tests needed. |
| |
| * ForwardingHeaders/runtime/ThrowScope.h: Added. |
| * Modules/plugins/QuickTimePluginReplacement.mm: |
| * bindings/js/CachedScriptSourceProvider.h: |
| * bindings/js/JSCommandLineAPIHostCustom.cpp: |
| * bindings/js/JSCustomXPathNSResolver.cpp: |
| * bindings/js/JSDOMConstructorNotConstructable.h: |
| * bindings/js/JSDOMConvertBase.h: |
| * bindings/js/JSDOMConvertBufferSource.h: |
| * bindings/js/JSDOMConvertInterface.h: |
| * bindings/js/JSDOMConvertStrings.h: |
| * bindings/js/JSDOMConvertUnion.h: |
| * bindings/js/JSDOMConvertVariadic.h: |
| * bindings/js/JSDOMConvertWebGL.h: |
| * bindings/js/JSDOMExceptionHandling.h: |
| * bindings/js/JSDOMIterator.h: |
| * bindings/js/JSDOMMapLike.h: |
| * bindings/js/JSDOMWindowBase.cpp: |
| * bindings/js/JSDOMWindowCustom.cpp: |
| * bindings/js/JSDOMWindowCustom.h: |
| * bindings/js/JSDOMWindowProperties.h: |
| * bindings/js/JSDOMWrapperCache.h: |
| * bindings/js/JSLazyEventListener.cpp: |
| * bindings/js/JSMainThreadExecStateInstrumentation.h: |
| * bindings/js/JSMediaListCustom.h: |
| * bindings/js/JSNodeCustom.h: |
| * bindings/js/JSNodeListCustom.h: |
| * bindings/js/JSVideoTrackListCustom.cpp: |
| * bindings/js/ScheduledAction.h: |
| * bindings/js/ScriptSourceCode.h: |
| * bindings/js/SerializedScriptValue.h: |
| * bindings/js/WebCoreJSClientData.h: |
| * css/CSSFontFeatureValue.h: |
| * css/CSSPrimitiveValue.h: |
| * css/CSSStyleSheet.h: |
| * css/CSSValue.h: |
| * css/StyleBuilderCustom.h: |
| * dom/ContainerNodeAlgorithms.h: |
| * dom/DataTransfer.h: |
| * dom/Node.h: |
| * dom/NodeRareData.h: |
| * dom/Position.h: |
| * dom/RenderedDocumentMarker.h: |
| |
| 2017-06-23 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| Fix broken WinCairo build |
| |
| [Curl] Extract CurlDownloadManager as shared background task handler |
| https://bugs.webkit.org/show_bug.cgi?id=173557 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * platform/network/curl/CurlManager.h: |
| |
| 2017-06-23 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Potential crash under WebCore::notifyLowPowerModeChanged(WebCore::LowPowerModeNotifier*, bool) |
| https://bugs.webkit.org/show_bug.cgi?id=173755 |
| <rdar://problem/32940942> |
| |
| Reviewed by Mark Lam. |
| |
| The crash was happening because the WebLowPowerModeObserver would dispatch |
| a lambda to the main thread but the LowPowerModeNotifier object could be |
| dead by the time we get to the main thread. |
| |
| To address the issue, keep a strong ref to the WebLowPowerModeObserver in |
| the lambda we dispatch to the main thread to make sure it stays alive until |
| we execute the lambda. In the LowPowerModeNotifier destructor, we now reset |
| the WebLowPowerModeObserver's notifier pointer to nil and I added a null |
| check for this notifier in the lambda. |
| |
| * platform/LowPowerModeNotifier.cpp: |
| (WebCore::LowPowerModeNotifier::~LowPowerModeNotifier): |
| * platform/LowPowerModeNotifier.h: |
| * platform/ios/LowPowerModeNotifierIOS.mm: |
| (-[WebLowPowerModeObserver initWithNotifier:]): |
| (-[WebLowPowerModeObserver _didReceiveLowPowerModeChange]): |
| (WebCore::LowPowerModeNotifier::LowPowerModeNotifier): |
| (WebCore::LowPowerModeNotifier::~LowPowerModeNotifier): |
| (WebCore::notifyLowPowerModeChanged): |
| |
| 2017-06-23 Alex Christensen <achristensen@webkit.org> |
| |
| Add SPI to WKURLSchemeTask for redirection |
| https://bugs.webkit.org/show_bug.cgi?id=173730 |
| |
| Reviewed by Brady Eidson. |
| |
| * platform/network/CacheValidation.cpp: |
| (WebCore::computeFreshnessLifetimeForHTTPFamily): |
| Asserting that redirects are always http/https URLs is no longer valid. |
| If there's a custom scheme redirect, give it no freshness lifetime in the cache. |
| |
| 2017-06-23 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Remove excessive headers from WebCore/{editing,fileapi,history,html,loader,page} |
| https://bugs.webkit.org/show_bug.cgi?id=173769 |
| |
| Reviewed by Simon Fraser. |
| |
| No new tests needed. |
| |
| * css/CSSFontFaceSource.cpp: |
| * editing/DictationCommand.cpp: |
| * editing/Editor.h: |
| * editing/VisiblePosition.h: |
| * editing/VisibleUnits.h: |
| * fileapi/BlobBuilder.h: |
| * history/PageCache.h: |
| * html/DOMURL.h: |
| * html/HTMLCollection.h: |
| * html/HTMLMediaElement.cpp: |
| * html/HTMLMediaElement.h: |
| * html/HTMLPlugInImageElement.cpp: |
| * html/StepRange.h: |
| * html/canvas/CanvasRenderingContext.h: |
| * html/canvas/CanvasRenderingContext2D.h: |
| * html/parser/HTMLDocumentParser.cpp: |
| * html/parser/HTMLElementStack.h: |
| * html/parser/HTMLInputStream.h: |
| * html/shadow/MediaControlElements.cpp: |
| * html/shadow/MediaControls.cpp: |
| * html/shadow/MediaControls.h: |
| * html/track/TrackListBase.h: |
| * html/track/VTTCue.h: |
| * html/track/WebVTTParser.cpp: |
| * html/track/WebVTTParser.h: |
| * loader/CrossOriginPreflightChecker.cpp: |
| * loader/DocumentThreadableLoader.cpp: |
| * loader/FrameLoaderClient.h: |
| * loader/LinkPreloadResourceClients.h: |
| * loader/LoadTiming.h: |
| * loader/ThreadableLoaderClientWrapper.h: |
| * loader/WorkerThreadableLoader.h: |
| * loader/cache/CachedResourceLoader.h: |
| * loader/cache/CachedResourceRequest.h: |
| * loader/cache/CachedSVGDocument.h: |
| * loader/cache/CachedTextTrack.h: |
| * loader/icon/IconLoader.cpp: |
| * page/AlternativeTextClient.h: |
| * page/CaptionUserPreferences.cpp: |
| * page/CaptionUserPreferences.h: |
| * page/ContextMenuClient.h: |
| * page/MainFrame.h: |
| * page/Page.h: |
| * page/PageGroup.h: |
| * page/PerformanceEntry.h: |
| * page/PerformanceResourceTiming.h: |
| * page/ResourceUsageOverlay.cpp: |
| * page/ResourceUsageOverlay.h: |
| * page/UserContentController.h: |
| * page/UserContentProvider.h: |
| * page/animation/AnimationBase.h: |
| * page/animation/CSSPropertyAnimation.h: |
| * page/animation/CompositeAnimation.h: |
| * page/scrolling/ScrollingCoordinator.h: |
| * xml/XSLTProcessorLibxslt.cpp: |
| * xml/parser/XMLDocumentParserLibxml2.cpp: |
| |
| 2017-06-23 Chris Dumez <cdumez@apple.com> |
| |
| [mac-wk1] requestAnimationFrame callbacks may not get serviced |
| https://bugs.webkit.org/show_bug.cgi?id=173628 |
| |
| Reviewed by Simon Fraser. |
| |
| Page::setIsVisibleInternal() was firing the 'visibilitychange' event |
| synchronously while in the middle of updating its visibility/activity |
| state. This allowed the JavaScript to re-enter the method by calling |
| testRunner.setPageVisibility() / resetPageVisiblity() and we would |
| end up in an inconsistent state. |
| |
| No new tests, extended existing test. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::visibilityStateChanged): |
| Do no fire the visibilitychange event synchronously as we are in the |
| middle of updating the page's activity state. Instead fire the |
| event asynchronously. |
| |
| * page/Page.cpp: |
| (WebCore::Page::setIsVisibleInternal): |
| Move the calling of Document::visibilityStateChanged() until after we're |
| done updating the page's visibility state. |
| |
| * testing/Internals.cpp: |
| (WebCore::Internals::scriptedAnimationsAreSuspended): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| Add test infrastructure to check if scripted animations are suspended. |
| |
| 2017-06-23 Eric Carlson <eric.carlson@apple.com> |
| |
| [iOS] Respond to AudioSession interruption and resume |
| https://bugs.webkit.org/show_bug.cgi?id=173718 |
| <rdar://problem/32925263> |
| |
| Reviewed by Youenn Fablet. |
| |
| Tested manually. |
| |
| * WebCore.xcodeproj/project.pbxproj: Add CoreAudioCaptureSourceIOS.mm/.h |
| |
| * platform/mediastream/RealtimeMediaSource.h: Make createWeakPtr protected so derived classes |
| can use it. |
| |
| * platform/mediastream/ios/CoreAudioCaptureSourceIOS.h: Added. |
| * platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm: Added. |
| (-[WebCoreAudioCaptureSourceIOSListener initWithCallback:]): |
| (-[WebCoreAudioCaptureSourceIOSListener invalidate]): |
| (-[WebCoreAudioCaptureSourceIOSListener handleInterruption:]): |
| (-[WebCoreAudioCaptureSourceIOSListener sessionMediaServicesWereReset:]): |
| (WebCore::CoreAudioCaptureSourceIOS::CoreAudioCaptureSourceIOS): |
| (WebCore::CoreAudioCaptureSourceIOS::~CoreAudioCaptureSourceIOS): |
| |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioSharedUnit::suspended): |
| (WebCore::CoreAudioSharedUnit::setupAudioUnit): Clear m_suspended. |
| (WebCore::CoreAudioSharedUnit::suspend): Don't clear sources or uninitialize the audio unit, |
| suspend is temporary. Set m_suspended. |
| (WebCore::CoreAudioSharedUnit::resume): New, restart the audio unit. |
| (WebCore::CoreAudioCaptureSource::create): Create the correct object. |
| (WebCore::CoreAudioCaptureSource::scheduleReconfiguration): Dispatch to main thread if necessary. |
| (WebCore::CoreAudioCaptureSource::beginInterruption): New, suspend from main thread. |
| (WebCore::CoreAudioCaptureSource::endInterruption): New, resume/reconfigure from main thread. |
| (WebCore::CoreAudioCaptureSource::interrupted): |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| |
| 2017-06-23 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] Drop the AES-CFB support |
| https://bugs.webkit.org/show_bug.cgi?id=173547 |
| |
| Reviewed by Jiewen Tan. |
| |
| No new tests -- relevant test baselines are updated. |
| |
| Stop registering the AES-CFB algorithm as something that's supported by |
| the libgcrypt implementation. This algorithm was previously included in |
| the Web Crypto API specification, but has since been dropped from it. |
| |
| Conveniently, libgcrypt only recently gained support for the CFB8 AES |
| cipher mode that's required by the specification, meaning we could only |
| support this algorithm with future releases of the libgcrypt library. |
| |
| * crypto/gcrypt/CryptoAlgorithmRegistryGCrypt.cpp: |
| (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): |
| |
| 2017-06-23 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [WPE] Enable PUBLIC_SUFFIX_LIST |
| https://bugs.webkit.org/show_bug.cgi?id=173758 |
| |
| Reviewed by Žan Doberšek. |
| |
| * PlatformWPE.cmake: Add PublicSuffixSoup.cpp to the build. |
| |
| 2017-06-22 Antti Koivisto <antti@apple.com> |
| |
| REGRESSION(r217695): Offscreen/overflowed items not being rendered while translating in-frame |
| https://bugs.webkit.org/show_bug.cgi?id=173732 |
| |
| Reviewed by Simon Fraser. |
| |
| If an accelerated animation starts completely outside the view we fail to create backing for it |
| when it moves into view. |
| |
| Fix by computing the full extent rect of the animation when it starts and doing the viewport overlap |
| testing with that. |
| |
| Test: compositing/backing/transform-transition-from-outside-view.html |
| |
| * platform/graphics/GraphicsLayer.h: |
| (WebCore::GraphicsLayer::animationExtent): |
| (WebCore::GraphicsLayer::setAnimationExtent): |
| * platform/graphics/ca/GraphicsLayerCA.cpp: |
| (WebCore::GraphicsLayerCA::computeVisibleAndCoverageRect): |
| |
| Return the current animation transformation matrix so we can use it elsewhere without recomputing. |
| |
| (WebCore::GraphicsLayerCA::setVisibleAndCoverageRects): |
| |
| If we have animation extent use it instead of bounds for visibility testing. |
| |
| (WebCore::GraphicsLayerCA::recursiveCommitChanges): |
| |
| Track if theres is a visible ancestor layer with a transition animation. |
| |
| (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): |
| (WebCore::GraphicsLayerCA::updateCoverage): |
| |
| For simplicity create backing for all sublayers of a visible transform animated layer. |
| |
| * platform/graphics/ca/GraphicsLayerCA.h: |
| (WebCore::GraphicsLayerCA::VisibleAndCoverageRects::VisibleAndCoverageRects): Deleted. |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::RenderLayerBacking::updateGeometry): |
| |
| Pass the animation extent (including descendants) to GraphicsLayer. |
| |
| 2017-06-22 Chris Dumez <cdumez@apple.com> |
| |
| ResourceLoadStatisticsStore should be ThreadSafeRefCounted |
| https://bugs.webkit.org/show_bug.cgi?id=173753 |
| <rdar://problem/32939326> |
| |
| Reviewed by Andreas Kling. |
| |
| ResourceLoadStatisticsStore should be ThreadSafeRefCounted as it is ref'd/deref'd |
| from different threads. |
| |
| * loader/ResourceLoadStatisticsStore.h: |
| |
| 2017-06-22 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| @font-face rules with invalid primary fonts never download their secondary fonts |
| https://bugs.webkit.org/show_bug.cgi?id=173138 |
| <rdar://problem/32554450> |
| |
| Reviewed by Simon Fraser. |
| |
| We have logic in CSSFontAccessor::font() which disallows downloading a CSSFontFace if that CSSFontFace |
| is already in the Succeeded state. However, it was possible for a succeeded CSSFontFace to still fail |
| to create a font. In this situation, we wouldn't be able to use the downloaded font, and we wouldn't |
| try to download the next item in the src: list because the CSSFontFace is succeeded. |
| |
| This patch strengthens the meaning of the Succeeded state. Previously, it just meant that the bytes |
| in the file were downloaded successfully. This patch extends this to also mean that the bytes in the |
| file can be successfully interpreted as a font. This way, the CSSFontFace in the example above won't be |
| set to the Succeeded state, so we will continue follow the src: list and download the secondary fonts. |
| |
| This has an added benefit that the CSS Font Loading API's promises will be called more appropriately. |
| The transition to the Succeeded state will trigger a resolve of the promise. Now, these promises will |
| only be resolved if the fonts are actually parsed and understood by our text system. |
| |
| Test: fast/text/font-fallback-invalid-load.html |
| |
| * css/CSSFontFaceSource.cpp: |
| (WebCore::CSSFontFaceSource::fontLoaded): Move to the failed state if we can't understand the font |
| data. This is the crux of this patch. |
| (WebCore::CSSFontFaceSource::font): This function should only be called if we are in the Succeeded |
| state, which means now we know we should always be able to understand the bytes of the file. Therefore, |
| we can change some if statements into ASSERT()s. |
| * loader/cache/CachedSVGFont.cpp: |
| (WebCore::CachedSVGFont::createFont): Ditto. |
| (WebCore::CachedSVGFont::ensureCustomFontData): Similarly to CSSFontFaceSource::fontLoaded(), this |
| adds another check to our criteria for transitioning into the Succeeded state, which will guarantee that |
| later we will always be able to create the font object. |
| |
| 2017-06-22 Andreas Kling <akling@apple.com> |
| |
| Rename MemoryPressureHandler::setTabCount to setPageCount |
| https://bugs.webkit.org/show_bug.cgi?id=173750 |
| |
| Reviewed by Daniel Bates. |
| |
| * page/Page.cpp: |
| (WebCore::Page::~Page): |
| |
| 2017-06-22 Antoine Quint <graouts@apple.com> |
| |
| Modern media controls localised strings are out of sync with used strings in code |
| https://bugs.webkit.org/show_bug.cgi?id=173752 |
| |
| Reviewed by Dean Jackson. |
| |
| Remove strings we no longer use and add strings we use but failed to add previously. |
| |
| * English.lproj/modern-media-controls-localized-strings.js: |
| |
| 2017-06-22 Antoine Quint <graouts@apple.com> |
| |
| Log when scripted animations get suspended and resumed |
| https://bugs.webkit.org/show_bug.cgi?id=173751 |
| |
| Reviewed by Dean Jackson. |
| |
| More work toward understanding why rAF callbacks are not serviced on bots (webkit.org/b/173628). |
| |
| * dom/Document.cpp: |
| (WebCore::Document::requestAnimationFrame): |
| * dom/ScriptedAnimationController.cpp: |
| (WebCore::ScriptedAnimationController::suspend): |
| (WebCore::ScriptedAnimationController::resume): |
| (WebCore::ScriptedAnimationController::logSuspendCount): Deleted. |
| * dom/ScriptedAnimationController.h: |
| * page/Page.cpp: |
| (WebCore::Page::suspendScriptedAnimations): |
| (WebCore::Page::resumeScriptedAnimations): |
| (WebCore::Page::setIsVisibleInternal): |
| |
| 2017-06-22 Zalan Bujtas <zalan@apple.com> |
| |
| REGRESSION(r214712): Infinite recursion in RenderTable::layout in paginated mode |
| https://bugs.webkit.org/show_bug.cgi?id=173731 |
| <rdar://problem/32237775> |
| |
| Reviewed by Antti Koivisto. |
| |
| We should just skip bottom captions to check if section is moved, since they don't affect |
| the section position (bottom <caption> is preceded by <tfoot>). |
| |
| Test: fast/table/caption-bottom-with-pagination.html |
| |
| * rendering/RenderTable.cpp: |
| (WebCore::RenderTable::layout): |
| |
| 2017-06-22 Dean Jackson <dino@apple.com> |
| |
| REGRESSION (r215809): 50% regression 14E305 -> 15A293a in MotionMark Suits test |
| https://bugs.webkit.org/show_bug.cgi?id=173728 |
| <rdar://problem/32526744> |
| |
| Reviewed by Tim Horton. |
| |
| It turns out that CGGradientCreateWithColors is much slower than |
| CGGradientCreateWithColorComponents, even without colorspace variations. |
| Update the gradient creation code to only use this slower path |
| when it has extended colors. |
| |
| * platform/graphics/Color.h: Add a FIXME about renaming some methods. |
| * platform/graphics/cg/GradientCG.cpp: Use CGGradientCreateWithColorComponents |
| if we have stops that are not extended colors. |
| (WebCore::Gradient::platformGradient): |
| |
| 2017-06-22 Youenn Fablet <youenn@apple.com> |
| |
| Fix memory leak in LibWebRTCMediaEndpoint |
| https://bugs.webkit.org/show_bug.cgi?id=173717 |
| |
| Reviewed by Eric Carlson. |
| |
| No chnage of behavior. |
| Making sure SessionDescription pointer get properly released. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::createSessionDescriptionSucceeded): |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: |
| * testing/MockLibWebRTCPeerConnection.cpp: Allocating description. |
| |
| 2017-06-22 Daniel Bates <dabates@apple.com> |
| |
| Make FrameLoadRequest a move-only type |
| https://bugs.webkit.org/show_bug.cgi?id=173682 |
| |
| Reviewed by Alex Christensen and Darin Adler. |
| |
| A FrameLoadRequest groups together the information to perform a load into a single object |
| that is more manageable to pass around than its constituent parts. Code that receives a |
| FrameLoadRequest is expected to extract out the information it needs to complete its task. |
| And it does not make sense to re-use the same FrameLoadRequest object for more than one |
| load. Therefore, it is sufficient to make FrameLoadRequest a move-only type. |
| |
| * inspector/InspectorFrontendClientLocal.cpp: |
| (WebCore::InspectorFrontendClientLocal::openInNewTab): |
| * inspector/InspectorPageAgent.cpp: |
| (WebCore::InspectorPageAgent::navigate): |
| * loader/FrameLoadRequest.h: |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::changeLocation): |
| (WebCore::FrameLoader::urlSelected): |
| (WebCore::FrameLoader::loadURLIntoChildFrame): |
| (WebCore::FrameLoader::loadFrameRequest): |
| (WebCore::FrameLoader::loadURL): |
| (WebCore::FrameLoader::load): |
| (WebCore::FrameLoader::loadPostRequest): |
| (WebCore::createWindow): |
| * loader/FrameLoader.h: |
| * loader/NavigationScheduler.cpp: |
| (WebCore::NavigationScheduler::scheduleLocationChange): |
| * page/ContextMenuController.cpp: |
| (WebCore::openNewWindow): |
| (WebCore::ContextMenuController::contextMenuItemSelected): |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::createWindow): |
| * replay/UserInputBridge.cpp: |
| (WebCore::UserInputBridge::loadRequest): |
| * replay/UserInputBridge.h: |
| |
| 2017-06-22 Jer Noble <jer.noble@apple.com> |
| |
| REGRESSION (r217223): [iOS] Video keeps playing after application is backgrounded |
| https://bugs.webkit.org/show_bug.cgi?id=173727 |
| |
| Reviewed by Eric Carlson. |
| |
| Only override media element visibility if it is in picture-in-picture mode (not fullscreen generally). |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::visibilityStateChanged): |
| |
| 2017-06-22 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Follow-up to r218662. Only log backtraces for DumpRenderTree. |
| |
| Rubber-stamped by Antoine Quint. |
| |
| * dom/ScriptedAnimationController.cpp: |
| (WebCore::ScriptedAnimationController::logSuspendCount): |
| |
| 2017-06-22 Charlie Turner <cturner@igalia.com> |
| |
| [GTK] Spreaker live shows won't play |
| https://bugs.webkit.org/show_bug.cgi?id=173306 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| This was due to removing the code that negotiated caps for Icecast |
| streams based on the response headers in r191947. The problem is that |
| the typefind element can sometimes squint hard enough and see an MP3 |
| stream and attempt to play it, resulting in garbled audio playback. More |
| commonly typefind fails to recognize the Icecast stream and bails, |
| resulting in no playback at all. |
| |
| r191947 also removed the emission of metadata into the pipeline. This |
| patch also leaves that out since we have no use for it within WebKit. |
| |
| * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: |
| (StreamingClient::handleResponseReceived): |
| |
| 2017-06-22 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r218633. |
| |
| The test is failing frequently on Sierra Debug and Windows |
| |
| Reverted changeset: |
| |
| "AX: Cannot call setValue() on contenteditable or ARIA text |
| controls" |
| https://bugs.webkit.org/show_bug.cgi?id=173520 |
| http://trac.webkit.org/changeset/218633 |
| |
| 2017-06-22 Romain Bellessort <romain.bellessort@crf.canon.fr> |
| |
| [Readable Streams API] Implement ReadableStreamBYOBReader read() |
| https://bugs.webkit.org/show_bug.cgi?id=172714 |
| |
| Reviewed by Youenn Fablet. |
| |
| Implemented read() method of ReadableStreamBYOBReader [1]. Also added code related |
| to BYOB features that were previously described as FIXMEs and that now become reachable. |
| |
| In addition, WPT tests that involve read() have allowed to identify 2 bugs not directly |
| related to read() (172716 and 172717). They will be fixed distinctly. Once done, all WPT |
| tests should pass. |
| |
| [1] https://streams.spec.whatwg.org/#byob-reader-read |
| |
| WPT tests (web-platform-tests/streams/readable-byte-streams/general.js) already cover |
| most cases for read() usage. Corresponding expectations have been updated. In addition, |
| 1 test has been added to WebKit tests (in streams/readable-stream-byob-reader.js) to |
| check that read() can only be applied to a ReadableStreamBYOBReader. |
| |
| * Modules/streams/ReadableByteStreamInternals.js: |
| (readableByteStreamControllerClearPendingPullIntos): Implemented. |
| (readableByteStreamControllerEnqueue): Updated with support for BYOBReader. |
| (readableByteStreamControllerPullInto): Added. |
| (readableStreamAddReadIntoRequest): Added. |
| * Modules/streams/ReadableStreamBYOBReader.js: |
| (read): Added. |
| |
| 2017-06-22 Youenn Fablet <youenn@apple.com> |
| |
| [WebRTC] Prevent capturing at unconventional resolutions when using the SW encoder on Mac |
| https://bugs.webkit.org/show_bug.cgi?id=172602 |
| <rdar://problem/32407693> |
| |
| Reviewed by Eric Carlson. |
| |
| Test: platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html |
| |
| Add internal API to switch on/off hardware H264 encoder. |
| Add checks for standard size. If using a software encoder and frame size is not standard, |
| the session is destroyed and no frame is sent at all. |
| |
| Added tests based on captureStream. |
| Fixed the case of capturing a canvas which size is changing. |
| |
| * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: |
| (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasResized): |
| * platform/mediastream/libwebrtc/H264VideoToolBoxEncoder.h: |
| * platform/mediastream/libwebrtc/H264VideoToolBoxEncoder.mm: |
| (WebCore::H264VideoToolboxEncoder::setHardwareEncoderForWebRTCAllowed): |
| (WebCore::H264VideoToolboxEncoder::hardwareEncoderForWebRTCAllowed): |
| (WebCore::isUsingSoftwareEncoder): |
| (WebCore::H264VideoToolboxEncoder::CreateCompressionSession): |
| (isStandardFrameSize): Added. |
| (isUsingSoftwareEncoder): Added. |
| * testing/Internals.cpp: |
| (WebCore::Internals::setH264HardwareEncoderAllowed): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-06-21 Youenn Fablet <youenn@apple.com> |
| |
| [Fetch API] TypeError when called with body === {} |
| https://bugs.webkit.org/show_bug.cgi?id=173295 |
| <rdar://problem/32746733> |
| |
| Reviewed by Sam Weinig. |
| |
| Test: fetch/body-init.html |
| |
| Handling body of Request and Response using binding generator to correctly handle unions. |
| The biggest change is that any value that is not a specific type in the union will match a String. |
| This is matching WebIDL spec and Firefox behavior. |
| |
| Handling of ReadableStream bodies remains in JS builtin for Response. |
| This allows easier handling cloning and consumption of body. |
| Adding setBodyAsReadableStream since this is no longer handled by extractBody. |
| |
| * Modules/fetch/FetchBody.cpp: |
| (WebCore::FetchBody::extract): Using Variant instead of JSC::JSValue. |
| (WebCore::FetchBody::readableStreamBody): Introduced to handle the |
| case of readable stream bodies. |
| * Modules/fetch/FetchBody.h: |
| * Modules/fetch/FetchBodyOwner.cpp: |
| (WebCore::FetchBodyOwner::extractBody): |
| * Modules/fetch/FetchBodyOwner.h: |
| (WebCore::FetchBodyOwner::setBody): |
| * Modules/fetch/FetchRequest.cpp: |
| (WebCore::FetchRequest::setBody): Splitting setBody for ease of readability. |
| (WebCore::FetchRequest::setBodyFromInputRequest): |
| * Modules/fetch/FetchRequest.h: |
| * Modules/fetch/FetchRequest.idl: |
| * Modules/fetch/FetchRequest.js: |
| (initializeFetchRequest): |
| * Modules/fetch/FetchResponse.cpp: |
| (WebCore::FetchResponse::initializeWith): |
| (WebCore::FetchResponse::setBodyAsReadableStream): |
| * Modules/fetch/FetchResponse.h: |
| * Modules/fetch/FetchResponse.idl: |
| * Modules/fetch/FetchResponse.js: |
| (initializeFetchResponse): |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/WebCoreBuiltinNames.h: |
| |
| 2017-06-21 Simon Fraser <simon.fraser@apple.com> |
| |
| Add z-index to compositing logging output |
| https://bugs.webkit.org/show_bug.cgi?id=173684 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Show z-index, which is often useful to find negative z-index items. |
| |
| Log "+foreground" rather than "foreground" to indicate that this layer has an |
| additional foreground/background layer, and fix spacing. |
| |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::logLayerInfo): |
| |
| 2017-06-21 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, fix Window Debug build after r218660. |
| |
| * rendering/SimpleLineLayout.cpp: |
| (WebCore::SimpleLineLayout::canUseForWithReason): |
| |
| 2017-06-21 Andreas Kling <akling@apple.com> |
| |
| Increase memory kill limits for WebContent processes that manage multiple tabs. |
| https://bugs.webkit.org/show_bug.cgi?id=173674 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Plumb the non-utility Page count down to WTF::MemoryPressureHandler. |
| |
| * page/Page.cpp: |
| (WebCore::Page::Page): |
| (WebCore::Page::~Page): |
| |
| 2017-06-21 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebCrypto] Restore ordering of CryptoAlgorithmIdentifier in SerializedScriptValue |
| https://bugs.webkit.org/show_bug.cgi?id=173678 |
| <rdar://problem/32879314> |
| |
| Reviewed by Sam Weinig. |
| |
| r218030 reorders the ordering of CryptoAlgorithmIdentifier in SerializedScriptValue, |
| which introduces backward compatibility issues with CryptoKey objects stored in the |
| IndexedDB. Hence, we should restore it back. |
| |
| No tests. |
| |
| * bindings/js/SerializedScriptValue.cpp: |
| |
| 2017-06-21 Daniel Bates <dabates@apple.com> |
| |
| Change FrameLoadRequest from a struct to a class |
| |
| FrameLoadRequest is underutilizing the purpose of a struct - default visibility of |
| members is public, as FrameLoadRequest explicitly groups its members under public: |
| or private: sections. Maybe in the future we can make FrameLoadRequest a struct |
| with only public members. For now, we should consider FrameLoadRequest a class. |
| |
| * loader/FormSubmission.h: |
| * loader/FrameLoadRequest.h: |
| * loader/FrameLoader.h: |
| * page/Chrome.h: |
| * page/ChromeClient.h: |
| * replay/UserInputBridge.h: |
| |
| 2017-06-21 Daewoong Jang <daewoong.jang@navercorp.com> |
| |
| Compiler error while building with !HAVE(ACCESSIBILITY) |
| https://bugs.webkit.org/show_bug.cgi?id=173670 |
| |
| Reviewed by Chris Fleizach. |
| |
| * accessibility/AXObjectCache.h: |
| (WebCore::AXObjectCache::getOrCreate): |
| (WebCore::AXObjectCache::childrenChanged): |
| |
| 2017-06-21 Antoine Quint <graouts@apple.com> |
| |
| Build fix. |
| |
| Reviewed by Tim "Mr. T" Horton. |
| |
| * dom/ScriptedAnimationController.cpp: |
| (WebCore::ScriptedAnimationController::logSuspendCount): |
| * page/Page.cpp: |
| (WebCore::Page::suspendScriptedAnimations): |
| (WebCore::Page::resumeScriptedAnimations): |
| |
| 2017-06-21 Antoine Quint <graouts@apple.com> |
| |
| Ensure DRT always logs rAF suspension debugging code |
| https://bugs.webkit.org/show_bug.cgi?id=173681 |
| |
| Reviewed by Tim "Mr. T" Horton. |
| |
| Instead of using a setting to check whether we should log information related to rAF |
| callbacks being suspended with WK1, we now check whether we're using in DRT to avoid |
| any potential issue with settings being in the incorrect state when a test is run. |
| |
| * dom/ScriptedAnimationController.cpp: |
| (WebCore::ScriptedAnimationController::logSuspendCount): |
| * page/Page.cpp: |
| (WebCore::Page::suspendScriptedAnimations): |
| (WebCore::Page::resumeScriptedAnimations): |
| * page/Settings.in: |
| * platform/RuntimeApplicationChecks.h: |
| * platform/cocoa/RuntimeApplicationChecksCocoa.mm: |
| (WebCore::MacApplication::isDumpRenderTree): |
| |
| 2017-06-21 Chris Dumez <cdumez@apple.com> |
| |
| Allow constructing a WTF:Function from a function pointer |
| https://bugs.webkit.org/show_bug.cgi?id=173660 |
| |
| Reviewed by Alex Christensen. |
| |
| Construct WTF:Function directly from a function pointer when possible |
| instead of constructing a lambda to do so. |
| |
| * Modules/encryptedmedia/InitDataRegistry.cpp: |
| (WebCore::InitDataRegistry::InitDataRegistry): |
| * page/Page.cpp: |
| * page/mac/PageMac.mm: |
| (WebCore::Page::platformInitialize): |
| * platform/cf/MainThreadSharedTimerCF.cpp: |
| (WebCore::setupPowerObserver): |
| * platform/mac/WebCoreNSURLExtras.mm: |
| * rendering/SimpleLineLayout.cpp: |
| (WebCore::SimpleLineLayout::canUseForWithReason): |
| * workers/Worker.cpp: |
| (WebCore::Worker::Worker): |
| |
| 2017-06-21 Antoine Quint <graouts@apple.com> |
| |
| CSS text properties affect <video> shadow root |
| https://bugs.webkit.org/show_bug.cgi?id=173664 |
| <rdar://problem/32904328> |
| |
| Reviewed by Dean Jackson. |
| |
| Ensure that we reset all inheritable styles back to their initial value for media shadow roots. |
| |
| Test: media/modern-media-controls/time-label/time-label-inherited-text-indent.html |
| |
| * Modules/modern-media-controls/controls/media-controls.css: |
| (.media-controls-container): |
| |
| 2017-06-20 Simon Fraser <simon.fraser@apple.com> |
| |
| Remove WILL_REVEAL_EDGE_EVENTS code |
| https://bugs.webkit.org/show_bug.cgi?id=173632 |
| |
| Reviewed by Sam Weinig, Beth Dakin. |
| |
| Remove will-reveal-edge events, which never took off. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::clearScriptedAnimationController): |
| (WebCore::Document::sendWillRevealEdgeEventsIfNeeded): Deleted. |
| * dom/Document.h: |
| * dom/GlobalEventHandlers.idl: |
| * html/HTMLBodyElement.idl: |
| * html/HTMLFrameSetElement.idl: |
| * page/FrameView.cpp: |
| (WebCore::FrameView::scrollPositionChanged): |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::scrollTo): |
| |
| 2017-06-21 Daniel Bates <dabates@apple.com> |
| |
| Cleanup FrameLoadRequest |
| https://bugs.webkit.org/show_bug.cgi?id=173564 |
| <rdar://problem/32903570> |
| |
| Reviewed by Brent Fulgham. |
| |
| FrameLoadRequest has too many constructors. Use default values to reduce the number of |
| constructors. Have FrameLoadRequest hold a Ref<SecurityOrigin> instead of a RefPtr<SecurityOrigin> |
| as FrameLoadRequest must always hold a valid SecurityOrigin, the security origin of the |
| document that initiated the request. |
| |
| * inspector/InspectorFrontendClientLocal.cpp: |
| (WebCore::InspectorFrontendClientLocal::openInNewTab): Explicitly pass the null-string for |
| the target frame name as we do not have one. Use C++11 brace initialization syntax and ASCIILiteral(). |
| Rename local variable from request to frameLoadRequest to better describe its purpose. Fix up |
| FIXME comment added in r105600 to better describe the issue we should fix as the code as |
| changed since the FIXME was added. |
| * inspector/InspectorPageAgent.cpp: |
| (WebCore::InspectorPageAgent::navigate): No need to pass ShouldReplaceDocumentIfJavaScriptURL::ReplaceDocumentIfJavaScriptURL |
| now that the FrameLoadRequests constructor uses this policy by default. Use C++11 brace |
| initialization syntax and ASCIILiteral(). Rename local variable from frameRequest to frameLoadRequest |
| to better describe its purpose. |
| * loader/FrameLoadRequest.cpp: |
| (WebCore::FrameLoadRequest::FrameLoadRequest): Use C++11 brace initialization syntax. |
| * loader/FrameLoadRequest.h: Remove many constructor overloads. Changed m_requester from |
| RefPtr<SecurityOrigin> to Ref<SecurityOrigin> as we can never be instantiated with a null |
| SecurityOrigin. Moved m_shouldCheckNewWindowPolicy to be under ShouldOpenExternalURLsPolicy |
| to reduce the size of the class by 8 bytes. |
| * loader/FrameLoadRequest.h: |
| (WebCore::FrameLoadRequest::FrameLoadRequest): Added copy constructor as we must use Ref::copyRef() |
| to copy the Ref<SecurityOrigin>. |
| (WebCore::FrameLoadRequest::requester): Return a const SecurityOrigin& instead of a const SecurityOrigin*. |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::urlSelected): Update now that the order of the ShouldReplaceDocumentIfJavaScriptURL |
| and ShouldOpenExternalURLsPolicy arguments in the FrameLoadRequest constructor has changed. |
| (WebCore::FrameLoader::loadURLIntoChildFrame): Ditto. Also use C++11 brace initialization syntax |
| and ASCIILiteral(). |
| (WebCore::FrameLoader::loadFrameRequest): Update code now that FrameLoadRequest::requester() returns a |
| SecurityOrigin& instead of a SecurityOrigin*. Use C++11 brace initialization syntax. |
| * loader/NavigationScheduler.cpp: |
| (WebCore::NavigationScheduler::scheduleLocationChange): Use C++11 brace initialization syntax. |
| Rename local variable from frameRequest to frameLoadRequest to better describe its purpose. |
| * page/ContextMenuController.cpp: |
| (WebCore::openNewWindow): |
| (WebCore::ContextMenuController::contextMenuItemSelected): ove FrameLoadRequest instantiation |
| into a local variable and use C++11 brace initialization syntax to make it easier to identify |
| the arguments passed to FrameLoader::loadFrameRequest(). |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::createWindow): Update now that the order of the ShouldReplaceDocumentIfJavaScriptURL |
| and ShouldOpenExternalURLsPolicy arguments in the FrameLoadRequest constructor has changed. |
| Use C++11 brace initialization syntax and ASCIILiteral(). Rename some local variables to better |
| describe their purpose. |
| |
| 2017-06-20 Simon Fraser <simon.fraser@apple.com> |
| |
| svgPath.getTotalLength() freezes webkit |
| https://bugs.webkit.org/show_bug.cgi?id=173566 |
| <rdar://problem/32866731> |
| |
| Reviewed by Dean Jackson. |
| |
| Ensure that curveLength() progresses by making split() return a bool indicating |
| whether either of the resulting curves are the same as the original. This can happen |
| when midPoint() on two close points returns a point that is the same as one of the |
| arguments because of floating-point precision limitations. |
| |
| Test: svg/custom/path-getTotalLength-hang.html |
| |
| * platform/graphics/PathTraversalState.cpp: |
| (WebCore::QuadraticBezier::operator ==): |
| (WebCore::QuadraticBezier::split): |
| (WebCore::CubicBezier::operator ==): |
| (WebCore::CubicBezier::split): |
| (WebCore::curveLength): |
| |
| 2017-06-21 Youenn Fablet <youenn@apple.com> |
| |
| Fix AVVideoCaptureSource frameRate setter and getter |
| https://bugs.webkit.org/show_bug.cgi?id=173637 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by manual testing. |
| |
| Using activeVideoMaxFrameDuration to get the frame rate. |
| Setting the frame rate according the given vale if in the allowed range. |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.h: |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::updateSettings): |
| (WebCore::AVVideoCaptureSource::applyFrameRate): |
| (WebCore::AVVideoCaptureSource::applySizeAndFrameRate): |
| (WebCore::AVVideoCaptureSource::shutdownCaptureSession): |
| (WebCore::AVVideoCaptureSource::processNewFrame): |
| (WebCore::AVVideoCaptureSource::updateFramerate): Deleted. |
| |
| 2017-06-21 Youenn Fablet <youenn@apple.com> |
| |
| Refresh libwebrtc code up to a87675d4a160e2c49c3e754cd9ca291d6c8f36ae |
| https://bugs.webkit.org/show_bug.cgi?id=173602 |
| |
| Reviewed by Eric Carlson. |
| |
| No feature change. |
| |
| Updated according small libwebrtc API changes. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::configurationFromMediaEndpointConfiguration): |
| * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: |
| (WebCore::RealtimeIncomingVideoSource::pixelBufferFromVideoFrame): |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: |
| (WebCore::RealtimeOutgoingVideoSource::sendBlackFramesIfNeeded): |
| (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): |
| |
| 2017-06-21 Sam Weinig <sam@webkit.org> |
| |
| Add support for structured serialization of CSS Geometry types |
| https://bugs.webkit.org/show_bug.cgi?id=173631 |
| |
| Reviewed by Simon Fraser. |
| |
| Tests: imported/w3c/web-platform-tests/css/geometry-1/structured-serialization.html |
| |
| Adds support for serializing the new geometry types as specified by: |
| https://drafts.fxtf.org/geometry-1/#structured-serialization |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| Move a few custom bindings into the "GC / Wrapping Only" since they have no more custom operations or attributes. |
| |
| * bindings/js/SerializedScriptValue.cpp: |
| (WebCore::CloneSerializer::dumpDOMPoint): |
| (WebCore::CloneSerializer::dumpDOMRect): |
| (WebCore::CloneSerializer::dumpDOMMatrix): |
| (WebCore::CloneSerializer::dumpDOMQuad): |
| (WebCore::CloneSerializer::dumpIfTerminal): |
| (WebCore::CloneDeserializer::getJSValue): |
| (WebCore::CloneDeserializer::readDOMPoint): |
| (WebCore::CloneDeserializer::readDOMMatrix): |
| (WebCore::CloneDeserializer::readDOMRect): |
| (WebCore::CloneDeserializer::readDOMPointInit): |
| (WebCore::CloneDeserializer::readDOMQuad): |
| (WebCore::CloneDeserializer::readTerminal): |
| Add serialization/deserialization of the geometry types. |
| |
| * css/DOMMatrix.cpp: |
| (WebCore::DOMMatrix::DOMMatrix): |
| * css/DOMMatrix.h: |
| (WebCore::DOMMatrix::create): |
| * css/DOMMatrixReadOnly.cpp: |
| (WebCore::DOMMatrixReadOnly::DOMMatrixReadOnly): |
| * css/DOMMatrixReadOnly.h: |
| (WebCore::DOMMatrixReadOnly::create): |
| Add create functions and constructors that take a TransformationMatrix by r-value reference |
| so they can be moved into the DOM type. |
| |
| 2017-06-21 Andreas Kling <akling@apple.com> |
| |
| [iOS] Ensure that GraphicsServices is initialized before calling GSFontPurgeFontCache(). |
| https://bugs.webkit.org/show_bug.cgi?id=173616 |
| <rdar://problem/30780050> |
| |
| Reviewed by Chris Dumez. |
| |
| Fix for crash in GSFontPurgeFontCache() seen in apps embedding WebKit. |
| Ensure GSFontInitialize() has been called first, since the former depends on state |
| set up by this function. |
| |
| * page/cocoa/MemoryReleaseCocoa.mm: |
| (WebCore::platformReleaseMemory): |
| * platform/spi/ios/GraphicsServicesSPI.h: |
| |
| 2017-06-21 Antoine Quint <graouts@apple.com> |
| |
| Add logging to identify when the Page suspends scripted animations |
| https://bugs.webkit.org/show_bug.cgi?id=173626 |
| |
| Reviewed by Tim Horton. |
| |
| We have a longstanding issue that some media/modern-media-controls tests time out due to |
| requestAnimationFrame callbacks not being serviced, which is tracked by webkit.org/b/173628. |
| We added some logging to identify when ScriptedAnimationController would get suspended in |
| webkit.org/b/173326. This logging points to the fact that the reason rAF callbacks aren't |
| serviced is because Document::requestAnimationFrame() suspends rAF when the page reports |
| that scripted animations ought to be suspended, which is true when m_scriptedAnimationsSuspended |
| is true. This patch adds logging that tracks when this flag is set, provided a new setting |
| shouldLogScriptedAnimationControllerSuspensionChange is true. |
| |
| * dom/ScriptedAnimationController.cpp: |
| (WebCore::ScriptedAnimationController::logSuspendCount): |
| * page/Page.cpp: |
| (WebCore::Page::suspendScriptedAnimations): |
| (WebCore::Page::resumeScriptedAnimations): |
| * page/Settings.in: |
| |
| 2017-06-21 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Extract CurlDownloadManager as shared background task handler |
| https://bugs.webkit.org/show_bug.cgi?id=173557 |
| |
| Curl resource handling should be shared by other part of Curl |
| network stack. CurlDownloadManager is extracted as stand alone |
| CurlManager singleton class to be ready for others |
| (i.e. ResourceHandle). |
| |
| Reviewed by Alex Christensen. |
| |
| * PlatformWinCairo.cmake: |
| * platform/network/curl/CookieJarCurl.cpp: |
| (WebCore::setCookiesFromDOM): |
| (WebCore::cookiesForSession): |
| * platform/network/curl/CurlDownload.cpp: |
| (WebCore::CurlDownload::init): |
| (WebCore::CurlDownload::start): |
| (WebCore::CurlDownload::cancel): |
| (WebCore::CurlDownload::didReceiveHeader): |
| (WebCore::CurlDownload::handleCurlMsg): |
| (WebCore::CurlDownloadManager::CurlDownloadManager): Deleted. |
| (WebCore::CurlDownloadManager::~CurlDownloadManager): Deleted. |
| (WebCore::CurlDownloadManager::add): Deleted. |
| (WebCore::CurlDownloadManager::remove): Deleted. |
| (WebCore::CurlDownloadManager::getActiveDownloadCount): Deleted. |
| (WebCore::CurlDownloadManager::getPendingDownloadCount): Deleted. |
| (WebCore::CurlDownloadManager::startThreadIfNeeded): Deleted. |
| (WebCore::CurlDownloadManager::stopThread): Deleted. |
| (WebCore::CurlDownloadManager::stopThreadIfIdle): Deleted. |
| (WebCore::CurlDownloadManager::updateHandleList): Deleted. |
| (WebCore::CurlDownloadManager::addToCurl): Deleted. |
| (WebCore::CurlDownloadManager::removeFromCurl): Deleted. |
| (WebCore::CurlDownloadManager::downloadThread): Deleted. |
| * platform/network/curl/CurlDownload.h: |
| (WebCore::CurlDownloadManager::getMultiHandle): Deleted. |
| (WebCore::CurlDownloadManager::runThread): Deleted. |
| (WebCore::CurlDownloadManager::setRunThread): Deleted. |
| * platform/network/curl/CurlManager.cpp: Added. |
| (WebCore::CurlManager::CurlManager): |
| (WebCore::CurlManager::~CurlManager): |
| (WebCore::CurlManager::add): |
| (WebCore::CurlManager::remove): |
| (WebCore::CurlManager::getActiveCount): |
| (WebCore::CurlManager::getPendingCount): |
| (WebCore::CurlManager::startThreadIfNeeded): |
| (WebCore::CurlManager::stopThread): |
| (WebCore::CurlManager::stopThreadIfIdle): |
| (WebCore::CurlManager::updateHandleList): |
| (WebCore::CurlManager::addToCurl): |
| (WebCore::CurlManager::removeFromCurl): |
| (WebCore::CurlManager::workerThread): |
| (WebCore::CurlUtils::getEffectiveURL): |
| (WebCore::CurlSharedResources::mutexFor): |
| (WebCore::CurlSharedResources::lock): |
| (WebCore::CurlSharedResources::unlock): |
| * platform/network/curl/CurlManager.h: Added. |
| (WebCore::CurlManager::singleton): |
| (WebCore::CurlManager::getCurlShareHandle): |
| (WebCore::CurlManager::getMultiHandle): |
| (WebCore::CurlManager::runThread): |
| (WebCore::CurlManager::setRunThread): |
| * platform/network/curl/ResourceHandleManager.cpp: |
| (WebCore::ResourceHandleManager::ResourceHandleManager): |
| (WebCore::ResourceHandleManager::~ResourceHandleManager): |
| (WebCore::handleLocalReceiveResponse): |
| (WebCore::getProtectionSpace): |
| (WebCore::headerCallback): |
| (WebCore::ResourceHandleManager::downloadTimerCallback): |
| (WebCore::getCurlEffectiveURL): Deleted. |
| (WebCore::sharedResourceMutex): Deleted. |
| (WebCore::curl_lock_callback): Deleted. |
| (WebCore::curl_unlock_callback): Deleted. |
| (WebCore::ResourceHandleManager::getCurlShareHandle): Deleted. |
| * platform/network/curl/ResourceHandleManager.h: |
| |
| 2017-06-21 Jeremy Jones <jeremyj@apple.com> |
| |
| Include audio/vnd.wave as a valid mime-type for wav files. |
| https://bugs.webkit.org/show_bug.cgi?id=173635 |
| rdar://problem/32656568 |
| |
| Reviewed by Eric Carlson. |
| |
| audio/vnd.wave is a valid mime-type for wav files per https://tools.ietf.org/html/rfc2361 |
| |
| Updated test and test results: |
| LayoutTests/media/media-can-play-wav-audio.html |
| |
| * platform/MIMETypeRegistry.cpp: |
| (WebCore::initializeSupportedImageMIMETypes): |
| (WebCore::mimeTypeAssociationMap): |
| * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: |
| (WebCore::MediaPlayerPrivateAVFoundation::staticMIMETypeList): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::mimeTypeSet): |
| |
| 2017-06-21 Chris Fleizach <cfleizach@apple.com> |
| |
| AX: Cannot call setValue() on contenteditable or ARIA text controls |
| https://bugs.webkit.org/show_bug.cgi?id=173520 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add support for changing the value of a contenteditable and any other aria text control in setValue(). |
| |
| Test: accessibility/set-value-editable-types.html |
| |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::setValue): |
| |
| 2017-06-20 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] Implement CryptoKeyEC SPKI imports |
| https://bugs.webkit.org/show_bug.cgi?id=172927 |
| |
| Reviewed by Jiewen Tan, Michael Catanzaro and Carlos Garcia Campos. |
| |
| No new tests -- affected tests are now passing and are unskipped. |
| |
| Implement libgcrypt-based support for SPKI imports of EC keys. |
| |
| Using libtasn1 through the utility functions and wrappers, the given key data |
| is decoded against the SubjectPublicKeyInfo ASN.1 definition. The algorithm |
| member is then properly validated, making sure that the key algorithm idenfitier |
| is supported and that the algorithm parameters specify the correct EC curve. |
| |
| The public key bit string is then retrieved and validated, ensuring it represents |
| an uncompressed EC point that is of valid size for the specified EC curve. The |
| point is then tested through an EC context to make sure it's positioned on the |
| specified EC curve. |
| |
| Finally, the curve name and uncompressed point data are embedded into a |
| `public-key` s-expression that will be used through the libgcrypt API. This is |
| then used, along with other information, to create a valid CryptoKeyEC object. |
| |
| * PlatformGTK.cmake: Use LIBTASN1_INCLUDE_DIRECTORIES and LIBTASN1_LIBRARIES. |
| * PlatformWPE.cmake: Ditto. |
| * crypto/gcrypt/CryptoKeyECGCrypt.cpp: |
| (WebCore::supportedAlgorithmIdentifier): |
| (WebCore::curveForIdentifier): |
| (WebCore::CryptoKeyEC::platformImportSpki): |
| |
| 2017-06-20 Devin Rousso <drousso@apple.com> |
| |
| WebGPU contexts should have a back reference to the canvas element |
| https://bugs.webkit.org/show_bug.cgi?id=173633 |
| |
| Reviewed by Jon Lee. |
| |
| No tests added, as this is already implemented within other canvas types. |
| |
| * html/canvas/WebGPURenderingContext.idl: |
| |
| 2017-06-20 Youenn Fablet <youenn@apple.com> |
| |
| WebAudioSourceProvider should be thread safe ref counted |
| https://bugs.webkit.org/show_bug.cgi?id=173623 |
| |
| Reviewed by Eric Carlson. |
| |
| No observable change of behavior. |
| |
| * platform/mediastream/WebAudioSourceProvider.h: |
| |
| 2017-06-20 Yoav Weiss <yoav@yoav.ws> |
| |
| [preload] Turn on preload's feature flag by default. |
| https://bugs.webkit.org/show_bug.cgi?id=173139 |
| |
| Reviewed by Youenn Fablet. |
| |
| Turn on the runtime enabled feature flag for link preload by default. |
| |
| No new tests as this just turns on a feature that was already on-by-default for tests. |
| |
| * page/RuntimeEnabledFeatures.h: |
| |
| 2017-06-20 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Disable font variations on macOS Sierra and iOS 10 |
| https://bugs.webkit.org/show_bug.cgi?id=173618 |
| <rdar://problem/32879164> |
| |
| Reviewed by Jon Lee. |
| |
| On macOS Sierra and iOS 10, there are some platform problems involved with font variations. They |
| were previously enabled on those OSes just as a preview development tool. These platform bugs have |
| been fixed in macOS High Sierra and iOS 11, so we should align our feature flags with the eventual |
| configurations. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::defaultVariationValues): |
| (WebCore::preparePlatformFont): |
| |
| 2017-06-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Send context attributes for tracked canvases |
| https://bugs.webkit.org/show_bug.cgi?id=173327 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Test: inspector/canvas/context-attributes.html |
| |
| * inspector/InspectorCanvasAgent.cpp: |
| (WebCore::InspectorCanvasAgent::buildObjectForCanvas): |
| |
| 2017-06-20 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [Cocoa] The system Japanese font cannot be italicized |
| https://bugs.webkit.org/show_bug.cgi?id=173300 |
| <rdar://problem/31805407> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Items in the system font cascade list may lie about whether or not they support italics. |
| In order to get the truth, we need to use the physical font underlying the font in question, |
| because this one won't lie. Then, we can interrogate this physical font about its traits |
| in order to synthesize italics correctly. |
| |
| Test: fast/text/system-font-japanese-synthetic-italic.html |
| |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::lookupFallbackFont): |
| * platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp: |
| (WebCore::FontFamilySpecificationCoreText::fontRanges): |
| |
| 2017-06-20 Chris Dumez <cdumez@apple.com> |
| |
| Use WTF::Function instead of std::function in more places in WebCore/ |
| https://bugs.webkit.org/show_bug.cgi?id=173583 |
| |
| Reviewed by Darin Adler. |
| |
| Use WTF::Function instead of std::function in more places in WebCore/ to |
| reduce copying. |
| |
| * page/Page.cpp: |
| * platform/HysteresisActivity.h: |
| (WebCore::HysteresisActivity::HysteresisActivity): |
| * platform/Logging.cpp: |
| (WebCore::registerNotifyCallback): |
| * platform/Logging.h: |
| * platform/MainThreadSharedTimer.cpp: |
| (WebCore::MainThreadSharedTimer::setFiredFunction): |
| * platform/MainThreadSharedTimer.h: |
| * platform/PlatformPasteboard.h: |
| * platform/ScopeGuard.h: |
| (WebCore::ScopeGuard::ScopeGuard): |
| (WebCore::ScopeGuard::enable): |
| * platform/ScrollAnimationSmooth.cpp: |
| (WebCore::ScrollAnimationSmooth::ScrollAnimationSmooth): |
| * platform/ScrollAnimationSmooth.h: |
| * platform/SharedTimer.h: |
| * platform/audio/PlatformMediaSessionManager.cpp: |
| (WebCore::PlatformMediaSessionManager::currentSessionsMatching): |
| * platform/audio/PlatformMediaSessionManager.h: |
| * platform/cf/MainThreadSharedTimerCF.cpp: |
| (WebCore::setupPowerObserver): |
| * platform/cf/RunLoopObserver.h: |
| (WebCore::RunLoopObserver::RunLoopObserver): |
| * platform/graphics/GraphicsContext.h: |
| * platform/graphics/GraphicsLayer.cpp: |
| (WebCore::GraphicsLayer::traverse): |
| * platform/graphics/GraphicsLayer.h: |
| * platform/graphics/MediaPlayer.cpp: |
| (WebCore::addMediaEngine): |
| * platform/graphics/MediaPlayer.h: |
| * platform/graphics/Path.h: |
| * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: |
| (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): |
| (WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification): |
| (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification): |
| * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: |
| (WebCore::MediaPlayerPrivateAVFoundation::Notification::Notification): |
| (WebCore::MediaPlayerPrivateAVFoundation::Notification::function): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: |
| (WebCore::runWithoutAnimations): |
| * platform/graphics/cocoa/IOSurface.h: |
| * platform/graphics/cocoa/IOSurface.mm: |
| (WebCore::IOSurface::convertToFormat): |
| * platform/graphics/gstreamer/MainThreadNotifier.h: |
| * platform/graphics/gstreamer/MediaPlayerRequestInstallMissingPluginsCallback.h: |
| (WebCore::MediaPlayerRequestInstallMissingPluginsCallback::create): |
| (WebCore::MediaPlayerRequestInstallMissingPluginsCallback::MediaPlayerRequestInstallMissingPluginsCallback): |
| * platform/graphics/win/GraphicsContextDirect2D.cpp: |
| (WebCore::GraphicsContext::drawWithoutShadow): |
| (WebCore::GraphicsContext::drawWithShadow): |
| * platform/gtk/PasteboardHelper.cpp: |
| (WebCore::ClipboardSetData::ClipboardSetData): |
| (WebCore::PasteboardHelper::writeClipboardContents): |
| * platform/gtk/PasteboardHelper.h: |
| * platform/gtk/PlatformPasteboardGtk.cpp: |
| (WebCore::PlatformPasteboard::writeToClipboard): |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.h: |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: |
| (WebVideoFullscreenInterfaceAVKit::preparedToReturnToInline): |
| (WebVideoFullscreenInterfaceAVKit::fullscreenMayReturnToInline): |
| * platform/mac/PowerObserverMac.cpp: |
| (WebCore::PowerObserver::PowerObserver): |
| * platform/mac/PowerObserverMac.h: |
| * platform/mac/WebCoreNSURLExtras.mm: |
| (WebCore::isSecondLevelDomainNameAllowedByTLDRules): |
| * platform/mediastream/CaptureDeviceManager.cpp: |
| (CaptureDeviceManager::addCaptureDeviceChangedObserver): |
| * platform/mediastream/CaptureDeviceManager.h: |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::scheduleDeferredTask): |
| * platform/mediastream/RealtimeMediaSource.h: |
| * platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: |
| (-[WebAVAudioSessionAvailableInputsListener initWithCallback:]): |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| * platform/mock/ScrollAnimatorMock.cpp: |
| (WebCore::ScrollAnimatorMock::ScrollAnimatorMock): |
| * platform/mock/ScrollAnimatorMock.h: |
| * platform/network/CookieStorage.h: |
| * platform/network/NetworkStateNotifier.cpp: |
| (WebCore::NetworkStateNotifier::addNetworkStateChangeListener): |
| * platform/network/NetworkStateNotifier.h: |
| * platform/network/NetworkStorageSession.cpp: |
| (WebCore::NetworkStorageSession::forEach): |
| * platform/network/NetworkStorageSession.h: |
| * platform/network/cf/CookieStorageCFNet.cpp: |
| (WebCore::cookieChangeCallbackMap): |
| (WebCore::startObservingCookieChanges): |
| * platform/network/cf/SocketStreamHandleImplCFNet.cpp: |
| (WebCore::callOnMainThreadAndWait): |
| * platform/network/mac/CookieStorageMac.mm: |
| (-[WebCookieStorageObjCAdapter startListeningForCookieChangeNotificationsWithCallback:]): |
| (WebCore::startObservingCookieChanges): |
| * platform/network/soup/CookieStorageSoup.cpp: |
| (WebCore::startObservingCookieChanges): |
| * platform/network/soup/SoupNetworkSession.cpp: |
| (WebCore::SoupNetworkSession::checkTLSErrors): |
| * platform/network/soup/SoupNetworkSession.h: |
| * platform/sql/SQLiteDatabase.cpp: |
| (WebCore::destroyCollationFunction): |
| (WebCore::callCollationFunction): |
| (WebCore::SQLiteDatabase::setCollationFunction): |
| * platform/sql/SQLiteDatabase.h: |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::traverseVisibleNonCompositedDescendantLayers): |
| * rendering/RenderListBox.cpp: |
| (WebCore::RenderListBox::paintItem): |
| * rendering/RenderListBox.h: |
| * rendering/line/BreakingContext.h: |
| (WebCore::BreakingContext::InlineIteratorHistory::push): |
| (WebCore::BreakingContext::InlineIteratorHistory::update): |
| * workers/Worker.cpp: |
| (WebCore::Worker::Worker): |
| * workers/WorkerRunLoop.cpp: |
| |
| 2017-06-20 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r218524. |
| |
| This change broke internal builds. |
| |
| Reverted changeset: |
| |
| "[Cocoa] The system Japanese font cannot be italicized" |
| https://bugs.webkit.org/show_bug.cgi?id=173300 |
| http://trac.webkit.org/changeset/218524 |
| |
| 2017-06-20 Daniel Bates <dabates@apple.com> |
| |
| Have FrameLoadRequest takes a Frame& instead of a Frame* |
| https://bugs.webkit.org/show_bug.cgi?id=173614 |
| <rdar://problem/32884890> |
| |
| Reviewed by Brent Fulgham. |
| |
| * loader/ContentFilter.cpp: |
| (WebCore::ContentFilter::handleProvisionalLoadFailure): |
| * loader/FrameLoadRequest.cpp: |
| (WebCore::FrameLoadRequest::FrameLoadRequest): |
| * loader/FrameLoadRequest.h: |
| * page/DragController.cpp: |
| (WebCore::DragController::performDragOperation): |
| |
| 2017-06-20 Daniel Bates <dabates@apple.com> |
| |
| Skip Content Security Policy check for a media request using standard schemes initiated from |
| an element in user agent shadow tree |
| https://bugs.webkit.org/show_bug.cgi?id=155505 |
| <rdar://problem/25169452> |
| |
| Reviewed by Brent Fulgham. |
| |
| This change makes the following tests pass on iOS 11: |
| http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-video.html |
| http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-audio.html |
| |
| * loader/MediaResourceLoader.cpp: |
| (WebCore::MediaResourceLoader::requestResource): |
| * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: |
| (WebCore::WebCoreAVFResourceLoader::startLoading): |
| |
| 2017-06-20 Andreas Kling <akling@apple.com> |
| |
| Remove no-op calls to purge SQLite caches on memory pressure. |
| <https://webkit.org/b/173604> |
| |
| Reviewed by Chris Dumez. |
| |
| The implementation of _sqlite3_purgeEligiblePagerCacheMemory() is empty |
| since a few releases ago, so there's no point in calling it. |
| |
| * page/MemoryRelease.cpp: |
| (WebCore::registerMemoryReleaseNotifyCallbacks): |
| (WebCore::registerSQLiteMemoryPressureHandler): Deleted. |
| * page/MemoryRelease.h: |
| * page/cocoa/MemoryReleaseCocoa.mm: |
| (WebCore::platformReleaseMemory): |
| (WebCore::registerSQLiteMemoryPressureHandler): Deleted. |
| * platform/sql/SQLiteDatabase.cpp: |
| (WebCore::initializeSQLiteIfNecessary): |
| |
| 2017-06-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: add console messages for WebGL shader compile and program link errors/warnings |
| https://bugs.webkit.org/show_bug.cgi?id=143236 |
| <rdar://problem/20352149> |
| |
| Reviewed by Dean Jackson. |
| |
| Test: fast/canvas/webgl/shader-compile-logging.html |
| |
| * html/canvas/WebGLRenderingContextBase.h: |
| * html/canvas/WebGLRenderingContextBase.cpp: |
| (WebCore::WebGLRenderingContextBase::checkFramebufferStatus): |
| (WebCore::WebGLRenderingContextBase::compileShader): |
| (WebCore::WebGLRenderingContextBase::recycleContext): |
| (WebCore::WebGLRenderingContextBase::checkTextureCompleteness): |
| (WebCore::WebGLRenderingContextBase::printToConsole): |
| (WebCore::WebGLRenderingContextBase::maybeRestoreContext): |
| (WebCore::WebGLRenderingContextBase::synthesizeGLError): |
| (WebCore::WebGLRenderingContextBase::printGLErrorToConsole): Deleted. |
| (WebCore::WebGLRenderingContextBase::printWarningToConsole): Deleted. |
| (WebCore::WebGLRenderingContextBase::printGLWarningToConsole): Deleted. |
| Unify console logging helper functions to all follow the same path. Additionally, errors |
| now generate stack traces. Shader compilation errors are now logged as well. |
| |
| * dom/Document.h: |
| * dom/Document.cpp: |
| (WebCore::Document::addConsoleMessage): |
| * dom/ScriptExecutionContext.h: |
| (WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask): |
| * page/PageConsoleClient.h: |
| * page/PageConsoleClient.cpp: |
| (WebCore::PageConsoleClient::addMessage): |
| * workers/WorkerGlobalScope.h: |
| Add new path for logging to the console that accepts a ConsoleMessage. |
| |
| 2017-06-20 Saam Barati <sbarati@apple.com> |
| |
| Unreviewed. Try to fix the build after r218594. |
| |
| * dom/Document.h: |
| |
| 2017-06-20 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r218530. |
| |
| This revision caused multiple media stream test crashes on |
| Debug builds. |
| |
| Reverted changeset: |
| |
| "Merge MediaDevicesRequest and MediaDevicesEnumerationRequest |
| to tighten up code and object lifetime" |
| https://bugs.webkit.org/show_bug.cgi?id=173527 |
| http://trac.webkit.org/changeset/218530 |
| |
| 2017-06-19 Antoine Quint <graouts@apple.com> |
| |
| Media document experience with long-loading files is poor |
| https://bugs.webkit.org/show_bug.cgi?id=173575 |
| <rdar://problem/32178119> |
| |
| Reviewed by Dean Jackson. |
| |
| In order to avoid showing media controls at a different size than that of the video when we've |
| received enough information to determine whether it's audio or video and what the video frame size |
| is, we do not show any UI until we have enough information to show the controls in their correct |
| initial state. This works well with local files and fast-loading files, but does not work well with |
| invalid files, which never load and fail to ever show any UI, and files that load slowly where there |
| is no visible feedback that content will be visible. |
| |
| Instead, we now default to showing audio controls in their loading state, which provides a seamless |
| transition if we will be loading an audio file since the controls are initially in the correct state, |
| and at least provide feedback that data is loading even if we eventually transition to a video layout. |
| |
| Additionally, we remove the invalid placard background in case the media is invalid, showing only the |
| crossed-out play icon in the center of the page in that state. |
| |
| Tests: media/modern-media-controls/media-documents/media-document-invalid.html |
| media/modern-media-controls/media-documents/media-document-video-with-initial-audio-layout.html |
| |
| * Modules/modern-media-controls/controls/media-document.css: |
| (:host(.media-document)): Remove "visibility: hidden" since we want the media controls to be visible |
| at all times. |
| (:host(.media-document.audio)): Add a little padding on the x-axis to ensure audio controls never snap |
| directly to the edges of the window. |
| (:host(.media-document.audio.iphone)): Remove the iPhone-specific styling since we moved it to the |
| general case. |
| (:host(.media-document.video.invalid) .placard): Remove the background from the invalid placard when |
| showing invalid media. |
| (:host(.media-document.ready)): Deleted. |
| * Modules/modern-media-controls/media/audio-support.js: |
| (AudioSupport.prototype.syncControl): Make sure we invalidate the media document layout when a media |
| document's media type changes. |
| * Modules/modern-media-controls/media/media-controller.js: |
| (MediaController): Instantiate the controls prior to creating the MediaDocumentController since the |
| MediaDocumentController will need to access the controls. |
| * Modules/modern-media-controls/media/media-document-controller.js: |
| (MediaDocumentController): Set the default layout for media controls for a media document to be audio |
| and in the waiting state. |
| (MediaDocumentController.prototype.layout): Toggle the "invalid", "audio" and "video" CSS classes for |
| the next possible commit to the DOM, provided we have established the media document's media type. |
| (MediaDocumentController.prototype.handleEvent): Deal with the "play" and "error" events to trigger |
| a layout. |
| (MediaDocumentController.prototype._mediaDocumentHasMetadata): Deleted. |
| (MediaDocumentController.prototype._mediaDocumentHasSize): Deleted. |
| |
| 2017-06-20 Daniel Bates <dabates@apple.com> |
| |
| NavigationAction has too many constructors |
| https://bugs.webkit.org/show_bug.cgi?id=173484 |
| |
| Reviewed by Brady Eidson. |
| |
| A NavigationAction object is an immutable object that represents the details of a |
| navigation, including the type of a navigation (e.g. link click), what triggered |
| the navigation, and the external URL policy to use for the navigation. Over time |
| the number of NavigationAction constructor overloads (not including copy/move |
| constructors) has grown to 12 to support different combinations of details. |
| We can use default values to reduce the number of constructors to 2 (not including |
| copy/move constructors). |
| |
| No behavior changed. So, no new tests. |
| |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): Pass NavigationType::Other when |
| instantiating NavigationAction. |
| (WebCore::FrameLoader::loadDifferentDocumentItem): Fix order of arguments now that |
| the constructor overload that takes a NavigationType takes the Event* as the fourth argument, |
| not the third. Also, use C++11 brace initialization syntax when instantiating a NavigationAction. |
| (WebCore::createWindow): |
| * loader/NavigationAction.cpp: Remove unnecessary #include of header ScriptController.h. |
| Include header Event.h. |
| (WebCore::NavigationAction::NavigationAction): |
| * loader/NavigationAction.h: Forward declare class Event and remove #include of header Event.h. |
| Make copy constructor, copy assignment operator, move constructor, and move assignment operator |
| out-of-line to avoid the need to include header Event.h. Export the copy constructor so that it |
| can be used from WebKit on the Apple Windows port. Move ShouldOpenExternalURLsPolicy to be after |
| NavigationType to reduce the size of the class by 8 bytes. |
| (WebCore::NavigationAction::NavigationAction): |
| * loader/PolicyChecker.cpp: Include header Event.h. |
| * page/Performance.cpp: Ditto. |
| * replay/ReplayController.cpp: Ditto. |
| |
| 2017-06-20 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Rename OrientationNotifer.h to OrientationNotifier.h |
| https://bugs.webkit.org/show_bug.cgi?id=173600 |
| |
| Reviewed by Youenn Fablet. |
| |
| No new tests needed. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * dom/Document.h: |
| * platform/OrientationNotifier.h: Renamed from Source/WebCore/platform/OrientationNotifer.h. |
| * platform/mediastream/mac/AVVideoCaptureSource.h: |
| * platform/mediastream/mac/MockRealtimeVideoSourceMac.h: |
| * testing/Internals.h: |
| |
| 2017-06-20 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Remove excessive include directives from WTF |
| https://bugs.webkit.org/show_bug.cgi?id=173553 |
| |
| Reviewed by Saam Barati. |
| |
| No new tests needed. |
| |
| * platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.h: |
| Added missing include directive. |
| |
| 2017-06-20 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Remove excessive include directives from WebCore/dom |
| https://bugs.webkit.org/show_bug.cgi?id=173591 |
| |
| Reviewed by Darin Adler. |
| |
| No new tests needed. |
| |
| * bindings/js/JSCustomElementRegistryCustom.cpp: |
| * dom/Attr.h: |
| * dom/ChildListMutationScope.h: |
| * dom/ContainerNodeAlgorithms.cpp: |
| * dom/ContainerNodeAlgorithms.h: |
| * dom/CustomElementRegistry.h: |
| * dom/DOMRect.h: |
| * dom/DocumentMarkerController.h: |
| * dom/ElementIteratorAssertions.h: |
| * dom/ElementRareData.h: |
| * dom/EventContext.h: |
| * dom/EventDispatcher.h: |
| * dom/ExtensionStyleSheets.h: |
| * dom/GenericEventQueue.h: |
| * dom/LiveNodeList.h: |
| * dom/LoadableClassicScript.h: |
| * dom/LoadableScript.h: |
| * dom/MutationCallback.h: |
| * dom/NativeNodeFilter.h: |
| * dom/NodeRareData.h: |
| * dom/PromiseRejectionEvent.h: |
| * dom/PseudoElement.h: |
| * dom/Range.h: |
| * dom/RegisteredEventListener.h: |
| * dom/RejectedPromiseTracker.cpp: |
| * dom/ScopedEventQueue.h: |
| * dom/ScriptElement.h: |
| * dom/ScriptExecutionContext.h: |
| * dom/ScriptedAnimationController.cpp: |
| * dom/ScriptedAnimationController.h: |
| * dom/SelectorQuery.h: |
| * dom/StaticNodeList.h: |
| * dom/StaticRange.h: |
| * dom/default/PlatformMessagePortChannel.h: |
| * testing/Internals.cpp: |
| * workers/WorkerGlobalScope.h: |
| |
| 2017-06-20 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Remove excessive include directives from WebCore/css |
| https://bugs.webkit.org/show_bug.cgi?id=173554 |
| |
| Reviewed by Alex Christensen. |
| |
| No new tests needed. |
| |
| * css/CSSComputedStyleDeclaration.h: |
| * css/CSSContentDistributionValue.h: |
| * css/CSSCursorImageValue.h: |
| * css/CSSFilterImageValue.h: |
| * css/CSSFontFace.h: |
| * css/CSSFontFeatureValue.h: |
| * css/CSSFontStyleRangeValue.h: |
| * css/CSSFontVariationValue.h: |
| * css/CSSImageGeneratorValue.h: |
| * css/CSSImageSetValue.h: |
| * css/CSSInheritedValue.h: |
| * css/CSSInitialValue.h: |
| * css/CSSKeyframeRule.cpp: |
| * css/CSSKeyframeRule.h: |
| * css/CSSLineBoxContainValue.h: |
| * css/CSSPrimitiveValue.h: |
| * css/CSSPrimitiveValueMappings.h: |
| * css/CSSPropertySourceData.h: |
| * css/CSSReflectValue.h: |
| * css/CSSRevertValue.h: |
| * css/CSSSelector.h: |
| * css/CSSStyleSheet.h: |
| * css/CSSToLengthConversionData.h: |
| * css/CSSUnsetValue.h: |
| * css/CSSValue.h: |
| * css/CSSValuePool.h: |
| * css/CSSVariableData.h: |
| * css/DeprecatedCSSOMCounter.h: |
| * css/DeprecatedCSSOMRGBColor.h: |
| * css/DeprecatedCSSOMRect.h: |
| * css/DeprecatedCSSOMValue.h: |
| * css/RuleSet.h: |
| * css/SelectorChecker.h: |
| * css/StyleBuilderConverter.h: |
| * css/StyleBuilderCustom.h: |
| * css/StyleProperties.h: |
| * css/StyleResolver.cpp: |
| * css/StyleResolver.h: |
| * css/StyleSheet.h: |
| * css/StyleSheetContents.h: |
| * css/ViewportStyleResolver.h: |
| * css/parser/CSSDeferredParser.h: |
| * css/parser/CSSParserIdioms.h: |
| * css/parser/CSSParserImpl.cpp: |
| * css/parser/CSSParserImpl.h: |
| * css/parser/CSSParserObserver.h: |
| * css/parser/CSSParserSelector.h: |
| * css/parser/CSSPropertyParserHelpers.h: |
| * css/parser/MediaQueryParser.cpp: |
| * css/parser/MediaQueryParser.h: |
| * css/parser/SizesAttributeParser.cpp: |
| * css/parser/SizesAttributeParser.h: |
| * html/BaseCheckableInputType.cpp: |
| * html/MediaController.cpp: |
| * html/track/TextTrack.cpp: |
| * html/track/TextTrackCue.cpp: |
| * html/track/VideoTrack.cpp: |
| * loader/TextTrackLoader.cpp: |
| |
| 2017-06-20 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK] Layout Test fast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html makes the subsequent test case flaky crash. |
| https://bugs.webkit.org/show_bug.cgi?id=173459 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| When destructing the VideoTextureCopierGStreamer, ensure that there's a previous gl context before trying |
| to make it current again. There are situations where no previous context may exist, which can trigger a crash. |
| Also, add DefaultImageOrientation to the switch that handles the video frame possible orientations, as it's the |
| value used when no rotation needs to be performed, and it's currently triggering an assertion. |
| |
| Covered by existent tests. |
| |
| * platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp: |
| (WebCore::VideoTextureCopierGStreamer::~VideoTextureCopierGStreamer): |
| (WebCore::VideoTextureCopierGStreamer::updateTextureSpaceMatrix): |
| |
| 2017-06-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: create canvas content view and details sidebar panel |
| https://bugs.webkit.org/show_bug.cgi?id=138941 |
| <rdar://problem/19051672> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Tests: inspector/canvas/requestContent.html |
| inspector/canvas/requestNode.html |
| |
| * inspector/InspectorCanvasAgent.h: |
| * inspector/InspectorCanvasAgent.cpp: |
| (WebCore::InspectorCanvasAgent::requestNode): |
| Gets the node id of the backing canvas element. |
| |
| (WebCore::InspectorCanvasAgent::requestContent): |
| Gets the current image content of the canvas. |
| |
| (WebCore::InspectorCanvasAgent::frameNavigated): |
| (WebCore::InspectorCanvasAgent::didCreateCanvasRenderingContext): |
| Minor fixes from r218376 <https://webkit.org/b/172623>. |
| |
| (WebCore::InspectorCanvasAgent::buildObjectForCanvas): |
| Optionally send the `nodeId` of the backing canvas element if it is available. |
| |
| * inspector/InspectorInstrumentation.cpp: |
| (WebCore::InspectorInstrumentation::didCommitLoadImpl): |
| |
| 2017-06-19 Frederic Wang <fwang@igalia.com> |
| |
| [iOS] Always include frames in the scrolling tree when async frame scrolling is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=173405 |
| |
| Reviewed by Simon Fraser. |
| |
| Currently "async frame scrolling" is ignored on iOS. This commit changes that behavior to |
| align on macOS and is a preliminary step to implement iframe scrolling on iOS (bug 149264). |
| |
| Test: compositing/iframes/compositing-for-scrollable-iframe.html |
| fast/scrolling/scrolling-tree-includes-frame.html |
| |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame): Do not require |
| compositing when "async frame scrolling" is enabled on iOS. |
| |
| 2017-06-19 Frederic Wang <fwang@igalia.com> |
| |
| [Mac] Add an experimental feature setting for async frame scrolling |
| https://bugs.webkit.org/show_bug.cgi?id=173359 |
| |
| Reviewed by Simon Fraser. |
| |
| The necessary work to use compositing for frames and include them in the scrolling tree on |
| macOS was performed in r217726 and r217730. ScrollingTreeIncludesFrames was used to |
| determine when this behavior should be enabled. However, this does not work well on iOS where |
| ScrollingTreeIncludesFrames defaults to true and really means "include the frames in the |
| scrolling tree when necessary". Hence we instead introduce a new "async frame scrolling" |
| switch to enable the behavior on macOS, which will also be used in a follow-up commit on iOS. |
| This new setting is also made an "experimental feature", so that it will be more convenient |
| for developer to try it. |
| |
| Test: compositing/iframes/compositing-for-scrollable-iframe.html |
| fast/scrolling/scrolling-tree-includes-frame.html |
| |
| * page/Settings.in: Declare new setting for async frame scrolling. |
| * page/scrolling/ScrollingCoordinator.cpp: |
| (WebCore::ScrollingCoordinator::coordinatesScrollingForFrameView): Also include frames in |
| scrolling tree when async frame scrolling is enabled. |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame): Rely on async frame |
| scrolling to decide when compositing is needed. |
| |
| 2017-06-19 Zalan Bujtas <zalan@apple.com> |
| |
| AX: Remove redundant AXObjectCache::textChanged(RenderObject*). |
| https://bugs.webkit.org/show_bug.cgi?id=173579 |
| <rdar://problem/32865367> |
| |
| Reviewed by Antti Koivisto. |
| |
| All calls go through textChanged(Node*) method. |
| |
| * accessibility/AXObjectCache.cpp: |
| * accessibility/AXObjectCache.h: |
| (WebCore::AXObjectCache::getOrCreate): |
| |
| 2017-06-19 Darin Adler <darin@apple.com> |
| |
| Merge MediaDevicesRequest and MediaDevicesEnumerationRequest to tighten up code and object lifetime |
| https://bugs.webkit.org/show_bug.cgi?id=173527 |
| |
| Reviewed by Sam Weinig. |
| |
| * CMakeLists.txt: Removed MediaDevicesRequest.cpp. |
| |
| * Modules/mediastream/MediaDeviceInfo.cpp: |
| (WebCore::MediaDeviceInfo::MediaDeviceInfo): Removed unneeded ScriptExecutionContext. |
| (WebCore::MediaDeviceInfo::create): Ditto. |
| * Modules/mediastream/MediaDeviceInfo.h: Removed unnecessary derivation from |
| ContextDestructionObserver and ScriptExecutionContext arguments. Also removed |
| unused MediaDeviceInfoVector typedef. |
| * Modules/mediastream/MediaDeviceInfo.idl: Added ImplementationLacksVTable. |
| |
| * Modules/mediastream/MediaDevices.cpp: |
| (WebCore::MediaDevices::enumerateDevices): Call MediaDevicesEnumerationRequest |
| directly here instead of going through MediaDevicesRequest. |
| |
| * Modules/mediastream/MediaDevicesEnumerationRequest.cpp: Moved code from |
| MediaDevicesRequest in here. Put the typical counts at the top of the file. |
| (WebCore::MediaDevicesEnumerationRequest::MediaDevicesEnumerationRequest): |
| Marked inline and changed to take a DOM promise directly rather than having |
| a separate class do the mapping to DOM promises. |
| (WebCore::MediaDevicesEnumerationRequest::start): Replaced the create function |
| with this. The caller doesn't actually keep a reference to the object. |
| Added a FIXME about the behavior, not new, where we neither resolve nor reject |
| the promise if there is no page object present. Updated to use the new version |
| of UserMediaController::from. |
| (WebCore::MediaDevicesEnumerationRequest::~MediaDevicesEnumerationRequest): |
| Added a FIXME about the issue that we don't resolve or reject the promise if |
| the client drops the last reference to the request without calling setDeviceInfo. |
| (WebCore::MediaDevicesEnumerationRequest::document): Added. Private helper. |
| Returns nullptr if the request is no longer active. |
| (WebCore::MediaDevicesEnumerationRequest::frame): Added. For use by a caller |
| that was getting to the frame. Uses the document function so it will return |
| nullptr if the request is no longer active. |
| (WebCore::MediaDevicesEnumerationRequest::userMediaDocumentOrigin): Changed |
| to do the work using the document function. |
| (WebCore::MediaDevicesEnumerationRequest::topLevelDocumentOrigin): Ditto. |
| (WebCore::MediaDevicesEnumerationRequest::contextDestroyed): Simplified. We |
| now can simply set a boolean when the context is destroyed, so there are no |
| side effects and the code is simpler. |
| (WebCore::removeAtypicalDevices): Renamed and tightened up the code a bit. |
| (WebCore::MediaDevicesEnumerationRequest::setDeviceInfo): Moved the code |
| here from MediaDevicesEnumerationRequest to pass the devices along. |
| |
| * Modules/mediastream/MediaDevicesEnumerationRequest.h: Made the |
| ContextDestructionObserver use private inheritance. Cut down the includes |
| and removed various unneeded functions. |
| |
| * Modules/mediastream/MediaDevicesRequest.cpp: Removed. |
| * Modules/mediastream/MediaDevicesRequest.h: Removed. |
| |
| * Modules/mediastream/UserMediaController.cpp: |
| (WebCore::UserMediaController::UserMediaController): Use reference rather |
| than pointer for the client. |
| (WebCore::UserMediaController::~UserMediaController): Ditto. |
| (WebCore::provideUserMediaTo): Ditto. |
| |
| * Modules/mediastream/UserMediaController.h: |
| Changed constructor to take a refeference, removed client function, and |
| changed data member to be a reference rather than a pointer. |
| (WebCore::UserMediaController::from): Take and return a reference rather |
| than taking a pointer that is checked for null. |
| (WebCore::UserMediaController::requestUserMediaAccess): Use reference. |
| (WebCore::UserMediaController::cancelUserMediaAccessRequest): Ditto. |
| (WebCore::UserMediaController::enumerateMediaDevices): Ditto. |
| (WebCore::UserMediaController::cancelMediaDevicesEnumerationRequest): Ditto. |
| |
| * Modules/mediastream/UserMediaRequest.cpp: |
| (WebCore::UserMediaRequest::start): Updated to use the new version |
| of UserMediaController::from. |
| |
| * WebCore.xcodeproj/project.pbxproj: Updated for file removals. |
| |
| * testing/Internals.cpp: Removed unneeded include of UserMediaController.h. |
| |
| 2017-06-19 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Move Touch related bindings in Document to their own IDL file |
| https://bugs.webkit.org/show_bug.cgi?id=173521 |
| |
| Reviewed by Alex Christensen. |
| |
| Rather than #including in the middle of an IDL file, this moves the touch related |
| bindings in Document.idl to a new partial interface for Document in DocumentTouch.idl. |
| While here, remove the custom binding for createTouchList. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * WebCore.xcodeproj/project.pbxproj: |
| Add new files. |
| |
| * bindings/js/JSDocumentCustom.cpp: |
| (WebCore::JSDocument::createTouchList): Deleted. |
| Remove createTouchList. It can be generated now. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::createTouch): Deleted. |
| * dom/Document.h: |
| Move touch related bindings code to DocumentTouch.h/cpp. |
| Remove DocumentIOSForward as it is no longer needed. |
| |
| * dom/Document.idl: |
| Move touch related bindings to DocumentTouch.idl |
| |
| * dom/DocumentTouch.h: Added. |
| * dom/DocumentTouch.cpp: Added. |
| (WebCore::DocumentTouch::createTouch): |
| Moved from Document. |
| |
| (WebCore::DocumentTouch::createTouchList): |
| Added to aid generated binding. |
| |
| * dom/DocumentTouch.idl: Added. |
| Moved operations from Document.h |
| |
| * dom/TouchList.h: |
| (WebCore::TouchList::create): |
| (WebCore::TouchList::TouchList): |
| Added create that works with the bindings. |
| |
| * dom/ios/TouchEvents.cpp: |
| Add DocumentTouchIOS.h and sort. |
| |
| 2017-06-19 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [Cocoa] The system Japanese font cannot be italicized |
| https://bugs.webkit.org/show_bug.cgi?id=173300 |
| <rdar://problem/31805407> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Items in the system font cascade list may lie about whether or not they support italics. |
| In order to get the truth, we need to use the physical font underlying the font in question, |
| because this one won't lie. Then, we can interrogate this physical font about its traits |
| in order to synthesize italics correctly. |
| |
| Test: fast/text/system-font-japanese-synthetic-italic.html |
| |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::lookupFallbackFont): |
| * platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp: |
| (WebCore::FontFamilySpecificationCoreText::fontRanges): |
| |
| 2017-06-19 Daewoong Jang <daewoong.jang@navercorp.com> |
| |
| [cURL] Move file scope static variables into function scopes |
| https://bugs.webkit.org/show_bug.cgi?id=173567 |
| |
| Reviewed by Alex Christensen. |
| |
| * platform/network/curl/SSLHandle.cpp: |
| (WebCore::allowedHosts): |
| (WebCore::allowedClientHosts): |
| (WebCore::allowsAnyHTTPSCertificateHosts): |
| (WebCore::addAllowedClientCertificate): |
| (WebCore::setSSLClientCertificate): |
| (WebCore::sslIgnoreHTTPSCertificate): |
| (WebCore::certVerifyCallback): |
| |
| 2017-06-19 Darin Adler <darin@apple.com> |
| |
| [Cocoa] implement URLSession:task:needNewBodyStream: delegate method |
| https://bugs.webkit.org/show_bug.cgi?id=173551 |
| rdar://problem/32250512 |
| |
| Reviewed by Alex Christensen. |
| |
| Covered by http/tests/misc/form-blob-challenge.html |
| |
| * WebCore.xcodeproj/project.pbxproj: Removed NSURLRequestSPI.h. |
| |
| * platform/network/cf/FormDataStreamCFNet.cpp: |
| (WebCore::createHTTPBodyCFReadStream): Factored this out from setHTTPBody. |
| (WebCore::setHTTPBody): Factored out the function above. |
| * platform/network/cf/FormDataStreamCFNet.h: Added createHTTPBodyCFReadStream. |
| |
| * platform/network/cocoa/ResourceRequestCocoa.mm: Use CFNetworkSPI.h. |
| * platform/network/ios/ResourceRequestIOS.mm: Ditto. |
| |
| * platform/network/mac/FormDataStreamMac.h: Added createHTTPBodyNSInputStream. |
| * platform/network/mac/FormDataStreamMac.mm: |
| (WebCore::createHTTPBodyNSInputStream): Added/ |
| |
| * platform/network/mac/ResourceHandleMac.mm: Use CFNetworkSPI.h. |
| * platform/network/mac/ResourceRequestMac.mm: Ditto. |
| * platform/network/mac/WebCoreResourceHandleAsDelegate.mm: Ditto. |
| * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm: Ditto. |
| |
| * platform/network/mac/WebCoreURLResponse.h: Moved SPI declarations from |
| here into CFNetworkSPI.h. |
| |
| * platform/spi/cf/CFNetworkSPI.h: Use #pragma once, consolidated SPI that was |
| defined in scattered locations. |
| |
| * platform/spi/cocoa/NSURLRequestSPI.h: Removed. Superceded by CFNetworkSPI.h. |
| |
| 2017-06-19 Brady Eidson <beidson@apple.com> |
| |
| Various IndexedDB crashes as an after effect of previous test. |
| <rdar://problem/31418761> and https://bugs.webkit.org/show_bug.cgi?id=170436 |
| |
| Reviewed by Chris Dumez. |
| |
| No new test (No consistent test possible, in practice covered by all existing IDB tests) |
| |
| This is timing related, where a UniqueIDBDatabase can be destroyed on the main thread while |
| it still has one task left to try to execute on the IDBServer thread. |
| |
| The background thread tasks don't Ref<> the UniqueIDBDatabase, so even though task execution |
| took a Ref<> protector, there was still a small window for a race. |
| |
| Should be closed up by making the background thread tasks themselves protect this. |
| |
| * Modules/indexeddb/server/UniqueIDBDatabase.cpp: |
| (WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTask): |
| (WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTaskReply): |
| (WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTask): |
| (WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTaskReply): |
| * Modules/indexeddb/server/UniqueIDBDatabase.h: |
| |
| 2017-06-19 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Add support for serializers that have members that are themselves serializers (or inherit being a serializer from a parent) |
| https://bugs.webkit.org/show_bug.cgi?id=173395 |
| |
| Reviewed by Simon Fraser. |
| |
| Test: fast/css/DOMQuad-serialization.html |
| |
| * bindings/scripts/CodeGenerator.pm: |
| (InheritsSerializable): |
| Helper to determine if an interface inherits from any interfaces |
| that are serializable. This is necessary because an attribute is |
| serializable even if its interface is not marked as serializable. |
| |
| (IsSerializableAttribute): |
| Check ancestor interfaces as well to determine serializability. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateSerializerDefinition): |
| Specialize attributes that are serializable interfaces to call its interfaces |
| serialize function, thus allowing nested objects to be serialized. |
| |
| * dom/DOMQuad.idl: |
| Add serializer. |
| |
| * bindings/scripts/test/JS/JSTestSerialization.cpp: |
| * bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.cpp: Added. |
| * bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.h: Added. |
| * bindings/scripts/test/TestSerialization.idl: |
| * bindings/scripts/test/TestSerializationIndirectInheritance.idl: Added. |
| Add and update tests. |
| |
| 2017-06-19 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r218505. |
| https://bugs.webkit.org/show_bug.cgi?id=173563 |
| |
| "It would break internal builds" (Requested by youenn on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "[WebRTC] Prevent capturing at unconventional resolutions when |
| using the SW encoder on Mac" |
| https://bugs.webkit.org/show_bug.cgi?id=172602 |
| http://trac.webkit.org/changeset/218505 |
| |
| 2017-06-19 Zalan Bujtas <zalan@apple.com> |
| |
| Opening certain mails brings up a mail that grows indefinitely. |
| https://bugs.webkit.org/show_bug.cgi?id=173562 |
| <rdar://problem/32766579> |
| |
| Reviewed by Tim Horton. |
| |
| This reverts the logic where m_autoSizeContentSize always reflects the final layout's. |
| When the ICB's height is 100%, it causes infinite recursion. |
| See also webkit.org/b/173561. |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::autoSizeIfEnabled): |
| |
| 2017-06-19 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS DnD] Support .zip archives for file uploads via drag and drop |
| https://bugs.webkit.org/show_bug.cgi?id=173511 |
| <rdar://problem/32521025> |
| |
| Reviewed by Tim Horton. |
| |
| Allows dropped .zip archives to be uploaded as files by accepting types conforming to either |
| "public.zip-archive" or "public.content" as potential file types. Initially, I opted to accept the more general |
| "public.data" type; however, this includes UTIs such as "public.url" that should not be represented as files, so |
| this is a more targeted fix that allows us to very easily add additional content types in the future by adding |
| more types to supportedFileUploadPasteboardTypes. |
| |
| Tests: |
| DataInteractionTests.ExternalSourceZIPArchiveToUploadArea |
| DataInteractionTests.ExternalSourceZIPArchiveAndURLToSingleFileInput |
| |
| * page/mac/DragControllerMac.mm: |
| (WebCore::DragController::updateSupportedTypeIdentifiersForDragHandlingMethod): |
| * platform/Pasteboard.h: |
| * platform/ios/PasteboardIOS.mm: |
| (WebCore::Pasteboard::read): |
| (WebCore::Pasteboard::supportedWebContentPasteboardTypes): |
| (WebCore::Pasteboard::supportedFileUploadPasteboardTypes): |
| |
| Rename supportedPasteboardTypes to supportedWebContentPasteboardTypes, and also introduce |
| supportedFileUploadPasteboardTypes which returns an list of types, such that if a type conforms to any type in |
| this array, that type may be represented as a file. So far, this list contains "public.content" and |
| "public.zip-archive". |
| |
| (WebCore::Pasteboard::types): |
| (WebCore::Pasteboard::supportedPasteboardTypes): Deleted. |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (typeConformsToTypes): |
| |
| Remove -typeIsAppropriateForSupportedTypes: and replace it with typeConformsToTypes. Use this both when |
| determining the number of files on the pasteboard, and when determining preferred UTIs to load when dropping. |
| |
| (-[WebItemProviderPasteboard numberOfFiles]): |
| (-[WebItemProviderPasteboard typeIdentifierToLoadForRegisteredTypeIdentfiers:]): |
| (-[WebItemProviderPasteboard typeIsAppropriateForSupportedTypes:]): Deleted. |
| * platform/mac/DragDataMac.mm: |
| (WebCore::DragData::containsFiles): |
| * platform/mac/PasteboardMac.mm: |
| (WebCore::Pasteboard::supportedFileUploadPasteboardTypes): |
| |
| 2017-06-19 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Remove custom binding for Document.getCSSCanvasContext() |
| https://bugs.webkit.org/show_bug.cgi?id=173516 |
| |
| Reviewed by Chris Dumez. |
| |
| * bindings/js/JSDocumentCustom.cpp: |
| (WebCore::JSDocument::visitAdditionalChildren): |
| (WebCore::JSDocument::getCSSCanvasContext): Deleted. |
| * dom/Document.cpp: |
| (WebCore::Document::getCSSCanvasContext): |
| * dom/Document.h: |
| * dom/Document.idl: |
| Use a Variant to pass the context and type to the bindings. |
| |
| 2017-06-19 Youenn Fablet <youenn@apple.com> |
| |
| [WebRTC] Prevent capturing at unconventional resolutions when using the SW encoder on Mac |
| https://bugs.webkit.org/show_bug.cgi?id=172602 |
| <rdar://problem/32407693> |
| |
| Reviewed by Eric Carlson. |
| |
| Test: platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html |
| |
| Add internal API to switch on/off hardware H264 encoder. |
| Add checks for standard size. If using a software encoder and frame size is not standard, |
| the session is destroyed and no frame is sent at all. |
| |
| Added tests based on captureStream. |
| Fixed the case of capturing a canvas which size is changing. |
| |
| * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: |
| (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasResized): |
| * platform/mediastream/libwebrtc/H264VideoToolBoxEncoder.h: |
| * platform/mediastream/libwebrtc/H264VideoToolBoxEncoder.mm: |
| (WebCore::H264VideoToolboxEncoder::setHardwareEncoderForWebRTCAllowed): |
| (WebCore::H264VideoToolboxEncoder::hardwareEncoderForWebRTCAllowed): |
| (WebCore::isUsingSoftwareEncoder): |
| (WebCore::H264VideoToolboxEncoder::CreateCompressionSession): |
| (isStandardFrameSize): Added. |
| (isUsingSoftwareEncoder): Added. |
| * testing/Internals.cpp: |
| (WebCore::Internals::setH264HardwareEncoderAllowed): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-06-19 Brady Eidson <beidson@apple.com> |
| |
| Cleanup IconLoader stuff when a DocumentLoader detaches from its frame. |
| <rdar://problem/31418761> and https://bugs.webkit.org/show_bug.cgi?id=173473 |
| |
| Reviewed by Alex Christensen. |
| |
| No new tests (No known change in behavior) |
| |
| I discovered the need to make these changes here due to a transient bug |
| introduced in r218015 but already explicitly fixed in r218409. |
| |
| This change adds an assert to guard against a detached DocumentLoader having active IconLoaders. |
| |
| It also clears out all pending IconLoader and icon load decisions when stopLoading() is called, |
| as even attempting to start an icon load after detachment is a waste of cycles. |
| |
| * loader/DocumentLoader.cpp: |
| (WebCore::DocumentLoader::stopLoading): Also explicitly clear all IconLoaders and icons pending |
| load decision. |
| (WebCore::DocumentLoader::finishedLoadingIcon): Assert that this DocumentLoader is not detached. |
| |
| 2017-06-19 Chris Dumez <cdumez@apple.com> |
| |
| Use WTF::Function instead of std::function in more places in WebCore/ |
| https://bugs.webkit.org/show_bug.cgi?id=173535 |
| |
| Reviewed by Antti Koivisto. |
| |
| Use WTF::Function instead of std::function in more places in WebCore/ to avoid copying. |
| |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::matchedParent): |
| * accessibility/AccessibilityObject.h: |
| * animation/DocumentAnimation.cpp: |
| (WebCore::DocumentAnimation::getAnimations): |
| * animation/DocumentAnimation.h: |
| (WebCore::DocumentAnimation::getAnimations): |
| * contentextensions/CombinedURLFilters.cpp: |
| (WebCore::ContentExtensions::CombinedURLFilters::processNFAs): |
| * contentextensions/CombinedURLFilters.h: |
| * contentextensions/DFACombiner.cpp: |
| (WebCore::ContentExtensions::DFACombiner::combineDFAs): |
| * contentextensions/DFACombiner.h: |
| * css/CSSCrossfadeValue.cpp: |
| (WebCore::CSSCrossfadeValue::traverseSubresources): |
| * css/CSSCrossfadeValue.h: |
| * css/CSSFilterImageValue.cpp: |
| (WebCore::CSSFilterImageValue::traverseSubresources): |
| * css/CSSFilterImageValue.h: |
| * css/CSSFontFaceSrcValue.cpp: |
| (WebCore::CSSFontFaceSrcValue::traverseSubresources): |
| * css/CSSFontFaceSrcValue.h: |
| * css/CSSImageSetValue.cpp: |
| (WebCore::CSSImageSetValue::traverseSubresources): |
| * css/CSSImageSetValue.h: |
| * css/CSSImageValue.cpp: |
| (WebCore::CSSImageValue::traverseSubresources): |
| * css/CSSImageValue.h: |
| * css/CSSValue.cpp: |
| (WebCore::CSSValue::traverseSubresources): |
| * css/CSSValue.h: |
| * css/CSSValueList.cpp: |
| (WebCore::CSSValueList::traverseSubresources): |
| * css/CSSValueList.h: |
| * css/StyleProperties.cpp: |
| (WebCore::StyleProperties::traverseSubresources): |
| * css/StyleProperties.h: |
| * css/StyleSheetContents.cpp: |
| (WebCore::traverseSubresourcesInRules): |
| (WebCore::StyleSheetContents::traverseSubresources): |
| * css/StyleSheetContents.h: |
| * dom/Element.cpp: |
| (WebCore::Element::getAnimations): |
| * editing/TextIterator.cpp: |
| (WebCore::findPlainTextMatches): |
| (WebCore::findClosestPlainText): |
| (WebCore::findPlainText): |
| * editing/mac/DictionaryLookup.h: |
| * editing/mac/DictionaryLookup.mm: |
| (WebCore::showPopupOrCreateAnimationController): |
| (WebCore::DictionaryLookup::showPopup): |
| (WebCore::DictionaryLookup::animationControllerForPopup): |
| * fileapi/AsyncFileStream.cpp: |
| (WebCore::AsyncFileStream::perform): |
| (WebCore::AsyncFileStream::getSize): |
| (WebCore::AsyncFileStream::openForRead): |
| (WebCore::AsyncFileStream::read): |
| * fileapi/AsyncFileStream.h: |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::waitForPreparedForInlineThen): |
| (WebCore::HTMLMediaElement::setVideoFullscreenLayer): |
| * html/HTMLMediaElement.h: |
| (WebCore::HTMLMediaElement::waitForPreparedForInlineThen): |
| (WebCore::HTMLMediaElement::setVideoFullscreenLayer): |
| * loader/EmptyClients.cpp: |
| (WebCore::EmptyFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): |
| (WebCore::EmptyFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| (WebCore::EmptyFrameLoaderClient::dispatchWillSubmitForm): |
| * loader/FrameLoaderClient.h: |
| * loader/archive/cf/LegacyWebArchive.cpp: |
| (WebCore::LegacyWebArchive::create): |
| * loader/archive/cf/LegacyWebArchive.h: |
| * loader/cache/MemoryCache.cpp: |
| (WebCore::MemoryCache::forEachResource): |
| (WebCore::MemoryCache::forEachSessionResource): |
| * loader/cache/MemoryCache.h: |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::createWindow): |
| (WebCore::DOMWindow::showModalDialog): |
| * page/DOMWindow.h: |
| * page/FrameView.cpp: |
| (WebCore::FrameView::applyRecursivelyWithVisibleRect): |
| * page/FrameView.h: |
| * page/Page.cpp: |
| (WebCore::Page::forEachPage): |
| (WebCore::Page::decrementNestedRunLoopCount): |
| (WebCore::Page::whenUnnested): |
| * page/Page.h: |
| * page/WheelEventTestTrigger.cpp: |
| (WebCore::WheelEventTestTrigger::clearAllTestDeferrals): |
| (WebCore::WheelEventTestTrigger::setTestCallbackAndStartNotificationTimer): |
| (WebCore::WheelEventTestTrigger::triggerTestTimerFired): |
| * page/WheelEventTestTrigger.h: |
| * page/WindowFeatures.cpp: |
| (WebCore::processFeaturesString): |
| * page/WindowFeatures.h: |
| * page/cocoa/ResourceUsageOverlayCocoa.mm: |
| (WebCore::RingBuffer::forEach): |
| * platform/cocoa/WebVideoFullscreenModelVideoElement.h: |
| (WebCore::WebVideoFullscreenModelVideoElement::setVideoFullscreenLayer): |
| (WebCore::WebVideoFullscreenModelVideoElement::waitForPreparedForInlineThen): |
| * platform/cocoa/WebVideoFullscreenModelVideoElement.mm: |
| (WebVideoFullscreenModelVideoElement::setVideoFullscreenLayer): |
| (WebVideoFullscreenModelVideoElement::waitForPreparedForInlineThen): |
| * platform/graphics/MediaPlayer.cpp: |
| (WebCore::MediaPlayer::setVideoFullscreenLayer): |
| * platform/graphics/MediaPlayer.h: |
| (WebCore::MediaPlayer::setVideoFullscreenLayer): |
| * platform/graphics/MediaPlayerPrivate.h: |
| (WebCore::MediaPlayerPrivateInterface::setVideoFullscreenLayer): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenLayer): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVideoFullscreenLayer): |
| * platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.h: |
| * platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.mm: |
| (WebCore::VideoFullscreenLayerManager::setVideoFullscreenLayer): |
| |
| 2017-06-19 Chris Dumez <cdumez@apple.com> |
| |
| Use WTF::Function instead of std::function in WebCore/Modules |
| https://bugs.webkit.org/show_bug.cgi?id=173534 |
| |
| Reviewed by Alex Christensen. |
| |
| Use WTF::Function instead of std::function in WebCore/Modules to avoid |
| copying. |
| |
| * Modules/applepay/PaymentCoordinatorClient.h: |
| * Modules/encryptedmedia/CDM.h: |
| * Modules/encryptedmedia/legacy/LegacyCDM.cpp: |
| (WebCore::CDMFactory::CDMFactory): |
| (WebCore::CDM::registerCDMFactory): |
| * Modules/encryptedmedia/legacy/LegacyCDM.h: |
| * Modules/mediasession/MediaSession.cpp: |
| (WebCore::MediaSession::changeActiveMediaElements): |
| (WebCore::MediaSession::safelyIterateActiveMediaElements): |
| * Modules/mediasession/MediaSession.h: |
| * Modules/mediastream/MediaEndpointPeerConnection.cpp: |
| (WebCore::matchTransceiver): |
| * Modules/mediastream/MediaStreamRegistry.cpp: |
| (WebCore::MediaStreamRegistry::forEach): |
| * Modules/mediastream/MediaStreamRegistry.h: |
| |
| 2017-06-19 Youenn Fablet <youenn@apple.com> |
| |
| A cloned MediaStreamTrack should mute independently other tracks using the same source |
| https://bugs.webkit.org/show_bug.cgi?id=172831 |
| <rdar://problem/32518527> |
| |
| Reviewed by Eric Carlson. |
| |
| Test: webrtc/clone-audio-track.html |
| |
| Move enabled handling in MediaStreamTrackPrivate instead of RealtimeMediaSource. |
| Move WebRTC and WebAudio customers of RealtimeMediaSource to MediaStreamTrackPrivate. |
| Move creation of WebAudio provider to MediaStreamTrackPrivate. |
| |
| This allows changing some parameters of tracks having the same source independently. |
| Using this for enabled track attribute. |
| |
| We no longer stop generating frames in case track is disabled. |
| This should be added back as an optimization in a follow-up. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::addTrack): |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::LibWebRTCPeerConnectionBackend::replaceTrack): |
| * Modules/webaudio/MediaStreamAudioSource.cpp: |
| * Modules/webaudio/MediaStreamAudioSource.h: |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/mediastream/MediaStreamTrackPrivate.cpp: |
| (WebCore::MediaStreamTrackPrivate::create): |
| (WebCore::MediaStreamTrackPrivate::~MediaStreamTrackPrivate): |
| (WebCore::MediaStreamTrackPrivate::setEnabled): |
| (WebCore::MediaStreamTrackPrivate::audioSourceProvider): |
| (WebCore::MediaStreamTrackPrivate::videoSampleAvailable): |
| (WebCore::MediaStreamTrackPrivate::audioSamplesAvailable): |
| * platform/mediastream/MediaStreamTrackPrivate.h: |
| (WebCore::MediaStreamTrackPrivate::Observer::audioSamplesAvailable): |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::removeObserver): |
| * platform/mediastream/RealtimeMediaSource.h: |
| * platform/mediastream/mac/AVMediaCaptureSource.h: |
| * platform/mediastream/mac/AVMediaCaptureSource.mm: |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::startProducingData): |
| (WebCore::CoreAudioCaptureSource::stopProducingData): |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| * platform/mediastream/mac/MockRealtimeAudioSourceMac.h: |
| * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: |
| (WebCore::MockRealtimeAudioSourceMac::render): |
| * platform/mediastream/mac/RealtimeIncomingAudioSource.cpp: |
| (WebCore::RealtimeIncomingAudioSource::~RealtimeIncomingAudioSource): |
| (WebCore::RealtimeIncomingAudioSource::OnData): |
| * platform/mediastream/mac/RealtimeIncomingAudioSource.h: |
| * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: |
| (WebCore::RealtimeIncomingVideoSource::pixelBufferFromVideoFrame): |
| * platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp: |
| (WebCore::RealtimeOutgoingAudioSource::RealtimeOutgoingAudioSource): |
| (WebCore::RealtimeOutgoingAudioSource::setSource): |
| * platform/mediastream/mac/RealtimeOutgoingAudioSource.h: |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: |
| (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): |
| (WebCore::RealtimeOutgoingVideoSource::setSource): |
| (WebCore::RealtimeOutgoingVideoSource::initializeFromSource): |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: |
| * platform/mediastream/mac/WebAudioSourceProviderAVFObjC.h: |
| * platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm: |
| (WebCore::WebAudioSourceProviderAVFObjC::create): |
| (WebCore::WebAudioSourceProviderAVFObjC::WebAudioSourceProviderAVFObjC): |
| (WebCore::WebAudioSourceProviderAVFObjC::setClient): |
| (WebCore::WebAudioSourceProviderAVFObjC::audioSamplesAvailable): |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSource::generateFrame): |
| * platform/spi/cocoa/PassKitSPI.h: |
| |
| 2017-06-19 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Properly model buffer source / typed arrays as their own IDL types |
| https://bugs.webkit.org/show_bug.cgi?id=173513 |
| |
| Reviewed by Alex Christensen. |
| |
| - Adds IDL type hierarchy for buffer source types. |
| - Includes a special type, IDLArrayBufferView, which WebIDL defines as the union |
| of DataView and all the typed array types, but we model as shared base class. |
| This should not be observable, and allows us to avoid using a Variant for ArrayBufferView |
| and instead use the existing base class. |
| - Add builtin typedefs for BufferSource and DOMTimeStamp as defined in WebIDL. As noted |
| above, rather than define a typedef of ArrayBufferView that maps to a union, we treat |
| it as a special type. |
| |
| * bindings/IDLTypes.h: |
| Add type hierarchy for buffer source types. |
| - IDLBufferSource is the root |
| - IDLArrayBuffer, IDLArrayBufferView, IDLDataView, IDLTypedArray derive from it. |
| - And then the specific typed array types derive from IDLTypedArray, and are defined |
| in JSDOMConvertBufferSource so we don't have to include a ton of typed array includes |
| in this file, as they cannot be forward declared. |
| |
| * bindings/js/JSDOMConvertBufferSource.h: |
| (WebCore::Detail::BufferSourceConverter::convert): |
| (WebCore::Converter<IDLArrayBuffer>::convert): |
| (WebCore::JSConverter<IDLArrayBuffer>::convert): |
| (WebCore::Converter<IDLDataView>::convert): |
| (WebCore::JSConverter<IDLDataView>::convert): |
| (WebCore::Converter<IDLInt8Array>::convert): |
| (WebCore::JSConverter<IDLInt8Array>::convert): |
| (WebCore::Converter<IDLInt16Array>::convert): |
| (WebCore::JSConverter<IDLInt16Array>::convert): |
| (WebCore::Converter<IDLInt32Array>::convert): |
| (WebCore::JSConverter<IDLInt32Array>::convert): |
| (WebCore::Converter<IDLUint8Array>::convert): |
| (WebCore::JSConverter<IDLUint8Array>::convert): |
| (WebCore::Converter<IDLUint16Array>::convert): |
| (WebCore::JSConverter<IDLUint16Array>::convert): |
| (WebCore::Converter<IDLUint32Array>::convert): |
| (WebCore::JSConverter<IDLUint32Array>::convert): |
| (WebCore::Converter<IDLUint8ClampedArray>::convert): |
| (WebCore::JSConverter<IDLUint8ClampedArray>::convert): |
| (WebCore::Converter<IDLFloat32Array>::convert): |
| (WebCore::JSConverter<IDLFloat32Array>::convert): |
| (WebCore::Converter<IDLFloat64Array>::convert): |
| (WebCore::JSConverter<IDLFloat64Array>::convert): |
| (WebCore::Converter<IDLArrayBufferView>::convert): |
| (WebCore::JSConverter<IDLArrayBufferView>::convert): |
| Add native and javascript conversion for all the new types. |
| |
| * bindings/js/JSDOMConvertUnion.h: |
| Add support for steps 7, 8, and 9 of the union conversion algorithm now that |
| buffer source types are properly modeled. |
| |
| * bindings/js/JSSubtleCryptoCustom.cpp: |
| * bindings/js/JSWebKitSubtleCryptoCustom.cpp: |
| Replace use of now repurposed IDLBufferSource, with its definition, IDLUnion<IDLArrayBufferView, IDLArrayBuffer>. |
| |
| * bindings/scripts/CodeGenerator.pm: |
| (IsBufferSourceType): |
| Renamed from IsTypedArrayType. |
| |
| (IsNonPointerType): Deleted. |
| Was only used by DumpRenderTree and WebKitTestRunner generators. They have |
| been switched to the equivalent IsPrimitiveType. |
| |
| (IsTypedArrayType): Deleted. |
| Renamed to IsBufferSourceType. |
| |
| (IsRefPtrType): Deleted. Unused. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (AddToIncludesForIDLType): |
| (AddClassForwardIfNeeded): |
| (GetArgumentExceptionFunction): |
| (GetAttributeExceptionFunction): |
| (PassArgumentExpression): |
| (GenerateDefaultValue): |
| (GenerateOverloadDispatcher): |
| (ShouldPassArgumentByReference): |
| (NativeToJSValueDOMConvertNeedsState): |
| (NativeToJSValueDOMConvertNeedsGlobalObject): |
| Update for rename of IsTypedArrayType -> IsBufferSourceType and remove specialized BufferSource |
| condition. |
| |
| (GetBaseIDLType): |
| Add mappings for new buffer source types. |
| |
| * bindings/scripts/IDLParser.pm: |
| (Parse): |
| Insert builtin typedefs to the typedef map before parsing. |
| |
| (addBuiltinTypedefs): |
| Generate typedefs for BufferSource and DOMTimeStamp as specified by WebIDL. |
| |
| (applyTypedefs): |
| Add support for applying typedefs to iterable and maplike, necessary now because BufferSource |
| is used as the key to iterable in MediaKeyStatusMap.idl |
| |
| * bindings/scripts/test/JS/JSTestCallbackInterface.cpp: |
| * bindings/scripts/test/JS/JSTestCallbackInterface.h: |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: |
| * bindings/scripts/test/JS/JSTestTypedefs.cpp: |
| * bindings/scripts/test/JS/JSTestVoidCallbackFunction.cpp: |
| * bindings/scripts/test/JS/JSTestVoidCallbackFunction.h: |
| Update test results. |
| |
| * bindings/scripts/test/TestTypedefs.idl: |
| Add tests for builtin typedefs. |
| |
| * Modules/geolocation/Geoposition.idl: |
| * dom/Event.idl: |
| * fileapi/Blob.idl: |
| * fileapi/File.idl: |
| * page/FrameView.h: |
| * xml/XMLHttpRequest.idl: |
| Remove typedef for DOMTimeStamp and BufferSource which are now automatically included. |
| |
| 2017-06-19 Adrian Perez de Castro <aperez@igalia.com> |
| |
| Missing <functional> includes make builds fail with GCC 7.x |
| https://bugs.webkit.org/show_bug.cgi?id=173544 |
| |
| Unreviewed gardening. |
| |
| Fix compilation with GCC 7. |
| |
| * Modules/mediastream/MediaStreamRegistry.h: |
| * animation/DocumentAnimation.h: |
| * page/WheelEventTestTrigger.h: |
| * page/csp/ContentSecurityPolicy.h: |
| * platform/Timer.h: |
| * platform/graphics/gstreamer/MainThreadNotifier.h: |
| * platform/network/NetworkStorageSession.h: |
| |
| 2017-06-19 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed build fix after r218484. |
| |
| Properly access the GCryptCipherOperation type (now CipherOperation) |
| in the PAL::GCrypt namespace. This somehow worked in local builds. |
| |
| * crypto/gcrypt/CryptoAlgorithmAES_CTRGCrypt.cpp: |
| (WebCore::callOperation): |
| (WebCore::gcryptAES_CTR): |
| |
| 2017-06-19 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] AES_CTR support |
| https://bugs.webkit.org/show_bug.cgi?id=171420 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Implement AES_CTR support for build configurations that use libgcrypt. |
| |
| Both encryption and decryption operations are handled in a single gcryptAES_CTR() function, |
| with the specific operation being passed as the first argument. The appropriate AES |
| algorithm is picked, and a gcry_cipher_hd_t object is created and has the given key set. |
| This key will remain the same throughout the gcry_cipher_hd_t lifetime, even after |
| gcry_cipher_reset() calls. |
| |
| The encrypt/decrypt operation is wrapped into a helper lambda functor that accepts the |
| given counter and input data. It resets the cipher object, sets the counter data, and |
| performs the specified operation, returning the output data. |
| |
| libgcrypt doesn't support setting counter data on a gcry_cipher_hd_t object with only |
| part of that data being used as the actual counter, with the rest acting as a nonce, like |
| the Web Crypto specification allows. We have to implement the support for that on our own. |
| |
| We compute the number of blocks we'll be processing and the upper exclusive limit for the |
| given counter length. We immediately bail if the counter limit is less than the computed |
| block count, since that would mean that the counter values would be repeated. |
| |
| We short-cut to a direct operation call if the counter length matches size of the counter |
| data -- we don't have to adjust the counter data in any way if that's the case. |
| |
| Otherwise we move counter data into the MPI format. The nonce and the actual counter MPIs |
| can split out of the counter data MPI with the modulus operation and the counter limit MPI. |
| |
| We take another shortcut straight to the operation call if we're able to determine that the |
| 'counter leeway' value, i.e. the difference between the initial counter MPI and the counter |
| limit MPI, is larger or equal to the predicted block size -- if that's the case, the counter |
| won't wrap around and change the nonce data. |
| |
| In worst-case scenario the counter data will wrap around and we have to address that. The |
| current implementation takes the slowest possible path for the moment, encrypting/decrypting |
| each block separately. For each step the counter is combined with the nonce, the resulting |
| MPI data retrieved and passed to the operation function, and the returned block output |
| appended to the final output vector. The counter MPI is then incremented and ran through the |
| modulus operation, limiting the MPI value to the previously-computed counter limit. |
| |
| No new tests -- relevant tests are passing and are unskipped. |
| |
| * crypto/gcrypt/CryptoAlgorithmAES_CTRGCrypt.cpp: |
| (WebCore::callOperation): |
| (WebCore::gcryptAES_CTR): |
| (WebCore::CryptoAlgorithmAES_CTR::platformEncrypt): |
| (WebCore::CryptoAlgorithmAES_CTR::platformDecrypt): |
| |
| 2017-05-14 Frederic Wang <fwang@igalia.com> |
| |
| Add heuristic to avoid flattening "fullscreen" iframes |
| https://bugs.webkit.org/show_bug.cgi?id=171914 |
| |
| Reviewed by Simon Fraser. |
| |
| Some authors implement fullscreen popups as out-of-flow iframes with size set to full viewport (using vw/vh CSS units). |
| When iframe flattening is enabled, such iframes may unexpectedly become larger than the viewport. |
| This commit adds a simple heuristic to avoid frame flattening in that case. |
| It is experimented by introducing a "enable for non-fullscreen iframes" state for the frame |
| flattening setting. |
| The default frame flattening is still either disabled or (fully) enabled on all platforms. |
| InternalSettings is also adjusted so that the tests can still set the frame flattening setting. |
| |
| Test: fast/frames/flattening/iframe-flattening-fullscreen.html |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::frameFlatteningEnabled): Use the frame flattening enum setting. |
| * page/Settings.h: Define a frame flattening enum that includes a "enable for non-fullscreen |
| iframes" state. |
| * page/Settings.in: Redefine frame flattening using that enum. |
| * rendering/RenderFrameSet.cpp: |
| (WebCore::RenderFrameSet::flattenFrameSet): Use the frame flattening enum setting. |
| * rendering/RenderIFrame.cpp: |
| (WebCore::RenderIFrame::isFullScreenIFrame): Add a heuristic when partial frame flattening |
| is enabled setting is enabled. |
| There is not a strict comparison against the viewport size since authors may not exactly use |
| 100vw/100vh. |
| Anyway, it is hard to do such comparison using the resolved width & height on RenderStyle. |
| (WebCore::RenderIFrame::flattenFrame): Add a comment for the existing "zero size" heuristic. |
| Use isFullScreenIFrame heuristic. |
| * rendering/RenderView.cpp: |
| (WebCore::FrameFlatteningLayoutDisallower::FrameFlatteningLayoutDisallower): Use the frame flattening enum setting. |
| * testing/InternalSettings.cpp: |
| (WebCore::InternalSettings::Backup::Backup): Add backup for frame flattening. |
| (WebCore::InternalSettings::Backup::restoreTo): Ditto. |
| (WebCore::internalSettingsToWebCoreValue): Helper function to cast the frame flattening values. |
| (WebCore::InternalSettings::setFrameFlattening): Redefine setFrameFlattening to accept an enum. |
| * testing/InternalSettings.h: Define new enum & setter for frame flattening as well as a backup value. |
| * testing/InternalSettings.idl: Define new enum & setter for frame flattening. |
| |
| 2017-06-18 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r218253): Infinite animated gifs no longer loop |
| https://bugs.webkit.org/show_bug.cgi?id=173464 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| After the first loop iteration we keep rendering the same frame all the time, so it looks like if the animation |
| stopped. This is because in r218253 we changed to use SharedBuffer instead of a Vector in ImageBackingStore, but |
| we are not correctly copying the data in the copy constructor. We are using SharedBuffer::copy() that doesn't |
| actually copy the data of the segments. |
| |
| * platform/graphics/ImageBackingStore.h: |
| (WebCore::ImageBackingStore::ImageBackingStore): Copy the data of the other SharedBuffer. |
| |
| 2017-06-18 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GStreamer] MainThreadNotifier ASSERTION FAILED: m_boundThread == currentThread() in _WebKitWebSrcPrivate::~_WebKitWebSrcPrivate |
| https://bugs.webkit.org/show_bug.cgi?id=152043 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| Stop using a WeakPtr in MainThreadNotifier, because it's not thread safe, which causes a crash in debug builds when |
| the notifier is destroyed in a different thread. Make MainThreadNotifier thread safe refcounted instead, and add |
| an invalidate() method to mark it as invalid. |
| |
| * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp: |
| (WebCore::InbandTextTrackPrivateGStreamer::handleSample): |
| (WebCore::InbandTextTrackPrivateGStreamer::streamChanged): |
| * platform/graphics/gstreamer/MainThreadNotifier.h: |
| (WebCore::MainThreadNotifier::MainThreadNotifier): Deleted. |
| (WebCore::MainThreadNotifier::notify): Deleted. |
| (WebCore::MainThreadNotifier::cancelPendingNotifications): Deleted. |
| (WebCore::MainThreadNotifier::addPendingNotification): Deleted. |
| (WebCore::MainThreadNotifier::removePendingNotification): Deleted. |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::MediaPlayerPrivateGStreamer::videoChangedCallback): |
| (WebCore::MediaPlayerPrivateGStreamer::videoSinkCapsChangedCallback): |
| (WebCore::MediaPlayerPrivateGStreamer::audioChangedCallback): |
| (WebCore::MediaPlayerPrivateGStreamer::textChangedCallback): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase): |
| (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase): |
| (WebCore::MediaPlayerPrivateGStreamerBase::volumeChangedCallback): |
| (WebCore::MediaPlayerPrivateGStreamerBase::muteChangedCallback): |
| (WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: |
| * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp: |
| (WebCore::TrackPrivateBaseGStreamer::TrackPrivateBaseGStreamer): |
| (WebCore::TrackPrivateBaseGStreamer::~TrackPrivateBaseGStreamer): |
| (WebCore::TrackPrivateBaseGStreamer::disconnect): |
| (WebCore::TrackPrivateBaseGStreamer::activeChangedCallback): |
| (WebCore::TrackPrivateBaseGStreamer::tagsChanged): |
| * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h: |
| * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: |
| (webkit_web_src_init): |
| (webKitWebSrcDispose): |
| (webKitWebSrcStop): |
| (webKitWebSrcStart): |
| (webKitWebSrcNeedData): |
| (webKitWebSrcEnoughData): |
| (webKitWebSrcSeek): |
| |
| 2017-06-18 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Meter element doesn't respect the writing direction |
| https://bugs.webkit.org/show_bug.cgi?id=173507 |
| |
| Reviewed by Sam Weinig. |
| |
| The bug was caused by NSLevelIndicatorCell no longer using the value of baseWritingDirection |
| to determine the direction of rendering in macOS Sierra and later. It instead relies on |
| the value of userInterfaceLayoutDirection. |
| |
| Fixed the bug by setting both values. Once we dropped the support for macOS El Capitan |
| and earlier, we can remove the code to set baseWritingDirection. |
| |
| Test: fast/dom/HTMLMeterElement/meter-rtl.html |
| |
| * rendering/RenderThemeMac.mm: |
| (WebCore::RenderThemeMac::levelIndicatorFor): |
| |
| 2017-06-18 Dewei Zhu <dewei_zhu@apple.com> |
| |
| Remove 'EditCommand::isEditCommandComposition'. |
| https://bugs.webkit.org/show_bug.cgi?id=173525 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Should remove 'isEditCommandComposition' from 'EditCommand' for: |
| 1. 'EditCommandComposition' is no longer a subclass of EditCommand. |
| 2. 'isEditCommandComposition' is not used at all. |
| |
| * editing/EditCommand.h: |
| (WebCore::EditCommand::isCompositeEditCommand): |
| (WebCore::EditCommand::isEditCommandComposition): Deleted. |
| |
| 2017-06-18 Chris Dumez <cdumez@apple.com> |
| |
| Crash when re-entering MediaDevicesEnumerationRequest::cancel() |
| https://bugs.webkit.org/show_bug.cgi?id=173522 |
| <rdar://problem/31185739> |
| |
| Reviewed by Darin Adler. |
| |
| When a MediaDevicesRequest is started, it creates a MediaDevicesEnumerationRequest |
| object and passes a completion handler to that MediaDevicesEnumerationRequest |
| object. The completion handler holds a reference to the MediaDevicesRequest object |
| so that its stays alive until the MediaDevicesEnumerationRequest either completes |
| or is canceled. MediaDevicesRequest also holds a reference to the |
| MediaDevicesEnumerationRequest object via its m_enumerationRequest data member. |
| |
| When the document is destroyed, both MediaDevicesRequest::contextDestroyed() and |
| MediaDevicesEnumerationRequest::contextDestroyed() gets called and the other is not |
| pre-determined. If MediaDevicesEnumerationRequest::contextDestroyed() gets called |
| first then it calls MediaDevicesEnumerationRequest::cancel(). Calling cancel() ends |
| up destroying the completion handler. Destroying the completion handler ends up |
| dereferencing and destroying the MediaDevicesRequest object. The MediaDevicesRequest |
| destructor would call MediaDevicesEnumerationRequest::cancel() again, causing us to |
| re-enter it and assign nullptr to the completion callback again. Re-entering |
| std::function's operator=(nullptr_t) is not safe because of the way it is implemented |
| as we end up trying to destroy the lambda twice and crashing. Using a WTF::Function |
| instead fixes this particular issue because re-entering WTF::Function's operator=(nullptr_t) |
| is safe. |
| |
| However, this fix is not sufficient. Calling the MediaDevicesRequest destructor also |
| dereferencing and destroys the MediaDevicesEnumerationRequest object. As a result, |
| when MediaDevicesEnumerationRequest::contextDestroyed() returns from its call to cancel |
| |this| is already dead when we call ContextDestructionObserver::contextDestroyed(). |
| To address this issue, we now protect |this| in MediaDevicesEnumerationRequest::contextDestroyed(). |
| |
| Test: fast/mediastream/destroy-document-while-enumerating-devices.html |
| |
| * Modules/mediastream/MediaDevicesEnumerationRequest.cpp: |
| (WebCore::MediaDevicesEnumerationRequest::contextDestroyed): |
| Protect |this| as the call to cancel() may destroy |this| before calling |
| ContextDestructionObserver::contextDestroyed() otherwise. |
| |
| * Modules/mediastream/MediaDevicesEnumerationRequest.h: |
| Use WTF::Function instead of std::function for the completion handler as |
| it is safer (in terms of re-entrency) and avoids unnecessary copying. |
| |
| * Modules/mediastream/MediaDevicesRequest.cpp: |
| (WebCore::MediaDevicesRequest::~MediaDevicesRequest): |
| Stop calling MediaDevicesEnumerationRequest::cancel(). When the destructor |
| is called, the MediaDevicesEnumerationRequest has either completed or been |
| canceled so there is no need to cancel again. I added an assertion to |
| make sure it is the case. This avoids re-entering |
| MediaDevicesEnumerationRequest::cancel() is some cases, which was risky. |
| |
| (WebCore::MediaDevicesRequest::start): |
| Add comment for clarity and capture a Ref<> instead of a RefPtr<> now that |
| we can since we use WTF::Function. |
| |
| 2017-06-18 Chris Dumez <cdumez@apple.com> |
| |
| Use WTF::Function instead of std::function in WTF/ |
| https://bugs.webkit.org/show_bug.cgi?id=173519 |
| |
| Reviewed by Sam Weinig. |
| |
| Replace a few uses of std::function with WTF::Function in WebCore/ |
| as well. It was either this or including <functional> and I decided |
| it made more sense to port the code. |
| |
| * platform/graphics/FontSelectionAlgorithm.h: |
| (WebCore::FontSelectionAlgorithm::iterateActiveCapabilitiesWithReturn): |
| * platform/mediastream/MediaConstraints.cpp: |
| (WebCore::StringConstraint::find): |
| (WebCore::MediaTrackConstraintSetMap::forEach): |
| (WebCore::MediaTrackConstraintSetMap::filter): |
| (WebCore::MediaConstraints::isConstraintSet): |
| * platform/mediastream/MediaConstraints.h: |
| (WebCore::NumericConstraint::find): |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::applyConstraint): |
| |
| 2017-06-18 Jer Noble <jer.noble@apple.com> |
| |
| [MSE] Seeking or entering fullscreen can cause extreme CPU usage |
| https://bugs.webkit.org/show_bug.cgi?id=173505 |
| |
| Reviewed by Tim Horton. |
| |
| When support for painting MSE to WebGL was added in r217185, the implementation of |
| SourceBufferPrivateAVFObjC::isReadyForMoreSamples() was modified to support asking |
| the decompression session if it was ready. That change, however, caused an extreme |
| performance regression in the normal playback path, where WebKit will effectively |
| append samples endlessly to the AVSampleBufferDisplayLayer, which admirably enqueued |
| each of them for decoding. Eventually, the cost of iterating over the CMBufferQueue |
| overwhelmed the cost of decoding, and caused the extreme lag seen when seeking. |
| |
| Make sure to property query the AVSampleBufferDisplayLayer for isReadyForMoreMediaData |
| before enqueuing. |
| |
| A previous version of this patch exposed some errors which caused failing tests: |
| |
| In sourceBufferPrivateDidReceiveSample(), we were using local versions of |
| presentationTimestamp and decodeTimestamp as keys to the decodeQueue; those local versions |
| were floating point values (because MediaTime + float = float), but the sample itself uses |
| non-floating point MediaTimes. This causes samples to be left in the queue when they should |
| be removed. |
| |
| In didBecomeReadyForMoreSamples(), we were getting spurious assertions when a |
| AVSampleBufferDisplayLayer or a AVSampleBufferAudioRenderer would fire a callback from |
| -requestMediaDataWhenReadyOnQueue:usingBlock: even after it had been told to |
| -stopRequestingMediaData. Apparently it's expected behavior and so an ASSERT_NOT_REACHED is |
| inappropriate here. |
| |
| * Modules/mediasource/SourceBuffer.cpp: |
| (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| (WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples): |
| (WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples): |
| |
| |
| 2017-06-17 Zalan Bujtas <zalan@apple.com> |
| |
| Addressing post-review comment after r218456. |
| https://bugs.webkit.org/show_bug.cgi?id=173509 |
| |
| Reviewed by Darin Adler. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::destroyRenderTree): |
| |
| 2017-06-17 Chris Dumez <cdumez@apple.com> |
| |
| DOMQuad::getBounds() should return a Ref<> |
| https://bugs.webkit.org/show_bug.cgi?id=173517 |
| |
| Reviewed by Simon Fraser. |
| |
| DOMQuad::getBounds() should return a Ref<> as it cannot return |
| null. |
| |
| * dom/DOMQuad.cpp: |
| (WebCore::DOMQuad::getBounds): |
| * dom/DOMQuad.h: |
| |
| 2017-06-17 Simon Fraser <simon.fraser@apple.com> |
| |
| Implement DOMQuad |
| https://bugs.webkit.org/show_bug.cgi?id=163534 |
| |
| Reviewed by Sam Weinig. |
| |
| Implement DOMQuad per https://drafts.fxtf.org/geometry/#DOMQuad, other than serialization |
| which requires some bindings changes. |
| |
| web-platform-tests/css/geometry-1/DOMRect-001.html tests against an older version of the spec, |
| so has some failures. DOMQuad-002.html passes, other than a NaN propagation issue that requires |
| spec clarification. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSDOMQuadCustom.cpp: Added. |
| (WebCore::JSDOMQuad::getBounds): |
| * bindings/scripts/CodeGenerator.pm: |
| (IsSerializableDOMType): |
| (IsSerializableAttribute): |
| * dom/DOMPoint.h: |
| * dom/DOMQuad.cpp: Added. |
| (WebCore::DOMQuad::DOMQuad): |
| (WebCore::DOMQuad::getBounds): |
| * dom/DOMQuad.h: Added. |
| (WebCore::DOMQuad::create): |
| (WebCore::DOMQuad::fromRect): |
| (WebCore::DOMQuad::fromQuad): |
| (WebCore::DOMQuad::p1): |
| (WebCore::DOMQuad::p2): |
| (WebCore::DOMQuad::p3): |
| (WebCore::DOMQuad::p4): |
| * dom/DOMQuad.idl: Added. |
| * dom/DOMQuadInit.h: Added. |
| * dom/DOMQuadInit.idl: Added. |
| |
| 2017-06-17 Chris Dumez <cdumez@apple.com> |
| |
| Use WTF::Function instead of std::function in WebKit2/ |
| https://bugs.webkit.org/show_bug.cgi?id=173504 |
| |
| Reviewed by Darin Adler. |
| |
| Use WTF::Function instead of std::function in WebKit2/ to avoid |
| unnecessary copying. |
| |
| * Modules/applepay/PaymentCoordinator.cpp: |
| (WebCore::PaymentCoordinator::canMakePaymentsWithActiveCard): |
| (WebCore::PaymentCoordinator::openPaymentSetup): |
| * Modules/applepay/PaymentCoordinator.h: |
| * Modules/applepay/PaymentCoordinatorClient.h: |
| * loader/EmptyClients.cpp: |
| * loader/NetscapePlugInStreamLoader.cpp: |
| (WebCore::NetscapePlugInStreamLoader::willSendRequest): |
| * loader/NetscapePlugInStreamLoader.h: |
| * loader/ResourceLoader.cpp: |
| (WebCore::ResourceLoader::willSendRequest): |
| * loader/ResourceLoader.h: |
| |
| 2017-06-17 Zalan Bujtas <zalan@apple.com> |
| |
| Demote the "we have navigated away" check to an assertion. |
| https://bugs.webkit.org/show_bug.cgi?id=173509 |
| |
| Reviewed by Simon Fraser. |
| |
| Now that the expected behavior is that the render tree can't get to the page cache, it's ok to assert. |
| TODO: We should also have view() check removed at some point. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::destroyRenderTree): |
| |
| 2017-06-17 Alex Christensen <achristensen@webkit.org> |
| |
| Fix CMake build |
| |
| * PlatformMac.cmake: |
| * bindings/js/ScriptGlobalObject.cpp: |
| |
| 2017-06-17 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r218438. |
| https://bugs.webkit.org/show_bug.cgi?id=173515 |
| |
| Caused imported/w3c/web-platform-tests/media- |
| source/mediasource* tests to fail (Requested by smfr on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "[MSE] Seeking or entering fullscreen can cause extreme CPU |
| usage" |
| https://bugs.webkit.org/show_bug.cgi?id=173505 |
| http://trac.webkit.org/changeset/218438 |
| |
| 2017-06-17 Antti Koivisto <antti@apple.com> |
| |
| Crash due to infinite recursion via FrameSelection::updateAppearanceAfterLayout |
| https://bugs.webkit.org/show_bug.cgi?id=173468 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Test: editing/selection/updateAppearanceAfterLayout-recursion.html |
| |
| Calling FrameSelection::updateAppearanceAfterLayout() from Document::resolveStyle is unsafe |
| because it may cause another call to resolveStyle. We have some cases where the style |
| is still unclean when updateAppearanceAfterLayout() is called. This can lead to infinite |
| recursion. |
| |
| The test case is not the common stack seen in CrashTracer (couldn't quit replicate it) but |
| the updateAppearanceAfterLayout/resolveStyle recursion is the same. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::resolveStyle): |
| |
| Normally selection appearance update is done in post-layout but not all style resolutions schedule a layout. |
| Invoke it asynchronously in that case instead of the previous synchronous call. |
| |
| * editing/FrameSelection.cpp: |
| (WebCore::FrameSelection::FrameSelection): |
| (WebCore::FrameSelection::updateAppearanceAfterLayout): |
| (WebCore::FrameSelection::scheduleAppearanceUpdateAfterStyleChange): |
| (WebCore::FrameSelection::appearanceUpdateTimerFired): |
| (WebCore::FrameSelection::updateAppearanceAfterLayoutOrStyleChange): |
| * editing/FrameSelection.h: |
| |
| 2017-06-17 Alex Christensen <achristensen@webkit.org> |
| |
| Fix Mac CMake build. |
| |
| * PlatformMac.cmake: |
| |
| 2017-06-17 Ryosuke Niwa <rniwa@webkit.org> |
| |
| REGRESSION(r209495): materiauxlaverdure.com fails to load |
| https://bugs.webkit.org/show_bug.cgi?id=173301 |
| <rdar://problem/32624850> |
| |
| Reviewed by Antti Koivisto. |
| |
| The bug was caused by WebKit wrapping CSS string values with single quotation marks instead of |
| double quotation marks as spec'ed in https://drafts.csswg.org/cssom/#serialize-a-string and |
| implemented in Firefox and Chrome. |
| |
| The website eval's the computed value of the `content` CSS property with the value `'{name: "flat"}'` |
| after stripping single quotation marks from both ends. Prior to r209495, WebKit serialized this CSS value |
| in single quotations without escaping double quotations. After r209495, double quotations are escaped |
| with backslashes as `'{name: \"flat\"}'`. As a result, `eval` is invoked with `{name: \"flat\"}` |
| after stripping single quotations from both ends, which resulted in an exception. |
| |
| Chrome and Firefox don't encounter this exception despite of the fact they escape double quotations |
| as well because serialize with double quotations as `"{name: \"flat\"}"`. Because there is no code |
| to strip double quotations, eval is invoked with the same string, resulting in the entire value as |
| being parsed as string, instead of an object with a single key "name" with the value of "flat" as |
| was the case in WebKit prior to r209495. While this behavior was most certainly not the intent of |
| the website author, Chrome and Firefox don't encounter an exception and the website continues to work. |
| |
| This patch aligns WebKit's behavior to that of the CSS OM specification, Firefox, and Chrome by |
| serializing CSS string values using double quotation marks instead of single quotation marks. |
| |
| Note: inline change log comments are added below for every call site of serializeString for clarity. |
| |
| Test: fast/css/getPropertyValue-serialization-with-double-quotes.html |
| |
| * css/CSSBasicShapes.cpp: |
| (WebCore::buildPathString): Use double quotation marks in path(~) of shapes. |
| * css/CSSMarkup.cpp: |
| (WebCore::serializeString): |
| (WebCore::serializeURL): Use double quotation marks to serialize URLs. |
| (WebCore::serializeAsStringOrCustomIdent): Use double quotation marks to serialize strings. We still avoid |
| using wrapping the value with double quotations when the value can be an identifier. See r209495. |
| (WebCore::serializeFontFamily): Ditto for font-family names such as "San Francisco". |
| * css/CSSMarkup.h: |
| * css/CSSNamespaceRule.cpp: |
| (WebCore::CSSNamespaceRule::cssText): Use double quotation marks to serialize namespace URIs. |
| * css/CSSPrimitiveValue.cpp: |
| (WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText): Use double quotation marks to serialize |
| the separators; e.g. counter(sectionNumber, ".") to produce "1.". |
| * css/CSSSelector.cpp: |
| (WebCore::CSSSelector::selectorText): Use double quotation marks to serialize attribute values. |
| * css/parser/CSSParserToken.cpp: |
| (WebCore::CSSParserToken::serialize): Use double quotation marks to serialize strings in @support. |
| * editing/EditingStyle.cpp: |
| (WebCore::StyleChange::extractTextStyles): Updated to strip double quotation marks in font family names to |
| maintain the compatibility with old versions of Microsoft Outlook. |
| * html/HTMLElement.cpp: |
| (WebCore::HTMLElement::mapLanguageAttributeToLocale): Use double quotations marks to serialize the value |
| of the lang content attribute. It doesn't matter which one is used here because it's only a temporary value |
| only fed into the CSS parser to set the equivalent CSS value from the content attribute. |
| |
| 2017-06-16 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Instrument 2D/WebGL canvas contexts in the backend |
| https://bugs.webkit.org/show_bug.cgi?id=172623 |
| <rdar://problem/32415986> |
| |
| Reviewed by Devin Rousso and Joseph Pecoraro. |
| |
| Test: inspector/canvas/create-canvas-contexts.html |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| * dom/Document.cpp: |
| (WebCore::Document::getCSSCanvasElement): |
| Instrument creation of CSS canvases. This merely registers the canvas |
| element with InspectorCanvasAgent and stores the name (identifier passed |
| to getCSSCanvasContext) for later use. It isn't until the context is |
| actually created that the frontend receives a notification. |
| |
| * html/HTMLCanvasElement.cpp: |
| (WebCore::HTMLCanvasElement::getContext2d): |
| (WebCore::HTMLCanvasElement::getContextWebGL): |
| Instrument creation of 2D and WebGL canvas contexts. |
| |
| * inspector/InspectorAllInOne.cpp: |
| |
| * inspector/InspectorCanvasAgent.cpp: Added. |
| New backend agent for canvas inspection. Canvas creation and destruction |
| are continuously monitored by the agent, regardless of the presence of |
| a frontend. This is necessary since there is no way to retrieve the |
| rendering contexts for with a given frame once they've been created. |
| |
| (WebCore::InspectorCanvasAgent::InspectorCanvasAgent): |
| (WebCore::InspectorCanvasAgent::didCreateFrontendAndBackend): |
| (WebCore::InspectorCanvasAgent::willDestroyFrontendAndBackend): |
| (WebCore::InspectorCanvasAgent::discardAgent): |
| Unregister canvas observers to prevent dangling agent pointer. |
| (WebCore::InspectorCanvasAgent::enable): |
| Dispatch events for existing canvases, now that the frontend exists. |
| (WebCore::InspectorCanvasAgent::disable): |
| (WebCore::InspectorCanvasAgent::frameNavigated): |
| (WebCore::InspectorCanvasAgent::didCreateCSSCanvas): |
| Register the name/identifier associated with the CSS canvas, so that it |
| can be retrieved and associated with the rendering context later. |
| |
| (WebCore::InspectorCanvasAgent::didCreateCanvasRenderingContext): |
| (WebCore::InspectorCanvasAgent::canvasDestroyed): |
| Removes the canvas from the agent, and queues it for notifying the |
| frontend during the next event loop. |
| |
| (WebCore::InspectorCanvasAgent::canvasDestroyedTimerFired): |
| (WebCore::InspectorCanvasAgent::clearCanvasData): |
| (WebCore::InspectorCanvasAgent::getCanvasEntry): |
| (WebCore::InspectorCanvasAgent::buildObjectForCanvas): |
| * inspector/InspectorCanvasAgent.h: Added. |
| |
| * inspector/InspectorController.cpp: |
| (WebCore::InspectorController::InspectorController): |
| |
| * inspector/InspectorInstrumentation.cpp: |
| (WebCore::InspectorInstrumentation::didCommitLoadImpl): |
| (WebCore::InspectorInstrumentation::didCreateCSSCanvasImpl): |
| (WebCore::InspectorInstrumentation::didCreateCanvasRenderingContextImpl): |
| |
| * inspector/InspectorInstrumentation.h: |
| (WebCore::InspectorInstrumentation::didCreateCSSCanvas): |
| (WebCore::InspectorInstrumentation::didCreateCanvasRenderingContext): |
| These instrumentation points should not fast return when no frontend |
| is attached. |
| |
| * inspector/InstrumentingAgents.cpp: |
| (WebCore::InstrumentingAgents::reset): |
| |
| * inspector/InstrumentingAgents.h: |
| (WebCore::InstrumentingAgents::inspectorCanvasAgent): |
| (WebCore::InstrumentingAgents::setInspectorCanvasAgent): |
| Plumbing for the new agent. |
| |
| 2017-06-16 Antoine Quint <graouts@apple.com> |
| |
| Add a WebKit2 setting to control whether media documents should automatically enter fullscreen |
| https://bugs.webkit.org/show_bug.cgi?id=173503 |
| |
| Reviewed by Tim Horton. |
| |
| New WebCore setting to specify whether a media document should automatically enter fullscreen. |
| |
| * page/Settings.in: |
| |
| 2017-06-16 Jer Noble <jer.noble@apple.com> |
| |
| [MSE] Seeking or entering fullscreen can cause extreme CPU usage |
| https://bugs.webkit.org/show_bug.cgi?id=173505 |
| |
| Reviewed by Tim Horton. |
| |
| When support for painting MSE to WebGL was added in r217185, the implementation of |
| SourceBufferPrivateAVFObjC::isReadyForMoreSamples() was modified to support asking |
| the decompression session if it was ready. That change, however, caused an extreme |
| performance regression in the normal playback path, where WebKit will effectively |
| append samples endlessly to the AVSampleBufferDisplayLayer, which admirably enqueued |
| each of them for decoding. Eventually, the cost of iterating over the CMBufferQueue |
| overwhelmed the cost of decoding, and caused the extreme lag seen when seeking. |
| |
| Make sure to property query the AVSampleBufferDisplayLayer for isReadyForMoreMediaData |
| before enqueuing. |
| |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| (WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples): |
| |
| 2017-06-16 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Remove custom bindings for HTMLDocument |
| https://bugs.webkit.org/show_bug.cgi?id=173444 |
| |
| Reviewed by Darin Adler. |
| |
| * bindings/js/JSDOMBindingSecurity.cpp: |
| (WebCore::canAccessDocument): |
| (WebCore::BindingSecurity::shouldAllowAccessToFrame): |
| (WebCore::BindingSecurity::shouldAllowAccessToDOMWindow): |
| * bindings/js/JSDOMWindowCustom.cpp: |
| (WebCore::JSDOMWindow::showModalDialog): |
| Pass ExecState by reference to window accessors. |
| |
| * bindings/js/JSDOMWindowBase.cpp: |
| (WebCore::incumbentDOMWindow): |
| (WebCore::activeDOMWindow): |
| (WebCore::firstDOMWindow): |
| (WebCore::callerDocument): |
| * bindings/js/JSDOMWindowBase.h: |
| Pass ExecState by reference to window accessors and add callerDocument. |
| |
| * bindings/js/JSHTMLDocumentCustom.cpp: |
| (WebCore::JSHTMLDocument::getOwnPropertySlot): Deleted. |
| (WebCore::JSHTMLDocument::all): Deleted. |
| (WebCore::JSHTMLDocument::setAll): Deleted. |
| (WebCore::findCallingDocument): Deleted. |
| (WebCore::JSHTMLDocument::open): Deleted. |
| (WebCore::documentWrite): Deleted. |
| (WebCore::JSHTMLDocument::write): Deleted. |
| Remove custom bindings. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateCallWith): |
| Add support CallWith=CallerDocument |
| |
| * bindings/scripts/IDLAttributes.json: |
| Remove CallerWindow, which has not been supported for a while. CallerDocument, despite |
| having it's support removed in the past, was still listed, so keep it. |
| |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| Update test results. |
| |
| * dom/DOMImplementation.cpp: |
| (WebCore::DOMImplementation::createHTMLDocument): |
| Update for new signature of Document.write(). |
| |
| * dom/Document.h: |
| * dom/Document.idl: |
| * dom/Document.cpp: |
| (WebCore::Document::open): |
| Add DOMWindow returning overload that calls through to the DOMWindow. |
| Add return value and currently not utilized parameters to the Document returning overload. |
| Update to return exceptions as specified. |
| |
| (WebCore::Document::close): |
| Update to return exceptions as specified. |
| |
| (WebCore::Document::write): |
| (WebCore::Document::writeln): |
| Update to take a Vector<String> argument and the caller Document first |
| as per convention and return exceptions as specified. |
| |
| (WebCore::Document::bgColor): |
| (WebCore::Document::setBgColor): |
| (WebCore::Document::fgColor): |
| (WebCore::Document::setFgColor): |
| (WebCore::Document::alinkColor): |
| (WebCore::Document::setAlinkColor): |
| (WebCore::Document::linkColorForBindings): |
| (WebCore::Document::setLinkColorForBindings): |
| (WebCore::Document::vlinkColor): |
| (WebCore::Document::setVlinkColor): |
| (WebCore::Document::clear): |
| (WebCore::Document::captureEvents): |
| (WebCore::Document::releaseEvents): |
| Move from HTMLDocument. |
| |
| * html/HTMLDocument.cpp: |
| (WebCore::HTMLDocument::bgColor): Deleted. |
| (WebCore::HTMLDocument::setBgColor): Deleted. |
| (WebCore::HTMLDocument::fgColor): Deleted. |
| (WebCore::HTMLDocument::setFgColor): Deleted. |
| (WebCore::HTMLDocument::alinkColor): Deleted. |
| (WebCore::HTMLDocument::setAlinkColor): Deleted. |
| (WebCore::HTMLDocument::linkColor): Deleted. |
| (WebCore::HTMLDocument::setLinkColor): Deleted. |
| (WebCore::HTMLDocument::vlinkColor): Deleted. |
| (WebCore::HTMLDocument::setVlinkColor): Deleted. |
| (WebCore::HTMLDocument::clear): Deleted. |
| (WebCore::HTMLDocument::captureEvents): Deleted. |
| (WebCore::HTMLDocument::releaseEvents): Deleted. |
| * html/HTMLDocument.h: |
| * html/HTMLDocument.idl: |
| Moved operations and attributes to Document. |
| |
| * inspector/DOMPatchSupport.cpp: |
| (WebCore::DOMPatchSupport::patchDocument): |
| Update for new signature of Document.write(). |
| |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::postMessage): |
| (WebCore::DOMWindow::focus): |
| * page/DOMWindow.h: |
| Use the term incumbentWindow, matching IDL, and so not to be confused |
| with the callerWindow, which is slightly different. |
| |
| 2017-06-16 Daniel Bates <dabates@apple.com> |
| |
| Remove header OptionSet.h from FrameLoaderTypes.h |
| https://bugs.webkit.org/show_bug.cgi?id=173489 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Although the header FrameLoaderTypes.h defines exactly one enum class, ReloadOption, whose |
| enumerators conform the power of two prerequisite for parameterizing an OptionSet for it |
| FrameLoaderTypes.h does not actually make use of the functionality provided by header |
| OptionSet.h. And not all source files that include FrameLoaderTypes.h need to use an OptionSet. |
| |
| * loader/DocumentLoader.h: Include <wtf/OptionSet.h>. |
| * loader/FrameLoader.h: Ditto. |
| * loader/FrameLoaderTypes.h: Remove header <wtf/OptionSet.h>. |
| * replay/UserInputBridge.h: Include <wtf/Forward.h>. |
| |
| 2017-06-16 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS DnD] Upstream iOS drag and drop implementation into OpenSource WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=173366 |
| <rdar://problem/32767014> |
| |
| Reviewed by Tim Horton. |
| |
| Moves all drag and drop logic previously hidden behind WebKitAdditions into the open source repository, along |
| with unit test pages in TestWebKitAPI. Also removes all #includes and #imports of dragging-related files in |
| WebKitAdditions from the open source repository. |
| |
| This initial upstreaming phase is only concerned with moving code out of WebKitAdditions, and attempts to |
| preserve the code as-is, with the exception of trivial style changes so that the open source linter passes. |
| Future patches will remove the DATA_INTERACTION feature flag altogether and unobscure all variable and function |
| names referencing "data interaction". |
| |
| No change in behavior from the internal build. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * page/ios/EventHandlerIOS.mm: |
| (WebCore::EventHandler::createDraggingDataTransfer): |
| (WebCore::EventHandler::eventLoopHandleMouseDragged): |
| (WebCore::EventHandler::tryToBeginDataInteractionAtPoint): |
| * platform/ios/DragImageIOS.mm: |
| (WebCore::dragImageSize): |
| (WebCore::scaleDragImage): |
| (WebCore::createDragImageFromImage): |
| (WebCore::deleteDragImage): |
| (WebCore::createDragImageForLink): |
| (WebCore::createDragImageIconForCachedImageFilename): |
| (WebCore::platformAdjustDragImageForDeviceScaleFactor): |
| (WebCore::createDragImageForSelection): |
| (WebCore::dissolveDragImageToFraction): |
| * platform/ios/PasteboardIOS.mm: |
| (WebCore::Pasteboard::Pasteboard): |
| (WebCore::Pasteboard::setDragImage): |
| (WebCore::Pasteboard::createForDragAndDrop): |
| * platform/mac/DragDataMac.mm: |
| (WebCore::rtfPasteboardType): |
| (WebCore::rtfdPasteboardType): |
| (WebCore::stringPasteboardType): |
| (WebCore::urlPasteboardType): |
| (WebCore::htmlPasteboardType): |
| (WebCore::colorPasteboardType): |
| (WebCore::pdfPasteboardType): |
| (WebCore::tiffPasteboardType): |
| (WebCore::DragData::asFilenames): |
| (WebCore::DragData::containsURL): |
| (rtfPasteboardType): Deleted. |
| (rtfdPasteboardType): Deleted. |
| (stringPasteboardType): Deleted. |
| (urlPasteboardType): Deleted. |
| (htmlPasteboardType): Deleted. |
| (colorPasteboardType): Deleted. |
| (pdfPasteboardType): Deleted. |
| (tiffPasteboardType): Deleted. |
| |
| 2017-06-16 Youenn Fablet <youenn@apple.com> |
| |
| addTransceiver should trigger mid generation in the SDP |
| https://bugs.webkit.org/show_bug.cgi?id=173452 |
| |
| Reviewed by Alex Christensen. |
| |
| Test: webrtc/video-addTransceiver.html |
| |
| Adding support for recvonly SDP based on call to addTransceiver. |
| Using offer_to_receive options of libwebrtc for that purpose. |
| |
| Making sure that addTransceiver and using a real track afterwards is working too. |
| |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::enqueueReplaceTrackTask): notify the backend that a track is added in case the sender has no track. |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::shouldOfferAllowToReceiveAudio): Detect whether some audio mid should be recvonly. |
| (WebCore::LibWebRTCMediaEndpoint::shouldOfferAllowToReceiveVideo): Detect whether some video mid should be recvonly. |
| (WebCore::LibWebRTCMediaEndpoint::doCreateOffer): |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h: |
| |
| 2017-06-16 Youenn Fablet <youenn@apple.com> |
| |
| WebCore::LibWebRTCMediaEndpoint::gatherStatsForLogging is crashing |
| https://bugs.webkit.org/show_bug.cgi?id=173493 |
| |
| Reviewed by Eric Carlson. |
| |
| Speculative preventive fix. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::gatherStatsForLogging): |
| |
| 2017-06-16 Alex Christensen <achristensen@webkit.org> |
| |
| Show punycode to user if a URL has dotless i or j followed by diacritic dot |
| https://bugs.webkit.org/show_bug.cgi?id=173431 |
| |
| Reviewed by Darin Adler. |
| |
| Covered by new API tests. |
| |
| * platform/mac/WebCoreNSURLExtras.mm: |
| (WebCore::isLookalikeCharacter): |
| (WebCore::allCharactersInIDNScriptWhiteList): |
| (WebCore::createStringWithEscapedUnsafeCharacters): |
| |
| 2017-06-16 Youenn Fablet <youenn@apple.com> |
| |
| [iOS] Switching cameras in a WebRTC call makes black frames being sent |
| https://bugs.webkit.org/show_bug.cgi?id=173486 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: webrtc/video-replace-muted-track.html |
| |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: |
| (WebCore::RealtimeOutgoingVideoSource::updateBlackFramesSending): |
| Ensuring the timer is stopped if needed. |
| (WebCore::RealtimeOutgoingVideoSource::initializeFromSource): |
| Calling updateBlackFramesSending to stop sending frame if needed. |
| |
| 2017-06-16 Youenn Fablet <youenn@apple.com> |
| |
| Remove replaceTrack restriction about video resolution |
| https://bugs.webkit.org/show_bug.cgi?id=173490 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by updated tests. |
| |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: |
| (WebCore::RealtimeOutgoingVideoSource::setSource): |
| |
| 2017-06-16 Jeremy Jones <jeremyj@apple.com> |
| |
| Handle timeout of prepareForPictureInPictureStopWithCompletionHandler. |
| https://bugs.webkit.org/show_bug.cgi?id=173462 |
| rdar://problem/32128170 |
| |
| Reviewed by Jer Noble. |
| |
| No new tests because no effect on the DOM. |
| |
| If WebVideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler doesn't respond fast enough, |
| the caller will timeout and call will/didStopPictureInPicture. |
| |
| This is getting fullscreen state confused. |
| |
| This change keeps state consistent by handling will/didStopPictureInPicture possibly being called before |
| prepareForPictureInPictureStopWithCompletionHandler calls its callback. |
| |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.h: |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: |
| (WebVideoFullscreenInterfaceAVKit::willStopPictureInPicture): |
| (WebVideoFullscreenInterfaceAVKit::didStopPictureInPicture): |
| (WebVideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler): |
| (WebVideoFullscreenInterfaceAVKit::watchdogTimerFired): |
| |
| 2017-06-16 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Make builds faster after r218371 |
| https://bugs.webkit.org/show_bug.cgi?id=173453 |
| |
| Reviewed by Tim Horton. |
| |
| Remove #includes from .h files. |
| |
| No new tests because there is no behavior change. |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: Add new .cpp file, and sort the project file |
| * platform/graphics/FontFamilySpecificationNull.cpp: Copied from Source/WebCore/platform/graphics/FontFamilySpecificationNull.h. |
| (WebCore::FontFamilySpecificationNull::fontRanges): |
| * platform/graphics/FontFamilySpecificationNull.h: |
| (WebCore::FontFamilySpecificationNull::fontRanges): Deleted. |
| * platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp: |
| (WebCore::FontFamilySpecificationCoreText::FontFamilySpecificationCoreText): |
| (WebCore::FontFamilySpecificationCoreText::~FontFamilySpecificationCoreText): |
| * platform/graphics/cocoa/FontFamilySpecificationCoreText.h: |
| (WebCore::FontFamilySpecificationCoreText::FontFamilySpecificationCoreText): Deleted. |
| |
| 2017-06-16 Chris Dumez <cdumez@apple.com> |
| |
| [WK2] Add WKProcessPool SPI to efficiently reset all plugin load client policies |
| https://bugs.webkit.org/show_bug.cgi?id=173472 |
| <rdar://problem/28858817> |
| |
| Reviewed by Brady Eidson. |
| |
| Add PluginLoadClientPolicyMaximum value to PluginLoadClientPolicy enumeration |
| to facilitate input value validation on API side. |
| |
| * plugins/PluginData.h: |
| |
| 2017-06-16 Jer Noble <jer.noble@apple.com> |
| |
| [iOS] Do not pause playing video when application resigns active state. |
| https://bugs.webkit.org/show_bug.cgi?id=173474 |
| |
| Reviewed by Tim Horton. |
| |
| Test: media/video-inactive-playback.html |
| |
| Separate out the concept of "inactive" playback from "process background" playback. |
| Move the implementation of applicationDidEnterBackground() from MediaSessionManagerIOS |
| into it's superclass, PlatformMediaSessionManager, and add a new set of restrictions |
| for "InactiveProcessPlaybackRestricted" and "SuspendedUnderLockPlaybackRestricted". |
| Leave the default restriction set for iOS as "BackgroundProcessPlaybackRestricted" and |
| "SuspendedUnderLockPlaybackRestricted", to preserve the existing behavior of suspending |
| playback when switching apps or when locking the device. |
| |
| * platform/audio/PlatformMediaSession.cpp: |
| (WebCore::interruptionName): |
| * platform/audio/PlatformMediaSession.h: |
| * platform/audio/PlatformMediaSessionManager.cpp: |
| (WebCore::PlatformMediaSessionManager::applicationWillBecomeInactive): |
| (WebCore::PlatformMediaSessionManager::applicationDidBecomeActive): |
| (WebCore::PlatformMediaSessionManager::applicationDidEnterBackground): |
| (WebCore::PlatformMediaSessionManager::applicationWillEnterForeground): |
| (WebCore::PlatformMediaSessionManager::applicationWillEnterBackground): Deleted. |
| (WebCore::PlatformMediaSessionManager::applicationDidEnterForeground): Deleted. |
| * platform/audio/PlatformMediaSessionManager.h: |
| * platform/audio/ios/MediaSessionManagerIOS.h: |
| * platform/audio/ios/MediaSessionManagerIOS.mm: |
| (WebCore::MediaSessionManageriOS::resetRestrictions): |
| (-[WebMediaSessionHelper applicationDidBecomeActive:]): |
| (-[WebMediaSessionHelper applicationWillResignActive:]): |
| (WebCore::MediaSessionManageriOS::applicationDidEnterBackground): Deleted. |
| (WebCore::MediaSessionManageriOS::applicationWillEnterForeground): Deleted. |
| * testing/Internals.cpp: |
| (WebCore::Internals::applicationWillBecomeInactive): |
| (WebCore::Internals::applicationDidBecomeActive): |
| (WebCore::Internals::applicationWillEnterForeground): |
| (WebCore::Internals::applicationDidEnterBackground): |
| (WebCore::Internals::setMediaSessionRestrictions): |
| (WebCore::Internals::applicationDidEnterForeground): Deleted. |
| (WebCore::Internals::applicationWillEnterBackground): Deleted. |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-06-16 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION (r213126): Sync XHR needs partition for cache and credentials |
| https://bugs.webkit.org/show_bug.cgi?id=173496 |
| <rdar://problem/31943596> |
| |
| Reviewed by Darin Adler. |
| |
| Test: http/tests/security/sync-xhr-partition.html |
| |
| * xml/XMLHttpRequest.cpp: |
| (WebCore::XMLHttpRequest::createRequest): |
| |
| 2017-06-16 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r218402 and r218404. |
| https://bugs.webkit.org/show_bug.cgi?id=173494 |
| |
| Seems to have mysteriously broken the build in bizarre ways |
| (Requested by thorton on #webkit). |
| |
| Reverted changesets: |
| |
| "Include a few widespread WTF headers in WebCorePrefix.h" |
| https://bugs.webkit.org/show_bug.cgi?id=173481 |
| http://trac.webkit.org/changeset/218402 |
| |
| "Fix the Windows build after r218402" |
| http://trac.webkit.org/changeset/218404 |
| |
| 2017-06-16 Brady Eidson <beidson@apple.com> |
| |
| REGRESSION (r218015) IconLoaders for already-cached resources expect to be asynchronous, no longer are. |
| <rdar://problem/32817519> and https://bugs.webkit.org/show_bug.cgi?id=173478 |
| |
| Reviewed by Daniel Bates. |
| |
| Covered by API test. |
| |
| Being synchronous is actually better as it's resolved another issue or two. |
| But only if we can actually deliver the data without crashing first. |
| So let's do that. |
| |
| * loader/DocumentLoader.cpp: |
| (WebCore::DocumentLoader::didGetLoadDecisionForIcon): Put the IconLoader in the set of active icon loaders |
| before actually starting the icon loading. |
| |
| 2017-06-16 Jeremy Jones <jeremyj@apple.com> |
| |
| Don't use WebCore Timer from code that runs in the UI process. |
| https://bugs.webkit.org/show_bug.cgi?id=173460 |
| rdar://problem/32750731 |
| |
| Reviewed by Jer Noble. |
| |
| If a WebCore Timer is fired from the WebKit2 UI process, it will |
| create a web thread, which can cause a crash in this instance. |
| |
| It was also causing the timer to be called back on the wrong thread. |
| |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.h: |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: |
| (WebVideoFullscreenInterfaceAVKit::WebVideoFullscreenInterfaceAVKit): |
| |
| 2017-06-16 Timothy Horton <timothy_horton@apple.com> |
| |
| Fix the Windows build after r218402 |
| |
| * WebCorePrefix.h: |
| I typed #import instead of #include on auto-pilot, and ... it mostly worked! |
| Except Windows. |
| |
| 2017-06-16 Jeremy Jones <jeremyj@apple.com> |
| |
| Hide inline captions in fullscreen. Remove fullscreen captions when no longer needed. |
| https://bugs.webkit.org/show_bug.cgi?id=173482 |
| |
| Reviewed by Eric Carlson. |
| |
| Hide the inline captions while they are presenting to fullscreen. |
| Remove the text track representation as soon as it is no longer needed. |
| This allows the text track to render properly when returning to inline. |
| |
| * html/shadow/MediaControlElements.cpp: |
| (WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentation): |
| |
| 2017-06-16 Tim Horton <timothy_horton@apple.com> |
| |
| Include a few widespread WTF headers in WebCorePrefix.h |
| https://bugs.webkit.org/show_bug.cgi?id=173481 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebCorePrefix.h: |
| These are four of the headers that contribute the most pre-processed |
| source to the WebCore build. They (and their dependents) change infrequently |
| enough that a world rebuild of WebCore when they change seems like an |
| acceptable tradeoff for the ~9% reduction in WebCore build time that I |
| measure from this change. |
| |
| 2017-06-16 Antoine Quint <graouts@apple.com> |
| |
| REGRESSION: AirPlay placard is not shown when in fullscreen |
| https://bugs.webkit.org/show_bug.cgi?id=173447 |
| <rdar://problem/32803773> |
| |
| Reviewed by Jon Lee. |
| |
| We only allowed a placard to be set on inline controls, but that was an oversight: placards |
| should be displayed in fullscreen as well. As such, we move the "placard" property up from |
| InlineMediaControls to MediaControls, and update the layout() logic in MacOSFullscreenMediaControls |
| to display a placard. |
| |
| Test: media/modern-media-controls/placard-support/placard-support-airplay-fullscreen.html |
| |
| * Modules/modern-media-controls/controls/inline-media-controls.js: |
| (InlineMediaControls): |
| (InlineMediaControls.prototype.layout): |
| (InlineMediaControls.prototype.get placard): Deleted. |
| (InlineMediaControls.prototype.set placard): Deleted. |
| * Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js: |
| (MacOSFullscreenMediaControls.prototype.layout): |
| * Modules/modern-media-controls/controls/media-controls.js: |
| (MediaControls.prototype.get placard): |
| (MediaControls.prototype.set placard): |
| (MediaControls.prototype.placardPreventsControlsBarDisplay): |
| (MediaControls.prototype.layout): |
| * Modules/modern-media-controls/media/placard-support.js: |
| (PlacardSupport.prototype._updatePlacard): |
| (PlacardSupport): |
| |
| 2017-06-16 Jer Noble <jer.noble@apple.com> |
| |
| [WebRTC] Removing a MediaStreamTrack from a MediaStream reports no recording to WebKit clients |
| https://bugs.webkit.org/show_bug.cgi?id=173398 |
| <rdar://problem/32592961> |
| |
| Reviewed by Eric Carlson. |
| |
| API Test: Tests/WebKit2/MediaStreamTrackDetached.mm |
| |
| Move the definition of a MediaStream as a MediaProducer from the stream itself to its constituent |
| MediaStreamTracks. This ensures that, even if a MediaStreamTrack is removed from its stream, the |
| document (and thus the clients) are notified that media capture is still occurring. |
| |
| Though MediaStream is no longer a MediaProducer, it still uses the MediaProducer's state concept |
| to determine when to fire events. However it's mediaState() implementation will be moved into |
| MediaStreamTrack, and will instead simply bitwise-or together each of it's track's mediaState(). |
| |
| The MediaStream notifies the document that its state has changed asynchronously, so do the same |
| for MediaStreamTrack (which reduces the number of calls to the client when changes all occur |
| during a single run loop). |
| |
| Because the MediaStreamTrackPrivate may be started externally (not by the MediaStreamTrack directly), |
| add a new client method that notifies observers when the track has been started, and the |
| MediaStreamTrack will use this notification to update the document with it's new mediaState(). |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::MediaStream): |
| (WebCore::MediaStream::~MediaStream): |
| (WebCore::MediaStream::mediaState): |
| (WebCore::MediaStream::statusDidChange): |
| (WebCore::MediaStream::characteristicsChanged): |
| (WebCore::MediaStream::pageMutedStateDidChange): Deleted. |
| * Modules/mediastream/MediaStream.h: |
| * Modules/mediastream/MediaStreamTrack.cpp: |
| (WebCore::MediaStreamTrack::MediaStreamTrack): |
| (WebCore::MediaStreamTrack::~MediaStreamTrack): |
| (WebCore::MediaStreamTrack::pageMutedStateDidChange): |
| (WebCore::MediaStreamTrack::mediaState): |
| (WebCore::MediaStreamTrack::trackStarted): |
| (WebCore::MediaStreamTrack::configureTrackRendering): |
| (WebCore::MediaStreamTrack::stop): |
| (WebCore::MediaStreamTrack::document): |
| * Modules/mediastream/MediaStreamTrack.h: |
| (WebCore::MediaStreamTrack::source): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: |
| * platform/mediastream/MediaStreamPrivate.cpp: |
| (WebCore::MediaStreamPrivate::trackStarted): |
| * platform/mediastream/MediaStreamPrivate.h: |
| * platform/mediastream/MediaStreamTrackPrivate.cpp: |
| (WebCore::MediaStreamTrackPrivate::sourceStarted): |
| * platform/mediastream/MediaStreamTrackPrivate.h: |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::start): |
| * platform/mediastream/RealtimeMediaSource.h: |
| |
| 2017-06-16 Antoine Quint <graouts@apple.com> |
| |
| Backdrop blur missing in media controls bar on Sierra |
| https://bugs.webkit.org/show_bug.cgi?id=173451 |
| |
| Reviewed by Simon Fraser. |
| |
| On Sierra, we need to enforce a stacking context on controls bars to guarantee that |
| the backdrop filters on the BackgroundTint are applied correctly. |
| |
| Test: media/modern-media-controls/controls-bar/controls-bar-stacking-context.html |
| |
| * Modules/modern-media-controls/controls/controls-bar.css: |
| (.controls-bar): |
| |
| 2017-06-16 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r218375. |
| |
| The API test MediaStreamTrackDetached is still timing out |
| after the patch |
| |
| Reverted changeset: |
| |
| "[WebRTC] Removing a MediaStreamTrack from a MediaStream |
| reports no recording to WebKit clients" |
| https://bugs.webkit.org/show_bug.cgi?id=173398 |
| http://trac.webkit.org/changeset/218375 |
| |
| 2017-06-15 Simon Fraser <simon.fraser@apple.com> |
| |
| REGRESSION: Media control glyphs appear to invert colors when video is dragged |
| https://bugs.webkit.org/show_bug.cgi?id=173455 |
| rdar://problem/32726887 |
| |
| Reviewed by Tim Horton. |
| |
| Masks on composited layers were not correctly painted in drag images, because RenderLayer::paintLayerContents() |
| failed to pass the PaintBehaviorFlattenCompositingLayers flag down through the mask drawing code, causing |
| RenderBox::paintMaskImages() to fall into the composited mask code path. |
| |
| Fix by making a local copy of PaintBehavior, and setting the PaintBehaviorFlattenCompositingLayers and PaintBehaviorSnapshotting |
| bits on it as appropriate, and passing it into paintMaskForFragments() and paintChildClippingMaskForFragments(). This is similar |
| to code above. |
| |
| Can't test drag images. |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::paintLayerContents): |
| (WebCore::RenderLayer::paintMaskForFragments): |
| (WebCore::RenderLayer::paintChildClippingMaskForFragments): |
| * rendering/RenderLayer.h: |
| |
| 2017-06-16 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r218376. |
| |
| The patch cause multiple Layout Test Crashes. |
| |
| Reverted changeset: |
| |
| "Web Inspector: Instrument 2D/WebGL canvas contexts in the |
| backend" |
| https://bugs.webkit.org/show_bug.cgi?id=172623 |
| http://trac.webkit.org/changeset/218376 |
| |
| 2017-06-16 Daniel Bates <dabates@apple.com> |
| |
| Use the term icon instead of favicon |
| https://bugs.webkit.org/show_bug.cgi?id=173400 |
| |
| Reviewed by Alex Christensen. |
| |
| * inspector/InspectorPageAgent.cpp: |
| (WebCore::InspectorPageAgent::cachedResourceContent): |
| (WebCore::InspectorPageAgent::cachedResourceType): |
| * loader/LinkLoader.cpp: |
| (WebCore::createLinkPreloadResourceClient): |
| * loader/ResourceLoadInfo.cpp: |
| (WebCore::toResourceType): |
| * loader/SubresourceLoader.cpp: |
| (WebCore::logResourceLoaded): |
| * loader/cache/CachedRawResource.cpp: |
| (WebCore::CachedRawResource::CachedRawResource): |
| * loader/cache/CachedRawResource.h: |
| (isType): |
| * loader/cache/CachedResource.cpp: |
| (WebCore::CachedResource::defaultPriorityForResourceType): |
| * loader/cache/CachedResource.h: |
| (WebCore::CachedResource::isMainOrMediaOrIconOrRawResource): |
| (WebCore::CachedResource::ignoreForRequestCount): |
| (WebCore::CachedResource::isMainOrMediaOrFaviconOrRawResource): Deleted. |
| * loader/cache/CachedResourceLoader.cpp: |
| (WebCore::createResource): |
| (WebCore::CachedResourceLoader::requestIcon): |
| (WebCore::contentTypeFromResourceType): |
| (WebCore::CachedResourceLoader::checkInsecureContent): |
| (WebCore::CachedResourceLoader::allowedByContentSecurityPolicy): |
| (WebCore::CachedResourceLoader::determineRevalidationPolicy): |
| (WebCore::CachedResourceLoader::requestFavicon): Deleted. |
| * loader/cache/CachedResourceLoader.h: |
| * loader/icon/IconLoader.cpp: |
| (WebCore::IconLoader::startLoading): |
| |
| 2017-06-16 Per Arne Vollan <pvollan@apple.com> |
| |
| WebKit does not honor closed caption stroke width. |
| https://bugs.webkit.org/show_bug.cgi?id=173402 |
| |
| Reviewed by Eric Carlson. |
| |
| WebKit currently has an upper limit on the stroke width returned from MACaptionAppearanceCopyFontDescriptorWithStrokeForStyle. |
| Since only half the stroke is visible because the stroke is drawn before the fill, double the stroke width from |
| MediaAccessibility to get the correct visual stroke width. Also, the stroke width returned from this function should not be |
| interpreted as CSS points, but as CSS pixels. |
| |
| * html/shadow/MediaControlElements.cpp: |
| (WebCore::MediaControlTextTrackContainerElement::updateTextStrokeStyle): |
| * page/CaptionUserPreferencesMediaAF.cpp: |
| (WebCore::CaptionUserPreferencesMediaAF::captionStrokeWidthForFont): |
| |
| 2017-06-16 Per Arne Vollan <pvollan@apple.com> |
| |
| [Win] WebKit renders scrollbar wrong at 125% scale. |
| https://bugs.webkit.org/show_bug.cgi?id=173363 |
| |
| Reviewed by Darin Adler. |
| |
| Scrollbars are drawn with the GDI function DrawThemeBackground. Sometimes, the GDI clip |
| rectangle will be too small since we clamp a FloatRect to integer values when setting the |
| GDI clip rectangle. |
| |
| * platform/graphics/win/GraphicsContextWin.cpp: |
| (WebCore::GraphicsContextPlatformPrivate::clip): |
| |
| 2017-06-15 Mark Lam <mark.lam@apple.com> |
| |
| Add a JSRunLoopTimer registry in VM. |
| https://bugs.webkit.org/show_bug.cgi?id=173429 |
| <rdar://problem/31287961> |
| |
| Reviewed by Filip Pizlo. |
| |
| No new tests needed because: |
| 1. it's already covered: it was also originally discovered by our API tests while |
| running on the iOS simulator. The test was intermittently failing on a debug |
| build. |
| 2. the issue is racy (it depends on a JSRunLoopTimer firing at the right time). |
| Hence, it's non trivial to write a better test than the one we already have. |
| |
| * bindings/js/CommonVM.cpp: |
| (WebCore::commonVMSlow): |
| |
| 2017-06-15 Antoine Quint <graouts@apple.com> |
| |
| REGRESSION: AirPlay button is incorrectly highlighted in inline and fullscreen |
| https://bugs.webkit.org/show_bug.cgi?id=173446 |
| |
| Reviewed by Dean Jackson. |
| |
| A button's color should be applied to its <picture> element, not the containing |
| <button> element. |
| |
| * Modules/modern-media-controls/controls/airplay-button.css: |
| (button.airplay.on > picture): |
| (button.airplay.on): Deleted. |
| |
| 2017-06-15 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Instrument 2D/WebGL canvas contexts in the backend |
| https://bugs.webkit.org/show_bug.cgi?id=172623 |
| <rdar://problem/32415986> |
| |
| Reviewed by Devin Rousso. |
| |
| Test: inspector/canvas/create-canvas-contexts.html |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| * dom/Document.cpp: |
| (WebCore::Document::getCSSCanvasElement): |
| Instrument creation of CSS canvases. This merely registers the canvas |
| element with InspectorCanvasAgent and stores the name (identifier passed |
| to getCSSCanvasContext) for later use. It isn't until the context is |
| actually created that the frontend receives a notification. |
| |
| * html/HTMLCanvasElement.cpp: |
| (WebCore::HTMLCanvasElement::getContext2d): |
| (WebCore::HTMLCanvasElement::getContextWebGL): |
| Instrument creation of 2D and WebGL canvas contexts. |
| |
| * inspector/InspectorAllInOne.cpp: |
| |
| * inspector/InspectorCanvasAgent.cpp: Added. |
| New backend agent for canvas inspection. Canvas creation and destruction |
| are continuously monitored by the agent, regardless of the presence of |
| a frontend. This is necessary since there is no way to retrieve the |
| rendering contexts for with a given frame once they've been created. |
| |
| (WebCore::InspectorCanvasAgent::InspectorCanvasAgent): |
| (WebCore::InspectorCanvasAgent::didCreateFrontendAndBackend): |
| (WebCore::InspectorCanvasAgent::willDestroyFrontendAndBackend): |
| (WebCore::InspectorCanvasAgent::discardAgent): |
| Unregister canvas observers to prevent dangling agent pointer. |
| (WebCore::InspectorCanvasAgent::enable): |
| Dispatch events for existing canvases, now that the frontend exists. |
| (WebCore::InspectorCanvasAgent::disable): |
| (WebCore::InspectorCanvasAgent::frameNavigated): |
| (WebCore::InspectorCanvasAgent::didCreateCSSCanvas): |
| Register the name/identifier associated with the CSS canvas, so that it |
| can be retrieved and associated with the rendering context later. |
| |
| (WebCore::InspectorCanvasAgent::didCreateCanvasRenderingContext): |
| (WebCore::InspectorCanvasAgent::canvasDestroyed): |
| Removes the canvas from the agent, and queues it for notifying the |
| frontend during the next event loop. |
| |
| (WebCore::InspectorCanvasAgent::canvasDestroyedTimerFired): |
| (WebCore::InspectorCanvasAgent::clearCanvasData): |
| (WebCore::InspectorCanvasAgent::getCanvasEntry): |
| (WebCore::InspectorCanvasAgent::buildObjectForCanvas): |
| * inspector/InspectorCanvasAgent.h: Added. |
| |
| * inspector/InspectorController.cpp: |
| (WebCore::InspectorController::InspectorController): |
| |
| * inspector/InspectorInstrumentation.cpp: |
| (WebCore::InspectorInstrumentation::didCommitLoadImpl): |
| (WebCore::InspectorInstrumentation::didCreateCSSCanvasImpl): |
| (WebCore::InspectorInstrumentation::didCreateCanvasRenderingContextImpl): |
| |
| * inspector/InspectorInstrumentation.h: |
| (WebCore::InspectorInstrumentation::didCreateCSSCanvas): |
| (WebCore::InspectorInstrumentation::didCreateCanvasRenderingContext): |
| These instrumentation points should not fast return when no frontend |
| is attached. |
| |
| * inspector/InstrumentingAgents.cpp: |
| (WebCore::InstrumentingAgents::reset): |
| |
| * inspector/InstrumentingAgents.h: |
| (WebCore::InstrumentingAgents::inspectorCanvasAgent): |
| (WebCore::InstrumentingAgents::setInspectorCanvasAgent): |
| Plumbing for the new agent. |
| |
| 2017-06-15 Jer Noble <jer.noble@apple.com> |
| |
| [WebRTC] Removing a MediaStreamTrack from a MediaStream reports no recording to WebKit clients |
| https://bugs.webkit.org/show_bug.cgi?id=173398 |
| <rdar://problem/32592961> |
| |
| Reviewed by Eric Carlson. |
| |
| API Test: Tests/WebKit2/MediaStreamTrackDetached.mm |
| |
| Move the definition of a MediaStream as a MediaProducer from the stream itself to its constituent |
| MediaStreamTracks. This ensures that, even if a MediaStreamTrack is removed from its stream, the |
| document (and thus the clients) are notified that media capture is still occurring. |
| |
| Though MediaStream is no longer a MediaProducer, it still uses the MediaProducer's state concept |
| to determine when to fire events. However it's mediaState() implementation will be moved into |
| MediaStreamTrack, and will instead simply bitwise-or together each of it's track's mediaState(). |
| |
| The MediaStream notifies the document that its state has changed asynchronously, so do the same |
| for MediaStreamTrack (which reduces the number of calls to the client when changes all occur |
| during a single run loop). |
| |
| Because the MediaStreamTrackPrivate may be started externally (not by the MediaStreamTrack directly), |
| add a new client method that notifies observers when the track has been started, and the |
| MediaStreamTrack will use this notification to update the document with it's new mediaState(). |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::MediaStream): |
| (WebCore::MediaStream::~MediaStream): |
| (WebCore::MediaStream::mediaState): |
| (WebCore::MediaStream::statusDidChange): |
| (WebCore::MediaStream::characteristicsChanged): |
| (WebCore::MediaStream::pageMutedStateDidChange): Deleted. |
| * Modules/mediastream/MediaStream.h: |
| * Modules/mediastream/MediaStreamTrack.cpp: |
| (WebCore::MediaStreamTrack::MediaStreamTrack): |
| (WebCore::MediaStreamTrack::~MediaStreamTrack): |
| (WebCore::MediaStreamTrack::pageMutedStateDidChange): |
| (WebCore::MediaStreamTrack::mediaState): |
| (WebCore::MediaStreamTrack::trackStarted): |
| (WebCore::MediaStreamTrack::configureTrackRendering): |
| (WebCore::MediaStreamTrack::stop): |
| (WebCore::MediaStreamTrack::document): |
| * Modules/mediastream/MediaStreamTrack.h: |
| (WebCore::MediaStreamTrack::source): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: |
| * platform/mediastream/MediaStreamPrivate.cpp: |
| (WebCore::MediaStreamPrivate::trackStarted): |
| * platform/mediastream/MediaStreamPrivate.h: |
| * platform/mediastream/MediaStreamTrackPrivate.cpp: |
| (WebCore::MediaStreamTrackPrivate::sourceStarted): |
| * platform/mediastream/MediaStreamTrackPrivate.h: |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::start): |
| * platform/mediastream/RealtimeMediaSource.h: |
| |
| 2017-06-15 Simon Fraser <simon.fraser@apple.com> |
| |
| Use WTFLogAlways for debug logging so that it shows up in device system logs |
| https://bugs.webkit.org/show_bug.cgi?id=173450 |
| |
| Reviewed by Tim Horton. |
| |
| If you want to showRenderTree() on-device, the result doesn't show in system log so you can't see it |
| Switch to WTFLogAlways to fix this, for all the debug logging in WebCore. |
| |
| Also WKError () -> WKError() in the old WAK code, to allow for easier searching pending cleanup. |
| |
| * Modules/webaudio/AudioContext.cpp: |
| (WebCore::AudioContext::~AudioContext): |
| * Modules/webaudio/AudioNode.cpp: |
| (WebCore::AudioNode::~AudioNode): |
| (WebCore::AudioNode::ref): |
| (WebCore::AudioNode::finishDeref): |
| (WebCore::AudioNode::printNodeCounts): |
| * bridge/objc/objc_instance.mm: |
| (ObjcInstance::invokeObjcMethod): |
| * bridge/objc/objc_utility.mm: |
| (JSC::Bindings::convertObjcValueToValue): |
| * css/StyleProperties.cpp: |
| (WebCore::StyleProperties::showStyle): |
| * dom/DocumentMarkerController.cpp: |
| (DocumentMarkerController::showMarkers): |
| * dom/Node.cpp: |
| (WebCore::Node::showNode): |
| (WebCore::Node::showNodePathForThis): |
| (WebCore::traverseTreeAndMark): |
| * dom/Position.cpp: |
| (WebCore::Position::debugPosition): |
| (WebCore::Position::showAnchorTypeAndOffset): |
| * dom/Range.cpp: |
| (showTree): |
| * editing/FrameSelection.cpp: |
| (WebCore::FrameSelection::debugRenderer): |
| * editing/VisiblePosition.cpp: |
| (WebCore::VisiblePosition::debugPosition): |
| * editing/VisibleSelection.cpp: |
| (WebCore::VisibleSelection::debugPosition): |
| * history/HistoryItem.cpp: |
| (WebCore::HistoryItem::showTreeWithIndent): |
| * html/parser/HTMLFormattingElementList.cpp: |
| (WebCore::HTMLFormattingElementList::show): |
| * inspector/DOMPatchSupport.cpp: |
| (WebCore::DOMPatchSupport::dumpMap): |
| * page/scrolling/ScrollingStateTree.cpp: |
| (showScrollingStateTree): |
| * platform/audio/ios/AudioDestinationIOS.cpp: |
| (WebCore::AudioDestinationIOS::frameSizeChangedProc): |
| * platform/graphics/GraphicsLayer.cpp: |
| (showGraphicsLayerTree): |
| * platform/graphics/displaylists/DisplayList.cpp: |
| (WebCore::DisplayList::DisplayList::dump): |
| * platform/ios/wak/WAKView.mm: |
| (+[WAKView _wrapperForViewRef:]): |
| (-[WAKView displayRect:]): |
| (-[WAKView displayRectIgnoringOpacity:inContext:]): |
| * platform/ios/wak/WKUtilities.c: |
| (WKRelease): |
| * platform/ios/wak/WKView.mm: |
| (_WKViewSetViewContext): |
| (WKViewGetBounds): |
| (WKViewGetFrame): |
| (_WKViewRecursivelyInvalidateGState): |
| (WKViewSetFrameOrigin): |
| (WKViewSetFrameSize): |
| (WKViewGetWindow): |
| (WKViewGetSubviews): |
| (WKViewAddSubview): |
| (WKViewRemoveFromSuperview): |
| (WKViewFirstChild): |
| (WKViewNextSibling): |
| (WKViewTraverseNext): |
| (WKViewGetVisibleRect): |
| (WKViewConvertRectToSuperview): |
| (WKViewConvertRectToBase): |
| (WKViewConvertPointToSuperview): |
| (WKViewConvertPointFromSuperview): |
| (WKViewConvertPointToBase): |
| (_WKViewGetAncestorViewsIncludingView): |
| (WKViewConvertPointFromBase): |
| (WKViewConvertRectFromSuperview): |
| (WKViewConvertRectFromBase): |
| (WKViewGetAutoresizingMask): |
| (WKViewSetAutoresizingMask): |
| * platform/text/TextEncodingRegistry.cpp: |
| (WebCore::dumpTextEncodingNameMap): |
| * rendering/CounterNode.cpp: |
| (WebCore::showTreeAndMark): |
| * rendering/InlineBox.cpp: |
| (WebCore::InlineBox::showLineBox): |
| * rendering/InlineTextBox.cpp: |
| (WebCore::InlineTextBox::showLineBox): |
| * rendering/RenderCounter.cpp: |
| (showCounterRendererTree): |
| * rendering/RenderLayer.cpp: |
| (WebCore::showLayerTree): |
| * rendering/RenderObject.cpp: |
| (WebCore::showRenderTreeLegend): |
| (WebCore::RenderObject::showRegionsInformation): |
| (WebCore::RenderObject::showRenderObject): |
| (WebCore::printRenderTreeForLiveDocuments): |
| (WebCore::printLayerTreeForLiveDocuments): |
| * rendering/SimpleLineLayoutFunctions.cpp: |
| (WebCore::SimpleLineLayout::printPrefix): |
| (WebCore::SimpleLineLayout::showLineLayoutForFlow): |
| * rendering/svg/SVGResources.cpp: |
| (WebCore::SVGResources::dump): |
| * rendering/svg/SVGResourcesCycleSolver.cpp: |
| (WebCore::SVGResourcesCycleSolver::resolveCycles): |
| * rendering/svg/SVGTextLayoutAttributes.cpp: |
| (WebCore::dumpSVGCharacterDataMapValue): |
| (WebCore::SVGTextLayoutAttributes::dump): |
| * rendering/svg/SVGTextLayoutEngine.cpp: |
| (WebCore::dumpTextBoxes): |
| (WebCore::SVGTextLayoutEngine::finishLayout): |
| |
| 2017-06-15 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Removing stray whitespace after r218371 |
| https://bugs.webkit.org/show_bug.cgi?id=173043 |
| |
| Unreviewed. |
| |
| No new tests because there is no behavior change. |
| |
| * platform/graphics/FontCascadeFonts.cpp: |
| (WebCore::shouldIgnoreRotation): |
| (WebCore::glyphDataForNonCJKCharacterWithGlyphOrientation): |
| * platform/graphics/FontDescription.cpp: |
| * platform/graphics/FontDescription.h: |
| * platform/graphics/FontFamilySpecificationNull.h: |
| * platform/graphics/cocoa/FontDescriptionCocoa.cpp: |
| (WebCore::SystemFontDatabase::systemFontCascadeList): |
| (WebCore::systemFontParameters): |
| * platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp: |
| (WebCore::FontFamilySpecificationCoreText::fontRanges): |
| * platform/graphics/cocoa/FontFamilySpecificationCoreText.h: |
| |
| 2017-06-15 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [Cocoa] Expand system-ui to include every item in the Core Text cascade list |
| https://bugs.webkit.org/show_bug.cgi?id=173043 |
| <rdar://problem/21125708> |
| |
| Reviewed by Simon Fraser. |
| |
| The concept of the system font on Cocoa platforms represents the entire Core Text cascade list. |
| However, previously, WebKit only represented system-ui by pulling out the first item in the Core |
| Text cascade list. Instead, we should make all text rendered with "system-ui" match what the |
| platform would natively render. |
| |
| Previously, we walked through the strings in the font-family property and looked them up one by |
| one. However, now we want to abstract this idea of a font family to possibly hold a |
| CTFontDescriptorRef instead of a string. This way, we expand a font-family list of ["fontA", |
| "system-ui", "fontB"] to ["fontA", ... a bunch of CTFontDescriptorRefs ..., "FontB"]. We can |
| then modify the consumer of this object to have two codepaths: the old string-based codepath, |
| and a new, platform-specific codepath which simply embeds the CTFontDesriptorRefs inside a Font |
| object. |
| |
| We don't want to simply pull out the family name from each item in the Core Text fallback list |
| because that is a lossy translation. There is more information in these font descriptors which |
| cannot be represented by CSS. Therefore, we must keep the descriptors alive and add the new |
| codepath for them. |
| |
| We also don't want to run the CSS font matching algorithm on each member of the Core Text |
| fallback list because it may yield different results from Core Text's font matching algorithm. |
| Our goal is to draw text as closely as possible to the system APIs. If we ran it, we may find |
| a font which is closer to the requested traits, but it would look out of place on the system. |
| |
| This new codepath is only enabled on macOS High Sierra and iOS 11, because enabling it on all |
| operating systems would make fixing https://bugs.webkit.org/show_bug.cgi?id=173300 impossible. |
| |
| Tests: fast/text/system-font-fallback-emoji.html |
| fast/text/system-font-fallback.html |
| fast/text/system-font-zero-size.html |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * page/MemoryRelease.cpp: |
| (WebCore::releaseNoncriticalMemory): |
| * platform/graphics/FontCascadeFonts.cpp: |
| (WebCore::realizeNextFallback): The consumer of our new data type. Now uses WTF::visit(). |
| (WebCore::FontCascadeFonts::realizeFallbackRangesAt): Now that the number of items to test |
| against the current character is larger than the number of strings in the font-family list, |
| we need to update the existing code to use the correct value. |
| * platform/graphics/FontDescription.cpp: Default implementation for non-Cocoa ports. |
| (WebCore::FontDescription::invalidateCaches): |
| (WebCore::FontCascadeDescription::effectiveFamilyCount): |
| (WebCore::FontCascadeDescription::effectiveFamilyAt): |
| * platform/graphics/FontDescription.h: Our new data type is a Variant of AtomicString and a |
| platform-specific class. Cocoa uses a class that holds a CTFontDescriptorRef and other ports |
| use an empty non-constructable class. |
| * platform/graphics/FontFamilySpecificationNull.h: Added. The empty non-constructable |
| class. |
| (WebCore::FontFamilySpecificationNull::fontRanges): |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::fontCacheRegisteredFontsChangedNotificationCallback): |
| (WebCore::FontCache::platformInit): Changing the system language will change the system font |
| fallback list, so we need to listen to this notification. This also matters for |
| FontCache::systemFallbackForCharacters(), so we should build off the same callback we are |
| already using for font installation. |
| (WebCore::invalidateFontCache): |
| * platform/graphics/cocoa/FontDescriptionCocoa.cpp: Added. The platform-specific creation of |
| our CTFontDescriptorRefs. We hold them cached in a SystemFontDatabase. |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::CoreTextCascadeListParameters): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::isHashTableDeletedValue): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::operator==): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::hash): |
| (WebCore::SystemFontDatabase::singleton): |
| (WebCore::SystemFontDatabase::systemFontCascadeList): |
| (WebCore::SystemFontDatabase::clear): |
| (WebCore::SystemFontDatabase::SystemFontDatabase): |
| (WebCore::SystemFontDatabase::applyWeightAndItalics): |
| (WebCore::SystemFontDatabase::removeCascadeList): |
| (WebCore::SystemFontDatabase::computeCascadeList): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParametersHash::hash): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParametersHash::equal): |
| (WebCore::isSystemFontString): |
| (WebCore::systemFontParameters): |
| (WebCore::FontDescription::invalidateCaches): |
| (WebCore::FontCascadeDescription::effectiveFamilyCount): We don't store the result of this |
| because it would probably be a bad idea to increase the size of every single FontCascade just |
| in case it might ask for the system font. Most fonts never mention system-ui. Because it's so |
| rare, we can just recalculate the result of this as necessary. This shouldn't be slow because |
| the results are cached. |
| (WebCore::FontCascadeDescription::effectiveFamilyAt): |
| * platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp: Added. |
| (WebCore::FontFamilySpecificationCoreText::fontRanges): Create a FontRanges from a |
| CTFontDescriptorRef. |
| * platform/graphics/cocoa/FontFamilySpecificationCoreText.h: Added. |
| (WebCore::FontFamilySpecificationCoreText::FontFamilySpecificationCoreText): |
| * platform/graphics/ios/FontCacheIOS.mm: |
| (WebCore::platformFontWithFamilySpecialCase): |
| * platform/graphics/mac/FontCacheMac.mm: |
| (WebCore::platformFontWithFamilySpecialCase): |
| |
| 2017-06-15 David Kilzer <ddkilzer@apple.com> |
| |
| Revert: [iOS] Generate a simulated crash when the WebThread starts in MobileSafari |
| <https://webkit.org/b/173386> |
| <rdar://problem/32776426> |
| |
| Revert r218347 and r218339 since we're going to take a different |
| approach to investigating a crash on the WebThread. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/ios/CrashReporterSupportSoftLink.h: Remove. |
| * platform/ios/CrashReporterSupportSoftLink.mm: Remove. |
| * platform/ios/wak/WebCoreThread.mm: |
| (WebThreadEnable): |
| * platform/spi/ios/CrashReporterSupportSPI.h: Remove. |
| |
| 2017-06-15 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r218365. |
| |
| The revision caused API timeouts on all builds. |
| |
| Reverted changeset: |
| |
| "[WebRTC] Removing a MediaStreamTrack from a MediaStream |
| reports no recording to WebKit clients" |
| https://bugs.webkit.org/show_bug.cgi?id=173398 |
| http://trac.webkit.org/changeset/218365 |
| |
| 2017-06-15 Simon Fraser <simon.fraser@apple.com> |
| |
| Allow use of Layout* TextStream operators in WebKit2 |
| https://bugs.webkit.org/show_bug.cgi?id=173440 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Export TextStream& operator<< for LayoutPoint, LayoutSize and LayoutRect so that |
| WebKit2 can log them. |
| |
| Use #pragma once in these geometry headers. |
| |
| * platform/graphics/FloatPoint.h: |
| * platform/graphics/FloatRect.h: |
| * platform/graphics/FloatSize.h: |
| * platform/graphics/IntPoint.h: |
| * platform/graphics/IntRect.h: |
| * platform/graphics/IntSize.h: |
| * platform/graphics/LayoutPoint.h: |
| * platform/graphics/LayoutRect.h: |
| * platform/graphics/LayoutSize.h: |
| |
| 2017-06-15 Antoine Quint <graouts@apple.com> |
| |
| Modern media controls tests error in Button.js |
| https://bugs.webkit.org/show_bug.cgi?id=173439 |
| |
| Reviewed by Dean Jackson. |
| |
| Tests would sometime yield an error when commit() would be called and the _imageSource |
| ivar hadn't been set. To more safely commit the mask image when it's loaded, we now use |
| a markDirtyProperty() call and a commitProperty() override to ensure that we cover the |
| case where we want to commit the mask image, and for other commits not to have to worry |
| about the mask image being defined. |
| |
| * Modules/modern-media-controls/controls/button.js: |
| (Button.prototype.commitProperty): |
| (Button.prototype._updateImage): |
| (Button.prototype.commit): Deleted. |
| |
| 2017-06-15 Jer Noble <jer.noble@apple.com> |
| |
| [WebRTC] Removing a MediaStreamTrack from a MediaStream reports no recording to WebKit clients |
| https://bugs.webkit.org/show_bug.cgi?id=173398 |
| <rdar://problem/32592961> |
| |
| Reviewed by Eric Carlson. |
| |
| API Test: Tests/WebKit2/MediaStreamTrackDetached.mm |
| |
| Move the definition of a MediaStream as a MediaProducer from the stream itself to its constituent |
| MediaStreamTracks. This ensures that, even if a MediaStreamTrack is removed from its stream, the |
| document (and thus the clients) are notified that media capture is still occurring. |
| |
| Though MediaStream is no longer a MediaProducer, it still uses the MediaProducer's state concept |
| to determine when to fire events. However it's mediaState() implementation will be moved into |
| MediaStreamTrack, and will instead simply bitwise-or together each of it's track's mediaState(). |
| |
| The MediaStream notifies the document that its state has changed asynchronously, so do the same |
| for MediaStreamTrack (which reduces the number of calls to the client when changes all occur |
| during a single run loop). |
| |
| Because the MediaStreamTrackPrivate may be started externally (not by the MediaStreamTrack directly), |
| add a new client method that notifies observers when the track has been started, and the |
| MediaStreamTrack will use this notification to update the document with it's new mediaState(). |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::MediaStream): |
| (WebCore::MediaStream::~MediaStream): |
| (WebCore::MediaStream::mediaState): |
| (WebCore::MediaStream::statusDidChange): |
| (WebCore::MediaStream::characteristicsChanged): |
| (WebCore::MediaStream::pageMutedStateDidChange): Deleted. |
| * Modules/mediastream/MediaStream.h: |
| * Modules/mediastream/MediaStreamTrack.cpp: |
| (WebCore::MediaStreamTrack::MediaStreamTrack): |
| (WebCore::MediaStreamTrack::~MediaStreamTrack): |
| (WebCore::MediaStreamTrack::pageMutedStateDidChange): |
| (WebCore::MediaStreamTrack::mediaState): |
| (WebCore::MediaStreamTrack::trackStarted): |
| (WebCore::MediaStreamTrack::configureTrackRendering): |
| (WebCore::MediaStreamTrack::stop): |
| (WebCore::MediaStreamTrack::document): |
| * Modules/mediastream/MediaStreamTrack.h: |
| (WebCore::MediaStreamTrack::source): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: |
| * platform/mediastream/MediaStreamPrivate.cpp: |
| (WebCore::MediaStreamPrivate::trackStarted): |
| * platform/mediastream/MediaStreamPrivate.h: |
| * platform/mediastream/MediaStreamTrackPrivate.cpp: |
| (WebCore::MediaStreamTrackPrivate::sourceStarted): |
| * platform/mediastream/MediaStreamTrackPrivate.h: |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::start): |
| * platform/mediastream/RealtimeMediaSource.h: |
| |
| 2017-06-15 Jonathan Bedard <jbedard@apple.com> |
| |
| Unreviewed build fix after r218336 |
| |
| * platform/spi/cocoa/PassKitSPI.h: Add missing #ifdefs for Internal builds. |
| |
| 2017-06-15 Antoine Quint <graouts@apple.com> |
| |
| Ensure we only log changes to the ScriptedAnimationController suspended state in debug builds |
| https://bugs.webkit.org/show_bug.cgi?id=173423 |
| |
| Reviewed by Tim Horton. |
| |
| We added logging for when the suspended state of the scripted animation controller would change in |
| webkit.org/b/173326. It was meant to only be enabled in debug builds and we actually did the wrong |
| thing and enabled it in non-debug builds. |
| |
| We also added a setting that wasn't used and that we are removing here. |
| |
| * dom/ScriptedAnimationController.cpp: |
| (WebCore::ScriptedAnimationController::logSuspendCount): |
| * page/Settings.in: |
| * testing/InternalSettings.cpp: |
| (WebCore::InternalSettings::resetToConsistentState): |
| (WebCore::InternalSettings::shouldLogScritedAnimationControllerSuspensionChange): Deleted. |
| (WebCore::InternalSettings::setShouldLogScritedAnimationControllerSuspensionChange): Deleted. |
| * testing/InternalSettings.h: |
| * testing/InternalSettings.idl: |
| |
| 2017-06-15 David Kilzer <ddkilzer@apple.com> |
| |
| Build fix: [iOS] Generate a simulated crash when the WebThread starts in MobileSafari |
| <https://webkit.org/b/173386> |
| <rdar://problem/32776426> |
| |
| * platform/ios/CrashReporterSupportSoftLink.h: |
| * platform/ios/CrashReporterSupportSoftLink.mm: |
| * platform/ios/wak/WebCoreThread.mm: |
| (WebThreadEnable): Log to the console on iOS Simulator. |
| * platform/spi/ios/CrashReporterSupportSPI.h: |
| - CrashReporterSupport.h is not available on iOS Simulator, so |
| restrict to iOS hardware only. |
| |
| 2017-06-15 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r218318. |
| |
| Seems to have caused an 11% PLT regression. Rolling out to |
| confirm. |
| |
| Reverted changeset: |
| |
| "Don't always recalc the style of display: contents elements." |
| https://bugs.webkit.org/show_bug.cgi?id=172753 |
| http://trac.webkit.org/changeset/218318 |
| |
| 2017-06-15 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Using -[WebItemProviderPasteboard setItemProviders:] to swap out item providers before a drop breaks item provider loading |
| https://bugs.webkit.org/show_bug.cgi?id=173338 |
| <rdar://problem/32777720> |
| |
| Reviewed by Tim Horton. |
| |
| Currently, replacing the list of UIItemProviders right before a drop is handled results in |
| WebItemProviderPasteboard failing to load non-"public.content"-conformant items. This is because DragController |
| computes and sends to the UI process a list of UTIs to load (preferredTypeIdentifiers: one type identifier for |
| each item provider in WebItemProviderPasteboard). However, if the list of item providers changes immediately |
| before a drop is performed, WebItemProviderPasteboard will get into an inconsistent state where it has a |
| different number of preferred type identifiers to load than available item providers. This causes |
| WebItemProviderPasteboard to fail when choosing what type identifiers to load from each item provider. |
| |
| To fix this, we instead have the web process propagate a list of supported type identifiers to the UI process, |
| which is a property of only the drop destination rather than both the destination and item providers. When |
| performing a drop, we then use the current item providers on WebItemProviderPasteboard to consult this list of |
| supported type identifiers to resolve our list of preferred type identifiers to load. |
| |
| Globally renames updatePreferredTypeIdentifiers to updateSupportedTypeIdentifiers. |
| |
| Tests: |
| DataInteractionTests.ExternalSourceOverrideDropFileUpload |
| DataInteractionTests.ExternalSourceOverrideDropInsertURL |
| |
| * page/DragController.cpp: |
| (WebCore::DragController::dragEnteredOrUpdated): |
| (WebCore::DragController::updateSupportedTypeIdentifiersForDragHandlingMethod): |
| (WebCore::DragController::updatePreferredTypeIdentifiersForDragHandlingMethod): Deleted. |
| * page/DragController.h: |
| * page/mac/DragControllerMac.mm: |
| (WebCore::DragController::updateSupportedTypeIdentifiersForDragHandlingMethod): |
| (WebCore::DragController::updatePreferredTypeIdentifiersForDragHandlingMethod): Deleted. |
| * platform/DragData.h: |
| * platform/PasteboardStrategy.h: |
| * platform/PlatformPasteboard.h: |
| * platform/ios/AbstractPasteboard.h: |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::updateSupportedTypeIdentifiers): |
| (WebCore::PlatformPasteboard::updatePreferredTypeIdentifiers): Deleted. |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (-[WebItemProviderPasteboard init]): |
| (-[WebItemProviderPasteboard updateSupportedTypeIdentifiers:]): |
| (-[WebItemProviderPasteboard setItemProviders:]): |
| (-[WebItemProviderPasteboard typeIsAppropriateForSupportedTypes:]): |
| (-[WebItemProviderPasteboard typeIdentifierToLoadForRegisteredTypeIdentfiers:]): |
| |
| Add logic to resolve preferred type identifiers from an item providers list of registered type identifiers. |
| This formerly existed on DragData. |
| |
| (-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:synchronousTimeout:]): |
| (-[WebItemProviderPasteboard updatePreferredTypeIdentifiers:]): Deleted. |
| * platform/mac/DragDataMac.mm: |
| |
| Remove preferred type identifier resolution logic from DragData. |
| |
| (WebCore::typeIsAppropriateForSupportedTypes): Deleted. |
| (WebCore::DragData::updatePreferredTypeIdentifiers): Deleted. |
| |
| 2017-06-15 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Replace general inclusion of JSDOMConvert.h with inclusion of individual converter files to reduce unnecessary inclusion |
| https://bugs.webkit.org/show_bug.cgi?id=173392 |
| |
| Reviewed by Tim Horton. |
| |
| Stop including the umbrella header JSDOMConvert.h in every generated bindings and |
| instead only include the specific converter needed. Then, go around and add all the |
| now missing includes that used to be obtained transitively. |
| |
| * Modules/indexeddb/IDBRequest.cpp: |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| * Modules/plugins/QuickTimePluginReplacement.mm: |
| * bindings/js/IDBBindingUtilities.cpp: |
| * bindings/js/JSCSSStyleDeclarationCustom.cpp: |
| * bindings/js/JSCryptoAlgorithmDictionary.cpp: |
| * bindings/js/JSCustomElementInterface.cpp: |
| * bindings/js/JSCustomElementRegistryCustom.cpp: |
| * bindings/js/JSDOMConvertBase.h: |
| * bindings/js/JSDOMConvertInterface.h: |
| * bindings/js/JSDOMConvertRecord.h: |
| * bindings/js/JSDOMConvertSequences.h: |
| * bindings/js/JSDOMConvertUnion.h: |
| * bindings/js/JSDOMGlobalObject.h: |
| * bindings/js/JSDOMWindowCustom.cpp: |
| * bindings/js/JSDOMWindowProperties.cpp: |
| * bindings/js/JSDocumentCustom.cpp: |
| * bindings/js/JSErrorHandler.cpp: |
| * bindings/js/JSEventListener.cpp: |
| * bindings/js/JSHTMLCanvasElementCustom.cpp: |
| * bindings/js/JSHTMLDocumentCustom.cpp: |
| * bindings/js/JSHistoryCustom.cpp: |
| * bindings/js/JSMessageEventCustom.cpp: |
| (WebCore::JSMessageEvent::data): |
| * bindings/js/JSMockContentFilterSettingsCustom.cpp: |
| * bindings/js/JSMutationCallback.cpp: |
| * bindings/js/JSXMLHttpRequestCustom.cpp: |
| (WebCore::JSXMLHttpRequest::retrieveResponse): |
| * bindings/js/ScriptGlobalObject.cpp: |
| * bindings/js/SerializedScriptValue.cpp: |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (AddToIncludesForIDLType): |
| (GetJSCAttributesForAttribute): |
| (GenerateEnumerationHeader): |
| (GenerateEnumerationImplementation): |
| (GenerateEnumerationImplementationContent): |
| (GenerateEnumerationsImplementationContent): |
| (GenerateEnumerationHeaderContent): |
| (GenerateEnumerationsHeaderContent): |
| (GenerateDictionaryHeaderContent): |
| (GenerateDictionariesHeaderContent): |
| (GenerateDictionaryImplementationContent): |
| (GenerateDictionariesImplementationContent): |
| (GenerateHeader): |
| (GeneratePropertiesHashTable): |
| (GenerateOverloadDispatcher): |
| (GenerateImplementation): |
| (GenerateAttributeGetterDefinition): |
| (GenerateSerializerDefinition): |
| (GenerateDictionaryHeader): |
| (JSValueToNative): |
| (NativeToJSValueUsingReferences): |
| (NativeToJSValueUsingPointers): |
| (IsValidContextForNativeToJSValue): |
| (NativeToJSValue): |
| (GenerateConstructorDefinition): |
| (ComputeFunctionSpecial): |
| * bindings/scripts/test/JS/JSMapLike.cpp: |
| * bindings/scripts/test/JS/JSReadOnlyMapLike.cpp: |
| * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactions.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp: |
| * bindings/scripts/test/JS/JSTestCallbackFunction.cpp: |
| * bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.cpp: |
| * bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.cpp: |
| * bindings/scripts/test/JS/JSTestCallbackInterface.cpp: |
| * bindings/scripts/test/JS/JSTestCallbackInterface.h: |
| * bindings/scripts/test/JS/JSTestDOMJIT.cpp: |
| * bindings/scripts/test/JS/JSTestEventConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestEventConstructor.h: |
| * bindings/scripts/test/JS/JSTestEventTarget.cpp: |
| * bindings/scripts/test/JS/JSTestException.cpp: |
| * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: |
| * bindings/scripts/test/JS/JSTestGlobalObject.cpp: |
| * bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp: |
| * bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestInterface.cpp: |
| * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp: |
| * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: |
| * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp: |
| * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp: |
| * bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp: |
| * bindings/scripts/test/JS/JSTestNode.cpp: |
| * bindings/scripts/test/JS/JSTestNode.h: |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| * bindings/scripts/test/JS/JSTestObj.h: |
| * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: |
| * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp: |
| * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp: |
| * bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp: |
| * bindings/scripts/test/JS/JSTestPromiseRejectionEvent.h: |
| * bindings/scripts/test/JS/JSTestSerialization.cpp: |
| * bindings/scripts/test/JS/JSTestSerialization.h: |
| * bindings/scripts/test/JS/JSTestSerializationInherit.cpp: |
| * bindings/scripts/test/JS/JSTestSerializationInherit.h: |
| * bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp: |
| * bindings/scripts/test/JS/JSTestSerializationInheritFinal.h: |
| * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: |
| * bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp: |
| * bindings/scripts/test/JS/JSTestStandaloneDictionary.h: |
| * bindings/scripts/test/JS/JSTestStandaloneEnumeration.h: |
| * bindings/scripts/test/JS/JSTestTypedefs.cpp: |
| * bindings/scripts/test/JS/JSTestVoidCallbackFunction.cpp: |
| * dom/MouseEvent.cpp: |
| * html/HTMLPlugInImageElement.cpp: |
| |
| 2017-06-14 David Kilzer <ddkilzer@apple.com> |
| |
| [iOS] Generate a simulated crash when the WebThread starts in MobileSafari |
| <https://webkit.org/b/173386> |
| <rdar://problem/32776426> |
| |
| Reviewed by Andy Estes. |
| |
| * WebCore.xcodeproj/project.pbxproj: Add new files to project. |
| * platform/ios/CrashReporterSupportSoftLink.h: Add. The using |
| statement is so that we don't have to write |
| WebCore::SimulateCrash() in WebCoreThread.mm since it's |
| functions are not defined inside a WebCore namespace. I also |
| kept the 'pid' argument despite the style checker warning |
| because it matches the internal method definition. |
| * platform/ios/CrashReporterSupportSoftLink.mm: Add. |
| * platform/ios/wak/WebCoreThread.mm: Sort headers. Soft link to |
| CrashReporterSupport.framework. |
| (WebThreadEnable): Generate a simulated crash log if the |
| WebThread ever starts in MobileSafari. |
| * platform/spi/ios/CrashReporterSupportSPI.h: Add. The header |
| isn't safe to include in C++ source, so wrap the import in |
| extern "C" macros. |
| |
| 2017-06-15 Jonathan Bedard <jbedard@apple.com> |
| |
| Build WebKit with High Sierra (Seed 1) |
| https://bugs.webkit.org/show_bug.cgi?id=173371 |
| |
| Reviewed by Andy Estes. |
| |
| * crypto/CommonCryptoUtilities.h: Added ccRSAPSSPadding to CCAsymmetricPading enum. |
| * platform/spi/cocoa/AVKitSPI.h: Declare AVKit SPI used by WebKit in High Sierra. |
| (-[AVTouchBarPlaybackControlsControlling NS_ENUM]): Added AVTouchBarMediaSelectionOptionType |
| SPI used in WebPlaybackControlManager in High Sierra. |
| * platform/spi/cocoa/PassKitSPI.h: Declare PassKit SPI used by WebKit in High Sierra. |
| (NS_ERROR_ENUM): Added PKPaymentErrorCode used in WebPayment in High Sierra. |
| |
| 2017-06-15 Youenn Fablet <youenn@apple.com> |
| |
| RTCPeerConnection returns RTCSessionDescription where RTCSessionDescriptionInit would be appropriate |
| https://bugs.webkit.org/show_bug.cgi?id=173118 |
| <rdar://problem/32746761> |
| |
| Reviewed by Eric Carlson. |
| |
| Test: webrtc/createOfferAnswer.html |
| |
| Making the promise return a RTCSessionDescription::Init instead of a RTCSessionDescription. |
| This aligns with the spec and is more optimal. |
| |
| * Modules/mediastream/PeerConnectionBackend.cpp: |
| (WebCore::PeerConnectionBackend::createOfferSucceeded): |
| (WebCore::PeerConnectionBackend::createAnswerSucceeded): |
| * Modules/mediastream/PeerConnectionBackend.h: |
| * Modules/mediastream/RTCSessionDescription.idl: |
| |
| 2017-06-15 Emilio Cobos Álvarez <ecobos@igalia.com> |
| |
| Don't always recalc the style of display: contents elements. |
| https://bugs.webkit.org/show_bug.cgi?id=172753 |
| |
| Reviewed by Antti Koivisto. |
| |
| No new tests (no functionality change). This only removes an |
| inefficiency. |
| |
| * dom/Element.cpp: |
| (WebCore::Element::existingComputedStyle): |
| * dom/Element.h: |
| * style/RenderTreeUpdater.cpp: |
| (WebCore::RenderTreeUpdater::updateRenderTree): |
| (WebCore::RenderTreeUpdater::updateElementRenderer): |
| * style/StyleTreeResolver.cpp: |
| (WebCore::Style::TreeResolver::resolveElement): |
| (WebCore::Style::TreeResolver::createAnimatedElementUpdate): |
| (WebCore::Style::shouldResolveElement): |
| (WebCore::Style::TreeResolver::resolveComposedTree): |
| |
| 2017-06-14 Antoine Quint <graouts@apple.com> |
| |
| Rebaseline media/modern-media-controls/media-documents |
| https://bugs.webkit.org/show_bug.cgi?id=173394 |
| |
| Reviewed by Dean Jackson. |
| |
| We found two issues related to media documents while rebaselining the dedicated tests. |
| |
| First, we needed to expose the --inline-controls-bar-height CSS variable to <video> |
| elements in media documents that are actually showing an audio UI. Previously we would |
| only expose the variable to <audio> elements. |
| |
| Also, due to webkit.org/b/173387, we would fail to identify certain media documents as |
| video because the videoTracks weren't set yet when the "loadedmetadata" event would be |
| triggered. So now we also look at the videoWidth and videoHeight properties, which should |
| provide accurate information in the "loadedmetadata" event handler. |
| |
| * Modules/modern-media-controls/controls/media-controls.css: |
| (:host(audio), :host(video.media-document.audio), *): |
| (:host(audio), *): Deleted. |
| * Modules/modern-media-controls/media/media-controller.js: |
| (MediaController.prototype.get isAudio): |
| |
| 2017-06-14 Zalan Bujtas <zalan@apple.com> |
| |
| animations-paused-in-background-page.html and animated-svg-image-removed-from-document-paused.html fail after r218284 |
| https://bugs.webkit.org/show_bug.cgi?id=173393 |
| |
| Reviewed by Simon Fraser. |
| |
| Testing cares really about whether the animation has initiated. |
| |
| * platform/graphics/Image.h: |
| (WebCore::Image::animationPending): |
| * testing/Internals.cpp: |
| (WebCore::Internals::isImageAnimating): |
| |
| 2017-06-14 Dean Jackson <dino@apple.com> |
| |
| Restrict filtered painting across cross-origin boundaries with transforms |
| https://bugs.webkit.org/show_bug.cgi?id=173388 |
| <rdar://problem/27362159> |
| |
| Reviewed by Simon Fraser. |
| |
| Make sure all cases of LayerPaintingInfo maintain the security |
| flag. In this case there was only one new place, and since |
| everything is scalar, there was no need for a real copy constructor. |
| |
| Test: http/tests/css/filters-on-iframes-transform.html |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::paintLayerByApplyingTransform): Make sure the cross |
| origin flag is used in the call to paint the layer children. |
| * rendering/RenderLayer.h: Fix some typos. |
| |
| 2017-06-14 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r218285. |
| https://bugs.webkit.org/show_bug.cgi?id=173391 |
| |
| API test fails on iOS (Requested by alexchristensen on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Add SPI for immediate injection of user scripts" |
| https://bugs.webkit.org/show_bug.cgi?id=173342 |
| http://trac.webkit.org/changeset/218285 |
| |
| 2017-06-14 Jer Noble <jer.noble@apple.com> |
| |
| Video flashes black when switching back to a tab https://www.apple.com/homepod/ |
| https://bugs.webkit.org/show_bug.cgi?id=173377 |
| |
| Reviewed by Eric Carlson. |
| |
| Previously, we had set the background color of the video layer to black in order to make the rect |
| occupied by the HTMLMediaElement fully opaque. This worked around a graphics corruption bug. Since |
| then, the code in RenderVideo::foregroundIsKnownToBeOpaqueInRect(...) has been fixed to fully account |
| for whether the HTMLMediaElement has a valid frame to display, making the black layer background |
| unnecessary. |
| |
| Remove all the instances where we were setting the background color of the video layer to black. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): |
| * platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.mm: |
| (WebCore::VideoFullscreenLayerManager::setVideoLayer): |
| (WebCore::VideoFullscreenLayerManager::setVideoFullscreenLayer): |
| |
| 2017-06-14 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r218161. |
| |
| Introduced bot API test failures and Layout Test Failures. |
| |
| Reverted changeset: |
| |
| "[Cocoa] Expand system-ui to include every item in the Core |
| Text cascade list" |
| https://bugs.webkit.org/show_bug.cgi?id=173043 |
| http://trac.webkit.org/changeset/218161 |
| |
| 2017-06-14 Alex Christensen <achristensen@webkit.org> |
| |
| Add SPI for immediate injection of user scripts |
| https://bugs.webkit.org/show_bug.cgi?id=173342 |
| <rdar://problem/29202285> |
| |
| Reviewed by Brady Eidson. |
| |
| The new SPI is WKUserContentController._addUserScriptImmediately. |
| It is covered by new API tests. |
| |
| * page/Frame.cpp: |
| (WebCore::Frame::injectUserScripts): |
| (WebCore::Frame::injectUserScriptImmediately): |
| Move injection functionality to allow us to call it directly from the new SPI. |
| * page/Frame.h: |
| * page/Page.cpp: |
| (WebCore::Page::forEachPage): |
| * page/Page.h: |
| |
| 2017-06-14 Zalan Bujtas <zalan@apple.com> |
| |
| Crash in WebCore::RenderStyle::colorIncludingFallback. |
| https://bugs.webkit.org/show_bug.cgi?id=173347 |
| <rdar://problem/32675317> |
| |
| Reviewed by Chris Dumez. |
| |
| Starting an SVG image animation synchronously might trigger recursive style recalc. |
| We should kick off the animation on a zero timer to reduce callstack complexity. |
| |
| Test: svg/as-image/svg-css-animation.html |
| |
| * loader/cache/CachedImage.cpp: |
| (WebCore::CachedImage::didAddClient): |
| * platform/graphics/Image.cpp: |
| (WebCore::Image::Image): |
| (WebCore::Image::startAnimationAsynchronously): |
| * platform/graphics/Image.h: |
| |
| 2017-06-14 Brady Eidson <beidson@apple.com> |
| |
| WKIconLoadingDelegate never gets asked about the default favicon if touch/touch-precomposed icons are in the <head> |
| <rdar://problem/32614328> and https://bugs.webkit.org/show_bug.cgi?id=173376 |
| |
| Reviewed by Alex Christensen. |
| |
| Covered by new API test |
| |
| * loader/DocumentLoader.cpp: |
| (WebCore::DocumentLoader::startIconLoading): Previously we applied the default favicon if the set of LinkIcons was empty. |
| Now, apply the default favicon if the set of LinkIcons contains no explicit favicon. |
| |
| 2017-06-14 Jer Noble <jer.noble@apple.com> |
| |
| Flaky Test: media/media-source/media-source-unnecessary-seek-seeked.html |
| https://bugs.webkit.org/show_bug.cgi?id=173344 |
| |
| Reviewed by Eric Carlson. |
| |
| Separate the concept of "the page has asked us to seek" from "we have asked the |
| media player to seek". When the media engine tells us its ready state has changed |
| after the page has requested a seek, but before the media element has asked its |
| player to perform the seek, we were previously firing a seeked event. Now we'll |
| check this new ivar and see that we aren't expecting a seek to finish yet. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::HTMLMediaElement): |
| (WebCore::HTMLMediaElement::setReadyState): |
| (WebCore::HTMLMediaElement::finishSeek): |
| (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): |
| * html/HTMLMediaElement.h: |
| |
| 2017-06-14 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r218157. |
| |
| This patch caused multiple API failures on iOS Simulator. |
| |
| Reverted changeset: |
| |
| "@font-face rules with invalid primary fonts never download |
| their secondary fonts" |
| https://bugs.webkit.org/show_bug.cgi?id=173138 |
| http://trac.webkit.org/changeset/218157 |
| |
| 2017-06-14 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (r217997): mint.com header renders incorrectly when initially loaded |
| https://bugs.webkit.org/show_bug.cgi?id=173302 |
| <rdar://problem/32731747> |
| |
| Reviewed by Darin Adler. |
| |
| r217997 updated ImplicitAnimation::reset() to not call updateStateMachine(AnimationStateInput::RestartAnimation) |
| if the compositeAnimation is suspended. If the compositeAnimation is suspended, we would call |
| updateStateMachine(AnimationStateInput::AnimationStateInput::PlayStatePaused), which was expected to be a no-op. |
| This was needed because otherwise, changing the style of the animated element would restart the animation |
| even though it was supposed to be suspended. One thing I did not realize is that calling |
| updateStateMachine(AnimationStateInput::AnimationStateInput::PlayStatePaused) on an animation that is already |
| in PausedNew state, will cause it to move to PausedWaitResponse state. This is an issue because upon resuming |
| we would call AnimationBase::updatePlayState(AnimPlayStatePlaying) which would return early because |
| AnimationBase::paused() would return false. To address the issue, we no longer call updateStateMachine(PlayStatePaused) |
| in ImplicitAnimation::reset() when the compositeAnimation is suspended, so that the animation stays in |
| PausedNew state until we resume. When we resume, AnimationBase::paused() returns false and we actually resume |
| the animation. |
| |
| Tests: |
| fast/animation/css-animation-resuming-when-visible-with-style-change.html |
| fast/animation/css-animation-resuming-when-visible-with-style-change2.html |
| |
| * page/animation/ImplicitAnimation.cpp: |
| (WebCore::ImplicitAnimation::reset): |
| |
| 2017-06-14 Miguel Gomez <magomez@igalia.com> |
| |
| REGRESSION(r216901): ImageDecoders: rendering of large images is broken since r216901 |
| https://bugs.webkit.org/show_bug.cgi?id=172502 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| When using GTK and WPE image decoders, the decoded frames are stored inside a Vector of |
| ImageFrames inside the decoders. These ImageFrames have and ImageBackingStore with the |
| pixels. When a NativeImagePtr is requested, a cairo surface is created from the data |
| in those ImageBackingStores, but the data keeps being owned by the backing stores. Due |
| to this, if the decoder that created the image gets destroyed, the backing stores for |
| the decoded frames get destroyed as well, causing the cairo surfaces that were using |
| that data to contain garbage (and potentially cause a crash). |
| |
| To fix this, we change ImageBackingStore so the pixels are stored in a SharedBuffer. The |
| buffer will be reffed everytime a cairo surface is created with it, and the cairo surfaces |
| will unref the buffer when they are destroyed. This way, the pixel data won't be freed |
| while there are cairo surfaces using it. |
| |
| No new tests, no behaviour change. |
| |
| * platform/graphics/ImageBackingStore.h: |
| (WebCore::ImageBackingStore::setSize): |
| (WebCore::ImageBackingStore::ImageBackingStore): |
| * platform/image-decoders/cairo/ImageBackingStoreCairo.cpp: |
| (WebCore::ImageBackingStore::image): |
| |
| 2017-06-14 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GStreamer] Align GstBus signal watch priorities with RunLoop dispatches |
| https://bugs.webkit.org/show_bug.cgi?id=173348 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| When adding GstBus signal watches, use the gst_bus_add_signal_watch_full() |
| function to also specify the GLib priority that's used for the underlying |
| GSource object. |
| |
| RunLoopSourcePriority::RunLoopDispatcher should be a good priority value |
| to use here, matching the RunLoop::dispatch() priority that's e.g. used |
| in the MainThreadNotifier class. |
| |
| * platform/audio/gstreamer/AudioDestinationGStreamer.cpp: |
| (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): |
| * platform/graphics/gstreamer/mse/AppendPipeline.cpp: |
| (WebCore::AppendPipeline::AppendPipeline): |
| |
| 2017-06-14 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream iOS] Back camera view rendered upside down when in portrait mode |
| https://bugs.webkit.org/show_bug.cgi?id=173346 |
| <rdar://problem/32713675> |
| |
| Reviewed by Youenn Fablet. |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::computeSampleRotation): Use different rotations for front and |
| back cameras when device is in portrait orientation. |
| |
| 2017-06-13 Chris Dumez <cdumez@apple.com> |
| |
| Event handlers should not be called in frameless documents |
| https://bugs.webkit.org/show_bug.cgi?id=173233 |
| |
| Reviewed by Sam Weinig. |
| |
| As per the HTML specification [1], for event handlers on elements, we should use the |
| element's document to check if scripting is disabled [2]. Scripting is considered to |
| be disabled if the document has no browsing context (i.e. a frame in WebKit terms). |
| |
| In JSLazyEventListener::initializeJSFunction(), instead of using the element's |
| document to do the checks, we would use the script execution context. In most cases, |
| a node's document and its script execution context are the same so this is not an |
| issue. However, if the node's document is a document created via JS, its nodes' |
| script execution context will be the document's context document (i.e the one that |
| created the document, see implementation of Node::scriptExecutionContext()). In those |
| cases, using the wrong document is an issue because the document's context document |
| (aka script execution context) may allow scripting but we still do not want to call |
| the event handler because its document is frameless. |
| |
| This impacts documents created by JS, using the following APIs: |
| - DOMParser.parseFromHTML |
| - new Document() |
| - DOMImplementation.createDocument / createHTMLDocument |
| - XHRs whose responseType is Document. |
| |
| [1] https://html.spec.whatwg.org/multipage/webappapis.html#getting-the-current-value-of-the-event-handler (step 1.1.) |
| [2] https://html.spec.whatwg.org/multipage/webappapis.html#concept-n-noscript |
| |
| Tests: fast/events/event-handler-detached-document-dispatchEvent.html |
| fast/events/event-handler-detached-document.html |
| |
| * bindings/js/JSLazyEventListener.cpp: |
| (WebCore::JSLazyEventListener::initializeJSFunction): |
| |
| 2017-06-13 Antoine Quint <graouts@apple.com> |
| |
| Rebaseline media/modern-media-controls/placard-support |
| https://bugs.webkit.org/show_bug.cgi?id=173340 |
| |
| Reviewed by Dean Jackson. |
| |
| We make a source change to use a "placard" getter/setter to show or hide a placard, making it |
| more convenient to test whether a placard has been set. |
| |
| * Modules/modern-media-controls/controls/inline-media-controls.js: |
| (InlineMediaControls.prototype.get placard): |
| (InlineMediaControls.prototype.set placard): |
| (InlineMediaControls.prototype.showPlacard): Deleted. |
| (InlineMediaControls.prototype.hidePlacard): Deleted. |
| * Modules/modern-media-controls/media/placard-support.js: |
| (PlacardSupport.prototype._updatePlacard): |
| (PlacardSupport): |
| |
| 2017-06-11 Antoine Quint <graouts@apple.com> |
| |
| Rebaseline media/modern-media-controls/fullscreen-support |
| https://bugs.webkit.org/show_bug.cgi?id=173199 |
| |
| Reviewed by Simon Fraser. |
| |
| Test: media/modern-media-controls/fullscreen-support/fullscreen-support-press.html |
| |
| We no longer need to track the "error" event for FullscreenSupport since we don't actually |
| enable or disable the fullscreen button when an error happens, instead the media controls |
| code will simply not present it since we'll be showing a placard instead. |
| |
| * Modules/modern-media-controls/media/fullscreen-support.js: |
| (FullscreenSupport.prototype.get mediaEvents): |
| |
| 2017-06-13 Matt Rajca <mrajca@apple.com> |
| |
| WebsitePolicies: let clients select specific autoplay quirks |
| https://bugs.webkit.org/show_bug.cgi?id=173343 |
| |
| Reviewed by Alex Christensen. |
| |
| Tests: Updated API tests accordingly to use new values. |
| |
| Replace the 'allowsAutoplayQuirks' bool with an OptionSet so clients can selectively |
| pick auto-play quirks. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::processingUserGestureForMedia): |
| * html/HTMLMediaElement.cpp: |
| (WebCore::needsAutoplayPlayPauseEventsQuirk): |
| * loader/DocumentLoader.h: |
| (WebCore::DocumentLoader::allowedAutoplayQuirks): |
| (WebCore::DocumentLoader::setAllowedAutoplayQuirks): |
| (WebCore::DocumentLoader::allowsAutoplayQuirks): Deleted. |
| (WebCore::DocumentLoader::setAllowsAutoplayQuirks): Deleted. |
| |
| 2017-06-13 Zalan Bujtas <zalan@apple.com> |
| |
| Synchronous media query callbacks on nested frames could produced a detached FrameView. |
| https://bugs.webkit.org/show_bug.cgi?id=173330 |
| |
| Reviewed by Simon Fraser. |
| |
| This patch fixes the crash when the nested frame's media query callback triggers navigation on the mainframe. |
| webkit.org/b/173329 is to track whether we should allow synchronous callback firing from FrameView::layout(). |
| |
| Covered by show-modal-dialog-during-execCommand.html. |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::layout): |
| |
| 2017-06-13 Chris Fleizach <cfleizach@apple.com> |
| |
| AX[macOS]: Expose Inline property as an accessibility attribute |
| https://bugs.webkit.org/show_bug.cgi?id=173131 |
| <rdar://problem/32667686> |
| |
| Reviewed by Joanmarie Diggs. |
| |
| Expose whether a renderer is inline so that VoiceOver can make better use of that data when deciding what to output. |
| |
| Test: accessibility/mac/inline-text-attribute.html |
| |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: |
| (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): |
| |
| 2017-06-13 Jon Davis <jond@apple.com> |
| |
| Update Subresource Integrity status to Supported In Preview |
| https://bugs.webkit.org/show_bug.cgi?id=173324 |
| |
| Reviewed by Sam Weinig. |
| |
| * features.json: |
| |
| 2017-06-13 Antoine Quint <graouts@apple.com> |
| |
| Add logging for layout tests when rAF callbacks get suspended and resumed |
| https://bugs.webkit.org/show_bug.cgi?id=173326 |
| |
| Reviewed by Simon Fraser. |
| |
| In order to help diagnose webkit.org/b/168409 we log the ScriptedAnimationController |
| suspend count when it changes and log the backtrace so that we may understand why it |
| fails to be set back to 0 when some modern-media-controls tests run. |
| |
| * dom/ScriptedAnimationController.cpp: |
| (WebCore::ScriptedAnimationController::suspend): |
| (WebCore::ScriptedAnimationController::resume): |
| (WebCore::ScriptedAnimationController::logSuspendCount): |
| * dom/ScriptedAnimationController.h: |
| * page/Settings.in: |
| * testing/InternalSettings.cpp: |
| (WebCore::InternalSettings::resetToConsistentState): |
| (WebCore::InternalSettings::shouldLogScritedAnimationControllerSuspensionChange): |
| (WebCore::InternalSettings::setShouldLogScritedAnimationControllerSuspensionChange): |
| * testing/InternalSettings.h: |
| * testing/InternalSettings.idl: |
| |
| 2017-06-13 Jer Noble <jer.noble@apple.com> |
| |
| Crash when MSE backed media element changes src/srcObject during PiP |
| https://bugs.webkit.org/show_bug.cgi?id=173288 |
| |
| Reviewed by Alex Christensen. |
| |
| Tear down the MediaPlayerPrivateMediaSourceAVFObjC's layers fully whe the player |
| is destroyed, which includes removing the player's AVSampleBufferDisplayLayer from |
| the HTMLMediaElement's fullscreen layer. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::~MediaPlayerPrivateMediaSourceAVFObjC): |
| |
| 2017-06-13 Daniel Bates <dabates@apple.com> |
| |
| Implement W3C Secure Contexts Draft Specification |
| https://bugs.webkit.org/show_bug.cgi?id=158121 |
| <rdar://problem/26012994> |
| |
| Reviewed by Brent Fulgham. |
| |
| Part 4 |
| |
| Adds runtime enabled feature flag, isSecureContextAttributeEnabled, to toggle exposing |
| the global object property isSecureContext (defaults: true - expose the property). |
| |
| Test: security/isSecureContext-disabled.html |
| |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::setIsSecureContextAttributeEnabled): |
| (WebCore::RuntimeEnabledFeatures::isSecureContextAttributeEnabled): |
| * page/WindowOrWorkerGlobalScope.idl: |
| |
| 2017-06-13 Jer Noble <jer.noble@apple.com> |
| |
| Protect lifetime of media element during HTMLMediaElement::notifyAboutPlaying() |
| https://bugs.webkit.org/show_bug.cgi?id=173320 |
| <rdar://problem/32590276> |
| |
| Reviewed by Brent Fulgham. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::notifyAboutPlaying): |
| |
| 2017-06-13 Youenn Fablet <youenn@apple.com> |
| |
| getReceivers() should return transceivers that have only an active receiver |
| https://bugs.webkit.org/show_bug.cgi?id=173313 |
| |
| Reviewed by Alex Christensen. |
| |
| Test: webrtc/video-receivers.html |
| |
| Creating transceivers for receivers created from an offer. |
| Setting these as recvonly. |
| |
| * Modules/mediastream/RTCRtpTransceiver.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::LibWebRTCPeerConnectionBackend::videoReceiver): |
| (WebCore::LibWebRTCPeerConnectionBackend::audioReceiver): |
| |
| 2017-06-13 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Unable to paste text that was copied from a page into the universal search field |
| https://bugs.webkit.org/show_bug.cgi?id=173293 |
| <rdar://problem/32440918> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Vend "public.utf8-plain-text" and "public.utf16-plain-text" as additional representations on the pasteboard when |
| copying both rich and plain web content in PlatformPasteboardIOS.mm. This is because UITextView no longer |
| supports pasting "public.text" as text in iOS 11. |
| |
| Tests: |
| UIPasteboardTests.CopyPlainTextWritesConcreteTypes |
| UIPasteboardTests.CopyRichTextWritesConcreteTypes |
| |
| * platform/ios/PasteboardIOS.mm: |
| (WebCore::Pasteboard::writePlainText): |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::write): |
| |
| 2017-06-13 Sam Weinig <sam@webkit.org> |
| |
| Rename JSDOMWindowShell to JSDOMWindowProxy to match the HTML5 spec. |
| https://bugs.webkit.org/show_bug.cgi?id=80733 |
| |
| Reviewed by Chris Dumez. |
| |
| Goodbye dear shell. |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/DOMWrapperWorld.cpp: |
| (WebCore::DOMWrapperWorld::~DOMWrapperWorld): |
| (WebCore::DOMWrapperWorld::clearWrappers): |
| * bindings/js/DOMWrapperWorld.h: |
| (WebCore::DOMWrapperWorld::didCreateWindowProxy): |
| (WebCore::DOMWrapperWorld::didDestroyWindowProxy): |
| (WebCore::DOMWrapperWorld::didCreateWindowShell): Deleted. |
| (WebCore::DOMWrapperWorld::didDestroyWindowShell): Deleted. |
| * bindings/js/JSBindingsAllInOne.cpp: |
| * bindings/js/JSDOMWindowBase.cpp: |
| (WebCore::JSDOMWindowBase::JSDOMWindowBase): |
| (WebCore::JSDOMWindowBase::finishCreation): |
| (WebCore::JSDOMWindowBase::willRemoveFromWindowProxy): |
| (WebCore::JSDOMWindowBase::proxy): |
| (WebCore::toJSDOMWindow): |
| (WebCore::JSDOMWindowBase::willRemoveFromWindowShell): Deleted. |
| (WebCore::JSDOMWindowBase::shell): Deleted. |
| * bindings/js/JSDOMWindowBase.h: |
| (WebCore::toJS): |
| (WebCore::toJSDOMWindow): |
| * bindings/js/JSDOMWindowCustom.cpp: |
| (WebCore::JSDOMWindow::toWrapped): |
| * bindings/js/JSDOMWindowCustom.h: |
| * bindings/js/JSDOMWindowProperties.h: |
| (WebCore::JSDOMWindowProperties::JSDOMWindowProperties): |
| * bindings/js/JSDOMWindowProxy.cpp: Copied from WebCore/bindings/js/JSDOMWindowShell.cpp. |
| (WebCore::JSDOMWindowProxy::JSDOMWindowProxy): |
| (WebCore::JSDOMWindowProxy::finishCreation): |
| (WebCore::JSDOMWindowProxy::destroy): |
| (WebCore::JSDOMWindowProxy::setWindow): |
| (WebCore::JSDOMWindowProxy::wrapped): |
| (WebCore::JSDOMWindowProxy::toWrapped): |
| (WebCore::toJS): |
| (WebCore::toJSDOMWindowProxy): |
| (WebCore::JSDOMWindowShell::JSDOMWindowShell): Deleted. |
| (WebCore::JSDOMWindowShell::finishCreation): Deleted. |
| (WebCore::JSDOMWindowShell::destroy): Deleted. |
| (WebCore::JSDOMWindowShell::setWindow): Deleted. |
| (WebCore::JSDOMWindowShell::wrapped): Deleted. |
| (WebCore::JSDOMWindowShell::toWrapped): Deleted. |
| (WebCore::toJSDOMWindowShell): Deleted. |
| * bindings/js/JSDOMWindowProxy.h: Copied from WebCore/bindings/js/JSDOMWindowShell.h. |
| (WebCore::JSDOMWindowProxy::create): |
| (WebCore::toJSDOMWindowProxy): |
| (WebCore::JSDOMWindowShell::window): Deleted. |
| (WebCore::JSDOMWindowShell::create): Deleted. |
| (WebCore::JSDOMWindowShell::createStructure): Deleted. |
| (WebCore::JSDOMWindowShell::world): Deleted. |
| (WebCore::toJSDOMWindowShell): Deleted. |
| * bindings/js/JSDOMWindowShell.cpp: Removed. |
| * bindings/js/JSDOMWindowShell.h: Removed. |
| * bindings/js/JSEventTargetCustom.cpp: |
| (WebCore::JSEventTarget::toWrapped): |
| * bindings/js/JSHTMLDocumentCustom.cpp: |
| (WebCore::JSHTMLDocument::open): |
| * bindings/js/ScheduledAction.cpp: |
| (WebCore::ScheduledAction::execute): |
| * bindings/js/ScriptCachedFrameData.cpp: |
| (WebCore::ScriptCachedFrameData::ScriptCachedFrameData): |
| (WebCore::ScriptCachedFrameData::restore): |
| * bindings/js/ScriptController.cpp: |
| (WebCore::collectGarbageAfterWindowProxyDestruction): |
| (WebCore::ScriptController::~ScriptController): |
| (WebCore::ScriptController::destroyWindowProxy): |
| (WebCore::ScriptController::createWindowProxy): |
| (WebCore::ScriptController::evaluateInWorld): |
| (WebCore::ScriptController::loadModuleScriptInWorld): |
| (WebCore::ScriptController::linkAndEvaluateModuleScriptInWorld): |
| (WebCore::ScriptController::evaluateModule): |
| (WebCore::ScriptController::windowProxies): |
| (WebCore::ScriptController::clearWindowProxiesNotMatchingDOMWindow): |
| (WebCore::ScriptController::setDOMWindowForWindowProxy): |
| (WebCore::ScriptController::initScript): |
| (WebCore::ScriptController::setupModuleScriptHandlers): |
| (WebCore::ScriptController::eventHandlerPosition): |
| (WebCore::ScriptController::enableEval): |
| (WebCore::ScriptController::disableEval): |
| (WebCore::ScriptController::canAccessFromCurrentOrigin): |
| (WebCore::ScriptController::attachDebugger): |
| (WebCore::ScriptController::updateDocument): |
| (WebCore::ScriptController::cacheableBindingRootObject): |
| (WebCore::ScriptController::bindingRootObject): |
| (WebCore::ScriptController::createRootObject): |
| (WebCore::ScriptController::collectIsolatedContexts): |
| (WebCore::ScriptController::windowScriptNPObject): |
| (WebCore::ScriptController::jsObjectForPluginElement): |
| (WebCore::ScriptController::cleanupScriptObjectsForPlugin): |
| (WebCore::ScriptController::clearScriptObjects): |
| (WebCore::ScriptController::executeIfJavaScriptURL): |
| (WebCore::collectGarbageAfterWindowShellDestruction): Deleted. |
| (WebCore::ScriptController::destroyWindowShell): Deleted. |
| (WebCore::ScriptController::createWindowShell): Deleted. |
| (WebCore::ScriptController::windowShells): Deleted. |
| (WebCore::ScriptController::clearWindowShellsNotMatchingDOMWindow): Deleted. |
| (WebCore::ScriptController::setDOMWindowForWindowShell): Deleted. |
| * bindings/js/ScriptController.h: |
| (WebCore::ScriptController::windowProxy): |
| (WebCore::ScriptController::existingWindowProxy): |
| (WebCore::ScriptController::globalObject): |
| (WebCore::ScriptController::windowShell): Deleted. |
| (WebCore::ScriptController::existingWindowShell): Deleted. |
| * bindings/js/ScriptControllerMac.mm: |
| (WebCore::ScriptController::windowScriptObject): |
| * bindings/js/ScriptState.cpp: |
| (WebCore::mainWorldExecState): |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateHeader): |
| (GenerateOverloadDispatcher): |
| (GenerateImplementation): |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| (WebCore::jsTestObjPrototypeFunctionOverloadedMethodOverloadDispatcher): |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::clear): |
| (WebCore::FrameLoader::dispatchDidClearWindowObjectInWorld): |
| * page/Frame.cpp: |
| * page/csp/ContentSecurityPolicy.cpp: |
| (WebCore::ContentSecurityPolicy::didCreateWindowProxy): |
| (WebCore::ContentSecurityPolicy::didCreateWindowShell): Deleted. |
| * page/csp/ContentSecurityPolicy.h: |
| |
| 2017-06-13 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, fix typo in variable introduced in r218108. |
| |
| * page/cocoa/MemoryReleaseCocoa.mm: |
| (WebCore::platformReleaseMemory): |
| (WebCore::registerSQLiteMemoryPressureHandler): |
| |
| 2017-06-13 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| AX: [ATK] Implement missing AtkRelation types |
| https://bugs.webkit.org/show_bug.cgi?id=155494 |
| |
| Reviewed by Darin Adler. |
| |
| Add methods for getting the element(s) which reference a particular element via an |
| ARIA attribute. Then use those methods to identify and expose the expected reverse/ |
| reciprocal AtkRelationType and targets. Also add ATK support for aria-owns. |
| |
| Use SpaceSplitString in AccessibilityObject::elementsFromAttribute() so that unexpected |
| whitespace characters in an attribute's list of ids does not prevent the desired element |
| from being found. |
| |
| Lastly, change the return type of AccessibilityObject::identifierAttribute() from a String |
| to a const AtomicString& for better efficiency. |
| |
| Tests: accessibility/aria-owns.html |
| accessibility/gtk/relation-types.html |
| |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::identifierAttribute): |
| (WebCore::AccessibilityObject::elementsFromAttribute): |
| (WebCore::AccessibilityObject::ariaElementsReferencedByAttribute): |
| (WebCore::AccessibilityObject::ariaControlsReferencingElements): |
| (WebCore::AccessibilityObject::ariaDescribedByReferencingElements): |
| (WebCore::AccessibilityObject::ariaFlowToReferencingElements): |
| (WebCore::AccessibilityObject::ariaLabelledByReferencingElements): |
| (WebCore::AccessibilityObject::ariaOwnsReferencingElements): |
| * accessibility/AccessibilityObject.h: |
| * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: |
| (setAtkRelationSetFromCoreObject): |
| |
| 2017-06-13 Gwang Yoon Hwang <yoon@igalia.com> |
| |
| [GStreamerGL] Release GstVideoFrame when there is a flush event from the pipeline |
| https://bugs.webkit.org/show_bug.cgi?id=172427 |
| |
| Reviewed by Žan Doberšek. |
| |
| Without GStreamerGL MediaPlayerPrivateGStreamer copies the video frame from |
| the decoder's buffer to the texture to display a video. So it makes possible |
| to release the GstSample when it got a flush start event to free the decoder's |
| buffer to the decoder without side-effects. |
| |
| Unlike the traditional way to render video, GStreamer GL does not copy a |
| texture from the decoder to the texture mapper's buffer to draw video frame. |
| It uses same GstMemory with the gst pipeline to manage the texture to prevent |
| copy operations. So without releasing a layer buffer, there is no way to |
| return GstMemory to the buffer pool. |
| |
| This patch releases current GstSample when the player got the flush start |
| event. It destructs the platform layer buffer any time there is a flush start |
| event. |
| |
| However, it is not enough to release the GstMemory. The platform layer proxy |
| should copy current buffer to show it to the compositor instead of a blank |
| frame. It prevents flickerings until getting a new frame after handling flush |
| events. |
| |
| No new tests, there shouldn't be behavior changes |
| |
| * platform/graphics/cairo/ImageBufferCairo.cpp: |
| (WebCore::ImageBufferData::swapBuffersIfNeeded): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor): |
| (WebCore::MediaPlayerPrivateGStreamerBase::flushCurrentBuffer): |
| (WebCore::MediaPlayerPrivateGStreamerBase::createGLAppSink): Adds |
| handler for the flush event. |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: |
| * platform/graphics/texmap/BitmapTextureGL.cpp: |
| (WebCore::BitmapTextureGL::BitmapTextureGL): |
| (WebCore::BitmapTextureGL::copyFromExternalTexture): Copies |
| a external texture to the managed texture. |
| * platform/graphics/texmap/BitmapTextureGL.h: |
| (WebCore::BitmapTextureGL::create): |
| To create the managed texture with specific format, this patch adds a |
| optional parameter for a texture format. |
| * platform/graphics/texmap/TextureMapper.h: |
| * platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp: |
| (WebCore::TextureMapperGC3DPlatformLayer::swapBuffersIfNeeded): |
| * platform/graphics/texmap/TextureMapperGL.cpp: |
| (WebCore::TextureMapperGL::createTexture): |
| * platform/graphics/texmap/TextureMapperGL.h: |
| * platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp: |
| (WebCore::TextureMapperPlatformLayerBuffer::TextureMapperPlatformLayerBuffer): |
| (WebCore::TextureMapperPlatformLayerBuffer::clone): |
| * platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h: |
| * platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp: |
| (WebCore::TextureMapperPlatformLayerProxy::appendToUnusedBuffers): Added |
| to schedule releasing unused buffers in main thread. |
| (WebCore::TextureMapperPlatformLayerProxy::swapBuffer): |
| (WebCore::TextureMapperPlatformLayerProxy::dropCurrentBufferWhilePreservingTexture): |
| * platform/graphics/texmap/TextureMapperPlatformLayerProxy.h: |
| |
| 2017-06-13 Youenn Fablet <youenn@apple.com> |
| |
| Filter SDP from ICE candidates in case of local ICE candidate filtering |
| https://bugs.webkit.org/show_bug.cgi?id=173120 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by updated test. |
| |
| Adding filtering of local description in getters and createOffer promise. |
| |
| * Modules/mediastream/MediaEndpointSessionDescription.cpp: |
| (WebCore::MediaEndpointSessionDescription::toRTCSessionDescription): |
| * Modules/mediastream/PeerConnectionBackend.cpp: |
| (WebCore::PeerConnectionBackend::createOfferSucceeded): |
| (WebCore::filterICECandidate): |
| (WebCore::PeerConnectionBackend::filterSDP): |
| * Modules/mediastream/PeerConnectionBackend.h: |
| * Modules/mediastream/RTCSessionDescription.h: |
| (WebCore::RTCSessionDescription::setSdp): |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::LibWebRTCPeerConnectionBackend::currentLocalDescription): |
| (WebCore::LibWebRTCPeerConnectionBackend::pendingLocalDescription): |
| (WebCore::LibWebRTCPeerConnectionBackend::localDescription): |
| |
| 2017-06-12 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [iOS] [macOS] Stop soft-linking Core Text function in iOS 11 and macOS High Sierra |
| https://bugs.webkit.org/show_bug.cgi?id=173289 |
| |
| Reviewed by Lucas Forschler. |
| |
| No new tests because there is no behavior change. |
| |
| * platform/graphics/ios/FontCacheIOS.mm: |
| (WebCore::platformFontWithFamilySpecialCase): |
| * platform/graphics/mac/FontCacheMac.mm: |
| (WebCore::platformFontWithFamilySpecialCase): |
| |
| 2017-06-12 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [Cocoa] Expand system-ui to include every item in the Core Text cascade list |
| https://bugs.webkit.org/show_bug.cgi?id=173043 |
| <rdar://problem/21125708> |
| |
| Reviewed by Simon Fraser. |
| |
| The concept of the system font on Cocoa platforms represents the entire Core Text cascade list. |
| However, previously, WebKit only represented system-ui by pulling out the first item in the Core |
| Text cascade list. Instead, we should make all text rendered with "system-ui" match what the |
| platform would natively render. |
| |
| Previously, we walked through the strings in the font-family property and looked them up one by |
| one. However, now we want to abstract this idea of a font family to possibly hold a |
| CTFontDescriptorRef instead of a string. This way, we expand a font-family list of ["fontA", |
| "system-ui", "fontB"] to ["fontA", ... a bunch of CTFontDescriptorRefs ..., "FontB"]. We can |
| then modify the consumer of this object to have two codepaths: the old string-based codepath, |
| and a new, platform-specific codepath which simply embeds the CTFontDesriptorRefs inside a Font |
| object. |
| |
| We don't want to simply pull out the family name from each item in the Core Text fallback list |
| because that is a lossy translation. There is more information in these font descriptors which |
| cannot be represented by CSS. Therefore, we must keep the descriptors alive and add the new |
| codepath for them. |
| |
| We also don't want to run the CSS font matching algorithm on each member of the Core Text |
| fallback list because it may yield different results from Core Text's font matching algorithm. |
| Our goal is to draw text as closely as possible to the system APIs. If we ran it, we may find |
| a font which is closer to the requested traits, but it would look out of place on the system. |
| |
| Tests: fast/text/system-font-fallback-emoji.html |
| fast/text/system-font-fallback.html |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * page/MemoryRelease.cpp: |
| (WebCore::releaseNoncriticalMemory): |
| * platform/graphics/FontCascadeFonts.cpp: |
| (WebCore::realizeNextFallback): The consumer of our new data type. Now uses WTF::visit(). |
| (WebCore::FontCascadeFonts::realizeFallbackRangesAt): Now that the number of items to test |
| against the current character is larger than the number of strings in the font-family list, |
| we need to update the existing code to use the correct value. |
| * platform/graphics/FontDescription.cpp: Default implementation for non-Cocoa ports. |
| (WebCore::FontDescription::invalidateCaches): |
| (WebCore::FontCascadeDescription::effectiveFamilyCount): |
| (WebCore::FontCascadeDescription::effectiveFamilyAt): |
| * platform/graphics/FontDescription.h: Our new data type is a Variant of AtomicString and a |
| platform-specific class. Cocoa uses a class that holds a CTFontDescriptorRef and other ports |
| use an empty non-constructable class. |
| * platform/graphics/FontFamilySpecificationNull.h: Added. The empty non-constructable |
| class. |
| (WebCore::FontFamilySpecificationNull::fontRanges): |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::FontCache::platformInit): Changing the system language will change the system font |
| fallback list, so we need to listen to this notification. This also matters for |
| FontCache::systemFallbackForCharacters(), so we should build off the same callback we are |
| already using for font installation. |
| (WebCore::invalidateFontCache): |
| * platform/graphics/cocoa/FontDescriptionCocoa.cpp: Added. The platform-specific creation of |
| our CTFontDescriptorRefs. We hold them cached in a SystemFontDatabase. |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::CoreTextCascadeListParameters): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::isHashTableDeletedValue): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::operator==): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::hash): |
| (WebCore::SystemFontDatabase::singleton): |
| (WebCore::SystemFontDatabase::systemFontCascadeList): |
| (WebCore::SystemFontDatabase::clear): |
| (WebCore::SystemFontDatabase::SystemFontDatabase): |
| (WebCore::SystemFontDatabase::applyWeightAndItalics): |
| (WebCore::SystemFontDatabase::removeCascadeList): |
| (WebCore::SystemFontDatabase::computeCascadeList): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParametersHash::hash): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParametersHash::equal): |
| (WebCore::isSystemFontString): |
| (WebCore::systemFontParameters): |
| (WebCore::FontDescription::invalidateCaches): |
| (WebCore::FontCascadeDescription::effectiveFamilyCount): We don't store the result of this |
| because it would probably be a bad idea to increase the size of every single FontCascade just |
| in case it might ask for the system font. Most fonts never mention system-ui. Because it's so |
| rare, we can just recalculate the result of this as necessary. This shouldn't be slow because |
| the results are cached. |
| (WebCore::FontCascadeDescription::effectiveFamilyAt): |
| * platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp: Added. |
| (WebCore::FontFamilySpecificationCoreText::fontRanges): Create a FontRanges from a |
| CTFontDescriptorRef. |
| * platform/graphics/cocoa/FontFamilySpecificationCoreText.h: Added. |
| (WebCore::FontFamilySpecificationCoreText::FontFamilySpecificationCoreText): |
| * platform/graphics/ios/FontCacheIOS.mm: Delete the old handling for system-ui. |
| (WebCore::platformFontWithFamilySpecialCase): |
| (WebCore::baseSystemFontDescriptor): Deleted. |
| (WebCore::systemFontModificationAttributes): Deleted. |
| (WebCore::systemFontDescriptor): Deleted. |
| * platform/graphics/mac/FontCacheMac.mm: Ditto. |
| (WebCore::platformFontWithFamilySpecialCase): |
| (WebCore::toNSFontWeight): Deleted. |
| |
| 2017-06-12 Daewoong Jang <daewoong.jang@navercorp.com> |
| |
| Remove WebCore::unloadModule and related data types |
| https://bugs.webkit.org/show_bug.cgi?id=173231 |
| |
| Reviewed by Darin Adler. |
| |
| * platform/FileSystem.h: |
| (WebCore::PlatformModuleVersion::PlatformModuleVersion): Deleted. |
| * platform/glib/FileSystemGlib.cpp: |
| (WebCore::unloadModule): Deleted. |
| * platform/win/FileSystemWin.cpp: |
| (WebCore::unloadModule): Deleted. |
| |
| 2017-06-12 Jer Noble <jer.noble@apple.com> |
| |
| Unreviewed build fix; fix a misspelling in CoreMediaSoftLink.{h,cpp}. |
| |
| * platform/cf/CoreMediaSoftLink.cpp: |
| * platform/cf/CoreMediaSoftLink.h: |
| |
| 2017-06-12 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| @font-face rules with invalid primary fonts never download their secondary fonts |
| https://bugs.webkit.org/show_bug.cgi?id=173138 |
| <rdar://problem/32554450> |
| |
| Reviewed by Simon Fraser. |
| |
| We have logic in CSSFontAccessor::font() which disallows downloading a CSSFontFace if that CSSFontFace |
| is already in the Succeeded state. However, it was possible for a succeeded CSSFontFace to still fail |
| to create a font. In this situation, we wouldn't be able to use the downloaded font, and we wouldn't |
| try to download the next item in the src: list because the CSSFontFace is succeeded. |
| |
| This patch strengthens the meaning of the Succeeded state. Previously, it just meant that the bytes |
| in the file were downloaded successfully. This patch extends this to also mean that the bytes in the |
| file can be successfully interpreted as a font. This way, the CSSFontFace in the example above won't be |
| set to the Succeeded state, so we will continue follow the src: list and download the secondary fonts. |
| |
| This has an added benefit that the CSS Font Loading API's promises will be called more appropriately. |
| The transition to the Succeeded state will trigger a resolve of the promise. Now, these promises will |
| only be resolved if the fonts are actually parsed and understood by our text system. |
| |
| Test: fast/text/font-fallback-invalid-load.html |
| |
| * css/CSSFontFaceSource.cpp: |
| (WebCore::CSSFontFaceSource::fontLoaded): Move to the failed state if we can't understand the font |
| data. This is the crux of this patch. |
| (WebCore::CSSFontFaceSource::font): This function should only be called if we are in the Succeeded |
| state, which means now we know we should always be able to understand the bytes of the file. Therefore, |
| we can change some if statements into ASSERT()s. |
| * loader/cache/CachedSVGFont.cpp: |
| (WebCore::CachedSVGFont::createFont): Ditto. |
| (WebCore::CachedSVGFont::platformDataFromCustomData): Similarly to CSSFontFaceSource::fontLoaded(), this |
| adds another check to our criteria for transitioning into the Succeeded state, which will guarantee that |
| later we will always be able to create the font object. |
| |
| 2017-06-12 Chris Dumez <cdumez@apple.com> |
| |
| Add Arabic Kasra to list of blacklisted characters when puny-decoding URL |
| https://bugs.webkit.org/show_bug.cgi?id=173283 |
| <rdar://problem/32725659> |
| |
| Reviewed by Brent Fulgham. |
| |
| Add Arabic Kasra to list of blacklisted characters when puny-decoding URL as |
| it is almost invisible in the URL bar. |
| |
| Test: fast/url/user-visible/arabic_kasra.html |
| |
| * platform/mac/WebCoreNSURLExtras.mm: |
| (WebCore::isLookalikeCharacter): |
| |
| 2017-06-12 Jer Noble <jer.noble@apple.com> |
| |
| Screen sleeps while doing WebRTC video |
| https://bugs.webkit.org/show_bug.cgi?id=173278 |
| |
| Reviewed by Eric Carlson. |
| |
| HTMLMediaElement triggers changing the sleep disabler token when the media engine |
| says that its rate has changed; the MediaPlayerPrivateMediaStreamAVFObjC needs to |
| notify its client (the HTMLMediaElement) that the rate has changed when the stream |
| is played or paused. |
| |
| Drive-by fix: Don't set a sleep disabler token (i.e., allow the system and display |
| to sleep) if the stream is strictly local-capture. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::shouldDisableSleep): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::play): |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pause): |
| |
| 2017-06-12 Jer Noble <jer.noble@apple.com> |
| |
| Seeking an MSE video will begin playing audio long before rendering video |
| https://bugs.webkit.org/show_bug.cgi?id=173269 |
| |
| Reviewed by Eric Carlson. |
| |
| Add a notification listener which will be messaged when a to-be-displayed sample |
| is decoded to signal that the 'seeked' event should fire. Consolidate all the various |
| flush methods to funnel into a single flushVideo(). |
| |
| * platform/cf/CoreMediaSoftLink.cpp: |
| * platform/cf/CoreMediaSoftLink.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h: |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| (-[WebBufferConsumedContext initWithParent:buffer:]): |
| (-[WebBufferConsumedContext dealloc]): |
| (-[WebBufferConsumedContext parent]): |
| (-[WebBufferConsumedContext buffer]): |
| (WebCore::bufferWasConsumedCallback): |
| (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC): |
| (WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC): |
| (WebCore::SourceBufferPrivateAVFObjC::flush): |
| (WebCore::SourceBufferPrivateAVFObjC::flushVideo): |
| (WebCore::SourceBufferPrivateAVFObjC::enqueueSample): |
| (WebCore::SourceBufferPrivateAVFObjC::bufferWasConsumed): |
| (WebCore::SourceBufferPrivateAVFObjC::willSeek): |
| |
| 2017-06-12 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream iOS] Set audio session mode and options when capturing |
| https://bugs.webkit.org/show_bug.cgi?id=173276 |
| <rdar://problem/32059254> |
| |
| Reviewed by Jer Noble. |
| |
| * platform/audio/ios/AudioSessionIOS.mm: |
| (WebCore::AudioSession::setCategory): Set mode and options so the default output is to the speaker, |
| and so audio will be routed to bluetooth when appropriate. |
| |
| 2017-06-12 Jeremy Jones <jeremyj@apple.com> |
| |
| Remove watchdog timer from WebVideoFullscreenInterfaceAVKit |
| https://bugs.webkit.org/show_bug.cgi?id=173272 |
| rdar://problem/32260378 |
| |
| Reviewed by Jer Noble. |
| |
| No new tests because no effect on DOM. |
| |
| WebVideoFullscreenInterfaceAVKit's watchdog attempts to clean-up fullscreen if the page becomes unresponsive. |
| However, it is just calling exitfullscreen(), which initiates the animation, but leaves the fullscreen window |
| in place and doesn't initiate cleanup. This leaves the browser in an unusable state since all events will still |
| be captured by the fullscren window. |
| |
| This change uses the same method of hiding fullscreen window as switching tabs does. This will |
| hide the fullscreen winodw and controller, leaving the browser available for interaction, and the page |
| can take its time to properly cleanup the fullscreen window while hidden. |
| |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: |
| (WebVideoFullscreenInterfaceAVKit::watchdogTimerFired): |
| |
| 2017-06-12 Alex Christensen <achristensen@webkit.org> |
| |
| Modernize UserScript.h |
| https://bugs.webkit.org/show_bug.cgi?id=173273 |
| |
| Reviewed by Tim Horton. |
| |
| No change in behavior. Moved encoders to UserScript.h. Use more Rvalues. |
| |
| * page/UserScript.h: |
| (WebCore::UserScript::UserScript): |
| (WebCore::UserScript::encode): |
| (WebCore::UserScript::decode): |
| |
| 2017-06-12 Aaron Chu <aaron_chu@apple.com> |
| |
| AX: Video/Audio Player Controls missing group container. |
| https://bugs.webkit.org/show_bug.cgi?id=171790 |
| <rdar://problem/32008994> |
| |
| Reviewed by Antoine Quint. |
| |
| Added aria-label to group controls in media controls. |
| |
| * English.lproj/modern-media-controls-localized-strings.js: |
| * Modules/modern-media-controls/controls/controls-bar.js: |
| * Modules/modern-media-controls/controls/inline-media-controls.js: |
| (InlineMediaControls): |
| (InlineMediaControls.prototype.set shouldUseAudioLayout): |
| (InlineMediaControls.prototype._updateBottomControlsBarLabel): |
| |
| 2017-06-12 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Use SynchronousLoaderClient for platformLoadResourceSynchronously on WinCairo |
| https://bugs.webkit.org/show_bug.cgi?id=173195 |
| |
| Reviewed by Alex Christensen. |
| |
| * PlatformWinCairo.cmake: |
| * platform/network/curl/ResourceHandleCurl.cpp: |
| (WebCore::ResourceHandle::platformLoadResourceSynchronously): |
| * platform/network/curl/SynchronousLoaderClientCurl.cpp: Added. |
| (WebCore::SynchronousLoaderClient::didReceiveAuthenticationChallenge): |
| (WebCore::SynchronousLoaderClient::platformBadResponseError): |
| |
| 2017-06-12 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream iOS] If a capturing tab is muted while it is in the background, it can not be unmuted |
| https://bugs.webkit.org/show_bug.cgi?id=173268 |
| <rdar://problem/32259809> |
| |
| Reviewed by Jer Noble. |
| |
| No new tests, tested manually. |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::startProducingData): Mute the private stream if page capture is muted. |
| (WebCore::MediaStream::mediaState): Set new interrupted state. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::notifyMediaCaptureOfVisibilityChanged): Don't track "muted for visibility" |
| state, let the source center deal with it. |
| * dom/Document.h: |
| |
| * page/MediaProducer.h: Add bits for interrupted audio and video capture. |
| |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::RealtimeMediaSource): Drive-by fix: delete m_suppressNotifications, |
| it isn't used. |
| (WebCore::RealtimeMediaSource::setInterrupted): New. Mute capture when an interruption begins, |
| and unmute when it ends in an unmuted page. |
| (WebCore::RealtimeMediaSource::setMuted): Do not unmute if interrupted. |
| (WebCore::RealtimeMediaSource::settingsDidChange): Don't check m_suppressNotifications, it is |
| never set. |
| * platform/mediastream/RealtimeMediaSource.h: |
| |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::RealtimeMediaSourceCenter::setVideoCapturePageState): Renamed from |
| setVideoCaptureMutedForPageVisibility. |
| (WebCore::RealtimeMediaSourceCenter::setVideoCaptureMutedForPageVisibility): Deleted. |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| |
| * platform/mediastream/mac/AVMediaCaptureSource.h: |
| * platform/mediastream/mac/AVMediaCaptureSource.mm: |
| (WebCore::AVMediaCaptureSource::stopProducingData): Clear m_interruption because the session |
| has been deleted, so we will never get an "end interruption" notification. |
| (WebCore::AVMediaCaptureSource::captureSessionIsRunningDidChange): Don't return early if |
| the muted state needs to be updated. |
| (WebCore::AVMediaCaptureSource::captureSessionEndInterruption): Return early if the session |
| has been cleared. |
| (WebCore::AVMediaCaptureSource::interrupted): New. |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSourceFactory::setVideoCapturePageState): Renamed from |
| setVideoCaptureMutedForPageVisibility. |
| (WebCore::AVVideoCaptureSourceFactory::setVideoCaptureMutedForPageVisibility): Deleted. |
| |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSourceFactory::setVideoCapturePageState): Ditto. |
| (WebCore::MockRealtimeVideoSourceFactory::setVideoCaptureMutedForPageVisibility): Deleted. |
| |
| 2017-06-12 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebCrypto] Remove experimental feature flag of SubtleCrypto |
| https://bugs.webkit.org/show_bug.cgi?id=173197 |
| <rdar://problem/32688148> |
| |
| Reviewed by Brent Fulgham. |
| |
| The SubtleCrypto implementation is no longer experimental and is ready for production use. We are therefore removing the runtime flag. |
| |
| No tests. |
| |
| * page/Crypto.idl: |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::setSubtleCryptoEnabled): Deleted. |
| (WebCore::RuntimeEnabledFeatures::subtleCryptoEnabled): Deleted. |
| |
| 2017-06-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS DnD] Allow the injected bundle to add client data when writing an image to the pasteboard |
| https://bugs.webkit.org/show_bug.cgi?id=173238 |
| <rdar://problem/31943370> |
| |
| Reviewed by Ryosuke Niwa and Tim Horton. |
| |
| Add clientTypes and clientData to PasteboardImage, and call out to the injected bundle using |
| getClientPasteboardDataForRange when writing a PasteboardImage. When generating item providers for dragging in |
| the UI process in PlatformPasteboard, add any available client data as representations to the initialization |
| list used to set the WebItemProviderPasteboard. |
| |
| Test: DataInteraction.InjectedBundleImageElementData |
| |
| * editing/ios/EditorIOS.mm: |
| (WebCore::Editor::writeImageToPasteboard): |
| * platform/Pasteboard.h: |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::writeObjectRepresentations): |
| |
| 2017-06-12 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Re-implement GetOwnPropertySlot[ByIndex] generation to more closely follow WebIDL |
| https://bugs.webkit.org/show_bug.cgi?id=173229 |
| |
| Reviewed by Chris Dumez. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * CMakeLists.txt: |
| * bindings/js/JSBindingsAllInOne.cpp: |
| Remove JSHTMLFrameSetElementCustom.cpp which is no longer needed. |
| |
| * bindings/js/JSDOMAbstractOperations.h: |
| (WebCore::isVisibleNamedProperty): |
| Add OverrideBuiltins enum as requested by a previous review (and I forgot address) and adopt it |
| in isVisibleNamedProperty, switch to VMInquiry as we use elsewhere and add a missing FIXME. |
| |
| (WebCore::accessVisibleNamedProperty): |
| Add variation of isVisibleNamedProperty that takes a functor and returns either the value the |
| functor returns, or std::nullopt. This allows getOwnPropertySlot to avoid doing two lookups for |
| property, once in the named property visibility algorithm and again when it needs the value. |
| |
| * bindings/js/JSDOMWindowBase.cpp: |
| * bindings/js/JSDOMWindowBase.h: |
| * bindings/js/JSDOMWindowShell.cpp: |
| * bindings/js/JSDOMWindowShell.h: |
| Standardize toJS functions to match generated code (have one that takes a reference, and does the |
| cast, and one that takes a pointer, does a null check and calls the one that takes a reference). |
| |
| * bindings/js/JSHTMLDocumentCustom.cpp: |
| (WebCore::JSHTMLDocument::getOwnPropertySlot):. |
| Update to use the implementation namedItem (which is also used by the generated getOwnPropertySlotByIndex) |
| and match the updated bindings rules. This cannot yet be generated due to the odd case of the 'open' |
| property requiring custom treatment. I tried removing this, but it cause tests to fail in a way that indicated |
| that accessing the lexical global object in the open implementation was not working correctly. |
| |
| * bindings/js/JSHTMLFrameSetElementCustom.cpp: Removed. |
| Now generated. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateIndexedGetter): |
| Add description from the spec and change to return the computed values rather than |
| print them to the output array. This will be useful for some clients going forward, |
| who only want the attributes. |
| |
| (GenerateNamedGetter): |
| Add description from the spec and change to return the computed values rather than |
| print them to the output array. This will be useful for some clients going forward, |
| who only want the attributes. Also greatly simplifies things as [CustomNamedGetter]s |
| are no longer needed/supported and the exception / null value checks are performed |
| elsewhere. |
| |
| (GenerateNamedGetterLambda): |
| This generates a lambda functor for use in accessVisibleNamedProperty(...). It |
| handles calling the named getter implementation, and transforming the result into |
| an one that can be reasoned about by accessVisibleNamedProperty, specifically, |
| converting it from using IDL's notion of nullability to std::optional. |
| |
| (GenerateGetOwnPropertySlot): |
| (GenerateGetOwnPropertySlotByIndex): |
| Add spec annotations and use helper functions. |
| |
| (GenerateGetOwnPropertyNames): |
| Add FIXME about supporting non-contiguous indices (should that ever come up) |
| and use JSObject explicitly, rather than base, to get the default getOwnPropertyNames |
| implementation. |
| |
| (GeneratePut): |
| Use JSObject explicitly, rather than base, to get the default put implementation. |
| |
| (GeneratePutByIndex): |
| Use JSObject explicitly, rather than base, to get the default putByIndex implementation. |
| |
| (GenerateDefineOwnProperty): |
| Use JSObject explicitly, rather than base, to get the default getOwnPropertySlot/defineOwnProperty |
| implementations. |
| |
| (GenerateDeletePropertyCommon): |
| Adopt new OverrideBuiltins enum. |
| |
| (GenerateDeletePropertyDefinition): |
| Use JSObject explicitly, rather than base, to get the default deleteProperty implementation. |
| |
| (GenerateDeletePropertyByIndexDefinition): |
| Use JSObject explicitly, rather than base, to get the default deletePropertyByIndex implementation. |
| |
| (InstanceOverridesGetOwnPropertySlot): |
| Remove [CustomNamedGetter] use. |
| |
| (GenerateHeader): |
| Remove [CustomNamedGetter] use and merge InstanceOverridesGetOwnPropertySlotByIndex into |
| InstanceOverridesGetOwnPropertySlot. Specifying either [CustomGetOwnPropertySlot] or |
| [CustomGetOwnPropertySlotByIndex] will now declare both hooks. |
| |
| (GenerateImplementation): |
| Rename GenerateGetOwnPropertySlotBody/GenerateGetOwnPropertySlotByIndexBody to remove the 'Body', |
| and predicate their generation purely on InstanceOverridesGetOwnPropertySlot as noted for the |
| reasons above. |
| |
| (GenerateGetOwnPropertySlotBody): Deleted. |
| (GenerateGetOwnPropertySlotBodyByIndex): Deleted. |
| (InstanceOverridesGetOwnPropertySlotByIndex): Deleted. |
| |
| * bindings/scripts/IDLAttributes.json: |
| Remove [CustomNamedGetter]. |
| |
| * dom/ExceptionOr.h: |
| (WebCore::ExceptionOr<ReturnType>::returnValue): |
| Add a function to peek at the return value |
| |
| * html/HTMLDocument.h: |
| * html/HTMLDocument.cpp: |
| (WebCore::HTMLDocument::clear): |
| (WebCore::HTMLDocument::captureEvents): |
| (WebCore::HTMLDocument::releaseEvents): |
| Move clear up to be with the other obsolete no-op functions. Add spec annotations |
| to clear up any confusion about why they are no-ops. |
| |
| (WebCore::HTMLDocument::namedItem): |
| Add implementation of namedItem based on the one that was in JSDOMHTMLDocumentCustom.cpp. |
| |
| (WebCore::HTMLDocument::supportedPropertyNames): |
| Add stub version of supportedPropertyNames with the algorithm we need to implement. |
| I don't want to change behavior in this patch, and since we have not enumerated the |
| properties of document in the past, I left this unimplemented for now. |
| |
| * html/HTMLDocument.idl: |
| Remove [CustomNamedGetter] and add named getter. |
| |
| * html/HTMLFrameSetElement.h: |
| * html/HTMLFrameSetElement.cpp: |
| (WebCore::HTMLFrameSetElement::namedItem): |
| Add named getter based on the implementation in JSHTMLFrameSetElementCustom.cpp. |
| |
| (WebCore::HTMLFrameSetElement::supportedPropertyNames): |
| As noted above, I don't want to change behavior with this change, so I have left this unimplemented |
| for now. However, we may not want to implement it at all, as this named getter is not specified and |
| at least Firefox does not support it. |
| |
| * html/HTMLFrameSetElement.idl: |
| Remove [CustomNamedGetter] and add named getter. |
| |
| * bindings/scripts/test/JS/JSTestEventTarget.cpp: |
| * bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp: |
| * bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestInterface.cpp: |
| * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp: |
| * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp: |
| * bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp: |
| * bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp: |
| * bindings/scripts/test/JS/JSTestNode.cpp: |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp: |
| Update test results. |
| |
| * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: Removed. |
| * bindings/scripts/test/JS/JSTestCustomNamedGetter.h: Removed. |
| * bindings/scripts/test/TestCustomNamedGetter.idl: Removed. |
| Remove test of [CustomNamedGetter] which no longer exists. |
| |
| 2017-06-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| WebItemProviderPasteboard should call its completion block immediately after a synchronous load |
| https://bugs.webkit.org/show_bug.cgi?id=173225 |
| <rdar://problem/32713144> |
| |
| Reviewed by Tim Horton. |
| |
| Ensures that a completion block passed to doAfterLoadingProvidedContentIntoFileURLs:synchronousTimeout: will be |
| invoked immediately, if a synchronous timeout is specified and loading finishes before the synchronous timeout |
| is reached. To do this, we first factor out the completion logic into a new block. If the synchronous timeout |
| exists and dispatch_group_wait returns 0 (indicating that the dispatch group finished without hitting the |
| wait timeout) we simply invoke the block and return early; otherwise, we will register the completion block |
| using dispatch_group_notify. |
| |
| Test: DataInteractionTests.WebItemProviderPasteboardLoading |
| |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:synchronousTimeout:]): |
| |
| 2017-06-12 Jeremy Jones <jeremyj@apple.com> |
| |
| WebAVPlayerController minTime and maxTime should be calculated properties to provide correct values when streaming. |
| https://bugs.webkit.org/show_bug.cgi?id=173193 |
| rdar://problem/32684807 |
| |
| Reviewed by Jer Noble. |
| |
| No new tests because no affect on the DOM. This only affects properties consumed to AVKit. |
| |
| -minTime and -maxTime should be calculated properties so they supply the exptected values to AVKit while streaming. |
| |
| * platform/ios/WebAVPlayerController.h: |
| * platform/ios/WebAVPlayerController.mm: |
| (-[WebAVPlayerController maxTime]): |
| (+[WebAVPlayerController keyPathsForValuesAffectingMaxTime]): |
| (-[WebAVPlayerController minTime]): |
| (+[WebAVPlayerController keyPathsForValuesAffectingMinTime]): |
| (-[WebAVPlayerController resetMediaState]): |
| * platform/ios/WebPlaybackSessionInterfaceAVKit.mm: |
| (WebCore::WebPlaybackSessionInterfaceAVKit::durationChanged): |
| |
| 2017-06-12 Chris Dumez <cdumez@apple.com> |
| |
| Call _sqlite3_purgeEligiblePagerCacheMemory() on memory pressure only if sqlite is initialized |
| https://bugs.webkit.org/show_bug.cgi?id=173264 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Call _sqlite3_purgeEligiblePagerCacheMemory() on memory pressure only if sqlite is initialized. |
| Otherwise, not only is it no needed, it is also potentially unsafe. |
| |
| * page/MemoryRelease.cpp: |
| (WebCore::registerSQLiteMemoryPressureHandler): |
| * page/MemoryRelease.h: |
| * page/cocoa/MemoryReleaseCocoa.mm: |
| (WebCore::platformReleaseMemory): |
| (WebCore::registerSQLiteMemoryPressureHandler): |
| * platform/sql/SQLiteDatabase.cpp: |
| (WebCore::initializeSQLiteIfNecessary): |
| |
| 2017-06-12 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] Use utility functions in CryptoKeyEC, CryptoKeyRSA |
| https://bugs.webkit.org/show_bug.cgi?id=173253 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Use the utility functions from the GCryptUtilities.h header instead |
| of writing the same code in both CryptoKeyEC and CryptoKeyRSA |
| implementations. The switches are straightforward, the only difference |
| is that the GCryptUtilities functions return a std::optional<> object, |
| meaning we have to address possibly invalid return value. |
| |
| The mpiData() function is overloaded, making it possible to pass to it |
| either a gcry_sexp_t or gcry_mpi_t object. Additionally, mpiLength() |
| function is added, overloading again for gcry_sexp_t and gcry_mpi_t. |
| This function is used from mpiData() as well as in CryptoKeyRSA when |
| retrieving the RSA modulus length. |
| |
| No new tests -- no changes in behavior. |
| |
| * crypto/gcrypt/CryptoKeyECGCrypt.cpp: |
| (WebCore::CryptoKeyEC::platformExportRaw): |
| (WebCore::CryptoKeyEC::platformAddFieldElements): |
| (WebCore::extractMPIData): Deleted. |
| * crypto/gcrypt/CryptoKeyRSAGCrypt.cpp: |
| (WebCore::getRSAModulusLength): |
| (WebCore::getRSAKeyParameter): |
| (WebCore::CryptoKeyRSA::exportData): |
| (WebCore::getParameterMPIData): Deleted. |
| * crypto/gcrypt/GCryptUtilities.h: |
| (WebCore::mpiLength): |
| (WebCore::mpiData): |
| |
| 2017-06-09 Ryosuke Niwa <rniwa@webkit.org> |
| |
| didMoveToNewDocument doesn't get called on an Attr inside a shadow tree |
| https://bugs.webkit.org/show_bug.cgi?id=173133 |
| |
| Reviewed by Antti Koivisto. |
| |
| The bug was caused by moveShadowTreeToNewDocument never calling didMoveToNewDocument on Attr nodes. |
| Fixed the bug by using the same traversal code as moveTreeToNewScope in moveShadowTreeToNewDocument |
| by extracting the traversal code as a templatized traverseSubtreeToUpdateTreeScope. |
| |
| Also removed the code to increment the DOM tree version in moveTreeToNewScope. This code was there |
| to invalidate the HTML collection caches which used to clear the cache whenever the DOM tree version |
| changed before r122621 (five years ago! by me). Since we now eagerly invalidate each node list and |
| HTML collection's caches via NodeListsNodeData::adoptTreeScope and NodeListsNodeData::adoptDocument. |
| |
| Test: fast/dom/adopt-attr-with-shadow-tree.html |
| |
| * dom/Node.cpp: |
| (WebCore::moveNodeToNewDocument): Assert that the node had been adopted to a new document. |
| (WebCore::traverseSubtreeToUpdateTreeScope): Extracted from moveTreeToNewScope. |
| (WebCore::moveShadowTreeToNewDocument): Use traverseSubtreeToUpdateTreeScope to adopt each node |
| to the new document. |
| (WebCore::Node::moveTreeToNewScope): See above. |
| * testing/Internals.cpp: |
| (WebCore::Internals::referencingNodeCount): Added. Used in the newly added regression test. |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-06-11 Dan Bernstein <mitz@apple.com> |
| |
| [Mac] Unaligned pointers in static CMBufferCallbacks structs defined in WebCoreDecompressionSession.mm |
| https://bugs.webkit.org/show_bug.cgi?id=173245 |
| |
| Reviewed by Sam Weinig. |
| |
| * platform/graphics/cocoa/WebCoreDecompressionSession.mm: |
| (WebCore::WebCoreDecompressionSession::enqueueSample): Prepend 4 bytes of padding to the |
| structs so that the pointers are properly aligned. |
| |
| 2017-06-11 Tim Horton <timothy_horton@apple.com> |
| |
| REGRESSION (r217870): Null deref under PageOverlayController::uninstallPageOverlay using find in page |
| https://bugs.webkit.org/show_bug.cgi?id=173196 |
| <rdar://problem/32686871> |
| |
| Reviewed by Simon Fraser. |
| |
| * page/TextIndicator.cpp: |
| (WebCore::initializeIndicator): |
| * page/TextIndicator.h: |
| The change in r217870 had an expected but not thought-through side-effect |
| that you cannot create a TextIndicator for far-off-screen elements. This |
| is a problem for find-in-page, which uses TextIndicator to paint the yellow |
| highlight before scrolling it into view. |
| |
| Bring back TextIndicatorOptionDoNotClipToVisibleRect and revert to it for |
| find in page, since it needs different behavior than something like |
| drag and drop, which always operates on content near the visible viewport. |
| |
| 2017-06-10 Dan Bernstein <mitz@apple.com> |
| |
| Reverted r218056 because it made the IDE reindex constantly. |
| |
| * Configurations/DebugRelease.xcconfig: |
| |
| 2017-06-10 Dan Bernstein <mitz@apple.com> |
| |
| [Xcode] With Xcode 9 developer beta, everything rebuilds when switching between command-line and IDE |
| https://bugs.webkit.org/show_bug.cgi?id=173223 |
| |
| Reviewed by Sam Weinig. |
| |
| The rebuilds were happening due to a difference in the compiler options that the IDE and |
| xcodebuild were specifying. Only the IDE was passing the -index-store-path option. To make |
| xcodebuild pass that option, too, set CLANG_INDEX_STORE_ENABLE to YES if it is unset, and |
| specify an appropriate path in CLANG_INDEX_STORE_PATH. |
| |
| * Configurations/DebugRelease.xcconfig: |
| |
| 2017-06-10 Dan Bernstein <mitz@apple.com> |
| |
| [macOS] REGRESSION: Link drag images blend into the background in Sierra and earlier |
| https://bugs.webkit.org/show_bug.cgi?id=172933 |
| <rdar://problem/32580649> |
| |
| Reviewed by Tim Horton. |
| |
| * platform/mac/DragImageMac.mm: |
| (WebCore::createDragImageForLink): When targeting macOS Sierra and earlier, give the link |
| drag image a drop shadow that resembles the one that macOS High Sierra applies to drag |
| image layers. |
| |
| 2017-06-10 Andy Estes <aestes@apple.com> |
| |
| [QuickLook] PreviewLoader needs to check if its ResourceLoader has reached the terminal state before calling didReceiveResponse() and friends |
| https://bugs.webkit.org/show_bug.cgi?id=173190 |
| <rdar://problem/31360659> |
| |
| Reviewed by Brady Eidson. |
| |
| WebPreviewLoader's SubresourceLoader can reach a terminal state while data is loading from |
| QLPreviewConverter (the user can cancel, for instance). We can't call functions like |
| didReceiveResponse() in this state, because the loader no longer points to a CachedResource, |
| leading to null pointer dereferences. |
| |
| Fix this in WebPreviewLoader by checking if the SubresourceLoader is in a terminal state |
| before calling didReceiveResponse(), didReceiveData(), didFinishLoading(), and didFail(). |
| |
| Fixes web process crashes in the QuickLook.CancelNavigationAfterResponse API test. |
| |
| * loader/ios/PreviewLoader.mm: |
| (-[WebPreviewLoader _sendDidReceiveResponseIfNecessary]): |
| (-[WebPreviewLoader connection:didReceiveData:lengthReceived:]): |
| (-[WebPreviewLoader connectionDidFinishLoading:]): |
| (-[WebPreviewLoader connection:didFailWithError:]): |
| |
| 2017-06-09 Chris Dumez <cdumez@apple.com> |
| |
| Use WTF::Function instead of std::function in indexeddb code |
| https://bugs.webkit.org/show_bug.cgi?id=173198 |
| |
| Reviewed by Sam Weinig. |
| |
| Use WTF::Function instead of std::function in indexeddb code to avoid copying. |
| |
| * Modules/indexeddb/IDBFactory.cpp: |
| (WebCore::IDBFactory::getAllDatabaseNames): |
| * Modules/indexeddb/IDBFactory.h: |
| * Modules/indexeddb/client/IDBConnectionProxy.cpp: |
| (WebCore::IDBClient::IDBConnectionProxy::getAllDatabaseNames): |
| * Modules/indexeddb/client/IDBConnectionProxy.h: |
| * Modules/indexeddb/client/IDBConnectionToServer.cpp: |
| (WebCore::IDBClient::IDBConnectionToServer::getAllDatabaseNames): |
| * Modules/indexeddb/client/IDBConnectionToServer.h: |
| * Modules/indexeddb/client/TransactionOperation.h: |
| (WebCore::IDBClient::TransactionOperation::doComplete): |
| * Modules/indexeddb/server/IDBServer.cpp: |
| (WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince): |
| (WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins): |
| * Modules/indexeddb/server/IDBServer.h: |
| * Modules/indexeddb/server/UniqueIDBDatabase.cpp: |
| (WebCore::IDBServer::UniqueIDBDatabase::storeCallbackOrFireError): |
| (WebCore::IDBServer::UniqueIDBDatabase::createObjectStore): |
| (WebCore::IDBServer::UniqueIDBDatabase::deleteObjectStore): |
| (WebCore::IDBServer::UniqueIDBDatabase::renameObjectStore): |
| (WebCore::IDBServer::UniqueIDBDatabase::clearObjectStore): |
| (WebCore::IDBServer::UniqueIDBDatabase::createIndex): |
| (WebCore::IDBServer::UniqueIDBDatabase::deleteIndex): |
| (WebCore::IDBServer::UniqueIDBDatabase::renameIndex): |
| (WebCore::IDBServer::UniqueIDBDatabase::putOrAdd): |
| (WebCore::IDBServer::UniqueIDBDatabase::getRecord): |
| (WebCore::IDBServer::UniqueIDBDatabase::getAllRecords): |
| (WebCore::IDBServer::UniqueIDBDatabase::getCount): |
| (WebCore::IDBServer::UniqueIDBDatabase::deleteRecord): |
| (WebCore::IDBServer::UniqueIDBDatabase::openCursor): |
| (WebCore::IDBServer::UniqueIDBDatabase::iterateCursor): |
| (WebCore::IDBServer::UniqueIDBDatabase::commitTransaction): |
| (WebCore::IDBServer::UniqueIDBDatabase::abortTransaction): |
| (WebCore::IDBServer::UniqueIDBDatabase::activateTransactionInBackingStore): |
| * Modules/indexeddb/server/UniqueIDBDatabase.h: |
| |
| 2017-06-09 Dan Bernstein <mitz@apple.com> |
| |
| Tried to fix the build when targrting macOS 10.12 using the macOS 10.13 developer beta SDK. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::seekableTimeRangesLastModifiedTime): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::liveUpdateInterval): |
| |
| 2017-06-09 Yoav Weiss <yoav@yoav.ws> |
| |
| [preload] Fix builds with ENABLE_VIDEO_TRACK set to false |
| https://bugs.webkit.org/show_bug.cgi?id=173221 |
| |
| Reviewed by Chris Dumez. |
| |
| https://bugs.webkit.org/show_bug.cgi?id=173047 introduced a build error for builds with video track support disabled. |
| This fixes that build issue. |
| |
| No new tests since there's no functional change. |
| |
| * html/HTMLLinkElement.cpp: |
| (WebCore::HTMLLinkElement::as): |
| |
| 2017-06-09 Ryosuke Niwa <rniwa@webkit.org> |
| |
| IsInShadowTreeFlag does not get updated for a non-container node |
| https://bugs.webkit.org/show_bug.cgi?id=173084 |
| |
| Address Darin's review comment. |
| |
| * dom/ContainerNodeAlgorithms.cpp: |
| (WebCore::notifyNodeInsertedIntoDocument): |
| (WebCore::notifyNodeInsertedIntoTree): |
| (WebCore::notifyNodeRemovedFromDocument): |
| |
| 2017-06-09 Dan Bernstein <mitz@apple.com> |
| |
| Tried to fix the build when targrting macOS 10.12 using the macOS 10.13 developer beta SDK. |
| |
| * platform/spi/mac/AVFoundationSPI.h: |
| |
| 2017-06-09 Brady Eidson <beidson@apple.com> |
| |
| Crash when IndexedDB's getAll is used inside a Web Worker. |
| https://bugs.webkit.org/show_bug.cgi?id=172434 |
| |
| Reviewed by Andy Estes. |
| |
| Test: storage/indexeddb/modern/worker-getall.html |
| |
| * Modules/indexeddb/IDBGetAllResult.cpp: |
| (WebCore::IDBGetAllResult::IDBGetAllResult): Add an isolated-copying constructor. |
| (WebCore::IDBGetAllResult::isolatedCopy): |
| * Modules/indexeddb/IDBGetAllResult.h: |
| |
| * Modules/indexeddb/shared/IDBResultData.cpp: |
| (WebCore::IDBResultData::isolatedCopy): Actually copy the IDBGetAllResult. |
| |
| 2017-06-09 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed attempt to fix Mac build after r218039. |
| |
| * loader/ResourceLoader.cpp: |
| (WebCore::ResourceLoader::loadDataURL): |
| * platform/network/DataURLDecoder.h: |
| |
| 2017-06-09 Chris Dumez <cdumez@apple.com> |
| |
| Use WTF::Function instead of std::function in DataURLDecoder |
| https://bugs.webkit.org/show_bug.cgi?id=173194 |
| |
| Reviewed by Sam Weinig. |
| |
| Use WTF::Function instead of std::function in DataURLDecoder to avoid copying. |
| |
| * platform/network/DataURLDecoder.cpp: |
| (WebCore::DataURLDecoder::DecodeTask::DecodeTask): |
| (WebCore::DataURLDecoder::createDecodeTask): |
| * platform/network/DataURLDecoder.h: |
| |
| 2017-06-09 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Image should clear its ImageObserver* when CachedImage releases the last reference to its RefCounted<ImageObserver> |
| https://bugs.webkit.org/show_bug.cgi?id=173077 |
| |
| Reviewed by Simon Fraser. |
| |
| Before dereferencing ImageObserver, CachedImage::clearImage() should check |
| whether it is the only object that holds a reference to this ImageObserver. |
| And if this is true, m_image have to clear its raw pointer to the deleted |
| ImageObserver by calling m_image->setImageObserver(nullptr). |
| |
| * loader/cache/CachedImage.cpp: |
| (WebCore::CachedImage::setBodyDataFrom): |
| (WebCore::CachedImage::CachedImageObserver::CachedImageObserver): |
| (WebCore::CachedImage::clearImage): |
| * loader/cache/CachedImage.h: |
| |
| 2017-06-09 Daniel Bates <dabates@apple.com> |
| |
| Attempt to fix layout test failures following <https://trac.webkit.org/changeset/218028/webkit> |
| (https://bugs.webkit.org/show_bug.cgi?id=158121) |
| <rdar://problem/26012994> |
| |
| For now, if we do not have a frame then consider the document a secure context. One way this can happen |
| is the page accesses a frame that was removed from the document as demonstrated by the test: |
| fast/dom/Window/property-access-on-cached-window-after-frame-removed.html. Treating a frameless |
| document as a secure context also matches Blink's implementation: |
| <https://chromium.googlesource.com/chromium/src/+/fc202b2b1174f5732f7b9e63a6c46fd01ac2be02/third_party/WebKit/Source/core/dom/Document.cpp#4079>. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::isSecureContext): |
| |
| 2017-06-09 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r218003. |
| |
| This change caused assertion failures in existing LayoutTests. |
| |
| Reverted changeset: |
| |
| "Image should clear its ImageObserver* when CachedImage |
| releases the last reference to its RefCounted<ImageObserver>" |
| https://bugs.webkit.org/show_bug.cgi?id=173077 |
| http://trac.webkit.org/changeset/218003 |
| |
| 2017-06-09 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebCrypto] Remove unsupported CryptoAlgorithmIdentifier |
| https://bugs.webkit.org/show_bug.cgi?id=173128 |
| <rdar://problem/32666826> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch remove AES_CMAC, DH and CONCAT as they are not implemented and not recommended |
| by the spec. Hence there is no plan to support them in short term. |
| |
| No change of behaviour. |
| |
| * bindings/js/JSCryptoAlgorithmDictionary.cpp: |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForSign): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForVerify): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForDigest): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveKey): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveBits): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForExportKey): |
| * bindings/js/JSSubtleCryptoCustom.cpp: |
| (WebCore::normalizeCryptoAlgorithmParameters): |
| (WebCore::supportExportKeyThrow): |
| * bindings/js/SerializedScriptValue.cpp: |
| (WebCore::CloneSerializer::write): |
| (WebCore::CloneDeserializer::read): |
| * crypto/CryptoAlgorithmIdentifier.h: |
| * crypto/keys/CryptoKeyAES.cpp: |
| (WebCore::CryptoKeyAES::isValidAESAlgorithm): |
| |
| 2017-06-09 Daniel Bates <dabates@apple.com> |
| |
| Implement W3C Secure Contexts Draft Specification |
| https://bugs.webkit.org/show_bug.cgi?id=158121 |
| <rdar://problem/26012994> |
| |
| Reviewed by Alex Christensen. |
| |
| Part 2 |
| |
| Implements the Secure Contexts spec., <https://w3c.github.io/webappsec-secure-contexts/> (Editor's |
| Draft, 17 November 2016) except for the allow-secure-context sandbox flag and restrictions on window.opener |
| as the former is at risk of being dropped from the specification and the latter is being discussed in |
| <https://github.com/w3c/webappsec-secure-contexts/issues/42>. We are not making use of the Secure |
| Contexts functionality at the moment. We will make use of it in a subsequent commit. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::isSecureContext): Added, |
| * dom/Document.h: |
| * dom/ScriptExecutionContext.h: |
| (WebCore::ScriptExecutionContext::isSecureContext): Deleted; moved to class SecurityContext. |
| * dom/SecurityContext.h: |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::isSecureContext): Added. |
| * page/DOMWindow.h: |
| * page/SecurityOrigin.cpp: |
| (WebCore::isLoopbackIPAddress): Convenience function to determine whether the host portion |
| of the specified URL is a valid loopback address. |
| (WebCore::shouldTreatAsPotentionallyTrustworthy): Implements the "Is origin potentially trustworthy?" |
| algorithm from the Secure Context specification. |
| (WebCore::SecurityOrigin::SecurityOrigin): Compute whether this origin is potentially trustworthy. |
| Also, use C++ brace initialization syntax in member initialization list. |
| * page/SecurityOrigin.h: |
| (WebCore::SecurityOrigin::isPotentionallyTrustworthy): Added. |
| * page/WindowOrWorkerGlobalScope.idl: Expose attribute isSecureContext. Fix style nit; remove |
| period from a comment that is not meant to be a complete sentence. |
| * workers/WorkerGlobalScope.cpp: |
| (WebCore::WorkerGlobalScope::isSecureContext): Added. |
| * workers/WorkerGlobalScope.h: |
| |
| 2017-06-09 Daniel Bates <dabates@apple.com> |
| |
| Implement W3C Secure Contexts Draft Specification |
| https://bugs.webkit.org/show_bug.cgi?id=158121 |
| <rdar://problem/26012994> |
| |
| Reviewed by Chris Dumez. |
| |
| Part 1 |
| |
| Teach the bindings code generator to generate a runtime check for an interface, attribute or |
| function annotated with the extended attribute [SecureContext]. For now, the runtime check |
| (ScriptExecutionContext::isSecureContext()) always returns true. We will flesh out the |
| implementation of this runtime check in a subsequent commit. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (NeedsRuntimeCheck): |
| (GenerateRuntimeEnableConditionalString): |
| Generate a runtime check for an interface, attribute, or function that is annotated with |
| the extended attribute [SecureContext]. |
| |
| * bindings/scripts/IDLAttributes.json: Update JSON now that we support SecureContext. |
| * bindings/scripts/preprocess-idls.pl: |
| (GenerateConstructorAttributes): Add the SecureContext extended attribute to a constructor, |
| if applicable. |
| |
| * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: |
| (WebCore::JSTestGenerateIsReachablePrototype::finishCreation): |
| (WebCore::IDLAttribute<JSTestGenerateIsReachable>::cast): |
| (WebCore::jsTestGenerateIsReachableASecretAttributeGetter): |
| (WebCore::jsTestGenerateIsReachableASecretAttribute): |
| * bindings/scripts/test/JS/JSTestGlobalObject.cpp: |
| (WebCore::JSTestGlobalObject::finishCreation): |
| (WebCore::jsTestGlobalObjectInstanceFunctionCalculateSecretResultBody): |
| (WebCore::jsTestGlobalObjectInstanceFunctionCalculateSecretResult): |
| (WebCore::jsTestGlobalObjectInstanceFunctionGetSecretBooleanBody): |
| (WebCore::jsTestGlobalObjectInstanceFunctionGetSecretBoolean): |
| (WebCore::jsTestGlobalObjectInstanceFunctionTestFeatureGetSecretBooleanBody): |
| (WebCore::jsTestGlobalObjectInstanceFunctionTestFeatureGetSecretBoolean): |
| * bindings/scripts/test/JS/JSTestNode.cpp: |
| (WebCore::JSTestNodePrototype::finishCreation): |
| (WebCore::jsTestNodePrototypeFunctionCalculateSecretResultBody): |
| (WebCore::jsTestNodePrototypeFunctionCalculateSecretResult): |
| (WebCore::jsTestNodePrototypeFunctionGetSecretBooleanBody): |
| (WebCore::jsTestNodePrototypeFunctionGetSecretBoolean): |
| (WebCore::jsTestNodePrototypeFunctionTestFeatureGetSecretBooleanBody): |
| (WebCore::jsTestNodePrototypeFunctionTestFeatureGetSecretBoolean): |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| (WebCore::JSTestObjPrototype::finishCreation): |
| (WebCore::jsTestObjPrototypeFunctionCalculateSecretResultBody): |
| (WebCore::jsTestObjPrototypeFunctionCalculateSecretResult): |
| (WebCore::jsTestObjPrototypeFunctionGetSecretBooleanBody): |
| (WebCore::jsTestObjPrototypeFunctionGetSecretBoolean): |
| (WebCore::jsTestObjPrototypeFunctionTestFeatureGetSecretBooleanBody): |
| (WebCore::jsTestObjPrototypeFunctionTestFeatureGetSecretBoolean): |
| Update expected results. |
| |
| * bindings/scripts/test/TestGenerateIsReachable.idl: |
| * bindings/scripts/test/TestGlobalObject.idl: |
| * bindings/scripts/test/TestNode.idl: |
| * bindings/scripts/test/TestObj.idl: |
| Add test cases. |
| |
| * dom/ScriptExecutionContext.h: |
| (WebCore::ScriptExecutionContext::isSecureContext): Added. For now, always returns true. |
| We will implement this function in a subsequent commit. |
| |
| 2017-06-09 Jer Noble <jer.noble@apple.com> |
| |
| Media elements are allowed to continue to load media data after navigation |
| https://bugs.webkit.org/show_bug.cgi?id=173179 |
| |
| Reviewed by Eric Carlson. |
| |
| Deny media sessions the ability to load media data when suspended. |
| |
| * Modules/webaudio/AudioContext.cpp: |
| (WebCore::AudioContext::isSuspended): |
| * Modules/webaudio/AudioContext.h: |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::isSuspended): |
| * html/HTMLMediaElement.h: |
| * platform/audio/PlatformMediaSession.cpp: |
| (WebCore::PlatformMediaSession::isSuspended): |
| * platform/audio/PlatformMediaSession.h: |
| (WebCore::PlatformMediaSessionClient::isSuspended): |
| * platform/audio/PlatformMediaSessionManager.cpp: |
| (WebCore::PlatformMediaSessionManager::sessionCanLoadMedia): |
| |
| 2017-06-09 Daniel Bates <dabates@apple.com> |
| |
| CSP: Apply img-src directive to favicon loads |
| https://bugs.webkit.org/show_bug.cgi?id=172733 |
| <rdar://problem/32082654> |
| |
| Reviewed by Brady Eidson. |
| |
| Differentiate favicon requests from raw resources requests so that we can apply the Content |
| Security Policy to favicon requests. |
| |
| Tests: http/tests/security/contentSecurityPolicy/allow-favicon.html |
| http/tests/security/contentSecurityPolicy/block-favicon.html |
| |
| * inspector/InspectorPageAgent.cpp: |
| (WebCore::InspectorPageAgent::cachedResourceContent): Keep our current behavior and treat a |
| favicon resource analogous to a raw resource. |
| (WebCore::InspectorPageAgent::cachedResourceType): Ditto. |
| * loader/LinkLoader.cpp: |
| (WebCore::createLinkPreloadResourceClient): Now that we differentiate between a favicon |
| and a raw resource we add favicons to the list of unsupported <link as="..."> types. This |
| makes the list of handled request destination types more closely match the list of valid types |
| documented in <https://fetch.spec.whatwg.org/#concept-request-destination> (24 May 2017). |
| * loader/ResourceLoadInfo.cpp: |
| (WebCore::toResourceType): Keep our current behavior and treat a favicon resource analogous |
| to a raw resource. |
| * loader/SubresourceLoader.cpp: |
| (WebCore::logResourceLoaded): Ditto. |
| * loader/cache/CachedRawResource.cpp: |
| (WebCore::CachedRawResource::CachedRawResource): Update for renaming. |
| * loader/cache/CachedRawResource.h: |
| (isType): Ditto. |
| * loader/cache/CachedResource.cpp: |
| (WebCore::CachedResource::defaultPriorityForResourceType): Keep our current behavior and treat |
| a favicon resource analogous to a raw resource. |
| * loader/cache/CachedResource.h: |
| (WebCore::CachedResource::isMainOrMediaOrFaviconOrRawResource): Renamed; formerly named isMainOrMediaOrRawResource. |
| Also return true if the this resource is a favicon. |
| (WebCore::CachedResource::ignoreForRequestCount): Keep our current behavior and treat a |
| favicon resource analogous to a raw resource. |
| (WebCore::CachedResource::isMainOrMediaOrRawResource): Deleted; renamed to isMainOrMediaOrFaviconOrRawResource. |
| * loader/cache/CachedResourceLoader.cpp: |
| (WebCore::createResource): Keep our current behavior and treat a favicon resource analogous |
| to a raw resource. |
| (WebCore::CachedResourceLoader::requestFavicon): Added. |
| (WebCore::contentTypeFromResourceType): Keep our current behavior and treat a favicon |
| resource analogous to a raw resource. |
| (WebCore::CachedResourceLoader::checkInsecureContent): Ditto. |
| (WebCore::CachedResourceLoader::allowedByContentSecurityPolicy): Check if the favicon is |
| allowed by the CSP of the page. |
| (WebCore::CachedResourceLoader::determineRevalidationPolicy): Update for renaming. |
| * loader/cache/CachedResourceLoader.h: |
| * loader/icon/IconLoader.cpp: |
| (WebCore::IconLoader::startLoading): Substitute call CachedResourceLoader::requestFavicon() for CachedResourceLoader::requestRawResource() |
| and remove comment about ContentSecurityPolicyImposition::DoPolicyCheck being a placeholder. This is no longer the |
| case. This resource request option is now meaningful as we want to apply the CSP of the page with respect to the |
| request for the favicon. |
| |
| 2017-06-09 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS DnD] Add a hook to perform two-step drops in editable content |
| https://bugs.webkit.org/show_bug.cgi?id=172992 |
| <rdar://problem/32590174> |
| |
| Reviewed by Tim Horton. |
| |
| Adds hooks in DragController::concludeEditDrag to give the client layer a chance to perform custom handling when |
| dropping in editable content. |
| Tests: DataInteractionTests.InjectedBundleOverridePerformTwoStepDrop |
| DataInteractionTests.InjectedBundleAllowPerformTwoStepDrop |
| |
| * loader/EmptyClients.cpp: |
| * page/DragController.cpp: |
| (WebCore::DragController::concludeEditDrag): |
| * page/EditorClient.h: |
| |
| 2017-06-09 Matthew Hanson <matthew_hanson@apple.com> |
| |
| Revert r217955. rdar://problem/21125708 |
| |
| 2017-06-06 Konstantin Tokarev <annulen@yandex.ru> |
| |
| [MediaFoundation] Volume controls of different media elements should be independent |
| https://bugs.webkit.org/show_bug.cgi?id=172967 |
| |
| Based on patch by Vitaly Slobodin <vitaliy.slobodin@gmail.com> |
| Reviewed by Alex Christensen. |
| |
| IMFSimpleAudioVolume interface controls master volume of the |
| application. We should use IMFAudioStreamVolume interface instead. |
| |
| No new tests needed. |
| |
| * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp: |
| (WebCore::MediaPlayerPrivateMediaFoundation::MediaPlayerPrivateMediaFoundation): |
| (WebCore::MediaPlayerPrivateMediaFoundation::setAllChannelVolumes): |
| (WebCore::MediaPlayerPrivateMediaFoundation::setVolume): |
| (WebCore::MediaPlayerPrivateMediaFoundation::setMuted): |
| * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h: |
| |
| 2017-06-09 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Image should clear its ImageObserver* when CachedImage releases the last reference to its RefCounted<ImageObserver> |
| https://bugs.webkit.org/show_bug.cgi?id=173077 |
| |
| Reviewed by Simon Fraser. |
| |
| Before dereferencing ImageObserver, CachedImage::clearImage() should check |
| whether it is the only object that holds a reference to this ImageObserver. |
| And if this is true, m_image have to clear its raw pointer to the deleted |
| ImageObserver by calling m_image->setImageObserver(nullptr). |
| |
| * loader/cache/CachedImage.cpp: |
| (WebCore::CachedImage::setBodyDataFrom): |
| (WebCore::CachedImage::CachedImageObserver::CachedImageObserver): |
| (WebCore::CachedImage::clearImage): |
| * loader/cache/CachedImage.h: |
| |
| 2017-06-09 Frederic Wang <fwang@igalia.com> |
| |
| Add flag allow-popups-to-escape-sandbox to iframe sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=158875 |
| |
| Reviewed by Chris Dumez. |
| |
| This patch adds support for the iframe@allow-popups-to-escape-sandbox attribute. |
| This allows to pass more W3C Web Platform tests. |
| |
| Tests: imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html |
| imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html |
| |
| * dom/SecurityContext.cpp: Add allow-popups-to-escape-sandbox flag. |
| (WebCore::SecurityContext::isSupportedSandboxPolicy): |
| (WebCore::SecurityContext::parseSandboxPolicy): |
| * dom/SecurityContext.h: Ditto. |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): Do not force sandbox flags when we have allow-popups-to-escape-sandbox. |
| (WebCore::createWindow): Ditto. |
| |
| 2017-06-09 Jer Noble <jer.noble@apple.com> |
| |
| [iOS] Video occasionally mixes with other system audio instead of interrupting |
| https://bugs.webkit.org/show_bug.cgi?id=173127 |
| |
| Reviewed by Eric Carlson. |
| |
| Tests: platform/mac/audio-session-category-video-track-change.html |
| |
| When an HTMLMediaElement's tracks change their enabled state, make sure to update |
| the PlatformMediaElement, for canProduceAudio() may have changed. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged): |
| * platform/audio/cocoa/MediaSessionManagerCocoa.cpp: |
| (PlatformMediaSessionManager::updateSessionState): |
| |
| The rest of the changes in this revision are to allow the above to be testable. |
| |
| * page/Settings.cpp: |
| * page/Settings.h: |
| * platform/audio/AudioSession.h: |
| * platform/audio/mac/AudioSessionMac.cpp: |
| (WebCore::AudioSession::category): |
| (WebCore::AudioSession::setCategory): |
| * testing/InternalSettings.cpp: |
| (WebCore::InternalSettings::Backup::Backup): |
| (WebCore::InternalSettings::Backup::restoreTo): |
| (WebCore::InternalSettings::setShouldManageAudioSessionCategory): |
| * testing/InternalSettings.h: |
| * testing/InternalSettings.idl: |
| * testing/Internals.cpp: |
| (WebCore::Internals::audioSessionCategory): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-06-09 Chris Dumez <cdumez@apple.com> |
| |
| CSS transitions added while page is not visible do not start when the page becomes visible |
| https://bugs.webkit.org/show_bug.cgi?id=173166 |
| <rdar://problem/32250351> |
| |
| Reviewed by Darin Adler. |
| |
| CSS transitions added while page is not visible would not start when the page becomes |
| visible. The issue was that when CompositeAnimation::updateTransitions() was called |
| while the page is hidden (and animations are therefore suspended), it would not |
| populate m_transations with ImplicitAnimation objects. We would therefore have later |
| no transitions to resume when the page becomes visible later on. This patch updates |
| CompositeAnimation::updateTransitions() to properly populate m_transitions and instead |
| pause the ImplicitAnimation it creates if animations are currently suspended. This |
| behavior is more consistent with the one of CompositeAnimation::updateKeyframeAnimations(). |
| |
| I also needed to update ImplicitAnimation::animate() to not restart a paused animation |
| if the animation is currently paused. This is similar to what is done in |
| KeyframeAnimation::animate(). Without this, the paused ImplicitAnimation we add to |
| m_transition would incorrectly get unpaused while the page is still hidden and the |
| animations are still supposed to be suspended. This issue was showing when running the |
| test I am adding in this patch. |
| |
| Test: fast/animation/css-animation-resuming-when-visible.html |
| |
| * page/animation/CompositeAnimation.cpp: |
| (WebCore::CompositeAnimation::updateTransitions): |
| * page/animation/ImplicitAnimation.cpp: |
| (WebCore::ImplicitAnimation::animate): |
| (WebCore::ImplicitAnimation::reset): |
| * page/animation/ImplicitAnimation.h: |
| |
| 2017-06-09 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Unreviewed, Use FALLTHROUGH |
| |
| * loader/LinkLoader.cpp: |
| (WebCore::createLinkPreloadResourceClient): |
| |
| 2017-06-09 Eric Carlson <eric.carlson@apple.com> |
| |
| fast/mediastream/MediaStream-page-muted.html times out and asserts |
| https://bugs.webkit.org/show_bug.cgi?id=170355 |
| <rdar://problem/31376041> |
| |
| MediaStream and MediaStreamTrack need to prevent JS wrapper collection while it is possible |
| to fire an event or event listeners won't be notified. |
| |
| Reviewed by Chris Dumez. |
| |
| Test: fast/mediastream/media-stream-wrapper-collected.html |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::MediaStream): Initialize ActiveDOMObject. |
| (WebCore::MediaStream::stop): New. |
| (WebCore::MediaStream::activeDOMObjectName): Ditto. |
| (WebCore::MediaStream::canSuspendForDocumentSuspension): Ditto. |
| (WebCore::MediaStream::hasPendingActivity): Ditto, prevent collection if there |
| are registered event listeners. |
| (WebCore::MediaStream::contextDestroyed): Deleted. |
| * Modules/mediastream/MediaStream.h: |
| * Modules/mediastream/MediaStream.idl: |
| |
| * Modules/mediastream/MediaStreamTrack.cpp: |
| (WebCore::MediaStreamTrack::hasPendingActivity): Prevent collection if there |
| are registered event listeners. |
| * Modules/mediastream/MediaStreamTrack.h: |
| |
| * testing/Internals.cpp: |
| (WebCore::Internals::removeMediaStreamTrack): stream.removeTrack doesn't generate a 'removetrack' |
| event, so call private method that does. |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-06-09 Daewoong Jang <daewoong.jang@navercorp.com> |
| |
| [cURL] Remove a call to Windows API |
| https://bugs.webkit.org/show_bug.cgi?id=172079 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * platform/network/curl/CurlDownload.cpp: |
| (WebCore::CurlDownload::moveFileToDestination): |
| * platform/win/FileSystemWin.cpp: |
| (WebCore::moveFile): |
| |
| 2017-06-09 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK][WPE] Fix alpha premultiplying when using cairo to draw the video frames |
| https://bugs.webkit.org/show_bug.cgi?id=173097 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| We need to premultiply alpha when creating a cairo surface from a GStreamer video frame, if the frame |
| has an alpha component. Currently this is wrongly done in VideoSinkGStreamer, as it assumes that every |
| frame is going to be rendered with cairo, which is not the case when using accelerated compositing. |
| The premultiply must happen inside ImageGStreamerCairo, which is where we know that the frame is |
| going to be rendered with cairo, and where the premultiply can be performed when gstreamer-gl is |
| enabled as well. |
| |
| Covered by existent tests. |
| |
| * platform/graphics/gstreamer/ImageGStreamerCairo.cpp: |
| (ImageGStreamer::ImageGStreamer): |
| * platform/graphics/gstreamer/VideoSinkGStreamer.cpp: |
| (webkitVideoSinkRequestRender): |
| |
| 2017-06-09 Zan Dobersek <zdobersek@igalia.com> |
| |
| [WPE] Enable ENCRYPTED_MEDIA for build-webkit builds |
| https://bugs.webkit.org/show_bug.cgi?id=173103 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| * Modules/encryptedmedia/CDM.cpp: |
| (WebCore::CDM::getSupportedCapabilitiesForAudioVideoType): |
| Pass the ParsedContentType's mime type string to the explicit ContentType |
| constructor and assign that to the MediaEngineSupportParameters' type |
| member. |
| |
| 2017-06-08 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Move TreeScope::adoptIfNeeded to Node and rename it to setTreeScopeRecursively |
| https://bugs.webkit.org/show_bug.cgi?id=173129 |
| |
| Reviewed by Antti Koivisto. |
| |
| Renamed TreeScope::adoptIfNeeded to setTreeScopeRecursively and moved to Node. |
| |
| The old name was really confusing because due to the existence of Document::adoptNode, a DOM API, |
| which removes the adopted node from its parent if there was one before adopting the node. |
| Most confusingly, this function called TreeScope::adoptIfNeeded. |
| |
| Also inlined the tree scope check to avoid calling to moveTreeToNewScope when there is nothing to do. |
| |
| This patch effectively reverts r104528. |
| |
| No new tests. Existing tests cover this. |
| |
| * dom/Attr.cpp: |
| (WebCore::Attr::detachFromElementWithValue): |
| (WebCore::Attr::attachToElement): |
| * dom/ContainerNode.cpp: |
| (WebCore::ContainerNode::takeAllChildrenFrom): |
| (WebCore::ContainerNode::insertBefore): |
| (WebCore::ContainerNode::replaceChild): |
| (WebCore::ContainerNode::removeBetween): |
| (WebCore::ContainerNode::replaceAllChildren): |
| (WebCore::ContainerNode::appendChildWithoutPreInsertionValidityCheck): |
| (WebCore::ContainerNode::parserAppendChild): |
| * dom/ContainerNodeAlgorithms.cpp: |
| (WebCore::addChildNodesToDeletionQueue): |
| * dom/Document.cpp: |
| (WebCore::Document::adoptNode): |
| * dom/Element.cpp: |
| (WebCore::Element::ensureAttr): |
| * dom/Node.cpp: |
| (WebCore::DidMoveToNewDocumentAssertionScope): Added. The old assertion wasn't sufficient when |
| HTMLTemplateElement made a recursive call to setTreeScopeRecursively. |
| (WebCore::DidMoveToNewDocumentAssertionScope::DidMoveToNewDocumentAssertionScope): |
| (WebCore::DidMoveToNewDocumentAssertionScope::~DidMoveToNewDocumentAssertionScope): |
| (WebCore::DidMoveToNewDocumentAssertionScope::didRecieveCall): |
| (WebCore::moveNodeToNewDocument): Moved from TreeScope. Calls to incrementReferencingNodeCount |
| and decrementReferencingNodeCount to Node::didMoveToNewDocument. This function is now eliminated |
| in a release build. |
| (WebCore::moveShadowTreeToNewDocument): Moved from TreeScope. |
| (WebCore::Node::moveTreeToNewScope): Ditto. |
| (WebCore::Node::didMoveToNewDocument): See the description for moveNodeToNewDocument above. |
| * dom/Node.h: |
| (WebCore::Node::isParsingChildrenFinished): Moved to avoid having its own protected section. |
| (WebCore::Node::setIsParsingChildrenFinished): Ditto. |
| (WebCore::Node::clearIsParsingChildrenFinished): Ditto. |
| (WebCore::Node::setTreeScopeRecursively): Moved from TreeScope::adoptIfNeeded. |
| * dom/ShadowRoot.cpp: |
| (WebCore::ShadowRoot::~ShadowRoot): |
| * dom/TreeScope.cpp: |
| (WebCore::TreeScope::adoptIfNeeded): Deleted. |
| (WebCore::TreeScope::moveTreeToNewScope): Deleted. |
| (WebCore::TreeScope::ensureDidMoveToNewDocumentWasCalled): Deleted. |
| (WebCore::TreeScope::moveNodeToNewDocument): Deleted. |
| (WebCore::TreeScope::moveShadowTreeToNewDocument): Deleted. |
| * dom/TreeScope.h: |
| * html/HTMLTemplateElement.cpp: |
| (WebCore::HTMLTemplateElement::didMoveToNewDocument): |
| |
| 2017-06-09 Adrien Plazas <aplazas@igalia.com> |
| |
| [GTK] Add kinetic scrolling |
| https://bugs.webkit.org/show_bug.cgi?id=155750 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Patch by Adrien Plazas and Yusuke Suzuki. |
| |
| Add the ScrollAnimationKinetic scrolling animation allowing to perform momentum scrolling; it is based on GTK+'s |
| GtkKineticScrolling type. |
| |
| Add the notion of phase, momentum phase and swipe velocity to PlatformWheelEvent. |
| |
| Depending on whether the scrolling ended normally or triggered a swipe, the scroll animator will either compute |
| the swipe velocity from the previous scrolling events or use the one from the swipe gesture to initiate the |
| momentum scrolling. |
| |
| * PlatformGTK.cmake: |
| * platform/PlatformWheelEvent.h: |
| (WebCore::PlatformWheelEvent::setHasPreciseScrollingDeltas): |
| (WebCore::PlatformWheelEvent::phase): |
| (WebCore::PlatformWheelEvent::momentumPhase): |
| (WebCore::PlatformWheelEvent::isTransitioningToMomentumScroll): |
| * platform/ScrollAnimation.h: |
| (WebCore::ScrollAnimation::scroll): |
| (WebCore::ScrollAnimation::updateVisibleLengths): |
| (WebCore::ScrollAnimation::setCurrentPosition): |
| * platform/ScrollAnimationKinetic.cpp: Added. |
| (WebCore::ScrollAnimationKinetic::PerAxisData::PerAxisData): |
| (WebCore::ScrollAnimationKinetic::PerAxisData::animateScroll): |
| (WebCore::ScrollAnimationKinetic::ScrollAnimationKinetic): |
| (WebCore::ScrollAnimationKinetic::~ScrollAnimationKinetic): |
| (WebCore::ScrollAnimationKinetic::stop): |
| (WebCore::ScrollAnimationKinetic::start): |
| (WebCore::ScrollAnimationKinetic::animationTimerFired): |
| * platform/ScrollAnimationKinetic.h: Copied from Source/WebCore/platform/ScrollAnimation.h. |
| * platform/gtk/PlatformWheelEventGtk.cpp: |
| (WebCore::PlatformWheelEvent::PlatformWheelEvent): |
| (WebCore::PlatformWheelEvent::swipeVelocity): |
| * platform/gtk/ScrollAnimatorGtk.cpp: |
| (WebCore::ScrollAnimatorGtk::ScrollAnimatorGtk): |
| (WebCore::ScrollAnimatorGtk::ensureSmoothScrollingAnimation): |
| (WebCore::ScrollAnimatorGtk::scroll): |
| (WebCore::ScrollAnimatorGtk::scrollToOffsetWithoutAnimation): |
| (WebCore::ScrollAnimatorGtk::computeVelocity): |
| (WebCore::ScrollAnimatorGtk::handleWheelEvent): |
| (WebCore::ScrollAnimatorGtk::willEndLiveResize): |
| (WebCore::ScrollAnimatorGtk::updatePosition): |
| (WebCore::ScrollAnimatorGtk::didAddVerticalScrollbar): |
| (WebCore::ScrollAnimatorGtk::didAddHorizontalScrollbar): |
| * platform/gtk/ScrollAnimatorGtk.h: |
| |
| 2017-06-09 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] ECDSA signing results can be smaller than the EC key size |
| https://bugs.webkit.org/show_bug.cgi?id=171535 |
| |
| Reviewed by Jiewen Tan. |
| |
| The libgcrypt-based implementation of the ECDSA signing operation does not |
| properly address the resulting `r` and `s` integers that do not potentially |
| match the EC key in terms of size. |
| |
| To address that, the retrieved MPI data for both integers is handled depending |
| on the size of said data. Strictly requiring an amount of bytes that matches |
| the key data size N, we simply take the last N bytes if the MPI data is equal |
| or larger than N in size. If smaller, we first append enough zero bytes to the |
| output Vector object before attaching the MPI data in whole so that the amount |
| of appended bytes matches N. |
| |
| No new tests -- covers an implementation detail that is not trivial to test, |
| but can rely sufficiently on existing tests. |
| |
| * crypto/gcrypt/CryptoAlgorithmECDSAGCrypt.cpp: |
| (WebCore::extractECDSASignatureInteger): |
| (WebCore::gcryptSign): |
| |
| 2017-06-09 Daewoong Jang <daewoong.jang@navercorp.com> |
| |
| Reduce compiler warnings |
| https://bugs.webkit.org/show_bug.cgi?id=172078 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * platform/network/curl/CookieJarCurl.cpp: |
| (WebCore::addMatchingCurlCookie): |
| (WebCore::getHostnamesWithCookies): |
| (WebCore::deleteCookiesForHostnames): |
| (WebCore::deleteCookiesForHostname): Deleted. |
| * platform/network/curl/CurlDownload.cpp: |
| (WebCore::CurlDownloadManager::downloadThread): |
| (WebCore::CurlDownload::didReceiveHeader): |
| * platform/network/curl/CurlDownload.h: |
| (WebCore::CurlDownloadListener::didReceiveDataOfLength): |
| * platform/network/curl/ResourceHandleCurl.cpp: |
| (WebCore::WebCoreSynchronousLoader::didReceiveResponse): |
| (WebCore::ResourceHandle::platformLoadResourceSynchronously): |
| * platform/network/curl/SocketStreamHandleImplCurl.cpp: |
| (WebCore::createCopy): |
| (WebCore::SocketStreamHandleImpl::readData): |
| |
| 2017-06-09 Xabier Rodriguez Calvar <calvaris@igalia.com> |
| |
| [GStreamer][EME] Remove the legacy code that was not even official and is deprecated |
| https://bugs.webkit.org/show_bug.cgi?id=173096 |
| |
| Reviewed by Žan Doberšek. |
| |
| We are removing the LEGACY_ENCRYPTED_MEDIA code that we was not |
| official, is deprecated and we are not planning to support it |
| anymore in any way. |
| |
| This also helps implementing current ENCRYPTED_MEDIA in a cleaner |
| way. |
| |
| * platform/GStreamer.cmake: |
| * platform/graphics/gstreamer/GStreamerUtilities.cpp: |
| * platform/graphics/gstreamer/GStreamerUtilities.h: |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::MediaPlayerPrivateGStreamer::handleMessage): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::registerWebKitGStreamerElements): |
| (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase): |
| (WebCore::MediaPlayerPrivateGStreamerBase::handleSyncMessage): |
| (WebCore::extractEventsAndSystemsFromMessage): Deleted. |
| (WebCore::MediaPlayerPrivateGStreamerBase::needKey): Deleted. |
| (WebCore::MediaPlayerPrivateGStreamerBase::setCDMSession): Deleted. |
| (WebCore::MediaPlayerPrivateGStreamerBase::keyAdded): Deleted. |
| (WebCore::MediaPlayerPrivateGStreamerBase::handleProtectionEvent): Deleted. |
| (WebCore::MediaPlayerPrivateGStreamerBase::receivedGenerateKeyRequest): Deleted. |
| (WebCore::keySystemIdToUuid): Deleted. |
| (WebCore::MediaPlayerPrivateGStreamerBase::createSession): Deleted. |
| (WebCore::MediaPlayerPrivateGStreamerBase::dispatchDecryptionKey): Deleted. |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: |
| * platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp: |
| * platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.h: |
| * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: |
| * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h: |
| * platform/graphics/gstreamer/mse/AppendPipeline.cpp: |
| (WebCore::AppendPipeline::AppendPipeline): |
| (WebCore::AppendPipeline::parseDemuxerSrcPadCaps): |
| (WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread): |
| (WebCore::AppendPipeline::disconnectDemuxerSrcPadFromAppsinkFromAnyThread): |
| (WebCore::appendPipelineElementMessageCallback): Deleted. |
| (WebCore::AppendPipeline::dispatchPendingDecryptionKey): Deleted. |
| (WebCore::AppendPipeline::dispatchDecryptionKey): Deleted. |
| (WebCore::AppendPipeline::handleElementMessage): Deleted. |
| * platform/graphics/gstreamer/mse/AppendPipeline.h: |
| * platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerMSE::dispatchDecryptionKey): Deleted. |
| * platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h: |
| |
| 2017-06-09 Aaron Chu <aaron_chu@apple.com> |
| |
| AX: Media Controls: Missing labels for the Time Labels. |
| https://bugs.webkit.org/show_bug.cgi?id=171715 |
| <rdar://problem/32009214> |
| |
| Reviewed by Antoine Quint. |
| |
| Added aria-label to describe time labels in media controls. |
| |
| * Modules/modern-media-controls/controls/slider.js: |
| (Slider.prototype.set inputAccessibleLabel): |
| (Slider.prototype._formatTime): Deleted. |
| * Modules/modern-media-controls/controls/time-label.js: |
| (TimeLabel.prototype.commitProperty): |
| * Modules/modern-media-controls/main.js: |
| (formatTimeToString): |
| |
| 2017-06-08 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix unused parameter warning after r217955. |
| |
| * platform/graphics/FontFamilySpecificationNull.h: |
| (WebCore::FontFamilySpecificationNull::fontRanges): |
| |
| 2017-06-08 Yoav Weiss <yoav@yoav.ws> |
| |
| [preload] Mandatory `as` value and related spec alignments |
| https://bugs.webkit.org/show_bug.cgi?id=173047 |
| |
| Reviewed by Dean Jackson. |
| |
| Align preload's implementation according to latest spec changes: `as` is mandatory and "fetch" replaces the previous empty `as` value, |
| onerror no longer fires for invalid `as` values, and the IDL for `as` reflects only valid values, to enable feature detection. |
| |
| Related standard discussions: |
| https://github.com/w3c/preload/issues/80 |
| https://github.com/whatwg/fetch/pull/547 |
| https://github.com/whatwg/fetch/pull/549 |
| https://github.com/whatwg/html/pull/2588 |
| |
| No new tests but modified existing ones as well as their expectations. |
| |
| * html/HTMLLinkElement.cpp: Add "enumerated attribute" reflection methods to `as`. |
| (WebCore::HTMLLinkElement::setAs): |
| (WebCore::HTMLLinkElement::as): |
| * html/HTMLLinkElement.h: |
| * html/HTMLLinkElement.idl: |
| * loader/LinkLoader.cpp: |
| (WebCore::LinkLoader::loadLinksFromHeader): preloadIfNeeded signature change. |
| (WebCore::LinkLoader::resourceTypeFromAsAttribute): Replace the empty value by "fetch". |
| (WebCore::LinkLoader::preloadIfNeeded): Change the signature, as a LinkLoaderClient is no longer needed, since we don't fire error |
| events from inside the function. |
| (WebCore::LinkLoader::loadLink): preloadIfNeeded signature change. |
| * loader/LinkLoader.h: preloadIfNeeded signature change. |
| |
| 2017-06-08 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] LowPowerModeNotifier notifies client on non-main thread |
| https://bugs.webkit.org/show_bug.cgi?id=173115 |
| <rdar://problem/32644703> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Update iOS's implementation of the LowPowerModeNotifier to make sure |
| we notify the client of low power mode changes on the main thread. |
| |
| * platform/ios/LowPowerModeNotifierIOS.mm: |
| (-[WebLowPowerModeObserver _didReceiveLowPowerModeChange]): |
| |
| 2017-06-08 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Crash inside InsertNodeBeforeCommand via InsertParagraphSeparatorCommand |
| https://bugs.webkit.org/show_bug.cgi?id=173085 |
| <rdar://problem/32575059> |
| |
| Reviewed by Wenson Hsieh. |
| |
| The crash was caused by the condition to check for special cases failing when visiblePos is null. |
| Exit early in these extreme cases. |
| |
| Also replaced the use of deprecatedNode and deprecatedEditingOffset to modern idioms. |
| |
| Test: editing/inserting/insert-horizontal-rule-in-empty-document-crash.html |
| |
| * editing/InsertParagraphSeparatorCommand.cpp: |
| (WebCore::InsertParagraphSeparatorCommand::doApply): |
| |
| 2017-06-08 Ryosuke Niwa <rniwa@webkit.org> |
| |
| The tree scope of an Attr node inside a shadow tree does not updated upon detach. |
| https://bugs.webkit.org/show_bug.cgi?id=173122 |
| |
| Reviewed by Chris Dumez. |
| |
| The crash was caused by the tree scope of an Attr detached from an element inside a shadow root |
| not getting updated. |
| |
| Test: fast/dom/detaching-attr-node-in-shadow-tree-crash.html |
| |
| * dom/Attr.cpp: |
| (WebCore::Attr::~Attr): Added assertions. |
| (WebCore::Attr::detachFromElementWithValue): Fixed the bug by adopting Attr to Document. |
| (WebCore::Attr::attachToElement): Moved the adoptIfNeeded call here from attachAttributeNodeIfNeeded. |
| * dom/Element.cpp: |
| (WebCore::Element::attachAttributeNodeIfNeeded): |
| |
| 2017-06-08 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [Cocoa] Expand system-ui to include every item in the Core Text cascade list |
| https://bugs.webkit.org/show_bug.cgi?id=173043 |
| <rdar://problem/21125708> |
| |
| Reviewed by Simon Fraser. |
| |
| The concept of the system font on Cocoa platforms represents the entire Core Text cascade list. |
| However, previously, WebKit only represented system-ui by pulling out the first item in the Core |
| Text cascade list. Instead, we should make all text rendered with "system-ui" match what the |
| platform would natively render. |
| |
| Previously, we walked through the strings in the font-family property and looked them up one by |
| one. However, now we want to abstract this idea of a font family to possibly hold a |
| CTFontDescriptorRef instead of a string. This way, we expand a font-family list of ["fontA", |
| "system-ui", "fontB"] to ["fontA", ... a bunch of CTFontDescriptorRefs ..., "FontB"]. We can |
| then modify the consumer of this object to have two codepaths: the old string-based codepath, |
| and a new, platform-specific codepath which simply embeds the CTFontDesriptorRefs inside a Font |
| object. |
| |
| We don't want to simply pull out the family name from each item in the Core Text fallback list |
| because that is a lossy translation. There is more information in these font descriptors which |
| cannot be represented by CSS. Therefore, we must keep the descriptors alive and add the new |
| codepath for them. |
| |
| We also don't want to run the CSS font matching algorithm on each member of the Core Text |
| fallback list because it may yield different results from Core Text's font matching algorithm. |
| Our goal is to draw text as closely as possible to the system APIs. If we ran it, we may find |
| a font which is closer to the requested traits, but it would look out of place on the system. |
| |
| Tests: fast/text/system-font-fallback-emoji.html |
| fast/text/system-font-fallback.html |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * page/MemoryRelease.cpp: |
| (WebCore::releaseNoncriticalMemory): |
| * platform/graphics/FontCascadeFonts.cpp: |
| (WebCore::realizeNextFallback): The consumer of our new data type. Now uses WTF::visit(). |
| (WebCore::FontCascadeFonts::realizeFallbackRangesAt): Now that the number of items to test |
| against the current character is larger than the number of strings in the font-family list, |
| we need to update the existing code to use the correct value. |
| * platform/graphics/FontDescription.cpp: Default implementation for non-Cocoa ports. |
| (WebCore::FontDescription::invalidateCaches): |
| (WebCore::FontCascadeDescription::effectiveFamilyCount): |
| (WebCore::FontCascadeDescription::effectiveFamilyAt): |
| * platform/graphics/FontDescription.h: Our new data type is a Variant of AtomicString and a |
| platform-specific class. Cocoa uses a class that holds a CTFontDescriptorRef and other ports |
| use an empty non-constructable class. |
| * platform/graphics/FontFamilySpecificationNull.h: Added. The empty non-constructable |
| class. |
| (WebCore::FontFamilySpecificationNull::fontRanges): |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::FontCache::platformInit): Changing the system language will change the system font |
| fallback list, so we need to listen to this notification. This also matters for |
| FontCache::systemFallbackForCharacters(), so we should build off the same callback we are |
| already using for font installation. |
| (WebCore::invalidateFontCache): |
| * platform/graphics/cocoa/FontDescriptionCocoa.cpp: Added. The platform-specific creation of |
| our CTFontDescriptorRefs. We hold them cached in a SystemFontDatabase. |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::CoreTextCascadeListParameters): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::isHashTableDeletedValue): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::operator==): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::hash): |
| (WebCore::SystemFontDatabase::singleton): |
| (WebCore::SystemFontDatabase::systemFontCascadeList): |
| (WebCore::SystemFontDatabase::clear): |
| (WebCore::SystemFontDatabase::SystemFontDatabase): |
| (WebCore::SystemFontDatabase::applyWeightAndItalics): |
| (WebCore::SystemFontDatabase::computeCascadeList): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParametersHash::hash): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParametersHash::equal): |
| (WebCore::isSystemFontString): |
| (WebCore::systemFontParameters): |
| (WebCore::FontDescription::invalidateCaches): |
| (WebCore::FontCascadeDescription::effectiveFamilyCount): We don't store the result of this |
| because it would probably be a bad idea to increase the size of every single FontCascade just |
| in case it might ask for the system font. Most fonts never mention system-ui. Because it's so |
| rare, we can just recalculate the result of this as necessary. This shouldn't be slow because |
| the results are cached. |
| (WebCore::FontCascadeDescription::effectiveFamilyAt): |
| * platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp: Added. |
| (WebCore::FontFamilySpecificationCoreText::fontRanges): Create a FontRanges from a |
| CTFontDescriptorRef. |
| * platform/graphics/cocoa/FontFamilySpecificationCoreText.h: Added. |
| (WebCore::FontFamilySpecificationCoreText::FontFamilySpecificationCoreText): |
| * platform/graphics/ios/FontCacheIOS.mm: Delete the old handling for system-ui. |
| (WebCore::platformFontWithFamilySpecialCase): |
| (WebCore::baseSystemFontDescriptor): Deleted. |
| (WebCore::systemFontModificationAttributes): Deleted. |
| (WebCore::systemFontDescriptor): Deleted. |
| * platform/graphics/mac/FontCacheMac.mm: Ditto. |
| (WebCore::platformFontWithFamilySpecialCase): |
| (WebCore::toNSFontWeight): Deleted. |
| |
| 2017-06-08 Chris Dumez <cdumez@apple.com> |
| |
| Update Timer to take a WTF::Function instead of a std::function |
| https://bugs.webkit.org/show_bug.cgi?id=173113 |
| |
| Reviewed by Brady Eidson. |
| |
| Update Timer to take a WTF::Function instead of a std::function as we prefer |
| to use WTF::Function in WebKit. |
| |
| * platform/GenericTaskQueue.cpp: |
| (WebCore::TaskDispatcher<Timer>::sharedTimer): |
| * platform/Timer.h: |
| (WebCore::Timer::Timer): |
| (WebCore::DeferrableOneShotTimer::DeferrableOneShotTimer): |
| |
| 2017-06-08 Carlos Alberto Lopez Perez <clopez@igalia.com> |
| |
| [WebRTC] enableMockMediaEndpoint() is only used for the OpenWebRTC backend. |
| https://bugs.webkit.org/show_bug.cgi?id=173108 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by existing tests. |
| |
| * testing/Internals.cpp: |
| (WebCore::Internals::Internals): |
| (WebCore::Internals::enableMockMediaEndpoint): |
| * testing/Internals.h: |
| |
| 2017-06-08 Antoine Quint <graouts@apple.com> |
| |
| [iOS] Buttons in top-left and bottom media controls bar are positioned too high |
| https://bugs.webkit.org/show_bug.cgi?id=173111 |
| <rdar://problem/32650615> |
| |
| Reviewed by Jon Lee. |
| |
| Test: media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-button-padding.html |
| |
| Since we use flex box to vertically center buttons in a buttons container, there is no |
| need to offset the button due to padding in the y-axis. |
| |
| * Modules/modern-media-controls/controls/buttons-container.css: |
| (.ios .buttons-container button): |
| |
| 2017-06-08 Jeremy Jones <jeremyj@apple.com> |
| |
| Implement additional AVPlayerController interfaces for minTime and maxTime. |
| https://bugs.webkit.org/show_bug.cgi?id=172396 |
| rdar://problem/30737452 |
| |
| Reviewed by Jer Noble. |
| |
| No new tests because no change to DOM. |
| |
| Add support for new HLS UI in AVKit. |
| |
| This adds new properties (seekableTimeRangesLastModifiedTime, liveUpdateInterval, minTiming, maxTiming) to WebAVPlayerController. |
| Plumb these properties from AVPlayer up to AVKit. |
| |
| Switch WebPlaybackSessionModelMediaElement from updating seekableRangesChanged using timeupdate event to using progress event. |
| |
| Enable progress events on iOS. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::HTMLMediaElement): |
| (WebCore::HTMLMediaElement::loadResource): |
| (WebCore::HTMLMediaElement::seekableTimeRangesLastModifiedTime): |
| (WebCore::HTMLMediaElement::liveUpdateInterval): |
| * html/HTMLMediaElement.h: |
| * platform/cf/CoreMediaSoftLink.cpp: |
| * platform/cf/CoreMediaSoftLink.h: |
| * platform/cocoa/WebPlaybackSessionModel.h: |
| (WebCore::WebPlaybackSessionModelClient::seekableRangesChanged): |
| * platform/cocoa/WebPlaybackSessionModelMediaElement.h: |
| * platform/cocoa/WebPlaybackSessionModelMediaElement.mm: |
| (WebCore::WebPlaybackSessionModelMediaElement::updateForEventName): |
| (WebCore::WebPlaybackSessionModelMediaElement::observedEventNames): |
| (WebCore::WebPlaybackSessionModelMediaElement::seekableTimeRangesLastModifiedTime): |
| (WebCore::WebPlaybackSessionModelMediaElement::liveUpdateInterval): |
| * platform/graphics/MediaPlayer.cpp: |
| (WebCore::MediaPlayer::seekableTimeRangesLastModifiedTime): |
| (WebCore::MediaPlayer::liveUpdateInterval): |
| * platform/graphics/MediaPlayer.h: |
| * platform/graphics/MediaPlayerPrivate.h: |
| (WebCore::MediaPlayerPrivateInterface::seekableTimeRangesLastModifiedTime): |
| (WebCore::MediaPlayerPrivateInterface::liveUpdateInterval): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::seekableTimeRangesLastModifiedTime): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::liveUpdateInterval): |
| * platform/ios/WebAVPlayerController.h: |
| * platform/ios/WebAVPlayerController.mm: |
| (-[WebAVPlayerController init]): |
| (-[WebAVPlayerController dealloc]): |
| (-[WebAVPlayerController observeValueForKeyPath:ofObject:change:context:]): |
| (-[WebAVPlayerController updateMinMaxTiming]): |
| (-[WebAVPlayerController hasSeekableLiveStreamingContent]): |
| (+[WebAVPlayerController keyPathsForValuesAffectingHasSeekableLiveStreamingContent]): |
| (-[WebAVPlayerController resetMediaState]): |
| * platform/ios/WebPlaybackSessionInterfaceAVKit.h: |
| * platform/ios/WebPlaybackSessionInterfaceAVKit.mm: |
| (WebCore::WebPlaybackSessionInterfaceAVKit::WebPlaybackSessionInterfaceAVKit): |
| (WebCore::WebPlaybackSessionInterfaceAVKit::resetMediaState): |
| (WebCore::WebPlaybackSessionInterfaceAVKit::seekableRangesChanged): |
| * platform/ios/WebVideoFullscreenControllerAVKit.mm: |
| (WebVideoFullscreenControllerContext::seekableRangesChanged): |
| (WebVideoFullscreenControllerContext::seekableTimeRangesLastModifiedTime): |
| (WebVideoFullscreenControllerContext::liveUpdateInterval): |
| * platform/mac/WebPlaybackSessionInterfaceMac.h: |
| * platform/mac/WebPlaybackSessionInterfaceMac.mm: |
| (WebCore::WebPlaybackSessionInterfaceMac::seekableRangesChanged): |
| * platform/spi/cocoa/AVKitSPI.h: |
| * platform/spi/mac/AVFoundationSPI.h: |
| |
| 2017-06-07 Dave Hyatt <hyatt@apple.com> |
| |
| Laili restaurant menu page does not display full menu |
| https://bugs.webkit.org/show_bug.cgi?id=173062 |
| rdar://problem/32436486 |
| |
| Reviewed by Simon Fraser. |
| |
| Percentage heights inside auto containing blocks were handled correctly by |
| hasReplacedLogicalHeight, which checked hasAutoHeightOrContainingBlockWithAutoHeight |
| properly. min-max-height were not handled properly though and need to do the same check. |
| |
| There is also now a quirk for iBooks to preserve the old behavior, since they depend |
| on the old behavior to constrain the height of images to a page. |
| |
| Test: fast/replaced/max-height-percent-inside-auto-block.html |
| |
| * rendering/RenderBox.cpp: |
| (WebCore::RenderBox::replacedMinMaxLogicalHeightComputesAsNone): |
| Add a new helper that resolves min and max logical height values to none for |
| replaced elements with percentage min/max heights inside auto containing blocks. |
| |
| (WebCore::RenderBox::computeReplacedLogicalHeightRespectingMinMaxHeight): |
| Change the min/max-height constraint function for replaced elements to call the |
| new helper function. |
| |
| * rendering/RenderBox.h: |
| * rendering/RenderBoxModelObject.h: |
| Move a function from private to protected so that RenderBox can access it. |
| |
| 2017-06-08 Tim Horton <timothy_horton@apple.com> |
| |
| Add a borderless mode to <attachment>, and make it respect its layout size |
| https://bugs.webkit.org/show_bug.cgi?id=173079 |
| <rdar://problem/32491584> |
| |
| Reviewed by Simon Fraser. |
| |
| Tests: fast/attachment/attachment-borderless.html |
| fast/attachment/attachment-respects-css-size.html |
| |
| * css/CSSPrimitiveValueMappings.h: |
| (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): |
| * css/CSSValueKeywords.in: |
| * platform/ThemeTypes.h: |
| * rendering/RenderAttachment.cpp: |
| (WebCore::RenderAttachment::shouldDrawBorder): |
| * rendering/RenderAttachment.h: |
| * rendering/RenderTheme.cpp: |
| (WebCore::RenderTheme::adjustStyle): |
| (WebCore::RenderTheme::paint): |
| Add "-webkit-appearance: borderless-attachment;" in addition to "attachment", |
| so clients can specify the borderless appearance. This isn't specified as a |
| CSS border because it's a very custom appearance that isn't achievable that way. |
| |
| * rendering/RenderThemeIOS.mm: |
| (WebCore::AttachmentInfo::AttachmentInfo): |
| Use the layout size of the attachment, not the fixed size; we use the fixed |
| size as our intrinsic size, so most attachments will still be that size, |
| but if a client specifies a different size, we'll lay out correctly. |
| |
| 2017-06-08 Jer Noble <jer.noble@apple.com> |
| |
| YouTube audio stutters when page changes visibility. |
| https://bugs.webkit.org/show_bug.cgi?id=173102 |
| |
| Reviewed by Eric Carlson. |
| |
| Don't change renderers when the visibility changes; only use the decompression session |
| when we were explicitly asked to paint into an accelerated surface. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::acceleratedRenderingStateChanged): |
| |
| 2017-06-08 Jer Noble <jer.noble@apple.com> |
| |
| Clients of the WK2 C-API don't have their mediaContentTypesRequiringHardwareSupport setting initialized correctly. |
| https://bugs.webkit.org/show_bug.cgi?id=173091 |
| |
| Reviewed by Eric Carlson. |
| |
| Add a new default setting value, defined separately in Settings and SettingsCocoa. |
| |
| * page/Settings.cpp: |
| (WebCore::Settings::defaultMediaContentTypesRequiringHardwareSupport): |
| * page/Settings.h: |
| * page/cocoa/SettingsCocoa.mm: |
| (WebCore::Settings::defaultMediaContentTypesRequiringHardwareSupport): |
| |
| 2017-06-08 Jer Noble <jer.noble@apple.com> |
| |
| Take the mediaContentTypesRequiringHardwareSupport Setting into account when answering HTMLMediaElement::canPlayType() |
| https://bugs.webkit.org/show_bug.cgi?id=173092 |
| |
| Reviewed by Eric Carlson. |
| |
| Pass the value of mediaContentTypesRequiringHardwareSupport into the MediaPlayer when querying canPlayType(). |
| Then, use the existing code in AVAssetTrackUtilities to know whether to bail out early from the codec check. |
| |
| Drive-by fix: FourCC was converting String -> FourCC in reverse. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::canPlayType): |
| * platform/graphics/FourCC.cpp: |
| (WebCore::FourCC::fromString): |
| * platform/graphics/avfoundation/objc/AVAssetTrackUtilities.h: |
| * platform/graphics/avfoundation/objc/AVAssetTrackUtilities.mm: |
| (WebCore::contentTypesToCodecs): |
| (WebCore::codecsMeetHardwareDecodeRequirements): |
| (WebCore::contentTypeMeetsHardwareDecodeRequirements): |
| (WebCore::assetTrackMeetsHardwareDecodeRequirements): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType): |
| |
| 2017-06-08 Chris Dumez <cdumez@apple.com> |
| |
| ASSERTION FAILED: !m_isolatedWorld->isNormal() || m_wrapper || !m_jsFunction on webrtc/ephemeral-certificates-and-cnames.html |
| https://bugs.webkit.org/show_bug.cgi?id=173039 |
| <rdar://problem/32600412> |
| |
| Reviewed by Youenn Fablet. |
| |
| RTCPeerConnection was an ActiveDOMObject but failed to override ActiveDOMObject::hasPendingActivity() |
| to make sure its JS wrapper stays alive as long as it needs to. In this patch, we override |
| ActiveDOMObject::hasPendingActivity() and have it return true if !m_isStopped. I believe this is |
| the right thing to do to keep the wrapper alive as long as the connection is not closed. |
| RTCPeerConnection::close() closes the connection and then posts a task to call |
| RTCPeerConnection::doStop(), setting m_isStopped to true. |
| |
| No new tests, already covered by webrtc/ephemeral-certificates-and-cnames.html which |
| was a flaky crash. |
| |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::canSuspendForDocumentSuspension): |
| (WebCore::RTCPeerConnection::hasPendingActivity): |
| * Modules/mediastream/RTCPeerConnection.h: |
| |
| 2017-06-08 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK][WPE][GSTREAMER_GL] Change the colorspace used by the video frames provided by GStreamer |
| https://bugs.webkit.org/show_bug.cgi?id=173050 |
| |
| Reviewed by Žan Doberšek. |
| |
| We are currently requesting RGBA as the color format of the video frames to gstreamer. This is a problem |
| because when those frames are rendered with the CPU, the R and B components are swapped as cairo expects |
| ARGB and GStreamer delivers ABGR. |
| |
| In order to fix this without performing color conversions on the CPU, what we do is change the format |
| used by GStreamer for the video frames. We do that taking into account the endianness used. So with |
| little endian we will use BGRx or BGRA and with big endian xRGB or ARGB. Thanks to this, when downloading |
| the frames to the CPU they will automatically be turned into the ARGB expected by cairo. Also, when |
| rendering the frames using OpenGL, we indicate that the color space needs to be converted to the RGBA |
| expected by the destination texture (but this color conversion is performed by the GPU so there's no |
| penalty). |
| |
| Covered by existent tests. |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::GstVideoFrameHolder::GstVideoFrameHolder): |
| (WebCore::MediaPlayerPrivateGStreamerBase::copyVideoTextureToPlatformTexture): |
| (WebCore::MediaPlayerPrivateGStreamerBase::nativeImageForCurrentTime): |
| (WebCore::MediaPlayerPrivateGStreamerBase::createVideoSinkGL): |
| * platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp: |
| (WebCore::VideoTextureCopierGStreamer::VideoTextureCopierGStreamer): |
| (WebCore::VideoTextureCopierGStreamer::updateColorConversionMatrix): |
| (WebCore::VideoTextureCopierGStreamer::copyVideoTextureToPlatformTexture): |
| * platform/graphics/gstreamer/VideoTextureCopierGStreamer.h: |
| * platform/graphics/texmap/TextureMapperGL.cpp: |
| (WebCore::colorSpaceMatrixForFlags): |
| * platform/graphics/texmap/TextureMapperGL.h: |
| |
| 2017-06-07 Ryosuke Niwa <rniwa@webkit.org> |
| |
| IsInShadowTreeFlag does not get updated for a non-container node |
| https://bugs.webkit.org/show_bug.cgi?id=173084 |
| |
| Reviewed by Antti Koivisto. |
| |
| insertedInto and removedFrom were only called on ContainerNode nodes when they're not connected to a document. |
| As a result IsInShadowTreeFlag could have gotten out-of-date when a node was inserted or removed from a shadow root |
| which is not connected to a document. |
| |
| Fixed this inconsistency by always falling insertedInto and removedFrom on all nodes. |
| |
| * dom/ContainerNodeAlgorithms.cpp: |
| (WebCore::notifyNodeInsertedIntoDocument): Merged notifyDescendantInsertedIntoDocument. Now takes a Node instead |
| of a ContainerNode. |
| (WebCore::notifyNodeInsertedIntoTree): Merged notifyDescendantInsertedIntoTree. Now takes a Node instead of |
| a ContainerNode. |
| (WebCore::notifyChildNodeInserted): Always call notifyNodeInsertedIntoTree on an inserted node. |
| (WebCore::notifyNodeRemovedFromDocument): Now takes a Node instead of a ContainerNode. |
| (WebCore::notifyNodeRemovedFromTree): Ditto. |
| (WebCore::notifyChildNodeRemoved): Always call notifyNodeRemovedFromTree on an inserted node. |
| (WebCore::addChildNodesToDeletionQueue): Directly call adoptIfNeeded on document() since onwerDocument() only returns |
| nullptr on a Document node but this function is never called on a root node and Document can only be a root node. |
| Also assert that a node not put into the deletion queue is no longer in a document or a shadow tree. |
| |
| * dom/Node.cpp: |
| (WebCore::Node::insertedInto): Removed the assertion that's no longer true. |
| (WebCore::Node::removedFrom): Ditto. |
| |
| 2017-06-07 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [WPE] Enable resource usage |
| https://bugs.webkit.org/show_bug.cgi?id=173054 |
| |
| Reviewed by Žan Doberšek. |
| |
| Add resource usage linux files to the compilation. |
| |
| * PlatformWPE.cmake: |
| |
| 2017-06-07 Jer Noble <jer.noble@apple.com> |
| |
| [Web Audio] createScriptProcessor throws IndexSizeError for valid arguments |
| https://bugs.webkit.org/show_bug.cgi?id=173022 |
| |
| Reviewed by Sam Weinig. |
| |
| Updated test: webaudio/javascriptaudionode.html |
| |
| The Web Audio spec (<https://webaudio.github.io/web-audio-api/>, 06 June 2017) defines a default behavior when |
| clients pass in a value of 0 for bufferSize to the createScriptProcessor() method. |
| |
| * Modules/webaudio/AudioContext.cpp: |
| (WebCore::AudioContext::createScriptProcessor): |
| * Modules/webaudio/AudioContext.idl: |
| * Modules/webaudio/ScriptProcessorNode.cpp: |
| (WebCore::ScriptProcessorNode::create): |
| * Modules/webaudio/ScriptProcessorNode.h: |
| |
| 2017-06-07 Chris Dumez <cdumez@apple.com> |
| |
| CSSStyleRule.style / CSSPageRule.style / CSSKeyframeRule.style should be settable |
| https://bugs.webkit.org/show_bug.cgi?id=164537 |
| <rdar://problem/29181773> |
| |
| Reviewed by Sam Weinig. |
| |
| CSSStyleRule.style / CSSPageRule.style / CSSKeyframeRule.style should be settable |
| as per: |
| - https://drafts.csswg.org/cssom/#the-cssstylerule-interface |
| - https://drafts.csswg.org/cssom/#the-csspagerule-interface |
| - https://drafts.csswg.org/css-animations/#interface-csskeyframerule |
| |
| Tests: |
| http/wpt/cssom/CSSPageRule.html |
| imported/w3c/web-platform-tests/cssom/CSSKeyframeRule.html |
| imported/w3c/web-platform-tests/cssom/CSSStyleRule.html |
| imported/w3c/web-platform-tests/cssom/interfaces.html |
| |
| * css/CSSKeyframeRule.idl: |
| * css/CSSPageRule.idl: |
| * css/CSSStyleRule.idl: |
| |
| 2017-06-07 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Split up attribute generation to match operation generation |
| https://bugs.webkit.org/show_bug.cgi?id=173072 |
| |
| Reviewed by Chris Dumez. |
| |
| * bindings/js/JSDOMAttribute.h: |
| (WebCore::IDLAttribute::setStatic): |
| (WebCore::IDLAttribute::getStatic): |
| Add static variants of get/set matching the one in IDLOperation. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GetFullyQualifiedImplementationCallName): |
| Factor out duplicate code to compute the qualified name for a function call. |
| |
| (AddAdditionalArgumentsForImplementationCall): |
| Factor out duplicate code to compute the some standard arguments for a function |
| call. We may want to merge this with GenerateCallWith. |
| |
| (GenerateHeader): |
| Update for new signature of HasCustom... subroutines. |
| |
| (GenerateImplementation): |
| Pass @implContent to more helper generators to continue propagating the idiom. |
| |
| (GenerateAttributeGetterBodyDefinition): |
| (GenerateAttributeGetterTrampolineDefinition): |
| (GenerateAttributeGetterDefinition): |
| (GenerateAttributeSetterBodyDefinition): |
| (GenerateAttributeSetterTrampolineDefinition): |
| (GenerateAttributeSetterDefinition): |
| Split attribute getter and setter generation up by having separate subroutines |
| to generate the trampoline and body. Also, make all attributes, even static ones |
| use a trampoline to simplify the code. Static attributes got through a no-op |
| trampoline, that gets compiled away. Also adopt GetFullyQualifiedImplementationCallName |
| and AddAdditionalArgumentsForImplementationCall to reduce duplication. |
| |
| (GenerateOperationBodyDefinition): |
| (GenerateOperationDefinition): |
| Adopt $outputArray idiom and adopt GetFullyQualifiedImplementationCallName |
| and AddAdditionalArgumentsForImplementationCall to reduce duplication |
| |
| (GenerateParametersCheck): |
| Adopt GetFullyQualifiedImplementationCallName and AddAdditionalArgumentsForImplementationCall |
| to reduce duplication. |
| |
| (HasCustomGetter): |
| (HasCustomSetter): |
| (HasCustomMethod): |
| Convert HasCustom... subroutines to take an IDLAttribute rather than the extended |
| attributes, matching other predicates |
| |
| * bindings/scripts/test/JS/JSTestInterface.cpp: |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| * bindings/scripts/test/JS/JSTestTypedefs.cpp: |
| Update test results. |
| |
| 2017-06-07 Youenn Fablet <youenn@apple.com> |
| |
| RTCTrackEvent.track should be found in RTCTrackEvent.streams[0] |
| https://bugs.webkit.org/show_bug.cgi?id=173074 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by updated test. |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::addTrackFromPlatform): |
| |
| 2017-06-07 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Add ContextMenu item to log WebSocket object to console |
| https://bugs.webkit.org/show_bug.cgi?id=172878 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Test: http/tests/websocket/tests/hybi/inspector/resolveWebSocket.html |
| |
| * inspector/InspectorNetworkAgent.h: |
| * inspector/InspectorNetworkAgent.cpp: |
| (WebCore::InspectorNetworkAgent::InspectorNetworkAgent): |
| (WebCore::InspectorNetworkAgent::webSocketForRequestId): |
| (WebCore::webSocketAsScriptValue): |
| (WebCore::InspectorNetworkAgent::resolveWebSocket): |
| Loops over the static allActiveWebSockets to find one with the given requestId. If found, it |
| will create a RemoteObject wrapper for it and send it back to the inspector. |
| |
| 2017-06-07 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Allow user to choose stylesheet when creating new rules |
| https://bugs.webkit.org/show_bug.cgi?id=172487 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| New test: inspector/css/add-rule.html |
| |
| * inspector/InspectorStyleSheet.cpp: |
| (WebCore::InspectorStyleSheet::addRule): |
| Reparse the content when a new rule is added to a non-inspector origin stylesheet. |
| |
| 2017-06-07 Youenn Fablet <youenn@apple.com> |
| |
| getUserMedia is prompting too often |
| https://bugs.webkit.org/show_bug.cgi?id=172859 |
| <rdar://problem/32589950> |
| |
| Reviewed by Eric Carlson. |
| |
| Tests: fast/mediastream/getUserMedia-grant-persistency-reload.html |
| fast/mediastream/getUserMedia-grant-persistency.html |
| |
| * loader/FrameLoaderClient.h: |
| * page/Frame.cpp: |
| (WebCore::Frame::setDocument): Allows notifying of change of main frame document. |
| UIProcess will use that to remove unneeded previously granted gum permission. |
| |
| 2017-06-07 Chris Dumez <cdumez@apple.com> |
| |
| Align <col span>/<colgroup span> limits with the latest HTML specification |
| https://bugs.webkit.org/show_bug.cgi?id=173049 |
| |
| Reviewed by Daniel Bates. |
| |
| Align <col span>/<colgroup span> limits with the latest HTML specification after: |
| - https://github.com/whatwg/html/issues/2705 |
| - https://github.com/whatwg/html/pull/2734 |
| |
| In particular, col / colspan's span attribute is now clamped to the [1, 1000] range. |
| |
| Test: imported/w3c/web-platform-tests/html/semantics/tabular-data/processing-model-1/col-span-limits.html |
| |
| [1] https://html.spec.whatwg.org/#dom-colgroup-span |
| [2] https://html.spec.whatwg.org/#clamped-to-the-range |
| [3] https://github.com/whatwg/html/pull/2734/files |
| |
| * html/HTMLTableColElement.cpp: |
| (WebCore::HTMLTableColElement::parseAttribute): |
| As per [1][2], the span attribute should be clamped to the range [1, 1000] with a default value of 1 (on getting). |
| |
| (WebCore::HTMLTableColElement::setSpan): |
| As per [2], on setting, we should behave the same as setting a regular reflected unsigned integer when an attribute |
| is clamped to a range. Therefore, we now call limitToOnlyHTMLNonNegative() instead of |
| limitToOnlyHTMLNonNegativeNumbersGreaterThanZero(). We used to call limitToOnlyHTMLNonNegativeNumbersGreaterThanZero() |
| because the value used to be limited to only non-negative numbers greater than zero with fallback before [3]. Without |
| this change, "col.span = 0" would set the content attribute to 1 instead of 0, which would be wrong. |
| |
| 2017-06-07 Jer Noble <jer.noble@apple.com> |
| |
| Exempt exclusively wall-powered devices from hardware codec requirement |
| https://bugs.webkit.org/show_bug.cgi?id=173009 |
| |
| Reviewed by Eric Carlson. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/graphics/avfoundation/objc/AVAssetTrackUtilities.mm: |
| (WebCore::systemHasBattery): |
| (WebCore::assetTrackMeetsHardwareDecodeRequirements): |
| * platform/spi/cocoa/IOPSLibSPI.h: Added. |
| |
| 2017-06-07 Jer Noble <jer.noble@apple.com> |
| |
| Refactoring: MediaEngineSupportParameters should take a ContentType rather than separate type & codecs strings |
| https://bugs.webkit.org/show_bug.cgi?id=173038 |
| |
| Reviewed by Eric Carlson. |
| |
| * Modules/encryptedmedia/CDM.cpp: |
| (WebCore::CDM::getSupportedCapabilitiesForAudioVideoType): |
| * Modules/mediasource/MediaSource.cpp: |
| (WebCore::MediaSource::addSourceBuffer): |
| (WebCore::MediaSource::isTypeSupported): |
| * dom/DOMImplementation.cpp: |
| (WebCore::DOMImplementation::createDocument): |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::canPlayType): |
| (WebCore::HTMLMediaElement::selectNextSourceChild): |
| * platform/ContentType.cpp: |
| (WebCore::ContentType::codecsParameter): |
| (WebCore::ContentType::profilesParameter): |
| (WebCore::ContentType::containerType): |
| (WebCore::simplifyWhitespace): |
| (WebCore::ContentType::codecs): |
| (WebCore::ContentType::profiles): |
| (WebCore::ContentType::type): Deleted. |
| * platform/ContentType.h: |
| * platform/graphics/MediaPlayer.cpp: |
| (WebCore::bestMediaEngineForSupportParameters): |
| (WebCore::MediaPlayer::load): |
| (WebCore::MediaPlayer::nextBestMediaEngine): |
| (WebCore::MediaPlayer::loadWithNextMediaEngine): |
| (WebCore::MediaPlayer::supportsType): |
| (WebCore::MediaPlayer::networkStateChanged): |
| (WebCore::codecs): Deleted. |
| * platform/graphics/MediaPlayer.h: |
| (WebCore::MediaPlayer::contentMIMEType): |
| (WebCore::MediaPlayer::contentTypeCodecs): |
| * platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm: |
| (WebCore::CDMPrivateMediaSourceAVFObjC::supportsKeySystemAndMimeType): |
| (WebCore::CDMPrivateMediaSourceAVFObjC::supportsMIMEType): |
| * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: |
| (WebCore::MediaPlayerPrivateAVFoundationCF::supportsType): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType): |
| * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm: |
| (WebCore::MediaSourcePrivateAVFObjC::addSourceBuffer): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::MediaPlayerPrivateGStreamer::supportsType): |
| * platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerMSE::supportsType): |
| * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: |
| (WebCore::MediaPlayerPrivateQTKit::supportsType): |
| * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp: |
| (WebCore::MediaPlayerPrivateMediaFoundation::supportsType): |
| * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp: |
| (WebCore::MockMediaPlayerMediaSource::supportsType): |
| * platform/mock/mediasource/MockMediaSourcePrivate.cpp: |
| (WebCore::MockMediaSourcePrivate::addSourceBuffer): |
| |
| 2017-06-07 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Use a dedicated node flag to identify a Document node |
| https://bugs.webkit.org/show_bug.cgi?id=173037 |
| |
| Reviewed by Chris Dumez. |
| |
| Address Antti's review comment. We don't need a new Node flg. |
| |
| * dom/Node.h: |
| (WebCore::Node::isDocumentNode): |
| |
| 2017-06-07 Jon Davis <jond@apple.com> |
| |
| Update feature status for features Supported In Preview |
| https://bugs.webkit.org/show_bug.cgi?id=173071 |
| |
| Reviewed by Darin Adler. |
| |
| Updated WebAssembly. |
| |
| * features.json: |
| |
| 2017-06-07 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] PutForwards is not implemented to spec as illustrated by the WPT WebIDL/ecmascript-binding/put-forwards.html |
| https://bugs.webkit.org/show_bug.cgi?id=172956 |
| |
| Reviewed by Chris Dumez. |
| |
| Implements step 3.5.9 of https://heycam.github.io/webidl/#dfn-attribute-setter. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateAttributeSetterDefinition): |
| Implement [PutForwards] to spec, which involves using JSC get/set rather than calling |
| directly into the implementation. |
| |
| * bindings/scripts/test/JS/JSTestCEReactions.cpp: |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| Update test results. |
| |
| 2017-06-07 Jer Noble <jer.noble@apple.com> |
| |
| Clean-up: RenderElement.h includes headers it doesn't use |
| https://bugs.webkit.org/show_bug.cgi?id=173046 |
| |
| Reviewed by Andy Estes. |
| |
| Remove a couple of unneeded includes from RenderElement.h, and then clean up all the |
| follow-on compile errors that causes. Mostly, these errors are fixed by including the |
| correct headers at the point of use; otherwise, they're solved by forward-declaring types |
| and in one case by moving default constructors implementation to the cpp file from the header. |
| |
| * css/parser/SizesAttributeParser.cpp: |
| * editing/cocoa/EditorCocoa.mm: |
| * platform/mac/PasteboardMac.mm: |
| * rendering/InlineIterator.h: |
| (WebCore::embedCharFromDirection): |
| * rendering/RenderBoxModelObject.h: |
| * rendering/RenderElement.cpp: |
| * rendering/RenderElement.h: |
| * rendering/RenderIterator.h: |
| * rendering/RenderLineBreak.cpp: |
| * rendering/RenderQuote.cpp: |
| * rendering/RenderText.h: |
| * rendering/SimpleLineLayoutPagination.cpp: |
| * rendering/SimpleLineLayoutTextFragmentIterator.cpp: |
| * rendering/TextAutoSizing.cpp: |
| * rendering/style/RenderStyle.cpp: |
| * rendering/style/RenderStyle.h: |
| * style/RenderTreeUpdater.cpp: |
| * style/StyleResolveForDocument.cpp: |
| * style/StyleTreeResolver.cpp: |
| |
| 2017-06-07 Youenn Fablet <youenn@apple.com> |
| |
| Add WebRTC stats logging |
| https://bugs.webkit.org/show_bug.cgi?id=173045 |
| |
| Reviewed by Eric Carlson. |
| |
| No change of behavior. |
| |
| Do release logging of WebRTC stats once remote description is set. |
| Do logging every second for the first 30 seconds. |
| After 30 seconds, do release logging of these stats every 5 seconds. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::LibWebRTCMediaEndpoint): |
| (WebCore::LibWebRTCMediaEndpoint::stop): |
| (WebCore::LibWebRTCMediaEndpoint::gatherStatsForLogging): |
| (WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered): |
| (WebCore::LibWebRTCMediaEndpoint::startLoggingStats): |
| (WebCore::LibWebRTCMediaEndpoint::stopLoggingStats): |
| (WebCore::LibWebRTCPeerConnectionBackend::doSetRemoteDescription): |
| |
| 2017-06-07 Per Arne Vollan <pvollan@apple.com> |
| |
| Support removal of authentication data through the Website data store API. |
| https://bugs.webkit.org/show_bug.cgi?id=171217 |
| |
| Reviewed by Brady Eidson. |
| |
| Add support to remove and fetch credential data through the Website data store API. |
| |
| Test: http/tests/loading/basic-auth-remove-credentials.html |
| |
| * platform/network/CredentialStorage.h: |
| (WebCore::CredentialStorage::originsWithCredentials): |
| |
| 2017-06-07 Per Arne Vollan <pvollan@apple.com> |
| |
| AudioSourceProviderAVFObjC::m_tap member access is not thread safe. |
| https://bugs.webkit.org/show_bug.cgi?id=172263 |
| |
| Reviewed by Darin Adler. |
| |
| It it possible that the main thread will modify the m_tap member by calling |
| AudioSourceProviderAVFObjC::destroyMix(), while m_tap is being read on a secondary |
| thread under AudioSourceProviderAVFObjC::processCallback(). Instead of accessing |
| the m_tap member on the secondary thread, we can use the same MTAudioProcessingTapRef |
| provided by MediaToolbox in the callback. We assume the tap ref is retained by |
| MediaToolbox, so it should be safe to use even if the the m_tap member is set to null. |
| |
| Covered by existing tests. |
| |
| * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.h: |
| * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm: |
| (WebCore::AudioSourceProviderAVFObjC::processCallback): |
| (WebCore::AudioSourceProviderAVFObjC::process): |
| |
| 2017-06-07 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] RSA-PSS support |
| https://bugs.webkit.org/show_bug.cgi?id=172856 |
| |
| Reviewed by Jiewen Tan. |
| |
| Implement RSA-PSS support for Web Crypto API in ports that use libgcrypt. |
| |
| For the signing operation, the digest algorithm is determined and used to |
| compute the hash of the passed-in data. The given salt length and hash results |
| are embedded into a data s-expression, specifying PSS as the preferred type of |
| padding. This s-expression and the provided key are then passed to the |
| gcry_pk_sign() call which computes the signature. The MPI data of this signature |
| is retrieved and its size validated before being passed to the success callback. |
| |
| For the verification operation, the hash of the passed-in data is computed as |
| before, embedding it into a data s-expression along with the specified salt |
| length. The passed-in signature data is embedded into a sig-val s-expression. |
| The two s-expressions are passed to the gcry_pk_verify() call along with the |
| key. If the returned error code for this operation is GPG_ERR_NO_ERROR the |
| verification is deemed successful, while in case of any other error code (which |
| might indicate a verification failure or an operation error) we simply signal |
| that the verification step failed (and not that it possibly errored out). |
| |
| No new tests -- covered by existing tests. |
| |
| * PlatformGTK.cmake: Add the new build targets. |
| * PlatformWPE.cmake: Ditto. |
| * crypto/gcrypt/CryptoAlgorithmRSA_PSSGCrypt.cpp: Added. |
| (WebCore::gcryptSign): |
| (WebCore::gcryptVerify): |
| (WebCore::CryptoAlgorithmRSA_PSS::platformSign): |
| (WebCore::CryptoAlgorithmRSA_PSS::platformVerify): |
| * crypto/gcrypt/CryptoAlgorithmRegistryGCrypt.cpp: |
| (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): Register the RSA-PSS algorithm. |
| |
| 2017-06-07 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Merge TreeScopeAdopter into TreeScope |
| https://bugs.webkit.org/show_bug.cgi?id=173040 |
| |
| Reviewed by Antti Koivisto. |
| |
| Merged TreeScopeAdopter into TreeScope since it's used by TreeScope::adoptIfNeeded. |
| |
| Most of code changes are for didMoveToNewDocument taking the new document as an argument, |
| which is used by ShadowRoot::didMoveToNewDocument to update its document scope. |
| |
| No new tests since there should be no behavioral change. |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * dom/Element.cpp: |
| (WebCore::Element::didMoveToNewDocument): |
| * dom/Element.h: |
| * dom/Node.cpp: |
| (WebCore::Node::didMoveToNewDocument): Moved the code to moves the node lists and node iterators here |
| from TreeScopeAdopter::moveNodeToNewDocument. |
| * dom/Node.h: |
| * dom/ShadowRoot.cpp: |
| (WebCore::ShadowRoot::didMoveToNewDocument): Moved the code to update the document scope here |
| from TreeScopeAdopter::moveNodeToNewDocument. |
| * dom/ShadowRoot.h: |
| * dom/TreeScope.cpp: |
| (WebCore::TreeScope::adoptIfNeeded): |
| (WebCore::TreeScope::moveTreeToNewScope): Moved from TreeScopeAdopter. Now takes the old tree scope and |
| the new tree scope as arguments (they used to be members of TreeScopeAdopter). Also merged updateTreeScope |
| into this function. |
| (WebCore::TreeScope::ensureDidMoveToNewDocumentWasCalled): Moved from TreeScopeAdopter. |
| (WebCore::TreeScope::moveNodeToNewDocument): Ditto. The code to adopt node lists and node iterators have |
| been moved to Node::didMoveToNewDocument. |
| (WebCore::TreeScope::moveShadowTreeToNewDocument): Moved from TreeScopeAdopter. |
| * dom/TreeScope.h: |
| (WebCore::TreeScope::ensureDidMoveToNewDocumentWasCalled): |
| * dom/TreeScopeAdopter.cpp: Removed. |
| * dom/TreeScopeAdopter.h: Removed. |
| * html/HTMLFieldSetElement.cpp: |
| (WebCore::HTMLFieldSetElement::didMoveToNewDocument): |
| * html/HTMLFieldSetElement.h: |
| * html/HTMLFormControlElement.cpp: |
| (WebCore::HTMLFormControlElement::didMoveToNewDocument): |
| * html/HTMLFormControlElement.h: |
| * html/HTMLFormElement.cpp: |
| (WebCore::HTMLFormElement::didMoveToNewDocument): |
| * html/HTMLFormElement.h: |
| * html/HTMLImageElement.cpp: |
| (WebCore::HTMLImageElement::didMoveToNewDocument): |
| * html/HTMLImageElement.h: |
| * html/HTMLInputElement.cpp: |
| (WebCore::HTMLInputElement::didMoveToNewDocument): Grouped related function calls on new/old documents. |
| * html/HTMLInputElement.h: |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::didMoveToNewDocument): |
| * html/HTMLMediaElement.h: |
| * html/HTMLObjectElement.cpp: |
| (WebCore::HTMLObjectElement::didMoveToNewDocument): |
| * html/HTMLObjectElement.h: |
| * html/HTMLPictureElement.cpp: |
| (WebCore::HTMLPictureElement::didMoveToNewDocument): |
| * html/HTMLPictureElement.h: |
| * html/HTMLPlugInImageElement.cpp: |
| (WebCore::HTMLPlugInImageElement::didMoveToNewDocument): |
| * html/HTMLPlugInImageElement.h: |
| * html/HTMLTemplateElement.cpp: |
| (WebCore::HTMLTemplateElement::didMoveToNewDocument): |
| * html/HTMLTemplateElement.h: |
| * html/HTMLVideoElement.cpp: |
| (WebCore::HTMLVideoElement::didMoveToNewDocument): |
| * html/HTMLVideoElement.h: |
| * html/ImageDocument.cpp: |
| (WebCore::ImageDocumentElement::didMoveToNewDocument): |
| * svg/SVGImageElement.cpp: |
| (WebCore::SVGImageElement::didMoveToNewDocument): |
| * svg/SVGImageElement.h: |
| * svg/SVGSVGElement.cpp: |
| (WebCore::SVGSVGElement::didMoveToNewDocument): |
| * svg/SVGSVGElement.h: |
| |
| 2017-06-06 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Use a dedicated node flag to identify a Document node |
| https://bugs.webkit.org/show_bug.cgi?id=173037 |
| |
| Reviewed by Chris Dumez. |
| |
| Use a Node flag to identify a Document node instead of checking this == document() which loads TreeScope. |
| |
| * dom/Document.h: |
| (WebCore::Node::isDocumentNode): Deleted. |
| * dom/Node.h: |
| (WebCore::Node::isDocumentNode): |
| |
| 2017-06-06 Dan Bernstein <mitz@apple.com> |
| |
| Fixed building with the macOS 10.13 Apple Internal SDK when targeting macOS 10.12. |
| |
| * platform/spi/cocoa/PassKitSPI.h: |
| |
| 2017-06-06 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r214974. |
| |
| Causes some tabs to start using a huge amount of CPU after 8 |
| minutes in the background |
| |
| Reverted changeset: |
| |
| "Make inactive web processes behave as though under memory |
| pressure." |
| https://bugs.webkit.org/show_bug.cgi?id=170042 |
| http://trac.webkit.org/changeset/214974 |
| |
| 2017-06-06 Tim Horton <timothy_horton@apple.com> |
| |
| Crash trying to drag the entire text of a long book out of Mail compose view |
| https://bugs.webkit.org/show_bug.cgi?id=173042 |
| <rdar://problem/32382059> |
| |
| Reviewed by Simon Fraser. |
| |
| Creating a TextIndicator that is hundreds of thousands of pixels tall |
| is not a good idea. We introduced TextIndicatorOptionDoNotClipToVisibleRect |
| so that (for example) an image that overhangs the edge of the page would |
| contain the entire image, instead of just the visible fragment. |
| Instead, rename this option to ExpandClipBeyondVisibleRect, and make it |
| not unclip *entirely*, but expand the clip significantly (50% in each direction) |
| beyond the bounds of the current visible rect. Also, make use of exposed |
| area information for this clipping; otherwise, clients with very large views |
| inside scrollable areas (like Mail) would still try to create large TextIndicators. |
| |
| * page/TextIndicator.cpp: |
| (WebCore::initializeIndicator): |
| * page/TextIndicator.h: |
| |
| 2017-06-06 Chris Dumez <cdumez@apple.com> |
| |
| RELEASE_ASSERT(static_cast<size_t>(enumerationValue) < WTF_ARRAY_LENGTH(values)) hit in convertEnumerationToJS<WebCore::History::ScrollRestoration>() |
| https://bugs.webkit.org/show_bug.cgi?id=173033 |
| <rdar://problem/32591099> |
| |
| Reviewed by Simon Fraser. |
| |
| History::scrollRestoration() was returning a bad value because HistoryItem::m_shouldRestoreScrollPosition |
| was initialized from FrameState::shouldRestoreScrollPosition member, which was not initialized when |
| restored from the legacy session restore API. |
| |
| Tests: WebKit2.RestoreSessionStateContainingScrollRestoration* API tests. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateEnumerationImplementationContent): |
| Drop the RELEASE_ASSERT that was added to debug this and use the regular debug ASSERT. |
| |
| * history/HistoryItem.cpp: |
| (WebCore::HistoryItem::setShouldRestoreScrollPosition): |
| Make sure we notify that the HistoryItem has changed when setShouldRestoreScrollPosition() |
| is called. |
| |
| 2017-06-06 Darin Adler <darin@apple.com> |
| |
| Update to slightly stricter rules for custom element names from more recent standard draft |
| https://bugs.webkit.org/show_bug.cgi?id=173019 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * bindings/js/JSCustomElementRegistryCustom.cpp: |
| (WebCore::validateCustomElementNameAndThrowIfNeeded): Add more error strings for various error cases. |
| |
| * dom/Document.cpp: |
| (WebCore::isPotentialCustomElementNameCharacter): Added. Implements the PCENChar production |
| from the standard by listing all the ranges exactly as they appear in the standard. |
| (WebCore::Document::validateCustomElementName): Added a check that the first character is |
| a lowercase ASCII letter. Added a check that all characters are potential custom element |
| name characters. |
| |
| * dom/Document.h: Update the CustomElementNameValidationStatus with new values for |
| the various new error cases. Not sure that validateCustomElementName really belongs |
| in the Document class in the first place. Also seems that the error strings could be |
| in validateCustomElementName rather than in a separate bindings function, obviating |
| the need for the enum. |
| |
| 2017-06-06 Yoav Weiss <yoav@yoav.ws> |
| |
| [preload] Conditional support for media preloading and align media `as` values. |
| https://bugs.webkit.org/show_bug.cgi?id=172501 |
| |
| Reviewed by Dean Jackson. |
| |
| As discussed at https://bugs.webkit.org/show_bug.cgi?id=171720#c11 media preloading may not work |
| since the backend may not reuse such resources properly. |
| This patch makes support for media preloading conditional on a setting, in order to avoid double downloads in these cases. |
| It also aligns the media `as` values to the spec, and splitting them into "video" and "audio". |
| |
| No new tests but related tests were modified to remove media preloading tests as the setting is off by default. |
| |
| * loader/LinkLoader.cpp: |
| (WebCore::LinkLoader::resourceTypeFromAsAttribute): Make handling of MediaResource conditional on setting. Align `as` values to spec. |
| (WebCore::createLinkPreloadResourceClient): Make handling of MediaResource conditional on setting. |
| (WebCore::LinkLoader::isSupportedType): Make handling of MediaResource conditional on setting. |
| * page/RuntimeEnabledFeatures.h: Added a media preloading preference. |
| (WebCore::RuntimeEnabledFeatures::setMediaPreloadingEnabled): |
| (WebCore::RuntimeEnabledFeatures::mediaPreloadingEnabled): |
| * page/Settings.in: Added a media preloading preference. |
| |
| 2017-06-06 Don Olmstead <don.olmstead@am.sony.com> |
| |
| [WebCore] Enable REQUEST_ANIMATION_FRAME_TIMER for all ports |
| https://bugs.webkit.org/show_bug.cgi?id=172780 |
| |
| Reviewed by Alex Christensen. |
| |
| No new tests. No change in behavior. |
| |
| * dom/ScriptedAnimationController.cpp: |
| (WebCore::ScriptedAnimationController::ScriptedAnimationController): |
| (WebCore::ScriptedAnimationController::addThrottlingReason): |
| (WebCore::ScriptedAnimationController::removeThrottlingReason): |
| (WebCore::ScriptedAnimationController::isThrottled): |
| (WebCore::ScriptedAnimationController::interval): |
| (WebCore::ScriptedAnimationController::scheduleAnimation): |
| (WebCore::ScriptedAnimationController::displayRefreshFired): |
| * dom/ScriptedAnimationController.h: |
| * loader/EmptyClients.h: |
| * page/Chrome.cpp: |
| (WebCore::Chrome::scheduleAnimation): Deleted. |
| * page/Chrome.h: |
| * page/ChromeClient.h: |
| * platform/Curl.cmake: Added. |
| * platform/ScrollAnimationSmooth.cpp: |
| (WebCore::ScrollAnimationSmooth::ScrollAnimationSmooth): |
| (WebCore::ScrollAnimationSmooth::stop): |
| (WebCore::ScrollAnimationSmooth::animationTimerFired): |
| (WebCore::ScrollAnimationSmooth::startNextTimer): |
| (WebCore::ScrollAnimationSmooth::animationTimerActive): |
| (WebCore::ScrollAnimationSmooth::serviceAnimation): Deleted. |
| * platform/ScrollAnimationSmooth.h: |
| |
| 2017-06-06 Darin Adler <darin@apple.com> |
| |
| Cut down use of WTF_ARRAY_LENGTH |
| https://bugs.webkit.org/show_bug.cgi?id=172997 |
| |
| Reviewed by Chris Dumez. |
| |
| * contentextensions/NFAToDFA.cpp: Remove unused SetTransitions class. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::~Document): Use modern for loop instead of WTF_ARRAY_LENGTH. |
| * dom/make_names.pl: |
| (printDefinitions): Ditto. |
| (printFactoryCppFile): Ditto. |
| (printWrapperFactoryCppFile): Ditto. |
| |
| * platform/URL.cpp: |
| (WebCore::portAllowed): Use std::is_sorted, std::begin, and std::end |
| in sort assertion to greatly streamline it and eliminate use of WTF_ARRAY_LENGTH. |
| Also allow the sort assertion to run every time; slightly optimizing debug builds |
| was not worth having the code be messy. |
| |
| * platform/URLParser.cpp: |
| (WebCore::URLParser::appendNumberToASCIIBuffer): Use std::end instead of |
| WTF_ARRAY_LENGTH. |
| |
| * platform/graphics/FontCascade.cpp: Make fontFamiliesWithInvalidCharWidth be |
| a constant array rather than a non-constant array to constant strings. |
| (WebCore::FontCascade::hasValidAverageCharWidth): Streamline the hash table |
| initialization to avoid heap allocation and use a modern for loop instead of |
| WTF_ARRAY_LENGTH. |
| |
| * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: |
| (WebCore::disableComponentsOnce): Use a modern for loop instead of WTF_ARRAY_LENGTH. |
| * platform/network/CacheValidation.cpp: |
| (WebCore::shouldUpdateHeaderAfterRevalidation): Ditto. Also use the |
| startsWithIgnoringASCIICase function rather than the version that folds |
| arbitrary Unicode case. |
| |
| * platform/text/TextEncodingRegistry.cpp: |
| (WebCore::pruneBlacklistedCodecs): Use modern for loops to make the code considerably |
| easier to read and avoid WTF_ARRAY_LENGTH. |
| |
| * platform/text/mac/LocaleMac.mm: |
| (WebCore::LocaleMac::monthLabels): Use modern for loop instead of WTF_ARRAY_LENGTH. |
| (WebCore::LocaleMac::shortMonthLabels): Ditto. |
| * rendering/RenderCombineText.cpp: |
| (WebCore::RenderCombineText::combineText): Ditto. |
| |
| 2017-06-06 Isaac Devine <isaac@devinesystems.co.nz> |
| |
| Allow FileReader to open files multiple times |
| |
| If multiple file readers open files they are prevented by default due to |
| Windows' file locking. |
| |
| Allow FileReader to open multiple files for reading at the same time on wincairo |
| https://bugs.webkit.org/show_bug.cgi?id=172632 |
| |
| Reviewed by Darin Adler. |
| |
| * platform/win/FileSystemWin.cpp: |
| (WebCore::openFile): Use the appropriate sharing options to allow multiple opens |
| |
| 2017-06-06 Beth Dakin <bdakin@apple.com> |
| |
| Netflix seeking quirk should also apply to Now Playing, and should always use the |
| livestream UI |
| https://bugs.webkit.org/show_bug.cgi?id=173030 |
| -and corresponding- |
| rdar://problem/32228660 |
| |
| Reviewed by Darin Adler. |
| |
| This patch rolls out much of https://trac.webkit.org/changeset/217791/webkit in |
| favor of an approach that can be used to apply the quirk to Now Playing in |
| addition to Touch Bar. This patch also changes the UI in both Touch Bar and Now |
| Playing to match live stream UI, which means there is no playhead. This hopefully |
| makes it less confusing that taps on the timeline will have no effect. |
| |
| supportsSeeking() should return false for Netflix. That function needs to be |
| public now. |
| * html/HTMLMediaElement.cpp: |
| (WebCore::needsSeekingSupportQuirk): |
| (WebCore::HTMLMediaElement::supportsSeeking): |
| * html/HTMLMediaElement.h: |
| |
| Here is where we get the desired result in Now Playing. Make sure the |
| currentSession supportsSeeking() before relying on the time and duration info for |
| the sake of Now Playing. |
| * platform/audio/mac/MediaSessionManagerMac.mm: |
| (WebCore::MediaSessionManagerMac::updateNowPlayingInfo): |
| |
| We can roll out allowsTouchBarScrubbing() and rely on supportsSeeking(). |
| * platform/cocoa/WebPlaybackSessionModel.h: |
| (WebCore::WebPlaybackSessionModelClient::mutedChanged): |
| (WebCore::WebPlaybackSessionModelClient::allowsTouchBarScrubbingChanged): Deleted. |
| * platform/cocoa/WebPlaybackSessionModelMediaElement.h: |
| * platform/cocoa/WebPlaybackSessionModelMediaElement.mm: |
| (WebCore::WebPlaybackSessionModelMediaElement::updateForEventName): |
| |
| And here is where we get the desired result for Touch Bar. Make sure the the media |
| element supportsSeeking() before relying on the duration. |
| (WebCore::WebPlaybackSessionModelMediaElement::duration): |
| |
| We can roll out allowsTouchBarScrubbing() and rely on supportsSeeking(). |
| (WebCore::WebPlaybackSessionModelMediaElement::allowsTouchBarScrubbing): Deleted. |
| * platform/ios/WebVideoFullscreenControllerAVKit.mm: |
| * platform/mac/WebPlaybackControlsManager.h: |
| |
| Currently the Touch Bar live stream UI lets you seek, which results in broken |
| behavior on real live streams and on Netflix. Prevent that by preventing scrubbing |
| for NaN and infinite durations. |
| * platform/mac/WebPlaybackControlsManager.mm: |
| (-[WebPlaybackControlsManager canBeginTouchBarScrubbing]): |
| |
| We can roll out allowsTouchBarScrubbing() and rely on supportsSeeking(). |
| * platform/mac/WebPlaybackSessionInterfaceMac.h: |
| * platform/mac/WebPlaybackSessionInterfaceMac.mm: |
| (WebCore::WebPlaybackSessionInterfaceMac::setPlayBackControlsManager): |
| (WebCore::WebPlaybackSessionInterfaceMac::allowsTouchBarScrubbingChanged): Deleted. |
| |
| 2017-06-06 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Add missing <functional> includes |
| https://bugs.webkit.org/show_bug.cgi?id=173017 |
| |
| Patch by Thiago Macieira <thiago.macieira@intel.com> |
| Reviewed by Yusuke Suzuki. |
| |
| This patch fixes compilation with GCC 7. |
| |
| No new tests needed. |
| |
| * css/CSSValue.h: |
| * css/StyleSheetContents.h: |
| * loader/NetscapePlugInStreamLoader.h: |
| * loader/ResourceLoader.h: |
| |
| 2017-06-06 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Fix compilation with !ENABLE(SVG_FONTS) |
| https://bugs.webkit.org/show_bug.cgi?id=172731 |
| |
| Reviewed by Darin Adler. |
| |
| No new tests needed. |
| |
| * css/CSSFontFaceSource.cpp: |
| (WebCore::CSSFontFaceSource::load): |
| |
| 2017-06-06 Zalan Bujtas <zalan@apple.com> |
| |
| Safari doesn't load newest The Order of the Stick comic. |
| https://bugs.webkit.org/show_bug.cgi?id=172949 |
| <rdar://problem/32389730> |
| |
| Reviewed by Antti Koivisto. |
| |
| As part of the table layout, RenderTableSection::layoutRows calls the RenderTableCell's layout() directly |
| (skipping the RenderTableRow parent). If during this call the RenderTableCell (or any of its descendant) marks the ancestor |
| chain dirty, this dirty flag on the RenderTableRows will never be cleared and we'll end up early returning from RenderTableSection::paint. |
| For certain type of float objects, we need to invalidate the line layout path during layout (and we mark the ancestors dirty). |
| This patch takes a conservative approach and marks the ancestors dirty only when the renderer is not dirty yet, but |
| as part of webkit.org/b/172947 we should revisit and validate whether the setNeedsLayout() is required at all. |
| |
| Test: fast/table/floating-table-sibling-is-invisible.html |
| |
| * rendering/RenderBlockFlow.cpp: |
| (WebCore::RenderBlockFlow::invalidateLineLayoutPath): |
| |
| 2017-06-06 Emilio Cobos Álvarez <ecobos@igalia.com> |
| |
| [css-conditional] The one-string version of CSS.supports should be wrapped in implied parentheses. |
| https://bugs.webkit.org/show_bug.cgi?id=172906 |
| |
| Reviewed by Darin Adler. |
| |
| From https://drafts.csswg.org/css-conditional/#the-css-interface: |
| |
| > When invoked with a single conditionText argument, it must return |
| > true if conditionText, when either parsed and evaluated as a |
| > supports_condition or parsed as a declaration, wrapped in implied |
| > parentheses, and evaluated as a supports_condition, would return |
| > true. |
| |
| Note the "wrapped in implied parentheses" bit. |
| |
| Gecko is fixing it in https://bugzil.la/1338486, and Blink in |
| https://crbug.com/729403. |
| |
| Tests: css3/supports-dom-api.html |
| imported/w3c/web-platform-tests/cssom/CSS.html |
| |
| * css/parser/CSSParser.cpp: |
| (WebCore::CSSParser::parseSupportsCondition): |
| * css/parser/CSSParserImpl.cpp: |
| (WebCore::CSSParserImpl::consumeSupportsRule): |
| * css/parser/CSSSupportsParser.cpp: |
| (WebCore::CSSSupportsParser::supportsCondition): |
| * css/parser/CSSSupportsParser.h: |
| |
| 2017-06-06 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Move Resource Timing / User Timing from experimental features into main preferences |
| https://bugs.webkit.org/show_bug.cgi?id=172950 |
| |
| Reviewed by Darin Adler. |
| |
| * features.json: |
| Graduate some features from In Development to Supported. |
| |
| 2017-06-06 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK][Wayland] Do not pass value of $DISPLAY to wl_display_connect() |
| https://bugs.webkit.org/show_bug.cgi?id=172993 |
| |
| Reviewed by Žan Doberšek. |
| |
| No new tests needed. |
| |
| * platform/graphics/wayland/PlatformDisplayWayland.cpp: |
| (WebCore::PlatformDisplayWayland::create): Instead of using the "DISPLAY" environment variable (meant for X11), |
| pass a null pointer to "wl_display_connect()". This function checks the value of the "WAYLAND_DISPLAY" environment |
| variable itself and therefore we do not need to pass it ourselves. |
| |
| 2017-06-06 Antoine Quint <graouts@apple.com> |
| |
| Rebaseline and enable media/modern-media-controls/airplay-support |
| https://bugs.webkit.org/show_bug.cgi?id=172980 |
| |
| Reviewed by Eric Carlson. |
| |
| Fixing a small issue in the modern media controls code which would yield |
| an error when manually creating a MediaController without a MediaControlsHost. |
| |
| * Modules/modern-media-controls/media/media-controller.js: |
| (MediaController.prototype.get isAudio): |
| |
| 2017-06-06 Antoine Quint <graouts@apple.com> |
| |
| Update modern media controls testing utilities |
| https://bugs.webkit.org/show_bug.cgi?id=172976 |
| <rdar://problem/32588432> |
| |
| Reviewed by Eric Carlson. |
| |
| Stop logging an error when we're not able to load UI Strings since UI strings |
| are not defined in the majority of modern-media-controls tests as we load the |
| code directly from the modern-media-controls module and can't reach into the |
| English.lproj directory, nor is it necessary. |
| |
| * Modules/modern-media-controls/main.js: |
| (UIString): |
| |
| 2017-06-06 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GStreamer] Use the same draw timer and mutex when AC disabled or building without OpenGL |
| https://bugs.webkit.org/show_bug.cgi?id=172923 |
| |
| Reviewed by Michael Catanzaro. |
| |
| We have two different paths to do the same. When building without OpenGL, the VideoRenderRequestScheduler has |
| its own timer and we need to add ifdefs to handle that. But when building with OpenGL we still support |
| non-accelerated rendering that does the same than the VideoRenderRequestScheduler timer, but using the media |
| player timer instead. We can simplify the code and remove more ifdefs by using the media player timer and mutex |
| in all cases for non-accelerated rendering. |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase): |
| (WebCore::MediaPlayerPrivateGStreamerBase::repaint): |
| (WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint): |
| (WebCore::MediaPlayerPrivateGStreamerBase::cancelRepaint): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: |
| * platform/graphics/gstreamer/VideoSinkGStreamer.cpp: |
| (VideoRenderRequestScheduler::start): |
| (VideoRenderRequestScheduler::stop): |
| (VideoRenderRequestScheduler::requestRender): |
| (VideoRenderRequestScheduler::VideoRenderRequestScheduler): Deleted. |
| (VideoRenderRequestScheduler::render): Deleted. |
| |
| 2017-06-05 Antoine Quint <graouts@apple.com> |
| |
| Update media controls to match latest design specs |
| https://bugs.webkit.org/show_bug.cgi?id=172932 |
| |
| Reviewed by Dean Jackson. |
| |
| The media controls specs have changed and we now implement them. The main controls bar now |
| appears to be floating, with a rounded corners and a margin around it. Some of the controls |
| it used to contain now may appear outside of it. Specifically, the fullscreen and |
| picture-in-picture buttons now are displayed in a dedicated controls bar in the top-left |
| corner and the mute button, on iOS (where we don't support changing the volume when inline), |
| is displayed in the top right corner. |
| |
| Another small UI improvement is that we display an activity indicator when we are waiting |
| for data to initiate or resume playback instead of showing the elapsed time label. We also |
| make displaying the scrubber more important than displaying other controls, except for the |
| play/pause button, when width becomes scarce. Finally, we no longer use a speci layer type |
| for the controls bar backgrounds, we now use the same "backdrop-filter" and tint overlay |
| on both macOS and iOS. |
| |
| Since this work had previously been done through WebKitAdditions, we remove the specific |
| build phase code that we added for this purpose and are now only ever looking for media |
| controls code in the WebCore source tree. |
| |
| * Modules/modern-media-controls/controls/activity-indicator.css: Added. |
| (.activity-indicator): |
| (.activity-indicator > div): |
| (.activity-indicator > .ne): |
| (.activity-indicator > .e): |
| (.activity-indicator > .se): |
| (.activity-indicator > .s): |
| (.activity-indicator > .sw): |
| (.activity-indicator > .w): |
| (.activity-indicator > .nw): |
| (@keyframes activity-indicator-pulse): |
| (to): |
| * Modules/modern-media-controls/controls/airplay-button.js: |
| * Modules/modern-media-controls/controls/auto-hide-controller.js: Added. |
| (AutoHideController): |
| (AutoHideController.prototype.get fadesWhileIdle): |
| (AutoHideController.prototype.set fadesWhileIdle): |
| (AutoHideController.prototype.handleEvent): |
| (AutoHideController.prototype.gestureRecognizerStateDidChange): |
| (AutoHideController.prototype.mediaControlsFadedStateDidChange): |
| (AutoHideController.prototype.mediaControlsBecameInvisible): |
| (AutoHideController.prototype._cancelNonEnforcedAutoHideTimer): |
| (AutoHideController.prototype._cancelAutoHideTimer): |
| (AutoHideController.prototype._resetAutoHideTimer): |
| (AutoHideController.prototype._autoHideTimerFired): |
| * Modules/modern-media-controls/controls/background-click-delegate-notifier.js: Added. |
| (BackgroundClickDelegateNotifier): |
| (BackgroundClickDelegateNotifier.prototype.handleEvent): |
| * Modules/modern-media-controls/controls/background-tint.css: |
| (.background-tint,): |
| (.background-tint > .blur): |
| (.background-tint > .tint): |
| * Modules/modern-media-controls/controls/button.css: |
| (button): |
| (button > picture): |
| (button.skip-back > picture,): |
| (button.on > picture): |
| (button:active > picture): |
| (button.corner): |
| (button.center,): |
| (button.center): |
| (button.small-center): |
| (button.center > .background-tint,): |
| (button.center > picture,): |
| (button.center:active > picture,): |
| * Modules/modern-media-controls/controls/button.js: |
| (Button.prototype.get iconName): |
| (Button.prototype.set iconName): |
| (Button.prototype.get on): |
| (Button.prototype.set on): |
| (Button.prototype.get style): |
| (Button.prototype.set style): |
| (Button.prototype.get scaleFactor): |
| (Button.prototype.set scaleFactor): |
| (Button.prototype.handleEvent): |
| (Button.prototype.commit): |
| (Button.prototype._loadImage): |
| (Button.prototype._imageSourceDidLoad): |
| (Button.prototype._updateImage): |
| (Button.prototype._updateImageMetrics): |
| (Button): |
| * Modules/modern-media-controls/controls/buttons-container.css: |
| (.buttons-container): |
| (.ios .buttons-container button): |
| * Modules/modern-media-controls/controls/buttons-container.js: |
| * Modules/modern-media-controls/controls/controls-bar.css: |
| (.controls-bar): |
| (.controls-bar.faded): Deleted. |
| * Modules/modern-media-controls/controls/controls-bar.js: |
| (ControlsBar.prototype.get children): |
| (ControlsBar.prototype.set children): |
| (ControlsBar.prototype.commitProperty): |
| (ControlsBar.prototype.get userInteractionEnabled): Deleted. |
| (ControlsBar.prototype.set userInteractionEnabled): Deleted. |
| (ControlsBar.prototype.get fadesWhileIdle): Deleted. |
| (ControlsBar.prototype.set fadesWhileIdle): Deleted. |
| (ControlsBar.prototype.get visible): Deleted. |
| (ControlsBar.prototype.set visible): Deleted. |
| (ControlsBar.prototype.get faded): Deleted. |
| (ControlsBar.prototype.set faded): Deleted. |
| (ControlsBar.prototype.handleEvent): Deleted. |
| (ControlsBar.prototype.gestureRecognizerStateDidChange): Deleted. |
| (ControlsBar.prototype._cancelNonEnforcedAutoHideTimer): Deleted. |
| (ControlsBar.prototype._cancelAutoHideTimer): Deleted. |
| (ControlsBar.prototype._resetAutoHideTimer): Deleted. |
| (ControlsBar.prototype._autoHideTimerFired): Deleted. |
| * Modules/modern-media-controls/controls/fullscreen-button.js: |
| * Modules/modern-media-controls/controls/icon-button.css: Removed. |
| * Modules/modern-media-controls/controls/icon-button.js: Removed. |
| * Modules/modern-media-controls/controls/icon-service.js: |
| (const.iconService.new.IconService.prototype.imageForIconAndLayoutTraits): |
| (const.iconService.new.IconService.prototype._fileNameAndPlatformForIconAndLayoutTraits): |
| (const.iconService.new.IconService): |
| (const.iconService.new.IconService.prototype.imageForIconNameAndLayoutTraits): Deleted. |
| (const.iconService.new.IconService.prototype._fileNameAndPlatformForIconNameAndLayoutTraits): Deleted. |
| * Modules/modern-media-controls/controls/inline-layout-support.js: Removed. |
| * Modules/modern-media-controls/controls/inline-media-controls.css: Added. |
| (.media-controls.inline > .controls-bar): |
| (.media-controls.inline > .controls-bar.top-left): |
| (.media-controls.inline.audio > .controls-bar): |
| (.media-controls.inline > .controls-bar > *): |
| (.media-controls.inline > button.mute): |
| (.media-controls.inline > button.play-pause.corner): |
| (.media-controls.inline.audio > button.play-pause.corner): |
| (.media-controls.inline > .controls-bar button): |
| (.media-controls.inline button.start.center > picture,): |
| (.media-controls.inline button.start.small-center > picture,): |
| (.media-controls.inline .time-control,): |
| * Modules/modern-media-controls/controls/inline-media-controls.js: Added. |
| (InlineMediaControls): |
| (InlineMediaControls.prototype.set shouldUseAudioLayout): |
| (InlineMediaControls.prototype.set shouldUseSingleBarLayout): |
| (InlineMediaControls.prototype.get showsStartButton): |
| (InlineMediaControls.prototype.set showsStartButton): |
| (InlineMediaControls.prototype.showPlacard): |
| (InlineMediaControls.prototype.hidePlacard): |
| (InlineMediaControls.prototype.layout): |
| (InlineMediaControls.prototype.commitProperty): |
| (InlineMediaControls.prototype.get preferredMuteButtonStyle): |
| (InlineMediaControls.prototype._topLeftContainerButtons): |
| (InlineMediaControls.prototype._leftContainerButtons): |
| (InlineMediaControls.prototype._rightContainerButtons): |
| (InlineMediaControls.prototype._droppableButtons): |
| * Modules/modern-media-controls/controls/ios-inline-media-controls.css: Removed. |
| * Modules/modern-media-controls/controls/ios-inline-media-controls.js: |
| (IOSInlineMediaControls.prototype.get showsStartButton): |
| (IOSInlineMediaControls.prototype.set showsStartButton): |
| (IOSInlineMediaControls.prototype.gestureRecognizerStateDidChange): |
| (IOSInlineMediaControls.prototype._pinchGestureRecognizerStateDidChange): |
| (IOSInlineMediaControls.prototype._tapGestureRecognizerStateDidChange): |
| (IOSInlineMediaControls): |
| (IOSInlineMediaControls.prototype.layout): Deleted. |
| (IOSInlineMediaControls.prototype.layoutTraitsDidChange): Deleted. |
| * Modules/modern-media-controls/controls/layout-item.js: |
| * Modules/modern-media-controls/controls/layout-node.js: |
| (LayoutNode.prototype.commitProperty): |
| * Modules/modern-media-controls/controls/macos-compact-inline-media-controls.css: Removed. |
| * Modules/modern-media-controls/controls/macos-fullscreen-media-controls.css: |
| (.media-controls.mac.fullscreen .buttons-container.left): |
| (.media-controls.mac.fullscreen .buttons-container.center): |
| (.media-controls.mac.fullscreen .time-control): |
| (.media-controls.mac.fullscreen > .controls-bar .status-label): |
| (.media-controls.mac.fullscreen > .controls-bar > .background-tint > div): Deleted. |
| (.media-controls.mac.fullscreen .volume.slider): Deleted. |
| (.media-controls.mac.fullscreen button.volume-down): Deleted. |
| (.media-controls.mac.fullscreen button.volume-up): Deleted. |
| (.media-controls.mac.fullscreen button.rewind): Deleted. |
| (.media-controls.mac.fullscreen button.play-pause): Deleted. |
| (.media-controls.mac.fullscreen button.forward): Deleted. |
| (.media-controls.mac.fullscreen .time-label): Deleted. |
| (.media-controls.mac.fullscreen .scrubber): Deleted. |
| * Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js: |
| (MacOSFullscreenMediaControls.prototype.handleEvent): |
| (MacOSFullscreenMediaControls.prototype.layout): |
| (MacOSFullscreenMediaControls.prototype._handleMousedown): |
| (MacOSFullscreenMediaControls.prototype._handleMousemove): |
| * Modules/modern-media-controls/controls/macos-inline-media-controls.css: |
| (.media-controls.mac.inline .volume-slider-container): |
| (.media-controls.mac.inline.audio .volume-slider-container): |
| (.media-controls.mac.inline .volume-slider-container > .background-tint): |
| (.media-controls.mac.inline .volume-slider-container > .background-tint > div): |
| (.media-controls.mac.inline .volume-slider-container > .slider): |
| (.media-controls.mac.inline > .controls-bar): Deleted. |
| (.media-controls.mac.inline > .controls-bar > *): Deleted. |
| (.media-controls.mac.inline > button.start > div): Deleted. |
| (.media-controls.mac.inline > .controls-bar button): Deleted. |
| (.media-controls.mac.inline button.play-pause): Deleted. |
| (.media-controls.mac.inline button.skip-back): Deleted. |
| (.media-controls.mac.inline .scrubber.slider): Deleted. |
| (.media-controls.mac.inline button.mute): Deleted. |
| (.media-controls.mac.inline button.airplay): Deleted. |
| (.media-controls.mac.inline button.pip): Deleted. |
| (.media-controls.mac.inline button.tracks): Deleted. |
| (.media-controls.mac.inline button.fullscreen): Deleted. |
| (.media-controls.mac.inline .time-label,): Deleted. |
| (.media-controls.mac.inline .volume.slider): Deleted. |
| * Modules/modern-media-controls/controls/macos-inline-media-controls.js: |
| (MacOSInlineMediaControls.prototype.layout): |
| (MacOSInlineMediaControls.prototype.get preferredMuteButtonStyle): |
| (MacOSInlineMediaControls.prototype.handleEvent): |
| (MacOSInlineMediaControls.prototype.layoutTraitsDidChange): Deleted. |
| * Modules/modern-media-controls/controls/macos-media-controls.js: Removed. |
| * Modules/modern-media-controls/controls/media-controls.css: |
| (:host(audio)): |
| (*): |
| (:host(audio), *): |
| (.media-controls-container): |
| (.media-controls): |
| (.media-controls > *): |
| (.media-controls.shows-tracks-panel > .controls-bar,): |
| (.media-controls.faded > *:not(.placard)): |
| (.media-controls .time-label,): |
| * Modules/modern-media-controls/controls/media-controls.js: |
| (MediaControls.prototype.get visible): |
| (MediaControls.prototype.set visible): |
| (MediaControls.prototype.get faded): |
| (MediaControls.prototype.set faded): |
| (MediaControls.prototype.showTracksPanel): |
| (MediaControls.prototype.hideTracksPanel): |
| (MediaControls.prototype.isPointInControls): |
| (MediaControls.prototype.handleEvent): |
| (MediaControls.prototype.commitProperty): |
| (MediaControls.prototype.get layoutTraits): Deleted. |
| (MediaControls.prototype.set layoutTraits): Deleted. |
| (MediaControls.prototype.get showsStartButton): Deleted. |
| (MediaControls.prototype.set showsStartButton): Deleted. |
| (MediaControls.prototype.get placard): Deleted. |
| (MediaControls.prototype.get showsPlacard): Deleted. |
| (MediaControls.prototype.showPlacard): Deleted. |
| (MediaControls.prototype.hidePlacard): Deleted. |
| (MediaControls.prototype.controlsBarVisibilityDidChange): Deleted. |
| (MediaControls.prototype.controlsBarFadedStateDidChange): Deleted. |
| (MediaControls.prototype.layoutTraitsDidChange): Deleted. |
| (MediaControls.prototype.layout): Deleted. |
| (MediaControls.prototype._invalidateChildren): Deleted. |
| * Modules/modern-media-controls/controls/media-document.css: |
| (:host(.media-document)): |
| (:host(.media-document.audio.mac)): |
| * Modules/modern-media-controls/controls/mute-button.js: |
| * Modules/modern-media-controls/controls/pip-button.js: |
| * Modules/modern-media-controls/controls/placard.css: |
| (.placard): |
| (.placard .container): |
| (.placard button): |
| (.placard button > picture): |
| (.placard .icon): Deleted. |
| * Modules/modern-media-controls/controls/placard.js: |
| (Placard.): |
| (Placard.prototype.layout): |
| * Modules/modern-media-controls/controls/play-pause-button.js: |
| (PlayPauseButton): |
| (PlayPauseButton.prototype.commit): |
| * Modules/modern-media-controls/controls/scheduler.js: |
| (const.scheduler.new.prototype.scheduleLayout): |
| (const.scheduler.new.prototype.unscheduleLayout): |
| (const.scheduler.new.prototype._requestFrameIfNeeded): |
| (const.scheduler.new.prototype._frameDidFire): |
| (const.scheduler.new.prototype._layout): |
| * Modules/modern-media-controls/controls/scrubber.js: Removed. |
| * Modules/modern-media-controls/controls/seek-button.js: |
| * Modules/modern-media-controls/controls/skip-back-button.js: |
| * Modules/modern-media-controls/controls/skip-forward-button.js: Added. |
| (SkipForwardButton): |
| * Modules/modern-media-controls/controls/slider.css: |
| (.slider): |
| (.slider > .custom-slider,): |
| (.slider > .custom-slider): |
| (.slider > .custom-slider > *): |
| (.slider > .custom-slider > .fill): |
| (.slider > .custom-slider > .track): |
| (.slider > .custom-slider > .primary): |
| (.slider > .custom-slider > .secondary): |
| (.slider > .custom-slider > .knob): |
| (.slider > input): |
| (.slider > input::-webkit-slider-thumb): |
| (.slider.disabled > input,): |
| (.ios .slider > input): |
| (.ios .slider > input::-webkit-slider-runnable-track): |
| (.ios .slider > input::-webkit-slider-thumb): |
| (.slider > canvas,): Deleted. |
| (.slider > canvas): Deleted. |
| * Modules/modern-media-controls/controls/slider.js: |
| (Slider.prototype.set inputAccessibleLabel): |
| (Slider.prototype.get disabled): |
| (Slider.prototype.set disabled): |
| (Slider.prototype.get secondaryValue): |
| (Slider.prototype.set secondaryValue): |
| (Slider.prototype._formatTime): |
| (Slider.prototype.commitProperty): |
| (Slider.prototype.commit): |
| (Slider.prototype.draw): Deleted. |
| (addRoundedRect): Deleted. |
| * Modules/modern-media-controls/controls/start-button.css: Removed. |
| * Modules/modern-media-controls/controls/start-button.js: Removed. |
| * Modules/modern-media-controls/controls/status-label.css: |
| (.status-label): |
| * Modules/modern-media-controls/controls/status-label.js: |
| (StatusLabel.prototype.get enabled): |
| (StatusLabel.prototype.set enabled): Deleted. |
| * Modules/modern-media-controls/controls/text-tracks.css: |
| (video::-webkit-media-text-track-container): |
| (video::-webkit-media-text-track-container.visible-controls-bar): |
| (video::-webkit-media-text-track-container.visible-controls-bar.compact-controls-bar): Deleted. |
| * Modules/modern-media-controls/controls/time-control.js: |
| (TimeControl.prototype.set duration): |
| (TimeControl.prototype.set currentTime): |
| (TimeControl.prototype.get loading): |
| (TimeControl.prototype.set loading): |
| (TimeControl.prototype.get minimumWidth): |
| (TimeControl.prototype.get idealMinimumWidth): |
| (TimeControl.prototype.layout): |
| (TimeControl.prototype._performIdealLayout): |
| (TimeControl.prototype.get useSixDigitsForTimeLabels): Deleted. |
| (TimeControl.prototype.set useSixDigitsForTimeLabels): Deleted. |
| (TimeControl.prototype.get isSufficientlyWide): Deleted. |
| * Modules/modern-media-controls/controls/time-label.css: |
| (.time-label): |
| * Modules/modern-media-controls/controls/time-label.js: |
| (TimeLabel.prototype.setValueWithNumberOfDigits): |
| (TimeLabel.prototype.commitProperty): |
| (TimeLabel.prototype._formattedTime): |
| (doubleDigits): |
| (TimeLabel.prototype.set value): Deleted. |
| * Modules/modern-media-controls/controls/tracks-button.js: |
| * Modules/modern-media-controls/controls/tracks-panel.css: |
| (.tracks-panel > .scrollable-container): |
| (.tracks-panel section): |
| (.tracks-panel section > h3): |
| (.tracks-panel > .background-tint > div,): Deleted. |
| * Modules/modern-media-controls/controls/volume-down-button.js: |
| * Modules/modern-media-controls/controls/volume-slider.css: Removed. |
| * Modules/modern-media-controls/controls/volume-slider.js: Removed. |
| * Modules/modern-media-controls/controls/volume-up-button.js: |
| * Modules/modern-media-controls/gesture-recognizers/gesture-recognizer.js: |
| (GestureRecognizer.prototype.gestureBegan): |
| (GestureRecognizer.prototype._removeTrackingListeners): |
| * Modules/modern-media-controls/gesture-recognizers/tap.js: |
| (TapGestureRecognizer.prototype.touchesMoved): |
| * Modules/modern-media-controls/images/iOS/Airplay.svg: Added. |
| * Modules/modern-media-controls/images/iOS/EnterFullscreen.svg: Added. |
| * Modules/modern-media-controls/images/iOS/MediaSelector.svg: Added. |
| * Modules/modern-media-controls/images/iOS/MiniPipIn.svg: Added. |
| * Modules/modern-media-controls/images/iOS/Mute.svg: Added. |
| * Modules/modern-media-controls/images/iOS/Pause.svg: Added. |
| * Modules/modern-media-controls/images/iOS/PipIn.svg: Added. |
| * Modules/modern-media-controls/images/iOS/Play.svg: Added. |
| * Modules/modern-media-controls/images/iOS/SkipBack15.svg: Added. |
| * Modules/modern-media-controls/images/iOS/SkipForward15.svg: Added. |
| * Modules/modern-media-controls/images/iOS/VolumeHi.svg: Added. |
| * Modules/modern-media-controls/images/iOS/airplay@1x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/airplay@2x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/enter-fullscreen@1x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/enter-fullscreen@2x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/enter-fullscreen@3x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/interval-skip-back@1x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/interval-skip-back@2x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/interval-skip-back@3x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/pause@1x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/pause@2x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/pause@3x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/pip-in@1x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/pip-in@2x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/pip-in@3x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/play@1x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/play@2x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/play@3x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/slider-thumb@2x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/start@1x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/start@2x.png: Removed. |
| * Modules/modern-media-controls/images/iOS/start@3x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/Airplay-fullscreen.svg: Added. |
| * Modules/modern-media-controls/images/macOS/Airplay.svg: Added. |
| * Modules/modern-media-controls/images/macOS/EnterFullscreen.svg: Added. |
| * Modules/modern-media-controls/images/macOS/ExitFullscreen.svg: Added. |
| * Modules/modern-media-controls/images/macOS/Forward.svg: Added. |
| * Modules/modern-media-controls/images/macOS/MediaSelector-fullscreen.svg: Added. |
| * Modules/modern-media-controls/images/macOS/MediaSelector.svg: Added. |
| * Modules/modern-media-controls/images/macOS/Mute.svg: Added. |
| * Modules/modern-media-controls/images/macOS/Pause.svg: Added. |
| * Modules/modern-media-controls/images/macOS/PipIn-fullscreen.svg: Added. |
| * Modules/modern-media-controls/images/macOS/PipIn.svg: Added. |
| * Modules/modern-media-controls/images/macOS/Play.svg: Added. |
| * Modules/modern-media-controls/images/macOS/Rewind.svg: Added. |
| * Modules/modern-media-controls/images/macOS/SkipBack15.svg: Added. |
| * Modules/modern-media-controls/images/macOS/SkipForward15.svg: Added. |
| * Modules/modern-media-controls/images/macOS/VolumeHi.svg: Added. |
| * Modules/modern-media-controls/images/macOS/VolumeLo.svg: Added. |
| * Modules/modern-media-controls/images/macOS/airplay-compact@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/airplay-compact@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/airplay-fullscreen@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/airplay-fullscreen@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/airplay@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/airplay@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/enter-fullscreen-compact@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/enter-fullscreen-compact@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/enter-fullscreen@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/enter-fullscreen@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/exit-fullscreen@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/exit-fullscreen@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/forward@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/forward@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/interval-skip-back-compact@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/interval-skip-back-compact@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/interval-skip-back@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/interval-skip-back@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/media-selection-compact@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/media-selection-compact@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/media-selection-fullscreen@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/media-selection-fullscreen@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/media-selection@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/media-selection@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/pause-compact@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/pause-compact@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/pause-fullscreen@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/pause-fullscreen@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/pause@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/pause@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/pip-in-compact@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/pip-in-compact@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/pip-in-fullscreen@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/pip-in-fullscreen@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/pip-in@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/pip-in@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/play-compact@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/play-compact@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/play-fullscreen@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/play-fullscreen@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/play@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/play@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/rewind@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/rewind@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/scale-to-fill@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/scale-to-fill@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/scale-to-fit@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/scale-to-fit@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/start@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/start@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/volume-compact@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/volume-compact@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/volume-down-fullscreen@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/volume-down-fullscreen@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/volume-mute-compact@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/volume-mute-compact@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/volume-mute@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/volume-mute@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/volume-up-fullscreen@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/volume-up-fullscreen@2x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/volume@1x.png: Removed. |
| * Modules/modern-media-controls/images/macOS/volume@2x.png: Removed. |
| * Modules/modern-media-controls/js-files: |
| * Modules/modern-media-controls/main.js: |
| (UIString): |
| (formatTimeByUnit): |
| * Modules/modern-media-controls/media/audio-support.js: Added. |
| (AudioSupport.prototype.get control): |
| (AudioSupport.prototype.get mediaEvents): |
| (AudioSupport.prototype.get tracksToMonitor): |
| (AudioSupport.prototype.syncControl): |
| (AudioSupport): |
| * Modules/modern-media-controls/media/controls-visibility-support.js: |
| (ControlsVisibilitySupport.prototype._updateControls): |
| (ControlsVisibilitySupport): |
| * Modules/modern-media-controls/media/fullscreen-support.js: |
| (FullscreenSupport.prototype.buttonWasPressed): |
| (FullscreenSupport.prototype.syncControl): |
| (FullscreenSupport): |
| (FullscreenSupport.prototype.iOSInlineMediaControlsRecognizedPinchInGesture): Deleted. |
| * Modules/modern-media-controls/media/media-controller.js: |
| (MediaController): |
| (MediaController.prototype.get isAudio): |
| (MediaController.prototype.get isYouTubeEmbedWithTitle): |
| (MediaController.prototype.get isFullscreen): |
| (MediaController.prototype.get layoutTraits): |
| (MediaController.prototype.iOSInlineMediaControlsRecognizedTapGesture): |
| (MediaController.prototype.iOSInlineMediaControlsRecognizedPinchInGesture): |
| (MediaController.prototype._updateControlsIfNeeded): |
| (MediaController.prototype._updateTextTracksClassList): |
| (MediaController.prototype.controlsBarFadedStateDidChange): Deleted. |
| * Modules/modern-media-controls/media/media-document-controller.js: |
| (MediaDocumentController.prototype._mediaDocumentHasMetadata): |
| * Modules/modern-media-controls/media/placard-support.js: |
| (PlacardSupport.prototype._updatePlacard): |
| (PlacardSupport): |
| * Modules/modern-media-controls/media/scrubbing-support.js: |
| (ScrubbingSupport.prototype.get mediaEvents): |
| (ScrubbingSupport.prototype.syncControl): |
| (ScrubbingSupport): |
| * Modules/modern-media-controls/media/skip-back-support.js: |
| * Modules/modern-media-controls/media/skip-forward-support.js: Added. |
| (SkipForwardSupport.prototype.get control): |
| (SkipForwardSupport.prototype.get mediaEvents): |
| (SkipForwardSupport.prototype.buttonWasPressed): |
| (SkipForwardSupport.prototype.syncControl): |
| (SkipForwardSupport): |
| * Modules/modern-media-controls/media/start-support.js: |
| (StartSupport): |
| (StartSupport.prototype.handleEvent): |
| (StartSupport.prototype._shouldShowStartButton): |
| (StartSupport.prototype.get control): Deleted. |
| (StartSupport.prototype.syncControl): Deleted. |
| * Modules/modern-media-controls/media/status-support.js: |
| (StatusSupport.prototype.get mediaEvents): |
| (StatusSupport.prototype.syncControl): |
| (StatusSupport): |
| * Modules/modern-media-controls/media/time-control-support.js: Renamed from Source/WebCore/Modules/modern-media-controls/media/time-labels-support.js. |
| (TimeControlSupport.prototype.syncControl): |
| (TimeControlSupport): |
| * Modules/modern-media-controls/media/tracks-support.js: |
| (TracksSupport.prototype.syncControl): |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| 2017-06-05 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Refactor -[WebItemProviderPasteboard valuesForPasteboardType:inItemSet:] to check readable types |
| https://bugs.webkit.org/show_bug.cgi?id=172891 |
| <rdar://problem/32204540> |
| |
| Reviewed by Darin Adler. |
| |
| Tweaks some logic in PlatformPasteboardIOS and WebItemProviderPasteboard to correctly construct objects in |
| -valuesForPasteboardType:inItemSet:. Previously, we have a hard-coded map of UTI type to Class in the form of |
| static helpers titled is{RichText, String, URL, Image, Color}Type in WebItemProviderPasteboard. We would use |
| these functions to determine whether an NSAttributedString, NSString, NSURL, UIImage or UIColor should be |
| constructed using the loaded item provider data. This is incorrect for some UTIs, such as public.html, which |
| cannot actually be used to construct an NSAttributedString -- this caused -valuesForPasteboardType:inItemSet: to |
| always return nil when attempting to create an object corresponding to public.html. |
| |
| To fix this, we refactor -valuesForPasteboardType:inItemSet: to instead iterate through UIItemProviderReading- |
| conformant classes in search for a class that can be created for the given UTI type. If no such class exists, we |
| then fall back to custom WebKit handling of the dropped UTI type, which so far only includes reading an NSString |
| with public.plain-text if the UTI is public.html (i.e. reading the HTML source from loaded item provider data). |
| |
| Covered by 2 new API tests: |
| DataInteractionTests.ExternalSourceHTMLToContentEditable |
| DataInteractionTests.ExternalSourceAttributedStringToContentEditable |
| |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::stringForType): |
| (WebCore::PlatformPasteboard::readString): |
| |
| In some cases, -[WebItemProviderPasteboard valuesForPasteboardType:inItemSet:] may now return an |
| NSAttributedString when an NSString was previously created. This adjusts for that possibility by returning just |
| the plain text, -[NSAttributedString string], if the read object was an NSAttributedString. |
| |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (allLoadableClasses): |
| (classForTypeIdentifier): |
| (-[WebItemProviderPasteboard valuesForPasteboardType:inItemSet:]): |
| |
| See description above for more details. |
| |
| (isRichTextType): Deleted. |
| (isStringType): Deleted. |
| (isURLType): Deleted. |
| (isColorType): Deleted. |
| (isImageType): Deleted. |
| |
| Removes these heuristics that attempt to "guess" the best UIItemProviderReading class to try and load for a |
| given UTI type. |
| |
| * rendering/RenderText.cpp: |
| (WebCore::RenderText::draggedContentRangesBetweenOffsets): |
| |
| Adds a nil check to fix a debug assertion hit when running DataInteractionTests. |
| |
| 2017-06-05 Dan Bernstein <mitz@apple.com> |
| |
| Build fix for macOS 10.12 |
| |
| * platform/spi/cocoa/AVKitSPI.h: |
| |
| 2017-06-05 Dan Bernstein <mitz@apple.com> |
| |
| Tried to fix the build when targrting macOS 10.12 using the macOS 10.13 developer beta SDK. |
| |
| * platform/mac/WebPlaybackControlsManager.h: |
| * platform/mac/WebPlaybackControlsManager.mm: |
| (-[WebPlaybackControlsManager togglePictureInPicture]): |
| |
| 2017-06-05 Dan Bernstein <mitz@apple.com> |
| |
| Tried to fix the build when targrting macOS 10.12 using the macOS 10.13 developer beta SDK. |
| |
| * platform/spi/cocoa/AVKitSPI.h: |
| |
| 2017-06-05 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Unreviewed, fix missing semicolon in r217795 |
| |
| * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp: |
| (WebCore::calculateNaturalSize): |
| |
| 2017-06-05 Jer Noble <jer.noble@apple.com> |
| |
| Allow clients to specify a list of codecs which should require hardware decode support. |
| https://bugs.webkit.org/show_bug.cgi?id=172787 |
| |
| Reviewed by Alex Christensen. |
| |
| Add a new setting, checked by HTMLMediaElement, which allows MediaPlayerPrivate implementation |
| to require that the specified codecs have hardware support. This requirement will be supported |
| in the normal media loading path and the MSE path on Cocoa ports. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::mediaCodecsRequiringHardwareSupport): |
| * html/HTMLMediaElement.h: |
| * page/Settings.cpp: |
| (WebCore::Settings::setMediaCodecsRequiringHardwareSupport): |
| * page/Settings.h: |
| (WebCore::Settings::mediaCodecsRequiringHardwareSupport): |
| * platform/cocoa/VideoToolboxSoftLink.cpp: |
| * platform/cocoa/VideoToolboxSoftLink.h: |
| * platform/graphics/MediaPlayer.h: |
| (WebCore::MediaPlayerClient::mediaCodecsRequiringHardwareSupport): |
| * platform/graphics/avfoundation/objc/AVAssetTrackUtilities.h: Added. |
| * platform/graphics/avfoundation/objc/AVAssetTrackUtilities.mm: Added. |
| (WebCore::assetTrackMeetsHardwareDecodeRequirements): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::checkPlayability): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::assetStatus): |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| (WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset): |
| |
| 2017-06-05 Dan Bernstein <mitz@apple.com> |
| |
| Tried to fix the build when targrting macOS 10.12 using the macOS 10.13 developer beta SDK. |
| |
| * platform/mac/WebPlaybackControlsManager.mm: |
| (-[WebPlaybackControlsManager togglePictureInPicture]): |
| |
| 2017-06-05 Dan Bernstein <mitz@apple.com> |
| |
| Tried to fix the build when targrting macOS 10.12 using the macOS 10.13 developer beta SDK. |
| |
| * platform/spi/mac/AVFoundationSPI.h: |
| |
| 2017-06-05 Dan Bernstein <mitz@apple.com> |
| |
| Tried to fix the build when targrting macOS 10.12 using the macOS 10.13 developer beta SDK. |
| |
| * platform/spi/cocoa/IOSurfaceSPI.h: |
| |
| 2017-06-05 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Fix MediaPlayerPrivateMediaFoundation::naturalSize |
| https://bugs.webkit.org/show_bug.cgi?id=172908 |
| |
| Reviewed by Alex Christensen. |
| |
| MediaPlayerPrivateMediaFoundation::naturalSize should return size of |
| video frame corrected by PAR, not size of video element. |
| |
| No new tests needed. |
| |
| * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp: |
| (WebCore::MediaPlayerPrivateMediaFoundation::load): |
| (WebCore::MediaPlayerPrivateMediaFoundation::naturalSize): |
| (WebCore::MediaPlayerPrivateMediaFoundation::setNaturalSize): |
| (WebCore::calculateNaturalSize): |
| (WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::setMediaType): |
| * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h: |
| |
| 2017-06-05 Zalan Bujtas <zalan@apple.com> |
| |
| Destroy the associated renderer subtree when display: contents node is deleted. |
| https://bugs.webkit.org/show_bug.cgi?id=172920 |
| <rdar://problem/32446045> |
| |
| Reviewed by Antti Koivisto. |
| |
| Since display: contents node does not create a renderer, we need to explicitly check |
| and distinguish it from the display: none case. |
| |
| Covered by existing tests. |
| |
| * dom/ContainerNode.cpp: |
| (WebCore::destroyRenderTreeIfNeeded): |
| * dom/Node.cpp: |
| (WebCore::Node::~Node): Promote ASSERT(!renderer()) to ASSERT_WITH_SECURITY_IMPLICATION. |
| * dom/Text.cpp: |
| (WebCore::Text::~Text): Redundant assert. Text is a Node. |
| |
| 2017-06-05 Beth Dakin <bdakin@apple.com> |
| |
| Modify Netflix controlsManager quirk to prevent only scrubbing |
| https://bugs.webkit.org/show_bug.cgi?id=172881 |
| -and corresponding- |
| rdar://problem/32228660 |
| |
| Reviewed by Andy Estes. |
| |
| Instead of preventing Netflix from getting a controlsManager at all, this patch |
| ONLY prevents touch bar scrubbing from working. This means that Netflix will now |
| get controls in the TouchBar, it means that the play/pause and PiP buttons will be |
| functional, and it means that the timeline will accurately represent the current |
| time, BUT users will not be able to use the timeline to scrub the video. This also |
| allows Netflix to work with other MediaRemote clients such as AirPods. |
| |
| Remove the quirk code from here, since this is no longer the right place to test |
| if the MediaElement is hosted at Netflix. |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::bestMediaElementForShowingPlaybackControlsManager): |
| (WebCore::needsPlaybackControlsManagerQuirk): Deleted. |
| |
| Pass around a new bool allowsTouchBarScrubbing. |
| * platform/cocoa/WebPlaybackSessionModel.h: |
| (WebCore::WebPlaybackSessionModelClient::allowsTouchBarScrubbingChanged): |
| * platform/cocoa/WebPlaybackSessionModelMediaElement.h: |
| |
| Here’s where we check if we need quirky behavior. |
| * platform/cocoa/WebPlaybackSessionModelMediaElement.mm: |
| (WebCore::WebPlaybackSessionModelMediaElement::updateForEventName): |
| (WebCore::WebPlaybackSessionModelMediaElement::allowsTouchBarScrubbing): |
| |
| Return the bool we have plumbed through tracking whether the current site |
| allowsTouchBarScrubbing from the existing delegate method |
| canBeginTouchBarScrubbing. We will always return NO for video elements on Netflix, |
| and this will prevent users from be able to scrub with the TouchBar on Netflix. |
| * platform/mac/WebPlaybackControlsManager.h: |
| * platform/mac/WebPlaybackControlsManager.mm: |
| (-[WebPlaybackControlsManager canBeginTouchBarScrubbing]): |
| |
| More plumbing. |
| * platform/mac/WebPlaybackSessionInterfaceMac.h: |
| * platform/mac/WebPlaybackSessionInterfaceMac.mm: |
| (WebCore::WebPlaybackSessionInterfaceMac::allowsTouchBarScrubbingChanged): |
| (WebCore::WebPlaybackSessionInterfaceMac::setPlayBackControlsManager): |
| |
| 2017-06-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GStreamer] Deadlock in MediaPlayerPrivateGStreamer::changePipelineState, web process often locks up on seeking in a youtube video that has already fully buffered |
| https://bugs.webkit.org/show_bug.cgi?id=170003 |
| |
| Reviewed by Michael Catanzaro. |
| |
| When video sink is requested to render a frame, the GstBaseSink preroll mutex is taken. Then WebKit media player |
| schedules a repaint in the main thread, taking the draw mutex and waiting on draw condition. It can happen that |
| before the repaint is done in the main thread, a pause is requested in the main thread, causing a change state |
| from PLAYING to PAUSE. When the change state reaches the video sink gst_base_sink_change_state() tries to get |
| the preroll mutex. This causes a deadlock because the main thread is waiting to get the preroll mutex, but the |
| other thread is waiting for the main thread to do the repaint. GStreamer handles this case by calling unlock() |
| on the video sink before trying to get the preroll mutex, but the media player doesn't cancel the pending |
| repaint when using coordinated graphics. This patch adds a new signal to WebKitVideoSink "repaint-cancelled" to |
| notify the media player to cancel the pending prepaint. |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::cancelRepaint): Release the draw mutex and notify the condition. |
| (WebCore::MediaPlayerPrivateGStreamerBase::repaintCancelledCallback): Call cancelRepaint(). |
| (WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink): Connect to WebKitVideoSink::repaint-cancelled. |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: |
| * platform/graphics/gstreamer/VideoSinkGStreamer.cpp: |
| (webkitVideoSinkRepaintCancelled): Emit WebKitVideoSink::repaint-cancelled. |
| (webkitVideoSinkUnlock): Call webkitVideoSinkRepaintCancelled(). |
| (webkitVideoSinkStop): Ditto. |
| (webkit_video_sink_class_init): Add WebKitVideoSink::repaint-cancelled signal. |
| |
| 2017-06-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GStreamer] Cleanup ifdefs in MediaPlayerPrivateGStreamerBase |
| https://bugs.webkit.org/show_bug.cgi?id=172918 |
| |
| Reviewed by Michael Catanzaro. |
| |
| The code in MediaPlayerPrivateGStreamerBase is quite difficult to follow with all the ifdefs for the |
| possibilities when rendering. Some of them are even dead code now that all ports using GStreamer are using also |
| coordinated graphics. |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase): |
| (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase): |
| (WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor): |
| (WebCore::MediaPlayerPrivateGStreamerBase::repaint): |
| (WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: |
| * platform/graphics/gstreamer/VideoSinkGStreamer.cpp: |
| (VideoRenderRequestScheduler::VideoRenderRequestScheduler): |
| (VideoRenderRequestScheduler::stop): |
| (VideoRenderRequestScheduler::requestRender): |
| (webkitVideoSinkRequestRender): |
| |
| 2017-06-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix compile warning when building GTK+ port without OpenGL. |
| |
| * platform/graphics/texmap/BitmapTexturePool.cpp: |
| (WebCore::BitmapTexturePool::createTexture): |
| |
| 2017-06-05 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK][WPE] Do not force video sample's buffer release when the platformLayerProxy is inactive |
| https://bugs.webkit.org/show_bug.cgi?id=172916 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| When MediaPlayerPrivateGStreamerBase's plarformLayerProxy was inactive, a copy of the video sample |
| was being done (without the buffer) and set, causing the sample's buffer to get freed. This was done |
| to avoid stalling the gstreamer pipeline in situations where the video was set to display:none, as the |
| platformLayerProxy would keep all the available buffers. But this can't happen nowadays as setting |
| the video to display:none invalidates the proxy, causing it to release the references to the |
| gstreamer buffers it's using. Also, the current code is causing a crash when using gstreamer-gl and |
| the video is hidden but its contents are being painted through webgl or an accelerated canvas. So, |
| remove this sample copy as it's not necessary anymore. |
| |
| Covered by existent tests. |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor): |
| |
| 2017-06-05 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK][WPE] Fix the condition to decide whether the MediaPlayer can be rendered accelerated |
| https://bugs.webkit.org/show_bug.cgi?id=172852 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Before this change, in order to determine whether the MediaPlayer rendering could be accelerated we |
| needed the player to have a renderer or it would return false. The renderer was needed in order to |
| access the RenderLayerCompositor and check whether the chrome would be overwriting the accelerated |
| compositing setting. But we don't have that option in WebKitGTK+ or WPE, so we can just check the |
| accelerated compositing setting directly. |
| |
| Another problems with the approach before this change is that accelerated rendering was being disabled |
| when the video element was not visible, as there's no video renderer. Due to this, cases where the video |
| is painted through an accelerated canvas or webgl would not be using hardware accelerated copies. |
| |
| Covered by existent tests. |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::acceleratedRenderingStateChanged): |
| |
| 2017-06-04 Simon Fraser <simon.fraser@apple.com> |
| |
| Percentages are calculated wrong in SVG transform CSS property |
| https://bugs.webkit.org/show_bug.cgi?id=172901 |
| |
| Reviewed by Zalan Bujtas. |
| |
| The code added in r217236 was just fetching viewBox(), but that can be empty. |
| SVGLengthContext::determineViewport() does the correct thing to get |
| the appropriate viewport. |
| |
| Test: svg/transforms/percent-transform-values-viewbox.html |
| |
| * svg/SVGGraphicsElement.cpp: |
| (WebCore::SVGGraphicsElement::animatedLocalTransform): |
| |
| 2017-06-04 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Page capture state not reported correctly |
| https://bugs.webkit.org/show_bug.cgi?id=172897 |
| <rdar://problem/32493318> |
| |
| Reviewed by Youenn Fablet. |
| |
| Test: fast/mediastream/media-stream-track-muted.html |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::mediaState): Test for audio and video mute on the tracks. |
| (WebCore::MediaStream::characteristicsChanged): Call statusDidChange when m_mediaState |
| changes instead of m_muted, so the page is informed when just audio or video mute state |
| changes. |
| * Modules/mediastream/MediaStream.h: |
| |
| * testing/Internals.cpp: |
| (WebCore::Internals::setMediaStreamTrackMuted): New. |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-06-03 Darin Adler <darin@apple.com> |
| |
| Streamline handling of attributes, using references as much as possible |
| https://bugs.webkit.org/show_bug.cgi?id=172899 |
| |
| Reviewed by Chris Dumez. |
| |
| * accessibility/AccessibilityNodeObject.cpp: |
| (WebCore::AccessibilityNodeObject::valueForRange): Use reference to value of |
| attribute instead of copy to avoid reference count churn. |
| (WebCore::AccessibilityNodeObject::maxValueForRange): Ditto. |
| (WebCore::AccessibilityNodeObject::minValueForRange): Ditto. |
| * accessibility/AccessibilitySVGElement.cpp: |
| (WebCore::AccessibilitySVGElement::childElementWithMatchingLanguage): Ditto. |
| (WebCore::AccessibilitySVGElement::accessibilityDescription): Ditto. |
| * css/PropertySetCSSStyleDeclaration.cpp: |
| (WebCore::StyleAttributeMutationScope::StyleAttributeMutationScope): Ditto. |
| |
| * editing/cocoa/DataDetection.mm: |
| (WebCore::DataDetection::shouldCancelDefaultAction): Use the |
| equalLettersIgnoringASCIICase function instead of using |
| both equalIgnoringASCIICase and convertToASCIILowercase. |
| |
| * html/HTMLAudioElement.cpp: |
| (WebCore::HTMLAudioElement::HTMLAudioElement): Marked this inline since we |
| want it inlined the one place it's used. |
| (WebCore::HTMLAudioElement::create): Use auto and named the local variable |
| just element. |
| (WebCore::HTMLAudioElement::createForJSConstructor): Call create rather than |
| repeating the code from create. Use setAttributeWithoutSynchronization directly |
| rather than calling helper functions. Removed unneeded null check; |
| setAttributeWithoutSynchronization handles null by removing the attribute. |
| * html/HTMLAudioElement.h: Changed src argument of createForJSConstructor to |
| take AtomicString since that is what we need for an attribute value. |
| * html/HTMLAudioElement.idl: Use [AtomicString] for src argument. |
| |
| * html/HTMLElement.cpp: |
| (WebCore::HTMLElement::directionality): Use reference to value of |
| attribute instead of copy to avoid reference count churn. |
| (WebCore::HTMLElement::shouldAutocorrect): Ditto. |
| |
| * html/HTMLImageElement.cpp: |
| (WebCore::HTMLImageElement::bestFitSourceFromPictureElement): Call the new |
| parsedMediaAttribute instead of the old mediaQuerySet function. Other than the |
| name, the only change is that the result is now a const pointer. |
| |
| * html/HTMLInputElement.cpp: |
| (WebCore::HTMLInputElement::updateType): Removed unnecessary local variable, |
| resulting in code that is slightly cleaner and possibly eliminating reference |
| count chrun. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::setSrc): Deleted. |
| (WebCore::HTMLMediaElement::selectNextSourceChild): Use parsedMediaAttribute and |
| removed rendudant direct check of whether mediaAttr is present. Changed logging to |
| get the media attribute directly rather than with a helper function. Changed type |
| to get the type attribute directly rather than with a helper function. |
| (WebCore::HTMLMediaElement::sourceWasAdded): Take a reference rather than a pointer. |
| (WebCore::HTMLMediaElement::sourceWasRemoved): Ditto. |
| (WebCore::HTMLMediaElement::doesHaveAttribute): Use reference to value of |
| attribute instead of copy to avoid reference count churn. |
| * html/HTMLMediaElement.h: Updated for the above. |
| |
| * html/HTMLSourceElement.cpp: |
| (WebCore::HTMLSourceElement::insertedInto): Pass reference instead of pointer. |
| (WebCore::HTMLSourceElement::removedFrom): Ditto. |
| (WebCore::HTMLSourceElement::setSrc): Deleted. |
| (WebCore::HTMLSourceElement::media): Deleted. |
| (WebCore::HTMLSourceElement::setMedia): Deleted. |
| (WebCore::HTMLSourceElement::type): Deleted. |
| (WebCore::HTMLSourceElement::setType): Deleted. |
| (WebCore::HTMLSourceElement::parseAttribute): Clear out m_cachedParsedMediaAttribute. |
| This makes the parsing be lazy. The old code would parse the attribute value to make |
| a MediaQuerySet here, but we do it in parsedMediaAttribute now. |
| (WebCore::HTMLSourceElement::parsedMediaAttribute): Added. Creates a MediaQuerySet |
| if needed, and returns it or null. |
| * html/HTMLSourceElement.h: Removed include of MediaList.h. Removed unneeded media, |
| type, setSrc, setMedia, and setType functions. Replaced the mediaQuerySet function |
| with the parsedMediaAttribute, which returns a const pointer rather than non-const, |
| and is also non-inline because it lazily creates the MediaQuerySet as needed. Replaced |
| m_mediaQuerySet with m_cachedParsedMediaAttribute. |
| * html/HTMLSourceElement.idl: Use [Reflect] for both type and media. |
| |
| * html/MediaDocument.cpp: Modernize the MediaDocumentParser constructor. |
| (WebCore::MediaDocumentParser::createDocumentStructure): Instead of setSrc, use |
| setAttributeWithoutSynchronization for the src attribute just as we do for all the |
| other attributes of the newly created video element. |
| |
| * html/MediaElementSession.cpp: |
| (WebCore::MediaElementSession::wirelessVideoPlaybackDisabled): Use reference to |
| value of attribute instead of copy to avoid reference count churn. |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::defaultSubstituteDataForURL): Ditto. |
| * rendering/RenderThemeIOS.mm: |
| (WebCore::getAttachmentProgress): Ditto. |
| * rendering/RenderThemeMac.mm: |
| (WebCore::AttachmentLayout::layOutSubtitle): Ditto. |
| (WebCore::RenderThemeMac::paintAttachment): Ditto. |
| * svg/SVGHKernElement.cpp: |
| (WebCore::SVGHKernElement::buildHorizontalKerningPair): Ditto. |
| * svg/SVGVKernElement.cpp: |
| (WebCore::SVGVKernElement::buildVerticalKerningPair): Ditto. |
| * svg/animation/SVGSMILElement.cpp: |
| (WebCore::SVGSMILElement::buildPendingResource): Ditto. Also use parentElement |
| instead of writing out code that does exactly what it does. |
| |
| 2017-06-03 Sam Weinig <sam@webkit.org> |
| |
| Can't use Object.defineProperty() to add an item to a DOMStringMap or Storage |
| https://bugs.webkit.org/show_bug.cgi?id=172687 |
| |
| Reviewed by Darin Adler. |
| |
| - Adds support for generating the defineOwnProperty ClassInfo method table hook |
| to add support for Object.defineProperty(). The implementation follows WebIDL |
| section 3.9.3 [[DefineOwnProperty]]. |
| (https://heycam.github.io/webidl/#legacy-platform-object-defineownproperty) |
| - Adds support for generating named setters in addition to the already supported |
| indexed setters as much of the required work was needed to make defineOwnProperty |
| work for those properties. This patch does not aim to follow WebIDL faithfully, |
| but rather to generate as close to the custom code as possible. A follow up |
| change will attempt to match WebIDL more closely (which will also require changes |
| to [[GetOwnPropertySlot]]). |
| - Removes the need for custom bindings in DOMStringMap, HTMLOptionsCollection and |
| HTMLSelectElement. Gets us one function away from supporting Storage. |
| - Tidies up generated headers a bit by grouping all the ClassInfo method table hooks |
| together. |
| - Removes support for CustomIndexedSetter, which is no longer used. |
| |
| Test: js/dom/legacy-platform-object-defineOwnProperty.html |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSBindingsAllInOne.cpp: |
| Removed now unneeded custom bindings. |
| |
| * bindings/js/JSDOMStringMapCustom.cpp: Removed. |
| * bindings/js/JSHTMLOptionsCollectionCustom.cpp: Removed. |
| * bindings/js/JSHTMLSelectElementCustom.cpp: Removed. |
| * bindings/js/JSHTMLSelectElementCustom.h: Removed. |
| * bindings/js/JSStorageCustom.cpp: |
| (WebCore::JSStorage::putDelegate): Deleted. |
| Remove more code that is now generated. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateIndexedGetter): |
| - Add missing check for indexed setter operation when determining if the property should be ReadOnly. |
| - Add support for custom implementation name, matching GenerateNamedGetter. |
| - Convert to taking an outputArray and indent to allow more flexibility going forward. |
| |
| (GenerateNamedGetter): |
| - Add missing check for named setter operation when determining if the property should be ReadOnly. |
| - Convert to taking an outputArray and indent to allow more flexibility going forward. |
| |
| (GenerateGetOwnPropertySlotBody): |
| - Convert to taking an outputArray and indent to allow more flexibility going forward. |
| - Take over responsibility for checking and bailing if CustomGetOwnPropertySlot is set. |
| |
| (GenerateGetOwnPropertySlotBodyByIndex): |
| - Convert to taking an outputArray and indent to allow more flexibility going forward. |
| - Take over responsibility for checking and bailing if CustomGetOwnPropertySlotByIndex is set. |
| |
| (GenerateGetOwnPropertyNames): |
| - Convert to taking an outputArray and indent to allow more flexibility going forward. |
| - Take over responsibility for checking and bailing if CustomEnumerateProperty is set. |
| |
| (GenerateInvokeIndexedPropertySetter): |
| Added. Implements the 'invoke an indexed property setter' algorithm (https://heycam.github.io/webidl/#invoke-indexed-setter) |
| |
| (GenerateInvokeNamedPropertySetter): |
| Added. Implements the 'invoke a named property setter' algorithm (https://heycam.github.io/webidl/#invoke-named-setter) |
| |
| (GeneratePut): |
| (GeneratePutByIndex): |
| - Convert to taking an outputArray and indent to allow more flexibility going forward. |
| - Take over responsibility for checking and bailing if CustomPut is set. |
| - Adds support for CEReactions. |
| - Adopts GenerateInvokeIndexedPropertySetter and GenerateInvokeNamedPropertySetter to |
| simplify code. |
| - Removes support for CustomIndexedSetter, which is no longer used. |
| - Replaces use direct checking of OverrideBuiltins with check if any interface it inherits |
| has it, which is how it is specified to work. |
| |
| (GenerateIsUnforgeablePropertyName): |
| Added. Helper subroutine to generate a function that compares a property name |
| agains all the property names defined as Unforgeable on the interface. Used by |
| GenerateDefineOwnProperty. |
| |
| (GenerateDefineOwnProperty): |
| Added. Implements section 3.9.3 [[DefineOwnProperty]] (https://heycam.github.io/webidl/#legacy-platform-object-defineownproperty) |
| Adds support for CEReactions. |
| |
| (GenerateDeletePropertyCommon): |
| Switch from getting OverrideBuiltins directly off the interface to using InheritsExtendedAttribute. |
| |
| (GenerateNamedDeleterDefinition): |
| Switch signature to match peer generators. |
| |
| (InstanceOverridesGetOwnPropertySlot): |
| Update for rename of JSCustomGetOwnPropertySlotAndDescriptor to CustomGetOwnPropertySlotAndDescriptor. |
| |
| (InstanceOverridesGetOwnPropertySlotByIndex): |
| Added. Like InstanceOverridesGetOwnPropertySlot, but checks for the new CustomGetOwnPropertySlotByIndex |
| rather than CustomGetOwnPropertySlot. |
| |
| (InstanceOverridesGetOwnPropertyNames): |
| Added. Moves complex predicate out of line. |
| |
| (InstanceOverridesPut): |
| Removes now unused CustomIndexedSetter, and adds CustomPutFunction, which used to be checked separately. |
| |
| (InstanceOverridesDefineOwnProperty): |
| Added. |
| |
| (GenerateHeader): |
| - Moves more structure flags together. |
| - Simplifies predicates and moves the ClassInfo method table hooks together. |
| |
| (GenerateImplementation): |
| - Moves the ClassInfo method table hooks together |
| - Adds call to GenerateDefineOwnProperty. |
| |
| (GenerateLegacyCallerDefinitions): |
| Simplify bail condition to match other generators. |
| |
| (GeneratePrototypeDeclaration): |
| Update for new extended attribute names. |
| |
| (InstanceOverridesCall): |
| Renamed from IsCallable for consistency. |
| |
| (HasComplexGetOwnProperty): |
| Deleted. Unused. |
| |
| (InstanceOverridesPutImplementation): |
| Deleted. Unused. |
| |
| (InstanceOverridesPutDeclaration): |
| Deleted. Unused. |
| |
| (IsCallable): |
| Renamed, for consistency, to InstanceOverridesCall . |
| |
| * bindings/scripts/IDLAttributes.json: |
| Renames a few of the extended attributes to remove the JS prefix. This time |
| around I only did the ones in the area I was working, but we should probably |
| remove most of the rest. |
| |
| * css/CSSStyleDeclaration.idl: |
| Update for JSCustomGetOwnPropertySlotAndDescriptor -> CustomGetOwnPropertySlotAndDescriptor rename. |
| |
| * dom/DOMStringMap.idl: |
| Remove CustomNamedSetter and add uncomment out the setter. |
| |
| * dom/DatasetDOMStringMap.cpp: |
| (WebCore::DatasetDOMStringMap::setNamedItem): |
| (WebCore::DatasetDOMStringMap::setItem): Deleted. |
| * dom/DatasetDOMStringMap.h: |
| Rename setItem to setNamedItem, which is what the generator expects. |
| |
| * dom/Node.idl: |
| Update for JSCustomPushEventHandlerScope -> CustomPushEventHandlerScope rename. |
| |
| * html/HTMLAppletElement.idl: |
| * html/HTMLEmbedElement.idl: |
| * html/HTMLObjectElement.idl: |
| Update for JSCustomGetOwnPropertySlotAndDescriptor -> CustomGetOwnPropertySlotAndDescriptor rename. |
| |
| * html/HTMLCollection.cpp: |
| (WebCore::HTMLCollection::isSupportedPropertyName): |
| * html/HTMLCollection.h: |
| Add isSupportedPropertyName function which is used by the bindings and is now needed. |
| |
| * html/HTMLElement.idl: |
| Update for JSCustomPushEventHandlerScope -> CustomPushEventHandlerScope rename. |
| |
| * html/HTMLOptionsCollection.h: |
| (WebCore::HTMLOptionsCollection::setItem): |
| Add setItem() implementation which just forwards to the select element. Also, add |
| a type alias to make the implementations of item and namedItem less verbose. |
| |
| * html/HTMLOptionsCollection.idl: |
| Remove CustomIndexedSetter and uncomment the setter. |
| |
| * html/HTMLSelectElement.idl: |
| Remove CustomIndexedSetter and uncomment the setter. Also, reformat |
| to match the WHATWG spec. |
| |
| * page/DOMWindow.idl: |
| Update for JSCustomDefineOwnProperty -> CustomDefineOwnProperty rename. Add |
| CustomGetOwnPropertySlotByIndex which is now needed to remove some unsound |
| assumptions the generator was making. |
| |
| * page/Location.idl: |
| Update for removal of JS prefix from a bunch of extended attributes. |
| |
| * page/UserMessageHandlersNamespace.idl: |
| Update for JSCustomGetOwnPropertySlotAndDescriptor -> CustomGetOwnPropertySlotAndDescriptor rename. |
| |
| * storage/Storage.idl: |
| Remove CustomNamedSetter and uncomment the setter. |
| |
| * bindings/scripts/test/JS/JSInterfaceName.h: |
| * bindings/scripts/test/JS/JSTestEventTarget.h: |
| * bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp: Added. |
| * bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h: Added. |
| * bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp: Added. |
| * bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h: Added. |
| * bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp: Added. |
| * bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h: Added. |
| * bindings/scripts/test/JS/JSTestInterface.cpp: |
| * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp: Added. |
| * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h: Added. |
| * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp: Added. |
| * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h: Added. |
| * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp: Added. |
| * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h: Added. |
| * bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h: |
| * bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h: |
| * bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp: |
| * bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h: |
| * bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h: |
| * bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp: Added. |
| * bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h: Added. |
| * bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp: Added. |
| * bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h: Added. |
| * bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp: Added. |
| * bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h: Added. |
| * bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp: Added. |
| * bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.h: Added. |
| * bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp: Added. |
| * bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.h: Added. |
| * bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp: Added. |
| * bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.h: Added. |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| * bindings/scripts/test/JS/JSTestObj.h: |
| * bindings/scripts/test/JS/JSTestOverrideBuiltins.h: |
| * bindings/scripts/test/TestIndexedSetterNoIdentifier.idl: Added. |
| * bindings/scripts/test/TestIndexedSetterThrowingException.idl: Added. |
| * bindings/scripts/test/TestIndexedSetterWithIdentifier.idl: Added. |
| * bindings/scripts/test/TestNamedAndIndexedSetterNoIdentifier.idl: Added. |
| * bindings/scripts/test/TestNamedAndIndexedSetterThrowingException.idl: Added. |
| * bindings/scripts/test/TestNamedAndIndexedSetterWithIdentifier.idl: Added. |
| * bindings/scripts/test/TestNamedDeleterWithIdentifier.idl: |
| * bindings/scripts/test/TestNamedSetterNoIdentifier.idl: Added. |
| * bindings/scripts/test/TestNamedSetterThrowingException.idl: Added. |
| * bindings/scripts/test/TestNamedSetterWithIdentifier.idl: Added. |
| * bindings/scripts/test/TestNamedSetterWithOverrideBuiltins.idl: Added. |
| * bindings/scripts/test/TestNamedSetterWithUnforgableProperties.idl: Added. |
| * bindings/scripts/test/TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.idl: Added. |
| Added new tests and updated some results. |
| |
| 2017-06-04 Simon Fraser <simon.fraser@apple.com> |
| |
| Object bounding box wrong for some paths |
| https://bugs.webkit.org/show_bug.cgi?id=172866 |
| |
| Reviewed by Tim Horton. |
| |
| RenderSVGShape::calculateObjectBoundingBox() should use boundingRect() |
| rather than fastBoundingRect(), because the latter includes control points. |
| |
| Covered by existing tests. |
| |
| * rendering/svg/RenderSVGShape.cpp: |
| (WebCore::RenderSVGShape::calculateObjectBoundingBox): |
| |
| 2017-06-04 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Fix build of Windows-specific code with ICU 59.1 |
| https://bugs.webkit.org/show_bug.cgi?id=172729 |
| |
| Reviewed by Darin Adler. |
| |
| Fix conversions from WTF::String to wchar_t* and vice versa. |
| No new tests needed. |
| |
| * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp: |
| (WebCore::mimeTypeCache): |
| (WebCore::MediaPlayerPrivateMediaFoundation::startCreateMediaSource): |
| |
| 2017-06-04 Chris Dumez <cdumez@apple.com> |
| |
| Implement DOMMatrixReadOnly.transformPoint() |
| https://bugs.webkit.org/show_bug.cgi?id=172900 |
| |
| Reviewed by Simon Fraser. |
| |
| Implement DOMMatrixReadOnly.transformPoint(): |
| - https://drafts.fxtf.org/geometry/#dommatrixreadonly |
| - https://drafts.fxtf.org/geometry/#dom-dommatrixreadonly-transformpoint |
| |
| Test: imported/blink/fast/dom/geometry-interfaces-dom-matrix-transformPoint.html |
| |
| * css/DOMMatrixReadOnly.cpp: |
| (WebCore::DOMMatrixReadOnly::transformPoint): |
| * css/DOMMatrixReadOnly.h: |
| * css/DOMMatrixReadOnly.idl: |
| |
| 2017-06-04 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] Improve comments in AES, PBKDF2, RSA-SSA algorithm implementations |
| https://bugs.webkit.org/show_bug.cgi?id=172894 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add or improve code comments in libgcrypt implementations for the AES_CBC, |
| AES_GCM, AES_KW, PBKDF2 and RSA-SSA algorithms. |
| |
| * crypto/gcrypt/CryptoAlgorithmAES_CBCGCrypt.cpp: Add generic comments that |
| describe each operation that's performed. |
| (WebCore::gcryptEncrypt): |
| (WebCore::gcryptDecrypt): |
| * crypto/gcrypt/CryptoAlgorithmAES_GCMGCrypt.cpp: Ditto. |
| (WebCore::gcryptEncrypt): |
| (WebCore::gcryptDecrypt): |
| * crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp: Ditto. |
| (WebCore::gcryptWrapKey): |
| (WebCore::gcryptUnwrapKey): |
| * crypto/gcrypt/CryptoAlgorithmPBKDF2GCrypt.cpp: Ditto. |
| (WebCore::gcryptDeriveBits): |
| * crypto/gcrypt/CryptoAlgorithmRSASSA_PKCS1_v1_5GCrypt.cpp: |
| (WebCore::gcryptVerify): Align the verification results comment with the |
| one that's used in the ECDSA implementation. |
| |
| 2017-06-03 Chris Dumez <cdumez@apple.com> |
| |
| Implement DOMMatrix's fromFloat32Array / fromFloat64Array & toFloat32Array / toFloat64Array |
| https://bugs.webkit.org/show_bug.cgi?id=172898 |
| |
| Reviewed by Sam Weinig. |
| |
| Implement DOMMatrix's fromFloat32Array / fromFloat64Array & toFloat32Array / toFloat64Array |
| as per: |
| - https://drafts.fxtf.org/geometry/#dommatrixreadonly |
| |
| Test: http/wpt/geometry/DOMMatrix-from-to-typed-arrays.html |
| |
| * css/DOMMatrix.cpp: |
| (WebCore::DOMMatrix::fromFloat32Array): |
| (WebCore::DOMMatrix::fromFloat64Array): |
| * css/DOMMatrix.h: |
| * css/DOMMatrix.idl: |
| * css/DOMMatrixReadOnly.cpp: |
| (WebCore::DOMMatrixReadOnly::fromFloat32Array): |
| (WebCore::DOMMatrixReadOnly::fromFloat64Array): |
| (WebCore::DOMMatrixReadOnly::toFloat32Array): |
| (WebCore::DOMMatrixReadOnly::toFloat64Array): |
| * css/DOMMatrixReadOnly.h: |
| * css/DOMMatrixReadOnly.idl: |
| |
| 2017-06-03 Simon Fraser <simon.fraser@apple.com> |
| |
| Implement DOMPointReadOnly.matrixTransform() |
| https://bugs.webkit.org/show_bug.cgi?id=172896 |
| |
| Reviewed by Chris Dumez. |
| |
| DOMPointReadOnly.matrixTransform() creates the matrix or throws, then uses |
| a new function in TransformationMatrix to map x,y,z,w through the matrix. |
| |
| Test: http/wpt/geometry/DOMPoint-003.html |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * css/DOMMatrixReadOnly.h: |
| (WebCore::DOMMatrixReadOnly::transformationMatrix): |
| * dom/DOMPointReadOnly.cpp: Copied from Source/WebCore/dom/DOMPointReadOnly.idl. |
| (WebCore::DOMPointReadOnly::matrixTransform): |
| * dom/DOMPointReadOnly.h: |
| * dom/DOMPointReadOnly.idl: |
| * platform/graphics/transforms/TransformationMatrix.cpp: |
| (WebCore::TransformationMatrix::map4ComponentPoint): |
| * platform/graphics/transforms/TransformationMatrix.h: |
| |
| 2017-06-03 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Cleanup arguments to preparePlatformFont() and fontWithFamily() in FontCacheCoreText.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=172886 |
| |
| Reviewed by Simon Fraser. |
| |
| The number of arguments is getting out of control. |
| |
| No new tests because there is no behavior change. |
| |
| * platform/graphics/FontCache.h: |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::preparePlatformFont): |
| (WebCore::fontWithFamily): |
| (WebCore::FontCache::createFontPlatformData): |
| (WebCore::FontCache::systemFallbackForCharacters): |
| * platform/graphics/mac/FontCacheMac.mm: |
| (WebCore::platformFontWithFamilySpecialCase): |
| * platform/graphics/mac/FontCustomPlatformData.cpp: |
| (WebCore::FontCustomPlatformData::fontPlatformData): |
| * platform/spi/cocoa/CoreTextSPI.h: |
| |
| 2017-06-03 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Script modules should be able to import data urls |
| https://bugs.webkit.org/show_bug.cgi?id=171594 |
| |
| Reviewed by Youenn Fablet. |
| |
| Tests: js/dom/classic-script-with-data-url.html |
| js/dom/modules/module-script-with-data-url.html |
| |
| Script tag resources should have SameOriginDataURLFlag::Set to load data URLs |
| since script tags should treat data URLs as same origin. |
| |
| * bindings/js/CachedScriptFetcher.cpp: |
| (WebCore::CachedScriptFetcher::requestScriptWithCache): |
| |
| 2017-06-03 Simon Fraser <simon.fraser@apple.com> |
| |
| Sort the project file. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| 2017-06-03 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] Gather SUBTLE_CRYPTO utility functions in a single header |
| https://bugs.webkit.org/show_bug.cgi?id=172870 |
| |
| Reviewed by Jiewen Tan. |
| |
| Gather the helper functions used across different source files |
| for libgcrypt-backed SUBTLE_CRYPTO implementations in a single |
| header file. |
| |
| * crypto/gcrypt/CryptoAlgorithmECDSAGCrypt.cpp: |
| (WebCore::hashCryptoDigestAlgorithm): Deleted. |
| (WebCore::hashAlgorithmName): Deleted. |
| (WebCore::mpiData): Deleted. |
| * crypto/gcrypt/CryptoAlgorithmHKDFGCrypt.cpp: |
| (WebCore::gcryptDeriveBits): |
| (WebCore::macAlgorithmForHashFunction): Deleted. |
| * crypto/gcrypt/CryptoAlgorithmPBKDF2GCrypt.cpp: |
| (WebCore::gcryptDeriveBits): |
| * crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp: |
| (WebCore::mpiData): Deleted. |
| * crypto/gcrypt/CryptoAlgorithmRSASSA_PKCS1_v1_5GCrypt.cpp: |
| (WebCore::hashCryptoDigestAlgorithm): Deleted. |
| (WebCore::hashAlgorithmName): Deleted. |
| (WebCore::mpiData): Deleted. |
| * crypto/gcrypt/CryptoAlgorithmRSA_OAEPGCrypt.cpp: |
| (WebCore::hashAlgorithmName): Deleted. |
| (WebCore::mpiData): Deleted. |
| * crypto/gcrypt/GCryptUtilities.h: Added. |
| (WebCore::hashAlgorithmName): |
| (WebCore::hmacAlgorithm): |
| (WebCore::digestAlgorithm): |
| (WebCore::hashCryptoDigestAlgorithm): |
| (WebCore::mpiData): |
| |
| 2017-06-03 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] Fix PK verification for ECDSA |
| https://bugs.webkit.org/show_bug.cgi?id=172857 |
| |
| Reviewed by Michael Catanzaro. |
| |
| No new tests -- covered by existing tests. |
| |
| * crypto/gcrypt/CryptoAlgorithmECDSAGCrypt.cpp: |
| (WebCore::gcryptVerify): Return `true` if the verification succeeded or `false` |
| in any other case, avoiding spilling information about the exact cause of |
| verification failure. |
| |
| 2017-06-02 Zalan Bujtas <zalan@apple.com> |
| |
| Cleanup FrameView::autoSizeIfEnabled. |
| https://bugs.webkit.org/show_bug.cgi?id=172889 |
| <rdar://problem/32550783> |
| |
| Reviewed by Tim Horton. |
| |
| This patch ensures that we always have a clean tree (and a valid and current document size) when |
| setting m_autoSizeContentSize. |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::autoSizeIfEnabled): |
| |
| 2017-06-02 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| REGRESSION(r216212): RenderReplaced::paint() should not save and restore the context unless it has to |
| https://bugs.webkit.org/show_bug.cgi?id=172883 |
| <rdar://problem/32548614> |
| |
| Reviewed by Tim Horton. |
| |
| After implementing dragged content fading, RenderReplace::paint is now always guarded by unnecessary calls to |
| GraphicsContext::save and GraphicsContext::restore, even when there is no dragged content being rendered. To |
| address this, we initialize our GraphicsContextStateSaver with saveAndRestore = false, indicating that we don't |
| want to immediately try and save the context. |
| |
| If we are in a dragged content range, we will then call GraphicsContextStateSaver::save, which saves the |
| graphics context and also causes the GraphicsContextStateSaver to eventually try and restore() when it is |
| destroyed. Otherwise, in the common codepath where the renderer is not in a dragged content range, the |
| constructor and destructor of GraphicsContextStateSaver will be no-ops with respect to saving and restoring the |
| graphics context. |
| |
| * rendering/RenderReplaced.cpp: |
| (WebCore::RenderReplaced::paint): |
| |
| 2017-06-02 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| REGRESSION(r213464): [iOS] Fonts get too bold when the "Bold Text" accessibility setting is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=172737 |
| |
| Reviewed by Simon Fraser. |
| |
| Revert the part of r213464 which changed how we calculate the weights of system fonts. |
| |
| Add an InternalSetting to trigger our mock of the accessbility "Bold Text" setting. We can't |
| use the real setting, so instead we just ask for bold fonts instead of regular fonts when this |
| setting is true. |
| |
| Tests: fast/text/accessibility-bold-system-font.html |
| fast/text/accessibility-bold-system-font-2.html |
| |
| * platform/graphics/FontCache.h: |
| (WebCore::FontCache::shouldMockBoldSystemFontForAccessibility): |
| (WebCore::FontCache::setShouldMockBoldSystemFontForAccessibility): |
| * platform/graphics/ios/FontCacheIOS.mm: |
| (WebCore::platformFontWithFamilySpecialCase): |
| * rendering/RenderTheme.h: |
| (WebCore::RenderTheme::shouldMockBoldSystemFontForAccessibility): |
| (WebCore::RenderTheme::setShouldMockBoldSystemFontForAccessibility): |
| * rendering/RenderThemeIOS.h: |
| * rendering/RenderThemeIOS.mm: |
| (WebCore::cssWeightOfSystemFont): |
| (WebCore::RenderThemeIOS::updateCachedSystemFontDescription): |
| * testing/InternalSettings.cpp: |
| (WebCore::InternalSettings::Backup::Backup): |
| (WebCore::InternalSettings::Backup::restoreTo): |
| (WebCore::InternalSettings::setShouldMockBoldSystemFontForAccessibility): |
| * testing/InternalSettings.h: |
| * testing/InternalSettings.idl: |
| |
| 2017-06-02 Brady Eidson <beidson@apple.com> |
| |
| Prevent scheme handlers from handling all built-in URL schemes. |
| <rdar://problem/32404790> and https://bugs.webkit.org/show_bug.cgi?id=172869 |
| |
| Reviewed by Andy Estes. |
| |
| Covered by API test. |
| |
| This patch refactors SchemeRegistry to keep a base, constant set of each of the special |
| URL schemes that WebKit knows about by default. |
| |
| It then exposes that list through a new method to support WK2 API. |
| |
| * platform/SchemeRegistry.cpp: |
| (WebCore::allBuiltinSchemes): |
| (WebCore::builtinLocalURLSchemes): |
| (WebCore::localURLSchemes): |
| (WebCore::builtinSecureSchemes): |
| (WebCore::secureSchemes): |
| (WebCore::builtinSchemesWithUniqueOrigins): |
| (WebCore::schemesWithUniqueOrigins): |
| (WebCore::builtinEmptyDocumentSchemes): |
| (WebCore::emptyDocumentSchemes): |
| (WebCore::builtinCanDisplayOnlyIfCanRequestSchemes): |
| (WebCore::canDisplayOnlyIfCanRequestSchemes): |
| (WebCore::SchemeRegistry::removeURLSchemeRegisteredAsLocal): |
| (WebCore::builtinCORSEnabledSchemes): |
| (WebCore::CORSEnabledSchemes): |
| (WebCore::SchemeRegistry::isBuiltinScheme): |
| * platform/SchemeRegistry.h: |
| |
| 2017-06-02 Simon Fraser <simon.fraser@apple.com> |
| |
| All scroll peformance logging should happen in the UI process |
| https://bugs.webkit.org/show_bug.cgi?id=172874 |
| rdar://problem/24474830 |
| |
| Reviewed by Tim Horton. |
| |
| Printing to stdout from the WebProcess doesn't show up anywhere in non-development builds, |
| so we have to log from the UI process. |
| |
| Achieve this by adding a PerformanceLoggingClient to Page which forwards messages to |
| WebPageProxy, which prints them with the same format they had before. Some plumbing through |
| PlatformCALayerClient and GraphicsLayerClient is required to get messages from TileControllers |
| through to something that can get to Page. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * page/Page.cpp: |
| (WebCore::Page::Page): |
| (WebCore::Page::~Page): |
| * page/Page.h: |
| (WebCore::Page::performanceLoggingClient): |
| * page/PageConfiguration.cpp: |
| * page/PageConfiguration.h: |
| * page/PerformanceLoggingClient.cpp: Added. |
| (WebCore::PerformanceLoggingClient::synchronousScrollingReasonsAsString): |
| * page/PerformanceLoggingClient.h: Added. |
| (WebCore::PerformanceLoggingClient::~PerformanceLoggingClient): |
| * page/scrolling/AsyncScrollingCoordinator.cpp: |
| (WebCore::AsyncScrollingCoordinator::reportExposedUnfilledArea): |
| (WebCore::AsyncScrollingCoordinator::reportSynchronousScrollingReasonsChanged): |
| * page/scrolling/AsyncScrollingCoordinator.h: |
| * page/scrolling/ScrollingTree.h: |
| (WebCore::ScrollingTree::reportSynchronousScrollingReasonsChanged): |
| (WebCore::ScrollingTree::reportExposedUnfilledArea): |
| * page/scrolling/ThreadedScrollingTree.cpp: |
| (WebCore::ThreadedScrollingTree::reportSynchronousScrollingReasonsChanged): |
| (WebCore::ThreadedScrollingTree::reportExposedUnfilledArea): |
| * page/scrolling/ThreadedScrollingTree.h: |
| * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h: |
| * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: |
| (WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren): |
| (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition): |
| (WebCore::ScrollingTreeFrameScrollingNodeMac::exposedUnfilledArea): |
| (WebCore::ScrollingTreeFrameScrollingNodeMac::logExposedUnfilledArea): Deleted. |
| (WebCore::logThreadedScrollingMode): Deleted. |
| * platform/graphics/GraphicsLayerClient.h: |
| (WebCore::GraphicsLayerClient::logFilledVisibleFreshTile): |
| * platform/graphics/ca/GraphicsLayerCA.cpp: |
| (WebCore::GraphicsLayerCA::platformCALayerLogFilledVisibleFreshTile): |
| * platform/graphics/ca/GraphicsLayerCA.h: |
| * platform/graphics/ca/PlatformCALayerClient.h: |
| (WebCore::PlatformCALayerClient::platformCALayerLogFilledVisibleFreshTile): |
| * platform/graphics/ca/TileController.cpp: |
| (WebCore::TileController::logFilledVisibleFreshTile): |
| * platform/graphics/ca/TileController.h: |
| * platform/graphics/ca/TileGrid.cpp: |
| (WebCore::TileGrid::platformCALayerPaintContents): |
| * platform/graphics/ca/TileGrid.h: |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::RenderLayerBacking::logFilledVisibleFreshTile): |
| * rendering/RenderLayerBacking.h: |
| |
| 2017-06-02 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream iOS] Cleanup video muting/unmuting when tab visibility changes |
| https://bugs.webkit.org/show_bug.cgi?id=172858 |
| |
| Reviewed by Youenn Fablet. |
| |
| Test: platform/ios/mediastream/video-muted-in-background-tab.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::visibilityStateChanged): Call notifyMediaCaptureOfVisibilityChanged. |
| (WebCore::Document::notifyMediaCaptureOfVisibilityChanged): Renamed from notifyVisibilityChangedToMediaCapture. |
| Set m_videoCaptureMutedForVisibilityChange when capture is muted because the document is hidden, |
| and clear it when visibility changes when capture is disabled. Don't unmute when the document |
| becomes visible unless this m_videoCaptureMutedForVisibilityChange is still true. |
| (WebCore::Document::notifyVisibilityChangedToMediaCapture): Deleted. |
| * dom/Document.h: |
| |
| * platform/mediastream/RealtimeMediaSource.h: |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::RealtimeMediaSourceCenter::setVideoCaptureMutedForPageVisibility): Renamed from |
| setVisibility. |
| (WebCore::RealtimeMediaSourceCenter::setVisibility): Deleted. |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSourceFactory::setVideoCaptureMutedForPageVisibility): Ditto. |
| (WebCore::AVVideoCaptureSourceFactory::setVisibility): Deleted. |
| |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSourceFactory::setVideoCaptureMutedForPageVisibility): Ditto. |
| (WebCore::MockRealtimeVideoSourceFactory::setVisibility): Deleted. |
| |
| 2017-06-02 Frederic Wang <fwang@igalia.com> |
| |
| [Mac] Include frames in the scrolling tree when ScrollingTreeIncludesFrames=true |
| https://bugs.webkit.org/show_bug.cgi?id=172825 |
| |
| Reviewed by Simon Fraser. |
| |
| This commit generalizes RenderLayerCompositor/ScrollingCoordinator so that it handles the |
| case of non-main frames. When ScrollingTreeIncludesFrames=true, all the frames will appear |
| in the scrolling tree on Mac WK2. |
| |
| Test: fast/scrolling/scrolling-tree-includes-frame.html |
| |
| * page/scrolling/ScrollingCoordinator.cpp: |
| (WebCore::ScrollingCoordinator::coordinatesScrollingForFrameView): Do not to restrict to the |
| main frame. |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::updateBacking): Do not to restrict to the main frame. |
| (WebCore::RenderLayerCompositor::useCoordinatedScrollingForLayer): Make this function a class |
| member so it can call hasCoordinatedScrolling and no longer needs a RenderView parameter. |
| (WebCore::RenderLayerCompositor::updateScrollCoordinatedStatus): Do not to restrict to the |
| main frame. |
| * rendering/RenderLayerCompositor.h: Introduce useCoordinatedScrollingForLayer. |
| |
| 2017-06-02 Don Olmstead <don.olmstead@am.sony.com> |
| |
| [WebCore] DragImageRef should correspond to USE(CAIRO) |
| https://bugs.webkit.org/show_bug.cgi?id=172863 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| No new tests. No change in behavior. |
| |
| * platform/DragImage.h: |
| |
| 2017-06-02 Frederic Wang <fwang@igalia.com> |
| |
| [Mac] Use compositing for frames when ScrollingTreeIncludesFrames=true |
| https://bugs.webkit.org/show_bug.cgi?id=172851 |
| |
| Reviewed by Simon Fraser. |
| |
| When fast frame scrolling is supported on mac (bug 171667), scrollable frames will require |
| special composited layer. This commit enables that on mac but only when |
| ScrollingTreeIncludesFrames=true, so that the default behavior is unchanged. |
| |
| Test: compositing/iframes/compositing-for-scrollable-iframe.html |
| |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame): Do not enable frame |
| compositing when ScrollingTreeIncludesFrames=false. |
| Rename ScrollableInnerFrameTrigger to ScrollableNonMainFrameTrigger. |
| * page/ChromeClient.h: Rename ScrollableInnerFrameTrigger. |
| |
| 2017-06-02 Simon Fraser <simon.fraser@apple.com> |
| |
| Get <chrono> out of StdLibExtras.h |
| https://bugs.webkit.org/show_bug.cgi?id=172744 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Only bring in <chrono> and namespace std::literals::chrono_literals when necessary. |
| |
| * fileapi/FileReader.cpp: |
| * inspector/InspectorOverlay.cpp: |
| * loader/CrossOriginPreflightResultCache.cpp: |
| * loader/cache/CachedResource.cpp: |
| (WebCore::CachedResource::freshnessLifetime): |
| * page/ResourceUsageThread.cpp: |
| (WebCore::ResourceUsageThread::threadBody): |
| * page/cocoa/MemoryReleaseCocoa.mm: |
| (WebCore::jettisonExpensiveObjectsOnTopLevelNavigation): |
| * platform/network/CacheValidation.cpp: |
| (WebCore::computeFreshnessLifetimeForHTTPFamily): |
| * platform/network/CacheValidation.h: |
| |
| 2017-06-02 Andy Estes <aestes@apple.com> |
| |
| [Cocoa] Add a "supportedCountries" property to ApplePayPaymentRequest |
| https://bugs.webkit.org/show_bug.cgi?id=172832 |
| <rdar://problem/30735544> |
| |
| Reviewed by Alex Christensen. |
| |
| Test: http/tests/ssl/applepay/ApplePaySessionV3.html |
| |
| * Modules/applepay/ApplePayPaymentRequest.h: |
| * Modules/applepay/ApplePayPaymentRequest.idl: |
| * Modules/applepay/ApplePaySession.cpp: |
| (WebCore::convertAndValidate): |
| * Modules/applepay/PaymentRequest.h: |
| (WebCore::PaymentRequest::supportedCountries): |
| (WebCore::PaymentRequest::setSupportedCountries): |
| * Modules/applepay/PaymentRequestValidator.cpp: |
| (WebCore::PaymentRequestValidator::validate): |
| * platform/spi/cocoa/PassKitSPI.h: |
| |
| 2017-06-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Should see active Web Sockets when opening Web Inspector |
| https://bugs.webkit.org/show_bug.cgi?id=172312 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Test: http/tests/websocket/tests/hybi/inspector/before-load.html |
| |
| * Modules/websockets/WebSocket.h: |
| * Modules/websockets/WebSocket.cpp: |
| (WebCore::WebSocket::WebSocket): |
| (WebCore::WebSocket::~WebSocket): |
| (WebCore::WebSocket::allActiveWebSockets): |
| (WebCore::WebSocket::allActiveWebSocketsMutex): |
| (WebCore::WebSocket::channel): |
| (WebCore::WebSocket::eventTargetInterface): |
| Add a static set of all WebSocket objects and provide getters to access web socket metadata. |
| |
| * Modules/websockets/ThreadableWebSocketChannel.h: |
| (WebCore::ThreadableWebSocketChannel::isWebSocketChannel): |
| * Modules/websockets/WebSocketChannel.h: |
| * Modules/websockets/WebSocketChannel.cpp: |
| (WebCore::WebSocketChannel::isWebSocketChannel): |
| (WebCore::WebSocketChannel::identifier): |
| (WebCore::WebSocketChannel::clientHandshakeRequest): |
| (WebCore::WebSocketChannel::serverHandshakeResponse): |
| (WebCore::WebSocketChannel::handshakeMode): |
| (WebCore::WebSocketChannel::isType): |
| Provide getters to access web socket metadata. |
| |
| * inspector/InspectorNetworkAgent.cpp: |
| (WebCore::InspectorNetworkAgent::enable): |
| Loops over the static set of all WebSocket objects and sends events for each to the frontend. |
| |
| 2017-06-02 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, fix linking errors on iOS after r217712. |
| |
| * platform/OrientationNotifer.h: |
| (WebCore::OrientationNotifier::Observer::setNotifier): |
| |
| 2017-06-02 Chris Dumez <cdumez@apple.com> |
| |
| Crash under OrientationNotifier::Observer::setNotifier() |
| https://bugs.webkit.org/show_bug.cgi?id=172847 |
| <rdar://problem/32519127> |
| |
| Reviewed by Youenn Fablet. |
| |
| Update OrientationNotifier::Observer::setNotifier() to unregister itself from |
| its current notifier if it already has one. This is needed because |
| Internals::setCameraMediaStreamTrackOrientation() may be used to override the |
| notifier of an observer. If we override the notifier without unregistering |
| the observer from its previous notifier, then the previous notifier will not |
| get notified when the observer gets destroyed. |
| |
| No new tests, already covered by webrtc/video-rotation.html that is currently |
| failing on some bots. |
| |
| * platform/OrientationNotifer.h: |
| (WebCore::OrientationNotifier::Observer::setNotifier): |
| |
| 2017-06-02 Javier Fernandez <jfernandez@igalia.com> |
| |
| [css-grid] Logical margin incorrectly applied during the tracks sizing algorithm of auto tracks |
| https://bugs.webkit.org/show_bug.cgi?id=172836 |
| |
| Reviewed by Manuel Rego Casasnovas. |
| |
| When computing min-content and max-content of the content-sized tracks |
| we are using the marginIntrinsicLogicalWidthForChild function, which |
| uses the grid's writing-mode to determine wether to use the child's |
| margin width or height. This is not correct when the grid item is |
| orthogonal. |
| |
| This patch changes how we compute the tracks width so we use always |
| the item's marginLogicalWidth, which depends only on its own writing |
| mode. |
| |
| Test: fast/css-grid-layout/grid-track-sizing-with-margins-and-orthogonal-flows.html |
| |
| * rendering/GridTrackSizingAlgorithm.cpp: |
| (WebCore::GridTrackSizingAlgorithmStrategy::minContentForChild): |
| (WebCore::GridTrackSizingAlgorithmStrategy::maxContentForChild): |
| |
| 2017-06-02 Emilio Cobos Álvarez <ecobos@igalia.com> |
| |
| Invalidate the shadow subtree style when slotted pseudo rules are present. |
| https://bugs.webkit.org/show_bug.cgi?id=172822 |
| |
| Reviewed by Antti Koivisto. |
| |
| No new tests, this is tested by |
| fast/shadow-dom/css-scoping-slot-with-id.html, once we don't force an |
| Inherit style change for slots. I could add some more tests for stuff |
| with descendant combinators and similar I guess, though. |
| |
| * style/AttributeChangeInvalidation.cpp: |
| (WebCore::Style::AttributeChangeInvalidation::invalidateStyle): |
| * style/ClassChangeInvalidation.cpp: |
| (WebCore::Style::ClassChangeInvalidation::invalidateStyle): |
| * style/IdChangeInvalidation.cpp: |
| (WebCore::Style::IdChangeInvalidation::invalidateStyle): |
| |
| 2017-06-02 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK+][WPE] Allow TextureMapperShaderProgram to perform colorspace conversions with the source texture pixels |
| https://bugs.webkit.org/show_bug.cgi?id=172749 |
| |
| Reviewed by Žan Doberšek. |
| |
| Currently TextureMapperGL is only able to paint properly textures that are in RGBA format. There are |
| situations where we will want it to be able to handle other formats (for example BGRA for gstreamer-gl). |
| To make this possible without having to perform the color conversion in the CPU, we add a new color |
| conversion matrix to TextureMapperShaderProgram. This matrix will perform the color space conversion |
| in the GPU, just after sampling the source texture. |
| |
| Also, add a new flag to TextureMapperGL to indicate that a color conversion is required to handle a |
| texture. This flag will be set to the TextureMapperPlatformLayerBuffers as required, and TextureMapperGL |
| will set the appropriate color space matrix to the shader. Initially only the flag for BGRA->RGBA conversion |
| is defined, but support for new transformations can be added as needed. |
| |
| VideoTextureCopierGStreamer also uses the TextureMapperShaderProgram to perform texture sampling, but for |
| the moment it just sets an identity matrix because when using gstreamer-gl, the format of the video frames |
| is RGBA. This will be changed soon to use BGRA. |
| |
| No new tests. |
| |
| * platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp: |
| (WebCore::VideoTextureCopierGStreamer::copyVideoTextureToPlatformTexture): |
| * platform/graphics/texmap/TextureMapperGL.cpp: |
| (WebCore::colorSpaceMatrixForFlags): |
| (WebCore::TextureMapperGL::drawTexturedQuadWithProgram): |
| * platform/graphics/texmap/TextureMapperGL.h: |
| * platform/graphics/texmap/TextureMapperShaderProgram.cpp: |
| * platform/graphics/texmap/TextureMapperShaderProgram.h: |
| |
| 2017-06-02 Javier Fernandez <jfernandez@igalia.com> |
| |
| [css-grid] Margin wrong applied when stretching an orthogonal item in fixed size track |
| https://bugs.webkit.org/show_bug.cgi?id=172590 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| We need to consider orthogonality when using the item's logical margin to |
| compute the available space for stretching. |
| |
| The issue this patch fixes is only reproducible when the grid layout logic |
| is executed several times, since probably the item doesn't need to be |
| laid out again. In such cases, we just get the cached logical margins |
| but we were not taking orthogonality into account. |
| |
| Test: fast/css-grid-layout/grid-item-stretching-must-not-depend-on-previous-layouts.html |
| |
| * rendering/RenderGrid.cpp: |
| (WebCore::RenderGrid::layoutBlock): |
| (WebCore::RenderGrid::marginLogicalSizeForChild): |
| (WebCore::RenderGrid::availableAlignmentSpaceForChildBeforeStretching): |
| * rendering/RenderGrid.h: |
| |
| 2017-06-01 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Cache RenderThemeGadget hierarchies for rendering themed elements with GTK+ 3.20+ |
| https://bugs.webkit.org/show_bug.cgi?id=162673 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Because of the way the new theming system works in GTK+ >= 3.20 we are currently creating a gadget hierarchy |
| every time we need to render a styled element or get layout information about it. That's happening on every |
| repaint, and it's specially problematic for overlay scrollbar indicators that fade in/out when shown/hidden. We |
| need to cache the gadgets and simply apply the state before every paint or layout query. When using GtkWidgetPath, |
| calling gtk_style_context_save() breaks the gadget hierarchy, and style classes need to be set when building the |
| GtkWidgetPath. That means we can't cache RenderThemeGadgets, call save, apply style classes and state, and then |
| call restore. We need to cache gadget hierarchies with fixed style classes. Fortunately, setting the state does |
| work, so we don't need to also cache a different hierarchy for every possible state. For example, for the |
| particular case of scrollbars we would cache VerticalScrollbarRight, VerticalScrollbarLeft, HorizontalScrollbar, |
| VerticalScrollIndicatorRight, VerticalScrollIndicatorLeft and HorizontalScrollIndicator. In practice, we will |
| only have 4 of those at the same time in the cache. |
| This patch adds RenderThemeWidget to represent a hierarchy of gadgets with fixed style classes that can be |
| cached and reused to render or query style of those "widgets". It also simplifies the RenderThemeGtk and |
| ScrollbarThemeGtk code by removing a lot of duplicated code to build the gadget hierarchies. |
| |
| * PlatformGTK.cmake: |
| * platform/gtk/RenderThemeGadget.cpp: |
| (WebCore::createStyleContext): |
| (WebCore::appendElementToPath): |
| (WebCore::RenderThemeGadget::state): |
| (WebCore::RenderThemeGadget::setState): |
| * platform/gtk/RenderThemeGadget.h: |
| * platform/gtk/RenderThemeWidget.cpp: Added. |
| (WebCore::widgetMap): |
| (WebCore::RenderThemeWidget::getOrCreate): |
| (WebCore::RenderThemeWidget::clearCache): |
| (WebCore::RenderThemeWidget::~RenderThemeWidget): |
| (WebCore::RenderThemeScrollbar::RenderThemeScrollbar): |
| (WebCore::RenderThemeScrollbar::stepper): |
| (WebCore::RenderThemeToggleButton::RenderThemeToggleButton): |
| (WebCore::RenderThemeButton::RenderThemeButton): |
| (WebCore::RenderThemeComboBox::RenderThemeComboBox): |
| (WebCore::RenderThemeEntry::RenderThemeEntry): |
| (WebCore::RenderThemeSearchEntry::RenderThemeSearchEntry): |
| (WebCore::RenderThemeSpinButton::RenderThemeSpinButton): |
| (WebCore::RenderThemeSlider::RenderThemeSlider): |
| (WebCore::RenderThemeProgressBar::RenderThemeProgressBar): |
| (WebCore::RenderThemeListView::RenderThemeListView): |
| (WebCore::RenderThemeIcon::RenderThemeIcon): |
| * platform/gtk/RenderThemeWidget.h: Added. |
| (WebCore::RenderThemeEntry::entry): |
| (WebCore::RenderThemeEntry::selection): |
| * platform/gtk/ScrollbarThemeGtk.cpp: |
| (WebCore::ScrollbarThemeGtk::themeChanged): |
| (WebCore::ScrollbarThemeGtk::updateThemeProperties): |
| (WebCore::widgetTypeForScrollbar): |
| (WebCore::contentsRectangle): |
| (WebCore::ScrollbarThemeGtk::trackRect): |
| (WebCore::ScrollbarThemeGtk::backButtonRect): |
| (WebCore::ScrollbarThemeGtk::forwardButtonRect): |
| (WebCore::ScrollbarThemeGtk::paint): |
| (WebCore::ScrollbarThemeGtk::scrollbarThickness): |
| (WebCore::ScrollbarThemeGtk::minimumThumbLength): |
| * rendering/RenderThemeGtk.cpp: |
| (WebCore::createStyleContext): |
| (WebCore::setToggleSize): |
| (WebCore::paintToggle): |
| (WebCore::RenderThemeGtk::paintButton): |
| (WebCore::menuListColor): |
| (WebCore::RenderThemeGtk::popupInternalPaddingBox): |
| (WebCore::RenderThemeGtk::paintMenuList): |
| (WebCore::RenderThemeGtk::adjustTextFieldStyle): |
| (WebCore::RenderThemeGtk::paintTextField): |
| (WebCore::adjustSearchFieldIconStyle): |
| (WebCore::paintSearchFieldIcon): |
| (WebCore::RenderThemeGtk::paintSliderTrack): |
| (WebCore::RenderThemeGtk::adjustSliderThumbSize): |
| (WebCore::RenderThemeGtk::paintSliderThumb): |
| (WebCore::RenderThemeGtk::progressBarRectForBounds): |
| (WebCore::RenderThemeGtk::paintProgressBar): |
| (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle): |
| (WebCore::RenderThemeGtk::paintInnerSpinButton): |
| (WebCore::styleColor): |
| (WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor): |
| (WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor): |
| (WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor): |
| (WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor): |
| (WebCore::RenderThemeGtk::paintMediaButton): |
| |
| 2017-06-01 Andreas Kling <akling@apple.com> |
| |
| [Mac] Remove backing store for layers that are outside the viewport |
| https://bugs.webkit.org/show_bug.cgi?id=170082 |
| <rdar://problem/31245009> |
| |
| Reviewed by Simon Fraser. |
| |
| Implement the backingStoreAttached flag in PlatformCALayerCocoa. This means that |
| compositing layers outside the tiling coverage rect will no longer have backing |
| stores, saving large amounts of memory. |
| |
| Also added a canDetachBackingStore flag that is set to false for scroll control |
| layers, to avoid complicating coverage rect computations. |
| |
| Test: compositing/backing-store-attachment-1.html |
| |
| * page/Frame.h: |
| * platform/graphics/GraphicsLayer.cpp: |
| (WebCore::GraphicsLayer::GraphicsLayer): |
| (WebCore::GraphicsLayer::dumpProperties): |
| * platform/graphics/GraphicsLayer.h: |
| (WebCore::GraphicsLayer::backingStoreAttached): |
| (WebCore::GraphicsLayer::setCanDetachBackingStore): |
| (WebCore::GraphicsLayer::canDetachBackingStore): |
| * platform/graphics/GraphicsLayerClient.h: |
| * platform/graphics/ca/GraphicsLayerCA.cpp: |
| (WebCore::GraphicsLayerCA::backingStoreAttached): |
| (WebCore::GraphicsLayerCA::setNeedsDisplay): |
| (WebCore::GraphicsLayerCA::updateCoverage): |
| * platform/graphics/ca/GraphicsLayerCA.h: |
| * platform/graphics/ca/PlatformCALayer.h: |
| * platform/graphics/ca/cocoa/PlatformCALayerCocoa.h: |
| * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: |
| (PlatformCALayerCocoa::setBackingStoreAttached): |
| (PlatformCALayerCocoa::backingStoreAttached): |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::RenderLayerBacking::updateOverflowControlsLayers): |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::layerTreeAsText): |
| (WebCore::RenderLayerCompositor::updateOverflowControlsLayers): |
| * testing/Internals.cpp: |
| (WebCore::toLayerTreeFlags): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-06-01 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r217691. |
| |
| This change broke the Windows build. |
| |
| Reverted changeset: |
| |
| "Web Inspector: Should see active Web Sockets when opening Web |
| Inspector" |
| https://bugs.webkit.org/show_bug.cgi?id=172312 |
| http://trac.webkit.org/changeset/217691 |
| |
| 2017-06-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Unreviewed Windows build fix after r217691. |
| |
| * Modules/websockets/WebSocketChannel.cpp: |
| (WebCore::WebSocketChannel::sendFrame): |
| * Modules/websockets/WebSocketChannel.h: |
| Disambiguate the Function being used. |
| |
| 2017-06-01 Youenn Fablet <youenn@apple.com> |
| |
| LibWebRTC might crash with frames having a null width or height |
| https://bugs.webkit.org/show_bug.cgi?id=172842 |
| <rdar://problem/32514813> |
| |
| Reviewed by Jon Lee. |
| |
| Do not send black frames in case the video width or height is zero. |
| Also ensure that even if a null buffer is returned by the pool, no crash might actually happen. |
| |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: |
| (WebCore::RealtimeOutgoingVideoSource::sendBlackFramesIfNeeded): |
| (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): |
| |
| 2017-06-01 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Should see active Web Sockets when opening Web Inspector |
| https://bugs.webkit.org/show_bug.cgi?id=172312 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Test: http/tests/websocket/tests/hybi/inspector/before-load.html |
| |
| * Modules/websockets/WebSocket.h: |
| * Modules/websockets/WebSocket.cpp: |
| (WebCore::WebSocket::WebSocket): |
| (WebCore::WebSocket::~WebSocket): |
| (WebCore::WebSocket::allActiveWebSockets): |
| (WebCore::WebSocket::allActiveWebSocketsMutex): |
| (WebCore::WebSocket::channel): |
| (WebCore::WebSocket::eventTargetInterface): |
| Add a static set of all WebSocket objects and provide getters to access web socket metadata. |
| |
| * Modules/websockets/ThreadableWebSocketChannel.h: |
| (WebCore::ThreadableWebSocketChannel::isWebSocketChannel): |
| * Modules/websockets/WebSocketChannel.h: |
| * Modules/websockets/WebSocketChannel.cpp: |
| (WebCore::WebSocketChannel::isWebSocketChannel): |
| (WebCore::WebSocketChannel::identifier): |
| (WebCore::WebSocketChannel::clientHandshakeRequest): |
| (WebCore::WebSocketChannel::serverHandshakeResponse): |
| (WebCore::WebSocketChannel::handshakeMode): |
| (WebCore::WebSocketChannel::isType): |
| Provide getters to access web socket metadata. |
| |
| * inspector/InspectorNetworkAgent.cpp: |
| (WebCore::InspectorNetworkAgent::enable): |
| Loops over the static set of all WebSocket objects and sends events for each to the frontend. |
| |
| 2017-06-01 Simon Fraser <simon.fraser@apple.com> |
| |
| REGRESSION (r217296): Dragging a video only shows controls during drag event |
| https://bugs.webkit.org/show_bug.cgi?id=172837 |
| rdar://problem/32434661 |
| |
| Reviewed by Zalan Bujtas. |
| |
| r217296 changed RenderVideo::paintReplaced() from checking paintBehavior() flags on the FrameView |
| to paintInfo.paintBehavior flags. However, RenderLayer was stripping the PaintBehaviorFlattenCompositingLayers |
| flag from the paintInfo.paintBehavior flags, so fix that. |
| |
| Not easily testable. |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::paintLayerContents): |
| |
| 2017-06-01 Simon Fraser <simon.fraser@apple.com> |
| |
| Remove the redundant selectionOnly argument from RenderLayer::paintForegroundForFragments() |
| https://bugs.webkit.org/show_bug.cgi?id=172835 |
| |
| Reviewed by Zalan Bujtas. |
| |
| The 'selectionOnly' state is already encoded in localPaintingInfo.paintBehavior so there's |
| no need to pass it separately. |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::paintLayerContents): |
| (WebCore::RenderLayer::paintForegroundForFragments): |
| * rendering/RenderLayer.h: |
| |
| 2017-06-01 Yoshiaki Jitsukawa <Yoshiaki.Jitsukawa@sony.com> |
| |
| Fix compilation errors in LocalizedStrings.cpp on platform not USE(CF) nor USE(GLIB) |
| https://bugs.webkit.org/show_bug.cgi?id=172796 |
| |
| Reviewed by Alex Christensen. |
| |
| No new tests needed. Fixing compilation errors. |
| |
| * platform/LocalizedStrings.cpp: |
| (WebCore::contextMenuItemTagLookUpInDictionary): |
| (WebCore::imageTitle): |
| (WebCore::validationMessageRangeUnderflowText): |
| (WebCore::validationMessageRangeOverflowText): |
| |
| 2017-06-01 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r217647. |
| |
| No longer needed after r217682 |
| |
| Reverted changeset: |
| |
| "Avoid iterator invalidation bug in |
| WebCore::defaultPortForProtocol" |
| https://bugs.webkit.org/show_bug.cgi?id=172786 |
| http://trac.webkit.org/changeset/217647 |
| |
| 2017-06-01 Chris Dumez <cdumez@apple.com> |
| |
| Make WebCore::defaultPortForProtocol() thread-safe |
| https://bugs.webkit.org/show_bug.cgi?id=172797 |
| |
| Reviewed by Brent Fulgham. |
| |
| Make WebCore::defaultPortForProtocol() thread-safe since it is called from the SecurityOrigin |
| constructor and SecurityOrigin objects are constructed from various threads. |
| |
| This should not regress the non-testing code paths since we only pay locking costs if |
| a default port override has been set by the tests. |
| |
| * platform/URL.cpp: |
| (WebCore::defaultPortForProtocolMapLock): |
| (WebCore::defaultPortForProtocolMapForTesting): |
| (WebCore::ensureDefaultPortForProtocolMapForTesting): |
| (WebCore::registerDefaultPortForProtocolForTesting): |
| (WebCore::clearDefaultPortForProtocolMapForTesting): |
| (WebCore::defaultPortForProtocol): |
| |
| 2017-06-01 Andy Estes <aestes@apple.com> |
| |
| REGRESSION (r217626): ENABLE_APPLE_PAY_SESSION_V3 was disabled by mistake |
| https://bugs.webkit.org/show_bug.cgi?id=172828 |
| |
| Reviewed by Beth Dakin. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2017-06-01 Frederic Wang <fwang@igalia.com> |
| |
| ScrollingCoordinator::updateSynchronousScrollingReasons should consider non-main frames |
| https://bugs.webkit.org/show_bug.cgi?id=172806 |
| |
| Reviewed by Simon Fraser. |
| |
| Currently, the scrolling coordinator does not manage scrolling of frames other than the main |
| one (bugs 171667 and 149264) and so ScrollingCoordinator::updateSynchronousScrollingReasons |
| is only relevant for the main frame. This commit refactors a bit ScrollingCoordinator so that |
| updateSynchronousScrollingReasons is considered for all the frames whose scrolling is |
| coordinated by the ScrollingCoordinator so non-main frames will be considered in the future. |
| |
| No new tests, behavior is unchanged for now. |
| |
| * page/scrolling/ScrollingCoordinator.cpp: |
| (WebCore::ScrollingCoordinator::updateSynchronousScrollingReasons): Add an ASSERT to ensure |
| that this function is only called for frame whose scrolling is coordinated by this class. |
| (WebCore::ScrollingCoordinator::updateSynchronousScrollingReasonsForAllFrames): Introduce a |
| new function to update synchronous scrolling for subframes whose scrolling is coordinated by |
| this class. |
| (WebCore::ScrollingCoordinator::setForceSynchronousScrollLayerPositionUpdates): Update |
| synchronous scrolling reason for non-main frames too. |
| (WebCore::ScrollingCoordinator::replaySessionStateDidChange): Update synchronous scrolling |
| reason for non-main frames too. |
| * page/scrolling/ScrollingCoordinator.h: Define updateSynchronousScrollingReasonsForAllFrames |
| |
| 2017-06-01 Andy Estes <aestes@apple.com> |
| |
| [Cocoa] Upstream support for JCB as a supported payment network |
| https://bugs.webkit.org/show_bug.cgi?id=172819 |
| |
| Reviewed by Tim Horton. |
| |
| * Modules/applepay/PaymentRequest.cpp: |
| (WebCore::PaymentRequest::isValidSupportedNetwork): |
| (WebCore::isAdditionalValidSupportedNetwork): Deleted. |
| |
| 2017-06-01 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r217660. |
| |
| This should not have landed given that the new assertion is |
| hit on debug EWS bots |
| |
| Reverted changeset: |
| |
| "Make sure we don't access WebCore::defaultPortForProtocol |
| from non-main thread" |
| https://bugs.webkit.org/show_bug.cgi?id=172797 |
| http://trac.webkit.org/changeset/217660 |
| |
| 2017-06-01 Brent Fulgham <bfulgham@apple.com> |
| |
| Make sure we don't access WebCore::defaultPortForProtocol from non-main thread |
| https://bugs.webkit.org/show_bug.cgi?id=172797 |
| |
| Reviewed by Alex Christensen. |
| |
| * platform/URL.cpp: |
| (WebCore::defaultPortForProtocol): Add an assertion to make sure we don't access the |
| DefaultPortForProtocolMapForTesting from multiple threads. |
| |
| 2017-06-01 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Get rid of more HIGH_DPI_CANVAS leftovers |
| https://bugs.webkit.org/show_bug.cgi?id=172751 |
| |
| Reviewed by Simon Fraser. |
| |
| Get rid of HTMLCanvasElement::convertLogicalToDevice() and |
| HTMLCanvasElement::convertDeviceToLogical() that are no longer needed, |
| as canvas doesn't use device scale factor anymore. |
| |
| No new tests needed. |
| |
| * html/HTMLCanvasElement.cpp: |
| (WebCore::HTMLCanvasElement::createImageBuffer): Use integer width() |
| and height() instead of floating-point temporary deviceSize variable. |
| (WebCore::HTMLCanvasElement::baseTransform): Return unmodified |
| baseTransform of underlying ImageBuffer. |
| * html/HTMLCanvasElement.h: Removed declarations of unused methods. |
| |
| 2017-05-31 Brent Fulgham <bfulgham@apple.com> |
| |
| Avoid iterator invalidation bug in WebCore::defaultPortForProtocol |
| https://bugs.webkit.org/show_bug.cgi?id=172786 |
| <rdar://problem/32499586> |
| |
| Reviewed by Chris Dumez. |
| |
| Create the SecurityOrigin objects on the main thread (rather than the worker queues) |
| since defaultPortForProtocol is not threadsafe. |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::logFrameNavigation): |
| (WebCore::ResourceLoadObserver::logSubresourceLoading): |
| (WebCore::ResourceLoadObserver::logWebSocketLoading): |
| |
| 2017-05-31 Mark Lam <mark.lam@apple.com> |
| |
| Remove overrides of visitChildren() that do not add any functionality. |
| https://bugs.webkit.org/show_bug.cgi?id=172789 |
| <rdar://problem/32500865> |
| |
| Reviewed by Andreas Kling. |
| |
| No new tests needed. Just deleting unneeded code. |
| |
| * bindings/js/JSDOMWindowBase.cpp: |
| (WebCore::JSDOMWindowBase::visitChildren): Deleted. |
| * bindings/js/JSDOMWindowBase.h: |
| |
| 2017-05-31 Don Olmstead <don.olmstead@am.sony.com> |
| |
| [WebCore] Update AXObjectCache::startOrEndCharacterOffsetForRange signature for !HAVE(ACCESSIBILITY) |
| https://bugs.webkit.org/show_bug.cgi?id=172769 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| No new tests. No change in behavior. |
| |
| * accessibility/AXObjectCache.h: |
| (WebCore::AXObjectCache::startOrEndCharacterOffsetForRange): |
| * platform/Curl.cmake: Added. |
| |
| 2017-05-31 Mark Lam <mark.lam@apple.com> |
| |
| CodeGeneratorJS's InstanceNeedsVisitChildren should not return true just because a class is / extends EventTarget. |
| https://bugs.webkit.org/show_bug.cgi?id=172782 |
| <rdar://problem/32498266> |
| |
| Reviewed by Chris Dumez. |
| |
| No new tests needed. This change is covered by existing binding tests. |
| |
| InstanceNeedsVisitChildren should also not check the IsJSBuiltinConstructor |
| condition, which is not used to emit any additional code in the visitChildren |
| override. |
| |
| The other conditions for generating visitChildren() are adequate if the class |
| needs to override visitChildren. Currently, we're generating some visitChildren() |
| methods that only call its Base::visitChildren(). Removing the "is / extends |
| EventTarget" conditions removes those unneeded visitChildren overrides. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (InstanceNeedsVisitChildren): |
| * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp: |
| (WebCore::JSTestClassWithJSBuiltinConstructor::visitChildren): Deleted. |
| * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h: |
| * bindings/scripts/test/JS/JSTestDOMJIT.cpp: |
| (WebCore::JSTestDOMJIT::visitChildren): Deleted. |
| * bindings/scripts/test/JS/JSTestDOMJIT.h: |
| * bindings/scripts/test/JS/JSTestEventTarget.cpp: |
| (WebCore::JSTestEventTarget::visitChildren): Deleted. |
| * bindings/scripts/test/JS/JSTestEventTarget.h: |
| * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp: |
| (WebCore::JSTestJSBuiltinConstructor::visitChildren): Deleted. |
| * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h: |
| * bindings/scripts/test/JS/JSTestNode.cpp: |
| (WebCore::JSTestNode::visitChildren): Deleted. |
| * bindings/scripts/test/JS/JSTestNode.h: |
| |
| 2017-05-31 Chris Dumez <cdumez@apple.com> |
| |
| Make QualifiedName cache per thread |
| https://bugs.webkit.org/show_bug.cgi?id=172778 |
| <rdar://problem/32490942> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Make QualifiedName cache per thread since it is currently used from multiple threads, |
| in an unsafe fashion. We started using QualifiedName objects in background threads |
| after r190602 which started using a CSSSelectorParser in the ContentExtensionParser. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * dom/QualifiedName.cpp: |
| (WebCore::QualifiedName::QualifiedName): |
| (WebCore::QualifiedName::QualifiedNameImpl::~QualifiedNameImpl): |
| * dom/QualifiedNameCache.cpp: Added. |
| (WebCore::QNameComponentsTranslator::hash): |
| (WebCore::QNameComponentsTranslator::equal): |
| (WebCore::QNameComponentsTranslator::translate): |
| (WebCore::QualifiedNameCache::getOrCreate): |
| (WebCore::QualifiedNameCache::remove): |
| * dom/QualifiedNameCache.h: Added. |
| * platform/ThreadGlobalData.cpp: |
| (WebCore::ThreadGlobalData::ThreadGlobalData): |
| (WebCore::ThreadGlobalData::destroy): |
| * platform/ThreadGlobalData.h: |
| (WebCore::ThreadGlobalData::qualifiedNameCache): |
| |
| 2017-05-31 Andy Estes <aestes@apple.com> |
| |
| Rename ENABLE_APPLE_PAY_DELEGATE to ENABLE_APPLE_PAY_SESSION_V3 and bump the supported version number |
| https://bugs.webkit.org/show_bug.cgi?id=172366 |
| |
| Reviewed by Daniel Bates. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Modules/applepay/ApplePayError.idl: |
| * Modules/applepay/ApplePayPaymentAuthorizationResult.idl: |
| * Modules/applepay/ApplePayPaymentMethodUpdate.idl: |
| * Modules/applepay/ApplePaySession.idl: |
| * Modules/applepay/ApplePayShippingContactUpdate.idl: |
| * Modules/applepay/ApplePayShippingMethodUpdate.idl: |
| |
| 2017-05-31 Youenn Fablet <youenn@apple.com> |
| |
| PeerConnection should respect tracks that are muted at the time they are added |
| https://bugs.webkit.org/show_bug.cgi?id=172771 |
| |
| Reviewed by Eric Carlson. |
| |
| Tests: webrtc/peer-connection-audio-unmute.html |
| webrtc/video-unmute.html |
| |
| Making sure that muted/enabled state of sources are correctly handled at creation time of the outgoing webrtc sources. |
| This should trigger silent audio and black frames. |
| |
| * platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp: |
| (WebCore::RealtimeOutgoingAudioSource::RealtimeOutgoingAudioSource): |
| (WebCore::RealtimeOutgoingAudioSource::setSource): |
| (WebCore::RealtimeOutgoingAudioSource::initializeConverter): |
| * platform/mediastream/mac/RealtimeOutgoingAudioSource.h: |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: |
| (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): |
| (WebCore::RealtimeOutgoingVideoSource::setSource): |
| (WebCore::RealtimeOutgoingVideoSource::sourceMutedChanged): |
| (WebCore::RealtimeOutgoingVideoSource::sourceEnabledChanged): |
| (WebCore::RealtimeOutgoingVideoSource::initializeFromSource): |
| (WebCore::RealtimeOutgoingVideoSource::AddOrUpdateSink): |
| (WebCore::RealtimeOutgoingVideoSource::RemoveSink): |
| (WebCore::RealtimeOutgoingVideoSource::sendBlackFramesIfNeeded): |
| (WebCore::RealtimeOutgoingVideoSource::setSizeFromSource): Deleted. |
| (WebCore::RealtimeOutgoingVideoSource::sendBlackFrames): Deleted. |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: |
| |
| 2017-05-31 Antti Koivisto <antti@apple.com> |
| |
| CrashTracer: Regression : com.apple.WebKit.WebContent at STP responsible :: com.apple.WebCore: WebCore::SharedBuffer::data const + 11 |
| https://bugs.webkit.org/show_bug.cgi?id=172747 |
| <rdar://problem/32275314> |
| |
| Reviewed by Andreas Kling. |
| |
| Test: http/tests/subresource-integrity/empty-stylesheet-integrity-crash.html |
| |
| * loader/SubresourceIntegrity.cpp: |
| (WebCore::matchIntegrityMetadata): |
| |
| If the resource body is empty CachedResource::resourceBuffer() may be null. |
| |
| 2017-05-31 Frederic Wang <fwang@igalia.com> |
| |
| ScrollingStateScrollingNode::ChangedProperty::NumScrollingStateNodeBits is wrongly set |
| https://bugs.webkit.org/show_bug.cgi?id=172349 |
| |
| Reviewed by Simon Fraser. |
| |
| ScrollingStateScrollingNode::ChangedProperty::NumScrollingStateNodeBits was introduced in |
| r133022 so that ScrollingStateFrameScrollingNode and ScrollingStateOverflowScrollingNode |
| know the number of bits use for properties in their parent class. |
| |
| In r172649, r210560, r185762 and r183702 new properties were added to |
| ScrollingStateScrollingNode but NumScrollingStateNodeBits was not increased accordingly. This |
| means that there are potential conflicts between these new properties and those of derived |
| classes ScrollingStateFrameScrollingNode and ScrollingStateOverflowScrollingNode. It is not |
| clear how to write a test case reproducing such conflict, though. |
| |
| No new tests, this is a coding mistake but its effect is unclear. |
| |
| * page/scrolling/ScrollingStateNode.cpp: |
| (WebCore::ScrollingStateNode::setPropertyChanged): Use hasChangedProperty and cast to |
| 64-bits integer before shifting. |
| * page/scrolling/ScrollingStateNode.h: Add a comment to make clear NumStateNodeBits must |
| remain at the last position. Ensure we have enough bits available. |
| (WebCore::ScrollingStateNode::hasChangedProperty): Cast to 64-bits integer before shifting. |
| * page/scrolling/ScrollingStateScrollingNode.h: Fix position of NumScrollingStateNodeBits and |
| also add a similar comment. |
| |
| 2017-05-31 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r217603. |
| |
| This patch broke the internal builds. |
| |
| Reverted changeset: |
| |
| "Get <chrono> out of StdLibExtras.h" |
| https://bugs.webkit.org/show_bug.cgi?id=172744 |
| http://trac.webkit.org/changeset/217603 |
| |
| 2017-05-31 Simon Fraser <simon.fraser@apple.com> |
| |
| Get <chrono> out of StdLibExtras.h |
| https://bugs.webkit.org/show_bug.cgi?id=172744 |
| |
| Reviewed by Saam Barati. |
| |
| Only bring in <chrono> and namespace std::literals::chrono_literals when necessary. |
| |
| * fileapi/FileReader.cpp: |
| * inspector/InspectorOverlay.cpp: |
| * loader/CrossOriginPreflightResultCache.cpp: |
| * loader/cache/CachedResource.cpp: |
| (WebCore::CachedResource::freshnessLifetime): |
| * page/ResourceUsageThread.cpp: |
| (WebCore::ResourceUsageThread::threadBody): |
| * page/cocoa/MemoryReleaseCocoa.mm: |
| (WebCore::jettisonExpensiveObjectsOnTopLevelNavigation): |
| * platform/network/CacheValidation.cpp: |
| (WebCore::computeFreshnessLifetimeForHTTPFamily): |
| * platform/network/CacheValidation.h: |
| |
| 2017-05-31 Emilio Cobos Álvarez <ecobos@igalia.com> |
| |
| Use the rare data's RenderStyle for display: contents. |
| https://bugs.webkit.org/show_bug.cgi?id=172721 |
| |
| Reviewed by Antti Koivisto. |
| |
| No new tests, no behavior change. |
| |
| * dom/Element.cpp: |
| (WebCore::Element::hasDisplayContents): |
| (WebCore::Element::storeDisplayContentsStyle): |
| * dom/Element.h: |
| * dom/ElementRareData.h: |
| (WebCore::ElementRareData::ElementRareData): |
| * style/RenderTreeUpdater.cpp: |
| (WebCore::RenderTreeUpdater::updateElementRenderer): |
| * style/StyleTreeResolver.cpp: |
| (WebCore::Style::TreeResolver::resolveComposedTree): |
| |
| 2017-05-31 Per Arne Vollan <pvollan@apple.com> |
| |
| LayoutTest media/video-orientation.html is failing |
| https://bugs.webkit.org/show_bug.cgi?id=172648 |
| <rdar://problem/31322425> |
| |
| Reviewed by Eric Carlson. |
| |
| For videos with rotation tag set, the transform AVAssetTrack.preferredTransform applied to |
| AVAssetTrack.naturalSize might return a CGSize instance with negative width or height. |
| |
| Covered by existing tests. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): |
| |
| 2017-05-30 Frederic Wang <fwang@igalia.com> |
| |
| Include ScrollingTreeScrollingNode properties in ScrollingTreeFrameScrollingNode::dumpProperties |
| https://bugs.webkit.org/show_bug.cgi?id=172287 |
| |
| Reviewed by Simon Fraser. |
| |
| No new tests, only changes in dumped tree. |
| |
| * page/scrolling/ScrollingTreeFrameScrollingNode.cpp: |
| (WebCore::ScrollingTreeFrameScrollingNode::dumpProperties): Print properties of the parent class. |
| |
| 2017-05-30 Sam Weinig <sam@webkit.org> |
| |
| Update test result after r217585. |
| |
| * bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp: |
| (WebCore::JSTestNamedDeleterWithIndexedGetter::deleteProperty): |
| (WebCore::JSTestNamedDeleterWithIndexedGetter::deletePropertyByIndex): |
| |
| 2017-05-30 Dan Bernstein <mitz@apple.com> |
| |
| Fixed the build after r217588. |
| |
| * page/FrameView.h: Stopped exporting a function defined inline. |
| |
| 2017-05-30 Zalan Bujtas <zalan@apple.com> |
| |
| ASSERTION FAILED: m_layoutPhase == InPostLayerPositionsUpdatedAfterLayout || m_layoutPhase == OutsideLayout |
| https://bugs.webkit.org/show_bug.cgi?id=171501 |
| <rdar://problem/31977453> |
| |
| Reviewed by Simon Fraser. |
| |
| We should be able to paint as long as the tree is clean and we are in paintable state. |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::paintContents): |
| |
| 2017-05-30 Sam Weinig <sam@webkit.org> |
| |
| Revert accidentally checked in change. |
| |
| * crypto/mac/CryptoAlgorithmRSA_PSSMac.cpp: |
| * crypto/mac/CryptoDigestAlgorithm.h: |
| |
| 2017-05-30 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Generate named property deleters |
| https://bugs.webkit.org/show_bug.cgi?id=172688 |
| |
| Reviewed by Chris Dumez. |
| |
| Test: js/dom/named-property-deleter.html |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| Add new file, JSDOMAbstractOperations.h |
| |
| * bindings/js/JSDOMAbstractOperations.h: Added. |
| (WebCore::isVisibleNamedProperty): |
| Add an implementation of the abstract operation WebIDL calls the 'named property visibility algorithm'. |
| It is used by many WebIDL algorithms, but currently I am only using this implementation for deleters. |
| In the future, we should try and move the other property access generators to use it as well. |
| |
| * bindings/js/JSDOMStringMapCustom.cpp: |
| (WebCore::JSDOMStringMap::deleteProperty): Deleted. |
| (WebCore::JSDOMStringMap::deletePropertyByIndex): Deleted. |
| * bindings/js/JSStorageCustom.cpp: |
| (WebCore::JSStorage::deleteProperty): Deleted. |
| (WebCore::JSStorage::deletePropertyByIndex): Deleted. |
| Remove now generated deleteProperty and deletePropertyByIndex implementations. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateDeletePropertyCommon): |
| (GenerateDeletePropertyDefinition): |
| (GenerateDeletePropertyByIndexDefinition): |
| (GenerateNamedDeleterDefinition): |
| Added generation for named deleters. We generate both deleteProperty and deletePropertyByIndex. |
| |
| (InstanceOverridesDelete): |
| Add predicate for whether the header should declare deleteProperty and deletePropertyByIndex. |
| |
| (GenerateHeader): |
| Move property access hook declarations closer to each other. Use new InstanceOverridesDelete |
| predicate for deleteProperty and deletePropertyByIndex. |
| |
| (GenerateImplementation): |
| Add call to generate named deleter if one exists. |
| |
| (GenerateConstructorHelperMethods): |
| Remove an old FIXME that that was no longer true, there are no more interfaces that inherit from |
| an interface with [NoInterfaceObject]. |
| |
| * dom/DOMStringMap.idl: |
| Removes CustomDeleteProperty and sorts extended attributes. |
| |
| * dom/DatasetDOMStringMap.h: |
| * dom/DatasetDOMStringMap.cpp: |
| (WebCore::DatasetDOMStringMap::isSupportedPropertyName): |
| Added. This is a bindings support function (much like supportedPropertyNames()) that is |
| used JSDOMAbstractOperations.h's isVisibleNamedProperty. |
| |
| (WebCore::DatasetDOMStringMap::supportedPropertyNames): |
| Convert to an early return. |
| |
| (WebCore::DatasetDOMStringMap::deleteNamedProperty): |
| (WebCore::DatasetDOMStringMap::deleteItem): Deleted. |
| Renamed deleteItem to deleteNamedProperty, which is the name the bindings use for deleter |
| operations without an identifier. |
| |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::sessionStorage): |
| Fix incorrect indentation that bothered me. |
| |
| * storage/Storage.cpp: |
| * storage/Storage.h: |
| - Remove isDisabledByPrivateBrowsing(), which had no definition. |
| - Add isSupportedPropertyName(), which the deleter code (via the isVisibleNamedProperty algorithm) |
| needs. |
| |
| * storage/Storage.idl: |
| Removes CustomDeleteProperty, sorts the extended attributes, adds 'deleter' special |
| to the removeItem operation and adds a commented out 'setter' special to the 'setItem' |
| operation. |
| |
| * bindings/scripts/test/JS/JSTestObj.h: |
| Update result for declarations moving around. |
| |
| * bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp: Added. |
| * bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h: Added. |
| * bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp: Added. |
| * bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h: Added. |
| * bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp: Added. |
| * bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h: Added. |
| * bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp: Added. |
| * bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h: Added. |
| * bindings/scripts/test/TestNamedDeleterNoIdentifier.idl: Added. |
| * bindings/scripts/test/TestNamedDeleterThrowingException.idl: Added. |
| * bindings/scripts/test/TestNamedDeleterWithIdentifier.idl: Added. |
| * bindings/scripts/test/TestNamedDeleterWithIndexedGetter.idl: Added. |
| Add new tests for named deleters. |
| |
| 2017-05-30 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: images dragged from Inspector to Desktop are named "Unknown.png" |
| https://bugs.webkit.org/show_bug.cgi?id=141515 |
| <rdar://problem/9251308> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * html/HTMLAttributeNames.in: |
| |
| 2017-05-30 Youenn Fablet <youenn@apple.com> |
| |
| Add support for Certificate and IceCandidatePair stats |
| https://bugs.webkit.org/show_bug.cgi?id=172734 |
| |
| Reviewed by Geoff Garen. |
| |
| Covered by updated test. |
| |
| Adding support for these two stats in the IDL and in the libwebrtc binding code. |
| |
| * Modules/mediastream/RTCStatsReport.h: |
| (WebCore::RTCStatsReport::IceCandidatePairStats::IceCandidatePairStats): |
| (WebCore::RTCStatsReport::CertificateStats::CertificateStats): |
| * Modules/mediastream/RTCStatsReport.idl: |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::iceCandidatePairState): |
| (WebCore::fillRTCIceCandidatePairStats): |
| (WebCore::fillRTCCertificateStats): |
| (WebCore::LibWebRTCMediaEndpoint::StatsCollector::OnStatsDelivered): |
| |
| 2017-05-30 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, add some comments to HKDF/PBKDF2 Mac implementations |
| |
| * crypto/mac/CryptoAlgorithmHKDFMac.cpp: |
| (WebCore::CryptoAlgorithmHKDF::platformDeriveBits): |
| * crypto/mac/CryptoAlgorithmPBKDF2Mac.cpp: |
| (WebCore::CryptoAlgorithmPBKDF2::platformDeriveBits): |
| |
| 2017-05-30 Jeremy Jones <jeremyj@apple.com> |
| |
| m_resourceSelectionTaskQueue tasks should be cleared when player is destroyed to prevent invalid state. |
| https://bugs.webkit.org/show_bug.cgi?id=172726 |
| rdar://problem/30867764 |
| |
| Reviewed by Eric Carlson. |
| |
| I haven't found a reproducible way to make a test case for this race condition. |
| |
| If m_player is cleared while there is an outstanding task in m_resourceSelectionTaskQueue, |
| that task may assume m_player is not null and crash. It is better to cancel that task than |
| to perform it part way with null checks. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::~HTMLMediaElement): |
| (WebCore::HTMLMediaElement::clearMediaPlayer): |
| |
| 2017-05-30 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Only include DataDetectorsUI headers in iOS |
| https://bugs.webkit.org/show_bug.cgi?id=172633 |
| |
| Reviewed by David Kilzer. |
| |
| Enable data detectors only on iOS and not other variants of iOS. |
| |
| * editing/cocoa/DataDetection.h: |
| * editing/cocoa/DataDetection.mm: |
| * page/DragController.cpp: |
| (WebCore::isDraggableLink): |
| * platform/cocoa/DataDetectorsCoreSoftLink.h: |
| * platform/cocoa/DataDetectorsCoreSoftLink.mm: |
| * platform/spi/cocoa/DataDetectorsCoreSPI.h: |
| * platform/spi/ios/DataDetectorsUISPI.h: |
| * platform/spi/mac/DataDetectorsSPI.h: |
| |
| 2017-05-30 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION(r215946): Can't reference a table cell in Google spreadsheet |
| https://bugs.webkit.org/show_bug.cgi?id=172703 |
| <rdar://problem/32458086> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| We updated getClientRects() to return an array of DOMRect objects instead of |
| a ClientRectList type, to match the latest specification. As it turns out, this |
| is not Web-compatible as some content (as Google Spreadsheet) relies on the |
| return type having an item() operation. |
| |
| This patch re-introduces a DOMRectList type, with an item() operation. The |
| DOMRectList name is currently not exposed to the Web as we do not know what's |
| going to get specified yet (https://github.com/w3c/csswg-drafts/issues/1479). |
| |
| No new tests, updated existing tests. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * WebCore.xcodeproj/project.pbxproj: |
| * dom/DOMRect.h: |
| * dom/DOMRectList.cpp: Copied from Source/WebCore/dom/DOMRect.cpp. |
| (WebCore::DOMRectList::DOMRectList): |
| (WebCore::DOMRectList::~DOMRectList): |
| * dom/DOMRectList.h: Copied from Source/WebCore/dom/DOMRect.cpp. |
| (WebCore::DOMRectList::create): |
| (WebCore::DOMRectList::length): |
| (WebCore::DOMRectList::item): |
| * dom/DOMRectList.idl: Renamed from Source/WebCore/dom/DOMRect.cpp. |
| * dom/Element.cpp: |
| (WebCore::Element::getClientRects): |
| * dom/Element.h: |
| * dom/Element.idl: |
| * dom/Range.cpp: |
| (WebCore::Range::getClientRects): |
| * dom/Range.h: |
| * dom/Range.idl: |
| * page/Page.cpp: |
| (WebCore::Page::nonFastScrollableRects): |
| (WebCore::Page::touchEventRectsForEvent): |
| (WebCore::Page::passiveTouchEventListenerRects): |
| * page/Page.h: |
| * testing/Internals.cpp: |
| (WebCore::Internals::inspectorHighlightRects): |
| (WebCore::Internals::touchEventRectsForEvent): |
| (WebCore::Internals::passiveTouchEventListenerRects): |
| (WebCore::Internals::nonFastScrollableRects): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-05-30 Ali Juma <ajuma@chromium.org> |
| |
| [CredentialManagement] Incorporate IDL updates from latest spec |
| https://bugs.webkit.org/show_bug.cgi?id=172011 |
| |
| Reviewed by Daniel Bates. |
| |
| This patch adds IDL definitions for the CredentialsContainer, CredentialsUserData and |
| FederatedCredentials interfaces, the NavigatorCredentials partial interface, and the |
| CredentialCreationOptions, CredentialRequestOptions, FederatedCredentialRequestOptions, |
| and PasswordCredentialData dictionaries. It also deletes IDL definitions for the |
| SiteBoundCredential interface and the SiteBoundCredentialData dictionary. |
| |
| Test: credentials/idlharness.html |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * Modules/credentials/BasicCredential.idl: |
| * Modules/credentials/CredentialCreationOptions.h: Copied from Source/WebCore/Modules/credentials/PasswordCredential.cpp. |
| * Modules/credentials/CredentialCreationOptions.idl: Copied from Source/WebCore/Modules/credentials/SiteBoundCredentialData.h. |
| * Modules/credentials/CredentialRequestOptions.h: Copied from Source/WebCore/Modules/credentials/SiteBoundCredentialData.h. |
| * Modules/credentials/CredentialRequestOptions.idl: Copied from Source/WebCore/Modules/credentials/SiteBoundCredentialData.h. |
| * Modules/credentials/CredentialUserData.h: Copied from Source/WebCore/Modules/credentials/SiteBoundCredentialData.h. |
| (WebCore::CredentialUserData::~CredentialUserData): |
| * Modules/credentials/CredentialUserData.idl: Copied from Source/WebCore/Modules/credentials/SiteBoundCredential.idl. |
| * Modules/credentials/CredentialsContainer.cpp: Copied from Source/WebCore/Modules/credentials/PasswordCredential.cpp. |
| (WebCore::CredentialsContainer::get): |
| (WebCore::CredentialsContainer::store): |
| (WebCore::CredentialsContainer::isCreate): |
| (WebCore::CredentialsContainer::preventSilentAccess): |
| * Modules/credentials/CredentialsContainer.h: Copied from Source/WebCore/Modules/credentials/SiteBoundCredential.h. |
| (WebCore::CredentialsContainer::create): |
| (WebCore::CredentialsContainer::CredentialsContainer): |
| * Modules/credentials/CredentialsContainer.idl: Copied from Source/WebCore/Modules/credentials/SiteBoundCredential.idl. |
| * Modules/credentials/FederatedCredential.cpp: Copied from Source/WebCore/Modules/credentials/SiteBoundCredential.cpp. |
| (WebCore::FederatedCredential::FederatedCredential): |
| (WebCore::FederatedCredential::~FederatedCredential): |
| * Modules/credentials/FederatedCredential.h: Renamed from Source/WebCore/Modules/credentials/SiteBoundCredential.h. |
| (WebCore::FederatedCredential::create): |
| (WebCore::FederatedCredential::provider): |
| (WebCore::FederatedCredential::protocol): |
| * Modules/credentials/FederatedCredential.idl: Copied from Source/WebCore/Modules/credentials/BasicCredential.idl. |
| * Modules/credentials/FederatedCredentialInit.h: Copied from Source/WebCore/Modules/credentials/SiteBoundCredentialData.h. |
| * Modules/credentials/FederatedCredentialInit.idl: Copied from Source/WebCore/Modules/credentials/SiteBoundCredentialData.idl. |
| * Modules/credentials/FederatedCredentialRequestOptions.h: Copied from Source/WebCore/Modules/credentials/SiteBoundCredentialData.h. |
| * Modules/credentials/FederatedCredentialRequestOptions.idl: Added. |
| * Modules/credentials/NavigatorCredentials.cpp: Renamed from Source/WebCore/Modules/credentials/SiteBoundCredential.cpp. |
| (WebCore::NavigatorCredentials::NavigatorCredentials): |
| (WebCore::NavigatorCredentials::~NavigatorCredentials): |
| (WebCore::NavigatorCredentials::supplementName): |
| (WebCore::NavigatorCredentials::credentials): |
| (WebCore::NavigatorCredentials::from): |
| * Modules/credentials/NavigatorCredentials.h: Copied from Source/WebCore/Modules/credentials/SiteBoundCredentialData.h. |
| * Modules/credentials/NavigatorCredentials.idl: Renamed from Source/WebCore/Modules/credentials/SiteBoundCredential.idl. |
| * Modules/credentials/PasswordCredential.cpp: |
| (WebCore::PasswordCredential::PasswordCredential): |
| (WebCore::PasswordCredential::~PasswordCredential): |
| * Modules/credentials/PasswordCredential.h: |
| (WebCore::PasswordCredential::create): |
| (WebCore::PasswordCredential::password): |
| (WebCore::PasswordCredential::setIdName): Deleted. |
| (WebCore::PasswordCredential::idName): Deleted. |
| (WebCore::PasswordCredential::setPasswordName): Deleted. |
| (WebCore::PasswordCredential::passwordName): Deleted. |
| (WebCore::PasswordCredential::setAdditionalData): Deleted. |
| (WebCore::PasswordCredential::additionalData): Deleted. |
| * Modules/credentials/PasswordCredential.idl: |
| * Modules/credentials/PasswordCredentialData.h: Renamed from Source/WebCore/Modules/credentials/SiteBoundCredentialData.h. |
| * Modules/credentials/PasswordCredentialData.idl: Renamed from Source/WebCore/Modules/credentials/SiteBoundCredentialData.idl. |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| 2017-05-30 Alex Christensen <achristensen@webkit.org> |
| |
| Update libwebrtc configuration |
| https://bugs.webkit.org/show_bug.cgi?id=172727 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2017-05-30 Mark Lam <mark.lam@apple.com> |
| |
| convertEnumerationToJS() should not stash ASCIILiteral strings in NeverDestroyed arrays. |
| https://bugs.webkit.org/show_bug.cgi?id=172724 |
| <rdar://problem/31193201> |
| |
| Reviewed by Chris Dumez. |
| |
| Use MAKE_STATIC_STRING_IMPL instead, which is guaranteed to be thread-safe and |
| satisfies the promise of immortality promised by NeverDestroyed (while ASCIILiteral |
| does not always satisfy this promise). |
| |
| Also converted the ASSERT in convertEnumerationToJS() to a RELEASE_ASSERT as a |
| debugging aid to check if it is ever passed an invalid enumerationValue. |
| |
| No new tests because this is a speculative fix for an issue observed in the wild |
| whose root cause is not known yet. This patch also adds a release assert to |
| gather more info about the nature of the issue. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateEnumerationImplementationContent): |
| |
| * bindings/scripts/test/JS/JSTestCallbackInterface.cpp: |
| (WebCore::convertEnumerationToJS): |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| (WebCore::convertEnumerationToJS): |
| * bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp: |
| (WebCore::convertEnumerationToJS): |
| * bindings/scripts/test/JS/JSTestStandaloneEnumeration.cpp: |
| (WebCore::convertEnumerationToJS): |
| - re-baselined these test results. |
| |
| 2017-05-30 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| REGRESSION(r216882): No image decoding is needed if the BitmapImage is created with a NativeImage |
| https://bugs.webkit.org/show_bug.cgi?id=172670 |
| |
| Reviewed by Tim Horton. |
| |
| Test: fast/images/large-image-webkit-canvas.html |
| |
| Check whether the BitmapImage has created an ImageDecoder before trying |
| to decode its image frame. |
| |
| * platform/graphics/ImageSource.cpp: |
| (WebCore::ImageSource::shouldUseAsyncDecoding): |
| |
| 2017-05-30 Youenn Fablet <youenn@apple.com> |
| |
| RealtimeOutgoingVideoSource should not rotate muted frames |
| https://bugs.webkit.org/show_bug.cgi?id=172659 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: webrtc/video-rotation.html |
| |
| When sending black frames, it is unnecessary to rotate frames. |
| Instead, it is better to create frame with the expected width and height. |
| Making sure libwebrtc rotated images are not null, as only YUV rotation is supported. |
| |
| Adding internals API to test part of that code path. |
| Full coverage should be added when mock source is producing YUV images. |
| |
| * Modules/mediastream/PeerConnectionBackend.h: |
| (WebCore::PeerConnectionBackend::applyRotationForOutgoingVideoSources): |
| * Modules/mediastream/RTCPeerConnection.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::LibWebRTCPeerConnectionBackend::applyRotationForOutgoingVideoSources): |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h: |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: |
| (WebCore::RealtimeOutgoingVideoSource::sendBlackFrames): |
| (WebCore::RealtimeOutgoingVideoSource::sendFrame): |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: |
| * testing/Internals.cpp: |
| (WebCore::Internals::Internals): |
| (WebCore::Internals::applyRotationForOutgoingVideoSources): |
| (WebCore::Internals::setCameraMediaStreamTrackOrientation): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-05-30 Brent Fulgham <bfulgham@apple.com> |
| |
| Unreviewed typo correction. |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::logFrameNavigation): I used an extra colon in my comment. |
| |
| 2017-05-30 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r217515): Correct iterator invalidation bug (AGAIN) |
| https://bugs.webkit.org/show_bug.cgi?id=172722 |
| <rdar://problem/32462876> |
| |
| Reviewed by Zalan Bujtas. |
| |
| Over-enthusiastic clean-up during r217515 re-introduced a bug caused by holding a reference |
| to an iterator that gets invalidated while handling the frame navigation. This patch returns |
| to the copy/set behavior used prior to r217515. |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::logFrameNavigation): Make a copy of the returned value, since |
| the iterator will be invalidated during the function call. Then set the copy back in the data |
| store with the updated counts. |
| |
| 2017-05-30 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [WinCairo] TestWebKitAPI: SHOULD NEVER BE REACHED in WebCore::cairoSurfaceSize |
| https://bugs.webkit.org/show_bug.cgi?id=172699 |
| |
| Reviewed by Brent Fulgham. |
| |
| Tests: WebCore.BitmapImageEmptyFrameTest in TestWebKitAPI |
| |
| * platform/graphics/cairo/CairoUtilities.cpp: |
| (WebCore::cairoSurfaceSize): Added a case for win32 surface type. |
| |
| 2017-05-30 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK][WPE][GSTREAMER_GL] Do not use cairo to copy video textures to an accelerated canvas |
| https://bugs.webkit.org/show_bug.cgi?id=172542 |
| |
| Reviewed by Žan Doberšek. |
| |
| When drawing gstreamer-gl video frames into an accelerated canvas, we are currently using cairo to copy |
| the video textures into a new texture that will be painted into de destination canvas. While this eases |
| the code, it doesn't allow us to control the copy process. This is a problem because in order to use |
| gstreamer-gl properly, we will need to perform colorspace transformations during the copy. So, remove |
| this cairo copy and use VideoTextureCopierGStreamer instead. |
| |
| The usage of VideoTextureCopierGStreamer is pretty much the same than in the webgl case, except that |
| no destination texture is provided. For that case, add a custom texture to hold the result that can |
| be requested after the copy. |
| |
| Covered by existent tests. |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::copyVideoTextureToPlatformTexture): |
| (WebCore::MediaPlayerPrivateGStreamerBase::nativeImageForCurrentTime): |
| (WebCore::MediaPlayerPrivateGStreamerBase::prepareContextForCairoPaint): Deleted. |
| (WebCore::MediaPlayerPrivateGStreamerBase::paintToCairoSurface): Deleted. |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: |
| (WebCore::MediaPlayerPrivateGStreamerBase::gstGLDisplay): |
| * platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp: |
| (WebCore::VideoTextureCopierGStreamer::VideoTextureCopierGStreamer): |
| (WebCore::VideoTextureCopierGStreamer::~VideoTextureCopierGStreamer): |
| (WebCore::VideoTextureCopierGStreamer::copyVideoTextureToPlatformTexture): |
| * platform/graphics/gstreamer/VideoTextureCopierGStreamer.h: |
| (WebCore::VideoTextureCopierGStreamer::resultTexture): |
| |
| 2017-05-29 Antti Koivisto <antti@apple.com> |
| |
| Crash on display-contents-replaced-001.html |
| https://bugs.webkit.org/show_bug.cgi?id=172596 |
| |
| Reviewed by Andreas Kling. |
| |
| This is crashing because some code can't handle display:contents on form controls. Turns |
| out the draft specification tell us to disable it for them in any case. |
| |
| See https://drafts.csswg.org/css-display-3/#unbox |
| |
| * css/StyleResolver.cpp: |
| (WebCore::hasEffectiveDisplayNoneForDisplayContents): |
| |
| For certain HTML elements (replaced elements, form controls) display:contents should |
| behave like display:none. |
| Also disable it for SVG and MathML elements. |
| |
| (WebCore::StyleResolver::adjustRenderStyle): |
| |
| Also compute to display:none when there is no associated element (pseudos etc). |
| |
| 2017-05-30 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] RSA-OAEP support |
| https://bugs.webkit.org/show_bug.cgi?id=171222 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add RSA-OAEP support for configurations that use libgcrypt. |
| |
| The encryption operation embeds the plain-text data into a data s-expression, |
| specifying OAEP as the padding method of choice and also adding information |
| about the hash algorithm and any label data. This is then passed to the |
| gcry_pk_encrypt() call together with the provided key, returning the enc-val |
| s-expression containing the resulting cipher text. That's retrieved from the |
| relevant MPI and returned to the caller. |
| |
| The decryption operation embeds the cipher-text data into an enc-val |
| s-expression, again specifying the hash algorithm and also filling in any |
| label data. This is then passed, along with the key, to the gcry_pk_decrypt() |
| call. The returned data s-expression contains the decrypted plain-text data |
| inside the 'value' MPI, from which this data is extracted and returned to the |
| caller. |
| |
| No new tests -- the revelant tests are passing and are unskipped, apart from |
| the ones using PKSC#8 and SPKI formats. |
| |
| * crypto/gcrypt/CryptoAlgorithmRSA_OAEPGCrypt.cpp: |
| (WebCore::hashAlgorithmName): |
| (WebCore::mpiData): |
| (WebCore::gcryptEncrypt): |
| (WebCore::gcryptDecrypt): |
| (WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt): |
| (WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt): |
| |
| 2017-05-30 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed follow-up to r217546. Address some review comments that I forgot about. |
| |
| * crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp: |
| (WebCore::gcryptEncrypt): Use quotations when referencing s-expression names in |
| comments to avoid confusion. |
| (WebCore::gcryptDecrypt): Ditto. |
| |
| 2017-05-30 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] RSAES-PKCS1-v1_5 support |
| https://bugs.webkit.org/show_bug.cgi?id=171219 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add RSAES-PKCS1-v1_5 support for configurations that use libgcrypt. |
| |
| The encryption operation embeds the plain-text data into a data s-expression, |
| specifying PKCS#1 as the padding method of choice. That's passed to the |
| gcry_pk_encrypt() call together with the specified key. The returned enc-val |
| expression contains the 'a' MPI from which the data is extracted and returned. |
| |
| The decryption operation goes in reverse -- the cipher-text data is embedded |
| into an enc-val s-expression that again also specifies PKCS#1 as the padding |
| method. The s-expression is passed to gcry_pk_decrypt() together with the |
| specified key. The returned data s-expression contains the decrypted text |
| inside the 'value' parameter, so the data is extracted from that and returned |
| to the caller. |
| |
| No new tests -- the revelant tests are passing and are unskipped, apart from |
| the ones using PKCS#8 and SPKI formats. |
| |
| * crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp: |
| (WebCore::mpiData): |
| (WebCore::gcryptEncrypt): |
| (WebCore::gcryptDecrypt): |
| (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt): |
| (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt): |
| |
| 2017-05-30 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] RSASSA-PKCS1-v1_5 support |
| https://bugs.webkit.org/show_bug.cgi?id=171220 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add RSASSA-PKSC1-V_15 support for configurations that use libgcrypt. |
| |
| The signing operation first digests data with the specified hash algorithm. |
| That's then embedded in the data s-expression. That's then passed to the |
| gcry_pk_sign() call together with the specified key, returning a sig-val |
| s-expression containing the signature. The signature data is then retrieved |
| from the relevant MPI and returned to the caller. |
| |
| The verification operation first digests data with the specified hash |
| algorithm. That's then embedded in the data s-expression. A sig-val |
| s-expression is constructed, embedding the signature data. The data and |
| sig-val s-expressions are passed to the gcry_sexp_verify() call which returns |
| the resulting error code. The verification succeeds if the returned value is |
| GPG_ERR_NO_ERROR, fails if it's GPG_ERR_BAD_SIGNATURE, or errors out with an |
| OperationError otherwise. |
| |
| No new tests -- the revelant tests are passing and are unskipped, apart from |
| the ones using PKCS#8 and SPKI formats. |
| |
| * crypto/gcrypt/CryptoAlgorithmRSASSA_PKCS1_v1_5GCrypt.cpp: |
| (WebCore::hashCryptoDigestAlgorithm): |
| (WebCore::hashAlgorithmName): |
| (WebCore::mpiData): |
| (WebCore::gcryptSign): |
| (WebCore::gcryptVerify): |
| (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign): |
| (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify): |
| |
| 2017-05-29 Emilio Cobos Álvarez <ecobos@igalia.com> |
| |
| Use the parent box style to adjust RenderStyle for alignment. |
| https://bugs.webkit.org/show_bug.cgi?id=172215 |
| |
| Reviewed by Antti Koivisto. |
| |
| The css-flexbox spec defined align-self in terms of the parent |
| element, which is what this code did. |
| |
| The css-align spec defines these properties in terms of the style of |
| the containing box instead, which means display: contents styles |
| should not be used for this adjustment, but the parent box style |
| instead. |
| |
| For example, align-items is defined as: |
| |
| > This property specifies the default align-self for all of the boxes |
| > (including anonymous boxes) participating in this box’s formatting |
| > context. |
| |
| Note that the css-align spec was recently updated to align (no pun |
| intended) with Gecko, and make the |auto| value compute to itself. |
| This patch puts us in a more recent spec than before, but not totally |
| up-to-date. |
| |
| Tests: imported/w3c/web-platform-tests/css/css-display-3/display-contents-alignment-001.html |
| imported/w3c/web-platform-tests/css/css-display-3/display-contents-alignment-002.html |
| |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::adjustRenderStyle): |
| (WebCore::StyleResolver::adjustStyleForAlignment): |
| |
| 2017-05-28 Dan Bernstein <mitz@apple.com> |
| |
| [Xcode] ALWAYS_SEARCH_USER_PATHS is set to YES |
| https://bugs.webkit.org/show_bug.cgi?id=172691 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/Base.xcconfig: Set ALWAYS_SEARCH_USER_PATHS to NO. |
| * WebCore.xcodeproj/project.pbxproj: Added DateTimeChooser.h, DateTimeChooserClient.h, |
| PerformanceMark.h, PerformanceMeasure.h, SVGUnknownElement.h, and MathMLUnknownElement.h |
| to the WebCore target. |
| |
| 2017-05-28 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] @@iterator should only be accessed once when disambiguating a union type |
| https://bugs.webkit.org/show_bug.cgi?id=172684 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| WebIDL specifies that when determining if the value you are converting to a union |
| is a sequence, you must get the @@iterator property and, should it exist, use it |
| to iterate the sequence. While we correctly accessing the property to make the |
| determination, we were not passing it into the sequence conversion code, and thus |
| the sequence conversion code re-accessed it, which is observable and wrong. |
| |
| This patch pipes the @@iterator method through the sequence conversion code to avoid |
| this. |
| |
| Test: js/dom/sequence-in-union-iterator-access.html |
| |
| * bindings/js/JSDOMConvertSequences.h: |
| (WebCore::Detail::GenericSequenceConverter::convert): |
| (WebCore::Detail::NumericSequenceConverter::convertArray): |
| (WebCore::Detail::NumericSequenceConverter::convert): |
| (WebCore::Detail::SequenceConverter::convertArray): |
| (WebCore::Detail::SequenceConverter::convert): |
| (WebCore::Detail::SequenceConverter<IDLLong>::convert): |
| (WebCore::Detail::SequenceConverter<IDLFloat>::convert): |
| (WebCore::Detail::SequenceConverter<IDLUnrestrictedFloat>::convert): |
| (WebCore::Detail::SequenceConverter<IDLDouble>::convert): |
| (WebCore::Detail::SequenceConverter<IDLUnrestrictedDouble>::convert): |
| (WebCore::Converter<IDLSequence<T>>::convert): |
| (WebCore::Converter<IDLFrozenArray<T>>::convert): |
| Add variants of convert that take a JSObject* (sequence) / JSValue (iterator method) |
| rather than just the JSValue (sequence). To avoid too much duplication, split some |
| parts of SequenceConverter and NumericSequenceConverter up so they could be reused. |
| |
| * bindings/js/JSDOMConvertUnion.h: |
| - Fix incorrect step 3 (WebIDL got updated at some point and we didn't notice) to remove |
| records. |
| - Update sequence and FrozenArray checking/conversion to get the iterator method and pass |
| it along, using the new ConditionalSequenceConverter helper which forwards to the new |
| sequence converters that accept the iterator method. |
| |
| 2017-05-27 Chris Dumez <cdumez@apple.com> |
| |
| imported/w3c/web-platform-tests/html/semantics/forms/form-control-infrastructure/form_attribute.html is crashing |
| https://bugs.webkit.org/show_bug.cgi?id=172472 |
| <rdar://problem/32334831> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Fix assertion hit when running imported/w3c/web-platform-tests/html/semantics/forms/form-control-infrastructure/form_attribute.html. |
| |
| When the form was removed from the document, A descendant would try to find a new form owner in the document. If the descendant had |
| a form content attribute and there was another form in the document with this ID, then we would erroneously associate the descendant with |
| that other form, even though that descendant is being disconnected. This is because when the form with the given id is removed, we |
| notify the IdTargetObservers of the change. In this case, the form control is an IdTargetObserver and gets notified after |
| removedFrom() has been called on the form but *before* removedFrom() has been called on its descendant form control. As a result, the |
| form control still thinks it is in the tree (i.e. isConnected() wrongly returns true) and we make the wrong decision and try to |
| associate it with another form in the document. |
| |
| To address the problem, we leverage the fact that when a form element is being removed, it already notifies its associated form |
| controls that it is being removed. When it does, we make sure to clear the control's id observer if the form is its ancestor. |
| The ID observer is no longer needed beyond this point since the control is now disconnected from the document, and the ID observer |
| callback would erroneously associate it with another form element in the document of the same ID because isConnected() still returns |
| true at that point. |
| As a result, the control's form owner is kept unchanged, which is the right thing to do here, since it is its ancestor, even |
| though both are detached. |
| |
| Test: fast/dom/HTMLFormElement/form-removal-duplicate-id-crash.html |
| |
| * dom/ContainerNode.h: |
| (WebCore::Node::rootNode): |
| Inline rootNode to avoid an extra function call in the fast path case. For the slow path, we now |
| call traverseToRootNode() to avoid duolicating logic. |
| |
| * dom/Node.cpp: |
| (WebCore::Node::traverseToRootNode): |
| Add a traverseToRootNode() method which gets the root node by traversing the ancestors. This logic was duplicated in 3 places: |
| - Slow path in Node::rootNode() |
| - computeRootNode() in FormAssociatedElement.cpp |
| - findRoot() in HTMLFormElement.cpp |
| They are now consolidated in a single place to avoid duplication. |
| |
| * dom/Node.h: |
| * html/FormAssociatedElement.cpp: |
| (WebCore::FormAssociatedElement::removedFrom): |
| Just simplify the logic a bit: |
| - Clear the id observer (i.e. m_formAttributeTargetObserver) no matter what. Since the element is no longer part of the document, |
| it is no longer needed. We would previously have checks that would basically avoid resetting m_formAttributeTargetObserver to |
| null if it is already null. Settign m_formAttributeTargetObserver to null is cheap so there is no reason for those checks. Those |
| checks were also confusing because they made it look like we would sometimes keep on id observer after being removed from the |
| document. |
| - Use new traverseToRootNode() utility function (no behavior change) |
| - Drop unnecessary |element| local variable |
| |
| (WebCore::FormAssociatedElement::formOwnerRemovedFromTree): |
| - Rename to formOwnerRemovedFromTree() to make it clear that it is the element's form owner that is removed, and not just any form. |
| - As we traverse the tree up to find the root, also check if we find the form owner. If we do, clear the id observer since we are |
| effectively detached from the document and return early since there is no need to reset our form owner in this case. |
| |
| * html/FormAssociatedElement.h: |
| * html/HTMLFormElement.cpp: |
| (WebCore::HTMLFormElement::removedFrom): |
| - Use new traverseToRootNode() utility function (no behavior change) |
| |
| 2017-05-27 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [DOMJIT] Move DOMJIT patchpoint infrastructure out of domjit |
| https://bugs.webkit.org/show_bug.cgi?id=172260 |
| |
| Reviewed by Filip Pizlo. |
| |
| * ForwardingHeaders/jit/Snippet.h: Renamed from Source/WebCore/ForwardingHeaders/domjit/DOMJITPatchpoint.h. |
| * ForwardingHeaders/jit/SnippetParams.h: Renamed from Source/WebCore/ForwardingHeaders/domjit/DOMJITPatchpointParams.h. |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateHeader): |
| (GenerateImplementation): |
| * bindings/scripts/test/JS/JSTestDOMJIT.h: |
| * domjit/DOMJITCheckDOM.h: |
| (WebCore::DOMJIT::checkDOM): |
| * domjit/DOMJITHelpers.h: |
| (WebCore::DOMJIT::toWrapper): |
| * domjit/JSDocumentDOMJIT.cpp: |
| (WebCore::checkSubClassSnippetForJSDocument): |
| (WebCore::DocumentDocumentElementDOMJIT::callDOMGetter): |
| (WebCore::DocumentBodyDOMJIT::callDOMGetter): |
| (WebCore::checkSubClassPatchpointForJSDocument): Deleted. |
| * domjit/JSDocumentFragmentDOMJIT.cpp: |
| (WebCore::checkSubClassSnippetForJSDocumentFragment): |
| (WebCore::checkSubClassPatchpointForJSDocumentFragment): Deleted. |
| * domjit/JSElementDOMJIT.cpp: |
| (WebCore::checkSubClassSnippetForJSElement): |
| (WebCore::checkSubClassPatchpointForJSElement): Deleted. |
| * domjit/JSEventDOMJIT.cpp: |
| (WebCore::checkSubClassSnippetForJSEvent): |
| (WebCore::checkSubClassPatchpointForJSEvent): Deleted. |
| * domjit/JSNodeDOMJIT.cpp: |
| (WebCore::checkSubClassSnippetForJSNode): |
| (WebCore::createCallDOMGetterForOffsetAccess): |
| (WebCore::NodeFirstChildDOMJIT::callDOMGetter): |
| (WebCore::NodeLastChildDOMJIT::callDOMGetter): |
| (WebCore::NodeNextSiblingDOMJIT::callDOMGetter): |
| (WebCore::NodePreviousSiblingDOMJIT::callDOMGetter): |
| (WebCore::NodeParentNodeDOMJIT::callDOMGetter): |
| (WebCore::NodeNodeTypeDOMJIT::callDOMGetter): |
| (WebCore::NodeOwnerDocumentDOMJIT::callDOMGetter): |
| (WebCore::checkSubClassPatchpointForJSNode): Deleted. |
| |
| 2017-05-26 Simon Fraser <simon.fraser@apple.com> |
| |
| getComputedStyle returns percentage values for left / right / top / bottom |
| https://bugs.webkit.org/show_bug.cgi?id=29084 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Fix getComputedStyle() to return pixel values for left / right / top / bottom, per spec. |
| |
| This is mostly a merge of https://codereview.chromium.org/13871003/. |
| |
| Behavior now matches Chrome and Firefox. |
| |
| Test: fast/css/getComputedStyle/getComputedStyle-offsets.html |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::getOffsetComputedLength): |
| (WebCore::getOffsetUsedStyleRelative): |
| (WebCore::getOffsetUsedStyleAbsolute): |
| (WebCore::positionOffsetValue): |
| (WebCore::positionOffsetValueIsRendererDependent): |
| (WebCore::isNonReplacedInline): |
| (WebCore::isLayoutDependent): |
| (WebCore::ComputedStyleExtractor::propertyValue): |
| |
| 2017-05-27 Zalan Bujtas <zalan@apple.com> |
| |
| enclosingIntRect returns a rect with -1 width/height when the input FloatRect overflows integer. |
| https://bugs.webkit.org/show_bug.cgi?id=172676 |
| |
| Reviewed by Simon Fraser. |
| |
| Clamp integer values soon after the enclosing rectangle is resolved. |
| |
| * platform/graphics/FloatRect.cpp: |
| (WebCore::enclosingIntRect): |
| |
| 2017-05-26 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Simply some NSNumber usage |
| https://bugs.webkit.org/show_bug.cgi?id=172677 |
| |
| Reviewed by Sam Weinig. |
| |
| * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: |
| (-[WebAccessibilityObjectWrapper _addAccessibilityObject:toTextMarkerArray:]): |
| (AXAttributeStringSetFont): |
| (AXAttributeStringSetStyle): |
| * accessibility/mac/AXObjectCacheMac.mm: |
| (WebCore::AXObjectCache::postTextStateChangePlatformNotification): |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: |
| (AXAttributeStringSetStyle): |
| (AXAttributeStringSetSpelling): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): |
| * platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm: |
| * rendering/RenderThemeMac.mm: |
| (WebCore::RenderThemeMac::levelIndicatorFor): |
| |
| 2017-05-26 Youenn Fablet <youenn@apple.com> |
| |
| WebRTC stats should be in milliseconds |
| https://bugs.webkit.org/show_bug.cgi?id=172644 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by updated tests. |
| |
| * Modules/mediastream/RTCStatsReport.h: |
| * Modules/mediastream/RTCStatsReport.idl: |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::fillRTCStats): |
| |
| 2017-05-26 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Overloaded functions should throw this object check exception before argument check exception |
| https://bugs.webkit.org/show_bug.cgi?id=172480 |
| |
| Reviewed by Chris Dumez. |
| |
| - Codifies naming for both parts of the operation/attribute function implementation: |
| - The 'trampoline' which is the actual host function and simply calls IDLOperation, |
| IDLOperationReturningPromise or IDLAttribute. |
| - The 'body' which is where argument checking and calling into the implementation |
| takes place. |
| - Made it so all operations, including static ones, use the trampoline / body model, |
| simplifying code generation. The one exception is for overloaded operations, which |
| now have a trampoline and body for the dispatcher, and only bodies for all the |
| overloads. This is what fixes the bug, since now that the dispatcher has a trampoline, |
| it can do the correct this object checking via IDLOperation / IDLOperationReturningPromise. |
| - Split out code generation for trampoline and body into separate subroutines and |
| simplified their implementations. |
| - Changed GenerateOverloadDispatcher to only generate the body of the function, leaving it |
| up to the caller to generate the signature, braces and conditionals if needed. |
| - Made more subroutines take an output array and indent, in support of future endeavors |
| that will need that support. |
| - Remove unnecessary #includes of <runtime/Error.h>, which gets included already by virtue |
| of JSDOMExceptionHandling.h |
| |
| Test: js/dom/overloaded-operation-exception-order.html |
| |
| * bindings/js/JSDOMOperation.h: |
| * bindings/js/JSDOMOperationReturningPromise.h: |
| Add no-op static versions of the bouncer functions. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateOverloadDispatcher): |
| (GenerateOperationTrampolineDefinition): |
| (GenerateOperationBodyDefinition): |
| (GenerateOperationDefinition): |
| (GenerateSerializerDefinition): |
| (GenerateLegacyCallerDefinitions): |
| (GenerateLegacyCallerDefinition): |
| (GenerateArgumentsCountCheck): |
| (GenerateParametersCheck): |
| (GenerateImplementationFunctionCall): |
| (GenerateImplementationCustomFunctionCall): |
| (GenerateConstructorDefinitions): |
| (GenerateConstructorDefinition): |
| |
| * bindings/scripts/test/JS/JSInterfaceName.cpp: |
| * bindings/scripts/test/JS/JSMapLike.cpp: |
| * bindings/scripts/test/JS/JSReadOnlyMapLike.cpp: |
| * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactions.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp: |
| * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp: |
| * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: |
| * bindings/scripts/test/JS/JSTestDOMJIT.cpp: |
| * bindings/scripts/test/JS/JSTestEventConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestEventTarget.cpp: |
| * bindings/scripts/test/JS/JSTestException.cpp: |
| * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: |
| * bindings/scripts/test/JS/JSTestGlobalObject.cpp: |
| * bindings/scripts/test/JS/JSTestInterface.cpp: |
| * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp: |
| * bindings/scripts/test/JS/JSTestIterable.cpp: |
| * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: |
| * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestNode.cpp: |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| * bindings/scripts/test/JS/JSTestObj.h: |
| * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: |
| * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp: |
| * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp: |
| * bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp: |
| * bindings/scripts/test/JS/JSTestSerialization.cpp: |
| * bindings/scripts/test/JS/JSTestSerializationInherit.cpp: |
| * bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp: |
| * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: |
| * bindings/scripts/test/JS/JSTestTypedefs.cpp: |
| Update test results. |
| |
| 2017-05-26 Brent Fulgham <bfulgham@apple.com> |
| |
| [WK2] Address thread safety issues with ResourceLoadStatistics |
| https://bugs.webkit.org/show_bug.cgi?id=172519 |
| <rdar://problem/31707642> |
| |
| Reviewed by Chris Dumez. |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::setStatisticsQueue): Added. |
| (WebCore::ResourceLoadObserver::clearInMemoryStore): Only interact with the HashTable on the statistics queue. |
| (WebCore::ResourceLoadObserver::clearInMemoryAndPersistentStore): Ditto. |
| (WebCore::ResourceLoadObserver::logFrameNavigation): Ditto. |
| (WebCore::ResourceLoadObserver::logSubresourceLoading): Ditto. |
| (WebCore::ResourceLoadObserver::logWebSocketLoading): Ditto. |
| (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution): Ditto. |
| (WebCore::ResourceLoadObserver::logUserInteraction): Ditto. |
| (WebCore::ResourceLoadObserver::clearUserInteraction): Protect HashTable while reading. |
| (WebCore::ResourceLoadObserver::hasHadUserInteraction): Ditto. |
| (WebCore::ResourceLoadObserver::setPrevalentResource): Ditto. |
| (WebCore::ResourceLoadObserver::isPrevalentResource): Ditto. |
| (WebCore::ResourceLoadObserver::clearPrevalentResource): Ditto. |
| (WebCore::ResourceLoadObserver::setGrandfathered): Ditto. |
| (WebCore::ResourceLoadObserver::isGrandfathered): Ditto. |
| (WebCore::ResourceLoadObserver::setSubframeUnderTopFrameOrigin): Only interact with the HashTable on the statistics queue. |
| (WebCore::ResourceLoadObserver::setSubresourceUnderTopFrameOrigin): Ditto. |
| (WebCore::ResourceLoadObserver::setSubresourceUniqueRedirectTo): Ditto. |
| (WebCore::ResourceLoadObserver::fireDataModificationHandler): ASSERT this is only called from the main thread, since this is |
| only meant to be used as part of the testing harness. |
| (WebCore::ResourceLoadObserver::fireShouldPartitionCookiesHandler): Ditto. |
| (WebCore::ResourceLoadObserver::fireShouldPartitionCookiesHandler): Ditto. |
| * loader/ResourceLoadObserver.h: |
| * loader/ResourceLoadStatisticsStore.cpp: |
| (WebCore::ResourceLoadStatisticsStore::isPrevalentResource): Protect HashTable while using it. |
| (WebCore::ResourceLoadStatisticsStore::ensureResourceStatisticsForPrimaryDomain): Ditto. |
| (WebCore::ResourceLoadStatisticsStore::setResourceStatisticsForPrimaryDomain): Ditto. |
| (WebCore::ResourceLoadStatisticsStore::createEncoderFromData): ASSERT this isn't being done on the main thread, and |
| protect HashTable while using it. |
| (WebCore::ResourceLoadStatisticsStore::readDataFromDecoder): Ditto. |
| (WebCore::ResourceLoadStatisticsStore::clearInMemory): Ditto. |
| (WebCore::ResourceLoadStatisticsStore::clearInMemoryAndPersistent): Ditto. |
| (WebCore::ResourceLoadStatisticsStore::statisticsForOrigin): Protect HashTable while using it. |
| (WebCore::ResourceLoadStatisticsStore::takeStatistics): Ditto. |
| (WebCore::ResourceLoadStatisticsStore::mergeStatistics): Ditto. |
| (WebCore::ResourceLoadStatisticsStore::setNotificationCallback): Use WTF::Function. |
| (WebCore::ResourceLoadStatisticsStore::setShouldPartitionCookiesCallback): Ditto. |
| (WebCore::ResourceLoadStatisticsStore::setWritePersistentStoreCallback): Ditto. |
| (WebCore::ResourceLoadStatisticsStore::setGrandfatherExistingWebsiteDataCallback): Ditto. |
| (WebCore::ResourceLoadStatisticsStore::fireDataModificationHandler): ASSERT this is not called on the main thread, |
| but dispatch the registered handler on the main thread. |
| (WebCore::ResourceLoadStatisticsStore::fireShouldPartitionCookiesHandler): Ditto. |
| (WebCore::ResourceLoadStatisticsStore::processStatistics): ASSERT this isn't being done on the main thread, and |
| protect the HashTable while using it. Also switch to WTF::Function. |
| (WebCore::ResourceLoadStatisticsStore::hasHadRecentUserInteraction): Make const correct. |
| (WebCore::ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor): Protect HashTable while using it. |
| (WebCore::ResourceLoadStatisticsStore::updateStatisticsForRemovedDataRecords): Ditto. |
| (WebCore::ResourceLoadStatisticsStore::handleFreshStartWithEmptyOrNoStore): Ditto. |
| (WebCore::ResourceLoadStatisticsStore::shouldRemoveDataRecords): Make const correct. ASSERT this is not being called |
| on the main thread. |
| (WebCore::ResourceLoadStatisticsStore::dataRecordsBeingRemoved): ASSERT this is not being called on the main thread. |
| (WebCore::ResourceLoadStatisticsStore::dataRecordsWereRemoved): Ditto. |
| (WebCore::ResourceLoadStatisticsStore::statisticsLock): Added. |
| * loader/ResourceLoadStatisticsStore.h: |
| |
| 2017-05-26 Joseph Pecoraro <pecoraro@apple.com> |
| |
| JSContext Inspector: Improve the reliability of automatically pausing in auto-attach |
| https://bugs.webkit.org/show_bug.cgi?id=172664 |
| <rdar://problem/32362933> |
| |
| Reviewed by Matt Baker. |
| |
| * inspector/InspectorController.h: |
| * page/PageDebuggable.cpp: |
| (WebCore::PageDebuggable::connect): |
| * page/PageDebuggable.h: |
| Pass an immediatelyPause boolean on to the controller. |
| |
| * inspector/InspectorController.cpp: |
| (WebCore::InspectorController::connectFrontend): |
| (WebCore::InspectorController::disconnectFrontend): |
| (WebCore::InspectorController::disconnectAllFrontends): |
| Manage should immediately pause state. |
| |
| (WebCore::InspectorController::frontendInitialized): |
| When initialized, trigger a pause if requested. |
| |
| 2017-05-26 Don Olmstead <don.olmstead@am.sony.com> |
| |
| [CMake] Consolidate CMake code related to FreeType |
| https://bugs.webkit.org/show_bug.cgi?id=172656 |
| |
| Reviewed by Michael Catanzaro. |
| |
| No new tests. No change in behavior. |
| |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| * platform/FreeType.cmake: Added. |
| |
| 2017-05-26 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Another bindings cleanup pass, this time focusing on attributes |
| https://bugs.webkit.org/show_bug.cgi?id=172619 |
| |
| Reviewed by Chris Dumez. |
| |
| - Moved attribute getter / setter generation into their own subroutines. |
| - As was done for operations, moved trampoline functions for attributes |
| below their implementation functions to avoid unseemly forward declaration. |
| - Changed to place the getter and setter for an attribute next to each other, |
| rather than having all the getters and then all the setters. |
| - Moved JSFoo::getConstructor and JSFoo::getNamedConstructor up to be with other |
| member functions. |
| - Fix an issue where we were generating a setJSFooConstructor function and not |
| installing it anywhere. Now we always generate either both the getter and setter |
| or neither for the constructor property. Also moved their definition to just above |
| all the attributes, rather than the odd placements of between the getters and |
| setters which is where they had been. |
| - Made InstanceNeedsVisitChildren a complete answer, rather than relying on some |
| loop of the attributes to update needsVisitChildren bit. |
| - Move use of passing conditionals when adding headers. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (InstanceNeedsVisitChildren): |
| (GenerateHeader): |
| (GenerateImplementation): |
| (GenerateAttributeGetterDefinition): |
| (GenerateAttributeSetterDefinition): |
| (NeedsConstructorProperty): |
| |
| * bindings/scripts/test/JS/JSInterfaceName.cpp: |
| * bindings/scripts/test/JS/JSMapLike.cpp: |
| * bindings/scripts/test/JS/JSReadOnlyMapLike.cpp: |
| * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactions.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp: |
| * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp: |
| * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: |
| * bindings/scripts/test/JS/JSTestDOMJIT.cpp: |
| * bindings/scripts/test/JS/JSTestEventConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestEventTarget.cpp: |
| * bindings/scripts/test/JS/JSTestException.cpp: |
| * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: |
| * bindings/scripts/test/JS/JSTestGlobalObject.cpp: |
| * bindings/scripts/test/JS/JSTestInterface.cpp: |
| * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp: |
| * bindings/scripts/test/JS/JSTestIterable.cpp: |
| * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: |
| * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestNode.cpp: |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| * bindings/scripts/test/JS/JSTestObj.h: |
| * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: |
| * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp: |
| * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp: |
| * bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp: |
| * bindings/scripts/test/JS/JSTestSerialization.cpp: |
| * bindings/scripts/test/JS/JSTestSerializationInherit.cpp: |
| * bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp: |
| * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: |
| * bindings/scripts/test/JS/JSTestTypedefs.cpp: |
| Update test results. |
| |
| 2017-05-26 Don Olmstead <don.olmstead@am.sony.com> |
| |
| [CMake] Wrap CODE_GENERATOR_PREPROCESSOR_EXECUTABLE on Windows hosts |
| https://bugs.webkit.org/show_bug.cgi?id=172553 |
| |
| Reviewed by Brent Fulgham. |
| |
| No new tests. No change in behavior. |
| |
| * bindings/scripts/preprocessor.pm: |
| (applyPreprocessor): Use shellwords() instead of splitting |
| preprocessor command by space. Combine it back in open3() call on |
| Windows to work around Cygwin-specific issue. |
| |
| 2017-05-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Unreviewed, fix the build using the latest SDK |
| |
| Add deprecation guards around newly introduced (and deprecated) SPI. |
| |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (-[WebItemProviderPasteboard setItemsUsingRegistrationInfoLists:]): |
| |
| 2017-05-26 Beth Dakin <bdakin@apple.com> |
| |
| Media documents inside iframes should not get controls in the TouchBar unless the |
| video is playing |
| https://bugs.webkit.org/show_bug.cgi?id=172620 |
| -and corresponding- |
| rdar://problem/32165477 |
| |
| Reviewed by Jon Lee. |
| |
| Media documents get to return early with true, but that should only apply to |
| mainframe media documents. |
| * html/MediaElementSession.cpp: |
| (WebCore::MediaElementSession::canShowControlsManager): |
| |
| 2017-05-26 Youenn Fablet <youenn@apple.com> |
| |
| Minor clean-up related to DocumentThreadableLoader redirections |
| https://bugs.webkit.org/show_bug.cgi?id=172647 |
| |
| Reviewed by Chris Dumez. |
| |
| No change of behavior. |
| |
| Decrementing m_options redirect count directly instead of using an |
| additional counter. |
| |
| To compare whether two URLs are same-origin, use scheme+host+port check |
| as per the spec. |
| This is fine as only the initial origin may have specific rules and we |
| are using the scheme+host+port checks when already being gone to |
| another origin. |
| |
| * loader/DocumentThreadableLoader.cpp: |
| (WebCore::DocumentThreadableLoader::redirectReceived): |
| * loader/DocumentThreadableLoader.h: |
| * loader/SubresourceLoader.cpp: |
| (WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl): |
| |
| 2017-05-26 Youenn Fablet <youenn@apple.com> |
| |
| Fix memory leaks in MediaSampleAVFObjC::create |
| https://bugs.webkit.org/show_bug.cgi?id=172600 |
| |
| Reviewed by Eric Carlson. |
| |
| No change of behavior. |
| |
| * platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm: |
| (WebCore::MediaSampleAVFObjC::createImageSample): |
| |
| 2017-05-26 Manuel Rego Casasnovas <rego@igalia.com> |
| |
| [css-grid] Add support for orthogonal positioned grid items |
| https://bugs.webkit.org/show_bug.cgi?id=172591 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| This patch adds support for positioned grid items with orthogonal flows. |
| Basically it just needs to check if the item is orthogonal to use |
| the column or row offset as logical left or top depending on the case. |
| |
| Tests: imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-***.html |
| |
| * rendering/RenderGrid.cpp: |
| (WebCore::RenderGrid::layoutPositionedObject): |
| |
| 2017-05-25 Emilio Cobos Álvarez <ecobos@igalia.com> |
| |
| Don't reset m_hasDisplayContents on ElementRareData::resetComputedStyle. |
| https://bugs.webkit.org/show_bug.cgi?id=172503 |
| |
| Reviewed by Antti Koivisto. |
| |
| We use that bit of information to determine whether we need to tear |
| down the renderers of a display: contents subtree, so better for it to |
| not change until the render tree is updated. |
| |
| In practice, we may want to remove that bit and use ElementRareData's |
| RenderStyle instead (keeping it around as appropriate), to ensure they |
| don't go out of sync, but that's out of scope of this patch for now. |
| |
| Tests: imported/w3c/web-platform-tests/css/css-display-3 |
| |
| * dom/ElementRareData.h: |
| (WebCore::ElementRareData::resetComputedStyle): |
| |
| 2017-05-25 Sam Weinig <sam@webkit.org> |
| |
| Fix MediaDeviceInfo's extended attributes so they make sense |
| https://bugs.webkit.org/show_bug.cgi?id=172629 |
| |
| Reviewed by Daniel Bates. |
| |
| MediaDeviceInfo.idl had both a Constructor and NoInterfaceObject, which |
| doesn't really make sense. Either way, the spec says it should have |
| neither, so remove both. And, while were there, add missing serializer. |
| |
| Test: fast/mediastream/media-device-info.html |
| |
| * Modules/mediastream/MediaDeviceInfo.idl: |
| |
| 2017-05-25 Chris Dumez <cdumez@apple.com> |
| |
| imported/w3c/web-platform-tests/html/semantics/forms/form-control-infrastructure/form_owner_and_table_2.html is crashing |
| https://bugs.webkit.org/show_bug.cgi?id=172628 |
| <rdar://problem/32418707> |
| |
| Reviewed by Sam Weinig. |
| |
| In the event where a form is removed synchronously by a script during parsing, |
| FormAssociatedElement::m_formSetByParser may end up referring to a form that |
| is no longer in the document. As a result, we should make sure m_formSetByParser |
| is still connected in FormAssociatedElement::insertedInto() before we call |
| FormAssociatedElement::setForm(m_formSetByParser). |
| |
| Test: fast/dom/HTMLFormElement/form-removed-during-parsing-crash.html |
| |
| * html/FormAssociatedElement.cpp: |
| (WebCore::FormAssociatedElement::insertedInto): |
| |
| 2017-05-25 Zalan Bujtas <zalan@apple.com> |
| |
| Frame's composited content is visible when the frame has visibility: hidden. |
| https://bugs.webkit.org/show_bug.cgi?id=125565 |
| <rdar://problem/32196849> |
| |
| Reviewed by Simon Fraser. |
| |
| Do not construct composited layers for hidden RenderWidgets (frameset, iframe, object). |
| Note that we still construct layers for the associated renderers as usual. |
| |
| Tests: compositing/visibility/frameset-visibility-hidden.html |
| compositing/visibility/iframe-visibility-hidden.html |
| compositing/visibility/object-visibility-hidden.html |
| |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::requiresCompositingForPlugin): |
| (WebCore::RenderLayerCompositor::requiresCompositingForFrame): |
| |
| 2017-05-25 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Unreviewed, build fix in GTK and WPE ports |
| https://bugs.webkit.org/show_bug.cgi?id=172580 |
| |
| Missing RenderSVGResourceMode declaration in SVGInlineTextBox.h. |
| |
| * rendering/svg/SVGInlineTextBox.h: |
| |
| 2017-05-25 Simon Fraser <simon.fraser@apple.com> |
| |
| Use a typedef for SVG resource mode flags union |
| https://bugs.webkit.org/show_bug.cgi?id=172580 |
| |
| Reviewed by Sam Weinig. |
| |
| Use an OptionSet<> for RenderSVGResourceModes flags, and use it in render |
| SVG resource classes. |
| |
| * rendering/svg/RenderSVGResource.cpp: |
| (WebCore::requestPaintingResource): |
| (WebCore::RenderSVGResource::fillPaintingResource): |
| (WebCore::RenderSVGResource::strokePaintingResource): |
| * rendering/svg/RenderSVGResource.h: |
| (WebCore::RenderSVGResource::postApplyResource): |
| * rendering/svg/RenderSVGResourceClipper.cpp: |
| (WebCore::RenderSVGResourceClipper::applyResource): |
| * rendering/svg/RenderSVGResourceClipper.h: |
| * rendering/svg/RenderSVGResourceFilter.cpp: |
| (WebCore::RenderSVGResourceFilter::applyResource): |
| (WebCore::RenderSVGResourceFilter::postApplyResource): |
| * rendering/svg/RenderSVGResourceFilter.h: |
| * rendering/svg/RenderSVGResourceGradient.cpp: |
| (WebCore::RenderSVGResourceGradient::applyResource): |
| * rendering/svg/RenderSVGResourceGradient.h: |
| * rendering/svg/RenderSVGResourceMarker.h: |
| * rendering/svg/RenderSVGResourceMasker.cpp: |
| (WebCore::RenderSVGResourceMasker::applyResource): |
| * rendering/svg/RenderSVGResourceMasker.h: |
| * rendering/svg/RenderSVGResourcePattern.cpp: |
| (WebCore::RenderSVGResourcePattern::buildPattern): |
| (WebCore::RenderSVGResourcePattern::applyResource): |
| (WebCore::RenderSVGResourcePattern::postApplyResource): |
| * rendering/svg/RenderSVGResourcePattern.h: |
| * rendering/svg/RenderSVGResourceSolidColor.cpp: |
| (WebCore::RenderSVGResourceSolidColor::applyResource): |
| (WebCore::RenderSVGResourceSolidColor::postApplyResource): |
| * rendering/svg/RenderSVGResourceSolidColor.h: |
| * rendering/svg/RenderSVGShape.cpp: |
| (WebCore::RenderSVGShape::fillShape): |
| (WebCore::RenderSVGShape::strokeShape): |
| * rendering/svg/SVGInlineTextBox.cpp: |
| (WebCore::SVGInlineTextBox::SVGInlineTextBox): |
| (WebCore::SVGInlineTextBox::paintSelectionBackground): |
| (WebCore::SVGInlineTextBox::paint): |
| (WebCore::SVGInlineTextBox::acquirePaintingResource): |
| (WebCore::SVGInlineTextBox::releasePaintingResource): |
| (WebCore::SVGInlineTextBox::paintDecoration): |
| (WebCore::SVGInlineTextBox::paintDecorationWithStyle): |
| * rendering/svg/SVGInlineTextBox.h: |
| * rendering/svg/SVGRenderingContext.cpp: |
| (WebCore::SVGRenderingContext::~SVGRenderingContext): |
| (WebCore::SVGRenderingContext::prepareToRenderSVGContent): |
| (WebCore::SVGRenderingContext::renderSubtreeToImageBuffer): Avoid needless IntPoint -> LayoutPoint |
| conversion. |
| |
| 2017-05-25 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r215686): Videos sometimes do not load in iBooks |
| https://bugs.webkit.org/show_bug.cgi?id=172604 |
| <rdar://problem/32003717> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Before r215686, the loop would have a check at the beginning to check if the |
| dataRequest's currentOffset was greater than the buffer length and would |
| cause the function to return early. |
| |
| This check was dropped in r215686, which caused us in some cases to call |
| finishLoading / stopLoading() after the loop, even though we did not have |
| enough data in the buffer to satisfy the data request. |
| |
| To address the issue, we now return early after the loop if remainingLength |
| is greater than 0, meaning that we could not satisfy the request. This makes |
| sure we do not call finishLoading / stopLoading() prematurely. |
| |
| Note that before r215686, the condition of the while loop was |
| "while (remainingLength)" so the only way to get out of the loop was to: |
| 1. Get remainingLength to 0, in which case we would fall through and |
| potentially call finishLoading / stopLoading() after the loop. |
| 2. Fail the "(data->size() <= [dataRequest currentOffset] - responseOffset)" |
| check at the beginning of the loop, meaning that we ran out of data in |
| the buffer. This would cause us to return from the function, not fall |
| through, so we would not call finishLoading / stopLoading(). |
| |
| No new tests, I do not know how to write a test for this. |
| |
| * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: |
| (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource): |
| |
| 2017-05-25 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Use the term 'operation' more consistently |
| https://bugs.webkit.org/show_bug.cgi?id=172601 |
| |
| Reviewed by Chris Dumez. |
| |
| We were using the term 'operation', a WebIDL term for function-like |
| constructs, inconsistently in the code generator. Now, when we use |
| 'operation' when referring to the IDL concept (usually the object the |
| parser produces) and 'function' when referring to code being generated. |
| |
| * bindings/scripts/CodeGenerator.pm: |
| * bindings/scripts/IDLParser.pm: |
| * bindings/scripts/generate-bindings.pl: |
| |
| 2017-05-25 Jer Noble <jer.noble@apple.com> |
| |
| System sleeps while playing to wireless target, ending stream. |
| https://bugs.webkit.org/show_bug.cgi?id=172541 |
| |
| Reviewed by Eric Carlson. |
| |
| API test: Tests/mac/MediaPlaybackSleepAssertion.mm |
| |
| Keep the system from sleeping (but allow the display to sleep) while playing media to a wireless target. |
| |
| Give the SleepDisabler a Type, either System or Display, which indicates what kind of sleep to disable. |
| Update HTMLMediaElement::shouldDisableSleep() to differentiate between a video which is playing locally, |
| one that is playing but not visible, and one that is playing remotely. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): |
| (WebCore::HTMLMediaElement::updateSleepDisabling): |
| (WebCore::HTMLMediaElement::shouldDisableSleep): |
| * html/HTMLMediaElement.h: |
| * platform/SleepDisabler.cpp: |
| (WebCore::SleepDisabler::create): |
| (WebCore::SleepDisabler::SleepDisabler): |
| * platform/SleepDisabler.h: |
| (WebCore::SleepDisabler::type): |
| * platform/cocoa/SleepDisablerCocoa.cpp: |
| (WebCore::SleepDisabler::create): |
| (WebCore::SleepDisablerCocoa::SleepDisablerCocoa): |
| (WebCore::SleepDisablerCocoa::~SleepDisablerCocoa): |
| * platform/cocoa/SleepDisablerCocoa.h: |
| * platform/mac/WebVideoFullscreenController.mm: |
| (-[WebVideoFullscreenController updatePowerAssertions]): |
| * platform/spi/cocoa/IOPMLibSPI.h: |
| |
| 2017-05-25 Chris Dumez <cdumez@apple.com> |
| |
| DocumentThreadableLoader::redirectReceived() should not rely on the resource's loader |
| https://bugs.webkit.org/show_bug.cgi?id=172578 |
| <rdar://problem/30754582> |
| |
| Reviewed by Youenn Fablet. |
| |
| DocumentThreadableLoader::redirectReceived() should not rely on the resource's loader. The rest of the methods do not. |
| It is unsafe for it to rely on the resource's loader because it gets cleared when the load completes. A CachedRawresource |
| may be reused from the memory cache once its load has completed. |
| |
| This would cause crashes in CachedRawResource::didAddClient() when replaying the redirects because it would call |
| DocumentThreadableLoader::redirectReceived() and potentially not have a loader anymore. To hit this exact code path, |
| you would need to make repeated XHR to a cacheable simple cross-origin resource that has cacheable redirect. |
| |
| Test: http/tests/xmlhttprequest/cacheable-cross-origin-redirect-crash.html |
| |
| * loader/DocumentThreadableLoader.cpp: |
| (WebCore::DocumentThreadableLoader::redirectReceived): |
| * loader/DocumentThreadableLoader.h: |
| |
| 2017-05-25 Zalan Bujtas <zalan@apple.com> |
| |
| ASSERTION FAILED: !needsStyleRecalc() || !document().childNeedsStyleRecalc() |
| https://bugs.webkit.org/show_bug.cgi?id=172576 |
| <rdar://problem/32181979> |
| |
| Reviewed by Brent Fulgham. |
| |
| Ensure that we clean the subframe's document before start searching for a focusable element. |
| |
| Covered by existing test. |
| |
| * page/FocusController.cpp: |
| (WebCore::FocusController::findFocusableElementDescendingDownIntoFrameDocument): |
| |
| 2017-05-24 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Crash on WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance + 1195 |
| https://bugs.webkit.org/show_bug.cgi?id=172555 |
| <rdar://problem/32004724> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| setSelectionWithoutUpdatingAppearance could dispatch a synchronous focusin event, |
| which could invoke an event handler that deteles the frame. Therefore, add a |
| protector before the call. |
| |
| Test: editing/selection/select-iframe-focusin-document-crash.html |
| |
| * editing/FrameSelection.cpp: |
| (WebCore::FrameSelection::setSelection): |
| |
| 2017-05-25 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Ensure ImageFrameCache does not access its BitmapImage after it is deleted |
| https://bugs.webkit.org/show_bug.cgi?id=172563 |
| |
| Reviewed by Simon Fraser. |
| |
| A crash may happen if the BitmapImage is deleted while the decoding thread |
| is still active. Once the current frame finishes decoding, the decoding |
| thread will make a callOnMainThread() which will access the deleted BitmapImage. |
| |
| We need to ensure if BitmapImage is deleted, the raw pointer which references |
| it in ImageFrameCache is cleared. If this is done, nothing else is needed. |
| All all the accesses to container BitmapImage in ImageFrameCache are guarded |
| by checking m_image is not null. |
| |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::~BitmapImage): Make sure the decoding thread will |
| not have access to the deleted BitmapImage when it finishes decoding and |
| make its callOnMainThread(). |
| (WebCore::BitmapImage::destroyDecodedData): Use the function new name. |
| (WebCore::BitmapImage::internalStartAnimation): Ditto. |
| * platform/graphics/ImageFrameCache.cpp: |
| (WebCore::ImageFrameCache::startAsyncDecodingQueue): Protect the sourceURL |
| for the decoding thread. ImageFrameCache::sourceURL() checks for the value |
| of m_image which now may change from the main thread. |
| * platform/graphics/ImageFrameCache.h: |
| (WebCore::ImageFrameCache::clearImage): Add a new function to clear the |
| raw pointer m_image when its is deleted. |
| * platform/graphics/ImageSource.cpp: |
| (WebCore::ImageSource::resetData): Rename clear() to resetData() for better |
| code readability. This function deletes the ImageDecoder and creates a new |
| one if data is not null. The purpose is to delete the decoder raster data. |
| (WebCore::ImageSource::clear): Deleted. |
| * platform/graphics/ImageSource.h: |
| (WebCore::ImageSource::clearImage): Wrapper for the ImageFrameCache function. |
| |
| 2017-05-25 youenn fablet <youenn@apple.com> |
| |
| Add some release logging for media elements |
| https://bugs.webkit.org/show_bug.cgi?id=172581 |
| |
| Reviewed by Eric Carlson. |
| |
| No change of behavior. |
| |
| Adding logging for getUserMedia, video autoplay and incoming/outgoing webrtc video tracks. |
| |
| * Modules/mediastream/UserMediaRequest.cpp: |
| (WebCore::UserMediaRequest::allow): |
| (WebCore::UserMediaRequest::deny): |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::canTransitionFromAutoplayToPlay): |
| * html/MediaElementSession.cpp: |
| (WebCore::MediaElementSession::playbackPermitted): |
| * platform/Logging.h: |
| * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: |
| (WebCore::RealtimeIncomingVideoSource::OnFrame): |
| * platform/mediastream/mac/RealtimeIncomingVideoSource.h: |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: |
| (WebCore::RealtimeOutgoingVideoSource::sendOneBlackFrame): |
| (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: |
| |
| 2017-05-25 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Do a pass of cleanup in the bindings generator |
| https://bugs.webkit.org/show_bug.cgi?id=172566 |
| |
| Reviewed by Chris Dumez. |
| |
| - Split JSDOMBindingCaller.h into four new files to allow for less |
| header inclusion (one includes a bunch of promise stuff that usually |
| isn't needed): |
| - JSDOMCastedThisErrorBehavior (with shared casting enum) |
| - JSDOMAttribute (for attribute getting / setting) |
| - JSDOMOperation (for normal operations) |
| - JSDOMOperationReturningPromise (for operations returning promises, obviously). |
| |
| In addition to separating the files, rename to be more consistent with modern |
| bindings conventions (new classes are IDLAttribute, IDLOperation, and |
| IDLOperationReturningPromise) and simplify function names |
| - 'callOperation' becomes 'call' |
| - 'attribute' becomes 'get' |
| - 'setAttribute' becomes 'set' |
| |
| - Remove extra generated trampoline function for operations returning promises |
| by making JSDOMOperationReturningPromise handle all the promise related overhead. |
| |
| - Make [Custom] operations returning promises go through the normal IDLOperationReturningPromise |
| code path (simplifying JSReadableStreamSource and JSSubtleCrypto). Added [ReturnsOwnPromise] |
| extended attribute to allow some functions that want to retain specialized behavior to do so |
| |
| - Swap order of trampoline and implementation of operation, to avoid the need for |
| a forward declaration and make reading more straightforward. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| Add / remove files. |
| |
| * bindings/js/JSDOMBindingCaller.h: Removed. |
| |
| * bindings/js/JSDOMCastedThisErrorBehavior.h: Added. |
| Shared header for enum needed by JSDOMAttribute, JSDOMOperation and JSDOMOperationReturningPromise. |
| |
| * bindings/js/JSDOMAttribute.h: Added. |
| * bindings/js/JSDOMOperation.h: Added. |
| * bindings/js/JSDOMOperationReturningPromise.h: Added. |
| Split out JSDOMBindingCaller implementations into own classes / files. Simplify |
| naming. |
| |
| * bindings/js/JSDOMPromiseDeferred.h: |
| (WebCore::callPromiseFunction): |
| Add a variant of callPromiseFunction that takes a lambda. |
| |
| * bindings/js/JSEventTargetCustom.h: |
| (WebCore::IDLOperation<JSEventTarget>::call): |
| Update operation specialization to use new class. |
| |
| * bindings/js/JSReadableStreamSourceCustom.cpp: |
| * bindings/js/JSSubtleCryptoCustom.cpp: |
| Simplify now that the callPromiseFunction is called for us. |
| |
| * crypto/WebKitSubtleCrypto.idl: |
| * css/FontFace.idl: |
| * dom/CustomElementRegistry.idl: |
| Add [ReturnsOwnPromise] to retain custom promise behavior. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateHeader): |
| Update header generation to account for custom functions that return promises now |
| having a Ref<DeferredPromise>&& parameter. |
| |
| (GenerateImplementation): |
| - Update for new naming of cast functions. |
| - Use AddToImplIncludes (and pass in conditional) rather than using $implIncludes |
| directly, #includes to be grouped correctly. |
| - Remove dead $inAppleCopyright code (it was moved to GenerateOperationDefinition |
| earlier). |
| |
| (GenerateOperationDefinition): |
| - Use $codeGenerator->IsPromiseType() rather than directly comparing to "Promise" string. |
| - Restructure code to allow trampoline (the code that calls IDLOperation) to come after |
| the main operation implementation (the part that calls into the impl). |
| - Support custom functions returning promises (and the [ReturnsOwnPromise] variant). |
| |
| (GenerateImplementationIterableFunctions): |
| Update for name change to IDLOperation. |
| |
| * bindings/scripts/IDLAttributes.json: |
| Add [ReturnsOwnPromise]. |
| |
| * bindings/scripts/test/JS/JSInterfaceName.cpp: |
| * bindings/scripts/test/JS/JSMapLike.cpp: |
| * bindings/scripts/test/JS/JSReadOnlyMapLike.cpp: |
| * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactions.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp: |
| * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp: |
| * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: |
| * bindings/scripts/test/JS/JSTestDOMJIT.cpp: |
| * bindings/scripts/test/JS/JSTestEventConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestEventTarget.cpp: |
| * bindings/scripts/test/JS/JSTestException.cpp: |
| * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: |
| * bindings/scripts/test/JS/JSTestGlobalObject.cpp: |
| * bindings/scripts/test/JS/JSTestInterface.cpp: |
| * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp: |
| * bindings/scripts/test/JS/JSTestIterable.cpp: |
| * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: |
| * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestNode.cpp: |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| * bindings/scripts/test/JS/JSTestObj.h: |
| * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: |
| * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp: |
| * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp: |
| * bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp: |
| * bindings/scripts/test/JS/JSTestSerialization.cpp: |
| * bindings/scripts/test/JS/JSTestSerializationInherit.cpp: |
| * bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp: |
| * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: |
| * bindings/scripts/test/JS/JSTestTypedefs.cpp: |
| Update test results. |
| |
| * bindings/scripts/test/TestObj.idl: |
| Add additional test cases for operations returning promises. |
| |
| 2017-05-25 Simon Fraser <simon.fraser@apple.com> |
| |
| Some <chrono> and ProgressTracker cleanup |
| https://bugs.webkit.org/show_bug.cgi?id=172582 |
| |
| Reviewed by Sam Weinig. |
| |
| Remove some unnecessary <chrono> includes. |
| Convert some std::chrono to use MonotonicTime/Seconds. |
| Clean up ProgressTracker. |
| Some #pragma once. |
| |
| * dom/Document.h: |
| * loader/ProgressTracker.cpp: |
| (WebCore::ProgressTracker::ProgressTracker): |
| (WebCore::ProgressTracker::reset): |
| (WebCore::ProgressTracker::progressStarted): |
| (WebCore::ProgressTracker::finalProgressComplete): |
| (WebCore::ProgressTracker::incrementProgress): |
| * loader/ProgressTracker.h: |
| * page/Settings.h: |
| * platform/SearchPopupMenu.h: |
| * platform/Timer.h: |
| * platform/graphics/cg/IOSurfacePool.cpp: |
| (WebCore::IOSurfacePool::markOlderSurfacesPurgeable): |
| * platform/graphics/cg/IOSurfacePool.h: |
| (WebCore::IOSurfacePool::CachedSurfaceDetails::resetLastUseTime): |
| * platform/network/PlatformCookieJar.h: |
| |
| 2017-05-25 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| [ATK] Expose doc-footnote ARIA role with ATK_ROLE_FOOTNOTE |
| https://bugs.webkit.org/show_bug.cgi?id=172355 |
| |
| Reviewed by Chris Fleizach. |
| |
| Add a new FootnoteRole accessibility role to WebCore and map it to |
| ATK_ROLE_FOOTNOTE for WebKitGtk and NSAccessibilityGroupRole with |
| a subrole of AXApplicationGroup for the Mac port. |
| |
| No new tests because we already have coverage for this role. |
| The existing test expectations were updated to reflect the |
| new mapping of doc-footnote to ATK_ROLE_FOOTNOTE. |
| |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::initializeRoleMap): |
| (WebCore::AccessibilityObject::computedRoleString): |
| * accessibility/AccessibilityObject.h: |
| * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: |
| (atkRole): |
| * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: |
| (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]): |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: |
| (createAccessibilityRoleMap): |
| (-[WebAccessibilityObjectWrapper subrole]): |
| |
| 2017-05-25 youenn fablet <youenn@apple.com> |
| |
| [macOS WK2 Debug] Layout Test webrtc/video.html is crashing. |
| https://bugs.webkit.org/show_bug.cgi?id=172560 |
| <rdar://problem/32392611> |
| |
| Reviewed by Eric Carlson. |
| |
| webrtc/multiple-video.html is no longer crashing. |
| |
| Allow autoplay only from going to not capture to capture, and not the reverse. |
| Renamed HTMLMediaElement::mediaStreamCaptureStateChanged to mediaStreamCaptureStarted. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::mediaStreamCaptureStateChanged): |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::mediaStreamCaptureStateChanged): Deleted. |
| * html/HTMLMediaElement.h: |
| (WebCore::HTMLMediaElement::mediaStreamCaptureStarted): |
| |
| 2017-05-25 Dave Hyatt <hyatt@apple.com> |
| |
| Baseline of number inputs not right. |
| https://bugs.webkit.org/show_bug.cgi?id=172237 |
| |
| Reviewed by Dean Jackson. |
| |
| Added fast/forms/baseline-of-number-inputs.html |
| |
| * css/html.css: |
| (input::-webkit-inner-spin-button): |
| * rendering/RenderSearchField.cpp: |
| (WebCore::RenderSearchField::computeLogicalHeightLimit): Deleted. |
| (WebCore::RenderSearchField::centerContainerIfNeeded): Deleted. |
| * rendering/RenderSearchField.h: |
| * rendering/RenderTextControlSingleLine.cpp: |
| (WebCore::RenderTextControlSingleLine::centerRenderer): |
| (WebCore::RenderTextControlSingleLine::layout): |
| (WebCore::RenderTextControlSingleLine::computeLogicalHeightLimit): Deleted. |
| * rendering/RenderTextControlSingleLine.h: |
| (WebCore::RenderTextControlSingleLine::centerContainerIfNeeded): Deleted. |
| |
| 2017-05-25 Manuel Rego Casasnovas <rego@igalia.com> |
| |
| [css-grid] Fix behavior of positioned items without specific dimensions |
| https://bugs.webkit.org/show_bug.cgi?id=172117 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| Currently positioned items that doesn't have specific dimensions |
| are not properly sized. This patch fixes the issues with them. |
| |
| The patch removes the extraInline|BlockOffsets from RenderBox, |
| so now RenderGrid is responsible of setting the location of the positioned item. |
| This will be useful to add alignment support for positioned items later. |
| It also removes grid specific logic from RenderBox. |
| |
| RenderBox::computeInlineStaticDistance() was modified too. |
| The problem here was that the containing block of the positioned gird items |
| is the grid area (and not the grid container). The method didn't know |
| anything about grid, so it was using the grid container causing wrong values |
| when resolving "auto" in both left and right offset properties. |
| |
| Note that after this patch we match Chrome and Firefox behavior on these cases. |
| |
| Test: fast/css-grid-layout/positioned-grid-items-sizing.html |
| |
| * rendering/RenderBox.cpp: |
| (WebCore::RenderBox::willBeDestroyed): |
| (WebCore::computeInlineStaticDistance): |
| (WebCore::RenderBox::computePositionedLogicalWidth): |
| (WebCore::RenderBox::computePositionedLogicalHeight): |
| * rendering/RenderBox.h: |
| * rendering/RenderGrid.cpp: |
| (WebCore::RenderGrid::layoutPositionedObject): |
| (WebCore::RenderGrid::offsetAndBreadthForPositionedChild): |
| |
| 2017-05-25 Claudio Saavedra <csaavedra@igalia.com> |
| |
| [WPE] Build fix after r217404 |
| |
| Unreviewed |
| |
| * PlatformWPE.cmake: Include missing cairo cmake file. |
| |
| 2017-05-24 Chris Dumez <cdumez@apple.com> |
| |
| ResourceResponses for data URLs have their Source marked as Unknown |
| https://bugs.webkit.org/show_bug.cgi?id=172573 |
| <rdar://problem/31786198> |
| |
| Reviewed by Geoffrey Garen. |
| |
| ResourceResponses for data URLs have their Source marked as Unknown. |
| |
| Now set their source to Network to maintain previous behavior when |
| we used to decode those data URLs on Network process side. |
| |
| Test: fast/url/data-url-source.html |
| |
| * loader/ResourceLoader.cpp: |
| (WebCore::ResourceLoader::loadDataURL): |
| |
| 2017-05-24 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win] An assertion fails if the custom cursor image isn't loaded yet |
| https://bugs.webkit.org/show_bug.cgi?id=172209 |
| |
| Reviewed by Said Abou-Hallawa. |
| |
| Test: fast/css/crash-on-custom-cursor-when-loading.html |
| |
| A custom cursor image can be zero dimension if it is loading or |
| decoding. Cursor::ensurePlatformCursor of Windows port should |
| handle such case properly. |
| |
| * platform/win/CursorWin.cpp: |
| (WebCore::Cursor::ensurePlatformCursor): Load a stock cursor if |
| the custom cursor image has zero dimension. Do not do null-check |
| of the return value of createSharedCursor() because it never |
| returns null. |
| |
| 2017-05-24 Don Olmstead <don.olmstead@am.sony.com> |
| |
| [CMake] Consolidate CMake code related to Cairo |
| https://bugs.webkit.org/show_bug.cgi?id=172568 |
| |
| Reviewed by Alex Christensen. |
| |
| No new tests. No change in behavior. |
| |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| * PlatformWinCairo.cmake: |
| * config.h: |
| * platform/Cairo.cmake: Added. |
| * platform/GStreamer.cmake: |
| * platform/ImageDecoders.cmake: |
| |
| 2017-05-24 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| REGRESSION (r206481): Don't assume frameCount() is larger than or equal to the size of the image frame cache |
| https://bugs.webkit.org/show_bug.cgi?id=172552 |
| |
| Reviewed by Geoffrey Garen. |
| |
| If an image with many cached ImageFrames is cached but its encoded data is |
| freed, then the same image is reused, the encoded data will be fetched. |
| But the initial frameCount() might be less than the current size of the |
| ImageFrames cache. |
| |
| This was causing an assertion in the debug build and crash in the release |
| build. Vector::grow() does not handle the case where the new size is smaller |
| than the current size safely. |
| |
| * platform/graphics/ImageFrameCache.cpp: |
| (WebCore::ImageFrameCache::growFrames): |
| |
| 2017-05-24 Sergey Shekyan <shekyan@gmail.com> |
| |
| navigator.webdriver should return false if the page is not controlled by automation |
| https://bugs.webkit.org/show_bug.cgi?id=171997 |
| |
| Reviewed by Chris Dumez. |
| |
| Per WebDriver Specification at https://www.w3.org/TR/webdriver/#interface |
| |
| Test: js/dom/navigator-webdriver.html |
| Rebaseled fast/dom/navigator-detached-no-crash.html |
| |
| * Modules/webdriver/NavigatorWebDriver.cpp: |
| (WebCore::NavigatorWebDriver::NavigatorWebDriver): |
| (WebCore::NavigatorWebDriver::isControlledByAutomation): |
| (WebCore::NavigatorWebDriver::from): |
| (WebCore::NavigatorWebDriver::webdriver): |
| (WebCore::JSNavigator::webdriver): Deleted. |
| * Modules/webdriver/NavigatorWebDriver.h: |
| * Modules/webdriver/NavigatorWebDriver.idl: |
| |
| 2017-05-24 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, suppress deprecation warnings to fix the build. |
| |
| * platform/graphics/mac/GraphicsContextMac.mm: |
| (WebCore::linearRGBColorSpaceRef): |
| |
| 2017-05-24 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Plumb additional image metadata to item providers when beginning data interaction on an image |
| https://bugs.webkit.org/show_bug.cgi?id=172536 |
| <rdar://problem/32371300> |
| |
| Reviewed by Beth Dakin. |
| |
| Plumb suggestedName (the last path component of the image's source URL) and size (the actual size of the image) |
| to item providers when beginning data interaction on an image. |
| |
| Augments existing unit tests to cover these changes -- see DataInteractionTests. |
| |
| * editing/ios/EditorIOS.mm: |
| (WebCore::Editor::writeImageToPasteboard): |
| * platform/Pasteboard.h: |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::writeObjectRepresentations): |
| * platform/ios/WebItemProviderPasteboard.h: |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (-[WebItemProviderRegistrationInfoList init]): |
| (-[WebItemProviderPasteboard setItemsUsingRegistrationInfoLists:]): |
| (temporaryFileURLForDataInteractionContent): |
| |
| 2017-05-24 Eric Carlson <eric.carlson@apple.com> |
| |
| CoreAudioCaptureSource is ducking system sound |
| https://bugs.webkit.org/show_bug.cgi?id=172512 |
| |
| Reviewed by Youenn Fablet. |
| |
| Manual testing. |
| |
| * Configurations/WebCore.xcconfig: Adding CoreAudio as framework for iOS. |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioSharedUnit::setupAudioUnit): |
| (WebCore::CoreAudioSharedUnit::defaultOutputDevice): |
| * platform/spi/cf/CoreAudioSPI.h: Added. |
| |
| 2017-05-24 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Change grandfathering default to one hour |
| https://bugs.webkit.org/show_bug.cgi?id=172524 |
| <rdar://problem/32360462> |
| |
| Reviewed by Brent Fulgham. |
| |
| Covered by existing test. |
| |
| * loader/ResourceLoadStatisticsStore.cpp: |
| |
| 2017-05-24 Jer Noble <jer.noble@apple.com> |
| |
| Rename DisplaySleepDisabler -> SleepDisabler |
| https://bugs.webkit.org/show_bug.cgi?id=172478 |
| |
| Reviewed by Sam Weinig. |
| |
| Rename DisplaySleepDisabler to SleepDisabler so that different (i.e., non-Display) sleep types can be |
| added in a future change. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::updateSleepDisabling): |
| * html/HTMLMediaElement.h: |
| * platform/SleepDisabler.cpp: Renamed from Source/WebCore/platform/DisplaySleepDisabler.cpp. |
| (WebCore::SleepDisabler::create): |
| (WebCore::SleepDisabler::SleepDisabler): |
| (WebCore::SleepDisabler::~SleepDisabler): |
| * platform/SleepDisabler.h: Renamed from Source/WebCore/platform/DisplaySleepDisabler.h. |
| * platform/cocoa/SleepDisablerCocoa.cpp: Renamed from Source/WebCore/platform/cocoa/DisplaySleepDisablerCocoa.cpp. |
| (WebCore::SleepDisabler::create): |
| (WebCore::SleepDisablerCocoa::SleepDisablerCocoa): |
| (WebCore::SleepDisablerCocoa::~SleepDisablerCocoa): |
| * platform/cocoa/SleepDisablerCocoa.h: Renamed from Source/WebCore/platform/cocoa/DisplaySleepDisablerCocoa.h. |
| * platform/mac/WebVideoFullscreenController.h: |
| * platform/mac/WebVideoFullscreenController.mm: |
| (-[WebVideoFullscreenController updatePowerAssertions]): |
| * CMakeLists.txt: |
| * PlatformMac.cmake: |
| * WebCore.order: |
| |
| 2017-05-24 Per Arne Vollan <pvollan@apple.com> |
| |
| [Win] Create unique network storage session for each DRT. |
| https://bugs.webkit.org/show_bug.cgi?id=172540 |
| |
| Reviewed by Brent Fulgham. |
| |
| During layout testing, each DRT instance should have its own network storage session. |
| |
| * platform/network/cf/NetworkStorageSessionCFNet.cpp: |
| (WebCore::NetworkStorageSession::switchToNewTestingSession): |
| |
| 2017-05-24 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Overloaded functions unnecessarily duplicate argument checks |
| https://bugs.webkit.org/show_bug.cgi?id=172481 |
| |
| Reviewed by Chris Dumez. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateHeader): |
| (GeneratePropertiesHashTable): |
| Update for rename of GetConditionalForFunctionConsideringOverloads. |
| |
| (AreTypesDistinguishableForOverloadResolution): |
| Remove unnecessary subroutine isDictionary that can be replaced by |
| a direct call to $codeGenerator->IsDictionaryType(). |
| |
| (GetConditionalForFunctionConsideringOverloads): |
| Renamed from getConditionalForFunctionConsideringOverloads. |
| |
| (GenerateOverloadDispatcher): |
| Renamed from GenerateOverloadedFunctionOrConstructor. Moved Constructor/Operation/LegacyCaller |
| specific code out, and into parameters. |
| |
| (GenerateImplementation): |
| Moved operation generation out into its own subroutine. |
| |
| (GenerateOperationDefinition): Added. |
| Moved from GenerateImplementation. |
| |
| (GenerateLegacyCallerDefinitions): |
| Pass function name and signature to GenerateOverloadDispatcher. |
| |
| (GenerateArgumentsCountCheck): |
| Don't generate an argument check if this is an overloaded function. The argument |
| checks happen in the overload dispatcher. |
| |
| (NeedsExplicitPropagateExceptionCall): |
| (GenerateParametersCheck): |
| (GenerateImplementationFunctionCall): |
| Replace IsReturningPromise with more direct check. |
| |
| (GenerateConstructorDefinitions): |
| Pass function name and signature to GenerateOverloadDispatcher. |
| |
| (getConditionalForFunctionConsideringOverloads): Renamed to GetConditionalForFunctionConsideringOverloads. |
| (GenerateOverloadedFunctionOrConstructor): Renamed to GenerateOverloadDispatcher. |
| (IsReturningPromise): Deleted. |
| |
| * bindings/scripts/test/JS/JSTestGlobalObject.cpp: |
| * bindings/scripts/test/JS/JSTestInterface.cpp: |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| * bindings/scripts/test/TestInterface.idl: |
| Update test results. |
| |
| 2017-05-24 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r217319. |
| https://bugs.webkit.org/show_bug.cgi?id=172538 |
| |
| This patch broke iOS Simulator Debug build (Requested by fredw |
| on #webkit). |
| |
| Reverted changeset: |
| |
| "CoreAudioCaptureSource is ducking system sound" |
| https://bugs.webkit.org/show_bug.cgi?id=172512 |
| http://trac.webkit.org/changeset/217319 |
| |
| 2017-05-24 Antoine Quint <graouts@apple.com> |
| |
| [mac-wk1] LayoutTest media/modern-media-controls/airplay-button/airplay-button.html is a flaky timeout |
| https://bugs.webkit.org/show_bug.cgi?id=168409 |
| |
| Unreviewed. |
| |
| Remove temporary logging which prevents performance bots from reporting useful data. |
| |
| * page/Page.cpp: |
| (WebCore::Page::suspendScriptedAnimations): |
| |
| 2017-05-24 Javier Fernandez <jfernandez@igalia.com> |
| |
| [css-grid] Ignore collapsed tracks on content-distribution alignment |
| https://bugs.webkit.org/show_bug.cgi?id=172493 |
| |
| Reviewed by Manuel Rego Casasnovas. |
| |
| The CSS Box Alignment spec states that we should ignore the collapsed |
| tracks when computing the Distribution Alignment space to assign to the |
| different grid tracks. |
| |
| No new tests, just unskipping the web-platform-tests imported to verify this use case. |
| |
| * rendering/RenderGrid.cpp: |
| (WebCore::RenderGrid::populateGridPositionsForDirection): |
| |
| 2017-05-24 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Respect image UTIs when writing to item providers when beginning data interaction on an image |
| https://bugs.webkit.org/show_bug.cgi?id=172436 |
| <rdar://problem/31786569> |
| |
| Reviewed by Beth Dakin. |
| |
| Previously, when beginning writing images to the WebItemProviderPasteboard, we would create a new UIImage and |
| use standard UIImage UIItemProviderWriting utilities to register the image to the pasteboard. This is lossy for |
| gifs, since UIImage doesn't inherently know how to represent gifs. Instead, register the raw image data directly |
| to the UTI type corresponding to the MIME type of the image, and use UIImage's item provider writing capability |
| as a fallback when the raw resourceData is unavailable. |
| |
| Augments existing unit tests, and also adds a new unit test: |
| DataInteractionTests.ImageDoesNotUseElementSizeAsEstimatedSize |
| |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::writeObjectRepresentations): |
| |
| 2017-05-23 Eric Carlson <eric.carlson@apple.com> |
| |
| CoreAudioCaptureSource is ducking system sound |
| https://bugs.webkit.org/show_bug.cgi?id=172512 |
| |
| Reviewed by Youenn Fablet. |
| |
| Manual testing. |
| |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioSharedUnit::setupAudioUnit): |
| (WebCore::CoreAudioSharedUnit::defaultOutputDevice): |
| |
| 2017-05-23 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| [iOS] Speculative fix for a PLT regression |
| <rdar://problem/32361890> |
| |
| Unreviewed. |
| |
| Make sure CGImageSourceGetTypeWithData() is called with a buffer which is |
| 32 bytes or more. |
| |
| * platform/graphics/cg/ImageDecoderCG.cpp: |
| (WebCore::ImageDecoder::ImageDecoder): |
| |
| 2017-05-22 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebCrypto] Support RSA-PSS |
| https://bugs.webkit.org/show_bug.cgi?id=170869 |
| <rdar://problem/31640672> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch implements RSA-PSS according to the spec: https://www.w3.org/TR/WebCryptoAPI/#rsa-pss. |
| Supported operations include sign, verify, generateKey, importKey and exportKey. |
| |
| Tests: crypto/subtle/rsa-pss-generate-export-key-jwk-sha1.html |
| crypto/subtle/rsa-pss-generate-export-key-jwk-sha224.html |
| crypto/subtle/rsa-pss-generate-export-key-jwk-sha256.html |
| crypto/subtle/rsa-pss-generate-export-key-jwk-sha384.html |
| crypto/subtle/rsa-pss-generate-export-key-jwk-sha512.html |
| crypto/subtle/rsa-pss-generate-export-key-pkcs8.html |
| crypto/subtle/rsa-pss-generate-export-key-spki.html |
| crypto/subtle/rsa-pss-generate-key.html |
| crypto/subtle/rsa-pss-import-jwk-private-key.html |
| crypto/subtle/rsa-pss-import-jwk-public-key-empty-usages.html |
| crypto/subtle/rsa-pss-import-jwk-public-key-sha1.html |
| crypto/subtle/rsa-pss-import-jwk-public-key-sha224.html |
| crypto/subtle/rsa-pss-import-jwk-public-key-sha256.html |
| crypto/subtle/rsa-pss-import-jwk-public-key-sha384.html |
| crypto/subtle/rsa-pss-import-jwk-public-key-sha512.html |
| crypto/subtle/rsa-pss-import-key-sign-large-salt.html |
| crypto/subtle/rsa-pss-import-key-sign.html |
| crypto/subtle/rsa-pss-import-key-verify.html |
| crypto/subtle/rsa-pss-import-pkcs8-key.html |
| crypto/subtle/rsa-pss-import-spki-key-empty-usages.html |
| crypto/subtle/rsa-pss-import-spki-key.html |
| crypto/workers/subtle/rsa-pss-import-key-sign.html |
| crypto/workers/subtle/rsa-pss-import-key-verify.html |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * PlatformGTK.cmake: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSSubtleCryptoCustom.cpp: |
| (WebCore::normalizeCryptoAlgorithmParameters): |
| * crypto/CryptoAlgorithmParameters.h: |
| * crypto/algorithms/CryptoAlgorithmRSA_PSS.cpp: Added. |
| (WebCore::CryptoAlgorithmRSA_PSS::create): |
| (WebCore::CryptoAlgorithmRSA_PSS::identifier): |
| (WebCore::CryptoAlgorithmRSA_PSS::sign): |
| (WebCore::CryptoAlgorithmRSA_PSS::verify): |
| (WebCore::CryptoAlgorithmRSA_PSS::generateKey): |
| (WebCore::CryptoAlgorithmRSA_PSS::importKey): |
| (WebCore::CryptoAlgorithmRSA_PSS::exportKey): |
| * crypto/algorithms/CryptoAlgorithmRSA_PSS.h: Added. |
| * crypto/mac/CryptoAlgorithmECDSAMac.cpp: |
| (WebCore::cryptoDigestAlgorithm): Deleted. |
| Extract function cryptoDigestAlgorithm to a separate file. |
| * crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp: |
| (WebCore::cryptoDigestAlgorithm): Deleted. |
| Extract function cryptoDigestAlgorithm to a separate file. |
| * crypto/mac/CryptoAlgorithmRSA_PSSMac.cpp: Added. |
| (WebCore::signRSA_PSS): |
| (WebCore::verifyRSA_PSS): |
| (WebCore::CryptoAlgorithmRSA_PSS::platformSign): |
| (WebCore::CryptoAlgorithmRSA_PSS::platformVerify): |
| * crypto/mac/CryptoAlgorithmRegistryMac.cpp: |
| (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): |
| * crypto/mac/CryptoDigestAlgorithm.h: Added. |
| (WebCore::cryptoDigestAlgorithm): |
| Have cryptoDigestAlgorithm in a separate file. |
| * crypto/parameters/CryptoAlgorithmRsaPssParams.h: Added. |
| * crypto/parameters/RsaPssParams.idl: Added. |
| |
| 2017-05-23 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Allow transition from autoplay to play when a capture stream begins. |
| https://bugs.webkit.org/show_bug.cgi?id=172391 |
| <rdar://problem/32304934> |
| |
| Reviewed by Youenn Fablet. |
| |
| Manual testing. Regression testing to be added as a follow-up. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::updateIsPlayingMedia): Call mediaStreamCaptureStateChanged when capture |
| state changes. |
| (WebCore::Document::registerForMediaStreamStateChangeCallbacks): |
| (WebCore::Document::unregisterForMediaStreamStateChangeCallbacks): |
| (WebCore::Document::mediaStreamCaptureStateChanged): Call all registered elements. |
| * dom/Document.h: |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::registerWithDocument): Register for capture state changes. |
| (WebCore::HTMLMediaElement::unregisterWithDocument): Unregister for capture state changes. |
| (WebCore::HTMLMediaElement::mediaStreamCaptureStateChanged): Attempt autoplay as necessary. |
| * html/HTMLMediaElement.h: |
| |
| 2017-05-15 Matt Rajca <mrajca@apple.com> |
| |
| Replace autoplay events that fire at navigation with a DidAutoplayMediaPastThreshold event. |
| https://bugs.webkit.org/show_bug.cgi?id=172138 |
| |
| Reviewed by Alex Christensen. |
| |
| The current autoplay signals that are fired at navigation may not get delivered to the UIProcess if the WebPage is close()'ed around |
| this time. This patch simplifies this and just notifies clients if a media element has played past a threshold. |
| |
| Updated API tests. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::playbackProgressTimerFired): |
| (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): |
| (WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer): |
| (WebCore::HTMLMediaElement::userDidInterfereWithAutoplay): |
| * page/AutoplayEvent.h: |
| |
| 2017-05-23 Dean Jackson <dino@apple.com> |
| |
| checkGPUStatus needs to exercise instancing calls |
| https://bugs.webkit.org/show_bug.cgi?id=172520 |
| <rdar://problem/23118395> |
| |
| Reviewed by Brent Fulgham. |
| |
| The checkGPUStatus method (formerly checkGPUStatusIfNecessary) was |
| not being called after the drawArrays/Elements instancing calls. |
| |
| I also added a test case to exercise the recovery logic. |
| |
| Test: fast/canvas/webgl/lose-context-on-status-failure.html |
| |
| * html/canvas/WebGLRenderingContextBase.cpp: |
| (WebCore::WebGLRenderingContextBase::setFailNextGPUStatusCheck): Force |
| the next checkGPUStatus on the GC3D to fail. |
| * html/canvas/WebGLRenderingContextBase.h: |
| * platform/graphics/GraphicsContext3D.h: Rename a function, and make |
| the number of calls we wait before checking per instance, rather than |
| static (which might have meant we're only ever checking after one canvas on |
| a page with multiple contexts). |
| (WebCore::GraphicsContext3D::setFailNextGPUStatusCheck): |
| * platform/graphics/cairo/GraphicsContext3DCairo.cpp: |
| (WebCore::GraphicsContext3D::checkGPUStatus): Renamed. |
| (WebCore::GraphicsContext3D::checkGPUStatusIfNecessary): Deleted. |
| * platform/graphics/mac/GraphicsContext3DMac.mm: |
| (WebCore::GraphicsContext3D::checkGPUStatus): Improve the logic. |
| (WebCore::GraphicsContext3D::checkGPUStatusIfNecessary): Deleted. |
| * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: |
| (WebCore::GraphicsContext3D::clear): |
| (WebCore::GraphicsContext3D::drawArrays): |
| (WebCore::GraphicsContext3D::drawElements): |
| (WebCore::GraphicsContext3D::drawArraysInstanced): Add a call to checkGPUStatus. |
| (WebCore::GraphicsContext3D::drawElementsInstanced): Ditto. |
| * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp: |
| (WebCore::GraphicsContext3D::checkGPUStatus): |
| (WebCore::GraphicsContext3D::checkGPUStatusIfNecessary): Deleted. |
| * testing/Internals.cpp: Implement the internal call to cause the next |
| check to fail. |
| (WebCore::Internals::failNextGPUStatusCheck): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-05-23 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Further cleanup enumeration handling |
| https://bugs.webkit.org/show_bug.cgi?id=172516 |
| |
| Reviewed by Chris Dumez. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GeneratePut): |
| (GeneratePutByIndex): |
| (GenerateDictionaryImplementationContent): |
| (GenerateParametersCheck): |
| (GenerateCallbackImplementationContent): |
| Update now that JSValueToNative doesn't have a second return value. |
| |
| (GenerateImplementation): |
| Add enumeration special casing to attribute setting code, where it is special |
| cased in the standard |
| |
| (PassArgumentExpression): |
| Stop special casing enumerations. |
| |
| (IsValidContextForJSValueToNative): |
| Assert that enums are never passed to JSValueToNative in an attribute context. |
| |
| (JSValueToNative): |
| Remove enumeration special case and second return value (which was always 1). |
| |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| (WebCore::setJSTestObjEnumAttrFunction): |
| (WebCore::setJSTestObjImplementationEnumAttrFunction): |
| (WebCore::setJSTestObjAttributeWithReservedEnumTypeFunction): |
| Update results. |
| |
| 2017-05-22 Simon Fraser <simon.fraser@apple.com> |
| |
| Snapshotting via -renderInContext: should do synchronous image decodes |
| https://bugs.webkit.org/show_bug.cgi?id=172485 |
| rdar://problem/32276146 |
| |
| Reviewed by Tim Horton. |
| |
| When UIWebView clients snapshot the view via -renderInContext: on the UIView's layer, |
| WebKit should do synchronous image decodes so that the images show in the snapshot. |
| |
| Fix by plumbing through a "snapshotting" paint behavior flag from two source locations: |
| WebSimpleLayer, used by compositing layers, and LegacyTileLayer, used for the WK1 tile cache. |
| On WebSimpleLayer the flag propagates through PlatformCALayer to GraphicsLayer, and on LegacyTileLayer |
| it sets some state on the WAKWindow, which is detected by -[WebFrame _paintBehaviorForDestinationContext:]. |
| In both cases, the flag becomes PaintBehaviorSnapshotting which is passed down through painting |
| in PaintInfo.paintBehavior. |
| |
| Fix code that was checking paintBehavior on the FrameView to just looking at PaintInfo.paintBehavior, |
| which required passing PaintInfo along in RenderImage::paintIntoRect(). |
| |
| We can't just use the PaintBehaviorFlattenCompositingLayers flag, because that triggers |
| a flattening paint of compositing layers, and we don't want that behavior for -renderInContext:, |
| since CoreAnimation calls -renderInContext: on each of our layers and we need to avoid double-painting. |
| So PaintBehaviorSnapshotting is now added to the call sites that also set PaintBehaviorFlattenCompositingLayers |
| in most cases. |
| |
| Tested by SnapshotViaRenderInContext API test. |
| |
| * html/shadow/MediaControlElements.cpp: |
| (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage): |
| * page/FrameView.cpp: |
| (WebCore::FrameView::willPaintContents): |
| (WebCore::FrameView::paintContentsForSnapshot): |
| * page/PageOverlayController.cpp: |
| (WebCore::PageOverlayController::paintContents): |
| * page/PageOverlayController.h: |
| * page/mac/ServicesOverlayController.h: |
| * page/mac/ServicesOverlayController.mm: |
| (WebCore::ServicesOverlayController::Highlight::paintContents): |
| * platform/graphics/GraphicsLayer.cpp: |
| (WebCore::GraphicsLayer::paintGraphicsLayerContents): |
| * platform/graphics/GraphicsLayer.h: |
| * platform/graphics/GraphicsLayerClient.h: |
| (WebCore::GraphicsLayerClient::paintContents): |
| * platform/graphics/ca/GraphicsLayerCA.cpp: |
| (WebCore::GraphicsLayerCA::recursiveCommitChanges): |
| (WebCore::GraphicsLayerCA::platformCALayerPaintContents): |
| * platform/graphics/ca/GraphicsLayerCA.h: |
| * platform/graphics/ca/PlatformCALayer.h: |
| * platform/graphics/ca/PlatformCALayerClient.h: |
| * platform/graphics/ca/TileCoverageMap.cpp: |
| (WebCore::TileCoverageMap::platformCALayerPaintContents): |
| * platform/graphics/ca/TileCoverageMap.h: |
| * platform/graphics/ca/TileGrid.cpp: |
| (WebCore::TileGrid::platformCALayerPaintContents): |
| * platform/graphics/ca/TileGrid.h: |
| * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: |
| (PlatformCALayer::drawLayerContents): |
| * platform/graphics/mac/WebLayer.mm: |
| (-[WebLayer drawInContext:]): |
| (-[WebSimpleLayer renderInContext:]): |
| (-[WebSimpleLayer drawInContext:]): |
| * platform/ios/LegacyTileCache.h: Use initializers. |
| * platform/ios/LegacyTileCache.mm: |
| (WebCore::LegacyTileCache::LegacyTileCache): |
| (WebCore::LegacyTileCache::drawWindowContent): |
| (WebCore::LegacyTileCache::drawLayer): |
| * platform/ios/LegacyTileLayer.h: |
| * platform/ios/LegacyTileLayer.mm: |
| (-[LegacyTileHostLayer renderInContext:]): |
| (-[LegacyTileLayer renderInContext:]): |
| (-[LegacyTileLayer drawInContext:]): |
| (+[LegacyTileLayer layerBeingPainted]): Deleted. There were no callers. |
| * platform/ios/wak/WAKView.mm: |
| (-[WAKView _drawRect:context:lockFocus:]): bool -> BOOL |
| * platform/ios/wak/WAKWindow.h: |
| * platform/ios/wak/WAKWindow.mm: |
| (-[WAKWindow setIsInSnapshottingPaint:]): |
| (-[WAKWindow isInSnapshottingPaint]): |
| * rendering/PaintPhase.h: |
| * rendering/RenderBox.cpp: |
| (WebCore::RenderBox::paintMaskImages): |
| * rendering/RenderBoxModelObject.cpp: |
| (WebCore::RenderBoxModelObject::paintFillLayerExtended): |
| * rendering/RenderImage.cpp: |
| (WebCore::RenderImage::paintReplaced): |
| (WebCore::RenderImage::paintIntoRect): |
| * rendering/RenderImage.h: |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::paintLayerContents): |
| (WebCore::RenderLayer::paintForegroundForFragments): |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::RenderLayerBacking::paintContents): |
| * rendering/RenderLayerBacking.h: |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::paintContents): |
| * rendering/RenderLayerCompositor.h: |
| * rendering/RenderVideo.cpp: |
| (WebCore::RenderVideo::paintReplaced): |
| |
| 2017-05-23 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Remove dead ENABLE(FONT_LOAD_EVENTS) code |
| https://bugs.webkit.org/show_bug.cgi?id=172517 |
| |
| Rubber-stamped by Simon Fraser. |
| |
| No new tests because there is no behavior change. |
| |
| * CMakeLists.txt: |
| * Configurations/FeatureDefines.xcconfig: |
| * DerivedSources.cpp: |
| * DerivedSources.make: |
| * WebCore.xcodeproj/project.pbxproj: |
| * css/CSSAllInOne.cpp: |
| * css/CSSFontFaceLoadEvent.cpp: Removed. |
| * css/CSSFontFaceLoadEvent.h: Removed. |
| * css/CSSFontFaceLoadEvent.idl: Removed. |
| * dom/EventNames.in: |
| * page/FrameView.cpp: |
| (WebCore::FrameView::performPostLayoutTasks): |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::setFontLoadEventsEnabled): Deleted. |
| (WebCore::RuntimeEnabledFeatures::fontLoadEventsEnabled): Deleted. |
| |
| 2017-05-23 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, roll out r215229 |
| |
| It caused CachedScripts in MemoryCache to be reused with different encodings |
| even though CachedScript potentially has already decoded data or cached hash |
| with a previous encoding. |
| |
| * loader/TextResourceDecoder.cpp: |
| (WebCore::TextResourceDecoder::setEncoding): |
| * loader/TextResourceDecoder.h: |
| (WebCore::TextResourceDecoder::sawError): |
| (WebCore::TextResourceDecoder::encodingSet): Deleted. |
| * loader/cache/CachedCSSStyleSheet.cpp: |
| (WebCore::CachedCSSStyleSheet::setEncoding): |
| * loader/cache/CachedResource.cpp: |
| (WebCore::CachedResource::CachedResource): |
| * loader/cache/CachedResource.h: |
| (WebCore::CachedResource::hasUnknownEncoding): |
| (WebCore::CachedResource::setHasUnknownEncoding): |
| * loader/cache/CachedResourceLoader.cpp: |
| (WebCore::CachedResourceLoader::determineRevalidationPolicy): |
| |
| 2017-05-23 Zalan Bujtas <zalan@apple.com> |
| |
| ASSERTION FAILED: !renderer().view().needsLayout() while running media/video-main-content-autoplay.html |
| https://bugs.webkit.org/show_bug.cgi?id=172476 |
| |
| Reviewed by Simon Fraser. |
| |
| This patch decouples the layout call logic from the post layout task timer setup. |
| Just because we are switching over to asynchronous performPostLayoutTasks() it should not stop us from |
| running layout on a dirty tree (we could encounter a forced layout (which sets m_postLayoutTasksTimer active) |
| and a subsequent tree mutation during performPostLayoutTasks()). |
| |
| There are a few different ways to end up here: |
| root layout is done -> call performPostLayoutTasks() synchronously -> |
| 1. tree stays clean -> no action needed. |
| 2. tree gets dirty -> setup performPostLayoutTasks timer -> run nested layout -> since m_postLayoutTasksTimer is active() |
| we don't try to run performPostLayoutTasks() while in the nested layout and we return with a clean tree. |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::layout): |
| |
| 2017-05-23 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Multiple links should be inserted separately when performing data interaction |
| https://bugs.webkit.org/show_bug.cgi?id=172489 |
| <rdar://problem/31510832> |
| |
| Reviewed by Dan Bernstein. |
| |
| In WebContentReader, URLs are currently always inserted inline. When inserting multiple items, this causes |
| adjacent links to be inserted on a single line with no break, which is undesirable. To address this, when |
| appending links from additional items to the existing document fragment in WebContentReader, insert a new space |
| prior to inserting the anchor element. |
| |
| New unit test: DataInteractionTests.ExternalSourceMultipleURLsToContentEditable |
| |
| * editing/ios/EditorIOS.mm: |
| (WebCore::Editor::WebContentReader::addFragment): |
| |
| Tweak to add all children of the new fragment, rather than just the first child. |
| |
| (WebCore::Editor::WebContentReader::readURL): |
| |
| 2017-05-23 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Remove some unnecessary specialization for enum types |
| https://bugs.webkit.org/show_bug.cgi?id=172482 |
| |
| Reviewed by Chris Dumez. |
| |
| - Removes convertEnumeration template function and generated specialization. |
| convert<IDLEnumeration<T>> now does the entire check, and can have specialized |
| exceptions. |
| - Treats enums more like all other types, removing enum specific code in the |
| generator. |
| |
| Also fixes some order of exception bugs as the convertEnumeration<T> implementations |
| were not correctly catching exceptions thrown in parseEnumeration<T>. |
| |
| * bindings/js/JSDOMConvertEnumeration.h: |
| (WebCore::Converter<IDLEnumeration<T>>::convert): |
| Remove convertEnumeration and move implementation to convert. Add ExceptionThrower |
| parameter to retain argument conversion exception specialization and allow future |
| specialization for other contexts. |
| |
| * bindings/js/JSSubtleCryptoCustom.cpp: |
| (WebCore::jsSubtleCryptoFunctionImportKeyPromise): |
| (WebCore::jsSubtleCryptoFunctionExportKeyPromise): |
| (WebCore::jsSubtleCryptoFunctionWrapKeyPromise): |
| (WebCore::jsSubtleCryptoFunctionUnwrapKeyPromise): |
| Switch from convertEnumeration<T> to convert<IDLEnumeration<T>>. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GetArgumentExceptionFunction): |
| Add (really move from GenerateParametersCheck) enum specific argument conversion exception. |
| |
| (PassArgumentExpression): |
| Allow the enum specific code for attributes to remain by explicitly checking the context. |
| Attribute setters use parseEnumeration<T> explicitly, as WebIDL mandates slightly different |
| behavior, specially that they don't throw. |
| |
| (GenerateEnumerationImplementationContent): |
| (GenerateEnumerationHeaderContent): |
| Remove convertEnumeration<T>. |
| |
| (GenerateParametersCheck): |
| Remove entire branch devoted to enums. The main parameter check is now mature enough |
| to handle them. |
| |
| (JSValueToNative): |
| Like in PassArgumentExpression, we need to retain the specialize behavior for attributes. |
| Before, JSValueToNative was only called for enums with a context of IDLAttribute or IDLDictionaryMember, |
| but now that we use if IDLArguments as well, it makes more sense to make this check in terms |
| of the odd man out, IDLAttribute. |
| |
| * bindings/scripts/test/JS/JSTestCallbackInterface.cpp: |
| * bindings/scripts/test/JS/JSTestCallbackInterface.h: |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| * bindings/scripts/test/JS/JSTestObj.h: |
| * bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp: |
| * bindings/scripts/test/JS/JSTestStandaloneDictionary.h: |
| * bindings/scripts/test/JS/JSTestStandaloneEnumeration.cpp: |
| * bindings/scripts/test/JS/JSTestStandaloneEnumeration.h: |
| Update test results. |
| |
| 2017-05-23 Romain Bellessort <romain.bellessort@crf.canon.fr> |
| |
| [Readable Streams API] Align respondInClosedState with spec |
| https://bugs.webkit.org/show_bug.cgi?id=172288 |
| |
| Reviewed by Chris Dumez. |
| |
| Two changes are implemented in this patch: |
| - Change #1: An issue was reported to GH [1] while working on respondInClosedState |
| implementation. This issue has now been fixed, and this patch aligns implementation |
| with spec [2]. |
| - Change #2: In addition, this patch also fixes a bug that went unnoticed as code |
| is not yet reachable (usage of controller.@reader is not valid and is therefore |
| replaced by controller.@controlledReadableStream.@reader). |
| |
| [1] https://github.com/whatwg/streams/issues/686 |
| [2] https://streams.spec.whatwg.org/#readable-byte-stream-controller-respond-in-closed-state |
| |
| No added test as: |
| - Change #1 does not change behavior; |
| - Change #2 is not testable as the code is not yet reachable. |
| |
| * Modules/streams/ReadableByteStreamInternals.js: |
| (readableByteStreamControllerRespondInClosedState): Aligned with spec. |
| |
| 2017-05-22 Emilio Cobos Álvarez <ecobos@igalia.com> |
| |
| Add a RuntimeEnabledFeature for display: contents, defaulted to false. |
| https://bugs.webkit.org/show_bug.cgi?id=171984 |
| |
| Reviewed by Antti Koivisto. |
| |
| The "defaulted to false" is not only because there are spec issues, |
| but because I ran the WPT suite, and there was a fair amount of |
| crashes and messed render trees. |
| |
| Tests: imported/w3c/web-platform-tests/innerText/getter.html |
| |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::adjustRenderStyle): |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::setDisplayContentsEnabled): |
| (WebCore::RuntimeEnabledFeatures::displayContentsEnabled): |
| |
| 2017-05-22 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Update font-style's implementation in the font selection algorithm |
| https://bugs.webkit.org/show_bug.cgi?id=169453 |
| |
| Reviewed by Simon Fraser. |
| |
| Previously, we were treating "font-style: oblique" exactly the same as "font-style: italic". |
| These values were parsed to the same internal data type. However, variation fonts may have two |
| distinct axes: 'slnt' and 'ital'. Therefore, we need to keep a bool of state which represents |
| which of these two axes we should be setting when we apply font variations. We can do this by |
| making the "font-style" parser a "custom" parser. The implementation of these custom functions |
| will set both the italic value on the FontDescription as well as this extra bool. |
| |
| We don't, however, want to treat these values as distinct for the purposese of font selection. |
| The fact that we treat oblique fonts the same as italic fonts is a feature, not a bug. Therefore, |
| the font selection algorithm is not made aware of this distinction. This is why we don't want to |
| package up the bool and FontSelectionValue into a class: font selection only cares about the |
| FontSelectionValue, so conceptually they shouldn't be joined. (The FontSelectionValue already |
| exists within a collection of all the things font selection needs to know about.) |
| |
| Now that there is this extra bit of state on the FontDescription, we can do a little better when |
| computing the result of getComputedStyle(). Previously, we were always returning "italic" even |
| when "oblique" was specified. Now, we can return the correct one. However, this extra bit of |
| state is not kept on the CSSFontFace (because it doesn't need to be), which means we can only |
| improve the computed style of an element, rather than the cssText of an @font-face rule. |
| |
| Test: fast/text/font-style-parse.html |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::fontStyleFromStyleValue): |
| (WebCore::fontStyleFromStyle): |
| (WebCore::fontShorthandValueForSelectionProperties): |
| * css/CSSComputedStyleDeclaration.h: |
| * css/CSSFontFaceSet.h: |
| * css/CSSProperties.json: |
| * css/FontFace.cpp: |
| (WebCore::FontFace::style): |
| * css/FontSelectionValueInlines.h: |
| (WebCore::fontStyleKeyword): |
| * css/StyleBuilderConverter.h: |
| (WebCore::StyleBuilderConverter::convertFontStyle): Deleted. |
| * css/StyleBuilderCustom.h: |
| (WebCore::StyleBuilderCustom::applyInitialFontStyle): |
| (WebCore::StyleBuilderCustom::applyInheritFontStyle): |
| (WebCore::StyleBuilderCustom::applyValueFontStyle): |
| * platform/graphics/FontCache.h: |
| (WebCore::FontDescriptionKey::makeFlagsKey): |
| * platform/graphics/FontDescription.cpp: |
| (WebCore::FontDescription::FontDescription): |
| * platform/graphics/FontDescription.h: |
| (WebCore::FontDescription::shouldUseItalicVariationAxis): |
| (WebCore::FontDescription::setShouldUseItalicVariationAxis): |
| (WebCore::FontDescription::operator==): |
| (WebCore::FontCascadeDescription::initialShouldUseItalicVariationAxis): |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::preparePlatformFont): |
| (WebCore::fontWithFamily): |
| (WebCore::FontCache::createFontPlatformData): |
| (WebCore::FontCache::systemFallbackForCharacters): |
| * platform/graphics/mac/FontCustomPlatformData.cpp: |
| (WebCore::FontCustomPlatformData::fontPlatformData): |
| |
| 2017-05-22 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Support calc() in font-variation-settings and font-feature-settings |
| https://bugs.webkit.org/show_bug.cgi?id=171032 |
| |
| Reviewed by David Hyatt. |
| |
| Tests: css3/font-feature-settings-calc.html |
| fast/text/variations/calc.html |
| |
| We can use the convenience functions in CSSPropertyParserHelpers.cpp. |
| |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::consumeFontFeatureTag): |
| (WebCore::consumeFontVariationTag): |
| |
| 2017-05-22 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, attempt to fix test runner by removing Unicode character from stderr output |
| https://bugs.webkit.org/show_bug.cgi?id=168409 |
| |
| * page/Page.cpp: |
| (WebCore::Page::suspendScriptedAnimations): |
| |
| 2017-05-22 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Avoid moving to the second frame of an animated image before the first frame has finished decoding |
| https://bugs.webkit.org/show_bug.cgi?id=172461 |
| |
| Reviewed by Simon Fraser. |
| |
| Sometimes the frameCount of an animated image gets changed when more data |
| is received. The problem is we may start decoding the image as if it were |
| a static large image and the decoding of this first frame finishes after |
| the image starts animating. |
| |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::draw): |
| (WebCore::BitmapImage::imageFrameAvailableAtIndex): |
| |
| 2017-05-20 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION(r215686): O(n^2) algorithm in CachedRawResource::addDataBuffer |
| https://bugs.webkit.org/show_bug.cgi?id=172406 |
| <rdar://32109532> |
| |
| Reviewed by Brady Eidson. |
| |
| CachedRawResource::calculateIncrementalDataChunk was calling SharedBuffer::data each time the data |
| was appended to the SharedBuffer. This causes the data to be copied from two segments to one segment, |
| which causes the O(n^2) behavior I was worried about in r215686. These append/data/append/data calls |
| used to cause O(1) copies per byte which was amortized because of the exponential growth of the buffer. |
| After this change, there should be 0 copies per byte here, and instead a O(log(n)) binary search in the |
| call to std::upper_bound to find the next segment of data with a given starting location in the SharedBuffer. |
| We need to store the additional information of the offsets of the beginnings of the segments in a |
| SharedBuffer. This doesn't asymptotically increase our memory usage, but it does allow us to asymptotically |
| decrease the amount of time it takes to find data at a given offset in a SharedBuffer from O(n) to O(log(n)). |
| |
| This allows us to complete http://speedtest.xfinity.com and new functionality in SharedBuffer is covered by API tests. |
| |
| * loader/TextTrackLoader.cpp: |
| (WebCore::TextTrackLoader::processNewCueData): |
| * loader/cache/CachedRawResource.cpp: |
| (WebCore::CachedRawResource::calculateIncrementalDataChunk): |
| (WebCore::CachedRawResource::addDataBuffer): |
| (WebCore::CachedRawResource::finishLoading): |
| * loader/cache/CachedRawResource.h: |
| * platform/SharedBuffer.cpp: |
| (WebCore::SharedBuffer::SharedBuffer): |
| (WebCore::SharedBuffer::combineIntoOneSegment): |
| (WebCore::SharedBuffer::data): |
| (WebCore::SharedBuffer::getSomeData): |
| (WebCore::SharedBuffer::tryCreateArrayBuffer): |
| (WebCore::SharedBuffer::append): |
| (WebCore::SharedBuffer::clear): |
| (WebCore::SharedBuffer::copy): |
| (WebCore::SharedBuffer::internallyConsistent): |
| (WebCore::SharedBuffer::hintMemoryNotNeededSoon): |
| (WebCore::SharedBufferDataView::SharedBufferDataView): |
| (WebCore::SharedBufferDataView::size): |
| (WebCore::SharedBufferDataView::data): |
| * platform/SharedBuffer.h: |
| * platform/cf/SharedBufferCF.cpp: |
| (WebCore::SharedBuffer::createCFData): |
| (WebCore::SharedBuffer::hintMemoryNotNeededSoon): |
| (WebCore::SharedBuffer::append): |
| * platform/cocoa/SharedBufferCocoa.mm: |
| (WebCore::SharedBuffer::createNSData): |
| (WebCore::SharedBuffer::createCFData): |
| (WebCore::SharedBuffer::createNSDataArray): |
| |
| 2017-05-22 Chris Dumez <cdumez@apple.com> |
| |
| Resources in cached parsed stylesheets may bypass content blockers |
| https://bugs.webkit.org/show_bug.cgi?id=172468 |
| <rdar://problem/31972693> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Resources in cached parsed stylesheets could bypass content blockers when they were in the memory cache and |
| they did not need revalidation. |
| |
| To address the issue, I made StyleSheetContents::subresourcesAllowReuse() to check content blockers. |
| If a subresource in the cached stylesheet is blocked, then we return false in subresourcesAllowReuse() and |
| the cached parsed stylesheet will not be used. |
| |
| No new tests, not currently testable. |
| |
| * css/StyleSheetContents.cpp: |
| (WebCore::StyleSheetContents::subresourcesAllowReuse): |
| * css/StyleSheetContents.h: |
| * html/HTMLLinkElement.cpp: |
| (WebCore::HTMLLinkElement::setCSSStyleSheet): |
| * loader/cache/CachedCSSStyleSheet.cpp: |
| (WebCore::CachedCSSStyleSheet::restoreParsedStyleSheet): |
| * loader/cache/CachedCSSStyleSheet.h: |
| |
| 2017-05-22 Chris Dumez <cdumez@apple.com> |
| |
| ASSERTION FAILED: tokens.find(item) == notFound in WebCore::DOMTokenList::replace |
| https://bugs.webkit.org/show_bug.cgi?id=172473 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Fix bad assertion in DOMTokenList::replace(). If item == replacement, then the |
| assertion was wrong. |
| |
| No new tests, unskipped existing test. |
| |
| * html/DOMTokenList.cpp: |
| (WebCore::DOMTokenList::replace): |
| |
| 2017-05-22 Youenn Fablet <youenn@apple.com> |
| |
| Remove AVAudioCaptureSource |
| https://bugs.webkit.org/show_bug.cgi?id=172360 |
| |
| Reviewed by Sam Weinig. |
| |
| No change of behavior, this class is no longer used by default as it does not support echo cancellation. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * page/Settings.cpp: |
| (WebCore::Settings::setMediaCaptureRequiresSecureConnection): |
| (WebCore::Settings::useAVFoundationAudioCapture): Deleted. |
| (WebCore::Settings::setUseAVFoundationAudioCapture): Deleted. |
| * page/Settings.h: |
| * platform/mediastream/mac/AVAudioCaptureSource.h: Removed. |
| * platform/mediastream/mac/AVAudioCaptureSource.mm: Removed. |
| * platform/mediastream/mac/AVCaptureDeviceManager.h: |
| * platform/mediastream/mac/AVCaptureDeviceManager.mm: |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| (WebCore::RealtimeMediaSourceCenterMac::defaultAudioFactory): |
| (WebCore::RealtimeMediaSourceCenterMac::defaultAudioCaptureDeviceManager): |
| (WebCore::RealtimeMediaSourceCenterMac::setUseAVFoundationAudioCapture): Deleted. |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.h: |
| |
| 2017-05-22 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: webkit reload policy should match default behavior |
| https://bugs.webkit.org/show_bug.cgi?id=171385 |
| <rdar://problem/31871515> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Add an option to PageAgent.reload that tells the backend to use the old |
| behavior that revalidates unexpired cached subresources. This used by tests. |
| |
| Covered by existing network/memory/disk cache tests. |
| |
| * inspector/InspectorPageAgent.h: |
| * inspector/InspectorPageAgent.cpp: |
| (WebCore::InspectorPageAgent::reload): |
| |
| 2017-05-22 Yoav Weiss <yoav@yoav.ws> |
| |
| [preload] Add media and type attribute support. |
| https://bugs.webkit.org/show_bug.cgi?id=171720 |
| |
| Reviewed by Youenn Fablet. |
| |
| Tests: http/wpt/preload/media-attribute.html |
| http/wpt/preload/type-attribute.html |
| http/tests/preload/viewport/meta-viewport-link-headers.php |
| |
| * css/MediaQueryEvaluator.cpp: Move the mediaAttributeMatches code from HTMLResourcePreloader to a central location. |
| (WebCore::MediaQueryEvaluator::mediaAttributeMatches): |
| * css/MediaQueryEvaluator.h: |
| * html/HTMLImageElement.cpp: |
| (WebCore::HTMLImageElement::bestFitSourceFromPictureElement): Use isSupportedImageOrSVGMIMEType() instead of checking SVG MIME type specifically. |
| * html/HTMLLinkElement.cpp: |
| (WebCore::HTMLLinkElement::process): Call loadLink() with the media and type attributes. |
| * html/parser/HTMLDocumentParser.cpp: |
| (WebCore::HTMLDocumentParser::pumpTokenizer): Trigger Link header based preload for links that have the media attribute. |
| * html/parser/HTMLPreloadScanner.cpp: |
| (WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest): Avoid preloading link resources with non-matching type. |
| (WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): Collect the type attribute for link resources. |
| * html/parser/HTMLResourcePreloader.cpp: |
| (WebCore::HTMLResourcePreloader::preload): Use MediaQueryEvaluator::mediaAttributeMatches instead of the local one. |
| (WebCore::mediaAttributeMatches): Deleted. |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::receivedFirstData): Indicate that only link preloads with no media attribute should be loaded here. |
| * loader/LinkLoader.cpp: |
| (WebCore::LinkLoader::loadLinksFromHeader): Load only links with or without media attributes, according to mode. Also send media and |
| type attributes to preloadIfNeeded(). |
| (WebCore::LinkLoader::isSupportedType): Check if the MIME type is supported for the CachedResource::Type. |
| (WebCore::LinkLoader::preloadIfNeeded): Get the media and type attributes and only trigger a preload if media matches and type is supported. |
| (WebCore::LinkLoader::loadLink): Pass along the media and type attributes. |
| * loader/LinkLoader.h: |
| * platform/MIMETypeRegistry.cpp: |
| (WebCore::MIMETypeRegistry::isSupportedImageOrSVGMIMEType): Check if MIME type is supported for an image, or is an SVG mime type. |
| (WebCore::MIMETypeRegistry::isSupportedStyleSheetMIMEType): Check if MIME type is supported for a stylesheet. |
| (WebCore::MIMETypeRegistry::isSupportedFontMIMEType): Check if MIME type is supported for a font. |
| (WebCore::MIMETypeRegistry::isSupportedTextTrackMIMEType): Check if MIME type is supported for a text track. |
| * platform/MIMETypeRegistry.h: |
| |
| 2017-05-22 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| [CG] Use the SPI CGImageSourceGetTypeWithData() to get the typeIdentifierHint of an image |
| https://bugs.webkit.org/show_bug.cgi?id=172405 |
| |
| Reviewed by Simon Fraser. |
| |
| Use CGImageSourceGetTypeWithData() to get the typeIdentifierHint which will |
| be passed to CGImageSourceCreateIncremental(). If data is insufficient to |
| guess typeIdentifierHint, that means the image size is still not available. |
| In this case, CachedImage::addIncrementalDataBuffer() will call error() |
| which will call clear() which will call Image::destroyDecodedData() |
| which will delete the current ImageDecoder and creates a new one. So we |
| don't need to check the return value insufficientData. |
| |
| * platform/graphics/DecodingOptions.h: Fix the header file dependencies. |
| * platform/graphics/ImageSource.cpp: |
| (WebCore::ImageSource::ensureDecoderAvailable): No need for the URL parameter. |
| * platform/graphics/ImageTypes.h: Move a typedef from ImageDecoderCG.h to ImageTypes.h. |
| * platform/graphics/cg/ImageDecoderCG.cpp: |
| (WebCore::ImageDecoder::ImageDecoder): Pass the SharedBuffer data to the constructor. |
| * platform/graphics/cg/ImageDecoderCG.h: |
| (WebCore::ImageDecoder::create): No need for the URL argument. |
| * platform/graphics/win/ImageDecoderDirect2D.h: |
| (WebCore::ImageDecoder::create): Remove the URL argument from the function signature. |
| * platform/image-decoders/ImageDecoder.cpp: |
| (WebCore::ImageDecoder::create): Remove the URL argument from the function signature. |
| * platform/image-decoders/ImageDecoder.h: |
| * platform/spi/cg/ImageIOSPI.h: Add the prototype of CGImageSourceGetTypeWithData(). |
| |
| 2017-05-22 Zalan Bujtas <zalan@apple.com> |
| |
| SameSizeAsInlineBox mismatch on ARMV7. |
| https://bugs.webkit.org/show_bug.cgi?id=172459 |
| |
| Reviewed by Simon Fraser. |
| |
| Due to the ARMV7/i386 padding behaviour mismatch, forcing m_bitfields to be 32bits does not always |
| produce the desired padding. |
| Move the bool to the end of the member list and let m_deletionSentinel (4bytes) force |
| padding. |
| |
| * rendering/InlineBox.cpp: |
| * rendering/InlineBox.h: |
| |
| 2017-05-22 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Enable the woff2-variations @font-face format identifier |
| https://bugs.webkit.org/show_bug.cgi?id=172425 |
| |
| Reviewed by Andreas Kling. |
| |
| We support woff2, and woff-variations, but not woff2-variations. |
| https://github.com/w3c/csswg-drafts/commit/5c914a8a0382734bd420090a89bc19b32e6c302d |
| |
| Test: fast/text/variations/font-face-format-woff2.html |
| |
| * platform/graphics/mac/FontCustomPlatformData.cpp: |
| (WebCore::FontCustomPlatformData::supportsFormat): |
| |
| 2017-05-22 Antoine Quint <graouts@apple.com> |
| |
| [mac-wk1] LayoutTest media/modern-media-controls/airplay-button/airplay-button.html is a flaky timeout |
| https://bugs.webkit.org/show_bug.cgi?id=168409 |
| |
| Reviewed by Simon Fraser. |
| |
| Remove all the custom logging code we wrote to diagnose why this specific test failed and instead |
| log the backtrace when the ScriptedAnimationController gets suspended, which should allow us to |
| identify which test actually leads to suspension and affects this particular test. |
| |
| * Modules/modern-media-controls/controls/scheduler.js: |
| (const.scheduler.new.prototype.scheduleLayout): |
| (const.scheduler.new.prototype.unscheduleLayout): |
| (const.scheduler.new.prototype._requestFrameIfNeeded): |
| (const.scheduler.new.prototype._frameDidFire): |
| (const.scheduler.new.prototype._layout): |
| * dom/Document.cpp: |
| (WebCore::Document::requestAnimationFrame): |
| * dom/ScriptedAnimationController.cpp: |
| (WebCore::ScriptedAnimationController::suspend): |
| (WebCore::ScriptedAnimationController::resume): |
| (WebCore::ScriptedAnimationController::addThrottlingReason): |
| (WebCore::ScriptedAnimationController::removeThrottlingReason): |
| (WebCore::ScriptedAnimationController::registerCallback): |
| (WebCore::ScriptedAnimationController::cancelCallback): |
| (WebCore::ScriptedAnimationController::serviceScriptedAnimations): |
| (WebCore::ScriptedAnimationController::scheduleAnimation): |
| (WebCore::ScriptedAnimationController::dispatchLoggingEventIfRequired): Deleted. |
| * dom/ScriptedAnimationController.h: |
| * page/Page.cpp: |
| (WebCore::Page::suspendScriptedAnimations): |
| * page/Settings.in: |
| * testing/InternalSettings.cpp: |
| (WebCore::InternalSettings::resetToConsistentState): |
| (WebCore::InternalSettings::shouldDispatchRequestAnimationFrameEvents): Deleted. |
| (WebCore::InternalSettings::setShouldDispatchRequestAnimationFrameEvents): Deleted. |
| * testing/InternalSettings.h: |
| * testing/InternalSettings.idl: |
| |
| 2017-05-22 Emilio Cobos Álvarez <ecobos@igalia.com> |
| |
| Don't unconditionally reset TextIterator::m_handledChildren for display: contents nodes. |
| https://bugs.webkit.org/show_bug.cgi?id=172443 |
| |
| This avoids an infinite hang when enabling display: contents in bug 171984. |
| |
| Reviewed by Antti Koivisto. |
| |
| No new tests. Relanding bug 171984 will add test coverage for this. |
| |
| * editing/TextIterator.cpp: |
| (WebCore::hasDisplayContents): |
| (WebCore::fullyClipsContents): |
| (WebCore::TextIterator::advance): |
| |
| 2017-05-22 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Support callbacks with arbitrary return types |
| https://bugs.webkit.org/show_bug.cgi?id=172407 |
| |
| Reviewed by Chris Dumez. |
| |
| - Adds and adopts CallbackResult<> template class that encapsulates a return value |
| and status from a javascript callback. |
| - Updates NodeIterator/TreeWalker to explicitly propagate exceptions thrown from |
| a JSNodeFilter, rather than relying on the JSNodeFilter to catch them (seemingly |
| accidentally). |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSBindingsAllInOne.cpp: |
| Update file lists. |
| |
| * Modules/geolocation/PositionCallback.h: |
| * Modules/geolocation/PositionErrorCallback.h: |
| * Modules/notifications/NotificationPermissionCallback.h: |
| * Modules/webaudio/AudioBufferCallback.h: |
| * Modules/webdatabase/DatabaseCallback.h: |
| * dom/RequestAnimationFrameCallback.h: |
| * dom/StringCallback.h: |
| * dom/Traversal.cpp: |
| * fileapi/BlobCallback.h: |
| * html/VoidCallback.h: |
| * page/IntersectionObserverCallback.h: |
| * page/PerformanceObserverCallback.h: |
| * css/MediaQueryListListener.h: |
| * Modules/webdatabase/SQLStatement.h: |
| * Modules/webdatabase/SQLStatementCallback.h: |
| * Modules/webdatabase/SQLStatementErrorCallback.h: |
| * Modules/webdatabase/SQLTransaction.cpp: |
| * Modules/webdatabase/SQLTransactionCallback.h: |
| * Modules/webdatabase/SQLTransactionErrorCallback.h: |
| * inspector/InspectorDatabaseAgent.cpp: |
| Adopt CallbackResult. |
| |
| * Modules/webdatabase/SQLStatementErrorCallback.idl: |
| Remove Custom extended attribute annotation. |
| |
| * Modules/webdatabase/SQLStatement.cpp: |
| (WebCore::SQLStatement::performCallback): |
| Adopt CallbackResult, migrating logic from JSSQLStatementErrorCallbackCustom |
| into the implementation, by way of the status enum. |
| |
| * bindings/IDLTypes.h: |
| Add IDLVoid type. |
| |
| * bindings/js/JSNodeFilterCustom.cpp: Removed. |
| * bindings/js/JSSQLStatementErrorCallbackCustom.cpp: Removed. |
| Remove now unneeded custom bindings. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateIndexedGetter): |
| (GenerateNamedGetter): |
| (GenerateImplementation): |
| (GenerateImplementationFunctionCall): |
| Update for new NativeToJSValue arguments. |
| |
| (GenerateCallbackHeaderContent): |
| (GenerateCallbackImplementationContent): |
| Remove requirement of only void return types and update return type to use CallbackFunction. |
| Also adds necessary conversion of return value. |
| |
| (GetBaseIDLType): |
| Add void IDL type mapping. |
| |
| (IsValidContextForJSValueToNative): |
| Add operation as valid context, as that is what the callback return type's context is. |
| |
| (NativeToJSValueUsingReferences): |
| (NativeToJSValueUsingPointers): |
| (NativeToJSValue): |
| Rework NativeToJSValueUsingReferences/NativeToJSValueUsingPointers to take a global object reference |
| accessor rather than a thisObject accessor, as a thisObject is not always available, and what the function |
| actually wants is the global object. |
| |
| * bindings/scripts/IDLAttributes.json: |
| Add new RethrowException attribute to instruct the callback function to re-throw, rather than |
| just report, exceptions thrown in the callback and SkipCallbackInvokeCheck which instructs the |
| callback function to not check canInvokeCallback() before calling. These will both be needed to retain |
| the behavior of NodeFilter, and should be investigated further. |
| |
| * bindings/scripts/test/JS/JSTestCallbackFunction.cpp: |
| * bindings/scripts/test/JS/JSTestCallbackFunction.h: |
| * bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.cpp: Added. |
| * bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.h: Added. |
| * bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.cpp: |
| * bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.h: |
| * bindings/scripts/test/JS/JSTestCallbackInterface.cpp: |
| * bindings/scripts/test/JS/JSTestCallbackInterface.h: |
| * bindings/scripts/test/JS/JSTestVoidCallbackFunction.cpp: Added. |
| * bindings/scripts/test/JS/JSTestVoidCallbackFunction.h: Added. |
| * bindings/scripts/test/TestCallbackFunction.idl: |
| * bindings/scripts/test/TestCallbackInterface.idl: |
| * bindings/scripts/test/TestVoidCallbackFunction.idl: Copied from Source/WebCore/bindings/scripts/test/TestCallbackFunction.idl. |
| Update test results and add some additional test cases for callback functions and callback interface functions that return |
| non-void and use the RethrowExceptions. |
| |
| * dom/CallbackResult.h: Added. |
| (WebCore::CallbackResult<ReturnType>::CallbackResult): |
| (WebCore::CallbackResult<ReturnType>::type): |
| (WebCore::CallbackResult<void>::CallbackResult): |
| (WebCore::CallbackResult<void>::type): |
| New class to encapsulate the return value and status of a callback function. Modeled loosely on |
| ExceptionOr, but is simpler since it does not need to handle complex exception objects. |
| |
| * dom/NativeNodeFilter.cpp: |
| * dom/NativeNodeFilter.h: |
| Adopt CallbackResult, matching other NodeFiltering code by using |
| unsigned short rather than short, remove unused functions, and convert |
| condition member to a Ref, allowing us to get rid of the branch acceptNode. |
| |
| * dom/NodeFilter.h: |
| Adopt CallbackResult. |
| |
| * dom/NodeFilter.idl: |
| Replace Custom extended attribute with SkipCallbackInvokeCheck and RethrowException. |
| |
| * dom/NodeFilterCondition.cpp: |
| * dom/NodeFilterCondition.h: |
| Modernize to take a Node reference and match other filtering code |
| by returning an unsigned short. |
| |
| * dom/Traversal.cpp: |
| * dom/Traversal.h: |
| Adopt CallbackResult and match other node filtering code by using unsigned short |
| rather than short. |
| |
| * dom/NodeIterator.cpp: |
| * dom/NodeIterator.h: |
| * dom/NodeIterator.idl: |
| * dom/TreeWalker.cpp: |
| * dom/TreeWalker.h: |
| * dom/TreeWalker.idl: |
| Change functions that callout to javascript via the NodeFilter to |
| return ExceptionOr<Node>. Check the result of CallbackResult for a |
| thrown exception, and bail, returning Exception { ExistingExceptionError } |
| which acts as an indicator to the bindings that an exception was thrown. |
| (In actuality, the specific exception code does not matter. All that matters |
| is that an ExceptionOr<> is returned, which triggers, via overload, a path |
| in toJS() that calls propagateException(), which in turn, checks to see if |
| an exception is on the stack. But, having an explicit code here helps debugging). |
| |
| 2017-05-22 Simon Fraser <simon.fraser@apple.com> |
| |
| Support transform-box to switch sizing box in SVG |
| https://bugs.webkit.org/show_bug.cgi?id=145783 |
| |
| Reviewed by Dean Jackson. |
| |
| Add support for the CSS "transform-box" property, as described at |
| <https://drafts.csswg.org/css-transforms/#transform-box>. |
| |
| This changes the behavior of percentage values in transform-origin in SVG. |
| When these were added in r110532, percentage values in transform-origin were made |
| relative to the bounding box, but absolute values relative to the view box. |
| <https://github.com/w3c/csswg-drafts/issues/895> has concluded that this behavior |
| is confusing. The new behavior is that, for SVG elements, both absolute and |
| percentage values are relative to the reference box, which is specified by the |
| new transform-box property. |
| |
| The initial value for transform-box is border-box, with the svg.css UA stylesheet |
| supplying a default of view-box for the relevant SVG elements per |
| <https://www.w3.org/TR/SVG2/styling.html#UAStyleSheet>. |
| |
| For non-SVG elements, the used value is always border-box, so there is no change |
| in behavior. |
| |
| Tests: fast/css/transform-box-parsing.html |
| svg/transforms/svg-transform-box.html |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::propertyValue): |
| * css/CSSPrimitiveValueMappings.h: |
| (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): |
| (WebCore::CSSPrimitiveValue::operator TransformBox): |
| * css/CSSProperties.json: |
| * css/CSSValueKeywords.in: |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::CSSPropertyParser::parseSingleValue): |
| * css/svg.css: |
| (*:not(svg),): |
| (*): Deleted. |
| (html|* > svg): Deleted. |
| * page/animation/AnimationBase.cpp: |
| (WebCore::AnimationBase::computeTransformedExtentViaTransformList): |
| * rendering/style/RenderStyle.cpp: |
| (WebCore::RenderStyle::applyTransform): The transformOriginX().isPercent() tests |
| were added to support the weird "% values are relative to bounding box" in SVG. Now |
| it's up to the caller to pass a non-zero origin when that matters, and |
| SVGGraphicsElement::animatedLocalTransform() is the only caller that does so. |
| * rendering/style/RenderStyle.h: |
| (WebCore::RenderStyle::hasTransform): |
| (WebCore::RenderStyle::transformBox): |
| (WebCore::RenderStyle::setTransformBox): |
| (WebCore::RenderStyle::initialTransformBox): |
| * rendering/style/RenderStyleConstants.h: |
| * rendering/style/StyleTransformData.cpp: |
| (WebCore::StyleTransformData::StyleTransformData): |
| (WebCore::StyleTransformData::operator==): |
| * rendering/style/StyleTransformData.h: |
| * svg/SVGGraphicsElement.cpp: |
| (WebCore::SVGGraphicsElement::animatedLocalTransform): Consult the transform-box |
| style to compute the reference box as the bounding box, or the view box. |
| |
| 2017-05-22 Chris Dumez <cdumez@apple.com> |
| |
| Add support for [LegacyWindowAlias] IDL extended attribute |
| https://bugs.webkit.org/show_bug.cgi?id=172451 |
| |
| Reviewed by Sam Weinig. |
| |
| Add support for [LegacyWindowAlias] IDL extended attribute as per: |
| - https://heycam.github.io/webidl/#LegacyWindowAlias |
| |
| Use it for our legacy window aliases, such as webKitURL. |
| |
| No new tests, there should be no Web-exposed behavior change. |
| |
| * bindings/scripts/IDLAttributes.json: |
| * bindings/scripts/preprocess-idls.pl: |
| (GenerateConstructorAttributes): |
| * css/DOMMatrix.idl: |
| * dom/MutationObserver.idl: |
| * dom/XMLDocument.idl: |
| * html/DOMURL.idl: |
| * page/DOMWindow.idl: |
| |
| 2017-05-22 Jer Noble <jer.noble@apple.com> |
| |
| ASSERTION FAILED: m_boundThread == currentThread() in WTF::WeakReference<WebCore::WebCoreDecompressionSession>::clear() |
| https://bugs.webkit.org/show_bug.cgi?id=172457 |
| <rdar://problem/32329436> |
| |
| Reviewed by Eric Carlson. |
| |
| Remove vestigal WeakPtrFactory that was entirely unused. |
| |
| * platform/graphics/cocoa/WebCoreDecompressionSession.h: |
| (WebCore::WebCoreDecompressionSession::createWeakPtr): Deleted. |
| * platform/graphics/cocoa/WebCoreDecompressionSession.mm: |
| (WebCore::WebCoreDecompressionSession::WebCoreDecompressionSession): |
| |
| 2017-05-22 Antti Koivisto <antti@apple.com> |
| |
| Crash in WebCore::StyleRuleKeyframes::findKeyframeIndex |
| https://bugs.webkit.org/show_bug.cgi?id=170756 |
| <rdar://problem/31573157> |
| |
| Reviewed by Andreas Kling. |
| |
| Using a malformed key with CSSKeyframesRule.findRule crashes because |
| CSSParser::parseKeyframeKeyList returns null which is then dereferenced. |
| |
| * css/CSSKeyframesRule.cpp: |
| (WebCore::StyleRuleKeyframes::findKeyframeIndex): Null test. |
| |
| 2017-05-22 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Remove unused documentIsHandlingNonDefaultDrag plumbing for WebKit2 |
| https://bugs.webkit.org/show_bug.cgi?id=172453 |
| |
| Reviewed by Tim Horton. |
| |
| Removes unused plumbing that was originally added to support file uploads. No new tests, since there is no |
| change in behavior. |
| |
| * page/DragController.h: |
| (WebCore::DragController::documentIsHandlingNonDefaultDrag): Deleted. |
| |
| 2017-05-22 Jer Noble <jer.noble@apple.com> |
| |
| Media element thinks its hidden when in PiP mode and tab is backgrounded. |
| https://bugs.webkit.org/show_bug.cgi?id=172221 |
| |
| Reviewed by Eric Carlson. |
| |
| The element should not be considered hidden when in legacy fullscreen mode or PiP mode. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::visibilityStateChanged): |
| (WebCore::HTMLMediaElement::fullscreenModeChanged): |
| |
| 2017-05-22 Zan Dobersek <zdobersek@igalia.com> |
| |
| NavigatorEME: null RefPtr<> dereference due to different calling conventions |
| https://bugs.webkit.org/show_bug.cgi?id=172352 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * Modules/encryptedmedia/NavigatorEME.cpp: |
| (WebCore::tryNextSupportedConfiguration): Avoid crashes when constructing |
| the MediaKeySystemAccess::create() arguments that can occur for targets with |
| calling conventions that might release the implementation RefPtr<> before it's |
| dereferenced to retrieve the key system string. Simply acquire the reference |
| to the key system String object before the MediaKeySystem::create() call |
| expression that releases the problematic RefPtr<>. |
| |
| 2017-05-22 Gwang Yoon Hwang <yoon@igalia.com> |
| |
| [CoordinatedGraphics] Clear UpdateAtlases for each tests |
| https://bugs.webkit.org/show_bug.cgi?id=172119 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * loader/EmptyClients.h: |
| * page/ChromeClient.h: |
| * testing/Internals.cpp: |
| (WebCore::Internals::resetToConsistentState): Clears update atlases |
| while resetting states of the test runner. |
| |
| 2017-05-22 Gwang Yoon Hwang <yoon@igalia.com> |
| |
| [CoordinatedGraphics] BitmapTexturePool does not release textures properly |
| https://bugs.webkit.org/show_bug.cgi?id=172428 |
| |
| Reviewed by Žan Doberšek. |
| |
| No new tests because no behavior change. |
| |
| * platform/graphics/texmap/BitmapTexturePool.cpp: |
| (WebCore::BitmapTexturePool::BitmapTexturePool): |
| Use the RunLoopTimer instead of Timer, because BitmapTexturePool would |
| run on the compositing thread in Coordinated Graphics case. |
| (WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired): |
| We should check not only the last used time but also the refcounts of the |
| texture when selecting textures to remove. |
| * platform/graphics/texmap/BitmapTexturePool.h: |
| (WebCore::BitmapTexturePool::Entry::canBeReleased): Added. |
| |
| 2017-05-21 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [WPE] Use surfaceless context for sharing and offscreen context if available |
| https://bugs.webkit.org/show_bug.cgi?id=172268 |
| |
| Reviewed by Žan Doberšek. |
| |
| Like GTK+ port does, WPE should use surfaceless contexts when possible, and only create a native offscreen |
| context as a fallback. We don't need to do anything special in WPE port, just to make it consistent with the |
| Wayland and X11 implementations. We should also avoid including EGL.h in headers, we added |
| GLContextEGLWayland.cpp and GLContextEGLX11.cpp to avoid that. PlatformDisplayWPE::EGLOffscreenTarget is quite |
| simple and only used by GLContextEGLWPE, so we could move it there like we do for Wayland and X11. |
| |
| * platform/graphics/GLContext.h: Remove EGL header includes. |
| * platform/graphics/egl/GLContextEGL.cpp: |
| (WebCore::GLContextEGL::createWindowContext): Use createWindowSurfaceWPE() in WPE. |
| (WebCore::GLContextEGL::createContext): Use createWPEContext in WPE. |
| (WebCore::GLContextEGL::createSharingContext): Move the WPE code below to ensure we try |
| createSurfacelessContext() first. |
| * platform/graphics/egl/GLContextEGL.h: |
| * platform/graphics/egl/GLContextEGLWPE.cpp: |
| (WebCore::GLContextEGL::GLContextEGL): Add constructor for WPE that receives a struct wpe_renderer_backend_egl_offscreen_target* |
| (WebCore::GLContextEGL::createWindowSurfaceWPE): Added implementation here because eglCreateWindowSurface needs |
| the platform specific EGL includes and definitions. |
| (WebCore::GLContextEGL::createWPEContext): Create a GLContext using WPE backend API directly here. |
| (WebCore::GLContextEGL::destroyWPETarget): Add null check. |
| * platform/graphics/wpe/PlatformDisplayWPE.cpp: Remove EGLOffscreenTarget. |
| * platform/graphics/wpe/PlatformDisplayWPE.h: |
| |
| 2017-05-21 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] Remove Firefox user agent quirk for Google domains |
| https://bugs.webkit.org/show_bug.cgi?id=171941 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * platform/UserAgentQuirks.cpp: |
| (WebCore::UserAgentQuirks::quirksForURL): |
| (WebCore::UserAgentQuirks::stringForQuirk): |
| (WebCore::urlRequiresFirefoxBrowser): Deleted. |
| (WebCore::UserAgentQuirks::firefoxRevisionString): Deleted. |
| * platform/UserAgentQuirks.h: |
| * platform/gtk/UserAgentGtk.cpp: |
| (WebCore::buildUserAgentString): |
| |
| 2017-05-21 Antti Koivisto <antti@apple.com> |
| |
| matchMedia('print').addListener() fires in WK1 but never in WK2 when printing (breaks printing Google maps, QuickLooks) |
| https://bugs.webkit.org/show_bug.cgi?id=172361 |
| <rdar://problem/28777408> |
| |
| Reviewed by Sam Weinig. |
| |
| Test: fast/media/matchMedia-print.html |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::layout): |
| |
| Evaluate matchMedia queries unconditionally. No idea why it wasn't like that. |
| |
| * testing/Internals.cpp: |
| (WebCore::Internals::setPrinting): |
| |
| Add testing support. The existing ways to do printing testing were unable to hit this bug as |
| they had too much additional gunk. |
| |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-05-21 Zalan Bujtas <zalan@apple.com> |
| |
| Remove redundant FrameView ref in FrameView::performPostLayoutTasks |
| https://bugs.webkit.org/show_bug.cgi?id=172422 |
| |
| Reviewed by Antti Koivisto. |
| |
| This was added to protect FrameView from getting destroyed in updateEmbeddedObjects(), but r169475 changed |
| the embedded object update to be asynchronous. |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::performPostLayoutTasks): |
| |
| 2017-05-20 Chris Dumez <cdumez@apple.com> |
| |
| Drop [NoInterfaceObject] from RTCDTMFSender and RTCStatsReport |
| https://bugs.webkit.org/show_bug.cgi?id=172418 |
| |
| Reviewed by Youenn Fablet. |
| |
| Drop [NoInterfaceObject] from RTCDTMFSender and RTCStatsReport to match the specification: |
| - https://www.w3.org/TR/webrtc/#rtcdtmfsender |
| - https://www.w3.org/TR/webrtc/#rtcstatsreport-object |
| |
| Firefox exposes both RTCDTMFSender and RTCStatsReport. Chrome exposes RTCStatsReport only. |
| RTCDTMFSender seems to be currently disabled at build time currently so the change to |
| its interface does not currently impact Web-exposed behavior, only the change to the |
| RTCStatsReport interface currently does. |
| |
| No new tests, rebaselined existing test. |
| |
| * Modules/mediastream/RTCDTMFSender.idl: |
| * Modules/mediastream/RTCStatsReport.idl: |
| Drop [NoInterfaceObject]. |
| |
| * Modules/mediastream/RTCIceCandidateEvent.cpp: Removed. |
| * Modules/mediastream/RTCIceCandidateEvent.h: Removed. |
| * Modules/mediastream/RTCIceCandidateEvent.idl: Removed. |
| Drop class and IDL that are no longer used. They were not even part of any project files. |
| RTCIceCandidateEvent has been renamed to RTCPeerConnectionIceEvent, which we support. |
| |
| 2017-05-20 Chris Dumez <cdumez@apple.com> |
| |
| Value for iterator property is wrong for maplike interfaces |
| https://bugs.webkit.org/show_bug.cgi?id=172410 |
| |
| Reviewed by Sam Weinig. |
| |
| Value for iterator property was wrong for maplike interfaces. The iterator property is |
| supposed to have the same value as the 'entries' property but we were using the value |
| of the 'values' property. |
| |
| Specification: |
| - https://heycam.github.io/webidl/#es-map-entries |
| - https://heycam.github.io/webidl/#es-iterator |
| |
| This impacts the iterator of the RTCStatsReport interface. |
| |
| No new tests, updated existing test. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateImplementation): |
| * bindings/scripts/test/JS/JSMapLike.cpp: |
| (WebCore::JSMapLikePrototype::finishCreation): |
| * bindings/scripts/test/JS/JSReadOnlyMapLike.cpp: |
| (WebCore::JSReadOnlyMapLikePrototype::finishCreation): |
| |
| 2017-05-20 Chris Dumez <cdumez@apple.com> |
| |
| Drop superfluous iterator property setting in addValueIterableMethods() |
| https://bugs.webkit.org/show_bug.cgi?id=172409 |
| |
| Reviewed by Youenn Fablet. |
| |
| Drop superfluous iterator setting in addValueIterableMethods(). The bindings already take care of |
| adding the iterator property before calling addValueIterableMethods(). |
| |
| No new tests, no Web-facing behavior change. |
| |
| * bindings/js/JSDOMIterator.cpp: |
| (WebCore::addValueIterableMethods): |
| |
| 2017-05-20 Jer Noble <jer.noble@apple.com> |
| |
| [MSE][Mac] Support painting MSE video-element to canvas |
| https://bugs.webkit.org/show_bug.cgi?id=125157 |
| <rdar://problem/23062016> |
| |
| Reviewed by Eric Carlson. |
| |
| Test: media/media-source/media-source-paint-to-canvas.html |
| |
| In order to have access to decoded video data for painting, decode the encoded samples manually |
| instead of adding them to the AVSampleBufferDisplayLayer. To facilitate doing so, add a new |
| utility class WebCoreDecompressionSession, which can decode samples and store them. |
| |
| For the purposes of this patch, to avoid double-decoding of video data and to avoid severe complication |
| of our sample delivery pipeline, we will only support painting of decoded video samples when the video is |
| not displayed in the DOM. |
| |
| * Modules/mediasource/MediaSource.cpp: |
| (WebCore::MediaSource::seekToTime): Always send waitForSeekCompleted() to give private a chance to delay seek completion. |
| * Modules/mediasource/SourceBuffer.cpp: |
| (WebCore::SourceBuffer::sourceBufferPrivateReenqueSamples): Added. |
| * Modules/mediasource/SourceBuffer.h: |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/cf/CoreMediaSoftLink.cpp: Added new soft link macros. |
| * platform/cf/CoreMediaSoftLink.h: Ditto. |
| * platform/cocoa/CoreVideoSoftLink.cpp: Ditto. |
| * platform/cocoa/CoreVideoSoftLink.h: Ditto. |
| * platform/graphics/SourceBufferPrivateClient.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::sampleBufferDisplayLayer): Simple accessor. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::decompressionSession): Ditto. |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC): |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): Update whether we should be displaying in a layer or decompression session.. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVisible): Ditto. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitForSeekCompleted): m_seeking is now an enum. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seeking): Ditto. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekCompleted): Ditto. If waiting for a video frame, delay completing seek. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::nativeImageForCurrentTime): Call updateLastImage() and return result. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastImage): Fetch the image for the current time. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paint): Pass to paintCurrentFrameInCanvas. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paintCurrentFrameInContext): Get a native image, and render it. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::acceleratedRenderingStateChanged): Create or destroy a layer or decompression session as appropriate. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer): Creates a layer. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyLayer): Destroys a layer. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureDecompressionSession): Creates a decompression session. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyDecompressionSession): Destroys a decompression session. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setHasAvailableVideoFrame): If seek completion delayed, complete now. Ditto for ready state change. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setReadyState): If waiting for a video frame, delay ready state change. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer): Deleted. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::removeDisplayLayer): Deleted. |
| * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm: |
| (WebCore::MediaSourcePrivateAVFObjC::hasVideo): Promote to a class function. |
| (WebCore::MediaSourcePrivateAVFObjC::hasSelectedVideo): Return whether any of the active source buffers have video and are selected. |
| (WebCore::MediaSourcePrivateAVFObjC::hasSelectedVideoChanged): Call setSourceBufferWithSelectedVideo(). |
| (WebCore::MediaSourcePrivateAVFObjC::setVideoLayer): Set (or clear) the layer on the selected buffer. |
| (WebCore::MediaSourcePrivateAVFObjC::setDecompressionSession): Ditto for decompression session. |
| (WebCore::MediaSourcePrivateAVFObjC::setSourceBufferWithSelectedVideo): Remove the layer and decompression session from the unselected |
| |
| buffer and add the decompression session or layer to the newly selected buffer. |
| (WebCore::MediaSourcePrivateAVFObjCHasVideo): Deleted. |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h: |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| (WebCore::SourceBufferPrivateAVFObjC::destroyRenderers): Clear the videoLayer and decompressionSession. |
| (WebCore::SourceBufferPrivateAVFObjC::hasSelectedVideo): Return whether the buffer has a selected video track. |
| (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): The media player now manages the video layer and decompression session lifetimes. |
| (WebCore::SourceBufferPrivateAVFObjC::flush): Flush the decompression session, if it exists. |
| (WebCore::SourceBufferPrivateAVFObjC::enqueueSample): Enqueue to the decompression session, if it exists. |
| (WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples): As the decompression session, if it exists. |
| (WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples): Tell the decompression session to stop requesting data, if it exists. |
| (WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples): Request media data from the decompression session, if it exists. |
| (WebCore::SourceBufferPrivateAVFObjC::setVideoLayer): Added. |
| (WebCore::SourceBufferPrivateAVFObjC::setDecompressionSession): Added. |
| * platform/graphics/cocoa/WebCoreDecompressionSession.h: Added. |
| (WebCore::WebCoreDecompressionSession::create): |
| (WebCore::WebCoreDecompressionSession::isInvalidated): |
| (WebCore::WebCoreDecompressionSession::createWeakPtr): |
| * platform/graphics/cocoa/WebCoreDecompressionSession.mm: Added. |
| (WebCore::WebCoreDecompressionSession::WebCoreDecompressionSession): Register for media data requests. |
| (WebCore::WebCoreDecompressionSession::invalidate): Unregister for same. |
| (WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaDataCallback): Pass to maybeBecomeReadyForMoreMediaData. |
| (WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaData): Check in-flight decodes, and decoded frame counts. |
| (WebCore::WebCoreDecompressionSession::enqueueSample): Pass the sample to be decoded on a background queue. |
| (WebCore::WebCoreDecompressionSession::decodeSample): Decode the sample. |
| (WebCore::WebCoreDecompressionSession::decompressionOutputCallback): Call handleDecompressionOutput. |
| (WebCore::WebCoreDecompressionSession::handleDecompressionOutput): Pass decoded sample to be enqueued on the main thread. |
| (WebCore::WebCoreDecompressionSession::getFirstVideoFrame): |
| (WebCore::WebCoreDecompressionSession::enqueueDecodedSample): Enqueue the frame (if it's a displayed frame). |
| (WebCore::WebCoreDecompressionSession::isReadyForMoreMediaData): Return whether we've hit our high water sample count. |
| (WebCore::WebCoreDecompressionSession::requestMediaDataWhenReady): |
| (WebCore::WebCoreDecompressionSession::stopRequestingMediaData): Unset the same. |
| (WebCore::WebCoreDecompressionSession::notifyWhenHasAvailableVideoFrame): Set a callback to notify when a decoded frame has been enqueued. |
| (WebCore::WebCoreDecompressionSession::imageForTime): Successively dequeue images until reaching one at or beyond the requested time. |
| (WebCore::WebCoreDecompressionSession::flush): Synchronously empty the producer and consumer queues. |
| (WebCore::WebCoreDecompressionSession::getDecodeTime): Utility method. |
| (WebCore::WebCoreDecompressionSession::getPresentationTime): Ditto. |
| (WebCore::WebCoreDecompressionSession::getDuration): Ditto. |
| (WebCore::WebCoreDecompressionSession::compareBuffers): Ditto. |
| * platform/cocoa/VideoToolboxSoftLink.cpp: Added. |
| * platform/cocoa/VideoToolboxSoftLink.h: Added. |
| |
| 2017-05-19 Joseph Pecoraro <pecoraro@apple.com> |
| |
| WebAVStreamDataParserListener String leak |
| https://bugs.webkit.org/show_bug.cgi?id=172395 |
| |
| Reviewed by Chris Dumez. |
| |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| (-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): |
| (-[WebAVStreamDataParserListener streamDataParser:didReachEndOfTrackWithTrackID:mediaType:]): |
| Use an isolated String in a lambda used across threads. |
| |
| 2017-05-19 Chris Dumez <cdumez@apple.com> |
| |
| Consider not exposing webkitURL in workers |
| https://bugs.webkit.org/show_bug.cgi?id=172166 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Drop webkitURL alias for URL in workers, to match other browsers. The risk should |
| be low given that this only impacts workers, we expose URL to workers and Blink |
| does not have this alias. We still support the webkitURL alias for URL on Window. |
| |
| No new tests, rebaselined existing test. |
| |
| * workers/WorkerGlobalScope.idl: |
| |
| 2017-05-19 Youenn Fablet <youenn@apple.com> |
| |
| Add RTCPeerConnection connection state change logging |
| https://bugs.webkit.org/show_bug.cgi?id=172314 |
| |
| Reviewed by Eric Carlson. |
| |
| No change of behavior. |
| Adding some release logging of connection state changes. |
| |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::rtcIceGatheringStateToString): |
| (WebCore::RTCPeerConnection::updateIceGatheringState): |
| (WebCore::rtcIceConnectionStateToString): |
| (WebCore::RTCPeerConnection::updateIceConnectionState): |
| |
| 2017-05-19 Jeremy Jones <jeremyj@apple.com> |
| |
| webkitSupportsFullscreen and webkitSupportsPresentationMode('fullscreen') disagree. |
| https://bugs.webkit.org/show_bug.cgi?id=172329 |
| rdar://problem/32260891 |
| |
| Reviewed by Darin Adler. |
| |
| Updated tests: |
| * media/media-fullscreen-inline-expected.txt: |
| * media/media-fullscreen-not-in-document-expected.txt: |
| * media/media-fullscreen.js: |
| |
| webkitSupportsPresentationMode('fullscreen') should delegate to webkitSupportsFullscreen. |
| The additional mediaSession().fullscreenPermitted() check causes it to return false when |
| not handling a user gesture, which isn't helpful to deciding to show a button in controls |
| or not. |
| |
| * html/HTMLVideoElement.cpp: |
| (WebCore::HTMLVideoElement::webkitSupportsPresentationMode): |
| |
| 2017-05-19 Jeremy Jones <jeremyj@apple.com> |
| |
| Prevent javascript interface from activating picture-in-picture for video elements that are showing capture camera on ios. |
| https://bugs.webkit.org/show_bug.cgi?id=172328 |
| |
| Reviewed by Eric Carlson. |
| |
| This change allows MediaPlayers to decide if they support pictureInPicture. |
| And check this from supportsFullscreen(). |
| |
| In MediaPlayerPrivateMediaStreamAVFObjC disable pip if there is a capture video track. |
| Elsewhere, leave it enabled. |
| |
| * html/HTMLVideoElement.cpp: |
| (WebCore::HTMLVideoElement::supportsFullscreen): Added Check. |
| * platform/graphics/MediaPlayer.cpp: |
| (WebCore::MediaPlayer::supportsPictureInPicture): Added. |
| * platform/graphics/MediaPlayer.h: |
| * platform/graphics/MediaPlayerPrivate.h: |
| (WebCore::MediaPlayerPrivateInterface::supportsPictureInPicture): Added. |
| * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::supportsPictureInPicture): Added |
| * platform/graphics/mac/MediaPlayerPrivateQTKit.h: |
| * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: |
| (WebCore::MediaPlayerPrivateQTKit::supportsFullscreen): Deleted. Moved inline. |
| |
| 2017-05-19 Chris Dumez <cdumez@apple.com> |
| |
| Do not fire load event for SVGElements that are detached or in frameless documents |
| https://bugs.webkit.org/show_bug.cgi?id=172289 |
| <rdar://problem/32275689> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| We should not fire load event for SVGElements that are detached or in frameless |
| documents. |
| |
| Test: svg/load-event-detached.html |
| |
| * svg/SVGElement.cpp: |
| (WebCore::SVGElement::sendSVGLoadEventIfPossible): |
| |
| 2017-05-19 Chris Dumez <cdumez@apple.com> |
| |
| Option() named constructor is not per spec |
| https://bugs.webkit.org/show_bug.cgi?id=172185 |
| |
| Reviewed by Sam Weinig. |
| |
| Align the behavior of the Option() named constructor with the HTML specification: |
| - https://html.spec.whatwg.org/#dom-option |
| |
| In particular, we no longer create an empty Text child node if the input text is the empty string. |
| This also aligns our behavior with Firefox. |
| |
| Test: imported/w3c/web-platform-tests/html/semantics/forms/the-option-element/option-element-constructor.html |
| |
| * html/HTMLOptionElement.cpp: |
| (WebCore::HTMLOptionElement::createForJSConstructor): |
| * html/HTMLOptionElement.h: |
| * html/HTMLOptionElement.idl: |
| |
| 2017-05-19 Chris Dumez <cdumez@apple.com> |
| |
| URLSearchParams / Headers objects @@iterator is not as per Web IDL spec |
| https://bugs.webkit.org/show_bug.cgi?id=172218 |
| |
| Reviewed by Youenn Fablet. |
| |
| Both URLSearchParams and Headers interfaces are iterable as per their |
| respective specification, and they both have a pair iterator: |
| - https://url.spec.whatwg.org/#interface-urlsearchparams |
| - https://fetch.spec.whatwg.org/#headers-class |
| |
| As per the WebIDL specification for 'entries'[1], "If the interface has a pair |
| iterator, then the Function object is the value of the @@iterator property", |
| the value of @@iterator being defined at [2]. In WebKit, we were using |
| different values/functions for 'entries' and @@iterator, although those |
| functions were doing the same thing (and the right thing). |
| |
| Also, as per [2], the name of the @@iterator function should be "entries", |
| which I also implemented in this patch. Previously, we were using |
| "[Symbol.Iterator]" as function name. |
| |
| [1] https://heycam.github.io/webidl/#es-iterable-entries |
| [2] https://heycam.github.io/webidl/#es-iterator |
| |
| No new tests, rebaselined existing tests. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateImplementation): |
| (GenerateImplementationIterableFunctions): |
| * bindings/scripts/test/JS/JSMapLike.cpp: |
| * bindings/scripts/test/JS/JSReadOnlyMapLike.cpp: |
| * bindings/scripts/test/JS/JSTestIterable.cpp: |
| (WebCore::JSTestIterablePrototype::finishCreation): |
| (WebCore::jsTestIterablePrototypeFunctionEntriesCaller): |
| * bindings/scripts/test/JS/JSTestNode.cpp: |
| (WebCore::JSTestNodePrototype::finishCreation): |
| (WebCore::jsTestNodePrototypeFunctionEntriesCaller): |
| |
| 2017-05-19 Zalan Bujtas <zalan@apple.com> |
| |
| Redundant ellipsis box triggers ASSERT_WITH_SECURITY_IMPLICATION in InlineBox::parent(). |
| https://bugs.webkit.org/show_bug.cgi?id=172309 |
| <rdar://problem/32262357> |
| |
| Reviewed by Simon Fraser. |
| |
| This patch stops the redundant ellipsis box trigger ASSERT_WITH_SECURITY_IMPLICATION. |
| |
| In RootInlineBox::placeEllipsis we construct an ellipsis box and append it to a static HashMap which |
| keeps track of the ellipsis boxes on each line. However when the line already has an ellipsis, we |
| re-use the existing one and this newly constructed (but redundant) box gets destroyed as we return from this function. |
| In InlineBox's d'tor, we let the parent know that now it has a dangling child and we assert on it |
| later, while accessing the children list. However this redundant ellipsis box was never added to the line, |
| so the assertion hits incorrectly. |
| |
| Test: fast/inline/redundant-ellipsis-triggers-assert-incorrectly.html |
| |
| * rendering/EllipsisBox.cpp: |
| (WebCore::EllipsisBox::EllipsisBox): |
| * rendering/InlineBox.cpp: This needs 32bits padding. |
| (WebCore::InlineBox::invalidateParentChildList): |
| * rendering/InlineBox.h: |
| * rendering/RootInlineBox.cpp: |
| (WebCore::RootInlineBox::placeEllipsis): |
| |
| 2017-05-19 Matt Rajca <mrajca@apple.com> |
| |
| Inherit media user gestures from the top document when autoplay quirks are allowed. |
| https://bugs.webkit.org/show_bug.cgi?id=172375 |
| |
| Reviewed by Eric Carlson. |
| |
| Added API test. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::processingUserGestureForMedia): |
| |
| 2017-05-19 Youenn Fablet <youenn@apple.com> |
| |
| Align MockRealtimeMediaSourceCenter with RealtimeMediaSourceCenter |
| https://bugs.webkit.org/show_bug.cgi?id=172324 |
| |
| Reviewed by Eric Carlson. |
| |
| No change of behavior. |
| Remove most of MockRealtimeMediaSourceCenter implementation. |
| Next step should be to remove it entirely and use the factory setters instead. |
| |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::RealtimeMediaSourceCenter::RealtimeMediaSourceCenter): |
| (WebCore::RealtimeMediaSourceCenter::createMediaStream): |
| (WebCore::RealtimeMediaSourceCenter::getMediaStreamDevices): |
| (WebCore::RealtimeMediaSourceCenter::setDeviceEnabled): |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| (WebCore::RealtimeMediaSourceCenter::supportedConstraints): |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| (WebCore::RealtimeMediaSourceCenterMac::RealtimeMediaSourceCenterMac): |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.h: |
| * platform/mock/MockRealtimeMediaSourceCenter.cpp: |
| (WebCore::MockRealtimeMediaSourceCenter::MockCaptureDeviceManager::captureDevices): |
| * platform/mock/MockRealtimeMediaSourceCenter.h: |
| |
| 2017-05-19 Zalan Bujtas <zalan@apple.com> |
| |
| Update SameSizeAsInlineBox with the correct InlineBoxBitfields bits. |
| https://bugs.webkit.org/show_bug.cgi?id=172377 |
| |
| Reviewed by Tim Horton. |
| |
| * rendering/InlineBox.cpp: |
| |
| 2017-05-19 Daniel Bates <dabates@apple.com> |
| |
| Bindings: Support runtime-enabled features in specific worlds |
| https://bugs.webkit.org/show_bug.cgi?id=172235 |
| |
| Reviewed by Chris Dumez. |
| |
| Currently a function, attribute, or interface can be annotated with either EnabledAtRuntime |
| or EnabledForWorld (not both) to expose/conceal it depending on the state of a runtime |
| feature flag or the DOM world associated with the running JavaScript code, respectively. |
| Even though we do not have any functions, attributes, or interfaces that are annotated |
| with both EnabledAtRuntime and EnabledForWorld at the time of writing, it seems reasonable |
| to support such a combination of annotations. This also has the benefit of making it |
| straightforward to support the extended attribute SecureContext by generalizing the logic |
| that generates the code to expose/conceal a function, attribute, or interface. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateRuntimeEnableConditionalString): Use an array to build up all the conjuncts in |
| the conditional expression. |
| (GenerateImplementation): Substitute GenerateRuntimeEnableConditionalString() and $runtimeEnableConditionalString |
| for GetRuntimeEnableFunctionName() and $enable_function_result, respectively. |
| (GetRuntimeEnableFunctionName): Deleted. |
| |
| * bindings/scripts/test/JS/JSTestGlobalObject.cpp: |
| (WebCore::JSTestGlobalObject::finishCreation): |
| (WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabled): |
| (WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledCaller): |
| (WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeaturesEnabled): |
| (WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeaturesEnabledCaller): |
| Update expected results. |
| |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| (WebCore::JSTestObjPrototype::finishCreation): |
| (WebCore::jsTestObjPrototypeFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabled): |
| (WebCore::jsTestObjPrototypeFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledCaller): |
| Ditto. |
| |
| * bindings/scripts/test/TestGlobalObject.idl: Added test cases. |
| * bindings/scripts/test/TestObj.idl: Added test case. |
| |
| 2017-05-19 Jeremy Jones <jeremyj@apple.com> |
| |
| Fix macos build after r217143 |
| https://bugs.webkit.org/show_bug.cgi?id=172380 |
| |
| unreviewed. |
| |
| Remove reference to WebVideoFullscreenInterface for mac build. |
| |
| * html/HTMLMediaElement.cpp: |
| * platform/mac/WebVideoFullscreenInterfaceMac.h: |
| |
| 2017-05-19 Jeremy Jones <jeremyj@apple.com> |
| |
| Remove defunct WebVideoFullscreenInterface |
| https://bugs.webkit.org/show_bug.cgi?id=172254 |
| |
| Reviewed by Jon Lee. |
| |
| No new tests because no behavior change. |
| |
| WebVideoFullscreenInterface has long since been replaced by WebVideoFullscreenModelClient. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * html/HTMLMediaElement.cpp: |
| * html/HTMLVideoElement.cpp: |
| * platform/cocoa/WebPlaybackSessionModelMediaElement.mm: |
| * platform/cocoa/WebVideoFullscreenInterface.h: Removed. |
| * platform/cocoa/WebVideoFullscreenModel.h: |
| * platform/cocoa/WebVideoFullscreenModelVideoElement.mm: |
| * platform/ios/WebVideoFullscreenControllerAVKit.mm: |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.h: |
| * platform/mac/WebVideoFullscreenInterfaceMac.h: |
| |
| 2017-05-19 Jeremy Jones <jeremyj@apple.com> |
| |
| HTMLVideoElement::webkitSupportsPresentationMode allowsPictureInPicture() check is redundant. |
| https://bugs.webkit.org/show_bug.cgi?id=172330 |
| rdar://problem/32285443 |
| |
| Reviewed by Eric Carlson. |
| |
| No new tests because no behavior change. |
| |
| This removes a redundant call to allowsPictureInPicture() to make it |
| more clear that webkitSupportsPresentationMode gives the same result as |
| webkitSupportsFullscreen(pipMode) |
| |
| * html/HTMLVideoElement.cpp: |
| (WebCore::HTMLVideoElement::webkitSupportsPresentationMode): |
| |
| 2017-05-19 Jeremy Jones <jeremyj@apple.com> |
| |
| [WebRTC] Remove PiP support for video elements that are showing camera capture |
| https://bugs.webkit.org/show_bug.cgi?id=172336 |
| |
| Reviewed by Eric Carlson. |
| |
| No new tests because no effect on the DOM. This just changes a value sent to the platform interface layer. |
| |
| Ask video element if it supports picture-in-picture instead of asking the mediaSession directly. |
| This allows the video element to give a more robust answer. |
| |
| * html/HTMLVideoElement.h: |
| * platform/ios/WebVideoFullscreenControllerAVKit.mm: |
| (WebVideoFullscreenControllerContext::setUpFullscreen): |
| |
| 2017-05-18 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Remove the need for the generator to know about native type mapping |
| https://bugs.webkit.org/show_bug.cgi?id=172310 |
| |
| Reviewed by Darin Adler. |
| |
| Replace the use of explicit typename to native type mappings in CodeGeneratorJS.pm |
| with use of IDLTypes and Converter, which already need the mapping. This allows us |
| to have the information in only one spot. |
| |
| Also, callback generation to account for nullability and update the IDLs to correctly |
| annotate only the types that need to be nullable. |
| |
| * Modules/geolocation/GeoNotifier.cpp: |
| * Modules/geolocation/GeoNotifier.h: |
| * Modules/geolocation/Geolocation.cpp: |
| * Modules/geolocation/Geolocation.h: |
| * Modules/geolocation/PositionCallback.idl: |
| * Modules/geolocation/PositionErrorCallback.h: |
| Use references where possible in the Geolocation code. It was almost possible |
| to make PositionCallback take a non-nullable position, but some odd logic in |
| Geolocation::makeCachedPositionCallbacks() implies that there is a path where |
| passing null is possible, though it would assert. Added FIXME's to return to |
| this in a follow up. |
| |
| * Modules/webaudio/AudioBufferCallback.idl: |
| Add nullable annotation and FIXME explaining that the latest spec splits the callback |
| into two separate ones. |
| |
| * Modules/webdatabase/Database.cpp: |
| (WebCore::Database::runTransaction): |
| * Modules/webdatabase/DatabaseCallback.h: |
| * Modules/webdatabase/DatabaseManager.cpp: |
| (WebCore::DatabaseManager::openDatabase): |
| * Modules/webdatabase/SQLStatement.cpp: |
| (WebCore::SQLStatement::performCallback): |
| * Modules/webdatabase/SQLStatementCallback.h: |
| * Modules/webdatabase/SQLStatementErrorCallback.h: |
| * Modules/webdatabase/SQLTransaction.cpp: |
| (WebCore::SQLTransaction::deliverTransactionCallback): |
| (WebCore::SQLTransaction::deliverTransactionErrorCallback): |
| * Modules/webdatabase/SQLTransactionCallback.h: |
| * Modules/webdatabase/SQLTransactionErrorCallback.h: |
| * inspector/InspectorDatabaseAgent.cpp: |
| * bindings/js/JSSQLStatementErrorCallbackCustom.cpp: |
| (WebCore::JSSQLStatementErrorCallback::handleEvent): |
| Update to pass callback parameters as references, since they are never null. |
| |
| * bindings/IDLTypes.h: |
| Add NullableParameterType to allow customization of nullable parameters (in much |
| the same way we allow customization of the nullable implementation type). |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateDefaultValue): |
| Use Converter<>::ReturnType{ } for default values rather than ${GetNativeType..}(). |
| |
| (GenerateHeader): |
| Remove use of GetNativeType for toWrapped by using the impl type, since this will never |
| be a complex type. |
| |
| (GenerateImplementation): |
| Simplify DOMJIT UnsafeToNative by merging two identical paths and using auto. |
| |
| (GenerateParametersCheck): |
| Rework parameter checks to use more specific variable names, make branches more clear, |
| and use Converter<>::ReturnType rather than GetNativeType. |
| |
| (GenerateCallbackHeaderContent): |
| (GenerateCallbackImplementationContent): |
| Switch to using typename ${IDLType}::ParameterType as the parameters for callback functions. Also |
| add final and override to make sure the generated function matches the user provided base class. |
| (GetNativeType): Deleted. |
| (GetNativeInnerType): Deleted. |
| (GetNativeTypeForCallbacks): Deleted. |
| Remove native type mappings. |
| |
| * css/MediaQueryListListener.h: |
| * css/MediaQueryListListener.idl: |
| * css/MediaQueryMatcher.cpp: |
| Update MediaQueryListListener to take a non-nullable MediaQueryList. |
| |
| * dom/NativeNodeFilter.cpp: |
| * dom/NativeNodeFilter.h: |
| * dom/NodeFilter.h: |
| * dom/NodeFilter.idl: |
| * dom/NodeIterator.cpp: |
| * dom/Traversal.cpp: |
| * dom/Traversal.h: |
| * dom/TreeWalker.cpp: |
| * bindings/js/JSNodeFilterCustom.cpp: |
| Update acceptNode to be non-nullable and pass the Node by reference. |
| |
| * dom/StringCallback.cpp: |
| * dom/StringCallback.h: |
| Pass the ScriptExecutionContext by reference. |
| |
| * page/IntersectionObserverCallback.h: |
| Update to match new parameter types and pass IntersectionObserver by reference. |
| |
| * page/PerformanceObserver.cpp: |
| * page/PerformanceObserverCallback.h: |
| Update to pass PerformanceObserverEntryList and PerformanceObserver by reference. |
| |
| * bindings/scripts/test/JS/JSTestCallbackFunction.cpp: |
| * bindings/scripts/test/JS/JSTestCallbackFunction.h: |
| * bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.cpp: |
| * bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.h: |
| * bindings/scripts/test/JS/JSTestCallbackInterface.cpp: |
| * bindings/scripts/test/JS/JSTestCallbackInterface.h: |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| * bindings/scripts/test/JS/JSTestTypedefs.cpp: |
| Update test results. |
| |
| * bindings/scripts/test/TestCallbackInterface.idl: |
| Update test to refer to actual interfaces as we now do lookup on these parameter |
| types rather than blindly assuming they are interfaces. |
| |
| 2017-05-19 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r217098, r217111, r217113, and |
| r217114. |
| https://bugs.webkit.org/show_bug.cgi?id=172367 |
| |
| These changes broke the Windows build and introduced |
| LayoutTest failures (Requested by ryanhaddad on #webkit). |
| |
| Reverted changesets: |
| |
| "[MSE][Mac] Support painting MSE video-element to canvas" |
| https://bugs.webkit.org/show_bug.cgi?id=125157 |
| http://trac.webkit.org/changeset/217098 |
| |
| "[MSE][Mac] Support painting MSE video-element to canvas" |
| https://bugs.webkit.org/show_bug.cgi?id=125157 |
| http://trac.webkit.org/changeset/217111 |
| |
| "Unreviewed build fix; add undefined functions and constants |
| to the CoreMediaSoftLink.h, and use the" |
| http://trac.webkit.org/changeset/217113 |
| |
| "[MSE][Mac] Support painting MSE video-element to canvas" |
| https://bugs.webkit.org/show_bug.cgi?id=125157 |
| http://trac.webkit.org/changeset/217114 |
| |
| 2017-05-19 Andy Estes <aestes@apple.com> |
| |
| REGRESSION (r217078): window.ApplePaySession is undefined on macOS Sierra |
| https://bugs.webkit.org/show_bug.cgi?id=172344 |
| |
| Reviewed by Tim Horton. |
| |
| r213673 mistakenly changed the ApplePaySession interface from being conditional on |
| APPLE_PAY to being conditional on APPLE_PAY_DELEGATE, so when r217078 disabled |
| APPLE_PAY_DELEGATE on Sierra and earlier it disabled ApplePaySession. |
| |
| Fix this by reverting ApplePaySession to being conditional on APPLE_PAY. |
| |
| Fixes http/tests/ssl/applepay/ApplePaySession.html |
| |
| * Modules/applepay/ApplePaySession.idl: |
| |
| 2017-05-19 Chris Dumez <cdumez@apple.com> |
| |
| CSSOM insertRule() index argument is optional with default 0 |
| https://bugs.webkit.org/show_bug.cgi?id=172219 |
| |
| Reviewed by Sam Weinig. |
| |
| Index parameter to CSSSupportsRule.insertRule() and CSSStyleSheet.insertRule() should |
| be optional with a default value of 0, as per the latest specification: |
| - https://github.com/w3c/csswg-drafts/commit/7949d41a2d86107f8ad4624c055b4b0c9c28ad0d |
| - https://www.w3.org/Bugs/Public/show_bug.cgi?id=27384 |
| |
| Tests: imported/w3c/web-platform-tests/cssom/insertRule-charset-no-index.html |
| imported/w3c/web-platform-tests/cssom/insertRule-import-no-index.html |
| imported/w3c/web-platform-tests/cssom/insertRule-namespace-no-index.html |
| imported/w3c/web-platform-tests/cssom/insertRule-no-index.html |
| |
| * css/CSSStyleSheet.cpp: |
| * css/CSSStyleSheet.h: |
| * css/CSSStyleSheet.idl: |
| * css/CSSSupportsRule.idl: |
| |
| 2017-05-19 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [Threaded Compositor] Remove platform ifdefs from threaded compositor implementation |
| https://bugs.webkit.org/show_bug.cgi?id=172265 |
| |
| Reviewed by Žan Doberšek. |
| |
| Remove PlatformDisplayWPE::EGLTarget. |
| |
| * platform/graphics/wpe/PlatformDisplayWPE.cpp: |
| * platform/graphics/wpe/PlatformDisplayWPE.h: |
| |
| 2017-05-19 Jer Noble <jer.noble@apple.com> |
| |
| Unreviewed build fix; add undefined functions and constants to the CoreMediaSoftLink.h, and use the |
| correct (and previously soft-linked) method in WebCoreDecompressionSession. |
| |
| * platform/cf/CoreMediaSoftLink.cpp: |
| * platform/cf/CoreMediaSoftLink.h: |
| * platform/graphics/cocoa/WebCoreDecompressionSession.mm: |
| (WebCore::WebCoreDecompressionSession::imageForTime): |
| |
| 2017-05-19 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass |
| https://bugs.webkit.org/show_bug.cgi?id=172098 |
| |
| Reviewed by Saam Barati. |
| |
| Add DOMJIT interface IDL attribute. Which allows us to define checkSubClassPatchpointFor${className} |
| function for that ClassInfo. And we move CheckSubClass patchpoint implementation to ClassInfo's member |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSDOMGlobalObject.cpp: |
| * bindings/js/JSDOMWindowBase.cpp: |
| * bindings/js/JSDOMWindowProperties.cpp: |
| * bindings/js/JSDOMWindowShell.cpp: |
| * bindings/js/JSReadableStreamPrivateConstructors.cpp: |
| * bindings/js/JSWorkerGlobalScopeBase.cpp: |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateHeader): |
| (GenerateImplementation): |
| (GenerateImplementationIterableFunctions): |
| (GenerateConstructorHelperMethods): |
| * bindings/scripts/IDLAttributes.json: |
| * bindings/scripts/test/JS/JSInterfaceName.cpp: |
| * bindings/scripts/test/JS/JSMapLike.cpp: |
| * bindings/scripts/test/JS/JSReadOnlyMapLike.cpp: |
| * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactions.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp: |
| * bindings/scripts/test/JS/JSTestCallbackInterface.cpp: |
| * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp: |
| * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: |
| * bindings/scripts/test/JS/JSTestDOMJIT.cpp: |
| * bindings/scripts/test/JS/JSTestDOMJIT.h: |
| * bindings/scripts/test/JS/JSTestEventConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestEventTarget.cpp: |
| * bindings/scripts/test/JS/JSTestException.cpp: |
| * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: |
| * bindings/scripts/test/JS/JSTestGlobalObject.cpp: |
| * bindings/scripts/test/JS/JSTestInterface.cpp: |
| * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp: |
| * bindings/scripts/test/JS/JSTestIterable.cpp: |
| * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: |
| * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestNode.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/JSTestPromiseRejectionEvent.cpp: |
| * bindings/scripts/test/JS/JSTestSerialization.cpp: |
| * bindings/scripts/test/JS/JSTestSerializationInherit.cpp: |
| * bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp: |
| * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: |
| * bindings/scripts/test/JS/JSTestTypedefs.cpp: |
| * bridge/c/CRuntimeObject.cpp: |
| * bridge/c/c_instance.cpp: |
| * bridge/objc/ObjCRuntimeObject.mm: |
| * bridge/objc/objc_instance.mm: |
| * bridge/objc/objc_runtime.mm: |
| * bridge/runtime_array.cpp: |
| * bridge/runtime_method.cpp: |
| * bridge/runtime_object.cpp: |
| * dom/Document.idl: |
| * dom/DocumentFragment.idl: |
| * dom/Element.idl: |
| * dom/Event.idl: |
| * dom/Node.idl: |
| * domjit/JSDocumentDOMJIT.cpp: |
| (WebCore::checkSubClassPatchpointForJSDocument): |
| (WebCore::DocumentDocumentElementDOMJIT::checkDOM): Deleted. |
| (WebCore::DocumentBodyDOMJIT::checkDOM): Deleted. |
| * domjit/JSDocumentFragmentDOMJIT.cpp: Copied from Source/JavaScriptCore/runtime/JSMap.cpp. |
| (WebCore::checkSubClassPatchpointForJSDocumentFragment): |
| * domjit/JSElementDOMJIT.cpp: Copied from Source/JavaScriptCore/tools/JSDollarVM.cpp. |
| (WebCore::checkSubClassPatchpointForJSElement): |
| * domjit/JSEventDOMJIT.cpp: Copied from Source/JavaScriptCore/tools/JSDollarVM.cpp. |
| (WebCore::checkSubClassPatchpointForJSEvent): |
| * domjit/JSNodeDOMJIT.cpp: |
| (WebCore::checkSubClassPatchpointForJSNode): |
| (WebCore::NodeFirstChildDOMJIT::checkDOM): Deleted. |
| (WebCore::NodeLastChildDOMJIT::checkDOM): Deleted. |
| (WebCore::NodeNextSiblingDOMJIT::checkDOM): Deleted. |
| (WebCore::NodePreviousSiblingDOMJIT::checkDOM): Deleted. |
| (WebCore::NodeParentNodeDOMJIT::checkDOM): Deleted. |
| (WebCore::NodeNodeTypeDOMJIT::checkDOM): Deleted. |
| (WebCore::NodeOwnerDocumentDOMJIT::checkDOM): Deleted. |
| |
| 2017-05-18 Jer Noble <jer.noble@apple.com> |
| |
| [MSE][Mac] Support painting MSE video-element to canvas |
| https://bugs.webkit.org/show_bug.cgi?id=125157 |
| <rdar://problem/23062016> |
| |
| Reviewed by Eric Carlson. |
| |
| Test: media/media-source/media-source-paint-to-canvas.html |
| |
| In order to have access to decoded video data for painting, decode the encoded samples manually |
| instead of adding them to the AVSampleBufferDisplayLayer. To facilitate doing so, add a new |
| utility class WebCoreDecompressionSession, which can decode samples and store them. |
| |
| For the purposes of this patch, to avoid double-decoding of video data and to avoid severe complication |
| of our sample delivery pipeline, we will only support painting of decoded video samples when the video is |
| not displayed in the DOM. |
| |
| * Modules/mediasource/MediaSource.cpp: |
| (WebCore::MediaSource::seekToTime): Always send waitForSeekCompleted() to give private a chance to delay seek completion. |
| * Modules/mediasource/SourceBuffer.cpp: |
| (WebCore::SourceBuffer::sourceBufferPrivateReenqueSamples): Added. |
| * Modules/mediasource/SourceBuffer.h: |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/cf/CoreMediaSoftLink.cpp: Added new soft link macros. |
| * platform/cf/CoreMediaSoftLink.h: Ditto. |
| * platform/cocoa/CoreVideoSoftLink.cpp: Ditto. |
| * platform/cocoa/CoreVideoSoftLink.h: Ditto. |
| * platform/graphics/SourceBufferPrivateClient.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::sampleBufferDisplayLayer): Simple accessor. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::decompressionSession): Ditto. |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC): |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): Update whether we should be displaying in a layer or decompression session.. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVisible): Ditto. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitForSeekCompleted): m_seeking is now an enum. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seeking): Ditto. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekCompleted): Ditto. If waiting for a video frame, delay completing seek. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::nativeImageForCurrentTime): Call updateLastImage() and return result. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastImage): Fetch the image for the current time. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paint): Pass to paintCurrentFrameInCanvas. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paintCurrentFrameInContext): Get a native image, and render it. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::acceleratedRenderingStateChanged): Create or destroy a layer or decompression session as appropriate. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer): Creates a layer. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyLayer): Destroys a layer. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureDecompressionSession): Creates a decompression session. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyDecompressionSession): Destroys a decompression session. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setHasAvailableVideoFrame): If seek completion delayed, complete now. Ditto for ready state change. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setReadyState): If waiting for a video frame, delay ready state change. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer): Deleted. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::removeDisplayLayer): Deleted. |
| * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm: |
| (WebCore::MediaSourcePrivateAVFObjC::hasVideo): Promote to a class function. |
| (WebCore::MediaSourcePrivateAVFObjC::hasSelectedVideo): Return whether any of the active source buffers have video and are selected. |
| (WebCore::MediaSourcePrivateAVFObjC::hasSelectedVideoChanged): Call setSourceBufferWithSelectedVideo(). |
| (WebCore::MediaSourcePrivateAVFObjC::setVideoLayer): Set (or clear) the layer on the selected buffer. |
| (WebCore::MediaSourcePrivateAVFObjC::setDecompressionSession): Ditto for decompression session. |
| (WebCore::MediaSourcePrivateAVFObjC::setSourceBufferWithSelectedVideo): Remove the layer and decompression session from the unselected |
| |
| buffer and add the decompression session or layer to the newly selected buffer. |
| (WebCore::MediaSourcePrivateAVFObjCHasVideo): Deleted. |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h: |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| (WebCore::SourceBufferPrivateAVFObjC::destroyRenderers): Clear the videoLayer and decompressionSession. |
| (WebCore::SourceBufferPrivateAVFObjC::hasSelectedVideo): Return whether the buffer has a selected video track. |
| (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): The media player now manages the video layer and decompression session lifetimes. |
| (WebCore::SourceBufferPrivateAVFObjC::flush): Flush the decompression session, if it exists. |
| (WebCore::SourceBufferPrivateAVFObjC::enqueueSample): Enqueue to the decompression session, if it exists. |
| (WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples): As the decompression session, if it exists. |
| (WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples): Tell the decompression session to stop requesting data, if it exists. |
| (WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples): Request media data from the decompression session, if it exists. |
| (WebCore::SourceBufferPrivateAVFObjC::setVideoLayer): Added. |
| (WebCore::SourceBufferPrivateAVFObjC::setDecompressionSession): Added. |
| * platform/graphics/cocoa/WebCoreDecompressionSession.h: Added. |
| (WebCore::WebCoreDecompressionSession::create): |
| (WebCore::WebCoreDecompressionSession::isInvalidated): |
| (WebCore::WebCoreDecompressionSession::createWeakPtr): |
| * platform/graphics/cocoa/WebCoreDecompressionSession.mm: Added. |
| (WebCore::WebCoreDecompressionSession::WebCoreDecompressionSession): Register for media data requests. |
| (WebCore::WebCoreDecompressionSession::invalidate): Unregister for same. |
| (WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaDataCallback): Pass to maybeBecomeReadyForMoreMediaData. |
| (WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaData): Check in-flight decodes, and decoded frame counts. |
| (WebCore::WebCoreDecompressionSession::enqueueSample): Pass the sample to be decoded on a background queue. |
| (WebCore::WebCoreDecompressionSession::decodeSample): Decode the sample. |
| (WebCore::WebCoreDecompressionSession::decompressionOutputCallback): Call handleDecompressionOutput. |
| (WebCore::WebCoreDecompressionSession::handleDecompressionOutput): Pass decoded sample to be enqueued on the main thread. |
| (WebCore::WebCoreDecompressionSession::getFirstVideoFrame): |
| (WebCore::WebCoreDecompressionSession::enqueueDecodedSample): Enqueue the frame (if it's a displayed frame). |
| (WebCore::WebCoreDecompressionSession::isReadyForMoreMediaData): Return whether we've hit our high water sample count. |
| (WebCore::WebCoreDecompressionSession::requestMediaDataWhenReady): |
| (WebCore::WebCoreDecompressionSession::stopRequestingMediaData): Unset the same. |
| (WebCore::WebCoreDecompressionSession::notifyWhenHasAvailableVideoFrame): Set a callback to notify when a decoded frame has been enqueued. |
| (WebCore::WebCoreDecompressionSession::imageForTime): Successively dequeue images until reaching one at or beyond the requested time. |
| (WebCore::WebCoreDecompressionSession::flush): Synchronously empty the producer and consumer queues. |
| (WebCore::WebCoreDecompressionSession::getDecodeTime): Utility method. |
| (WebCore::WebCoreDecompressionSession::getPresentationTime): Ditto. |
| (WebCore::WebCoreDecompressionSession::getDuration): Ditto. |
| (WebCore::WebCoreDecompressionSession::compareBuffers): Ditto. |
| * platform/cocoa/VideoToolboxSoftLink.cpp: Added. |
| * platform/cocoa/VideoToolboxSoftLink.h: Added. |
| |
| 2017-05-18 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| [REGRESSION](r216901): Delete ImageDecoder if BitmapImage::destroyDecodedData() was called to destroy all the decoded frames |
| https://bugs.webkit.org/show_bug.cgi?id=172325 |
| |
| Reviewed by Simon Fraser. |
| |
| When calling BitmapImage::destroyDecodedData() with destroyAll = true, the |
| current ImageDecoder has to be deleted regardless the current frame needs |
| to be cached or not. This is true except when the image is animating. |
| Creating a new ImageDecoder for the animated image will lead to decoding |
| all the frames from frame-zero till the current frame. |
| |
| Deleting the current ImageDecoder has the benefit of releasing its raster |
| data. We also must delete the current ImageDecoder when the CachedImage |
| switched its data SharedBuffer. |
| |
| The fix is return the condition in BitmapImage::destroyDecodedData() to |
| be as it was before r216901. |
| |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::destroyDecodedData): |
| |
| 2017-05-18 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r217079. |
| |
| This change broke internal builds. |
| |
| Reverted changeset: |
| |
| "Redundant ellipsis box triggers |
| ASSERT_WITH_SECURITY_IMPLICATION in InlineBox::parent()." |
| https://bugs.webkit.org/show_bug.cgi?id=172309 |
| http://trac.webkit.org/changeset/217079 |
| |
| 2017-05-18 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Release InjectedScripts when frontends close |
| https://bugs.webkit.org/show_bug.cgi?id=172313 |
| |
| Reviewed by Andreas Kling. |
| |
| * inspector/InspectorController.cpp: |
| (WebCore::InspectorController::disconnectFrontend): |
| Release inspector resources together, including discarding injected |
| scripts so that they may be collected. |
| |
| (WebCore::InspectorController::inspectedPageDestroyed): |
| (WebCore::InspectorController::disconnectAllFrontends): |
| Move the disconnect call inside of disconnectAllFrontends to establish |
| a pattern of releasing web inspector resources together. |
| |
| 2017-05-18 Simon Fraser <simon.fraser@apple.com> |
| |
| Add a newline after the URL in showLayerTree output. |
| |
| Reviewed by Zalan Bujtas. |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::showLayerTree): |
| |
| 2017-05-18 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Attachment drag preview should not have the attachment outline |
| https://bugs.webkit.org/show_bug.cgi?id=172327 |
| <rdar://problem/32282831> |
| |
| Reviewed by Tim Horton. |
| |
| When creating a drag image for an attachment element, don't include borders around the attachment. |
| |
| * page/DragController.cpp: |
| (WebCore::DragController::startDrag): |
| * rendering/RenderAttachment.h: |
| * rendering/RenderThemeIOS.mm: |
| (WebCore::RenderThemeIOS::paintAttachment): |
| |
| 2017-05-18 Youenn Fablet <youenn@apple.com> |
| |
| Make WebRTC logging happen in Release |
| https://bugs.webkit.org/show_bug.cgi?id=172307 |
| |
| Reviewed by Eric Carlson. |
| |
| No change of behavior. |
| Move from LOG(WebRTC...) to RELEASE_LOG(WebRTC...). |
| |
| * Modules/mediastream/PeerConnectionBackend.cpp: |
| (WebCore::PeerConnectionBackend::createOfferSucceeded): |
| (WebCore::PeerConnectionBackend::createOfferFailed): |
| (WebCore::PeerConnectionBackend::createAnswerSucceeded): |
| (WebCore::PeerConnectionBackend::createAnswerFailed): |
| (WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded): |
| (WebCore::PeerConnectionBackend::setLocalDescriptionFailed): |
| (WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded): |
| (WebCore::PeerConnectionBackend::setRemoteDescriptionFailed): |
| (WebCore::PeerConnectionBackend::addIceCandidateSucceeded): |
| (WebCore::PeerConnectionBackend::addIceCandidateFailed): |
| (WebCore::PeerConnectionBackend::newICECandidate): |
| (WebCore::PeerConnectionBackend::doneGatheringCandidates): |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::queuedCreateOffer): |
| (WebCore::RTCPeerConnection::queuedCreateAnswer): |
| (WebCore::RTCPeerConnection::queuedSetLocalDescription): |
| (WebCore::RTCPeerConnection::queuedSetRemoteDescription): |
| (WebCore::RTCPeerConnection::queuedAddIceCandidate): |
| |
| 2017-05-18 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] do not cache gUM permissions |
| https://bugs.webkit.org/show_bug.cgi?id=172245 |
| |
| Reviewed by Youenn Fablet. |
| |
| No new tests, updated fast/mediastream/MediaDevices-getUserMedia.html. |
| |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::RealtimeMediaSourceCenter::validateRequestConstraints): Add salt parameter. |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| |
| 2017-05-18 Zalan Bujtas <zalan@apple.com> |
| |
| Redundant ellipsis box triggers ASSERT_WITH_SECURITY_IMPLICATION in InlineBox::parent(). |
| https://bugs.webkit.org/show_bug.cgi?id=172309 |
| <rdar://problem/32262357> |
| |
| Reviewed by Simon Fraser. |
| |
| This patch stops the redundant ellipsis box trigger ASSERT_WITH_SECURITY_IMPLICATION. |
| |
| In RootInlineBox::placeEllipsis we construct an ellipsis box and append it to a static HashMap which |
| keeps track of the ellipsis boxes on each line. However when the line already has an ellipsis, we |
| re-use the existing one and this newly constructed (but redundant) box gets destroyed as we return from this function. |
| In InlineBox's d'tor, we let the parent know that now it has a dangling child and we assert on it |
| later, while accessing the children list. However this redundant ellipsis box was never added to the line, |
| so the assertion hits incorrectly. |
| |
| Test: fast/inline/redundant-ellipsis-triggers-assert-incorrectly.html |
| |
| * rendering/EllipsisBox.cpp: |
| (WebCore::EllipsisBox::EllipsisBox): |
| * rendering/InlineBox.cpp: |
| (WebCore::InlineBox::invalidateParentChildList): |
| * rendering/InlineBox.h: |
| * rendering/RootInlineBox.cpp: |
| (WebCore::RootInlineBox::placeEllipsis): Use the newly created ellipsis box instead. |
| |
| 2017-05-18 Andy Estes <aestes@apple.com> |
| |
| ENABLE(APPLE_PAY_DELEGATE) should be NO on macOS Sierra and earlier |
| https://bugs.webkit.org/show_bug.cgi?id=172305 |
| |
| Reviewed by Anders Carlsson. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2017-05-18 Dean Jackson <dino@apple.com> |
| |
| Transform misplaces element 50% of the time |
| https://bugs.webkit.org/show_bug.cgi?id=172300 |
| |
| Reviewed by Simon Fraser. |
| |
| A hardware-accelerated animation of the transform property |
| requires layout to happen if it contains a translate operation |
| using percentages, otherwise it may create an incorrect |
| animation. The "50% of the time" comes in to play because |
| the layout timer may sometimes fire before the animation |
| timer. The test case contains a example that is much more |
| likely to fail without this fix. |
| |
| Test: animations/needs-layout.html |
| |
| * page/animation/CSSAnimationController.cpp: |
| (WebCore::CSSAnimationControllerPrivate::animationTimerFired): If |
| we've been told that we need a layout, and we have one pending, then |
| force it before doing the rest of the animation logic. |
| (WebCore::CSSAnimationController::updateAnimations): Check if the |
| CompositeAnimation depends on layout, and tell the private controller |
| that it should check for the necessity of a layout as the animation |
| timer fires. |
| |
| * page/animation/CompositeAnimation.cpp: |
| (WebCore::CompositeAnimation::animate): Ask the keyframes if this |
| animation depends on layout. |
| |
| * page/animation/CompositeAnimation.h: |
| (WebCore::CompositeAnimation::hasAnimationThatDependsOnLayout): |
| * page/animation/KeyframeAnimation.cpp: |
| (WebCore::KeyframeAnimation::KeyframeAnimation): |
| (WebCore::KeyframeAnimation::computeLayoutDependency): Look at all |
| the keyframe properties for something that is a translation using |
| percentages. |
| |
| * page/animation/KeyframeAnimation.h: |
| |
| 2017-05-18 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Selection around attachment elements should not persist when beginning a drag |
| https://bugs.webkit.org/show_bug.cgi?id=172319 |
| <rdar://problem/32283008> |
| |
| Reviewed by Tim Horton. |
| |
| When beginning to drag an attachment element, save and restore the visible selection when calling out to the |
| injected bundle for additional data, and when creating the drag image. |
| |
| Augmented an existing API test: DataInteractionTests.AttachmentElementItemProviders. |
| |
| * page/DragController.cpp: |
| (WebCore::DragController::startDrag): |
| |
| 2017-05-18 Daniel Bates <dabates@apple.com> |
| |
| Cleanup: Remove unused functions from RuntimeEnabledFeatures |
| https://bugs.webkit.org/show_bug.cgi?id=172315 |
| |
| Reviewed by Jer Noble. |
| |
| * page/RuntimeEnabledFeatures.cpp: |
| (WebCore::RuntimeEnabledFeatures::htmlMediaElementEnabled): Deleted. |
| (WebCore::RuntimeEnabledFeatures::htmlVideoElementEnabled): Deleted. |
| (WebCore::RuntimeEnabledFeatures::htmlSourceElementEnabled): Deleted. |
| (WebCore::RuntimeEnabledFeatures::mediaControllerEnabled): Deleted. |
| (WebCore::RuntimeEnabledFeatures::mediaErrorEnabled): Deleted. |
| (WebCore::RuntimeEnabledFeatures::timeRangesEnabled): Deleted. |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::setDOMIteratorEnabled): Deleted. |
| (WebCore::RuntimeEnabledFeatures::domIteratorEnabled): Deleted. |
| (WebCore::RuntimeEnabledFeatures::setGeolocationEnabled): Deleted. |
| (WebCore::RuntimeEnabledFeatures::geolocationEnabled): Deleted. |
| |
| 2017-05-18 Daniel Bates <dabates@apple.com> |
| |
| Improve error message for Access-Control-Allow-Origin violation due to misconfigured server |
| https://bugs.webkit.org/show_bug.cgi?id=162819 |
| <rdar://problem/28575938> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Inspired by Blink change: |
| <https://src.chromium.org/viewvc/blink?view=revision&revision=163406> |
| |
| At most one Access-Control-Allow-Origin header may be in an HTTP response. Improve the |
| error message emitted on a CORS failure when Access-Control-Allow-Origin contains more |
| than one origin, indicated by the presence of a ',', as a way to help web developers/server |
| administrators differentiate between a misconfigured Access-Control-Allow-Origin header |
| and a misconfigured server. |
| |
| * loader/CrossOriginAccessControl.cpp: |
| (WebCore::passesAccessControlCheck): Defined a local variable to hold the value of securityOrigin.toString() |
| and referenced this variable throughout the code to avoid computing the stringified security |
| origin more than once. Switched to using makeString() to concatenate error message when the |
| origin of the page does not match the value of the Access-Control-Allow-Origin header. |
| |
| 2017-05-18 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Grandfather domains for existing data records |
| https://bugs.webkit.org/show_bug.cgi?id=172155 |
| <rdar://problem/24913532> |
| |
| Reviewed by Alex Christensen. |
| |
| Test: http/tests/loading/resourceLoadStatistics/grandfathering.html |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::setGrandfathered): |
| (WebCore::ResourceLoadObserver::isGrandfathered): |
| (WebCore::ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval): |
| (WebCore::ResourceLoadObserver::setGrandfatheringTime): |
| Functions for testing and configuration. |
| ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval() changed as a result of moving |
| WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval() here. |
| * loader/ResourceLoadObserver.h: |
| * loader/ResourceLoadStatisticsStore.cpp: |
| (WebCore::ResourceLoadStatisticsStore::createEncoderFromData): |
| (WebCore::ResourceLoadStatisticsStore::readDataFromDecoder): |
| Now contains endOfGrandfatheringTimestamp. |
| (WebCore::ResourceLoadStatisticsStore::clearInMemoryAndPersistent): |
| Now makes a call to m_grandfatherExistingWebsiteDataHandler(). |
| (WebCore::ResourceLoadStatisticsStore::setGrandfatherExistingWebsiteDataCallback): |
| (WebCore::ResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval): |
| Changed as a result of moving |
| WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval() here. |
| (WebCore::ResourceLoadStatisticsStore::setGrandfatheringTime): |
| (WebCore::ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor): |
| Renamed since it now also takes grandfathering into account. |
| (WebCore::ResourceLoadStatisticsStore::updateStatisticsForRemovedDataRecords): |
| Fixed typo in local variable name. |
| (WebCore::ResourceLoadStatisticsStore::handleFreshStartWithEmptyOrNoStore): |
| (WebCore::ResourceLoadStatisticsStore::shouldRemoveDataRecords): |
| Convenience function added. |
| (WebCore::ResourceLoadStatisticsStore::dataRecordsBeingRemoved): |
| Convenience function added. |
| (WebCore::ResourceLoadStatisticsStore::dataRecordsWereRemoved): |
| Convenience function added. |
| (WebCore::ResourceLoadStatisticsStore::prevalentResourceDomainsWithoutUserInteraction): Deleted. |
| Replaced by ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor(). |
| * loader/ResourceLoadStatisticsStore.h: |
| |
| 2017-05-18 Daniel Bates <dabates@apple.com> |
| |
| Bindings: Require value for extended attributes EnabledAtRuntime and EnabledForWorld |
| https://bugs.webkit.org/show_bug.cgi?id=172252 |
| |
| Reviewed by Sam Weinig. |
| |
| According to Sam Weinig it is an anti-feature that EnabledAtRuntime can be specified |
| without a value. We should make it require a value for the name of the RuntimeEnabledFeatures |
| function to use in the generated code. For similar reasons we should also require |
| a value for the extended attribute EnabledForWorld. |
| |
| * Modules/websockets/WebSocket.idl: Substitute EnabledAtRuntime=WebSocket for EnabledAtRuntime. |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GetRuntimeEnableFunctionName): |
| * html/HTMLAudioElement.idl: Substitute EnabledAtRuntime=Audio for EnabledAtRuntime. |
| * page/RuntimeEnabledFeatures.cpp: |
| (WebCore::RuntimeEnabledFeatures::audioEnabled): |
| (WebCore::RuntimeEnabledFeatures::htmlAudioElementEnabled): Deleted. This function duplicated |
| the functionality of RuntimeEnabledFeatures::audioEnabled(). Instead we explicitly |
| write EnabledAtRuntime=Audio in HTMLAudioElement.idl to use RuntimeEnabledFeatures::audioEnabled() |
| to determine whether to expose/conceal the HTMLAudioElement global constructor at runtime. |
| * page/RuntimeEnabledFeatures.h: |
| |
| 2017-05-18 Jer Noble <jer.noble@apple.com> |
| |
| Allow nested timers to propagate user gestures so long as the total nested interval is less than 1s. |
| https://bugs.webkit.org/show_bug.cgi?id=172173 |
| |
| Reviewed by Andy Estes. |
| |
| Test: media/restricted-audio-playback-with-multiple-settimeouts.html |
| |
| Store the current nested timer interval in DOMTimerFireState, and use that value to propagate the |
| nested interval through multiple invocations of setTimeout(). |
| |
| Drive-by fix: instead of manually resetting the nesting level in DOMTimer::fired(), add the |
| nesting level to the DOMTimerFireState, and reset the nesting level on the state's destruction. |
| This fixes one place in DOMTimer::fire() where an early return lead to the timer's nesting level |
| not being reset. |
| |
| * page/DOMTimer.cpp: |
| (WebCore::DOMTimerFireState::DOMTimerFireState): |
| (WebCore::DOMTimerFireState::~DOMTimerFireState): |
| (WebCore::DOMTimerFireState::nestedTimerInterval): |
| (WebCore::shouldForwardUserGesture): |
| (WebCore::userGestureTokenToForward): |
| (WebCore::currentNestedTimerInterval): |
| (WebCore::DOMTimer::DOMTimer): |
| (WebCore::DOMTimer::fired): |
| * page/DOMTimer.h: |
| |
| 2017-05-18 Youenn Fablet <youenn@apple.com> |
| |
| RealtimeOutgoingAudioSource should use the source sample rate |
| https://bugs.webkit.org/show_bug.cgi?id=172297 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by manual tests. |
| |
| * platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp: |
| (WebCore::RealtimeOutgoingAudioSource::audioSamplesAvailable): Using the audio source sample rate so that the converter does the right conversion. |
| |
| 2017-05-18 Andy Estes <aestes@apple.com> |
| |
| Add "countryCode" to ApplePayErrorContactField |
| https://bugs.webkit.org/show_bug.cgi?id=172264 |
| <rdar://problem/32004909> |
| |
| Reviewed by Anders Carlsson. |
| |
| Added ApplePayError tests to http/tests/ssl/applepay/ApplePaySession.html |
| |
| * Modules/applepay/ApplePayError.idl: |
| * Modules/applepay/PaymentRequest.h: |
| |
| 2017-05-18 Daniel Bates <dabates@apple.com> |
| |
| Cleanup: Remove unnecessary call to AddToImplIncludes("RuntimeEnabledFeatures.h") in GenerateImplementation() |
| https://bugs.webkit.org/show_bug.cgi?id=172236 |
| |
| Reviewed by Chris Dumez. |
| |
| It is unnecessary for GenerateImplementation() to explicitly call AddToImplIncludes("RuntimeEnabledFeatures.h") |
| to add the header RuntimeEnabledFeatures.h to the list of headers in the generated implementation |
| as this header is added when GetRuntimeEnableFunctionName() is called. And GenerateImplementation() |
| calls GetRuntimeEnableFunctionName(). |
| |
| No functionality changed. So, no new tests. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateImplementation): |
| |
| 2017-05-18 Daniel Bates <dabates@apple.com> |
| |
| REGRESSION (r209608): Cross-origin plugin document opened in child window blocked by parent |
| window CSP when object-src 'none' is set |
| https://bugs.webkit.org/show_bug.cgi?id=172038 |
| <rdar://problem/32258262> |
| |
| Reviewed by Andy Estes. |
| |
| Fixes an issue where a cross-origin plugin document opened in a child window would inherit |
| the Content Security Policy (CSP) of its opener. In particular, a cross-origin plugin |
| document opened in a child window would be blocked when the CSP of its opener disallows |
| plugins (e.g. object-source 'none'). |
| |
| Prior to r209608 a document opened in a child window never inherited the CSP from its opener |
| and a plugin document loaded in a subframe would unconditionally inherit the CSP from its |
| parent frame. So, a plugin document opened in a child window would be allowed to load |
| regardless of whether its opener had a CSP that prevented plugins. Following r209608 a |
| document opened in a child window would inherit its CSP from its opener if and only if it |
| would inherit the security origin from its opener (e.g. about:blank) or was a plugin |
| document. The latter condition makes plugin documents opened in a child window unconditionally |
| inherit the CSP from their opener and is the cause of this bug. It seems reasonable to exempt |
| cross-origin plugin documents opened in a child window from the CSP inheritance rule because |
| such documents cannot compromise the origin of their opener. Same-origin plugin documents |
| opened in a child window will continue to inherit the CSP from their opener because such |
| documents can compromise the origin of their opener. |
| |
| Tests: http/tests/security/contentSecurityPolicy/cross-origin-plugin-document-allowed-in-child-window.html |
| http/tests/security/contentSecurityPolicy/plugin-blocked-in-about-blank-window.html |
| http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::shouldInheritContentSecurityPolicyFromOwner): Added. |
| (WebCore::Document::initContentSecurityPolicy): |
| * dom/Document.h: |
| |
| 2017-05-18 Keith Miller <keith_miller@apple.com> |
| |
| WebAssembly API: test with neutered inputs |
| https://bugs.webkit.org/show_bug.cgi?id=163899 |
| |
| Reviewed by JF Bastien. |
| |
| Make it not possible to transfer an ArrayBuffer that is backed by a |
| wasm memory. |
| |
| Test: workers/wasm-mem-post-message.html |
| |
| * bindings/js/SerializedScriptValue.cpp: |
| (WebCore::SerializedScriptValue::create): |
| |
| 2017-05-18 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r217031, r217032, and r217037. |
| https://bugs.webkit.org/show_bug.cgi?id=172293 |
| |
| cause linking errors in Windows (Requested by yusukesuzuki on |
| #webkit). |
| |
| Reverted changesets: |
| |
| "[JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass" |
| https://bugs.webkit.org/show_bug.cgi?id=172098 |
| http://trac.webkit.org/changeset/217031 |
| |
| "Unreviewed, rebaseline for newly added ClassInfo" |
| https://bugs.webkit.org/show_bug.cgi?id=172098 |
| http://trac.webkit.org/changeset/217032 |
| |
| "Unreviewed, fix debug and non-JIT build" |
| https://bugs.webkit.org/show_bug.cgi?id=172098 |
| http://trac.webkit.org/changeset/217037 |
| |
| 2017-05-18 Per Arne Vollan <pvollan@apple.com> |
| |
| Protect MediaDeviceRequest instance during context destruction. |
| https://bugs.webkit.org/show_bug.cgi?id=172285 |
| <rdar://problem/30369017> |
| |
| Reviewed by Brent Fulgham. |
| |
| In MediaDevicesRequest::contextDestroyed(), the call to m_enumerationRequest->cancel() might |
| end up deleting itself (MediaDevicesRequest). The std::function member m_completionHandler |
| in MediaDevicesEnumerationRequest contains a captured variable of type |
| RefPtr<MediaDevicesRequest>. When m_completionHandler is set to null in the cancel() method, |
| the MediaDevicesRequest object will be deleted if the m_completionHandler member is holding |
| the last reference. |
| |
| No new tests, since I am unable to reproduce. |
| |
| * Modules/mediastream/MediaDevicesRequest.cpp: |
| (WebCore::MediaDevicesRequest::contextDestroyed): |
| |
| 2017-05-18 Antti Koivisto <antti@apple.com> |
| |
| Design mode should not affect UA shadow trees |
| https://bugs.webkit.org/show_bug.cgi?id=171854 |
| <rdar://problem/32071037> |
| |
| Reviewed by Zalan Bujtas. |
| |
| Test: editing/deleting/search-shadow-tree-delete.html |
| |
| * html/HTMLElement.cpp: |
| (WebCore::HTMLElement::editabilityFromContentEditableAttr): |
| |
| Ignore design mode for UA shadow trees. |
| |
| * html/SearchInputType.cpp: |
| (WebCore::SearchInputType::~SearchInputType): |
| (WebCore::SearchInputType::createShadowSubtree): |
| (WebCore::SearchInputType::resultsButtonElement): |
| (WebCore::SearchInputType::cancelButtonElement): |
| * html/SearchInputType.h: |
| |
| Use RefPtr. |
| |
| 2017-05-18 Vanessa Chipirrás Navalón <vchipirras@igalia.com> |
| |
| [GTK][GStreamer][MSE] Crash on youtube when MSE is enabled but gstreamer cant find the decoder element. |
| https://bugs.webkit.org/show_bug.cgi?id=167120 |
| |
| Reviewed by Žan Doberšek. |
| |
| This is because supportCodecs() doesn't check in runtime which plugins the player has. |
| So, a static function which returns a map with the plugins has been created. That map is later |
| used in the supportsCodecs() method to check if the requested codec matches any of the map. |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::initializeGStreamerAndRegisterWebKitElements): |
| The declaration is moved into this class. |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::MediaPlayerPrivateGStreamer::isAvailable): This function calls the implementation of |
| initializeGstreamerAndRegisterWebKitElements function. |
| (WebCore::MediaPlayerPrivateGStreamer::load): Ditto |
| (WebCore::mimeTypeSet): Ditto |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: It is static type to expose |
| initializeGStreamerAndRegisterWebKitElements() function to be called from internal function |
| "which runs before MediaPlayerPrivateGStreamerBase initialization but needs to have GStreamer initialized". |
| * platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp: |
| (WebCore::codecSet): It returns a map with the plugins has been created. |
| (WebCore::MediaPlayerPrivateGStreamerMSE::supportsCodecs): To check if the requested codec |
| matches any of the map from codecSet(). |
| |
| 2017-05-18 Romain Bellessort <romain.bellessort@crf.canon.fr> |
| |
| [Readable Streams API] Align getDesiredSize with spec |
| https://bugs.webkit.org/show_bug.cgi?id=172220 |
| |
| Reviewed by Chris Dumez. |
| |
| Aligned implementation of getDesiredSize operation for both controllers: |
| - https://streams.spec.whatwg.org/#readable-stream-default-controller-get-desired-size |
| - https://streams.spec.whatwg.org/#readable-byte-stream-controller-get-desired-size |
| |
| Implementation slightly differs from spec as queueTotalSize refactoring is not |
| yet implemented, but behavior is now similar. |
| |
| No new tests (already covered by WPT tests, corresponding expectations have been updated). |
| |
| * Modules/streams/ReadableByteStreamInternals.js: |
| (readableByteStreamControllerGetDesiredSize): Updated. |
| * Modules/streams/ReadableStreamInternals.js: |
| (readableStreamDefaultControllerGetDesiredSize): Updated. |
| |
| 2017-05-18 Tim Horton <timothy_horton@apple.com> |
| |
| More WebKit2 header cleanup |
| https://bugs.webkit.org/show_bug.cgi?id=172214 |
| |
| Reviewed by Simon Fraser. |
| |
| * Modules/mediastream/UserMediaController.cpp: |
| * Modules/mediastream/UserMediaController.h: |
| |
| 2017-05-16 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass |
| https://bugs.webkit.org/show_bug.cgi?id=172098 |
| |
| Reviewed by Saam Barati. |
| |
| Add DOMJIT interface IDL attribute. Which allows us to define checkSubClassPatchpoint function |
| for that ClassInfo. And we move CheckSubClass patchpoint implementation to ClassInfo's member. |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSDOMGlobalObject.cpp: |
| * bindings/js/JSDOMWindowBase.cpp: |
| * bindings/js/JSDOMWindowProperties.cpp: |
| * bindings/js/JSDOMWindowShell.cpp: |
| * bindings/js/JSReadableStreamPrivateConstructors.cpp: |
| * bindings/js/JSWorkerGlobalScopeBase.cpp: |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateHeader): |
| (GenerateImplementation): |
| (GenerateImplementationIterableFunctions): |
| (GenerateConstructorHelperMethods): |
| * bindings/scripts/IDLAttributes.json: |
| * bindings/scripts/test/JS/JSInterfaceName.cpp: |
| * bindings/scripts/test/JS/JSMapLike.cpp: |
| * bindings/scripts/test/JS/JSReadOnlyMapLike.cpp: |
| * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactions.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp: |
| * bindings/scripts/test/JS/JSTestCallbackInterface.cpp: |
| * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp: |
| * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: |
| * bindings/scripts/test/JS/JSTestDOMJIT.cpp: |
| * bindings/scripts/test/JS/JSTestDOMJIT.h: |
| * bindings/scripts/test/JS/JSTestEventConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestEventTarget.cpp: |
| * bindings/scripts/test/JS/JSTestException.cpp: |
| * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: |
| * bindings/scripts/test/JS/JSTestGlobalObject.cpp: |
| * bindings/scripts/test/JS/JSTestInterface.cpp: |
| * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp: |
| * bindings/scripts/test/JS/JSTestIterable.cpp: |
| * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: |
| * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestNode.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/JSTestPromiseRejectionEvent.cpp: |
| * bindings/scripts/test/JS/JSTestSerialization.cpp: |
| * bindings/scripts/test/JS/JSTestSerializationInherit.cpp: |
| * bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp: |
| * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: |
| * bindings/scripts/test/JS/JSTestTypedefs.cpp: |
| * bridge/c/CRuntimeObject.cpp: |
| * bridge/c/c_instance.cpp: |
| * bridge/objc/ObjCRuntimeObject.mm: |
| * bridge/objc/objc_instance.mm: |
| * bridge/objc/objc_runtime.mm: |
| * bridge/runtime_array.cpp: |
| * bridge/runtime_method.cpp: |
| * bridge/runtime_object.cpp: |
| * dom/Document.idl: |
| * dom/DocumentFragment.idl: |
| * dom/Element.idl: |
| * dom/Event.idl: |
| * dom/Node.idl: |
| * domjit/JSDocumentDOMJIT.cpp: |
| (WebCore::JSDocument::checkSubClassPatchpoint): |
| (WebCore::DocumentDocumentElementDOMJIT::checkDOM): Deleted. |
| (WebCore::DocumentBodyDOMJIT::checkDOM): Deleted. |
| * domjit/JSDocumentFragmentDOMJIT.cpp: Copied from Source/JavaScriptCore/runtime/JSMap.cpp. |
| (WebCore::JSDocumentFragment::checkSubClassPatchpoint): |
| * domjit/JSElementDOMJIT.cpp: Copied from Source/JavaScriptCore/tools/JSDollarVM.cpp. |
| (WebCore::JSElement::checkSubClassPatchpoint): |
| * domjit/JSEventDOMJIT.cpp: Copied from Source/JavaScriptCore/tools/JSDollarVM.cpp. |
| (WebCore::JSEvent::checkSubClassPatchpoint): |
| * domjit/JSNodeDOMJIT.cpp: |
| (WebCore::JSNode::checkSubClassPatchpoint): |
| (WebCore::NodeFirstChildDOMJIT::checkDOM): Deleted. |
| (WebCore::NodeLastChildDOMJIT::checkDOM): Deleted. |
| (WebCore::NodeNextSiblingDOMJIT::checkDOM): Deleted. |
| (WebCore::NodePreviousSiblingDOMJIT::checkDOM): Deleted. |
| (WebCore::NodeParentNodeDOMJIT::checkDOM): Deleted. |
| (WebCore::NodeNodeTypeDOMJIT::checkDOM): Deleted. |
| (WebCore::NodeOwnerDocumentDOMJIT::checkDOM): Deleted. |
| |
| 2017-05-17 Youenn Fablet <youenn@apple.com> |
| |
| r216999 broke win build |
| https://bugs.webkit.org/show_bug.cgi?id=172257 |
| |
| Unreviewed. |
| |
| * testing/Internals.cpp: |
| (WebCore::Internals::setPageVisibility): Moving setPageVisibility out of MEDIA_STREAM compilation flag. |
| |
| 2017-05-17 Andy Estes <aestes@apple.com> |
| |
| [Cocoa] errors are not propagated to PassKit when calling ApplePaySession.completePayment() |
| https://bugs.webkit.org/show_bug.cgi?id=172253 |
| <rdar://problem/32258020> |
| |
| Reviewed by Dan Bernstein. |
| |
| In ApplePaySession::completePayment(), releaseReturnValue() was being called twice on the |
| same convertedResult. Since the first call moved the errors vector out of convertedResult, |
| the vector is empty in the second call. It's the second call that sends the result to the |
| UI process, so we end up with an empty arary when we call PassKit's delegate completion |
| handler. |
| |
| * Modules/applepay/ApplePaySession.cpp: |
| (WebCore::ApplePaySession::completePayment): |
| |
| 2017-05-17 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r217014. |
| |
| This change caused mac-wk2 LayoutTests to exit early due to |
| crashes. |
| |
| Reverted changeset: |
| |
| "Resource Load Statistics: Grandfather domains for existing |
| data records" |
| https://bugs.webkit.org/show_bug.cgi?id=172155 |
| http://trac.webkit.org/changeset/217014 |
| |
| 2017-05-17 Zalan Bujtas <zalan@apple.com> |
| |
| Tighten TextIterator::handleTextNode run-renderer mapping logic. |
| https://bugs.webkit.org/show_bug.cgi?id=172174 |
| |
| Reviewed by Antti Koivisto. |
| |
| This patch ensure that when runs and renderers are getting out of sync |
| we don't run into problems like webkit.org/b/172113 (where we end up |
| using incorrect content start/end positions). |
| |
| * editing/TextIterator.cpp: |
| (WebCore::TextIterator::handleTextNode): |
| |
| 2017-05-17 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Grandfather domains for existing data records |
| https://bugs.webkit.org/show_bug.cgi?id=172155 |
| <rdar://problem/24913532> |
| |
| Reviewed by Alex Christensen. |
| |
| Test: http/tests/loading/resourceLoadStatistics/grandfathering.html |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::setGrandfathered): |
| (WebCore::ResourceLoadObserver::isGrandfathered): |
| (WebCore::ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval): |
| (WebCore::ResourceLoadObserver::setGrandfatheringTime): |
| Functions for testing and configuration. |
| ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval() changed as a result of moving |
| WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval() here. |
| * loader/ResourceLoadObserver.h: |
| * loader/ResourceLoadStatisticsStore.cpp: |
| (WebCore::ResourceLoadStatisticsStore::createEncoderFromData): |
| (WebCore::ResourceLoadStatisticsStore::readDataFromDecoder): |
| Now contains endOfGrandfatheringTimestamp. |
| (WebCore::ResourceLoadStatisticsStore::clearInMemoryAndPersistent): |
| Now makes a call to m_grandfatherExistingWebsiteDataHandler(). |
| (WebCore::ResourceLoadStatisticsStore::setGrandfatherExistingWebsiteDataCallback): |
| (WebCore::ResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval): |
| Changed as a result of moving |
| WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval() here. |
| (WebCore::ResourceLoadStatisticsStore::setGrandfatheringTime): |
| (WebCore::ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor): |
| Renamed since it now also takes grandfathering into account. |
| (WebCore::ResourceLoadStatisticsStore::updateStatisticsForRemovedDataRecords): |
| Fixed typo in local variable name. |
| (WebCore::ResourceLoadStatisticsStore::handleFreshStartWithEmptyOrNoStore): |
| (WebCore::ResourceLoadStatisticsStore::shouldRemoveDataRecords): |
| Convenience function added. |
| (WebCore::ResourceLoadStatisticsStore::dataRecordsBeingRemoved): |
| Convenience function added. |
| (WebCore::ResourceLoadStatisticsStore::dataRecordsWereRemoved): |
| Convenience function added. |
| (WebCore::ResourceLoadStatisticsStore::prevalentResourceDomainsWithoutUserInteraction): Deleted. |
| Replaced by ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor(). |
| * loader/ResourceLoadStatisticsStore.h: |
| |
| 2017-05-17 Zalan Bujtas <zalan@apple.com> |
| |
| Debug ASSERT: WebCore::RenderImageResource::shutdown |
| https://bugs.webkit.org/show_bug.cgi?id=172238 |
| <rdar://problem/30064601> |
| |
| Reviewed by Simon Fraser. |
| |
| While constructing new renderers, as part of the render tree update, we check if the insertion point is valid for them. |
| When this newly constructed child renderer can't be injected to a specific place, we destroy it right away. |
| This assert was added with the assumption that the image resource object gets initialized |
| (through RenderObject::initializeStyle) even when the renderer turns out to be invalid. |
| |
| Test: fast/images/assert-when-insertion-point-is-incorrect.html |
| |
| * rendering/RenderImageResource.cpp: |
| (WebCore::RenderImageResource::RenderImageResource): |
| (WebCore::RenderImageResource::shutdown): |
| * rendering/RenderImageResource.h: |
| |
| 2017-05-17 Per Arne Vollan <pvollan@apple.com> |
| |
| Crash under WebCore::AudioSourceProviderAVFObjC::process(). |
| https://bugs.webkit.org/show_bug.cgi?id=172101 |
| rdar://problem/27446589 |
| |
| Reviewed by Jer Noble. |
| |
| Calling the function MTAudioProcessingTapGetSourceAudio when the value of the |
| MTAudioProcessingTapRef parameter is null, will lead to a null dereference. |
| This can for example happen if MediaPlayerPrivateAVFoundationObjC::cancelLoad() |
| is called on the main thread while MediaToolbox is calling the |
| WebCore::AudioSourceProviderAVFObjC::processCallback function on a secondary |
| thread. MediaPlayerPrivateAVFoundationObjC::cancelLoad() will then call |
| AudioSourceProviderAVFObjC::setPlayerItem(nullptr), which will call |
| AudioSourceProviderAVFObjC::destroyMix(), which will set m_tap to null. When |
| AudioSourceProviderAVFObjC::process is called on the secondary thread, using |
| the m_tap member in the call to MTAudioProcessingTapGetSourceAudio, the process |
| will crash. |
| |
| No new tests since I am not able to reproduce. |
| |
| * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm: |
| (WebCore::AudioSourceProviderAVFObjC::initCallback): |
| (WebCore::AudioSourceProviderAVFObjC::process): |
| |
| 2017-05-17 Chris Dumez <cdumez@apple.com> |
| |
| Setting URL.search to '' results in a stringified URL ending in '?' |
| https://bugs.webkit.org/show_bug.cgi?id=162345 |
| <rdar://problem/31800441> |
| |
| Reviewed by Alex Christensen. |
| |
| As per the specification for the URL.search setter [1], if the given value is |
| the empty string, then we should set the URL's query to null. We would |
| previously set the URL's query to the empty string in this case. This aligns |
| our behavior with Firefox and Chrome. |
| |
| [1] https://url.spec.whatwg.org/#dom-url-search |
| |
| No new tests, updated existing tests. |
| |
| * html/URLUtils.h: |
| (WebCore::URLUtils<T>::setSearch): |
| |
| 2017-05-17 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] videoWidth and videoHeight should be set when 'loadedmetadata' event fires |
| https://bugs.webkit.org/show_bug.cgi?id=172223 |
| <rdar://problem/31899755> |
| |
| Reviewed by Jer Noble. |
| |
| Test: fast/mediastream/get-user-media-on-loadedmetadata.html |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentReadyState): If a stream has |
| a video track, return HaveNothing until we have a sample. |
| |
| * platform/mediastream/RealtimeMediaSource.h: |
| * platform/mock/MockRealtimeAudioSource.cpp: |
| (WebCore::MockRealtimeAudioSource::tick): Optionally delay the next sample. |
| (WebCore::MockRealtimeAudioSource::delaySamples): |
| * platform/mock/MockRealtimeAudioSource.h: |
| |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSource::delaySamples): |
| (WebCore::MockRealtimeVideoSource::generateFrame): Optionally delay the next sample. |
| * platform/mock/MockRealtimeVideoSource.h: |
| |
| * testing/Internals.cpp: |
| (WebCore::Internals::delayMediaStreamTrackSamples): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-05-17 Youenn Fablet <youenn@apple.com> |
| |
| iOS WebRTC Media Capture should not allow camera capture from background tab |
| https://bugs.webkit.org/show_bug.cgi?id=172200 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: platform/ios/mediastream/getUserMedia-disabled-in-background-tabs.html and manual tests. |
| |
| Making Video Capture Factory aware of Document visibility changes. |
| On iOS, muting/unmuting the current video source according Document visibility. |
| Not using Document visibility change observer as factories are platform and cannot implement |
| the visibility observer interface without moving the visibility observer interface. |
| |
| Introducing internals API to switch on/off the page visibility. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::visibilityStateChanged): |
| (WebCore::Document::notifyVisibilityChangedToMediaCapture): |
| * dom/Document.h: |
| * platform/mediastream/RealtimeMediaSource.h: |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::RealtimeMediaSourceCenter::setVisibility): |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSourceFactory::setVisibility): |
| * testing/Internals.cpp: |
| (WebCore::Internals::setPageVisibility): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-05-17 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| When the image decoding thread makes a callOnMainThread(), ensure all the objects it needs are protected |
| https://bugs.webkit.org/show_bug.cgi?id=171614 |
| |
| Reviewed by David Kilzer. |
| |
| The asynchronous image decoding was designed to not block the main thread if |
| the image is deleted. To achieve that we allow decoding the current frame |
| even if it is not going to be used after closing the decoding queue. We |
| protect all the objects which the decoding thread uses. But when a frame |
| finishes decoding the native image frame is cached on the main thread. Not |
| all of the objects are protected when the callOnMainThread() is dispatched. |
| The ImageFrameCache and the ImageDecoder objects are not protected. |
| |
| This might lead to two kinds of crashes: |
| 1. A segfault inside the ImageDecoder trying to access one of its member |
| 2. A segfault inside the ImageFrameCache trying to access one of its frames |
| |
| The fix is to protect the ImageFrameCache and the ImageDecoder when the |
| decoding thread makes a callOnMainThread(). Also switch all the pointers |
| the decoding threads protect to be ThreadSafeRefCounted. |
| |
| * platform/graphics/ImageFrameCache.cpp: |
| (WebCore::ImageFrameCache::startAsyncDecodingQueue): |
| * platform/graphics/ImageFrameCache.h: |
| * platform/graphics/cg/ImageDecoderCG.h: |
| * platform/graphics/win/ImageDecoderDirect2D.h: |
| * platform/image-decoders/ImageDecoder.h: |
| |
| 2017-05-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| A URL type is vended for a non-URL plain text string when starting data interaction |
| https://bugs.webkit.org/show_bug.cgi?id=172228 |
| <rdar://problem/32166729> |
| |
| Reviewed by Andy Estes. |
| |
| Previously, when writing a plain text string to WebItemProviderPasteboard, we would write an NSString directly |
| to the item provider by using built-in functionality in NSString+UIItemProvider. However, this causes plain |
| strings such as "apple" to be considered URLs, since -[NSURL URLWithString:] creates a non-null NSURL. To fix |
| this, we instead write the string as UTF8 data, for the UTI kUTTypeUTF8PlainText, if the plain text is not a |
| URL. If the plain text is clearly a URL (determined by constructing a new WebCore URL with no base URL and the |
| plaintext string as the absolute URL) then we additionally write an NSURL to the pasteboard. |
| |
| 2 new API tests: |
| DataInteractionTests.SinglePlainTextWordTypeIdentifiers |
| DataInteractionTests.SinglePlainTextURLTypeIdentifiers |
| |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::addRepresentationsForPlainText): |
| (WebCore::PlatformPasteboard::writeObjectRepresentations): |
| |
| 2017-05-15 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Replace CryptoOperationData with BufferSource for WebKitSubtleCrypto |
| https://bugs.webkit.org/show_bug.cgi?id=172146 |
| <rdar://problem/32122256> |
| |
| Reviewed by Brent Fulgham. |
| |
| In this patch, we replaces CryptoOperationData with BufferSource for WebKitSubtleCrypto in |
| the custom binding codes. |
| |
| Test: crypto/webkitSubtle/import-export-raw-key-leak.html |
| |
| * bindings/js/JSWebKitSubtleCryptoCustom.cpp: |
| (WebCore::JSWebKitSubtleCrypto::encrypt): |
| (WebCore::JSWebKitSubtleCrypto::decrypt): |
| (WebCore::JSWebKitSubtleCrypto::sign): |
| (WebCore::JSWebKitSubtleCrypto::verify): |
| (WebCore::JSWebKitSubtleCrypto::digest): |
| (WebCore::JSWebKitSubtleCrypto::importKey): |
| (WebCore::JSWebKitSubtleCrypto::unwrapKey): |
| * crypto/WebKitSubtleCrypto.idl: |
| |
| 2017-05-17 Youenn Fablet <youenn@apple.com> |
| |
| Move-related refactoring on UserMediaPermissionRequestProxy |
| https://bugs.webkit.org/show_bug.cgi?id=172195 |
| |
| Reviewed by Alex Christensen. |
| |
| No behavioral change. |
| |
| * platform/mediastream/RealtimeMediaSourceCenter.h: Cleaning the function definition. |
| |
| 2017-05-17 David Kilzer <ddkilzer@apple.com> |
| |
| BlobDataFileReference::generateReplacementFile() should use mkstemp() |
| <https://webkit.org/b/172192> |
| |
| Reviewed by Brent Fulgham. |
| |
| * platform/network/mac/BlobDataFileReferenceMac.mm: |
| (WebCore::BlobDataFileReference::generateReplacementFile): Use |
| mkstemp(). |
| |
| 2017-05-17 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r216974. |
| |
| Revision caused consistent timeouts on all platforms. |
| |
| Reverted changeset: |
| |
| "Add a RuntimeEnabledFeature for display: contents, defaulted |
| to false." |
| https://bugs.webkit.org/show_bug.cgi?id=171984 |
| http://trac.webkit.org/changeset/216974 |
| |
| 2017-05-17 Nan Wang <n_wang@apple.com> |
| |
| ASSERTION FAILED in WebCore::AccessibilityNodeObject::insertChild() |
| https://bugs.webkit.org/show_bug.cgi?id=171927 |
| <rdar://problem/32109781> |
| |
| Reviewed by Chris Fleizach. |
| |
| The nextSibling() logic might include the continuation sibling that's not |
| the child of the current renderer. Make sure we only insert the valid child. |
| |
| Test: accessibility/insert-children-assert.html |
| |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::setIsIgnoredFromParentDataForChild): |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::nextSibling): |
| |
| 2017-05-17 Ryosuke Niwa <rniwa@webkit.org> |
| |
| getElementById can return a wrong elemnt when a matching element is removed during beforeload event |
| https://bugs.webkit.org/show_bug.cgi?id=171374 |
| |
| Reviewed by Brent Fulgham. |
| |
| The bug was caused by HTMLLinkElement firing beforeload event inside insertedInto before the tree state is updated. |
| Delay the event dispatch to the post insertion callback. |
| |
| Test: fast/html/link-element-removal-during-beforeload.html |
| |
| * html/HTMLLinkElement.cpp: |
| (WebCore::HTMLLinkElement::insertedInto): |
| (WebCore::HTMLLinkElement::finishedInsertingSubtree): |
| * html/HTMLLinkElement.h: |
| |
| 2017-05-17 Alex Christensen <achristensen@webkit.org> |
| |
| Interacting with WKHTTPCookieStores before creating WKWebViews and WKProcessPools should affect cookies used |
| https://bugs.webkit.org/show_bug.cgi?id=171987 |
| |
| Reviewed by Brady Eidson. |
| |
| Covered by new API tests. |
| |
| * CMakeLists.txt: |
| * platform/Cookie.h: |
| (WebCore::Cookie::Cookie): |
| (WebCore::Cookie::isNull): |
| (WebCore::CookieHash::hash): |
| (WebCore::CookieHash::equal): |
| (WTF::HashTraits<WebCore::Cookie>::emptyValue): |
| (WTF::HashTraits<WebCore::Cookie>::constructDeletedValue): |
| (WTF::HashTraits<WebCore::Cookie>::isDeletedValue): |
| * platform/network/Cookie.cpp: Added. |
| (WebCore::Cookie::operator==): |
| (WebCore::Cookie::hash): |
| * platform/network/cocoa/CookieCocoa.mm: |
| (WebCore::Cookie::operator NSHTTPCookie *): |
| (WebCore::Cookie::operator==): |
| (WebCore::Cookie::hash): |
| * platform/network/cocoa/NetworkStorageSessionCocoa.mm: |
| (WebCore::NetworkStorageSession::setCookies): |
| Use NSHTTPCookie's hash and equality comparison to more closely match the NSHTTPCookie behavior. |
| |
| 2017-05-17 Emilio Cobos Álvarez <ecobos@igalia.com> |
| |
| Add a RuntimeEnabledFeature for display: contents, defaulted to false. |
| https://bugs.webkit.org/show_bug.cgi?id=171984 |
| |
| Reviewed by Antti Koivisto. |
| |
| The "defaulted to false" is not only because there are spec issues, |
| but because I ran the WPT suite, and there was a fair amount of |
| crashes and messed render trees. |
| |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::adjustRenderStyle): |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::setDisplayContentsEnabled): |
| (WebCore::RuntimeEnabledFeatures::displayContentsEnabled): |
| |
| 2017-05-17 Antti Koivisto <antti@apple.com> |
| |
| Regression (198943): <marquee> shouldn't wrap text |
| https://bugs.webkit.org/show_bug.cgi?id=172217 |
| |
| Reviewed by Andreas Kling. |
| |
| RenderMarquee::updateMarqueeStyle mutated the style and then expected it to inherit to children. |
| This doesn't work anymore because render tree construction is now separated from style resolution |
| where inheritance happens. |
| |
| Test: fast/html/marquee-child-wrap.html |
| |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::adjustRenderStyle): |
| |
| Implement marquee hacks in adjustRenderStyle instead. This can't do the childrenInline check |
| the previous code had but it wasn't working anyway (there are no children when updateMarqueeStyle |
| gets called). |
| |
| * rendering/RenderMarquee.cpp: |
| (WebCore::RenderMarquee::updateMarqueeStyle): |
| |
| This no longer needs mutable style. |
| |
| 2017-05-16 David Kilzer <ddkilzer@apple.com> |
| |
| Remove C-style casts by using xmlDocPtr instead of void* |
| <https://webkit.org/b/172189> |
| |
| Reviewed by Alex Christensen. |
| |
| * dom/TransformSource.h: Fix whitespace indentation. |
| (typedef PlatformTransformSource): Use xmlDocPtr not void*. |
| * dom/TransformSourceLibxslt.cpp: |
| (WebCore::TransformSource::~TransformSource): Remove cast. |
| * xml/XSLStyleSheetLibxslt.cpp: |
| (WebCore::XSLStyleSheet::document): Remove cast. |
| * xml/XSLTProcessorLibxslt.cpp: |
| (WebCore::xmlDocPtrFromNode): Remove casts. |
| * xml/parser/XMLDocumentParser.h: |
| (WebCore::xmlDocPtrForString): Update declaration to return |
| xmlDocPtr not void*. |
| * xml/parser/XMLDocumentParserLibxml2.cpp: |
| (WebCore::XMLDocumentParser::doEnd): Change type of local |
| variable from void* to xmlDocPtr. |
| (WebCore::xmlDocPtrForString): Update to return xmlDocPtr |
| not void*. |
| |
| 2017-05-16 Sam Weinig <sam@webkit.org> |
| |
| Bring Notification.idl up to spec |
| https://bugs.webkit.org/show_bug.cgi?id=172156 |
| |
| Reviewed by Chris Dumez. |
| |
| Test: http/tests/notifications/notification.html |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * WebCore.xcodeproj/project.pbxproj: |
| Add new files. |
| |
| * Modules/notifications/Notification.cpp: |
| (WebCore::Notification::create): |
| (WebCore::Notification::Notification): |
| (WebCore::Notification::show): |
| (WebCore::directionString): Deleted. |
| (WebCore::Notification::permission): Deleted. |
| (WebCore::Notification::permissionString): Deleted. |
| * Modules/notifications/Notification.h: |
| * Modules/notifications/Notification.idl: |
| * Modules/notifications/NotificationClient.h: |
| * Modules/notifications/NotificationDirection.h: Added. |
| * Modules/notifications/NotificationPermission.h: Added. |
| * Modules/notifications/NotificationPermission.idl: Added. |
| * Modules/notifications/NotificationPermissionCallback.h: |
| * Modules/notifications/NotificationPermissionCallback.idl: |
| Bring up to spec, replacing DOMStrings with enums where appropriate and adding |
| additional readonly properties to Notification to mirror options provided |
| in construction. |
| |
| 2017-05-16 Zalan Bujtas <zalan@apple.com> |
| |
| Do not skip <slot> children when collecting content for innerText. |
| https://bugs.webkit.org/show_bug.cgi?id=172113 |
| <rdar://problem/30362324> |
| |
| Reviewed by Ryosuke Niwa and Brent Fulgham. |
| |
| "display: contents" elements do not generate renderers but their children might. |
| This patch ensure that we don't skip them while collecting text content. |
| |
| Test: fast/text/inner-text-should-include-slot-subtree.html |
| |
| * editing/TextIterator.cpp: |
| (WebCore::TextIterator::advance): |
| |
| 2017-05-16 Filip Pizlo <fpizlo@apple.com> |
| |
| GCController::garbageCollectNowIfNotDoneRecently should request Async Full GCs |
| https://bugs.webkit.org/show_bug.cgi?id=172204 |
| |
| Reviewed by Saam Barati. |
| |
| No new tests because existing tests will tell us if there is a problem. |
| |
| The goal of this change is to reduce the likelihood that we block for a GC. We want it to be |
| benchmark-neutral. |
| |
| It's a 0.14% speed-up on JetStream with 24% probability. |
| |
| It's a 0.12% slow-down on PLT3 with 43% probability. |
| |
| So it's neutral on my machine. |
| |
| * bindings/js/GCController.cpp: |
| (WebCore::GCController::garbageCollectNowIfNotDoneRecently): |
| |
| 2017-05-16 Tim Horton <timothy_horton@apple.com> |
| |
| [macOS] REGRESSION: Drag images for links with right-to-left titles are incorrect (172006) |
| https://bugs.webkit.org/show_bug.cgi?id=172006 |
| <rdar://problem/32165137> |
| |
| Reviewed by Dean Jackson. |
| |
| * platform/mac/DragImageMac.mm: |
| (WebCore::LinkImageLayout::LinkImageLayout): |
| (WebCore::createDragImageForLink): |
| (WebCore::LinkImageLayout::addLine): Deleted. |
| * platform/spi/cocoa/CoreTextSPI.h: |
| Set and paint the entire frame as a single unit, making use of the |
| CTFrameMaximumNumberOfLines attribute to limit the number of lines. |
| This gives CoreText power over text alignment and makes RTL text lay |
| out correctly. |
| |
| 2017-05-16 Chris Dumez <cdumez@apple.com> |
| |
| Implement DOMMatrix / DOMMatrixReadOnly |
| https://bugs.webkit.org/show_bug.cgi?id=110001 |
| |
| Reviewed by Sam Weinig and Simon Fraser. |
| |
| Implement DOMMatrix / DOMMatrixReadOnly as per: |
| - https://drafts.fxtf.org/geometry/#DOMMatrix |
| |
| For now, these new types co-exist with WebKitCSSMatrix / SVGMatrix. However, in the future, |
| WebKitCSSMatrix / SVGMatrix are supposed to become aliases to DOMMatrix. |
| |
| Most of it has been implemented. What remaining to be implemented is: |
| - Make WebKitCSSMatrix / SVGMatrix aliases to DOMMatrix |
| - DOMMatrix.fromFloat32Array() / fromFloat64Array() |
| - DOMMatrixReadOnly.fromFloat32Array() / fromFloat64Array() / toFloat32Array() / toFloat64Array() |
| - DOMMatrixReadOnly.transformPoint(). |
| |
| Tests: imported/w3c/web-platform-tests/css/geometry-1/* |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| Fix a bug in the bindings generator causing the generator code for |
| "Constructor(optional (DOMString or sequence<unrestricted double>) init)" to be wrong |
| and not build. |
| |
| * css/DOMMatrix.cpp: Added. |
| (WebCore::DOMMatrix::DOMMatrix): |
| (WebCore::DOMMatrix::fromMatrix): |
| (WebCore::DOMMatrix::multiplySelf): |
| (WebCore::DOMMatrix::preMultiplySelf): |
| (WebCore::DOMMatrix::translateSelf): |
| (WebCore::DOMMatrix::scaleSelf): |
| (WebCore::DOMMatrix::scale3dSelf): |
| (WebCore::DOMMatrix::rotateSelf): |
| (WebCore::DOMMatrix::rotateFromVectorSelf): |
| (WebCore::DOMMatrix::rotateAxisAngleSelf): |
| (WebCore::DOMMatrix::skewXSelf): |
| (WebCore::DOMMatrix::skewYSelf): |
| (WebCore::DOMMatrix::invertSelf): |
| (WebCore::DOMMatrix::setMatrixValueForBindings): |
| * css/DOMMatrix.h: Added. |
| (WebCore::DOMMatrix::create): |
| (WebCore::DOMMatrix::setA): |
| (WebCore::DOMMatrix::setB): |
| (WebCore::DOMMatrix::setC): |
| (WebCore::DOMMatrix::setD): |
| (WebCore::DOMMatrix::setE): |
| (WebCore::DOMMatrix::setF): |
| (WebCore::DOMMatrix::setM11): |
| (WebCore::DOMMatrix::setM12): |
| (WebCore::DOMMatrix::setM13): |
| (WebCore::DOMMatrix::setM14): |
| (WebCore::DOMMatrix::setM21): |
| (WebCore::DOMMatrix::setM22): |
| (WebCore::DOMMatrix::setM23): |
| (WebCore::DOMMatrix::setM24): |
| (WebCore::DOMMatrix::setM31): |
| (WebCore::DOMMatrix::setM32): |
| (WebCore::DOMMatrix::setM33): |
| (WebCore::DOMMatrix::setM34): |
| (WebCore::DOMMatrix::setM41): |
| (WebCore::DOMMatrix::setM42): |
| (WebCore::DOMMatrix::setM43): |
| (WebCore::DOMMatrix::setM44): |
| * css/DOMMatrix.idl: Added. |
| * css/DOMMatrixInit.h: Added. |
| * css/DOMMatrixInit.idl: Added. |
| * css/DOMMatrixReadOnly.cpp: Added. |
| (WebCore::DOMMatrixReadOnly::DOMMatrixReadOnly): |
| (WebCore::DOMMatrixReadOnly::validateAndFixup): |
| (WebCore::DOMMatrixReadOnly::fromMatrix): |
| (WebCore::DOMMatrixReadOnly::isIdentity): |
| (WebCore::DOMMatrixReadOnly::setMatrixValue): |
| (WebCore::DOMMatrixReadOnly::translate): |
| (WebCore::DOMMatrixReadOnly::flipX): |
| (WebCore::DOMMatrixReadOnly::flipY): |
| (WebCore::DOMMatrixReadOnly::multiply): |
| (WebCore::DOMMatrixReadOnly::scale): |
| (WebCore::DOMMatrixReadOnly::scale3d): |
| (WebCore::DOMMatrixReadOnly::rotate): |
| (WebCore::DOMMatrixReadOnly::rotateFromVector): |
| (WebCore::DOMMatrixReadOnly::rotateAxisAngle): |
| (WebCore::DOMMatrixReadOnly::skewX): |
| (WebCore::DOMMatrixReadOnly::skewY): |
| (WebCore::DOMMatrixReadOnly::inverse): |
| (WebCore::DOMMatrixReadOnly::toString): |
| * css/DOMMatrixReadOnly.h: Added. |
| (WebCore::DOMMatrixReadOnly::create): |
| (WebCore::DOMMatrixReadOnly::a): |
| (WebCore::DOMMatrixReadOnly::b): |
| (WebCore::DOMMatrixReadOnly::c): |
| (WebCore::DOMMatrixReadOnly::d): |
| (WebCore::DOMMatrixReadOnly::e): |
| (WebCore::DOMMatrixReadOnly::f): |
| (WebCore::DOMMatrixReadOnly::m11): |
| (WebCore::DOMMatrixReadOnly::m12): |
| (WebCore::DOMMatrixReadOnly::m13): |
| (WebCore::DOMMatrixReadOnly::m14): |
| (WebCore::DOMMatrixReadOnly::m21): |
| (WebCore::DOMMatrixReadOnly::m22): |
| (WebCore::DOMMatrixReadOnly::m23): |
| (WebCore::DOMMatrixReadOnly::m24): |
| (WebCore::DOMMatrixReadOnly::m31): |
| (WebCore::DOMMatrixReadOnly::m32): |
| (WebCore::DOMMatrixReadOnly::m33): |
| (WebCore::DOMMatrixReadOnly::m34): |
| (WebCore::DOMMatrixReadOnly::m41): |
| (WebCore::DOMMatrixReadOnly::m42): |
| (WebCore::DOMMatrixReadOnly::m43): |
| (WebCore::DOMMatrixReadOnly::m44): |
| (WebCore::DOMMatrixReadOnly::is2D): |
| (WebCore::DOMMatrixReadOnly::fromMatrixHelper): |
| * css/DOMMatrixReadOnly.idl: Added. |
| * css/WebKitCSSMatrix.h: |
| * css/WebKitCSSMatrix.idl: |
| * svg/SVGMatrix.h: |
| * svg/SVGMatrix.idl: |
| |
| 2017-05-16 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] AudioSampleBufferList::zeroABL takes byte count, not sample count |
| https://bugs.webkit.org/show_bug.cgi?id=172194 |
| <rdar://problem/32233799> |
| |
| Reviewed by Jer Noble. |
| |
| * platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.cpp: |
| (WebCore::AudioTrackPrivateMediaStreamCocoa::render): Pass number of bytes to zero, |
| not number of samples. |
| |
| 2017-05-16 Mark Lam <mark.lam@apple.com> |
| |
| WorkerRunLoop::Task::performTask() needs to null check context->script() before use. |
| https://bugs.webkit.org/show_bug.cgi?id=172193 |
| <rdar://problem/32225346> |
| |
| Reviewed by Filip Pizlo. |
| |
| According to https://build-safari.apple.com/results/Trunk%20Fuji%20GuardMalloc%20Production%20WK2%20Tests/r216929_459760e0918316187c8e52c6585a3a9ba9181204%20(12066)/results.html, |
| we see a crash with this crash trace: |
| |
| Thread 13 Crashed:: WebCore: Worker |
| 0 com.apple.WebCore 0x00000001099607b2 WebCore::WorkerScriptController::isTerminatingExecution() const + 18 |
| 1 com.apple.WebCore 0x000000010995ebbf WebCore::WorkerRunLoop::runCleanupTasks(WebCore::WorkerGlobalScope*) + 143 |
| 2 com.apple.WebCore 0x000000010995e80f WebCore::WorkerRunLoop::run(WebCore::WorkerGlobalScope*) + 111 |
| 3 com.apple.WebCore 0x00000001099621b6 WebCore::WorkerThread::workerThread() + 742 |
| 4 com.apple.JavaScriptCore 0x000000010a964b92 WTF::threadEntryPoint(void*) + 178 |
| 5 com.apple.JavaScriptCore 0x000000010a964a69 WTF::wtfThreadEntryPoint(void*) + 121 |
| 6 libsystem_pthread.dylib 0x00007fffbdb5caab _pthread_body + 180 |
| 7 libsystem_pthread.dylib 0x00007fffbdb5c9f7 _pthread_start + 286 |
| 8 libsystem_pthread.dylib 0x00007fffbdb5c1fd thread_start + 13 |
| |
| ... and the crashing address is: |
| |
| Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000022 |
| |
| 0x0000000000000022 is the offset of m_scheduledTerminationMutex in the |
| WorkerScriptController. This means that WorkerScriptController::isTerminatingExecution() |
| is passed a NULL this pointer. This means that it's possible to have a race |
| where a WorkerRunLoop::Task gets enqueued beyond the Cleanup task that deletes the |
| context->script(). As a result, WorkerRunLoop::Task::performTask() (called by |
| runCleanupTasks()) may see a null context->script(). |
| |
| Hence, WorkerRunLoop::Task::performTask() should null check context->script() |
| before invoking the isTerminatingExecution() query on it. |
| |
| No new tests because this is already covered by existing tests. |
| |
| * workers/WorkerRunLoop.cpp: |
| (WebCore::WorkerRunLoop::Task::performTask): |
| |
| 2017-05-16 Youenn Fablet <youenn@apple.com> |
| |
| Modernize WebKit2 getUserMedia passing of parameters |
| https://bugs.webkit.org/show_bug.cgi?id=172161 |
| |
| Reviewed by Eric Carlson. |
| |
| No change of behavior. |
| |
| * platform/mediastream/RealtimeMediaSourceCenter.h: Using WTF::Function to enable capture Ref<>. |
| |
| 2017-05-16 Jeremy Jones <jeremyj@apple.com> |
| |
| Captions and subtitles not showing up in picture-in-picture for MSE content. |
| https://bugs.webkit.org/show_bug.cgi?id=172145 |
| |
| Reviewed by Eric Carlson. |
| |
| No new tests as this has no affect on the DOM. |
| |
| Add TextTrackRepresentation code from MediaPlayerPrivateAVFoundationObj to MediaPlayerPrivateMediaSourceAVFObjc. |
| This moves the TextTrackRepresentation platfrom layer into the fullscreen container layer when going into |
| pip for fullscreen, allowing the captions to be visible. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer): |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenLayer): |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenFrame): |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::requiresTextTrackRepresentation): |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::syncTextTrackBounds): |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setTextTrackRepresentation): |
| |
| 2017-05-16 David Kilzer <ddkilzer@apple.com> |
| |
| WebCore::leakCGColor() needs CF_RETURNS_RETAINED annotation |
| <https://webkit.org/b/172190> |
| |
| Reviewed by Simon Fraser. |
| |
| * platform/graphics/cg/ColorCG.cpp: |
| (WebCore::leakCGColor): Annotate with CF_RETURNS_RETAINED since |
| it does not follow the CF naming convention, which means the |
| expected behavior can't be inferred by the clang static |
| analyzer. |
| |
| 2017-05-16 Youenn Fablet <youenn@apple.com> |
| |
| RealtimeOutgoingVideoSource should support sinkWants for rotation |
| https://bugs.webkit.org/show_bug.cgi?id=172123 |
| <rdar://problem/32200017> |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by manual testing. |
| |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: |
| (WebCore::RealtimeOutgoingVideoSource::AddOrUpdateSink): Triggering pixel rotation based on sink. |
| (WebCore::RealtimeOutgoingVideoSource::sendFrame): Doing the rotation using libwebrtc API. |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: |
| |
| 2017-05-16 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| REGRESSION(r212513): LastResort is platform-dependent, so its semantics should not be required to perform font loading correctly. |
| https://bugs.webkit.org/show_bug.cgi?id=168487 |
| |
| Reviewed by Antti Koivisto. |
| |
| There are three ways a Web author can chain multiple font files together: |
| 1. Multiple entries in the "src" descriptor in an @font-face rule |
| 2. Multiple @font-face rules with the same "font-family" descriptor |
| 3. Multiple entries in the "font-family" property on an element |
| |
| Before r212513, the code which iterated across #2 and #3 above could have |
| triggered each item in the chain to download. r212513 tried to solve this |
| by using LastResort as the interstitial font used during downloads, because |
| LastResort supports every character and therefore solves #3 above. However, |
| this change had a few problems: |
| |
| 1. Previously, our code would try to avoid using the interstitial font for |
| layout or rendering whenever possible (because one of the chains above may |
| have named a local font which would be better to use). In order to use the |
| benefits of LastResort, I had to remove this avoidance logic and make |
| WebKit try to use the interstitial font as often as possible. However, due |
| to the large metrics of LastResort, this means that offsetWidth queries |
| during font loading would be wildly inaccurate, causing Google Docs to break. |
| 2. It also means that canvas drawing during font loading would actually draw |
| LastResort, causing Bing maps to break. |
| 3. LastResort is platform-specific, so only platforms which have it would |
| actually be able to load fonts correctly. |
| |
| Instead, we should keep the older logic about avoiding using the |
| interstitial font so that loading has a better experience for the user. |
| We solve the unnecessary download problem by giving our loading code a |
| downloading policy enum, which has two values: allow downloads or forbid |
| downloads. Whenever our loading code returns the interstitial font, we |
| continue our search, but we change the policy to forbid downloads. |
| |
| There is one piece of subtlety, though: It is more common for web authors |
| to put good fallbacks in the "font-family" property than in the "src" |
| descriptor inside @font-face. This means that we shouldn't exhaustively |
| search through the @font-face src list first. Instead, we should look |
| through the src list until we hit a non-local font, and then immediately |
| start looking through the other other chains. |
| |
| Tests: fast/text/font-download-font-face-src-list.html |
| fast/text/font-download-font-family-property.html |
| fast/text/font-download-remote-fallback-all.html |
| fast/text/font-interstitial-invisible-width-while-loading.html |
| fast/text/font-weight-download-3.html |
| fast/text/web-font-load-fallback-during-loading-2.html |
| fast/text/web-font-load-invisible-during-loading.html |
| |
| * css/CSSFontFace.cpp: |
| (WebCore::CSSFontFace::fontLoadEventOccurred): Implement support for |
| the font download policy. |
| (WebCore::CSSFontFace::setStatus): After 3 seconds of loading, we |
| will start drawing the fallback font. However, for testing, we have an |
| internal setting to make this switch happen immediately. This patch now |
| requires that this internal switch happen synchronously. |
| (WebCore::CSSFontFace::pump): Implement support for the font download |
| policy. |
| (WebCore::CSSFontFace::load): Ditto. |
| (WebCore::CSSFontFace::font): Ditto. |
| * css/CSSFontFace.h: Ditto. |
| * css/CSSFontSelector.cpp: |
| (WebCore::CSSFontSelector::beginLoadingFontSoon): Implement support for |
| synchronous font download timeouts. |
| * css/CSSSegmentedFontFace.cpp: |
| (WebCore::CSSSegmentedFontFace::fontRanges): Implement support for the |
| font download policy. |
| * platform/graphics/Font.cpp: Add new flag which represents if the |
| interstitial font was created after the 3 second timeout or before. |
| Previously, we would distinguish between these two cases by knowing |
| that one font was LastResort and the other font was a fallback. Now that |
| we're using fallback fonts on both sides of the 3 second timeout, we |
| now no longer know which one should be invisible. This new enum solves |
| this problem. |
| (WebCore::Font::Font): |
| (WebCore::Font::verticalRightOrientationFont): |
| (WebCore::Font::uprightOrientationFont): |
| * platform/graphics/Font.h: Ditto. |
| (WebCore::Font::create): |
| (WebCore::Font::origin): |
| (WebCore::Font::visibility): |
| * platform/graphics/FontCache.h: |
| * platform/graphics/FontCascade.cpp: We try to fall back to a local() font |
| during downloads, but there might not be one that we can use. Therefore, we |
| can't use the presence of the interstitial font to detect if we should paint |
| invisibly. Instead, we can move this logic into the font-specific part of |
| painting, and consult with the specific font to know if it was created from |
| a timed-out @font-face rule or not. |
| (WebCore::FontCascade::drawText): |
| (WebCore::shouldDrawIfLoading): |
| (WebCore::FontCascade::drawGlyphBuffer): |
| (WebCore::FontCascade::drawEmphasisMarks): |
| * platform/graphics/FontCascade.h: |
| * platform/graphics/FontCascadeFonts.cpp: |
| (WebCore::FontCascadeFonts::glyphDataForVariant): Implement the logic |
| described above where we switch the policy if we encounter the intestitial |
| font. |
| (WebCore::FontCascadeFonts::glyphDataForNormalVariant): Ditto. |
| (WebCore::glyphPageFromFontRanges): Ditto. |
| * platform/graphics/FontRanges.cpp: Implement support for the font download |
| policy. |
| (WebCore::FontRanges::Range::font): |
| (WebCore::FontRanges::glyphDataForCharacter): |
| (WebCore::FontRanges::fontForCharacter): |
| (WebCore::FontRanges::fontForFirstRange): |
| * platform/graphics/FontRanges.h: |
| * platform/graphics/FontSelector.h: |
| * platform/graphics/freetype/FontCacheFreeType.cpp: |
| (WebCore::FontCache::lastResortFallbackFontForEveryCharacter): Deleted. |
| * platform/graphics/mac/FontCacheMac.mm: |
| (WebCore::FontCache::lastResortFallbackFontForEveryCharacter): Deleted. |
| * platform/graphics/win/FontCacheWin.cpp: |
| (WebCore::FontCache::lastResortFallbackFontForEveryCharacter): Deleted. |
| |
| 2017-05-16 Zalan Bujtas <zalan@apple.com> |
| |
| Simple line layout: Move setCollapedWhitespaceWidth call to updateLineConstrains. |
| https://bugs.webkit.org/show_bug.cgi?id=172178 |
| |
| Reviewed by Antti Koivisto. |
| |
| No change in functionality. |
| |
| * rendering/SimpleLineLayout.cpp: |
| (WebCore::SimpleLineLayout::updateLineConstrains): |
| (WebCore::SimpleLineLayout::createLineRuns): |
| |
| 2017-05-16 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Return default device list until user gives permission to capture |
| https://bugs.webkit.org/show_bug.cgi?id=172168 |
| <rdar://problem/31816884> |
| |
| Reviewed by Youenn Fablet. |
| |
| Test: fast/mediastream/media-devices-enumerate-devices.html |
| |
| * Modules/mediastream/MediaDevicesRequest.cpp: |
| (WebCore::MediaDevicesRequest::filterDeviceList): Remove all but the "default" number of |
| devices of each type. |
| (WebCore::MediaDevicesRequest::start): Call filterDeviceList. |
| * Modules/mediastream/MediaDevicesRequest.h: |
| |
| 2017-05-16 Claudio Saavedra <csaavedra@igalia.com> |
| |
| Silent a few warnings about unused parameters |
| https://bugs.webkit.org/show_bug.cgi?id=172169 |
| |
| Reviewed by Sam Weinig. |
| |
| * page/Page.cpp: |
| (WebCore::Page::mainFrameLoadStarted): |
| * platform/graphics/cairo/ImageBufferCairo.cpp: |
| (WebCore::ImageBuffer::toData): |
| * platform/network/ResourceRequestBase.cpp: |
| (WebCore::ResourceRequestBase::partitionName): |
| |
| 2017-05-16 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| WebItemProviderPasteboard should be robust when temporary files are missing path extensions |
| https://bugs.webkit.org/show_bug.cgi?id=172170 |
| |
| Reviewed by Tim Horton. |
| |
| Makes a slight adjustment to the temporary file URLs are handled when using WebItemProviderPasteboard to load |
| data off of item providers. Previously, we would bail early and not load any data if the temporary URL is |
| missing an extension. Since the switch to NSItemProviders from UIItemProviders, some types of temporary files |
| generated by item providers are missing extensions, so this extra check is meaningless. |
| |
| Covered by existing data interaction unit tests. |
| |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (temporaryFileURLForDataInteractionContent): |
| (-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:synchronousTimeout:]): |
| |
| 2017-05-16 Zan Dobersek <zdobersek@igalia.com> |
| |
| [WPE] GLContextEGL::createWPEContext() should fall back to pbuffer-based contexts when offscreen target provides no native window |
| https://bugs.webkit.org/show_bug.cgi?id=172162 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| When creating an offscreen GLContext, the underlying implementation might |
| provide a mock native window that's to be used as the window target upon |
| which a window-based GLContext should be created. But we should also support |
| falling back to pbuffer-based GLContexts when the underlying implementation |
| can't provide such mock targets. |
| |
| * platform/graphics/egl/GLContextEGLWPE.cpp: |
| (WebCore::GLContextEGL::createWPEContext): |
| |
| 2017-05-16 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GLib] Name more GSource-based RunLoop::Timers |
| https://bugs.webkit.org/show_bug.cgi?id=172158 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * platform/glib/MainThreadSharedTimerGLib.cpp: |
| (WebCore::MainThreadSharedTimer::MainThreadSharedTimer): |
| Specify 'MainThreadSharedTimer' as the name of this GSource-based RunLoop::Timer. |
| |
| 2017-05-16 Romain Bellessort <romain.bellessort@crf.canon.fr> |
| |
| [Readable Streams API] Implement ReadableStreamBYOBReader releaseLock() |
| https://bugs.webkit.org/show_bug.cgi?id=172111 |
| |
| Reviewed by Chris Dumez. |
| |
| Implemented ReadableStreamBYOBReader releaseLock(): |
| - https://streams.spec.whatwg.org/#byob-reader-release-lock; |
| - https://streams.spec.whatwg.org/#readable-stream-reader-generic-release. |
| |
| Added tests to check releaseLock behavior. |
| |
| * Modules/streams/ReadableStreamBYOBReader.js: |
| (releaseLock): Implemented. |
| * Modules/streams/ReadableStreamInternals.js: |
| (readableStreamReaderGenericRelease): Aligned with spec. |
| |
| 2017-05-16 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Try to fix GTK+ build with MEDIA_STREAM enabled after r216918. |
| |
| * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp: |
| (WebCore::RealtimeMediaSourceCenterOwr::validateRequestConstraints): |
| |
| 2017-05-16 Youenn Fablet <youenn@apple.com> |
| |
| Remove MediaConstraintsData and MediaConstraintsImpl |
| https://bugs.webkit.org/show_bug.cgi?id=172132 |
| |
| Reviewed by Eric Carlson. |
| |
| No observable change of behavior. |
| |
| Removing MediaConstraintsData and MediaConstraintsImpl allows simplifying the code. |
| Further simplified the code by making MediaConstraints no longer ref counted and now a struct. |
| Simplified some RealtimeMediaSource subclasses by removing unused MediaConstraints class members. |
| |
| * CMakeLists.txt: Removing MediaConstraintsImpl.cpp. |
| * Modules/mediastream/MediaConstraintsImpl.cpp: Removed. |
| * Modules/mediastream/MediaConstraintsImpl.h: Removed. |
| * Modules/mediastream/MediaDevices.cpp: |
| (WebCore::createMediaConstraints): |
| (WebCore::MediaDevices::getUserMedia): |
| (WebCore::createMediaConstraintsImpl): Deleted. |
| * Modules/mediastream/MediaStreamTrack.cpp: |
| (WebCore::createMediaConstraints): |
| (WebCore::MediaStreamTrack::applyConstraints): |
| (WebCore::createMediaConstraintsImpl): Deleted. |
| * Modules/mediastream/MediaTrackConstraints.cpp: |
| (WebCore::createMediaConstraints): |
| (WebCore::createMediaConstraintsImpl): Deleted. |
| * Modules/mediastream/MediaTrackConstraints.h: |
| * Modules/mediastream/UserMediaRequest.cpp: |
| (WebCore::UserMediaRequest::start): |
| (WebCore::UserMediaRequest::UserMediaRequest): |
| (WebCore::UserMediaRequest::allow): |
| * Modules/mediastream/UserMediaRequest.h: |
| (WebCore::UserMediaRequest::audioConstraints): |
| (WebCore::UserMediaRequest::videoConstraints): |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/mediastream/MediaConstraints.cpp: |
| (WebCore::addDefaultVideoConstraints): |
| (WebCore::MediaConstraints::isConstraintSet): |
| (WebCore::MediaConstraints::setDefaultVideoConstraints): |
| * platform/mediastream/MediaConstraints.h: |
| (WebCore::MediaConstraints::~MediaConstraints): Deleted. |
| (WebCore::MediaConstraints::MediaConstraints): Deleted. |
| * platform/mediastream/MediaStreamConstraintsValidationClient.h: |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::selectSettings): |
| (WebCore::RealtimeMediaSource::supportsConstraints): |
| (WebCore::RealtimeMediaSource::applyConstraints): |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::RealtimeMediaSourceCenter::validateRequestConstraints): |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| * platform/mediastream/mac/RealtimeIncomingAudioSource.cpp: |
| (WebCore::RealtimeIncomingAudioSource::supportedConstraints): Deleted. |
| * platform/mediastream/mac/RealtimeIncomingAudioSource.h: |
| * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: |
| (WebCore::RealtimeIncomingVideoSource::supportedConstraints): Deleted. |
| * platform/mediastream/mac/RealtimeIncomingVideoSource.h: |
| * platform/mock/MockRealtimeMediaSource.h: |
| (WebCore::MockRealtimeMediaSource::constraints): Deleted. |
| |
| 2017-05-16 Andy Estes <aestes@apple.com> |
| |
| [Cocoa] Tell NEFilterSource about the presenting app's PID |
| https://bugs.webkit.org/show_bug.cgi?id=172152 |
| <rdar://problem/32197740> |
| |
| Reviewed by Dan Bernstein. |
| |
| * platform/cocoa/NetworkExtensionContentFilter.mm: |
| (WebCore::NetworkExtensionContentFilter::initialize): |
| * platform/spi/cocoa/NEFilterSourceSPI.h: |
| |
| 2017-05-16 Manuel Rego Casasnovas <rego@igalia.com> |
| |
| [css-grid] Fix static position of positioned grid items |
| https://bugs.webkit.org/show_bug.cgi?id=172108 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| This patch makes us follow the text on the spec |
| (https://drafts.csswg.org/css-grid/#static-position): |
| "The static position of an absolutely-positioned child |
| of a grid container is determined as if it were the sole grid item |
| in a grid area whose edges coincide with the padding edges |
| of the grid container." |
| |
| Test: fast/css-grid-layout/absolute-positioning-grid-container-parent.html |
| |
| * rendering/RenderGrid.cpp: |
| (WebCore::RenderGrid::prepareChildForPositionedLayout): Modified to avoid |
| including padding to match the spec behavior. |
| |
| 2017-05-16 Per Arne Vollan <pvollan@apple.com> |
| |
| Compile error, include file is not found. |
| https://bugs.webkit.org/show_bug.cgi?id=172105 |
| |
| Reviewed by Brent Fulgham. |
| |
| Use __has_include to detect if include file exists. |
| |
| * platform/mediastream/libwebrtc/H264VideoToolBoxEncoder.mm: |
| |
| 2017-05-15 Andy Estes <aestes@apple.com> |
| |
| Make the application PID available to WebCore |
| https://bugs.webkit.org/show_bug.cgi?id=172133 |
| |
| Reviewed by Andreas Kling. |
| |
| * CMakeLists.txt: |
| * PlatformMac.cmake: |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/RuntimeApplicationChecks.cpp: Added. |
| (WebCore::presentingApplicationPIDOverride): |
| (WebCore::presentingApplicationPID): Returns the override PID if set, or getCurrentProcessID() |
| otherwise. |
| (WebCore::setPresentingApplicationPID): |
| * platform/RuntimeApplicationChecks.h: |
| * platform/cocoa/RuntimeApplicationChecksCocoa.mm: Renamed from Source/WebCore/platform/RuntimeApplicationChecks.mm. |
| |
| 2017-05-15 Antti Koivisto <antti@apple.com> |
| |
| RenderTheme does not need to be per-page |
| https://bugs.webkit.org/show_bug.cgi?id=172116 |
| <rdar://problem/30426457> |
| |
| Reviewed by Zalan Bujtas. |
| |
| There are no implementations of RenderTheme::themeForPage that actually care about the page. |
| It can be replaced with a singleton, simplifying a bunch of code. |
| |
| * Modules/mediacontrols/MediaControlsHost.cpp: |
| (WebCore::MediaControlsHost::shadowRootCSSText): |
| (WebCore::MediaControlsHost::base64StringForIconNameAndType): |
| * css/CSSDefaultStyleSheets.cpp: |
| (WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle): |
| (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement): |
| |
| Fix a potential crash if we get here when page is null (though it doesn't appear to repro on trunk). |
| |
| * css/StyleColor.cpp: |
| (WebCore::StyleColor::colorFromKeyword): |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::adjustRenderStyle): |
| * css/parser/CSSParser.cpp: |
| (WebCore::CSSParser::parseSystemColor): |
| * css/parser/CSSParser.h: |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::CSSPropertyParser::consumeSystemFont): |
| * editing/FrameSelection.cpp: |
| (WebCore::FrameSelection::updateAppearance): |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript): |
| * html/HTMLMeterElement.cpp: |
| (WebCore::HTMLMeterElement::createElementRenderer): |
| * html/HTMLSelectElement.cpp: |
| (WebCore::HTMLSelectElement::usesMenuList): |
| (WebCore::HTMLSelectElement::platformHandleKeydownEvent): |
| (WebCore::HTMLSelectElement::menuListDefaultEventHandler): |
| * html/HTMLTextFormControlElement.cpp: |
| (WebCore::HTMLTextFormControlElement::adjustInnerTextStyle): |
| * html/InputType.cpp: |
| (WebCore::InputType::themeSupportsDataListUI): |
| * html/TextFieldInputType.cpp: |
| (WebCore::TextFieldInputType::shouldHaveSpinButton): |
| (WebCore::TextFieldInputType::shouldHaveCapsLockIndicator): |
| * html/canvas/CanvasRenderingContext2D.cpp: |
| (WebCore::CanvasRenderingContext2D::setStrokeColor): |
| (WebCore::CanvasRenderingContext2D::setFillColor): |
| * html/canvas/CanvasStyle.cpp: |
| (WebCore::parseColor): |
| (WebCore::parseColorOrCurrentColor): |
| (WebCore::CanvasStyle::createFromString): |
| * html/canvas/CanvasStyle.h: |
| * html/shadow/MediaControlElements.cpp: |
| (WebCore::MediaControlPanelElement::startTimer): |
| (WebCore::MediaControlPanelElement::makeOpaque): |
| (WebCore::MediaControlPanelElement::makeTransparent): |
| * html/shadow/MediaControls.cpp: |
| (WebCore::MediaControls::reset): |
| (WebCore::MediaControls::reportedError): |
| (WebCore::MediaControls::updateCurrentTimeDisplay): |
| * html/shadow/mac/ImageControlsButtonElementMac.cpp: |
| (WebCore::ImageControlsButtonElementMac::tryCreate): |
| * page/MemoryRelease.cpp: |
| (WebCore::releaseNoncriticalMemory): |
| * page/Page.cpp: |
| (WebCore::Page::Page): |
| * page/Page.h: |
| (WebCore::Page::theme): Deleted. |
| * platform/wpe/RenderThemeWPE.cpp: |
| (WebCore::RenderTheme::singleton): |
| (WebCore::RenderTheme::themeForPage): Deleted. |
| * rendering/RenderEmbeddedObject.cpp: |
| (WebCore::RenderEmbeddedObject::getReplacementTextGeometry): |
| * rendering/RenderObject.cpp: |
| (WebCore::RenderObject::theme): |
| * rendering/RenderTheme.cpp: |
| (WebCore::RenderTheme::focusRingColor): |
| * rendering/RenderTheme.h: |
| (WebCore::RenderTheme::defaultTheme): Deleted. |
| * rendering/RenderThemeGtk.cpp: |
| (WebCore::RenderTheme::singleton): |
| (WebCore::RenderTheme::themeForPage): Deleted. |
| * rendering/RenderThemeIOS.mm: |
| (WebCore::RenderTheme::singleton): |
| (WebCore::RenderTheme::themeForPage): Deleted. |
| * rendering/RenderThemeMac.mm: |
| (WebCore::RenderTheme::singleton): |
| (WebCore::RenderTheme::themeForPage): Deleted. |
| * rendering/RenderThemeWin.cpp: |
| (WebCore::RenderTheme::singleton): |
| (WebCore::RenderTheme::themeForPage): Deleted. |
| * rendering/TextPaintStyle.cpp: |
| (WebCore::computeTextPaintStyle): |
| |
| 2017-05-15 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Do not delete asynchronously decoded frames for large images if their clients are in the viewport |
| https://bugs.webkit.org/show_bug.cgi?id=170640 |
| |
| Reviewed by Simon Fraser. |
| |
| The image flickering problem happens when a large image is visible in the |
| view port and for some reason, the decoded frame gets destroyed. When this |
| image is repainted, BitmapImage::draw() does not find a valid decoded frame |
| for that image. It then requests an async decoding for the image and just |
| draws nothing in the image rectangle. Drawing no content between two drawing |
| phases in which the image is drawn causes the unwanted flickering. |
| |
| To fix this issue we need to protect the decoded frames of all the images |
| in the view port from being destroyed. When BitmapImage::destroyDecodedData() |
| is called, it is going to check, through the ImageObserver, whether any |
| of its clients is visible. And if so, the current decoded frame won't be |
| destroyed. |
| |
| Tests: Modifying existing tests. |
| |
| * loader/cache/CachedImage.cpp: |
| (WebCore::CachedImage::CachedImageObserver::decodedSizeChanged): |
| (WebCore::CachedImage::CachedImageObserver::didDraw): |
| (WebCore::CachedImage::CachedImageObserver::canDestroyDecodedData): |
| (WebCore::CachedImage::CachedImageObserver::imageFrameAvailable): |
| (WebCore::CachedImage::CachedImageObserver::changedInRect): |
| (WebCore::CachedImage::decodedSizeChanged): |
| (WebCore::CachedImage::didDraw): |
| (WebCore::CachedImage::canDestroyDecodedData): Finds out whether it's okay |
| to discard the image decoded data or not. |
| (WebCore::CachedImage::imageFrameAvailable): |
| (WebCore::CachedImage::changedInRect): |
| * loader/cache/CachedImage.h: |
| * loader/cache/CachedImageClient.h: |
| (WebCore::CachedImageClient::canDestroyDecodedData): |
| * loader/cache/MemoryCache.cpp: |
| (WebCore::MemoryCache::destroyDecodedDataForAllImages): This function is |
| currently not used. Use in the internal destroyDecodedDataForAllImages() |
| but unlike what CachedImage::destroyDecodedData() does, make it destroy |
| the decoded frames without deleting the image itself. |
| * loader/cache/MemoryCache.h: |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::destroyDecodedData): |
| (WebCore::BitmapImage::draw): |
| (WebCore::BitmapImage::canDestroyCurrentFrameDecodedData): |
| (WebCore::BitmapImage::advanceAnimation): |
| (WebCore::BitmapImage::internalAdvanceAnimation): |
| (WebCore::BitmapImage::imageFrameAvailableAtIndex): |
| * platform/graphics/BitmapImage.h: |
| * platform/graphics/GraphicsContext3D.cpp: |
| (WebCore::GraphicsContext3D::packImageData): |
| * platform/graphics/ImageFrameCache.cpp: |
| (WebCore::ImageFrameCache::decodedSizeChanged): |
| (ImageFrameCache::cacheAsyncFrameNativeImageAtIndex): The assertion in this |
| function is wrong. frameIsCompleteAtIndex() can be false when the an image |
| decoding is requested but can be true when the decoding finishes. |
| * platform/graphics/ImageObserver.h: |
| * platform/graphics/cairo/ImageCairo.cpp: |
| (WebCore::Image::drawPattern): |
| * platform/graphics/cg/ImageCG.cpp: |
| (WebCore::Image::drawPattern): |
| * platform/graphics/cg/ImageDecoderCG.cpp: |
| (WebCore::ImageDecoder::frameIsCompleteAtIndex): |
| * platform/graphics/cg/PDFDocumentImage.cpp: |
| (WebCore::PDFDocumentImage::decodedSizeChanged): |
| (WebCore::PDFDocumentImage::draw): |
| * platform/graphics/texmap/TextureMapperTiledBackingStore.cpp: |
| (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded): |
| * platform/graphics/win/ImageDirect2D.cpp: |
| (WebCore::Image::drawPattern): |
| * rendering/RenderElement.cpp: |
| (WebCore::RenderElement::isVisibleInDocumentRect): |
| (WebCore::RenderElement::isVisibleInViewport): |
| (WebCore::RenderElement::imageFrameAvailable): |
| (WebCore::RenderElement::repaintForPausedImageAnimationsIfNeeded): |
| (WebCore::RenderElement::shouldRepaintInVisibleRect): Deleted. Function |
| is renamed to isVisibleInViewport() for better readability. |
| * rendering/RenderElement.h: |
| * svg/graphics/SVGImage.cpp: |
| (WebCore::SVGImage::draw): |
| * svg/graphics/SVGImageClients.h: |
| * testing/Internals.cpp: |
| (WebCore::Internals::destroyDecodedDataForAllImages): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-05-15 Youenn Fablet <youenn@apple.com> |
| |
| Simplify RealtimeMediaSource data production and state |
| https://bugs.webkit.org/show_bug.cgi?id=171999 |
| |
| Reviewed by Eric Carlson. |
| |
| RealtimeMediaSource takes 3 booleans: |
| - m_isProducingData tells whether data is produced or not. In the case of capturing, it tells whether capture |
| happens. |
| - m_muted/m_enabled allows JS or WebKit level to start/stop the source. |
| |
| Changed MediaStream capture state computation so that capture is reported as follows: |
| - m_isProducing is true, capture is happenning and is active |
| - m_muted is true, capture is happening but is inactive. |
| |
| Except in the case of WebRTC incoming sources, for which sources may be created as muted as per the spec, |
| all sources are unmuted, enabled and not producing data when created. |
| |
| RealtimeMediaSource is now activable either by calling start/stop or by calling setMuted/setEnabled. |
| This in turns will set the boolean values accordingly and will call the underlying |
| startProducingData/stopProducingData methods doing the actual stuff. |
| |
| Removing from all RealtimeMediaSource subclasses the handling of producing data. |
| Making more methods non-virtual/member fields private to simplify the model. |
| |
| * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: |
| (WebCore::CanvasCaptureMediaStreamTrack::Source::create): |
| (WebCore::CanvasCaptureMediaStreamTrack::Source::startProducingData): |
| (WebCore::CanvasCaptureMediaStreamTrack::Source::stopProducingData): |
| (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasDestroyed): |
| (WebCore::CanvasCaptureMediaStreamTrack::Source::captureCanvas): |
| * Modules/mediastream/CanvasCaptureMediaStreamTrack.h: |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::mediaState): |
| * platform/mediastream/MediaStreamTrackPrivate.h: |
| (WebCore::MediaStreamTrackPrivate::startProducingData): |
| (WebCore::MediaStreamTrackPrivate::stopProducingData): |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::setMuted): |
| (WebCore::RealtimeMediaSource::notifyMutedChange): |
| (WebCore::RealtimeMediaSource::setEnabled): |
| (WebCore::RealtimeMediaSource::start): |
| (WebCore::RealtimeMediaSource::stop): |
| (WebCore::RealtimeMediaSource::requestStop): |
| (WebCore::RealtimeMediaSource::reset): Deleted. |
| * platform/mediastream/RealtimeMediaSource.h: |
| * platform/mediastream/mac/AVMediaCaptureSource.h: |
| * platform/mediastream/mac/AVMediaCaptureSource.mm: |
| (WebCore::AVMediaCaptureSource::AVMediaCaptureSource): |
| (WebCore::AVMediaCaptureSource::captureSessionIsRunningDidChange): |
| (WebCore::AVMediaCaptureSource::reset): Deleted. |
| (WebCore::AVMediaCaptureSource::isProducingData): Deleted. |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource): |
| (WebCore::CoreAudioCaptureSource::startProducingData): |
| (WebCore::CoreAudioCaptureSource::stopProducingData): |
| (WebCore::CoreAudioCaptureSource::audioSourceProvider): |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: |
| (WebCore::MockRealtimeAudioSourceMac::render): |
| (WebCore::MockRealtimeAudioSource::createMuted): Deleted. |
| * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: |
| (WebCore::MockRealtimeVideoSource::createMuted): Deleted. |
| * platform/mediastream/mac/RealtimeIncomingAudioSource.cpp: |
| (WebCore::RealtimeIncomingAudioSource::create): |
| (WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource): |
| (WebCore::RealtimeIncomingAudioSource::~RealtimeIncomingAudioSource): |
| (WebCore::RealtimeIncomingAudioSource::startProducingData): |
| (WebCore::RealtimeIncomingAudioSource::stopProducingData): |
| (WebCore::RealtimeIncomingAudioSource::setSourceTrack): |
| * platform/mediastream/mac/RealtimeIncomingAudioSource.h: |
| * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: |
| (WebCore::RealtimeIncomingVideoSource::create): |
| (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): |
| (WebCore::RealtimeIncomingVideoSource::startProducingData): |
| (WebCore::RealtimeIncomingVideoSource::setSourceTrack): |
| (WebCore::RealtimeIncomingVideoSource::stopProducingData): |
| (WebCore::RealtimeIncomingVideoSource::OnFrame): |
| * platform/mediastream/mac/RealtimeIncomingVideoSource.h: |
| * platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm: |
| (WebCore::WebAudioSourceProviderAVFObjC::setClient): |
| * platform/mock/MockMediaEndpoint.cpp: |
| (WebCore::MockMediaEndpoint::createMutedRemoteSource): |
| (WebCore::MockMediaEndpoint::unmuteTimerFired): |
| * platform/mock/MockRealtimeAudioSource.cpp: |
| (WebCore::MockRealtimeAudioSource::createMuted): |
| (WebCore::MockRealtimeAudioSource::startProducingData): |
| (WebCore::MockRealtimeAudioSource::stopProducingData): |
| * platform/mock/MockRealtimeAudioSource.h: |
| * platform/mock/MockRealtimeMediaSource.cpp: |
| (WebCore::MockRealtimeMediaSource::startProducingData): Deleted. |
| (WebCore::MockRealtimeMediaSource::stopProducingData): Deleted. |
| * platform/mock/MockRealtimeMediaSource.h: |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSource::createMuted): |
| (WebCore::MockRealtimeVideoSource::startProducingData): |
| (WebCore::MockRealtimeVideoSource::stopProducingData): |
| (WebCore::MockRealtimeVideoSource::generateFrame): |
| * platform/mock/MockRealtimeVideoSource.h: |
| |
| 2017-05-15 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Migrate Font constructor from bools to enums |
| https://bugs.webkit.org/show_bug.cgi?id=172140 |
| |
| Reviewed by Tim Horton. |
| |
| In https://bugs.webkit.org/show_bug.cgi?id=168487, I'm adding a new flag to Font. We can't |
| keep having just a pile of bools in this class. Instead, we should be using enums. |
| |
| No new tests because there is no behavior change. |
| |
| * css/CSSFontFace.cpp: |
| (WebCore::CSSFontFace::font): |
| * css/CSSFontFaceSource.cpp: |
| (WebCore::CSSFontFaceSource::font): |
| * css/CSSSegmentedFontFace.cpp: |
| * loader/cache/CachedFont.cpp: |
| (WebCore::CachedFont::createFont): |
| * platform/graphics/Font.cpp: |
| (WebCore::Font::Font): |
| (WebCore::Font::verticalRightOrientationFont): |
| (WebCore::Font::uprightOrientationFont): |
| (WebCore::Font::brokenIdeographFont): |
| (WebCore::Font::description): |
| (WebCore::Font::mathData): |
| * platform/graphics/Font.h: |
| (WebCore::Font::create): |
| (WebCore::Font::origin): |
| (WebCore::Font::isInterstitial): |
| (WebCore::Font::widthForGlyph): |
| (WebCore::Font::isCustomFont): Deleted. |
| (WebCore::Font::isLoading): Deleted. |
| * platform/graphics/FontRanges.cpp: |
| * platform/graphics/cocoa/FontCocoa.mm: |
| (WebCore::Font::platformInit): |
| * platform/graphics/freetype/SimpleFontDataFreeType.cpp: |
| (WebCore::Font::platformCreateScaledFont): |
| * platform/graphics/win/SimpleFontDataCGWin.cpp: |
| (WebCore::Font::platformInit): |
| * platform/graphics/win/SimpleFontDataDirect2D.cpp: |
| (WebCore::Font::platformInit): |
| * platform/graphics/win/SimpleFontDataWin.cpp: |
| (WebCore::Font::platformCreateScaledFont): |
| (WebCore::Font::determinePitch): |
| * rendering/SimpleLineLayout.cpp: |
| (WebCore::SimpleLineLayout::canUseForFontAndText): |
| |
| 2017-05-15 Youenn Fablet <youenn@apple.com> |
| |
| WebRTC outgoing muted video sources should send black frames |
| https://bugs.webkit.org/show_bug.cgi?id=170627 |
| <rdar://problem/31513869> |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by updated test. |
| |
| Instead of sending one black frame and then another one asynchronously, |
| we use the timer to send a black frame every second when outgoing source is muted. |
| |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: |
| (WebCore::RealtimeOutgoingVideoSource::sourceMutedChanged): |
| (WebCore::RealtimeOutgoingVideoSource::sourceEnabledChanged): |
| (WebCore::RealtimeOutgoingVideoSource::sendBlackFrames): |
| (WebCore::RealtimeOutgoingVideoSource::sendBlackFrame): Deleted. |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: |
| * testing/Internals.cpp: |
| (WebCore::Internals::videoSampleAvailable): |
| |
| 2017-05-15 David Kilzer <ddkilzer@apple.com> |
| |
| Crash in libxml2.2.dylib: xmlDictReference |
| <https://webkit.org/b/172086> |
| <rdar://problem/23643436> |
| |
| Reviewed by Daniel Bates. |
| |
| Speculative fix and code clean-up based on source code |
| inspection. The fix for the crash is in two parts that change |
| XSLStyleSheet::parseString(): |
| 1. Always set m_stylesheetDoc to nullptr after freeing it via |
| XSLStyleSheet::clearXSLStylesheetDocument(). |
| 2. Add nullptr check before using m_stylesheetDoc from parent. |
| |
| Broadly speaking, the changes are: |
| - Extract code to reset m_stylesheetDoc into new private |
| XSLStyleSheet::clearXSLStylesheetDocument() method. There is |
| a special contract between m_stylesheetDoc and |
| m_stylesheetDocTaken that wasn't being followed every time. |
| See comment in XSLStyleSheet::compileStyleSheet(). |
| - XSLStyleSheet::clearDocuments() now calls new |
| clearXSLStylesheetDocument() method. Previously, it was not |
| checking or resetting m_stylesheetDocTaken, and it might have |
| leaked an xmlDocPtr if m_stylesheetDoc was set and |
| m_stylesheetDocTaken was false. |
| - XSLStyleSheet::parseString() now calls new |
| clearXSLStylesheetDocument() method. Previously, it did not |
| clear m_stylesheetDoc after freeing it, and it could return |
| early due to a failure in xmlCreateMemoryParserCtxt(). |
| - In XSLStyleSheet::parseString() use checked arithmetic when |
| calculating 'size' for xmlCreateMemoryParserCtxt() and |
| xmlCtxtReadMemory(). This code used to do an implicit |
| unsigned -> signed integer conversion that could overflow. |
| - Always iterate m_children using an 'auto& import' variable. |
| |
| * xml/XSLStyleSheet.h: |
| (WebCore::XSLStyleSheet::clearXSLStylesheetDocument): Add declaration. |
| (WebCore::XSLStyleSheet::m_disabled): Add default initializer. |
| (WebCore::XSLStyleSheet::m_stylesheetDoc): Ditto. |
| (WebCore::XSLStyleSheet::m_stylesheetDocTaken): Ditto. |
| (WebCore::XSLStyleSheet::m_parentStyleSheet): Ditto. |
| |
| * xml/XSLStyleSheetLibxslt.cpp: |
| (WebCore::XSLStyleSheet::XSLStyleSheet): Get rid of redundant |
| initializers. Set m_parentStyleSheet if needed. |
| (WebCore::XSLStyleSheet::~XSLStyleSheet): Call |
| clearXSLStylesheetDocument() instead of custom code. Switch |
| m_children fast iteration to use 'auto& import' variable. |
| (WebCore::XSLStyleSheet::isLoading): Switch m_children fast |
| iteration to use 'auto& import' variable. |
| (WebCore::XSLStyleSheet::clearDocuments): Call |
| clearXSLStylesheetDocument() instead of setting m_stylesheetDoc |
| to nullptr. This might fix an occasional xmlDocPtr leak. |
| (WebCore::XSLStyleSheet::clearXSLStylesheetDocument): Add. This |
| method always sets m_stylesheetDoc to nullptr (after freeing it |
| if necessary) and sets m_stylesheetDocTaken to false. |
| (WebCore::XSLStyleSheet::parseString): Call |
| clearXSLStylesheetDocument(). Prior to this, m_stylesheetDoc |
| might be left pointing to a freed value, and this method could |
| return early if xmlCreateMemoryParserCtxt() failed. Switch to |
| using Checked<> to compute required buffer size to parse XSL |
| stylesheet, and return early on overflow. Clean up existing |
| return statements to use boolean expressions. Add nullptr check |
| for m_parentStyleSheet->m_stylesheetDoc before using it. |
| (WebCore::XSLStyleSheet::loadChildSheet): Get rid of local |
| variable by calling loadSheet() from last array element. |
| (WebCore::XSLStyleSheet::compileStyleSheet): Add debug assert |
| that m_stylesheetDoc is not nullptr. |
| |
| 2017-05-15 Jer Noble <jer.noble@apple.com> |
| |
| Add experimental setting to allow document gesture interaction to fulfill media playback gesture requirement |
| https://bugs.webkit.org/show_bug.cgi?id=172131 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: media/restricted-audio-playback-with-document-gesture.html |
| |
| Move all calls to ScriptController::processingUserGestureForMedia() to the new Document equivalent. In Document, |
| if the new setting is enabled, return true from processingUserGestureForMedia() if the top-level document has had |
| a user gesture interaction. |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::processingUserGestureForMedia): |
| * Modules/mediastream/MediaStream.h: |
| * Modules/webaudio/AudioContext.cpp: |
| (WebCore::AudioContext::processingUserGestureForMedia): |
| (WebCore::AudioContext::willBeginPlayback): |
| (WebCore::AudioContext::willPausePlayback): |
| * Modules/webaudio/AudioContext.h: |
| * dom/Document.cpp: |
| (WebCore::Document::processingUserGestureForMedia): |
| * dom/Document.h: |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::load): |
| (WebCore::HTMLMediaElement::audioTrackEnabledChanged): |
| (WebCore::HTMLMediaElement::seekWithTolerance): |
| (WebCore::HTMLMediaElement::play): |
| (WebCore::HTMLMediaElement::playInternal): |
| (WebCore::HTMLMediaElement::pause): |
| (WebCore::HTMLMediaElement::pauseInternal): |
| (WebCore::HTMLMediaElement::setMuted): |
| (WebCore::HTMLMediaElement::webkitShowPlaybackTargetPicker): |
| (WebCore::HTMLMediaElement::processingUserGestureForMedia): |
| * html/HTMLMediaElement.h: |
| * html/MediaElementSession.cpp: |
| (WebCore::MediaElementSession::playbackPermitted): |
| (WebCore::MediaElementSession::dataLoadingPermitted): |
| (WebCore::MediaElementSession::fullscreenPermitted): |
| (WebCore::MediaElementSession::canShowControlsManager): |
| (WebCore::MediaElementSession::showPlaybackTargetPicker): |
| * page/Settings.in: |
| * platform/audio/PlatformMediaSession.h: |
| |
| 2017-05-15 Jer Noble <jer.noble@apple.com> |
| |
| Only ever initialize LibWebRTCProvider's staticFactoryAndThreads() factories once. |
| https://bugs.webkit.org/show_bug.cgi?id=172047 |
| |
| Reviewed by Youenn Fablet. |
| |
| Wrap the initilization of the factories contained in staticFactoryAndThreads() in a call_once to ensure |
| new factories aren't created every time it's called. |
| |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: |
| (WebCore::staticFactoryAndThreads): |
| |
| 2017-05-15 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CRASH seen with DOM.setOuterHTML when there is no documentElement |
| https://bugs.webkit.org/show_bug.cgi?id=172135 |
| <rdar://problem/32175860> |
| |
| Reviewed by Brian Burg. |
| |
| Test: inspector/dom/setOuterHTML-no-document-element.html |
| |
| * inspector/DOMPatchSupport.cpp: |
| (WebCore::DOMPatchSupport::patchDocument): |
| Null check the document element which might not exist. |
| |
| 2017-05-15 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| REGRESSION (216471): Infinite repaint-drawing loop when asynchronously decoding incomplete image frames |
| https://bugs.webkit.org/show_bug.cgi?id=171900 |
| |
| Reviewed by Tim Horton. |
| |
| -- Don't destroy incomplete decoded image frames for large images. This |
| is to avoid flickering while decoding another image frame with the new |
| data. The old incomplete image frame will be destroyed once the newer one |
| finishes decoding. |
| |
| -- Extend the enum ImageFrame::DecodingStatus by adding a new value called |
| 'Decoding'. This new value will never be cached in the ImageFrame:: |
| m_decodingStatus. Add a member m_currentFrameDecodingStatus to BitmapImage. |
| The purpose of this member is to invalidate the current frame, without |
| deleting it, when new encoded data is received. |
| |
| -- Don't wait until the native image is decoded to cache the ImageFrame |
| decodingStatus. There is a big chance that more data arrives between |
| starting the decoding and finishing it such that the decoding changes |
| from Partial to Complete. We need to prevent keeping incomplete ImageFrames |
| cached because we mistakenly assume they are complete. To fix this issue |
| we need to know the ImageFrame decodingStatus when the decoding is requested. |
| |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::destroyDecodedData): |
| (WebCore::BitmapImage::dataChanged): |
| (WebCore::BitmapImage::draw): |
| (WebCore::BitmapImage::internalStartAnimation): At the beginning of this |
| function we check whether the next frame is being decoded or not and we |
| return DecodingActive if it is. Let's handle the second check here also |
| before requesting the decoding of nextFrame. We need to check whether the |
| nextFrame has a native image with decoded with the native size or not. |
| (WebCore::BitmapImage::internalAdvanceAnimation): |
| (WebCore::BitmapImage::imageFrameAvailableAtIndex): |
| * platform/graphics/BitmapImage.h: |
| * platform/graphics/ImageFrame.cpp: |
| (WebCore::ImageFrame::operator=): |
| (WebCore::ImageFrame::setDecodingStatus): |
| (WebCore::ImageFrame::decodingStatus): |
| * platform/graphics/ImageFrame.h: |
| (WebCore::ImageFrame::isInvalid): |
| (WebCore::ImageFrame::isPartial): |
| (WebCore::ImageFrame::isComplete): |
| (WebCore::ImageFrame::setDecoding): Deleted. |
| (WebCore::ImageFrame::decoding): Deleted. |
| (WebCore::ImageFrame::isEmpty): Deleted. |
| * platform/graphics/ImageFrameCache.cpp: |
| (WebCore::ImageFrameCache::setNativeImage): |
| (WebCore::ImageFrameCache::cacheMetadataAtIndex): |
| (WebCore::ImageFrameCache::cacheNativeImageAtIndex): |
| (WebCore::ImageFrameCache::cacheNativeImageAtIndexAsync): |
| (WebCore::ImageFrameCache::startAsyncDecodingQueue): |
| (WebCore::ImageFrameCache::requestFrameAsyncDecodingAtIndex): |
| (WebCore::ImageFrameCache::stopAsyncDecodingQueue): |
| (WebCore::ImageFrameCache::frameAtIndexCacheIfNeeded): |
| (WebCore::ImageFrameCache::frameDecodingStatusAtIndex): |
| (WebCore::ImageFrameCache::cacheFrameMetadataAtIndex): Deleted. |
| (WebCore::ImageFrameCache::cacheFrameNativeImageAtIndex): Deleted. |
| (WebCore::ImageFrameCache::cacheAsyncFrameNativeImageAtIndex): Deleted. |
| (WebCore::ImageFrameCache::frameIsCompleteAtIndex): Deleted. |
| * platform/graphics/ImageFrameCache.h: |
| (WebCore::ImageFrameCache::ImageFrameRequest::operator==): |
| * platform/graphics/ImageSource.cpp: |
| (WebCore::ImageSource::dataChanged): |
| * platform/graphics/ImageSource.h: |
| (WebCore::ImageSource::destroyIncompleteDecodedData): |
| (WebCore::ImageSource::requestFrameAsyncDecodingAtIndex): Let the caller |
| decide whether another request for the same image frame is allowed or not. |
| (WebCore::ImageSource::frameDecodingStatusAtIndex): |
| (WebCore::ImageSource::frameIsCompleteAtIndex): Deleted. |
| * platform/image-decoders/ImageDecoder.cpp: |
| (WebCore::ImageDecoder::frameDurationAtIndex): |
| (WebCore::ImageDecoder::createFrameImageAtIndex): |
| * platform/image-decoders/bmp/BMPImageReader.cpp: |
| (WebCore::BMPImageReader::decodeBMP): |
| * platform/image-decoders/gif/GIFImageDecoder.cpp: |
| (WebCore::GIFImageDecoder::clearFrameBufferCache): |
| (WebCore::GIFImageDecoder::haveDecodedRow): |
| (WebCore::GIFImageDecoder::frameComplete): |
| (WebCore::GIFImageDecoder::initFrameBuffer): |
| * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: |
| (WebCore::JPEGImageDecoder::outputScanlines): |
| (WebCore::JPEGImageDecoder::jpegComplete): |
| * platform/image-decoders/png/PNGImageDecoder.cpp: |
| (WebCore::PNGImageDecoder::rowAvailable): |
| (WebCore::PNGImageDecoder::pngComplete): |
| (WebCore::PNGImageDecoder::clearFrameBufferCache): |
| (WebCore::PNGImageDecoder::frameComplete): |
| * platform/image-decoders/webp/WEBPImageDecoder.cpp: |
| (WebCore::WEBPImageDecoder::decode): |
| |
| 2017-05-15 Chris Dumez <cdumez@apple.com> |
| |
| Align WebKitCSSMatrix stringifier with spec for DOMMatrix |
| https://bugs.webkit.org/show_bug.cgi?id=172114 |
| |
| Reviewed by Simon Fraser. |
| |
| Align WebKitCSSMatrix stringifier with spec for DOMMatrix after: |
| - https://github.com/w3c/fxtf-drafts/pull/148 |
| |
| The following changes were made: |
| - Use EcmaScript's ToString() to convert floating point values to string |
| - Throw an invalid state error if the matrix contains non-finite values |
| - Made WebKitCSSMatrix.toString enumerable as per [1]. |
| |
| [1] https://heycam.github.io/webidl/#es-stringifier |
| |
| Test: fast/css/matrix-stringifier.html |
| |
| * css/WebKitCSSMatrix.cpp: |
| (WebCore::WebKitCSSMatrix::toString): |
| * css/WebKitCSSMatrix.h: |
| * css/WebKitCSSMatrix.idl: |
| * platform/graphics/transforms/TransformationMatrix.cpp: |
| (WebCore::TransformationMatrix::containsOnlyFiniteValues): |
| * platform/graphics/transforms/TransformationMatrix.h: |
| |
| 2017-05-15 Mark Lam <mark.lam@apple.com> |
| |
| WorkerRunLoop::Task::performTask() should check !scriptController->isTerminatingExecution(). |
| https://bugs.webkit.org/show_bug.cgi?id=171775 |
| <rdar://problem/30975761> |
| |
| Reviewed by Filip Pizlo. |
| |
| Currently, WorkerThread::stop() calls scheduleExecutionTermination() to terminate |
| JS execution first, followed by posting a cleanup task to the worker, and lastly, |
| it invokes terminate() on the WorkerRunLoop. |
| |
| As a result, before the run loop is terminated, the worker thread may observe the |
| TerminatedExecutionException in JS code, bail out, see another JS task to run, |
| re-enters the VM to run said JS code, and fails with an assertion due to the |
| TerminatedExecutionException still being pending on VM entry. |
| |
| WorkerRunLoop::Task::performTask() already has a check to only allow a task to |
| run if and only if !runLoop.terminated() and the task is not a clean up task. |
| We'll fix the above race by changing WorkerRunLoop::Task::performTask() to check |
| !context->script()->isTerminatingExecution() instead of !runLoop.terminated(). |
| Since WorkerThread::stop() always scheduleExecutionTermination() before it |
| terminates the run loop, !context->script()->isTerminatingExecution() implies |
| !runLoop.terminated(). |
| |
| The only time that runLoop is terminated without scheduleExecutionTermination() |
| being called is when WorkerThread::stop() is called before the WorkerThread has |
| finished creating its WorkerGlobalScope. In this scenario, WorkerThread::stop() |
| will still terminate the run loop. Hence, after the WorkerGlobalScope is created |
| (in WorkerThread::workerThread()), we will check if the run loop has been |
| terminated (i.e. stop() was called). If so, we'll scheduleExecutionTermination() |
| there, and guarantee that if runloop.terminated() is true, then |
| context->script()->isTerminatingExecution() is also true. |
| |
| Solutions that were considered but did not work (recorded for future reference): |
| |
| 1. In WorkerThread::stop(), call scheduleExecutionTermination() only after it |
| posts the cleanup task and terminate the run loop. |
| |
| This did not work because this creates a race where the worker thread may run |
| the cleanup task before WorkerThread::stop() finishes. As a result, the |
| scriptController may be deleted before we get to invoke scheduleExecutionTermination() |
| on it, thereby resulting in a use after free. |
| |
| To make this work, we would have to change the life cycle management strategy |
| of the WorkerScriptController. This is a more risky change that we would |
| want to take on at this time, and may also not be worth the gain. |
| |
| 2. Break scheduleExecutionTermination() up into 2 parts i.e. WorkerThread::stop() |
| will: |
| 1. set the scriptControllers m_isTerminatingExecution flag before |
| posting the cleanup task and terminating the run loop, and |
| 2. invoke VM::notifyNeedsTermination() after posting the cleanup task and |
| terminating the run loop. |
| |
| This requires that we protect the liveness of the VM until we can invoke |
| notifyNeedsTermination() on it. |
| |
| This did not work because: |
| 1. We may end up destructing the VM in WorkerThread::stop() i.e. in the main |
| web frame, but only the worker thread holds the JS lock for the VM. |
| |
| We can make the WorkerThread::stop() acquire the JS lock just before it |
| releases the protected VM's RefPtr, but that would mean the main thread |
| may be stuck waiting a bit for the worker thread to release its JSLock. |
| This is not desirable. |
| |
| 2. In practice, changing the liveness period of the Worker VM relative to its |
| WorkerScriptController and WorkerGlobalScope also has unexpected |
| ramifications. We observed many worker tests failing with assertion |
| failures and crashes due to this change. |
| |
| Hence, this approach is also a more risky change than it appears on the |
| surface, and is not worth exploring at this time. |
| |
| In the end, changing WorkerRunLoop::Task::performTask() to check for |
| !scriptController->isTerminatingExecution() is the most straight forward solution |
| that is easy to prove correct. |
| |
| Also fixed a race in WorkerThread::workerThread() where it can delete the |
| WorkerGlobalScope while WorkerThread::stop() is in the midst of accessing it. |
| We now guard the the nullifying of m_workerGlobalScope with the |
| m_threadCreationAndWorkerGlobalScopeMutex as well. |
| |
| UPDATE: the only new thing in this patch for re-landing (vs one previously landed) |
| is that instead of nullifying m_workerGlobalScope directly (thereby deleting the |
| WorkerGlobalScope context), we'll swap it out and delete it only after we've |
| unlocked the m_threadCreationAndWorkerGlobalScopeMutex. This is needed because |
| the destruction of the WorkerGlobalScope will cause the main thread to race against |
| the worker thread to delete the WorkerThread object, and the WorkerThread object |
| owns the mutex that we need to unlock after nullifying the m_workerGlobalScope |
| field. |
| |
| This issue is covered by an existing test that I just unskipped in TestExpectations. |
| |
| * bindings/js/JSDOMPromiseDeferred.cpp: |
| (WebCore::DeferredPromise::callFunction): |
| |
| * bindings/js/WorkerScriptController.cpp: |
| (WebCore::WorkerScriptController::scheduleExecutionTermination): |
| - Added a check to do nothing and return early if the scriptController is already |
| terminating execution. |
| |
| * workers/WorkerRunLoop.cpp: |
| (WebCore::WorkerRunLoop::runInMode): |
| (WebCore::WorkerRunLoop::runCleanupTasks): |
| (WebCore::WorkerRunLoop::Task::performTask): |
| |
| * workers/WorkerRunLoop.h: |
| - Made Task::performTask() private and make Task befriend the WorkerRunLoop class. |
| This ensures that only the WorkerRunLoop may call performTask(). |
| Note: this change only formalizes and hardens a relationship that was already |
| in place before this. |
| |
| * workers/WorkerThread.cpp: |
| (WebCore::WorkerThread::start): |
| (WebCore::WorkerThread::workerThread): |
| (WebCore::WorkerThread::stop): |
| * workers/WorkerThread.h: |
| - Renamed m_threadCreationMutex to m_threadCreationAndWorkerGlobalScopeMutex so |
| that it more accurately describes what it guards. |
| |
| 2017-05-15 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Unicode characters which can't be rendered in any font are invisible |
| https://bugs.webkit.org/show_bug.cgi?id=171942 |
| <rdar://problem/32054234> |
| |
| Reviewed by Tim Horton. |
| |
| There are some Unicode characters which don't have any font on the system which can render them. |
| These characters should be drawn as the .notdef "tofu." This is for security and usability, as |
| well as what Firefox and Chrome do. However, we still shouldn't draw characters with the |
| Default_Ignorable_Code_Point property, because this is what CoreText does. |
| |
| This behavior is also what the Unicode spec recommends: In UTR #36 Unicode Security Considerations: |
| http://www.unicode.org/reports/tr36/#Recommendations_General |
| "If there is no available glyph for a character, never show a simple "?" or omit the character." |
| |
| Also relevant is the Unicode Standard section 5.3 Unknown and MIssing Characters, starting at page |
| marked 203 in the following: http://www.unicode.org/versions/Unicode9.0.0/ch05.pdf |
| |
| Tests: fast/text/default-ignorable.html |
| fast/text/unknown-char-notdef.html |
| |
| * platform/graphics/WidthIterator.cpp: |
| (WebCore::characterMustDrawSomething): |
| |
| 2017-05-15 Timothy Horton <timothy_horton@apple.com> |
| |
| Null deref under WebContentReader::readURL when interacting with a file URL |
| https://bugs.webkit.org/show_bug.cgi?id=172045 |
| <rdar://problem/25880647> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * editing/ios/EditorIOS.mm: |
| (WebCore::Editor::WebContentReader::readURL): |
| The AppSupport soft link was wrong, as there is no such framework in /System/Library/Frameworks. |
| Thus, any time we hit this codepath, the soft linked function would be null, and calling it would crash. |
| Instead of just fixing the soft link, remove the code, because it does not seem necessary to |
| special-case fileURLs to images in the media directory. |
| |
| 2017-05-15 Eric Carlson <eric.carlson@apple.com> |
| |
| ASSERTION FAILED: wasRemoved in WebCore::RealtimeMediaSourceCenter::removeDevicesChangedObserver(DevicesChangedObserverToken) |
| https://bugs.webkit.org/show_bug.cgi?id=171529 |
| <rdar://problem/31945791> |
| |
| Reviewed by Jer Noble. |
| |
| No new tests, fixes a crash in existing tests. |
| |
| * Modules/mediastream/MediaDevices.cpp: |
| (WebCore::MediaDevices::MediaDevices): Use a weak ptr. |
| |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::observerMap): Use a static hash map for observers because the |
| source center can change at runtime. |
| (WebCore::RealtimeMediaSourceCenter::addDevicesChangedObserver): |
| (WebCore::RealtimeMediaSourceCenter::removeDevicesChangedObserver): |
| (WebCore::RealtimeMediaSourceCenter::captureDevicesChanged): |
| |
| 2017-05-15 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS WK1] Do not try to dispatch messages to subframes if their documents have not been constructed yet. |
| https://bugs.webkit.org/show_bug.cgi?id=172059 |
| <rdar://problem/31963192> |
| |
| Reviewed by Zalan Bujtas. |
| |
| On iOS WK1 we can end up in an inconsistent state, where |
| 1. The web thread is inside a newly-injected iframe's document's constructor and |
| 2. waiting on a delegate callback on the main thread |
| while the main thread |
| (a) Evaluates arbitrary JavaScript that modifies storage which |
| (b) Triggers an event dispatch. |
| |
| * storage/StorageEventDispatcher.cpp: |
| (WebCore::StorageEventDispatcher::dispatchSessionStorageEvents): If the sub-frame's document |
| is in an inconsistent state, skip it. |
| (WebCore::StorageEventDispatcher::dispatchLocalStorageEvents): Ditto. |
| (WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames): Ditto. |
| (WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames): Ditto. |
| |
| 2017-05-15 Zalan Bujtas <zalan@apple.com> |
| |
| Simple line layout: Leading whitespace followed by a <br> produces an extra linebreak. |
| https://bugs.webkit.org/show_bug.cgi?id=172076 |
| |
| Reviewed by Antti Koivisto. |
| |
| When the collapsed whitespace does not fit the line, we need to push it to the next line |
| so that we can decide whether any soft/hard linebreak should be skipped (to avoid double line breaks) or not. |
| |
| Test: fast/text/simple-line-layout-leading-whitespace-with-soft-hard-linebreak.html |
| |
| * rendering/SimpleLineLayout.cpp: |
| (WebCore::SimpleLineLayout::consumeLineBreakIfNeeded): special handling <br> |
| (WebCore::SimpleLineLayout::firstFragment): Now we need to deal with leading collapsed whitespace. |
| (WebCore::SimpleLineLayout::createLineRuns): We need to push even the collapsed whitespace to the next line. |
| |
| 2017-05-15 Nael Ouedraogo <nael.ouedraogo@crf.canon.fr> |
| |
| Invalid MediaSource duration value should throw TyperError instead of InvalidStateError |
| https://bugs.webkit.org/show_bug.cgi?id=171653 |
| |
| Reviewed by Chris Dumez. |
| |
| Modify MediaSource::setDuration to throw a TypeError when duration value is invalid as per MSE specification |
| (https://www.w3.org/TR/2016/REC-media-source-20161117/#dom-mediasource-duration). |
| |
| Update expectations of corresponding WPT test. |
| |
| * Modules/mediasource/MediaSource.cpp: |
| (WebCore::MediaSource::setDuration): |
| (WebCore::MediaSource::setDurationInternal): |
| |
| 2017-05-15 Gwang Yoon Hwang <yoon@igalia.com> |
| |
| [CAIRO] Painting an image mask with a matrix above Pixman's limit breaks internal states of Cairo |
| https://bugs.webkit.org/show_bug.cgi?id=169094 |
| |
| Reviewed by Žan Doberšek. |
| |
| It is the same problem which addressed in r212431. |
| In HiDPI situation, it happens easily due to the size of coordinates. |
| Also, if this bug happens, it will break the rendering continuously |
| since we are reusing graphics contexts to render webpages in same |
| webview. |
| |
| Test: fast/hidpi/hidpi-long-page-with-inset-element.html |
| |
| * platform/graphics/cairo/PlatformContextCairo.cpp: |
| (WebCore::PlatformContextCairo::pushImageMask): |
| We can avoid the limit of the Pixman by reducing the source surface's |
| size, and it will create a minimal pattern matrix. |
| |
| 2017-05-14 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed build fix with newer Perl versions. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (AddLegacyCallerOperationIfNeeded): Support for experimental push on scalar (and |
| other auto-dereferencing) was removed in Perl 5.24. Instead, the LegacyCallers array |
| has to be dereferenced when pushing new values to it. |
| |
| 2017-05-14 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL/DOM] Remove need for custom bindings for HTMLAllCollection and bring up to spec |
| https://bugs.webkit.org/show_bug.cgi?id=172095 |
| |
| Reviewed by Darin Adler. |
| |
| - Adds support for the legacycaller WebIDL special annotation. |
| - Updates implementation of HTMLAllCollection to match the current HTML spec. |
| |
| Test: fast/dom/document-all.html |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSBindingsAllInOne.cpp: |
| * bindings/js/JSHTMLAllCollectionCustom.cpp: Removed. |
| Removed JSHTMLAllCollectionCustom.cpp |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateInterface): |
| (AddLegacyCallerOperationIfNeeded): |
| Before code generation, clone all the legacycaller operations and put them |
| in their own set, so they can form an overload set. |
| |
| (AddStringifierOperationIfNeeded): |
| Use IDLParser::cloneType as the FIXME suggested. |
| |
| (GenerateHeader): |
| Group call related functionality together and use new IsCallable predicate. |
| |
| (GenerateOverloadedFunctionOrConstructor): |
| Generalize a little bit to allow the function being overloaded to be an overloaded legacycaller. |
| |
| (GenerateImplementation): |
| Add call to generate the legacycaller code. |
| |
| (GenerateLegacyCallerDefinitions): |
| (GenerateLegacyCallerDefinition): |
| Generate the legacycaller definition, using GenerateArgumentsCountCheck, GenerateParametersCheck |
| and GenerateImplementationFunctionCall to do all the heavy lifting. |
| |
| (IsCallable): |
| Add helper predicate for both custom calls and legacycaller. |
| |
| * bindings/scripts/IDLParser.pm: |
| (cloneType):. |
| (cloneArgument):. |
| (cloneOperation): |
| Add cloning functions for IDLArgument and IDLOperation, and make IDLType's |
| clone feasible for calling outside the package by removing the unneeded |
| self parameter. |
| |
| * bindings/scripts/test/JS/JSTestObj.cpp |
| * bindings/scripts/test/JS/JSTestObj.h |
| * bindings/scripts/test/TestObj.idl: |
| Add testing of legacycaller overloading. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::allFilteredByName): |
| * dom/Document.h: |
| Add new collection access for the HTMLAllNamedSubCollection. |
| |
| * html/CachedHTMLCollection.h: |
| (WebCore::nameShouldBeVisibleInDocumentAll): |
| Update list of tags to match the current spec. |
| |
| * html/CollectionType.h: |
| Add new type for HTMLAllNamedSubCollection. |
| |
| * html/GenericCachedHTMLCollection.cpp: |
| (WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches): |
| Specify that DocumentAllNamedItems does not want |
| the default elementMatches. |
| |
| * html/HTMLAllCollection.cpp: |
| (WebCore::HTMLAllCollection::namedOrIndexedItemOrItems): |
| (WebCore::HTMLAllCollection::namedItemOrItems): |
| (WebCore::HTMLAllNamedSubCollection::~HTMLAllNamedSubCollection): |
| (WebCore::HTMLAllNamedSubCollection::elementMatches): |
| * html/HTMLAllCollection.h: |
| Move implementations from the custom binding, and re-implement to |
| match the spec. Alternate names to item/namedItem were needed to not |
| shadow the existing ones in HTMLCollection. HTMLAllNamedSubCollection |
| is a simple HTMLCollection that matches on a name, following the rules |
| of document.all about which tags can have name attributes. |
| |
| * html/HTMLAllCollection.idl: |
| Remove custom annotations and add legacycaller which is now supported. |
| |
| * html/HTMLCollection.cpp: |
| (WebCore::invalidationTypeExcludingIdAndNameAttributes): |
| (WebCore::HTMLCollection::~HTMLCollection): |
| Add DocumentAllNamedItems. |
| |
| 2017-05-14 Zalan Bujtas <zalan@apple.com> |
| |
| Remove unused lambda in TextFragmentIterator::TextFragment::split() and cleanup dependencies. |
| https://bugs.webkit.org/show_bug.cgi?id=172089 |
| |
| Reviewed by David Kilzer. |
| |
| * rendering/SimpleLineLayout.cpp: |
| (WebCore::SimpleLineLayout::splitFragmentToFitLine): |
| * rendering/SimpleLineLayoutTextFragmentIterator.h: |
| (WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::split): |
| (WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::splitWithHyphen): |
| |
| 2017-05-13 David Kilzer <ddkilzer@apple.com> |
| |
| Unused lambda in JSWebKitSubtleCrypto::wrapKey() |
| <https://webkit.org/b/172087> |
| |
| Reviewed by Chris Dumez. |
| |
| Fixes the following warning with newer clang: |
| |
| Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp:594:35: error: lambda capture 'keyFormat' is not used [-Werror,-Wunused-lambda-capture] |
| auto exportSuccessCallback = [keyFormat, algorithm, parameters, wrappingKey, wrapper](const Vector<uint8_t>& exportedKeyData) mutable { |
| ^ |
| |
| * bindings/js/JSWebKitSubtleCryptoCustom.cpp: |
| (WebCore::JSWebKitSubtleCrypto::wrapKey): Remove unused lambda. |
| |
| 2017-05-13 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] deviceId constraint doesn't work with getUserMedia |
| https://bugs.webkit.org/show_bug.cgi?id=171877 |
| <rdar://problem/31899730> |
| |
| Reviewed by Jer Noble. |
| |
| Test: fast/mediastream/get-user-media-device-id.html |
| |
| * Modules/mediastream/MediaConstraintsImpl.h: |
| (WebCore::MediaConstraintsData::MediaConstraintsData): Add a constructor that |
| takes a const MediaConstraints&. |
| |
| * Modules/mediastream/MediaDevices.cpp: |
| (WebCore::MediaDevices::~MediaDevices): m_deviceChangedToken is a std::optional<>. |
| * Modules/mediastream/MediaDevices.h: |
| |
| * Modules/mediastream/MediaDevicesEnumerationRequest.cpp: |
| (WebCore::MediaDevicesEnumerationRequest::topLevelDocumentOrigin): Don't return |
| NULL for the main frame so the origin matches that returned for a UserMediaRequest. |
| |
| * Modules/mediastream/UserMediaController.h: |
| (WebCore::UserMediaController::setDeviceIDHashSalt): Deleted, not used. |
| (WebCore::UserMediaController::deviceIDHashSalt): Deleted, not used. |
| |
| * Modules/mediastream/UserMediaRequest.cpp: |
| (WebCore::UserMediaRequest::allow): Add device ID hash salt parameter, set it on |
| constraints. |
| * Modules/mediastream/UserMediaRequest.h: |
| |
| * platform/mediastream/MediaConstraints.h: |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::fitnessDistance): ASSERT if called for DeviceId. |
| (WebCore::RealtimeMediaSource::selectSettings): Special case DeviceId because it |
| we have to hash the device ID before comparing, and because the DeviceId can't be |
| changed so it should never be added to the flattened constraints. |
| (WebCore::RealtimeMediaSource::supportsConstraints): |
| (WebCore::RealtimeMediaSource::applyConstraints): |
| * platform/mediastream/RealtimeMediaSource.h: |
| |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::RealtimeMediaSourceCenter::validateRequestConstraints): Implement. |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| |
| * platform/mediastream/RealtimeMediaSourceSupportedConstraints.cpp: |
| (WebCore::RealtimeMediaSourceSupportedConstraints::nameForConstraint): Deleted, unused. |
| (WebCore::RealtimeMediaSourceSupportedConstraints::constraintFromName): Deleted, unused. |
| * platform/mediastream/RealtimeMediaSourceSupportedConstraints.h: |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| (WebCore::RealtimeMediaSourceCenterMac::bestSourcesForTypeAndConstraints): Pass device |
| id, not empty string. |
| (WebCore::RealtimeMediaSourceCenterMac::validateRequestConstraints): Deleted. |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.h: |
| |
| * platform/mock/MockRealtimeMediaSourceCenter.cpp: |
| (WebCore::MockRealtimeMediaSourceCenter::validateRequestConstraints): Deleted. |
| * platform/mock/MockRealtimeMediaSourceCenter.h: |
| |
| 2017-05-13 Chris Dumez <cdumez@apple.com> |
| |
| Stop using RefPtr::release() |
| https://bugs.webkit.org/show_bug.cgi?id=172074 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::FontVariantLigaturesParser::finalizeValue): |
| (WebCore::FontVariantNumericParser::finalizeValue): |
| * css/parser/CSSPropertyParserHelpers.cpp: |
| (WebCore::CSSPropertyParserHelpers::CalcParser::consumeValue): |
| * loader/SubresourceLoader.cpp: |
| (WebCore::SubresourceLoader::create): |
| * loader/archive/mhtml/MHTMLArchive.cpp: |
| (WebCore::MHTMLArchive::generateMHTMLData): |
| * loader/archive/mhtml/MHTMLArchive.h: |
| * loader/archive/mhtml/MHTMLParser.cpp: |
| (WebCore::MHTMLParser::parseArchiveWithHeader): |
| * platform/audio/ios/AudioFileReaderIOS.cpp: |
| (WebCore::AudioFileReader::createBus): |
| * platform/glib/SharedBufferGlib.cpp: |
| (WebCore::SharedBuffer::createFromReadingFile): |
| * platform/graphics/ca/win/CACFLayerTreeHost.cpp: |
| (WebCore::CACFLayerTreeHost::create): |
| * platform/graphics/cairo/CairoUtilities.cpp: |
| (WebCore::copyCairoImageSurface): |
| * platform/graphics/cairo/ImageBufferCairo.cpp: |
| (WebCore::getImageData): |
| * platform/graphics/gtk/IconGtk.cpp: |
| (WebCore::Icon::createIconForFiles): |
| * platform/graphics/win/FontCacheWin.cpp: |
| (WebCore::FontCache::systemFallbackForCharacters): |
| * platform/win/SharedBufferWin.cpp: |
| (WebCore::SharedBuffer::createFromReadingFile): |
| |
| 2017-05-13 Javier Fernandez <jfernandez@igalia.com> |
| |
| [css-align] Implement the place-self shorthand |
| https://bugs.webkit.org/show_bug.cgi?id=168846 |
| |
| Reviewed by Zalan Bujtas. |
| |
| The CSS Box Alignment specification defines a new shorthand to set the |
| Content Alignment properties (align-self and justify-self) at the |
| same time. |
| |
| This patch provides the implementation of the CSS parsing logic and the |
| required regression tests. |
| |
| Test: css3/parse-place-self.html |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::propertyValue): |
| * css/CSSProperties.json: |
| * css/StyleProperties.cpp: |
| (WebCore::StyleProperties::getPropertyValue): |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::CSSPropertyParser::consumePlaceSelfShorthand): |
| (WebCore::CSSPropertyParser::parseShorthand): |
| * css/parser/CSSPropertyParser.h: |
| |
| 2017-05-13 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r216801. |
| https://bugs.webkit.org/show_bug.cgi?id=172072 |
| |
| Many memory corruption crashes on worker threads (Requested by |
| ap on #webkit). |
| |
| Reverted changeset: |
| |
| "WorkerRunLoop::Task::performTask() should check |
| !scriptController->isTerminatingExecution()." |
| https://bugs.webkit.org/show_bug.cgi?id=171775 |
| http://trac.webkit.org/changeset/216801 |
| |
| 2017-05-13 Zalan Bujtas <zalan@apple.com> |
| |
| AccessibilityRenderObject::textUnderElement needs to assert on unclean tree. |
| https://bugs.webkit.org/show_bug.cgi?id=172065 |
| |
| Reviewed by Simon Fraser. |
| |
| r192103 changed the assert logic incorrectly. If the tree is dirty, regardless of the renderer's type, |
| TextIterator will end up forcing style update/layout on the render tree. |
| The original assert would have hit with bug 171546 prior to r216726. |
| |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::textUnderElement): |
| |
| 2017-05-12 Simon Fraser <simon.fraser@apple.com> |
| |
| event.clientX/clientY should be in layout viewport coordinates |
| https://bugs.webkit.org/show_bug.cgi?id=172018 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Fix clientX and clientY on mouse events to be relative to the layout viewport, to match |
| getBoundingClientRect(), getClientRects() and fixed-position objects. |
| |
| Also minor cleanup of MouseRelatedEvent to use initializers. |
| |
| Test: fast/visual-viewport/client-coordinates-relative-to-layout-viewport.html |
| |
| * dom/MouseRelatedEvent.cpp: |
| (WebCore::MouseRelatedEvent::MouseRelatedEvent): |
| (WebCore::MouseRelatedEvent::init): |
| (WebCore::MouseRelatedEvent::initCoordinates): |
| (WebCore::contentsScrollOffset): Deleted. |
| * dom/MouseRelatedEvent.h: |
| |
| 2017-05-12 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Remove need for custom binding for Worker constructor |
| https://bugs.webkit.org/show_bug.cgi?id=172050 |
| |
| Reviewed by Chris Dumez. |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSWorkerCustom.cpp: Removed. |
| Remove JSWorkerCustom.cpp |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateCallWith): |
| * bindings/scripts/IDLAttributes.json: |
| Add RuntimeFlags as a new option for the ConstructorCallWith extended attribute. |
| |
| * workers/Worker.cpp: |
| (WebCore::Worker::create): |
| * workers/Worker.h: |
| Update order of arguments to appease the generator. |
| |
| * workers/Worker.idl: |
| Add extended attributes for the constructor. |
| |
| 2017-05-12 Simon Fraser <simon.fraser@apple.com> |
| |
| The rects returned by Element/Range.getClientRects() should not be rounded |
| https://bugs.webkit.org/show_bug.cgi?id=172057 |
| |
| Reviewed by Chris Dumez. |
| |
| Fix createDOMRectVector() to not expand the rects to integer boundaries (which |
| quad.enclosingBoundingBox() does), but to return rects with floating point |
| values. This matches Chrome and Firefox, and matches getBoundingClientRect(), |
| which does not integral snap. |
| |
| * dom/DOMRect.cpp: |
| (WebCore::createDOMRectVector): |
| |
| 2017-05-12 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Elements should be inserted into a template element as its content's last child |
| https://bugs.webkit.org/show_bug.cgi?id=171373 |
| <rdar://problem/31862949> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Before this change, our HTML parser obeys the following premises: |
| 1) A fostering child whose parent is a table should be inserted before its parent and under its grandparent. |
| 2) When inserting into a template element, an element should be inserted into its content. |
| |
| Let's walk through the example: |
| a) Before eventhandler takes place |
| template |
| table |
| svg <- parser |
| b) After eventhandler takes place |
| template |
| table |
| svg <- parser |
| c) after parsing svg |
| template |
| content |
| svg |
| (table) |
| table |
| |
| Finally, in the example, the svg element will be inserted into the content of the template element while |
| having its next sibling point to the table element. However, the table element is actually under the |
| template element not its content. |
| |
| This messy tree is constructed because the second premise is incompleted. It should be: When inserting into |
| a template element, an element should be inserted into its content as its last child. |
| Quoted from Step 3 of https://html.spec.whatwg.org/multipage/syntax.html#appropriate-place-for-inserting-a-node |
| A correct tree will then looks like: |
| template |
| content |
| svg |
| table |
| |
| Tests: fast/dom/HTMLTemplateElement/insert-fostering-child-crash.html |
| fast/dom/HTMLTemplateElement/insert-fostering-child.html |
| |
| * html/parser/HTMLConstructionSite.cpp: |
| (WebCore::insert): |
| By nullifying task.nextChild, it will force the parser to append the element as task.parent's last child. |
| |
| 2017-05-12 Alex Christensen <achristensen@webkit.org> |
| |
| Rename WKContentExtension to WKContentRuleList |
| https://bugs.webkit.org/show_bug.cgi?id=172053 |
| <rdar://problem/32141005> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Covered by existing API tests. |
| |
| * English.lproj/Localizable.strings: |
| |
| 2017-05-12 Timothy Horton <timothy_horton@apple.com> |
| |
| Don't use LinkPresentation URL shortening if it's not available |
| https://bugs.webkit.org/show_bug.cgi?id=172064 |
| <rdar://problem/32169232> |
| |
| Rubber-stamped by Wenson Hsieh. |
| |
| * platform/mac/DragImageMac.mm: |
| (WebCore::LinkImageLayout::LinkImageLayout): |
| * platform/spi/cocoa/LinkPresentationSPI.h: |
| |
| 2017-05-11 Simon Fraser <simon.fraser@apple.com> |
| |
| Incorrect position when dragging jQuery Draggable elements with position fixed after pinch zoom |
| https://bugs.webkit.org/show_bug.cgi?id=171113 |
| rdar://problem/31746516 |
| |
| Reviewed by Tim Horton. |
| |
| Make getBoundingClientRect() and getClientRects() return rects which are relative to the layout |
| viewport, rather than the visual viewport. This goes part of the way to fixing webkit.org/b/170981, |
| which aims to make pinch-zoom invisible to web pages ("inert visual viewport"). It fixes issues on various |
| sites like Facebook when zoomed. |
| |
| Factor coordinate conversion code into functions on FrameView, which now documents |
| the various coordinate systems in a big comment. Document::adjustFloatQuadsForScrollAndAbsoluteZoomAndFrameScale() |
| and Document::adjustFloatRectForScrollAndAbsoluteZoomAndFrameScale() are renamed and factored |
| to use these helpers. |
| |
| There are two behavior changes here: |
| |
| 1. FrameView::documentToClientOffset() now uses the origin of the layout viewport in the "document to client" |
| coordinate mapping. |
| |
| 2. The two document functions would apply the scale and offset in the wrong order. We need |
| to first undo the effects of CSS zoom, page zoom and page scale, and then map from document |
| to client coordinates. |
| |
| Tests: fast/visual-viewport/client-rects-relative-to-layout-viewport.html |
| fast/zooming/client-rects-with-css-and-page-zoom.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::convertAbsoluteToClientQuads): |
| (WebCore::Document::convertAbsoluteToClientRect): |
| (WebCore::Document::adjustFloatQuadsForScrollAndAbsoluteZoomAndFrameScale): Deleted. |
| (WebCore::Document::adjustFloatRectForScrollAndAbsoluteZoomAndFrameScale): Deleted. |
| * dom/Document.h: |
| * dom/Element.cpp: |
| (WebCore::Element::getClientRects): |
| (WebCore::Element::getBoundingClientRect): |
| * dom/Range.cpp: |
| (WebCore::Range::borderAndTextQuads): |
| * page/FrameView.cpp: |
| (WebCore::FrameView::absoluteToDocumentScaleFactor): |
| (WebCore::FrameView::absoluteToDocumentRect): |
| (WebCore::FrameView::absoluteToDocumentPoint): |
| (WebCore::FrameView::documentToClientOffset): |
| (WebCore::FrameView::documentToClientRect): |
| (WebCore::FrameView::documentToClientPoint): |
| * page/FrameView.h: |
| * platform/ScrollableArea.h: #pragma once |
| * platform/Scrollbar.h: #pragma once |
| * platform/Widget.h: #pragma once |
| |
| 2017-05-12 Mark Lam <mark.lam@apple.com> |
| |
| WorkerRunLoop::Task::performTask() should check !scriptController->isTerminatingExecution(). |
| https://bugs.webkit.org/show_bug.cgi?id=171775 |
| <rdar://problem/30975761> |
| |
| Reviewed by Saam Barati. |
| |
| Currently, WorkerThread::stop() calls scheduleExecutionTermination() to terminate |
| JS execution first, followed by posting a cleanup task to the worker, and lastly, |
| it invokes terminate() on the WorkerRunLoop. |
| |
| As a result, before the run loop is terminated, the worker thread may observe the |
| TerminatedExecutionException in JS code, bail out, see another JS task to run, |
| re-enters the VM to run said JS code, and fails with an assertion due to the |
| TerminatedExecutionException still being pending on VM entry. |
| |
| WorkerRunLoop::Task::performTask() already has a check to only allow a task to |
| run if and only if !runLoop.terminated() and the task is not a clean up task. |
| We'll fix the above race by changing WorkerRunLoop::Task::performTask() to check |
| !context->script()->isTerminatingExecution() instead of !runLoop.terminated(). |
| Since WorkerThread::stop() always scheduleExecutionTermination() before it |
| terminates the run loop, !context->script()->isTerminatingExecution() implies |
| !runLoop.terminated(). |
| |
| The only time that runLoop is terminated without scheduleExecutionTermination() |
| being called is when WorkerThread::stop() is called before the WorkerThread has |
| finished creating its WorkerGlobalScope. In this scenario, WorkerThread::stop() |
| will still terminate the run loop. Hence, after the WorkerGlobalScope is created |
| (in WorkerThread::workerThread()), we will check if the run loop has been |
| terminated (i.e. stop() was called). If so, we'll scheduleExecutionTermination() |
| there, and guarantee that if runloop.terminated() is true, then |
| context->script()->isTerminatingExecution() is also true. |
| |
| Solutions that were considered but did not work (recorded for future reference): |
| |
| 1. In WorkerThread::stop(), call scheduleExecutionTermination() only after it |
| posts the cleanup task and terminate the run loop. |
| |
| This did not work because this creates a race where the worker thread may run |
| the cleanup task before WorkerThread::stop() finishes. As a result, the |
| scriptController may be deleted before we get to invoke scheduleExecutionTermination() |
| on it, thereby resulting in a use after free. |
| |
| To make this work, we would have to change the life cycle management strategy |
| of the WorkerScriptController. This is a more risky change that we would |
| want to take on at this time, and may also not be worth the gain. |
| |
| 2. Break scheduleExecutionTermination() up into 2 parts i.e. WorkerThread::stop() |
| will: |
| 1. set the scriptControllers m_isTerminatingExecution flag before |
| posting the cleanup task and terminating the run loop, and |
| 2. invoke VM::notifyNeedsTermination() after posting the cleanup task and |
| terminating the run loop. |
| |
| This requires that we protect the liveness of the VM until we can invoke |
| notifyNeedsTermination() on it. |
| |
| This did not work because: |
| 1. We may end up destructing the VM in WorkerThread::stop() i.e. in the main |
| web frame, but only the worker thread holds the JS lock for the VM. |
| |
| We can make the WorkerThread::stop() acquire the JS lock just before it |
| releases the protected VM's RefPtr, but that would mean the main thread |
| may be stuck waiting a bit for the worker thread to release its JSLock. |
| This is not desirable. |
| |
| 2. In practice, changing the liveness period of the Worker VM relative to its |
| WorkerScriptController and WorkerGlobalScope also has unexpected |
| ramifications. We observed many worker tests failing with assertion |
| failures and crashes due to this change. |
| |
| Hence, this approach is also a more risky change than it appears on the |
| surface, and is not worth exploring at this time. |
| |
| In the end, changing WorkerRunLoop::Task::performTask() to check for |
| !scriptController->isTerminatingExecution() is the most straight forward solution |
| that is easy to prove correct. |
| |
| Also fixed a race in WorkerThread::workerThread() where it can delete the |
| WorkerGlobalScope while WorkerThread::stop() is in the midst of accessing it. |
| We now guard the the nullifying of m_workerGlobalScope with the |
| m_threadCreationAndWorkerGlobalScopeMutex as well. |
| |
| This issue is covered by an existing test that I just unskipped in TestExpectations. |
| |
| * bindings/js/JSDOMPromiseDeferred.cpp: |
| (WebCore::DeferredPromise::callFunction): |
| |
| * bindings/js/WorkerScriptController.cpp: |
| (WebCore::WorkerScriptController::scheduleExecutionTermination): |
| - Added a check to do nothing and return early if the scriptController is already |
| terminating execution. |
| |
| * workers/WorkerRunLoop.cpp: |
| (WebCore::WorkerRunLoop::runInMode): |
| (WebCore::WorkerRunLoop::runCleanupTasks): |
| (WebCore::WorkerRunLoop::Task::performTask): |
| |
| * workers/WorkerRunLoop.h: |
| - Made Task::performTask() private and make Task befriend the WorkerRunLoop class. |
| This ensures that only the WorkerRunLoop may call performTask(). |
| Note: this change only formalizes and hardens a relationship that was already |
| in place before this. |
| |
| * workers/WorkerThread.cpp: |
| (WebCore::WorkerThread::start): |
| (WebCore::WorkerThread::workerThread): |
| (WebCore::WorkerThread::stop): |
| * workers/WorkerThread.h: |
| - Renamed m_threadCreationMutex to m_threadCreationAndWorkerGlobalScopeMutex so |
| that it more accurately describes what it guards. |
| |
| 2017-05-12 Zalan Bujtas <zalan@apple.com> |
| |
| [iOS WK1] Do not try to layout a subframe if its document has not been constructed yet. |
| https://bugs.webkit.org/show_bug.cgi?id=172042 |
| <rdar://problem/32084098> |
| |
| Reviewed by Antti Koivisto. |
| |
| On iOS WK1 we can end up in an inconsistent state, where |
| 1. the web thread is inside a newly injected iframe's document's c'tor and |
| 2. waiting on a delegate callback on the main thread |
| while the main thread |
| 1. executes a pending didLayout() task |
| 2. triggers layout on the newly injected iframe. |
| |
| * rendering/RenderWidget.cpp: |
| (WebCore::RenderWidget::updateWidgetPosition): |
| |
| 2017-05-11 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Check existence of a page before accessing its plugins |
| https://bugs.webkit.org/show_bug.cgi?id=171712 |
| <rdar://problem/32007806> |
| |
| Reviewed by Brent Fulgham. |
| |
| Test: plugins/navigator-plugin-crash.html |
| |
| * plugins/DOMPlugin.cpp: |
| (WebCore::DOMPlugin::item): |
| (WebCore::DOMPlugin::namedItem): |
| |
| 2017-05-12 Simon Fraser <simon.fraser@apple.com> |
| |
| Add some logging for layer tree commits, and resize and orientation change events |
| https://bugs.webkit.org/show_bug.cgi?id=172041 |
| |
| Reviewed by Tim Horton. |
| |
| Add some logging that's useful during rotation investigations. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::orientationChanged): |
| * page/FrameView.cpp: |
| (WebCore::FrameView::sendResizeEventIfNeeded): |
| |
| 2017-05-12 Romain Bellessort <romain.bellessort@crf.canon.fr> |
| |
| [Readable Streams API] Add ReadableStreamBYOBReader closed getter |
| https://bugs.webkit.org/show_bug.cgi?id=172024 |
| |
| Reviewed by Youenn Fablet. |
| |
| Added tests to check closed getter behaviour. |
| |
| * Modules/streams/ReadableStreamBYOBReader.js: |
| (closed): Implemented. |
| |
| 2017-05-12 Andreas Kling <akling@apple.com> |
| |
| MediaResourceLoader shouldn't keep its HTMLMediaElement alive. |
| https://bugs.webkit.org/show_bug.cgi?id=172032 |
| <rdar://problem/30816144> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Use a WeakPtr<HTMLMediaElement> in MediaResourceLoader instead, since the loader |
| is retained by a NSURLSession object we hand over to AVFoundation. |
| |
| This prevents AVFoundation from keeping entire documents alive outside our control. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::HTMLMediaElement): |
| * html/HTMLMediaElement.h: |
| (WebCore::HTMLMediaElement::createWeakPtr): |
| * loader/MediaResourceLoader.cpp: |
| (WebCore::MediaResourceLoader::MediaResourceLoader): |
| (WebCore::MediaResourceLoader::requestResource): |
| * loader/MediaResourceLoader.h: |
| |
| 2017-05-12 Andreas Kling <akling@apple.com> |
| |
| Memory pressure response should only do sync bmalloc scavenge in sync mode. |
| https://bugs.webkit.org/show_bug.cgi?id=172035 |
| |
| Reviewed by Michael Saboff. |
| |
| Only call WTF::releaseFastMallocFreeMemory() and his threading-related friends |
| when releaseMemory() is invoked with Synchronous::Yes, or if it's a critical |
| pressure response (maintaining the behavior added in r215775.) |
| |
| * page/MemoryRelease.cpp: |
| (WebCore::releaseMemory): |
| |
| 2017-05-12 Daniel Bates <dabates@apple.com> |
| |
| Cleanup: Use Ref instead of RefPtr to hold DOMWrapperWorld |
| https://bugs.webkit.org/show_bug.cgi?id=171988 |
| |
| Reviewed by Chris Dumez. |
| |
| * bindings/js/JSCustomElementInterface.cpp: |
| (WebCore::JSCustomElementInterface::JSCustomElementInterface): |
| (WebCore::JSCustomElementInterface::upgradeElement): |
| (WebCore::JSCustomElementInterface::invokeCallback): |
| * bindings/js/JSCustomElementInterface.h: |
| * bindings/js/JSMutationCallback.cpp: |
| (WebCore::JSMutationCallback::JSMutationCallback): |
| (WebCore::JSMutationCallback::call): |
| * bindings/js/JSMutationCallback.h: |
| * bindings/js/ScheduledAction.cpp: |
| (WebCore::ScheduledAction::ScheduledAction): |
| (WebCore::ScheduledAction::execute): |
| * bindings/js/ScheduledAction.h: |
| (WebCore::ScheduledAction::ScheduledAction): |
| * page/DOMWindowExtension.cpp: |
| (WebCore::DOMWindowExtension::DOMWindowExtension): |
| * page/DOMWindowExtension.h: |
| (WebCore::DOMWindowExtension::world): |
| |
| 2017-05-12 Daniel Bates <dabates@apple.com> |
| |
| Cleanup: Make QueueTaskToEventLoopFunctionPtr take JSGlobalObject& |
| https://bugs.webkit.org/show_bug.cgi?id=172021 |
| |
| Reviewed by Mark Lam. |
| |
| * bindings/js/JSDOMGlobalObjectTask.cpp: Include header JSDOMGlobalObject.h. |
| (WebCore::JSGlobalObjectTask::JSGlobalObjectTask): Change type of first argument from JSDOMGlobalObject* |
| to JSDOMGlobalObject& and update code as necessary. Also, use C++11 brace initialization syntax |
| for member initializer list. |
| * bindings/js/JSDOMGlobalObjectTask.h: Remove header JSDOMGlobalObject.h and forward declare |
| JSDOMGlobalObject and JSC::Microtask. |
| * bindings/js/JSDOMWindowBase.cpp: |
| (WebCore::JSDOMWindowMicrotaskCallback::create): |
| (WebCore::JSDOMWindowMicrotaskCallback::JSDOMWindowMicrotaskCallback): Change type of first argument |
| from JSDOMWindowBase* to JSDOMWindowBase& and update code as necessary. Also, use C++11 brace |
| initialization syntax for member initializer list. |
| (WebCore::JSDOMWindowBase::queueTaskToEventLoop): |
| * bindings/js/JSDOMWindowBase.h: |
| * bindings/js/JSWorkerGlobalScopeBase.cpp: |
| (WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop): |
| * bindings/js/JSWorkerGlobalScopeBase.h: |
| |
| 2017-05-12 Jer Noble <jer.noble@apple.com> |
| |
| [MediaStream] Streams while play while page is in background can get "stuck" when page is forgrounded. |
| https://bugs.webkit.org/show_bug.cgi?id=172022 |
| |
| Reviewed by Youenn Fablet. |
| |
| When an AVSampleBufferDisplayLayer is disconnected from the CA renderer, none of its samples will be decoded |
| and enqueued for rendering. Once the layer is attached to a renderer again, it's stuffed full of samples which |
| will never be decoded as their decode time has long passed. |
| |
| Pass the visibility state of the element through to the MediaPlayer so that MediaPlayerPrivateMediaStreamAVFObjC |
| can flush its renderers when going from not visible -> visible. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::visibilityStateChanged): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVisible): |
| * rendering/RenderVideo.cpp: |
| (WebCore::RenderVideo::updatePlayer): |
| |
| 2017-05-12 Per Arne Vollan <pvollan@apple.com> |
| |
| Unreviewed Windows build fix. |
| |
| * bindings/js/JSWebGLRenderingContextCustom.cpp: |
| |
| 2017-05-12 Antti Koivisto <antti@apple.com> |
| |
| Updating class name of a shadow host does not update the style applied by descendants of :host() |
| https://bugs.webkit.org/show_bug.cgi?id=170762 |
| <rdar://problem/31572668> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| We need to invalidate shadow tree style when host classes or attributes change if it may be |
| affected by host rules. |
| |
| Test: fast/shadow-dom/css-scoping-host-class-and-attribute-mutation.html |
| |
| * css/RuleSet.cpp: |
| (WebCore::isHostSelectorMatchingInShadowTree): |
| (WebCore::RuleSet::addRule): |
| |
| Check if we have :host selectors that affect shadow tree. |
| |
| * css/RuleSet.h: |
| (WebCore::RuleSet::hasHostPseudoClassRulesMatchingInShadowTree): |
| * style/AttributeChangeInvalidation.cpp: |
| (WebCore::Style::mayBeAffectedByHostRules): |
| (WebCore::Style::AttributeChangeInvalidation::invalidateStyle): |
| |
| Invalidate the whole subtree if there is a class change that may affect shadow tree style. |
| |
| * style/ClassChangeInvalidation.cpp: |
| (WebCore::Style::mayBeAffectedByHostRules): |
| (WebCore::Style::ClassChangeInvalidation::invalidateStyle): |
| * style/IdChangeInvalidation.cpp: |
| (WebCore::Style::mayBeAffectedByHostRules): |
| (WebCore::Style::IdChangeInvalidation::invalidateStyle): |
| |
| Same for classes and ids. |
| This should be refactored at some point to reduce copy-code. |
| |
| 2017-05-12 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] ASSERTION FAILED: !m_flushingLayers |
| https://bugs.webkit.org/show_bug.cgi?id=172025 |
| |
| Reviewed by Žan Doberšek. |
| |
| The problem is that syncImageBacking() is calling didChangeLayerState(). All sync methods are called by |
| flushCompositingStateForThisLayerOnly() while flushing layers, so none of them should call didChange method that |
| will schedule a new flush while flushing. |
| |
| * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: |
| (WebCore::CoordinatedGraphicsLayer::syncImageBacking): |
| |
| 2017-05-12 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] GIF images are not properly loaded the first time |
| https://bugs.webkit.org/show_bug.cgi?id=170432 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| When the GIF image is loaded for the first time, it's always read from the network, and the decoder is usually |
| fetched with chunks of data. Then the data is cached in disk by the network process, so that when loaded from |
| the cache, the whole encoded data is available to fetch the encoder. The problem is that we are failing to |
| decode the image when giving chunks of data, that's why it only happens the first time loaded. If the first |
| chunk of data provided is enough to get some metadata, including the size, but not frame contents, the load fails |
| in CachedImage::addIncrementalDataBuffer() because the EncodedDataStatus reported is SizeAvailable but |
| Image::isNull() returns true. An Image is considered to be Null when its size is empty, and the size is |
| calculated always using the first frame in ImageFrameCache. Since we still don't have frames, the image is |
| always Null in this case. It is not expected that EncodedDataStatus returns SizeAvailable and the image is Null, |
| that's why it's considered an error and the load finishes with a decode error. However, the non CG ImageDecoder |
| has a m_size member to handle this particular case, and it's when m_size is set when EncodedDataStatus changes |
| to SizeAvailable. We should return the ImageEncoder size as the ImageSize when we have a decoder but |
| not frames yet. |
| |
| Test: http/tests/images/gif-progressive-load.html |
| |
| * platform/graphics/ImageFrameCache.cpp: |
| (WebCore::ImageFrameCache::size): Return ImageDecoder::size() without caching it, if frame list is empty. |
| |
| 2017-05-12 Per Arne Vollan <pvollan@apple.com> |
| |
| The iBooks application is not able to get current position. |
| https://bugs.webkit.org/show_bug.cgi?id=171982 |
| rdar://problem/29318409 |
| |
| Reviewed by Brent Fulgham. |
| |
| Geolocation requests from iBooks are currently blocked. Make an exemption from the policy for iBooks. |
| |
| No new tests since we currently can't mock the iBooks application bundle ID. |
| |
| * Modules/geolocation/Geolocation.cpp: |
| (WebCore::isRequestFromIBooks): |
| (WebCore::Geolocation::shouldBlockGeolocationRequests): |
| |
| 2017-05-11 Per Arne Vollan <pvollan@apple.com> |
| |
| Geolocation requests should not be blocked when the security origin is local. |
| https://bugs.webkit.org/show_bug.cgi?id=171857 |
| rdar://problem/29318409 |
| |
| Reviewed by Brent Fulgham. |
| |
| Geolocation requests from security origins where the url scheme is registered as local, |
| should not be blocked. This applies to the file url scheme, but also to other local url |
| schemes. |
| |
| Test: fast/misc/geolocation-local-security-origin.html |
| |
| * Modules/geolocation/Geolocation.cpp: |
| (WebCore::Geolocation::shouldBlockGeolocationRequests): |
| |
| 2017-05-11 Chris Dumez <cdumez@apple.com> |
| |
| Drop remaining uses of PassRefPtr in WebCore |
| https://bugs.webkit.org/show_bug.cgi?id=172013 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * bindings/js/ScriptController.cpp: |
| (WebCore::ScriptController::createRootObject): |
| * bindings/js/ScriptController.h: |
| * bindings/js/ScriptControllerMac.mm: |
| * bridge/objc/WebScriptObject.mm: |
| (WebCore::createJSWrapper): |
| (-[WebScriptObject _setImp:originRootObject:rootObject:]): |
| (-[WebScriptObject _setOriginRootObject:andRootObject:]): |
| (-[WebScriptObject _initWithJSObject:originRootObject:rootObject:]): |
| * bridge/objc/WebScriptObjectPrivate.h: |
| |
| 2017-05-11 Zalan Bujtas <zalan@apple.com> |
| |
| RenderImageResource::hasImage is redundant and RenderImageResourceStyleImage's override is incorrect. |
| https://bugs.webkit.org/show_bug.cgi?id=172010 |
| <rdar://problem/31086735> |
| |
| Reviewed by Simon Fraser. |
| |
| RenderImageResourceStyleImage::hasImage() always returns true even when ::cachedImage() |
| returns nullptr (e.g. image is pending). |
| Remove it and use cachedImage() instead. |
| |
| Test: fast/images/missing-content-image-crash.html |
| |
| * html/HTMLImageElement.cpp: |
| (WebCore::HTMLImageElement::didAttachRenderers): |
| * rendering/RenderImage.cpp: |
| (WebCore::RenderImage::updateIntrinsicSizeIfNeeded): |
| (WebCore::RenderImage::isShowingMissingOrImageError): |
| (WebCore::RenderImage::hasNonBitmapImage): |
| (WebCore::RenderImage::paintReplaced): |
| (WebCore::RenderImage::paintIntoRect): |
| (WebCore::RenderImage::foregroundIsKnownToBeOpaqueInRect): |
| * rendering/RenderImageResource.h: |
| (WebCore::RenderImageResource::cachedImage): |
| (WebCore::RenderImageResource::hasImage): Deleted. |
| * rendering/RenderImageResourceStyleImage.h: |
| * rendering/svg/RenderSVGImage.cpp: |
| (WebCore::RenderSVGImage::paint): |
| * svg/SVGImageElement.cpp: |
| (WebCore::SVGImageElement::hasSingleSecurityOrigin): |
| (WebCore::SVGImageElement::didAttachRenderers): |
| |
| 2017-05-11 Zalan Bujtas <zalan@apple.com> |
| |
| AX: Defer text changes until after the tree is clean if needed. |
| https://bugs.webkit.org/show_bug.cgi?id=171546 |
| <rdar://problem/31934942> |
| |
| Reviewed by Simon Fraser. |
| |
| While updating an accessibility object state, we might |
| trigger unintentional style updates. This style update could |
| end up destroying renderes that are still referenced by functions |
| on the callstack. |
| To avoid that, defer such changes and let AXObjectCache operate on a clean tree. |
| |
| Test: accessibility/crash-when-render-tree-is-not-clean.html |
| |
| * accessibility/AXObjectCache.cpp: |
| (WebCore::AXObjectCache::remove): |
| (WebCore::AXObjectCache::handleAttributeChanged): |
| (WebCore::AXObjectCache::labelChanged): |
| (WebCore::AXObjectCache::performDeferredCacheUpdate): |
| (WebCore::AXObjectCache::deferRecomputeIsIgnored): |
| (WebCore::AXObjectCache::deferTextChangedIfNeeded): |
| (WebCore::AXObjectCache::recomputeDeferredIsIgnored): Deleted. |
| (WebCore::AXObjectCache::deferTextChanged): Deleted. |
| * accessibility/AXObjectCache.h: Decouple different type of changes. |
| (WebCore::AXObjectCache::deferRecomputeIsIgnored): |
| (WebCore::AXObjectCache::deferTextChangedIfNeeded): |
| (WebCore::AXObjectCache::recomputeDeferredIsIgnored): Deleted. |
| (WebCore::AXObjectCache::deferTextChanged): Deleted. |
| * rendering/RenderBlock.cpp: |
| (WebCore::RenderBlock::deleteLines): |
| * rendering/RenderBlockLineLayout.cpp: |
| (WebCore::RenderBlockFlow::createAndAppendRootInlineBox): |
| * rendering/RenderText.cpp: |
| (WebCore::RenderText::setText): |
| |
| 2017-05-11 Chris Dumez <cdumez@apple.com> |
| |
| Drop remaining uses of PassRefPtr under platform/ |
| https://bugs.webkit.org/show_bug.cgi?id=172007 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * platform/graphics/wpe/ImageWPE.cpp: |
| (WebCore::Image::loadPlatformResource): |
| * platform/ios/LegacyTileGrid.h: |
| * platform/ios/LegacyTileGrid.mm: |
| (WebCore::LegacyTileGrid::tileForIndex): |
| (WebCore::LegacyTileGrid::tileForPoint): |
| * platform/ios/LegacyTileGridTile.h: |
| (WebCore::LegacyTileGridTile::create): |
| * platform/mediastream/RTCIceCandidateDescriptor.cpp: |
| (WebCore::RTCIceCandidateDescriptor::create): |
| * platform/mediastream/RTCIceCandidateDescriptor.h: |
| * platform/mediastream/RTCPeerConnectionHandlerClient.h: |
| * platform/mediastream/RTCSessionDescriptionDescriptor.cpp: |
| (WebCore::RTCSessionDescriptionDescriptor::create): |
| * platform/mediastream/RTCSessionDescriptionDescriptor.h: |
| * platform/mediastream/RTCSessionDescriptionRequest.h: |
| (WebCore::RTCSessionDescriptionRequest::extraData): |
| (WebCore::RTCSessionDescriptionRequest::setExtraData): |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.h: |
| * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp: |
| (WebCore::RealtimeMediaSourceCenterOwr::firstSource): |
| * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h: |
| * platform/mock/DeviceOrientationClientMock.cpp: |
| (WebCore::DeviceOrientationClientMock::setOrientation): |
| * platform/mock/DeviceOrientationClientMock.h: |
| * platform/mock/GeolocationClientMock.cpp: |
| (WebCore::GeolocationClientMock::setPosition): |
| * platform/mock/GeolocationClientMock.h: |
| * platform/mock/RTCNotifiersMock.cpp: |
| (WebCore::SessionRequestNotifier::SessionRequestNotifier): |
| (WebCore::SessionRequestNotifier::fire): |
| (WebCore::VoidRequestNotifier::VoidRequestNotifier): |
| * platform/mock/RTCNotifiersMock.h: |
| * platform/mock/TimerEventBasedMock.h: |
| (WebCore::TimerEventBasedMock::removeEvent): |
| (WebCore::TimerEvent::TimerEvent): |
| (WebCore::TimerEvent::timerFired): |
| * platform/mock/mediasource/MockMediaSourcePrivate.cpp: |
| (WebCore::MockSourceBufferPrivateHasAudio): |
| (WebCore::MockSourceBufferPrivateHasVideo): |
| * platform/wpe/RenderThemeWPE.h: |
| |
| 2017-05-11 Carlos Alberto Lopez Perez <clopez@igalia.com> |
| |
| [WPE] Stop using PassRefPtr in platform/graphics/wpe |
| https://bugs.webkit.org/show_bug.cgi?id=171977 |
| |
| Unreviewed build fix after r216702. |
| |
| * platform/graphics/wpe/ImageWPE.cpp: |
| (WebCore::Image::loadPlatformResource): |
| |
| 2017-05-11 Youenn Fablet <youenn@apple.com> |
| |
| [iOS] Unset active media capture source when stopped capturing |
| https://bugs.webkit.org/show_bug.cgi?id=171815 |
| <rdar://problem/32117885> |
| |
| Reviewed by Eric Carlson. |
| |
| Test: platform/ios/mediastream/getUserMedia-single-capture.html |
| |
| Introducing SingleSourceFactory template class to be used by capture factories for iOS. |
| This class ensures that only one source is active at a time. |
| Update all capture sources accordingly. |
| Ensure sources are no longer considered as active sources when being destroyed. |
| Add support for mock sources and introducing m_isProducingData for them as well. |
| |
| Update WebRTC outgoing source classes to handle the case of replaced track and resetting the enabled/mute |
| state according the new source. |
| |
| Update the way we handle timestamps for audio data. We now consider that we read/write as a flow. |
| This allows smooth audio track replacing. |
| |
| * platform/mediastream/RealtimeMediaSource.h: |
| * platform/mediastream/mac/AVAudioCaptureSource.mm: |
| (WebCore::AVAudioCaptureSource::~AVAudioCaptureSource): |
| (WebCore::AVAudioCaptureSourceFactory::setActiveSource): Deleted. |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::~AVVideoCaptureSource): |
| (WebCore::AVVideoCaptureSourceFactory::setActiveSource): Deleted. |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::~CoreAudioCaptureSource): |
| (WebCore::CoreAudioCaptureSource::stopProducingData): |
| (WebCore::CoreAudioCaptureSourceFactory::setActiveSource): Deleted. |
| * platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp: |
| (WebCore::RealtimeOutgoingAudioSource::setSource): |
| (WebCore::RealtimeOutgoingAudioSource::audioSamplesAvailable): |
| (WebCore::RealtimeOutgoingAudioSource::pullAudioData): |
| * platform/mediastream/mac/RealtimeOutgoingAudioSource.h: |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: |
| (WebCore::RealtimeOutgoingVideoSource::setSource): |
| (WebCore::RealtimeOutgoingVideoSource::sourceMutedChanged): |
| (WebCore::RealtimeOutgoingVideoSource::sourceEnabledChanged): |
| * platform/mock/MockRealtimeAudioSource.cpp: |
| (WebCore::mockAudioCaptureSourceFactory): |
| (WebCore::MockRealtimeAudioSource::factory): |
| (WebCore::MockRealtimeAudioSource::~MockRealtimeAudioSource): |
| (WebCore::MockRealtimeAudioSource::startProducingData): |
| (WebCore::MockRealtimeAudioSource::stopProducingData): |
| * platform/mock/MockRealtimeAudioSource.h: |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::mockVideoCaptureSourceFactory): |
| (WebCore::MockRealtimeVideoSource::factory): |
| (WebCore::MockRealtimeVideoSource::~MockRealtimeVideoSource): |
| (WebCore::MockRealtimeVideoSource::startProducingData): |
| (WebCore::MockRealtimeVideoSource::stopProducingData): |
| * platform/mock/MockRealtimeVideoSource.h: |
| (WebCore::MockRealtimeVideoSource::~MockRealtimeVideoSource): Deleted. |
| |
| 2017-05-11 Timothy Horton <timothy_horton@apple.com> |
| |
| Fix the iOS build |
| |
| * platform/spi/mac/NSSpellCheckerSPI.h: |
| |
| 2017-05-11 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r216677. |
| |
| Patch caused layout test crashes. |
| |
| Reverted changeset: |
| |
| "WorkerThread::stop() should call |
| scheduleExecutionTermination() last." |
| https://bugs.webkit.org/show_bug.cgi?id=171775 |
| http://trac.webkit.org/changeset/216677 |
| |
| 2017-05-11 Don Olmstead <don.olmstead@am.sony.com> |
| |
| [CMake] Add HAVE check for regex.h |
| https://bugs.webkit.org/show_bug.cgi?id=171950 |
| |
| Reviewed by Michael Catanzaro. |
| |
| No new tests. No change in behavior. |
| |
| * WebCorePrefix.h: |
| * testing/js/WebCoreTestSupportPrefix.h: |
| |
| 2017-05-11 Tim Horton <timothy_horton@apple.com> |
| |
| Mail spins launching spell checker when typing |
| https://bugs.webkit.org/show_bug.cgi?id=171986 |
| <rdar://problem/26305327> |
| |
| Reviewed by Beth Dakin. |
| |
| * platform/spi/mac/NSSpellCheckerSPI.h: |
| |
| 2017-05-11 Chris Dumez <cdumez@apple.com> |
| |
| Stop using PassRefPtr in platform/graphics |
| https://bugs.webkit.org/show_bug.cgi?id=171977 |
| |
| Reviewed by Alex Christensen. |
| |
| Stop using PassRefPtr in platform/graphics. |
| |
| * css/CSSCrossfadeValue.cpp: |
| (WebCore::CSSCrossfadeValue::image): |
| * css/CSSFilterImageValue.cpp: |
| (WebCore::CSSFilterImageValue::image): |
| * loader/cache/CachedImage.cpp: |
| (WebCore::CachedImage::brokenImage): |
| (WebCore::CachedImage::image): |
| (WebCore::CachedImage::imageForRenderer): |
| * page/PageSerializer.cpp: |
| (WebCore::PageSerializer::addImageToResources): |
| * platform/ScrollView.cpp: |
| (WebCore::ScrollView::paintPanScrollIcon): |
| * platform/graphics/CrossfadeGeneratedImage.cpp: |
| (WebCore::CrossfadeGeneratedImage::drawCrossfade): |
| * platform/graphics/FontPlatformData.h: |
| * platform/graphics/GraphicsContext.h: |
| * platform/graphics/Image.cpp: |
| (WebCore::Image::nullImage): |
| * platform/graphics/Image.h: |
| * platform/graphics/MediaPlayer.cpp: |
| (WebCore::MediaPlayer::createResourceLoader): |
| * platform/graphics/MediaPlayer.h: |
| * platform/graphics/Pattern.cpp: |
| (WebCore::Pattern::create): |
| (WebCore::Pattern::Pattern): |
| * platform/graphics/Pattern.h: |
| * platform/graphics/PlatformTextTrack.h: |
| (WebCore::PlatformTextTrack::create): |
| (WebCore::PlatformTextTrack::createOutOfBand): |
| (WebCore::PlatformTextTrack::captionMenuOffItem): |
| (WebCore::PlatformTextTrack::captionMenuAutomaticItem): |
| * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp: |
| (WebCore::InbandMetadataTextTrackPrivateAVF::create): |
| (WebCore::InbandMetadataTextTrackPrivateAVF::addDataCue): |
| * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h: |
| * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: |
| (WebCore::InbandTextTrackPrivateAVF::processAttributedStrings): |
| * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h: |
| * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm: |
| (WebCore::MediaSelectionOptionAVFObjC::create): |
| (WebCore::MediaSelectionGroupAVFObjC::create): |
| (WebCore::MediaSelectionGroupAVFObjC::updateOptions): |
| * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h: |
| (WebCore::InbandTextTrackPrivateAVCF::create): |
| * platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.h: |
| (WebCore::InbandTextTrackPrivateLegacyAVCF::create): |
| * platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp: |
| (WebCore::WebCoreAVCFResourceLoader::create): |
| * platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.h: |
| * platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.h: |
| * platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm: |
| (WebCore::CDMSessionAVContentKeySession::generateKeyReleaseMessage): |
| * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.h: |
| * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm: |
| (WebCore::CDMSessionAVStreamSession::generateKeyReleaseMessage): |
| * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h: |
| (WebCore::InbandTextTrackPrivateAVFObjC::create): |
| * platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h: |
| (WebCore::InbandTextTrackPrivateLegacyAVFObjC::create): |
| * platform/graphics/avfoundation/objc/OutOfBandTextTrackPrivateAVF.h: |
| (WebCore::OutOfBandTextTrackPrivateAVF::create): |
| * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: |
| * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: |
| (WebCore::WebCoreAVFResourceLoader::create): |
| * platform/graphics/ca/GraphicsLayerCA.cpp: |
| (WebCore::GraphicsLayerCA::createPlatformCALayer): |
| (WebCore::GraphicsLayerCA::createPlatformCAAnimation): |
| (WebCore::GraphicsLayerCA::setContentsToPlatformLayer): |
| (WebCore::GraphicsLayerCA::replicatedLayerRoot): |
| (WebCore::GraphicsLayerCA::createAnimationFromKeyframes): |
| (WebCore::GraphicsLayerCA::appendToUncommittedAnimations): |
| (WebCore::GraphicsLayerCA::createBasicAnimation): |
| (WebCore::GraphicsLayerCA::createKeyframeAnimation): |
| (WebCore::GraphicsLayerCA::createSpringAnimation): |
| * platform/graphics/ca/GraphicsLayerCA.h: |
| (WebCore::GraphicsLayerCA::LayerPropertyAnimation::LayerPropertyAnimation): |
| * platform/graphics/ca/PlatformCAAnimation.h: |
| * platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.h: |
| * platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm: |
| (PlatformCAAnimationCocoa::create): |
| (PlatformCAAnimationCocoa::copy): |
| * platform/graphics/ca/win/AbstractCACFLayerTreeHost.h: |
| * platform/graphics/ca/win/CACFLayerTreeHost.cpp: |
| (WebCore::CACFLayerTreeHost::create): |
| (WebCore::CACFLayerTreeHost::addPendingAnimatedLayer): |
| * platform/graphics/ca/win/CACFLayerTreeHost.h: |
| * platform/graphics/ca/win/PlatformCAAnimationWin.cpp: |
| (PlatformCAAnimationWin::create): |
| (PlatformCAAnimationWin::copy): |
| * platform/graphics/ca/win/PlatformCAAnimationWin.h: |
| * platform/graphics/ca/win/PlatformCALayerWin.cpp: |
| (PlatformCALayerWin::addAnimationForKey): |
| * platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp: |
| (WebCore::WKCACFViewLayerTreeHost::create): |
| * platform/graphics/ca/win/WKCACFViewLayerTreeHost.h: |
| * platform/graphics/cairo/PatternCairo.cpp: |
| (WebCore::Pattern::createPlatformPattern): |
| * platform/graphics/cairo/PlatformContextCairo.cpp: |
| (WebCore::PlatformContextCairo::clipForPatternFilling): |
| * platform/graphics/cg/PDFDocumentImage.h: |
| * platform/graphics/cg/PatternCG.cpp: |
| (WebCore::Pattern::createPlatformPattern): |
| * platform/graphics/filters/FEDiffuseLighting.cpp: |
| (WebCore::FEDiffuseLighting::FEDiffuseLighting): |
| (WebCore::FEDiffuseLighting::create): |
| (WebCore::FEDiffuseLighting::lightSource): |
| * platform/graphics/filters/FEDiffuseLighting.h: |
| * platform/graphics/filters/FELighting.cpp: |
| (WebCore::FELighting::FELighting): |
| (WebCore::FELighting::drawLighting): |
| * platform/graphics/filters/FELighting.h: |
| * platform/graphics/filters/FESpecularLighting.cpp: |
| (WebCore::FESpecularLighting::FESpecularLighting): |
| (WebCore::FESpecularLighting::create): |
| (WebCore::FESpecularLighting::lightSource): |
| * platform/graphics/filters/FESpecularLighting.h: |
| * platform/graphics/filters/FETile.cpp: |
| (WebCore::FETile::platformApplySoftware): |
| * platform/graphics/filters/FilterEffect.cpp: |
| (WebCore::FilterEffect::asUnmultipliedImage): |
| (WebCore::FilterEffect::asPremultipliedImage): |
| * platform/graphics/filters/FilterEffect.h: |
| * platform/graphics/filters/FilterOperation.cpp: |
| (WebCore::ReferenceFilterOperation::setFilterEffect): |
| (WebCore::BasicColorMatrixFilterOperation::blend): |
| (WebCore::BasicComponentTransferFilterOperation::blend): |
| (WebCore::BlurFilterOperation::blend): |
| (WebCore::DropShadowFilterOperation::blend): |
| * platform/graphics/filters/FilterOperation.h: |
| (WebCore::FilterOperation::blend): |
| (WebCore::PassthroughFilterOperation::create): |
| (WebCore::ReferenceFilterOperation::create): |
| * platform/graphics/gpu/Texture.cpp: |
| (WebCore::Texture::create): |
| * platform/graphics/gpu/Texture.h: |
| * platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h: |
| * platform/graphics/gstreamer/ImageGStreamer.h: |
| (WebCore::ImageGStreamer::createImage): |
| (WebCore::ImageGStreamer::image): |
| * platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h: |
| (WebCore::InbandMetadataTextTrackPrivateGStreamer::create): |
| (WebCore::InbandMetadataTextTrackPrivateGStreamer::addGenericCue): |
| * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h: |
| (WebCore::InbandTextTrackPrivateGStreamer::create): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::MediaPlayerPrivateGStreamer::processTableOfContentsEntry): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::paint): |
| * platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h: |
| * platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp: |
| (WebCore::MediaSourceClientGStreamerMSE::enqueueSample): |
| * platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h: |
| * platform/graphics/gstreamer/mse/MediaSourceGStreamer.cpp: |
| * platform/graphics/gstreamer/mse/PlaybackPipeline.cpp: |
| (WebCore::PlaybackPipeline::enqueueSample): |
| * platform/graphics/gstreamer/mse/PlaybackPipeline.h: |
| * platform/graphics/gtk/ImageGtk.cpp: |
| (WebCore::loadImageFromGResource): |
| (WebCore::loadResourceSharedBuffer): |
| (WebCore::loadMissingImageIconFromTheme): |
| (WebCore::Image::loadPlatformResource): |
| * platform/graphics/harfbuzz/HarfBuzzFace.cpp: |
| (WebCore::FaceCacheEntry::create): |
| * platform/graphics/harfbuzz/HarfBuzzFace.h: |
| (WebCore::HarfBuzzFace::create): |
| * platform/graphics/mac/ImageMac.mm: |
| (WebCore::Image::loadPlatformResource): |
| * platform/graphics/opentype/OpenTypeMathData.h: |
| (WebCore::OpenTypeMathData::create): |
| * platform/graphics/texmap/BitmapTexture.h: |
| (WebCore::BitmapTexture::applyFilters): |
| * platform/graphics/texmap/BitmapTextureGL.cpp: |
| (WebCore::BitmapTextureGL::applyFilters): |
| * platform/graphics/texmap/BitmapTextureGL.h: |
| (WebCore::BitmapTextureGL::FilterInfo::FilterInfo): |
| * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp: |
| (WebCore::GraphicsLayerTextureMapper::commitLayerChanges): |
| * platform/graphics/texmap/TextureMapper.cpp: |
| (WebCore::TextureMapper::acquireTextureFromPool): |
| * platform/graphics/texmap/TextureMapper.h: |
| * platform/graphics/texmap/TextureMapperGL.cpp: |
| (WebCore::TextureMapperGL::createTexture): |
| * platform/graphics/texmap/TextureMapperGL.h: |
| * platform/graphics/texmap/TextureMapperLayer.cpp: |
| (WebCore::TextureMapperLayer::paintIntoSurface): |
| (WebCore::commitSurface): |
| (WebCore::TextureMapperLayer::paintWithIntermediateSurface): |
| (WebCore::TextureMapperLayer::setBackingStore): |
| * platform/graphics/texmap/TextureMapperLayer.h: |
| * platform/graphics/texmap/TextureMapperTiledBackingStore.h: |
| (WebCore::TextureMapperTiledBackingStore::create): |
| * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: |
| (WebCore::CoordinatedGraphicsLayer::syncImageBacking): |
| * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h: |
| * platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp: |
| (WebCore::CoordinatedImageBacking::create): |
| (WebCore::CoordinatedImageBacking::CoordinatedImageBacking): |
| * platform/graphics/texmap/coordinated/CoordinatedImageBacking.h: |
| * platform/graphics/win/ImageWin.cpp: |
| (WebCore::Image::loadPlatformResource): |
| * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: |
| (WebCore::MediaPlayerPrivateFullscreenWindow::setRootChildLayer): |
| * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: |
| * platform/graphics/win/PatternDirect2D.cpp: |
| (WebCore::Pattern::createPlatformPattern): |
| * platform/graphics/win/SharedGDIObject.h: |
| (WebCore::SharedGDIObject::create): |
| * rendering/FilterEffectRenderer.cpp: |
| (WebCore::FilterEffectRenderer::build): |
| * rendering/RenderImageResource.cpp: |
| (WebCore::RenderImageResource::image): |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::drawPlatformResizerImage): |
| * rendering/svg/RenderSVGResourcePattern.cpp: |
| (WebCore::RenderSVGResourcePattern::buildPattern): |
| * svg/SVGFEDiffuseLightingElement.cpp: |
| (WebCore::SVGFEDiffuseLightingElement::setFilterEffectAttribute): |
| (WebCore::SVGFEDiffuseLightingElement::build): |
| * svg/SVGFESpecularLightingElement.cpp: |
| (WebCore::SVGFESpecularLightingElement::setFilterEffectAttribute): |
| (WebCore::SVGFESpecularLightingElement::build): |
| * svg/graphics/SVGImageCache.cpp: |
| (WebCore::SVGImageCache::imageForRenderer): |
| |
| 2017-05-11 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Remove Vibration API |
| https://bugs.webkit.org/show_bug.cgi?id=171766 |
| |
| Rubber-stamped by Alexey Proskuryakov. |
| |
| * features.json: |
| Mark the Vibration API as removed. |
| |
| * CMakeLists.txt: |
| * DerivedSources.cpp: |
| * Modules/vibration/NavigatorVibration.cpp: Removed. |
| * Modules/vibration/NavigatorVibration.h: Removed. |
| * Modules/vibration/NavigatorVibration.idl: Removed. |
| * Modules/vibration/Vibration.cpp: Removed. |
| * Modules/vibration/Vibration.h: Removed. |
| * Modules/vibration/VibrationClient.h: Removed. |
| * testing/Internals.cpp: |
| (WebCore::Internals::isVibrating): Deleted. |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-05-11 Dean Jackson <dino@apple.com> |
| |
| WebGLRenderingContext should implement WebGLRenderingContextBase |
| https://bugs.webkit.org/show_bug.cgi?id=171961 |
| <rdar://problem/32124920> |
| |
| Reviewed by Sam Weinig. |
| |
| WebGLRenderingContext and WebGL2RenderingContext are both |
| defined to "implement" WebGLRenderingContextBase. However, we |
| were doing it via inheritance, which meant that some things |
| were not visible on the WebGLRenderingContext prototype. |
| |
| Test: fast/canvas/webgl/constants-on-interface.html |
| |
| * WebCore.xcodeproj/project.pbxproj: Move the Custom.cpp files |
| out of the GC-only area now they have real content. |
| |
| * bindings/js/JSDocumentCustom.cpp: Handle the fact that we |
| don't use the base class from the bindings, so we need to |
| translate WebGL1 and WebGL2 contexts into the right JS classes. |
| (WebCore::JSDocument::getCSSCanvasContext): |
| * bindings/js/JSHTMLCanvasElementCustom.cpp: |
| (WebCore::JSHTMLCanvasElement::getContext): |
| |
| * bindings/js/JSWebGL2RenderingContextCustom.cpp: Implement the |
| custom methods. In this case, we don't yet expose any |
| extensions for WebGL 2. |
| (WebCore::toJS): |
| (WebCore::JSWebGL2RenderingContext::getExtension): |
| |
| * bindings/js/JSWebGLRenderingContextBaseCustom.cpp: Removed. |
| |
| * bindings/js/JSWebGLRenderingContextCustom.cpp: |
| (WebCore::toJS): |
| (WebCore::JSWebGLRenderingContext::getExtension): |
| |
| * html/canvas/WebGL2RenderingContext.h: Make some things public. |
| * html/canvas/WebGLRenderingContext.h: Ditto. |
| |
| * html/canvas/WebGL2RenderingContext.idl: Use implements. |
| * html/canvas/WebGLRenderingContext.idl: Ditto. |
| |
| * testing/Internals.cpp: This now takes a WebGLRenderingContext. |
| (WebCore::Internals::simulateWebGLContextChanged): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-05-11 Andy Estes <aestes@apple.com> |
| |
| Fix a spelling mistake in ApplePayErrorCode |
| https://bugs.webkit.org/show_bug.cgi?id=171981 |
| <rdar://problem/32136567> |
| |
| Reviewed by Beth Dakin. |
| |
| * Modules/applepay/ApplePayError.idl: |
| * Modules/applepay/PaymentRequest.h: |
| |
| 2017-05-11 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Enable configuration through preferences |
| https://bugs.webkit.org/show_bug.cgi?id=171949 |
| <rdar://problem/31894518> |
| |
| Reviewed by Alex Christensen. |
| |
| No new tests. Just an added setter. |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::setReducedTimestampResolution): |
| |
| 2017-05-11 Frederic Wang <fwang@igalia.com> |
| |
| Unify hasTouchScrollableOverflow/needsCompositedScrolling concepts |
| https://bugs.webkit.org/show_bug.cgi?id=171974 |
| |
| Reviewed by Simon Fraser. |
| |
| This commit moves the following pattern in a single RenderLayer::usesAcceleratedScrolling function: |
| #if PLATFORM(IOS) |
| ...hasTouchScrollableOverflow()... |
| #else |
| ...needsCompositedScrolling()... |
| #endif |
| |
| No new tests, behavior unchanged. |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::usesAcceleratedScrolling): Introduce helper function. |
| * rendering/RenderLayer.h: Declare the function. |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling): Use the new function. |
| (WebCore::RenderLayerBacking::updateConfiguration): Ditto. |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::useCoordinatedScrollingForLayer): Ditto. |
| |
| 2017-05-11 Romain Bellessort <romain.bellessort@crf.canon.fr> |
| |
| [Readable Streams API] Implement ReadableStreamBYOBReader cancel() |
| https://bugs.webkit.org/show_bug.cgi?id=171919 |
| |
| Reviewed by Youenn Fablet. |
| |
| Implemented ReadableStreamBYOBReader cancel() method. |
| |
| Added tests checking cancel(). |
| |
| * Modules/streams/ReadableStreamBYOBReader.js: |
| (cancel): Implemented. |
| * Modules/streams/ReadableStreamInternals.js: |
| (readableStreamError): Updated to support ReadableStreamBYOBReader case. |
| |
| 2017-05-11 Chris Dumez <cdumez@apple.com> |
| |
| Stop using PassRefPtr in WebGPU code |
| https://bugs.webkit.org/show_bug.cgi?id=171965 |
| |
| Reviewed by Alex Christensen. |
| |
| Stop using PassRefPtr in WebGPU code. |
| |
| * html/canvas/WebGPUDrawable.cpp: |
| (WebCore::WebGPUDrawable::WebGPUDrawable): |
| * html/canvas/WebGPURenderingContext.cpp: |
| (WebCore::WebGPURenderingContext::create): |
| (WebCore::WebGPURenderingContext::WebGPURenderingContext): |
| * html/canvas/WebGPURenderingContext.h: |
| * html/canvas/WebGPUTexture.cpp: |
| (WebCore::WebGPUTexture::createFromDrawableTexture): |
| (WebCore::WebGPUTexture::WebGPUTexture): |
| * html/canvas/WebGPUTexture.h: |
| |
| 2017-05-11 Youenn Fablet <youenn@apple.com> |
| |
| Name WebRTC Threads |
| https://bugs.webkit.org/show_bug.cgi?id=171975 |
| |
| Reviewed by Eric Carlson. |
| |
| No change of behavior. |
| |
| * platform/mediastream/libwebrtc/LibWebRTCAudioModule.cpp: |
| (WebCore::LibWebRTCAudioModule::LibWebRTCAudioModule): Setting audio module thread name. |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: |
| (WebCore::initializePeerConnectionFactoryAndThreads): Setting signaling and networking thread names. |
| |
| 2017-05-11 Chris Dumez <cdumez@apple.com> |
| |
| Stop using PassRefPtr in platform/audio |
| https://bugs.webkit.org/show_bug.cgi?id=171966 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Stop using PassRefPtr in platform/audio. |
| |
| * platform/audio/AudioBus.h: |
| (WebCore::AudioBus::AudioBus): |
| * platform/audio/AudioFileReader.h: |
| * platform/audio/HRTFDatabaseLoader.cpp: |
| (WebCore::HRTFDatabaseLoader::createAndLoadAsynchronouslyIfNecessary): |
| * platform/audio/HRTFDatabaseLoader.h: |
| * platform/audio/HRTFKernel.cpp: |
| (WebCore::HRTFKernel::createInterpolatedKernel): |
| * platform/audio/HRTFKernel.h: |
| (WebCore::HRTFKernel::create): |
| * platform/audio/glib/AudioBusGLib.cpp: |
| (WebCore::AudioBus::loadPlatformResource): |
| * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp: |
| (WebCore::AudioFileReader::createBus): |
| (WebCore::createBusFromAudioFile): |
| (WebCore::createBusFromInMemoryAudioFile): |
| * platform/audio/ios/AudioFileReaderIOS.cpp: |
| (WebCore::AudioFileReader::createBus): |
| (WebCore::createBusFromAudioFile): |
| (WebCore::createBusFromInMemoryAudioFile): |
| * platform/audio/ios/AudioFileReaderIOS.h: |
| * platform/audio/mac/AudioBusMac.mm: |
| (WebCore::AudioBus::loadPlatformResource): |
| * platform/audio/mac/AudioFileReaderMac.cpp: |
| (WebCore::AudioFileReader::createBus): |
| (WebCore::createBusFromAudioFile): |
| (WebCore::createBusFromInMemoryAudioFile): |
| * platform/audio/mac/AudioFileReaderMac.h: |
| |
| 2017-05-11 Mark Lam <mark.lam@apple.com> |
| |
| WorkerThread::stop() should call scheduleExecutionTermination() last. |
| https://bugs.webkit.org/show_bug.cgi?id=171775 |
| <rdar://problem/30975761> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Currently, WorkerThread::stop() calls scheduleExecutionTermination() to terminate |
| JS execution first, followed by posting a cleanup task to the worker, and lastly, |
| it invokes terminate() on the WorkerRunLoop. |
| |
| As a result, before run loop is terminate, the worker thread may observe the |
| TerminatedExecutionException in JS code, bail out, see another JS task to run, |
| re-enters the VM to run said JS code, and fails with an assertion due to the |
| TerminatedExecutionException still being pending on VM entry. |
| |
| WorkerRunLoop::Task::performTask() already has a check to only allow a task to |
| run if and only if !runLoop.terminated() and the task is not a clean up task. |
| We'll fix the above race by ensuring that having WorkerThread::stop() terminate |
| the run loop before it scheduleExecutionTermination() which throws the |
| TerminatedExecutionException. This way, by the time JS code unwinds out of the |
| VM due to the TerminatedExecutionException, runLoop.terminated() is guaranteed |
| to be true and thereby prevents re-entry into the VM. |
| |
| This issue is covered by an existing test that I just unskipped in TestExpectations. |
| |
| * bindings/js/JSDOMPromiseDeferred.cpp: |
| (WebCore::DeferredPromise::callFunction): |
| * workers/WorkerThread.cpp: |
| (WebCore::WorkerThread::stop): |
| |
| 2017-05-11 Chris Dumez <cdumez@apple.com> |
| |
| Drop custom bindings code for HTMLFormControlsCollection's named property getter |
| https://bugs.webkit.org/show_bug.cgi?id=171964 |
| |
| Reviewed by Sam Weinig. |
| |
| Drop custom bindings code for HTMLFormControlsCollection's named property getter as |
| we are able to generate it. |
| |
| No new tests, no expected Web-facing behavior change. |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSBindingsAllInOne.cpp: |
| * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Removed. |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateNamedGetter): |
| * html/HTMLFormControlsCollection.cpp: |
| (WebCore::HTMLFormControlsCollection::namedItemOrItems): |
| * html/HTMLFormControlsCollection.h: |
| * html/HTMLFormControlsCollection.idl: |
| |
| 2017-05-10 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] CoreAudioCaptureSource claims to never be muted |
| https://bugs.webkit.org/show_bug.cgi?id=171946 |
| <rdar://problem/32111991> |
| |
| Reviewed by Jer Noble. |
| |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::stopProducingData): Set m_muted to true. |
| |
| 2017-05-10 Jer Noble <jer.noble@apple.com> |
| |
| RELEASE_ASSERT at WebAudioSourceProviderAVFObjC::provideInput() |
| https://bugs.webkit.org/show_bug.cgi?id=171711 |
| |
| Reviewed by Youenn Fablet. |
| |
| Before iterating over the channels in either the WebAudioBufferList or the AudioBus, ensure |
| we don't walk over the end of either by only iterating over the minimum length of either. |
| Also, when the internal format of WebAudioSourceProviderAVFObjC changes, notify the |
| MediaStreamAudioSourceNode that the number of channels and sample rate have changed. |
| |
| * platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm: |
| (WebCore::WebAudioSourceProviderAVFObjC::provideInput): |
| (WebCore::WebAudioSourceProviderAVFObjC::prepare): |
| |
| 2017-05-10 Andy Estes <aestes@apple.com> |
| |
| REGRESSION (r167845): ASSERT(!m_renderView.needsLayout()) in svg/custom/bug79798.html |
| https://bugs.webkit.org/show_bug.cgi?id=132297 |
| |
| Reviewed by Simon Fraser. |
| |
| We don't know why m_renderView needs layout in this case, but we know that we don't need to |
| assert if the client hasn't set the ScrollableInnerFrameTrigger compositing trigger. |
| |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame): |
| |
| 2017-05-10 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r216630. |
| |
| This change caused assertion failures with webrtc LayoutTests. |
| |
| Reverted changeset: |
| |
| "RELEASE_ASSERT at |
| WebAudioSourceProviderAVFObjC::provideInput()" |
| https://bugs.webkit.org/show_bug.cgi?id=171711 |
| http://trac.webkit.org/changeset/216630 |
| |
| 2017-05-09 Sam Weinig <sam@webkit.org> |
| |
| Remove support for legacy Notifications |
| https://bugs.webkit.org/show_bug.cgi?id=171487 |
| |
| Reviewed by Jon Lee. |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| Remove files. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| Remove definition of ENABLE_LEGACY_NOTIFICATIONS. |
| |
| * DerivedSources.make: |
| Remove IDL files. |
| |
| * Modules/notifications/DOMWindowNotifications.cpp: Removed. |
| * Modules/notifications/DOMWindowNotifications.h: Removed. |
| * Modules/notifications/DOMWindowNotifications.idl: Removed. |
| * Modules/notifications/NotificationCenter.cpp: Removed. |
| * Modules/notifications/NotificationCenter.h: Removed. |
| * Modules/notifications/NotificationCenter.idl: Removed. |
| * Modules/notifications/NotificationClient.h: |
| * Modules/notifications/NotificationController.cpp: |
| * Modules/notifications/NotificationController.h: |
| * Modules/notifications/WorkerGlobalScopeNotifications.cpp: Removed. |
| * Modules/notifications/WorkerGlobalScopeNotifications.h: Removed. |
| * Modules/notifications/WorkerGlobalScopeNotifications.idl: Removed. |
| * Modules/notifications/Notification.idl: |
| * Modules/notifications/Notification.cpp: |
| * Modules/notifications/Notification.h: |
| * dom/EventTargetFactory.in: |
| * page/DOMWindow.cpp: |
| * workers/WorkerThread.h: |
| Remove code legacy Notification code. Replace use of NotificationCenter with direct |
| calls to the NotificationClient. |
| |
| 2017-05-10 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r216635. |
| https://bugs.webkit.org/show_bug.cgi?id=171953 |
| |
| "Some worker tests are failing". (Requested by mlam on #webkit). |
| |
| Reverted changeset: |
| |
| "WorkerThread::stop() should call |
| scheduleExecutionTermination() last." |
| https://bugs.webkit.org/show_bug.cgi?id=171775 |
| http://trac.webkit.org/changeset/216635 |
| |
| 2017-05-10 Mark Lam <mark.lam@apple.com> |
| |
| WorkerThread::stop() should call scheduleExecutionTermination() last. |
| https://bugs.webkit.org/show_bug.cgi?id=171775 |
| <rdar://problem/30975761> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Currently, WorkerThread::stop() calls scheduleExecutionTermination() to terminate |
| JS execution first, followed by posting a cleanup task to the worker, and lastly, |
| it invokes terminate() on the WorkerRunLoop. |
| |
| As a result, before run loop is terminate, the worker thread may observe the |
| TerminatedExecutionException in JS code, bail out, see another JS task to run, |
| re-enters the VM to run said JS code, and fails with an assertion due to the |
| TerminatedExecutionException still being pending on VM entry. |
| |
| WorkerRunLoop::Task::performTask() already has a check to only allow a task to |
| run if and only if !runLoop.terminated() and the task is not a clean up task. |
| We'll fix the above race by ensuring that having WorkerThread::stop() terminate |
| the run loop before it scheduleExecutionTermination() which throws the |
| TerminatedExecutionException. This way, by the time JS code unwinds out of the |
| VM due to the TerminatedExecutionException, runLoop.terminated() is guaranteed |
| to be true and thereby prevents re-entry into the VM. |
| |
| This issue is covered by an existing test that I just unskipped in TestExpectations. |
| |
| * bindings/js/JSDOMPromiseDeferred.cpp: |
| (WebCore::DeferredPromise::callFunction): |
| * workers/WorkerThread.cpp: |
| (WebCore::WorkerThread::stop): |
| |
| 2017-05-10 Tim Horton <timothy_horton@apple.com> |
| |
| Add an experimental feature flag for viewport-fit |
| https://bugs.webkit.org/show_bug.cgi?id=171948 |
| <rdar://problem/31995518> |
| |
| Reviewed by Simon Fraser. |
| |
| * dom/ViewportArguments.cpp: |
| (WebCore::setViewportFeature): |
| * page/Settings.in: |
| Disable parsing of viewport-fit if the experimental feature is disabled. |
| |
| 2017-05-10 Chris Dumez <cdumez@apple.com> |
| |
| Simplify relationship between Attr and Element now that Attr is childless |
| https://bugs.webkit.org/show_bug.cgi?id=171909 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Simplify relationship between Attr and Element now that Attr is childless |
| after r216259. |
| |
| No new tests, no Web facing behavior change. |
| |
| * dom/Attr.cpp: |
| (WebCore::Attr::setValue): |
| Attr::setValue() was only called by Element::setAttributeInternal() to make sure |
| we updated the Attr node's Text child. However, now that Attr has no Text child, |
| Element no longer needs to update the Attr node's value. |
| Attr::setValueForBindings() was thus renamed to setValue(). Its implementation |
| was also simplified by calling Element::setAttribute() on its ownerElement, if |
| it has one, instead of duplicating a bunch of code from Element::setAttributeInternal(). |
| |
| (WebCore::Attr::setNodeValue): |
| Call setValue() instead of setValueForBindings() now that it has been renamed. |
| |
| * dom/Attr.h: |
| * dom/Attr.idl: |
| Rename valueForBindings / setValueForBindings to value / setValue. |
| |
| * dom/Document.h: |
| Split shouldInvalidateNodeListAndCollectionCaches() into 2 methods, one taking an Attr name |
| and another that does not. There are now 2 calls sites instead of one, so we no longer need |
| to branch in this function. |
| |
| * dom/Element.cpp: |
| (WebCore::Element::setAttributeInternal): |
| Drop code calling Attr::setValue() on the Attr node since Attr::setValue() was only |
| duplicating logic from Element::setAttributeInternal() after r216259. There is nothing |
| on Attr that needs updating when an element attribute gets updated. |
| |
| (WebCore::Element::attributeChanged): |
| Call the new invalidateNodeListAndCollectionCachesInAncestorsForAttribute(). This |
| is the only call site that passes an attribute name. |
| |
| * dom/Node.cpp: |
| (WebCore::Document::shouldInvalidateNodeListAndCollectionCaches): |
| (WebCore::Document::shouldInvalidateNodeListAndCollectionCachesForAttribute): |
| Split into 2 to avoid branching, as explained above. |
| |
| (WebCore::Node::invalidateNodeListAndCollectionCachesInAncestors): |
| (WebCore::Node::invalidateNodeListAndCollectionCachesInAncestorsForAttribute): |
| - invalidateNodeListAndCollectionCachesInAncestors() used to invalidate childNodeLists |
| if the Node was an attribute node. Drop this as this is no longer needed as of r216259. |
| - After the change to Attr::setValue(), call sites for |
| invalidateNodeListAndCollectionCachesInAncestors() either had no parameters, or both |
| parameters present and non-null. There is therefore no longer any need to handle |
| having an attrName but no attributeOwnerElement. To make this obvious, I split this |
| into 2 methods: invalidateNodeListAndCollectionCachesInAncestors() and |
| invalidateNodeListAndCollectionCachesInAncestorsForAttribute(attrName). We no longer |
| need the attributeOwnerElement parameter as it was only used to exit early. |
| |
| * dom/Node.h: |
| |
| 2017-05-10 Antti Koivisto <antti@apple.com> |
| |
| REGRESSION (r207372) Visibility property is not inherited when used in an animation |
| https://bugs.webkit.org/show_bug.cgi?id=171883 |
| <rdar://problem/32086550> |
| |
| Reviewed by Simon Fraser. |
| |
| The problem here is that our animation code is tied to renderers. We don't have renderers during |
| the initial style resolution so animations are not applied yet. When constructing renderers we set |
| their style to the initial animated style but this step can't implement inheritance. |
| |
| Normally this is invisible as the first animation frame will immediately inherit the style correctly. |
| However in this case the animation is discrete and the first frame is the same as the initial state. |
| With r207372 we optimize the descendant style change away. |
| |
| This patch fixes the problem by tracking that the renderer has initial animated style and inheriting |
| it to descendants during next style resolution even if it doesn't change. |
| |
| Test: animations/animation-initial-inheritance.html |
| |
| * rendering/RenderElement.cpp: |
| (WebCore::RenderElement::RenderElement): |
| * rendering/RenderElement.h: |
| (WebCore::RenderElement::hasInitialAnimatedStyle): |
| (WebCore::RenderElement::setHasInitialAnimatedStyle): |
| * style/RenderTreeUpdater.cpp: |
| (WebCore::RenderTreeUpdater::createRenderer): |
| |
| Set a bit on renderer indicating it has initial animated style. |
| |
| * style/StyleTreeResolver.cpp: |
| (WebCore::Style::TreeResolver::createAnimatedElementUpdate): |
| |
| Return at least 'Inherit' for style change when updating renderer with initial animated style. |
| |
| 2017-05-10 Jer Noble <jer.noble@apple.com> |
| |
| RELEASE_ASSERT at WebAudioSourceProviderAVFObjC::provideInput() |
| https://bugs.webkit.org/show_bug.cgi?id=171711 |
| |
| Reviewed by Youenn Fablet. |
| |
| Before iterating over the channels in either the WebAudioBufferList or the AudioBus, ensure |
| we don't walk over the end of either by only iterating over the minimum length of either. |
| Also, when the internal format of WebAudioSourceProviderAVFObjC changes, notify the |
| MediaStreamAudioSourceNode that the number of channels and sample rate have changed. |
| |
| * platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm: |
| (WebCore::WebAudioSourceProviderAVFObjC::provideInput): |
| (WebCore::WebAudioSourceProviderAVFObjC::prepare): |
| |
| 2017-05-04 Filip Pizlo <fpizlo@apple.com> |
| |
| GCController.cpp's collect() should be Async |
| https://bugs.webkit.org/show_bug.cgi?id=171708 |
| |
| Reviewed by Saam Barati and Geoffrey Garen. |
| |
| No new tests because no change in behavior. |
| |
| This is one step towards not requesting sync GCs in WebCore. I'm landing this incrementally to |
| make bisecting super easy. |
| |
| This is a ~7% JetStream iOS "regression", because JetStream has a bug where it allows trunk |
| to sneakily hide GC work between when JetStream measures time. After this change, we are no |
| longer trying to be sneaky. |
| |
| * bindings/js/GCController.cpp: |
| (WebCore::collect): |
| |
| 2017-05-10 Jer Noble <jer.noble@apple.com> |
| |
| CoreAudioCaptureSource reports 3 or 5 channel audio output; actually only mono |
| https://bugs.webkit.org/show_bug.cgi?id=171940 |
| |
| Reviewed by Eric Carlson. |
| |
| Asking for the Input VPIO stream format will return the internal mic format, before processing. Instead |
| ask for the input bus's output format, which is post processing, which will return the correct number |
| of channels (one). |
| |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioSharedUnit::configureMicrophoneProc): |
| |
| 2017-05-10 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r216591. |
| |
| This change broke an internal build. |
| |
| Reverted changeset: |
| |
| "REGRESSION (r207372) Visibility property is not inherited |
| when used in an animation" |
| https://bugs.webkit.org/show_bug.cgi?id=171883 |
| http://trac.webkit.org/changeset/216591 |
| |
| 2017-05-10 Chris Dumez <cdumez@apple.com> |
| |
| Drop custom bindings code now window.open() |
| https://bugs.webkit.org/show_bug.cgi?id=171933 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Drop custom bindings code now window.open() as it is not doing anything special. |
| |
| * bindings/js/JSDOMWindowCustom.cpp: |
| (WebCore::JSDOMWindow::open): Deleted. |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::open): |
| * page/DOMWindow.h: |
| * page/DOMWindow.idl: |
| * testing/Internals.cpp: |
| (WebCore::Internals::openDummyInspectorFrontend): |
| |
| 2017-05-10 Tim Horton <timothy_horton@apple.com> |
| |
| Add an experimental feature flag for constant properties |
| https://bugs.webkit.org/show_bug.cgi?id=171913 |
| <rdar://problem/31995518> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * css/parser/CSSParser.cpp: |
| (WebCore::CSSParserContext::CSSParserContext): |
| (WebCore::operator==): |
| * css/parser/CSSParserImpl.cpp: |
| (WebCore::CSSParserImpl::consumeCustomPropertyValue): |
| * css/parser/CSSParserMode.h: |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::CSSPropertyParser::parseValueStart): |
| * css/parser/CSSVariableParser.cpp: |
| (WebCore::classifyBlock): |
| (WebCore::isValidVariableReference): |
| (WebCore::isValidConstantReference): |
| (WebCore::classifyVariableRange): |
| (WebCore::CSSVariableParser::containsValidVariableReferences): |
| (WebCore::CSSVariableParser::parseDeclarationValue): |
| * css/parser/CSSVariableParser.h: |
| Plumb the experimental feature flag down into CSSVariableParser by way |
| of CSSParserContext. |
| |
| * page/Settings.in: |
| |
| 2017-05-10 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (r206960): Possible null pointer dereference under DOMSelection::getRangeAt() |
| https://bugs.webkit.org/show_bug.cgi?id=171925 |
| <rdar://problem/29931223> |
| |
| Reviewed by Wenson Hsieh. |
| |
| We have evidence that selection().firstRange() can return null in DOMSelection::getRangeAt(). |
| When this happens, we now throw an INDEX_SIZE_ERR instead of dereferencing it. |
| |
| I believe this can happen if the VisibleSelection is orphaned but not none, because |
| rangeCount() only checks for isNone() but VisibleSelection::firstRange() can return null |
| if isNoneOrOrphaned(). |
| |
| No new tests, I do not know how to reproduce. |
| |
| * page/DOMSelection.cpp: |
| (WebCore::DOMSelection::getRangeAt): |
| |
| 2017-05-10 Matt Rajca <mrajca@apple.com> |
| |
| DumpRenderTree crashed in com.apple.WebCore: std::optional<WTF::MediaTime>::operator-> + 71 :: CRASHING TEST: fullscreen/video-controls-timeline.html |
| https://bugs.webkit.org/show_bug.cgi?id=171932 |
| |
| Reviewed by Eric Carlson. |
| |
| Explicitly initialize m_playbackWithoutUserGesture to "None". |
| |
| * html/HTMLMediaElement.h: |
| |
| 2017-05-10 Andy Estes <aestes@apple.com> |
| |
| Keyboard input suppression should extend to subframes |
| https://bugs.webkit.org/show_bug.cgi?id=171880 |
| <rdar://problem/31201793> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Test: http/tests/navigation/keyboard-events-during-provisional-subframe-navigation.html |
| |
| * dom/EventDispatcher.cpp: |
| (WebCore::shouldSuppressEventDispatchInDOM): Changed to call shouldSuppressKeyboardInput() |
| on the main frame's loader. |
| * editing/Editor.cpp: |
| (WebCore::Editor::shouldInsertText): Ditto. |
| |
| 2017-05-10 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r216563. |
| |
| Revision caused 2 api failures |
| |
| Reverted changeset: |
| |
| "[MediaStream] deviceId constraint doesn't work with |
| getUserMedia" |
| https://bugs.webkit.org/show_bug.cgi?id=171877 |
| http://trac.webkit.org/changeset/216563 |
| |
| 2017-05-10 Frederic Wang <fwang@igalia.com> |
| |
| Refactor ScrollingCoordinator::setSynchronousScrollingReasons to accept a FrameView |
| https://bugs.webkit.org/show_bug.cgi?id=171923 |
| |
| Reviewed by Simon Fraser. |
| |
| Currently ScrollingCoordinator::setSynchronousScrollingReasons implementations assumes |
| SynchronousScrollingReasons apply to the main frame. This commit allows to specify |
| a FrameView in order to prepare support for fast scrolling of frames. |
| |
| No new tests, no behavior changes. |
| |
| * page/scrolling/AsyncScrollingCoordinator.cpp: |
| (WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons): Use the FrameView to |
| find the state node. |
| (WebCore::AsyncScrollingCoordinator::updateScrollLayerPosition): Rename this function |
| updateMainFrameScrollLayerPosition and use the specified FrameView. |
| * page/scrolling/AsyncScrollingCoordinator.h: Add FrameView parameter. |
| * page/scrolling/ScrollingCoordinator.cpp: |
| (WebCore::ScrollingCoordinator::updateSynchronousScrollingReasons): Remove the const since |
| AsyncScrollingCoordinator uses scrollLayerForFrameView. Pass the frameView to |
| setSynchronousScrollingReasons. |
| * page/scrolling/ScrollingCoordinator.h: |
| (WebCore::ScrollingCoordinator::setSynchronousScrollingReasons): Add FrameView parameter. |
| |
| 2017-05-10 Antti Koivisto <antti@apple.com> |
| |
| REGRESSION (r207372) Visibility property is not inherited when used in an animation |
| https://bugs.webkit.org/show_bug.cgi?id=171883 |
| <rdar://problem/32086550> |
| |
| Reviewed by Simon Fraser. |
| |
| The problem here is that our animation code is tied to renderers. We don't have renderers during |
| the initial style resolution so animations are not applied yet. When constructing renderers we set |
| their style to the initial animated style but this step can't implement inheritance. |
| |
| Normally this is invisible as the first animation frame will immediately inherit the style correctly. |
| However in this case the animation is discrete and the first frame is the same as the initial state. |
| With r207372 we optimize the descendant style change away. |
| |
| This patch fixes the problem by tracking that the renderer has initial animated style and inheriting |
| it to descendants during next style resolution even if it doesn't change. |
| |
| Test: animations/animation-initial-inheritance.html |
| |
| * rendering/RenderElement.cpp: |
| (WebCore::RenderElement::RenderElement): |
| * rendering/RenderElement.h: |
| (WebCore::RenderElement::hasInitialAnimatedStyle): |
| (WebCore::RenderElement::setHasInitialAnimatedStyle): |
| * style/RenderTreeUpdater.cpp: |
| (WebCore::RenderTreeUpdater::createRenderer): |
| |
| Set a bit on renderer indicating it has initial animated style. |
| |
| * style/StyleTreeResolver.cpp: |
| (WebCore::Style::TreeResolver::createAnimatedElementUpdate): |
| |
| Return at least 'Inherit' for style change when updating renderer with initial animated style. |
| |
| 2017-05-10 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Tiny cleanup in Font::DerivedFonts |
| https://bugs.webkit.org/show_bug.cgi?id=171893 |
| |
| Reviewed by Jon Lee. |
| |
| This variable was written to but never read. |
| |
| No new tests because there is no behavior change. |
| |
| * css/CSSFontFaceSource.cpp: |
| (WebCore::CSSFontFaceSource::font): |
| * platform/graphics/Font.cpp: |
| (WebCore::Font::verticalRightOrientationFont): |
| (WebCore::Font::uprightOrientationFont): |
| (WebCore::Font::smallCapsFont): |
| (WebCore::Font::noSynthesizableFeaturesFont): |
| (WebCore::Font::emphasisMarkFont): |
| (WebCore::Font::brokenIdeographFont): |
| (WebCore::Font::DerivedFonts::~DerivedFonts): Deleted. |
| * platform/graphics/Font.h: |
| (WebCore::Font::DerivedFonts::DerivedFonts): Deleted. |
| |
| 2017-05-10 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Remove user agent quirk for Slack |
| https://bugs.webkit.org/show_bug.cgi?id=171869 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| The user agent quirk for Slack does not seem to be necessary anymore. I am able to use Slack |
| without difficulty using our default user agent. |
| |
| * platform/UserAgentQuirks.cpp: |
| (WebCore::urlRequiresChromeBrowser): |
| |
| 2017-05-10 Hyungwook Lee <hyungwook.lee@navercorp.com> |
| |
| [GTK] Fix compile warnings in CryptoKeyECGCrypt.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=171851 |
| |
| Reviewed by Alex Christensen. |
| |
| * crypto/gcrypt/CryptoKeyECGCrypt.cpp: |
| (WebCore::curveSize): |
| (WebCore::curveName): |
| (WebCore::uncompressedPointSizeForCurve): |
| (WebCore::uncompressedFieldElementSizeForCurve): |
| |
| 2017-05-08 Sergio Villar Senin <svillar@igalia.com> |
| |
| [css-grid] Remove Blink-specific code for handling orthogonal grid items |
| https://bugs.webkit.org/show_bug.cgi?id=171807 |
| |
| Reviewed by Darin Adler. |
| |
| This code was added in r203252 as part of a patch improving the handling of |
| {min|max}-content with orthogonal flows. The original code came from Blink which performs a |
| pre-layout of orthogonal boxes in FrameView. That is not true in the case of WebKit so we do |
| not need this code at all. Actually it was causing incorrect renderings in some tests. |
| |
| I'm also removing an invalid return statement just after another return. |
| |
| * rendering/GridTrackSizingAlgorithm.cpp: |
| (WebCore::GridTrackSizingAlgorithmStrategy::minContentForChild): |
| (WebCore::GridTrackSizingAlgorithmStrategy::maxContentForChild): |
| |
| 2017-05-09 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed build fix. |
| |
| * platform/wpe/WidgetWPE.cpp: |
| (WebCore::Widget::paint): Add the missing SecurityOriginPaintPolicy parameter. |
| |
| 2017-05-09 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] deviceId constraint doesn't work with getUserMedia |
| https://bugs.webkit.org/show_bug.cgi?id=171877 |
| <rdar://problem/31899730> |
| |
| Reviewed by Jer Noble. |
| |
| Test: fast/mediastream/get-user-media-device-id.html |
| |
| * Modules/mediastream/MediaConstraintsImpl.h: |
| (WebCore::MediaConstraintsData::MediaConstraintsData): Add a constructor that |
| takes a const MediaConstraints&. |
| |
| * Modules/mediastream/MediaDevicesEnumerationRequest.cpp: |
| (WebCore::MediaDevicesEnumerationRequest::topLevelDocumentOrigin): Don't return |
| NULL for the main frame so the origin matches that returned for a UserMediaRequest. |
| |
| * Modules/mediastream/UserMediaController.h: |
| (WebCore::UserMediaController::setDeviceIDHashSalt): Deleted, not used. |
| (WebCore::UserMediaController::deviceIDHashSalt): Deleted, not used. |
| |
| * Modules/mediastream/UserMediaRequest.cpp: |
| (WebCore::UserMediaRequest::allow): Add device ID hash salt parameter, set it on |
| constraints. |
| * Modules/mediastream/UserMediaRequest.h: |
| |
| * platform/mediastream/MediaConstraints.h: |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::fitnessDistance): ASSERT if called for DeviceId. |
| (WebCore::RealtimeMediaSource::selectSettings): Special case DeviceId because it |
| we have to hash the device ID before comparing, and because the DeviceId can't be |
| changed so it should never be added to the flattened constraints. |
| |
| * platform/mediastream/RealtimeMediaSourceSupportedConstraints.cpp: |
| (WebCore::RealtimeMediaSourceSupportedConstraints::nameForConstraint): Deleted, unused. |
| (WebCore::RealtimeMediaSourceSupportedConstraints::constraintFromName): Deleted, unused. |
| * platform/mediastream/RealtimeMediaSourceSupportedConstraints.h: |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| (WebCore::RealtimeMediaSourceCenterMac::bestSourcesForTypeAndConstraints): Pass device |
| id, not empty string. |
| |
| 2017-05-09 Jeremy Jones <jeremyj@apple.com> |
| |
| Video fullscreen window level should be below status bar. |
| https://bugs.webkit.org/show_bug.cgi?id=171892 |
| rdar://problem/31771707 |
| |
| Reviewed by Jer Noble. |
| |
| No new tests because it only affects platform window level. |
| |
| Move the fullscreen window below the status bar, but above the input field window level. |
| |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: |
| (WebVideoFullscreenInterfaceAVKit::setupFullscreen): |
| |
| 2017-05-09 Sam Weinig <sam@webkit.org> |
| |
| Implement Subresource Integrity (SRI) [Part 2 - Fetch] |
| https://bugs.webkit.org/show_bug.cgi?id=148363 |
| <rdar://problem/18945879> |
| |
| Reviewed by Youenn Fablet. |
| |
| Tests: http/tests/subresource-integrity/sri-fetch-worker.html |
| http/tests/subresource-integrity/sri-fetch.html |
| |
| * loader/FetchOptions.h: |
| * loader/ThreadableLoader.cpp: |
| (WebCore::ThreadableLoaderOptions::isolatedCopy): |
| * loader/ThreadableLoader.h: |
| * loader/WorkerThreadableLoader.cpp: |
| (WebCore::LoaderTaskOptions::LoaderTaskOptions): |
| Add integrity metadata to the fetch options, and fix the implementation of |
| ThreadableLoaderOptions::isolatedCopy to work correctly (it was missing isolated |
| copy derivedCachedDataTypesToRetrieve). |
| |
| * Modules/fetch/FetchRequest.cpp: |
| (WebCore::buildOptions): |
| (WebCore::FetchRequest::initializeOptions): |
| * Modules/fetch/FetchRequest.h: |
| Switch to using the integrity metadata on the fetchOptions, removing the need to |
| store them directly on the internal request. |
| |
| * loader/DocumentThreadableLoader.cpp: |
| (WebCore::DocumentThreadableLoader::DocumentThreadableLoader): |
| (WebCore::DocumentThreadableLoader::didReceiveResponse): |
| (WebCore::DocumentThreadableLoader::didReceiveData): |
| (WebCore::DocumentThreadableLoader::didFinishLoading): |
| (WebCore::DocumentThreadableLoader::loadRequest): |
| (WebCore::DocumentThreadableLoader::reportIntegrityMetadataError): |
| * loader/DocumentThreadableLoader.h: |
| Add a new flag, m_delayCallbacksForIntegrityCheck, which is used when integrity metadata |
| is present, so we can implement the 'wait' concept from the fetch spec, and delay informing |
| the clients until we have validated the integrity metadata. |
| |
| 2017-05-09 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r216545. |
| https://bugs.webkit.org/show_bug.cgi?id=171889 |
| |
| Caused a test failure (Requested by eric_carlson on #webkit). |
| |
| Reverted changeset: |
| |
| "[MediaStream] deviceId constraint doesn't work with |
| getUserMedia" |
| https://bugs.webkit.org/show_bug.cgi?id=171877 |
| http://trac.webkit.org/changeset/216545 |
| |
| 2017-05-09 Zalan Bujtas <zalan@apple.com> |
| |
| resetFlowThreadContainingBlockAndChildInfoIncludingDescendants should not ignore RenderElement subtrees. |
| https://bugs.webkit.org/show_bug.cgi?id=171873 |
| <rdar://problem/32004954> |
| |
| Reviewed by Simon Fraser. |
| |
| Normally a RenderBlock's parent is another RenderBlock, but In some cases (e.g. tables) a RenderBlock can |
| have a non-RenderBlock(RenderBox) ancestor. |
| While updating the flow thread state on a subtree, we should descent into subtrees with RenderElement |
| roots and not just RenderBlocks so that we clear the state on the entire subtree. |
| |
| Test: fast/multicol/crash-when-column-inside-table.html |
| |
| * rendering/RenderBlock.cpp: |
| (WebCore::RenderBlock::resetFlowThreadContainingBlockAndChildInfoIncludingDescendants): |
| * rendering/RenderBlock.h: |
| * rendering/RenderElement.cpp: |
| (WebCore::RenderElement::resetFlowThreadContainingBlockAndChildInfoIncludingDescendants): |
| * rendering/RenderElement.h: |
| |
| 2017-05-09 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] deviceId constraint doesn't work with getUserMedia |
| https://bugs.webkit.org/show_bug.cgi?id=171877 |
| <rdar://problem/31899730> |
| |
| Reviewed by Jer Noble. |
| |
| Test: fast/mediastream/get-user-media-device-id.html |
| |
| * Modules/mediastream/MediaConstraintsImpl.h: |
| (WebCore::MediaConstraintsData::MediaConstraintsData): Add a constructor that |
| takes a const MediaConstraints&. |
| |
| * Modules/mediastream/MediaDevicesEnumerationRequest.cpp: |
| (WebCore::MediaDevicesEnumerationRequest::topLevelDocumentOrigin): Don't return |
| NULL for the main frame so the origin matches that returned for a UserMediaRequest. |
| |
| * Modules/mediastream/UserMediaController.h: |
| (WebCore::UserMediaController::setDeviceIDHashSalt): Deleted, not used. |
| (WebCore::UserMediaController::deviceIDHashSalt): Deleted, not used. |
| |
| * Modules/mediastream/UserMediaRequest.cpp: |
| (WebCore::UserMediaRequest::allow): Add device ID hash salt parameter, set it on |
| constraints. |
| * Modules/mediastream/UserMediaRequest.h: |
| |
| * platform/mediastream/MediaConstraints.h: |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::fitnessDistance): ASSERT if called for DeviceId. |
| (WebCore::RealtimeMediaSource::selectSettings): Special case DeviceId because it |
| we have to hash the device ID before comparing, and because the DeviceId can't be |
| changed so it should never be added to the flattened constraints. |
| |
| * platform/mediastream/RealtimeMediaSourceSupportedConstraints.cpp: |
| (WebCore::RealtimeMediaSourceSupportedConstraints::nameForConstraint): Deleted, unused. |
| (WebCore::RealtimeMediaSourceSupportedConstraints::constraintFromName): Deleted, unused. |
| * platform/mediastream/RealtimeMediaSourceSupportedConstraints.h: |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| (WebCore::RealtimeMediaSourceCenterMac::bestSourcesForTypeAndConstraints): Pass device |
| id, not empty string. |
| |
| 2017-05-09 Antoine Quint <graouts@apple.com> |
| |
| [Modern Media Controls] Localized strings aren't loaded |
| https://bugs.webkit.org/show_bug.cgi?id=171884 |
| |
| Reviewed by Dean Jackson. |
| |
| Remove the extraneous file extension in the file name. |
| |
| * rendering/RenderThemeIOS.mm: |
| (WebCore::RenderThemeIOS::mediaControlsScript): |
| * rendering/RenderThemeMac.mm: |
| (WebCore::RenderThemeMac::mediaControlsScript): |
| |
| 2017-05-09 Chris Dumez <cdumez@apple.com> |
| |
| Introduce DocumentAndElementEventHandlers IDL interface |
| https://bugs.webkit.org/show_bug.cgi?id=171879 |
| |
| Reviewed by Simon Fraser and Ryosuke Niwa. |
| |
| Introduce DocumentAndElementEventHandlers IDL interface: |
| - https://html.spec.whatwg.org/#documentandelementeventhandlers |
| |
| This avoids duplication between Document.idl and Element.idl. |
| |
| Also mark oncopy / oncut / onpaste EventHandlers as enumerable to match |
| the specification. |
| |
| Test: fast/events/DocumentAndElementEventHandlers.html |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * WebCore.xcodeproj/project.pbxproj: |
| * dom/Document.idl: |
| * dom/DocumentAndElementEventHandlers.idl: Added. |
| * dom/Element.idl: |
| |
| 2017-05-10 Dean Jackson <dino@apple.com> |
| |
| Restrict SVG filters to accessible security origins |
| https://bugs.webkit.org/show_bug.cgi?id=118689 |
| <rdar://problem/27362159> |
| |
| Reviewed by Brent Fulgham. |
| |
| Certain SVG filters should only be allowed to operate |
| on content that is has SecurityOrigin access to. Implement |
| this by including a flag in PaintInfo and LayerPaintingInfo, |
| and have RenderWidget make sure the documents have acceptable |
| SecurityOrigins as it goes to paint. |
| |
| This could be used as the first step in a "safe painting" |
| strategy, allowing some content to be rendered into a |
| canvas or via the element() CSS function... but it is only |
| a small first step. |
| |
| Test: http/tests/css/filters-on-iframes.html |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::paintContents): |
| * page/FrameView.h: |
| * platform/ScrollView.cpp: |
| (WebCore::ScrollView::paint): |
| * platform/ScrollView.h: |
| * platform/Scrollbar.cpp: |
| (WebCore::Scrollbar::paint): |
| * platform/Scrollbar.h: |
| * platform/Widget.h: |
| * platform/graphics/filters/FilterOperation.h: |
| (WebCore::FilterOperation::shouldBeRestrictedBySecurityOrigin): |
| * platform/graphics/filters/FilterOperations.cpp: |
| (WebCore::FilterOperations::hasFilterThatShouldBeRestrictedBySecurityOrigin): |
| * platform/graphics/filters/FilterOperations.h: |
| * platform/mac/WidgetMac.mm: |
| (WebCore::Widget::paint): |
| * rendering/FilterEffectRenderer.cpp: |
| (WebCore::FilterEffectRenderer::build): |
| * rendering/FilterEffectRenderer.h: |
| * rendering/PaintInfo.h: |
| (WebCore::PaintInfo::PaintInfo): |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::paint): |
| (WebCore::RenderLayer::setupFilters): |
| (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase): |
| * rendering/RenderLayer.h: |
| * rendering/RenderScrollbar.cpp: |
| (WebCore::RenderScrollbar::paint): |
| * rendering/RenderScrollbar.h: |
| * rendering/RenderWidget.cpp: |
| (WebCore::RenderWidget::paintContents): |
| |
| 2017-05-09 Chris Dumez <cdumez@apple.com> |
| |
| Move onanimation* EventHandlers to GlobalEventHandlers |
| https://bugs.webkit.org/show_bug.cgi?id=171874 |
| |
| Reviewed by Simon Fraser. |
| |
| Move onanimation* EventHandlers to GlobalEventHandlers to match the specification: |
| - https://drafts.csswg.org/css-animations/#interface-globaleventhandlers-idl |
| |
| We previously have those on Window and Element only. Firefox complies with the |
| specification. |
| |
| Test: fast/css/onanimation-eventhandlers.html |
| |
| * dom/Element.idl: |
| * dom/GlobalEventHandlers.idl: |
| * page/DOMWindow.idl: |
| |
| 2017-05-09 Youenn Fablet <youenn@apple.com> |
| |
| Refresh webrtc WPT tests |
| https://bugs.webkit.org/show_bug.cgi?id=171878 |
| |
| Reviewed by Eric Carlson. |
| |
| Tests: imported/w3c/web-platform-tests/webrtc/RTCConfiguration-iceCandidatePoolSize.html |
| imported/w3c/web-platform-tests/webrtc/RTCDataChannel-id.html |
| imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-canTrickleIceCandidates.html |
| imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-constructor.html |
| imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-createDataChannel.html |
| imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-iceGatheringState.html |
| imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-idl.html |
| imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription.html |
| imported/w3c/web-platform-tests/webrtc/datachannel-idlharness.html |
| imported/w3c/web-platform-tests/webrtc/getstats.html |
| imported/w3c/web-platform-tests/webrtc/interfaces.html |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::createDataChannel): exiting early if libwebrtc is not creating a data channel. |
| |
| 2017-05-09 Javier Fernandez <jfernandez@igalia.com> |
| |
| space-evenly misbehaves with flexbox |
| https://bugs.webkit.org/show_bug.cgi?id=170445 |
| |
| Reviewed by David Hyatt. |
| |
| The CSS Box Alignment specification defines the <content-distribution> |
| set as some of the allowed values for the Content Distribution |
| properties, align-content and justify-content. The 'space-evenly' value |
| is not among the ones allowed for these properties according to the CSS |
| Flexible Box specification. |
| |
| The CSS Flexbible box specification states that it must follow the CSS |
| Box Alignment specification, so this new value must be considered as |
| part of an upgraded level of the spec, which should be implemented |
| eventually. |
| |
| Since we have already shipped an implementation of the new CSS Box |
| Alignment values for CSS Grid Layout, we need to implement it for |
| Flexbox as well. |
| |
| No new tests, but several new test cases added. |
| |
| * rendering/RenderFlexibleBox.cpp: |
| (WebCore::initialJustifyContentOffset): |
| (WebCore::justifyContentSpaceBetweenChildren): |
| (WebCore::initialAlignContentOffset): |
| (WebCore::alignContentSpaceBetweenChildren): |
| |
| 2017-05-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Avoid -Wformat warnings in RenderLayerCompositor.cpp and RenderLayerBacking.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=171875 |
| |
| Reviewed by Simon Fraser. |
| |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::RenderLayerBacking::detachFromScrollingCoordinator): |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::logLayerInfo): |
| (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer): |
| |
| 2017-05-09 Chris Dumez <cdumez@apple.com> |
| |
| Drop custom bindings code for Window.location setter |
| https://bugs.webkit.org/show_bug.cgi?id=171846 |
| |
| Reviewed by Sam Weinig. |
| |
| Drop custom bindings code for Window.location setter as the custom code was merely needed |
| to address a very old Mac widget that has long been fixed (rdar://problem/5695330). |
| |
| No new tests, no Web-facing behavior change. |
| |
| * bindings/js/JSDOMWindowCustom.cpp: |
| (WebCore::JSDOMWindow::setLocation): Deleted. |
| Drop custom code. |
| |
| * page/DOMWindow.idl: |
| Align Window.location with https://html.spec.whatwg.org/#the-window-object: |
| - Mark property as readonly. |
| - Add [PutsForward=href] IDL extended attribute. |
| Also, we need to mark the atribute as nullable as this reflects our current implementation. |
| We currently return null if the associated Window does not have a frame. This does not match |
| the specification and we should update our implementation in the future to never return null. |
| |
| 2017-05-09 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r216508. |
| |
| The layout test enabled in this change is failing on Sierra. |
| |
| Reverted changeset: |
| |
| "Invalid MediaSource duration value should throw TyperError |
| instead of InvalidStateError" |
| https://bugs.webkit.org/show_bug.cgi?id=171653 |
| http://trac.webkit.org/changeset/216508 |
| |
| 2017-05-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Update Chrome and Firefox versions in user agent quirks |
| https://bugs.webkit.org/show_bug.cgi?id=171823 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| * platform/UserAgentQuirks.cpp: |
| (WebCore::UserAgentQuirks::stringForQuirk): |
| (WebCore::UserAgentQuirks::firefoxRevisionString): |
| |
| 2017-05-09 Youenn Fablet <youenn@apple.com> |
| |
| RealtimeOutgoingAudioSource is crashing when given data with more than two channels |
| https://bugs.webkit.org/show_bug.cgi?id=171868 |
| |
| Reviewed by Eric Carlson. |
| |
| Manual testing. |
| |
| * platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp: |
| (WebCore::libwebrtcAudioFormat): Capping the number of channels to 2. |
| (WebCore::RealtimeOutgoingAudioSource::audioSamplesAvailable): |
| |
| 2017-05-09 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| font-stretch: normal selects expanded fonts instead of condensed fonts |
| https://bugs.webkit.org/show_bug.cgi?id=171838 |
| <rdar://problem/31005481> |
| |
| Reviewed by Jon Lee. |
| |
| CSS Fonts level 3 says: "If the value of ‘font-stretch’ is ‘normal’ or one of the condensed |
| values, narrower width values are checked first, then wider values." |
| |
| CSS Fonts level 4 erroneously was incompatible with this, but was updated in |
| https://github.com/w3c/csswg-drafts/commit/4559389d183bbaaf3321af5ba1c924caa7c488bb |
| to be consistent with this. |
| |
| Now, CSS Fonts level 4 states: "If the desired stretch value is less than or equal to100, |
| stretch values below the desired stretch value are checked in descending order followed by |
| stretch values above the desired stretch value in ascending order" |
| |
| Test: fast/text/font-width-100.html |
| |
| * platform/graphics/FontSelectionAlgorithm.cpp: |
| |
| 2017-05-09 Romain Bellessort <romain.bellessort@crf.canon.fr> |
| |
| [Readable Streams API] Enable creation of ReadableStreamBYOBReader |
| https://bugs.webkit.org/show_bug.cgi?id=171665 |
| |
| Reviewed by Youenn Fablet. |
| |
| Enabled the creation of ReadableStreamBYOBReader. |
| |
| Test: streams/readable-stream-byob-reader.html |
| |
| * CMakeLists.txt: Updated to support ReadableStreamBYOBReader. |
| * DerivedSources.cpp: Updated to support ReadableStreamBYOBReader. |
| * DerivedSources.make: Updated to support ReadableStreamBYOBReader. |
| * Modules/streams/ReadableByteStreamInternals.js: Updated to support ReadableStreamBYOBReader. |
| (privateInitializeReadableStreamBYOBReader): |
| (isReadableStreamBYOBReader): |
| * Modules/streams/ReadableStream.js: Updated to support ReadableStreamBYOBReader. |
| (getReader): |
| * Modules/streams/ReadableStreamBYOBReader.idl: Added. |
| * Modules/streams/ReadableStreamBYOBReader.js: Added. |
| (cancel): To be implemented. |
| (read): To be implemented. |
| (releaseLock): To be implemented. |
| (closed): To be implemented. |
| * WebCore.xcodeproj/project.pbxproj: Updated to support ReadableStreamBYOBReader. |
| * bindings/js/JSDOMGlobalObject.cpp: Updated to support ReadableStreamBYOBReader. |
| (WebCore::JSDOMGlobalObject::addBuiltinGlobals): |
| * bindings/js/JSReadableStreamPrivateConstructors.cpp: Updated to support ReadableStreamBYOBReader. |
| (WebCore::constructJSReadableStreamReaderGeneric): |
| (WebCore::constructJSReadableStreamDefaultReader): |
| (WebCore::constructJSReadableStreamBYOBReader): |
| (WebCore::JSBuiltinReadableStreamBYOBReaderPrivateConstructor::initializeExecutable): |
| (WebCore::createReadableStreamBYOBReaderPrivateConstructor): |
| * bindings/js/JSReadableStreamPrivateConstructors.h: Updated to support ReadableStreamBYOBReader. |
| * bindings/js/WebCoreBuiltinNames.h: Updated to support ReadableStreamBYOBReader. |
| |
| 2017-05-09 Frederic Wang <fwang@igalia.com> |
| |
| Print more properties in the output of scrolling trees |
| https://bugs.webkit.org/show_bug.cgi?id=171858 |
| |
| Reviewed by Simon Fraser. |
| |
| No new tests, no behavior changes. |
| |
| * page/scrolling/ScrollingCoordinator.cpp: Implement << operator to print ScrollableAreaParameters. |
| (WebCore::operator<<): |
| * page/scrolling/ScrollingCoordinator.h: Declare new << operator. |
| * page/scrolling/ScrollingStateFrameScrollingNode.cpp: Print new properties. |
| (WebCore::ScrollingStateFrameScrollingNode::dumpProperties): |
| * page/scrolling/ScrollingStateScrollingNode.cpp: ditto. |
| (WebCore::ScrollingStateScrollingNode::dumpProperties): |
| * page/scrolling/ScrollingTreeScrollingNode.cpp: ditto. |
| (WebCore::ScrollingTreeScrollingNode::dumpProperties): |
| |
| 2017-05-09 Chris Dumez <cdumez@apple.com> |
| |
| ontransitionend eventHandler should be in GlobalEventHandlers |
| https://bugs.webkit.org/show_bug.cgi?id=171836 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| ontransitionend eventHandler should be in GlobalEventHandlers: |
| - https://drafts.csswg.org/css-transitions/#interface-globaleventhandlers-idl |
| |
| WebKit currently has in on Window and Element only. Firefox matches the specification. |
| |
| Test: fast/css/ontransitionend-eventhandler.html |
| |
| * dom/Element.idl: |
| * dom/GlobalEventHandlers.idl: |
| * page/DOMWindow.idl: |
| |
| 2017-05-09 Nael Ouedraogo <nael.ouedraogo@crf.canon.fr> |
| |
| MediaSource.readyState should use an IDL enum |
| https://bugs.webkit.org/show_bug.cgi?id=171672 |
| |
| Reviewed by Eric Carlson and Chris Dumez. |
| |
| MediaSource.readyState should use an IDL enum as per specification |
| (https://www.w3.org/TR/2016/CR-media-source-20160503/#idl-def-ReadyState). |
| |
| No new tests required since no behavior change. |
| |
| * Modules/mediasource/MediaSource.cpp: |
| (WebCore::toString): |
| (WebCore::MediaSource::MediaSource): |
| (WebCore::MediaSource::setPrivateAndOpen): |
| (WebCore::MediaSource::buffered): |
| (WebCore::MediaSource::setReadyState): |
| (WebCore::MediaSource::streamEndedWithError): |
| (WebCore::MediaSource::isOpen): |
| (WebCore::MediaSource::isClosed): |
| (WebCore::MediaSource::isEnded): |
| (WebCore::MediaSource::detachFromElement): |
| (WebCore::MediaSource::openIfInEndedState): |
| (WebCore::MediaSource::stop): |
| (WebCore::MediaSource::onReadyStateChange): |
| * Modules/mediasource/MediaSource.h: |
| * Modules/mediasource/MediaSource.idl: |
| |
| 2017-05-09 Nael Ouedraogo <nael.ouedraogo@crf.canon.fr> |
| |
| Invalid MediaSource duration value should throw TyperError instead of InvalidStateError |
| https://bugs.webkit.org/show_bug.cgi?id=171653 |
| |
| Reviewed by Youenn Fablet. |
| |
| Modify MediaSource::setDuration to throw a TypeError when duration value is invalid as per MSE specification |
| (https://www.w3.org/TR/2016/REC-media-source-20161117/#dom-mediasource-duration). |
| |
| Update expectation of corresponding WPT test. |
| |
| * Modules/mediasource/MediaSource.cpp: |
| (WebCore::MediaSource::setDuration): |
| (WebCore::MediaSource::setDurationInternal): |
| |
| 2017-05-09 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Unreviewed, update binding-tests results |
| https://bugs.webkit.org/show_bug.cgi?id=166752 |
| |
| * bindings/scripts/test/JS/JSTestNode.cpp: |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| |
| 2017-05-09 Chris Dumez <cdumez@apple.com> |
| |
| Update DocumentOrShadowRoot.idl to match specifications |
| https://bugs.webkit.org/show_bug.cgi?id=171845 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Update DocumentOrShadowRoot.idl to match specifications: |
| - https://dom.spec.whatwg.org/#mixin-documentorshadowroot |
| - https://w3c.github.io/webcomponents/spec/shadow/#extensions-to-the-documentorshadowroot-mixin |
| - https://w3c.github.io/pointerlock/#extensions-to-the-documentorshadowroot-mixin |
| |
| No Web-facing behavior change. Things that do not match the specification were merely |
| annotated with FIXME comments. |
| |
| * dom/Document.idl: |
| * dom/DocumentOrShadowRoot.idl: |
| |
| 2017-05-09 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Unreviewed, attempt to fix macOS ports using ApplePay |
| https://bugs.webkit.org/show_bug.cgi?id=166752 |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateImplementation): |
| |
| 2017-05-09 Yoshiaki Jitsukawa <Yoshiaki.Jitsukawa@sony.com> |
| |
| [Coordinated Graphics] Debug Visuals don't hide |
| https://bugs.webkit.org/show_bug.cgi?id=162704 |
| |
| Reviewed by Žan Doberšek. |
| |
| * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: |
| (WebCore::CoordinatedGraphicsLayer::setShowDebugBorder): |
| (WebCore::CoordinatedGraphicsLayer::setShowRepaintCounter): |
| (WebCore::CoordinatedGraphicsLayer::syncLayerState): |
| (WebCore::CoordinatedGraphicsLayer::setDebugBorder): |
| showDebugBorders() and showRepaintCounter() of CoordinatedGraphicsLayer should reflect |
| the "show" argument to the layer state. |
| |
| * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h: |
| (WebCore::DebugVisuals::DebugVisuals): |
| (WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState): |
| To set the debug visuals of a layer, the visibility flags of the borders and the repaint |
| counters as well as the border width and color are needed. Thus a new bundle struct |
| DebugVisuals and its change flag debugVisualsChanged have been introduced in order to |
| send the information at once. |
| |
| 2017-05-09 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Handle IDLPromise<> properly |
| https://bugs.webkit.org/show_bug.cgi?id=166752 |
| |
| Reviewed by Youenn Fablet. |
| |
| This patch implements WebIDL Promise type conversion. According to the spec, |
| Promise takes a value and convert it to Promise by using Promise.resolve function. |
| We implement JSPromise::resolve in JSC and use it in JSDOMConvertPromise. |
| |
| In conversion phase, we just convert the value to JSC::JSPromise* and hold it in |
| PromiseRejectionEvent. On the other hand, In this patch, we newly introduce a new |
| type DOMPromise and use it in RejectedPromiseTracker. And we also rename the previous |
| DOMPromise to DOMPromiseDeferred since it is corresponding to JSPromiseDeferred. |
| DOMPromise is DOMGuarded object. So it is strongly referenced from ScriptExecutionContext |
| and it is weakly referenced from the object itself. This is important since Strong<JSPromise> |
| reference in C++ object that has a wrapper (in this case, PromiseRejectionEvent) easily causes |
| cyclic reference. We hold it as DOMPromise instead of Strong<JSPromise> in RejectedPromiseTracker |
| to break the cyclic reference edge with weak reference. |
| |
| In the meantime, we still use JSC::Strong<> in PromiseRejectionEvent. It leaks memory if promise |
| refers the wrapper object of PromiseRejectionEvent. CustomEvent also has the same problem. |
| This is a general problem that `attribute any` can create cyclic reference. And they should be |
| fixed in a different patch. |
| |
| Currently, we do not take the following approach. e.g. There is C++ object that represents Promise. |
| And its wrapper object is JSPromise thing. When exposing the C++ object, it will be converted to a |
| wrapper object. We do not take this approach because PromiseRejectionEvent can take user-provided promise. |
| For example, users can create PromiseRejectionEvent in a form |
| `new PromiseRejectionEvent("...", { promise: promise })`. In this case, `event.promise === promise` |
| is required. And this is not suitable for the above C++ object model. |
| |
| Large part of this patch is mechanical one to replace DOMPromise with DOMPromiseDeferred. |
| |
| * CMakeLists.txt: |
| * Modules/applepay/ApplePaySession.cpp: |
| * Modules/encryptedmedia/MediaKeySession.h: |
| * Modules/encryptedmedia/MediaKeySystemAccess.h: |
| * Modules/encryptedmedia/MediaKeys.h: |
| * Modules/encryptedmedia/NavigatorEME.h: |
| * Modules/fetch/DOMWindowFetch.h: |
| * Modules/fetch/FetchBody.h: |
| * Modules/fetch/FetchBodyConsumer.h: |
| * Modules/fetch/FetchResponse.h: |
| * Modules/fetch/WorkerGlobalScopeFetch.h: |
| * Modules/mediastream/MediaDevices.h: |
| * Modules/mediastream/MediaEndpointPeerConnection.cpp: |
| (WebCore::MediaEndpointPeerConnection::replaceTrack): |
| (WebCore::MediaEndpointPeerConnection::replaceTrackTask): |
| * Modules/mediastream/MediaEndpointPeerConnection.h: |
| * Modules/mediastream/MediaStreamTrack.cpp: |
| (WebCore::MediaStreamTrack::applyConstraints): |
| * Modules/mediastream/MediaStreamTrack.h: |
| * Modules/mediastream/PeerConnectionBackend.cpp: |
| (WebCore::PeerConnectionBackend::setLocalDescription): |
| (WebCore::PeerConnectionBackend::setRemoteDescription): |
| (WebCore::PeerConnectionBackend::addIceCandidate): |
| * Modules/mediastream/PeerConnectionBackend.h: |
| (WebCore::PeerConnectionBackend::endOfIceCandidates): |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::queuedSetLocalDescription): |
| (WebCore::RTCPeerConnection::queuedSetRemoteDescription): |
| (WebCore::RTCPeerConnection::queuedAddIceCandidate): |
| (WebCore::RTCPeerConnection::enqueueReplaceTrackTask): |
| (WebCore::RTCPeerConnection::replaceTrack): |
| * Modules/mediastream/RTCPeerConnection.h: |
| * Modules/mediastream/RTCRtpSender.cpp: |
| (WebCore::RTCRtpSender::replaceTrack): |
| * Modules/mediastream/RTCRtpSender.h: |
| * Modules/mediastream/UserMediaRequest.cpp: |
| (WebCore::UserMediaRequest::start): |
| (WebCore::UserMediaRequest::UserMediaRequest): |
| * Modules/mediastream/UserMediaRequest.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::LibWebRTCPeerConnectionBackend::replaceTrack): |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h: |
| * Modules/streams/ReadableStreamSource.h: |
| (WebCore::ReadableStreamSource::start): |
| (WebCore::ReadableStreamSource::pull): |
| * Modules/webaudio/AudioContext.cpp: |
| (WebCore::AudioContext::addReaction): |
| (WebCore::AudioContext::setState): |
| (WebCore::AudioContext::suspend): |
| (WebCore::AudioContext::resume): |
| (WebCore::AudioContext::close): |
| * Modules/webaudio/AudioContext.h: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/IDLTypes.h: |
| * bindings/js/CachedModuleScriptLoaderClient.h: |
| * bindings/js/JSBindingsAllInOne.cpp: |
| * bindings/js/JSCustomElementRegistryCustom.cpp: |
| * bindings/js/JSDOMConvertPromise.h: |
| (WebCore::Converter<IDLPromise<T>>::convert): |
| (WebCore::JSConverter<IDLPromise<T>>::convert): |
| * bindings/js/JSDOMExceptionHandling.cpp: |
| * bindings/js/JSDOMGlobalObject.cpp: |
| * bindings/js/JSDOMGuardedObject.h: |
| * bindings/js/JSDOMPromise.h: |
| (WebCore::DOMPromise::create): |
| (WebCore::DOMPromise::promise): |
| (WebCore::DOMPromise::DOMPromise): |
| (WebCore::DeferredPromise::create): Deleted. |
| (WebCore::DeferredPromise::resolve): Deleted. |
| (WebCore::DeferredPromise::resolveWithNewlyCreated): Deleted. |
| (WebCore::DeferredPromise::reject): Deleted. |
| (WebCore::DeferredPromise::resolveWithCallback): Deleted. |
| (WebCore::DeferredPromise::rejectWithCallback): Deleted. |
| (WebCore::DeferredPromise::DeferredPromise): Deleted. |
| (WebCore::DeferredPromise::deferred): Deleted. |
| (WebCore::DOMPromiseBase::DOMPromiseBase): Deleted. |
| (WebCore::DOMPromiseBase::operator=): Deleted. |
| (WebCore::DOMPromiseBase::reject): Deleted. |
| (WebCore::DOMPromiseBase::rejectType): Deleted. |
| (WebCore::DOMPromiseBase::promise): Deleted. |
| (WebCore::DOMPromise::resolve): Deleted. |
| (WebCore::DOMPromise<void>::resolve): Deleted. |
| (WebCore::callPromiseFunction): Deleted. |
| (WebCore::bindingPromiseFunctionAdapter): Deleted. |
| * bindings/js/JSDOMPromiseDeferred.cpp: Renamed from Source/WebCore/bindings/js/JSDOMPromise.cpp. |
| (WebCore::DeferredPromise::promise): |
| (WebCore::DeferredPromise::callFunction): |
| (WebCore::DeferredPromise::reject): |
| (WebCore::rejectPromiseWithExceptionIfAny): |
| (WebCore::createDeferredPromise): |
| (WebCore::createRejectedPromiseWithTypeError): |
| (WebCore::parseAsJSON): |
| (WebCore::fulfillPromiseWithJSON): |
| (WebCore::fulfillPromiseWithArrayBuffer): |
| * bindings/js/JSDOMPromiseDeferred.h: Copied from Source/WebCore/bindings/js/JSDOMPromise.h. |
| (WebCore::DeferredPromise::create): |
| (WebCore::DeferredPromise::resolve): |
| (WebCore::DeferredPromise::resolveWithNewlyCreated): |
| (WebCore::DeferredPromise::reject): |
| (WebCore::DeferredPromise::resolveWithCallback): |
| (WebCore::DeferredPromise::rejectWithCallback): |
| (WebCore::DeferredPromise::DeferredPromise): |
| (WebCore::DeferredPromise::deferred): |
| (WebCore::DOMPromiseDeferredBase::DOMPromiseDeferredBase): |
| (WebCore::DOMPromiseDeferredBase::operator=): |
| (WebCore::DOMPromiseDeferredBase::reject): |
| (WebCore::DOMPromiseDeferredBase::rejectType): |
| (WebCore::DOMPromiseDeferredBase::promise): |
| (WebCore::DOMPromiseDeferred::resolve): |
| (WebCore::DOMPromiseDeferred<void>::resolve): |
| (WebCore::callPromiseFunction): |
| (WebCore::bindingPromiseFunctionAdapter): |
| * bindings/js/JSSubtleCryptoCustom.cpp: |
| * bindings/js/JSWebGPUCommandBufferCustom.cpp: |
| * bindings/js/JSWebKitSubtleCryptoCustom.cpp: |
| * bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp: Added. |
| (WebCore::convertDictionary<TestPromiseRejectionEvent::Init>): |
| (WebCore::JSTestPromiseRejectionEventPrototype::create): |
| (WebCore::JSTestPromiseRejectionEventPrototype::createStructure): |
| (WebCore::JSTestPromiseRejectionEventPrototype::JSTestPromiseRejectionEventPrototype): |
| (WebCore::JSTestPromiseRejectionEventConstructor::construct): |
| (WebCore::JSTestPromiseRejectionEventConstructor::prototypeForStructure): |
| (WebCore::JSTestPromiseRejectionEventConstructor::initializeProperties): |
| (WebCore::JSTestPromiseRejectionEventPrototype::finishCreation): |
| (WebCore::JSTestPromiseRejectionEvent::JSTestPromiseRejectionEvent): |
| (WebCore::JSTestPromiseRejectionEvent::finishCreation): |
| (WebCore::JSTestPromiseRejectionEvent::createPrototype): |
| (WebCore::JSTestPromiseRejectionEvent::prototype): |
| (WebCore::BindingCaller<JSTestPromiseRejectionEvent>::castForAttribute): |
| (WebCore::jsTestPromiseRejectionEventPromise): |
| (WebCore::jsTestPromiseRejectionEventPromiseGetter): |
| (WebCore::jsTestPromiseRejectionEventReason): |
| (WebCore::jsTestPromiseRejectionEventReasonGetter): |
| (WebCore::jsTestPromiseRejectionEventConstructor): |
| (WebCore::setJSTestPromiseRejectionEventConstructor): |
| (WebCore::JSTestPromiseRejectionEvent::getConstructor): |
| (WebCore::toJSNewlyCreated): |
| (WebCore::toJS): |
| * bindings/scripts/test/JS/JSTestPromiseRejectionEvent.h: Added. |
| (WebCore::JSTestPromiseRejectionEvent::create): |
| (WebCore::JSTestPromiseRejectionEvent::createStructure): |
| (WebCore::JSTestPromiseRejectionEvent::wrapped): |
| (WebCore::toJS): |
| (WebCore::toJSNewlyCreated): |
| * bindings/scripts/test/TestPromiseRejectionEvent.idl: Copied from Source/WebCore/bindings/js/CachedModuleScriptLoaderClient.h. |
| * css/FontFace.h: |
| * css/FontFaceSet.h: |
| * dom/CustomElementRegistry.h: |
| * dom/PromiseRejectionEvent.h: |
| * dom/RejectedPromiseTracker.cpp: |
| (WebCore::UnhandledPromise::UnhandledPromise): |
| (WebCore::UnhandledPromise::callStack): |
| (WebCore::UnhandledPromise::promise): |
| (WebCore::RejectedPromiseTracker::promiseRejected): |
| (WebCore::RejectedPromiseTracker::promiseHandled): |
| (WebCore::RejectedPromiseTracker::reportUnhandledRejections): |
| (WebCore::RejectedPromiseTracker::reportRejectionHandled): |
| (WebCore::RejectedPromise::RejectedPromise): Deleted. |
| (WebCore::RejectedPromise::globalObject): Deleted. |
| (WebCore::RejectedPromise::promise): Deleted. |
| * dom/RejectedPromiseTracker.h: |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::rejectPendingPlayPromises): |
| (WebCore::HTMLMediaElement::resolvePendingPlayPromises): |
| (WebCore::HTMLMediaElement::play): |
| * html/HTMLMediaElement.h: |
| * platform/graphics/gpu/GPUCommandBuffer.h: |
| * testing/Internals.h: |
| |
| 2017-05-09 Zan Dobersek <zdobersek@igalia.com> |
| |
| Upstream the WPE port |
| https://bugs.webkit.org/show_bug.cgi?id=171110 |
| |
| Reviewed by Alex Christensen. |
| |
| webkit-dev thread: |
| https://lists.webkit.org/pipermail/webkit-dev/2017-April/028923.html |
| |
| Existing files mostly changed to properly use PLATFORM(WPE) build guards. |
| In-file changes removed from this ChangeLog entry for brevity. |
| |
| * CMakeLists.txt: |
| * PlatformWPE.cmake: Added. |
| * accessibility/AccessibilityObject.h: |
| * accessibility/wpe/AXObjectCacheWPE.cpp: Added. |
| * accessibility/wpe/AccessibilityObjectWPE.cpp: Copied from Source/WebCore/platform/audio/glib/AudioBusGLib.cpp. |
| * config.h: |
| * crypto/keys/CryptoKeyEC.h: |
| * crypto/keys/CryptoKeyRSA.h: |
| * editing/Editor.cpp: |
| * editing/Editor.h: |
| * editing/wpe/EditorWPE.cpp: Added. |
| * page/EventHandler.cpp: |
| * page/wpe/EventHandlerWPE.cpp: Added. |
| * platform/Cursor.h: |
| * platform/DragData.h: |
| * platform/DragImage.h: |
| * platform/FileSystem.h: |
| * platform/MainThreadSharedTimer.cpp: |
| * platform/MainThreadSharedTimer.h: |
| * platform/Pasteboard.h: |
| * platform/PasteboardStrategy.h: |
| * platform/PlatformPasteboard.h: |
| * platform/SchemeRegistry.cpp: |
| * platform/Widget.h: |
| * platform/audio/glib/AudioBusGLib.cpp: |
| * platform/glib/FileSystemGlib.cpp: |
| * platform/graphics/ANGLEWebKitBridge.h: |
| * platform/graphics/GLContext.cpp: |
| * platform/graphics/GLContext.h: |
| * platform/graphics/GraphicsContext3D.h: |
| * platform/graphics/OpenGLESShims.h: |
| * platform/graphics/PlatformDisplay.cpp: |
| * platform/graphics/PlatformDisplay.h: |
| * platform/graphics/egl/GLContextEGL.cpp: |
| * platform/graphics/egl/GLContextEGL.h: |
| * platform/graphics/egl/GLContextEGLWPE.cpp: Copied from Source/WebCore/platform/audio/glib/AudioBusGLib.cpp. |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: |
| * platform/graphics/wpe/IconWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h. |
| * platform/graphics/wpe/ImageWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h. |
| * platform/graphics/wpe/PlatformDisplayWPE.cpp: Added. |
| * platform/graphics/wpe/PlatformDisplayWPE.h: Added. |
| * platform/wpe/CursorWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h. |
| * platform/wpe/LocalizedStringsWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h. |
| * platform/wpe/PasteboardWPE.cpp: Added. |
| * platform/wpe/PlatformKeyboardEventWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h. |
| * platform/wpe/PlatformPasteboardWPE.cpp: Added. |
| * platform/wpe/PlatformScreenWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h. |
| * platform/wpe/RenderThemeWPE.cpp: Copied from Source/WebKit2/Shared/NativeWebWheelEvent.h. |
| * platform/wpe/RenderThemeWPE.h: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h. |
| * platform/wpe/ScrollbarThemeWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h. |
| * platform/wpe/ScrollbarThemeWPE.h: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h. |
| * platform/wpe/SoundWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h. |
| * platform/wpe/ThemeWPE.cpp: Added. |
| * platform/wpe/ThemeWPE.h: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h. |
| * platform/wpe/WidgetWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h. |
| |
| 2017-05-09 Frederic Wang <fwang@igalia.com> |
| |
| Fix property names in ScrollingTreeScrollingNode::dumpProperties |
| https://bugs.webkit.org/show_bug.cgi?id=171848 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| No new tests, this function is only used for debugging purpose. |
| |
| * page/scrolling/ScrollingTreeScrollingNode.cpp: |
| (WebCore::ScrollingTreeScrollingNode::dumpProperties): |
| |
| 2017-05-09 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Building Webkit2Gtk without OpenGL fails. |
| https://bugs.webkit.org/show_bug.cgi?id=170959 |
| |
| Reviewed by Žan Doberšek. |
| |
| * platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp: |
| * platform/graphics/texmap/TextureMapperGC3DPlatformLayer.h: |
| * platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h: |
| |
| 2017-05-09 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [AppleWin] CaptureDeviceManager.cpp: error C2813: #import is not supported with /MP |
| https://bugs.webkit.org/show_bug.cgi?id=171849 |
| |
| Reviewed by Per Arne Vollan. |
| |
| * platform/mediastream/CaptureDeviceManager.cpp: Replaced #import with #include. |
| |
| 2017-05-08 Chris Dumez <cdumez@apple.com> |
| |
| Refactor / Clean up DOMWindow.idl |
| https://bugs.webkit.org/show_bug.cgi?id=171843 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Refactor / Clean up DOMWindow.idl to match the specification more closely: |
| - https://html.spec.whatwg.org/#the-window-object |
| |
| No expected Web-facing change. Things that do not match the specification |
| have been annotated with FIXME comments. |
| |
| * page/DOMWindow.idl: |
| |
| 2017-05-08 Frederic Wang <fwang@igalia.com> |
| |
| Simplify ScrollingStateNode::scrollingStateTreeAsText |
| https://bugs.webkit.org/show_bug.cgi?id=171802 |
| |
| Reviewed by Simon Fraser. |
| |
| The following simplifications are performed: |
| - Rely on TextStream's internal value to manage indentation. |
| - Use TextStream::dumpProperty and << to print simple properties. |
| - Try and use TextStream::GroupScope for groups. |
| |
| No new tests, only minor format changes in the dumped tree. |
| |
| * page/scrolling/ScrollingStateFixedNode.cpp: |
| (WebCore::ScrollingStateFixedNode::dumpProperties): |
| * page/scrolling/ScrollingStateFixedNode.h: |
| * page/scrolling/ScrollingStateFrameScrollingNode.cpp: |
| (WebCore::ScrollingStateFrameScrollingNode::dumpProperties): |
| * page/scrolling/ScrollingStateFrameScrollingNode.h: |
| * page/scrolling/ScrollingStateNode.cpp: |
| (WebCore::ScrollingStateNode::dumpProperties): |
| (WebCore::ScrollingStateNode::dump): |
| (WebCore::ScrollingStateNode::scrollingStateTreeAsText): |
| * page/scrolling/ScrollingStateNode.h: |
| * page/scrolling/ScrollingStateOverflowScrollingNode.cpp: |
| (WebCore::ScrollingStateOverflowScrollingNode::dumpProperties): |
| * page/scrolling/ScrollingStateOverflowScrollingNode.h: |
| * page/scrolling/ScrollingStateScrollingNode.cpp: |
| (WebCore::ScrollingStateScrollingNode::dumpProperties): |
| * page/scrolling/ScrollingStateScrollingNode.h: |
| * page/scrolling/ScrollingStateStickyNode.cpp: |
| (WebCore::ScrollingStateStickyNode::dumpProperties): |
| * page/scrolling/ScrollingStateStickyNode.h: |
| |
| 2017-05-08 Youenn Fablet <youenn@apple.com> |
| |
| Follow-up to bug 171710: use more references and reject if either audio or video source creation is failing |
| https://bugs.webkit.org/show_bug.cgi?id=171824 |
| |
| Reviewed by Alex Christensen. |
| |
| Refactoring to use more references. |
| Only behavioral change is the rejection of the getUserMedia promise if either audio or video source creation is |
| failing. Previously, if audio source creation was failing, the promise would still resolve if video source was |
| sucessfully created. |
| |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::RealtimeMediaSourceCenter::audioFactory): |
| (WebCore::RealtimeMediaSourceCenter::videoFactory): |
| (WebCore::RealtimeMediaSourceCenter::audioCaptureDeviceManager): |
| (WebCore::RealtimeMediaSourceCenter::videoCaptureDeviceManager): |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| (WebCore::RealtimeMediaSourceCenter::defaultAudioFactory): Deleted. |
| (WebCore::RealtimeMediaSourceCenter::defaultVideoFactory): Deleted. |
| (WebCore::RealtimeMediaSourceCenter::defaultAudioCaptureDeviceManager): Deleted. |
| (WebCore::RealtimeMediaSourceCenter::defaultVideoCaptureDeviceManager): Deleted. |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| (WebCore::RealtimeMediaSourceCenterMac::createMediaStream): |
| (WebCore::RealtimeMediaSourceCenterMac::getMediaStreamDevices): |
| (WebCore::RealtimeMediaSourceCenterMac::bestSourcesForTypeAndConstraints): |
| (WebCore::RealtimeMediaSourceCenterMac::defaultAudioFactory): |
| (WebCore::RealtimeMediaSourceCenterMac::defaultVideoFactory): |
| (WebCore::RealtimeMediaSourceCenterMac::defaultAudioCaptureDeviceManager): |
| (WebCore::RealtimeMediaSourceCenterMac::defaultVideoCaptureDeviceManager): |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.h: |
| * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h: |
| * platform/mock/MockRealtimeMediaSourceCenter.cpp: |
| (WebCore::MockRealtimeMediaSourceCenter::defaultAudioFactory): |
| (WebCore::MockRealtimeMediaSourceCenter::defaultVideoFactory): |
| (WebCore::MockRealtimeMediaSourceCenter::defaultAudioCaptureDeviceManager): |
| (WebCore::MockRealtimeMediaSourceCenter::defaultVideoCaptureDeviceManager): |
| * platform/mock/MockRealtimeMediaSourceCenter.h: |
| |
| 2017-05-08 Chris Dumez <cdumez@apple.com> |
| |
| Drop [CEReactions] from CharacterData operations |
| https://bugs.webkit.org/show_bug.cgi?id=171813 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Drop [CEReactions] from CharacterData operations to match the DOM specification: |
| - https://dom.spec.whatwg.org/#interface-characterdata |
| |
| I believe WebKit had this because Attr used to have Text child nodes. Therefore, modifying |
| those Text child nodes via the CharacterData API could modify the value of an attribute, |
| requiring us to run attributeChangedCallback for Custom Elements. However, as of |
| <https://trac.webkit.org/r216259>, Attr can no longer have Text child nodes. |
| |
| I have also verified that Blink does not have [CEReactions] for those methods. |
| |
| No new tests, no expected Web-facing behavior change. |
| |
| * dom/CharacterData.idl: |
| |
| 2017-05-08 Jeremy Jones <jeremyj@apple.com> |
| |
| Remove black background from video layer while in fullscreen. |
| https://bugs.webkit.org/show_bug.cgi?id=171816 |
| |
| Reviewed by Eric Carlson. |
| |
| No new tests because no new behavior in DOM. |
| |
| This changes the background of the video layer to clear when it goes into fullscreen |
| and back to black when it returns to inline to better facilitate fullsceen animations. |
| |
| * platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.mm: |
| (WebCore::VideoFullscreenLayerManager::setVideoLayer): |
| (WebCore::VideoFullscreenLayerManager::setVideoFullscreenLayer): |
| |
| 2017-05-08 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| The Incomplete asynchronously decoded image frame should be decoded every time it's drawn |
| https://bugs.webkit.org/show_bug.cgi?id=170836 |
| |
| Reviewed by Tim Horton. |
| |
| The asynchronously decoded image frames has to be cached to prevent flickering, |
| but we have to keep requesting new decoding for the incomplete frame every time |
| it's drawn. This is to avoid drawing an incomplete image frame even after all |
| its encoded data is received. |
| |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::draw): |
| * platform/graphics/ImageFrameCache.cpp: |
| (WebCore::ImageFrameCache::cacheAsyncFrameNativeImageAtIndex): |
| (WebCore::ImageFrameCache::requestFrameAsyncDecodingAtIndex): |
| |
| 2017-05-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Guard DragController::cleanupAfterSystemDrag to only clear drag state on Mac |
| https://bugs.webkit.org/show_bug.cgi?id=171771 |
| <rdar://problem/32019149> |
| |
| Reviewed by Tim Horton. |
| |
| The call to dragEnded here seems to have been added because a client could override Mac WK1 |
| WebUIDelegate methods to cause this cleanup to never be performed. Since this limitation only |
| applies to Mac, guard it as such. |
| |
| * page/mac/DragControllerMac.mm: |
| (WebCore::DragController::cleanupAfterSystemDrag): |
| |
| 2017-05-08 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r216262. |
| https://bugs.webkit.org/show_bug.cgi?id=171842 |
| |
| "It regressed JetStream on iOS by 7%" (Requested by saamyjoon |
| on #webkit). |
| |
| Reverted changeset: |
| |
| "GCController.cpp's collect() should be Async" |
| https://bugs.webkit.org/show_bug.cgi?id=171708 |
| http://trac.webkit.org/changeset/216262 |
| |
| 2017-05-08 Chris Dumez <cdumez@apple.com> |
| |
| Move offsetParent / offsetLeft / offsetTop / offsetWidth / offsetHeight from Element to HTMLElement |
| https://bugs.webkit.org/show_bug.cgi?id=171829 |
| |
| Reviewed by Simon Fraser. |
| |
| Move offsetParent / offsetLeft / offsetTop / offsetWidth / offsetHeight from Element to HTMLElement, |
| as per the specification: |
| - https://drafts.csswg.org/cssom-view/#extensions-to-the-htmlelement-interface |
| |
| Both Firefox and Chrome match the specification and also do not have the corresponding API on |
| SVGElement. |
| |
| Bug tracking the similar move in Blink (completed over 1 year ago): |
| - https://bugs.chromium.org/p/chromium/issues/detail?id=463116 |
| |
| Note that for the inner SVG elements like <rect> and <circle> these attributes were returning 0, |
| because those aren't part of the CSS box model. They did return correct values for the <svg> |
| element itself, however. |
| |
| Test: fast/css/htmlelement-offset-properties.html |
| |
| * dom/Element.idl: |
| - Drop offset* attributes, now that they are on HTMLElement. |
| |
| * html/HTMLElement.idl: |
| - Resync HTMLElement.idl with the specification: https://html.spec.whatwg.org/#htmlelement |
| No behavior change besides what's indicated in the Changelog above. Things that do not match |
| the spec have been annotated with FIXME comments. |
| - Add offset* attributes that used to be on Element. |
| |
| 2017-05-08 Youenn Fablet <youenn@apple.com> |
| |
| Add support for reading and writing settings from UIProcess audio capture |
| https://bugs.webkit.org/show_bug.cgi?id=171633 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by manual testing and existing test sets. |
| |
| Moving success/failure callbacks for applyConstraints. |
| Making main RealtimeMediaSource::applyConstraints virtual so that WebProcess source proxies can implement it by |
| doing an IPC call directly. Doing so for UIProcess CoreAudioCaptureSource. |
| |
| Adding support for volume to CoreAudioCaptureSource by applying gain post-capturing. |
| Adding support for toggling echo cancellation in CoreAudioCaptureSource. |
| Adding support to change echo cancellation and sample rate by scheduling a reconfiguration of the audio unit. |
| To do so, we stop producing data, delete the audio unit and restart producing data. |
| Removing CoreAudioCaptureSource::supportedConstraints as it is redundant with |
| RealtimeMediaSourceSettings::supportedConstraints. |
| |
| Setting sample rate only to the following values: 8000, 16000, 32000, 44100, 48000. |
| |
| * Modules/mediastream/MediaStreamTrack.cpp: |
| (WebCore::MediaStreamTrack::applyConstraints): |
| * platform/mediastream/MediaStreamTrackPrivate.cpp: |
| (WebCore::MediaStreamTrackPrivate::applyConstraints): |
| * platform/mediastream/MediaStreamTrackPrivate.h: |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::applyConstraints): |
| * platform/mediastream/RealtimeMediaSource.h: |
| * platform/mediastream/RealtimeMediaSourceSettings.h: |
| (WebCore::RealtimeMediaSourceSettings::supportedConstraints): |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::~CoreAudioCaptureSource): |
| (WebCore::CoreAudioCaptureSource::processMicrophoneSamples): |
| (WebCore::CoreAudioCaptureSource::cleanupAudioUnit): |
| (WebCore::CoreAudioCaptureSource::createAudioUnit): |
| (WebCore::CoreAudioCaptureSource::configureAudioUnit): |
| (WebCore::CoreAudioCaptureSource::startProducingData): |
| (WebCore::CoreAudioCaptureSource::capabilities): |
| (WebCore::CoreAudioCaptureSource::settings): |
| (WebCore::CoreAudioCaptureSource::applySampleRate): |
| (WebCore::CoreAudioCaptureSource::applyEchoCancellation): |
| (WebCore::CoreAudioCaptureSource::scheduleReconfiguration): |
| (WebCore::CoreAudioCaptureSource::cleanupAudioUnits): Deleted. |
| (WebCore::CoreAudioCaptureSource::setupAudioUnits): Deleted. |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| |
| 2017-05-08 Chris Dumez <cdumez@apple.com> |
| |
| Drop non-standard document.implementation.createCSSStyleSheet() API |
| https://bugs.webkit.org/show_bug.cgi?id=171825 |
| |
| Reviewed by Simon Fraser. |
| |
| Drop non-standard document.implementation.createCSSStyleSheet() API. |
| |
| This was never-implemented by Firefox and they actually rejected implementing it: |
| - Drop non-standard document.implementation.createCSSStyleSheet() API |
| |
| Blink dropped this API back in 2014 after getting UseCounter data showing this was not used: |
| - https://bugs.chromium.org/p/chromium/issues/detail?id=363561 |
| - https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/uDjkuGA9gQs/zytnzJ6WryYJ |
| |
| The API is not useful in its current state because even though |
| document.implementation.createCSSStyleSheet() allows you to create a stylesheet, there is |
| currently no way to associate it with the document. |
| |
| Test: fast/css/DOMImplementation.createCSSStyleSheet-obsolete.html |
| |
| * dom/DOMImplementation.idl: |
| |
| 2017-05-08 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| AX: don't expose empty roledescription |
| https://bugs.webkit.org/show_bug.cgi?id=163647 |
| |
| Reviewed by Chris Fleizach. |
| |
| If the value of aria-roledescription is empty or contains only whitespace |
| characters, ignore the value. Also strip out leading or trailing whitespace |
| characters in the value. |
| |
| No new tests: We already had coverage for an empty aria-roledescription value. |
| That test was updated to reflect the new behavior. New test cases were added |
| to cover a value that contains only whitespace characters, and a value with |
| leading and trailing whitespace characters. |
| |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::roleDescription): |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: |
| (-[WebAccessibilityObjectWrapper roleDescription]): |
| |
| 2017-05-08 Chris Dumez <cdumez@apple.com> |
| |
| Drop non-standard Element.scrollByLines() / scrollByPages() |
| https://bugs.webkit.org/show_bug.cgi?id=171820 |
| |
| Reviewed by Simon Fraser. |
| |
| Drop non-standard Element.scrollByLines() / scrollByPages(). |
| |
| Those were added a very long time ago (https://trac.webkit.org/changeset/7901/webkit) |
| for Safari RSS but does not seem to be used anymore. |
| |
| Blink has already dropped it without issue back in 2014: |
| - https://bugs.chromium.org/p/chromium/issues/detail?id=398356 |
| |
| Their UseCounter data showed no usage: |
| - https://www.chromestatus.com/metrics/feature/timeline/popularity/390 |
| |
| Test: fast/css/element-scrollByLines-scrollByPages-obsolete.html |
| |
| * dom/Element.idl: |
| |
| 2017-05-08 Youenn Fablet <youenn@apple.com> |
| |
| CoreAudioSharedUnit should own its configuration parameters |
| https://bugs.webkit.org/show_bug.cgi?id=171812 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by manual tests. |
| |
| Add sampleRate, volume and echoCancellation parameters to the shared audio unit. |
| Set default values when creating the shared audio unit and use those for the creation of new sources. |
| Add support for volume. |
| Add support for disabling echo cancellation. |
| Check valid sample rates when trying to apply a sample rate. |
| |
| * platform/mediastream/RealtimeMediaSource.h: |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioSharedUnit::volume): |
| (WebCore::CoreAudioSharedUnit::sampleRate): |
| (WebCore::CoreAudioSharedUnit::enableEchoCancellation): |
| (WebCore::CoreAudioSharedUnit::setVolume): |
| (WebCore::CoreAudioSharedUnit::setSampleRate): |
| (WebCore::CoreAudioSharedUnit::setEnableEchoCancellation): |
| (WebCore::CoreAudioSharedUnit::CoreAudioSharedUnit): |
| (WebCore::CoreAudioSharedUnit::setupAudioUnits): |
| (WebCore::CoreAudioSharedUnit::configureMicrophoneProc): |
| (WebCore::CoreAudioSharedUnit::configureSpeakerProc): |
| (WebCore::CoreAudioSharedUnit::processMicrophoneSamples): |
| (WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource): |
| (WebCore::CoreAudioCaptureSource::applySampleRate): |
| (WebCore::CoreAudioCaptureSource::applyEchoCancellation): |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| |
| 2017-05-08 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| AX: Setting aria-orientation="horizontal" on a listbox is being overridden on the Mac |
| https://bugs.webkit.org/show_bug.cgi?id=171821 |
| |
| Reviewed by Chris Fleizach. |
| |
| The Mac's AccessibilityObject wrapper was unconditionally returning vertical |
| as the orientation of listbox. Removing this override causes the author-specified |
| value to be exposed, with the default/implicit orientation continuing to be vertical. |
| |
| No new tests. We already have coverage for the default/implicit orientation on a |
| listbox. A new test case was added to aria-orientation.html so that we would have |
| coverage for aria-orientation="horizontal" on a listbox. |
| |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: |
| (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): |
| |
| 2017-05-08 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| [CG] To decode an image frame asynchronously, pass the native size of the image to CGImageSourceCreateThumbnailAtIndex() if it's smaller than the sizeForDrawing |
| https://bugs.webkit.org/show_bug.cgi?id=170864 |
| |
| Reviewed by Simon Fraser. |
| |
| Tests: Existing tests were modified to test this patch. |
| |
| The maxPixelSize was omitted when calling CGImageSourceCreateThumbnailAtIndex() |
| for the nativeSize image or when areaOf(nativeSize) < areaOf(sizeForDrawing). |
| The assumption was if we don't pass maxPixelSize, CG will create an image with the |
| nativeSize regardless how big this size is. It turns out this is wrong. CG has an |
| optimization to return a scaled down image if areaOf(nativeSize) is greater than |
| some maximum value. |
| |
| This is not what we want for asynchronously image decoding. We want the decoded |
| frame to have the size we ask for, not some scaled down frame. The fix is to pass |
| always maxPixelSize to CGImageSourceCreateThumbnailAtIndex(). maxPixelSize will be |
| equal to maxDimension(sizeForDrawing) if sizeForDrawing is valid it is less than |
| maxDimension(nativeSize). Otherwise it will be equal to maxDimension(nativeSize). |
| |
| * platform/graphics/DecodingOptions.h: |
| * platform/graphics/cg/ImageDecoderCG.cpp: |
| (WebCore::appendImageSourceOption): |
| (WebCore::appendImageSourceOptions): |
| (WebCore::imageSourceAsyncOptions): |
| (WebCore::ImageDecoder::createFrameImageAtIndex): |
| |
| 2017-05-08 Beth Dakin <bdakin@apple.com> |
| |
| WebKit should default to using sRGB with NSColor conversion instead of device |
| color space |
| https://bugs.webkit.org/show_bug.cgi?id=171745 |
| -and corresponding- |
| rdar://problem/28314183 |
| |
| Reviewed by Tim Horton. |
| |
| * platform/graphics/mac/ColorMac.mm: |
| (WebCore::makeRGBAFromNSColor): |
| (WebCore::nsColor): |
| |
| 2017-05-08 Alex Christensen <achristensen@webkit.org> |
| |
| Reduce PassRefPtr use |
| https://bugs.webkit.org/show_bug.cgi?id=171809 |
| |
| Reviewed by Chris Dumez. |
| |
| * platform/graphics/ca/PlatformCALayer.cpp: |
| (WebCore::PlatformCALayer::createCompatibleLayerOrTakeFromPool): |
| * platform/graphics/ca/PlatformCALayer.h: |
| * platform/graphics/ca/TileCoverageMap.cpp: |
| (WebCore::TileCoverageMap::TileCoverageMap): |
| * platform/graphics/ca/TileGrid.cpp: |
| (WebCore::TileGrid::TileGrid): |
| * platform/graphics/ca/cocoa/PlatformCALayerCocoa.h: |
| * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: |
| (PlatformCALayerCocoa::create): |
| (PlatformCALayerCocoa::clone): |
| (PlatformCALayerCocoa::animationForKey): |
| (PlatformCALayerCocoa::createCompatibleLayer): |
| |
| 2017-05-08 Jer Noble <jer.noble@apple.com> |
| |
| [Mac] Audio capture fails when shouldCaptureAudioInUIProcess is set. |
| https://bugs.webkit.org/show_bug.cgi?id=171710 |
| |
| Reviewed by Eric Carlson. |
| |
| Both the shouldCaptureAudioInUIProcess setting and useAVFoundationAudioCapture setting were trying to set |
| the audio factory for RealtimeMediaSourceCenter, and were stomping on each others' changes. Change the way |
| the useAVFoundationAudioCapture works so that it only affects the defaultAudioFactory, allowing that default |
| to be overridden by the shuoldCaptureAudioInUIProcess setting when it calls setAudioFactory(). |
| |
| * page/Settings.cpp: |
| (WebCore::Settings::setUseAVFoundationAudioCapture): |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::RealtimeMediaSourceCenter::audioFactory): |
| (WebCore::RealtimeMediaSourceCenter::videoFactory): |
| (WebCore::RealtimeMediaSourceCenter::audioCaptureDeviceManager): |
| (WebCore::RealtimeMediaSourceCenter::videoCaptureDeviceManager): |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| (WebCore::RealtimeMediaSourceCenter::audioFactory): Deleted. |
| (WebCore::RealtimeMediaSourceCenter::videoFactory): Deleted. |
| (WebCore::RealtimeMediaSourceCenter::audioCaptureDeviceManager): Deleted. |
| (WebCore::RealtimeMediaSourceCenter::videoCaptureDeviceManager): Deleted. |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| (WebCore::RealtimeMediaSourceCenterMac::setUseAVFoundationAudioCapture): |
| (WebCore::RealtimeMediaSourceCenterMac::singleton): |
| (WebCore::RealtimeMediaSourceCenter::platformCenter): |
| (WebCore::RealtimeMediaSourceCenterMac::defaultAudioFactory): |
| (WebCore::RealtimeMediaSourceCenterMac::defaultAudioCaptureDeviceManager): |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.h: |
| |
| 2017-05-04 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Search events should not fire synchronously for search type input elements with incremental attribute set |
| https://bugs.webkit.org/show_bug.cgi?id=171376 |
| <rdar://problem/31863296> |
| |
| Reviewed by Chris Dumez. |
| |
| For some reasons, we fire search events immediately for search type input elements with incremental |
| attribute set only when the length of the input equals to zero. This behaviour should be prevented |
| as event listeners in the middle might perform unexpectedly. |
| |
| Test: fast/forms/search/search-incremental-crash.html |
| |
| * html/SearchInputType.cpp: |
| (WebCore::SearchInputType::startSearchEventTimer): |
| |
| 2017-05-08 Zalan Bujtas <zalan@apple.com> |
| |
| Text overlaps on http://www.duden.de/rechtschreibung/Acre |
| https://bugs.webkit.org/show_bug.cgi?id=171796 |
| <rdar://problem/31036028> |
| |
| Reviewed by Simon Fraser. |
| |
| Simple line layout pre-measures space using the primary font, |
| even if the space glyph requires a fallback font (and even if the string does not have a space in it at all). |
| When this width gets cached (see WidthCache) we might end up using it later during normal line layout and |
| it could produce incorrect layout. |
| This patch removes the space width caching from Simple line layout, since Font already caches it. |
| |
| Test: fast/text/simple-line-layout-fallback-space-glyph.html |
| |
| * rendering/SimpleLineLayout.cpp: |
| (WebCore::SimpleLineLayout::createLineRuns): |
| * rendering/SimpleLineLayoutTextFragmentIterator.cpp: |
| (WebCore::SimpleLineLayout::TextFragmentIterator::Style::Style): |
| (WebCore::SimpleLineLayout::TextFragmentIterator::skipToNextPosition): |
| (WebCore::SimpleLineLayout::TextFragmentIterator::textWidth): |
| * rendering/SimpleLineLayoutTextFragmentIterator.h: |
| |
| 2017-05-08 Chris Dumez <cdumez@apple.com> |
| |
| Refactor ImageInputType::width() / height() for clarity |
| https://bugs.webkit.org/show_bug.cgi?id=171810 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Refactor ImageInputType::width() / height() for clarity. |
| |
| * html/ImageInputType.cpp: |
| (WebCore::ImageInputType::height): |
| (WebCore::ImageInputType::width): |
| |
| 2017-05-08 Zalan Bujtas <zalan@apple.com> |
| |
| Bail out of simple line layout when hyphen needs a fallback font. |
| https://bugs.webkit.org/show_bug.cgi?id=171811 |
| |
| Reviewed by Antti Koivisto. |
| |
| With hyphen: auto is set, we don't know if the hypen string is going to be used, until |
| after we started laying out the content and figured that the text overflows the line. |
| However it's too late to bail out of simple line layout at this point, so let's just |
| pre-check if the hyphen string needs a fallback font. |
| |
| * rendering/SimpleLineLayout.cpp: |
| (WebCore::SimpleLineLayout::canUseForStyle): |
| |
| 2017-05-08 Youenn Fablet <youenn@apple.com> |
| |
| TURNS gathering is not working properly |
| https://bugs.webkit.org/show_bug.cgi?id=171747 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by manual tests. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::configurationFromMediaEndpointConfiguration): Reveting TURNS ice server skipping. |
| |
| 2017-05-08 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, rolling out r216419. |
| |
| Broke 70 layout tests on GTK bot |
| |
| Reverted changeset: |
| |
| "Ensure clean tree before AX cache update." |
| https://bugs.webkit.org/show_bug.cgi?id=171546 |
| http://trac.webkit.org/changeset/216419 |
| |
| 2017-05-08 Youenn Fablet <youenn@apple.com> |
| |
| CoreAudioCaptureSource should not modify its shared unit if already started/stopped |
| https://bugs.webkit.org/show_bug.cgi?id=171804 |
| |
| Reviewed by Jer Noble. |
| |
| Manual testing only since CoreAudioSharedUnit is not mocked. |
| |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::startProducingData): Exit early if source is already started. |
| (WebCore::CoreAudioCaptureSource::stopProducingData): Exit early if source is already stopped. |
| |
| 2017-05-08 Antti Koivisto <antti@apple.com> |
| |
| ComposedTreeIterator does not traverse all slotted children if the traversal root is a slot element. |
| https://bugs.webkit.org/show_bug.cgi?id=171375 |
| <rdar://problem/31863184> |
| |
| Reviewed by Zalan Bujtas. |
| |
| We were hitting an assert when using details element with a flow thread. The root cause for this turned |
| out to be that we only traversed the first slotted child if the traversal root was a slot element. |
| |
| Test: fast/html/details-flow-thread.html |
| |
| * dom/ComposedTreeIterator.cpp: |
| (WebCore::ComposedTreeIterator::traverseNextLeavingContext): |
| |
| Try to traverse to the next slotted child before testing if we at the end of the current context. |
| |
| 2017-05-08 Mark Lam <mark.lam@apple.com> |
| |
| Introduce ExceptionScope::assertNoException() and releaseAssertNoException(). |
| https://bugs.webkit.org/show_bug.cgi?id=171776 |
| |
| Reviewed by Keith Miller. |
| |
| No new tests because there's no behavior change in functionality. We're only |
| refactoring the code to use the new assertion utility function. |
| |
| * Modules/plugins/QuickTimePluginReplacement.mm: |
| (WebCore::QuickTimePluginReplacement::installReplacement): |
| * bindings/js/JSCryptoKeySerializationJWK.cpp: |
| (WebCore::getJSArrayFromJSON): |
| (WebCore::getStringFromJSON): |
| (WebCore::getBooleanFromJSON): |
| * bindings/js/JSCustomElementRegistryCustom.cpp: |
| (WebCore::JSCustomElementRegistry::whenDefined): |
| * bindings/js/JSDOMExceptionHandling.cpp: |
| (WebCore::propagateExceptionSlowPath): |
| (WebCore::throwNotSupportedError): |
| (WebCore::throwInvalidStateError): |
| (WebCore::throwSecurityError): |
| (WebCore::throwDOMSyntaxError): |
| (WebCore::throwDataCloneError): |
| (WebCore::throwIndexSizeError): |
| (WebCore::throwTypeMismatchError): |
| * bindings/js/JSDOMGlobalObject.cpp: |
| (WebCore::makeThisTypeErrorForBuiltins): |
| (WebCore::makeGetterTypeErrorForBuiltins): |
| * bindings/js/JSDOMGlobalObjectTask.cpp: |
| * bindings/js/JSDOMPromise.h: |
| (WebCore::callPromiseFunction): |
| * bindings/js/JSDOMWindowBase.cpp: |
| (WebCore::JSDOMWindowMicrotaskCallback::call): |
| * bindings/js/JSMainThreadExecState.h: |
| (WebCore::JSMainThreadExecState::~JSMainThreadExecState): |
| * bindings/js/ReadableStreamDefaultController.cpp: |
| (WebCore::ReadableStreamDefaultController::isControlledReadableStreamLocked): |
| * bindings/js/ReadableStreamDefaultController.h: |
| (WebCore::ReadableStreamDefaultController::enqueue): |
| * bindings/js/SerializedScriptValue.cpp: |
| (WebCore::CloneDeserializer::readTerminal): |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateSerializerFunction): |
| * bindings/scripts/test/JS/JSTestNode.cpp: |
| (WebCore::JSTestNode::serialize): |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| (WebCore::JSTestObj::serialize): |
| * bindings/scripts/test/JS/JSTestSerialization.cpp: |
| (WebCore::JSTestSerialization::serialize): |
| * bindings/scripts/test/JS/JSTestSerializationInherit.cpp: |
| (WebCore::JSTestSerializationInherit::serialize): |
| * bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp: |
| (WebCore::JSTestSerializationInheritFinal::serialize): |
| * contentextensions/ContentExtensionParser.cpp: |
| (WebCore::ContentExtensions::getTypeFlags): |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::didAddUserAgentShadowRoot): |
| (WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange): |
| (WebCore::HTMLMediaElement::getCurrentMediaControlsStatus): |
| * html/HTMLPlugInImageElement.cpp: |
| (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): |
| |
| 2017-05-08 Chris Dumez <cdumez@apple.com> |
| |
| Move 'style' from Element to HTMLElement / SVGElement and make it settable |
| https://bugs.webkit.org/show_bug.cgi?id=171795 |
| |
| Reviewed by Alex Christensen. |
| |
| Move 'style' from Element to HTMLElement / SVGElement and make it settable |
| as per: |
| - https://drafts.csswg.org/cssom/#the-elementcssinlinestyle-interface |
| |
| Both Firefox and Chrome already match the specification (both for the |
| property location and having it settable). |
| |
| Test: fast/css/Element-style.html |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * WebCore.xcodeproj/project.pbxproj: |
| * css/ElementCSSInlineStyle.idl: Added. |
| * css/PropertySetCSSStyleDeclaration.h: |
| * css/StyleProperties.cpp: |
| (WebCore::MutableStyleProperties::ensureCSSStyleDeclaration): |
| (WebCore::MutableStyleProperties::ensureInlineCSSStyleDeclaration): |
| * css/StyleProperties.h: |
| * dom/Attr.cpp: |
| (WebCore::Attr::style): |
| * dom/Document.cpp: |
| (WebCore::Document::createCSSStyleDeclaration): |
| * dom/Element.cpp: |
| * dom/Element.h: |
| * dom/Element.idl: |
| * dom/StyledElement.cpp: |
| (WebCore::StyledElement::cssomStyle): |
| * dom/StyledElement.h: |
| * editing/Editor.cpp: |
| (WebCore::Editor::applyEditingStyleToElement): |
| * editing/ReplaceSelectionCommand.cpp: |
| (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline): |
| * html/HTMLElement.idl: |
| |
| * html/ImageInputType.cpp: |
| (WebCore::ImageInputType::height): |
| (WebCore::ImageInputType::width): |
| Fix bug that was found by fast/forms/input-width-height-attributes-without-renderer-loaded-image.html. |
| That test relied on setting HTMLElement.style which did not work until now. Call updateLayout() |
| *before* doing the renderer check. |
| |
| * inspector/InspectorCSSAgent.cpp: |
| (WebCore::InspectorCSSAgent::getMatchedStylesForNode): |
| (WebCore::InspectorCSSAgent::getInlineStylesForNode): |
| (WebCore::InspectorCSSAgent::getComputedStyleForNode): |
| (WebCore::InspectorCSSAgent::asInspectorStyleSheet): |
| (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle): |
| * inspector/InspectorCSSAgent.h: |
| * inspector/InspectorStyleSheet.cpp: |
| (WebCore::InspectorStyle::create): |
| (WebCore::InspectorStyle::InspectorStyle): |
| (WebCore::InspectorStyle::extractSourceData): |
| (WebCore::InspectorStyle::setText): |
| (WebCore::InspectorStyleSheet::inspectorStyleForId): |
| (WebCore::InspectorStyleSheetForInlineStyle::create): |
| (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle): |
| (WebCore::InspectorStyleSheetForInlineStyle::didModifyElementAttribute): |
| (WebCore::InspectorStyleSheetForInlineStyle::setStyleText): |
| (WebCore::InspectorStyleSheetForInlineStyle::ensureParsedDataReady): |
| (WebCore::InspectorStyleSheetForInlineStyle::inlineStyle): |
| * inspector/InspectorStyleSheet.h: |
| * svg/SVGElement.idl: |
| |
| 2017-05-08 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| AX: Propagate aria-readonly to grid descendants |
| https://bugs.webkit.org/show_bug.cgi?id=171189 |
| |
| Reviewed by Chris Fleizach. |
| |
| Propagate aria-readonly to grid descendants if the property is not |
| explicitly set on the descendant. |
| |
| Test: accessibility/gtk/aria-readonly-propagated.html |
| Additional test cases also added to accessibility/aria-readonly.html |
| |
| * accessibility/AccessibilityARIAGridCell.cpp: |
| (WebCore::AccessibilityARIAGridCell::ariaReadOnlyValue): |
| * accessibility/AccessibilityARIAGridCell.h: |
| * accessibility/AccessibilityObject.h: |
| |
| 2017-05-06 Zalan Bujtas <zalan@apple.com> |
| |
| Ensure clean tree before AX cache update. |
| https://bugs.webkit.org/show_bug.cgi?id=171546 |
| <rdar://problem/31934942> |
| |
| While updating an accessibility object state, we might |
| perform unintentional style updates. This style update could |
| end up destroying renderes that are still referenced by function calls |
| on the callstack. |
| To avoid that, AXObjectCache should operate on a clean tree only. |
| |
| Reviewed by Chris Fleizach. |
| |
| Test: accessibility/crash-when-render-tree-is-not-clean.html |
| |
| * accessibility/AXObjectCache.cpp: |
| (WebCore::AXObjectCache::checkedStateChanged): |
| (WebCore::AXObjectCache::selectedChildrenChanged): |
| (WebCore::AXObjectCache::handleAriaExpandedChange): |
| (WebCore::AXObjectCache::handleActiveDescendantChanged): |
| (WebCore::AXObjectCache::handleAriaRoleChanged): |
| (WebCore::AXObjectCache::handleAttributeChanged): |
| (WebCore::AXObjectCache::handleAriaModalChange): |
| (WebCore::AXObjectCache::labelChanged): |
| * accessibility/AXObjectCache.h: |
| (WebCore::AXObjectCache::checkedStateChanged): |
| (WebCore::AXObjectCache::handleActiveDescendantChanged): |
| (WebCore::AXObjectCache::handleAriaExpandedChange): |
| (WebCore::AXObjectCache::handleAriaRoleChanged): |
| (WebCore::AXObjectCache::handleAriaModalChange): |
| (WebCore::AXObjectCache::handleAttributeChanged): |
| (WebCore::AXObjectCache::selectedChildrenChanged): |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::handleAriaExpandedChanged): |
| * dom/Element.cpp: |
| (WebCore::Element::attributeChanged): |
| * html/HTMLInputElement.cpp: |
| (WebCore::HTMLInputElement::setChecked): |
| |
| 2017-05-08 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Unprefix unicode-bidi CSS values |
| https://bugs.webkit.org/show_bug.cgi?id=171761 |
| |
| Reviewed by Simon Fraser. |
| |
| Create new values which parse to the same internal state as the |
| prefixed values. |
| |
| Tests: fast/text/bidi-unprefix.html |
| imported/w3c/i18n/bidi/bidi-embed-001.html |
| imported/w3c/i18n/bidi/bidi-embed-002.html |
| imported/w3c/i18n/bidi/bidi-embed-003.html |
| imported/w3c/i18n/bidi/bidi-embed-004.html |
| imported/w3c/i18n/bidi/bidi-embed-005.html |
| imported/w3c/i18n/bidi/bidi-embed-006.html |
| imported/w3c/i18n/bidi/bidi-embed-007.html |
| imported/w3c/i18n/bidi/bidi-embed-008.html |
| imported/w3c/i18n/bidi/bidi-embed-009.html |
| imported/w3c/i18n/bidi/bidi-embed-010.html |
| imported/w3c/i18n/bidi/bidi-embed-011.html |
| imported/w3c/i18n/bidi/bidi-isolate-001.html |
| imported/w3c/i18n/bidi/bidi-isolate-002.html |
| imported/w3c/i18n/bidi/bidi-isolate-003.html |
| imported/w3c/i18n/bidi/bidi-isolate-004.html |
| imported/w3c/i18n/bidi/bidi-isolate-005.html |
| imported/w3c/i18n/bidi/bidi-isolate-006.html |
| imported/w3c/i18n/bidi/bidi-isolate-007.html |
| imported/w3c/i18n/bidi/bidi-isolate-008.html |
| imported/w3c/i18n/bidi/bidi-isolate-009.html |
| imported/w3c/i18n/bidi/bidi-isolate-010.html |
| imported/w3c/i18n/bidi/bidi-isolate-011.html |
| imported/w3c/i18n/bidi/bidi-isolate-override-001.html |
| imported/w3c/i18n/bidi/bidi-isolate-override-002.html |
| imported/w3c/i18n/bidi/bidi-isolate-override-003.html |
| imported/w3c/i18n/bidi/bidi-isolate-override-004.html |
| imported/w3c/i18n/bidi/bidi-isolate-override-005.html |
| imported/w3c/i18n/bidi/bidi-isolate-override-006.html |
| imported/w3c/i18n/bidi/bidi-isolate-override-007.html |
| imported/w3c/i18n/bidi/bidi-isolate-override-008.html |
| imported/w3c/i18n/bidi/bidi-isolate-override-009.html |
| imported/w3c/i18n/bidi/bidi-isolate-override-010.html |
| imported/w3c/i18n/bidi/bidi-isolate-override-011.html |
| imported/w3c/i18n/bidi/bidi-isolate-override-012.html |
| imported/w3c/i18n/bidi/bidi-normal-001.html |
| imported/w3c/i18n/bidi/bidi-normal-002.html |
| imported/w3c/i18n/bidi/bidi-normal-003.html |
| imported/w3c/i18n/bidi/bidi-normal-004.html |
| imported/w3c/i18n/bidi/bidi-normal-005.html |
| imported/w3c/i18n/bidi/bidi-normal-006.html |
| imported/w3c/i18n/bidi/bidi-normal-007.html |
| imported/w3c/i18n/bidi/bidi-normal-008.html |
| imported/w3c/i18n/bidi/bidi-normal-009.html |
| imported/w3c/i18n/bidi/bidi-normal-010.html |
| imported/w3c/i18n/bidi/bidi-normal-011.html |
| imported/w3c/i18n/bidi/bidi-override-001.html |
| imported/w3c/i18n/bidi/bidi-override-002.html |
| imported/w3c/i18n/bidi/bidi-override-003.html |
| imported/w3c/i18n/bidi/bidi-override-004.html |
| imported/w3c/i18n/bidi/bidi-override-005.html |
| imported/w3c/i18n/bidi/bidi-override-006.html |
| imported/w3c/i18n/bidi/bidi-override-007.html |
| imported/w3c/i18n/bidi/bidi-override-008.html |
| imported/w3c/i18n/bidi/bidi-override-009.html |
| imported/w3c/i18n/bidi/bidi-override-010.html |
| imported/w3c/i18n/bidi/bidi-override-011.html |
| imported/w3c/i18n/bidi/bidi-override-012.html |
| imported/w3c/i18n/bidi/bidi-plaintext-001.html |
| imported/w3c/i18n/bidi/bidi-plaintext-003.html |
| imported/w3c/i18n/bidi/bidi-plaintext-005.html |
| imported/w3c/i18n/bidi/bidi-plaintext-006.html |
| imported/w3c/i18n/bidi/bidi-plaintext-007.html |
| imported/w3c/i18n/bidi/bidi-plaintext-008.html |
| imported/w3c/i18n/bidi/bidi-plaintext-009.html |
| imported/w3c/i18n/bidi/bidi-plaintext-010.html |
| imported/w3c/i18n/bidi/bidi-plaintext-011.html |
| imported/w3c/i18n/bidi/bidi-table-001.html |
| imported/w3c/i18n/bidi/bidi-unset-001.html |
| imported/w3c/i18n/bidi/bidi-unset-002.html |
| imported/w3c/i18n/bidi/bidi-unset-003.html |
| imported/w3c/i18n/bidi/bidi-unset-004.html |
| imported/w3c/i18n/bidi/bidi-unset-005.html |
| imported/w3c/i18n/bidi/bidi-unset-006.html |
| imported/w3c/i18n/bidi/bidi-unset-007.html |
| imported/w3c/i18n/bidi/bidi-unset-008.html |
| imported/w3c/i18n/bidi/bidi-unset-009.html |
| imported/w3c/i18n/bidi/bidi-unset-010.html |
| imported/w3c/i18n/bidi/block-embed-001.html |
| imported/w3c/i18n/bidi/block-embed-002.html |
| imported/w3c/i18n/bidi/block-embed-003.html |
| imported/w3c/i18n/bidi/block-override-001.html |
| imported/w3c/i18n/bidi/block-override-002.html |
| imported/w3c/i18n/bidi/block-override-003.html |
| imported/w3c/i18n/bidi/block-override-004.html |
| imported/w3c/i18n/bidi/block-override-isolate-001.html |
| imported/w3c/i18n/bidi/block-override-isolate-002.html |
| imported/w3c/i18n/bidi/block-override-isolate-003.html |
| imported/w3c/i18n/bidi/block-override-isolate-004.html |
| imported/w3c/i18n/bidi/block-plaintext-001.html |
| imported/w3c/i18n/bidi/block-plaintext-002.html |
| imported/w3c/i18n/bidi/block-plaintext-003.html |
| imported/w3c/i18n/bidi/block-plaintext-004.html |
| imported/w3c/i18n/bidi/block-plaintext-005.html |
| imported/w3c/i18n/bidi/block-plaintext-006.html |
| |
| * css/CSSPrimitiveValueMappings.h: |
| (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): |
| (WebCore::CSSPrimitiveValue::operator EUnicodeBidi): |
| * css/CSSProperties.json: |
| * css/CSSValueKeywords.in: |
| * css/html.css: |
| (bdi, output): |
| * css/parser/CSSParserFastPaths.cpp: |
| (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue): |
| * html/HTMLElement.cpp: |
| (WebCore::unicodeBidiAttributeForDirAuto): |
| * html/track/TextTrackCueGeneric.cpp: |
| (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties): |
| * html/track/VTTCue.cpp: |
| (WebCore::VTTCueBox::applyCSSProperties): |
| |
| 2017-05-07 Ben Kelly <ben@wanderview.com> |
| |
| Set the Response.blob() type based on the content-type header value. |
| https://bugs.webkit.org/show_bug.cgi?id=170849 |
| |
| Reviewed by Youenn Fablet. |
| |
| There are two problems to fix here: |
| |
| 1. Currently the FetchResponse class only called updateContentType() |
| when first created even though all the headers were not available. This |
| patch calls updateContentType() again after the headers are populated. |
| |
| 2. The fetch design requires propagating the normalized blob |
| type to FetchBodyConsumer as well. Currently this is only done if |
| Response.blob() is called after the body is completely loaded. If |
| we hit the consumeOnceLoadingFinished() path, then the type is not |
| passed. This is similar to what was happening in bug 171489 with |
| ReadableStream bodies. This patch sets the type on the |
| FetchBodyConsumer in consumeOnceLoadingFinished() as well. |
| |
| Theses changes allow WebKit to pass the "Consume response's body: from |
| fetch to blob" case in the WPT response-consume.html test. |
| |
| Test: http://w3c-test.org/fetch/api/response/response-consume.html |
| |
| * Modules/fetch/FetchResponse.cpp: |
| (WebCore::FetchResponse::BodyLoader::didReceiveResponse): Modified to |
| call FetchBodyOwner::updateContentType() after filling m_headers. |
| (WebCore::FetchBody::consumeOnceLoadingFinished): Call |
| FetchBodyConsumer::setContentType() when being consumed as |
| a blob. |
| * Modules/fetch/FetchBody.h: Modify consumeOnceLoadingFinished() |
| to take the content type string. |
| * Modules/fetch/FetchBodyOwner.cpp: |
| (WebCore::FetchBodyOwner::consumeOnceLoadingFinished): Pass |
| the content type string down to FetchBody so it can be |
| propagated to the FetchBodyConsumer. |
| |
| 2017-05-07 Simon Fraser <simon.fraser@apple.com> |
| |
| [iOS] REGRESSION (r209409): getBoundingClientRect is wrong for fixed-position elements in resize/orientationchange |
| https://bugs.webkit.org/show_bug.cgi?id=171140 |
| |
| Reviewed by Sam Weinig. |
| |
| WebPage::dynamicViewportSizeUpdate() is called during rotation, and does a layout which needs to have |
| an up-to-date layout viewport, since the layout viewport state is detectable in orientationchange and |
| resize events via fetching the client rect of fixed elements. Normally we send in the layout viewport |
| from the UI process, but in this case we need to compute one in the web process. So factor code |
| into FrameView to do the computation, called from both places. |
| |
| Tests: fast/events/ios/rotation/layout-viewport-during-rotation.html |
| fast/events/ios/rotation/layout-viewport-during-safari-type-rotation.html |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::computeUpdatedLayoutViewportRect): |
| * page/FrameView.h: |
| |
| 2017-05-07 Chris Dumez <cdumez@apple.com> |
| |
| Drop remaining uses of PassRefPtr in editing code |
| https://bugs.webkit.org/show_bug.cgi?id=171787 |
| |
| Reviewed by Darin Adler. |
| |
| Drop remaining uses of PassRefPtr in editing code. |
| |
| * editing/AlternativeTextController.cpp: |
| (WebCore::AlternativeTextController::timerFired): |
| * editing/ApplyStyleCommand.cpp: |
| (WebCore::toIdentifier): |
| * editing/CompositeEditCommand.cpp: |
| (WebCore::CompositeEditCommand::didApplyCommand): |
| (WebCore::CompositeEditCommand::moveParagraphs): |
| * editing/CompositeEditCommand.h: |
| * editing/Editor.cpp: |
| (WebCore::Editor::shouldInsertFragment): |
| (WebCore::Editor::replaceSelectionWithFragment): |
| (WebCore::Editor::appliedEditing): |
| (WebCore::Editor::performCutOrCopy): |
| (WebCore::Editor::willWriteSelectionToPasteboard): |
| (WebCore::Editor::advanceToNextMisspelling): |
| (WebCore::Editor::isSelectionUngrammatical): |
| (WebCore::Editor::guessesForMisspelledOrUngrammatical): |
| (WebCore::Editor::markMisspellingsOrBadGrammar): |
| (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): |
| (WebCore::correctSpellcheckingPreservingTextCheckingParagraph): |
| (WebCore::Editor::markAndReplaceFor): |
| (WebCore::Editor::changeBackToReplacedString): |
| * editing/Editor.h: |
| * editing/EditorCommand.cpp: |
| (WebCore::executeInsertFragment): |
| (WebCore::Editor::command): |
| (WebCore::Editor::Command::Command): |
| * editing/FormatBlockCommand.cpp: |
| (WebCore::FormatBlockCommand::formatRange): |
| * editing/IndentOutdentCommand.cpp: |
| (WebCore::IndentOutdentCommand::indentIntoBlockquote): |
| (WebCore::IndentOutdentCommand::outdentParagraph): |
| * editing/InsertListCommand.cpp: |
| (WebCore::InsertListCommand::fixOrphanedListChild): |
| (WebCore::InsertListCommand::mergeWithNeighboringLists): |
| (WebCore::InsertListCommand::doApplyForSingleParagraph): |
| (WebCore::InsertListCommand::unlistifyParagraph): |
| (WebCore::InsertListCommand::listifyParagraph): |
| * editing/InsertListCommand.h: |
| * editing/InsertParagraphSeparatorCommand.cpp: |
| (WebCore::InsertParagraphSeparatorCommand::doApply): |
| * editing/InsertTextCommand.cpp: |
| (WebCore::InsertTextCommand::InsertTextCommand): |
| * editing/InsertTextCommand.h: |
| (WebCore::InsertTextCommand::createWithMarkerSupplier): |
| * editing/MoveSelectionCommand.cpp: |
| (WebCore::MoveSelectionCommand::MoveSelectionCommand): |
| * editing/MoveSelectionCommand.h: |
| (WebCore::MoveSelectionCommand::create): |
| * editing/ReplaceSelectionCommand.cpp: |
| (WebCore::ReplacementFragment::removeNodePreservingChildren): |
| (WebCore::ReplacementFragment::removeNode): |
| (WebCore::ReplacementFragment::insertNodeBefore): |
| (WebCore::ReplacementFragment::restoreAndRemoveTestRenderingNodesToFragment): |
| (WebCore::ReplacementFragment::removeUnrenderedNodes): |
| (WebCore::ReplacementFragment::removeInterchangeNodes): |
| (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder): |
| (WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor): |
| (WebCore::removeHeadContents): |
| (WebCore::ReplaceSelectionCommand::doApply): |
| (WebCore::ReplaceSelectionCommand::insertAsListItems): |
| * editing/ReplaceSelectionCommand.h: |
| * editing/SpellChecker.cpp: |
| (WebCore::SpellCheckRequest::SpellCheckRequest): |
| (WebCore::SpellCheckRequest::create): |
| (WebCore::SpellChecker::canCheckAsynchronously): |
| (WebCore::SpellChecker::isCheckable): |
| (WebCore::SpellChecker::requestCheckingFor): |
| (WebCore::SpellChecker::invokeRequest): |
| (WebCore::SpellChecker::enqueueRequest): |
| (WebCore::SpellChecker::didCheck): |
| * editing/SpellChecker.h: |
| (WebCore::SpellCheckRequest::checkingRange): |
| (WebCore::SpellCheckRequest::paragraphRange): |
| * editing/TextCheckingHelper.cpp: |
| (WebCore::expandToParagraphBoundary): |
| (WebCore::TextCheckingParagraph::TextCheckingParagraph): |
| (WebCore::TextCheckingParagraph::expandRangeToNextEnd): |
| (WebCore::TextCheckingParagraph::rangeLength): |
| (WebCore::TextCheckingParagraph::paragraphRange): |
| (WebCore::TextCheckingParagraph::subrange): |
| (WebCore::TextCheckingParagraph::offsetTo): |
| (WebCore::TextCheckingParagraph::offsetAsRange): |
| (WebCore::TextCheckingParagraph::text): |
| (WebCore::TextCheckingParagraph::checkingStart): |
| (WebCore::TextCheckingParagraph::checkingEnd): |
| (WebCore::TextCheckingParagraph::checkingLength): |
| (WebCore::TextCheckingHelper::TextCheckingHelper): |
| (WebCore::TextCheckingHelper::findFirstMisspelling): |
| (WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar): |
| (WebCore::TextCheckingHelper::findFirstGrammarDetail): |
| (WebCore::TextCheckingHelper::findFirstBadGrammar): |
| (WebCore::TextCheckingHelper::isUngrammatical): |
| (WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange): |
| (WebCore::TextCheckingHelper::unifiedTextCheckerEnabled): |
| * editing/TextCheckingHelper.h: |
| * editing/TypingCommand.cpp: |
| (WebCore::TypingCommand::typingAddedToOpenCommand): |
| * editing/cocoa/EditorCocoa.mm: |
| (WebCore::Editor::replaceSelectionWithAttributedString): |
| * editing/gtk/EditorGtk.cpp: |
| (WebCore::Editor::pasteWithPasteboard): |
| * editing/ios/EditorIOS.mm: |
| (WebCore::Editor::pasteWithPasteboard): |
| * editing/mac/EditorMac.mm: |
| (WebCore::Editor::pasteWithPasteboard): |
| (WebCore::Editor::replaceNodeFromPasteboard): |
| * editing/win/EditorWin.cpp: |
| (WebCore::Editor::pasteWithPasteboard): |
| (WebCore::createFragmentFromPlatformData): |
| * page/DragController.cpp: |
| (WebCore::DragController::concludeEditDrag): |
| (WebCore::DragController::startDrag): |
| |
| 2017-05-07 Youenn Fablet <youenn@apple.com> |
| |
| [MediaStream] r216197 caused some webrtc tests to fail |
| https://bugs.webkit.org/show_bug.cgi?id=171728 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by existing tests. |
| |
| Rename MediaStream::endStream to MediaStream::endCaptureTracks and only stopping capture tracks. |
| Using it when Document is asked to stop media capture. |
| |
| Adding the ability to have only one active capture source at a time in a WebProcess. |
| This is done by keeping in its related factory the active capture source. |
| When a new source is created and started, it replaces the active capture source which becomes muted. |
| Using that mechanism for iOS. |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::endCaptureTracks): |
| (WebCore::MediaStream::endStream): Deleted. |
| * Modules/mediastream/MediaStream.h: |
| * Modules/mediastream/MediaStreamTrack.h: |
| (WebCore::MediaStreamTrack::isCaptureTrack): |
| * dom/Document.cpp: |
| (WebCore::Document::stopMediaCapture): |
| * platform/mediastream/mac/AVAudioCaptureSource.mm: |
| (WebCore::AVAudioCaptureSourceFactory::setActiveSource): |
| (WebCore::AVAudioCaptureSource::setupCaptureSession): |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSourceFactory::setActiveSource): |
| (WebCore::AVVideoCaptureSource::setupCaptureSession): |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSourceFactory::setActiveSource): |
| (WebCore::CoreAudioSharedUnit::startProducingData): |
| |
| 2017-05-07 Tim Horton <timothy_horton@apple.com> |
| |
| Clean up some WebProcessProxy, WebPage, and message handler includes |
| https://bugs.webkit.org/show_bug.cgi?id=171791 |
| |
| Reviewed by Sam Weinig. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * editing/CompositionUnderline.h: Added. |
| (WebCore::CompositionUnderline::CompositionUnderline): |
| * editing/Editor.h: |
| (WebCore::CompositionUnderline::CompositionUnderline): Deleted. |
| Move CompositionUnderline out of Editor.h, so that other files can |
| include that without Editor.h (which is quite large). Also, modernize it slightly. |
| |
| 2017-05-07 Sam Weinig <sam@webkit.org> |
| |
| Implement Subresource Integrity (SRI) |
| https://bugs.webkit.org/show_bug.cgi?id=148363 |
| <rdar://problem/18945879> |
| |
| Reviewed by Daniel Bates. |
| |
| Tests: http/tests/subresource-integrity/sri-disabled-with-setting.html |
| http/tests/subresource-integrity/sri-enabled-with-setting.html |
| http/tests/subresource-integrity/sri-script-cors.html |
| http/tests/subresource-integrity/sri-style-cors.html |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| Add new files. |
| |
| * dom/LoadableClassicScript.cpp: |
| (WebCore::LoadableClassicScript::create): |
| (WebCore::LoadableClassicScript::notifyFinished): |
| * dom/LoadableClassicScript.h: |
| * dom/LoadableScript.h: |
| * dom/ScriptElement.cpp: |
| (WebCore::ScriptElement::requestClassicScript): |
| Store integrity metadata in the script fetcher so it can be passed to |
| the checked when script load finishes. |
| |
| * html/HTMLAttributeNames.in: |
| Add 'integrity'. |
| |
| * html/HTMLLinkElement.cpp: |
| (WebCore::HTMLLinkElement::process): |
| When requesting a stylesheet, cache the integrity metadata so it can |
| be used when the load completes (accessing the attribute at load completion |
| time is incorrect, as a script might have changed the attributes value since |
| the request was made). |
| |
| (WebCore::HTMLLinkElement::setCSSStyleSheet): |
| Add an integrity check using the cached integrity metadata when a load |
| finishes. |
| |
| * html/HTMLLinkElement.h: |
| Add cached integrity metadata member. |
| |
| * html/HTMLLinkElement.idl: |
| * html/HTMLScriptElement.idl: |
| Add integrity property. |
| |
| * html/parser/HTMLParserIdioms.h: |
| (WebCore::isNotHTMLSpace): |
| Templatize isNotHTMLSpace so it can work for both UChar and LChar. |
| |
| * loader/ResourceCryptographicDigest.cpp: |
| (WebCore::parseCryptographicDigestImpl): |
| (WebCore::parseEncodedCryptographicDigestImpl): |
| (WebCore::parseEncodedCryptographicDigest): |
| (WebCore::decodeEncodedResourceCryptographicDigest): |
| * loader/ResourceCryptographicDigest.h: |
| Add concept of an encoded digest to more closely model the spec so that hashes |
| that match the grammar but are invalid (say, mixing base64 and base64URL) make |
| it through the algorithm longer, and don't cause us to load something that should |
| be blocked. |
| |
| * loader/SubresourceIntegrity.cpp: Added. |
| * loader/SubresourceIntegrity.h: Added. |
| Add implementation of Subresource Integrity metadata validation allowing |
| for a CachedResource and integrity metadata to be passed for validation. |
| |
| * page/Settings.in: |
| Add setting for Subresource Integrity, defaulted to enabled. |
| |
| 2017-05-07 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] Cannot sign in with new Google sign-in page |
| https://bugs.webkit.org/show_bug.cgi?id=171770 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Google's new authentication page does not work with the Firefox user |
| agent that's required to make various Google websites work. Special-case |
| accounts.google.com so that it receives our standard user agent. |
| |
| * platform/UserAgentQuirks.cpp: |
| (WebCore::isGoogle): |
| (WebCore::urlRequiresFirefoxBrowser): |
| |
| 2017-05-06 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [Cocoa] CTFontDescriptorCreateMatchingFontDescriptor() is not case insensitive |
| https://bugs.webkit.org/show_bug.cgi?id=171636 |
| <rdar://problem/30811218> |
| |
| Reviewed by Dean Jackson. |
| |
| LastResort is the only name which needs to be looked up case-sensitively. We can handle |
| this in our existing function which handles special font names (like -apple-system) to |
| make sure that we always do the right thing. |
| |
| Test: fast/text/lastResort.html |
| |
| * platform/graphics/ios/FontCacheIOS.mm: |
| (WebCore::platformFontWithFamilySpecialCase): |
| * platform/graphics/mac/FontCacheMac.mm: |
| (WebCore::platformFontWithFamilySpecialCase): |
| * platform/spi/cocoa/CoreTextSPI.h: |
| |
| 2017-05-06 Chris Dumez <cdumez@apple.com> |
| |
| Implement the concept of cookie-averse document |
| https://bugs.webkit.org/show_bug.cgi?id=171746 |
| <rdar://problem/32004466> |
| |
| Reviewed by Sam Weinig. |
| |
| Implement the concept of cookie-averse document: |
| - https://html.spec.whatwg.org/#cookie-averse-document-object |
| |
| Test: fast/cookies/cookie-averse-document.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::isCookieAverse): |
| (WebCore::Document::cookie): |
| (WebCore::Document::setCookie): |
| * dom/Document.h: |
| |
| 2017-05-06 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed build fix after r216339. |
| |
| * dom/Document.h: |
| (WebCore::Document::readyState): |
| |
| 2017-05-06 Chris Dumez <cdumez@apple.com> |
| |
| Align our IDL files with the latest DOM specification |
| https://bugs.webkit.org/show_bug.cgi?id=171777 |
| |
| Reviewed by Sam Weinig. |
| |
| Align our IDL files with the latest DOM specification: |
| - https://dom.spec.whatwg.org |
| |
| No Web-facing behavior change. Things that do not match the specification |
| have been annotated with FIXME comments. |
| |
| * dom/CharacterData.idl: |
| * dom/Comment.idl: |
| * dom/CustomEvent.idl: |
| * dom/DOMImplementation.idl: |
| * dom/Document.cpp: |
| * dom/Document.h: |
| (WebCore::Document::readyState): |
| * dom/Document.idl: |
| * dom/MutationObserver.idl: |
| * dom/NamedNodeMap.idl: |
| * dom/NodeFilter.idl: |
| * dom/NodeIterator.idl: |
| * dom/NodeList.idl: |
| * dom/NonDocumentTypeChildNode.idl: |
| * dom/ParentNode.idl: |
| * dom/ProcessingInstruction.idl: |
| * dom/Range.idl: |
| * dom/ShadowRoot.idl: |
| * dom/Text.idl: |
| * dom/TreeWalker.idl: |
| * html/DOMTokenList.idl: |
| |
| 2017-05-06 Tim Horton <timothy_horton@apple.com> |
| |
| Reduce the number of includes in WebPage.h and WebProcess.h |
| https://bugs.webkit.org/show_bug.cgi?id=171779 |
| |
| Reviewed by Sam Weinig. |
| |
| * page/TextIndicator.h: |
| |
| 2017-05-06 Alexey Proskuryakov <ap@apple.com> |
| |
| REGRESSION (r216294): The new test fails on WebKit1 |
| https://bugs.webkit.org/show_bug.cgi?id=171780 |
| |
| Rolling back https://trac.webkit.org/r216294, https://trac.webkit.org/r216296, |
| https://trac.webkit.org/216299, https://trac.webkit.org/216330 |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::paintContents): |
| * page/FrameView.h: |
| * platform/ScrollView.cpp: |
| (WebCore::ScrollView::paint): |
| * platform/ScrollView.h: |
| * platform/Scrollbar.cpp: |
| (WebCore::Scrollbar::paint): |
| * platform/Scrollbar.h: |
| * platform/Widget.h: |
| * platform/graphics/filters/FilterOperation.h: |
| (WebCore::FilterOperation::movesPixels): |
| (WebCore::FilterOperation::shouldBeRestrictedBySecurityOrigin): Deleted. |
| * platform/graphics/filters/FilterOperations.cpp: |
| (WebCore::FilterOperations::hasFilterThatShouldBeRestrictedBySecurityOrigin): Deleted. |
| * platform/graphics/filters/FilterOperations.h: |
| * platform/gtk/WidgetGtk.cpp: |
| (WebCore::Widget::paint): |
| * platform/ios/WidgetIOS.mm: |
| (WebCore::Widget::paint): |
| * platform/mac/WidgetMac.mm: |
| (WebCore::Widget::paint): |
| * platform/win/WidgetWin.cpp: |
| (WebCore::Widget::paint): |
| * rendering/FilterEffectRenderer.cpp: |
| (WebCore::FilterEffectRenderer::build): |
| * rendering/FilterEffectRenderer.h: |
| * rendering/PaintInfo.h: |
| (WebCore::PaintInfo::PaintInfo): |
| (): Deleted. |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::paint): |
| (WebCore::RenderLayer::setupFilters): |
| (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase): |
| * rendering/RenderLayer.h: |
| * rendering/RenderScrollbar.cpp: |
| (WebCore::RenderScrollbar::paint): |
| * rendering/RenderScrollbar.h: |
| * rendering/RenderWidget.cpp: |
| (WebCore::RenderWidget::paintContents): |
| |
| 2017-05-06 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r216333. |
| |
| Caused layout test failures |
| |
| Reverted changeset: |
| |
| "Implement the concept of cookie-averse document" |
| https://bugs.webkit.org/show_bug.cgi?id=171746 |
| http://trac.webkit.org/changeset/216333 |
| |
| 2017-05-06 Chris Dumez <cdumez@apple.com> |
| |
| Implement the concept of cookie-averse document |
| https://bugs.webkit.org/show_bug.cgi?id=171746 |
| <rdar://problem/32004466> |
| |
| Reviewed by Sam Weinig. |
| |
| Implement the concept of cookie-averse document: |
| - https://html.spec.whatwg.org/#cookie-averse-document-object |
| |
| Test: fast/cookies/cookie-averse-document.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::isCookieAverse): |
| (WebCore::Document::cookie): |
| (WebCore::Document::setCookie): |
| * dom/Document.h: |
| |
| 2017-05-06 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| REGERSSION(r213499): Emoji with Fitzpatrick modifiers are drawn as two separate glyphs |
| https://bugs.webkit.org/show_bug.cgi?id=171750 |
| <rdar://problem/31122612> |
| |
| Reviewed by Zalan Bujtas. |
| |
| Emoji with Fitzpatrick modifiers need to take our complex text codepath. When looking through |
| the string to determine which code path to use, we ask if a particular codepoint is an emoji |
| group candidate. r213499 expanded the set of these candidates to include Fitzpatrick modifiers, |
| which means the next "if" statement would never be hit. Instead, we should check that "if" |
| statement first (because order is not important here). The next checks do not intersect with |
| any emoji group candidates. |
| |
| Test: fast/text/fitzpatrick-combination.html |
| |
| * platform/graphics/FontCascade.cpp: |
| (WebCore::FontCascade::characterRangeCodePath): |
| |
| 2017-05-06 Youenn Fablet <youenn@apple.com> |
| |
| RealtimeMediaSourceCenter callbacks should be passed as r-values |
| https://bugs.webkit.org/show_bug.cgi?id=171407 |
| |
| Reviewed by Eric Carlson. |
| |
| No change of behavior, this is mostly style here. |
| |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| (WebCore::RealtimeMediaSourceCenterMac::validateRequestConstraints): |
| (WebCore::RealtimeMediaSourceCenterMac::createMediaStream): |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.h: |
| * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp: |
| (WebCore::RealtimeMediaSourceCenterOwr::validateRequestConstraints): |
| * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h: |
| * platform/mock/MockRealtimeMediaSourceCenter.cpp: |
| (WebCore::MockRealtimeMediaSourceCenter::validateRequestConstraints): |
| (WebCore::MockRealtimeMediaSourceCenter::createMediaStream): |
| * platform/mock/MockRealtimeMediaSourceCenter.h: |
| |
| 2017-05-05 Zalan Bujtas <zalan@apple.com> |
| |
| Renderers being destroyed should not be added to AX's deferred list. |
| https://bugs.webkit.org/show_bug.cgi?id=171768 |
| <rdar://problem/31955660> |
| |
| Reviewed by Simon Fraser. |
| |
| In certain cases, when custom scrollbars are present, while destroying the scrollbars' block parent, we |
| - first remove the block from the AX's deferred list (AXObjectCache::remove) |
| - destroy the render layer that owns the custom scrollbars (RenderLayer::destroyLayer) |
| - detach the scrollbars from the parent (block) (RenderObject::removeFromParent) |
| - clean up the block's lines (RenderBlock::deleteLines) |
| - push the block back to the AX's deferred list (AXObjectCache::recomputeDeferredIsIgnored) |
| At this point no one will remove the current block from AX's deferred list. |
| |
| Test: accessibility/crash-when-renderers-are-added-back-to-deferred-list.html |
| |
| * accessibility/AXObjectCache.cpp: |
| (WebCore::AXObjectCache::recomputeDeferredIsIgnored): |
| (WebCore::AXObjectCache::deferTextChanged): |
| |
| 2017-05-05 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Crash in ImageFrameCache::decodedSizeChanged() after image load cancellation |
| https://bugs.webkit.org/show_bug.cgi?id=171736 |
| |
| Reviewed by Tim Horton. |
| |
| Tests: Covered by run-webkit-tests fast/images/image-formats-support.html |
| --guard-malloc. |
| |
| Because an image format is not supported, the ImageObserver of the Image |
| is deleted then the Image itself is deleted. In BitmapImage destructor, |
| we make a call which ends up accessing the deleted ImageObserver. |
| |
| To fix this, we need to change the BitImage destructor to avoid calling |
| ImageFrameCache::decodedSizeChanged() since it is not really needed. |
| |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::~BitmapImage): |
| |
| 2017-05-05 Timothy Horton <timothy_horton@apple.com> |
| |
| [Mac] Adjust cursor position for dragged link (and stop it from moving based on how fast you are dragging) |
| https://bugs.webkit.org/show_bug.cgi?id=171764 |
| <rdar://problem/32005865> |
| |
| Reviewed by Simon Fraser. |
| |
| * page/DragController.cpp: |
| (WebCore::DragController::startDrag): |
| Compute dragImageAnchorPoint only if it is needed. |
| Don't compute a random unused imageRect. |
| Factor link drag image offset computation out into DragImage functions |
| for platforms to override. |
| |
| Pass dragOrigin (the mouseDown point), not mouseDraggedPoint, to |
| doSystemDrag, just like all the other drag types. This plus the |
| WebKit2 change makes the link stable vs. the cursor, instead of |
| positioned based on how fast you move after the mouse down. |
| |
| * page/DragController.h: |
| * page/gtk/DragControllerGtk.cpp: |
| * page/mac/DragControllerMac.mm: |
| * page/win/DragControllerWin.cpp: |
| Move LinkDragBorderInset into DragImage, and share between the non-Mac platforms. |
| |
| * platform/DragImage.cpp: |
| (WebCore::dragOffsetForLinkDragImage): |
| (WebCore::anchorPointForLinkDragImage): |
| * platform/DragImage.h: |
| As previously mentioned, move the computation of drag image offset here. |
| |
| * platform/mac/DragImageMac.mm: |
| (WebCore::dragOffsetForLinkDragImage): |
| (WebCore::anchorPointForLinkDragImage): |
| Put the new drag image to the bottom right of the cursor. |
| |
| 2017-05-05 Dean Jackson <dino@apple.com> |
| |
| ...and now the GTK and Windows builds. |
| |
| * platform/gtk/WidgetGtk.cpp: |
| (WebCore::Widget::paint): |
| * platform/win/WidgetWin.cpp: |
| (WebCore::Widget::paint): |
| |
| 2017-05-05 Brady Eidson <beidson@apple.com> |
| |
| API test WebKit2.WebsiteDataStoreCustomPaths is failing on ios-simulator. |
| <rdar://problem/31977294> and https://bugs.webkit.org/show_bug.cgi?id=171513 |
| |
| Reviewed by Andy Estes. |
| |
| Covered by API test. |
| |
| * platform/spi/cf/CFNetworkSPI.h: |
| |
| 2017-05-05 Dean Jackson <dino@apple.com> |
| |
| Try to fix iOS build. |
| |
| * platform/ios/WidgetIOS.mm: |
| (WebCore::Widget::paint): |
| |
| 2017-05-05 Dean Jackson <dino@apple.com> |
| |
| Restrict SVG filters to accessible security origins |
| https://bugs.webkit.org/show_bug.cgi?id=118689 |
| <rdar://problem/27362159> |
| |
| Reviewed by Brent Fulgham. |
| |
| Certain SVG filters should only be allowed to operate |
| on content that is has SecurityOrigin access to. Implement |
| this by including a flag in PaintInfo and LayerPaintingInfo, |
| and have RenderWidget make sure the documents have acceptable |
| SecurityOrigins as it goes to paint. |
| |
| This could be used as the first step in a "safe painting" |
| strategy, allowing some content to be rendered into a |
| canvas or via the element() CSS function... but it is only |
| a small first step. |
| |
| Test: http/tests/css/filters-on-iframes.html |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::paintContents): |
| * page/FrameView.h: |
| * platform/ScrollView.cpp: |
| (WebCore::ScrollView::paint): |
| * platform/ScrollView.h: |
| * platform/Scrollbar.cpp: |
| (WebCore::Scrollbar::paint): |
| * platform/Scrollbar.h: |
| * platform/Widget.h: |
| * platform/graphics/filters/FilterOperation.h: |
| (WebCore::FilterOperation::shouldBeRestrictedBySecurityOrigin): |
| * platform/graphics/filters/FilterOperations.cpp: |
| (WebCore::FilterOperations::hasFilterThatShouldBeRestrictedBySecurityOrigin): |
| * platform/graphics/filters/FilterOperations.h: |
| * platform/mac/WidgetMac.mm: |
| (WebCore::Widget::paint): |
| * rendering/FilterEffectRenderer.cpp: |
| (WebCore::FilterEffectRenderer::build): |
| * rendering/FilterEffectRenderer.h: |
| * rendering/PaintInfo.h: |
| (WebCore::PaintInfo::PaintInfo): |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::paint): |
| (WebCore::RenderLayer::setupFilters): |
| (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase): |
| * rendering/RenderLayer.h: |
| * rendering/RenderScrollbar.cpp: |
| (WebCore::RenderScrollbar::paint): |
| * rendering/RenderScrollbar.h: |
| * rendering/RenderWidget.cpp: |
| (WebCore::RenderWidget::paintContents): |
| |
| 2017-05-05 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r216273. |
| |
| This change caused an assertion failure on WK1. |
| |
| Reverted changeset: |
| |
| "Crash in ImageFrameCache::decodedSizeChanged() after image |
| load cancellation" |
| https://bugs.webkit.org/show_bug.cgi?id=171736 |
| http://trac.webkit.org/changeset/216273 |
| |
| 2017-05-05 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] Converting from WebCore::Cookie to NSHTTPCookie always marks cookies as session cookies |
| https://bugs.webkit.org/show_bug.cgi?id=171748 |
| <rdar://problem/32027327> |
| |
| Reviewed by Michael Catanzaro. |
| |
| The function that we use to convert from WebCore::Cookie to NSHTTPCookie was |
| also misusing the NSHTTPCookieDiscard property. If any value is provided for |
| this key, even @NO, CFNetwork interprets that to mean that the cookie has the |
| "session" flag. |
| |
| This is known to affect cookies set via WebCookieManager, WKHTTPCookieStore, |
| and WebAutomationSession. |
| |
| This is covered by existing test WebKit2.WKHTTPCookieStore. |
| |
| * platform/network/cocoa/CookieCocoa.mm: |
| (WebCore::Cookie::operator NSHTTPCookie *): |
| Don't include the property if the cookie is not a session cookie. |
| |
| 2017-05-05 Youenn Fablet <youenn@apple.com> |
| |
| TURNS gathering is not working properly |
| https://bugs.webkit.org/show_bug.cgi?id=171747 |
| |
| Reviewed by Eric Carlson. |
| |
| Did manual testing on real TURNS servers. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::configurationFromMediaEndpointConfiguration): Disabling TURNS servers gathering. |
| |
| 2017-05-05 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r216275. |
| |
| This change broke internal builds. |
| |
| Reverted changeset: |
| |
| "[Cocoa] CTFontDescriptorCreateMatchingFontDescriptor() is not |
| case insensitive" |
| https://bugs.webkit.org/show_bug.cgi?id=171636 |
| http://trac.webkit.org/changeset/216275 |
| |
| 2017-05-05 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [Cocoa] CTFontDescriptorCreateMatchingFontDescriptor() is not case insensitive |
| https://bugs.webkit.org/show_bug.cgi?id=171636 |
| <rdar://problem/30811218> |
| |
| Reviewed by Dean Jackson. |
| |
| LastResort is the only name which needs to be looked up case-sensitively. We can handle |
| this in our existing function which handles special font names (like -apple-system) to |
| make sure that we always do the right thing. |
| |
| Test: fast/text/lastResort.html |
| |
| * platform/spi/cocoa/CoreTextSPI.h: |
| * platform/graphics/ios/FontCacheIOS.mm: |
| (WebCore::platformFontWithFamilySpecialCase): |
| * platform/graphics/mac/FontCacheMac.mm: |
| (WebCore::platformFontWithFamilySpecialCase): |
| |
| 2017-05-05 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Crash in ImageFrameCache::decodedSizeChanged() after image load cancellation |
| https://bugs.webkit.org/show_bug.cgi?id=171736 |
| |
| Reviewed by Tim Horton. |
| |
| Tests: Covered by run-webkit-tests fast/images/image-formats-support.html |
| --guard-malloc. |
| |
| Because an image format is not supported, the ImageObserver of the Image |
| is deleted then the Image itself is deleted. In BitmapImage destructor, |
| we make a call which ends up accessing the deleted ImageObserver. |
| |
| To fix this, we need to setImageObsever of the Image to-be-deleted to |
| nullptr. So the Image can avoid accessing its ImageObserver, while it is |
| being deleted. Also we can change the BitImage destructor to avoid calling |
| ImageFrameCache::decodedSizeChanged() since it is not really needed. |
| |
| * loader/cache/CachedImage.cpp: |
| (WebCore::CachedImage::clearImage): |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::~BitmapImage): |
| |
| 2017-05-05 Brian Burg <bburg@apple.com> |
| |
| CrashTracer: [USER] com.apple.WebKit.WebContent.Development at com.apple.WebCore: WebCore::commonVMSlow + 57 |
| https://bugs.webkit.org/show_bug.cgi?id=171669 |
| <rdar://problem/31967684> |
| |
| Reviewed by Mark Lam. |
| |
| * bindings/js/CommonVM.h: |
| (WebCore::commonVMOrNull): |
| Add an inline accessor function to expose the global variable. |
| |
| 2017-05-05 Filip Pizlo <fpizlo@apple.com> |
| |
| GCController.cpp's collect() should be Async |
| https://bugs.webkit.org/show_bug.cgi?id=171708 |
| |
| Reviewed by Saam Barati. |
| |
| No new tests because no change in behavior. |
| |
| This is one step towards not requesting sync GCs in WebCore. I'm landing this incrementally to |
| make bisecting super easy. |
| |
| * bindings/js/GCController.cpp: |
| (WebCore::collect): |
| |
| 2017-05-05 Chris Dumez <cdumez@apple.com> |
| |
| Attr Nodes should not have children |
| https://bugs.webkit.org/show_bug.cgi?id=171688 |
| <rdar://problem/31998412> |
| |
| Reviewed by Andreas Kling. |
| |
| Attr Nodes should not have children as per the latest DOM specification: |
| - https://dom.spec.whatwg.org/#interface-attr |
| - https://dom.spec.whatwg.org/#dom-attr-value |
| - https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity (Step 1) |
| |
| Firefox and Chrome both have been matching the DOM specification for a while so I think |
| we should do the same. This aligns us with other browsers, simplifies the code, is |
| more efficient and the code being removed has been prone to security bugs. |
| |
| Test: fast/dom/Attr/cannot-have-children.html |
| |
| * dom/Attr.cpp: |
| (WebCore::Attr::Attr): |
| (WebCore::Attr::create): |
| (WebCore::Attr::setValue): |
| (WebCore::Attr::cloneNodeInternal): |
| * dom/Attr.h: |
| - Have Attr subclass Node instead of ContainerNode as it can no longer have children. |
| - Drop logic to dealing with children / creating a Text child. |
| |
| * dom/CharacterData.cpp: |
| (WebCore::CharacterData::notifyParentAfterChange): |
| Drop useless check found by the compiler. parentNode() can no longer be an Attr node. |
| |
| * dom/Node.cpp: |
| (WebCore::appendTextContent): |
| appendTextContent() is called by Node.TextContent(). For Attr Nodes, we should no longer traverse |
| its subtree to gather Text Nodes. Instead, we now return Attr.value, as per the specification: |
| - https://dom.spec.whatwg.org/#dom-node-textcontent |
| |
| * dom/Range.cpp: |
| (WebCore::lengthOfContentsInNode): |
| As per https://dom.spec.whatwg.org/#concept-node-length, we should return the number of children |
| for Attr Nodes, which will always be 0. |
| |
| * xml/XPathUtil.cpp: |
| (WebCore::XPath::isValidContextNode): |
| Always return true for TEXT_NODE as the !(node->parentNode() && node->parentNode()->isAttributeNode()) |
| check will also with true now. This is because a parentNode() cannot be an Attribute Node. |
| |
| 2017-05-05 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] Converting from WebCore::Cookie to NSHTTPCookie always marks cookies as secure |
| https://bugs.webkit.org/show_bug.cgi?id=171700 |
| <rdar://problem/32017975> |
| |
| Reviewed by Brady Eidson. |
| |
| The function that we use to convert from WebCore::Cookie to NSHTTPCookie was |
| misusing the NSHTTPCookieSecure property. If any value is provided for this key, |
| even @NO, CFNetwork interprets that to mean that the cookie has the "secure" flag. |
| Thus, in some cases we would store an "insecure" cookie on a site that uses the |
| http:// protocol, and be unable to later retrieve the cookie. This is known to |
| affect cookies set via WebCookieManager, WKHTTPCookieStore, and WebAutomationSession. |
| |
| This is covered by existing test WebKit2.WKHTTPCookieStore. |
| The test had a bug that masked this problem. |
| |
| * platform/network/cocoa/CookieCocoa.mm: |
| (WebCore::Cookie::operator NSHTTPCookie *): |
| Don't include the property if the cookie is not secure. |
| |
| 2017-05-05 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add SPI to WebItemProviderPasteboard to synchronously load data with a given timeout |
| https://bugs.webkit.org/show_bug.cgi?id=171725 |
| <rdar://problem/32014052> |
| |
| Reviewed by Beth Dakin. |
| |
| Adds a synchronousTimeout: argument to doAfterLoadingProvidedContentIntoFileURLs:. If a positive timeout |
| interval is specified by the client, then we will block the main thread for at most that amount of time after |
| beginning to load from the item providers. |
| |
| To do this, we introduce another `dispatch_group_t` in parallel to the `fileLoadingGroup` that is entered and |
| left in the same places. However, instead of attaching a handler block, we simply perform a synchronous wait for |
| either the time limit to be reached, or the item providers to finish loading. |
| |
| No new tests -- no change in behavior yet. |
| |
| * platform/ios/WebItemProviderPasteboard.h: |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:]): |
| (-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:synchronousTimeout:]): |
| |
| 2017-05-05 Chris Dumez <cdumez@apple.com> |
| |
| Clean up Attr.idl |
| https://bugs.webkit.org/show_bug.cgi?id=171691 |
| |
| Reviewed by Andreas Kling. |
| |
| Clean up Attr.idl to match the spec: |
| - https://dom.spec.whatwg.org/#interface-attr |
| |
| No Web-facing behavior change except for Attr properties being enumerated |
| in a slightly different order. |
| |
| * dom/Attr.idl: |
| |
| 2017-05-05 Antti Koivisto <antti@apple.com> |
| |
| ASSERTION FAILED: !frame().document()->inRenderTreeUpdate() in WebCore::FrameView::layout(bool) |
| https://bugs.webkit.org/show_bug.cgi?id=171717 |
| |
| Reviewed by Brent Fulgham. |
| |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::checkCompleted): |
| |
| Don't allow frame load to complete in the middle of a render tree update. Instead delay the check. |
| |
| 2017-05-05 Chris Dumez <cdumez@apple.com> |
| |
| Refactor / Clean up Element.idl |
| https://bugs.webkit.org/show_bug.cgi?id=171734 |
| |
| Reviewed by Sam Weinig. |
| |
| Refactor / Clean up Element.idl to match the latest specification: |
| - https://dom.spec.whatwg.org/#interface-element |
| |
| There is no Web-facing behavior change in this patch besides the Element properties |
| being enumerated in a slightly different order. Things that do not match the |
| specification have merely been annotated with FIXME comments for now. This makes |
| it much more obvious what's standard, what's not and what needs fixing. |
| |
| * dom/Element.idl: |
| |
| 2017-05-05 Tim Horton <timothy_horton@apple.com> |
| |
| Link drag images for apple.com front page links have a lot of spurious whitespace |
| https://bugs.webkit.org/show_bug.cgi?id=171719 |
| <rdar://problem/32010854> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * page/DragController.cpp: |
| (WebCore::DragController::startDrag): |
| Use the white-space-simplified string that we put on the pasteboard |
| for the drag image, too! |
| |
| 2017-05-04 Mark Lam <mark.lam@apple.com> |
| |
| DRT's setAudioResultCallback() and IDBRequest::setResult() need to acquire the JSLock. |
| https://bugs.webkit.org/show_bug.cgi?id=171716 |
| <rdar://problem/30878027> |
| |
| Reviewed by Saam Barati. |
| |
| No new tests. This issue was caught by existing tests. |
| |
| IDBRequest::setResult() needs to acquire the JSLock before calling toJS() (which |
| does JS conversion and therefore, potentially JS allocations). |
| |
| * Modules/indexeddb/IDBRequest.cpp: |
| (WebCore::IDBRequest::setResult): |
| (WebCore::IDBRequest::setResultToStructuredClone): |
| |
| 2017-05-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GStreamer] Do not report more errors after the first one |
| https://bugs.webkit.org/show_bug.cgi?id=171722 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| We can receive several error messages for the same error from different elements. That's not expected by the |
| media source selection algorithm implementation. I don't know if didn't happen with previous versions of GST, |
| but since the upgrade to 1.10.4 several tests are failing because of this. |
| |
| Fixes: media/video-error-does-not-exist.html |
| media/video-load-networkState.html |
| media/video-source-error.html |
| media/video-source-none-supported.html |
| media/video-source-moved.html |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Return early also when an error already occured. |
| |
| 2017-05-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GStreamer] Fix handling of gst errors in MediaPlayerPrivateGStreamer::handleMessage |
| https://bugs.webkit.org/show_bug.cgi?id=171721 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| We are checking the GError only comparing the code, and ignoring the domain in some cases. Use g_error_matches() |
| in those cases instead of only checking the code. |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::MediaPlayerPrivateGStreamer::handleMessage): |
| |
| 2017-05-04 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r216206. |
| https://bugs.webkit.org/show_bug.cgi?id=171714 |
| |
| Multiple LayoutTests crashing in Document::page() (Requested |
| by ap on #webkit). |
| |
| Reverted changeset: |
| |
| "Remove support for legacy Notifications" |
| https://bugs.webkit.org/show_bug.cgi?id=171487 |
| http://trac.webkit.org/changeset/216206 |
| |
| 2017-05-04 Chris Dumez <cdumez@apple.com> |
| |
| Drop remaining uses of PassRefPtr from CompositeEditCommand |
| https://bugs.webkit.org/show_bug.cgi?id=171645 |
| |
| Reviewed by Darin Adler. |
| |
| Drop remaining uses of PassRefPtr from CompositeEditCommand. |
| |
| * editing/ApplyBlockElementCommand.cpp: |
| (WebCore::ApplyBlockElementCommand::rangeForParagraphSplittingTextNodesIfNeeded): |
| (WebCore::ApplyBlockElementCommand::endOfNextParagraphSplittingTextNodesIfNeeded): |
| * editing/ApplyStyleCommand.cpp: |
| (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): |
| (WebCore::ApplyStyleCommand::cleanupUnstyledAppleStyleSpans): |
| (WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi): |
| (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock): |
| (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange): |
| (WebCore::ApplyStyleCommand::removeInlineStyleFromElement): |
| (WebCore::ApplyStyleCommand::replaceWithSpanOrRemoveIfWithoutAttributes): |
| (WebCore::ApplyStyleCommand::removeImplicitlyStyledElement): |
| (WebCore::ApplyStyleCommand::removeCSSStyle): |
| (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): |
| (WebCore::ApplyStyleCommand::splitTextAtStart): |
| (WebCore::ApplyStyleCommand::splitTextAtEnd): |
| (WebCore::ApplyStyleCommand::splitTextElementAtStart): |
| (WebCore::ApplyStyleCommand::splitTextElementAtEnd): |
| (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): |
| (WebCore::ApplyStyleCommand::addBlockStyle): |
| (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded): |
| (WebCore::ApplyStyleCommand::applyInlineStyleChange): |
| (WebCore::ApplyStyleCommand::joinChildTextNodes): |
| * editing/BreakBlockquoteCommand.cpp: |
| (WebCore::BreakBlockquoteCommand::doApply): |
| * editing/CompositeEditCommand.cpp: |
| (WebCore::applyCommand): |
| (WebCore::CompositeEditCommand::insertNodeAt): |
| (WebCore::CompositeEditCommand::removeChildrenInRange): |
| (WebCore::CompositeEditCommand::removeNode): |
| (WebCore::CompositeEditCommand::removeNodePreservingChildren): |
| (WebCore::CompositeEditCommand::removeNodeAndPruneAncestors): |
| (WebCore::CompositeEditCommand::moveRemainingSiblingsToNewParent): |
| (WebCore::CompositeEditCommand::replaceElementWithSpanPreservingChildrenAndAttributes): |
| (WebCore::CompositeEditCommand::prune): |
| (WebCore::CompositeEditCommand::splitTextNode): |
| (WebCore::CompositeEditCommand::splitElement): |
| (WebCore::CompositeEditCommand::mergeIdenticalElements): |
| (WebCore::CompositeEditCommand::splitTextNodeContainingElement): |
| (WebCore::CompositeEditCommand::positionOutsideTabSpan): |
| (WebCore::CompositeEditCommand::removeNodeAttribute): |
| (WebCore::CompositeEditCommand::setNodeAttribute): |
| (WebCore::CompositeEditCommand::deleteInsignificantText): |
| (WebCore::CompositeEditCommand::removePlaceholderAt): |
| (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): |
| (WebCore::CompositeEditCommand::pushAnchorElementDown): |
| (WebCore::CompositeEditCommand::cleanupAfterDeletion): |
| (WebCore::CompositeEditCommand::moveParagraphs): |
| * editing/CompositeEditCommand.h: |
| * editing/DeleteSelectionCommand.cpp: |
| (WebCore::DeleteSelectionCommand::handleSpecialCaseBRDelete): |
| (WebCore::DeleteSelectionCommand::removeNodeUpdatingStates): |
| (WebCore::DeleteSelectionCommand::removeNode): |
| (WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss): |
| (WebCore::DeleteSelectionCommand::handleGeneralDelete): |
| (WebCore::DeleteSelectionCommand::mergeParagraphs): |
| (WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows): |
| (WebCore::DeleteSelectionCommand::removeRedundantBlocks): |
| * editing/DeleteSelectionCommand.h: |
| * editing/Editor.cpp: |
| (WebCore::ClearTextCommand::CreateAndApply): |
| (WebCore::Editor::replaceSelectionWithFragment): |
| (WebCore::Editor::handleAcceptedCandidate): |
| * editing/EditorCommand.cpp: |
| (WebCore::executeFormatBlock): |
| * editing/IndentOutdentCommand.cpp: |
| (WebCore::IndentOutdentCommand::outdentParagraph): |
| * editing/InsertLineBreakCommand.cpp: |
| (WebCore::InsertLineBreakCommand::doApply): |
| * editing/InsertListCommand.cpp: |
| (WebCore::InsertListCommand::fixOrphanedListChild): |
| (WebCore::InsertListCommand::doApplyForSingleParagraph): |
| (WebCore::InsertListCommand::unlistifyParagraph): |
| * editing/InsertParagraphSeparatorCommand.cpp: |
| (WebCore::InsertParagraphSeparatorCommand::doApply): |
| * editing/InsertTextCommand.cpp: |
| (WebCore::InsertTextCommand::insertTab): |
| * editing/ModifySelectionListLevel.cpp: |
| (WebCore::ModifySelectionListLevelCommand::insertSiblingNodeRangeBefore): |
| (WebCore::ModifySelectionListLevelCommand::insertSiblingNodeRangeAfter): |
| (WebCore::ModifySelectionListLevelCommand::appendSiblingNodeRange): |
| (WebCore::DecreaseSelectionListLevelCommand::doApply): |
| * editing/RemoveNodePreservingChildrenCommand.cpp: |
| (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand): |
| (WebCore::RemoveNodePreservingChildrenCommand::doApply): |
| * editing/RemoveNodePreservingChildrenCommand.h: |
| (WebCore::RemoveNodePreservingChildrenCommand::create): |
| * editing/ReplaceNodeWithSpanCommand.cpp: |
| (WebCore::ReplaceNodeWithSpanCommand::ReplaceNodeWithSpanCommand): |
| (WebCore::ReplaceNodeWithSpanCommand::doApply): |
| (WebCore::ReplaceNodeWithSpanCommand::doUnapply): |
| (WebCore::ReplaceNodeWithSpanCommand::getNodesInCommand): |
| * editing/ReplaceNodeWithSpanCommand.h: |
| (WebCore::ReplaceNodeWithSpanCommand::create): |
| * editing/ReplaceSelectionCommand.cpp: |
| (WebCore::ReplacementFragment::removeNodePreservingChildren): |
| (WebCore::ReplacementFragment::removeInterchangeNodes): |
| (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline): |
| (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder): |
| (WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor): |
| (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): |
| (WebCore::handleStyleSpansBeforeInsertion): |
| (WebCore::ReplaceSelectionCommand::handleStyleSpans): |
| (WebCore::ReplaceSelectionCommand::doApply): |
| (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition): |
| (WebCore::ReplaceSelectionCommand::insertAsListItems): |
| (WebCore::ReplaceSelectionCommand::performTrivialReplace): |
| * editing/SetNodeAttributeCommand.cpp: |
| (WebCore::SetNodeAttributeCommand::SetNodeAttributeCommand): |
| (WebCore::SetNodeAttributeCommand::getNodesInCommand): |
| * editing/SetNodeAttributeCommand.h: |
| (WebCore::SetNodeAttributeCommand::create): |
| * editing/SimplifyMarkupCommand.cpp: |
| (WebCore::SimplifyMarkupCommand::doApply): |
| (WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove): |
| * editing/SimplifyMarkupCommand.h: |
| * editing/SplitElementCommand.cpp: |
| (WebCore::SplitElementCommand::SplitElementCommand): |
| (WebCore::SplitElementCommand::executeApply): |
| (WebCore::SplitElementCommand::getNodesInCommand): |
| * editing/SplitElementCommand.h: |
| (WebCore::SplitElementCommand::create): |
| * editing/SplitTextNodeCommand.cpp: |
| (WebCore::SplitTextNodeCommand::SplitTextNodeCommand): |
| (WebCore::SplitTextNodeCommand::doApply): |
| (WebCore::SplitTextNodeCommand::doUnapply): |
| (WebCore::SplitTextNodeCommand::doReapply): |
| (WebCore::SplitTextNodeCommand::insertText1AndTrimText2): |
| * editing/SplitTextNodeCommand.h: |
| (WebCore::SplitTextNodeCommand::create): |
| * editing/SplitTextNodeContainingElementCommand.cpp: |
| (WebCore::SplitTextNodeContainingElementCommand::SplitTextNodeContainingElementCommand): |
| (WebCore::SplitTextNodeContainingElementCommand::doApply): |
| * editing/SplitTextNodeContainingElementCommand.h: |
| (WebCore::SplitTextNodeContainingElementCommand::create): |
| * editing/TextInsertionBaseCommand.cpp: |
| (WebCore::TextInsertionBaseCommand::applyTextInsertionCommand): |
| * editing/TypingCommand.cpp: |
| (WebCore::TypingCommand::makeEditableRootEmpty): |
| * page/ContextMenuController.cpp: |
| (WebCore::ContextMenuController::contextMenuItemSelected): |
| |
| 2017-05-04 Daniel Bates <dabates@apple.com> |
| |
| Fix misspelled word "interrupt" as pointed out by Darin Adler |
| in <https://bugs.webkit.org/show_bug.cgi?id=171577>. |
| |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::transitionToCommitted): |
| |
| 2017-05-04 Jeremy Jones <jeremyj@apple.com> |
| |
| UIColor +whiteColor and +clearColor are ambiguous and need to be casted when soft linked. |
| https://bugs.webkit.org/show_bug.cgi?id=171704 |
| |
| Reviewed by Jer Noble. |
| |
| No new tests because no behavior change. |
| |
| Fix build by casting result of +clearColor to UIColor. |
| |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: |
| (clearUIColor): |
| (WebVideoFullscreenInterfaceAVKit::setupFullscreen): |
| (WebVideoFullscreenInterfaceAVKit::exitFullscreen): |
| (WebVideoFullscreenInterfaceAVKit::didStopPictureInPicture): |
| |
| 2017-05-04 Chris Dumez <cdumez@apple.com> |
| |
| Element.slot should be marked as [Unscopable] |
| https://bugs.webkit.org/show_bug.cgi?id=171683 |
| |
| Reviewed by Darin Adler. |
| |
| Element.slot should be marked as [Unscopable]: |
| - https://dom.spec.whatwg.org/#interface-element |
| - https://heycam.github.io/webidl/#Unscopable |
| |
| Test: fast/shadow-dom/Element-slot-unscopable.html |
| |
| * dom/Element.idl: |
| |
| 2017-05-04 Don Olmstead <don.olmstead@am.sony.com> |
| |
| [Win] Remove redundant macros that are set in the CMake config |
| https://bugs.webkit.org/show_bug.cgi?id=171571 |
| |
| Reviewed by Brent Fulgham. |
| |
| No new tests. No change in behavior. |
| |
| * WebCorePrefix.h: |
| * config.h: |
| * platform/win/COMPtr.h: |
| * platform/win/WindowsTouch.h: |
| * testing/js/WebCoreTestSupportPrefix.h: |
| |
| 2017-05-04 Tim Horton <timothy_horton@apple.com> |
| |
| [Mac] Modernize image for dragged link |
| https://bugs.webkit.org/show_bug.cgi?id=171701 |
| <rdar://problem/31978818> |
| |
| Reviewed by Simon Fraser. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * page/mac/DragControllerMac.mm: |
| * platform/mac/DragImageMac.mm: |
| (WebCore::dragImageSize): |
| (WebCore::scaleDragImage): |
| (WebCore::dissolveDragImageToFraction): |
| (WebCore::createDragImageFromImage): |
| (WebCore::LinkImageLayout::LinkImageLayout): |
| (WebCore::LinkImageLayout::layOutText): |
| (WebCore::LinkImageLayout::addLine): |
| (WebCore::createDragImageForLink): |
| (WebCore::fontFromNSFont): Deleted. |
| (WebCore::canUseFastRenderer): Deleted. |
| (WebCore::widthWithFont): Deleted. |
| (WebCore::drawAtPoint): Deleted. |
| (WebCore::drawDoubledAtPoint): Deleted. |
| * platform/spi/cocoa/LinkPresentationSPI.h: Added. |
| Improve the design of URL drag images. |
| The margins are increased, the background is now white, the text is |
| not drawn doubled-up, the title will now wrap to two lines, and the |
| domain name will appear simplified and de-punycoded. |
| |
| Much of the implementation of text painting is borrowed from |
| <attachment> for now, but we should figure out how to generalize |
| it for UI-like parts of WebKit in the future. |
| |
| 2017-05-04 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r216223. |
| https://bugs.webkit.org/show_bug.cgi?id=171706 |
| |
| not quite ready (Requested by thorton on #webkit). |
| |
| Reverted changeset: |
| |
| "[Mac] Modernize image for dragged link" |
| https://bugs.webkit.org/show_bug.cgi?id=171701 |
| http://trac.webkit.org/changeset/216223 |
| |
| 2017-05-04 Tim Horton <timothy_horton@apple.com> |
| |
| [Mac] Modernize image for dragged link |
| https://bugs.webkit.org/show_bug.cgi?id=171701 |
| <rdar://problem/31978818> |
| |
| Reviewed by Simon Fraser. |
| |
| * page/mac/DragControllerMac.mm: |
| * platform/mac/DragImageMac.mm: |
| (WebCore::dragImageSize): |
| (WebCore::scaleDragImage): |
| (WebCore::dissolveDragImageToFraction): |
| (WebCore::createDragImageFromImage): |
| (WebCore::LinkImageLayout::LinkImageLayout): |
| (WebCore::LinkImageLayout::addLine): |
| (WebCore::createDragImageForLink): |
| (WebCore::fontFromNSFont): Deleted. |
| (WebCore::canUseFastRenderer): Deleted. |
| (WebCore::widthWithFont): Deleted. |
| (WebCore::drawAtPoint): Deleted. |
| (WebCore::drawDoubledAtPoint): Deleted. |
| Improve the design of URL drag images. |
| The margins are increased, the background is now white, the text is |
| not drawn doubled-up, the title will now wrap to two lines, and the |
| domain name will appear simplified and de-punycoded. |
| |
| Much of the implementation of text painting is borrowed from |
| <attachment> for now, but we should figure out how to generalize |
| it for UI-like parts of WebKit in the future. |
| |
| 2017-05-04 Jeremy Jones <jeremyj@apple.com> |
| |
| Use if instead of return early for 13 places in WebAVPlayerController |
| https://bugs.webkit.org/show_bug.cgi?id=171692 |
| |
| Reviewed by Jer Noble. |
| |
| No new tests because no behavior change. |
| |
| * platform/ios/WebAVPlayerController.mm: |
| (-[WebAVPlayerController play:]): |
| (-[WebAVPlayerController pause:]): |
| (-[WebAVPlayerController togglePlayback:]): |
| (-[WebAVPlayerController beginScrubbing:]): |
| (-[WebAVPlayerController endScrubbing:]): |
| (-[WebAVPlayerController seekToTime:]): |
| (-[WebAVPlayerController beginScanningForward:]): |
| (-[WebAVPlayerController endScanningForward:]): |
| (-[WebAVPlayerController beginScanningBackward:]): |
| (-[WebAVPlayerController endScanningBackward:]): |
| (-[WebAVPlayerController seekToBeginning:]): |
| (-[WebAVPlayerController seekToEnd:]): |
| (-[WebAVPlayerController toggleMuted:]): |
| |
| 2017-05-04 Filip Pizlo <fpizlo@apple.com> |
| |
| JSC::Heap should expose a richer API for requesting GCs |
| https://bugs.webkit.org/show_bug.cgi?id=171690 |
| |
| Reviewed by Geoffrey Garen. |
| |
| No new tests because this is just a refactoring. |
| |
| Change some function calls now that some JSC::Heap APIs got renamed. |
| |
| * bindings/js/GCController.cpp: |
| (WebCore::collect): |
| (WebCore::GCController::garbageCollectNow): |
| (WebCore::GCController::garbageCollectNowIfNotDoneRecently): |
| |
| 2017-05-04 Mark Lam <mark.lam@apple.com> |
| |
| NeverDestroyed<String>(ASCIILiteral(...)) is not thread safe. |
| https://bugs.webkit.org/show_bug.cgi?id=171586 |
| <rdar://problem/31873190> |
| |
| Reviewed by Yusuke Suzuki. |
| |
| No new tests because we're just converting uses of ASCIILiteral (in the |
| instantiation of NeverDestroyed<String> and NeverDestroyed<const String>) to |
| MAKE_STATIC_STRING_IMPL. |
| |
| The correctness of using MAKE_STATIC_STRING_IMPL is tested in the newly added |
| API test in this patch. |
| |
| Also changed "static NeverDestroyed<ASCIILiteral>" instances in |
| SQLiteIDBBackingStore.cpp to "static const char* const" because they are only |
| ever used to get the underlying const char*. |
| |
| * Modules/indexeddb/server/SQLiteIDBBackingStore.cpp: |
| (WebCore::IDBServer::SQLiteIDBBackingStore::getRecord): |
| (WebCore::IDBServer::SQLiteIDBBackingStore::cachedStatementForGetAllObjectStoreRecords): |
| * Modules/mediastream/MediaEndpointSessionDescription.cpp: |
| * Modules/mediastream/RTCRtpTransceiver.cpp: |
| * Modules/mediastream/SDPProcessor.cpp: |
| * Modules/navigatorcontentutils/NavigatorContentUtils.cpp: |
| (WebCore::customHandlersStateString): |
| (WebCore::NavigatorContentUtils::isProtocolHandlerRegistered): |
| * Modules/speech/SpeechSynthesis.cpp: |
| (WebCore::SpeechSynthesis::boundaryEventOccurred): |
| * accessibility/AccessibilityMediaControls.cpp: |
| (WebCore::AccessibilityMediaControl::controlTypeName): |
| (WebCore::AccessibilityMediaControl::title): |
| (WebCore::AccessibilityMediaControlsContainer::elementTypeName): |
| (WebCore::AccessibilityMediaTimeline::helpText): |
| (WebCore::AccessibilityMediaTimeDisplay::accessibilityDescription): |
| * bindings/js/JSLazyEventListener.cpp: |
| (WebCore::eventParameterName): |
| * contentextensions/ContentExtensionsBackend.cpp: |
| (WebCore::ContentExtensions::ContentExtensionsBackend::displayNoneCSSRule): |
| * css/CSSDefaultStyleSheets.cpp: |
| (WebCore::screenEval): |
| (WebCore::printEval): |
| * css/MediaList.cpp: |
| (WebCore::addResolutionWarningMessageToConsole): |
| * css/StyleSheetContents.cpp: |
| (WebCore::StyleSheetContents::parseAuthorStyleSheet): |
| * dom/Document.cpp: |
| (WebCore::Document::readyState): |
| * dom/LoadableClassicScript.cpp: |
| (WebCore::LoadableClassicScript::notifyFinished): |
| * dom/PseudoElement.cpp: |
| (WebCore::PseudoElement::pseudoElementNameForEvents): |
| * editing/MarkupAccumulator.cpp: |
| (WebCore::MarkupAccumulator::shouldAddNamespaceElement): |
| * editing/cocoa/DataDetection.mm: |
| (WebCore::DataDetection::dataDetectorURLProtocol): |
| * editing/markup.cpp: |
| (WebCore::StyledMarkupAccumulator::styleNodeCloseTag): |
| (WebCore::createMarkupInternal): |
| * html/FormController.cpp: |
| (WebCore::formStateSignature): |
| * html/ImageInputType.cpp: |
| (WebCore::ImageInputType::appendFormData): |
| * html/canvas/CanvasRenderingContext2D.cpp: |
| (WebCore::CanvasRenderingContext2D::realizeSaves): |
| (WebCore::CanvasRenderingContext2D::getImageData): |
| * html/parser/XSSAuditor.cpp: |
| (WebCore::XSSAuditor::init): |
| (WebCore::XSSAuditor::eraseDangerousAttributesIfInjected): |
| * html/track/VTTCue.cpp: |
| (WebCore::startKeyword): |
| (WebCore::middleKeyword): |
| (WebCore::endKeyword): |
| (WebCore::leftKeyword): |
| (WebCore::rightKeyword): |
| (WebCore::verticalGrowingLeftKeyword): |
| (WebCore::verticalGrowingRightKeyword): |
| (WebCore::VTTCue::determineTextDirection): |
| (WebCore::VTTCue::markFutureAndPastNodes): |
| * inspector/InspectorCSSAgent.cpp: |
| (WebCore::computePseudoClassMask): |
| * inspector/InspectorIndexedDBAgent.cpp: |
| * inspector/InspectorPageAgent.cpp: |
| (WebCore::InspectorPageAgent::sourceMapURLForResource): |
| * inspector/PageDebuggerAgent.cpp: |
| (WebCore::PageDebuggerAgent::sourceMapURLForScript): |
| * loader/ImageLoader.cpp: |
| (WebCore::ImageLoader::notifyFinished): |
| * loader/TextTrackLoader.cpp: |
| (WebCore::TextTrackLoader::corsPolicyPreventedLoad): |
| * loader/icon/IconDatabase.cpp: |
| (WebCore::IconDatabase::defaultDatabaseFilename): |
| * page/CaptionUserPreferencesMediaAF.cpp: |
| (WebCore::CaptionUserPreferencesMediaAF::captionsTextEdgeCSS): |
| * page/SecurityOrigin.cpp: |
| (WebCore::SecurityOrigin::urlWithUniqueSecurityOrigin): |
| * page/UserContentURLPattern.cpp: |
| (WebCore::UserContentURLPattern::parse): |
| * platform/MIMETypeRegistry.cpp: |
| (WebCore::defaultMIMEType): |
| * platform/animation/Animation.cpp: |
| (WebCore::Animation::initialName): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::engineDescription): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::engineDescription): |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::FontCache::similarFont): |
| * platform/gtk/UserAgentGtk.cpp: |
| (WebCore::platformVersionForUAString): |
| * platform/mock/mediasource/MockBox.cpp: |
| (WebCore::MockTrackBox::type): |
| (WebCore::MockInitializationBox::type): |
| (WebCore::MockSampleBox::type): |
| * platform/network/HTTPHeaderValues.cpp: |
| (WebCore::HTTPHeaderValues::textPlainContentType): |
| (WebCore::HTTPHeaderValues::formURLEncodedContentType): |
| (WebCore::HTTPHeaderValues::noCache): |
| (WebCore::HTTPHeaderValues::maxAge0): |
| * platform/network/HTTPParsers.cpp: |
| (WebCore::parseXSSProtectionHeader): |
| * replay/MemoizedDOMResult.cpp: |
| (JSC::InputTraits<MemoizedDOMResultBase>::type): |
| * svg/SVGTransformValue.cpp: |
| (WebCore::SVGTransformValue::transformTypePrefixForParsing): |
| |
| 2017-05-04 Jeremy Jones <jeremyj@apple.com> |
| |
| Add muted to WebPlaybackSessionModel. |
| https://bugs.webkit.org/show_bug.cgi?id=171592 |
| rdar://problem/31814074 |
| |
| Reviewed by Jer Noble. |
| |
| No behavior change. This just adds the ability for UI to mute. |
| |
| * platform/cocoa/WebPlaybackSessionModel.h: |
| (WebCore::WebPlaybackSessionModelClient::mutedChanged): |
| * platform/cocoa/WebPlaybackSessionModelMediaElement.h: |
| * platform/cocoa/WebPlaybackSessionModelMediaElement.mm: |
| (WebCore::WebPlaybackSessionModelMediaElement::updateForEventName): |
| (WebCore::WebPlaybackSessionModelMediaElement::toggleMuted): |
| (WebCore::WebPlaybackSessionModelMediaElement::observedEventNames): |
| (WebCore::WebPlaybackSessionModelMediaElement::isMuted): |
| * platform/ios/WebAVPlayerController.h: |
| * platform/ios/WebAVPlayerController.mm: |
| (-[WebAVPlayerController toggleMuted:]): |
| * platform/ios/WebPlaybackSessionInterfaceAVKit.h: |
| * platform/ios/WebPlaybackSessionInterfaceAVKit.mm: |
| (WebCore::WebPlaybackSessionInterfaceAVKit::mutedChanged): |
| * platform/ios/WebVideoFullscreenControllerAVKit.mm: |
| (WebVideoFullscreenControllerContext::mutedChanged): |
| (WebVideoFullscreenControllerContext::isMuted): |
| (WebVideoFullscreenControllerContext::toggleMuted): |
| * platform/spi/ios/MediaPlayerSPI.h: |
| |
| 2017-05-04 Joseph Pecoraro <pecoraro@apple.com> |
| |
| REGRESSION(r216138): Web Inspector: ASSERT(!content.isNull()) when checking for source map url opening inspector |
| https://bugs.webkit.org/show_bug.cgi?id=171697 |
| <rdar://problem/31999512> |
| |
| Reviewed by Matt Baker. |
| |
| * inspector/InspectorPageAgent.cpp: |
| (WebCore::InspectorPageAgent::cachedResourceContent): |
| Always set base64Encoded when returning true. Return the empty |
| string instead of a null string matching previous behavior. |
| |
| 2017-05-04 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [WK2] Add support for keeping the selection in a focused editable element when dragging begins |
| https://bugs.webkit.org/show_bug.cgi?id=171585 |
| <rdar://problem/31544320> |
| |
| Reviewed by Beth Dakin and Zalan Bujtas. |
| |
| Covered by 4 API tests. |
| |
| * dom/DocumentMarker.h: |
| |
| Introduces the DraggedContent DocumentMarker type, which applies to the Range in the DOM that is being used as |
| a drag source. Also adds DraggedContentData, which contains nodes found by the TextIterator in the process of |
| finding Ranges to mark. |
| |
| (WebCore::DocumentMarker::AllMarkers::AllMarkers): |
| * dom/DocumentMarkerController.cpp: |
| (WebCore::DocumentMarkerController::addDraggedContentMarker): |
| (WebCore::shouldInsertAsSeparateMarker): |
| (WebCore::DocumentMarkerController::addMarker): |
| |
| When adding DocumentMarkers of type DraggedContent, keep adjacent RenderReplaced elements separate, rather than |
| merging them into existing RenderedDocumentMarkers. This is because the data for each of these (i.e. the target |
| node) needs to be preserved. |
| |
| (WebCore::DocumentMarkerController::markersFor): |
| |
| Bail and return an empty list if the map of document markers cannot possibly contain a dragged content marker. |
| |
| * dom/DocumentMarkerController.h: |
| * page/DragController.h: |
| * page/DragState.h: |
| |
| Add draggedContentRange to DragState. This tracks the Range that is being dragged; it is created when the drag |
| session has begun, and ends when drag session finishes (either via WebPage::dragEnded or WebPage::dragCancelled). |
| |
| * page/EventHandler.cpp: |
| (WebCore::repaintContentsOfRange): |
| (WebCore::EventHandler::dragCancelled): |
| |
| Called when a drag is cancelled in the UI process without a session ever getting a chance to begin. We use this |
| as a hook to remove all DraggedContent document markers from the document of the dragged content range. |
| |
| (WebCore::EventHandler::didStartDrag): |
| |
| Called when a drag session has begun in the UI process. We use this as a hook to set up document markers for the |
| Range of content being dragged. |
| |
| (WebCore::EventHandler::dragSourceEndedAt): |
| |
| Called when a drag session ends. We use this as a hook to remove all DraggedContent document markers from the |
| document of the dragged content range. |
| |
| (WebCore::EventHandler::draggedElement): |
| * page/EventHandler.h: |
| * page/FocusController.cpp: |
| (WebCore::shouldClearSelectionWhenChangingFocusedElement): |
| |
| Prevent the selection from clearing when the previously focused element is editable and also contains the drag |
| source element. Ideally, we should experiment with clearing out the selection whenever the element is blurred |
| (and not have additional restrictions on editability and containing the drag source), but this change is much |
| riskier. |
| |
| (WebCore::FocusController::setFocusedElement): |
| * rendering/InlineTextBox.cpp: |
| (WebCore::InlineTextBox::paint): |
| |
| Use RenderText::draggedContentStartEnd to find the range of text (if any) that is dragged content, and paint |
| these ranges of text at a lower alpha using TextPainter::paintTextInRange. |
| |
| * rendering/RenderReplaced.cpp: |
| (WebCore::draggedContentContainsReplacedElement): |
| |
| Determines whether or not the element being rendered is contained within a dragged content range. Assuming that |
| the DraggedContent type flag is set in DocumentMarkerController, we first look to see whether or not the |
| container node is in the document marker map. If so, instead of consulting node offset ranges (since this is, in |
| the worst-case, linear in the number of sibling nodes per RenderReplaced) we simply check the DraggedContentData |
| to see if the current element being rendered matches one of the target nodes. |
| |
| (WebCore::RenderReplaced::paint): |
| |
| If the element rendered by this RenderReplaced is dragged content, then render it at a low alpha. |
| |
| * rendering/RenderText.cpp: |
| (WebCore::RenderText::draggedContentRangesBetweenOffsets): |
| |
| Determines what range of text, if any, contains dragged content by consulting the Document's DocumentMarkers. |
| |
| * rendering/RenderText.h: |
| * rendering/TextPainter.cpp: |
| (WebCore::TextPainter::paintTextInRange): |
| |
| Teach TextPainter to only paint a given range in a TextRun. |
| |
| * rendering/TextPainter.h: |
| |
| Add TextPainter support for specifying special text offset ranges when rendering a TextRun, such that each |
| special range in text is rendered after applying some modification to the GraphicsContext. |
| |
| 2017-05-04 Jeremy Jones <jeremyj@apple.com> |
| |
| Crash when pointer lock element is removed before pointer lock allowed arrives. |
| https://bugs.webkit.org/show_bug.cgi?id=171642 |
| |
| Reviewed by Jer Noble. |
| |
| Make sure there a pending lock before attempting to complete pointer lock. |
| |
| * page/PointerLockController.cpp: |
| (WebCore::PointerLockController::didAcquirePointerLock): |
| |
| 2017-05-04 Chris Dumez <cdumez@apple.com> |
| |
| Reformat / Clean up Node.idl to match the specification |
| https://bugs.webkit.org/show_bug.cgi?id=171686 |
| |
| Reviewed by Sam Weinig. |
| |
| Reformat / Clean up Node.idl to match the specification: |
| - https://dom.spec.whatwg.org/#node |
| |
| There should be no Web-facing behavior change, except for Node properties |
| being enumerated in a slightly different order. |
| |
| * dom/Node.idl: |
| |
| 2017-05-04 Sam Weinig <sam@webkit.org> |
| |
| Remove support for legacy Notifications |
| https://bugs.webkit.org/show_bug.cgi?id=171487 |
| |
| Reviewed by Jon Lee. |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| Remove files. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| Remove definition of ENABLE_LEGACY_NOTIFICATIONS. |
| |
| * DerivedSources.make: |
| Remove IDL files. |
| |
| * Modules/notifications/DOMWindowNotifications.cpp: Removed. |
| * Modules/notifications/DOMWindowNotifications.h: Removed. |
| * Modules/notifications/DOMWindowNotifications.idl: Removed. |
| * Modules/notifications/NotificationCenter.cpp: Removed. |
| * Modules/notifications/NotificationCenter.h: Removed. |
| * Modules/notifications/NotificationCenter.idl: Removed. |
| * Modules/notifications/NotificationClient.h: |
| * Modules/notifications/NotificationController.cpp: |
| * Modules/notifications/NotificationController.h: |
| * Modules/notifications/WorkerGlobalScopeNotifications.cpp: Removed. |
| * Modules/notifications/WorkerGlobalScopeNotifications.h: Removed. |
| * Modules/notifications/WorkerGlobalScopeNotifications.idl: Removed. |
| * Modules/notifications/Notification.idl: |
| * Modules/notifications/Notification.cpp: |
| * Modules/notifications/Notification.h: |
| * dom/EventTargetFactory.in: |
| * page/DOMWindow.cpp: |
| * workers/WorkerThread.h: |
| Remove code legacy Notification code. Replace use of NotificationCenter with direct |
| calls to the NotificationClient. |
| |
| 2017-05-04 Antti Koivisto <antti@apple.com> |
| |
| REGRESSION (Safari 10.1): When 'transition' contains -ms-transform, transform-origin is also transitioned |
| https://bugs.webkit.org/show_bug.cgi?id=171250 |
| <rdar://problem/31827243> |
| |
| Reviewed by Geoffrey Garen. |
| |
| We were mapping unknown properties to 'all' animation. With this patch we ignore them instead. |
| The patch also implements roundtripping of unknown properties via CSSOM, matching Blink and Gecko. |
| |
| Test: transitions/transition-unknown-property-ignore.html |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::createTransitionPropertyValue): |
| |
| Return the correct name for unknown properties. |
| |
| * css/CSSToStyleMap.cpp: |
| (WebCore::CSSToStyleMap::mapAnimationProperty): |
| |
| Map any unknown property to AnimateUnknownProperty mode instead of falling back to the default of AnimateAll. |
| Save the unknown property name so we can roundtrip it properly. |
| |
| * page/animation/CompositeAnimation.cpp: |
| (WebCore::CompositeAnimation::updateTransitions): |
| |
| Ignore AnimateUnknownProperty like AnimateNone. |
| |
| * platform/animation/Animation.h: |
| (WebCore::Animation::unknownProperty): |
| (WebCore::Animation::setUnknownProperty): |
| |
| 2017-05-04 Chris Dumez <cdumez@apple.com> |
| |
| Clean up MutationRecord.idl |
| https://bugs.webkit.org/show_bug.cgi?id=171685 |
| |
| Reviewed by Sam Weinig. |
| |
| Clean up MutationRecord.idl to match the specification: |
| - https://dom.spec.whatwg.org/#mutationrecord |
| |
| There is no Web-facing behavior change. |
| |
| * dom/MutationRecord.idl: |
| |
| 2017-05-04 Chris Dumez <cdumez@apple.com> |
| |
| Reformat / clean up Event.idl |
| https://bugs.webkit.org/show_bug.cgi?id=171675 |
| |
| Reviewed by Sam Weinig. |
| |
| Reformat / clean up Event.idl to match the latest spec more closely: |
| - https://dom.spec.whatwg.org/#interface-event |
| |
| There is no web-facing behavior change, except for properties being |
| enumerated in a slightly different order. |
| |
| * dom/Event.idl: |
| |
| 2017-05-04 Daniel Bates <dabates@apple.com> |
| |
| Cleanup: Extract CachedScript::mimeTypeAllowedByNosniff() into a common function |
| https://bugs.webkit.org/show_bug.cgi?id=171678 |
| |
| Reviewed by Andy Estes. |
| |
| Extract CachedScript::mimeTypeAllowedByNosniff() into a common function that can |
| be shared by LoadableClassicScript and WorkerScriptLoader. |
| |
| No functionality was changed. So, no new tests. |
| |
| * dom/LoadableClassicScript.cpp: |
| (WebCore::LoadableClassicScript::notifyFinished): Modified to use WebCore::isScriptAllowedByNosniff(). |
| * loader/cache/CachedScript.cpp: |
| (WebCore::CachedScript::mimeType): Deleted; incorporated into WebCore::isScriptAllowedByNosniff(). |
| (WebCore::CachedScript::mimeTypeAllowedByNosniff): Deleted; incorporated into WebCore::isScriptAllowedByNosniff(). |
| * loader/cache/CachedScript.h: |
| * platform/network/ResourceResponseBase.cpp: |
| (WebCore::isScriptAllowedByNosniff): Added. Note that it is sufficient to extract the MIME type |
| as-is and query the MIME type registry because the MIME type registry performs look ups case-insensitively. |
| * platform/network/ResourceResponseBase.h: |
| * workers/WorkerScriptLoader.cpp: |
| (WebCore::WorkerScriptLoader::didReceiveResponse): Modified to use WebCore::isScriptAllowedByNosniff(). |
| (WebCore::mimeTypeAllowedByNosniff): Deleted. |
| |
| 2017-05-04 Sam Weinig <sam@webkit.org> |
| |
| Make the [EnabledBySetting] extended attribute work for any attribute or operation on a prototype |
| https://bugs.webkit.org/show_bug.cgi?id=171588 |
| |
| Reviewed by Dean Jackson. |
| |
| * bindings/js/JSDOMIterator.h: |
| (WebCore::JSDOMIterator::createPrototype): |
| * bindings/js/JSDOMWindowShell.cpp: |
| (WebCore::JSDOMWindowShell::setWindow): |
| * bindings/js/JSDOMWrapperCache.h: |
| (WebCore::getDOMStructure): |
| (WebCore::getDOMPrototype): |
| * bindings/js/WorkerScriptController.cpp: |
| (WebCore::WorkerScriptController::initScript): |
| Update to account for createPrototype and prototype taking the global object by reference. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (NeedsSettingsCheckForPrototypeProperty): |
| Add predicate to determine if an interface has any settings enabled properties on the prototype, |
| needed to determine if we should pass the global object to finishCreation. |
| |
| (GenerateHeader): |
| Update signature of both createPrototype and prototype to take JSDOMGlobalObject& rather than |
| a JSC::JSGlobalObject*, this allows us to pass the more specific type to the prototype constructor, |
| and access the ScriptExecutionContext for the Settings. |
| |
| (GeneratePropertiesHashTable): |
| Update to return, via out parameter, arrays with the attributes and operations that specify EnabledBySetting. This |
| mimics the model used for RuntimeEnabledFeatures. |
| |
| (GenerateImplementation): |
| In {Class}Prototype::finishCreation, add code to check settings to see if an attribute or operation should be enabled, |
| and if it shouldn't remove it from the object. This, again, is modeled on RuntimeEnabledFeatures. |
| |
| (GeneratePrototypeDeclaration): |
| Update signatures to take JSDOMGlobalObject& and specialize finishCreation to take one if there are any properties |
| that require settings to enable. |
| |
| (GenerateConstructorHelperMethods): |
| Update for new signature of prototype(...). |
| |
| * bindings/scripts/test/JS/JSInterfaceName.cpp: |
| * bindings/scripts/test/JS/JSInterfaceName.h: |
| * bindings/scripts/test/JS/JSMapLike.cpp: |
| * bindings/scripts/test/JS/JSMapLike.h: |
| * bindings/scripts/test/JS/JSReadOnlyMapLike.cpp: |
| * bindings/scripts/test/JS/JSReadOnlyMapLike.h: |
| * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: |
| * bindings/scripts/test/JS/JSTestActiveDOMObject.h: |
| * bindings/scripts/test/JS/JSTestCEReactions.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactions.h: |
| * bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactionsStringifier.h: |
| * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h: |
| * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp: |
| * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h: |
| * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: |
| * bindings/scripts/test/JS/JSTestCustomNamedGetter.h: |
| * bindings/scripts/test/JS/JSTestDOMJIT.cpp: |
| * bindings/scripts/test/JS/JSTestDOMJIT.h: |
| * bindings/scripts/test/JS/JSTestEventConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestEventConstructor.h: |
| * bindings/scripts/test/JS/JSTestEventTarget.cpp: |
| * bindings/scripts/test/JS/JSTestEventTarget.h: |
| * bindings/scripts/test/JS/JSTestException.cpp: |
| * bindings/scripts/test/JS/JSTestException.h: |
| * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: |
| * bindings/scripts/test/JS/JSTestGenerateIsReachable.h: |
| * bindings/scripts/test/JS/JSTestGlobalObject.h: |
| * bindings/scripts/test/JS/JSTestInterface.cpp: |
| * bindings/scripts/test/JS/JSTestInterface.h: |
| * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp: |
| * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h: |
| * bindings/scripts/test/JS/JSTestIterable.cpp: |
| * bindings/scripts/test/JS/JSTestIterable.h: |
| * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h: |
| * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: |
| * bindings/scripts/test/JS/JSTestMediaQueryListListener.h: |
| * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestNamedConstructor.h: |
| * bindings/scripts/test/JS/JSTestNode.cpp: |
| * bindings/scripts/test/JS/JSTestNode.h: |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| * bindings/scripts/test/JS/JSTestObj.h: |
| * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: |
| * bindings/scripts/test/JS/JSTestOverloadedConstructors.h: |
| * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp: |
| * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h: |
| * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp: |
| * bindings/scripts/test/JS/JSTestOverrideBuiltins.h: |
| * bindings/scripts/test/JS/JSTestSerialization.cpp: |
| * bindings/scripts/test/JS/JSTestSerialization.h: |
| * bindings/scripts/test/JS/JSTestSerializationInherit.cpp: |
| * bindings/scripts/test/JS/JSTestSerializationInherit.h: |
| * bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp: |
| * bindings/scripts/test/JS/JSTestSerializationInheritFinal.h: |
| * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: |
| * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h: |
| * bindings/scripts/test/JS/JSTestTypedefs.cpp: |
| * bindings/scripts/test/JS/JSTestTypedefs.h: |
| Update test results for new test values and changes in signatures to pass JSDOMGlobalObject. |
| |
| * bindings/scripts/test/TestObj.idl: |
| Add tests for [EnableBySetting] for attributes and operations. |
| |
| * bridge/objc/objc_runtime.h: |
| * bridge/runtime_array.h: |
| * bridge/runtime_method.h: |
| * bridge/runtime_object.h: |
| * inspector/CommandLineAPIHost.cpp: |
| Update createPrototype function to take the global object by reference. |
| |
| 2017-05-04 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Allow host application to enable/disable media capture |
| https://bugs.webkit.org/show_bug.cgi?id=171292 |
| <rdar://problem/31821492> |
| |
| Reviewed by Jer Noble. |
| |
| No new layout tests, added an API test instead. |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::endStream): New, stop all tracks. |
| * Modules/mediastream/MediaStream.h: |
| |
| * Modules/mediastream/MediaStreamRegistry.cpp: |
| (WebCore::MediaStreamRegistry::unregisterStream): Minor cleanup. |
| (WebCore::MediaStreamRegistry::forEach): New, call the lambda with each stream. |
| (WebCore::MediaStreamRegistry::MediaStreamRegistry): Deleted, unused. |
| * Modules/mediastream/MediaStreamRegistry.h: |
| |
| * Modules/mediastream/MediaStreamTrack.cpp: |
| (WebCore::MediaStreamTrack::stopTrack): Add parameter so caller can specify if an 'ended' |
| event should be sent or not. |
| (WebCore::MediaStreamTrack::trackMutedChanged): Don't post an event if the track has ended. |
| * Modules/mediastream/MediaStreamTrack.h: |
| |
| * dom/Document.cpp: |
| (WebCore::Document::stopMediaCapture): Stop all streams in the document. |
| * dom/Document.h: |
| |
| * page/Page.cpp: |
| (WebCore::Page::stopMediaCapture): Stop all streams. |
| * page/Page.h: |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentDisplayMode): Display a black frame |
| when the stream ends. |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::activeStatusChanged): Signal a characteristics |
| change to HTMLMediaElement refresh state. |
| * platform/mediastream/MediaStreamPrivate.h: |
| |
| * platform/mediastream/mac/AVMediaCaptureSource.mm: |
| (WebCore::AVMediaCaptureSource::stopProducingData): Don't return early if the session isn't |
| running, we always need to clear m_session on iOS. |
| |
| 2017-05-04 Zalan Bujtas <zalan@apple.com> |
| |
| Should never hit layout while updating the render tree. |
| https://bugs.webkit.org/show_bug.cgi?id=171643 |
| |
| Reviewed by Antti Koivisto. |
| |
| Laying out a half-baked render tree is not a great idea. Especially considering |
| that layout (sadly) can mutate the render tree. |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::layout): |
| |
| 2017-05-04 Daniel Bates <dabates@apple.com> |
| |
| importScripts() should respect X-Content-Type-Options: nosniff |
| https://bugs.webkit.org/show_bug.cgi?id=171248 |
| <rdar://problem/31819023> |
| |
| Reviewed by Andy Estes. |
| |
| Do not load a worker script if it has the HTTP response header "X-Content-Type-Options: nosniff" |
| and its Content-type header is not an allowed JavaScript script mime type. This behavior follows |
| from <https://html.spec.whatwg.org/multipage/webappapis.html#fetch-a-classic-worker-imported-script> (3 May 2017), |
| <https://fetch.spec.whatwg.org/#concept-fetch> (2 May 2017), and <https://fetch.spec.whatwg.org/#concept-main-fetch>. |
| |
| * workers/WorkerScriptLoader.cpp: |
| (WebCore::mimeTypeAllowedByNosniff): Added. |
| (WebCore::WorkerScriptLoader::didReceiveResponse): Mark the load as failed if the response |
| is not allowed by X-Content-Type-Options: nosniff. |
| |
| 2017-05-04 Dave Hyatt <hyatt@apple.com> |
| |
| REGRESSION(STP): rgb() with calc() containing variables doesn't work |
| https://bugs.webkit.org/show_bug.cgi?id=169939 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Added new test in fast/css/variables. |
| |
| * css/CSSCalculationValue.cpp: |
| (WebCore::CSSCalcExpressionNodeParser::parseValue): |
| Treat floats in calcs as integers when we can. |
| |
| 2017-05-04 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r216172. |
| https://bugs.webkit.org/show_bug.cgi?id=171654 |
| |
| FTBFS for iOS due to missing WebPageProxy::stopMediaCapture() |
| implementation. (Requested by ddkilzer on #webkit). |
| |
| Reverted changeset: |
| |
| "[MediaStream] Allow host application to enable/disable media |
| capture" |
| https://bugs.webkit.org/show_bug.cgi?id=171292 |
| http://trac.webkit.org/changeset/216172 |
| |
| 2017-05-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r215686): Incremental reads from SharedBuffer are wrong after r215686 |
| https://bugs.webkit.org/show_bug.cgi?id=171602 |
| |
| Reviewed by Michael Catanzaro. |
| |
| In TextTrackLoader::processNewCueData() and PNGImageReader::decode() we changed the patter to read data from a |
| SharedBuffer at a given offset. The new pattern is not correct, because it assumes the whole segment is always |
| read, and the new offset is not correct when that's not the case. This has broken the rendering of png images in |
| the GTK+ port, only the first bytes are correctly decoded and drawn, but not the rest of the image. |
| |
| Fixes: editing/pasteboard/paste-image-using-image-data.html |
| |
| * loader/TextTrackLoader.cpp: |
| (WebCore::TextTrackLoader::processNewCueData): |
| * platform/image-decoders/png/PNGImageDecoder.cpp: |
| (WebCore::PNGImageReader::decode): |
| |
| 2017-05-03 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Allow host application to enable/disable media capture |
| https://bugs.webkit.org/show_bug.cgi?id=171292 |
| <rdar://problem/31821492> |
| |
| Reviewed by Jer Noble. |
| |
| No new layout tests, added an API test instead. |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::endStream): New, stop all tracks. |
| * Modules/mediastream/MediaStream.h: |
| |
| * Modules/mediastream/MediaStreamRegistry.cpp: |
| (WebCore::MediaStreamRegistry::unregisterStream): Minor cleanup. |
| (WebCore::MediaStreamRegistry::forEach): New, call the lambda with each stream. |
| (WebCore::MediaStreamRegistry::MediaStreamRegistry): Deleted, unused. |
| * Modules/mediastream/MediaStreamRegistry.h: |
| |
| * Modules/mediastream/MediaStreamTrack.cpp: |
| (WebCore::MediaStreamTrack::stopTrack): Add parameter so caller can specify if an 'ended' |
| event should be sent or not. |
| (WebCore::MediaStreamTrack::trackMutedChanged): Don't post an event if the track has ended. |
| * Modules/mediastream/MediaStreamTrack.h: |
| |
| * dom/Document.cpp: |
| (WebCore::Document::stopMediaCapture): Stop all streams in the document. |
| * dom/Document.h: |
| |
| * page/Page.cpp: |
| (WebCore::Page::stopMediaCapture): Stop all streams. |
| * page/Page.h: |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentDisplayMode): Display a black frame |
| when the stream ends. |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::activeStatusChanged): Signal a characteristics |
| change to HTMLMediaElement refresh state. |
| * platform/mediastream/MediaStreamPrivate.h: |
| |
| * platform/mediastream/mac/AVMediaCaptureSource.mm: |
| (WebCore::AVMediaCaptureSource::stopProducingData): Don't return early if the session isn't |
| running, we always need to clear m_session on iOS. |
| |
| 2017-05-03 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Remove all statistics for modifiedSince website data removals |
| https://bugs.webkit.org/show_bug.cgi?id=171584 |
| <rdar://problem/24702576> |
| |
| Reviewed by Brent Fulgham. |
| |
| Test: http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::clearInMemoryAndPersistentStore): |
| Now clears all regardless of the modifiedSince parameter's value. |
| |
| 2017-05-03 Andy Estes <aestes@apple.com> |
| |
| Try to fix the macOS Public SDK build |
| https://bugs.webkit.org/show_bug.cgi?id=171635 |
| <rdar://problem/31812751> |
| |
| Unreviewed because the commit queue told me to say this. |
| |
| * platform/spi/cocoa/AVKitSPI.h: |
| |
| 2017-05-03 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| AX: aria-rowspan value should be ignored if td/th rowspan value is provided |
| https://bugs.webkit.org/show_bug.cgi?id=171214 |
| |
| Reviewed by Chris Fleizach. |
| |
| Return -1 in AccessibilityTableCell::ariaColumnSpan() and ariaRowSpan() if the |
| cell element has an explicit value for the native host language's span attribute. |
| Add checks to AccessibilityTableCell::columnIndexRange() and rowIndexRange() so |
| that we prefer an author-provided ARIA span value over an implicit host-language |
| span value. Similarly, add checks to AccessibilityARIAGridCell::columnIndexRange() |
| and rowIndexRange() so that we fall back on implicit host-language span values |
| when there is no author-provided ARIA span value and the ARIA cell is associated |
| with a cell element. |
| |
| Test: accessibility/aria-cellspans-with-native-cellspans.html |
| |
| * accessibility/AccessibilityARIAGridCell.cpp: |
| (WebCore::AccessibilityARIAGridCell::ariaRowSpanWithRowIndex): |
| (WebCore::AccessibilityARIAGridCell::columnIndexRange): |
| * accessibility/AccessibilityTableCell.cpp: |
| (WebCore::AccessibilityTableCell::rowIndexRange): |
| (WebCore::AccessibilityTableCell::columnIndexRange): |
| (WebCore::AccessibilityTableCell::ariaColumnSpan): |
| (WebCore::AccessibilityTableCell::ariaRowSpan): |
| |
| 2017-05-03 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r216160 and r216161. |
| https://bugs.webkit.org/show_bug.cgi?id=171640 |
| |
| These changes broke the iOS build. (Requested by mlewis13 on |
| #webkit). |
| |
| Reverted changesets: |
| |
| "[MediaStream] Allow host application to enable/disable media |
| capture" |
| https://bugs.webkit.org/show_bug.cgi?id=171292 |
| http://trac.webkit.org/changeset/216160 |
| |
| "[MediaStream] Allow host application to enable/disable media |
| capture" |
| https://bugs.webkit.org/show_bug.cgi?id=171292 |
| http://trac.webkit.org/changeset/216161 |
| |
| 2017-05-03 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Allow host application to enable/disable media capture |
| https://bugs.webkit.org/show_bug.cgi?id=171292 |
| <rdar://problem/31821492> |
| |
| Reviewed by Jer Noble. |
| |
| No new layout tests, added an API test instead. |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::endStream): New, stop all tracks. |
| * Modules/mediastream/MediaStream.h: |
| |
| * Modules/mediastream/MediaStreamRegistry.cpp: |
| (WebCore::MediaStreamRegistry::unregisterStream): Minor cleanup. |
| (WebCore::MediaStreamRegistry::forEach): New, call the lambda with each stream. |
| (WebCore::MediaStreamRegistry::MediaStreamRegistry): Deleted, unused. |
| * Modules/mediastream/MediaStreamRegistry.h: |
| |
| * Modules/mediastream/MediaStreamTrack.cpp: |
| (WebCore::MediaStreamTrack::stopTrack): Add parameter so caller can specify if an 'ended' |
| event should be sent or not. |
| (WebCore::MediaStreamTrack::trackMutedChanged): Don't post an event if the track has ended. |
| * Modules/mediastream/MediaStreamTrack.h: |
| |
| * dom/Document.cpp: |
| (WebCore::Document::stopMediaCapture): Stop all streams in the document. |
| * dom/Document.h: |
| |
| * page/Page.cpp: |
| (WebCore::Page::stopMediaCapture): Stop all streams. |
| * page/Page.h: |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentDisplayMode): Display a black frame |
| when the stream ends. |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::activeStatusChanged): Signal a characteristics |
| change to HTMLMediaElement refresh state. |
| * platform/mediastream/MediaStreamPrivate.h: |
| |
| * platform/mediastream/mac/AVMediaCaptureSource.mm: |
| (WebCore::AVMediaCaptureSource::stopProducingData): Don't return early if the session isn't |
| running, we always need to clear m_session on iOS. |
| |
| 2017-05-03 Zalan Bujtas <zalan@apple.com> |
| |
| SearchInputType could end up with a mismatched renderer. |
| https://bugs.webkit.org/show_bug.cgi?id=171547 |
| <rdar://problem/31935047> |
| |
| Reviewed by Antti Koivisto. |
| |
| Normally we've got the correct renderer by the time we call into SearchInputType. |
| However, since HTMLInputElement::updateType() eagerly updates the type while the associated renderers are done lazily |
| (so we don't get them updated until after the next tree update), we could actually end up |
| with a mismatched renderer (e.g. through form submission). |
| |
| Test: fast/forms/change-input-type-and-submit-form-crash.html |
| |
| * html/SearchInputType.cpp: |
| (WebCore::SearchInputType::addSearchResult): |
| (WebCore::SearchInputType::didSetValueByUserEdit): |
| |
| 2017-05-03 Jer Noble <jer.noble@apple.com> |
| |
| Make the VPIO audio unit a singleton, shared between multiple CaptureSources |
| https://bugs.webkit.org/show_bug.cgi?id=171622 |
| |
| Reviewed by Eric Carlson. |
| |
| Move the implemnetation of CoreAudioCaptureSource into a shared singleton class, CoreAudioSharedUnit, |
| which will send audio to each of it's client CoreAudioCaptureSources. The first registered client will |
| define the settings used by the shared unit. |
| |
| Drive-by fixes: Fix up setUseAVFoundationAudioCapture() to always accept the first value set. |
| |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioSharedUnit::isProducingData): |
| (WebCore::CoreAudioSharedUnit::microphoneFormat): |
| (WebCore::CoreAudioSharedUnit::singleton): |
| (WebCore::CoreAudioSharedUnit::addClient): |
| (WebCore::CoreAudioSharedUnit::removeClient): |
| (WebCore::CoreAudioSharedUnit::addEchoCancellationSource): |
| (WebCore::CoreAudioSharedUnit::removeEchoCancellationSource): |
| (WebCore::CoreAudioSharedUnit::preferredIOBufferSize): |
| (WebCore::CoreAudioSharedUnit::setupAudioUnits): |
| (WebCore::CoreAudioSharedUnit::configureMicrophoneProc): |
| (WebCore::CoreAudioSharedUnit::configureSpeakerProc): |
| (WebCore::CoreAudioSharedUnit::checkTimestamps): |
| (WebCore::CoreAudioSharedUnit::provideSpeakerData): |
| (WebCore::CoreAudioSharedUnit::speakerCallback): |
| (WebCore::CoreAudioSharedUnit::processMicrophoneSamples): |
| (WebCore::CoreAudioSharedUnit::microphoneCallback): |
| (WebCore::CoreAudioSharedUnit::cleanupAudioUnits): |
| (WebCore::CoreAudioSharedUnit::startProducingData): |
| (WebCore::CoreAudioSharedUnit::stopProducingData): |
| (WebCore::CoreAudioSharedUnit::suspend): |
| (WebCore::CoreAudioSharedUnit::defaultInputDevice): |
| (WebCore::CoreAudioCaptureSource::create): |
| (WebCore::CoreAudioCaptureSource::factory): |
| (WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource): |
| (WebCore::CoreAudioCaptureSource::~CoreAudioCaptureSource): |
| (WebCore::CoreAudioCaptureSource::addEchoCancellationSource): |
| (WebCore::CoreAudioCaptureSource::removeEchoCancellationSource): |
| (WebCore::CoreAudioCaptureSource::startProducingData): |
| (WebCore::CoreAudioCaptureSource::stopProducingData): |
| (WebCore::CoreAudioCaptureSource::audioSourceProvider): |
| (WebCore::CoreAudioCaptureSource::preferredSampleRate): Deleted. |
| (WebCore::CoreAudioCaptureSource::preferredIOBufferSize): Deleted. |
| (WebCore::CoreAudioCaptureSource::configureMicrophoneProc): Deleted. |
| (WebCore::CoreAudioCaptureSource::configureSpeakerProc): Deleted. |
| (WebCore::CoreAudioCaptureSource::checkTimestamps): Deleted. |
| (WebCore::CoreAudioCaptureSource::provideSpeakerData): Deleted. |
| (WebCore::CoreAudioCaptureSource::speakerCallback): Deleted. |
| (WebCore::CoreAudioCaptureSource::processMicrophoneSamples): Deleted. |
| (WebCore::CoreAudioCaptureSource::microphoneCallback): Deleted. |
| (WebCore::CoreAudioCaptureSource::cleanupAudioUnits): Deleted. |
| (WebCore::CoreAudioCaptureSource::defaultInputDevice): Deleted. |
| (WebCore::CoreAudioCaptureSource::setupAudioUnits): Deleted. |
| (WebCore::CoreAudioCaptureSource::suspend): Deleted. |
| (WebCore::CoreAudioCaptureSource::resume): Deleted. |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| (WebCore::RealtimeMediaSourceCenterMac::setUseAVFoundationAudioCapture): |
| |
| 2017-05-03 Jer Noble <jer.noble@apple.com> |
| |
| getUserMedia() fails because devices list is empty / inactive |
| https://bugs.webkit.org/show_bug.cgi?id=171626 |
| |
| Reviewed by Eric Carlson. |
| |
| When creating a AVAudioSessionCaptureDevice, set the device's enabled state to true if the port description |
| has any items in its dataSources property (which is the best analogue to "isActive" we have in AVAudioSession). |
| |
| Also, when creating the generic list of CaptureDevices, use the copy constructor to ensure the enabled state |
| gets copied to the new generic device. |
| |
| * platform/mediastream/ios/AVAudioSessionCaptureDevice.mm: |
| (WebCore::AVAudioSessionCaptureDevice::create): |
| * platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: |
| (WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices): |
| |
| 2017-05-03 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Implement the imageready event to reliably test the async image decoding |
| https://bugs.webkit.org/show_bug.cgi?id=171016 |
| |
| Reviewed by Simon Fraser. |
| |
| The event will be fired for each client of the image. Firing the event |
| will happen after finishing the decoding and repainting the client. |
| |
| Existing tests will be modified in a separate patch to use this event. |
| |
| * dom/Element.cpp: |
| (WebCore::Element::dispatchWebKitImageReadyEventForTesting): |
| * dom/Element.h: |
| * page/Settings.in: |
| * rendering/RenderElement.cpp: |
| (WebCore::RenderElement::imageFrameAvailable): |
| |
| 2017-05-03 Tim Horton <timothy_horton@apple.com> |
| |
| Maintain interaction information URL as a URL, not a string |
| https://bugs.webkit.org/show_bug.cgi?id=171623 |
| |
| Reviewed by Simon Fraser. |
| |
| No new tests, not a behavior change. |
| |
| * platform/URL.h: |
| |
| 2017-05-03 Yoav Weiss <yoav@yoav.ws> |
| |
| Link preload HTMLPreloadScanner support |
| https://bugs.webkit.org/show_bug.cgi?id=170747 |
| |
| Reviewed by Youenn Fablet. |
| |
| Test: http/tests/preload/preloadscanner_download_resources.html |
| |
| * html/parser/HTMLPreloadScanner.cpp: |
| (WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner): Initialize link preload flag. |
| (WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest): Create a request only if the type is known (so ignore |
| preloads with unknown type). |
| (WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): Add handling for link preload and the `as` attribute. |
| (WebCore::TokenPreloadScanner::StartTagScanner::relAttributeIsStyleSheet): Get LinkRelAttribute as input. |
| (WebCore::TokenPreloadScanner::StartTagScanner::resourceType): Return an std::optional, in case the preload type is unknown. |
| (WebCore::TokenPreloadScanner::StartTagScanner::shouldPreload): Return true for the link preload case. |
| * loader/cache/CachedResourceLoader.cpp: |
| (WebCore::CachedResourceLoader::preload): Return the resource rather than a nullptr if it's already in m_preloads. |
| |
| 2017-05-03 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| YouTube user agent quirk breaks new YouTube |
| https://bugs.webkit.org/show_bug.cgi?id=171603 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Our user agent quirk to make YouTube 360 work breaks the new YouTube UI, causing it to |
| attempt to use the obsolete custom elements v0 API. WebKit only supports the v1 API. We |
| have to remove this quirk. |
| |
| Note this does not affect Safari as Apple ports don't use our user agent quirks. |
| |
| * platform/UserAgentQuirks.cpp: |
| (WebCore::urlRequiresChromeBrowser): |
| |
| 2017-05-03 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: 404 Image Load does not appear as a failure in Web Inspector |
| https://bugs.webkit.org/show_bug.cgi?id=171587 |
| <rdar://problem/13222846> |
| |
| Reviewed by Matt Baker. |
| |
| * inspector/InspectorPageAgent.h: |
| * inspector/InspectorPageAgent.cpp: |
| (WebCore::InspectorPageAgent::cachedResourceContent): |
| (WebCore::prepareCachedResourceBuffer): Deleted. |
| Inline the function to make this less confusing. |
| |
| (WebCore::InspectorPageAgent::buildObjectForFrameTree): |
| Treat a DecodeError as a failure. |
| |
| 2017-05-03 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Async image decoding should be disabled for snapshots, printing and preview |
| https://bugs.webkit.org/show_bug.cgi?id=171467 |
| |
| Reviewed by Simon Fraser. |
| |
| Asynchronous image decoding should only be used for window display where |
| RenderElements can be repainted and painted. For cases where there is only |
| one chance to draw the image, synchronous decoding should be used. |
| |
| * rendering/RenderBoxModelObject.cpp: |
| (WebCore::RenderBoxModelObject::paintFillLayerExtended): |
| * rendering/RenderImage.cpp: |
| (WebCore::RenderImage::paintIntoRect): |
| |
| 2017-05-03 Nan Wang <n_wang@apple.com> |
| |
| AX: VO skips cells after cell with aria-colspan |
| https://bugs.webkit.org/show_bug.cgi?id=171579 |
| |
| Reviewed by Chris Fleizach. |
| |
| We should consider the previous cells' column span value when |
| calculating the column index. |
| |
| Test: accessibility/mac/aria-grid-column-span.html |
| |
| * accessibility/AccessibilityARIAGridCell.cpp: |
| (WebCore::AccessibilityARIAGridCell::columnIndexRange): |
| |
| 2017-05-03 Jiewen Tan <jiewen_tan@apple.com> |
| |
| ASSERTION FAILED: m_scriptExecutionContext->isContextThread() seen with LayoutTest crypto/workers/crypto-random-values-limits-worker.html |
| https://bugs.webkit.org/show_bug.cgi?id=171462 |
| <rdar://problem/31906859> |
| |
| Reviewed by Brent Fulgham. |
| |
| Covered by existing tests. |
| |
| * workers/WorkerGlobalScope.cpp: |
| (WebCore::WorkerGlobalScope::~WorkerGlobalScope): |
| Clear Crypto early in destruction since its ContextDestructionObserver |
| destruction makes checks about the WorkerThread. |
| |
| 2017-05-03 Zalan Bujtas <zalan@apple.com> |
| |
| RenderSearchField should not use isTextField() in SPECIALIZE_TYPE_TRAITS_RENDER_OBJECT |
| https://bugs.webkit.org/show_bug.cgi?id=171608 |
| |
| Reviewed by Simon Fraser. |
| |
| isTextField() is true for any generic single line text control. |
| |
| * rendering/RenderObject.h: |
| (WebCore::RenderObject::isSearchField): |
| * rendering/RenderSearchField.h: |
| |
| 2017-05-03 Frederic Wang <fwang@igalia.com> |
| |
| Remove ScrollingCoordinator::supportsFixedPositionLayers() |
| https://bugs.webkit.org/show_bug.cgi?id=171557 |
| |
| Reviewed by Simon Fraser. |
| |
| No new tests, behavior is not changed. |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::shouldUpdateCompositingLayersAfterScrolling): |
| * page/scrolling/AsyncScrollingCoordinator.cpp: |
| (WebCore::AsyncScrollingCoordinator::updateViewportConstrainedNode): |
| * page/scrolling/AsyncScrollingCoordinator.h: |
| * page/scrolling/ScrollingCoordinator.cpp: |
| (WebCore::ScrollingCoordinator::synchronousScrollingReasons): |
| * page/scrolling/ScrollingCoordinator.h: |
| (WebCore::ScrollingCoordinator::supportsFixedPositionLayers): Deleted. |
| * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp: |
| (WebCore::ScrollingCoordinatorCoordinatedGraphics::updateViewportConstrainedNode): |
| * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h: |
| (): Deleted. |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer): |
| |
| 2017-05-03 Chris Dumez <cdumez@apple.com> |
| |
| Use PassRefPtr less in CompositeEditCommand |
| https://bugs.webkit.org/show_bug.cgi?id=171590 |
| |
| Reviewed by Sam Weinig. |
| |
| Use PassRefPtr less in CompositeEditCommand. |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * editing/ApplyStyleCommand.cpp: |
| (WebCore::hasNoAttributeOrOnlyStyleAttribute): |
| (WebCore::isStyleSpanOrSpanWithOnlyStyleAttribute): |
| (WebCore::isSpanWithoutAttributesOrUnstyledStyleSpan): |
| (WebCore::isEmptyFontTag): |
| (WebCore::ApplyStyleCommand::doApply): |
| (WebCore::ApplyStyleCommand::applyBlockStyle): |
| (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): |
| (WebCore::dummySpanAncestorForNode): |
| (WebCore::ApplyStyleCommand::cleanupUnstyledAppleStyleSpans): |
| (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock): |
| (WebCore::ApplyStyleCommand::applyInlineStyle): |
| (WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle): |
| (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange): |
| (WebCore::ApplyStyleCommand::shouldApplyInlineStyleToRun): |
| (WebCore::ApplyStyleCommand::removeConflictingInlineStyleFromRun): |
| (WebCore::ApplyStyleCommand::removeInlineStyleFromElement): |
| (WebCore::ApplyStyleCommand::replaceWithSpanOrRemoveIfWithoutAttributes): |
| (WebCore::ApplyStyleCommand::removeImplicitlyStyledElement): |
| (WebCore::ApplyStyleCommand::removeCSSStyle): |
| (WebCore::ApplyStyleCommand::highestAncestorWithConflictingInlineStyle): |
| (WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode): |
| (WebCore::ApplyStyleCommand::removeInlineStyle): |
| (WebCore::ApplyStyleCommand::shouldSplitTextElement): |
| (WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical): |
| (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical): |
| (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): |
| (WebCore::ApplyStyleCommand::addBlockStyle): |
| (WebCore::ApplyStyleCommand::joinChildTextNodes): |
| * editing/ApplyStyleCommand.h: |
| (WebCore::ApplyStyleCommand::shouldRemoveInlineStyleFromElement): |
| * editing/CompositeEditCommand.cpp: |
| (WebCore::CompositeEditCommand::removeChildrenInRange): |
| (WebCore::CompositeEditCommand::mergeIdenticalElements): |
| (WebCore::CompositeEditCommand::insertTextIntoNode): |
| (WebCore::CompositeEditCommand::deleteTextFromNode): |
| (WebCore::CompositeEditCommand::replaceTextInNode): |
| (WebCore::CompositeEditCommand::replaceSelectedTextInNode): |
| (WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers): |
| (WebCore::CompositeEditCommand::removeNodeAttribute): |
| (WebCore::CompositeEditCommand::rebalanceWhitespaceAt): |
| (WebCore::CompositeEditCommand::rebalanceWhitespaceOnTextSubstring): |
| (WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit): |
| (WebCore::CompositeEditCommand::deleteInsignificantText): |
| (WebCore::CompositeEditCommand::removePlaceholderAt): |
| (WebCore::CompositeEditCommand::cleanupAfterDeletion): |
| (WebCore::CompositeEditCommand::moveParagraphs): |
| * editing/CompositeEditCommand.h: |
| * editing/DeleteFromTextNodeCommand.cpp: |
| (WebCore::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand): |
| (WebCore::DeleteFromTextNodeCommand::doApply): |
| (WebCore::DeleteFromTextNodeCommand::doUnapply): |
| (WebCore::DeleteFromTextNodeCommand::getNodesInCommand): |
| * editing/DeleteFromTextNodeCommand.h: |
| (WebCore::DeleteFromTextNodeCommand::create): |
| * editing/DeleteSelectionCommand.cpp: |
| (WebCore::DeleteSelectionCommand::deleteTextFromNode): |
| (WebCore::DeleteSelectionCommand::handleGeneralDelete): |
| (WebCore::DeleteSelectionCommand::fixupWhitespace): |
| * editing/DeleteSelectionCommand.h: |
| * editing/EditingAllInOne.cpp: |
| * editing/EditingStyle.cpp: |
| (WebCore::EditingStyle::removeStyleConflictingWithStyleOfNode): |
| (WebCore::elementMatchesAndPropertyIsNotInInlineStyleDecl): |
| (WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement): |
| (WebCore::EditingStyle::wrappingStyleForSerialization): |
| (WebCore::styleFromMatchedRulesForElement): |
| (WebCore::EditingStyle::mergeStyleFromRules): |
| (WebCore::EditingStyle::mergeStyleFromRulesForSerialization): |
| (WebCore::EditingStyle::removeStyleFromRulesAndContext): |
| (WebCore::EditingStyle::removePropertiesInElementDefaultStyle): |
| * editing/EditingStyle.h: |
| * editing/IndentOutdentCommand.cpp: |
| (WebCore::IndentOutdentCommand::tryIndentingAsListItem): |
| * editing/InsertIntoTextNodeCommand.cpp: |
| (WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand): |
| (WebCore::InsertIntoTextNodeCommand::getNodesInCommand): |
| * editing/InsertIntoTextNodeCommand.h: |
| (WebCore::InsertIntoTextNodeCommand::create): |
| * editing/InsertLineBreakCommand.cpp: |
| (WebCore::InsertLineBreakCommand::doApply): |
| * editing/InsertListCommand.cpp: |
| (WebCore::InsertListCommand::mergeWithNeighboringLists): |
| (WebCore::InsertListCommand::listifyParagraph): |
| * editing/InsertParagraphSeparatorCommand.cpp: |
| (WebCore::InsertParagraphSeparatorCommand::doApply): |
| * editing/InsertTextCommand.cpp: |
| (WebCore::InsertTextCommand::performOverwrite): |
| (WebCore::InsertTextCommand::doApply): |
| (WebCore::InsertTextCommand::insertTab): |
| * editing/MergeIdenticalElementsCommand.cpp: |
| (WebCore::MergeIdenticalElementsCommand::MergeIdenticalElementsCommand): |
| (WebCore::MergeIdenticalElementsCommand::doApply): |
| (WebCore::MergeIdenticalElementsCommand::doUnapply): |
| (WebCore::MergeIdenticalElementsCommand::getNodesInCommand): |
| * editing/MergeIdenticalElementsCommand.h: |
| (WebCore::MergeIdenticalElementsCommand::create): |
| * editing/RemoveCSSPropertyCommand.cpp: Removed. |
| * editing/RemoveCSSPropertyCommand.h: Removed. |
| * editing/ReplaceSelectionCommand.cpp: |
| (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline): |
| (WebCore::ReplaceSelectionCommand::doApply): |
| (WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace): |
| (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition): |
| * editing/markup.cpp: |
| (WebCore::StyledMarkupAccumulator::appendElement): |
| (WebCore::styleFromMatchedRulesAndInlineDecl): |
| (WebCore::createMarkupInternal): |
| |
| 2017-05-03 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| AX: Treat cells with ARIA table cell properties as cells |
| https://bugs.webkit.org/show_bug.cgi?id=171178 |
| |
| Reviewed by Chris Fleizach. |
| |
| Add the following checks to heuristics in AccessibilityTable::isDataTable(): |
| 1. If the author has provided a valid aria-rowcount or aria-colcount value on |
| the table element, expose it as a data table. |
| 2. If the author has provided a valid aria-colindex or aria-rowindex on the |
| cell element, expose it as a data table. |
| 3. If the author has provided a valid aria-rowindex on the row element, expose |
| it as a data table. |
| 4. If the author has provided a value for aria-colspan or aria-rowspan on a cell, |
| expose it as a data table (even though we are supposed to ignore the value for |
| the purpose of exposing the span via platform accessibility APIs) |
| |
| Remove the heuristic that a table with only one cell is "not a good AXTable candidate." |
| It prevents us from ever doing the above checks. |
| |
| Test: accessibility/minimal-table-with-aria-is-data-table.html |
| |
| * accessibility/AccessibilityTable.cpp: |
| (WebCore::AccessibilityTable::isDataTable): |
| |
| 2017-05-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [Cairo] Handle extended colors in gradients |
| https://bugs.webkit.org/show_bug.cgi?id=171596 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Check if every gradient color step is an extended color and use asExtended() instead of getRGBA() in such case. |
| |
| Fixes: css3/color/gradients.html |
| |
| * platform/graphics/cairo/GradientCairo.cpp: |
| (WebCore::Gradient::platformGradient): |
| |
| 2017-05-03 Daniel Bates <dabates@apple.com> |
| |
| Abandon the current load once the provisional loader detaches from the frame |
| https://bugs.webkit.org/show_bug.cgi?id=171577 |
| <rdar://problem/31581227> |
| |
| Reviewed by Brent Fulgham and Brady Eidson. |
| |
| We detach all child frames as part of setting our document loader to the provisional |
| document loader when committing a load for a frame. Detaching child frames invokes |
| the unload event handler on the child frames that can run arbitrary JavaScript script. |
| Among other things, such script can initiate a new load in the frame whose current |
| load is being committed. We should stop processing the current load as soon as we |
| detect that updating our document loader has started a new provisional load. |
| |
| Test: fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash.html |
| |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::transitionToCommitted): |
| |
| 2017-05-03 Daniel Bates <dabates@apple.com> |
| |
| Cleanup: Remove out-of-date comment and null check from DocumentLoader::detachFromFrame() |
| https://bugs.webkit.org/show_bug.cgi?id=171604 |
| |
| Reviewed by Brady Eidson. |
| |
| We no longer want to passively allow DocumentLoader::detachFromFrame() to be called twice. |
| It does not make sense to be called twice and should never be called twice. A release assert |
| in DocumentLoader::cancelPolicyCheckIfNeeded() (added in r187558) called by DocumentLoader::detachFromFrame() |
| enforces this invariant. Therefore we can remove the null check of DocumentLoader::m_frame |
| and the comment that explains the purpose of this null check from DocumentLoader::detachFromFrame(). |
| |
| * loader/DocumentLoader.cpp: |
| (WebCore::DocumentLoader::detachFromFrame): |
| |
| 2017-05-03 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed attempt to fix the Windows build after r216117. |
| https://bugs.webkit.org/show_bug.cgi?id=171601 |
| |
| * css/CSSAllInOne.cpp: |
| |
| 2017-05-03 Antti Koivisto <antti@apple.com> |
| |
| Rename StyleInvalidationAnalysis to Style::Invalidator |
| https://bugs.webkit.org/show_bug.cgi?id=171601 |
| |
| Reviewed by Žan Doberšek. |
| |
| Also move it to the 'style' directory. |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * css/StyleInvalidationAnalysis.cpp: Removed. |
| * css/StyleInvalidationAnalysis.h: Removed. |
| * dom/ExtensionStyleSheets.cpp: |
| * style/AttributeChangeInvalidation.cpp: |
| (WebCore::Style::AttributeChangeInvalidation::invalidateDescendants): |
| * style/ClassChangeInvalidation.cpp: |
| (WebCore::Style::ClassChangeInvalidation::invalidateDescendantStyle): |
| * style/StyleInvalidator.cpp: Copied from Source/WebCore/css/StyleInvalidationAnalysis.cpp. |
| (WebCore::Style::Invalidator::Invalidator): |
| (WebCore::Style::Invalidator::invalidateIfNeeded): |
| (WebCore::Style::Invalidator::invalidateStyleForTree): |
| (WebCore::Style::Invalidator::invalidateStyle): |
| (WebCore::shouldDirtyAllStyle): Deleted. |
| (WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis): Deleted. |
| (WebCore::StyleInvalidationAnalysis::invalidateIfNeeded): Deleted. |
| (WebCore::StyleInvalidationAnalysis::invalidateStyleForTree): Deleted. |
| (WebCore::StyleInvalidationAnalysis::invalidateStyle): Deleted. |
| * style/StyleInvalidator.h: Copied from Source/WebCore/css/StyleInvalidationAnalysis.h. |
| (WebCore::StyleInvalidationAnalysis::dirtiesAllStyle): Deleted. |
| (WebCore::StyleInvalidationAnalysis::hasShadowPseudoElementRulesInAuthorSheet): Deleted. |
| * style/StyleScope.cpp: |
| (WebCore::Style::Scope::resolver): |
| (WebCore::Style::Scope::analyzeStyleSheetChange): |
| |
| 2017-05-02 Andrew Gold <agold@apple.com> |
| |
| Typo in AVAudioSessionCaptureDeviceManager.mm |
| https://bugs.webkit.org/show_bug.cgi?id=171572 |
| |
| Reviewed by Jer Noble. |
| |
| We attempt to call +[AVAudioSession sharedSession], but the actual method is |
| called +[AVAudioSession sharedInstance]. |
| |
| * platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: |
| (WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices): |
| |
| 2017-05-02 Simon Fraser <simon.fraser@apple.com> |
| |
| Improve scrolling tree logging |
| https://bugs.webkit.org/show_bug.cgi?id=171574 |
| |
| Reviewed by Tim Horton. |
| |
| Make a call to showScrollingStateTree() print debugging-related information like node and layer IDs. |
| Required fixing scrolling state tree nodes to respect ScrollingStateTreeAsTextBehavior, and fixing |
| fixed and sticky nodes to call super. |
| |
| Also enhance compositing logging to show layer IDs, and to log for layer scrolling tree registration. |
| |
| * page/scrolling/AsyncScrollingCoordinator.cpp: |
| (WebCore::AsyncScrollingCoordinator::scrollingStateTreeAsText): |
| * page/scrolling/AsyncScrollingCoordinator.h: |
| * page/scrolling/ScrollingCoordinator.cpp: |
| (WebCore::ScrollingCoordinator::scrollingStateTreeAsText): |
| * page/scrolling/ScrollingCoordinator.h: |
| * page/scrolling/ScrollingStateFixedNode.cpp: |
| (WebCore::ScrollingStateFixedNode::dumpProperties): |
| * page/scrolling/ScrollingStateNode.cpp: |
| (WebCore::ScrollingStateNode::dumpProperties): |
| (WebCore::ScrollingStateNode::scrollingStateTreeAsText): |
| * page/scrolling/ScrollingStateNode.h: |
| * page/scrolling/ScrollingStateScrollingNode.cpp: |
| (WebCore::ScrollingStateScrollingNode::dumpProperties): |
| * page/scrolling/ScrollingStateStickyNode.cpp: |
| (WebCore::ScrollingStateStickyNode::dumpProperties): |
| * page/scrolling/ScrollingStateTree.cpp: |
| (showScrollingStateTree): |
| * page/scrolling/mac/ScrollingCoordinatorMac.mm: |
| (WebCore::ScrollingCoordinatorMac::commitTreeState): |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::RenderLayerBacking::detachFromScrollingCoordinator): |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::logLayerInfo): |
| (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer): |
| |
| 2017-05-02 Daniel Bates <dabates@apple.com> |
| |
| Using StringView.split() instead of String.split() in some places |
| https://bugs.webkit.org/show_bug.cgi?id=170925 |
| |
| Reviewed by Darin Adler and Sam Weinig. |
| |
| Replace some uses of String.split() with StringView.split() (added in r211087) as the latter |
| avoids the need to allocate an intermediary Vector of substrings. Instead StringView.split() |
| returns an iterator for traversing the substrings. |
| |
| No functionality changed. So, no new tests. |
| |
| * accessibility/AccessibilityObject.cpp: Convert some typedefs to modern C++ using declarations. |
| (WebCore::AccessibilityObject::ariaRoleToWebCoreRole): Modified code to use StringView.split(). |
| (WebCore::AccessibilityObject::elementsFromAttribute): Ditto. |
| * dom/TreeScope.cpp: |
| (WebCore::TreeScope::getElementById): Added. |
| * dom/TreeScope.h: |
| * html/LinkRelAttribute.cpp: |
| (WebCore::LinkRelAttribute::LinkRelAttribute): Modified code to use StringView.split(). |
| * html/parser/XSSAuditor.cpp: |
| (WebCore::semicolonSeparatedValueContainsJavaScriptURL): Ditto. |
| * platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm: |
| (WebCore::CDMPrivateMediaSourceAVFObjC::createSession): Ditto. |
| * platform/network/CacheValidation.cpp: |
| (WebCore::collectVaryingRequestHeaders): Simplify code by using the String.split(UChar, Vector<String>&) overload. |
| * svg/SVGAnimationElement.cpp: |
| (WebCore::parseKeyTimes): Modified code to use StringView.split(). |
| * svg/SVGToOTFFontConversion.cpp: |
| (WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter): Ditto. |
| * testing/Internals.cpp: |
| (WebCore::Internals::setMediaSessionRestrictions): Ditto. |
| (WebCore::Internals::setMediaElementRestrictions): Ditto. |
| (WebCore::Internals::setAudioContextRestrictions): Ditto. |
| (WebCore::Internals::setPageMuted): Ditto. |
| * testing/Internals.h: |
| |
| 2017-05-02 Gwang Yoon Hwang <yoon@igalia.com> |
| |
| [GTK] Drop coordinated surfaces from the compositing thread as soon as possible |
| https://bugs.webkit.org/show_bug.cgi?id=171544 |
| |
| Reviewed by Žan Doberšek. |
| |
| * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h: |
| Remove atlasesToRemove from the GraphicsState. It is not a commit |
| state anymore. |
| |
| 2017-05-02 Gwang Yoon Hwang <yoon@igalia.com> |
| |
| [GTK] Recycle textures while handling tiles |
| https://bugs.webkit.org/show_bug.cgi?id=171541 |
| |
| Reviewed by Žan Doberšek. |
| |
| * platform/graphics/texmap/TextureMapperTile.h: |
| Modified m_texture as a protected member to avoid unnessary |
| refcountings from the CoordinatedBackingStore. |
| * platform/graphics/texmap/coordinated/CoordinatedSurface.h: |
| Use reference instead of RefPtr to pass BitmapTexture |
| |
| No new tests since there should be no change in behavior. |
| |
| 2017-05-02 Zalan Bujtas <zalan@apple.com> |
| |
| Defer AX cache update when text content changes until after layout is finished. |
| https://bugs.webkit.org/show_bug.cgi?id=171429 |
| <rdar://problem/31885984> |
| |
| Reviewed by Simon Fraser. |
| |
| When the content of the RenderText changes (even as the result of a text-transform change) |
| instead of updating the AX cache eagerly (and trigger layout on a half-backed render tree) |
| we should just defer it until after the subsequent layout is done. |
| |
| Test: accessibility/crash-while-adding-text-child-with-transform.html |
| |
| * accessibility/AXObjectCache.cpp: |
| (WebCore::AXObjectCache::remove): |
| (WebCore::AXObjectCache::performDeferredCacheUpdate): |
| (WebCore::AXObjectCache::recomputeDeferredIsIgnored): |
| (WebCore::AXObjectCache::deferTextChanged): |
| (WebCore::AXObjectCache::performDeferredIsIgnoredChange): Deleted. |
| * accessibility/AXObjectCache.h: |
| (WebCore::AXObjectCache::deferTextChanged): |
| (WebCore::AXObjectCache::performDeferredCacheUpdate): |
| (WebCore::AXObjectCache::performDeferredIsIgnoredChange): Deleted. |
| * page/FrameView.cpp: |
| (WebCore::FrameView::performPostLayoutTasks): |
| * rendering/RenderText.cpp: |
| (WebCore::RenderText::setText): |
| |
| 2017-05-02 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Remove an extraneous call to dispatch_group_async in WebItemProviderPasteboard.mm |
| https://bugs.webkit.org/show_bug.cgi?id=171561 |
| |
| Reviewed by Tim Horton. |
| |
| In -[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:], the lifetime of the dispatch group |
| `fileLoadingGroup` is already guarded by dispatch_group_enter/leave calls when beginning and concluding an |
| item provider load, respectively. As such, the call to dispatch_group_async serves no purpose and should be removed. |
| |
| No new tests, since there is no change in behavior. |
| |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:]): |
| |
| 2017-05-02 Youenn Fablet <youenn@apple.com> |
| |
| [LibWebRTC] Set explicitly logging level in debug mode |
| https://bugs.webkit.org/show_bug.cgi?id=171562 |
| |
| Reviewed by Eric Carlson. |
| |
| No change of behavior. |
| |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: |
| (WebCore::initializePeerConnectionFactoryAndThreads): Setting explictly LibWebRTC logging to Info level for |
| debug builds if WebRTC channel is on. |
| |
| 2017-05-02 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| AX: Update implementation of aria-orientation |
| https://bugs.webkit.org/show_bug.cgi?id=171166 |
| |
| Reviewed by Chris Fleizach. |
| |
| Update AccessibilityRenderObject::orientation() to be consistent with what is |
| in the ARIA 1.1 spec. Also add an isTreeGrid() convenience method to be consistent |
| with what we do for other roles. |
| |
| Test: accessibility/aria-orientation.html |
| |
| * accessibility/AccessibilityARIAGridRow.cpp: |
| (WebCore::AccessibilityARIAGridRow::isARIATreeGridRow): |
| * accessibility/AccessibilityObject.h: |
| (WebCore::AccessibilityObject::isTreeGrid): |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::orientation): |
| |
| 2017-05-02 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| REGRESSION (r211382): Partial right-to-left text runs are painted at an offset (breaks Find indicators, Look Up, and custom ::selection style) |
| https://bugs.webkit.org/show_bug.cgi?id=169517 |
| <rdar://problem/30652443> |
| |
| Reviewed by Dean Jackson. |
| |
| FontCascade::getGlyphsAndAdvancesForComplexText() is tasked with calculating paint advances for a |
| subrange of RTL text. It does this by creating a ComplexTextController, telling it to iterate to |
| the beginning of the subrange (outputting to a GlyphBuffer), then telling it to iterate to the end |
| of the subrange (outputting to another GlyphBuffer). Because the text is RTL, the sum of the |
| advances gathered so far is the distance from the right edge of the text to the left edge of the |
| subrange (because we advance in logical order). Therefore, the x-coordinate we are at now is the |
| total width minus the sum of both of the GlyphBuffers. For some reason, when I wrote this code I |
| forgot to add in the contribution from the first GlyphBuffer. Unfortunately, this particular |
| codepath is rarely hit in practice and completely untested, which made me miss it when I wrote it. |
| |
| Test: fast/text/complex-text-selection.html |
| |
| * platform/graphics/cocoa/FontCascadeCocoa.mm: |
| (WebCore::FontCascade::getGlyphsAndAdvancesForComplexText): |
| |
| 2017-05-02 Chris Dumez <cdumez@apple.com> |
| |
| [macOS] Flaky Crash under EventTarget::fireEventListeners on imported/blink/paint/deprecatedpaintlayer/non-self-painting-layer-overrides-visibility.html |
| https://bugs.webkit.org/show_bug.cgi?id=171406 |
| <rdar://problem/30945281> |
| |
| Reviewed by Eric Carlson. |
| |
| I was unfortunately unable to reproduce the flaky crash locally. However, the crash trace |
| indicates that one of the EventTarget::scriptExecutionContext() overrides is returning a |
| stale ScriptExecutionContext pointer. Since a GenericEventQueue is involved, the EventTarget |
| is likely a media-related object. I therefore audited media classes that override |
| EventTarget::scriptExecutionContext() and found several that look unsafe. I am fixing those |
| by having them override ContextDestructionObserver, instead of having a raw |
| ScriptExecutionContext pointer member. This makes sure the pointer gets nulled out whenever |
| the scriptexecutioncontext gets destroyed, ensuring that those classes's |
| EventTarget::scriptExecutionContext() overrides can never return a stale pointer. |
| |
| * Modules/mediasource/SourceBufferList.cpp: |
| (WebCore::SourceBufferList::SourceBufferList): |
| * Modules/mediasource/SourceBufferList.h: |
| * html/track/TextTrack.cpp: |
| (WebCore::TextTrack::TextTrack): |
| * html/track/TextTrack.h: |
| * html/track/TrackListBase.cpp: |
| (TrackListBase::TrackListBase): |
| * html/track/TrackListBase.h: |
| |
| 2017-05-02 Antti Koivisto <antti@apple.com> |
| |
| Document style resolvers should share user rulesets |
| https://bugs.webkit.org/show_bug.cgi?id=171549 |
| |
| Reviewed by Andreas Kling. |
| |
| Large user stylesheets (like those used by ad blockers) can end up using lots of memory if |
| a document uses large number of shadow trees. User style is inherently per-document and |
| the resulting rulesets can be shared between the document and the shadow trees. |
| |
| * css/DocumentRuleSets.cpp: |
| (WebCore::DocumentRuleSets::DocumentRuleSets): |
| (WebCore::DocumentRuleSets::userStyle): |
| |
| Return per-document user style for shadow trees. |
| |
| (WebCore::DocumentRuleSets::collectFeatures): |
| * css/DocumentRuleSets.h: |
| (WebCore::DocumentRuleSets::setUsesSharedUserStyle): |
| (WebCore::DocumentRuleSets::userStyle): Deleted. |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::StyleResolver): |
| (WebCore::StyleResolver::initializeUserStyle): |
| |
| Separate user style initialization from construction. |
| |
| * css/StyleResolver.h: |
| * style/StyleScope.cpp: |
| (WebCore::Style::Scope::resolver): |
| |
| Don't initialize user style for user agents shadow trees. |
| |
| 2017-05-02 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Font Loading API specifies font is loaded but sizing of font after load reports inconsistent values |
| https://bugs.webkit.org/show_bug.cgi?id=168533 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Previously, we were marking all local() fonts as immediately successful, |
| regardless of whether or not they were present on the system. Instead, we |
| should use the load() function to make this determination and mark the font |
| as failed if it doesn't exist. (This is, after all, the whole point of the |
| load() function). This brings us in-line with Firefox's and Chrome's |
| behavior. |
| |
| Test: fast/text/font-loading-local.html |
| |
| * css/CSSFontFace.cpp: |
| (WebCore::CSSFontFace::pump): Remote loading requires the FontSelector, |
| but it isn't available for local fonts. Now that load() is called for both |
| local and remote fonts, the ASSERT() should be lowered into the load() |
| function and scoped to just the case where we have a remote font. |
| (WebCore::CSSFontFace::font): Ditto. |
| * css/CSSFontFaceSource.cpp: |
| (WebCore::CSSFontFaceSource::CSSFontFaceSource): Don't immediatley set |
| the success/failure state for local fonts. |
| (WebCore::CSSFontFaceSource::load): Move loading logic from font() to |
| load(). None of this code is new; it just is moved. |
| (WebCore::CSSFontFaceSource::font): Delete code moved to load(). |
| * css/CSSFontFaceSource.h: |
| * css/FontFace.cpp: |
| (WebCore::FontFace::create): |
| |
| 2017-05-02 Youenn Fablet <youenn@apple.com> |
| |
| Allow media stream based videos with sound to autoplay if the page is already playing sound |
| https://bugs.webkit.org/show_bug.cgi?id=171447 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: http/tests/media/autoplay-if-audio-is-playing.html for ensuring non-mediastream based video will not autoplay. |
| Manual testing for the autoplay of media stream based videos since such a test should happen without using getUserMedia. |
| |
| * html/MediaElementSession.cpp: |
| (WebCore::MediaElementSession::playbackPermitted): |
| |
| 2017-05-02 Chris Dumez <cdumez@apple.com> |
| |
| Use PassRefPtr less in editing code |
| https://bugs.webkit.org/show_bug.cgi?id=171534 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Use PassRefPtr less in editing code. |
| |
| * editing/AppendNodeCommand.cpp: |
| (WebCore::AppendNodeCommand::AppendNodeCommand): |
| (WebCore::AppendNodeCommand::getNodesInCommand): |
| * editing/AppendNodeCommand.h: |
| (WebCore::AppendNodeCommand::create): |
| * editing/ApplyStyleCommand.cpp: |
| (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): |
| (WebCore::ApplyStyleCommand::positionToComputeInlineStyleChange): |
| * editing/BreakBlockquoteCommand.cpp: |
| (WebCore::BreakBlockquoteCommand::doApply): |
| * editing/CompositeEditCommand.cpp: |
| (WebCore::CompositeEditCommand::insertNodeBefore): |
| (WebCore::CompositeEditCommand::insertNodeAfter): |
| (WebCore::CompositeEditCommand::insertNodeAt): |
| (WebCore::CompositeEditCommand::appendNode): |
| (WebCore::CompositeEditCommand::moveRemainingSiblingsToNewParent): |
| (WebCore::CompositeEditCommand::mergeIdenticalElements): |
| (WebCore::CompositeEditCommand::insertNodeAtTabSpanPosition): |
| (WebCore::CompositeEditCommand::appendBlockPlaceholder): |
| (WebCore::CompositeEditCommand::insertBlockPlaceholder): |
| (WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded): |
| (WebCore::CompositeEditCommand::insertNewDefaultParagraphElementAt): |
| (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement): |
| (WebCore::CompositeEditCommand::moveParagraphs): |
| * editing/CompositeEditCommand.h: |
| * editing/CreateLinkCommand.cpp: |
| (WebCore::CreateLinkCommand::doApply): |
| * editing/DeleteSelectionCommand.cpp: |
| (WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss): |
| (WebCore::DeleteSelectionCommand::mergeParagraphs): |
| * editing/FormatBlockCommand.cpp: |
| (WebCore::FormatBlockCommand::formatRange): |
| * editing/IndentOutdentCommand.cpp: |
| (WebCore::IndentOutdentCommand::tryIndentingAsListItem): |
| (WebCore::IndentOutdentCommand::indentIntoBlockquote): |
| (WebCore::IndentOutdentCommand::outdentParagraph): |
| * editing/InsertLineBreakCommand.cpp: |
| (WebCore::InsertLineBreakCommand::doApply): |
| * editing/InsertLineBreakCommand.h: |
| * editing/InsertListCommand.cpp: |
| (WebCore::InsertListCommand::fixOrphanedListChild): |
| (WebCore::InsertListCommand::doApplyForSingleParagraph): |
| (WebCore::InsertListCommand::unlistifyParagraph): |
| (WebCore::InsertListCommand::listifyParagraph): |
| * editing/InsertListCommand.h: |
| * editing/InsertNodeBeforeCommand.cpp: |
| (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand): |
| (WebCore::InsertNodeBeforeCommand::doApply): |
| (WebCore::InsertNodeBeforeCommand::doUnapply): |
| (WebCore::InsertNodeBeforeCommand::getNodesInCommand): |
| * editing/InsertNodeBeforeCommand.h: |
| (WebCore::InsertNodeBeforeCommand::create): |
| * editing/InsertParagraphSeparatorCommand.cpp: |
| (WebCore::InsertParagraphSeparatorCommand::cloneHierarchyUnderNewBlock): |
| (WebCore::InsertParagraphSeparatorCommand::doApply): |
| * editing/InsertParagraphSeparatorCommand.h: |
| * editing/InsertTextCommand.cpp: |
| (WebCore::InsertTextCommand::positionInsideTextNode): |
| (WebCore::InsertTextCommand::insertTab): |
| * editing/ModifySelectionListLevel.cpp: |
| (WebCore::ModifySelectionListLevelCommand::insertSiblingNodeRangeBefore): |
| (WebCore::ModifySelectionListLevelCommand::insertSiblingNodeRangeAfter): |
| (WebCore::ModifySelectionListLevelCommand::appendSiblingNodeRange): |
| (WebCore::IncreaseSelectionListLevelCommand::doApply): |
| * editing/RemoveNodePreservingChildrenCommand.cpp: |
| (WebCore::RemoveNodePreservingChildrenCommand::doApply): |
| * editing/ReplaceSelectionCommand.cpp: |
| (WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor): |
| (WebCore::ReplaceSelectionCommand::mergeEndIfNeeded): |
| (WebCore::ReplaceSelectionCommand::doApply): |
| (WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace): |
| (WebCore::ReplaceSelectionCommand::insertAsListItems): |
| * editing/SimplifyMarkupCommand.cpp: |
| (WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove): |
| |
| 2017-05-02 Ben Kelly <ben@wanderview.com> |
| |
| Set Response.blob() type correctly when body is a ReadableStream. |
| https://bugs.webkit.org/show_bug.cgi?id=171489 |
| |
| Reviewed by Youenn Fablet |
| |
| The Fetch API specification requires setting the blob contentType |
| using the Content-Type header value, if present. Currently WebKit |
| only sets the type on the FetchBodyConsumer when FetchBody::blob() |
| is called. Unfortunately, this is never called if the body is |
| actually a ReadableStream. |
| |
| This change allows WebKit to pass the "Consume response's body: from |
| stream to blob" case in the WPT response-consume.html test. |
| |
| Test: http://w3c-test.org/fetch/api/response/response-consume.html |
| |
| * Modules/fetch/FetchResponse.cpp: |
| (WebCore::FetchResponse::startConsumingStream): Modified to call |
| FetchBodyConsumer::setContentType() before processing the stream. |
| |
| 2017-05-02 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r216069. |
| |
| This change broke the build. |
| |
| Reverted changeset: |
| |
| "Document style resolvers should share user rulesets" |
| https://bugs.webkit.org/show_bug.cgi?id=171549 |
| http://trac.webkit.org/changeset/216069 |
| |
| 2017-05-02 Antti Koivisto <antti@apple.com> |
| |
| Document style resolvers should share user rulesets |
| https://bugs.webkit.org/show_bug.cgi?id=171549 |
| |
| Reviewed by Andreas Kling. |
| |
| Large user stylesheets (like those used by ad blockers) can end up using lots of memory if |
| a document uses large number of shadow trees. User style is inherently per-document and |
| the resulting rulesets can be shared between the document and the shadow trees. |
| |
| * css/DocumentRuleSets.cpp: |
| (WebCore::DocumentRuleSets::DocumentRuleSets): |
| (WebCore::DocumentRuleSets::userStyle): |
| |
| Return per-document user style for shadow trees. |
| |
| (WebCore::DocumentRuleSets::collectFeatures): |
| * css/DocumentRuleSets.h: |
| (WebCore::DocumentRuleSets::setUsesSharedUserStyle): |
| (WebCore::DocumentRuleSets::userStyle): Deleted. |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::StyleResolver): |
| (WebCore::StyleResolver::initializeUserStyle): |
| |
| Separate user style initialization from construction. |
| |
| * css/StyleResolver.h: |
| * style/StyleScope.cpp: |
| (WebCore::Style::Scope::resolver): |
| |
| Don't initialize user style for user agents shadow trees. |
| |
| 2017-05-02 Gwang Yoon Hwang <yoon@igalia.com> |
| |
| [GTK] Remove undefined nativeImage method from the ImageBuffer's header |
| https://bugs.webkit.org/show_bug.cgi?id=171502 |
| |
| Unreviewed, remove a dead code accidentally committed in r194630. |
| |
| * platform/graphics/ImageBuffer.h: Remove nativeImage method. |
| It is accidentally added during a refectorying at r194630, and there is |
| no definition for this method. |
| |
| 2017-05-02 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GStreamer] Dailymotion live stream videos don't play |
| https://bugs.webkit.org/show_bug.cgi?id=170767 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| The video shows a message saying that an error occurred and nothing is played. There are actually several |
| problems with dailymotion. The main issue is that URLs are redirected by the server, and GStreamer needs to |
| know the redirected URL. Once GStreamer knows the redirected URL the error message no longer appears, the video |
| starts but it always stops after a few seconds. This is because the source receives an early EOS while still |
| downloading the fragments. The reason of the early EOS is because dailymotion sends a wrong Content-Length header, |
| something that is expected to happen and we correctly handle that case when receiving the data, by updating the |
| size accordingly if the bytes received are longer than the expected content length. This particular case |
| doesn't work well with GStreamer automatic EOS handling, which is the default. At some point, GStreamer detects |
| that the bytes received are at least the expected ones and emits a GST_EVENT_EOS that the GstUriDownloader |
| handles finishing the download early. We should always disable automatic EOS, since we know when EOS actually |
| happens and we already call gst_app_src_end_of_stream(). This patch also emits a GST_EVENT_CUSTOM_DOWNSTREAM_STICKY |
| event to let GStreamer know about the HTTP headers sent and received. |
| |
| * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: |
| (webkit_web_src_init): Disable automatic EOS. |
| (webKitWebSrcGetProperty): Return the redirected URL in case of redirection. |
| (webKitWebSrcStart): Pass the ResourceRequest to the stream clients. |
| (webKitWebSrcQueryWithParent): Set the redirected URL in the query in case of redirection. |
| (webKitWebSrcSetUri): Clear also the redirected URL when setting a new URI. |
| (StreamingClient::StreamingClient): Use GRefPtr for the source and initialize the request too. |
| (StreamingClient::~StreamingClient): Remove explicit unref. |
| (StreamingClient::createReadBuffer): |
| (StreamingClient::handleResponseReceived): Initialize the redirected URL in case of redirection. Create and push |
| the HTTP headers event. |
| (StreamingClient::handleDataReceived): |
| (StreamingClient::handleNotifyFinished): |
| (CachedResourceStreamingClient::CachedResourceStreamingClient): |
| (CachedResourceStreamingClient::responseReceived): |
| (CachedResourceStreamingClient::accessControlCheckFailed): |
| (CachedResourceStreamingClient::loadFailed): |
| (ResourceHandleStreamingClient::ResourceHandleStreamingClient): |
| (ResourceHandleStreamingClient::didFail): |
| (ResourceHandleStreamingClient::wasBlocked): |
| (ResourceHandleStreamingClient::cannotShowURL): |
| |
| 2017-05-02 Youenn Fablet <youenn@apple.com> |
| |
| Adding logging to RTCPeerConnection to allow WebRTC application debugging |
| https://bugs.webkit.org/show_bug.cgi?id=171531 |
| |
| Reviewed by Jon Lee. |
| |
| No change of behavior. |
| This allows easier debugging of webrtc-enabled web pages. |
| |
| * Modules/mediastream/PeerConnectionBackend.cpp: |
| (WebCore::PeerConnectionBackend::createOfferSucceeded): |
| (WebCore::PeerConnectionBackend::createOfferFailed): |
| (WebCore::PeerConnectionBackend::createAnswerSucceeded): |
| (WebCore::PeerConnectionBackend::createAnswerFailed): |
| (WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded): |
| (WebCore::PeerConnectionBackend::setLocalDescriptionFailed): |
| (WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded): |
| (WebCore::PeerConnectionBackend::setRemoteDescriptionFailed): |
| (WebCore::PeerConnectionBackend::addIceCandidateSucceeded): |
| (WebCore::PeerConnectionBackend::addIceCandidateFailed): |
| (WebCore::PeerConnectionBackend::newICECandidate): |
| (WebCore::PeerConnectionBackend::doneGatheringCandidates): |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::queuedCreateOffer): |
| (WebCore::RTCPeerConnection::queuedCreateAnswer): |
| (WebCore::RTCPeerConnection::queuedSetLocalDescription): |
| (WebCore::RTCPeerConnection::queuedSetRemoteDescription): |
| (WebCore::RTCPeerConnection::queuedAddIceCandidate): |
| |
| 2017-04-12 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Crash at WebCore::ResourceHandle::clearClient() when streaming live video from dailymotion |
| https://bugs.webkit.org/show_bug.cgi?id=169725 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Make ResourceHandleStreamingClient refcounted and add an invalidate method to do the cleanup in the networking |
| thread while keeping a reference. |
| |
| * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: |
| (webKitWebSrcStop): Call invalidate before reseting client pointer. |
| (webKitWebSrcStart): Ditto. |
| (ResourceHandleStreamingClient::ResourceHandleStreamingClient): Remove all cleanup code after the run loop run call. |
| (ResourceHandleStreamingClient::~ResourceHandleStreamingClient): Just detach the thread. |
| (ResourceHandleStreamingClient::invalidate): Schedule a task on the networking thread to clean up and fiish the |
| run loop, protecting this. |
| (ResourceHandleStreamingClient::setDefersLoading): Protect this. |
| (ResourceHandleStreamingClient::didReceiveResponse): Do nothing if client was invalidated. |
| (ResourceHandleStreamingClient::didReceiveBuffer): Ditto. |
| (ResourceHandleStreamingClient::didFinishLoading): Ditto. |
| |
| 2017-05-01 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] ECDSA signing and verification support |
| https://bugs.webkit.org/show_bug.cgi?id=171103 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Implement WebCrypto ECDSA support for configurations that |
| are using libgcrypt. |
| |
| For signing, the provided data is first hashed with the specified |
| digest algorithm and embedded into a data s-expression. It's then |
| passed to gcry_pk_sign() along with the private key, returning a |
| sig-val s-expression. The r and s parameters are then retrieved from |
| that sig-val and their data extracted and concatenated in the output |
| Vector<>. |
| |
| For verification, the data is again hashed and embedded into a data |
| s-expression. The r and s parameters are extracted from the passed-in |
| signature Vector<> and embedded into a sig-val s-expression. The data |
| and sig-val s-expressions are then passed to gcry_pk_verify() along |
| with the public key. The verification succeeds if no error is returned |
| and fails if the returned error code is GPG_ERR_BAD_SIGNATURE. |
| |
| * crypto/gcrypt/CryptoAlgorithmECDSAGCrypt.cpp: |
| (WebCore::hashCryptoDigestAlgorithm): |
| (WebCore::hashAlgorithmName): |
| (WebCore::mpiData): |
| (WebCore::gcryptSign): |
| (WebCore::gcryptVerify): |
| (WebCore::CryptoAlgorithmECDSA::platformSign): |
| (WebCore::CryptoAlgorithmECDSA::platformVerify): |
| |
| 2017-05-01 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] HKDF bit derivation support |
| https://bugs.webkit.org/show_bug.cgi?id=171074 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Implement bit derivation support for the HKDF algorithm for configurations |
| that use libgcrypt. |
| |
| libgcrypt doesn't provide HKDF support out of the box, so we have to |
| implement the two steps manually. In the first one, we retrieve the |
| pseudo-random key by using the specified MAC algorithm with the salt data |
| as the key and the key data as the input keying material. |
| |
| In the expand step, we do the required amount of iterations to derive |
| a sufficient amount of data, using the same MAC algorithm with the |
| pseudo-random key from the previous step on the data we compose from the |
| previous block data, the info data, and the current iteration value. The |
| resulting blocks are appended together until they can be clipped to the |
| desired output length. |
| |
| * crypto/gcrypt/CryptoAlgorithmHKDFGCrypt.cpp: |
| (WebCore::macAlgorithmForHashFunction): |
| (WebCore::gcryptDeriveBits): |
| (WebCore::CryptoAlgorithmHKDF::platformDeriveBits): |
| |
| 2017-05-01 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] ECDH bit derivation support |
| https://bugs.webkit.org/show_bug.cgi?id=171070 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Implement bit derivation support for the ECDH algorithm for configurations |
| that use libgcrypt. |
| |
| This is done by retrieving the private key data and wrapping it in a new |
| data s-expression. That's then encrypted with the public key, and the |
| returned s-expression contains the shared point data. That data is then |
| decoded into an EC point, from which the x-coordinate is retrieved. This |
| coordinate data is finally our bit derivation result. |
| |
| * crypto/gcrypt/CryptoAlgorithmECDHGCrypt.cpp: |
| (WebCore::gcryptDerive): |
| (WebCore::CryptoAlgorithmECDH::platformDeriveBits): |
| |
| 2017-05-01 Youenn Fablet <youenn@apple.com> |
| |
| Ensure RealtimeOutgoingVideoSource sends a black frame when its related source is muted |
| https://bugs.webkit.org/show_bug.cgi?id=171497 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by updated test. |
| |
| When the track is being muted or disabled, send a black frame explicitly. |
| VideoToolBox sometimes does not output a frame until it receives the other. |
| That is why we end up sending two frames, the second asynchronously so that libwebrtc will not skip it. |
| Also storing the rotation so that we keep the same rotation for black frames. |
| Storing width and height for consistency as well. |
| |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: |
| (WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource): |
| (WebCore::RealtimeOutgoingVideoSource::setSource): |
| (WebCore::RealtimeOutgoingVideoSource::stop): |
| (WebCore::RealtimeOutgoingVideoSource::sourceMutedChanged): |
| (WebCore::RealtimeOutgoingVideoSource::sourceEnabledChanged): |
| (WebCore::RealtimeOutgoingVideoSource::setSizeFromSource): |
| (WebCore::RealtimeOutgoingVideoSource::sendBlackFrame): |
| (WebCore::RealtimeOutgoingVideoSource::sendFrame): |
| (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: |
| |
| 2017-05-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Simplify Resource Timing handling of cached resource |
| https://bugs.webkit.org/show_bug.cgi?id=171526 |
| |
| Reviewed by Youenn Fablet. |
| |
| * loader/DocumentThreadableLoader.cpp: |
| (WebCore::DocumentThreadableLoader::loadRequest): |
| * loader/SubresourceLoader.cpp: |
| (WebCore::SubresourceLoader::init): |
| (WebCore::SubresourceLoader::reportResourceTiming): |
| Use auto in ResourceTiming construction. |
| Eliminate an outdated comment. |
| |
| * loader/cache/CachedResourceLoader.cpp: |
| (WebCore::CachedResourceLoader::requestResource): |
| We can avoid the checks around the request.origin. It should already |
| be the cases we were checking and asserting because of login in |
| CachedResourceLoader::prepareFetch. |
| |
| 2017-05-01 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r216024. |
| |
| This change caused ios-simulator LayoutTests to exit early |
| with assertion failures. |
| |
| Reverted changeset: |
| |
| "Add audio device change notifications to AudioSession." |
| https://bugs.webkit.org/show_bug.cgi?id=171403 |
| http://trac.webkit.org/changeset/216024 |
| |
| 2017-05-01 Timothy Horton <timothy_horton@apple.com> |
| |
| Expose viewport-fit instead of clip-to-safe-area |
| https://bugs.webkit.org/show_bug.cgi?id=171503 |
| <rdar://problem/31918249> |
| |
| Reviewed by Simon Fraser. |
| |
| Tests: fast/viewport/ios/viewport-fit-auto.html |
| fast/viewport/ios/viewport-fit-contain.html |
| fast/viewport/ios/viewport-fit-cover.html |
| |
| * dom/ConstantPropertyMap.cpp: |
| (WebCore::ConstantPropertyMap::buildValues): |
| (WebCore::ConstantPropertyMap::updateConstantsForUnobscuredSafeAreaInsets): |
| (WebCore::ConstantPropertyMap::didChangeSafeAreaInsets): |
| (WebCore::ConstantPropertyMap::updateConstantsForObscuredInsets): Deleted. |
| (WebCore::ConstantPropertyMap::didChangeObscuredInsets): Deleted. |
| * dom/ConstantPropertyMap.h: |
| Retrieve the safe area insets from page, instead of assuming that we should |
| just expose the entire obscured inset. Also, do some renames. |
| |
| * dom/ViewportArguments.cpp: |
| (WebCore::ViewportArguments::resolve): |
| (WebCore::parseViewportFitValue): |
| (WebCore::setViewportFeature): |
| * dom/ViewportArguments.h: |
| (WebCore::ViewportArguments::operator==): |
| * page/ChromeClient.h: |
| * page/FrameView.cpp: |
| (WebCore::FrameView::enableSpeculativeTilingIfNeeded): |
| (WebCore::FrameView::calculateExtendedBackgroundMode): |
| (WebCore::FrameView::setClipToSafeArea): Deleted. |
| * page/FrameView.h: |
| * page/ViewportConfiguration.cpp: |
| (WebCore::ViewportConfiguration::updateConfiguration): |
| (WebCore::operator<<): |
| (WebCore::ViewportConfiguration::description): |
| (WebCore::ViewportConfiguration::dump): |
| * page/ViewportConfiguration.h: |
| (WebCore::ViewportConfiguration::avoidsUnsafeArea): |
| (WebCore::ViewportConfiguration::Parameters::Parameters): |
| (WebCore::ViewportConfiguration::clipToSafeArea): Deleted. |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::updateRootContentLayerClipping): |
| * rendering/RenderObject.cpp: |
| (WebCore::RenderObject::repaintUsingContainer): |
| Un-do changes to support clip-to-safe-area, and instead implement |
| a new viewport-fit argument in the viewport meta tag, which takes |
| "auto", "contain", and "cover". "auto" and "contain" cause web content |
| to lay out excluding the safe area inset from the layout size, while |
| "cover" causes web content to expand into the unsafe area. |
| |
| * page/Page.cpp: |
| (WebCore::Page::setUnobscuredSafeAreaInsets): |
| (WebCore::Page::setObscuredInsets): Deleted. |
| * page/Page.h: |
| (WebCore::Page::setObscuredInsets): |
| (WebCore::Page::unobscuredSafeAreaInsets): |
| Keep safe area and obscured insets separately. |
| |
| 2017-05-01 Chris Dumez <cdumez@apple.com> |
| |
| Documents created using DOMParser.parseFromString should inherit their context document's origin / URL |
| https://bugs.webkit.org/show_bug.cgi?id=171499 |
| |
| Reviewed by Sam Weinig. |
| |
| Documents created using DOMParser.parseFromString should inherit their context document's |
| origin / URL: |
| - https://w3c.github.io/DOM-Parsing/#dom-domparser-parsefromstring |
| |
| Test: fast/dom/domparser-parsefromstring-origin.html |
| |
| * xml/DOMParser.cpp: |
| (WebCore::DOMParser::parseFromString): |
| |
| 2017-05-01 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Web Inspector: ASSERT(!m_startedComposite) fails when recording on non-Cocoa Timeline |
| https://bugs.webkit.org/show_bug.cgi?id=171363 |
| |
| Reviewed by Matt Baker. |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::flushCompositingStateIncludingSubframes): Add PLATFORM(COCOA) guard. |
| |
| 2017-05-01 David Kilzer <ddkilzer@apple.com> |
| |
| Stop using strcpy() in fullyQualifiedInfoTableName() from Database.cpp |
| <https://webkit.org/b/171517> |
| |
| Reviewed by Brady Eidson. |
| |
| * Modules/webdatabase/Database.cpp: |
| (WebCore::fullyQualifiedInfoTableName): Switch from strcpy() to |
| snprintf(). |
| |
| 2017-05-01 Chris Fleizach <cfleizach@apple.com> |
| |
| AX: Support time@datetime for verbosity clarification of dates, times, and durations |
| https://bugs.webkit.org/show_bug.cgi?id=171498 |
| <rdar://problem/12985540> |
| |
| Reviewed by Joanmarie Diggs. |
| |
| Expose the datetime attribute value. |
| |
| Test: accessibility/datetime-attribute.html |
| |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::datetimeAttributeValue): |
| * accessibility/AccessibilityObject.h: |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored): |
| (WebCore::AccessibilityRenderObject::determineAccessibilityRole): |
| * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: |
| (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]): |
| (-[WebAccessibilityObjectWrapper accessibilityDatetimeValue]): |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: |
| (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]): |
| (createAccessibilityRoleMap): |
| (-[WebAccessibilityObjectWrapper subrole]): |
| (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): |
| |
| 2017-05-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| RejectedPromiseTracker should produce better callstacks and avoid capturing callstacks unless there is a debugger/inspector |
| https://bugs.webkit.org/show_bug.cgi?id=171416 |
| <rdar://problem/31899425> |
| |
| Reviewed by Saam Barati and Brian Burg. |
| |
| Test: inspector/console/message-stack-trace.html |
| |
| * dom/RejectedPromiseTracker.cpp: |
| (WebCore::UnhandledPromise::UnhandledPromise): |
| (WebCore::UnhandledPromise::callStack): |
| Switch to RefPtr to allow not capturing the stack. |
| |
| (WebCore::createScriptCallStackFromReason): |
| Use the VM's lastException if the value in the exception is the |
| rejected promise value. Using the Exception call stack is important |
| because uncaught exceptions in promise rejections trigger a built-in |
| try/catch and re-enter JavaScript before passing the Error through |
| to the RejectionTracker. When possible, we don't want to capture the |
| new stack originating from the try/catch. Instead, we want the stack |
| from before the try/catch when the error was created. |
| |
| * dom/ScriptExecutionContext.h: |
| * dom/ScriptExecutionContext.cpp: |
| (WebCore::ScriptExecutionContext::reportUnhandledPromiseRejection): |
| Switch to a pointer since the stack could be empty. |
| |
| 2017-05-01 Jer Noble <jer.noble@apple.com> |
| |
| Unreviewed build fix after r216033. |
| |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::create): |
| |
| 2017-05-01 Jer Noble <jer.noble@apple.com> |
| |
| Use AVAudioSession to enumerate audio capture devices on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=170861 |
| <rdar://problem/31653658> |
| |
| Reviewed by Eric Carlson. |
| |
| Hook up the new AVAudioSessionCaptureDeviceManager class to CoreAudioCaptureSource and to the (increasingly ill-named) |
| RealtimeMediaSourceCenterMac. |
| |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::create): |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| (WebCore::RealtimeMediaSourceCenterMac::setUseAVFoundationAudioCapture): |
| |
| 2017-05-01 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| [ATK] Expose values of aria-rowcount, aria-colcount, aria-rowindex, aria-colindex, aria-rowspan, and aria-colspan as object attributes |
| https://bugs.webkit.org/show_bug.cgi?id=171496 |
| |
| Reviewed by Chris Fleizach. |
| |
| Expose valid, author-provided values as an object attribute. In order to distinguish |
| author-provided values from the default returned by WebCore Accessibility (1), change |
| the default return value to -1. We cannot return 0 because the ARIA spec states that |
| 0 is a valid value for authors to provide to indicate that the cell spans the remaining |
| rows in the row group. |
| |
| Also removed some legacy code. The "layout-guess" attribute was needed and expected |
| as a way for AT-SPI2-based assistive technologies to identify layout tables. WebCore |
| Accessibility does not expose tables which are purely for layout as accessible tables, |
| and WebKitGtk uses that implementation, thus this attribute is no longer relevant. |
| |
| No new tests. Unskipped existing test which is now passing. |
| |
| * accessibility/AccessibilityARIAGridCell.cpp: |
| (WebCore::AccessibilityARIAGridCell::ariaRowSpanWithRowIndex): |
| (WebCore::AccessibilityARIAGridCell::columnIndexRange): |
| * accessibility/AccessibilityTableCell.cpp: |
| (WebCore::AccessibilityTableCell::ariaColumnSpan): |
| (WebCore::AccessibilityTableCell::ariaRowSpan): |
| * accessibility/AccessibilityTableCell.h: |
| * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: |
| (webkitAccessibleGetAttributes): |
| |
| 2017-05-01 Jer Noble <jer.noble@apple.com> |
| |
| Add audio device change notifications to AudioSession. |
| https://bugs.webkit.org/show_bug.cgi?id=171403 |
| |
| Reviewed by Eric Carlson. |
| |
| Add notifications to AudioSession which fire when the current input and output audio devices |
| change. Also add a notification when audio services are lost (which will only fire on iOS). |
| Take this opportunity to make the existing hardwareMutedStateDidChange() notification be |
| platform agnostic, to move the outputDeviceSupportsLowPowerMode() code from AudioHardwareListener, |
| and to do a few more clean-ups of the AudioSession code. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::HTMLMediaElement): |
| (WebCore::HTMLMediaElement::~HTMLMediaElement): |
| * html/HTMLMediaElement.h: |
| * platform/audio/AudioSession.cpp: |
| (WebCore::AudioSession::AudioSession): |
| * platform/audio/AudioSession.h: |
| (WebCore::AudioSession::Observer::hardwareMutedStateDidChange): |
| (WebCore::AudioSession::Observer::audioInputDeviceChanged): |
| (WebCore::AudioSession::Observer::audioOutputDeviceChanged): |
| (WebCore::AudioSession::Observer::audioServicesLost): |
| (WebCore::AudioSession::Observer::audioServicesReset): |
| (WebCore::AudioSession::MutedStateObserver::~MutedStateObserver): Deleted. |
| * platform/audio/ios/AudioSessionIOS.mm: |
| (WebCore::AudioSessionPrivate::AudioSessionPrivate): |
| (WebCore::AudioSession::AudioSession): |
| (WebCore::AudioSession::setCategoryOverride): |
| (WebCore::AudioSession::categoryOverride): |
| (WebCore::AudioSession::isMuted): |
| (WebCore::AudioSession::outputDeviceSupportsLowPowerMode): |
| (WebCore::AudioSession::addObserver): |
| (WebCore::AudioSession::removeObserver): |
| * platform/audio/mac/AudioSessionMac.mm: Renamed from Source/WebCore/platform/audio/mac/AudioSessionMac.cpp. |
| (WebCore::defaultDevice): |
| (WebCore::AudioSessionPrivate::AudioSessionPrivate): |
| (WebCore::AudioSession::AudioSession): |
| (WebCore::AudioSession::~AudioSession): |
| (WebCore::AudioSession::category): |
| (WebCore::AudioSession::setCategory): |
| (WebCore::AudioSession::categoryOverride): |
| (WebCore::AudioSession::setCategoryOverride): |
| (WebCore::AudioSession::sampleRate): |
| (WebCore::AudioSession::bufferSize): |
| (WebCore::AudioSession::numberOfOutputChannels): |
| (WebCore::AudioSession::tryToSetActive): |
| (WebCore::AudioSession::preferredBufferSize): |
| (WebCore::AudioSession::setPreferredBufferSize): |
| (WebCore::AudioSession::isMuted): |
| (WebCore::currentDeviceSupportsLowPowerBufferSize): |
| (WebCore::AudioSession::outputDeviceSupportsLowPowerMode): |
| (WebCore::AudioSession::addObserver): |
| (WebCore::AudioSession::removeObserver): |
| |
| 2017-05-01 Chris Dumez <cdumez@apple.com> |
| |
| Do not dispatch SVG load event in frameless documents |
| https://bugs.webkit.org/show_bug.cgi?id=171505 |
| <rdar://problem/31799776> |
| |
| Reviewed by Andreas Kling. |
| |
| We should not dispatch SVG load events in frameless documents. <https://trac.webkit.org/changeset/173028/webkit> |
| took care of most load events but forgot the SVG load event. |
| |
| Test: fast/dom/domparser-parsefromstring-svg-load-event.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::implicitClose): |
| |
| 2017-05-01 Chris Dumez <cdumez@apple.com> |
| |
| Remove some usage of PassRefPtr in editing code |
| https://bugs.webkit.org/show_bug.cgi?id=171490 |
| |
| Reviewed by Darin Adler. |
| |
| Remove some usage of PassRefPtr in editing code. |
| |
| * dom/DocumentMarkerController.cpp: |
| (WebCore::DocumentMarkerController::markersInRange): |
| (DocumentMarkerController::hasMarkers): |
| (DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange): |
| * dom/DocumentMarkerController.h: |
| * editing/AlternativeTextController.cpp: |
| (WebCore::AlternativeTextController::isSpellingMarkerAllowed): |
| (WebCore::AlternativeTextController::show): |
| (WebCore::AlternativeTextController::applyAlternativeTextToRange): |
| (WebCore::AlternativeTextController::timerFired): |
| (WebCore::AlternativeTextController::handleAlternativeTextUIResult): |
| (WebCore::AlternativeTextController::recordAutocorrectionResponse): |
| (WebCore::AlternativeTextController::markReversed): |
| (WebCore::AlternativeTextController::markCorrection): |
| (WebCore::AlternativeTextController::recordSpellcheckerResponseForModifiedCorrection): |
| (WebCore::AlternativeTextController::processMarkersOnTextToBeReplacedByResult): |
| (WebCore::AlternativeTextController::applyDictationAlternative): |
| * editing/AlternativeTextController.h: |
| (WebCore::AlternativeTextController::UNLESS_ENABLED): |
| * editing/ApplyStyleCommand.cpp: |
| (WebCore::createFontElement): |
| (WebCore::createStyleSpanElement): |
| (WebCore::ApplyStyleCommand::ApplyStyleCommand): |
| (WebCore::copyStyleOrCreateEmpty): |
| (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): |
| (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange): |
| (WebCore::ApplyStyleCommand::removeConflictingInlineStyleFromRun): |
| (WebCore::ApplyStyleCommand::removeInlineStyleFromElement): |
| (WebCore::ApplyStyleCommand::highestAncestorWithConflictingInlineStyle): |
| (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): |
| (WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode): |
| (WebCore::ApplyStyleCommand::removeInlineStyle): |
| (WebCore::ApplyStyleCommand::shouldSplitTextElement): |
| (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): |
| (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded): |
| (WebCore::ApplyStyleCommand::positionToComputeInlineStyleChange): |
| (WebCore::ApplyStyleCommand::applyInlineStyleChange): |
| * editing/ApplyStyleCommand.h: |
| (WebCore::ApplyStyleCommand::create): |
| (WebCore::ApplyStyleCommand::shouldRemoveInlineStyleFromElement): |
| * editing/CompositeEditCommand.cpp: |
| (WebCore::CompositeEditCommand::applyCommandToComposite): |
| (WebCore::CompositeEditCommand::applyStyledElement): |
| (WebCore::CompositeEditCommand::removeStyledElement): |
| (WebCore::CompositeEditCommand::replaceElementWithSpanPreservingChildrenAndAttributes): |
| (WebCore::CompositeEditCommand::inputText): |
| (WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers): |
| (WebCore::CompositeEditCommand::pushAnchorElementDown): |
| * editing/CompositeEditCommand.h: |
| * editing/DeleteSelectionCommand.cpp: |
| (WebCore::DeleteSelectionCommand::originalStringForAutocorrectionAtBeginningOfSelection): |
| * editing/DictationCommand.cpp: |
| (WebCore::DictationCommand::insertTextRunWithoutNewlines): |
| * editing/EditingStyle.cpp: |
| (WebCore::copyEditingProperties): |
| (WebCore::copyPropertiesFromComputedStyle): |
| (WebCore::extractPropertyValue): |
| (WebCore::HTMLAttributeEquivalent::attributeValueAsCSSValue): |
| (WebCore::HTMLFontSizeEquivalent::attributeValueAsCSSValue): |
| (WebCore::EditingStyle::setStyle): |
| (WebCore::EditingStyle::copy): |
| (WebCore::EditingStyle::extractAndRemoveBlockProperties): |
| (WebCore::EditingStyle::extractAndRemoveTextDirection): |
| (WebCore::EditingStyle::mergeInlineStyleOfElement): |
| (WebCore::extractEditingProperties): |
| (WebCore::EditingStyle::styleAtSelectionStart): |
| (WebCore::getPropertiesNotIn): |
| * editing/EditingStyle.h: |
| * editing/Editor.cpp: |
| (WebCore::Editor::handleTextEvent): |
| (WebCore::Editor::replaceSelectionWithFragment): |
| (WebCore::Editor::insertOrderedList): |
| (WebCore::Editor::insertUnorderedList): |
| (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): |
| (WebCore::correctSpellcheckingPreservingTextCheckingParagraph): |
| (WebCore::Editor::markAndReplaceFor): |
| (WebCore::Editor::changeBackToReplacedString): |
| (WebCore::Editor::updateMarkersForWordsAffectedByEditing): |
| (WebCore::Editor::rangeForPoint): |
| * editing/Editor.h: |
| * editing/ModifySelectionListLevel.cpp: |
| (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevel): |
| (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelOrdered): |
| (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelUnordered): |
| * editing/ModifySelectionListLevel.h: |
| * editing/SpellChecker.cpp: |
| (WebCore::SpellChecker::requestCheckingFor): |
| (WebCore::SpellChecker::didCheckSucceed): |
| * editing/SpellChecker.h: |
| (WebCore::SpellCheckRequest::checkingRange): |
| (WebCore::SpellCheckRequest::paragraphRange): |
| (WebCore::SpellCheckRequest::rootEditableElement): |
| * editing/SpellingCorrectionCommand.cpp: |
| (WebCore::SpellingCorrectionCommand::SpellingCorrectionCommand): |
| (WebCore::SpellingCorrectionCommand::willApplyCommand): |
| (WebCore::SpellingCorrectionCommand::doApply): |
| (WebCore::SpellingCorrectionCommand::targetRanges): |
| * editing/SpellingCorrectionCommand.h: |
| (WebCore::SpellingCorrectionCommand::create): |
| * editing/SurroundingText.h: |
| * editing/TextCheckingHelper.cpp: |
| (WebCore::TextCheckingParagraph::expandRangeToNextEnd): |
| (WebCore::TextCheckingParagraph::rangeLength): |
| (WebCore::TextCheckingParagraph::paragraphRange): |
| (WebCore::TextCheckingParagraph::subrange): |
| (WebCore::TextCheckingParagraph::offsetTo): |
| (WebCore::TextCheckingParagraph::offsetAsRange): |
| (WebCore::TextCheckingParagraph::text): |
| (WebCore::TextCheckingParagraph::checkingStart): |
| * editing/TextCheckingHelper.h: |
| * editing/TypingCommand.cpp: |
| (WebCore::TypingCommand::insertTextRunWithoutNewlines): |
| * editing/cocoa/HTMLConverter.mm: |
| (HTMLConverterCaches::computedStylePropertyForElement): |
| (HTMLConverterCaches::inlineStylePropertyForElement): |
| * page/ios/FrameIOS.mm: |
| (WebCore::Frame::interpretationsForCurrentRoot): |
| |
| 2017-05-01 Jer Noble <jer.noble@apple.com> |
| |
| Add notifications from CaptureDeviceManager (and subclasses) when device lists change |
| https://bugs.webkit.org/show_bug.cgi?id=171442 |
| |
| Reviewed by Youenn Fablet. |
| |
| Add a new callback-based notification to CaptureDeviceManager which fires when the underlying list |
| of devices changes. Add support for enumerating AVAudioSession capture devices. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/mediastream/CaptureDeviceManager.cpp: |
| (nextObserverToken): |
| (CaptureDeviceManager::addCaptureDeviceChangedObserver): |
| (CaptureDeviceManager::removeCaptureDeviceChangedObserver): |
| * platform/mediastream/CaptureDeviceManager.h: |
| * platform/mediastream/ios/AVAudioSessionCaptureDevice.h: Added. |
| * platform/mediastream/ios/AVAudioSessionCaptureDevice.mm: Added. |
| (WebCore::AVAudioSessionCaptureDevice::create): |
| (WebCore::AVAudioSessionCaptureDevice::AVAudioSessionCaptureDevice): |
| * platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h: Added. |
| * platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: Added. |
| (-[WebAVAudioSessionAvailableInputsListener initWithCallback:]): |
| (-[WebAVAudioSessionAvailableInputsListener invalidate]): |
| (-[WebAVAudioSessionAvailableInputsListener observeValueForKeyPath:ofObject:change:context:]): |
| (WebCore::AVAudioSessionCaptureDeviceManager::singleton): |
| (WebCore::AVAudioSessionCaptureDeviceManager::captureDevices): |
| (WebCore::AVAudioSessionCaptureDeviceManager::audioSessionCaptureDevices): |
| (WebCore::AVAudioSessionCaptureDeviceManager::audioSessionDeviceWithUID): |
| (WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices): |
| * platform/mediastream/mac/AVCaptureDeviceManager.mm: |
| (WebCore::AVCaptureDeviceManager::deviceConnected): |
| (WebCore::AVCaptureDeviceManager::deviceDisconnected): |
| * platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp: |
| (WebCore::CoreAudioCaptureDeviceManager::refreshAudioCaptureDevices): |
| (WebCore::CoreAudioCaptureDeviceManager::devicesChanged): |
| |
| 2017-05-01 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| AX: AccessibilityTable::ariaRowCount() and ariaColumnCount() should not return -1 unless that is the author-provided value |
| https://bugs.webkit.org/show_bug.cgi?id=171475 |
| |
| Reviewed by Chris Fleizach. |
| |
| If the author has provided a valid value, return it. Otherwise, return 0. |
| |
| No new tests needed. Update existing test expectations to reflect the change. |
| |
| * accessibility/AccessibilityTable.cpp: |
| (WebCore::AccessibilityTable::ariaColumnCount): |
| (WebCore::AccessibilityTable::ariaRowCount): |
| |
| 2017-05-01 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| AX: Implement support for ARIA "figure" and "term" roles; update AXRoleDescription mapping for "feed" role |
| https://bugs.webkit.org/show_bug.cgi?id=171183 |
| |
| Reviewed by Chris Fleizach. |
| |
| Create FeedRole, FigureRole, and TermRole and map them on the Mac and Gtk |
| ports. Also rename AccessibilityObject::isFigure() to isFigureElement() |
| for clarity as this method is specific to the HTML element and not the role. |
| |
| No new tests needed: We have existing tests that cover mappings. Add new test cases |
| to roles-exposed.html, xml-roles-exposed.html, and roles-computedRoleString.html. |
| |
| * English.lproj/Localizable.strings: |
| * accessibility/AccessibilityNodeObject.cpp: |
| (WebCore::AccessibilityNodeObject::captionForFigure): |
| (WebCore::AccessibilityNodeObject::alternativeText): |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::initializeRoleMap): |
| (WebCore::AccessibilityObject::isFigureElement): Added. |
| (WebCore::AccessibilityObject::isFigure): Deleted. |
| * accessibility/AccessibilityObject.h: |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::exposesTitleUIElement): |
| (WebCore::AccessibilityRenderObject::titleUIElement): |
| (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored): |
| (WebCore::AccessibilityRenderObject::determineAccessibilityRole): |
| * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: |
| (atkRole): |
| * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: |
| (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]): |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: |
| (createAccessibilityRoleMap): |
| (-[WebAccessibilityObjectWrapper subrole]): |
| (-[WebAccessibilityObjectWrapper roleDescription]): |
| * platform/LocalizedStrings.cpp: |
| (WebCore::AXFeedText): |
| * platform/LocalizedStrings.h: |
| |
| 2017-04-30 Chris Dumez <cdumez@apple.com> |
| |
| Drop support for legacy ClientRect / ClientRectList |
| https://bugs.webkit.org/show_bug.cgi?id=171418 |
| |
| Reviewed by Sam Weinig. |
| |
| Drop support for legacy ClientRect / ClientRectList types now we use |
| DOMRect everywhere. |
| |
| * CMakeLists.txt: |
| * DerivedSources.cpp: |
| * DerivedSources.make: |
| * WebCore.xcodeproj/project.pbxproj: |
| * dom/ClientRect.cpp: Removed. |
| * dom/ClientRect.h: Removed. |
| * dom/ClientRect.idl: Removed. |
| * dom/ClientRectList.cpp: Removed. |
| * dom/ClientRectList.h: Removed. |
| * dom/ClientRectList.idl: Removed. |
| * dom/DOMAllInOne.cpp: |
| * dom/Element.cpp: |
| * html/HTMLMediaElement.cpp: |
| * html/track/VTTRegion.cpp: |
| * page/DragController.cpp: |
| |
| 2017-04-30 Zalan Bujtas <zalan@apple.com> |
| |
| Initialize a new layout state while bailing out of simple line layout only when needed. |
| https://bugs.webkit.org/show_bug.cgi?id=171481 |
| <rdar://problem/31906382> |
| |
| '-webkit-border-fit: lines' requires inline box tree. |
| We normally bail out of simple line layout early when we see this property. |
| When this property is dynamically set and we already have a simple line layout context, |
| RenderBlockFlow::ensureLineBoxes() takes care of the switch by calling layoutLineBoxes(). |
| This patch makes sure that we create the layout state for this (forced)line layout only when |
| we don't yet have one. |
| |
| Reviewed by Antti Koivisto. |
| |
| Test: fast/multicol/simple-line-layout-switch-to-normal-layout-while-inside-layout.html |
| |
| * rendering/RenderBlockFlow.cpp: |
| (WebCore::PaginatedLayoutStateMaintainer::PaginatedLayoutStateMaintainer): |
| (WebCore::PaginatedLayoutStateMaintainer::~PaginatedLayoutStateMaintainer): |
| (WebCore::RenderBlockFlow::ensureLineBoxes): |
| * rendering/RenderView.cpp: |
| (WebCore::RenderView::pushLayoutStateForPaginationIfNeeded): |
| (WebCore::RenderView::pushLayoutStateForPagination): Deleted. |
| * rendering/RenderView.h: |
| |
| 2017-04-30 Dan Bernstein <mitz@apple.com> |
| |
| Tried to fix the iOS build after r215992 |
| |
| * platform/ios/WebVideoFullscreenControllerAVKit.mm: |
| |
| 2017-04-30 Brady Eidson <beidson@apple.com> |
| |
| Fix r215991 |
| https://bugs.webkit.org/show_bug.cgi?id=171483 |
| |
| Unreviewed. |
| |
| * platform/spi/cf/CFNetworkSPI.h: |
| |
| 2017-04-30 Dan Bernstein <mitz@apple.com> |
| |
| Tried to fix the iOS build after r215992 |
| |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: |
| (WebAVPlayerLayerView_pictureInPicturePlayerLayerView): |
| (WebVideoFullscreenInterfaceAVKit::setupFullscreen): |
| |
| 2017-04-30 Dan Bernstein <mitz@apple.com> |
| |
| [Cocoa] Replaces uses of [get…() alloc] with alloc…Instance() |
| https://bugs.webkit.org/show_bug.cgi?id=171485 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm: |
| (WebCore::CDMSessionAVContentKeySession::contentKeySession): |
| * platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm: |
| (WebCore::MediaPlaybackTargetPickerMac::devicePicker): |
| * platform/ios/ValidationBubbleIOS.mm: |
| (-[WebValidationBubbleTapRecognizer initWithPopoverController:]): |
| (WebCore::ValidationBubble::ValidationBubble): |
| * platform/ios/WebVideoFullscreenControllerAVKit.mm: |
| (WebVideoFullscreenControllerContext::setUpFullscreen): |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: |
| (WebAVPlayerLayerView_pictureInPicturePlayerLayerView): |
| (WebVideoFullscreenInterfaceAVKit::setupFullscreen): |
| * platform/mac/WebVideoFullscreenInterfaceMac.mm: |
| (-[WebVideoFullscreenInterfaceMacObjC setUpPIPForVideoView:withFrame:inWindow:]): |
| * platform/network/ios/PreviewConverter.mm: |
| (WebCore::PreviewConverter::PreviewConverter): |
| * rendering/RenderThemeIOS.mm: |
| (WebCore::iconForAttachment): |
| |
| 2017-04-30 Brady Eidson <beidson@apple.com> |
| |
| Updates to _WKWebsiteDataStoreConfiguration cookie storage location SPI. |
| <rdar://problem/31906397> and https://bugs.webkit.org/show_bug.cgi?id=171483 |
| |
| Reviewed by Geoff Garen (and kind of Andy Estes). |
| |
| No new tests (Covered by API test). |
| |
| * platform/spi/cf/CFNetworkSPI.h: |
| |
| 2017-04-30 Dan Bernstein <mitz@apple.com> |
| |
| <rdar://problem/31906525> WebCore-7604.1.19 has failed to build |
| |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (-[WebItemProviderPasteboard setItemsUsingRegistrationInfoLists:]): Resolved type ambiguity |
| by using allocUIItemProviderInstance() instead of [getUIItemProviderClass() alloc]. |
| |
| 2017-04-30 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| [ATK] Implement support for aria-autocomplete |
| https://bugs.webkit.org/show_bug.cgi?id=171167 |
| |
| Reviewed by Chris Fleizach. |
| |
| Expose ATK_STATE_SUPPORTS_AUTOCOMPLETION in the state set, and the value |
| of aria-autocomplete as an object attribute, for elements which indicate |
| they support autocompletion. |
| |
| Test: accessibility/gtk/aria-autocomplete.html |
| |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::supportsARIAAutoComplete): |
| (WebCore::AccessibilityObject::ariaAutoCompleteValue): |
| * accessibility/AccessibilityObject.h: |
| * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: |
| (webkitAccessibleGetAttributes): |
| (setAtkStateSetFromCoreObject): |
| * html/HTMLAttributeNames.in: |
| |
| 2017-04-30 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| [ATK] ARIA treegrid role should be exposed as ATK_ROLE_TREE_TABLE; not ATK_ROLE_TABLE |
| https://bugs.webkit.org/show_bug.cgi?id=171170 |
| |
| Reviewed by Chris Fleizach. |
| |
| AccessibilityTable::roleValue() was returning GridRole for both grid and treegrid. |
| Change this so that GridRole is returned for grid and TreeGridRole is returned for |
| treegrid. Add TreeGridRole to, or call isTable() in, methods where the behavior |
| should be the same as GridRole. |
| |
| Test: accessibility/gtk/interface-table.html |
| |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::selectedChildren): |
| * accessibility/AccessibilityTable.cpp: |
| (WebCore::AccessibilityTable::roleValue): |
| * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: |
| (atkRole): |
| (getInterfaceMaskFromObject): |
| * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: |
| (-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]): |
| (-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]): |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: |
| (createAccessibilityRoleMap): |
| |
| 2017-04-30 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| [ATK] Emit object:state-changed:busy event when aria-busy value changes |
| https://bugs.webkit.org/show_bug.cgi?id=171181 |
| |
| Reviewed by Chris Fleizach. |
| |
| Emit object:state-changed:busy for AXElementBusyChanged notifications. |
| |
| Test: accessibility/gtk/aria-busy-changed-notification.html |
| |
| * accessibility/atk/AXObjectCacheAtk.cpp: |
| (WebCore::AXObjectCache::postPlatformNotification): |
| |
| 2017-04-29 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Zero out PerformanceResourceTiming properties for cached cross-origin responses without Timing-Allow-Origin |
| https://bugs.webkit.org/show_bug.cgi?id=171394 |
| |
| Reviewed by Youenn Fablet. |
| |
| * loader/ResourceTiming.cpp: |
| (WebCore::ResourceTiming::fromCache): |
| (WebCore::ResourceTiming::ResourceTiming): |
| * loader/ResourceTiming.h: |
| * loader/cache/CachedResourceLoader.cpp: |
| (WebCore::CachedResourceLoader::requestResource): |
| Include the timing-allow-origin check for cached responses. |
| Also, avoid including an extra entry for an ongoing cached resource |
| load, since when that load completes it should be reported. |
| |
| 2017-04-29 Youenn Fablet <youenn@apple.com> |
| |
| Readd assertion removed accidentally in r215955 |
| https://bugs.webkit.org/show_bug.cgi?id=171466 |
| |
| Reviewed by Eric Carlson. |
| |
| Unreviewed. |
| |
| * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: |
| (WebCore::MockRealtimeVideoSourceMac::orientationChanged): Improved FIXME after review. |
| |
| 2017-04-29 Andy Estes <aestes@apple.com> |
| |
| [macOS] Picture-in-picture should be disabled in WebPlaybackControlsManager during external media playback |
| https://bugs.webkit.org/show_bug.cgi?id=171468 |
| <rdar://problem/31900349> |
| |
| Reviewed by Eric Carlson. |
| |
| * platform/mac/WebPlaybackControlsManager.h: Declared canTogglePictureInPicture as a |
| readwrite property. |
| * platform/mac/WebPlaybackControlsManager.mm: Synthesize canTogglePictureInPicture. |
| (-[WebPlaybackControlsManager canTogglePictureInPicture]): Deleted. |
| * platform/mac/WebPlaybackSessionInterfaceMac.h: |
| * platform/mac/WebPlaybackSessionInterfaceMac.mm: |
| (WebCore::WebPlaybackSessionInterfaceMac::externalPlaybackChanged): Called |
| -[WebPlaybackControlsManager setCanTogglePictureInPicture:]. |
| |
| 2017-04-29 Simon Fraser <simon.fraser@apple.com> |
| |
| Fix tests broken by r215964. |
| |
| Fix copy-paste error that caused the wrong paint phase to get passed to the fire writeLayerRenderers() |
| call, causing extra renderer dumping. |
| |
| Also remove unused default arguments. |
| |
| * rendering/RenderTreeAsText.cpp: |
| (WebCore::writeLayerRenderers): |
| (WebCore::writeLayers): |
| |
| 2017-04-28 Zalan Bujtas <zalan@apple.com> |
| |
| iBooks text can overlap, sometimes columns are shifted splitting words. |
| https://bugs.webkit.org/show_bug.cgi?id=171472 |
| <rdar://problem/31096037> |
| |
| Reviewed by Antti Koivisto. |
| |
| Instead of just checking if the glyph is taller than the line, we need to ensure that both the |
| ascent and the descent have enough space (this is for -webkit-line-box-contain: glyph). |
| |
| Test: fast/text/simple-line-layout-glyph-overflows-line.html |
| |
| * rendering/SimpleLineLayout.cpp: |
| (WebCore::SimpleLineLayout::canUseForText): compute the available space for the ascent/descent |
| and check them against the ceil-ed(see FontCascade::floatWidthForSimpleText) glyph min/max y. |
| |
| 2017-04-29 Nan Wang <n_wang@apple.com> |
| |
| AX: Improve performance of addChildren()/childrenChanged() |
| https://bugs.webkit.org/show_bug.cgi?id=171443 |
| |
| Reviewed by Chris Fleizach. |
| |
| There's a lot of unnecessary work happening when childrenChanged() is being called. |
| Some of the improvements here: |
| 1. When childrenChanged() is being called on some element, we are marking its parent |
| chain dirty. However, in the addChild() method we are then clearing each child of |
| that 'dirty' parent, eventually making the entire tree dirty. |
| Added a m_subTreeDirty flag and using the needsToUpdateChildren() check to make sure |
| we are only clearing the right chain without updating the unchanged siblings. |
| 2. In the addChild() method we are calling accessibilityIsIgnored() on each child and that |
| might lead to going up the parent chain again to get necessary information. |
| Since we are already traversing the tree from top to bottom to add children, added a |
| struct to store the information and pass it to the child so to avoid unnecessary traversal. |
| 3. Reduced the amount work of ARIA text controls perform when updating its parents in childrenChanged() |
| so that we don't update a big portion of the tree while typing. |
| |
| No new tests since this didn't change any functionality. |
| |
| * accessibility/AccessibilityNodeObject.cpp: |
| (WebCore::AccessibilityNodeObject::AccessibilityNodeObject): |
| (WebCore::AccessibilityNodeObject::childrenChanged): |
| (WebCore::AccessibilityNodeObject::insertChild): |
| (WebCore::AccessibilityNodeObject::addChildren): |
| (WebCore::AccessibilityNodeObject::isDescendantOfBarrenParent): |
| * accessibility/AccessibilityNodeObject.h: |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::AccessibilityObject): |
| (WebCore::AccessibilityObject::defaultObjectInclusion): |
| (WebCore::AccessibilityObject::setIsIgnoredFromParentDataForChild): |
| * accessibility/AccessibilityObject.h: |
| (WebCore::AccessibilityIsIgnoredFromParentData::AccessibilityIsIgnoredFromParentData): |
| (WebCore::AccessibilityIsIgnoredFromParentData::isNull): |
| (WebCore::AccessibilityObject::setNeedsToUpdateSubTree): |
| (WebCore::AccessibilityObject::needsToUpdateChildren): |
| (WebCore::AccessibilityObject::setIsIgnoredFromParentData): |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::updateChildrenIfNecessary): |
| (WebCore::AccessibilityRenderObject::addChildren): |
| * accessibility/AccessibilityRenderObject.h: |
| (WebCore::AccessibilityRenderObject::setRenderObject): |
| (WebCore::AccessibilityRenderObject::needsToUpdateChildren): Deleted. |
| |
| 2017-04-29 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Move WebCore CPUTime to WTF and implement it in all the platforms |
| https://bugs.webkit.org/show_bug.cgi?id=171477 |
| |
| Reviewed by Chris Dumez. |
| |
| Move CPUTime to WTF. And rename getCPUTime to CPUTime::get(). |
| |
| * CMakeLists.txt: |
| * PlatformMac.cmake: |
| * WebCore.xcodeproj/project.pbxproj: |
| * page/ChromeClient.h: |
| * page/PerformanceMonitor.cpp: |
| (WebCore::PerformanceMonitor::PerformanceMonitor): |
| (WebCore::PerformanceMonitor::measurePostLoadCPUUsage): |
| (WebCore::PerformanceMonitor::measurePostBackgroundingCPUUsage): |
| (WebCore::PerformanceMonitor::measureCPUUsageInActivityState): |
| * page/PerformanceMonitor.h: |
| * platform/CPUMonitor.cpp: |
| (WebCore::CPUMonitor::setCPULimit): |
| (WebCore::CPUMonitor::timerFired): |
| * platform/CPUMonitor.h: |
| |
| 2017-04-28 Per Arne Vollan <pvollan@apple.com> |
| |
| Crash under WebCore::AccessibilityRenderObject::handleAriaExpandedChanged(). |
| https://bugs.webkit.org/show_bug.cgi?id=171427 |
| rdar://problem/31863417 |
| |
| Reviewed by Brent Fulgham. |
| |
| The AccessibilityRenderObject object might delete itself in handleAriaExpandedChanged() under the call |
| to the parentObject() method. This will cause a crash when accessing the object later in this method. |
| Protect the current object while executing arbitrary event code. |
| |
| Test: accessibility/accessibility-crash-setattribute.html |
| |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::handleAriaExpandedChanged): |
| |
| 2017-04-28 Chris Dumez <cdumez@apple.com> |
| |
| Diagnostic logging of navigations is too verbose |
| https://bugs.webkit.org/show_bug.cgi?id=171455 |
| <rdar://problem/31543815> |
| |
| Reviewed by Andreas Kling. |
| |
| Diagnostic logging of navigation is too verbose. We log things that are not actually user |
| navigations (e.g. speculative loads, bookmark icon fetches, ...). To address the issue, |
| we now only log *observable* loads. We do so by only logging if the page is visible or |
| if it becomes visible. |
| |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::loadWithDocumentLoader): |
| (WebCore::logNavigation): Deleted. |
| * page/Page.cpp: |
| (WebCore::Page::setIsVisibleInternal): |
| (WebCore::Page::logNavigation): |
| (WebCore::Page::mainFrameLoadStarted): |
| * page/Page.h: |
| |
| 2017-04-28 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| AX: ARIA "region" role which lacks an accessible name should not be treated as a landmark |
| https://bugs.webkit.org/show_bug.cgi?id=171180 |
| |
| Reviewed by Chris Fleizach. |
| |
| Remove mapping of LandmarkRegionRole for regions which lack an accessible name. |
| Doing so had a side effect of causing a number of DPub ARIA roles to stop being |
| mapped as ARIA landmarks. This is due to our internal role mappings, namely |
| treating the DPub ARIA landmark roles as if they were regions. Because DPub's |
| landmarks do not subclass region, and do not have the same name-from-author |
| requirement as region, create a new LandmarkDocRegionRole AccessibilityRole and |
| map DPub ARIA's generic landmarks to it. |
| |
| No new tests because we already have sufficient coverage. Several existing |
| tests were given additional test cases to cover named and unnamed regions, |
| and test expectations updated accordingly. |
| |
| * accessibility/AccessibilityNodeObject.cpp: |
| (WebCore::AccessibilityNodeObject::determineAriaRoleAttribute): |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::accessibleNameDerivesFromContent): |
| (WebCore::AccessibilityObject::isLandmark): |
| (WebCore::initializeRoleMap): |
| (WebCore::AccessibilityObject::computedRoleString): |
| * accessibility/AccessibilityObject.h: |
| * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: |
| (atkRole): |
| * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: |
| (-[WebAccessibilityObjectWrapper _accessibilityIsLandmarkRole:]): |
| (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]): |
| * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: |
| (-[WebAccessibilityObjectWrapperBase ariaLandmarkRoleDescription]): |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: |
| (createAccessibilityRoleMap): |
| (-[WebAccessibilityObjectWrapper subrole]): |
| |
| 2017-04-28 Simon Fraser <simon.fraser@apple.com> |
| |
| Enhance showLayerTree() to show fragments |
| https://bugs.webkit.org/show_bug.cgi?id=171469 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Have showLayerTree() dump fragments, like: |
| |
| normal flow list(1) |
| layer 0x11c1879c0 at (0,0) size 700x1858 backgroundClip at (0,0) size 2120x779 clip at (0,0) size 2120x779 |
| fragment 0: bounds in layer at (0,0) size 700x1858 fragment bounds at (0,0) size 700x779 |
| fragment 1: bounds in layer at (710,-779) size 700x1858 fragment bounds at (710,0) size 700x779 |
| fragment 2: bounds in layer at (1420,-1558) size 700x1858 fragment bounds at (1420,0) size 700x300 |
| RenderMultiColumnFlowThread 0x11f1f3340 at (0,0) size 700x1858 |
| |
| We want these to show before the child renderers, so factor that code into writeLayerRenderers(). |
| |
| Overloading of write() for layers doesn't help anyone, so call it writeLayer() for searchability. |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::showLayerTree): |
| * rendering/RenderLayer.h: |
| * rendering/RenderTreeAsText.cpp: |
| (WebCore::writeLayer): |
| (WebCore::writeLayerRenderers): |
| (WebCore::writeLayers): |
| * rendering/RenderTreeAsText.h: |
| |
| 2017-04-28 Simon Fraser <simon.fraser@apple.com> |
| |
| Modernize RenderTreeAsText code |
| https://bugs.webkit.org/show_bug.cgi?id=171458 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Use modern loops. More references to render objects and layers. |
| |
| * rendering/RenderTreeAsText.cpp: |
| (WebCore::write): |
| (WebCore::writeRenderNamedFlowThreads): |
| (WebCore::writeLayers): |
| (WebCore::writeSelection): |
| (WebCore::externalRepresentation): |
| |
| 2017-04-28 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Fix and re-enable data interaction unit tests |
| https://bugs.webkit.org/show_bug.cgi?id=171446 |
| <rdar://problem/31820646> |
| |
| Reviewed by Tim Horton. |
| |
| Three small tweaks to get all data interaction tests passing again (changes detailed below). |
| Fixes a failing unit test: DataInteractionTests.RespectsExternalSourceFidelityRankings. |
| |
| * page/mac/DragControllerMac.mm: |
| |
| When dropping in a plain text editable area, don't consider kUTTypeText to be a UTI supported by the destination. |
| This is because doing so would cause rich text UTIs, such as kUTTypeHTML, to match, so that the plain text area |
| would report HTML as a preferred UTI type to load when dropping rich content over it. What we want to check for |
| conformance here is really kUTTypePlainText. |
| |
| (WebCore::DragController::updatePreferredTypeIdentifiersForDragHandlingMethod): |
| * platform/Pasteboard.h: |
| * platform/ios/PasteboardIOS.mm: |
| |
| The default Pasteboard constructor no longer makes a sync call to the UI process to get the change count. |
| Instead, we introduce a new constructor that takes and sets the change count. This default constructor was used |
| from three places: Pasteboard::createForCopyAndPaste, Pasteboard::createPrivate and StaticPasteboard::create. |
| |
| The first two call sites have been refactored to first fetch the change count from the UI process and then pass |
| it in to the constructor. |
| |
| (WebCore::changeCountForPasteboard): |
| (WebCore::Pasteboard::Pasteboard): |
| (WebCore::Pasteboard::createForCopyAndPaste): |
| (WebCore::Pasteboard::createPrivate): |
| (WebCore::Pasteboard::readString): |
| (WebCore::Pasteboard::types): |
| * platform/mac/DragDataMac.mm: |
| (WebCore::typeIsAppropriateForSupportedTypes): |
| (WebCore::DragData::updatePreferredTypeIdentifiers): |
| |
| Remove the two-pass heuristic. Instead, we should follow this policy: "select the highest fidelity UTI that |
| conforms to one of the destination's supported types". |
| |
| * platform/mac/PasteboardMac.mm: |
| (WebCore::Pasteboard::Pasteboard): |
| |
| 2017-04-28 Dean Jackson <dino@apple.com> |
| |
| App crashing: Dispatch queue: com.apple.root.user-interactive-qos / vBoxConvolve / WebCore::FEGaussianBlur::platformApplySoftware() |
| https://bugs.webkit.org/show_bug.cgi?id=171461 |
| <rdar://problem/30534722> |
| |
| Reviewed by Eric Carlson. |
| |
| We're getting reports of crashes in this function, caused by null or empty data being |
| passed to vImage. Guard against this, in a way that will ASSERT in debug builds if |
| anyone comes across it. |
| |
| Test: css3/filters/blur-various-radii.html |
| |
| * platform/graphics/filters/FEGaussianBlur.cpp: |
| (WebCore::accelerateBoxBlur): Return early if things don't look good. |
| |
| 2017-04-28 Chris Dumez <cdumez@apple.com> |
| |
| Stop using legacy ClientRect / ClientRectList in Internals |
| https://bugs.webkit.org/show_bug.cgi?id=171412 |
| |
| Reviewed by Simon Fraser. |
| |
| Stop using legacy ClientRect / ClientRectList in Internals amd use the |
| newer DOMRect instead. |
| |
| * dom/DOMRect.idl: |
| * page/Page.cpp: |
| (WebCore::Page::nonFastScrollableRects): |
| (WebCore::Page::touchEventRectsForEvent): |
| (WebCore::Page::passiveTouchEventListenerRects): |
| * page/Page.h: |
| * testing/Internals.cpp: |
| (WebCore::Internals::absoluteCaretBounds): |
| (WebCore::Internals::boundingBox): |
| (WebCore::Internals::inspectorHighlightRects): |
| (WebCore::Internals::layoutViewportRect): |
| (WebCore::Internals::visualViewportRect): |
| (WebCore::Internals::touchEventRectsForEvent): |
| (WebCore::Internals::passiveTouchEventListenerRects): |
| (WebCore::Internals::nonFastScrollableRects): |
| (WebCore::Internals::selectionBounds): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-04-28 Youenn Fablet <youenn@apple.com> |
| |
| getUserMedia video streams should follow device orientation |
| https://bugs.webkit.org/show_bug.cgi?id=171284 |
| |
| Reviewed by Eric Carlson. |
| |
| Only really affects AVVideoCaptureSource on iOS. Manually testing the following cases: |
| - Mac: no change of behavior |
| - iOS: page loaded in portrait, video is portrait. page loaded in landscape, video is landscape |
| - iOS: changing the device orientation makes the video samples to be moved to landscape/portrait. |
| - Same tests as above with peer connection. |
| |
| Making Document having an OrientationNotifier that AVVideoCaptureSources get registered to. |
| Making AVVideoCaptureSource an OrientationNotifier::Observer so that it can changes width/height if needed. |
| |
| Refactoring to specialize CaptureFactory in VideoCaptureFactory and AudioCaptureFactory. |
| Refactoring to return a CaptureSourceOrError instead of passing an out parameter plus returning a RefPtr. |
| |
| * Modules/mediastream/UserMediaRequest.cpp: |
| (WebCore::UserMediaRequest::allow): |
| * WebCore.xcodeproj/project.pbxproj: |
| * dom/Document.cpp: |
| (WebCore::Document::orientationChanged): |
| * dom/Document.h: |
| * page/Frame.cpp: |
| (WebCore::Frame::orientationChanged): |
| * platform/OrientationNotifer.h: Copied from Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h. |
| (WebCore::OrientationNotifier::Observer::setNotifier): |
| (WebCore::OrientationNotifier::Observer::~Observer): |
| (WebCore::OrientationNotifier::orientationChanged): |
| (WebCore::OrientationNotifier::addObserver): |
| (WebCore::OrientationNotifier::removeObserver): |
| * platform/mediastream/MediaStreamPrivate.cpp: |
| (WebCore::MediaStreamPrivate::monitorOrientation): |
| * platform/mediastream/MediaStreamPrivate.h: |
| * platform/mediastream/RealtimeMediaSource.h: |
| (WebCore::CaptureSourceOrError::CaptureSourceOrError): |
| (WebCore::CaptureSourceOrError::operator bool): |
| (WebCore::CaptureSourceOrError::source): |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::RealtimeMediaSourceCenter::setAudioFactory): |
| (WebCore::RealtimeMediaSourceCenter::unsetAudioFactory): |
| (WebCore::RealtimeMediaSourceCenter::setVideoFactory): |
| (WebCore::RealtimeMediaSourceCenter::unsetVideoFactory): |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| (WebCore::RealtimeMediaSourceCenter::defaultAudioFactory): |
| (WebCore::RealtimeMediaSourceCenter::defaultVideoFactory): |
| (WebCore::RealtimeMediaSourceCenter::audioFactory): |
| (WebCore::RealtimeMediaSourceCenter::videoFactory): |
| * platform/mediastream/mac/AVAudioCaptureSource.h: |
| * platform/mediastream/mac/AVAudioCaptureSource.mm: |
| (WebCore::AVAudioCaptureSource::create): |
| (WebCore::AVAudioCaptureSource::factory): |
| * platform/mediastream/mac/AVVideoCaptureSource.h: |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::create): |
| (WebCore::AVVideoCaptureSource::factory): |
| (WebCore::AVVideoCaptureSource::monitorOrientation): |
| (WebCore::AVVideoCaptureSource::orientationChanged): |
| (WebCore::AVVideoCaptureSource::processNewFrame): |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::create): |
| (WebCore::CoreAudioCaptureSource::factory): |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: |
| (WebCore::MockRealtimeAudioSource::create): |
| * platform/mediastream/mac/MockRealtimeVideoSourceMac.h: |
| * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: |
| (WebCore::MockRealtimeVideoSource::create): |
| (WebCore::MockRealtimeVideoSourceMac::orientationChanged): |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| (WebCore::RealtimeMediaSourceCenterMac::createMediaStream): |
| (WebCore::RealtimeMediaSourceCenterMac::bestSourcesForTypeAndConstraints): |
| (WebCore::RealtimeMediaSourceCenterMac::defaultAudioFactory): |
| (WebCore::RealtimeMediaSourceCenterMac::defaultVideoFactory): |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.h: |
| * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp: |
| (WebCore::RealtimeMediaSourceCenterOwr::createMediaStream): |
| * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h: |
| * platform/mock/MockRealtimeAudioSource.cpp: |
| (WebCore::MockRealtimeAudioSource::create): |
| (WebCore::MockRealtimeAudioSource::factory): |
| * platform/mock/MockRealtimeAudioSource.h: |
| * platform/mock/MockRealtimeMediaSourceCenter.cpp: |
| (WebCore::MockRealtimeMediaSourceCenter::validateRequestConstraints): |
| (WebCore::MockRealtimeMediaSourceCenter::createMediaStream): |
| (WebCore::MockRealtimeMediaSourceCenter::defaultAudioFactory): |
| (WebCore::MockRealtimeMediaSourceCenter::defaultVideoFactory): |
| * platform/mock/MockRealtimeMediaSourceCenter.h: |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSource::create): |
| (WebCore::MockRealtimeVideoSource::factory): |
| * platform/mock/MockRealtimeVideoSource.h: |
| |
| 2017-04-28 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Unify how BitmapImage handles the availability of a decoded for large and animated images |
| https://bugs.webkit.org/show_bug.cgi?id=171410 |
| |
| Reviewed by Simon Fraser. |
| |
| Rename some functions which are related to animation frame availability. |
| Make BitmapImage call ImageObserver::imageFrameAvailable() whenever a |
| frame is available regardless it is for an animated or for a large image. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::isVisibleInViewport): |
| * html/MediaElementSession.cpp: |
| (WebCore::MediaElementSession::autoplayPermitted): |
| (WebCore::isMainContentForPurposesOfAutoplay): |
| * loader/cache/CachedImage.cpp: |
| (WebCore::CachedImage::CachedImageObserver::imageFrameAvailable): |
| (WebCore::CachedImage::imageFrameAvailable): |
| (WebCore::CachedImage::usesImageContainerSize): Deleted. |
| (WebCore::CachedImage::imageHasRelativeWidth): Deleted. |
| (WebCore::CachedImage::imageHasRelativeHeight): Deleted. |
| (WebCore::CachedImage::CachedImageObserver::animationAdvanced): Deleted. |
| (WebCore::CachedImage::animationAdvanced): Deleted. |
| * loader/cache/CachedImage.h: |
| * loader/cache/CachedImageClient.h: |
| (WebCore::CachedImageClient::imageFrameAvailable): |
| (WebCore::CachedImageClient::newImageAnimationFrameAvailable): Deleted. |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::internalAdvanceAnimation): |
| (WebCore::BitmapImage::imageFrameAvailableAtIndex): |
| (WebCore::BitmapImage::newFrameNativeImageAvailableAtIndex): Deleted. |
| * platform/graphics/BitmapImage.h: |
| * platform/graphics/Image.h: |
| (WebCore::Image::imageFrameAvailableAtIndex): |
| (WebCore::Image::newFrameNativeImageAvailableAtIndex): Deleted. |
| * platform/graphics/ImageFrameCache.cpp: |
| (WebCore::ImageFrameCache::cacheAsyncFrameNativeImageAtIndex): |
| * platform/graphics/ImageObserver.h: |
| * platform/graphics/ImageTypes.h: |
| * rendering/RenderElement.cpp: |
| (WebCore::RenderElement::RenderElement): |
| (WebCore::RenderElement::shouldRepaintInVisibleRect): |
| (WebCore::RenderElement::imageFrameAvailable): |
| (WebCore::RenderElement::repaintForPausedImageAnimationsIfNeeded): |
| (WebCore::shouldRepaintForImageAnimation): Deleted. |
| (WebCore::RenderElement::newImageAnimationFrameAvailable): Deleted. |
| * rendering/RenderElement.h: |
| * rendering/RenderView.cpp: |
| (WebCore::RenderView::updateVisibleViewportRect): |
| * svg/graphics/SVGImageClients.h: |
| |
| 2017-04-28 Jeremy Jones <jeremyj@apple.com> |
| |
| ARGUMENT BAD: time, time >= 0 |
| https://bugs.webkit.org/show_bug.cgi?id=164336 |
| rdar://problem/29314891 |
| |
| Reviewed by Eric Carlson. |
| |
| Handle invalid duration and current time when calculating remaining time. |
| |
| Test media/modern-media-controls/pip-support/pip-support-click.html now works without a workaround |
| in media/modern-media-controls/pip-support/pip-support-enabled.html |
| |
| * platform/mac/WebVideoFullscreenHUDWindowController.mm: |
| (-[WebVideoFullscreenHUDWindowController remainingTimeText]): |
| |
| 2017-04-28 Daniel Bates <dabates@apple.com> |
| |
| Add WebCore::protocolIsJavaScript(StringView) |
| https://bugs.webkit.org/show_bug.cgi?id=171396 |
| |
| Reviewed by Alex Christensen. |
| |
| Add an overload of WebCore::protocolIsJavaScript() that takes a StringView to |
| avoid the need for a caller to allocate a new String object when converting |
| from a StringView to a String. We are not using this functionality at the moment, |
| but we will in the patch for <https://bugs.webkit.org/show_bug.cgi?id=170925>. |
| |
| No functionality has changed. So, no new tests. |
| |
| * platform/URL.cpp: Remove an outdated comment about protocolIs(StringView, const char*). |
| This overload was removed in r212508. |
| (WebCore::protocolIsInternal): Added. |
| (WebCore::protocolIs): Implemented in terms of WebCore::protocolIsInternal(). |
| (WebCore::URL::protocolIs): Ditto. |
| (WebCore::protocolIsJavaScript): Added; overload that takes a StringView. |
| (WebCore::mimeTypeFromDataURL): Modified to use WebCore::protocolIsInternal(). |
| * platform/URL.h: |
| |
| 2017-04-28 Andy Estes <aestes@apple.com> |
| |
| [macOS] WebPlaybackControlsManager needs to know when the selected text or audio track changes |
| https://bugs.webkit.org/show_bug.cgi?id=171434 |
| <rdar://problem/31887922> |
| |
| Reviewed by Eric Carlson. |
| |
| * dom/GenericEventQueue.cpp: |
| (WebCore::GenericEventQueue::hasPendingEventsOfType): Added to check if a pending event |
| exists of a certain type. |
| * dom/GenericEventQueue.h: |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::setSelectedTextTrack): Even if no track modes change, fire a |
| change event when the track to select is off or automatic so that |
| WebPlaybackSessionModelMediaElement detects the change. |
| * html/track/TrackListBase.cpp: |
| (TrackListBase::isChangeEventScheduled): Returns true if m_asyncEventQueue has a pending |
| change event. |
| * html/track/TrackListBase.h: |
| * platform/cocoa/WebPlaybackSessionModel.h: |
| (WebCore::WebPlaybackSessionModelClient::audioMediaSelectionIndexChanged): |
| (WebCore::WebPlaybackSessionModelClient::legibleMediaSelectionIndexChanged): |
| * platform/cocoa/WebPlaybackSessionModelMediaElement.h: |
| * platform/cocoa/WebPlaybackSessionModelMediaElement.mm: |
| (WebCore::WebPlaybackSessionModelMediaElement::setMediaElement): Registered/unregistered for |
| the change event on the audio and text tracks. |
| (WebCore::WebPlaybackSessionModelMediaElement::updateForEventName): Called |
| updateMediaSelectionIndices() when the change event fires. |
| (WebCore::WebPlaybackSessionModelMediaElement::updateMediaSelectionOptions): Renamed from |
| updateLegibleOptions(). |
| (WebCore::WebPlaybackSessionModelMediaElement::updateMediaSelectionIndices): Called |
| audioMediaSelectionIndexChanged() and legibleMediaSelectionIndexChanged() on m_clients with |
| the updated indices. |
| (WebCore::WebPlaybackSessionModelMediaElement::legibleMediaSelectedIndex): Fixed a bug |
| where selectedIndex would never be set to offIndex if offIndex is 0 (which it usually is). |
| (WebCore::WebPlaybackSessionModelMediaElement::updateLegibleOptions): Renamed to |
| updateMediaSelectionOptions(). |
| * platform/mac/WebPlaybackControlsManager.h: |
| * platform/mac/WebPlaybackControlsManager.mm: |
| (-[WebPlaybackControlsManager setAudioMediaSelectionIndex:]): Set |
| _currentAudioTouchBarMediaSelectionOption to the object at selectedIndex and manually |
| triggered a KVO notification. We can't call -setCurrentAudioTouchBarMediaSelectionOption: |
| here since that will send a message back to the Web process. |
| (-[WebPlaybackControlsManager setLegibleMediaSelectionIndex:]): Ditto for |
| _currentLegibleTouchBarMediaSelectionOption. |
| * platform/mac/WebPlaybackSessionInterfaceMac.h: |
| * platform/mac/WebPlaybackSessionInterfaceMac.mm: |
| (WebCore::WebPlaybackSessionInterfaceMac::audioMediaSelectionIndexChanged): Called |
| -[WebPlaybackControlsManager setAudioMediaSelectionIndex:]. |
| (WebCore::WebPlaybackSessionInterfaceMac::legibleMediaSelectionIndexChanged): Called |
| -[WebPlaybackControlsManager setLegibleMediaSelectionIndex:]. |
| |
| 2017-04-28 Chris Dumez <cdumez@apple.com> |
| |
| Range.getClientRects() / getBoundingClientRect() should return DOMRect types |
| https://bugs.webkit.org/show_bug.cgi?id=171393 |
| |
| Reviewed by Simon Fraser. |
| |
| Range.getClientRects() / getBoundingClientRect() should return DOMRect types: |
| - https://drafts.csswg.org/cssom-view/#extensions-to-the-range-interface |
| |
| Test: fast/dom/Range/getBoundingClientRect-getClientRects-return-type.html |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * dom/DOMRect.cpp: Copied from Source/WebCore/dom/DOMRect.h. |
| (WebCore::createDOMRectVector): |
| * dom/DOMRect.h: |
| * dom/Element.cpp: |
| (WebCore::Element::getClientRects): |
| * dom/Range.cpp: |
| (WebCore::Range::getClientRects): |
| (WebCore::Range::getBoundingClientRect): |
| * dom/Range.h: |
| * dom/Range.idl: |
| |
| 2017-04-28 Chris Dumez <cdumez@apple.com> |
| |
| Tweak window.open features argument tokenizer to match HTML standard and Edge |
| https://bugs.webkit.org/show_bug.cgi?id=170548 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Update window.open() features argument tokenizer to match HTML standard: |
| - https://html.spec.whatwg.org/#concept-window-open-features-tokenize |
| |
| Also update window.open() to return null instead of the window when |
| the 'noopener' feature is activated, as per: |
| - https://html.spec.whatwg.org/#dom-open (Step 10) |
| |
| No new tests, rebaselined existing test. |
| |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::createWindow): |
| Update window.open() to return null instead of the window when |
| the 'noopener' feature is activated, as per: |
| - https://html.spec.whatwg.org/#dom-open (Step 10) |
| |
| * page/WindowFeatures.cpp: |
| (WebCore::isSeparator): |
| Treat all ASCII spaces as feature separators, as per: |
| - https://html.spec.whatwg.org/#feature-separator |
| This has the effect of adding U+000C (FormFeed) as a separator. |
| |
| (WebCore::processFeaturesString): |
| Align tokenizing code with the specification: |
| - https://html.spec.whatwg.org/#concept-window-open-features-tokenize |
| In particular, the following changes were made: |
| - After the key, skip to first '=', but don't skip past a ',' or a non-separator. |
| The "or a non-separator" part is new in the spec (step 3.6.1) and is now implemented. |
| - After looking for the '=', only treat what follows as a value if the current character |
| is a separator. This is as per step 7 in the spec. |
| These changes now cause us to parse 'foo noopener=1' as ('foo', ''), ('noopener', '1'). |
| |
| 2017-04-28 Eric Carlson <eric.carlson@apple.com> |
| |
| Implement ondevicechange |
| https://bugs.webkit.org/show_bug.cgi?id=169872 |
| |
| Unreviewed, remove some dead code accidentally committed in r215929. |
| |
| * platform/mediastream/CaptureDeviceManager.cpp: |
| |
| 2017-04-28 Chris Dumez <cdumez@apple.com> |
| |
| Update DOMTokenList.replace() to match the latest DOM specification |
| https://bugs.webkit.org/show_bug.cgi?id=171388 |
| |
| Reviewed by Alex Christensen. |
| |
| Update DOMTokenList.replace() to match the latest DOM specification after: |
| - https://github.com/whatwg/dom/issues/442 |
| - https://github.com/whatwg/infra/pull/126 |
| |
| The latest spec text is at: |
| - https://dom.spec.whatwg.org/#dom-domtokenlist-replace |
| - https://infra.spec.whatwg.org/#set-replace |
| |
| The behavior change in this patch causes (a, b, c).replace(a, c) to return |
| (c, b) instead of (b, c). This new behavior is aligned with Firefox as well. |
| |
| No new tests, updated existing test. |
| |
| * html/DOMTokenList.cpp: |
| (WebCore::DOMTokenList::replace): |
| |
| 2017-04-28 Brady Eidson <beidson@apple.com> |
| |
| Start of support for multiple WebsiteDataStore/SessionIDs per process |
| https://bugs.webkit.org/show_bug.cgi?id=171422 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Covered by API tests. |
| |
| * platform/network/NetworkStorageSession.h: |
| * platform/network/cf/NetworkStorageSessionCFNet.cpp: |
| (WebCore::NetworkStorageSession::ensureSession): |
| * platform/spi/cf/CFNetworkSPI.h: |
| |
| 2017-04-28 Chris Dumez <cdumez@apple.com> |
| |
| URLSearchParams should be reflective |
| https://bugs.webkit.org/show_bug.cgi?id=171345 |
| |
| Reviewed by Alex Christensen. |
| |
| There was a bug in our implementation of [1] where we would replace |
| '+' with 0x20 *after* URL-decoding the string, instead of *before*. |
| This was causing us to replace URL-encoded '+' characters with 0x20. |
| |
| [1] https://url.spec.whatwg.org/#concept-urlencoded-parser |
| |
| No new tests, updated existing test. |
| |
| * platform/URLParser.cpp: |
| |
| 2017-04-28 Youenn Fablet <youenn@apple.com> |
| |
| Adding a runtime flag specific to MediaDevices |
| https://bugs.webkit.org/show_bug.cgi?id=171433 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Covered by existing tests. |
| |
| Adding a preference for MediaDevices. |
| Setting media devices runtime flag to false by default. |
| Setting peer connection and media stream flags to true by default. |
| Activating mediaDevices and getUserMedia Navigator properties based on media devices flag. |
| |
| * Modules/mediastream/NavigatorMediaDevices.idl: |
| * Modules/mediastream/NavigatorUserMedia.idl: |
| * page/RuntimeEnabledFeatures.cpp: |
| (WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures): |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::mediaDevicesEnabled): |
| (WebCore::RuntimeEnabledFeatures::setMediaDevicesEnabled): |
| |
| 2017-04-28 Eric Carlson <eric.carlson@apple.com> |
| |
| Implement ondevicechange |
| https://bugs.webkit.org/show_bug.cgi?id=169872 |
| |
| Unreviewed, fix test crash. |
| |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::RealtimeMediaSourceCenter::addDevicesChangedObserver): "nextToken" must be static. |
| |
| 2017-04-28 Dean Jackson <dino@apple.com> |
| |
| [WebGPU] Label MTLCommandQueues with a prefix for internal telemetry |
| https://bugs.webkit.org/show_bug.cgi?id=171441 |
| <rdar://problem/31826915> |
| |
| Reviewed by Tim Horton. |
| |
| Prefix any label that is set by the WebGPU API so that |
| our telemetry can identify the use. Don't expose that |
| prefix to the API though. |
| |
| New API Test: GPUCommandQueue |
| |
| * platform/graphics/cocoa/GPUCommandQueueMetal.mm: |
| (WebCore::GPUCommandQueue::GPUCommandQueue): |
| (WebCore::GPUCommandQueue::label): |
| (WebCore::GPUCommandQueue::setLabel): |
| |
| 2017-04-28 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| [ATK] aria-modal="true" should be exposed via ATK_STATE_MODAL |
| https://bugs.webkit.org/show_bug.cgi?id=171188 |
| |
| Reviewed by Chris Fleizach. |
| |
| Include ATK_STATE_MODAL in the AtkObject's state set if the accessible |
| element's node is the current ARIA modal node. |
| |
| Test: accessibility/gtk/aria-modal-state-exposed.html |
| |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::isAriaModalNode): |
| * accessibility/AccessibilityObject.h: |
| * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: |
| (setAtkStateSetFromCoreObject): |
| |
| 2017-04-28 Eric Carlson <eric.carlson@apple.com> |
| |
| Implement ondevicechange |
| https://bugs.webkit.org/show_bug.cgi?id=169872 |
| <rdar://problem/28945035> |
| |
| Reviewed by Jer Noble. |
| |
| Test: fast/mediastream/device-change-event.html |
| |
| * Modules/mediastream/MediaDevices.cpp: |
| (WebCore::MediaDevices::MediaDevices): Register for devicechange callbacks. |
| (WebCore::MediaDevices::~MediaDevices): Unregister. |
| (WebCore::MediaDevices::scheduledEventTimerFired): |
| * Modules/mediastream/MediaDevices.h: |
| * Modules/mediastream/MediaDevices.idl: |
| |
| * Modules/mediastream/MediaDevicesEnumerationRequest.cpp: |
| (WebCore::MediaDevicesEnumerationRequest::setDeviceInfo): Remove unnecessary instance variables. |
| * Modules/mediastream/MediaDevicesEnumerationRequest.h: |
| |
| * Modules/mediastream/MediaDevicesRequest.cpp: |
| (WebCore::MediaDevicesRequest::start): Remove m_idHashSalt, it isn't used. RealtimeMediaSourceCenter |
| now has the method to hash ids and group IDs. |
| (WebCore::hashString): Deleted. |
| (WebCore::MediaDevicesRequest::hashID): Deleted. |
| * Modules/mediastream/MediaDevicesRequest.h: |
| |
| * dom/Document.h: |
| (WebCore::Document::setDeviceIDHashSalt): |
| (WebCore::Document::deviceIDHashSalt): |
| |
| * dom/EventNames.h: Add devicechange. |
| |
| * dom/EventTargetFactory.in: Add MediaDevices. |
| |
| * html/HTMLAttributeNames.in: Add ondevicechange. |
| |
| * platform/mediastream/CaptureDeviceManager.cpp: |
| (WebCore::CaptureDeviceManager::captureDeviceFromPersistentID): Renamed from captureDeviceFromDeviceID |
| and changed to return a std::optional<CaptureDevice>. |
| (WebCore::CaptureDeviceManager::captureDeviceFromDeviceID): Deleted. |
| |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::addStringToSHA): New, add string bytes to SHA1. Moved from MediaDevicesRequest |
| so we can use for in testing. |
| (WebCore::RealtimeMediaSourceCenter::hashStringWithSalt): Generate hash for a string with a |
| salt. Moved from MediaDevicesRequest so we can use for in testing. |
| (WebCore::RealtimeMediaSourceCenter::captureDeviceWithUniqueID): Find a CaptureDevice given |
| a unique ID and the process hash salt. |
| (WebCore::RealtimeMediaSourceCenter::setDeviceEnabled): Enable/disable a device. Used for |
| layout tests only. |
| (WebCore::RealtimeMediaSourceCenter::addDevicesChangedObserver): Add a devices changed listener. |
| (WebCore::RealtimeMediaSourceCenter::removeDevicesChangedObserver): Remove a listener. |
| (WebCore::RealtimeMediaSourceCenter::captureDevicesChanged): Notify listeners. |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| |
| * platform/mediastream/mac/AVCaptureDeviceManager.mm: |
| (WebCore::AVCaptureDeviceManager::addDevicesChangedObserver): Update for change to captureDeviceFromDeviceID. |
| |
| * platform/mock/MockRealtimeMediaSource.cpp: |
| (WebCore::MockRealtimeMediaSource::audioDevices): All devices are enabled by default. |
| (WebCore::MockRealtimeMediaSource::videoDevices): Ditto. |
| |
| * platform/mock/MockRealtimeMediaSourceCenter.cpp: |
| (WebCore::MockRealtimeMediaSourceCenter::createMediaStream): Drive-by cleanup: use the vector |
| of devices instead of making assumptions about the number. |
| (WebCore::MockRealtimeMediaSourceCenter::getMediaStreamDevices): Only include enabled devices. |
| (WebCore::MockRealtimeMediaSourceCenter::setDeviceEnabled): Enable or disable a device. |
| * platform/mock/MockRealtimeMediaSourceCenter.h: |
| |
| * testing/Internals.cpp: |
| (WebCore::Internals::setMediaDeviceState): Enable or disable a mock capture device. |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-04-28 Alex Christensen <achristensen@webkit.org> |
| |
| Fix memory corruption issue after r215883. |
| https://bugs.webkit.org/show_bug.cgi?id=171365 |
| |
| Reviewed by Brady Eidson. |
| |
| This fixes a crash when starting WebKit2. |
| |
| * platform/network/cf/NetworkStorageSessionCFNet.cpp: |
| (WebCore::NetworkStorageSession::NetworkStorageSession): |
| Initialize m_platformCookieStorage with the default constructor of RetainPtr, |
| then call NetworkStorageSession::cookieStorage which checks m_platformCookieStorage |
| for null. It was checking uninitialized memory when we had m_platformCookieStorage |
| in the initializer list. |
| |
| 2017-04-28 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| AX: Implement aria-value support for focusable separators |
| https://bugs.webkit.org/show_bug.cgi?id=171169 |
| |
| Reviewed by Chris Fleizach. |
| |
| Add SplitterRole to the roles which support range value and are considered a range |
| control, as long as the SplitterRole element is focusable. Also replace ATK's role- |
| based check with a call to supportsRangeValue() when determining if the AtkValue |
| interface should be implemented. |
| |
| Test: accessibility/separator-values.html |
| |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::isRangeControl): |
| (WebCore::AccessibilityObject::supportsRangeValue): |
| * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: |
| (getInterfaceMaskFromObject): |
| |
| 2017-04-28 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| [ATK] GridCellRole should implement AtkTableCell (regression?) |
| https://bugs.webkit.org/show_bug.cgi?id=171179 |
| |
| Reviewed by Chris Fleizach. |
| |
| Add GridCellRole to the group of roles which should implement AtkTableCell. |
| |
| Test: accessibility/gtk/interface-table-cell.html |
| |
| * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: |
| (getInterfaceMaskFromObject): |
| |
| 2017-04-28 Miguel Gomez <magomez@igalia.com> |
| |
| REGRESSION(r215211): [GTK] Several webgl related tests are failing |
| https://bugs.webkit.org/show_bug.cgi?id=170730 |
| |
| Reviewed by Said Abou-Hallawa. |
| |
| There is a wrong situation in the image decoders where the complete data has been assigned |
| to them but the size of the image hasn't been decoded yet. This is causing rendering |
| issues in webgl when decoding the images used as textures. To fix this, we refactor how the |
| encoded data status is stored to avoid that situation: the status is handled completely |
| by ImageDecoder.h, and it's the one forcing the decode of the size when data gets assigned |
| to the decoders. |
| |
| Covered by existent tests. |
| |
| * platform/image-decoders/ImageDecoder.h: |
| (WebCore::ImageDecoder::isAllDataReceived): |
| (WebCore::ImageDecoder::setData): |
| (WebCore::ImageDecoder::encodedDataStatus): |
| (WebCore::ImageDecoder::isSizeAvailable): |
| (WebCore::ImageDecoder::setSize): |
| (WebCore::ImageDecoder::setFailed): |
| (WebCore::ImageDecoder::failed): |
| * platform/image-decoders/bmp/BMPImageDecoder.cpp: |
| (WebCore::BMPImageDecoder::frameBufferAtIndex): |
| (WebCore::BMPImageDecoder::decode): |
| (WebCore::BMPImageDecoder::encodedDataStatus): Deleted. |
| * platform/image-decoders/bmp/BMPImageDecoder.h: |
| * platform/image-decoders/gif/GIFImageDecoder.cpp: |
| (WebCore::GIFImageDecoder::frameCount): |
| (WebCore::GIFImageDecoder::frameBufferAtIndex): |
| (WebCore::GIFImageDecoder::decode): |
| (WebCore::GIFImageDecoder::encodedDataStatus): Deleted. |
| * platform/image-decoders/gif/GIFImageDecoder.h: |
| * platform/image-decoders/ico/ICOImageDecoder.cpp: |
| (WebCore::ICOImageDecoder::setData): |
| (WebCore::ICOImageDecoder::frameCount): |
| (WebCore::ICOImageDecoder::frameBufferAtIndex): |
| (WebCore::ICOImageDecoder::setDataForPNGDecoderAtIndex): |
| (WebCore::ICOImageDecoder::decode): |
| (WebCore::ICOImageDecoder::decodeAtIndex): |
| (WebCore::ICOImageDecoder::encodedDataStatus): Deleted. |
| * platform/image-decoders/ico/ICOImageDecoder.h: |
| * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: |
| (WebCore::JPEGImageDecoder::frameBufferAtIndex): |
| (WebCore::JPEGImageDecoder::decode): |
| (WebCore::JPEGImageDecoder::encodedDataStatus): Deleted. |
| * platform/image-decoders/jpeg/JPEGImageDecoder.h: |
| * platform/image-decoders/png/PNGImageDecoder.cpp: |
| (WebCore::PNGImageDecoder::frameBufferAtIndex): |
| (WebCore::PNGImageDecoder::decode): |
| (WebCore::PNGImageDecoder::encodedDataStatus): Deleted. |
| * platform/image-decoders/png/PNGImageDecoder.h: |
| * platform/image-decoders/webp/WEBPImageDecoder.cpp: |
| (WebCore::WEBPImageDecoder::frameBufferAtIndex): |
| (WebCore::WEBPImageDecoder::decode): |
| (WebCore::WEBPImageDecoder::encodedDataStatus): Deleted. |
| * platform/image-decoders/webp/WEBPImageDecoder.h: |
| |
| 2017-04-27 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Move UUID from WebCore/platform to WTF |
| https://bugs.webkit.org/show_bug.cgi?id=171372 |
| |
| Reviewed by Michael Catanzaro. |
| |
| UUID only contains createCanonicalUUIDString() that is platform independent and doesn't depend on anything from |
| WebCore, only from WTF. |
| |
| * CMakeLists.txt: |
| * Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp: |
| * Modules/mediacontrols/MediaControlsHost.cpp: |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| * Modules/webaudio/MediaStreamAudioSource.cpp: |
| * Modules/webdatabase/DatabaseTracker.cpp: |
| * WebCore.order: |
| * WebCore.xcodeproj/project.pbxproj: |
| * editing/mac/EditorMac.mm: |
| * fileapi/BlobURL.cpp: |
| * loader/appcache/ApplicationCacheHost.cpp: |
| * loader/appcache/ApplicationCacheStorage.cpp: |
| * platform/URL.cpp: |
| * platform/glib/FileSystemGlib.cpp: |
| * platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp: |
| * platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm: |
| * platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm: |
| * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| * platform/mediastream/CaptureDeviceManager.cpp: |
| * platform/mediastream/MediaStreamPrivate.h: |
| * platform/mediastream/MediaStreamTrackPrivate.cpp: |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| * platform/mediastream/mac/AVCaptureDeviceManager.mm: |
| * platform/mediastream/mac/AVMediaCaptureSource.mm: |
| * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp: |
| * platform/mock/MockRealtimeAudioSource.cpp: |
| * platform/mock/MockRealtimeMediaSourceCenter.cpp: |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| * testing/MockCDMFactory.cpp: |
| |
| 2017-04-27 Alex Christensen <achristensen@webkit.org> |
| |
| Make navigation policy checking more robust |
| https://bugs.webkit.org/show_bug.cgi?id=171409 |
| <rdar://problem/31489248> |
| |
| Reviewed by Geoffrey Garen. |
| |
| No change in behavior. Just added a protectedThis to a lambda and made the functions non-copyable. |
| |
| * loader/DocumentLoader.cpp: |
| (WebCore::DocumentLoader::willSendRequest): |
| * loader/PolicyCallback.cpp: |
| (WebCore::PolicyCallback::set): |
| (WebCore::PolicyCallback::clear): Deleted. |
| * loader/PolicyCallback.h: |
| * loader/PolicyChecker.cpp: |
| (WebCore::PolicyChecker::cancelCheck): |
| (WebCore::PolicyChecker::stopCheck): |
| (WebCore::PolicyChecker::continueAfterNavigationPolicy): |
| (WebCore::PolicyChecker::continueAfterNewWindowPolicy): |
| (WebCore::PolicyChecker::continueAfterContentPolicy): |
| |
| 2017-04-27 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Data interaction should not load pasteboard content before performing the data operation |
| https://bugs.webkit.org/show_bug.cgi?id=171414 |
| <rdar://problem/31878197> |
| |
| Reviewed by Tim Horton. |
| |
| When interacting with a link, we should not try to fetch pasteboard contents for the URL UTI type before |
| performing the data operation. Teaches DragController to know whether it is allowed to load data from the |
| dragging pasteboard, and uses this information in DragController::dragOperation to determine whether to use |
| DragData::containsURLTypeIdentifier or DragData::containsURL. |
| |
| * page/DragController.cpp: |
| (WebCore::DragController::DragController): |
| (WebCore::DragController::performDragOperation): |
| * page/DragController.h: |
| (WebCore::DragController::canLoadDataFromDraggingPasteboard): |
| * page/mac/DragControllerMac.mm: |
| (WebCore::DragController::dragOperation): |
| * platform/DragData.h: |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (-[WebItemProviderPasteboard _preLoadedDataConformingToType:forItemProviderAtIndex:]): |
| * platform/mac/DragDataMac.mm: |
| (WebCore::DragData::containsURLTypeIdentifier): |
| |
| 2017-04-27 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Support for promise rejection events (unhandledrejection) |
| https://bugs.webkit.org/show_bug.cgi?id=150358 |
| <rdar://problem/28441651> |
| |
| Reviewed by Saam Barati. |
| |
| Patch by Joseph Pecoraro and Yusuke Suzuki. |
| |
| Implement support for the `onunhandledrejection` and `rejectionhandled` events. |
| They dispatch a new PromiseRejectionEvent using the ES6 HostPromiseRejectionTracker hook: |
| https://tc39.github.io/ecma262/#sec-host-promise-rejection-tracker |
| https://html.spec.whatwg.org/multipage/webappapis.html#unhandled-promise-rejections |
| |
| This is currently implemented only for Documents and not yet Web Workers. |
| |
| Tests: js/dom/unhandled-promise-rejection-basic.html |
| js/dom/unhandled-promise-rejection-bindings-type-error.html |
| js/dom/unhandled-promise-rejection-console-no-report.html |
| js/dom/unhandled-promise-rejection-console-report.html |
| js/dom/unhandled-promise-rejection-handle-during-event.html |
| js/dom/unhandled-promise-rejection-handle-in-handler.html |
| js/dom/unhandled-promise-rejection-handle.html |
| js/dom/unhandled-promise-rejection-order.html |
| |
| * CMakeLists.txt: |
| * DerivedSources.cpp: |
| * DerivedSources.make: |
| * WebCore.xcodeproj/project.pbxproj: |
| * dom/DOMAllInOne.cpp: |
| New files. |
| |
| * bindings/scripts/CodeGenerator.pm: |
| (IsPromiseType): |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (AddToIncludesForIDLType): |
| (GetBaseIDLType): |
| Binding support for Promise<T> attributes. |
| |
| * bindings/js/JSDOMConvert.h: |
| * bindings/js/JSDOMConvertPromise.h: Copied from Source/JavaScriptCore/runtime/JSPromise.h. |
| (WebCore::Converter<IDLPromise<T>>::convert): |
| (WebCore::JSConverter<IDLPromise<T>>::convert): |
| Promise<T> binding conversion is currently unimplemented, which only means |
| web developers creating their own PromiseRejectionEvent will not get |
| autowrapping of values assigned to `promise` in event initialization. |
| Engine generated events will have expected behavior. |
| |
| * bindings/js/JSDOMWindowBase.cpp: |
| (WebCore::JSDOMWindowBase::promiseRejectionTracker): |
| * bindings/js/JSDOMWindowBase.h: |
| * bindings/js/JSWorkerGlobalScopeBase.cpp: |
| Implement HostPromiseRejectionTracker hook for Document but not Worker. |
| Passes through to the ScriptExecutionContext's tracker. |
| |
| * bindings/js/JSMainThreadExecState.cpp: |
| (WebCore::JSMainThreadExecState::didLeaveScriptContext): |
| * bindings/js/JSMainThreadExecState.h: |
| (WebCore::JSMainThreadExecState::~JSMainThreadExecState): |
| When completing script execution and performing microtasks notify |
| about rejected promises. Technically this should go inside of |
| performing a microtask checkpoint, except lacking EventLoop |
| concepts we use ScriptExecutionState. |
| |
| * dom/EventNames.h: |
| * dom/EventNames.in: |
| * dom/PromiseRejectionEvent.cpp: Added. |
| (WebCore::PromiseRejectionEvent::PromiseRejectionEvent): |
| (WebCore::PromiseRejectionEvent::~PromiseRejectionEvent): |
| * dom/PromiseRejectionEvent.h: Added. |
| * dom/PromiseRejectionEvent.idl: Added. |
| New PromiseRejectionEvent event interface. |
| |
| * dom/GlobalEventHandlers.idl: |
| New onunhandledrejection and onrejectionhandled. |
| |
| * dom/RejectedPromiseTracker.cpp: Added. |
| (WebCore::RejectedPromise::RejectedPromise): |
| (WebCore::RejectedPromise::globalObject): |
| (WebCore::RejectedPromise::promise): |
| (WebCore::UnhandledPromise::UnhandledPromise): |
| (WebCore::UnhandledPromise::callStack): |
| (WebCore::RejectedPromiseTracker::RejectedPromiseTracker): |
| (WebCore::RejectedPromiseTracker::~RejectedPromiseTracker): |
| (WebCore::createScriptCallStackFromReason): |
| (WebCore::RejectedPromiseTracker::promiseRejected): |
| (WebCore::RejectedPromiseTracker::promiseHandled): |
| (WebCore::RejectedPromiseTracker::processQueueSoon): |
| (WebCore::RejectedPromiseTracker::reportUnhandledRejections): |
| (WebCore::RejectedPromiseTracker::reportRejectionHandled): |
| * dom/RejectedPromiseTracker.h: Added. |
| Track and report rejected promises. The promises are tracked weakly |
| allowing them to be collected before they are reported. When reporting |
| we dispatch PromiseRejectionEvent events, and if the default is not |
| prevented we log a message to the console. |
| |
| * dom/ScriptExecutionContext.cpp: |
| (WebCore::ScriptExecutionContext::reportUnhandledPromiseRejection): |
| (WebCore::ScriptExecutionContext::ensureRejectedPromiseTrackerSlow): |
| * dom/ScriptExecutionContext.h: |
| (WebCore::ScriptExecutionContext::ensureRejectedPromiseTracker): |
| Each ScriptExecutionContext can own a rejected promise tracker. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::pauseInternal): |
| https://html.spec.whatwg.org/multipage/embedded-content.html#internal-pause-steps |
| Internal pause steps say to timeupdate, pause, and rejecting pending play promises |
| should all happen in a queued task. Here the first two actions are already scheduled |
| on tasks, but rejecting play promises was not being done in a task, so this makes |
| that change. |
| |
| * Modules/streams/ReadableStream.js: |
| (pipeThrough): |
| * Modules/streams/ReadableStreamInternals.js: |
| (readableStreamReaderGenericInitialize): |
| (readableStreamError): |
| (readableStreamReaderGenericRelease): |
| Satisfy parts of the Streams specification which state to set the |
| [[PromiseIsHandled]] internal state of promises created internally |
| by the Streams APIs. This prevents some internal promises from |
| appearing as unhandled promise rejections. |
| |
| 2017-04-27 Chris Dumez <cdumez@apple.com> |
| |
| Align colspan/rowspan limits with the latest HTML specification |
| https://bugs.webkit.org/show_bug.cgi?id=171322 |
| |
| Reviewed by Darin Adler. |
| |
| Align colspan/rowspan limits with the latest HTML specification after: |
| - https://github.com/whatwg/html/pull/1993 |
| |
| The following changes were made: |
| - Our rowspan limit was raised from 8190 to 65534 |
| - A colspan limit of 1000 was introduced. Blink has UseCounter data showing that |
| colspans over 1000 are extremely rare and Gecko has data showing that when we |
| get a colspan greater than 1000, it is usually a bug. Therefore, this change |
| should be fine. |
| - The limits are now properly reflected via the IDL attributes instead of lying |
| to the Web about the colspan / rowspan we are using internally. |
| |
| Test: imported/w3c/web-platform-tests/html/semantics/tabular-data/processing-model-1/span-limits.html |
| |
| * html/HTMLTableCellElement.cpp: |
| (WebCore::HTMLTableCellElement::colSpan): |
| (WebCore::HTMLTableCellElement::rowSpan): |
| (WebCore::HTMLTableCellElement::rowSpanForBindings): |
| (WebCore::HTMLTableCellElement::setColSpan): |
| * html/HTMLTableCellElement.h: |
| * html/HTMLTableCellElement.idl: |
| * html/parser/HTMLParserIdioms.cpp: |
| (WebCore::parseHTMLIntegerInternal): |
| (WebCore::parseHTMLInteger): |
| (WebCore::parseHTMLNonNegativeInteger): |
| (WebCore::parseValidHTMLNonNegativeIntegerInternal): |
| (WebCore::parseHTTPRefreshInternal): |
| * html/parser/HTMLParserIdioms.h: |
| (WebCore::parseHTMLInteger): |
| (WebCore::parseHTMLNonNegativeInteger): |
| |
| (WebCore::clampHTMLNonNegativeIntegerToRange): |
| Add utility function to implement: |
| - https://html.spec.whatwg.org/#clamped-to-the-range |
| |
| 2017-04-27 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| WKUIDelegatePrivate needs a hook to vend data used to initialize item providers for data interaction |
| https://bugs.webkit.org/show_bug.cgi?id=171386 |
| <rdar://problem/31557237> |
| |
| Reviewed by Beth Dakin. |
| |
| Teach WebItemProviderPasteboard to remember what WebItemProviderRegistrationInfoList it was initialized with |
| when beginning a drag. This information is cleared out the next time the list of item providers is set to |
| something different, which happens when the data interaction session concludes. |
| |
| * platform/ios/WebItemProviderPasteboard.h: |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (-[WebItemProviderPasteboard init]): |
| (-[WebItemProviderPasteboard setItemProviders:]): |
| (-[WebItemProviderPasteboard setItemsUsingRegistrationInfoLists:]): |
| (-[WebItemProviderPasteboard registrationInfoAtIndex:]): |
| (-[WebItemProviderPasteboard itemProviderAtIndex:]): |
| |
| 2017-04-27 Brady Eidson <beidson@apple.com> |
| |
| Refactor SessionID to support multiple non-ephemeral (persistent) sessions. |
| https://bugs.webkit.org/show_bug.cgi?id=171367 |
| |
| Reviewed by Andy Estes. |
| |
| This is also a nice general cleanup of SessionID, including privatizing the "arbitrary number" constructor |
| and moving encode/decode into the class. |
| |
| No new tests (Refactor, no behavior change yet). |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| * page/SessionID.cpp: Added. |
| (WebCore::SessionID::generatePersistentSessionID): |
| (WebCore::SessionID::generateEphemeralSessionID): |
| (WebCore::SessionID::enableGenerationProtection): |
| |
| * page/SessionID.h: |
| (WebCore::SessionID::SessionID): |
| (WebCore::SessionID::emptySessionID): |
| (WebCore::SessionID::hashTableDeletedValue): |
| (WebCore::SessionID::defaultSessionID): |
| (WebCore::SessionID::legacyPrivateSessionID): |
| (WebCore::SessionID::isValid): |
| (WebCore::SessionID::isEphemeral): |
| (WebCore::SessionID::encode): |
| (WebCore::SessionID::decode): |
| (WTF::HashTraits<WebCore::SessionID>::constructDeletedValue): |
| (WTF::HashTraits<WebCore::SessionID>::isDeletedValue): |
| |
| 2017-04-27 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Attempt to fix a PLT regression on Mac |
| <rdar://problem/31826998> |
| |
| Unreviewed. |
| |
| Disable passing the TypeIdentifierHint to CGImageSourceCreateIncremental() |
| on Mac for now. |
| |
| * platform/graphics/cg/ImageDecoderCG.cpp: |
| (WebCore::ImageDecoder::ImageDecoder): |
| |
| 2017-04-27 Daniel Bates <dabates@apple.com> |
| |
| Rename callerDOMWindow()/CallerDocument to incumbentDOMWindow()/IncumbentDocument |
| https://bugs.webkit.org/show_bug.cgi?id=171145 |
| |
| Reviewed by Saam Barati. |
| |
| Standardize on the terminology "incumbent" to refer to "most-recently-entered author |
| function or script on the stack, or the author function or script that originally |
| scheduled the currently-running callback" (1). |
| |
| [1] <https://html.spec.whatwg.org/multipage/webappapis.html#realms-settings-objects-global-objects> (27 April 2017) |
| |
| * bindings/js/JSDOMWindowBase.cpp: |
| (WebCore::incumbentDOMWindow): |
| (WebCore::callerDOMWindow): Deleted. |
| * bindings/js/JSDOMWindowBase.h: |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateCallWith): |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| (WebCore::jsTestObjPrototypeFunctionWithCallerDocumentArgumentCaller): |
| (WebCore::jsTestObjPrototypeFunctionWithCallerWindowArgumentCaller): |
| * bindings/scripts/test/TestObj.idl: |
| * page/DOMWindow.idl: |
| |
| 2017-04-27 Youenn Fablet <youenn@apple.com> |
| |
| LayoutTest webrtc/datachannel/datachannel-event.html is a flaky crash |
| https://bugs.webkit.org/show_bug.cgi?id=171092 |
| <rdar://problem/31748066> |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by manual testing on iterating on the crashing tests. |
| With the patch, they appear to no longer crash. |
| |
| The current RTCPeerConnection/RTCController was expecting that peer connections would be stopped before the controller. |
| This assumption is sometimes wrong. |
| Adding clean-up on both sides so that if controller goes away, it notifies its peer connections that they are unregistered. |
| |
| * Modules/mediastream/RTCController.cpp: |
| (WebCore::RTCController::~RTCController): |
| * Modules/mediastream/RTCController.h: |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::create): |
| (WebCore::RTCPeerConnection::~RTCPeerConnection): |
| (WebCore::RTCPeerConnection::doStop): |
| (WebCore::RTCPeerConnection::registerToController): |
| (WebCore::RTCPeerConnection::unregisterFromController): |
| (WebCore::RTCPeerConnection::rtcController): Deleted. |
| * Modules/mediastream/RTCPeerConnection.h: |
| |
| 2017-04-27 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| REGRESSION(r213764): Async decoding of animated images is disabled for ImageDocument |
| https://bugs.webkit.org/show_bug.cgi?id=170333 |
| |
| Reviewed by Simon Fraser. |
| |
| The way the image drawing settings are transfered from the Settings to |
| BitmapImage is problematic. The drawing settings are retrieved from the |
| CachedImageObserver which store them in the constructor only if the |
| CachedImage as a loader. In the case of ImageDocument, there isn't loader |
| set in CachedImage so the settings of ImageDocument are not set. Also |
| the CachedImage can be used after loading by another document which may |
| have a different drawing settings. |
| |
| The fix is to make BitmapImage reads the drawing settings every time it |
| is drawn as a foreground or background image in a RenderElement. |
| |
| * html/canvas/CanvasRenderingContext2D.cpp: |
| (WebCore::CanvasRenderingContext2D::drawImage): |
| * loader/cache/CachedImage.cpp: |
| (WebCore::CachedImage::CachedImageObserver::CachedImageObserver): |
| * loader/cache/CachedImage.h: |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::setDrawingSettings): |
| (WebCore::BitmapImage::draw): |
| (WebCore::BitmapImage::shouldUseAsyncDecodingForLargeImages): I was |
| trying to disable the async image decoding temporarily but this way will |
| even prevent testing it until it is enabled. Disable it through WK1 and |
| WK2 preferences. |
| (WebCore::BitmapImage::shouldUseAsyncDecodingForAnimatedImages): |
| (WebCore::BitmapImage::advanceAnimation): |
| * platform/graphics/BitmapImage.h: |
| * platform/graphics/ImageObserver.h: |
| * rendering/RenderBoxModelObject.cpp: |
| (WebCore::RenderBoxModelObject::paintFillLayerExtended): |
| * rendering/RenderImage.cpp: |
| (WebCore::RenderImage::paintIntoRect): |
| |
| 2017-04-27 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Performing data interaction with plain text into a contenteditable does not insert any content |
| https://bugs.webkit.org/show_bug.cgi?id=171381 |
| |
| Reviewed by Tim Horton. |
| |
| Attempt to read plain-text-conformant UTI types as kUTTypePlainText before reading them as kUTTypeText. |
| This allows WebItemProviderPasteboard to properly materialize an NSString in -valuesForPasteboardType: |
| inItemSet: using a pre-loaded NSData blob. |
| |
| This scenario is covered by DataInteractionTests.ExternalSourceUTF8PlainTextOnly, but DataInteractionTests |
| are temporarily disabled due to incompatibilities with the current internal SDK. |
| |
| * platform/ios/PasteboardIOS.mm: |
| (WebCore::readPasteboardWebContentDataForType): |
| |
| 2017-04-27 Chris Dumez <cdumez@apple.com> |
| |
| Element.getBoundingClientRect() / getClientRects() should return a DOMRect types |
| https://bugs.webkit.org/show_bug.cgi?id=171226 |
| |
| Reviewed by Simon Fraser. |
| |
| Element.getBoundingClientRect() / getClientRects() should return a DOMRect types |
| as per: |
| - https://drafts.csswg.org/cssom-view/#extension-to-the-element-interface |
| |
| DOMRect is compatible with ClientRect, which we used to return so the risk should |
| be low. |
| |
| Tests: fast/css/DOMRect-attributes-prototype.html |
| fast/css/DOMRect-serialization.html |
| fast/dom/Element/getClientRects-return-type.html |
| |
| * dom/ClientRectList.cpp: |
| (WebCore::ClientRectList::ClientRectList): |
| * dom/ClientRectList.h: |
| (WebCore::ClientRectList::create): |
| * dom/DOMRect.h: |
| (WebCore::DOMRect::create): |
| * dom/DOMRectReadOnly.h: |
| * dom/Element.cpp: |
| (WebCore::toDOMRectVector): |
| (WebCore::Element::getClientRects): |
| (WebCore::Element::getBoundingClientRect): |
| * dom/Element.h: |
| * dom/Element.idl: |
| * html/track/VTTRegion.cpp: |
| (WebCore::VTTRegion::displayLastTextTrackCueBox): |
| |
| 2017-04-27 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| AX: Expose elements with the ARIA "feed" role |
| https://bugs.webkit.org/show_bug.cgi?id=171184 |
| |
| Reviewed by Chris Fleizach. |
| |
| Map elements with the "feed" role to the internal ApplicationGroupRole |
| AccessibilityRole. This prevents them from being unexpectedly pruned from |
| the accessibility tree, and causes them to be exposed with ATK_ROLE_PANEL |
| in WebKitGtk and AXGroup in Safari. |
| |
| No new tests needed. Instead, add the "feed" role to roles-exposed.html, |
| xml-roles-exposed.html, and roles-computedRoleString.html. |
| |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::initializeRoleMap): |
| |
| 2017-04-27 Brady Eidson <beidson@apple.com> |
| |
| Update NetworkStorageSession to support multiple persistent sessions and explicitly set cookie storages. |
| https://bugs.webkit.org/show_bug.cgi?id=171365 |
| |
| Reviewed by Andy Estes. |
| |
| No new tests (No testable behavior change yet). |
| |
| * platform/network/NetworkStorageSession.cpp: |
| (WebCore::NetworkStorageSession::destroySession): |
| * platform/network/NetworkStorageSession.h: |
| |
| * platform/network/NetworkStorageSessionStub.cpp: |
| (WebCore::NetworkStorageSession::ensurePrivateBrowsingSession): |
| (WebCore::NetworkStorageSession::ensureSession): |
| |
| * platform/network/cf/NetworkStorageSessionCFNet.cpp: |
| (WebCore::createCFStorageSessionForIdentifier): |
| (WebCore::NetworkStorageSession::NetworkStorageSession): |
| (WebCore::NetworkStorageSession::switchToNewTestingSession): |
| (WebCore::NetworkStorageSession::defaultStorageSession): |
| (WebCore::NetworkStorageSession::ensurePrivateBrowsingSession): |
| (WebCore::NetworkStorageSession::ensureSession): |
| (WebCore::NetworkStorageSession::cookieStorage): |
| |
| * platform/network/soup/NetworkStorageSessionSoup.cpp: |
| (WebCore::NetworkStorageSession::ensureSession): |
| |
| * platform/spi/cf/CFNetworkSPI.h: |
| |
| 2017-04-27 Zalan Bujtas <zalan@apple.com> |
| |
| Use text-shadow to visualize simple line layout coverage. |
| https://bugs.webkit.org/show_bug.cgi?id=171379 |
| |
| Reviewed by Antti Koivisto. |
| |
| It's more subtle (for everyday use). |
| |
| * rendering/SimpleLineLayoutFunctions.cpp: |
| (WebCore::SimpleLineLayout::paintFlow): |
| (WebCore::SimpleLineLayout::paintDebugBorders): Deleted. |
| |
| 2017-04-27 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| [ATK] ARIA alertdialogs should be exposed with ROLE_DIALOG |
| https://bugs.webkit.org/show_bug.cgi?id=171187 |
| |
| Reviewed by Chris Fleizach. |
| |
| Map ApplicationAlertDialogRole to ATK_ROLE_DIALOG. While ATK_ROLE_ALERT is |
| appropriate as far as ATK is concerned, the Core Accessibility API Mappings |
| map ARIA's alertdialog role to ATK_ROLE_DIALOG. We should be consistent |
| with the spec. The fact that this is an alert dialog can still be obtained |
| via the AtkObject attributes. |
| |
| No new tests needed. Update the expectations for roles-exposed.html, |
| xml-roles-exposed.html, and aria-mappings.html to reflect the change. |
| |
| * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: |
| (atkRole): |
| |
| 2017-04-27 Antti Koivisto <antti@apple.com> |
| |
| Repeated layouts in Mail due to viewport units being used with auto-sizing |
| https://bugs.webkit.org/show_bug.cgi?id=171371 |
| <rdar://problem/28780084> |
| |
| Reviewed by Zalan Bujtas. |
| |
| Test: css3/viewport-percentage-lengths/vh-auto-size.html |
| |
| Auto-sizing code would adjust the size of the view in the beginning of layout(). This would |
| end up invalidating style for elements that use vh units and we would perform main layout |
| with unclean style. This would result in endless layout loops and hit assert on debug. |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::availableContentSizeChanged): |
| |
| Ensure we heve clean style after resize if we are in pre-layout. |
| |
| 2017-04-27 Alex Christensen <achristensen@webkit.org> |
| |
| Modernize Frame.h |
| https://bugs.webkit.org/show_bug.cgi?id=171357 |
| |
| Reviewed by Andy Estes. |
| |
| Frame.h has several std::unique_ptrs that are created in the constructor, never null, |
| and destroyed in the destructor. This is what WTF::UniqueRef is for, and using UniqueRef |
| allows us to not check for null values because a UniqueRef can never be null. |
| An interesting case was the EventHandler, which we explicitly set to nullptr in the destructor |
| of MainFrame, a subclass of Frame. We added this in r199181 to fix a crash tested by |
| fast/events/wheel-event-destroys-frame.html and this improved lifetime also does not crash |
| or assert in that test. |
| |
| Using UniqueRef also requires const correctness, which this patch adds when necessary. |
| |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::dispatchTouchEvent): |
| * editing/DeleteSelectionCommand.cpp: |
| (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete): |
| * editing/Editor.cpp: |
| (WebCore::Editor::isSelectTrailingWhitespaceEnabled): |
| (WebCore::Editor::computeAndSetTypingStyle): |
| * editing/Editor.h: |
| * editing/FrameSelection.cpp: |
| (WebCore::FrameSelection::contains): |
| (WebCore::FrameSelection::copyTypingStyle): |
| * editing/FrameSelection.h: |
| (WebCore::FrameSelection::setTypingStyle): |
| * loader/EmptyClients.cpp: |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::clear): |
| * page/EditorClient.h: |
| * page/EventHandler.cpp: |
| (WebCore::EventHandler::hitTestResultAtPoint): |
| * page/EventHandler.h: |
| * page/Frame.cpp: |
| (WebCore::Frame::Frame): |
| (WebCore::Frame::setView): |
| (WebCore::Frame::injectUserScripts): |
| * page/Frame.h: |
| (WebCore::Frame::editor): |
| (WebCore::Frame::eventHandler): |
| (WebCore::Frame::selection): |
| (WebCore::Frame::animation): |
| (WebCore::Frame::script): |
| (WebCore::Frame::eventHandlerPtr): Deleted. |
| * page/MainFrame.cpp: |
| (WebCore::MainFrame::~MainFrame): |
| * replay/UserInputBridge.cpp: |
| (WebCore::UserInputBridge::handleContextMenuEvent): |
| * replay/UserInputBridge.h: |
| |
| 2017-04-27 Andy Estes <aestes@apple.com> |
| |
| Fix the macOS build. |
| |
| * platform/mac/WebPlaybackControlsManager.h: |
| |
| 2017-04-27 Zalan Bujtas <zalan@apple.com> |
| |
| Text gets cut off when bailing out of simple line layout with widows. |
| https://bugs.webkit.org/show_bug.cgi?id=171370 |
| <rdar://problem/31563414> |
| |
| Reviewed by Antti Koivisto. |
| |
| Normal line layout requires an extra layout to handle widows. See RenderBlockFlow::relayoutToAvoidWidows. |
| |
| Test: fast/multicol/simple-line-layout-widows-when-switching-over-to-normal-line-layout.html |
| |
| * rendering/RenderBlockFlow.cpp: |
| (WebCore::RenderBlockFlow::ensureLineBoxes): |
| |
| 2017-04-27 Dean Jackson <dino@apple.com> |
| |
| Use the correct modern-media-controls |
| https://bugs.webkit.org/show_bug.cgi?id=171358 |
| |
| Reviewed by Antoine Quint. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| 2017-04-26 Dan Bernstein <mitz@apple.com> |
| |
| Reverted r215774. |
| |
| That change wasn’t doing what it was intended to do and was inappropriate for WebCore. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| 2017-04-26 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Attempt to fix a PLT regression. |
| <rdar://problem/31826998> |
| |
| Unreviewed. |
| |
| Disable passing the TypeIdentifierHint to CGImageSourceCreateIncremental() |
| on iOS for now. |
| |
| * platform/graphics/cg/ImageDecoderCG.cpp: |
| (WebCore::ImageDecoder::ImageDecoder): |
| |
| 2017-04-26 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| [ATK] ARIA buttons which have a popup should be ATK_ROLE_PUSH_BUTTON; not ATK_ROLE_COMBO_BOX |
| https://bugs.webkit.org/show_bug.cgi?id=171182 |
| |
| Reviewed by Chris Fleizach. |
| |
| Test: accessibility/gtk/button-with-aria-haspopup-is-not-a-combobox.html |
| |
| WebCore Accessibility assigns PopUpButtonRole to collapsed select elements, |
| which the ATK code correctly maps to ATK_ROLE_COMBO_BOX. It turns out that |
| WebCore Accessibility also maps the ARIA button role to PopUpButtonRole if |
| it also has aria-haspopup. Add a check to atkRole() so that the latter case |
| is mapped to ATK_ROLE_PUSH_BUTTON. |
| |
| * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: |
| (atkRole): |
| |
| 2017-04-26 Tim Horton <timothy_horton@apple.com> |
| |
| Should not drag x-apple-data-detectors links |
| https://bugs.webkit.org/show_bug.cgi?id=171352 |
| <rdar://problem/31309081> |
| |
| Reviewed by Beth Dakin. |
| |
| Test: fast/events/do-not-drag-and-drop-data-detectors-link.html |
| |
| These links are only meaningful in the context of the original document, |
| so they should not be draggable. |
| |
| * editing/cocoa/DataDetection.h: |
| * editing/cocoa/DataDetection.mm: |
| (WebCore::DataDetection::dataDetectorURLProtocol): |
| (WebCore::DataDetection::isDataDetectorURL): |
| * page/DragController.cpp: |
| (WebCore::isDraggableLink): |
| Disallow dragging of <a href="x-apple-data-detectors://..."> links. |
| |
| 2017-04-26 Tim Horton <timothy_horton@apple.com> |
| |
| Revert accidentally smushed commit. |
| |
| * editing/cocoa/DataDetection.h: |
| * editing/cocoa/DataDetection.mm: |
| (WebCore::DataDetection::dataDetectorURLProtocol): Deleted. |
| (WebCore::DataDetection::isDataDetectorURL): Deleted. |
| * page/DragController.cpp: |
| (WebCore::isDraggableLink): |
| * platform/mac/DragImageMac.mm: |
| (WebCore::createDragImageForLink): |
| |
| 2017-04-26 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION (r215686): ASSERTION FAILED: data seen with webarchive/loading tests |
| https://bugs.webkit.org/show_bug.cgi?id=171340 |
| |
| Reviewed by Brady Eidson. |
| |
| This fixes a flaky assertion in webarchive/loading/missing-data.html |
| |
| * platform/cf/SharedBufferCF.cpp: |
| (WebCore::SharedBuffer::append): |
| If there's no CFDataRef, there's no need to append data. |
| This happens sometimes. |
| |
| 2017-04-26 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r215814. |
| |
| The LayoutTest for this change is failing on ios-simulator and |
| is flaky on macOS. |
| |
| Reverted changeset: |
| |
| "Response.blob() does not set the content-type based on the |
| header value." |
| https://bugs.webkit.org/show_bug.cgi?id=170849 |
| http://trac.webkit.org/changeset/215814 |
| |
| 2017-04-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| WebItemProviderPasteboard should not synchronously load provided data |
| https://bugs.webkit.org/show_bug.cgi?id=171341 |
| <rdar://problem/31614010> |
| |
| Reviewed by Tim Horton. |
| |
| Refactors WebItemProviderPasteboard to not require asynchronously loading item provider data. To accomplish this, |
| we ensure that before performing data interaction, the UTI type that the data operation target should consume is |
| propagated to the UI process prior to the web process receiving the signal from the UI process to begin the |
| data operation itself. This information is sent via WebPlatformStrategies::updatePreferredTypeIdentifiers, a new |
| pasteboard helper function. |
| |
| * page/DragController.cpp: |
| (WebCore::DragController::DragController): |
| (WebCore::dragIsHandledByDocument): |
| (WebCore::DragController::performDragOperation): |
| (WebCore::DragController::dragEnteredOrUpdated): |
| (WebCore::DragController::updatePreferredTypeIdentifiersForDragHandlingMethod): |
| (WebCore::DragController::tryDocumentDrag): |
| |
| Give DragHandlingMethod a richer representation of what type of action will be performed. DragController:: |
| updatePreferredTypeIdentifiersForDragHandlingMethod uses this to determine what kinds of UTIs are acceptable for |
| the current drop session. |
| |
| * page/DragController.h: |
| (WebCore::DragController::documentIsHandlingNonDefaultDrag): |
| * page/mac/DragControllerMac.mm: |
| (WebCore::DragController::updatePreferredTypeIdentifiersForDragHandlingMethod): |
| |
| Updates the data interaction pasteboard's list of preferred type identifiers it should load upon data operation. |
| |
| * platform/DragData.h: |
| * platform/PasteboardStrategy.h: |
| * platform/PlatformPasteboard.h: |
| * platform/ios/AbstractPasteboard.h: |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::updatePreferredTypeIdentifiers): |
| * platform/ios/WebItemProviderPasteboard.mm: |
| |
| Introduce _preferredTypeIdentifiers, which -doAfterLoadingProvidedContentIntoFileURLs: uses as a hint when |
| determining which UTI to load for an item provider. In the absence of preferred type identifiers, the default |
| behavior is to use the highest fidelity type adhering to "public.content". |
| |
| (-[WebItemProviderPasteboard init]): |
| (-[WebItemProviderPasteboard updatePreferredTypeIdentifiers:]): |
| (-[WebItemProviderPasteboard setItemProviders:]): |
| (-[WebItemProviderPasteboard dataForPasteboardType:inItemSet:]): |
| (-[WebItemProviderPasteboard valuesForPasteboardType:inItemSet:]): |
| |
| Remove calls to -createObjectOfClass: and -copyDataRepresentation:. Instead, rely solely on the loaded file URL |
| to read and initialize data and objects from the pasteboard. |
| |
| (-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:]): |
| (-[WebItemProviderPasteboard _tryToCreateObjectOfClass:usingProvider:]): Deleted. |
| * platform/mac/DragDataMac.mm: |
| (WebCore::DragData::updatePreferredTypeIdentifiers): |
| |
| 2017-04-26 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| [ATK] Elements with a defined, non-false value for aria-current should expose ATK_STATE_ACTIVE |
| https://bugs.webkit.org/show_bug.cgi?id=171163 |
| |
| Reviewed by Chris Fleizach. |
| |
| Add ATK_STATE_ACTIVE to the state set of elements which have a valid, non-false |
| value for aria-current, expose the value of via the "current" AtkObject attribute, |
| and emit state-change notifications when the value of aria-current changes from |
| non-false to false, or vice versa. |
| |
| Tests: accessibility/gtk/aria-current-changed-notification.html |
| accessibility/gtk/aria-current.html |
| |
| * accessibility/AXObjectCache.cpp: |
| (WebCore::AXObjectCache::handleAttributeChanged): |
| * accessibility/AXObjectCache.h: |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::supportsARIACurrent): |
| (WebCore::AccessibilityObject::ariaCurrentValue): |
| * accessibility/AccessibilityObject.h: |
| * accessibility/atk/AXObjectCacheAtk.cpp: |
| (WebCore::AXObjectCache::postPlatformNotification): |
| * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: |
| (webkitAccessibleGetAttributes): |
| (setAtkStateSetFromCoreObject): |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: |
| (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): Moved code returning |
| string value for aria-current into AccessibilityObject:ariaCurrentValue(). |
| |
| 2017-04-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| WebItemProviderPasteboard should fetch preloaded assets from disk when possible |
| https://bugs.webkit.org/show_bug.cgi?id=171320 |
| <rdar://problem/31614010> |
| |
| Reviewed by Tim Horton. |
| |
| Adds a mechanism to WebItemProviderPasteboard to remember the temporary file URLs of assets it has loaded using |
| doAfterLoadingProvidedContentIntoFileURLs:. When retrieving data from the pasteboard, we then see if we can |
| first fetch serialized data straight from disk instead of having to go through the item provider in both |
| -dataForPasteboardType:inItemSet: and -valuesForPasteboardType:inItemSet:. |
| |
| See below annotations for more detail. |
| |
| * platform/ios/AbstractPasteboard.h: |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::filenamesForDataInteraction): |
| * platform/ios/WebItemProviderPasteboard.h: |
| * platform/ios/WebItemProviderPasteboard.mm: |
| |
| Introduces _typeToFileURLMaps, an array of dictionaries. A dictionary at the ith index of this array represents |
| a mapping of UTIs to loaded temo file URLs for the ith UIItemProvider in the _itemProviders array. Before data |
| interaction is performed, all entries in this array will be empty. |
| |
| (-[WebItemProviderPasteboard init]): |
| (-[WebItemProviderPasteboard setItemProviders:]): |
| (-[WebItemProviderPasteboard _preLoadedDataConformingToType:forItemProviderAtIndex:]): |
| (-[WebItemProviderPasteboard dataForPasteboardType:inItemSet:]): |
| (-[WebItemProviderPasteboard valuesForPasteboardType:inItemSet:]): |
| |
| Consult any loaded assets on disk before hitting UIItemProviders via the new |
| -_preLoadedDataConformingToType:forItemProviderAtIndex: helper method. |
| |
| (-[WebItemProviderPasteboard _tryToCreateObjectOfClass:usingProvider:]): |
| (-[WebItemProviderPasteboard fileURLsForDataInteraction]): |
| |
| Traverse _typeToFileURLMaps to collect all file URLs. |
| |
| (-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:]): |
| |
| Refactored to populate and set _typeToFileURLMaps when loading completes, rather than an array of file URLs. |
| |
| (-[WebItemProviderPasteboard _tryToCreateAndAppendObjectOfClass:toArray:usingProvider:]): Deleted. |
| (-[WebItemProviderPasteboard filenamesForDataInteraction]): Deleted. |
| |
| Correct an erroneously named method (replaces filenames with fileURLs). |
| |
| 2017-04-26 Youenn Fablet <youenn@apple.com> |
| |
| LayoutTest webrtc/datachannel/basic.html is a flaky crash |
| https://bugs.webkit.org/show_bug.cgi?id=170154 |
| <rdar://problem/31288423> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Before the patch, we are setting the channel handler client to null and then unregistering from observer to |
| libwebrtc data channel. Since this happens in two different threads, there might be a timing issue. |
| |
| Removing this risk by first unregistering (done synchronously on the other thread), before setting client to null. |
| Made some clean-up related refactoring. |
| |
| * Modules/mediastream/RTCDataChannel.cpp: |
| (WebCore::RTCDataChannel::create): |
| (WebCore::RTCDataChannel::close): |
| * Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp: |
| (WebCore::LibWebRTCDataChannelHandler::setClient): |
| (WebCore::LibWebRTCDataChannelHandler::close): |
| * Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h: |
| * platform/mediastream/RTCDataChannelHandler.h: |
| * platform/mock/RTCDataChannelHandlerMock.cpp: |
| (WebCore::RTCDataChannelHandlerMock::setClient): |
| * platform/mock/RTCDataChannelHandlerMock.h: |
| |
| 2017-04-26 Alex Christensen <achristensen@webkit.org> |
| |
| Make user script injection more robust |
| https://bugs.webkit.org/show_bug.cgi?id=171339 |
| <rdar://problem/30643691> |
| |
| Reviewed by Geoffrey Garen. |
| |
| * loader/EmptyClients.cpp: |
| * page/Frame.cpp: |
| (WebCore::Frame::injectUserScripts): |
| * page/UserContentController.cpp: |
| (WebCore::UserContentController::forEachUserScript): |
| (WebCore::UserContentController::forEachUserStyleSheet): |
| (WebCore::UserContentController::forEachUserMessageHandler): |
| * page/UserContentController.h: |
| * page/UserContentProvider.h: |
| |
| 2017-04-26 Zalan Bujtas <zalan@apple.com> |
| |
| RTL: recent searches popover is displayed in incorrect location |
| https://bugs.webkit.org/show_bug.cgi?id=171338 |
| <rdar://problem/31377807> |
| |
| Reviewed by Dean Jackson. |
| |
| Compute the absolute coordinates for the popup the same way we do for the select dropdown. |
| |
| * rendering/RenderSearchField.cpp: |
| (WebCore::RenderSearchField::showPopup): |
| |
| 2017-04-26 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Restrict WebKit image formats to a known whitelist |
| https://bugs.webkit.org/show_bug.cgi?id=170700 |
| |
| Reviewed by Tim Horton. |
| |
| If the image format is not supported, the load should be canceled and the |
| image is marked a broken image. |
| |
| Test: fast/images/image-formats-support.html |
| |
| * loader/cache/CachedImage.cpp: |
| (WebCore::CachedImage::addIncrementalDataBuffer): |
| (WebCore::CachedImage::setImageDataBuffer): |
| (WebCore::CachedImage::finishLoading): |
| * loader/cache/CachedImage.h: |
| |
| 2017-04-26 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| [ATK] Implement support for new ARIA 1.1 values of aria-haspopup |
| https://bugs.webkit.org/show_bug.cgi?id=171164 |
| |
| Reviewed by Chris Fleizach. |
| |
| In ARIA 1.1, aria-haspopup's value type changed from true/false to a token. |
| Values: true, false (default, unless it's a combobox), dialog, grid, listbox |
| (default for combobox), menu, and tree. Any value of aria-haspopup that is |
| not included in the list of allowed values, including an empty string, must |
| be treated as if the value false had been provided. |
| |
| Add AccessibilityObject::ariaPopupValue() to validate the value, handle implicit |
| values, and give platform assistive technologies a means to access that value. |
| |
| If there is a valid, non-false value of aria-haspopup, include ATK_STATE_HAS_POPUP |
| in the AtkStateSet. Lastly, expose the value (rather than true/false) via the "haspop" |
| AtkObject attribute. |
| |
| Test: accessibility/gtk/aria-haspopup.html |
| |
| * accessibility/AccessibilityObject.h: |
| (WebCore::AccessibilityObject::ariaPopupValue): |
| (WebCore::AccessibilityObject::supportsARIAHasPopup): |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::ariaHasPopup): |
| * accessibility/AccessibilityRenderObject.h: |
| * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: |
| (webkitAccessibleGetAttributes): |
| (setAtkStateSetFromCoreObject): |
| |
| 2017-04-26 Alex Christensen <achristensen@webkit.org> |
| |
| Fix CMake build. |
| |
| * PlatformMac.cmake: |
| |
| 2017-04-26 Antti Koivisto <antti@apple.com> |
| |
| Enable expired-only reload policy on Mac and iOS |
| https://bugs.webkit.org/show_bug.cgi?id=171264 |
| <rdar://problem/31807637> |
| |
| Reviewed by Andreas Kling. |
| |
| Limit the behavior to http and data URLs (where we explicitly know about expiration). |
| |
| * html/HTMLLinkElement.cpp: |
| (WebCore::HTMLLinkElement::setCSSStyleSheet): |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::subresourceCachePolicy): |
| |
| Pass the URL so we can test for protocol. |
| |
| * loader/FrameLoader.h: |
| * loader/NavigationAction.cpp: |
| (WebCore::navigationType): |
| |
| Test for reload navigation type correctly. |
| |
| * loader/cache/CachedResource.cpp: |
| (WebCore::CachedResource::load): |
| * loader/cache/CachedResourceLoader.cpp: |
| (WebCore::CachedResourceLoader::determineRevalidationPolicy): |
| (WebCore::CachedResourceLoader::cachePolicy): |
| * loader/cache/CachedResourceLoader.h: |
| |
| 2017-04-26 WebKit Contributor <webkitcontrib@gmail.com> |
| |
| Response.blob() does not set the content-type based on the header value. |
| https://bugs.webkit.org/show_bug.cgi?id=170849 |
| |
| Reviewed by Alex Christensen. |
| |
| The Fetch API specification requires setting the blob contentType |
| using the Content-Type header value, if present. Previously the |
| FetchResponse class only called updateContentType() when first |
| created even though all the headers were not available. Call |
| updateContentType() again after the headers are populated. |
| |
| This change allows WebKit to pass the "Consume response's body: from |
| fetch to blob" case in the WPT response-consume.html test. |
| |
| Test: http://w3c-test.org/fetch/api/response/response-consume.html |
| |
| * Modules/fetch/FetchResponse.cpp: |
| (WebCore::FetchResponse::BodyLoader::didReceiveResponse): Modified to |
| call FetchBodyOwner::updateContentType() after filling m_headers. |
| |
| 2017-04-26 Andy Estes <aestes@apple.com> |
| |
| Try to fix the macOS Sierra build. |
| |
| * platform/mac/WebVideoFullscreenInterfaceMac.mm: |
| |
| 2017-04-26 Andy Estes <aestes@apple.com> |
| |
| [macOS] Add picture-in-picture support to WebPlaybackControlsManager |
| https://bugs.webkit.org/show_bug.cgi?id=171328 |
| <rdar://problem/29875010> |
| |
| Reviewed by Jer Noble. |
| |
| * platform/cocoa/WebPlaybackSessionModel.h: |
| * platform/cocoa/WebPlaybackSessionModelMediaElement.h: |
| * platform/cocoa/WebPlaybackSessionModelMediaElement.mm: |
| (WebCore::WebPlaybackSessionModelMediaElement::togglePictureInPicture): If the media element |
| is currently in PiP fullscreen mode, exit fullscreen. Otherwise, enter PiP fullscreen mode. |
| * platform/mac/WebPlaybackControlsManager.h: |
| * platform/mac/WebPlaybackControlsManager.mm: |
| (-[WebPlaybackControlsManager canTogglePictureInPicture]): Added. Returns YES if |
| -allowsPictureInPicturePlayback returns YES. |
| (-[WebPlaybackControlsManager togglePictureInPicture]): Added. Calls |
| WebPlaybackSessionModel::togglePictureInPicture(). |
| * platform/mac/WebVideoFullscreenInterfaceMac.mm: |
| (WebCore::WebVideoFullscreenInterfaceMac::enterFullscreen): Added a call to |
| -[WebPlaybackControlsManager setPictureInPictureActive:YES]. |
| (WebCore::WebVideoFullscreenInterfaceMac::exitFullscreen): Added a call to |
| -[WebPlaybackControlsManager setPictureInPictureActive:NO]. |
| (WebCore::WebVideoFullscreenInterfaceMac::exitFullscreenWithoutAnimationToMode): Ditto. |
| * platform/spi/cocoa/AVKitSPI.h: Declared new SPI on AVTouchBarPlaybackControlsControlling. |
| |
| 2017-04-25 Dean Jackson <dino@apple.com> |
| |
| [Color] Make gradients work with ExtendedColors |
| https://bugs.webkit.org/show_bug.cgi?id=171315 |
| <rdar://problems/31830177> |
| |
| Reviewed by Antoine Quint. |
| |
| Allow gradients to hold Color objects, and thus |
| handle ExtendedColor. Implement the backend for |
| CoreGraphics. |
| |
| Test: css3/color/gradients.html |
| |
| * platform/graphics/Gradient.cpp: |
| (WebCore::Gradient::addColorStop): Just copy the Color now. |
| (WebCore::compareStops): Handle rename of stop to offset. |
| (WebCore::Gradient::hasAlpha): Use Color's helper. |
| * platform/graphics/Gradient.h: |
| (WebCore::Gradient::ColorStop::ColorStop): Rename stop |
| to offset, and store a Color rather than four floating |
| point values. |
| * platform/graphics/cairo/GradientCairo.cpp: |
| (WebCore::Gradient::platformGradient): |
| * platform/graphics/cg/GradientCG.cpp: |
| (WebCore::Gradient::platformGradient): Use the CG method |
| that can handle CGColorRefs with ColorSpace values, and |
| pass the Extended sRGB space which should be no change for |
| all existing gradients but also handle ColorSpaces like |
| Display P3. |
| * platform/graphics/win/GradientDirect2D.cpp: |
| (WebCore::Gradient::generateGradient): |
| * svg/SVGGradientElement.cpp: |
| (WebCore::SVGGradientElement::buildStops): |
| |
| 2017-04-25 Alex Christensen <achristensen@webkit.org> |
| |
| Encoded filename should be decoded for WKContentExtension.identifier |
| https://bugs.webkit.org/show_bug.cgi?id=171316 |
| |
| Reviewed by Andy Estes. |
| |
| * platform/FileSystem.h: |
| |
| 2017-04-26 Frederic Wang <fwang@igalia.com> |
| |
| Fix typo in RenderFrameBase |
| https://bugs.webkit.org/show_bug.cgi?id=171324 |
| |
| Reviewed by Zalan Bujtas. |
| |
| No new tests, behavior unchanged. |
| |
| * rendering/RenderFrameBase.cpp: |
| (WebCore::RenderFrameBase::layoutWithFlattening): |
| (WebCore::RenderFrameBase::performLayoutWithFlattening): |
| (WebCore::RenderFrameBase::peformLayoutWithFlattening): Deleted. |
| * rendering/RenderFrameBase.h: |
| |
| 2017-04-26 Zalan Bujtas <zalan@apple.com> |
| |
| Forced page break on :after triggers infinite loop in column balancing |
| https://bugs.webkit.org/show_bug.cgi?id=171309 |
| rdar://problem/26285884 |
| |
| Reviewed by David Hyatt. |
| |
| Stop trying to balance the columns when the forced page breaks >= the number of |
| columns even when this number is 1. Content will always overflow to the next page. |
| see https://chromium.googlesource.com/chromium/src/+/fbbebf38cefb2712c912581eccb046ef363ec84e%5E%21/#F2 |
| |
| Test: fast/multicol/infinite-loop-when-forced-break.html |
| |
| * rendering/RenderMultiColumnSet.cpp: |
| (WebCore::RenderMultiColumnSet::calculateBalancedHeight): |
| |
| 2017-04-26 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Attempt to fix a JetStream regression. |
| <rdar://problem/31742414> |
| |
| Unreviewed. |
| |
| Disable async decoding for large images till the flickering bug wk170640 |
| is fixed. |
| |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::shouldUseAsyncDecodingForLargeImages): |
| |
| 2017-04-26 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r215767. |
| |
| The LayoutTest for this change is a flaky failure. |
| |
| Reverted changeset: |
| |
| "Restrict WebKit image formats to a known whitelist" |
| https://bugs.webkit.org/show_bug.cgi?id=170700 |
| http://trac.webkit.org/changeset/215767 |
| |
| 2017-04-26 Dave Hyatt <hyatt@apple.com> |
| |
| Improve wavy underline rendering |
| https://bugs.webkit.org/show_bug.cgi?id=171281 |
| |
| Reviewed by Sam Weinig. |
| |
| Change wavy underline rendering to use font size instead of stroke |
| thickness as a way to tune it. Cut the extra offset from 2 to 1. |
| Change the parameters to make the line flatter and to make the proportion |
| of the wave that renders underneath a glyph the same. |
| |
| * rendering/TextDecorationPainter.cpp: |
| (WebCore::strokeWavyTextDecoration): |
| (WebCore::TextDecorationPainter::paintTextDecoration): |
| * style/InlineTextBoxStyle.cpp: |
| (WebCore::getWavyStrokeParameters): |
| (WebCore::visualOverflowForDecorations): |
| * style/InlineTextBoxStyle.h: |
| (WebCore::wavyOffsetFromDecoration): |
| |
| 2017-04-24 Sergio Villar Senin <svillar@igalia.com> |
| |
| [css-grid] Remove most of the usage of SizingOperation |
| https://bugs.webkit.org/show_bug.cgi?id=171225 |
| |
| Reviewed by Darin Adler. |
| |
| SizingOperation was added as a way to modify the behaviour of the track sizing algorithm |
| with the specifics for intrinsic size computations. The problem is that although intrinsic |
| size computation does imply indefinite sizes, the opposite is not always true. For example, |
| a grid container with height:auto would compute the row sizes with an indefinite size but is |
| not part of the intrinsic size (preferred widths) computation. |
| |
| That's why it was wrongly used in some parts of the current code, in most of the cases is |
| more than enough to check whether the available space is indefinite or not. In order to do |
| that we have to keep both available sizes (height & width) around all the time to properly |
| support orthogonal flows. |
| |
| This change does not imply any change in behaviour. |
| |
| * rendering/GridTrackSizingAlgorithm.cpp: |
| (WebCore::GridTrackSizingAlgorithm::setAvailableSpace): |
| (WebCore::GridTrackSizingAlgorithm::computeTrackBasedSize): |
| (WebCore::GridTrackSizingAlgorithm::initialBaseSize): |
| (WebCore::GridTrackSizingAlgorithm::initialGrowthLimit): |
| (WebCore::GridTrackSizingAlgorithm::sizeTrackToFitNonSpanningItem): |
| (WebCore::GridTrackSizingAlgorithm::increaseSizesToAccommodateSpanningItems): |
| (WebCore::GridTrackSizingAlgorithm::assumedRowsSizeForOrthogonalChild): |
| (WebCore::GridTrackSizingAlgorithm::gridAreaBreadthForChild): |
| (WebCore::GridTrackSizingAlgorithm::gridTrackSize): |
| (WebCore::IndefiniteSizeStrategy::findUsedFlexFraction): |
| (WebCore::IndefiniteSizeStrategy::recomputeUsedFlexFractionIfNeeded): |
| (WebCore::GridTrackSizingAlgorithm::initializeTrackSizes): |
| (WebCore::GridTrackSizingAlgorithm::setup): |
| (WebCore::GridTrackSizingAlgorithm::reset): |
| * rendering/GridTrackSizingAlgorithm.h: |
| (WebCore::GridTrackSizingAlgorithmStrategy::availableSpace): |
| * rendering/RenderGrid.cpp: |
| (WebCore::RenderGrid::availableSpaceForGutters): |
| (WebCore::RenderGrid::computeTrackBasedLogicalHeight): |
| (WebCore::RenderGrid::computeTrackSizesForDefiniteSize): |
| (WebCore::RenderGrid::layoutBlock): |
| (WebCore::RenderGrid::gridGap): |
| (WebCore::RenderGrid::guttersSize): |
| (WebCore::RenderGrid::computeIntrinsicLogicalWidths): |
| (WebCore::RenderGrid::computeTrackSizesForIndefiniteSize): |
| (WebCore::RenderGrid::computeAutoRepeatTracksCount): |
| (WebCore::RenderGrid::placeItemsOnGrid): |
| (WebCore::RenderGrid::trackSizesForComputedStyle): |
| (WebCore::RenderGrid::applyStretchAlignmentToTracksIfNeeded): |
| (WebCore::RenderGrid::offsetAndBreadthForPositionedChild): |
| (WebCore::RenderGrid::populateGridPositionsForDirection): |
| (WebCore::RenderGrid::columnAxisOffsetForChild): |
| (WebCore::RenderGrid::rowAxisOffsetForChild): |
| (WebCore::RenderGrid::gridGapForDirection): Deleted. |
| * rendering/RenderGrid.h: |
| |
| 2017-04-26 Frederic Wang <fwang@igalia.com> |
| |
| Remove Document::*FrameElementsShouldIgnoreScrolling |
| https://bugs.webkit.org/show_bug.cgi?id=171271 |
| |
| Reviewed by Chris Dumez. |
| |
| setFrameElementsShouldIgnoreScrolling and frameElementsShouldIgnoreScrolling were |
| introduced bug 23072 in order to work around a bug in the Dictionary application. |
| However, this was removed in bug 132095 and hence the functions are no longer necessary. |
| |
| No new tests. |
| |
| * dom/Document.h: |
| (WebCore::Document::setFrameElementsShouldIgnoreScrolling): Deleted. |
| (WebCore::Document::frameElementsShouldIgnoreScrolling): Deleted. |
| * html/HTMLFrameElementBase.cpp: |
| (WebCore::HTMLFrameElementBase::parseAttribute): |
| |
| 2017-04-26 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] CryptoKeyRSA: implement create(), keySizeInBits(), buildAlgorithm(), exportData() |
| https://bugs.webkit.org/show_bug.cgi?id=171213 |
| |
| Reviewed by Michael Catanzaro. |
| |
| CryptoKeyRSA::create() validates the specified key type along with the |
| provided data. If everything is OK, it then proceeds to build the key |
| of the appropriate type through an s-expression that is constructed with |
| the necessary data. We don't currently support creating private keys |
| with any additional prime information (apart from p and q). |
| |
| CryptoKeyRSA::keySizeInBits() calls the helper getRSAModulusLength() |
| function that find the modulus MPI in the key s-expression and returns |
| the modulus data length in bits. |
| |
| CryptoKeyRSA::buildAlgorithm() returns KeyAlgorithm that's constructed |
| from the appropriate name, this key's modulus length, and this key's |
| public exponent data. It also specifies the hash if there is such a |
| restriction for this key. |
| |
| CryptoKeyRSA::exportData() returns a properly-constructed |
| CryptoKeyDataRSAComponents object. The public modulus and exponent are |
| used in case the key is public. If the key is private, the secret |
| exponent and the p and q prime numbers are retrieved in MPI format. |
| They're then used to calculate the dp, dq and qi parameters that are |
| exported in the JWK format. Note that libgcrypt internally switches |
| the p and q prime numbers such that p < q, but the Web Crypto |
| specification and the dependant RFCs expect that q < p. We address |
| this by simply switching the roles of the two primes and follow the |
| usual q < p assumption when exporting the primes and computing the |
| dependant exponents and coefficients. |
| |
| No new tests -- existing ones cover this but don't work yet due to missing |
| RSA-related CryptoAlgorithm implementations. |
| |
| * crypto/gcrypt/CryptoKeyRSAGCrypt.cpp: |
| (WebCore::getRSAModulusLength): |
| (WebCore::getParameterMPIData): |
| (WebCore::getRSAKeyParameter): |
| (WebCore::CryptoKeyRSA::create): |
| (WebCore::CryptoKeyRSA::keySizeInBits): |
| (WebCore::CryptoKeyRSA::buildAlgorithm): |
| (WebCore::CryptoKeyRSA::exportData): |
| |
| 2017-04-25 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebCrypto] Enhance ways to convert an ECDSA signature binary into DER format |
| https://bugs.webkit.org/show_bug.cgi?id=171287 |
| <rdar://problem/31735332> |
| |
| Reviewed by Brent Fulgham. |
| |
| Covered by existing tests. |
| |
| * crypto/mac/CryptoAlgorithmECDSAMac.cpp: |
| (WebCore::verifyECDSA): |
| |
| 2017-04-25 Brent Fulgham <bfulgham@apple.com> |
| |
| Relax the event firing ASSERT for Attr changes |
| https://bugs.webkit.org/show_bug.cgi?id=171236 |
| <rdar://problem/30516349> |
| |
| Reviewed by Dean Jackson. |
| |
| The assertions added in Bug 167318 were overly strict, and trigger for valid behavior. |
| Relax the assertion preventing event dispatch for the case of Attr elements at the |
| end of childrenChanged. |
| |
| Test: fast/dom/HTMLLinkElement/event-while-removing-attribute.html |
| |
| * dom/Attr.cpp: |
| (WebCore::Attr::childrenChanged): |
| |
| 2017-04-25 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Introduce shorter time-to-live for cookie partition whitelisting |
| https://bugs.webkit.org/show_bug.cgi?id=171295 |
| <rdar://problem/31823818> |
| |
| Reviewed by Brent Fulgham. |
| |
| Test: http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::reduceTimeResolutionToOneDay): Deleted. |
| (WebCore::reduceTimeResolution): |
| Changed name to no longer lock this to a specific resolution. |
| (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution): |
| Now calls WebCore::reduceTimeResolution(). |
| (WebCore::ResourceLoadObserver::setTimeToLiveCookiePartitionFree): |
| Added for testing purposes. |
| (WebCore::ResourceLoadObserver::fireShouldPartitionCookiesHandler): |
| Added for testing purposes. |
| * loader/ResourceLoadObserver.h: |
| * loader/ResourceLoadStatisticsStore.cpp: |
| (WebCore::shouldPartitionCookies): |
| Static inline convenience function. |
| (WebCore::ResourceLoadStatisticsStore::fireShouldPartitionCookiesHandler): |
| Now decides whether a domain should get partitioned cookies |
| based on timeToLiveCookiePartitionFree. |
| Removed clearFirst parameter since it's not needed here |
| and it introduced complexity in keeping the store and the |
| network process cache in sync. |
| (WebCore::ResourceLoadStatisticsStore::setTimeToLiveCookiePartitionFree): |
| Added for testing purposes. |
| * loader/ResourceLoadStatisticsStore.h: |
| |
| 2017-04-25 Saam Barati <sbarati@apple.com> |
| |
| JSArray::isArrayPrototypeIteratorProtocolFastAndNonObservable is wrong because it does not do the necessary checks on the base object |
| https://bugs.webkit.org/show_bug.cgi?id=171150 |
| <rdar://problem/31771880> |
| |
| Reviewed by Sam Weinig. |
| |
| This patch moves the sequence converters to use the now fixed |
| JSArray::isArrayPrototypeIteratorProtocolFastAndNonObservable test |
| inside JSC. |
| |
| This patch also fixes a few bugs: |
| 1. Converting to a sequence of numbers must prove that the JSArray |
| is filled only with Int32/Double. If there is a chance the array |
| contains objects, the conversion to a numeric IDLType can be observable |
| (via valueOf()), and can change the iterator protocol. |
| 2. There are other conversions that can have side effects a-la valueOf(). |
| This patch introduces a new static constant in the various Converter |
| classes that tell the sequence converter if the conversion operation |
| can have JS side effects. If it does have side effects, we fall back to |
| the generic conversion that uses the iterator protocol. If not, we can |
| do a faster version that iterates over each element of the array, |
| reading it directly, and converting it. |
| |
| Tests: js/sequence-iterator-protocol-2.html |
| js/sequence-iterator-protocol.html |
| |
| * bindings/js/JSDOMConvertAny.h: Does not have side effects. |
| * bindings/js/JSDOMConvertBase.h: We pessimistically assume inside DefaultConverter that converions have side effects. |
| * bindings/js/JSDOMConvertBoolean.h: Does not have side effects. |
| * bindings/js/JSDOMConvertCallbacks.h: Does not have side effects. |
| * bindings/js/JSDOMConvertObject.h: Does not have side effects. |
| * bindings/js/JSDOMConvertSequences.h: |
| (WebCore::Detail::NumericSequenceConverter::convert): |
| (WebCore::Detail::SequenceConverter::convert): |
| |
| 2017-04-25 Michael Saboff <msaboff@apple.com> |
| |
| Call bmalloc scavenger first when handling a memory pressure event |
| https://bugs.webkit.org/show_bug.cgi?id=171289 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Let bmalloc free any pages to the OS that it can before doing anything else. |
| |
| * page/MemoryRelease.cpp: |
| (WebCore::releaseMemory): |
| |
| 2017-04-25 Dean Jackson <dino@apple.com> |
| |
| Skip WebKitAdditions for Safari Technology Preview media controls |
| https://bugs.webkit.org/show_bug.cgi?id=171302 |
| <rdar://problem/31823256> |
| |
| Reviewed by Simon Fraser. |
| |
| Safari Technology Preview should use the same controls |
| as OpenSource. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| 2017-04-25 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r215730. |
| |
| The LayoutTest for this change is a flaky timeout on mac-wk1 |
| debug. |
| |
| Reverted changeset: |
| |
| "Enable expired-only reload policy on Mac and iOS" |
| https://bugs.webkit.org/show_bug.cgi?id=171264 |
| http://trac.webkit.org/changeset/215730 |
| |
| 2017-04-24 Matt Rajca <mrajca@apple.com> |
| |
| Indicate presence of audio when handling autoplay events. |
| https://bugs.webkit.org/show_bug.cgi?id=171227 |
| |
| Reviewed by Alex Christensen. |
| |
| Added API tests. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::handleAutoplayEvent): |
| (WebCore::HTMLMediaElement::playInternal): |
| (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): |
| (WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer): |
| (WebCore::HTMLMediaElement::userDidInterfereWithAutoplay): |
| (WebCore::HTMLMediaElement::setPlaybackWithoutUserGesture): |
| * html/HTMLMediaElement.h: |
| * page/AutoplayEvent.h: |
| * page/ChromeClient.h: |
| |
| 2017-04-25 Aakash Jain <aakash_jain@apple.com> |
| |
| WebCore.framework should restrict allowable_clients |
| https://bugs.webkit.org/show_bug.cgi?id=171260 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * Configurations/WebCore.xcconfig: Adding allowable_client to all platform, in order to restrict WebCore |
| from being directly linked on any platform. |
| Moved WebKitLegacy and WebCoreTestSupport to OTHER_LDFLAGS_BASE. |
| Removed WebKit2 as allowable_client from mac. |
| Added iTunesU, Casablanca and Remote to OTHER_LDFLAGS_BASE_ios for iTunes related projects. |
| Added WebKit, TVBooks, DumpRenderTree, WebKitTestRunner and TestWebKitAPI to OTHER_LDFLAGS_BASE_ios. |
| |
| 2017-04-25 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Restrict WebKit image formats to a known whitelist |
| https://bugs.webkit.org/show_bug.cgi?id=170700 |
| |
| Reviewed by Tim Horton. |
| |
| If the image format is not supported, the load should be canceled and the |
| image is marked a broken image. |
| |
| Test: fast/images/image-formats-support.html |
| |
| * loader/cache/CachedImage.cpp: |
| (WebCore::CachedImage::addIncrementalDataBuffer): |
| (WebCore::CachedImage::setImageDataBuffer): |
| (WebCore::CachedImage::finishLoading): |
| * loader/cache/CachedImage.h: |
| |
| 2017-04-25 Youenn Fablet <youenn@apple.com> |
| |
| CoreAudioCaptureSource::suspend is asserting too often |
| https://bugs.webkit.org/show_bug.cgi?id=171285 |
| |
| Reviewed by Eric Carlson. |
| |
| No change of behavior. |
| |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::suspend): Moving the assertion to where it might be useful. |
| |
| 2017-04-25 Daniel Bates <dabates@apple.com> |
| |
| Use an OptionSet for compositing reasons bitmask |
| https://bugs.webkit.org/show_bug.cgi?id=171153 |
| |
| Reviewed by Simon Fraser. |
| |
| We should make use of OptionSet to represent the bitmask of the reasons a layer |
| was composited instead of using an integer and bitwise operations. |
| |
| * inspector/InspectorLayerTreeAgent.cpp: |
| (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer): |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::reasonsForCompositing): |
| (WebCore::RenderLayerCompositor::logReasonsForCompositing): Also fix code style issues; |
| an else-if statement should be written as an if-statement when the prior if-statement |
| concludes with a return statement. |
| * rendering/RenderLayerCompositor.h: |
| |
| 2017-04-25 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Supplementary Multilingual Plane Complex Scripts Rendered Incorrectly |
| https://bugs.webkit.org/show_bug.cgi?id=171272 |
| <rdar://problem/30966764> |
| |
| Reviewed by Zalan Bujtas. |
| |
| These scripts need to take the complex text codepath. |
| |
| Test: fast/text/kaithi.html |
| |
| * platform/graphics/FontCascade.cpp: |
| (WebCore::FontCascade::characterRangeCodePath): |
| |
| 2017-04-25 Carlos Alberto Lopez Perez <clopez@igalia.com> |
| |
| [GTK] Revert r215745 (especulative build fix) after r215752. |
| https://bugs.webkit.org/show_bug.cgi?id=170842 |
| |
| Unreviewed. |
| |
| * platform/graphics/harfbuzz/HarfBuzzShaper.cpp: |
| (WebCore::normalizeCharacters): |
| |
| 2017-04-25 Daniel Bates <dabates@apple.com> |
| |
| [Cocoa][Win] Enable of X-Content-Type-Options: nosniff header |
| https://bugs.webkit.org/show_bug.cgi?id=136452 |
| <rdar://problem/23412620> |
| |
| Reviewed by Brent Fulgham. |
| |
| Enable support for X-Content-Type-Options: nosniff on Mac, iOS and Windows. |
| |
| Additionally, honor X-Content-Type-Options: nosniff header for stylesheets as per |
| <https://fetch.spec.whatwg.org/#should-response-to-request-be-blocked-due-to-nosniff%3F> (30 March 2017). |
| |
| Test: http/tests/security/contentTypeOptions/nosniff-dynamic-script-blocked.html |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * css/StyleSheetContents.cpp: |
| (WebCore::StyleSheetContents::parseAuthorStyleSheet): Log an error if the stylesheet |
| has the nosniff header and does not have a valid MIME type. Also update code for |
| renaming of MIMETypeCheck to MIMETypeCheckHint. |
| (WebCore::StyleSheetContents::notifyLoadedSheet): If the stylesheet is blocked by |
| nosniff then consider it analogous to a load error so that we dispatch a DOM error |
| event at the <style>/<link> element. |
| * dom/LoadableClassicScript.cpp: |
| (WebCore::LoadableClassicScript::notifyFinished): Modified the wording of the error |
| message when a script is disallowed by nosniff so as to more closely match the |
| wording used when a stylesheet is disallowed by nonsniff. |
| * loader/cache/CachedCSSStyleSheet.cpp: |
| (WebCore::CachedCSSStyleSheet::sheetText): Update for renaming of MIMETypeCheck |
| to MIMETypeCheckHint. |
| (WebCore::CachedCSSStyleSheet::responseMIMEType): Added. |
| (WebCore::CachedCSSStyleSheet::mimeTypeAllowedByNosniff): Added. |
| (WebCore::CachedCSSStyleSheet::canUseSheet): Modified to check if the X-Content-Type-Options: nosniff |
| header is in the HTTP response for the stylesheet. If it is then we can only use the stylesheet |
| if its content-type is "text/css". Otherwise, apply the existing criterion for determining whether |
| to to use the stylesheet. |
| * loader/cache/CachedCSSStyleSheet.h: Rename MIMETypeCheck to MIMETypeCheckHint to better |
| describe its purpose as a hint as to whether to enforce MIME type checking for the stylesheet. |
| Processing of the HTTP header X-Content-Type-Options takes precedence over this hint. |
| * loader/cache/CachedScript.h: Make mimeType() private. |
| |
| 2017-04-25 Daniel Bates <dabates@apple.com> |
| |
| [Cocoa][Win] Enable of X-Content-Type-Options: nosniff header |
| https://bugs.webkit.org/show_bug.cgi?id=136452 |
| <rdar://problem/23412620> |
| |
| Reviewed by Brent Fulgham. |
| |
| Part 1 |
| |
| Enable X-Content-Type-Options: nosniff on Mac, iOS and Windows platforms. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2017-04-25 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [GTK] Build fix after r215737 |
| https://bugs.webkit.org/show_bug.cgi?id=170842 |
| |
| Unreviewed. |
| |
| No new tests because there is no behavior change. |
| |
| * platform/graphics/FontCascade.h: |
| (WebCore::FontCascade::treatAsZeroWidthSpace): |
| (WebCore::FontCascade::treatAsZeroWidthSpaceInComplexScript): |
| |
| 2017-04-25 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Remove an unnecessary -respondsToSelector: check after r215724 |
| |
| Rubber-stamped by Tim Horton. |
| |
| Addresses review feedback from <https://bugs.webkit.org/show_bug.cgi?id=171156>. -[NSURL _title] |
| will always for builds that need to access it. |
| |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::readURL): |
| |
| 2017-04-25 Antti Koivisto <antti@apple.com> |
| |
| REGRESSION (r215469): [ios-simulator-wk2] LayoutTest compositing/animation/animation-backing.html is a flaky failure |
| https://bugs.webkit.org/show_bug.cgi?id=171060 |
| <rdar://problem/31771174> |
| |
| Reviewed by Simon Fraser. |
| |
| Accelerated transform animations move underlying layers without invalidating GraphicsLayers. |
| To update tile coverage we need to commit such subtrees even if there are not other changes. |
| |
| * platform/graphics/ca/GraphicsLayerCA.cpp: |
| (WebCore::GraphicsLayerCA::GraphicsLayerCA): |
| (WebCore::GraphicsLayerCA::needsCommit): |
| |
| Commit subtrees with accelerated transform animations. |
| Factor into a function. |
| |
| (WebCore::GraphicsLayerCA::recursiveCommitChanges): |
| |
| Track if descendants had any accelerated transform animations after commit. |
| |
| * platform/graphics/ca/GraphicsLayerCA.h: |
| (WebCore::GraphicsLayerCA::hasDescendantsWithRunningTransformAnimations): |
| (WebCore::GraphicsLayerCA::setHasDescendantsWithRunningTransformAnimations): |
| |
| 2017-04-25 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream macOS] Unable to apply frameRate constraint |
| https://bugs.webkit.org/show_bug.cgi?id=171279 |
| |
| Reviewed by Youenn Fablet. |
| |
| No new tests, this doesn't affect the mock capture devices. |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::supportsSizeAndFrameRate): Cast frame rate |
| ranges to int before comparing. |
| |
| 2017-04-25 Carlos Alberto Lopez Perez <clopez@igalia.com> |
| |
| [GTK] Build fix after r215737 |
| https://bugs.webkit.org/show_bug.cgi?id=170842 |
| |
| Unreviewed. |
| |
| * platform/graphics/harfbuzz/HarfBuzzShaper.cpp: |
| (WebCore::normalizeCharacters): |
| |
| 2017-04-25 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Clear network process cache when clearing store |
| https://bugs.webkit.org/show_bug.cgi?id=171256 |
| <rdar://problem/31802347> |
| |
| Reviewed by Brent Fulgham. |
| |
| Test that covers this code: |
| http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store.html |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::clearInMemoryStore): |
| Better name. |
| (WebCore::ResourceLoadObserver::logUserInteraction): |
| Now passes on the boolean parameter clearFirst to |
| ResourceLoadStatisticsStore::fireShouldPartitionCookiesHandler(). |
| (WebCore::ResourceLoadObserver::fireShouldPartitionCookiesHandler): |
| Now takes and passes on the boolean parameter clearFirst to |
| ResourceLoadStatisticsStore::fireShouldPartitionCookiesHandler(). |
| (WebCore::ResourceLoadObserver::statisticsStore): Deleted. |
| This getter violated abstraction. The way it was used |
| is now solved through dedicated functions. |
| * loader/ResourceLoadObserver.h: |
| * loader/ResourceLoadStatisticsStore.cpp: |
| (WebCore::ResourceLoadStatisticsStore::readDataFromDecoder): |
| Now passes on the boolean parameter clearFirst to |
| ResourceLoadStatisticsStore::fireShouldPartitionCookiesHandler(). |
| (WebCore::ResourceLoadStatisticsStore::clearInMemory): |
| Better name. |
| Now triggers clearing of the associated network process cache. |
| (WebCore::ResourceLoadStatisticsStore::clearInMemoryAndPersistent): |
| Now calls clearInMemory(). |
| (WebCore::ResourceLoadStatisticsStore::setShouldPartitionCookiesCallback): |
| Now expects a handler with the boolean parameter clearFirst. |
| (WebCore::ResourceLoadStatisticsStore::fireShouldPartitionCookiesHandler): |
| Now takes and passes on the boolean parameter clearFirst to |
| m_shouldPartitionCookiesForDomainsHandler(). |
| * loader/ResourceLoadStatisticsStore.h: |
| (WebCore::ResourceLoadStatisticsStore::clear): Deleted. |
| * platform/network/NetworkStorageSession.h: |
| NetworkStorageSession::setShouldPartitionCookiesForHosts() now |
| takes the boolean parameter clearFirst. |
| * platform/network/cf/NetworkStorageSessionCFNet.cpp: |
| (WebCore::NetworkStorageSession::setShouldPartitionCookiesForHosts): |
| Now clears m_topPrivatelyControlledDomainsForCookiePartitioning |
| if the boolean parameter clearFirst is true. |
| |
| 2017-04-25 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Add performance test for FontCache::systemFallbackForCharacters() |
| https://bugs.webkit.org/show_bug.cgi?id=170842 |
| |
| Reviewed by Tim Horton. |
| |
| No new tests because there is no behavior change. |
| |
| * platform/graphics/FontCascade.h: |
| (WebCore::FontCascade::treatAsZeroWidthSpace): |
| (WebCore::FontCascade::treatAsZeroWidthSpaceInComplexScript): Deleted. |
| * platform/graphics/WidthCache.h: |
| (WebCore::WidthCache::add): |
| (WebCore::WidthCache::addSlowCase): |
| |
| 2017-04-25 Chris Dumez <cdumez@apple.com> |
| |
| Content-Disposition header filename is ignored when 'download' attribute is specified in HTML |
| https://bugs.webkit.org/show_bug.cgi?id=171239 |
| <rdar://problem/31789855> |
| |
| Reviewed by Alex Christensen. |
| |
| Add isAttachmentWithFilename() utility method to ResourceResponse to implement: |
| - https://html.spec.whatwg.org/#as-a-download (Step 2) |
| |
| Test: http/tests/download/anchor-download-attribute-content-disposition.html |
| |
| * platform/network/ResourceResponseBase.cpp: |
| (WebCore::ResourceResponseBase::isAttachmentWithFilename): |
| * platform/network/ResourceResponseBase.h: |
| |
| 2017-04-25 Antti Koivisto <antti@apple.com> |
| |
| Enable expired-only reload policy on Mac and iOS |
| https://bugs.webkit.org/show_bug.cgi?id=171264 |
| <rdar://problem/31807637> |
| |
| Reviewed by Andreas Kling. |
| |
| * loader/NavigationAction.cpp: |
| (WebCore::navigationType): |
| |
| Test for reload navigation type correctly. |
| |
| 2017-04-25 Miguel Gomez <magomez@igalia.com> |
| |
| Image decoders must have private constructors to avoid refcount misuse: ASSERTION FAILED: m_deletionHasBegun when destroying ImageDecoder |
| https://bugs.webkit.org/show_bug.cgi?id=171211 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Add a create method to each of the decoders and set their constructors as private. Change |
| ICOImageDecoder to store its internal PNG decoders as RefPtr and use the new create method, and |
| change ImageDecoder to use the create methods as well. |
| |
| Covered by existent tests. |
| |
| * platform/image-decoders/ImageDecoder.cpp: |
| (WebCore::ImageDecoder::create): |
| * platform/image-decoders/bmp/BMPImageDecoder.h: |
| * platform/image-decoders/gif/GIFImageDecoder.h: |
| * platform/image-decoders/ico/ICOImageDecoder.cpp: |
| (WebCore::ICOImageDecoder::decodeAtIndex): |
| * platform/image-decoders/ico/ICOImageDecoder.h: |
| * platform/image-decoders/jpeg/JPEGImageDecoder.h: |
| * platform/image-decoders/png/PNGImageDecoder.h: |
| * platform/image-decoders/webp/WEBPImageDecoder.h: |
| |
| 2017-04-25 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Build fix |
| |
| Unreviewed. |
| |
| No new tests because there is no behavior change. |
| |
| * crypto/mac/SerializedCryptoKeyWrapMac.mm: |
| (WebCore::wrapSerializedCryptoKey): |
| (WebCore::unwrapSerializedCryptoKey): |
| |
| 2017-04-25 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Support reading NSURL titles from the pasteboard when performing data interaction |
| https://bugs.webkit.org/show_bug.cgi?id=171156 |
| <rdar://problem/31356937> |
| |
| Reviewed by Tim Horton. |
| |
| Support reading link titles from the pasteboard when performing data interaction. To do this, we refactor |
| Pasteboard::readURL to take in an additional String& title which is ultimately plumbed to the PlatformPasteboard |
| where it is set to the value of -[NSURL _title]. |
| |
| Test: DataInteractionTests.ExternalSourceTitledNSURL. |
| |
| * editing/FrameSelection.h: |
| * editing/ios/EditorIOS.mm: |
| (WebCore::Editor::WebContentReader::readURL): |
| * page/DragController.cpp: |
| (WebCore::DragController::performDragOperation): |
| (WebCore::DragController::concludeEditDrag): |
| |
| Move calls to clearDragCaret() out of concludeEditDrag and into the call site, in performDragOperation after |
| attempting to concludeEditDrag. This is done so that if the WebEditorClient queries whether the drag caret is |
| in richly editable content for the purposes of generating a document fragment to insert, the answer will not |
| always be false as a drop is occurring. |
| |
| * platform/PasteboardStrategy.h: |
| * platform/PlatformPasteboard.h: |
| * platform/ios/PasteboardIOS.mm: |
| (WebCore::Pasteboard::respectsUTIFidelities): |
| (WebCore::Pasteboard::readString): |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::readURL): |
| |
| 2017-04-24 Andy VanWagoner <thetalecrafter@gmail.com> |
| |
| Clean up ICU headers |
| https://bugs.webkit.org/show_bug.cgi?id=170997 |
| |
| Reviewed by JF Bastien. |
| |
| Update all icu headers to 55.1 |
| |
| * icu/LICENSE: Update copyright |
| * icu/README: Explain ICU headers for OS X better |
| * icu/unicode/localpointer.h: |
| (LocalPointer::LocalPointer): |
| (LocalPointer::adoptInsteadAndCheckErrorCode): |
| * icu/unicode/platform.h: |
| * icu/unicode/putil.h: |
| * icu/unicode/std_string.h: |
| * icu/unicode/ubrk.h: |
| * icu/unicode/uchar.h: |
| * icu/unicode/ucnv.h: |
| * icu/unicode/ucol.h: |
| * icu/unicode/ucoleitr.h: |
| * icu/unicode/uconfig.h: |
| * icu/unicode/ucurr.h: |
| * icu/unicode/uidna.h: |
| * icu/unicode/uloc.h: |
| * icu/unicode/umachine.h: |
| * icu/unicode/unistr.h: |
| (UnicodeString::getArrayStart): |
| (UnicodeString::UnicodeString): |
| (UnicodeString::hasShortLength): |
| (UnicodeString::getShortLength): |
| (UnicodeString::length): |
| (UnicodeString::getCapacity): |
| (UnicodeString::isBogus): |
| (UnicodeString::isWritable): |
| (UnicodeString::isBufferWritable): |
| (UnicodeString::getBuffer): |
| (UnicodeString::isEmpty): |
| (UnicodeString::setZeroLength): |
| (UnicodeString::setShortLength): |
| (UnicodeString::setLength): |
| (UnicodeString::setToEmpty): |
| (UnicodeString::remove): |
| * icu/unicode/urename.h: |
| * icu/unicode/uscript.h: |
| * icu/unicode/usearch.h: |
| * icu/unicode/uset.h: |
| * icu/unicode/ustring.h: |
| * icu/unicode/utf8.h: |
| * icu/unicode/utypes.h: |
| * icu/unicode/uvernum.h: |
| |
| 2017-04-24 Jiewen Tan <jiewen_tan@apple.com> |
| |
| LayoutTests crypto/subtle/ecdsa-generate-key-sign-verify-p384.html and crypto/subtle/ecdsa-generate-key-sign-verify-p256.html are flaky failures |
| https://bugs.webkit.org/show_bug.cgi?id=171059 |
| <rdar://problem/31734958> |
| |
| Reviewed by Brent Fulgham. |
| |
| Covered by existing tests. |
| |
| * crypto/mac/CryptoAlgorithmECDSAMac.cpp: |
| (WebCore::signECDSA): |
| Enhance ways to convert the DER signatures produced from CommonCrypto to r||s. |
| |
| 2017-04-24 Manuel Rego Casasnovas <rego@igalia.com> |
| |
| [selectors4] :focus-within should use the flat tree |
| https://bugs.webkit.org/show_bug.cgi?id=170899 |
| |
| Reviewed by Antti Koivisto. |
| |
| This has been discussed in the following CSS WG issue: |
| https://github.com/w3c/csswg-drafts/issues/1135 |
| |
| And the spec has been updated (https://drafts.csswg.org/selectors-4/#the-focus-within-pseudo): |
| "An element also matches :focus-within if one of its descendants in the flat tree |
| (including non-element nodes, such as text nodes) matches the conditions for matching :focus." |
| |
| Test: imported/w3c/web-platform-tests/css/selectors4/focus-within-shadow-006.html |
| |
| * dom/Element.cpp: |
| (WebCore::Element::setFocus): Use "flat tree" ("composed tree" in WebKit) |
| to set focus-within flag. |
| |
| 2017-04-24 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Respect fidelity order when reading web content from item providers |
| https://bugs.webkit.org/show_bug.cgi?id=171155 |
| <rdar://problem/31356937> |
| |
| Reviewed by Tim Horton. |
| |
| Currently, when reading web content from pasteboards, we assume the old UIPasteboard/NSPasteboard model wherein |
| the destination must determine which of the items is considered to have the highest fidelity for the purposes of |
| inserting into an editable area. This destination-side fidelity ranking is determined solely by the NSArray |
| returned from Pasteboard::supportedPasteboardTypes, which lists compatible types in order from highest fidelity |
| to lowest fidelity. Pasteboard::read effectively iterates over this list of types in order, attempting to read |
| highest fidelity types and bailing when it first successfully reads data. |
| |
| However, when our pasteboard is backed by UIItemProviders, we should instead read pasteboard types in order of |
| fidelity as specified by the source rather than the destination. To accomplish this, we introduce an alternate |
| codepath, Pasteboard::readRespectingUTIFidelities, which we take if Pasteboard::respectsUTIFidelities is true |
| (currently, this only applies for the purposes of data interaction). This version follows a different flow: |
| for each item in the pasteboard, we ask for just the UTIs for that item, in order of fidelity. For each item, |
| we then call readPasteboardWebContentDataForType to try and read data for that type, continuing until either |
| all UTIs have been attempted, or reading was successful. |
| |
| This patch makes two additional adjustments. First, we introduce Pasteboard::getTypesByFidelityForItemAtIndex, |
| which is used by Pasteboard::readRespectingUTIFidelities when querying the list of supported UTIs for each |
| pasteboard item, sorted by highest to lowest fidelity. |
| |
| Secondly, we refactor logic to write to the item provider pasteboard in PlatformPasteboardIOS. Since we are |
| now respecting fidelity rankings on the destination, the source must also register UTI types in the right |
| fidelity order. While this was mostly achieved using our existing method of writing a list of object |
| representations to the pasteboard and then all of the contents of a NSString => NSData dictionary containing |
| private UTI data, this approach has two flaws: |
| 1. We are unable to register high-priority custom types, followed by representing objects, followed by more |
| lower-priority custom types, since we assume that all custom types follow all representing objects. |
| 2. Since we're just iterating over a dictionary of NSString => NSData when registering custom UTI |
| representations to the item provider, there cannot inherently be any fidelity ordering for custom types. |
| |
| To address both of these issues, we introduce two new objects that encapsulate how we register data to the item |
| provider pasteboard. WebItemProviderRegistrationInfo represents some data that can be registered to an item |
| provider (either an object conforming to UIItemProviderWriting, or an NSString and NSData). |
| WebItemProviderRegistrationInfoList represents a list of WebItemProviderRegistrationInfos in order of highest to |
| lowest fidelity. In PlatformPasteboardIOS, we transform PasteboardWebContent, PasteboardImage, and PasteboardURL |
| into a WebItemProviderRegistrationInfoList, which we then pass along to the WebItemProviderPasteboard. In |
| WebItemProviderPasteboard, we traverse the list of WebItemProviderRegistrationInfos in the list and register |
| each WebItemProviderRegistrationInfo's representing object or data to the item provider. |
| |
| Test: DataInteractionTests.RespectsExternalSourceFidelityRankings. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/Pasteboard.h: |
| * platform/PasteboardStrategy.h: |
| * platform/PlatformPasteboard.h: |
| * platform/ios/AbstractPasteboard.h: |
| * platform/ios/AbstractPasteboard.mm: Removed. |
| |
| Moves WebItemProviderData, formerly implemented in AbstractPasteboard.mm, into WebItemProviderPasteboard.mm. |
| We can delete AbstractPasteboard.mm as a result. |
| |
| * platform/ios/PasteboardIOS.mm: |
| (WebCore::readPasteboardWebContentDataForType): |
| |
| Pull out common logic for reading data given a UTI type from the pasteboard into the PasteboardWebContentReader. |
| This is invoked from both the existing Pasteboard::read codepath, as well as the readRespectingUTIFidelities |
| codepath. |
| |
| (WebCore::Pasteboard::read): |
| |
| Refactored to call the new readPasteboardWebContentDataForType helper. Behavior should not have changed, unless |
| the pasteboard supports UTI fidelities. |
| |
| (WebCore::Pasteboard::respectsUTIFidelities): |
| (WebCore::Pasteboard::readRespectingUTIFidelities): |
| |
| An alternative to Pasteboard::read that considers source-side fidelity rankings of UTIs. |
| |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::getTypesByFidelityForItemAtIndex): |
| (WebCore::PlatformPasteboard::writeObjectRepresentations): |
| |
| Refactored to build a WebItemProviderRegistrationInfoList and pass it to the WebItemProviderPasteboard to |
| register items and data. |
| |
| (WebCore::PlatformPasteboard::write): |
| * platform/ios/WebItemProviderPasteboard.h: |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (-[WebItemProviderRegistrationInfo initWithRepresentingObject:typeIdentifier:data:]): |
| (-[WebItemProviderRegistrationInfo representingObject]): |
| (-[WebItemProviderRegistrationInfo typeIdentifier]): |
| (-[WebItemProviderRegistrationInfo data]): |
| |
| Represents a single calls to register data onto the item provider pasteboard. See |
| WebItemProviderPasteboard.h header comments for more info. |
| |
| (-[WebItemProviderRegistrationInfoList init]): |
| (-[WebItemProviderRegistrationInfoList addData:forType:]): |
| (-[WebItemProviderRegistrationInfoList addRepresentingObject:]): |
| (-[WebItemProviderRegistrationInfoList numberOfItems]): |
| (-[WebItemProviderRegistrationInfoList itemAtIndex:]): |
| (-[WebItemProviderRegistrationInfoList enumerateItems:]): |
| |
| Represents a series of calls to register representations onto the item provider pasteboard. See |
| WebItemProviderPasteboard.h header comments for more info. |
| |
| (-[WebItemProviderPasteboard pasteboardTypesByFidelityForItemAtIndex:]): |
| (-[WebItemProviderPasteboard setItemsUsingRegistrationInfoLists:]): |
| (-[WebItemProviderPasteboard setItemsFromObjectRepresentations:]): Deleted. |
| |
| 2017-04-24 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r204605): support for "cp874" charset alias was inadvertently dropped which may cause issues on certain Thai sites |
| https://bugs.webkit.org/show_bug.cgi?id=171128 |
| <rdar://problem/31526844> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| When using Thai as default language on MacOS, defaultTextEncodingNameForSystemLanguage() |
| was returning "cp874" encoding with was dropped in r204605 for not being part of the |
| encoding specification (https://encoding.spec.whatwg.org/#names-and-labels). |
| |
| To address the issue, we map "cp874" encoding to the "dos-874" encoding which is |
| properly recognized. Without this, this could lead to issue on WebSites that do not |
| specify a charset. |
| |
| * platform/text/TextEncodingRegistry.cpp: |
| (WebCore::defaultTextEncodingNameForSystemLanguage): |
| |
| 2017-04-24 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| [CG] Provide a type identifier hint to the CGImageSource so getting the type identifier is more accurate |
| https://bugs.webkit.org/show_bug.cgi?id=171042 |
| |
| Reviewed by Tim Horton. |
| |
| The image URL can be used to get the type identifier hint. Without providing |
| this hint, the image type identifier is not accurate for image formats. |
| |
| Also add a function to the ImageDecoder class to get the typeIdentifier. Add |
| all the pluming from the ImageDecoder till the Image class. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::destroyDecodedData): |
| (WebCore::BitmapImage::frameImageAtIndexCacheIfNeeded): |
| (WebCore::BitmapImage::draw): |
| (WebCore::BitmapImage::internalStartAnimation): |
| (WebCore::BitmapImage::advanceAnimation): |
| (WebCore::BitmapImage::internalAdvanceAnimation): |
| (WebCore::BitmapImage::newFrameNativeImageAvailableAtIndex): |
| * platform/graphics/BitmapImage.h: |
| * platform/graphics/Image.cpp: |
| (WebCore::Image::sourceURL): |
| * platform/graphics/Image.h: Change the sourceURL() to return a URL so CG can create CFURLRef from it. |
| (WebCore::Image::uti): |
| * platform/graphics/ImageFrameCache.cpp: |
| (WebCore::ImageFrameCache::cacheAsyncFrameNativeImageAtIndex): |
| (WebCore::ImageFrameCache::startAsyncDecodingQueue): |
| (WebCore::ImageFrameCache::requestFrameAsyncDecodingAtIndex): |
| (WebCore::ImageFrameCache::stopAsyncDecodingQueue): |
| (WebCore::ImageFrameCache::clearMetadata): |
| (WebCore::ImageFrameCache::sourceURL): |
| (WebCore::ImageFrameCache::encodedDataStatus): |
| (WebCore::ImageFrameCache::uti): |
| (WebCore::ImageFrameCache::filenameExtension): |
| * platform/graphics/ImageFrameCache.h: |
| * platform/graphics/ImageSource.cpp: |
| (WebCore::ImageSource::ensureDecoderAvailable): |
| * platform/graphics/ImageSource.h: |
| (WebCore::ImageSource::uti): |
| * platform/graphics/cg/ImageDecoderCG.cpp: |
| (WebCore::ImageDecoder::ImageDecoder): Pass the type identifier hint to CGImageSourceCreateIncremental(). |
| (WebCore::ImageDecoder::uti): |
| (WebCore::ImageDecoder::filenameExtension): |
| (WebCore::ImageDecoder::frameHasAlphaAtIndex): |
| (WebCore::ImageDecoder::createFrameImageAtIndex): |
| * platform/graphics/cg/ImageDecoderCG.h: |
| (WebCore::ImageDecoder::create): |
| * platform/graphics/win/ImageDecoderDirect2D.cpp: |
| (WebCore::ImageDecoder::encodedDataStatus): |
| * platform/graphics/win/ImageDecoderDirect2D.h: |
| (WebCore::ImageDecoder::create): Add an argument of type URL. |
| * platform/image-decoders/ImageDecoder.cpp: |
| (WebCore::ImageDecoder::create): Add an argument of type URL. |
| * platform/image-decoders/ImageDecoder.h: |
| (WebCore::ImageDecoder::encodedDataStatus): Make it const. |
| * platform/image-decoders/bmp/BMPImageDecoder.cpp: |
| (WebCore::BMPImageDecoder::encodedDataStatus): |
| * platform/image-decoders/bmp/BMPImageDecoder.h: |
| * platform/image-decoders/gif/GIFImageDecoder.cpp: |
| (WebCore::GIFImageDecoder::encodedDataStatus): |
| * platform/image-decoders/gif/GIFImageDecoder.h: |
| * platform/image-decoders/ico/ICOImageDecoder.cpp: |
| (WebCore::ICOImageDecoder::encodedDataStatus): |
| * platform/image-decoders/ico/ICOImageDecoder.h: |
| * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: |
| (WebCore::JPEGImageDecoder::encodedDataStatus): |
| * platform/image-decoders/jpeg/JPEGImageDecoder.h: |
| * platform/image-decoders/png/PNGImageDecoder.cpp: |
| (WebCore::PNGImageDecoder::encodedDataStatus): |
| * platform/image-decoders/png/PNGImageDecoder.h: |
| * platform/image-decoders/webp/WEBPImageDecoder.cpp: |
| (WebCore::WEBPImageDecoder::encodedDataStatus): |
| * platform/image-decoders/webp/WEBPImageDecoder.h: |
| * platform/spi/cg/ImageIOSPI.h: Added. |
| |
| 2017-04-24 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed build fix. |
| |
| * crypto/mac/CryptoAlgorithmAES_GCMMac.cpp: |
| (WebCore::encryptAES_GCM): |
| (WebCore::decyptAES_GCM): |
| |
| 2017-04-24 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Whitelist supported image MIME types |
| https://bugs.webkit.org/show_bug.cgi?id=171077 |
| |
| Reviewed by Tim Horton. |
| |
| Restrict the CG port image formats to a known whitelist. Build this list from image |
| UTI's instead of MIME types, since the image UTI's is a superset of the MIME types. |
| Use this list to build the list of supported image MIME types. |
| |
| * PlatformAppleWin.cmake: |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/MIMETypeRegistry.cpp: |
| (WebCore::initializeSupportedImageMIMETypes): |
| * platform/graphics/cg/UTIRegistry.cpp: Added. |
| (WebCore::allowedImageUTIs): |
| (WebCore::isAllowedImageUTI): |
| * platform/graphics/cg/UTIRegistry.h: Added. |
| |
| 2017-04-24 Nan Wang <n_wang@apple.com> |
| |
| AX: Crash at WebCore::AXObjectCache::characterOffsetForIndex(int, WebCore::AccessibilityObject const*) + 703 |
| https://bugs.webkit.org/show_bug.cgi?id=171247 |
| |
| Reviewed by Chris Fleizach. |
| |
| Crashed because we were passing a nil node into rootAXEditableElement(). Fixed it by |
| adding a null check. |
| |
| Test: accessibility/mac/input-string-for-range-crash.html |
| |
| * accessibility/AXObjectCache.cpp: |
| (WebCore::AXObjectCache::characterOffsetForIndex): |
| |
| 2017-04-24 Youenn Fablet <youenn@apple.com> |
| |
| Set defaults video getUserMedia constraints |
| https://bugs.webkit.org/show_bug.cgi?id=171127 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: fast/mediastream/getUserMedia-default.html |
| |
| Adding default optional constraints for video size and frame rate if none is defined. |
| Default is 640x480 30fps. |
| |
| Doing some refactoring in MeddiaConstraintsImpl and MeddiaConstraintsData to use more move constructors. |
| |
| * Modules/mediastream/MediaConstraintsImpl.cpp: |
| (WebCore::defaultVideoConstraints): |
| (WebCore::MediaConstraintsData::setDefaultVideoConstraints): |
| (WebCore::MediaConstraintsImpl::create): Deleted. |
| * Modules/mediastream/MediaConstraintsImpl.h: |
| * Modules/mediastream/MediaDevices.cpp: |
| (WebCore::MediaDevices::getUserMedia): |
| * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: |
| (WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer): Fixing crash when setting frameRate. |
| |
| 2017-04-24 Chris Dumez <cdumez@apple.com> |
| |
| createElementNS() should now throw only InvalidCharacterError, not NamespaceError |
| https://bugs.webkit.org/show_bug.cgi?id=171052 |
| |
| Reviewed by Sam Weinig. |
| |
| Validating a qualified name should only throw InvalidCharacterError, not NamespaceError, |
| after: |
| - https://github.com/whatwg/dom/issues/319 |
| - https://github.com/w3c/web-platform-tests/issues/5161 |
| - https://github.com/whatwg/dom/issues/423 |
| |
| Latest spec: |
| - https://dom.spec.whatwg.org/#validate |
| |
| No new tests, updated web-platform-tests. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::parseQualifiedName): |
| |
| 2017-04-24 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (214503): Webkit crash under RenderElement::repaintForPausedImageAnimationsIfNeeded() when scrolling giphy pages |
| https://bugs.webkit.org/show_bug.cgi?id=171243 |
| <rdar://problem/31715572> |
| |
| Reviewed by Antti Koivisto. |
| |
| After r214503, we would frequently crash when scrolling giphy pages because we were failing to call |
| RenderView::removeRendererWithPausedImageAnimations(renderer, cachedImage) in some cases. This would |
| cause a RenderElement to still be associated to a CachedImage in RenderView but not in practice. |
| If the CachedImage then gets destroyed and the user scrolls, we end up calling |
| RenderElement::repaintForPausedImageAnimationsIfNeeded() with a bad CachedImage. |
| |
| StyleCachedImage was properly calling RenderView::removeRendererWithPausedImageAnimations() before |
| unregistering the renderer as a client to the CachedImage. However, RenderImageResource was failing |
| to do the same. To make this less error-prone, I added a didRemoveCachedImageClient(CachedImage&) |
| function to the CachedImageClient interface. It is overriden in RenderElement only to call |
| RenderView::removeRendererWithPausedImageAnimations(). |
| |
| Test: fast/images/animated-gif-scrolling-crash.html |
| |
| * loader/cache/CachedImage.cpp: |
| (WebCore::CachedImage::didRemoveClient): |
| * loader/cache/CachedImageClient.h: |
| (WebCore::CachedImageClient::didRemoveCachedImageClient): |
| * rendering/RenderElement.cpp: |
| (WebCore::RenderElement::didRemoveCachedImageClient): |
| * rendering/RenderElement.h: |
| * rendering/style/StyleCachedImage.cpp: |
| (WebCore::StyleCachedImage::removeClient): |
| |
| 2017-04-24 Andy Estes <aestes@apple.com> |
| |
| [macOS] Fix two minor issues with MediaSelectionOption::Type |
| https://bugs.webkit.org/show_bug.cgi?id=171235 |
| |
| Reviewed by Sam Weinig. |
| |
| * platform/MediaSelectionOption.h: Gave type a default value, and added explicit |
| constructors to make gcc and msvc happy. |
| * platform/mac/WebPlaybackControlsManager.mm: |
| (toAVTouchBarMediaSelectionOptionType): Added an ASSERT_NOT_REACHED if none of the switch |
| cases match. |
| |
| 2017-04-24 Andy Estes <aestes@apple.com> |
| |
| [macOS] Enable media selection button on AVTouchBarScrubber |
| https://bugs.webkit.org/show_bug.cgi?id=171149 |
| <rdar://problem/29875010> |
| |
| Reviewed by Beth Dakin. |
| |
| * platform/spi/cocoa/AVKitSPI.h: |
| |
| 2017-04-24 Alex Christensen <achristensen@webkit.org> |
| |
| Reduce copies and allocations in SharedBuffer::append |
| https://bugs.webkit.org/show_bug.cgi?id=170956 |
| |
| Reviewed by Andreas Kling. |
| |
| SharedBuffer was a mess of different data structures added over the years. |
| SharedBuffer::append would allocate large Vector<char>s and call memcpy, and that |
| is inefficient and causes crashes when large allocations fail, and the allocations |
| and copies aren't even necessary. There were also const correctness problems in |
| ResourceLoader::addDataOrBuffer, and iterating a SharedBuffer was strange because |
| sometimes we don't want to add unnecessary copies. |
| |
| These problems are solved by making SharedBuffer a Vector of read-only data segments, |
| which can be contained in various ways but we don't care because all we want to do is |
| read them. Appending SharedBuffers is now const correct because we just add to a |
| Vector<Ref<DataSegment>> and neither SharedBuffer can write to the data. Sometimes, |
| though, we want all the data to be in continuous memory, and if there are multiple |
| segments then the data needs to be copied once to a new segment. We should audit the |
| call sites of SharedBuffer::data and see if this is really necessary. |
| |
| No change in functional behavior. Fewer copies of the data are made when buffering |
| data in the NetworkProcess. No extra memory is allocated for bytes we think we might |
| need to append in the future. Data is now only copied into one buffer lazily as needed, |
| which could slightly change when small delays from memcpy happen, but it's an overall |
| improvement. We could have a performance hit if we were to call append() then data() |
| then append() then data() etc. but that doesn't happen in WebKit because we call append |
| repeatedly when buffering the data then call data() once when reading the data. |
| |
| * editing/cocoa/EditorCocoa.mm: |
| (WebCore::archivedDataForAttributedString): |
| (WebCore::Editor::selectionInWebArchiveFormat): |
| (WebCore::Editor::dataInRTFDFormat): |
| (WebCore::Editor::dataInRTFFormat): |
| * editing/ios/EditorIOS.mm: |
| (WebCore::Editor::WebContentReader::readURL): |
| * editing/mac/EditorMac.mm: |
| (WebCore::Editor::imageInWebArchiveFormat): |
| * loader/TextTrackLoader.cpp: |
| (WebCore::TextTrackLoader::processNewCueData): |
| * loader/archive/cf/LegacyWebArchive.cpp: |
| (WebCore::LegacyWebArchive::createResource): |
| * loader/cache/CachedResource.cpp: |
| (WebCore::CachedResource::tryReplaceEncodedData): |
| * loader/cocoa/DiskCacheMonitorCocoa.mm: |
| (WebCore::DiskCacheMonitor::tryGetFileBackedSharedBufferFromCFURLCachedResponse): |
| * platform/SharedBuffer.cpp: |
| (WebCore::SharedBuffer::SharedBuffer): |
| (WebCore::SharedBuffer::create): |
| (WebCore::SharedBuffer::combineToOneSegment): |
| (WebCore::SharedBuffer::data): |
| (WebCore::SharedBuffer::createArrayBuffer): |
| (WebCore::SharedBuffer::append): |
| (WebCore::SharedBuffer::clear): |
| (WebCore::SharedBuffer::copy): |
| (WebCore::SharedBuffer::DataSegment::data): |
| (WebCore::SharedBuffer::DataSegment::size): |
| (WebCore::segmentIndex): Deleted. |
| (WebCore::offsetInSegment): Deleted. |
| (WebCore::allocateSegment): Deleted. |
| (WebCore::freeSegment): Deleted. |
| (WebCore::SharedBuffer::~SharedBuffer): Deleted. |
| (WebCore::SharedBuffer::size): Deleted. |
| (WebCore::SharedBuffer::duplicateDataBufferIfNecessary): Deleted. |
| (WebCore::SharedBuffer::appendToDataBuffer): Deleted. |
| (WebCore::SharedBuffer::clearDataBuffer): Deleted. |
| (WebCore::SharedBuffer::copyBufferAndClear): Deleted. |
| (WebCore::SharedBuffer::buffer): Deleted. |
| (WebCore::SharedBuffer::getSomeData): Deleted. |
| (WebCore::SharedBuffer::maybeTransferMappedFileData): Deleted. |
| (WebCore::SharedBuffer::clearPlatformData): Deleted. |
| (WebCore::SharedBuffer::maybeTransferPlatformData): Deleted. |
| (WebCore::SharedBuffer::hasPlatformData): Deleted. |
| (WebCore::SharedBuffer::platformData): Deleted. |
| (WebCore::SharedBuffer::maybeAppendPlatformData): Deleted. |
| * platform/SharedBuffer.h: |
| (WebCore::SharedBuffer::create): Deleted. |
| (WebCore::SharedBuffer::isEmpty): Deleted. |
| * platform/SharedBufferChunkReader.cpp: |
| (WebCore::SharedBufferChunkReader::nextChunk): |
| (WebCore::SharedBufferChunkReader::peek): |
| * platform/SharedBufferChunkReader.h: |
| * platform/URLParser.cpp: |
| (WebCore::URLParser::URLParser): |
| * platform/cf/KeyedEncoderCF.cpp: |
| (WebCore::KeyedEncoderCF::finishEncoding): |
| * platform/cf/SharedBufferCF.cpp: |
| (WebCore::SharedBuffer::SharedBuffer): |
| (WebCore::SharedBuffer::createCFData): |
| (WebCore::SharedBuffer::create): |
| (WebCore::SharedBuffer::hintMemoryNotNeededSoon): |
| (WebCore::SharedBuffer::append): |
| (WebCore::SharedBuffer::wrapCFData): Deleted. |
| (WebCore::SharedBuffer::hasPlatformData): Deleted. |
| (WebCore::SharedBuffer::platformData): Deleted. |
| (WebCore::SharedBuffer::platformDataSize): Deleted. |
| (WebCore::SharedBuffer::maybeTransferPlatformData): Deleted. |
| (WebCore::SharedBuffer::clearPlatformData): Deleted. |
| (WebCore::SharedBuffer::tryReplaceContentsWithPlatformBuffer): Deleted. |
| (WebCore::SharedBuffer::maybeAppendPlatformData): Deleted. |
| (WebCore::SharedBuffer::copyBufferAndClear): Deleted. |
| (WebCore::SharedBuffer::copySomeDataFromDataArray): Deleted. |
| (WebCore::SharedBuffer::singleDataArrayBuffer): Deleted. |
| (WebCore::SharedBuffer::maybeAppendDataArray): Deleted. |
| * platform/cocoa/NetworkExtensionContentFilter.mm: |
| (WebCore::NetworkExtensionContentFilter::replacementData): |
| * platform/cocoa/ParentalControlsContentFilter.mm: |
| (WebCore::ParentalControlsContentFilter::replacementData): |
| * platform/cocoa/SharedBufferCocoa.mm: |
| (-[WebCoreSharedBufferData initWithSharedBufferDataSegment:]): |
| (-[WebCoreSharedBufferData length]): |
| (-[WebCoreSharedBufferData bytes]): |
| (WebCore::SharedBuffer::create): |
| (WebCore::SharedBuffer::createCFData): |
| (WebCore::SharedBuffer::createFromReadingFile): |
| (WebCore::SharedBuffer::createNSDataArray): |
| (-[WebCoreSharedBufferData initWithSharedBufferDataBuffer:]): Deleted. |
| (WebCore::SharedBuffer::wrapNSData): Deleted. |
| (WebCore::SharedBuffer::existingCFData): Deleted. |
| * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: |
| (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource): |
| * platform/graphics/cocoa/FontPlatformDataCocoa.mm: |
| (WebCore::FontPlatformData::openTypeTable): |
| * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: |
| (ResourceHandleStreamingClient::didReceiveBuffer): |
| * platform/graphics/mac/ImageMac.mm: |
| (WebCore::Image::loadPlatformResource): |
| * platform/image-decoders/ImageDecoder.cpp: |
| (WebCore::ImageDecoder::create): |
| * platform/image-decoders/png/PNGImageDecoder.cpp: |
| (WebCore::PNGImageReader::decode): |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::readBuffer): |
| * platform/mac/PasteboardMac.mm: |
| (WebCore::writeFileWrapperAsRTFDAttachment): |
| (WebCore::Pasteboard::write): |
| * platform/mac/PlatformPasteboardMac.mm: |
| (WebCore::PlatformPasteboard::bufferForType): |
| * platform/network/BlobResourceHandle.cpp: |
| (WebCore::BlobResourceHandle::notifyReceiveData): |
| * platform/network/MIMEHeader.cpp: |
| * platform/network/MIMEHeader.h: |
| * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp: |
| (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData): |
| * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp: |
| (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveData): |
| * platform/network/mac/WebCoreResourceHandleAsDelegate.mm: |
| (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]): |
| * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm: |
| (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveData:lengthReceived:]): |
| * platform/soup/SharedBufferSoup.cpp: |
| (WebCore::SharedBuffer::SharedBuffer): |
| (WebCore::SharedBuffer::createSoupBuffer): |
| (WebCore::SharedBuffer::clearPlatformData): Deleted. |
| (WebCore::SharedBuffer::maybeTransferPlatformData): Deleted. |
| (WebCore::SharedBuffer::hasPlatformData): Deleted. |
| (WebCore::SharedBuffer::platformData): Deleted. |
| (WebCore::SharedBuffer::platformDataSize): Deleted. |
| (WebCore::SharedBuffer::maybeAppendPlatformData): Deleted. |
| (WebCore::SharedBuffer::tryReplaceContentsWithPlatformBuffer): Deleted. |
| |
| 2017-04-24 Dan Bernstein <mitz@apple.com> |
| |
| [Cocoa] Some ivars are needlessly @protected |
| https://bugs.webkit.org/show_bug.cgi?id=171208 |
| |
| Reviewed by Anders Carlsson. |
| |
| Made ivars @private where possible. |
| |
| * platform/mac/WebCoreFullScreenPlaceholderView.h: |
| * platform/mac/WebCoreFullScreenWarningView.h: |
| * platform/mac/WebPlaybackControlsManager.h: |
| * platform/network/cocoa/WebCoreNSURLSession.h: |
| |
| 2017-04-24 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Switch to use ENABLE_REMOTE_INSPECTOR instead of ENABLE_INSPECTOR_SERVER for the remote inspector |
| https://bugs.webkit.org/show_bug.cgi?id=166680 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add PageDebuggable.cpp to the compilation. |
| |
| * CMakeLists.txt: |
| |
| 2017-04-23 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r215657 and r215676. |
| https://bugs.webkit.org/show_bug.cgi?id=171201 |
| |
| Broke the build (Requested by ap on #webkit). |
| |
| Reverted changesets: |
| |
| "[macOS] Enable media selection button on AVTouchBarScrubber" |
| https://bugs.webkit.org/show_bug.cgi?id=171149 |
| http://trac.webkit.org/changeset/215657 |
| |
| "Build fix after r215657." |
| http://trac.webkit.org/changeset/215676 |
| |
| 2017-04-23 Andy Estes <aestes@apple.com> |
| |
| [macOS] AVTouchBarMediaSelectionOptions should be created with the correct type |
| https://bugs.webkit.org/show_bug.cgi?id=171192 |
| <rdar://problem/29875010> |
| |
| Reviewed by Wenson Hsieh. |
| |
| AVTouchBarMediaSelectionOption was always being created with type |
| AVTouchBarMediaSelectionOptionTypeRegular, but we know if a TextTrack is really the legible |
| off or legible auto track. This change plumbs that information into |
| WebPlaybackControlsManager so that AVTouchBarMediaSelectionOptions can be created with the |
| right AVTouchBarMediaSelectionOptionType. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * page/CaptionUserPreferences.cpp: |
| (WebCore::CaptionUserPreferences::mediaSelectionOptionForTrack): |
| * page/CaptionUserPreferences.h: |
| * platform/MediaSelectionOption.h: Added. |
| * platform/cocoa/WebPlaybackSessionModel.h: |
| (WebCore::WebPlaybackSessionModelClient::audioMediaSelectionOptionsChanged): |
| (WebCore::WebPlaybackSessionModelClient::legibleMediaSelectionOptionsChanged): |
| * platform/cocoa/WebPlaybackSessionModelMediaElement.h: |
| * platform/cocoa/WebPlaybackSessionModelMediaElement.mm: |
| (WebCore::WebPlaybackSessionModelMediaElement::audioMediaSelectionOptions): |
| (WebCore::WebPlaybackSessionModelMediaElement::legibleMediaSelectionOptions): |
| * platform/ios/WebPlaybackSessionInterfaceAVKit.h: |
| * platform/ios/WebPlaybackSessionInterfaceAVKit.mm: |
| (WebCore::mediaSelectionOptions): |
| (WebCore::WebPlaybackSessionInterfaceAVKit::audioMediaSelectionOptionsChanged): |
| (WebCore::WebPlaybackSessionInterfaceAVKit::legibleMediaSelectionOptionsChanged): |
| * platform/ios/WebVideoFullscreenControllerAVKit.mm: |
| (WebVideoFullscreenControllerContext::audioMediaSelectionOptionsChanged): |
| (WebVideoFullscreenControllerContext::legibleMediaSelectionOptionsChanged): |
| (WebVideoFullscreenControllerContext::audioMediaSelectionOptions): |
| (WebVideoFullscreenControllerContext::legibleMediaSelectionOptions): |
| * platform/mac/WebPlaybackControlsManager.h: |
| * platform/mac/WebPlaybackControlsManager.mm: |
| (toAVTouchBarMediaSelectionOptionType): |
| (mediaSelectionOptions): |
| (-[WebPlaybackControlsManager setAudioMediaSelectionOptions:withSelectedIndex:]): |
| (-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:withSelectedIndex:]): |
| (-[WebPlaybackControlsManager webPlaybackSessionInterfaceMac]): |
| (-[WebPlaybackControlsManager setWebPlaybackSessionInterfaceMac:]): |
| * platform/mac/WebPlaybackSessionInterfaceMac.h: |
| * platform/mac/WebPlaybackSessionInterfaceMac.mm: |
| (WebCore::WebPlaybackSessionInterfaceMac::audioMediaSelectionOptionsChanged): |
| (WebCore::WebPlaybackSessionInterfaceMac::legibleMediaSelectionOptionsChanged): |
| |
| 2017-04-22 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| File inputs only accept UTI types that can be inserted into contenteditable areas when dropping |
| https://bugs.webkit.org/show_bug.cgi?id=171177 |
| <rdar://problem/31765379> |
| |
| Reviewed by Andy Estes. |
| |
| Currently, DragController::canProcessDrag bails immediately with `false` if the drag data does not contain |
| compatible content. However, if we are dragging over a file input, we want the presence of files in the drag |
| data to take priority. To fix this, we teach DragData::containsCompatibleContent to take the purpose of the drag |
| into account (by default, this is Editing, but when dragging over a file input, this becomes FileUpload). We |
| then consider DragData to have compatible content for the purpose of file uploading if it contains any files. |
| |
| Test: DataInteractionTests.ExternalSourceJSONToFileInput. |
| |
| * page/DragController.cpp: |
| (WebCore::DragController::canProcessDrag): |
| * platform/DragData.h: |
| * platform/gtk/DragDataGtk.cpp: |
| (WebCore::DragData::containsCompatibleContent): |
| * platform/mac/DragDataMac.mm: |
| (WebCore::DragData::containsCompatibleContent): |
| * platform/win/DragDataWin.cpp: |
| (WebCore::DragData::containsCompatibleContent): |
| |
| 2017-04-22 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Fix regression caused by r215626 |
| https://bugs.webkit.org/show_bug.cgi?id=171168 |
| <rdar://problem/31774787> |
| |
| Reviewed by Antoine Quint. |
| |
| No new tests, fixes fast/mediastream/MediaStream-page-muted.html |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::mediaState): Test muted before m_isProducingData because if both are |
| true we want to report that the stream is muted. |
| |
| 2017-04-21 Zalan Bujtas <zalan@apple.com> |
| |
| Do not measure large chunk of text repeatedly during mid-word breaking. |
| https://bugs.webkit.org/show_bug.cgi?id=171065 |
| <rdar://problem/31630245> |
| |
| Reviewed by Antti Koivisto. |
| |
| This patch reduces redundant text measuring for mid-word breaking by |
| 1. Adjusting the range for the binary search when the text fragment is longer than the available width |
| 2. Preserving the width value for the left side of the split fragment (computed during the binary search) so |
| that when the fragment is being split we don't need to re-measure it |
| 3. Checking if the right side fits the next line and only adjust the width (by re-measuring the text) for |
| kerning/ligature if it does (if it does not fit, we'll end up re-measuring some part of it |
| during the next split) |
| |
| Performance test has already been added. |
| |
| * rendering/SimpleLineLayout.cpp: |
| (WebCore::SimpleLineLayout::hyphenPositionForFragment): |
| (WebCore::SimpleLineLayout::split): binary search with adjusting the range and preserving the width for the left side. |
| (WebCore::SimpleLineLayout::splitFragmentToFitLine): |
| (WebCore::SimpleLineLayout::FragmentForwardIterator::FragmentForwardIterator): Deleted. |
| (WebCore::SimpleLineLayout::FragmentForwardIterator::operator++): Deleted. |
| (WebCore::SimpleLineLayout::FragmentForwardIterator::operator!=): Deleted. |
| (WebCore::SimpleLineLayout::FragmentForwardIterator::operator==): Deleted. |
| (WebCore::SimpleLineLayout::FragmentForwardIterator::operator*): Deleted. |
| (WebCore::SimpleLineLayout::begin): Deleted. |
| (WebCore::SimpleLineLayout::end): Deleted. |
| * rendering/SimpleLineLayoutTextFragmentIterator.h: |
| (WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::split): |
| (WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::splitWithHyphen): |
| |
| 2017-04-21 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Support writing link titles to the pasteboard when beginning data interaction on a link |
| https://bugs.webkit.org/show_bug.cgi?id=171154 |
| <rdar://problem/31356937> |
| |
| Reviewed by Andy Estes. |
| |
| Currently, when writing NSURLs to the pasteboard, we only write a String to the pasteboard corresponding to |
| kUTTypeURL. This means richer data associated with the link (in this case, the title) are not captured when |
| writing to the pasteboard. To address this, we introduce a new codepath for writing links to the pasteboard that |
| mirrors the way PasteboardImage and PasteboardWebContent are written to the pasteboard. |
| |
| Test: Augmented DataInteractionTests.LinkToInput. |
| |
| * platform/PasteboardStrategy.h: |
| * platform/PlatformPasteboard.h: |
| |
| Add plumbing support for writing PasteboardURLs. |
| |
| * platform/ios/PasteboardIOS.mm: |
| (WebCore::Pasteboard::write): |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::writeObjectRepresentations): |
| |
| Teach PlatformPasteboard to also set the _title attribute of the NSURL when creating an NSURL representation |
| for registering with the shared WebItemProviderPasteboard. |
| |
| (WebCore::PlatformPasteboard::write): |
| * platform/ios/WebItemProviderPasteboard.mm: |
| |
| Remove deprecation guards and replace deprecated method calls with the latest undeprecated versions. |
| |
| (-[WebItemProviderPasteboard setItemsFromObjectRepresentations:]): |
| |
| 2017-04-21 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, rolling out r215608. |
| |
| Hundreds of test failures on GTK bot |
| |
| Reverted changeset: |
| |
| "Reduce copies and allocations in SharedBuffer::append" |
| https://bugs.webkit.org/show_bug.cgi?id=170956 |
| http://trac.webkit.org/changeset/215608 |
| |
| 2017-04-21 Zalan Bujtas <zalan@apple.com> |
| |
| REGRESSION(r205374): <li> content inside <ul> should mid-word wrap when word-break: break-word is present. |
| https://bugs.webkit.org/show_bug.cgi?id=171108 |
| <rdar://problem/30271747> |
| |
| Reviewed by Dan Bernstein. |
| |
| This patch ensures that we search for mid-word breaks when a zero sized element has been committed on the line |
| unless it's an image or some other replaced element with special properties (e.g. list-style: inside). |
| |
| Tests: fast/replaced/ul-li-word-break-break-word.html |
| fast/replaced/zero-width-image-force-linebreak.html |
| |
| * rendering/line/BreakingContext.h: |
| (WebCore::BreakingContext::handleReplaced): |
| (WebCore::BreakingContext::handleText): This matches pre-r205374 behaviour, but it's explicit about whether a |
| replaced width has already been committed on the current line. |
| * rendering/line/LineWidth.cpp: |
| (WebCore::LineWidth::commit): |
| * rendering/line/LineWidth.h: |
| (WebCore::LineWidth::hasCommittedReplaced): |
| (WebCore::LineWidth::addUncommittedReplacedWidth): These 2 last functions were removed with r205374 (and now I am adding them back). |
| |
| 2017-04-21 Jer Noble <jer.noble@apple.com> |
| |
| [MediaCapture] Improvements to CoreAudioCaptureSource |
| https://bugs.webkit.org/show_bug.cgi?id=171146 |
| |
| Reviewed by Eric Carlson. |
| |
| Various interlocking improvements to CoreAudioCaptureSource: |
| |
| - Allow the volume, sampleRate, and echoCancellation settings to be applied to the source. |
| - Update the values returned via settings() when these values change. |
| - Obey the sampleRate and echoCancellation settings when creating the VPIO unit. |
| - Because AudioUnitRender() mutates the passed in AudioBufferList, reset it immediately before calling. |
| |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::create): |
| (WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource): |
| (WebCore::CoreAudioCaptureSource::preferredSampleRate): |
| (WebCore::CoreAudioCaptureSource::preferredIOBufferSize): |
| (WebCore::CoreAudioCaptureSource::configureMicrophoneProc): |
| (WebCore::CoreAudioCaptureSource::configureSpeakerProc): |
| (WebCore::CoreAudioCaptureSource::processMicrophoneSamples): |
| (WebCore::CoreAudioCaptureSource::setupAudioUnits): |
| (WebCore::CoreAudioCaptureSource::stopProducingData): |
| (WebCore::CoreAudioCaptureSource::settings): |
| (WebCore::CoreAudioCaptureSource::settingsDidChange): |
| (WebCore::CoreAudioCaptureSource::preferredIOBufferDuration): Deleted. |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| |
| 2017-04-21 Youenn Fablet <youenn@apple.com> |
| |
| com.apple.WebCore: non-virtual thunk to WebCore::LibWebRTCDataChannelHandler::OnBufferedAmountChange + 39 |
| https://bugs.webkit.org/show_bug.cgi?id=171087 |
| <rdar://problem/31739051> |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by existing tests. |
| No test added as this behavior is really libwebrtc specific and cannot be triggered easily. |
| |
| * Modules/mediastream/RTCDataChannel.cpp: |
| (WebCore::RTCDataChannel::close): Stopping observing libwebrtc data channel before closing it. |
| This ensures we will stop getting notified as soon as there is no more interest. |
| * Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp: |
| (WebCore::LibWebRTCDataChannelHandler::OnStateChange): libwebrtc can still notify us even though we said we were |
| not interested. Ensuring we do not call the client if we are no longer interested. |
| (WebCore::LibWebRTCDataChannelHandler::OnMessage): Ditto. |
| (WebCore::LibWebRTCDataChannelHandler::OnBufferedAmountChange): Ditto. |
| |
| 2017-04-21 Andy Estes <aestes@apple.com> |
| |
| [macOS] Enable media selection button on AVTouchBarScrubber |
| https://bugs.webkit.org/show_bug.cgi?id=171149 |
| <rdar://problem/29875010> |
| |
| Reviewed by Beth Dakin. |
| |
| * platform/spi/cocoa/AVKitSPI.h: |
| |
| 2017-04-21 Andy Estes <aestes@apple.com> |
| |
| [macOS] Name WebPlaybackControlsManager delegate methods correctly depending on OS version |
| https://bugs.webkit.org/show_bug.cgi?id=171147 |
| <rdar://problem/29875010> |
| |
| Reviewed by Beth Dakin. |
| |
| On macOS 10.12, WebPlaybackControlsManager conforms to |
| AVFunctionBarPlaybackControlsControlling, but on 10.13 it conforms to |
| AVTouchBarPlaybackControlsControlling. These protocols are near-identical, except for |
| instances of "FunctionBar" in method names are renamed to "TouchBar". This patch updates to |
| the new method names, and generally renames things with "FunctionBar" to "TouchBar". |
| |
| * platform/mac/WebPlaybackControlsManager.h: |
| * platform/mac/WebPlaybackControlsManager.mm: |
| (-[WebPlaybackControlsManager generateTouchBarThumbnailsForTimes:tolerance:size:thumbnailHandler:]): |
| (-[WebPlaybackControlsManager generateTouchBarAudioAmplitudeSamples:completionHandler:]): |
| (-[WebPlaybackControlsManager canBeginTouchBarScrubbing]): |
| (-[WebPlaybackControlsManager beginTouchBarScrubbing]): |
| (-[WebPlaybackControlsManager endTouchBarScrubbing]): |
| (-[WebPlaybackControlsManager generateFunctionBarThumbnailsForTimes:size:completionHandler:]): |
| (-[WebPlaybackControlsManager generateFunctionBarAudioAmplitudeSamples:completionHandler:]): |
| (-[WebPlaybackControlsManager canBeginFunctionBarScrubbing]): |
| (-[WebPlaybackControlsManager beginFunctionBarScrubbing]): |
| (-[WebPlaybackControlsManager endFunctionBarScrubbing]): |
| (-[WebPlaybackControlsManager audioTouchBarMediaSelectionOptions]): |
| (-[WebPlaybackControlsManager setAudioTouchBarMediaSelectionOptions:]): |
| (-[WebPlaybackControlsManager currentAudioTouchBarMediaSelectionOption]): |
| (-[WebPlaybackControlsManager setCurrentAudioTouchBarMediaSelectionOption:]): |
| (-[WebPlaybackControlsManager legibleTouchBarMediaSelectionOptions]): |
| (-[WebPlaybackControlsManager setLegibleTouchBarMediaSelectionOptions:]): |
| (-[WebPlaybackControlsManager currentLegibleTouchBarMediaSelectionOption]): |
| (-[WebPlaybackControlsManager setCurrentLegibleTouchBarMediaSelectionOption:]): |
| (-[WebPlaybackControlsManager setAudioMediaSelectionOptions:withSelectedIndex:]): |
| (-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:withSelectedIndex:]): |
| (-[WebPlaybackControlsManager audioFunctionBarMediaSelectionOptions]): Deleted. |
| (-[WebPlaybackControlsManager setAudioFunctionBarMediaSelectionOptions:]): Deleted. |
| (-[WebPlaybackControlsManager currentAudioFunctionBarMediaSelectionOption]): Deleted. |
| (-[WebPlaybackControlsManager setCurrentAudioFunctionBarMediaSelectionOption:]): Deleted. |
| (-[WebPlaybackControlsManager legibleFunctionBarMediaSelectionOptions]): Deleted. |
| (-[WebPlaybackControlsManager setLegibleFunctionBarMediaSelectionOptions:]): Deleted. |
| (-[WebPlaybackControlsManager currentLegibleFunctionBarMediaSelectionOption]): Deleted. |
| (-[WebPlaybackControlsManager setCurrentLegibleFunctionBarMediaSelectionOption:]): Deleted. |
| |
| 2017-04-21 Jer Noble <jer.noble@apple.com> |
| |
| Make CoreAudioCaptureDevice stackable. |
| https://bugs.webkit.org/show_bug.cgi?id=171097 |
| |
| Reviewed by Eric Carlson. |
| |
| There's no real reason to keep CoreAudioCaptureDevice from being created on the stack. |
| Make it un-RefCounted, and have it's static factory method return an std::optional rather |
| than a RefPtr. |
| |
| Drive-by fix: clean up the factory method of CoreAudioCaptureSource a bit. |
| |
| * platform/mediastream/mac/CoreAudioCaptureDevice.cpp: |
| (WebCore::CoreAudioCaptureDevice::create): |
| (WebCore::CoreAudioCaptureDevice::deviceID): Deleted. |
| * platform/mediastream/mac/CoreAudioCaptureDevice.h: |
| (WebCore::CoreAudioCaptureDevice::deviceID): |
| * platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp: |
| (WebCore::CoreAudioCaptureDeviceManager::coreAudioCaptureDevices): |
| (WebCore::CoreAudioCaptureDeviceManager::coreAudioDeviceWithUID): |
| (WebCore::CoreAudioCaptureDeviceManager::refreshAudioCaptureDevices): |
| * platform/mediastream/mac/CoreAudioCaptureDeviceManager.h: |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::create): |
| (WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource): |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| |
| 2017-04-21 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream iOS] Release capture session when not producing data |
| https://bugs.webkit.org/show_bug.cgi?id=171148 |
| <rdar://problem/29265868> |
| |
| Reviewed by Jer Noble. |
| |
| On iOS, only one AVCaptureSession can be active at a time, so release a session whenever |
| it is told to stop producing data. The session will recreated if the capture source if/when |
| told to produce data again. |
| |
| * platform/mediastream/mac/AVMediaCaptureSource.mm: |
| (WebCore::AVMediaCaptureSource::stopProducingData): Clear m_session to release the session. |
| It will be re-allocated if startProducingData is called later. |
| |
| 2017-04-21 Aaron Chu <aaron_chu@apple.com> |
| |
| AX: FKA: Buttons need a visible focus indicator |
| https://bugs.webkit.org/show_bug.cgi?id=171040 |
| <rdar://problem/30922548> |
| |
| Reviewed by Antoine Quint. |
| |
| Added a background color for the focus state of the icon buttons in modern media controls. |
| |
| Test: media/modern-media-controls/icon-button/icon-button-focus-state.html |
| |
| * Modules/modern-media-controls/controls/icon-button.css: |
| (button.icon:focus): |
| |
| 2017-03-22 Matt Rajca <mrajca@apple.com> |
| |
| Consider muting audio hardware a form of autoplay interference. |
| https://bugs.webkit.org/show_bug.cgi?id=169971 |
| |
| Reviewed by Eric Carlson. |
| |
| If the user mutes audio hardware and a media element is auto-playing, consider that |
| as a form of auto-play interference that we tell clients about. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::HTMLMediaElement): |
| (WebCore::HTMLMediaElement::~HTMLMediaElement): |
| (WebCore::HTMLMediaElement::hardwareMutedStateDidChange): |
| * html/HTMLMediaElement.h: |
| * platform/audio/AudioSession.h: |
| (WebCore::AudioSession::MutedStateObserver::~MutedStateObserver): |
| * platform/audio/mac/AudioSessionMac.cpp: |
| (WebCore::AudioSession::isMuted): |
| (WebCore::muteProcess): |
| (WebCore::AudioSession::handleMutedStateChange): |
| (WebCore::AudioSession::addMutedStateObserver): |
| (WebCore::AudioSession::removeMutedStateObserver): |
| |
| 2017-04-21 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r206240): XMLSerializer.serializeToString() does not properly escape '<' / '>' in attribute values |
| https://bugs.webkit.org/show_bug.cgi?id=171132 |
| <rdar://problem/31426752> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Use XMLSerialization [1] in MarkupAccumulator::appendAttribute() when inXMLFragmentSerialization() |
| returns true, even if the node's associated document is an HTML document. When XMLSerializer.serializeToString() |
| is called on a Node, we want XML serialization, even if the node comes from an HTML document. |
| |
| [1] https://w3c.github.io/DOM-Parsing/#dfn-xml-serialization |
| |
| Test: fast/dom/XMLSerializer-serializeToString-entities.html |
| |
| * editing/MarkupAccumulator.cpp: |
| (WebCore::MarkupAccumulator::appendAttributeValue): |
| (WebCore::MarkupAccumulator::appendAttribute): |
| * editing/MarkupAccumulator.h: |
| |
| 2017-04-20 Sam Weinig <sam@webkit.org> |
| |
| Split cryptographic digest computation and parsing out of CSP code so it can be reused |
| https://bugs.webkit.org/show_bug.cgi?id=171076 |
| |
| Reviewed by Chris Dumez. |
| |
| Factor out cryptographic digest parsing from Content Security Policy code |
| so that it can be reused for the Subresource Integrity implementation. |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| Add new files. |
| |
| * html/parser/ParsingUtilities.h: |
| (WebCore::skipExactlyIgnoringASCIICase): |
| Add parsing helper to match / skip over a constant string, using IgnoringASCIICase semantics. |
| |
| * loader/ResourceCryptographicDigest.cpp: Added. |
| (WebCore::parseHashAlgorithmAdvancingPosition): |
| (WebCore::parseCryptographicDigestImpl): |
| (WebCore::parseCryptographicDigest): |
| Move parsing of cryptographic-digest strings from ContentSecurityPolicySourceList.cpp |
| and optimize it a little by avoiding String allocations and generalizing it so that it |
| can parse either UChars or LChars. |
| |
| * loader/ResourceCryptographicDigest.h: Added. |
| (WebCore::ResourceCryptographicDigest::operator==): |
| (WebCore::ResourceCryptographicDigest::operator!=): |
| (WTF::DefaultHash<WebCore::ResourceCryptographicDigest>::Hash::hash): |
| (WTF::DefaultHash<WebCore::ResourceCryptographicDigest>::Hash::equal): |
| (WTF::HashTraits<WebCore::ResourceCryptographicDigest>::emptyValue): |
| (WTF::HashTraits<WebCore::ResourceCryptographicDigest>::constructDeletedValue): |
| (WTF::HashTraits<WebCore::ResourceCryptographicDigest>::isDeletedValue): |
| Add a struct (rather than using a std::pair) to represent the digest + algorithm. And add |
| HashTraits so it can be used as HashMap. |
| |
| * page/csp/ContentSecurityPolicy.cpp: |
| (WebCore::ContentSecurityPolicy::findHashOfContentInPolicies): |
| (WebCore::toCryptoDigestAlgorithm): Deleted. |
| Move algorithm conversion to ResourceCryptographicDigest.cpp. Make use of new |
| cryptographicDigestForBytes function to do hashing. |
| |
| * page/csp/ContentSecurityPolicy.h: |
| * page/csp/ContentSecurityPolicyHash.h: |
| (WTF::DefaultHash<WebCore::ContentSecurityPolicyDigest>::Hash::hash): Deleted. |
| (WTF::DefaultHash<WebCore::ContentSecurityPolicyDigest>::Hash::equal): Deleted. |
| Remove HashTraits for the digest, this is now handled by ResourceCryptographicDigest. |
| To keep things relatively straight-forward, redefine ContentSecurityPolicyHashAlgorithm |
| and ContentSecurityPolicyHash in terms of ResourceCryptographicDigest, so that less code |
| has to be changed all at once. In a later pass, if wanted, we can remove these using |
| declarations. |
| |
| * page/csp/ContentSecurityPolicySourceList.cpp: |
| (WebCore::isNonceCharacter): |
| Use renamed isBase64OrBase64URLCharacter predicate. |
| |
| (WebCore::ContentSecurityPolicySourceList::parseHashSource): |
| Rework using ResourceCryptographicDigest parsing. Quotation and maximum digest |
| length have been kept here, as they are not applicable to other uses of |
| the digest, specifically Subresource Integrity. |
| |
| 2017-04-21 Jer Noble <jer.noble@apple.com> |
| |
| Unreviewed fix after r215624; null-deref crash. |
| |
| Make sure to call reset() inside each constructor. |
| |
| * platform/audio/WebAudioBufferList.cpp: |
| (WebCore::WebAudioBufferList::WebAudioBufferList): |
| |
| 2017-04-21 Anders Carlsson <andersca@apple.com> |
| |
| Stop using deprecated APIs, part 5 |
| https://bugs.webkit.org/show_bug.cgi?id=171134 |
| rdar://problem/31589635 |
| |
| Reviewed by Tim Horton. |
| |
| * Modules/applepay/ApplePaySession.cpp: |
| (WebCore::convertAndValidate): |
| Stop using the toPaymentAuthorizationStatus. Convert the passed in status results to the remaining |
| PaymentAuthorizationStatus values, and add errors if needed. |
| |
| (WebCore::toPaymentAuthorizationStatus): |
| This function is no longer used. |
| |
| * Modules/applepay/PaymentAuthorizationStatus.h: |
| Remove deprecated status values. We can achieve the same results with errors now. |
| |
| * Modules/applepay/PaymentRequest.cpp: |
| (WebCore::isFinalStateResult): |
| Remove deprecated status values. |
| |
| * Modules/applepay/PaymentRequest.h: |
| Remove deprecated status values. |
| |
| 2017-04-21 Per Arne Vollan <pvollan@apple.com> |
| |
| Validate vImage arguments |
| https://bugs.webkit.org/show_bug.cgi?id=171109 |
| rdar://problem/30236606 |
| |
| Reviewed by Brent Fulgham. |
| |
| When writing data to a canvas context, clip the source rectangle to the data rectangle |
| to make sure we will not attempt to read data outside of the buffer. |
| |
| Test: fast/canvas/canvas-crash.html |
| |
| * html/canvas/CanvasRenderingContext2D.cpp: |
| (WebCore::CanvasRenderingContext2D::putImageData): |
| |
| 2017-04-21 David Kilzer <ddkilzer@apple.com> |
| |
| Switch from -std=gnu++11 to -std=gnu++14 for consistency in DerivedSources.make |
| <https://webkit.org/b/171122> |
| |
| Reviewed by Brent Fulgham. |
| |
| * DerivedSources.make: Switch to -std=gnu++14 for preprocessing |
| headers to check for build settings. |
| |
| 2017-04-21 Jer Noble <jer.noble@apple.com> |
| |
| [MediaCapture][iOS] AVAudioSession must be active and the correct category before IO AudioUnits start producing data. |
| https://bugs.webkit.org/show_bug.cgi?id=171095 |
| |
| Reviewed by Youenn Fablet. |
| |
| If an input audio unit is asked to start before the AVAudioSession is in a recording category and active, |
| CoreAudio will return an error stating that no input device is available. |
| |
| The PlatformMediaSessionManager will automatically set the category of and activate the AVAudioSession when one |
| of its associated MediaStreams has a capturing RealtimeMediaSource and is currently producing data. To solve |
| the chicken-or-egg problem of activating the AVAudioSession before the source produces data, move the state bit |
| of "producing data" directly into MediaStreams, and notify the PlatformMediaSessionManager that capturing is |
| occurring after flipping that bit, but before asking the constituent tracks to begin producing data. |
| |
| In places (i.e. UserMediaRequest) where we previously told a stream's tracks to begin producing data, instead |
| allow the stream to handle that by telling it to produce data directly. |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::startProducingData): |
| (WebCore::MediaStream::stopProducingData): |
| (WebCore::MediaStream::mediaState): |
| (WebCore::MediaStream::mediaType): |
| (WebCore::MediaStream::characteristics): |
| (WebCore::MediaStream::canProduceAudio): |
| * Modules/mediastream/MediaStream.h: |
| * Modules/mediastream/UserMediaRequest.cpp: |
| (WebCore::UserMediaRequest::allow): |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| |
| 2017-04-21 Jer Noble <jer.noble@apple.com> |
| |
| Add a method to retrieve the current I/O buffer size from AudioSession |
| https://bugs.webkit.org/show_bug.cgi?id=171126 |
| |
| Reviewed by Eric Carlson. |
| |
| There is an existing method to get and set the preferred I/O buffer size; add a matching method to return |
| the acutal I/O buffer size. |
| |
| * platform/audio/AudioSession.cpp: |
| (WebCore::AudioSession::bufferSize): |
| * platform/audio/AudioSession.h: |
| * platform/audio/ios/AudioSessionIOS.mm: |
| (WebCore::AudioSession::bufferSize): |
| * platform/audio/mac/AudioSessionMac.cpp: |
| (WebCore::AudioSession::bufferSize): |
| |
| 2017-04-21 Jer Noble <jer.noble@apple.com> |
| |
| Make AudioSampleBufferList::reset() less expensive. |
| https://bugs.webkit.org/show_bug.cgi?id=171124 |
| |
| Reviewed by Eric Carlson. |
| |
| Previously, AudioSampleBufferList would reallocate its constituent WebAudioBufferList every time reset() was |
| called. Instead, add a reset() method to WebAudioBufferList which re-initializes its AudioBufferList (which is a |
| simple memcpy of a 24-byte struct), reusing the existing memory buffers. |
| |
| While making these changes, we'll also take the opportunity to clean up the AudioSampleBufferList class by |
| making some of its members into UniqueRefs instead of unique_ptrs, thus removing the possibility of null- |
| dereferences. |
| |
| * platform/audio/WebAudioBufferList.cpp: |
| (WebCore::WebAudioBufferList::WebAudioBufferList): |
| (WebCore::WebAudioBufferList::reset): |
| * platform/audio/WebAudioBufferList.h: |
| * platform/audio/mac/AudioSampleBufferList.cpp: |
| (WebCore::AudioSampleBufferList::AudioSampleBufferList): |
| (WebCore::AudioSampleBufferList::applyGain): |
| (WebCore::AudioSampleBufferList::mixFrom): |
| (WebCore::AudioSampleBufferList::reset): |
| (WebCore::AudioSampleBufferList::zero): |
| (WebCore::AudioSampleBufferList::~AudioSampleBufferList): Deleted. |
| * platform/audio/mac/AudioSampleBufferList.h: |
| (WebCore::AudioSampleBufferList::bufferList): |
| |
| 2017-04-21 Jer Noble <jer.noble@apple.com> |
| |
| Fix some spurious ASSERTs when working with capturing media elements |
| https://bugs.webkit.org/show_bug.cgi?id=171096 |
| |
| Reviewed by Youenn Fablet. |
| |
| Two related ASSERTS: |
| |
| 1) When we added a new PlatformMediaSession MediaType (MediaStreamCapturingAudio), we did not update all the |
| places that validated the enum. This would lead to spurious ASSERTs when an element capturing audio would |
| fail various checks to enusre it's type's validity. |
| |
| 2) Audio elements will ASSERT when they change page visibility, as they do not have a renderer which implements |
| visibleInViewportStateChanged(). So opt out of visibility-state checking for non-video media elements. |
| |
| * html/MediaElementSession.cpp: |
| (WebCore::MediaElementSession::wantsToObserveViewportVisibilityForAutoplay): |
| * platform/audio/PlatformMediaSessionManager.cpp: |
| (WebCore::PlatformMediaSessionManager::resetRestrictions): |
| (WebCore::PlatformMediaSessionManager::addRestriction): |
| (WebCore::PlatformMediaSessionManager::removeRestriction): |
| (WebCore::PlatformMediaSessionManager::restrictions): |
| * platform/audio/PlatformMediaSessionManager.h: |
| |
| 2017-04-21 Konstantin Tokarev <annulen@yandex.ru> |
| |
| [cmake] WTF target should not have wtf and subdirectries in public interface |
| https://bugs.webkit.org/show_bug.cgi?id=171115 |
| |
| Reviewed by Michael Catanzaro. |
| |
| In r209665 WEBCORE_FRAMEWORK macro started to export INCLUDE_DIRECTORIES of |
| targets as their public interface, so that linked targets can use them |
| implicitly without copying directory lists around. This matches existing |
| practice for all targets except WTF, headers from which are always included |
| with full path starting from "<wtf/...". |
| |
| Since r209665 it became possible to include headers from wtf or its |
| subdirectories in CMake builds without using "<wtf/..." path. It should |
| not be allowed. |
| |
| * platform/graphics/texmap/coordinated/TiledBackingStore.cpp: Fix |
| incorrect include of WTF header. |
| |
| 2017-04-21 Gwang Yoon Hwang <yoon@igalia.com> |
| |
| Do not paint the border of the box if the dirty region does not intersect with border area |
| https://bugs.webkit.org/show_bug.cgi?id=170988 |
| |
| Reviewed by Simon Fraser. |
| |
| No new tests, since there is no change in behavior. |
| |
| * platform/graphics/GeometryUtilities.cpp: |
| (WebCore::ellipseContainsPoint): |
| Checks if a point is within an ellipse. |
| |
| * platform/graphics/GeometryUtilities.h: |
| Replace header-guards with #pragma once. |
| |
| * platform/graphics/RoundedRect.cpp: |
| (WebCore::RoundedRect::contains): |
| Implemented to know the dirty rectangle intersects with rounded rectangle or not. |
| * platform/graphics/RoundedRect.h: |
| * rendering/RenderBoxModelObject.cpp: |
| (WebCore::RenderBoxModelObject::paintBorder): |
| When typing in decorated text box, the dirty rect generated only for the |
| inside of the text box, not for the decorations. So we can avoid the |
| calculations to draw borders if the inner border totally covers the |
| target surface. It will optimize the rendering process since we don't |
| have to render border decorations whenever we type somethings in side of |
| the text input element. |
| |
| 2017-04-21 Anders Carlsson <andersca@apple.com> |
| |
| Remove another use of toPaymentAuthorizationStatus |
| https://bugs.webkit.org/show_bug.cgi?id=171114 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Modules/applepay/ApplePaySession.cpp: |
| (WebCore::ApplePaySession::completeShippingContactSelection): |
| |
| 2017-04-21 Alex Christensen <achristensen@webkit.org> |
| |
| Reduce copies and allocations in SharedBuffer::append |
| https://bugs.webkit.org/show_bug.cgi?id=170956 |
| |
| Reviewed by Andreas Kling. |
| |
| SharedBuffer was a mess of different data structures added over the years. |
| SharedBuffer::append would allocate large Vector<char>s and call memcpy, and that |
| is inefficient and causes crashes when large allocations fail, and the allocations |
| and copies aren't even necessary. There were also const correctness problems in |
| ResourceLoader::addDataOrBuffer, and iterating a SharedBuffer was strange because |
| sometimes we don't want to add unnecessary copies. |
| |
| These problems are solved by making SharedBuffer a Vector of read-only data segments, |
| which can be contained in various ways but we don't care because all we want to do is |
| read them. Appending SharedBuffers is now const correct because we just add to a |
| Vector<Ref<DataSegment>> and neither SharedBuffer can write to the data. Sometimes, |
| though, we want all the data to be in continuous memory, and if there are multiple |
| segments then the data needs to be copied once to a new segment. We should audit the |
| call sites of SharedBuffer::data and see if this is really necessary. |
| |
| No change in functional behavior. Fewer copies of the data are made when buffering |
| data in the NetworkProcess. No extra memory is allocated for bytes we think we might |
| need to append in the future. Data is now only copied into one buffer lazily as needed, |
| which could slightly change when small delays from memcpy happen, but it's an overall |
| improvement. We could have a performance hit if we were to call append() then data() |
| then append() then data() etc. but that doesn't happen in WebKit because we call append |
| repeatedly when buffering the data then call data() once when reading the data. |
| |
| * editing/cocoa/EditorCocoa.mm: |
| (WebCore::archivedDataForAttributedString): |
| (WebCore::Editor::selectionInWebArchiveFormat): |
| (WebCore::Editor::dataInRTFDFormat): |
| (WebCore::Editor::dataInRTFFormat): |
| * editing/ios/EditorIOS.mm: |
| (WebCore::Editor::WebContentReader::readURL): |
| * editing/mac/EditorMac.mm: |
| (WebCore::Editor::imageInWebArchiveFormat): |
| * loader/TextTrackLoader.cpp: |
| (WebCore::TextTrackLoader::processNewCueData): |
| * loader/archive/cf/LegacyWebArchive.cpp: |
| (WebCore::LegacyWebArchive::createResource): |
| * loader/cache/CachedResource.cpp: |
| (WebCore::CachedResource::tryReplaceEncodedData): |
| * loader/cocoa/DiskCacheMonitorCocoa.mm: |
| (WebCore::DiskCacheMonitor::tryGetFileBackedSharedBufferFromCFURLCachedResponse): |
| * platform/SharedBuffer.cpp: |
| (WebCore::SharedBuffer::SharedBuffer): |
| (WebCore::SharedBuffer::create): |
| (WebCore::SharedBuffer::combineToOneSegment): |
| (WebCore::SharedBuffer::data): |
| (WebCore::SharedBuffer::createArrayBuffer): |
| (WebCore::SharedBuffer::append): |
| (WebCore::SharedBuffer::clear): |
| (WebCore::SharedBuffer::copy): |
| (WebCore::SharedBuffer::DataSegment::data): |
| (WebCore::SharedBuffer::DataSegment::size): |
| (WebCore::segmentIndex): Deleted. |
| (WebCore::offsetInSegment): Deleted. |
| (WebCore::allocateSegment): Deleted. |
| (WebCore::freeSegment): Deleted. |
| (WebCore::SharedBuffer::~SharedBuffer): Deleted. |
| (WebCore::SharedBuffer::size): Deleted. |
| (WebCore::SharedBuffer::duplicateDataBufferIfNecessary): Deleted. |
| (WebCore::SharedBuffer::appendToDataBuffer): Deleted. |
| (WebCore::SharedBuffer::clearDataBuffer): Deleted. |
| (WebCore::SharedBuffer::copyBufferAndClear): Deleted. |
| (WebCore::SharedBuffer::buffer): Deleted. |
| (WebCore::SharedBuffer::getSomeData): Deleted. |
| (WebCore::SharedBuffer::maybeTransferMappedFileData): Deleted. |
| (WebCore::SharedBuffer::clearPlatformData): Deleted. |
| (WebCore::SharedBuffer::maybeTransferPlatformData): Deleted. |
| (WebCore::SharedBuffer::hasPlatformData): Deleted. |
| (WebCore::SharedBuffer::platformData): Deleted. |
| (WebCore::SharedBuffer::maybeAppendPlatformData): Deleted. |
| * platform/SharedBuffer.h: |
| (WebCore::SharedBuffer::create): Deleted. |
| (WebCore::SharedBuffer::isEmpty): Deleted. |
| * platform/SharedBufferChunkReader.cpp: |
| (WebCore::SharedBufferChunkReader::nextChunk): |
| (WebCore::SharedBufferChunkReader::peek): |
| * platform/SharedBufferChunkReader.h: |
| * platform/URLParser.cpp: |
| (WebCore::URLParser::URLParser): |
| * platform/cf/KeyedEncoderCF.cpp: |
| (WebCore::KeyedEncoderCF::finishEncoding): |
| * platform/cf/SharedBufferCF.cpp: |
| (WebCore::SharedBuffer::SharedBuffer): |
| (WebCore::SharedBuffer::createCFData): |
| (WebCore::SharedBuffer::create): |
| (WebCore::SharedBuffer::hintMemoryNotNeededSoon): |
| (WebCore::SharedBuffer::append): |
| (WebCore::SharedBuffer::wrapCFData): Deleted. |
| (WebCore::SharedBuffer::hasPlatformData): Deleted. |
| (WebCore::SharedBuffer::platformData): Deleted. |
| (WebCore::SharedBuffer::platformDataSize): Deleted. |
| (WebCore::SharedBuffer::maybeTransferPlatformData): Deleted. |
| (WebCore::SharedBuffer::clearPlatformData): Deleted. |
| (WebCore::SharedBuffer::tryReplaceContentsWithPlatformBuffer): Deleted. |
| (WebCore::SharedBuffer::maybeAppendPlatformData): Deleted. |
| (WebCore::SharedBuffer::copyBufferAndClear): Deleted. |
| (WebCore::SharedBuffer::copySomeDataFromDataArray): Deleted. |
| (WebCore::SharedBuffer::singleDataArrayBuffer): Deleted. |
| (WebCore::SharedBuffer::maybeAppendDataArray): Deleted. |
| * platform/cocoa/NetworkExtensionContentFilter.mm: |
| (WebCore::NetworkExtensionContentFilter::replacementData): |
| * platform/cocoa/ParentalControlsContentFilter.mm: |
| (WebCore::ParentalControlsContentFilter::replacementData): |
| * platform/cocoa/SharedBufferCocoa.mm: |
| (-[WebCoreSharedBufferData initWithSharedBufferDataSegment:]): |
| (-[WebCoreSharedBufferData length]): |
| (-[WebCoreSharedBufferData bytes]): |
| (WebCore::SharedBuffer::create): |
| (WebCore::SharedBuffer::createCFData): |
| (WebCore::SharedBuffer::createFromReadingFile): |
| (WebCore::SharedBuffer::createNSDataArray): |
| (-[WebCoreSharedBufferData initWithSharedBufferDataBuffer:]): Deleted. |
| (WebCore::SharedBuffer::wrapNSData): Deleted. |
| (WebCore::SharedBuffer::existingCFData): Deleted. |
| * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: |
| (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource): |
| * platform/graphics/cocoa/FontPlatformDataCocoa.mm: |
| (WebCore::FontPlatformData::openTypeTable): |
| * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: |
| (ResourceHandleStreamingClient::didReceiveBuffer): |
| * platform/graphics/mac/ImageMac.mm: |
| (WebCore::Image::loadPlatformResource): |
| * platform/image-decoders/ImageDecoder.cpp: |
| (WebCore::ImageDecoder::create): |
| * platform/image-decoders/png/PNGImageDecoder.cpp: |
| (WebCore::PNGImageReader::decode): |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::readBuffer): |
| * platform/mac/PasteboardMac.mm: |
| (WebCore::writeFileWrapperAsRTFDAttachment): |
| (WebCore::Pasteboard::write): |
| * platform/mac/PlatformPasteboardMac.mm: |
| (WebCore::PlatformPasteboard::bufferForType): |
| * platform/network/BlobResourceHandle.cpp: |
| (WebCore::BlobResourceHandle::notifyReceiveData): |
| * platform/network/MIMEHeader.cpp: |
| * platform/network/MIMEHeader.h: |
| * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp: |
| (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData): |
| * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp: |
| (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveData): |
| * platform/network/mac/WebCoreResourceHandleAsDelegate.mm: |
| (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]): |
| * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm: |
| (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveData:lengthReceived:]): |
| * platform/soup/SharedBufferSoup.cpp: |
| (WebCore::SharedBuffer::SharedBuffer): |
| (WebCore::SharedBuffer::createSoupBuffer): |
| (WebCore::SharedBuffer::clearPlatformData): Deleted. |
| (WebCore::SharedBuffer::maybeTransferPlatformData): Deleted. |
| (WebCore::SharedBuffer::hasPlatformData): Deleted. |
| (WebCore::SharedBuffer::platformData): Deleted. |
| (WebCore::SharedBuffer::platformDataSize): Deleted. |
| (WebCore::SharedBuffer::maybeAppendPlatformData): Deleted. |
| (WebCore::SharedBuffer::tryReplaceContentsWithPlatformBuffer): Deleted. |
| |
| 2017-04-21 Timothy Horton <timothy_horton@apple.com> |
| |
| Expose obscured insets to web content (as "safe area insets") |
| https://bugs.webkit.org/show_bug.cgi?id=171013 |
| <rdar://problem/31564652> |
| |
| Reviewed by Wenson Hsieh and Dave Hyatt. |
| |
| Tests: fast/css/variables/constants/invalid-constant-name-fallback.html |
| fast/css/variables/constants/ios/safe-area-inset-set.html |
| fast/css/variables/constants/safe-area-inset-cannot-override.html |
| fast/css/variables/constants/safe-area-inset-zero.html |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * css/CSSValueKeywords.in: |
| * css/CSSVariableData.cpp: |
| (WebCore::CSSVariableData::checkVariablesForCyclesWithRange): |
| (WebCore::CSSVariableData::resolveTokenRange): |
| * css/parser/CSSVariableParser.cpp: |
| (WebCore::isValidConstantName): |
| (WebCore::classifyBlock): |
| (WebCore::isValidConstantReference): |
| Add a constant() function, which takes both custom properties and |
| arbitrary idents which are looked up in ConstantPropertyMap, allowing |
| fallback from the arbitrary, UA-defined idents to custom properties. |
| |
| * dom/ConstantPropertyMap.cpp: Added. |
| (WebCore::ConstantPropertyMap::ConstantPropertyMap): |
| (WebCore::ConstantPropertyMap::values): |
| (WebCore::ConstantPropertyMap::nameForProperty): |
| (WebCore::ConstantPropertyMap::setValueForProperty): |
| (WebCore::ConstantPropertyMap::buildValues): |
| (WebCore::variableDataForSafeAreaInset): |
| (WebCore::ConstantPropertyMap::didChangeObscuredInsets): |
| * dom/ConstantPropertyMap.h: Added. |
| Keep a mapping of UA-defined "constants", which can be looked up |
| from CSS via the aforementioned function. For now, this mapping |
| includes only safe-area-inset-{top, right, bottom, left}, which |
| expose the obscured insets (now that they can be painted into via |
| the viewport parameter clip-to-safe-area-inset=no). |
| |
| * dom/Document.cpp: |
| (WebCore::Document::Document): |
| (WebCore::Document::didChangeObscuredInsets): |
| * dom/Document.h: |
| (WebCore::Document::constantProperties): |
| * page/Page.cpp: |
| (WebCore::Page::setObscuredInsets): |
| * page/Page.h: |
| (WebCore::Page::setObscuredInsets): Deleted. |
| Make setObscuredInsets and related storage not iOS-specific, though |
| nothing from the other platforms yet calls this code. |
| |
| * style/StyleResolveForDocument.cpp: |
| (WebCore::Style::resolveForDocument): |
| Grab the constant properties from ConstantPropertyMap and plop them into |
| the CustomPropertyValueMap. Constant properties aren't allowed to start |
| with --, and variable properties must, so there is no opportunity here |
| for exposing things to var() (or allowing custom properties to override |
| UA-defined constant properties). |
| |
| 2017-04-20 Konstantin Tokarev <annulen@yandex.ru> |
| |
| [cmake] Define FORWARDING_HEADERS_DIR in WebKitFS and use it everywhere |
| https://bugs.webkit.org/show_bug.cgi?id=171071 |
| |
| Reviewed by Michael Catanzaro. |
| |
| "${DERIVED_SOURCES_DIR}/ForwardingHeaders" path occurs very often in the |
| build system files. GTK-specifc FORWARDING_HEADERS_DIR variable should |
| be available for all ports. |
| |
| * CMakeLists.txt: |
| * PlatformMac.cmake: |
| * PlatformWin.cmake: |
| * PlatformWinCairo.cmake: |
| |
| 2017-04-20 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r215597. |
| https://bugs.webkit.org/show_bug.cgi?id=171102 |
| |
| Made all tests crash under GuardMalloc (Requested by ap on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Expose obscured insets to web content (as "safe area |
| insets")" |
| https://bugs.webkit.org/show_bug.cgi?id=171013 |
| http://trac.webkit.org/changeset/215597 |
| |
| 2017-04-20 Dean Jackson <dino@apple.com> |
| |
| Add Web Sharing to the features under consideration. |
| |
| * features.json: |
| |
| 2017-04-20 Dean Jackson <dino@apple.com> |
| |
| Add Scroll Anchoring to features under consideration. |
| |
| * features.json: |
| |
| 2017-04-20 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Remove unused lamda captures |
| https://bugs.webkit.org/show_bug.cgi?id=171098 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * Modules/indexeddb/server/SQLiteIDBBackingStore.cpp: |
| (WebCore::IDBServer::SQLiteIDBBackingStore::getOrEstablishDatabaseInfo): |
| * Modules/indexeddb/server/UniqueIDBDatabase.cpp: |
| (WebCore::IDBServer::UniqueIDBDatabase::activateTransactionInBackingStore): |
| * loader/ResourceLoadStatisticsStore.cpp: |
| (WebCore::ResourceLoadStatisticsStore::createEncoderFromData): |
| (WebCore::ResourceLoadStatisticsStore::readDataFromDecoder): |
| |
| 2017-04-20 Timothy Horton <timothy_horton@apple.com> |
| |
| Expose obscured insets to web content (as "safe area insets") |
| https://bugs.webkit.org/show_bug.cgi?id=171013 |
| <rdar://problem/31564652> |
| |
| Reviewed by Wenson Hsieh and Dave Hyatt. |
| |
| Tests: fast/css/variables/constants/invalid-constant-name-fallback.html |
| fast/css/variables/constants/ios/safe-area-inset-set.html |
| fast/css/variables/constants/safe-area-inset-cannot-override.html |
| fast/css/variables/constants/safe-area-inset-zero.html |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * css/CSSValueKeywords.in: |
| * css/CSSVariableData.cpp: |
| (WebCore::CSSVariableData::checkVariablesForCyclesWithRange): |
| (WebCore::CSSVariableData::resolveTokenRange): |
| * css/parser/CSSVariableParser.cpp: |
| (WebCore::isValidConstantName): |
| (WebCore::classifyBlock): |
| (WebCore::isValidConstantReference): |
| Add a constant() function, which takes both custom properties and |
| arbitrary idents which are looked up in ConstantPropertyMap, allowing |
| fallback from the arbitrary, UA-defined idents to custom properties. |
| |
| * dom/ConstantPropertyMap.cpp: Added. |
| (WebCore::ConstantPropertyMap::ConstantPropertyMap): |
| (WebCore::ConstantPropertyMap::values): |
| (WebCore::ConstantPropertyMap::nameForProperty): |
| (WebCore::ConstantPropertyMap::setValueForProperty): |
| (WebCore::ConstantPropertyMap::buildValues): |
| (WebCore::variableDataForSafeAreaInset): |
| (WebCore::ConstantPropertyMap::didChangeObscuredInsets): |
| * dom/ConstantPropertyMap.h: Added. |
| Keep a mapping of UA-defined "constants", which can be looked up |
| from CSS via the aforementioned function. For now, this mapping |
| includes only safe-area-inset-{top, right, bottom, left}, which |
| expose the obscured insets (now that they can be painted into via |
| the viewport parameter clip-to-safe-area-inset=no). |
| |
| * dom/Document.cpp: |
| (WebCore::Document::Document): |
| (WebCore::Document::didChangeObscuredInsets): |
| * dom/Document.h: |
| (WebCore::Document::constantProperties): |
| * page/Page.cpp: |
| (WebCore::Page::setObscuredInsets): |
| * page/Page.h: |
| (WebCore::Page::setObscuredInsets): Deleted. |
| Make setObscuredInsets and related storage not iOS-specific, though |
| nothing from the other platforms yet calls this code. |
| |
| * style/StyleResolveForDocument.cpp: |
| (WebCore::Style::resolveForDocument): |
| Grab the constant properties from ConstantPropertyMap and plop them into |
| the CustomPropertyValueMap. Constant properties aren't allowed to start |
| with --, and variable properties must, so there is no opportunity here |
| for exposing things to var() (or allowing custom properties to override |
| UA-defined constant properties). |
| |
| 2017-04-20 Anders Carlsson <andersca@apple.com> |
| |
| Remove one use of toPaymentAuthorizationStatus |
| https://bugs.webkit.org/show_bug.cgi?id=171086 |
| |
| Reviewed by Tim Horton. |
| |
| Just switch on the individual ApplePaySession::STATUS_ values. |
| |
| * Modules/applepay/ApplePaySession.cpp: |
| (WebCore::ApplePaySession::completeShippingMethodSelection): |
| |
| 2017-04-20 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [WinCairo] Fix build break after updating ANGLE |
| https://bugs.webkit.org/show_bug.cgi?id=170980 |
| |
| Reviewed by Brent Fulgham. |
| |
| By stopping using SoftLinking for ANGLE, some changes are needed |
| for WebCore and WebKit. |
| - Define a macro 'GL_GLEXT_PROTOTYPES' before #include <GLES2/gl2.h> or <GLES2/gl2ext.h>. |
| - Link libEGL import library explicitly. |
| |
| * PlatformWin.cmake: Link libEGL to WebCore. |
| * platform/graphics/PlatformDisplay.cpp: |
| (WebCore::PlatformDisplay::initializeEGLDisplay): Removed the code for SoftLinking. |
| * platform/graphics/GLContext.cpp: Define GL_GLEXT_PROTOTYPES. |
| * platform/graphics/egl/GLContextEGL.cpp: Ditto. |
| * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp: Ditto. |
| * platform/graphics/opengl/Extensions3DOpenGLES.h: Ditto. |
| * platform/graphics/opengl/TemporaryOpenGLSetting.cpp: Ditto. |
| * platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp: Ditto. |
| |
| 2017-04-20 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Add regular expression support to XHR breakpoints |
| https://bugs.webkit.org/show_bug.cgi?id=170099 |
| <rdar://problem/31558082> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * inspector/InspectorDOMDebuggerAgent.cpp: |
| (WebCore::InspectorDOMDebuggerAgent::setXHRBreakpoint): |
| (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest): |
| Use ContentSearchUtilities for both Text and RegularExpression breakpoints. |
| |
| * inspector/InspectorDOMDebuggerAgent.h: |
| Associate XHR breakpoint with a type. |
| |
| 2017-04-20 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Cleanup and simplify CoreAudioCaptureSource |
| https://bugs.webkit.org/show_bug.cgi?id=171064 |
| |
| There is no need for a mutex to guard against internal state changes because we |
| don't currently change configuration after the audio unit is allocated. Once |
| we do support reconfiguration on the fly, we can just stop the output unit before |
| changing configuration because the I/O proc isn't called if the output unit |
| is stopped, and AudioOutputUnitStop blocks until the audio device has stopped. |
| |
| Reviewed by Jer Noble. |
| |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::~CoreAudioCaptureSource): Call cleanupAudioUnits |
| instead of duplicating logic. |
| (WebCore::CoreAudioCaptureSource::preferredIOBufferDuration): Change preferred |
| duration from 20ms to 40ms. |
| (WebCore::CoreAudioCaptureSource::configureMicrophoneProc): Set mSampleRate to the |
| preferred sample rate if it is 0. |
| (WebCore::CoreAudioCaptureSource::configureSpeakerProc): Ditto. |
| (WebCore::CoreAudioCaptureSource::provideSpeakerData): Only increment counter and |
| check timestamps in debug builds. |
| (WebCore::CoreAudioCaptureSource::processMicrophoneSamples): Ditto. |
| (WebCore::CoreAudioCaptureSource::cleanupAudioUnits): We only need the audio unit |
| name in debug builds. |
| (WebCore::CoreAudioCaptureSource::setupAudioUnits): Ditto. No more internal state |
| lock. Don't try to get the default input device on iOS. |
| (WebCore::CoreAudioCaptureSource::startProducingData): No more internal state lock. |
| Assert if not called on the main thread. |
| (WebCore::CoreAudioCaptureSource::stopProducingData): Ditto. |
| (WebCore::CoreAudioCaptureSource::suspend): Ditto. |
| (WebCore::CoreAudioCaptureSource::resume): Ditto. |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| |
| 2017-04-20 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream iOS] Hold process assertion while media capture is active |
| https://bugs.webkit.org/show_bug.cgi?id=171017 |
| <rdar://problem/31719177> |
| |
| Reviewed by Dean Jackson. |
| |
| * page/ActivityState.h: Add IsCapturingMedia flag. |
| |
| * page/Page.cpp: |
| (WebCore::Page::updateTimerThrottlingState): Enable timer throttling when capture is active |
| like we do when playing audio. |
| (WebCore::Page::setActivityState): Ditto. |
| |
| * page/PerformanceMonitor.cpp: |
| (WebCore::PerformanceMonitor::updateProcessStateForMemoryPressure): A process is active when |
| capturing media, as it is when playing audio. |
| |
| 2017-04-20 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Inline anchor elements cannot be dragged when starting the drag from a block descendant |
| https://bugs.webkit.org/show_bug.cgi?id=171062 |
| <rdar://problem/31697835> |
| |
| Reviewed by Tim Horton. |
| |
| Tweaks DragController::draggableElement to traverse the DOM instead of the render tree when finding a draggable |
| element. This prevents us from skipping elements that are in the DOM ancestor chain, but appear as siblings to |
| the hit-tested node's renderer in the render tree. |
| |
| There was also previously a check to ensure that we skip anonymous RenderObjects while traversing up the chain, |
| but this is no longer necessary fter this change, since all the elements we traverse in the DOM should have |
| renderers that are not anonymous. |
| |
| Test: fast/events/drag-and-drop-link-containing-block.html |
| |
| * page/DragController.cpp: |
| (WebCore::DragController::draggableElement): |
| |
| 2017-04-20 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| -Wformat warning on HistoryController.cpp:295:5 |
| https://bugs.webkit.org/show_bug.cgi?id=171028 |
| |
| Reviewed by Daniel Bates. |
| |
| Need to cast WebCore::FrameLoadType to int before using it in printf. |
| |
| * loader/HistoryController.cpp: |
| (WebCore::HistoryController::goToItem): |
| |
| 2017-04-20 Per Arne Vollan <pvollan@apple.com> |
| |
| The toleranceBefore parameter in the AVPlayerItem method seekToTime should not be negative. |
| https://bugs.webkit.org/show_bug.cgi?id=171063 |
| |
| Reviewed by Eric Carlson. |
| |
| The AVPlayerItem method seekToTime will throw an exception if toleranceBefore is negative. |
| |
| No new tests since the change is a sanity check. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::seekTask): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime): |
| |
| 2017-04-20 Anders Carlsson <andersca@apple.com> |
| |
| Replace isFinalStateStatus with isFinalStateResult |
| https://bugs.webkit.org/show_bug.cgi?id=171072 |
| rdar://problem/31589635 |
| |
| Reviewed by Tim Horton. |
| |
| This will let us get rid of some of the status enum declarations. |
| |
| * Modules/applepay/ApplePaySession.cpp: |
| (WebCore::ApplePaySession::completePayment): |
| * Modules/applepay/PaymentAuthorizationStatus.h: |
| (WebCore::isFinalStateStatus): Deleted. |
| * Modules/applepay/PaymentCoordinator.cpp: |
| (WebCore::PaymentCoordinator::completePaymentSession): |
| * Modules/applepay/PaymentRequest.cpp: |
| (WebCore::isFinalStateResult): |
| * Modules/applepay/PaymentRequest.h: |
| |
| 2017-04-20 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] REGRESSION(r215486): Windows Release build is broken |
| https://bugs.webkit.org/show_bug.cgi?id=171024 |
| <rdar://problem/31722618> |
| |
| Reviewed by Mark Lam. |
| |
| Add missing include needed for clean Release build on Windows (proper |
| fix found by Fujii Hironori). |
| |
| * bindings/js/JSDOMGlobalObject.h: |
| |
| 2017-04-20 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| CachedImage should cancel loading images for unsupported/unknown types |
| https://bugs.webkit.org/show_bug.cgi?id=170697 |
| |
| Reviewed by Youenn Fablet. |
| |
| Currently when the image decoder detects an error with the incoming encoded |
| data of an image, we mark the image to be a broken image. But the network |
| process keeps feeding the web process with the rest of the data. We should |
| cancel loading the rest of the data to save network bandwidth and CPU time |
| loading and processing useless data. |
| |
| * loader/cache/CachedImage.cpp: |
| (WebCore::CachedImage::addIncrementalDataBuffer): |
| (WebCore::CachedImage::finishLoading): |
| |
| 2017-04-20 Aaron Chu <aaron_chu@apple.com> |
| |
| AX: Modern Media Controls Timeline slider should be operable |
| https://bugs.webkit.org/show_bug.cgi?id=170250 |
| |
| Reviewed by Antoine Quint. |
| |
| Added a "change" event listener and aria-valuetext to the slider so that when a |
| VoiceOver user operates the timeline control, VO speaks the updated timestamp |
| |
| Test: media/modern-media-controls/scrubber/scrubber-has-correct-ax-label.html |
| |
| * English.lproj/modern-media-controls-localized-strings.js: |
| * Modules/modern-media-controls/controls/scrubber.js: |
| (Scrubber.prototype.set inputAccessibleLabel): |
| (Scrubber.prototype._formatTime): |
| * Modules/modern-media-controls/controls/slider.js: |
| (Slider.prototype.handleEvent): |
| (Slider.prototype._handleInputEvent): Deleted. |
| * Modules/modern-media-controls/controls/time-control.js: |
| (TimeControl.prototype.updateScrubberLabel): |
| * Modules/modern-media-controls/controls/time-label.js: |
| (TimeLabel.prototype.commitProperty): |
| (TimeLabel.prototype._formattedTime): |
| * Modules/modern-media-controls/main.js: |
| (formatTimeByUnit): |
| (unitizeTime): |
| |
| 2017-04-20 Andy Estes <aestes@apple.com> |
| |
| Fix indentation in AVKitSPI.h |
| https://bugs.webkit.org/show_bug.cgi?id=171066 |
| |
| Reviewed by Jer Noble. |
| |
| * platform/spi/cocoa/AVKitSPI.h: |
| |
| 2017-04-20 Jer Noble <jer.noble@apple.com> |
| |
| [MediaCapture] gUM() with CoreAudio fails if capturing audio in the UIProcess. |
| https://bugs.webkit.org/show_bug.cgi?id=171021 |
| |
| Reviewed by Eric Carlson. |
| |
| Refactor the creation of RealtimeMediaSources to take a persistent device ID rather |
| than a CaptureDevice directly. This allows WebKit2 to iterate devices in the UIProcess |
| rather than the WebProcess. |
| |
| * platform/mediastream/RealtimeMediaSource.h: |
| * platform/mediastream/mac/AVAudioCaptureSource.mm: |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::create): |
| (WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource): |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| (WebCore::RealtimeMediaSourceCenterMac::createMediaStream): |
| (WebCore::RealtimeMediaSourceCenterMac::bestSourcesForTypeAndConstraints): |
| * platform/mock/MockRealtimeAudioSource.cpp: |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| |
| 2017-04-20 Tim Horton <timothy_horton@apple.com> |
| |
| Make it possible to request the non-expanded scrollbar width from ScrollbarTheme |
| https://bugs.webkit.org/show_bug.cgi?id=171047 |
| |
| Reviewed by Sam Weinig. |
| |
| No new tests, new behavior is not exposed in any way. |
| |
| * platform/ScrollTypes.h: |
| * platform/ScrollbarTheme.h: |
| (WebCore::ScrollbarTheme::scrollbarThickness): |
| * platform/gtk/ScrollbarThemeGtk.cpp: |
| (WebCore::ScrollbarThemeGtk::scrollbarThickness): |
| * platform/gtk/ScrollbarThemeGtk.h: |
| * platform/ios/ScrollbarThemeIOS.h: |
| * platform/ios/ScrollbarThemeIOS.mm: |
| (WebCore::ScrollbarThemeIOS::scrollbarThickness): |
| * platform/mac/ScrollbarThemeMac.h: |
| * platform/mac/ScrollbarThemeMac.mm: |
| (WebCore::ScrollbarThemeMac::scrollbarThickness): |
| * platform/mock/ScrollbarThemeMock.cpp: |
| (WebCore::ScrollbarThemeMock::scrollbarThickness): |
| * platform/mock/ScrollbarThemeMock.h: |
| * platform/win/ScrollbarThemeWin.cpp: |
| (WebCore::ScrollbarThemeWin::scrollbarThickness): |
| * platform/win/ScrollbarThemeWin.h: |
| * rendering/RenderScrollbarTheme.h: |
| On Mac, when the scrollbar is hovered, it gets bigger. |
| Currently, scrollbarThickness always returns the big size. |
| It should be possible to request the smaller, "regular" scrollbar size as well. |
| |
| 2017-04-20 Jon Lee <jonlee@apple.com> |
| |
| Update pip placard to "picture in picture" |
| https://bugs.webkit.org/show_bug.cgi?id=171036 |
| rdar://problem/30201536 |
| |
| Reviewed by Antoine Quint. |
| |
| Updated media/modern-media-controls/pip-placard/pip-placard.html |
| |
| Update the text shown with the picture in picture placard. |
| |
| * English.lproj/mediaControlsLocalizedStrings.js: |
| * English.lproj/modern-media-controls-localized-strings.js: |
| * Modules/mediacontrols/mediaControlsApple.js: |
| (Controller.prototype.updatePictureInPicturePlaceholder): |
| * Modules/modern-media-controls/controls/pip-placard.js: |
| (PiPPlacard): |
| |
| 2017-04-20 Youenn Fablet <youenn@apple.com> |
| |
| RTCPeerConnection is stopping its backend twice sometimes |
| https://bugs.webkit.org/show_bug.cgi?id=171043 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: webrtc/closing-peerconnection.html |
| |
| Making sure we stop the backend only once. |
| Adding an internals API to close the peer connection so as to replicate frame disconnection. |
| |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::doClose): |
| (WebCore::RTCPeerConnection::doStop): |
| * Modules/mediastream/RTCPeerConnection.h: |
| * testing/Internals.cpp: |
| (WebCore::Internals::stopPeerConnection): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-04-20 Antti Koivisto <antti@apple.com> |
| |
| Increase large animation cutoff |
| https://bugs.webkit.org/show_bug.cgi?id=171051 |
| <rdar://problem/31731532> |
| |
| Reviewed by Andreas Kling. |
| |
| We currently switch to per-frame decoding if the animation is larger than 5MB. This is very |
| power-inefficient and such animations are now common. The cutoff originates from 2007 (r20069), |
| it is time update it. |
| |
| Note that the normal low memory handling will still kill animation frames as needed. |
| |
| * platform/graphics/BitmapImage.h: |
| |
| Increase cutoff to 30MB. This is enough (with some room to spare) for animations on current |
| tumblr.com/search/aww. |
| |
| Also remove the separate cutoff value for iOS. |
| |
| 2017-04-20 Zan Dobersek <zdobersek@igalia.com> |
| |
| Register missing AES_CTR, ECDSA and HKDF algorithms in |
| GCrypt's CryptoAlgorithmRegistry implementation. |
| |
| Rubber-stamped by Carlos Alberto Lopez Perez. |
| |
| * crypto/gcrypt/CryptoAlgorithmRegistryGCrypt.cpp: |
| (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): |
| |
| 2017-04-20 Joanmarie Diggs <jdiggs@igalia.com> |
| |
| [ATK] Implement support for DPub ARIA roles |
| https://bugs.webkit.org/show_bug.cgi?id=170679 |
| |
| Reviewed by Chris Fleizach. |
| |
| Create two new WebCore AccessibilityRole values: TextGroup and ApplicationTextGroup. |
| These roles make it possible for platforms to distinguish groups which are primarily |
| intended to display textual content from groups which are primarily intended to hold |
| user-interface objects. Use these roles to fix the ATK mapping of DPub's groups, which |
| should be exposed as ATK_ROLE_SECTION; not ATK_ROLE_PANEL. |
| |
| Modify the following WebCore AccessibilityRole mappings: |
| - doc-abstract changed to ApplicationTextGroupRole because this DPub ARIA role does |
| not subclass the ARIA landmark role |
| - doc-biblioentry and doc-endnote changed to ListItemRole, because these DPub ARIA |
| roles subclass the ARIA listitem role |
| - doc-notice and doc-tip changed to DocumentNoteRole because these DPub ARIA roles |
| subclass the ARIA note role |
| - doc-pagebreak changed to SplitterRole because this DPub ARIA role subclasses the |
| ARIA separator role |
| |
| No new tests required: New test cases were added to xml-roles-exposed.html, and |
| the platform expectations for roles-exposed.html were updated to reflect the |
| correct mappings. |
| |
| * accessibility/AccessibilityList.cpp: |
| (WebCore::AccessibilityList::determineAccessibilityRole): |
| * accessibility/AccessibilityNodeObject.cpp: |
| (WebCore::AccessibilityNodeObject::isGroup): |
| (WebCore::AccessibilityNodeObject::helpText): |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::ariaTreeItemContent): |
| (WebCore::initializeRoleMap): |
| (WebCore::AccessibilityObject::computedRoleString): |
| * accessibility/AccessibilityObject.h: |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::helpText): |
| (WebCore::AccessibilityRenderObject::shouldFocusActiveDescendant): |
| (WebCore::AccessibilityRenderObject::determineAccessibilityRole): |
| * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: |
| (webkitAccessibleGetAttributes): |
| (atkRole): |
| (roleIsTextType): |
| * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: |
| (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]): |
| (-[WebAccessibilityObjectWrapper containsUnnaturallySegmentedChildren]): |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: |
| (createAccessibilityRoleMap): |
| (-[WebAccessibilityObjectWrapper subrole]): |
| |
| 2017-04-19 Youenn Fablet <youenn@apple.com> |
| |
| [Mac] Allow customizing H264 encoder |
| https://bugs.webkit.org/show_bug.cgi?id=170829 |
| |
| Reviewed by Alex Christensen. |
| |
| Using WebKitAdditions CreateCompressionSession if available. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/mediastream/libwebrtc/H264VideoToolBoxEncoder.h: Added. |
| * platform/mediastream/libwebrtc/H264VideoToolBoxEncoder.mm: Added. |
| (WebCore::H264VideoToolboxEncoder::CreateCompressionSession): |
| * platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.cpp: |
| (WebCore::VideoToolboxVideoEncoderFactory::CreateSupportedVideoEncoder): |
| |
| 2017-04-19 Eric Carlson <eric.carlson@apple.com> |
| |
| Another deadlock in CoreAudioCaptureSource |
| https://bugs.webkit.org/show_bug.cgi?id=171001 |
| |
| Fix another regression introduced by r215201, plus make changes suggested |
| in the review of 170771. |
| |
| Reviewed by Youenn Fablet. |
| |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::configureSpeakerProc): Assert if the lock is no held. |
| (WebCore::CoreAudioCaptureSource::provideSpeakerData): Don't reset the buffer. |
| (WebCore::CoreAudioCaptureSource::processMicrophoneSamples): Take the state lock. Don't |
| reset the buffer. No more microphone callbacks. |
| (WebCore::CoreAudioCaptureSource::stopProducingData): Return early if the io unit isn't |
| running. Drop the lock before calling setMuted to avoid another deadlock. |
| (WebCore::CoreAudioCaptureSource::addMicrophoneDataConsumer): Deleted. |
| (WebCore::CoreAudioCaptureSource::removeMicrophoneDataConsumer): Deleted. |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| |
| 2017-04-19 Anders Carlsson <andersca@apple.com> |
| |
| Stop using deprecated APIs, part 3 |
| https://bugs.webkit.org/show_bug.cgi?id=171003 |
| rdar://problem/31589635 |
| rdar://problem/31589635 |
| |
| Reviewed by Tim Horton. |
| |
| * Modules/applepay/ApplePaySession.cpp: |
| (WebCore::convertAndValidate): |
| The status member variable has been removed from ApplePayShippingMethodUpdate. |
| |
| (WebCore::ApplePaySession::completeShippingMethodSelection): |
| If status is not STATUS_SUCCESS, cancel the payment session. |
| |
| (WebCore::ApplePaySession::canSuspendForDocumentSuspension): |
| (WebCore::ApplePaySession::canBegin): |
| (WebCore::ApplePaySession::canAbort): |
| (WebCore::ApplePaySession::canCancel): |
| (WebCore::ApplePaySession::canCompleteShippingMethodSelection): |
| (WebCore::ApplePaySession::canCompleteShippingContactSelection): |
| (WebCore::ApplePaySession::canCompletePaymentMethodSelection): |
| (WebCore::ApplePaySession::canCompletePayment): |
| (WebCore::ApplePaySession::isFinalState): |
| Add State::CancelRequested. |
| |
| * Modules/applepay/ApplePayShippingMethodUpdate.h: |
| * Modules/applepay/ApplePayShippingMethodUpdate.idl: |
| Remove status. |
| |
| * Modules/applepay/PaymentCoordinator.cpp: |
| (WebCore::PaymentCoordinator::cancelPaymentSession): |
| Call through to the client. |
| |
| * Modules/applepay/PaymentCoordinator.h: |
| * Modules/applepay/PaymentCoordinatorClient.h: |
| Add cancelPaymentSession(). |
| |
| * Modules/applepay/PaymentRequest.h: |
| Remove status. |
| |
| * loader/EmptyClients.cpp: |
| Add new client member function. |
| |
| 2017-04-19 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Limit capture to one tab at a time |
| https://bugs.webkit.org/show_bug.cgi?id=171009 |
| |
| Reviewed by Jon Lee. |
| |
| No new tests yet, filed bug 171011. |
| |
| * Modules/mediastream/MediaStreamTrack.cpp: |
| (WebCore::MediaStreamTrack::stopTrack): Drive-by fix: renamed from stopProducingData |
| because stopProducingData is a method in RealtimeMediaSource that does something different. |
| (WebCore::MediaStreamTrack::stop): Call stopTrack. |
| (WebCore::MediaStreamTrack::stopProducingData): Deleted. |
| * Modules/mediastream/MediaStreamTrack.h: |
| * Modules/mediastream/MediaStreamTrack.idl: |
| |
| * Modules/mediastream/RTCRtpSender.cpp: |
| (WebCore::RTCRtpSender::replaceTrack): Update for rename. |
| |
| * platform/mediastream/MediaStreamPrivate.cpp: |
| (WebCore::MediaStreamPrivate::muted): Drive-by fix: a track that has ended but |
| which is not muted will never produce data. |
| |
| 2017-04-19 Alex Christensen <achristensen@webkit.org> |
| |
| Parsing large XML strings fails |
| https://bugs.webkit.org/show_bug.cgi?id=170999 |
| <rdar://problem/17336267> |
| |
| Reviewed by Brady Eidson. |
| |
| Test: fast/dom/xml-large.html |
| |
| * xml/parser/XMLDocumentParserLibxml2.cpp: |
| (WebCore::XMLParserContext::createStringParser): |
| (WebCore::XMLParserContext::createMemoryParser): |
| Allow huge XML strings. They work fine in Chrome and Firefox. |
| |
| 2017-04-19 Chris Fleizach <cfleizach@apple.com> |
| |
| AX: <hr> should use a different role description than interactive separators |
| https://bugs.webkit.org/show_bug.cgi?id=170317 |
| <rdar://problem/31363024> |
| |
| Reviewed by Joanmarie Diggs. |
| |
| Users are confused with WebKit's accessibility description of separators. |
| We should call these what they are, horizontal rules. |
| |
| Updated test: accessibility/mac/hr-element-expected.txt |
| |
| * English.lproj/Localizable.strings: |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::orientation): |
| * platform/cocoa/LocalizedStringsCocoa.mm: |
| (WebCore::AXHorizontalRuleDescriptionText): |
| |
| 2017-04-19 Anders Carlsson <andersca@apple.com> |
| |
| Rename cancelPayment to cancelPaymentSession |
| https://bugs.webkit.org/show_bug.cgi?id=171007 |
| |
| Reviewed by Tim Horton. |
| |
| * Modules/applepay/ApplePaySession.cpp: |
| (WebCore::ApplePaySession::didCancelPaymentSession): |
| (WebCore::ApplePaySession::didCancelPayment): Deleted. |
| * Modules/applepay/ApplePaySession.h: |
| * Modules/applepay/PaymentCoordinator.cpp: |
| (WebCore::PaymentCoordinator::didCancelPaymentSession): |
| (WebCore::PaymentCoordinator::didCancelPayment): Deleted. |
| * Modules/applepay/PaymentCoordinator.h: |
| |
| 2017-04-19 Joseph Pecoraro <pecoraro@apple.com> |
| |
| ASAN Crash running LayoutTests/inspector/worker tests |
| https://bugs.webkit.org/show_bug.cgi?id=170967 |
| <rdar://problem/31256437> |
| |
| Reviewed by Alex Christensen. |
| |
| * workers/WorkerMessagingProxy.h: |
| * workers/WorkerMessagingProxy.cpp: |
| (WebCore::WorkerMessagingProxy::WorkerMessagingProxy): |
| (WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyedInternal): |
| Make the MessagingProxy thread safe ref counted. Since it used to |
| delete itself, turn this into a ref (implicit on construction) |
| and deref (replacing delete this). |
| |
| (WebCore::WorkerMessagingProxy::postMessageToPageInspector): |
| When dispatching have the lambda implicitly ref/deref with the |
| lambda to keep the proxy alive while a lambda is queued. |
| |
| 2017-04-19 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS, macOS] Guard against passing nullptr to vImagePremultiplyData |
| https://bugs.webkit.org/show_bug.cgi?id=170912 |
| <rdar://problem/30565800> |
| |
| Reviewed by Brady Eidson. |
| |
| * platform/graphics/cg/ImageBufferDataCG.cpp: |
| (WebCore::affineWarpBufferData): Assert if we passed nullptr buffers. |
| (WebCore::transferData): Ditto. |
| (WebCore::ImageBufferData::getData): Check for nullptr data member and avoid passing to vImage routines. |
| (WebCore::ImageBufferData::putData): Ditto. |
| |
| 2017-04-19 Dave Hyatt <hyatt@apple.com> |
| |
| Remove bogus assert for :not. |
| https://bugs.webkit.org/show_bug.cgi?id=170995 |
| <rdar://problem/29693115> |
| |
| Reviewed by Zalan Bujtas. |
| |
| * css/parser/CSSSelectorParser.cpp: |
| |
| 2017-04-19 Antoine Quint <graouts@apple.com> |
| |
| [Modern Media Controls] Allow non-PNG resources |
| https://bugs.webkit.org/show_bug.cgi?id=170992 |
| <rdar://problem/31706590> |
| |
| Reviewed by Dean Jackson. |
| |
| Instead of passing in a name and a platform to MediaControlsHost::base64StringForIconAndPlatform(), |
| we now pass in a name and a type to MediaControlsHost::base64StringForIconNameAndType(). We've removed |
| the need to provide a platform by copying the resources directly under "Resources/modern-media-controls" |
| insted of "Resources/modern-media-controls/platform-name-here", and now we provide a type so that it |
| may be passed down to -[NSBundle pathForResource:ofType:inDirectory:]. |
| |
| * Modules/mediacontrols/MediaControlsHost.cpp: |
| (WebCore::MediaControlsHost::base64StringForIconNameAndType): |
| (WebCore::MediaControlsHost::base64StringForIconAndPlatform): Deleted. |
| * Modules/mediacontrols/MediaControlsHost.h: |
| * Modules/mediacontrols/MediaControlsHost.idl: |
| * Modules/modern-media-controls/controls/icon-service.js: |
| (const.iconService.new.IconService.prototype.imageForIconNameAndLayoutTraits): |
| * WebCore.xcodeproj/project.pbxproj: |
| * rendering/RenderTheme.h: |
| (WebCore::RenderTheme::mediaControlsBase64StringForIconNameAndType): |
| (WebCore::RenderTheme::mediaControlsBase64StringForIconAndPlatform): Deleted. |
| * rendering/RenderThemeIOS.h: |
| * rendering/RenderThemeIOS.mm: |
| (WebCore::RenderThemeIOS::mediaControlsBase64StringForIconNameAndType): |
| (WebCore::RenderThemeIOS::mediaControlsBase64StringForIconAndPlatform): Deleted. |
| * rendering/RenderThemeMac.h: |
| * rendering/RenderThemeMac.mm: |
| (WebCore::RenderThemeMac::mediaControlsBase64StringForIconNameAndType): |
| (WebCore::RenderThemeMac::mediaControlsBase64StringForIconAndPlatform): Deleted. |
| |
| 2017-04-19 Antti Koivisto <antti@apple.com> |
| |
| Avoid repaints for invisible animations on tumblr.com/search/aww |
| https://bugs.webkit.org/show_bug.cgi?id=170986 |
| <rdar://problem/28644580> |
| |
| Reviewed by Andreas Kling. |
| |
| Test: fast/repaint/mutate-non-visible.html |
| |
| * rendering/style/RenderStyle.cpp: |
| (WebCore::requiresPainting): |
| (WebCore::RenderStyle::changeRequiresRepaint): |
| |
| If an element is invisible it does not require repaint even if something else changes. |
| |
| 2017-04-19 Dean Jackson <dino@apple.com> |
| |
| Non-muxable GPUs shouldn't allow offline rendering |
| https://bugs.webkit.org/show_bug.cgi?id=170984 |
| <rdar://problem/31614406> |
| |
| Reviewed by Myles Maxfield. |
| |
| Setting the kCGLPFAAllowOfflineRenderers flag doesn't do any |
| harm on devices that only have one GPU. It's also what we |
| want on devices that can mux between GPUs. However, we were |
| also setting it unconditionally on devices with multiple |
| GPUs that have issues muxing. |
| |
| * platform/graphics/mac/GraphicsContext3DMac.mm: |
| (WebCore::setPixelFormat): Add a test for hasMuxableGPU. |
| |
| 2017-04-18 Youenn Fablet <youenn@apple.com> |
| |
| RTCOfferOptions iceRestart should be supported |
| https://bugs.webkit.org/show_bug.cgi?id=170966 |
| |
| Reviewed by Alex Christensen. |
| |
| No ability to test iceRestart as of now. |
| Passing iceRestart value to libwebrtc. |
| Passing also voiceActivityDetection value to libwebrtc. |
| Updating mock to use the new overloaded CreateOffer method. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::doCreateOffer): |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::LibWebRTCPeerConnectionBackend::doCreateOffer): |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::doCreateOffer): |
| * testing/MockLibWebRTCPeerConnection.cpp: |
| (WebCore::MockLibWebRTCPeerConnection::CreateOffer): |
| * testing/MockLibWebRTCPeerConnection.h: |
| |
| 2017-04-18 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [WK2] Support DataTransfer::files() when performing a DHTML data interaction |
| https://bugs.webkit.org/show_bug.cgi?id=170880 |
| <rdar://problem/31314689> |
| |
| Reviewed by Tim Horton. |
| |
| Adds support for fetching files from the DataTransfer when performing a data interaction operation handled by |
| JavaScript. There are two changes we make here to achieve this: |
| |
| First, we teach the Pasteboard on iOS to know what file paths hold the item provider contents used in the |
| current data interaction operation. On iOS, Pasteboard::readFilenames is currently hard-coded to return an empty |
| vector. To fix this, we add logic to the iOS Pasteboard to remember what the paths of all files that were |
| successfully loaded from item providers as the data interaction is taking place. This ensures that at the |
| WebCore layer, the implementation of Pasteboard::readFilenames on Mac and iOS is similar -- they both call out |
| to the client layer in order to read file paths off of their respective pasteboards. Once in the client layer |
| (WebKit1 or WebKit2) we then call into PlatformPasteboard::filenamesForDataInteraction, which then calls into |
| WebItemProviderPasteboard if applicable. |
| |
| The second tweak is to propagate information about whether the document is preventing default data interaction |
| behavior to the client layer. This prevents us from having to save pasteboard content when performing data |
| interaction in cases where file information is not needed (i.e. the default behavior is being performed, and |
| the target is not a file input). This also avoids compatibility issues with insertion animations when performing |
| data interaction in editable areas, due to the extra time spent loading item provider data into a temporary |
| file. |
| |
| Unit tests in <https://bugs.webkit.org/show_bug.cgi?id=170903>. |
| |
| * page/DragController.cpp: |
| (WebCore::DragController::DragController): |
| (WebCore::DragController::performDragOperation): |
| (WebCore::DragController::dragEnteredOrUpdated): |
| (WebCore::DragController::tryDocumentDrag): |
| |
| Refactor DragController::tryDocumentDrag to return a DragHandlingMethod. This method currently returns either |
| true or false; this patch changes it to return a DragHandlingMethod, which is either None (the equivalent of |
| returning false before the patch), Default (indicating that the drop destination is allowing default handling), |
| or NonDefault, which indicates that the drop destination has explicitly prevented default. |
| |
| * page/DragController.h: |
| (WebCore::DragController::documentIsHandlingNonDefaultDrag): |
| |
| Used by WebPage when sending an IPC response after handling dragentered or dragupdated. |
| |
| * platform/PasteboardStrategy.h: |
| * platform/PlatformPasteboard.h: |
| * platform/ios/AbstractPasteboard.h: |
| * platform/ios/PasteboardIOS.mm: |
| (WebCore::Pasteboard::readFilenames): |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::filenamesForDataInteraction): |
| * platform/ios/WebItemProviderPasteboard.h: |
| * platform/ios/WebItemProviderPasteboard.mm: |
| |
| WebItemProviderPasteboard now remembers the file URLs of successfully loaded item provider content when a data |
| interaction is being performed. The new filenamesForDataInteraction property returns the array of data |
| interaction file URLs which have been propagated to the web process along with sandbox extensions. This state |
| is cleaned up when list of item providers change (i.e. when the data interaction operation is finished, or if |
| the web content process crashes, etc.) |
| |
| (-[WebItemProviderPasteboard init]): |
| (-[WebItemProviderPasteboard setItemProviders:]): |
| (-[WebItemProviderPasteboard filenamesForDataInteraction]): |
| (-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:]): |
| |
| 2017-04-18 Dean Jackson <dino@apple.com> |
| |
| Cairo build fix. |
| https://bugs.webkit.org/show_bug.cgi?id=170941 |
| |
| * platform/graphics/cairo/GraphicsContext3DCairo.cpp: |
| (WebCore::GraphicsContext3D::GraphicsContext3D): |
| |
| 2017-04-18 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Rebaseline bindings tests after r215486. |
| |
| Unreviewed test gardening. |
| |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| (WebCore::jsTestObjOnfooGetter): |
| (WebCore::jsTestObjOnwebkitfooGetter): |
| |
| 2017-04-18 Dean Jackson <dino@apple.com> |
| |
| Attempted build fix. Add/remove some files from ANGLE. |
| |
| * CMakeLists.txt: |
| |
| 2017-04-18 Dean Jackson <dino@apple.com> |
| |
| Update ANGLE |
| https://bugs.webkit.org/show_bug.cgi?id=170941 |
| <rdar://problem/31633999> |
| |
| Reviewed by Alex Christensen. |
| |
| * platform/graphics/ANGLEWebKitBridge.cpp: |
| (WebCore::getSymbolInfo): |
| (WebCore::ANGLEWebKitBridge::ANGLEWebKitBridge): |
| (WebCore::ANGLEWebKitBridge::cleanupCompilers): |
| (WebCore::ANGLEWebKitBridge::compileShaderSource): |
| * platform/graphics/mac/GraphicsContext3DMac.mm: |
| (WebCore::GraphicsContext3D::GraphicsContext3D): |
| * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: |
| (WebCore::GraphicsContext3D::checkVaryingsPacking): |
| |
| 2017-04-18 John Wilander <wilander@apple.com> |
| |
| Make WebCore::topPrivatelyControlledDomain() return "localhost" for localhost |
| https://bugs.webkit.org/show_bug.cgi?id=170798 |
| <rdar://problem/31595108> |
| |
| Reviewed by Alex Christensen. |
| |
| API test augmented. |
| |
| * platform/mac/PublicSuffixMac.mm: |
| (WebCore::topPrivatelyControlledDomain): |
| Now returns the lowercase top privately controlled |
| domain including "localhost" for the host localhost. |
| |
| 2017-04-18 Brent Fulgham <bfulgham@apple.com> |
| |
| JSEventListener::m_isolatedWorld should be a Ref |
| https://bugs.webkit.org/show_bug.cgi?id=170910 |
| <rdar://problem/30470332> |
| |
| Reviewed by Alex Christensen. |
| |
| Since m_isolatedWorld should never be nullptr, change the implementation of m_isolatedWorld |
| from a RefPtr to a Ref, and adjust the various call sites to support this change. |
| |
| This should help us catch any changes that permit the isolatedWorld to be set to nullptr. |
| |
| No new tests since there should be no change in behavior. |
| |
| * bindings/js/JSEventListener.cpp: |
| (WebCore::JSEventListener::JSEventListener): |
| (WebCore::JSEventListener::initializeJSFunction): |
| (WebCore::JSEventListener::handleEvent): |
| * bindings/js/JSEventListener.h: |
| (WebCore::JSEventListener::cast): |
| (WebCore::JSEventListener::isolatedWorld): |
| (WebCore::JSEventListener::jsFunction): |
| |
| 2017-04-18 Brent Fulgham <bfulgham@apple.com> |
| |
| Correct handling of isolatedWorld in event handling |
| https://bugs.webkit.org/show_bug.cgi?id=65589 |
| <rdar://problem/24097804> |
| |
| Reviewed by Geoffrey Garen. |
| |
| This patch was inspired by Adam's original patch as well as the |
| following Blink change: |
| https://src.chromium.org/viewvc/blink?revision=152377&view=revision |
| |
| Thread isolatedWorld state through event handling logic. |
| |
| Tests: fast/dom/event-attrs-isolated-world.html |
| http/tests/security/isolatedWorld/onclick-attribute.html |
| |
| * bindings/js/JSEventListener.cpp: |
| (WebCore::JSEventListener::initializeJSFunction): |
| (WebCore::JSEventListener::world): |
| (WebCore::eventHandlerAttribute): |
| (WebCore::setEventHandlerAttribute): |
| (WebCore::windowEventHandlerAttribute): |
| (WebCore::setWindowEventHandlerAttribute): |
| (WebCore::documentEventHandlerAttribute): |
| (WebCore::setDocumentEventHandlerAttribute): |
| * bindings/js/JSEventListener.h: |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateImplementation): |
| * dom/Document.cpp: |
| (WebCore::Document::setWindowAttributeEventListener): |
| (WebCore::Document::getWindowAttributeEventListener): |
| * dom/Document.h: |
| * dom/Element.cpp: |
| (WebCore::Element::setAttributeEventListener): |
| * dom/EventTarget.cpp: |
| (WebCore::EventTarget::setAttributeEventListener): |
| (WebCore::EventTarget::attributeEventListener): |
| * dom/EventTarget.h: |
| * editing/ReplaceSelectionCommand.cpp: |
| (WebCore::ReplacementFragment::ReplacementFragment): |
| * html/HTMLBodyElement.cpp: |
| (WebCore::HTMLBodyElement::parseAttribute): |
| * html/HTMLFrameSetElement.cpp: |
| (WebCore::HTMLFrameSetElement::parseAttribute): |
| * svg/SVGSVGElement.cpp: |
| (WebCore::SVGSVGElement::parseAttribute): |
| |
| 2017-04-18 Jeremy Jones <jeremyj@apple.com> |
| |
| Deadlock in CoreAudioCaptureSource |
| https://bugs.webkit.org/show_bug.cgi?id=170771 |
| rdar://problem/31578919 |
| |
| Reviewed by Eric Carlson. |
| |
| Fixes a regression introduced by r215201. |
| |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::startProducingData): |
| (WebCore::CoreAudioCaptureSource::stopProducingData): |
| |
| 2017-04-18 Anders Carlsson <andersca@apple.com> |
| |
| Stop using deprecated APIs, part 2 |
| https://bugs.webkit.org/show_bug.cgi?id=170965 |
| rdar://problem/31589635 |
| |
| Reviewed by Tim Horton. |
| |
| * Modules/applepay/ApplePaySession.cpp: |
| (WebCore::convertAndValidate): |
| No need to convert the status anymore. |
| |
| (WebCore::ApplePaySession::completeShippingContactSelection): |
| Create an ApplePayError given the status. |
| |
| * Modules/applepay/ApplePayShippingContactUpdate.h: |
| Remove the status member variable. |
| |
| * Modules/applepay/PaymentRequest.h: |
| Remove the status member variable. |
| |
| 2017-04-18 Tim Horton <timothy_horton@apple.com> |
| |
| Safari crash when clicking phone number data detector popover button |
| https://bugs.webkit.org/show_bug.cgi?id=170936 |
| <rdar://problem/31416570> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * platform/spi/mac/DataDetectorsSPI.h: |
| Soft-link the phone number key from the correct framework. |
| |
| 2017-04-17 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Make annotated types first class allowing them to be used in sequences and unions |
| https://bugs.webkit.org/show_bug.cgi?id=170926 |
| |
| Reviewed by Chris Dumez. |
| |
| - Adds IDL types for WebIDL annotated types: |
| [Clamp] T -> IDLClampAdaptor<T> |
| [EnforceRange] T -> IDLEnforceRangeAdaptor<T> |
| [TreatNullAs=EmptyString] T -> IDLTreatNullAsEmptyAdaptor<T> |
| - Adds additional adaptors for existing specializations |
| [AtomicString] T -> IDLAtomicStringAdaptor<T> |
| [RequiresExistingAtomicString] T -> IDLRequiresExistingAtomicStringAdaptor<T> |
| - Removes the need for IntegerConversionConfiguration and StringConversionConfiguration |
| overloads of convert(). |
| - Allows the use of annotated types as subtypes, such as in sequences and unions. |
| |
| * bindings/IDLTypes.h: |
| Add new types: |
| - IDLClampAdaptor |
| - IDLEnforceRangeAdaptor |
| - IDLTreatNullAsEmptyAdaptor |
| - IDLAtomicStringAdaptor |
| - IDLRequiresExistingAtomicStringAdaptor |
| Add new predicates for matching strings and strings/enumerations. |
| |
| * bindings/js/JSDOMConvertNullable.h: |
| Remove now unnecessary overloads of convert that took IntegerConversionConfiguration |
| and StringConversionConfiguration. |
| |
| * bindings/js/JSDOMConvertNumbers.cpp: |
| * bindings/js/JSDOMConvertNumbers.h: |
| Replace individually named conversion functions with explicit template specializations |
| based on type. |
| (WebCore::Converter<IDLByte>::convert): |
| (WebCore::Converter<IDLOctet>::convert): |
| (WebCore::Converter<IDLShort>::convert): |
| (WebCore::Converter<IDLUnsignedShort>::convert): |
| (WebCore::Converter<IDLLong>::convert): |
| (WebCore::Converter<IDLUnsignedLong>::convert): |
| (WebCore::Converter<IDLLongLong>::convert): |
| (WebCore::Converter<IDLUnsignedLongLong>::convert): |
| Simplify convert functions for normal integer converters to only handle |
| the normal case. |
| |
| (WebCore::Converter<IDLClampAdaptor<T>>::convert): |
| (WebCore::JSConverter<IDLClampAdaptor<T>>::convert): |
| (WebCore::Converter<IDLEnforceRangeAdaptor<T>>::convert): |
| (WebCore::JSConverter<IDLEnforceRangeAdaptor<T>>::convert): |
| Add converters for the new annotated types that call into the new |
| template specialized conversion functions. |
| |
| * bindings/js/JSDOMConvertStrings.h: |
| (WebCore::Converter<IDLDOMString>::convert): |
| (WebCore::Converter<IDLByteString>::convert): |
| (WebCore::Converter<IDLUSVString>::convert): |
| Remove no longer needed StringConversionConfiguration parameter. |
| |
| (WebCore::Converter<IDLTreatNullAsEmptyAdaptor<T>>::convert): |
| (WebCore::JSConverter<IDLTreatNullAsEmptyAdaptor<T>>::convert): |
| (WebCore::Converter<IDLAtomicStringAdaptor<T>>::convert): |
| (WebCore::JSConverter<IDLAtomicStringAdaptor<T>>::convert): |
| (WebCore::Converter<IDLRequiresExistingAtomicStringAdaptor<T>>::convert): |
| (WebCore::JSConverter<IDLRequiresExistingAtomicStringAdaptor<T>>::convert): |
| Add converters for new annotated types. Statically assert that the atomic string |
| adaptors only work for DOMString at present. |
| |
| * bindings/js/JSDOMConvertUnion.h: |
| Update union code to fix a long standing FIXME, treating enumerations as strings |
| for the purposes of the union algorithm, and using the new predicate that works |
| with the slightly more complicated IDLString type (e.g. it can now either be a String |
| or an AtomicString). |
| |
| * bindings/js/JSCSSStyleDeclarationCustom.cpp: |
| * bindings/js/JSCryptoAlgorithmDictionary.cpp: |
| * bindings/js/JSDocumentCustom.cpp: |
| * bindings/js/JSEventListener.cpp: |
| * bindings/js/JSHTMLCanvasElementCustom.cpp: |
| * bindings/js/JSMockContentFilterSettingsCustom.cpp: |
| * bindings/js/JSNodeFilterCustom.cpp: |
| * bindings/js/JSSubtleCryptoCustom.cpp: |
| Remove explicit passing of Normal for the conversion configuration |
| and use new adaptors where appropriate. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (IsAnnotatedType): |
| (GetAnnotatedIDLType): |
| (GetIDLType): |
| (JSValueToNative): |
| (UnsafeToNative): |
| (GetIntegerConversionConfiguration): Deleted. |
| (GetStringConversionConfiguration): Deleted. |
| Replace passing conversion configuration and specializing for atomic string |
| with annotated types. |
| |
| * bindings/scripts/IDLParser.pm: |
| (parseUnionMemberType): |
| Fix parser error where we weren't parsing extended attributes for a union correctly. |
| |
| * bindings/scripts/test/JS/JSMapLike.cpp: |
| * bindings/scripts/test/JS/JSReadOnlyMapLike.cpp: |
| * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactions.cpp: |
| * bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp: |
| * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: |
| * bindings/scripts/test/JS/JSTestDOMJIT.cpp: |
| * bindings/scripts/test/JS/JSTestEventConstructor.cpp: |
| * bindings/scripts/test/JS/JSTestEventTarget.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/JSTestObj.cpp: |
| * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: |
| * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp: |
| * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp: |
| * bindings/scripts/test/JS/JSTestSerialization.cpp: |
| * bindings/scripts/test/JS/JSTestSerializationInherit.cpp: |
| * bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp: |
| * bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp: |
| * bindings/scripts/test/JS/JSTestTypedefs.cpp: |
| Update tests for changes to integer and string conversion. |
| |
| * domjit/DOMJITIDLConvert.h: |
| * domjit/DOMJITIDLType.h: |
| * domjit/DOMJITIDLTypeFilter.h: |
| Add specializations for AtomicString related adaptors. |
| |
| * testing/TypeConversions.h: |
| * testing/TypeConversions.idl: |
| - Re-arrange integer attributes to be in size order, and add [Clamp] variants. |
| - Replace function taking a dictionary + attributes to inspect it |
| with a dictionary attribute. This has been supported for a while |
| and makes the test much clearer (this includes the enum used for |
| inspecting the union in the dictionary). |
| - Add additional test unions that exercise annotated types as subtypes. |
| - Add additional dictionary items that exercise annotated types as subtypes. |
| |
| 2017-04-18 Antti Koivisto <antti@apple.com> |
| |
| Enable optimized layer flushes on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=170938 |
| <rdar://problem/31677395> |
| |
| Reviewed by Simon Fraser. |
| |
| Test: compositing/ios/overflow-scroll-touch-tiles.html |
| |
| * platform/graphics/GraphicsLayer.h: |
| (WebCore::GraphicsLayer::setApproximatePosition): |
| |
| Make virtual. |
| |
| (WebCore::GraphicsLayer::flushCompositingState): |
| * platform/graphics/ca/GraphicsLayerCA.cpp: |
| (WebCore::GraphicsLayerCA::syncPosition): |
| |
| Rename PositionChanged enum value to more descriptive NeedsComputeVisibleAndCoverageRect. |
| |
| (WebCore::GraphicsLayerCA::setApproximatePosition): |
| (WebCore::GraphicsLayerCA::syncBoundsOrigin): |
| |
| Like syncPosition make these invalidate the geometry without scheduling a flush. This is needed |
| so when flush happens we don't just optimize it away. Tile coverage depends on position and bounds. |
| |
| (WebCore::GraphicsLayerCA::flushCompositingState): |
| |
| Remove FlushScope argument. |
| Disable optimization on WK1 due to some UIKit interactions. |
| |
| * platform/graphics/ca/GraphicsLayerCA.h: |
| * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp: |
| (WebCore::GraphicsLayerTextureMapper::flushCompositingState): |
| * platform/graphics/texmap/GraphicsLayerTextureMapper.h: |
| |
| 2017-04-18 Tim Horton <timothy_horton@apple.com> |
| |
| Try to fix the iOS Debug build |
| |
| * platform/LengthBox.h: |
| |
| 2017-04-18 Andreas Kling <akling@apple.com> |
| |
| Break Document::m_associatedFormControls reference cycle. |
| <https://webkit.org/b/170946> |
| |
| Reviewed by Antti Koivisto. |
| |
| There was a race between didAssociateFormControls() and didAssociateFormControlsTimerFired() |
| where detaching Document from its frame between the two would lead to an unbreakable reference |
| cycle between Document and its form elements. |
| |
| Solve this by clearing the set of associated form elements in removedLastRef(), where we clear |
| all the other strong smart pointers to elements. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::removedLastRef): |
| |
| 2017-04-18 Manuel Rego Casasnovas <rego@igalia.com> |
| |
| [css-grid] Add support for percentage gaps |
| https://bugs.webkit.org/show_bug.cgi?id=170764 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| Part of the code to support percentage gaps was already imported |
| from Blink in r213149 (bug #168657). However parsing was not enabled yet, |
| so some pieces were missing. |
| |
| This patch accepts percentages in the parsing of grid-column-gap and |
| grid-row-gap properties, and the grid-gap shorthand. |
| On top of that it gets rid of GridTrackSizingAlgorithm::sizingOperation() |
| method as it's not needed. And instead it passes the specific operation |
| to each call to RenderGrid::guttersSize(), otherwise we would be getting |
| wrong results. |
| |
| Test: fast/css-grid-layout/grid-gutters-as-percentage.html |
| |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::CSSPropertyParser::parseSingleValue): Add support for |
| percentage values. |
| (WebCore::CSSPropertyParser::parseShorthand): Ditto. |
| * rendering/GridTrackSizingAlgorithm.cpp: |
| (WebCore::IndefiniteSizeStrategy::recomputeUsedFlexFractionIfNeeded): |
| Pass the specific sizing operation. |
| * rendering/GridTrackSizingAlgorithm.h: Remove sizingOperation(). |
| * rendering/RenderGrid.cpp: |
| (WebCore::RenderGrid::computeTrackBasedLogicalHeight): Pass the specific |
| sizing operation. |
| (WebCore::RenderGrid::computeTrackSizesForDefiniteSize): Ditto. |
| (WebCore::RenderGrid::computeTrackSizesForIndefiniteSize): Ditto. |
| (WebCore::RenderGrid::populateGridPositionsForDirection): Ditto. |
| |
| 2017-04-18 Per Arne Vollan <pvollan@apple.com> |
| |
| Add fallback fonts to video captions stylesheet. |
| https://bugs.webkit.org/show_bug.cgi?id=170495 |
| |
| Reviewed by Eric Carlson. |
| |
| The kCTFontCascadeListAttribute key is used to obtain the cascade list for a font reference. |
| |
| I have not added a test, since CaptionUserPreferences::testingMode() returns true when running tests, |
| preventing this code path from being executed. |
| |
| * page/CaptionUserPreferencesMediaAF.cpp: |
| (WebCore::CaptionUserPreferencesMediaAF::captionsDefaultFontCSS): |
| * platform/spi/win/CoreTextSPIWin.h: |
| |
| 2017-04-18 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK+] Crash in WebCore::ImageFrame::ImageFrame() |
| https://bugs.webkit.org/show_bug.cgi?id=170332 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| When decoding a PNG image, don't reset the number of frames to 1 when there's a decoding error. Doing |
| so causes a crash if the number of frames we reported before is bigger than 1. |
| |
| Test: fast/images/bad-png-missing-fdat.html |
| |
| * platform/image-decoders/png/PNGImageDecoder.cpp: |
| (WebCore::PNGImageDecoder::fallbackNotAnimated): |
| |
| 2017-04-18 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GLIB] Define priorities also for async network IO tasks |
| https://bugs.webkit.org/show_bug.cgi?id=170905 |
| |
| Reviewed by Žan Doberšek. |
| |
| * platform/network/soup/ResourceHandleSoup.cpp: |
| (WebCore::redirectSkipCallback): |
| (WebCore::sendRequestCallback): |
| (WebCore::continueAfterDidReceiveResponse): |
| (WebCore::readCallback): |
| * platform/network/soup/SocketStreamHandleImplSoup.cpp: |
| (WebCore::SocketStreamHandleImpl::connected): |
| (WebCore::SocketStreamHandleImpl::readBytes): |
| |
| 2017-04-17 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed build fix for !ENABLE(MEDIA_STREAM) configurations. |
| |
| * html/MediaElementSession.cpp: |
| (WebCore::MediaElementSession::playbackPermitted): Guard the use of |
| HTMLMediaElement::hasMediaStreamSrcObject() with ENABLE(MEDIA_STREAM). |
| |
| 2017-04-17 Alex Christensen <achristensen@webkit.org> |
| |
| Allow Variants of RetainPtrs |
| https://bugs.webkit.org/show_bug.cgi?id=170923 |
| |
| Reviewed by Tim Horton and Sam Weinig. |
| |
| No change in behavior. Just updated the one class that used RetainPtr::operator& to cleanly initialize |
| RetainPtrs instead of taking the address of a smart pointer and forcing a value inside of it. |
| |
| * platform/mac/SSLKeyGeneratorMac.mm: |
| (WebCore::signedPublicKeyAndChallengeString): |
| |
| 2017-04-17 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [WinCairo] 'WebCore::GraphicsLayerTextureMapper::flushCompositingStated': method with override specifier 'override' did not override any base class methods |
| https://bugs.webkit.org/show_bug.cgi?id=170928 |
| |
| Reviewed by Simon Fraser. |
| |
| Apply the same change of CoordinatedGraphicsLayer.{cpp,h} of r215410 to GraphicsLayerTextureMapper.{cpp,h}. |
| |
| * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp: |
| (WebCore::GraphicsLayerTextureMapper::flushCompositingState): Added the second argument. |
| * platform/graphics/texmap/GraphicsLayerTextureMapper.h: Ditto. |
| |
| 2017-04-17 Timothy Horton <timothy_horton@apple.com> |
| |
| Plumb all four obscured insets to WebCore, instead of just top/left |
| https://bugs.webkit.org/show_bug.cgi?id=170913 |
| |
| Reviewed by Wenson Hsieh. |
| |
| No new tests, no observable behavior change yet. |
| |
| In preparation for a future patch (for rdar://problem/31564652), plumb |
| all four obscured insets to WebCore/the Web Content process, instead of |
| just the top and left insets. |
| |
| * history/HistoryItem.cpp: |
| (WebCore::HistoryItem::HistoryItem): |
| * history/HistoryItem.h: |
| (WebCore::HistoryItem::obscuredInsets): |
| (WebCore::HistoryItem::setObscuredInsets): |
| (WebCore::HistoryItem::obscuredInset): Deleted. |
| (WebCore::HistoryItem::setObscuredInset): Deleted. |
| * loader/HistoryController.cpp: |
| (WebCore::HistoryController::saveScrollPositionAndViewStateToItem): |
| * page/Page.h: |
| (WebCore::Page::obscuredInsets): |
| (WebCore::Page::setObscuredInsets): |
| (WebCore::Page::obscuredInset): Deleted. |
| (WebCore::Page::setObscuredInset): Deleted. |
| Adopt FloatBoxExtent for obscuredInsets (and adjust pluralization). |
| |
| 2017-04-17 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Doesn't show size of compressed content correctly |
| https://bugs.webkit.org/show_bug.cgi?id=155112 |
| <rdar://problem/25006728> |
| |
| Reviewed by Alex Christensen and Timothy Hatcher. |
| |
| Tests: http/tests/inspector/network/resource-sizes-disk-cache.html |
| http/tests/inspector/network/resource-sizes-memory-cache.html |
| http/tests/inspector/network/resource-sizes-network.html |
| |
| * inspector/InspectorNetworkAgent.cpp: |
| (WebCore::InspectorNetworkAgent::buildObjectForMetrics): |
| * platform/network/NetworkLoadMetrics.h: |
| (WebCore::NetworkLoadMetrics::isolatedCopy): |
| (WebCore::NetworkLoadMetrics::reset): |
| (WebCore::NetworkLoadMetrics::clearNonTimingData): |
| (WebCore::NetworkLoadMetrics::operator==): |
| (WebCore::NetworkLoadMetrics::encode): |
| (WebCore::NetworkLoadMetrics::decode): |
| * platform/spi/cf/CFNetworkSPI.h: |
| |
| 2017-04-17 Youenn Fablet <youenn@apple.com> |
| |
| Enable video autoplay when getUserMedia is on |
| https://bugs.webkit.org/show_bug.cgi?id=170919 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Test: webrtc/video-autoplay.html |
| |
| * dom/Document.h: |
| (WebCore::Document::isCapturing): |
| * html/HTMLMediaElement.h: |
| (WebCore::HTMLMediaElement::hasMediaStreamSrcObject): |
| * html/MediaElementSession.cpp: |
| (WebCore::MediaElementSession::playbackPermitted): Allowing playback if getUserMedia is capturing audio or video |
| on the document and if element is rendering MediaStream based content. |
| * page/MediaProducer.h: |
| (WebCore::MediaProducer::isCapturing): |
| |
| 2017-04-17 Alex Christensen <achristensen@webkit.org> |
| |
| Fix CMake build. |
| |
| * PlatformMac.cmake: |
| |
| 2017-04-17 Anders Carlsson <andersca@apple.com> |
| |
| Stop using deprecated APIs, part 1 |
| https://bugs.webkit.org/show_bug.cgi?id=170915 |
| rdar://problem/31589635 |
| |
| Reviewed by Tim Horton. |
| |
| Get rid of the status parameter from ApplePayPaymentMethodUpdate. |
| |
| * Modules/applepay/ApplePayPaymentMethodUpdate.h: |
| * Modules/applepay/ApplePayPaymentMethodUpdate.idl: |
| * Modules/applepay/ApplePaySession.cpp: |
| (WebCore::convertAndValidate): |
| (WebCore::ApplePaySession::completePaymentMethodSelection): |
| * Modules/applepay/PaymentRequest.h: |
| |
| 2017-04-17 Youenn Fablet <youenn@apple.com> |
| |
| Disable outdated WritableStream API |
| https://bugs.webkit.org/show_bug.cgi?id=170749 |
| <rdar://problem/31446233> |
| |
| Reviewed by Alex Christensen. |
| |
| No change of behavior. |
| Replacing READABLE_STREAM_API, READABLE_BYTE_STREAM_API and WRITABLE_STREAM_API compilation flag by: |
| - A STREAMS_API compilation flag. |
| - A ReadableByteStreamAPI and WritableStreamAPI runtime flags, turned off except for RWT and DRT. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Modules/fetch/FetchBody.cpp: |
| * Modules/fetch/FetchBody.h: |
| * Modules/fetch/FetchBodyOwner.cpp: |
| (WebCore::FetchBodyOwner::isDisturbedOrLocked): |
| (WebCore::FetchBodyOwner::blobLoadingSucceeded): |
| (WebCore::FetchBodyOwner::blobLoadingFailed): |
| (WebCore::FetchBodyOwner::blobChunk): |
| * Modules/fetch/FetchBodyOwner.h: |
| * Modules/fetch/FetchResponse.cpp: |
| (WebCore::FetchResponse::BodyLoader::didSucceed): |
| (WebCore::FetchResponse::BodyLoader::didFail): |
| (WebCore::FetchResponse::BodyLoader::didReceiveData): |
| * Modules/fetch/FetchResponse.h: |
| * Modules/fetch/FetchResponse.idl: |
| * Modules/fetch/FetchResponseSource.cpp: |
| * Modules/fetch/FetchResponseSource.h: |
| * Modules/streams/ByteLengthQueuingStrategy.idl: |
| * Modules/streams/ByteLengthQueuingStrategy.js: |
| * Modules/streams/CountQueuingStrategy.idl: |
| * Modules/streams/CountQueuingStrategy.js: |
| * Modules/streams/ReadableByteStreamController.idl: |
| * Modules/streams/ReadableByteStreamController.js: |
| * Modules/streams/ReadableByteStreamInternals.js: |
| * Modules/streams/ReadableStream.idl: |
| * Modules/streams/ReadableStream.js: |
| (initializeReadableStream): Using readableByteStreamAPI runtime flag directly. |
| * Modules/streams/ReadableStreamBYOBRequest.idl: |
| * Modules/streams/ReadableStreamBYOBRequest.js: |
| * Modules/streams/ReadableStreamDefaultController.idl: |
| * Modules/streams/ReadableStreamDefaultController.js: |
| * Modules/streams/ReadableStreamDefaultReader.idl: |
| * Modules/streams/ReadableStreamDefaultReader.js: |
| * Modules/streams/ReadableStreamInternals.js: |
| * Modules/streams/ReadableStreamSource.h: |
| * Modules/streams/ReadableStreamSource.idl: |
| * Modules/streams/StreamInternals.js: |
| * Modules/streams/WritableStream.idl: |
| * Modules/streams/WritableStream.js: |
| * Modules/streams/WritableStreamInternals.js: |
| * bindings/js/JSDOMGlobalObject.cpp: |
| (WebCore::isReadableByteStreamAPIEnabled): |
| (WebCore::JSDOMGlobalObject::addBuiltinGlobals): |
| * bindings/js/JSReadableStreamPrivateConstructors.cpp: |
| (WebCore::constructJSReadableStreamBYOBRequest): |
| (WebCore::JSBuiltinReadableStreamBYOBRequestPrivateConstructor::initializeExecutable): |
| (WebCore::createReadableStreamBYOBRequestPrivateConstructor): |
| * bindings/js/JSReadableStreamPrivateConstructors.h: |
| * bindings/js/JSReadableStreamSourceCustom.cpp: |
| * bindings/js/ReadableStreamDefaultController.cpp: |
| * bindings/js/ReadableStreamDefaultController.h: |
| * bindings/js/WebCoreBuiltinNames.h: |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::setReadableByteStreamAPIEnabled): |
| (WebCore::RuntimeEnabledFeatures::readableByteStreamAPIEnabled): |
| (WebCore::RuntimeEnabledFeatures::setWritableStreamAPIEnabled): |
| (WebCore::RuntimeEnabledFeatures::writableStreamAPIEnabled): |
| * testing/Internals.cpp: |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-04-17 Tim Horton <timothy_horton@apple.com> |
| |
| Provide a viewport parameter to disable clipping to the safe area |
| https://bugs.webkit.org/show_bug.cgi?id=170766 |
| <rdar://problem/31564634> |
| |
| Reviewed by Beth Dakin. |
| |
| Tests: tiled-drawing/ios/viewport-clip-to-safe-area-no-gets-margin-tiles.html, |
| tiled-drawing/ios/viewport-clip-to-safe-area-yes-gets-no-margin-tiles.html, |
| |
| * dom/ViewportArguments.cpp: |
| (WebCore::ViewportArguments::resolve): |
| (WebCore::setViewportFeature): |
| * dom/ViewportArguments.h: |
| (WebCore::ViewportArguments::operator==): |
| * page/ViewportConfiguration.cpp: |
| (WebCore::ViewportConfiguration::updateConfiguration): |
| (WebCore::operator<<): |
| (WebCore::ViewportConfiguration::description): |
| * page/ViewportConfiguration.h: |
| (WebCore::ViewportConfiguration::Parameters::Parameters): |
| (WebCore::ViewportConfiguration::clipToSafeArea): |
| Add viewport parameter. |
| |
| * page/ChromeClient.h: |
| * page/FrameView.h: |
| * page/FrameView.cpp: |
| (WebCore::FrameView::enableSpeculativeTilingIfNeeded): |
| If not clipping to the safe area, enable "speculative" tiling immediately, |
| because the margin tiles can be visible immediately. |
| |
| (WebCore::FrameView::hasExtendedBackgroundRectForPainting): |
| (WebCore::FrameView::updateTilesForExtendedBackgroundMode): |
| Don't check the setting here; just respect the mode that is computed |
| by calculateExtendedBackgroundMode. |
| |
| (WebCore::FrameView::calculateExtendedBackgroundMode): |
| If the viewport parameter was set, add margin tiles on both axes. |
| |
| (WebCore::FrameView::setClipToSafeArea): |
| Notify ChromeClient of the change, and re-compute the margin tile mode. |
| |
| * rendering/RenderLayerCompositor.h: |
| * rendering/RenderLayerCompositor.cpp: |
| Factor out code that decides whether the content layer clips to bounds, |
| and make it take the new viewport parameter into account. |
| |
| * rendering/RenderObject.cpp: |
| Don't clip RenderView repaints to RenderView's GraphicsLayer bounds if |
| clip-to-safe-area is off, just like we do for slow-repaint objects in |
| extended background mode. |
| |
| 2017-04-17 Dan Bernstein <mitz@apple.com> |
| |
| [Cocoa] Move isNullFunctionPointer down into WTF |
| https://bugs.webkit.org/show_bug.cgi?id=170892 |
| |
| Reviewed by Sam Weinig. |
| |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: |
| (WebCore::LibWebRTCProvider::webRTCAvailable): Changed to use WTF::isNullFunctionPointer, |
| and removed the static variable, so instead of loading from the initialization guard, |
| branching, then loading from the variable itself, we just load from the function pointer. |
| (WebCore::isNullFunctionPointer): Deleted. |
| |
| 2017-04-14 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebCrypto] Add support for ECDSA |
| https://bugs.webkit.org/show_bug.cgi?id=170789 |
| <rdar://problem/31588604> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch implements ECDSA according to the spec: https://www.w3.org/TR/WebCryptoAPI/#ecdsa. |
| Supported operations include sign, verify, generateKey, importKey and exportKey. |
| |
| Tests: crypto/subtle/ecdh-generate-export-key-pkcs8-p256.html |
| crypto/subtle/ecdh-generate-export-key-pkcs8-p384.html |
| crypto/subtle/ecdsa-generate-export-jwk-key.html |
| crypto/subtle/ecdsa-generate-export-key-pkcs8.html |
| crypto/subtle/ecdsa-generate-export-key-raw.html |
| crypto/subtle/ecdsa-generate-export-key-spki.html |
| crypto/subtle/ecdsa-generate-key-sign-verify-p256.html |
| crypto/subtle/ecdsa-generate-key-sign-verify-p384.html |
| crypto/subtle/ecdsa-generate-key.html |
| crypto/subtle/ecdsa-import-jwk-private-key.html |
| crypto/subtle/ecdsa-import-jwk-public-key-alg-256.html |
| crypto/subtle/ecdsa-import-jwk-public-key-alg-384.html |
| crypto/subtle/ecdsa-import-jwk-public-key.html |
| crypto/subtle/ecdsa-import-key-sign-p256.html |
| crypto/subtle/ecdsa-import-key-sign-p384.html |
| crypto/subtle/ecdsa-import-key-verify-p256.html |
| crypto/subtle/ecdsa-import-key-verify-p384.html |
| crypto/subtle/ecdsa-import-pkcs8-key.html |
| crypto/subtle/ecdsa-import-raw-key.html |
| crypto/subtle/ecdsa-import-spki-key.html |
| crypto/subtle/ecdsa-verify-malformed-parameters.html |
| crypto/workers/subtle/ecdsa-import-key-sign.html |
| crypto/workers/subtle/ecdsa-import-key-verify.html |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * PlatformGTK.cmake: |
| * PlatformMac.cmake: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSSubtleCryptoCustom.cpp: |
| (WebCore::normalizeCryptoAlgorithmParameters): |
| (WebCore::jsSubtleCryptoFunctionSignPromise): |
| (WebCore::jsSubtleCryptoFunctionVerifyPromise): |
| Add missing parameters. |
| * crypto/CommonCryptoUtilities.h: |
| * crypto/CryptoAlgorithm.cpp: |
| (WebCore::CryptoAlgorithm::sign): |
| (WebCore::CryptoAlgorithm::verify): |
| * crypto/CryptoAlgorithm.h: |
| Add missing parameters. |
| * crypto/CryptoAlgorithmParameters.h: |
| * crypto/algorithms/CryptoAlgorithmECDSA.cpp: Added. |
| (WebCore::CryptoAlgorithmECDSA::create): |
| (WebCore::CryptoAlgorithmECDSA::identifier): |
| (WebCore::CryptoAlgorithmECDSA::sign): |
| (WebCore::CryptoAlgorithmECDSA::verify): |
| (WebCore::CryptoAlgorithmECDSA::generateKey): |
| (WebCore::CryptoAlgorithmECDSA::importKey): |
| (WebCore::CryptoAlgorithmECDSA::exportKey): |
| * crypto/algorithms/CryptoAlgorithmECDSA.h: Added. |
| * crypto/algorithms/CryptoAlgorithmHMAC.cpp: |
| (WebCore::CryptoAlgorithmHMAC::sign): |
| (WebCore::CryptoAlgorithmHMAC::verify): |
| * crypto/algorithms/CryptoAlgorithmHMAC.h: |
| Add missing parameters. |
| * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp: |
| (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign): |
| (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify): |
| * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h: |
| Add missing parameters. |
| * crypto/gcrypt/CryptoAlgorithmECDSAGCrypt.cpp: Added. |
| (WebCore::CryptoAlgorithmECDSA::platformSign): |
| (WebCore::CryptoAlgorithmECDSA::platformVerify): |
| * crypto/mac/CommonCryptoDERUtilities.cpp: Added. |
| (WebCore::bytesUsedToEncodedLength): |
| (WebCore::extraBytesNeededForEncodedLength): |
| (WebCore::addEncodedASN1Length): |
| (WebCore::bytesNeededForEncodedLength): |
| * crypto/mac/CommonCryptoDERUtilities.h: |
| (WebCore::bytesUsedToEncodedLength): Deleted. |
| (WebCore::extraBytesNeededForEncodedLength): Deleted. |
| (WebCore::addEncodedASN1Length): Deleted. |
| (WebCore::bytesNeededForEncodedLength): Deleted. |
| Move implementations to a .cpp file. |
| * crypto/mac/CryptoAlgorithmECDSAMac.cpp: Added. |
| (WebCore::cryptoDigestAlgorithm): |
| (WebCore::signECDSA): |
| (WebCore::verifyECDSA): |
| (WebCore::CryptoAlgorithmECDSA::platformSign): |
| (WebCore::CryptoAlgorithmECDSA::platformVerify): |
| * crypto/mac/CryptoAlgorithmRegistryMac.cpp: |
| (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): |
| * crypto/parameters/CryptoAlgorithmEcdsaParams.h: Added. |
| * crypto/parameters/EcdsaParams.idl: Added. |
| |
| 2017-04-17 Jeremy Jones <jeremyj@apple.com> |
| |
| Refactor enumerateDevices to allow separate CaptureDeviceManagers for audio and video. |
| https://bugs.webkit.org/show_bug.cgi?id=170778 |
| |
| Reviewed by Eric Carlson. |
| |
| Add CoreAudioCaptureDeviceManager to enumerate CoreAudio devices. |
| |
| Refactor RealtimeMediaSourceCenter and RealtimeMediaSourceCenterMac to provide independent audio and video capture device managers |
| and the abiliity to override the capture device managers. |
| |
| CoreAudioCaptureSource now uses CoreAudioCaptureDeviceManager to use the specified device instead of the default one. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/mediastream/CaptureDeviceManager.cpp: |
| (CaptureDeviceManager::getAudioSourcesInfo): |
| (CaptureDeviceManager::getVideoSourcesInfo): |
| (CaptureDeviceManager::getSourcesInfo): Deleted. |
| * platform/mediastream/CaptureDeviceManager.h: |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::RealtimeMediaSourceCenter::setAudioCaptureDeviceManager): |
| (WebCore::RealtimeMediaSourceCenter::unsetAudioCaptureDeviceManager): |
| (WebCore::RealtimeMediaSourceCenter::setVideoCaptureDeviceManager): |
| (WebCore::RealtimeMediaSourceCenter::unsetVideoCaptureDeviceManager): |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| (WebCore::RealtimeMediaSourceCenter::defaultAudioCaptureDeviceManager): |
| (WebCore::RealtimeMediaSourceCenter::defaultVideoCaptureDeviceManager): |
| (WebCore::RealtimeMediaSourceCenter::audioCaptureDeviceManager): |
| (WebCore::RealtimeMediaSourceCenter::videoCaptureDeviceManager): |
| * platform/mediastream/mac/AVCaptureDeviceManager.h: |
| * platform/mediastream/mac/AVCaptureDeviceManager.mm: |
| (WebCore::AVCaptureDeviceManager::refreshAVCaptureDevicesOfType): |
| (WebCore::AVCaptureDeviceManager::refreshCaptureDevices): |
| (WebCore::AVCaptureDeviceManager::getAudioSourcesInfo): |
| (WebCore::AVCaptureDeviceManager::getVideoSourcesInfo): |
| (WebCore::AVCaptureDeviceManager::setUseAVFoundationAudioCapture): Deleted. |
| (WebCore::AVCaptureDeviceManager::getSourcesInfo): Deleted. |
| * platform/mediastream/mac/CoreAudioCaptureDevice.cpp: Added. |
| (WebCore::getDeviceInfo): |
| (WebCore::CoreAudioCaptureDevice::create): |
| (WebCore::CoreAudioCaptureDevice::CoreAudioCaptureDevice): |
| (WebCore::CoreAudioCaptureDevice::deviceID): |
| (WebCore::CoreAudioCaptureDevice::deviceClock): |
| (WebCore::CoreAudioCaptureDevice::isAlive): |
| * platform/mediastream/mac/CoreAudioCaptureDevice.h: Copied from Source/WebCore/platform/mediastream/CaptureDeviceManager.h. |
| * platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp: Added. |
| (WebCore::CoreAudioCaptureDeviceManager::singleton): |
| (WebCore::CoreAudioCaptureDeviceManager::captureDevices): |
| (WebCore::deviceHasInputStreams): |
| (WebCore::CoreAudioCaptureDeviceManager::coreAudioCaptureDevices): |
| (WebCore::CoreAudioCaptureDeviceManager::refreshAudioCaptureDevices): |
| (WebCore::CoreAudioCaptureDeviceManager::devicesChanged): |
| * platform/mediastream/mac/CoreAudioCaptureDeviceManager.h: Copied from Source/WebCore/platform/mediastream/CaptureDeviceManager.h. |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource): |
| (WebCore::CoreAudioCaptureSource::startProducingData): |
| (WebCore::CoreAudioCaptureSource::stopProducingData): |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| (WebCore::RealtimeMediaSourceCenterMac::setUseAVFoundationAudioCapture): |
| (WebCore::RealtimeMediaSourceCenterMac::RealtimeMediaSourceCenterMac): |
| (WebCore::RealtimeMediaSourceCenterMac::createMediaStream): |
| (WebCore::RealtimeMediaSourceCenterMac::getMediaStreamDevices): |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.h: |
| |
| 2017-04-17 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r215366. |
| |
| This test is failing on performance bots. |
| |
| Reverted changeset: |
| |
| "Add performance test for asking the platform for a font for |
| U+2060 WORD JOINER" |
| https://bugs.webkit.org/show_bug.cgi?id=170842 |
| http://trac.webkit.org/changeset/215366 |
| |
| 2017-04-17 Youenn Fablet <youenn@apple.com> |
| |
| RTCPeerConnection addTrack does not require a stream parameter |
| https://bugs.webkit.org/show_bug.cgi?id=170894 |
| |
| Reviewed by Alex Christensen. |
| |
| Test: webrtc/video-addTrack.html |
| |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::addTrack): Removing obsolete error throwing. |
| |
| 2017-04-17 Youenn Fablet <youenn@apple.com> |
| |
| Add an external libwebrtc encoder factory in WebCore |
| https://bugs.webkit.org/show_bug.cgi?id=170883 |
| |
| Reviewed by Alex Christensen. |
| |
| No change of behavior, WebCore factory instantiating the default libwebrtc H264 encoder. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: |
| (WebCore::staticFactoryAndThreads): |
| * platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.cpp: Added. |
| (WebCore::VideoToolboxVideoEncoderFactory::CreateVideoEncoder): |
| (WebCore::VideoToolboxVideoEncoderFactory::DestroyVideoEncoder): |
| * platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.h: Added. |
| |
| 2017-04-17 Antti Koivisto <antti@apple.com> |
| |
| GraphicsLayerCA::recursiveCommitChanges should not descend into subtrees without changes |
| https://bugs.webkit.org/show_bug.cgi?id=170851 |
| |
| Reviewed by Simon Fraser. |
| |
| With lots of layers this can be very slow as it always traverses the entire layer tree. |
| For example GIF animations on tumblr.com trigger expensive commits where almost nothing changes. |
| |
| This patch adds m_hasDescendantsWithUncommittedChanges bit to GraphicsLayerCA. With this |
| we can avoid descending to branches without changes when committing. |
| |
| This patch enabled the optimization on Mac. |
| |
| * platform/graphics/ca/GraphicsLayerCA.cpp: |
| (WebCore::GraphicsLayerCA::GraphicsLayerCA::syncPosition): |
| |
| Set PositionChanged flag when syncing layer position. This flag does nothing except makes |
| next commit to update the coverage rect (so tiling gets updated). |
| |
| (WebCore::GraphicsLayerCA::setVisibleAndCoverageRects): |
| |
| Do all setting of m_uncommittedChanges bits via addUncommittedChanges function. |
| |
| (WebCore::GraphicsLayerCA::recursiveCommitChanges): |
| |
| Bail out if neither the current layer nor any of its descendants have any uncommited changes |
| and none of the ancestors had changes. |
| |
| (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): |
| (WebCore::GraphicsLayerCA::ensureStructuralLayer): |
| (WebCore::GraphicsLayerCA::changeLayerTypeTo): |
| (WebCore::GraphicsLayerCA::addUncommittedChanges): |
| |
| Set m_hasDescendantsWithUncommittedChanges bit in ancestors when mutating m_uncommittedChanges. |
| |
| (WebCore::GraphicsLayerCA::noteLayerPropertyChanged): |
| * platform/graphics/ca/GraphicsLayerCA.h: |
| (WebCore::RenderLayerCompositor::frameViewDidScroll): |
| |
| Tell the scrolling layer that it needs to recompute coverage. |
| This also schedules a layer flush so no need to do that separately. |
| |
| 2017-04-16 Chris Dumez <cdumez@apple.com> |
| |
| CMD+R / CMD+Q is considered as user interaction and beforeunload alert is shown |
| https://bugs.webkit.org/show_bug.cgi?id=169995 |
| <rdar://problem/23798897> |
| |
| Reviewed by Sam Weinig. |
| |
| Any key event was considered as user interaction with the page, which meant that they |
| would allow beforeunload alerts to be shown even when they do not represent actual |
| user interaction (e.g CMD+R / CMD+Q / CMD+T keyboard shortcuts). |
| |
| To address the issue, we now only treat as user interaction with the page key events |
| that are actually handled by the page (i.e. handled by JS, typed into a field, ...). |
| |
| Tests: fast/events/beforeunload-alert-handled-keydown.html |
| fast/events/beforeunload-alert-unhandled-keydown.html |
| |
| * dom/Document.h: |
| (WebCore::Document::setUserDidInteractWithPage): |
| (WebCore::Document::userDidInteractWithPage): |
| * dom/UserGestureIndicator.cpp: |
| (WebCore::UserGestureIndicator::UserGestureIndicator): |
| * loader/FrameLoader.cpp: |
| (WebCore::shouldAskForNavigationConfirmation): |
| * page/EventHandler.cpp: |
| (WebCore::EventHandler::keyEvent): |
| (WebCore::EventHandler::internalKeyEvent): |
| * page/EventHandler.h: |
| |
| 2017-04-16 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Switch IDLAttributes.txt over to a more structured format so that more information can be added for each attribute |
| https://bugs.webkit.org/show_bug.cgi?id=170843 |
| |
| Reviewed by Chris Dumez. |
| |
| - Converts IDLAttributes.txt to IDLAttributes.json, and adds additional |
| information for each attribute about what contexts they are valid in |
| which is checked by the parser. |
| - Removes CustomSetPrototype which was unused, and Immutable which did |
| nothing. |
| |
| * DerivedSources.make: |
| Update extension of IDLAttributes to .json |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| Update project file for new file name and add some missing IDL files. |
| |
| * bindings/scripts/CodeGenerator.pm: |
| Store the processed IDLAttributes in the code generator, so it can |
| be used for any additional Parser instantiations. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateHeader): |
| Remove support for CustomSetPrototype. Nobody is using it. |
| |
| * bindings/scripts/IDLAttributes.json: Copied from Source/WebCore/bindings/scripts/IDLAttributes.txt. |
| * bindings/scripts/IDLAttributes.txt: Removed. |
| Rename IDLAttributes.txt -> IDLAttributes.json and move the data |
| into a more structured format. For now each extended attribute can |
| have the following fields: |
| Required: |
| 'contextsAllowed' -> Non-empty array of strings from the contexts array. |
| |
| Optional: |
| 'values' -> Non-empty array of strings allowed after the equal (=) sign in |
| the extended attribute. Like before, an empty string indicates it is |
| ok to not have a value and a star (*) indicates any string is allowed. |
| Not providing a values property at all indicates that no value is |
| allowed. |
| |
| 'standard' -> An object with information about the standard this attribute |
| comes from. Should only be added to attributes that come from standards. |
| |
| 'unsupported' -> A boolean with value true, indicating this property is not |
| yet supported. Should only be used for standard attributes. |
| |
| 'notes' -> A string with notes explaining something about this attribute. |
| |
| * bindings/scripts/IDLParser.pm: |
| Pass and store the processed extended attribute map to the parser, and use it |
| validate that extended attributes being added to things are appropriate for the |
| context. Fix FIXME in isExtendedAttributeApplicableToTypes by using the map to |
| implement the predicate, rather than hard coding the list. |
| |
| * bindings/scripts/generate-bindings.pl: |
| (generateEmptyHeaderAndCpp): |
| (loadIDLAttributes): Deleted. |
| (checkIDLAttributes): Deleted. |
| (checkIfIDLAttributesExists): Deleted. |
| Make specifying an IDL attributes file required. Switch to processing it |
| as a JSON file, and having the parser validate attributes. |
| |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| * bindings/scripts/test/JS/JSTestTypedefs.cpp: |
| * bindings/scripts/test/TestImplements.idl: |
| * bindings/scripts/test/TestObj.idl: |
| * bindings/scripts/test/TestSupplemental.idl: |
| * bindings/scripts/test/TestTypedefs.idl: |
| - Remove use of Immutable extended attribute in the tests, as it does nothing. |
| - Remove use of the made up ReadOnly attribute, as the tests now use the IDLAttributes |
| file to validate that the attributes are supported, so this would otherwise fail. |
| |
| * css/WebKitCSSMatrix.idl: |
| * svg/SVGZoomEvent.idl: |
| - Remove use of the Immutable extended attribute, as it does nothing. |
| |
| * page/NavigatorID.idl: |
| * page/NavigatorLanguage.idl: |
| - Remove use of the Nondeterministic extended attribute, as it does nothing. |
| |
| * Modules/mediasource/SourceBufferList.idl: |
| Remove use of CallWith on the interface. It is illegal, and does nothing. |
| |
| * animation/KeyframeEffect.idl: |
| * animation/WebAnimation.idl: |
| Remove use of [Default=Undefined]. This construct does nothing and now |
| correctly fails to parse. |
| |
| 2017-04-15 Alex Christensen <achristensen@webkit.org> |
| |
| Fix Windows build after r215396. |
| https://bugs.webkit.org/show_bug.cgi?id=170828 |
| |
| * platform/graphics/win/FontPlatformDataWin.cpp: |
| (WebCore::FontPlatformData::openTypeTable): |
| |
| 2017-04-15 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused SharedBuffer constructor |
| https://bugs.webkit.org/show_bug.cgi?id=170828 |
| |
| Reviewed by Brady Eidson. |
| |
| * platform/SharedBuffer.cpp: |
| (WebCore::SharedBuffer::append): |
| * platform/SharedBuffer.h: |
| (WebCore::SharedBuffer::create): |
| * platform/graphics/freetype/FontPlatformDataFreeType.cpp: |
| (WebCore::FontPlatformData::openTypeTable): |
| * platform/graphics/win/FontPlatformDataWin.cpp: |
| (WebCore::FontPlatformData::openTypeTable): |
| |
| 2017-04-15 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r215393. |
| https://bugs.webkit.org/show_bug.cgi?id=170876 |
| |
| breaks scrollable iframes on ios (Requested by anttik on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "GraphicsLayerCA::recursiveCommitChanges should not descend |
| into subtrees without changes" |
| https://bugs.webkit.org/show_bug.cgi?id=170851 |
| http://trac.webkit.org/changeset/215393 |
| |
| 2017-04-14 Antti Koivisto <antti@apple.com> |
| |
| GraphicsLayerCA::recursiveCommitChanges should not descend into subtrees without changes |
| https://bugs.webkit.org/show_bug.cgi?id=170851 |
| |
| Reviewed by Simon Fraser. |
| |
| With lots of layers this can be very slow as it always traverses the entire layer tree. |
| For example GIF animations on tumblr.com trigger expensive commits where almost nothing changes. |
| |
| This patch adds m_hasDescendantsWithUncommittedChanges bit to GraphicsLayerCA. With this |
| we can avoid descending to branches without changes when committing. |
| |
| * platform/graphics/ca/GraphicsLayerCA.cpp: |
| (WebCore::GraphicsLayerCA::setVisibleAndCoverageRects): |
| |
| Do all setting of m_uncommittedChanges bits via addUncommittedChanges function. |
| |
| (WebCore::GraphicsLayerCA::recursiveCommitChanges): |
| |
| Bail out if neither the current layer nor any of its descendants have any uncommited changes |
| and none of the ancestors had changes. |
| |
| (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): |
| (WebCore::GraphicsLayerCA::ensureStructuralLayer): |
| (WebCore::GraphicsLayerCA::changeLayerTypeTo): |
| (WebCore::GraphicsLayerCA::addUncommittedChanges): |
| |
| Set m_hasDescendantsWithUncommittedChanges bit in ancestors when mutating m_uncommittedChanges. |
| |
| (WebCore::GraphicsLayerCA::noteLayerPropertyChanged): |
| * platform/graphics/ca/GraphicsLayerCA.h: |
| (WebCore::RenderLayerCompositor::frameViewDidScroll): |
| |
| Tell the scrolling layer that it needs to recompute coverage. |
| This also schedules a layer flush so no need to do that separately. |
| |
| 2017-04-15 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [WK2] Support data interaction of files into file inputs |
| https://bugs.webkit.org/show_bug.cgi?id=170803 |
| <rdar://problem/31286130> |
| |
| Reviewed by Tim Horton. |
| |
| Adds remaining support to allow data interaction of files onto inputs of type file. See per-change annotations |
| for more details. Unit tests to be added in the next patch. |
| |
| * platform/PasteboardStrategy.h: |
| * platform/PlatformPasteboard.h: |
| * platform/ios/AbstractPasteboard.h: |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::PlatformPasteboard::numberOfFiles): |
| * platform/ios/WebItemProviderPasteboard.mm: |
| |
| Implements numberOfFiles by counting the number of item providers that may be represented as a file, which |
| includes all item providers that contain at least one content UTI type. |
| |
| (-[WebItemProviderPasteboard numberOfFiles]): |
| |
| Adds boilerplate plumbing to fetch the number of files available on the pasteboard. On Mac, logic that |
| previously existed in DragData::numberOfFiles to query the number of files available in the pasteboard is now |
| on PlatformPasteboard instead, which both makes the implementation of DragData::numberOfFiles platform-invariant, |
| and also saves us one synchronous IPC call to the UI process in the WebKit2 implementation. |
| |
| * platform/mac/DragDataMac.mm: |
| (WebCore::DragData::containsFiles): |
| (WebCore::DragData::numberOfFiles): |
| (WebCore::DragData::asFilenames): |
| |
| Add support for recognizing objects in the pasteboard that may be represented by files, and therefore may be |
| uploaded via file input. Following suit with behavior elsewhere on the platform, we consider item providers able |
| to be represented by a file if they contain at least one content UTI type. |
| |
| * platform/mac/PlatformPasteboardMac.mm: |
| |
| Logic previously in DragData::numberOfFiles to get and then count all file path names in the pasteboard has been |
| moved here instead, and no longer needs to go through the pasteboard proxy. |
| |
| (WebCore::PlatformPasteboard::numberOfFiles): |
| |
| 2017-04-15 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Unreviewed, fix the build after r215389 |
| |
| Use WebCore::createTemporaryDirectory instead of -_webkit_createTemporaryDirectoryWithTemplatePrefix:. |
| |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (temporaryFileURLForDataInteractionContent): |
| |
| 2017-04-14 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Implement a way in WebItemProviderPasteboard to perform actions after file loading completes |
| https://bugs.webkit.org/show_bug.cgi?id=170839 |
| <rdar://problem/31286130> |
| |
| Reviewed by Tim Horton, Andy Estes, and Dan Bernstein. |
| |
| Introduces -[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:], which performs an action |
| after all item providers which are able to provide content are done loading their content into temporary file |
| URLs. If no item providers have available data, we will immediately invoke the action with an empty URL array. |
| |
| For each item provider with data, we save the local URL returned in the load completion block to a randomly |
| generated path in the container's temporary directory. When all files are finished loading, we then invoke the |
| action with all file URLs that successfully loaded. |
| |
| No new tests, since there is no change in behavior. |
| |
| * platform/ios/WebItemProviderPasteboard.h: |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (temporaryFileURLForDataInteractionContent): |
| (-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:]): |
| |
| 2017-04-14 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: WebSockets: messages with non-latin letters are displayed incorrectly |
| https://bugs.webkit.org/show_bug.cgi?id=170760 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Add payloadLength property, which is used to display size. When payloadLength is unavailable, |
| it is calculated from payloadData by Web Inspector frontend. |
| |
| This fixes <webkit.org/b/170609> Web Inspector: WebSockets: Transferred size is incorrect. |
| |
| Tests: http/tests/websocket/tests/hybi/inspector/binary.html |
| http/tests/websocket/tests/hybi/inspector/send-and-receive.html |
| |
| * inspector/InspectorNetworkAgent.cpp: |
| (WebCore::InspectorNetworkAgent::didReceiveWebSocketFrame): |
| (WebCore::InspectorNetworkAgent::didSendWebSocketFrame): |
| |
| 2017-04-14 Mark Lam <mark.lam@apple.com> |
| |
| Update architectures in xcconfig files. |
| https://bugs.webkit.org/show_bug.cgi?id=170867 |
| <rdar://problem/31628104> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| No new tests needed. Only updating xcconfig files. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2017-04-14 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [WK2] Support Icon creation from file URLs on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=170809 |
| <rdar://problem/31286130> |
| |
| Reviewed by Tim Horton. |
| |
| Minor tweaks and refactoring to support displaying a WebCore::Icon from a list of filepaths on iOS. Please see |
| below annotations for more details. No new tests yet, as behavior on Mac should not have changed, and behavior |
| on iOS will not change until later patches land. Tests will be added in a later patch. |
| |
| Most of the changes here remove platform special-casing in FileInputType for iOS and Mac, refactoring the code |
| such that it works for both platforms while preserving behavior. |
| |
| * html/FileInputType.cpp: |
| (WebCore::FileInputType::~FileInputType): |
| (WebCore::FileInputType::setFiles): |
| (WebCore::FileInputType::filesChosen): |
| * html/FileInputType.h: |
| |
| Un-guard m_fileIconLoader on iOS, and un-guard m_displayString for Mac. Consolidate logic in both version of |
| filesChosen and remove the iOS-specific version. Behavior when passing in an empty display string and null Icon |
| will be the same as that of the existing filesChosen method on Mac. Also, introduce a version of setFiles that |
| takes an additional RequestIcon enum that indicates whether or not to additionally use the new filepaths to |
| request an Icon update. filesChosen invokes this with RequestIcon::No if a non-null Icon was specified, as is |
| the case when uploading a file via the image picker on iOS. |
| |
| * html/HTMLInputElement.cpp: |
| (WebCore::HTMLInputElement::displayString): |
| * html/HTMLInputElement.h: |
| * html/InputType.cpp: |
| * html/InputType.h: |
| * loader/EmptyClients.h: |
| * page/ChromeClient.h: |
| |
| Introduce ChromeClient::createIconForFiles, which generates an icon representing the content at a list of file |
| paths. See WebKit and WebKit2 ChangeLogs for more details. |
| |
| * platform/FileChooser.h: |
| (WebCore::FileChooserClient::filesChosen): |
| * rendering/RenderFileUploadControl.cpp: |
| (WebCore::RenderFileUploadControl::fileTextValue): |
| |
| Remove platform special-casing when generating the text to display when uploading a file. If a displayString |
| is specified, then we use the contents of the displayString; otherwise, fall back to using the input element's |
| FileList to compute the display string. |
| |
| 2017-04-14 Brady Eidson <beidson@apple.com> |
| |
| Fix basic WKURLSchemeHandler bugs. |
| <rdar://problem/30647559> and https://bugs.webkit.org/show_bug.cgi?id=170862 |
| |
| Reviewed by Andy Estes. |
| |
| Covered by new API tests. |
| |
| * loader/SubresourceLoader.cpp: |
| (WebCore::SubresourceLoader::didReceiveDataOrBuffer): |
| |
| 2017-04-14 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebCrypto] Support HKDF |
| https://bugs.webkit.org/show_bug.cgi?id=170636 |
| <rdar://problem/23539827> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch implements HKDF according to the spec: https://www.w3.org/TR/WebCryptoAPI/#hkdf. |
| Supported operations include deriveKey, deriveBits, importKey and getKeyLength. |
| |
| Tests: crypto/subtle/ecdh-import-key-derive-hkdf-key.html |
| crypto/subtle/hkdf-derive-bits-malformed-parametrs.html |
| crypto/subtle/hkdf-import-key-derive-bits.html |
| crypto/subtle/hkdf-import-key-derive-hmac-key.html |
| crypto/subtle/hkdf-import-key-malformed-parameters.html |
| crypto/subtle/hkdf-import-key.html |
| crypto/workers/subtle/hkdf-import-key-derive-bits.html |
| crypto/workers/subtle/hkdf-import-key-derive-hmac-key.html |
| crypto/workers/subtle/hkdf-import-key.html |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * PlatformGTK.cmake: |
| * PlatformMac.cmake: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSCryptoAlgorithmDictionary.cpp: |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForSign): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForVerify): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForDigest): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveKey): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveBits): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey): |
| (WebCore::JSCryptoAlgorithmDictionary::createParametersForExportKey): |
| Rename HKDF_CTR to HKDF. |
| * bindings/js/JSSubtleCryptoCustom.cpp: |
| (WebCore::normalizeCryptoAlgorithmParameters): |
| * bindings/js/SerializedScriptValue.cpp: |
| (WebCore::CloneSerializer::write): |
| (WebCore::CloneDeserializer::read): |
| Rename HKDF_CTR to HKDF. |
| * crypto/CommonCryptoUtilities.h: |
| * crypto/CryptoAlgorithmIdentifier.h: |
| * crypto/CryptoAlgorithmParameters.h: |
| * crypto/algorithms/CryptoAlgorithmHKDF.cpp: Added. |
| (WebCore::CryptoAlgorithmHKDF::create): |
| (WebCore::CryptoAlgorithmHKDF::identifier): |
| (WebCore::CryptoAlgorithmHKDF::deriveBits): |
| (WebCore::CryptoAlgorithmHKDF::importKey): |
| (WebCore::CryptoAlgorithmHKDF::getKeyLength): |
| * crypto/algorithms/CryptoAlgorithmHKDF.h: Added. |
| * crypto/gcrypt/CryptoAlgorithmHKDFGCrypt.cpp: Added. |
| (WebCore::CryptoAlgorithmHKDF::platformDeriveBits): |
| * crypto/mac/CryptoAlgorithmHKDFMac.cpp: Added. |
| (WebCore::CryptoAlgorithmHKDF::platformDeriveBits): |
| * crypto/mac/CryptoAlgorithmRegistryMac.cpp: |
| (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): |
| * crypto/parameters/CryptoAlgorithmHkdfParams.h: Added. |
| * crypto/parameters/HkdfParams.idl: Added. |
| |
| 2017-04-14 Zalan Bujtas <zalan@apple.com> |
| |
| text-align start / end failure in table cells |
| https://bugs.webkit.org/show_bug.cgi?id=141417 |
| <rdar://problem/31051672> |
| |
| Reviewed by Antti Koivisto. |
| |
| Apply "text-align: center" on th elements when parent's computed value for the 'text-align' property |
| is its initial value, unless it is explicitly set. |
| |
| Test: fast/table/center-th-when-parent-has-initial-text-align.html |
| |
| * css/CSSProperties.json: |
| * css/StyleBuilderCustom.h: |
| (WebCore::StyleBuilderCustom::applyInitialTextAlign): |
| (WebCore::StyleBuilderCustom::applyValueTextAlign): |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::adjustRenderStyle): |
| (WebCore::StyleResolver::applyProperty): |
| * rendering/style/RenderStyle.h: |
| (WebCore::RenderStyle::hasExplicitlySetTextAlign): |
| (WebCore::RenderStyle::setHasExplicitlySetTextAlign): |
| (WebCore::RenderStyle::NonInheritedFlags::hasExplicitlySetTextAlign): |
| (WebCore::RenderStyle::NonInheritedFlags::setHasExplicitlySetTextAlign): |
| |
| 2017-04-14 Andy Estes <aestes@apple.com> |
| |
| [ios-simulator] API test WebKit2.DataDetectionReferenceDate timing out |
| https://bugs.webkit.org/show_bug.cgi?id=161967 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| DataDetectorsCoreSPI.h defined DDQueryOffset as a struct of two CFIndexes, which is 16 bytes |
| on LP64, but the struct is actually defined as two CFIndex-typed 32-bit bitfields, which is |
| 8 bytes on LP64. This breaks the ABI on Public SDK builds when calling functions that take |
| or return DDQueryOffsets. |
| |
| * platform/spi/cocoa/DataDetectorsCoreSPI.h: Updated the DDQueryOffset definition for |
| Public SDK builds, and added a static_assert to detect future size changes at compile time. |
| |
| 2017-04-14 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Removed unused and unimplemented methods from MediaPlayer |
| https://bugs.webkit.org/show_bug.cgi?id=170848 |
| |
| Reviewed by Jer Noble. |
| |
| No new tests needed. |
| |
| * platform/graphics/MediaPlayer.h: |
| |
| 2017-04-14 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Add performance test for asking the platform for a font for U+2060 WORD JOINER |
| https://bugs.webkit.org/show_bug.cgi?id=170842 |
| |
| Reviewed by Tim Horton. |
| |
| No new tests because there is no behavior change. |
| |
| * platform/graphics/WidthCache.h: |
| (WebCore::WidthCache::add): |
| (WebCore::WidthCache::addSlowCase): |
| |
| 2017-04-14 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r215350. |
| |
| This change broke the Windows build. |
| |
| Reverted changeset: |
| |
| "Remove unused SharedBuffer constructor" |
| https://bugs.webkit.org/show_bug.cgi?id=170828 |
| http://trac.webkit.org/changeset/215350 |
| |
| 2017-04-14 Jer Noble <jer.noble@apple.com> |
| |
| [MediaSource] Push capabilities across process boundary during UIProcess capture. |
| https://bugs.webkit.org/show_bug.cgi?id=170814 |
| |
| Reviewed by Eric Carlson. |
| |
| There's no real reason for RealtimeMediaSourceCapabilities to be RefCounted nor to keep them from |
| being created on the stack. So in addition to making that class coder-compliant, change all the |
| classes that vend capabilities to use a unique_ptr<> instead of a RefPtr<>. |
| |
| * Modules/mediastream/CanvasCaptureMediaStreamTrack.h: |
| * Modules/webaudio/MediaStreamAudioSource.cpp: |
| (WebCore::MediaStreamAudioSource::capabilities): |
| * Modules/webaudio/MediaStreamAudioSource.h: |
| * platform/mediastream/MediaEndpoint.cpp: |
| * platform/mediastream/MediaStreamTrackPrivate.cpp: |
| (WebCore::MediaStreamTrackPrivate::capabilities): |
| * platform/mediastream/MediaStreamTrackPrivate.h: |
| * platform/mediastream/RealtimeMediaSource.h: |
| * platform/mediastream/RealtimeMediaSourceCapabilities.h: |
| (WebCore::CapabilityValueOrRange::encode): |
| (WebCore::CapabilityValueOrRange::decode): |
| (WebCore::RealtimeMediaSourceCapabilities::RealtimeMediaSourceCapabilities): |
| (WebCore::RealtimeMediaSourceCapabilities::supportedConstraints): |
| (WebCore::RealtimeMediaSourceCapabilities::setSupportedConstraints): |
| (WebCore::RealtimeMediaSourceCapabilities::encode): |
| (WebCore::RealtimeMediaSourceCapabilities::decode): |
| (WebCore::RealtimeMediaSourceCapabilities::create): Deleted. |
| * platform/mediastream/RealtimeMediaSourceSettings.h: |
| * platform/mediastream/mac/AVMediaCaptureSource.h: |
| * platform/mediastream/mac/AVMediaCaptureSource.mm: |
| (WebCore::AVMediaCaptureSource::initializeCapabilities): |
| (WebCore::AVMediaCaptureSource::capabilities): |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::capabilities): |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| * platform/mediastream/mac/RealtimeIncomingAudioSource.cpp: |
| (WebCore::RealtimeIncomingAudioSource::capabilities): |
| * platform/mediastream/mac/RealtimeIncomingAudioSource.h: |
| * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: |
| (WebCore::RealtimeIncomingVideoSource::capabilities): |
| * platform/mediastream/mac/RealtimeIncomingVideoSource.h: |
| * platform/mock/MockRealtimeMediaSource.cpp: |
| (WebCore::MockRealtimeMediaSource::initializeCapabilities): |
| (WebCore::MockRealtimeMediaSource::capabilities): |
| * platform/mock/MockRealtimeMediaSource.h: |
| * platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h: |
| |
| 2017-04-13 Saam Barati <sbarati@apple.com> |
| |
| WebAssembly: We should be able to postMessage a JSWebAssemblyModule |
| https://bugs.webkit.org/show_bug.cgi?id=170573 |
| |
| Reviewed by Filip Pizlo. |
| |
| This patch's main purpose is to implement postMessage of JSWebAssemblyModule. |
| The spec text describing the behavior is: https://github.com/WebAssembly/design/blob/master/JS.md#structured-clone-of-a-webassemblymodule |
| We only allow for JSWebAssemblyModule to be serialized in the postMessage |
| context. More work needs to be done to make it valid to store a module in |
| IndexDB. |
| |
| All that is needed to serialize a JSWebAssemblyModule is grab a Ref |
| to its underlying Wasm::Module. So, when doing a postMessage, all we |
| do is grab this Ref, and then re-create the JSWebAssemblyModule from |
| the Wasm::Module in the new VM/global object. Because the code for |
| Wasm::Module is VM-independent, this is all that's needed. This turned |
| out nicely, because it requires little knowledge from WebCore about |
| what it means to clone a JSWebAssemblyModule. |
| |
| |
| The second significant part of this patch is teaching WorkerRunLoop about |
| the various timers inside JSC. Before, the WorkerRunLoop wouldn't always |
| wake up to address JSC timers. I noticed this bug when I was writing |
| tests to make sure that Wasm was running concurrently in different |
| workers. The bug is that the WorkerRunLoop's message queue has no insight |
| into a timer being scheduled. This effected the PromiseDeferredTimer that |
| Wasm uses, as well as the various GC timers that Heap uses. Now, WorkerRunLoop |
| will set itself up to be notified when timers are set. When a timer is |
| set, the WorkerRunLoop will perform an iteration to to reset its top |
| level MessageQueue timeout to be no longer than the next timer fire date. |
| |
| Tests: storage/indexeddb/wasm-exceptions.html |
| workers/wasm-hashset-many.html |
| workers/wasm-hashset.html |
| workers/wasm-long-compile-many.html |
| workers/wasm-long-compile.html |
| |
| * ForwardingHeaders/heap/GCActivityCallback.h: Added. |
| * ForwardingHeaders/runtime/JSRunLoopTimer.h: Added. |
| * ForwardingHeaders/runtime/PromiseDeferredTimer.h: Added. |
| * ForwardingHeaders/wasm: Added. |
| * ForwardingHeaders/wasm/js: Added. |
| * ForwardingHeaders/wasm/js/JSWebAssemblyModule.h: Added. |
| * bindings/js/SerializedScriptValue.cpp: |
| (WebCore::CloneSerializer::serialize): |
| (WebCore::CloneSerializer::CloneSerializer): |
| (WebCore::CloneSerializer::dumpIfTerminal): |
| (WebCore::CloneDeserializer::deserialize): |
| (WebCore::CloneDeserializer::CloneDeserializer): |
| (WebCore::CloneDeserializer::readTerminal): |
| (WebCore::SerializedScriptValue::SerializedScriptValue): |
| (WebCore::SerializedScriptValue::create): |
| (WebCore::SerializedScriptValue::deserialize): |
| * bindings/js/SerializedScriptValue.h: |
| * bindings/js/WorkerScriptController.cpp: |
| (WebCore::WorkerScriptController::addTimerSetNotification): |
| (WebCore::WorkerScriptController::removeTimerSetNotification): |
| * bindings/js/WorkerScriptController.h: |
| * workers/WorkerRunLoop.cpp: |
| (WebCore::WorkerRunLoop::runInMode): |
| |
| 2017-04-13 Dean Jackson <dino@apple.com> |
| |
| Large negative animation-delays may not work depending on machine uptime |
| https://bugs.webkit.org/show_bug.cgi?id=166962 |
| <rdar://problem/30091526> |
| |
| Reviewed by Tim Horton. |
| |
| If you set a really negative animation delay, it would cause |
| AnimationBase::m_startTime to become negative, because the delay |
| value was "bigger" than monotonicallyIncreasingTime. |
| |
| However, the state machine was using -1 to mean that the start time |
| hadn't yet been set. Classic cmarrin! |
| |
| Replace all the special values with std::optional, and use nullopt |
| to mean the value doesn't exist yet. |
| |
| Test: animations/large-negative-delay.html |
| |
| * page/animation/AnimationBase.cpp: |
| (WebCore::AnimationBase::updateStateMachine): |
| (WebCore::AnimationBase::fireAnimationEventsIfNeeded): |
| (WebCore::AnimationBase::getTimeToNextEvent): |
| (WebCore::AnimationBase::freezeAtTime): |
| (WebCore::AnimationBase::getElapsedTime): |
| * page/animation/AnimationBase.h: Use std::optional. |
| (WebCore::AnimationBase::paused): |
| |
| 2017-04-13 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused SharedBuffer constructor |
| https://bugs.webkit.org/show_bug.cgi?id=170828 |
| |
| Reviewed by Brady Eidson. |
| |
| * platform/SharedBuffer.cpp: |
| (WebCore::SharedBuffer::append): |
| * platform/SharedBuffer.h: |
| (WebCore::SharedBuffer::create): |
| |
| 2017-04-13 Antti Koivisto <antti@apple.com> |
| |
| Don't invalidate composition for style changes in non-composited layers |
| https://bugs.webkit.org/show_bug.cgi?id=170805 |
| <rdar://problem/31606185> |
| |
| Reviewed by Simon Fraser. |
| |
| Test: compositing/updates/animation-non-composited.html |
| |
| In most cases they can't affect composition. Composition updates are expensive, this can |
| save a lot of work (tumblr.com animations hit this at the moment). |
| |
| * rendering/RenderElement.h: |
| (WebCore::RenderElement::createsGroup): |
| (WebCore::RenderElement::createsGroupForStyle): |
| |
| Factor to a static function so we can test style directly. |
| |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::layerStyleChanged): |
| (WebCore::RenderLayerCompositor::styleChangeMayAffectIndirectCompositingReasons): |
| |
| Test if style change might cause compositing change that can't be determined without compositing update. |
| |
| * rendering/RenderLayerCompositor.h: |
| |
| 2017-04-13 JF Bastien <jfbastien@apple.com> |
| |
| WebAssembly: manage memory better |
| https://bugs.webkit.org/show_bug.cgi?id=170628 |
| |
| Reviewed by Keith Miller, Michael Saboff. |
| |
| Re-use a VM tag which was intended for JavaScript core, was then |
| used by our GC, and is now unused. If I don't do this then |
| WebAssembly fast memories will make vmmap look super weird because |
| it'll look like multi-gigabyte of virtual memory are allocated as |
| part of our process' regular memory! |
| |
| Separately I need to update vmmap and other tools to print the |
| right name. Right now this tag gets identified as "JS garbage |
| collector". |
| |
| * page/ResourceUsageData.cpp: |
| (WebCore::ResourceUsageData::ResourceUsageData): |
| * page/ResourceUsageData.h: |
| * page/cocoa/ResourceUsageOverlayCocoa.mm: |
| (WebCore::HistoricResourceUsageData::HistoricResourceUsageData): |
| * page/cocoa/ResourceUsageThreadCocoa.mm: |
| (WebCore::displayNameForVMTag): |
| (WebCore::categoryForVMTag): |
| |
| 2017-04-13 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Update the comments for the number of bits in RenderStyle::InheritedFlags. |
| |
| Rubber-stamped by Zalan Bujtas |
| |
| * rendering/style/RenderStyle.h: |
| |
| 2017-04-13 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Addressing post-review comment after r215314. |
| https://bugs.webkit.org/show_bug.cgi?id=169015 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::FontDatabase::fontForPostScriptName): |
| |
| 2017-04-13 Sam Weinig <sam@webkit.org> |
| |
| [WebIDL] Add support for extended attributes on types in WebIDL |
| https://bugs.webkit.org/show_bug.cgi?id=170759 |
| |
| Reviewed by Alex Christensen. |
| |
| - Update parsing for WebIDL grammar changes. |
| - Adds an extended attributes hash to IDLType that is filled according |
| to the WebIDL annotated type rules. |
| - Updates code generation to take advantage of IDLType's extended attribute |
| simplifying some existing code. |
| - Update IDLs in the project to adhere to the new grammar. |
| |
| * Modules/indexeddb/IDBFactory.idl: |
| * Modules/indexeddb/IDBIndex.idl: |
| * Modules/indexeddb/IDBKeyRange.idl: |
| * Modules/indexeddb/IDBObjectStore.idl: |
| * Modules/websockets/WebSocket.idl: |
| * crypto/parameters/AesCtrParams.idl: |
| * crypto/parameters/AesKeyParams.idl: |
| * crypto/parameters/Pbkdf2Params.idl: |
| * crypto/parameters/RsaKeyGenParams.idl: |
| * testing/TypeConversions.idl: |
| Update for grammar change. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateDefaultValue): |
| (GetBaseIDLType): |
| (GetIDLType): |
| (GetIntegerConversionConfiguration): |
| (GetStringConversionConfiguration): |
| (JSValueToNative): |
| (UnsafeToNative): |
| (NativeToJSValueDOMConvertNeedsState): |
| (NativeToJSValueDOMConvertNeedsGlobalObject): |
| (NativeToJSValue): |
| Remove the need for the type's context in many places since type |
| associated extended attributes are now on the type itself. |
| |
| * bindings/scripts/IDLParser.pm: |
| (copyExtendedAttributes): |
| Move up so it can be reused. |
| |
| (isExtendedAttributeApplicableToTypes): |
| Add temporary predicated to indicate which attributes should be moved to types. This |
| logic should be moved to IDLAttributes.txt. |
| |
| (moveExtendedAttributesApplicableToTypes): |
| Add helper to move attributes to the type's extended attributes hash if applicable. |
| |
| (makeSimpleType): |
| Use initializer syntax to simplify. |
| |
| (cloneType): |
| Support cloning types with extended attributes. |
| |
| (typeByApplyingTypedefs): |
| When constructing the clone for a typedef application, move any applicable attributes |
| to the clone from the original type. |
| |
| (parseDictionaryMember): |
| (parseTypedef): |
| (parseAttributeOrOperationRest): |
| (parseAttributeRest): |
| (parseOperationOrIterator): |
| (parseSpecialOperation): |
| (parseOptionalIterableInterface): |
| (parseMapLikeProperties): |
| (parseOptionalOrRequiredArgument): |
| (parseType): |
| (parseTypeWithExtendedAttributes): |
| (parseUnionMemberType): |
| (parseNonAnyType): |
| Update for new grammar, moving applicable attributes eagerly. |
| |
| (assertNoExtendedAttributesInTypedef): Deleted. |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| (WebCore::jsTestObjPrototypeFunctionClassMethodWithClampOnOptional): |
| (WebCore::jsTestObjPrototypeFunctionClassMethodWithClampOnOptionalCaller): |
| (WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeOnOptional): |
| (WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeOnOptionalCaller): |
| * bindings/scripts/test/JS/JSTestTypedefs.cpp: |
| (WebCore::jsTestTypedefsAttributeWithClamp): |
| (WebCore::jsTestTypedefsAttributeWithClampGetter): |
| (WebCore::jsTestTypedefsAttributeWithClampInTypedef): |
| (WebCore::jsTestTypedefsAttributeWithClampInTypedefGetter): |
| (WebCore::setJSTestTypedefsAttributeWithClamp): |
| (WebCore::setJSTestTypedefsAttributeWithClampFunction): |
| (WebCore::setJSTestTypedefsAttributeWithClampInTypedef): |
| (WebCore::setJSTestTypedefsAttributeWithClampInTypedefFunction): |
| (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampInTypedef): |
| (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampInTypedefCaller): |
| * bindings/scripts/test/TestObj.idl: |
| * bindings/scripts/test/TestTypedefs.idl: |
| Update for new grammar. Add some new tests for uncovered cases. |
| |
| 2017-04-13 Alex Christensen <achristensen@webkit.org> |
| |
| Fix CMake build |
| https://bugs.webkit.org/show_bug.cgi?id=170815 |
| |
| Reviewed by Beth Dakin. |
| |
| * platform/spi/cocoa/AVKitSPI.h: |
| |
| 2017-04-13 JF Bastien <jfbastien@apple.com> |
| |
| cmake build fix |
| |
| Unreviewed build fix. A file was removed but left in the cmake |
| build. |
| |
| * PlatformMac.cmake: |
| |
| 2017-04-13 Youenn Fablet <youenn@apple.com> |
| |
| Remove RTCSignalingState::Closed |
| https://bugs.webkit.org/show_bug.cgi?id=170811 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by existing and rebased tests. |
| |
| Adding RTCPeerConnection::isClosed to better match the isClosed internal slot in webrtc specification. |
| Using isClosed instead of checking signalingState value. |
| Implementing isClosed in terms of m_connectionState which has a Closed value. |
| |
| * Modules/mediastream/MediaEndpointPeerConnection.cpp: |
| (WebCore::MediaEndpointPeerConnection::setLocalDescriptionTask): |
| (WebCore::MediaEndpointPeerConnection::replaceTrackTask): |
| * Modules/mediastream/PeerConnectionBackend.cpp: |
| (WebCore::PeerConnectionBackend::createOffer): |
| (WebCore::PeerConnectionBackend::createOfferSucceeded): |
| (WebCore::PeerConnectionBackend::createOfferFailed): |
| (WebCore::PeerConnectionBackend::createAnswer): |
| (WebCore::PeerConnectionBackend::createAnswerSucceeded): |
| (WebCore::PeerConnectionBackend::createAnswerFailed): |
| (WebCore::PeerConnectionBackend::setLocalDescription): |
| (WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded): |
| (WebCore::PeerConnectionBackend::setLocalDescriptionFailed): |
| (WebCore::PeerConnectionBackend::setRemoteDescription): |
| (WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded): |
| (WebCore::PeerConnectionBackend::setRemoteDescriptionFailed): |
| (WebCore::PeerConnectionBackend::addIceCandidate): |
| (WebCore::PeerConnectionBackend::addIceCandidateSucceeded): |
| (WebCore::PeerConnectionBackend::addIceCandidateFailed): |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::create): |
| (WebCore::RTCPeerConnection::RTCPeerConnection): |
| (WebCore::RTCPeerConnection::addTrack): |
| (WebCore::RTCPeerConnection::removeTrack): |
| (WebCore::RTCPeerConnection::queuedCreateOffer): |
| (WebCore::RTCPeerConnection::queuedCreateAnswer): |
| (WebCore::RTCPeerConnection::queuedSetLocalDescription): |
| (WebCore::RTCPeerConnection::queuedSetRemoteDescription): |
| (WebCore::RTCPeerConnection::queuedAddIceCandidate): |
| (WebCore::RTCPeerConnection::setConfiguration): |
| (WebCore::RTCPeerConnection::createDataChannel): |
| (WebCore::RTCPeerConnection::doClose): |
| (WebCore::RTCPeerConnection::updateIceGatheringState): |
| (WebCore::RTCPeerConnection::updateIceConnectionState): |
| (WebCore::RTCPeerConnection::scheduleNegotiationNeededEvent): |
| * Modules/mediastream/RTCPeerConnection.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::signalingState): |
| * platform/mediastream/RTCSignalingState.h: |
| |
| 2017-04-13 Zalan Bujtas <zalan@apple.com> |
| |
| BreakingContext::WordTrailingSpace cleanup. |
| https://bugs.webkit.org/show_bug.cgi?id=170750 |
| |
| Reviewed by Myles C. Maxfield. |
| |
| No change in functionality. |
| |
| * rendering/RenderText.cpp: |
| (WebCore::RenderText::computePreferredLogicalWidths): |
| * rendering/line/BreakingContext.h: |
| (WebCore::WordTrailingSpace::WordTrailingSpace): |
| (WebCore::WordTrailingSpace::width): |
| (WebCore::BreakingContext::handleText): |
| |
| 2017-04-13 Romain Bellessort <romain.bellessort@crf.canon.fr> |
| |
| [Readable Streams API] Implement cloneArrayBuffer in WebCore |
| https://bugs.webkit.org/show_bug.cgi?id=170008 |
| |
| Reviewed by Youenn Fablet. |
| |
| Implemented cloneArrayBuffer based on existing structuredCloneArrayBuffer |
| implementation. The code has been factorized so that both cloneArrayBuffer |
| and structuredCloneArrayBuffer rely on the same code (which is basically |
| the previous implementation of structuredCloneArrayBuffer + the ability |
| to clone only a part of considered buffer). |
| |
| Test: streams/clone-array-buffer.html |
| |
| * Modules/streams/ReadableByteStreamInternals.js: Deleted cloneArrayBuffer JS implementation. |
| * bindings/js/JSDOMGlobalObject.cpp: |
| (WebCore::JSDOMGlobalObject::addBuiltinGlobals): Add cloneArrayBuffer private declaration. |
| * bindings/js/StructuredClone.cpp: |
| (WebCore::cloneArrayBufferImpl): Added (mostly based on previous structuredCloneArrayBuffer). |
| (WebCore::cloneArrayBuffer): Added. |
| (WebCore::structuredCloneArrayBuffer): Updated. |
| * bindings/js/StructuredClone.h: Added cloneArrayBuffer declaration. |
| * bindings/js/WebCoreBuiltinNames.h: Added cloneArrayBuffer declaration. |
| * testing/Internals.cpp: Added support for testing cloneArrayBuffer. |
| * testing/Internals.h: Added support for testing cloneArrayBuffer. |
| * testing/Internals.idl: Added support for testing cloneArrayBuffer. |
| |
| 2017-04-13 Youenn Fablet <youenn@apple.com> |
| |
| onnegotiationneeded should only be called once |
| https://bugs.webkit.org/show_bug.cgi?id=170785 |
| |
| Reviewed by Alex Christensen. |
| |
| Covered by updated test. |
| |
| Disabling explicit call to markAsNeedingNegotiation in case libwebrtc is used as libwebrtc is calling it. |
| Making sure removeTrack gets notified up to libwebrtc. |
| |
| * Modules/mediastream/PeerConnectionBackend.h: |
| (WebCore::PeerConnectionBackend::notifyRemovedTrack): |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::addTrack): |
| (WebCore::RTCPeerConnection::removeTrack): |
| (WebCore::RTCPeerConnection::completeAddTransceiver): |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::removeTrack): |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::LibWebRTCPeerConnectionBackend::notifyRemovedTrack): |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h: |
| |
| 2017-04-13 Dave Hyatt <hyatt@apple.com> |
| |
| Rendering flexbox children across columns |
| https://bugs.webkit.org/show_bug.cgi?id=164166 |
| <rdar://problem/29055587> |
| |
| Reviewed by Zalan Bujtas. |
| |
| Added fast/multicol/flexbox-rows.html |
| |
| * rendering/RenderBlockFlow.cpp: |
| (WebCore::RenderBlockFlow::adjustForUnsplittableChild): |
| |
| 2017-04-12 Alex Christensen <achristensen@webkit.org> |
| |
| Clean up SharedBuffer public functions |
| https://bugs.webkit.org/show_bug.cgi?id=170795 |
| |
| Reviewed by Andreas Kling. |
| |
| Make some member functions that are now only used internally private. |
| |
| * platform/SharedBuffer.cpp: |
| (WebCore::SharedBuffer::append): |
| (WebCore::SharedBuffer::platformDataSize): Deleted. |
| * platform/SharedBuffer.h: |
| |
| 2017-04-12 Dan Bernstein <mitz@apple.com> |
| |
| [Mac] Future-proof .xcconfig files |
| https://bugs.webkit.org/show_bug.cgi?id=170802 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/DebugRelease.xcconfig: |
| * Configurations/FeatureDefines.xcconfig: |
| * Configurations/Version.xcconfig: |
| |
| 2017-04-12 Brady Eidson <beidson@apple.com> |
| |
| QuotaExceededError when saving to localStorage in private mode. |
| https://bugs.webkit.org/show_bug.cgi?id=157010 |
| |
| Reviewed by Alex Christensen. |
| |
| No new tests (Covered by changes to existing test). |
| |
| LocalStorage in private browsing is now effectively SessionStorage. |
| It's ephemeral, per-tab, and copied over to tabs window.open()'ed from the current. |
| |
| * loader/EmptyClients.cpp: |
| (WebCore::EmptyStorageNamespaceProvider::createEphemeralLocalStorageNamespace): |
| |
| * page/Chrome.cpp: |
| (WebCore::Chrome::createWindow): |
| |
| * page/Page.cpp: |
| (WebCore::Page::ephemeralLocalStorage): |
| (WebCore::Page::setEphemeralLocalStorage): |
| * page/Page.h: |
| |
| * page/SecurityOriginData.h: |
| |
| * storage/Storage.cpp: |
| (WebCore::Storage::length): |
| (WebCore::Storage::key): |
| (WebCore::Storage::getItem): |
| (WebCore::Storage::setItem): |
| (WebCore::Storage::removeItem): |
| (WebCore::Storage::clear): |
| (WebCore::Storage::contains): |
| (WebCore::Storage::isDisabledByPrivateBrowsing): Deleted. |
| |
| * storage/StorageMap.h: |
| |
| * storage/StorageNamespaceProvider.cpp: |
| (WebCore::StorageNamespaceProvider::localStorageArea): |
| * storage/StorageNamespaceProvider.h: |
| |
| * storage/StorageType.h: |
| (WebCore::isLocalStorage): |
| (WebCore::isPersistentLocalStorage): |
| |
| 2017-04-12 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [Cocoa] Suppress font download dialog in new matching algorithm |
| https://bugs.webkit.org/show_bug.cgi?id=169015 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Not testable. |
| |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::FontDatabase::lookupPostScriptName): |
| |
| 2017-04-12 Eric Carlson <eric.carlson@apple.com> |
| |
| REGRESSION (r215242-215243): [ios-simulator] API test WebKit1.AudioSessionCategoryIOS is failing |
| https://bugs.webkit.org/show_bug.cgi?id=170777 |
| <rdar://problem/31592877> |
| |
| Reviewed by Jer Noble. |
| |
| No new tests, fixes an existing test. |
| |
| * platform/audio/cocoa/MediaSessionManagerCocoa.cpp: |
| (PlatformMediaSessionManager::updateSessionState): Pass parameters to lambda by reference. |
| |
| 2017-04-12 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Set correct audio session category when capturing audio |
| https://bugs.webkit.org/show_bug.cgi?id=170736 |
| <rdar://problem/31559405> |
| |
| Unreviewed, update an assertion I missed in r215242. |
| |
| * platform/audio/PlatformMediaSession.cpp: |
| (WebCore::PlatformMediaSession::PlatformMediaSession): |
| |
| 2017-04-12 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused SharedBuffer::wrapCFDataArray |
| https://bugs.webkit.org/show_bug.cgi?id=170794 |
| |
| Reviewed by Brady Eidson. |
| |
| It's unused since r215280. |
| |
| * platform/SharedBuffer.h: |
| * platform/cf/SharedBufferCF.cpp: |
| (WebCore::SharedBuffer::wrapCFDataArray): Deleted. |
| |
| 2017-04-12 Anders Carlsson <andersca@apple.com> |
| |
| Tweak WebCore::setMetadataURL function |
| https://bugs.webkit.org/show_bug.cgi?id=170786 |
| |
| Reviewed by Beth Dakin. |
| |
| Get rid of the "referrer" parameter, it isn't used. Make the remaining parameters const. Swap the |
| urlString and path parameters since that makes more sense. Use String instead of NSString in the call to WKSetMetadataURL. |
| |
| * platform/FileSystem.cpp: |
| (WebCore::setMetadataURL): Deleted. |
| * platform/FileSystem.h: |
| * platform/mac/FileSystemMac.mm: |
| (WebCore::setMetadataURL): |
| |
| 2017-04-12 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Well-known variations should clamp to the values listed in the @font-face block |
| https://bugs.webkit.org/show_bug.cgi?id=169260 |
| |
| Reviewed by Dean Jackson. |
| |
| Most of this patch is plumbing the variation ranges from the CSSFontFace object |
| to preparePlatformFont() where variation values get applied. |
| |
| Beyond that, there is one other piece of this patch - a nonspecified value in an |
| @font-face block shouldn't perform any clamping, but a specified value should be |
| clamped. This means that we need to retain whether or not a value is specified. |
| This patch does this by migrating CSSFontFace from using FontSelectionCapabilities |
| to using FontSelectionSpecifiedCapabilities, which has its internals behind |
| std::optionals which represent whether or not the value was specified. For the |
| purposes of font selection, these unspecified values are replaced with default |
| values. |
| |
| Test: fast/text/variations/font-face-clamp.html |
| |
| * css/CSSFontFace.cpp: |
| (WebCore::CSSFontFace::font): |
| * css/CSSFontFace.h: |
| * css/CSSFontFaceSource.cpp: |
| (WebCore::CSSFontFaceSource::font): |
| * css/CSSFontFaceSource.h: |
| * css/CSSFontSelector.cpp: |
| (WebCore::CSSFontSelector::addFontFaceRule): |
| * loader/cache/CachedFont.cpp: |
| (WebCore::CachedFont::createFont): |
| (WebCore::CachedFont::platformDataFromCustomData): |
| * loader/cache/CachedFont.h: |
| * loader/cache/CachedSVGFont.cpp: |
| (WebCore::CachedSVGFont::createFont): |
| (WebCore::CachedSVGFont::platformDataFromCustomData): |
| * loader/cache/CachedSVGFont.h: |
| * platform/graphics/FontCache.cpp: |
| (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey): |
| (WebCore::FontPlatformDataCacheKey::operator==): |
| (WebCore::FontPlatformDataCacheKeyHash::hash): |
| (WebCore::FontCache::getCachedFontPlatformData): |
| (WebCore::FontCache::fontForFamily): |
| * platform/graphics/FontCache.h: |
| (WebCore::FontCache::fontForFamily): |
| (WebCore::FontCache::getCachedFontPlatformData): |
| (WebCore::FontCache::createFontPlatformDataForTesting): |
| * platform/graphics/FontSelectionAlgorithm.h: |
| (WebCore::FontSelectionRange::uniqueValue): |
| (WebCore::FontSelectionCapabilities::operator==): |
| (WebCore::FontSelectionCapabilities::operator!=): |
| (WebCore::FontSelectionSpecifiedCapabilities::computeFontSelectionCapabilities): |
| (WebCore::FontSelectionSpecifiedCapabilities::operator==): |
| (WebCore::FontSelectionSpecifiedCapabilities::operator!=): |
| (WebCore::FontSelectionSpecifiedCapabilities::operator=): |
| (WebCore::FontSelectionSpecifiedCapabilities::computeWeight): |
| (WebCore::FontSelectionSpecifiedCapabilities::computeWidth): |
| (WebCore::FontSelectionSpecifiedCapabilities::computeSlope): |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::preparePlatformFont): |
| (WebCore::fontWithFamily): |
| (WebCore::FontCache::createFontPlatformData): |
| (WebCore::FontCache::systemFallbackForCharacters): |
| * platform/graphics/mac/FontCacheMac.mm: |
| (WebCore::FontCache::lastResortFallbackFont): |
| * platform/graphics/mac/FontCustomPlatformData.cpp: |
| (WebCore::FontCustomPlatformData::fontPlatformData): |
| * platform/graphics/mac/FontCustomPlatformData.h: |
| |
| 2017-04-12 Beth Dakin <bdakin@apple.com> |
| |
| Speculative open source build fix. |
| |
| * platform/spi/cocoa/AVKitSPI.h: |
| |
| 2017-04-12 Alex Christensen <achristensen@webkit.org> |
| |
| Stop using didReceiveDataArray callback on El Capitan |
| https://bugs.webkit.org/show_bug.cgi?id=170780 |
| |
| Reviewed by Brady Eidson. |
| |
| didReceiveDataArray was an optimization that improved performance on iOS but is not needed any more. |
| The only platform where this is used is El Capitan, and didReceiveData works fine on that platform. |
| I've left some cleanup still to be done in SharedBuffer, and doing that is the motivation for this change. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * loader/ResourceLoader.h: |
| * loader/SubresourceLoader.h: |
| * loader/cf/SubresourceLoaderCF.cpp: Removed. |
| * loader/mac/ResourceLoaderMac.mm: |
| (WebCore::ResourceLoader::didReceiveDataArray): Deleted. |
| * platform/network/ResourceHandleClient.h: |
| (WebCore::ResourceHandleClient::supportsDataArray): Deleted. |
| (WebCore::ResourceHandleClient::didReceiveDataArray): Deleted. |
| * platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp: |
| (WebCore::ResourceHandleCFURLConnectionDelegate::makeConnectionClient): |
| (WebCore::ResourceHandleCFURLConnectionDelegate::didReceiveDataArrayCallback): Deleted. |
| * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h: |
| * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp: |
| (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveDataArray): Deleted. |
| * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h: |
| * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp: |
| (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveDataArray): Deleted. |
| * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h: |
| * platform/network/mac/WebCoreResourceHandleAsDelegate.mm: |
| (-[WebCoreResourceHandleAsDelegate connection:didReceiveDataArray:]): Deleted. |
| * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm: |
| (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveDataArray:]): Deleted. |
| |
| 2017-04-12 Beth Dakin <bdakin@apple.com> |
| |
| Attempted build fix. |
| |
| * platform/spi/cocoa/AVKitSPI.h: |
| |
| 2017-04-12 Beth Dakin <bdakin@apple.com> |
| |
| Adopt AVKit name change from AVFunctionBar* to AVTouchBar* |
| https://bugs.webkit.org/show_bug.cgi?id=170693 |
| -and corresponding- |
| rdar://problem/31230018 |
| |
| Reviewed by San Weinig. |
| |
| Since the new names only apply to some versions of macOS, this patch uses typedefs |
| for the older OS’s. SO: |
| |
| AVFunctionBarScrubber is now AVTouchBarScrubber |
| |
| AVFunctionBarPlaybackControlsProvider is now AVTouchBarPlaybackControlsProvider |
| |
| AVFunctionBarMediaSelectionOption is now AVTouchBarMediaSelectionOption |
| |
| And the protocol AVFunctionBarPlaybackControlsControlling is now |
| AVTouchBarPlaybackControlsControlling |
| |
| * platform/mac/WebPlaybackControlsManager.h: |
| * platform/mac/WebPlaybackControlsManager.mm: |
| (-[WebPlaybackControlsManager audioFunctionBarMediaSelectionOptions]): |
| (-[WebPlaybackControlsManager setAudioFunctionBarMediaSelectionOptions:]): |
| (-[WebPlaybackControlsManager currentAudioFunctionBarMediaSelectionOption]): |
| (-[WebPlaybackControlsManager setCurrentAudioFunctionBarMediaSelectionOption:]): |
| (-[WebPlaybackControlsManager legibleFunctionBarMediaSelectionOptions]): |
| (-[WebPlaybackControlsManager setLegibleFunctionBarMediaSelectionOptions:]): |
| (-[WebPlaybackControlsManager currentLegibleFunctionBarMediaSelectionOption]): |
| (-[WebPlaybackControlsManager setCurrentLegibleFunctionBarMediaSelectionOption:]): |
| (mediaSelectionOptions): |
| |
| Here is where the typedefs and #define are declared. |
| * platform/spi/cocoa/AVKitSPI.h: |
| |
| 2017-04-12 Alex Christensen <achristensen@webkit.org> |
| |
| Fix WinCairo build after r215265 |
| https://bugs.webkit.org/show_bug.cgi?id=170502 |
| |
| m_threadId was removed in the header but not in the constructor implementation. |
| Initializer lists are our friends. |
| |
| * platform/network/curl/CurlDownload.cpp: |
| (WebCore::CurlDownloadManager::CurlDownloadManager): |
| (WebCore::CurlDownload::CurlDownload): Deleted. |
| * platform/network/curl/CurlDownload.h: |
| |
| 2017-04-12 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Unreviewed, build fix for Win and GTK |
| https://bugs.webkit.org/show_bug.cgi?id=170758 |
| |
| * platform/posix/SharedBufferPOSIX.cpp: |
| (WebCore::SharedBuffer::createFromReadingFile): |
| * platform/win/SharedBufferWin.cpp: |
| (WebCore::SharedBuffer::createFromReadingFile): |
| |
| 2017-04-12 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [WTF] Introduce Thread class and use RefPtr<Thread> and align Windows Threading implementation semantics to Pthread one |
| https://bugs.webkit.org/show_bug.cgi?id=170502 |
| |
| Reviewed by Mark Lam. |
| |
| Mechanical change. Use Thread:: APIs. |
| |
| * Modules/indexeddb/server/IDBServer.cpp: |
| (WebCore::IDBServer::IDBServer::IDBServer): |
| * Modules/indexeddb/server/IDBServer.h: |
| * Modules/webaudio/AsyncAudioDecoder.cpp: |
| (WebCore::AsyncAudioDecoder::AsyncAudioDecoder): |
| (WebCore::AsyncAudioDecoder::~AsyncAudioDecoder): |
| (WebCore::AsyncAudioDecoder::runLoop): |
| * Modules/webaudio/AsyncAudioDecoder.h: |
| * Modules/webaudio/OfflineAudioDestinationNode.cpp: |
| (WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode): |
| (WebCore::OfflineAudioDestinationNode::uninitialize): |
| (WebCore::OfflineAudioDestinationNode::startRendering): |
| * Modules/webaudio/OfflineAudioDestinationNode.h: |
| * Modules/webdatabase/Database.cpp: |
| (WebCore::Database::securityOrigin): |
| * Modules/webdatabase/DatabaseThread.cpp: |
| (WebCore::DatabaseThread::start): |
| (WebCore::DatabaseThread::databaseThread): |
| (WebCore::DatabaseThread::recordDatabaseOpen): |
| (WebCore::DatabaseThread::recordDatabaseClosed): |
| * Modules/webdatabase/DatabaseThread.h: |
| (WebCore::DatabaseThread::getThreadID): |
| * bindings/js/GCController.cpp: |
| (WebCore::GCController::garbageCollectOnAlternateThreadForDebugging): |
| * fileapi/AsyncFileStream.cpp: |
| (WebCore::callOnFileThread): |
| * loader/icon/IconDatabase.cpp: |
| (WebCore::IconDatabase::open): |
| (WebCore::IconDatabase::close): |
| * loader/icon/IconDatabase.h: |
| * page/ResourceUsageThread.cpp: |
| (WebCore::ResourceUsageThread::createThreadIfNeeded): |
| * page/ResourceUsageThread.h: |
| * page/scrolling/ScrollingThread.cpp: |
| (WebCore::ScrollingThread::ScrollingThread): |
| (WebCore::ScrollingThread::isCurrentThread): |
| (WebCore::ScrollingThread::createThreadIfNeeded): |
| (WebCore::ScrollingThread::threadCallback): |
| * page/scrolling/ScrollingThread.h: |
| * platform/audio/HRTFDatabaseLoader.cpp: |
| (WebCore::HRTFDatabaseLoader::HRTFDatabaseLoader): |
| (WebCore::HRTFDatabaseLoader::loadAsynchronously): |
| (WebCore::HRTFDatabaseLoader::waitForLoaderThreadCompletion): |
| * platform/audio/HRTFDatabaseLoader.h: |
| * platform/audio/ReverbConvolver.cpp: |
| (WebCore::ReverbConvolver::ReverbConvolver): |
| (WebCore::ReverbConvolver::~ReverbConvolver): |
| * platform/audio/ReverbConvolver.h: |
| * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp: |
| (WebCore::createBusFromAudioFile): |
| (WebCore::createBusFromInMemoryAudioFile): |
| * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: |
| (ResourceHandleStreamingClient::ResourceHandleStreamingClient): |
| (ResourceHandleStreamingClient::~ResourceHandleStreamingClient): |
| * platform/network/cf/LoaderRunLoopCF.cpp: |
| (WebCore::loaderRunLoop): |
| * platform/network/curl/CurlDownload.cpp: |
| (WebCore::CurlDownloadManager::startThreadIfNeeded): |
| (WebCore::CurlDownloadManager::stopThread): |
| * platform/network/curl/CurlDownload.h: |
| * platform/network/curl/SocketStreamHandleImpl.h: |
| * platform/network/curl/SocketStreamHandleImplCurl.cpp: |
| (WebCore::SocketStreamHandleImpl::startThread): |
| (WebCore::SocketStreamHandleImpl::stopThread): |
| * workers/WorkerThread.cpp: |
| (WebCore::WorkerThread::WorkerThread): |
| (WebCore::WorkerThread::start): |
| (WebCore::WorkerThread::workerThread): |
| * workers/WorkerThread.h: |
| (WebCore::WorkerThread::threadID): |
| |
| 2017-04-10 Antti Koivisto <antti@apple.com> |
| |
| Cache small media resources in disk cache |
| https://bugs.webkit.org/show_bug.cgi?id=170676 |
| <rdar://problem/31532649> |
| |
| Reviewed by Andreas Kling. |
| |
| Test: http/tests/cache/disk-cache/disk-cache-media-small.html |
| |
| Testing support. Functional changes are in WebKit2. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::mediaPlayerCreateResourceLoader): |
| (WebCore::HTMLMediaElement::lastMediaResourceLoaderForTesting): |
| * html/HTMLMediaElement.h: |
| * loader/MediaResourceLoader.cpp: |
| (WebCore::MediaResourceLoader::MediaResourceLoader): |
| (WebCore::MediaResourceLoader::addResponseForTesting): |
| (WebCore::MediaResource::responseReceived): |
| * loader/MediaResourceLoader.h: |
| * platform/network/cocoa/WebCoreNSURLSession.mm: |
| (-[WebCoreNSURLSessionDataTask resource:receivedResponse:]): |
| |
| We can now receive cached responses. |
| |
| * testing/Internals.cpp: |
| (WebCore::responseSourceToString): |
| (WebCore::Internals::xhrResponseSource): |
| (WebCore::Internals::mediaResponseSources): |
| (WebCore::Internals::mediaResponseContentRanges): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-04-12 Alex Christensen <achristensen@webkit.org> |
| |
| Modernize vector adoption |
| https://bugs.webkit.org/show_bug.cgi?id=170758 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * Modules/encryptedmedia/InitDataRegistry.cpp: |
| (WebCore::extractKeyIDsKeyids): |
| * Modules/indexeddb/IDBGetResult.cpp: |
| (WebCore::IDBGetResult::dataFromBuffer): |
| * Modules/indexeddb/IDBKeyData.cpp: |
| (WebCore::IDBKeyData::decode): |
| * Modules/indexeddb/server/IDBSerialization.cpp: |
| (WebCore::serializeIDBKeyData): |
| (WebCore::decodeKey): |
| * Modules/indexeddb/server/SQLiteIDBBackingStore.cpp: |
| (WebCore::IDBServer::SQLiteIDBBackingStore::getRecord): |
| (WebCore::IDBServer::SQLiteIDBBackingStore::getAllObjectStoreRecords): |
| (WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey): |
| * Modules/indexeddb/server/SQLiteIDBCursor.cpp: |
| (WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord): |
| * css/CSSFontFaceSource.cpp: |
| (WebCore::CSSFontFaceSource::font): |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::loadResourceSynchronously): |
| * loader/appcache/ApplicationCacheStorage.cpp: |
| (WebCore::ApplicationCacheStorage::loadCache): |
| * loader/archive/mhtml/MHTMLParser.cpp: |
| (WebCore::MHTMLParser::parseNextPart): |
| * loader/cache/CachedFont.cpp: |
| (WebCore::CachedFont::createCustomFontData): |
| * loader/cache/CachedSVGFont.cpp: |
| (WebCore::CachedSVGFont::ensureCustomFontData): |
| * platform/SharedBuffer.cpp: |
| (WebCore::SharedBuffer::create): |
| (WebCore::utf8Buffer): |
| (WebCore::SharedBuffer::adoptVector): Deleted. |
| * platform/SharedBuffer.h: |
| * platform/ThreadSafeDataBuffer.h: |
| (WebCore::ThreadSafeDataBufferImpl::ThreadSafeDataBufferImpl): |
| (WebCore::ThreadSafeDataBuffer::create): |
| (WebCore::ThreadSafeDataBuffer::ThreadSafeDataBuffer): |
| (WebCore::ThreadSafeDataBuffer::decode): |
| (): Deleted. |
| (WebCore::ThreadSafeDataBuffer::adoptVector): Deleted. |
| * platform/network/BlobRegistryImpl.cpp: |
| (WebCore::BlobRegistryImpl::registerBlobURL): |
| * platform/network/DataURLDecoder.cpp: |
| (WebCore::DataURLDecoder::decodeBase64): |
| (WebCore::DataURLDecoder::decodeEscaped): |
| |
| 2017-04-12 Per Arne Vollan <pvollan@apple.com> |
| |
| Implement stroke-color CSS property. |
| https://bugs.webkit.org/show_bug.cgi?id=169352 |
| |
| Reviewed by Jon Lee. |
| |
| Support setting text stroke color using the CSS property stroke-color, see https://drafts.fxtf.org/paint/. |
| Text stroke color can currently be set with the -webkit-text-stroke-color property. To make sure this still |
| works, I added a check to determine if the stroke-color property has been explicitly set. If it has not been |
| set, we fall back to the value of the -webkit-text-stroke-color property. |
| |
| Tests: fast/css/stroke-color-fallback.html |
| fast/css/stroke-color.html |
| fast/css/visited-link-stroke-color.html |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::propertyValue): |
| * css/CSSProperties.json: |
| * css/StyleBuilderCustom.h: |
| (WebCore::StyleBuilderCustom::applyValueStrokeColor): |
| * css/StyleResolver.cpp: |
| (WebCore::isValidVisitedLinkProperty): |
| * css/parser/CSSParserFastPaths.cpp: |
| (WebCore::isColorPropertyID): |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::CSSPropertyParser::parseSingleValue): |
| * rendering/TextDecorationPainter.cpp: |
| (WebCore::decorationColor): |
| * rendering/TextPaintStyle.cpp: |
| (WebCore::computeTextPaintStyle): |
| (WebCore::computeTextSelectionPaintStyle): |
| * rendering/style/RenderStyle.cpp: |
| (WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline): |
| (WebCore::RenderStyle::colorIncludingFallback): |
| * rendering/style/RenderStyle.h: |
| (WebCore::RenderStyle::strokeColor): |
| (WebCore::RenderStyle::setStrokeColor): |
| (WebCore::RenderStyle::setVisitedLinkStrokeColor): |
| (WebCore::RenderStyle::visitedLinkStrokeColor): |
| (WebCore::RenderStyle::setHasExplicitlySetStrokeColor): |
| (WebCore::RenderStyle::hasExplicitlySetStrokeColor): |
| * rendering/style/StyleRareInheritedData.cpp: |
| (WebCore::StyleRareInheritedData::StyleRareInheritedData): |
| (WebCore::StyleRareInheritedData::operator==): |
| * rendering/style/StyleRareInheritedData.h: |
| |
| 2017-04-11 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GTK] Use the DisplayRefreshMonitor facilities |
| https://bugs.webkit.org/show_bug.cgi?id=170599 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * CMakeLists.txt: Add missing files to the build. |
| * platform/graphics/DisplayRefreshMonitor.cpp: Build fixes. |
| (WebCore::DisplayRefreshMonitor::createDefaultDisplayRefreshMonitor): |
| * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: |
| (WebCore::CoordinatedGraphicsLayer::updatePlatformLayer): Mark the |
| platform layer as updated in the layer's CoordinatedGraphicsState. |
| * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h: |
| |
| 2017-04-11 Antoine Quint <graouts@apple.com> |
| |
| [Modern Media Controls] Allow modern-media-controls to be provided through WebKitAdditions |
| https://bugs.webkit.org/show_bug.cgi?id=170722 |
| <rdar://problem/31553089> |
| |
| Reviewed by Dean Jackson. |
| |
| If modern media controls source files are provided through WebKitAdditions, use these instead |
| of the sources found in the WebCore module. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| 2017-04-11 Dean Jackson <dino@apple.com> |
| |
| Disable outdated WritableStream API |
| https://bugs.webkit.org/show_bug.cgi?id=170749 |
| <rdar://problem/31446233> |
| |
| Reviewed by Tim Horton. |
| |
| The API we implement is no longer accurate. Disable it until we |
| are compatible with the new specification |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2017-04-11 Matt Rajca <mrajca@apple.com> |
| |
| Consider the current document when allowing autoplay quirks. |
| https://bugs.webkit.org/show_bug.cgi?id=170744 |
| |
| Reviewed by Eric Carlson. |
| |
| Added API test. |
| |
| In addition to checking if the top-level document supports autoplay quirks, we should check |
| if the current document supports quirks. This allows all embedded YouTube videos (which use |
| iframes) to play correctly if the client allows autoplay quirks on youtube.com. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::dispatchPlayPauseEventsIfNeedsQuirks): |
| |
| 2017-04-11 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r215245. |
| |
| This change broke internal builds. |
| |
| Reverted changeset: |
| |
| "[Modern Media Controls] Allow modern-media-controls to be |
| provided through WebKitAdditions" |
| https://bugs.webkit.org/show_bug.cgi?id=170722 |
| http://trac.webkit.org/changeset/215245 |
| |
| 2017-04-11 Antoine Quint <graouts@apple.com> |
| |
| [Modern Media Controls] Allow modern-media-controls to be provided through WebKitAdditions |
| https://bugs.webkit.org/show_bug.cgi?id=170722 |
| <rdar://problem/31553089> |
| |
| Reviewed by Dean Jackson. |
| |
| If modern media controls source files are provided through WebKitAdditions, use these instead |
| of the sources found in the WebCore module. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| 2017-04-10 Matt Rajca <mrajca@apple.com> |
| |
| Change autoplay state to "prevented" when media is paused due to restrictions. |
| https://bugs.webkit.org/show_bug.cgi?id=170686 |
| |
| Reviewed by Alex Christensen. |
| |
| Added API tests. |
| |
| Currently, the autoplay state is set to "prevented" when playback is about to begin without |
| user interaction and there are restrictions in place. We should also be setting this flag when |
| autoplay is allowed but due to a change in audio tracks, for example, it gets paused. |
| |
| This patch also moves some common logic into setPlaybackWithoutUserGesture without changing behavior. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::setReadyState): |
| (WebCore::HTMLMediaElement::play): |
| (WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack): |
| (WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged): |
| (WebCore::HTMLMediaElement::setPlaybackWithoutUserGesture): |
| (WebCore::HTMLMediaElement::updateShouldPlay): |
| |
| 2017-04-11 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Set correct audio session category when capturing audio |
| https://bugs.webkit.org/show_bug.cgi?id=170736 |
| <rdar://problem/31559405> |
| |
| Reviewed by Jer Noble. |
| |
| No new tests yet, filed bug 170737. |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::MediaStream): Initialize m_mediaSession. |
| (WebCore::MediaStream::statusDidChange): Call canProduceAudioChanged. |
| (WebCore::MediaStream::mediaType): New. Return MediaStreamCapturingAudio when actively |
| capturing audio. |
| (WebCore::MediaStream::presentationType): |
| (WebCore::MediaStream::characteristics): |
| (WebCore::MediaStream::mayResumePlayback): |
| (WebCore::MediaStream::suspendPlayback): |
| (WebCore::MediaStream::sourceApplicationIdentifier): |
| (WebCore::MediaStream::canProduceAudio): |
| * Modules/mediastream/MediaStream.h: |
| |
| * platform/audio/PlatformMediaSession.h: Add MediaStreamCapturingAudio. |
| * platform/audio/PlatformMediaSessionManager.cpp: |
| (WebCore::PlatformMediaSessionManager::has): Adjust assert for MediaStreamCapturingAudio. |
| (WebCore::PlatformMediaSessionManager::count): Ditto. |
| * platform/audio/cocoa/MediaSessionManagerCocoa.cpp: |
| (PlatformMediaSessionManager::updateSessionState): Set small preferred buffer size when |
| capturing audio. Set audio session category to PlayAndRecord whenever there is a media |
| stream that is capturing audio. |
| |
| 2017-04-11 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [WebCore][JSC] ResourceUsageData.{timeOfNextEdenCollection,timeOfNextFullCollection} should be MonotonicTime |
| https://bugs.webkit.org/show_bug.cgi?id=170725 |
| |
| Reviewed by Sam Weinig. |
| |
| Use MonotonicTime instead of raw doubles. |
| Currently, large part of data structures and helper functions are the same in |
| ResourceUsageOverlayCocoa.mm and ResourceUsageOverlayLinux.cpp. This should be |
| unified in a separate patch. |
| |
| * page/ResourceUsageData.h: |
| * page/cocoa/ResourceUsageOverlayCocoa.mm: |
| (WebCore::gcTimerString): |
| (WebCore::ResourceUsageOverlay::platformDraw): |
| * page/linux/ResourceUsageOverlayLinux.cpp: |
| (WebCore::gcTimerString): |
| |
| 2017-04-11 Youenn Fablet <youenn@apple.com> |
| |
| Activate WebRTC data channel tests for WK1 |
| https://bugs.webkit.org/show_bug.cgi?id=170710 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by existing and activated tests. |
| |
| Making LibWebRTCProvider::factory not static. |
| For that purpose LibWebRTCMediaEndpoint now stores its peer connection factory reference. |
| Making LibWebRTCProvider use libebrtc networking by default. |
| |
| Removing some no longer needed checks related to libwebrtc availability. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::LibWebRTCMediaEndpoint): |
| (WebCore::LibWebRTCMediaEndpoint::addTrack): |
| (WebCore::LibWebRTCMediaEndpoint::doCreateOffer): |
| (WebCore::LibWebRTCMediaEndpoint::doCreateAnswer): |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: |
| (WebCore::LibWebRTCProvider::factory): |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.h: |
| |
| 2017-04-11 Youenn Fablet <youenn@apple.com> |
| |
| MediaStream id should be equal to msid |
| https://bugs.webkit.org/show_bug.cgi?id=170712 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by rebased tests. |
| |
| Setting MediaStream id to libwebrtc mediastream label. |
| Refactoring to use more Ref<> in MediaStream code. |
| |
| Making PeerConnection use the libwebrtc backend by default for layout tests instead of the mock. |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::create): |
| (WebCore::createTrackPrivateVector): |
| (WebCore::MediaStream::MediaStream): |
| * Modules/mediastream/MediaStream.h: |
| * Modules/mediastream/MediaStreamRegistry.cpp: |
| (WebCore::MediaStreamRegistry::lookUp): |
| * Modules/mediastream/UserMediaRequest.cpp: |
| (WebCore::UserMediaRequest::allow): |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStream): |
| (WebCore::LibWebRTCMediaEndpoint::addRemoteStream): |
| (WebCore::LibWebRTCMediaEndpoint::addRemoteTrack): |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: |
| * platform/graphics/MediaPlayer.cpp: |
| (WebCore::MediaPlayer::load): |
| * platform/graphics/MediaPlayer.h: |
| * platform/mediastream/MediaStreamPrivate.cpp: |
| (WebCore::MediaStreamPrivate::MediaStreamPrivate): |
| * platform/mediastream/MediaStreamPrivate.h: |
| (WebCore::MediaStreamPrivate::create): |
| * testing/Internals.cpp: |
| (WebCore::Internals::Internals): |
| |
| 2017-04-11 Chris Fleizach <cfleizach@apple.com> |
| |
| AX: Web article navigation does not work (article rotor for Facebook, Twitter, Messages etc.) |
| https://bugs.webkit.org/show_bug.cgi?id=170330 |
| <rdar://problem/31366105> |
| |
| Reviewed by Joanmarie Diggs. |
| |
| Add a search ability for the "article" role. |
| |
| Test: accessibility/mac/search-predicate-article.html |
| |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex): |
| * accessibility/AccessibilityObject.h: |
| * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: |
| (-[WebAccessibilityObjectWrapper _accessibilityArticleAncestor]): |
| * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: |
| (createAccessibilitySearchKeyMap): |
| |
| 2017-04-11 Chris Fleizach <cfleizach@apple.com> |
| |
| AX: PDF plugin needs to support PDF-DOM Mode |
| https://bugs.webkit.org/show_bug.cgi?id=170589 |
| |
| Reviewed by Tim Horton. |
| |
| Provide WebCore support for accessibility connect to PDF document. |
| This includes the ability to connect a PDF annotation created node within WebKit to |
| its PDFAnnotation parent (through use of shadowPluginParent). |
| |
| * accessibility/AXObjectCache.h: |
| * accessibility/mac/AXObjectCacheMac.mm: |
| (WebCore::AXPostNotificationWithUserInfo): |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.h: |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: |
| (-[WebAccessibilityObjectWrapper shadowPluginParent]): |
| (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): |
| * html/HTMLAttributeNames.in: |
| * plugins/PluginViewBase.h: |
| (WebCore::PluginViewBase::accessibilityShadowPluginParentForElement): |
| |
| 2017-04-11 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r215153): Request Animation Frame broken when building without REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR |
| https://bugs.webkit.org/show_bug.cgi?id=170719 |
| |
| Reviewed by Žan Doberšek. |
| |
| This is because when not using the display refresh monitor, the timer is always used, not only when throttling, |
| but since r215153 the rAF timer is always aligned to 30ms. |
| |
| Fixes: fast/animation/request-animation-frame-too-rapid.html |
| |
| * dom/ScriptedAnimationController.cpp: |
| (WebCore::ScriptedAnimationController::scheduleAnimation): Only do the timer alignment when throttling. |
| |
| 2017-04-11 Yoav Weiss <yoav@yoav.ws> |
| |
| [link preload] Double downloads of preloaded content when it's in MemoryCache |
| https://bugs.webkit.org/show_bug.cgi?id=170122 |
| |
| Reviewed by Antti Koivisto. |
| |
| No new tests, but unflaked http/tests/preload/single_download_preload_headers_charset.html. |
| |
| The test was flaky because it appears as if MemoryCache is not being evicted between runs, |
| and running multiple iterations of the test resulted in preloaded being taken out of MemoryCache |
| and not having the unknown encoding flag. In those cases, the result was a double download and |
| a failed test. |
| |
| * loader/TextResourceDecoder.cpp: |
| (WebCore::TextResourceDecoder::setEncoding): Set the m_encodingSet flag. |
| * loader/TextResourceDecoder.h: Added an m_encodingSet flag initialized to false. |
| * loader/cache/CachedCSSStyleSheet.cpp: |
| (WebCore::CachedCSSStyleSheet::setEncoding): Assert that stylesheets don't maintain decoded text. |
| * loader/cache/CachedResource.cpp: |
| (WebCore::CachedResource::CachedResource): Remove initialization of hasUnknownEncoding flag. |
| * loader/cache/CachedResource.h: |
| (WebCore::CachedResource::hasUnknownEncoding): Remove. |
| (WebCore::CachedResource::setHasUnknownEncoding): Remove. |
| (WebCore::CachedResource::CachedResource): Remove initialization of hasUnknownEncoding flag. |
| * loader/cache/CachedResourceLoader.cpp: |
| (WebCore::CachedResourceLoader::determineRevalidationPolicy): Set the encoding in case it changed. |
| |
| 2017-04-11 Miguel Gomez <magomez@igalia.com> |
| |
| REGRESSION(r215211): [GTK] Lots of image related tests are timing out, causing the test bot to exit early |
| https://bugs.webkit.org/show_bug.cgi?id=170727 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Since r215211 ImageDecoder::isSizeAvailable() calls encodedDataStatus() in the different decoder implementations, |
| and those implementations force a partial decoding of the image if the size is not available yet. But |
| ImageDecoder::isSizeAvailable() was already being used inside the decoders assuming that it wasn't going to |
| force this partial decoding. Due to this, there are some situations where the partial decoding is not |
| desired but it's happening anyway. For example, the check in setSize(), which causes the partial decoding |
| to happen again and again because no value is actually set to the animation size (which causes the timouts |
| in the test bot). |
| |
| To avoid this, replace all the calls to ImageDecoder::isSizeAvailable() inside the decoders with calls to |
| ImageDecoder::encodedDataStatus(), which doesn't force the partial decoding. |
| |
| Covered by existent tests. |
| |
| * platform/image-decoders/gif/GIFImageDecoder.cpp: |
| (WebCore::GIFImageDecoder::setSize): |
| * platform/image-decoders/ico/ICOImageDecoder.cpp: |
| (WebCore::ICOImageDecoder::decodeAtIndex): |
| * platform/image-decoders/jpeg/JPEGImageDecoder.h: |
| * platform/image-decoders/png/PNGImageDecoder.cpp: |
| (WebCore::PNGImageReader::decode): |
| (WebCore::PNGImageDecoder::frameBufferAtIndex): |
| * platform/image-decoders/webp/WEBPImageDecoder.cpp: |
| (WebCore::WEBPImageDecoder::decode): |
| |
| 2017-04-11 Miguel Gomez <magomez@igalia.com> |
| |
| REGRESSION(r215211): [GTK] Lots of image related tests are crashing, causing the test bot to exit early |
| https://bugs.webkit.org/show_bug.cgi?id=170721 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| r215211 caused an infinite loop because of calls between ImageDecoder::isSizeAvailable() and the specializations of |
| ImageDecoder::encodedDataStatus(). Change the different decoders so ImageDecoder::encodedDataStatus doesn't call |
| ImageDecoder::isSizeAvailable(). |
| |
| Covered by existent tests. |
| |
| * platform/image-decoders/bmp/BMPImageDecoder.cpp: |
| (WebCore::BMPImageDecoder::encodedDataStatus): |
| * platform/image-decoders/gif/GIFImageDecoder.cpp: |
| (WebCore::GIFImageDecoder::encodedDataStatus): |
| * platform/image-decoders/ico/ICOImageDecoder.cpp: |
| (WebCore::ICOImageDecoder::encodedDataStatus): |
| * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: |
| (WebCore::JPEGImageDecoder::encodedDataStatus): |
| * platform/image-decoders/png/PNGImageDecoder.cpp: |
| (WebCore::PNGImageDecoder::encodedDataStatus): |
| * platform/image-decoders/webp/WEBPImageDecoder.cpp: |
| (WebCore::WEBPImageDecoder::encodedDataStatus): |
| |
| 2017-04-10 Alex Christensen <achristensen@webkit.org> |
| |
| Revert r215217 |
| https://bugs.webkit.org/show_bug.cgi?id=170703 |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2017-04-10 Chris Dumez <cdumez@apple.com> |
| |
| Fix bad change in r215167. |
| https://bugs.webkit.org/show_bug.cgi?id=170656 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| Revert mistake made in r215167. |
| |
| * rendering/RenderThemeGtk.cpp: |
| (WebCore::RenderThemeGtk::caretBlinkInterval): |
| |
| 2017-04-10 Alex Christensen <achristensen@webkit.org> |
| |
| Continue enabling WebRTC |
| https://bugs.webkit.org/show_bug.cgi?id=170703 |
| |
| Reviewed by Youenn Fablet. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2017-04-10 Jeremy Jones <jeremyj@apple.com> |
| |
| PlayerLayerView +layerClass methods should use return type Class. |
| https://bugs.webkit.org/show_bug.cgi?id=165406 |
| |
| Reviewed by Sam Weinig. |
| |
| No new tests because not behavior change. |
| |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: |
| (WebAVPictureInPicturePlayerLayerView_layerClass): |
| (WebAVPlayerLayerView_layerClass): |
| |
| 2017-04-10 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| CachedImage should stop decoding images when unknown type is detected |
| https://bugs.webkit.org/show_bug.cgi?id=170530 |
| |
| Reviewed by Tim Horton. |
| |
| If the status of the encoded data is "unknown type", WebKit should stop |
| decoding the rest of the data. Ideally WebKit should also cancel loading |
| the rest of the encoded data. |
| |
| To do that we need to add a function to the ImageDecoder to return the |
| encodedDataStatus(). We also need to change the return type of Image::setData() |
| and Image::dataChanged() form bool to EncodedDataStatus. |
| |
| * WebCore.xcodeproj/project.pbxproj: Add ImageTypes.h to the WebCore project. |
| * loader/cache/CachedImage.cpp: |
| (WebCore::CachedImage::addIncrementalDataBuffer): Replace checking !sizeAvailable |
| by checking if encodedDataStatus isn't an error but it has not reached |
| sizeAvailable state |
| * loader/cache/CachedResourceClientWalker.h: |
| (WebCore::CachedResourceClientWalker::CachedResourceClientWalker): Unrelated clean-up. |
| (WebCore::CachedResourceClientWalker::next): Ditto. |
| * loader/icon/IconRecord.cpp: |
| (WebCore::IconRecord::setImageData): Image::setData() used to return a bool. Now it returns |
| an EncodedDataStatus. !setData() now means setData() < EncodedDataStatus::SizeAvailable. |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::dataChanged): Replace the return of dataChanged() from bool |
| by EncodedDataStatus. |
| * platform/graphics/BitmapImage.h: Replace isSizeAvailable() by a new function |
| named encodedDataStatus(). |
| * platform/graphics/Image.cpp: |
| (WebCore::Image::setData): Code clean-up and adding a clarification comment. |
| * platform/graphics/Image.h: Change the return of setData() and dataChanged() to be |
| EncodedDataStatus. |
| (WebCore::Image::dataChanged): Return EncodedDataStatus::Unknown as an indication |
| the size is not available but we do not have an error. |
| * platform/graphics/ImageTypes.h: Added. |
| Image definitions which are shared among Image, ImageDecoder, ImageSource, |
| ImageFrameCache and ImageFrame used to be added to ImageFrame.h. This has |
| been annoying since these definitions aren't related to ImageFrame only. |
| A new header file named ImageTypes.h is to the to include such definitions. |
| (WebCore::operator++): |
| * platform/graphics/ImageFrame.h: |
| (WebCore::operator++): Deleted. |
| * platform/graphics/ImageFrameCache.cpp: |
| (WebCore::ImageFrameCache::ImageFrameCache): This is the case of a BitmapImage without |
| a decoder but with a NativeImage. The status has to be EncodedDataStatus::Complete. |
| (WebCore::ImageFrameCache::growFrames): Replace if (isSizeAvailable()) by |
| if (encodedDataStatus() >= EncodedDataStatus::SizeAvailable). |
| (WebCore::ImageFrameCache::metadata): Ditto. |
| (WebCore::ImageFrameCache::encodedDataStatus): This is a replacement for isSizeAvailable(). |
| Don't cache the EncodedDataStatus until it is Complete. Don't call didDecodeProperties() |
| until the status >= EncodedDataStatus::SizeAvailable. |
| (WebCore::ImageFrameCache::isSizeAvailable): Deleted. |
| * platform/graphics/ImageFrameCache.h: Replace isSizeAvailable() by encodedDataStatus(). |
| * platform/graphics/ImageSource.cpp: |
| (WebCore::ImageSource::dataChanged): Make return an EncodedDataStatus instead of returning |
| a bool for isSizeAvailable. |
| * platform/graphics/ImageSource.h: |
| (WebCore::ImageSource::encodedDataStatus): Replace isSizeAvailable() by encodedDataStatus(). |
| (WebCore::ImageSource::isSizeAvailable): Deleted. |
| * platform/graphics/cg/ImageDecoderCG.cpp: |
| (WebCore::ImageDecoder::encodedDataStatus): Replace isSizeAvailable() by encodedDataStatus(). |
| The logic of this function is the following: |
| -- CGImageSourceGetStatus() can return kCGImageStatusUnexpectedEOF, kCGImageStatusInvalidData |
| or kCGImageStatusReadingHeader even if CG will end up recovering form the error and drawing |
| the image. Actually CG initializes the status of CGImageSource before receiving any data |
| with kCGImageStatusInvalidData. So the status will be considered an error only if all the |
| data is received but CG does not move the status of this CGImageSource to Complete. |
| -- If CGImageSourceGetStatus() returns Incomplete, this means CG already created the image |
| reader and therefore the image type is known. |
| -- If CGImageSourceGetStatus() returns UnknownType, this means CG could not create the |
| image reader and this should be considered an error. |
| (WebCore::ImageDecoder::isSizeAvailable): Deleted. |
| * platform/graphics/cg/ImageDecoderCG.h: Replace isSizeAvailable() by encodedDataStatus(). |
| * platform/graphics/cg/PDFDocumentImage.cpp: |
| (WebCore::PDFDocumentImage::dataChanged): The PDFDocument is created only when allDataReceived. |
| * platform/graphics/cg/PDFDocumentImage.h: Change the return type from bool to EncodedDataStatus. |
| * platform/image-decoders/ImageDecoder.h: |
| (WebCore::ImageDecoder::encodedDataStatus): Add a new function encodedDataStatus(). Deduce the |
| status of the encoded data from the flags m_failed, m_isAllDataReceived and m_sizeAvailable in |
| this order. |
| (WebCore::ImageDecoder::isSizeAvailable): Make this function uses encodedDataStatus(). |
| * platform/image-decoders/bmp/BMPImageDecoder.cpp: |
| (WebCore::BMPImageDecoder::encodedDataStatus): Replace isSizeAvailable() by encodedDataStatus(). |
| (WebCore::BMPImageDecoder::isSizeAvailable): Deleted. |
| * platform/image-decoders/bmp/BMPImageDecoder.h: |
| * platform/image-decoders/gif/GIFImageDecoder.cpp: |
| (WebCore::GIFImageDecoder::encodedDataStatus): Ditto. |
| (WebCore::GIFImageDecoder::isSizeAvailable): Deleted. |
| * platform/image-decoders/gif/GIFImageDecoder.h: |
| * platform/image-decoders/ico/ICOImageDecoder.cpp: |
| (WebCore::ICOImageDecoder::encodedDataStatus): Ditto. |
| (WebCore::ICOImageDecoder::isSizeAvailable): Deleted. |
| * platform/image-decoders/ico/ICOImageDecoder.h: |
| * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: |
| (WebCore::JPEGImageDecoder::encodedDataStatus): Ditto. |
| (WebCore::JPEGImageDecoder::isSizeAvailable): Deleted. |
| * platform/image-decoders/jpeg/JPEGImageDecoder.h: |
| * platform/image-decoders/png/PNGImageDecoder.cpp: |
| (WebCore::PNGImageDecoder::encodedDataStatus): Ditto. |
| (WebCore::PNGImageDecoder::isSizeAvailable): Deleted. |
| * platform/image-decoders/png/PNGImageDecoder.h: |
| * platform/image-decoders/webp/WEBPImageDecoder.cpp: |
| (WebCore::WEBPImageDecoder::encodedDataStatus): Ditto. |
| (WebCore::WEBPImageDecoder::isSizeAvailable): Deleted. |
| * platform/image-decoders/webp/WEBPImageDecoder.h: |
| * svg/graphics/SVGImage.cpp: |
| (WebCore::SVGImage::dataChanged): m_page is created only when allDataReceived is true. |
| * svg/graphics/SVGImage.h: |
| |
| 2017-04-10 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Mark SVG-Within-OpenType as "Under Consideration" |
| https://bugs.webkit.org/show_bug.cgi?id=170706 |
| |
| Reviewed by Brady Eidson. |
| |
| * features.json: |
| |
| 2017-04-10 Jeremy Jones <jeremyj@apple.com> |
| |
| Add CoreAudioCaptureSource. |
| https://bugs.webkit.org/show_bug.cgi?id=170112 |
| rdar://problem/30293338 |
| |
| Reviewed by Eric Carlson. |
| |
| No new tests because this provides the same funcitonality as AVAudioCaptureSource. |
| Funcionality is covered by existing test cases. |
| |
| Add CoreAudioCaptureSource for audio capture. And use it by default in AVCaptureDeviceManager. |
| Add UseAVFoundationAudioCapture setting to switch back to AVFoundation for audio capture. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * page/Settings.cpp: |
| (WebCore::Settings::useAVFoundationAudioCapture): |
| (WebCore::Settings::setUseAVFoundationAudioCapture): |
| * page/Settings.h: |
| * platform/mediastream/mac/AVCaptureDeviceManager.h: |
| * platform/mediastream/mac/AVCaptureDeviceManager.mm: |
| (WebCore::AVCaptureDeviceManager::setUseAVFoundationAudioCapture): |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: Added. |
| (WebCore::CoreAudioCaptureSource::create): |
| (WebCore::CoreAudioCaptureSource::factory): |
| (WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource): |
| (WebCore::CoreAudioCaptureSource::~CoreAudioCaptureSource): |
| (WebCore::CoreAudioCaptureSource::preferredSampleRate): |
| (WebCore::CoreAudioCaptureSource::preferredIOBufferDuration): |
| (WebCore::CoreAudioCaptureSource::configureMicrophoneProc): |
| (WebCore::CoreAudioCaptureSource::configureSpeakerProc): |
| (WebCore::CoreAudioCaptureSource::addMicrophoneDataConsumer): |
| (WebCore::CoreAudioCaptureSource::removeMicrophoneDataConsumer): |
| (WebCore::CoreAudioCaptureSource::addEchoCancellationSource): |
| (WebCore::CoreAudioCaptureSource::removeEchoCancellationSource): |
| (WebCore::CoreAudioCaptureSource::checkTimestamps): |
| (WebCore::CoreAudioCaptureSource::provideSpeakerData): |
| (WebCore::CoreAudioCaptureSource::speakerCallback): |
| (WebCore::CoreAudioCaptureSource::processMicrophoneSamples): |
| (WebCore::CoreAudioCaptureSource::microphoneCallback): |
| (WebCore::CoreAudioCaptureSource::defaultOutputDevice): |
| (WebCore::CoreAudioCaptureSource::defaultInputDevice): |
| (WebCore::CoreAudioCaptureSource::setupAudioUnits): |
| (WebCore::CoreAudioCaptureSource::startProducingData): |
| (WebCore::CoreAudioCaptureSource::stopProducingData): |
| (WebCore::CoreAudioCaptureSource::suspend): |
| (WebCore::CoreAudioCaptureSource::resume): |
| (WebCore::CoreAudioCaptureSource::capabilities): |
| (WebCore::CoreAudioCaptureSource::settings): |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: Added. |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| (WebCore::RealtimeMediaSourceCenterMac::RealtimeMediaSourceCenterMac): |
| (WebCore::RealtimeMediaSourceCenterMac::defaultAudioFactory): |
| |
| 2017-04-10 Youenn Fablet <youenn@apple.com> |
| |
| Wrap legacy MediaStream API in runtime flag |
| https://bugs.webkit.org/show_bug.cgi?id=169877 |
| |
| Reviewed by Alex Christensen. |
| |
| Covered by binding tests. |
| |
| Marking navigator.getUserMedia and MediaStreamEvent as runtime enabled if mediastream and webrtclegacy api flags |
| are on. |
| Updated binding generator to support multiple runtime flags. |
| |
| * Modules/mediastream/MediaStreamEvent.idl: |
| * Modules/mediastream/NavigatorUserMedia.idl: |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GetRuntimeEnableFunctionName): |
| (GenerateImplementation): |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| (WebCore::JSTestObjPrototype::finishCreation): |
| * bindings/scripts/test/TestObj.idl: |
| |
| 2017-04-10 Youenn Fablet <youenn@apple.com> |
| |
| Remove deprecated parts of media stream spec |
| https://bugs.webkit.org/show_bug.cgi?id=169879 |
| |
| Reviewed by Jon Lee. |
| |
| Removing MediaStreamTrackState 'new' value which was unused. |
| Removing MediaStreamTrack _readonly attribute which was unused. |
| |
| * Modules/mediastream/MediaStreamTrack.cpp: |
| (WebCore::MediaStreamTrack::readonly): Deleted. |
| * Modules/mediastream/MediaStreamTrack.h: |
| * Modules/mediastream/MediaStreamTrack.idl: |
| * platform/mediastream/MediaStreamTrackPrivate.cpp: |
| (WebCore::MediaStreamTrackPrivate::readonly): Deleted. |
| * platform/mediastream/MediaStreamTrackPrivate.h: |
| * platform/mediastream/RealtimeMediaSource.h: |
| |
| 2017-04-10 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r215175. |
| |
| This change caused a flaky crash in existing media tests. |
| |
| Reverted changeset: |
| |
| "Add fallback fonts to video captions stylesheet." |
| https://bugs.webkit.org/show_bug.cgi?id=170495 |
| http://trac.webkit.org/changeset/215175 |
| |
| 2017-04-10 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Data interaction on an image enclosed by an anchor should vend the anchor's URL |
| https://bugs.webkit.org/show_bug.cgi?id=170660 |
| <rdar://problem/31043220> |
| |
| Reviewed by Tim Horton. |
| |
| When writing an image embedded inside an anchor to the pasteboard, actually use the enclosing anchor's href if |
| it exists. Previously, we were simply dropping this argument on the floor. |
| |
| Covered by 2 new DataInteractionTests: ImageInLinkToInput and ImageInLinkWithoutHREFToInput. |
| |
| * editing/ios/EditorIOS.mm: |
| (WebCore::Editor::writeImageToPasteboard): |
| |
| 2017-04-10 Jon Lee <jonlee@apple.com> |
| |
| Update localizable strings to "full screen" from "fullscreen" |
| https://bugs.webkit.org/show_bug.cgi?id=170675 |
| rdar://problem/28207034 |
| |
| Reviewed by Antoine Quint. |
| |
| For localizable strings, it should consistently be "full screen" instead of "fullscreen". |
| |
| * English.lproj/Localizable.strings: |
| * English.lproj/modern-media-controls-localized-strings.js: |
| * platform/LocalizedStrings.cpp: |
| (WebCore::contextMenuItemTagExitVideoFullscreen): |
| (WebCore::localizedMediaControlElementString): |
| * platform/cocoa/LocalizedStringsCocoa.mm: |
| (WebCore::exitFullScreenButtonAccessibilityTitle): |
| |
| 2017-04-10 Andreas Kling <akling@apple.com> |
| |
| Don't generate extra scrolling tiles for non-visible pages. |
| https://bugs.webkit.org/show_bug.cgi?id=167213 |
| <rdar://problem/30105774> |
| |
| Reviewed by Antti Koivisto. |
| |
| Reduce the tiling coverage to a minimum when the page is non-visible. |
| On macOS, this means that fully occluded web views can maintain a smaller set of tiles |
| in non-volatile surfaces, reducing net footprint. |
| |
| Test: compositing/tiling/non-visible-window-tile-coverage.html |
| |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::computePageTiledBackingCoverage): If the page's activity state is non-visible, use minimal tile coverage. |
| * platform/ScrollView.h: |
| * page/FrameView.h: |
| * page/FrameView.cpp: |
| (WebCore::FrameView::hide): Call adjustTiledBackingCoverage() in hide() since it now takes page visibility into account. |
| |
| (WebCore::FrameView::enableSpeculativeTilingIfNeeded): |
| * testing/Internals.cpp: |
| (WebCore::Internals::setSpeculativeTilingDelayDisabledForTesting): |
| * testing/Internals.h: |
| * testing/Internals.idl: Add an internals API for disabling the 500ms delay before speculative tiling begins after |
| the main frame load finishes. This is needed for reliably testing this change. |
| |
| 2017-04-10 Per Arne Vollan <pvollan@apple.com> |
| |
| Add fallback fonts to video captions stylesheet. |
| https://bugs.webkit.org/show_bug.cgi?id=170495 |
| |
| Reviewed by Myles C. Maxfield. |
| |
| The kCTFontCascadeListAttribute key is used to obtain the cascade list for a font reference. |
| |
| I have not added a test, since CaptionUserPreferences::testingMode() returns true when running tests, |
| preventing this code path from being executed. |
| |
| * page/CaptionUserPreferencesMediaAF.cpp: |
| (WebCore::CaptionUserPreferencesMediaAF::captionsDefaultFontCSS): |
| |
| 2017-04-10 Chris Dumez <cdumez@apple.com> |
| |
| Drop Timer::startOneShot() overload taking a double |
| https://bugs.webkit.org/show_bug.cgi?id=170659 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| Drop Timer::startOneShot() overload taking a double as people should use Seconds type now. |
| |
| * Modules/geolocation/GeoNotifier.cpp: |
| (WebCore::GeoNotifier::startTimerIfNeeded): |
| * Modules/mediasession/WebMediaSessionManager.cpp: |
| (WebCore::WebMediaSessionManager::configureWatchdogTimer): |
| * Modules/mediasession/WebMediaSessionManager.h: |
| * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: |
| (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasChanged): |
| * Modules/vibration/Vibration.cpp: |
| (WebCore::Vibration::timerFired): |
| * Modules/websockets/WebSocketChannel.cpp: |
| (WebCore::WebSocketChannel::close): |
| * accessibility/AXObjectCache.cpp: |
| (WebCore::AXObjectCache::enqueuePasswordValueChangeNotification): |
| (WebCore::AXObjectCache::postLiveRegionChangeNotification): |
| (WebCore::AXObjectCache::focusAriaModalNode): |
| * css/CSSFontFace.cpp: |
| (WebCore::CSSFontFace::setStatus): |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::addToMatchedPropertiesCache): |
| * dom/Document.cpp: |
| (WebCore::Document::setVisualUpdatesAllowed): |
| (WebCore::Document::finishedParsing): |
| * dom/ScriptedAnimationController.cpp: |
| * editing/AlternativeTextController.cpp: |
| (WebCore::AlternativeTextController::startAlternativeTextUITimer): |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::addBehaviorRestrictionsOnEndIfNecessary): |
| (WebCore::HTMLMediaElement::handleSeekToPlaybackPosition): |
| * html/SearchInputType.cpp: |
| (WebCore::SearchInputType::startSearchEventTimer): |
| * html/ValidationMessage.cpp: |
| (WebCore::ValidationMessage::setMessageDOMAndStartTimer): |
| * html/canvas/WebGLRenderingContextBase.cpp: |
| * html/shadow/MediaControlElements.cpp: |
| (WebCore::MediaControlPanelElement::startTimer): |
| (WebCore::MediaControlPanelElement::makeTransparent): |
| * html/track/VTTRegion.cpp: |
| (WebCore::VTTRegion::startTimer): |
| * inspector/InspectorInstrumentation.cpp: |
| (WebCore::InspectorInstrumentation::frameScheduledNavigationImpl): |
| * inspector/InspectorInstrumentation.h: |
| (WebCore::InspectorInstrumentation::frameScheduledNavigation): |
| * inspector/InspectorPageAgent.cpp: |
| (WebCore::InspectorPageAgent::frameScheduledNavigation): |
| * inspector/InspectorPageAgent.h: |
| * loader/NavigationScheduler.cpp: |
| (WebCore::NavigationScheduler::startTimer): |
| * loader/cache/CachedResourceLoader.cpp: |
| (WebCore::CachedResourceLoader::documentDidFinishLoadEvent): |
| * loader/icon/IconDatabase.cpp: |
| * page/EventHandler.cpp: |
| * page/EventSource.cpp: |
| (WebCore::EventSource::scheduleReconnect): |
| * page/FocusController.cpp: |
| (WebCore::FocusController::setFocusedElementNeedsRepaint): |
| * page/FrameView.cpp: |
| (WebCore::FrameView::scrollPositionChanged): |
| (WebCore::FrameView::enableSpeculativeTilingIfNeeded): |
| * page/Settings.cpp: |
| (WebCore::Settings::Settings): |
| * page/Settings.h: |
| (WebCore::Settings::setTimeWithoutMouseMovementBeforeHidingControls): |
| (WebCore::Settings::timeWithoutMouseMovementBeforeHidingControls): |
| * page/SuspendableTimer.h: |
| * page/animation/CSSAnimationController.cpp: |
| * page/mac/EventHandlerMac.mm: |
| * page/mac/TextIndicatorWindow.mm: |
| (WebCore::TextIndicatorWindow::setTextIndicator): |
| * platform/HysteresisActivity.h: |
| (WebCore::HysteresisActivity::stop): |
| * platform/ScrollAnimationSmooth.cpp: |
| (WebCore::getAnimationParametersForGranularity): |
| (WebCore::ScrollAnimationSmooth::updatePerAxisData): |
| (WebCore::ScrollAnimationSmooth::animateScroll): |
| (WebCore::ScrollAnimationSmooth::animationTimerFired): |
| (WebCore::ScrollAnimationSmooth::startNextTimer): |
| * platform/ScrollAnimationSmooth.h: |
| * platform/Timer.h: |
| (WebCore::TimerBase::startRepeating): |
| * platform/audio/PlatformMediaSession.cpp: |
| (WebCore::PlatformMediaSession::scheduleClientDataBufferingCheck): |
| * platform/cocoa/ScrollController.mm: |
| (WebCore::ScrollController::scheduleStatelessScrollSnap): |
| * platform/gamepad/cocoa/GameControllerGamepadProvider.mm: |
| (WebCore::GameControllerGamepadProvider::gamepadHadInput): |
| * platform/gamepad/mac/HIDGamepadProvider.cpp: |
| (WebCore::HIDGamepadProvider::openAndScheduleManager): |
| (WebCore::HIDGamepadProvider::valuesChanged): |
| * platform/glib/MainThreadSharedTimerGLib.cpp: |
| (WebCore::MainThreadSharedTimer::setFireInterval): |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::startTimer): |
| (WebCore::BitmapImage::internalStartAnimation): |
| (WebCore::BitmapImage::advanceAnimation): |
| (WebCore::BitmapImage::resetAnimation): |
| * platform/graphics/BitmapImage.h: |
| * platform/graphics/MediaPlaybackTargetPicker.cpp: |
| * platform/graphics/ShadowBlur.cpp: |
| (WebCore::ScratchBuffer::scheduleScratchBufferPurge): |
| * platform/graphics/ca/LayerPool.cpp: |
| (WebCore::LayerPool::schedulePrune): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::MediaPlayerPrivateGStreamer::changePipelineState): |
| * platform/graphics/mac/GraphicsContext3DMac.mm: |
| (WebCore::GraphicsContext3DManager::updateHighPerformanceState): |
| * platform/graphics/texmap/BitmapTexturePool.cpp: |
| (WebCore::BitmapTexturePool::scheduleReleaseUnusedTextures): |
| (WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired): |
| * platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp: |
| (WebCore::TextureMapperPlatformLayerProxy::scheduleReleaseUnusedBuffers): |
| (WebCore::TextureMapperPlatformLayerProxy::releaseUnusedBuffersTimerFired): |
| * platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp: |
| * platform/gtk/ScrollAnimatorGtk.cpp: |
| (WebCore::ScrollAnimatorGtk::overlayScrollbarAnimationTimerFired): |
| (WebCore::ScrollAnimatorGtk::showOverlayScrollbars): |
| (WebCore::ScrollAnimatorGtk::hideOverlayScrollbars): |
| * platform/gtk/ScrollAnimatorGtk.h: |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: |
| (WebVideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason): |
| * platform/mac/ScrollAnimatorMac.mm: |
| (WebCore::ScrollAnimatorMac::startScrollbarPaintTimer): |
| * platform/mock/MediaPlaybackTargetPickerMock.cpp: |
| * platform/mock/PlatformSpeechSynthesizerMock.cpp: |
| (WebCore::PlatformSpeechSynthesizerMock::speak): |
| * platform/mock/TimerEventBasedMock.h: |
| (WebCore::TimerEvent::TimerEvent): |
| * platform/network/DNSResolveQueue.cpp: |
| (WebCore::DNSResolveQueue::add): |
| (WebCore::DNSResolveQueue::timerFired): |
| * platform/network/PingHandle.h: |
| * platform/network/curl/ResourceHandleManager.cpp: |
| (WebCore::ResourceHandleManager::downloadTimerCallback): |
| (WebCore::ResourceHandleManager::add): |
| (WebCore::ResourceHandleManager::cancel): |
| * platform/network/mac/NetworkStateNotifierMac.cpp: |
| * platform/network/soup/ResourceHandleSoup.cpp: |
| (WebCore::ResourceHandle::sendPendingRequest): |
| * rendering/ImageQualityController.cpp: |
| (WebCore::ImageQualityController::restartTimer): |
| * rendering/RenderLayerCompositor.cpp: |
| * rendering/RenderProgress.cpp: |
| (WebCore::RenderProgress::RenderProgress): |
| * rendering/RenderProgress.h: |
| * rendering/RenderText.cpp: |
| (WebCore::SecureTextTimer::restart): |
| * rendering/RenderTheme.cpp: |
| (WebCore::RenderTheme::animationRepeatIntervalForProgressBar): |
| * rendering/RenderTheme.h: |
| (WebCore::RenderTheme::mediaControlsFadeOutDuration): |
| * rendering/RenderThemeGtk.cpp: |
| (WebCore::RenderThemeGtk::animationRepeatIntervalForProgressBar): |
| * rendering/RenderThemeGtk.h: |
| * rendering/RenderThemeIOS.h: |
| * rendering/RenderThemeIOS.mm: |
| (WebCore::RenderThemeIOS::animationRepeatIntervalForProgressBar): |
| * rendering/RenderThemeMac.h: |
| * rendering/RenderThemeMac.mm: |
| (WebCore::RenderThemeMac::animationRepeatIntervalForProgressBar): |
| (WebCore::RenderThemeMac::animationDurationForProgressBar): |
| * replay/EventLoopInputDispatcher.cpp: |
| (WebCore::EventLoopInputDispatcher::dispatchInputSoon): |
| * svg/animation/SMILTimeContainer.cpp: |
| (WebCore::SMILTimeContainer::startTimer): |
| * testing/InternalSettings.cpp: |
| (WebCore::InternalSettings::setTimeWithoutMouseMovementBeforeHidingControls): |
| * testing/InternalSettings.h: |
| * testing/Internals.cpp: |
| (WebCore::Internals::setImageFrameDecodingDuration): |
| * xml/XMLHttpRequest.cpp: |
| (WebCore::XMLHttpRequest::createRequest): |
| |
| 2017-04-10 Miguel Gomez <magomez@igalia.com> |
| |
| REGRESSION(r205841): [GTK] Test fast/images/animated-png.html is failing since r205841 |
| https://bugs.webkit.org/show_bug.cgi?id=168425 |
| |
| Reviewed by Said Abou-Hallawa. |
| |
| There is a problem with animations that are blending their frames into the previous frame. Due to a change |
| in how pixel components are premultiplied (the result is now rounded up), the parameters to the blending |
| operation may vary in one unit, causing the result of the blending to be different from the expected result. |
| In order to fix this, a new parameter is added to indicate whether we want to use rounding up when |
| premultiplying or not, and ImageBackingStore uses that parameter to disable rounding up. |
| |
| Adjusted the expectation for fast/images/animated-png.html, as it must pass now. |
| |
| * platform/graphics/Color.cpp: |
| (WebCore::premultipliedChannel): |
| (WebCore::makePremultipliedRGBA): |
| * platform/graphics/Color.h: |
| * platform/graphics/ImageBackingStore.h: |
| (WebCore::ImageBackingStore::blendPixel): |
| (WebCore::ImageBackingStore::pixelValue): |
| |
| 2017-04-09 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [WK2] Add infrastructure to perform actions after an asynchronous position information request finishes |
| https://bugs.webkit.org/show_bug.cgi?id=170658 |
| <rdar://problem/31431450> |
| |
| Reviewed by Tim Horton. |
| |
| Minor adjustments to fix the build in the newest version of the SDK. |
| |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (-[WebItemProviderPasteboard setItemsFromObjectRepresentations:]): |
| (-[WebItemProviderPasteboard _tryToCreateAndAppendObjectOfClass:toArray:usingProvider:]): |
| |
| 2017-04-09 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [WTF] Annotate Seconds' member functions and operators with constexpr |
| https://bugs.webkit.org/show_bug.cgi?id=170662 |
| |
| Reviewed by Daniel Bates. |
| |
| * page/Frame.cpp: |
| |
| 2017-04-09 Chris Dumez <cdumez@apple.com> |
| |
| Drop Timer::startRepeating() overload taking a double |
| https://bugs.webkit.org/show_bug.cgi?id=170656 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| Drop Timer::startRepeating() overload taking a double as people should use Seconds type now. |
| |
| * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: |
| (WebCore::CanvasCaptureMediaStreamTrack::Source::startProducingData): |
| * editing/FrameSelection.cpp: |
| (WebCore::FrameSelection::updateAppearance): |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::startProgressEventTimer): |
| (WebCore::HTMLMediaElement::scheduleTimeupdateEvent): |
| * html/HTMLMediaElement.h: |
| * html/MediaController.cpp: |
| (MediaController::MediaController): |
| (MediaController::scheduleTimeupdateEvent): |
| * html/MediaController.h: |
| * html/MediaElementSession.cpp: |
| * inspector/InspectorOverlay.cpp: |
| (WebCore::InspectorOverlay::showPaintRect): |
| * loader/ProgressTracker.cpp: |
| * page/AutoscrollController.cpp: |
| * page/Frame.cpp: |
| * page/PageOverlay.cpp: |
| (WebCore::PageOverlay::startFadeAnimation): |
| * page/SuspendableTimer.h: |
| * page/WheelEventTestTrigger.cpp: |
| (WebCore::WheelEventTestTrigger::setTestCallbackAndStartNotificationTimer): |
| * platform/Theme.h: |
| (WebCore::Theme::caretBlinkInterval): |
| * platform/Timer.h: |
| * platform/cocoa/ScrollController.mm: |
| (WebCore::ScrollController::startSnapRubberbandTimer): |
| (WebCore::ScrollController::startScrollSnapTimer): |
| * platform/graphics/ca/TileGrid.cpp: |
| (WebCore::TileGrid::scheduleCohortRemoval): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::MediaPlayerPrivateGStreamer::setDownloadBuffering): |
| * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: |
| (WebCore::MockRealtimeAudioSourceMac::reconfigure): |
| * platform/mock/MockRealtimeAudioSource.cpp: |
| (WebCore::MockRealtimeAudioSource::startProducingData): |
| * platform/mock/MockRealtimeAudioSource.h: |
| (WebCore::MockRealtimeAudioSource::renderInterval): |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSource::startProducingData): |
| (WebCore::MockRealtimeVideoSource::applyFrameRate): |
| * rendering/RenderMarquee.cpp: |
| (WebCore::RenderMarquee::start): |
| (WebCore::RenderMarquee::updateMarqueeStyle): |
| * rendering/RenderTheme.h: |
| (WebCore::RenderTheme::caretBlinkInterval): |
| * rendering/RenderThemeGtk.cpp: |
| (WebCore::RenderThemeGtk::caretBlinkInterval): |
| * rendering/RenderThemeGtk.h: |
| * xml/XMLHttpRequestProgressEventThrottle.cpp: |
| (WebCore::XMLHttpRequestProgressEventThrottle::dispatchThrottledProgressEvent): |
| * xml/XMLHttpRequestProgressEventThrottle.h: |
| |
| 2017-04-09 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| generate-bindings-all.pl shouldn't use Perl threads |
| https://bugs.webkit.org/show_bug.cgi?id=170106 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| The use of interpreter-based threads in Perl is officially |
| discouraged and not all Linux distributions and BSD compile Perl |
| with threads support. Use fork instead of threads to run |
| generate-bindings.pl in parallel. |
| |
| * bindings/scripts/generate-bindings-all.pl: |
| (spawnGenerateBindingsIfNeeded): Added. |
| (executeCommand): Removed the workaround for Cygwin Perl threads. |
| (spawnCommand): Added. |
| (worker): Deleted. |
| |
| 2017-04-09 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| REGRESSION(r214635): Calculate image subsampling only for CG |
| https://bugs.webkit.org/show_bug.cgi?id=170353 |
| |
| Reviewed by Simon Fraser. |
| |
| In r214635, we needed to calculate the image scaleFactor for all platforms. |
| It was needed do the calculation: sizeForDrawing = sizeOfImage * imageScaleFactor. |
| This made ImageSource::subsamplingLevelForScale() now returns a SubsamplingLevel |
| not equal to SubsamplingLevel::Default if the image scaleFactor is greater |
| than {1, 1} for all platforms. The subsamplingLevel should only be used for CG. |
| |
| This is also a chance to make nativeImageDrawingScale() a across platform |
| function and move it to the GraphicsContext class. |
| |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::draw): |
| * platform/graphics/GraphicsContext.cpp: |
| (WebCore::GraphicsContext::scaleFactorForDrawing): |
| * platform/graphics/GraphicsContext.h: |
| * platform/graphics/ImageSource.cpp: |
| (WebCore::ImageSource::subsamplingLevelForScaleFactor): |
| (WebCore::ImageSource::subsamplingLevelForScale): Deleted. |
| * platform/graphics/ImageSource.h: |
| * platform/graphics/NativeImage.h: |
| * platform/graphics/cairo/NativeImageCairo.cpp: |
| (WebCore::nativeImageDrawingScale): Deleted. |
| * platform/graphics/cg/NativeImageCG.cpp: |
| (WebCore::nativeImageDrawingScale): Deleted. |
| * platform/graphics/win/NativeImageDirect2D.cpp: |
| (WebCore::nativeImageDrawingScale): Deleted. |
| |
| 2017-04-09 Chris Dumez <cdumez@apple.com> |
| |
| Start dropping Timer API dealing with double |
| https://bugs.webkit.org/show_bug.cgi?id=170649 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| Start dropping Timer API dealing with double as people should use Seconds now. |
| |
| * Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp: |
| (WebCore::WebKitMediaKeySession::generateKeyRequest): |
| (WebCore::WebKitMediaKeySession::update): |
| * Modules/geolocation/GeoNotifier.cpp: |
| (WebCore::GeoNotifier::setFatalError): |
| (WebCore::GeoNotifier::setUseCachedPosition): |
| * Modules/geolocation/Geolocation.cpp: |
| (WebCore::Geolocation::resume): |
| * Modules/indexeddb/IDBTransaction.cpp: |
| (WebCore::IDBTransaction::schedulePendingOperationTimer): |
| (WebCore::IDBTransaction::scheduleCompletedOperationTimer): |
| * Modules/indexeddb/server/UniqueIDBDatabase.cpp: |
| (WebCore::IDBServer::UniqueIDBDatabase::invokeOperationAndTransactionTimer): |
| * Modules/mediasource/SourceBuffer.cpp: |
| (WebCore::SourceBuffer::rangeRemoval): |
| (WebCore::SourceBuffer::appendBufferInternal): |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::scheduleActiveStateChange): |
| * Modules/mediastream/RTCDTMFSender.cpp: |
| (WebCore::RTCDTMFSender::scheduleDispatchEvent): |
| * Modules/mediastream/RTCDataChannel.cpp: |
| (WebCore::RTCDataChannel::scheduleDispatchEvent): |
| * Modules/notifications/Notification.cpp: |
| * Modules/notifications/NotificationCenter.cpp: |
| (WebCore::NotificationCenter::requestPermission): |
| * Modules/vibration/Vibration.cpp: |
| (WebCore::Vibration::vibrate): |
| * Modules/websockets/WebSocket.cpp: |
| (WebCore::WebSocket::resume): |
| * Modules/websockets/WebSocketChannel.cpp: |
| (WebCore::WebSocketChannel::resume): |
| * accessibility/AXObjectCache.cpp: |
| (WebCore::AXObjectCache::postNotification): |
| * bindings/js/GCController.cpp: |
| (WebCore::GCController::garbageCollectOnNextRunLoop): |
| * css/CSSFontSelector.cpp: |
| (WebCore::CSSFontSelector::beginLoadingFontSoon): |
| * dom/Document.cpp: |
| (WebCore::Document::scheduleStyleRecalc): |
| (WebCore::Document::updateFocusAppearanceSoon): |
| (WebCore::Document::resumeScheduledTasks): |
| (WebCore::Document::requestFullScreenForElement): |
| (WebCore::Document::webkitDidEnterFullScreenForElement): |
| (WebCore::Document::webkitDidExitFullScreenForElement): |
| (WebCore::Document::decrementLoadEventDelayCount): |
| (WebCore::Document::didAssociateFormControl): |
| (WebCore::Document::setCachedDOMCookies): |
| * dom/DocumentEventQueue.cpp: |
| (WebCore::DocumentEventQueue::enqueueEvent): |
| * dom/EventSender.h: |
| (WebCore::EventSender<T>::dispatchEventSoon): |
| * dom/Microtasks.cpp: |
| (WebCore::MicrotaskQueue::append): |
| * dom/ScriptRunner.cpp: |
| (WebCore::ScriptRunner::resume): |
| (WebCore::ScriptRunner::notifyFinished): |
| * dom/ScriptableDocumentParser.cpp: |
| (WebCore::ScriptableDocumentParser::executeScriptsWaitingForStylesheetsSoon): |
| * editing/Editor.cpp: |
| (WebCore::Editor::respondToChangedSelection): |
| * editing/SpellChecker.cpp: |
| (WebCore::SpellChecker::didCheck): |
| * html/HTMLFormElement.cpp: |
| (WebCore::HTMLFormElement::finishRequestAutocomplete): |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::scheduleDelayedAction): |
| (WebCore::HTMLMediaElement::beginScanning): |
| * html/HTMLPlugInElement.cpp: |
| (WebCore::HTMLPlugInElement::setDisplayState): |
| * html/HTMLSourceElement.cpp: |
| (WebCore::HTMLSourceElement::scheduleErrorEvent): |
| (WebCore::HTMLSourceElement::resume): |
| * html/HTMLTrackElement.cpp: |
| (WebCore::HTMLTrackElement::scheduleLoad): |
| * html/MediaController.cpp: |
| (MediaController::currentTime): |
| (MediaController::scheduleEvent): |
| * html/MediaDocument.cpp: |
| (WebCore::MediaDocument::mediaElementSawUnsupportedTracks): |
| * html/MediaElementSession.cpp: |
| (WebCore::MediaElementSession::externalOutputDeviceAvailableDidChange): |
| * html/ValidationMessage.cpp: |
| (WebCore::ValidationMessage::setMessage): |
| (WebCore::ValidationMessage::requestToHideMessage): |
| * html/canvas/WebGLRenderingContextBase.cpp: |
| (WebCore::WebGLRenderingContextBase::loseContextImpl): |
| (WebCore::WebGLRenderingContextBase::forceRestoreContext): |
| (WebCore::WebGLRenderingContextBase::dispatchContextLostEvent): |
| * html/parser/HTMLParserScheduler.cpp: |
| (WebCore::HTMLParserScheduler::continueNextChunkTimerFired): |
| (WebCore::HTMLParserScheduler::scheduleForResume): |
| (WebCore::HTMLParserScheduler::resume): |
| * html/shadow/MediaControlElements.cpp: |
| (WebCore::MediaControlTextTrackContainerElement::updateSizes): |
| * html/track/LoadableTextTrack.cpp: |
| (WebCore::LoadableTextTrack::scheduleLoad): |
| * inspector/InspectorCSSAgent.cpp: |
| (WebCore::ChangeRegionOversetTask::scheduleFor): |
| * inspector/InspectorDOMAgent.cpp: |
| (WebCore::RevalidateStyleAttributeTask::scheduleFor): |
| * inspector/InspectorFrontendClientLocal.cpp: |
| (WebCore::InspectorBackendDispatchTask::dispatch): |
| (WebCore::InspectorBackendDispatchTask::timerFired): |
| * inspector/WebHeapAgent.cpp: |
| (WebCore::SendGarbageCollectionEventsTask::addGarbageCollection): |
| * loader/DocumentLoader.cpp: |
| (WebCore::DocumentLoader::startDataLoadTimer): |
| (WebCore::DocumentLoader::deliverSubstituteResourcesAfterDelay): |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::startCheckCompleteTimer): |
| * loader/ImageLoader.cpp: |
| (WebCore::ImageLoader::updatedHasPendingEvent): |
| * loader/TextTrackLoader.cpp: |
| (WebCore::TextTrackLoader::notifyFinished): |
| (WebCore::TextTrackLoader::newCuesParsed): |
| (WebCore::TextTrackLoader::fileFailedToParse): |
| * loader/appcache/ApplicationCacheGroup.cpp: |
| (WebCore::ApplicationCacheGroup::scheduleReachedMaxAppCacheSizeCallback): |
| * loader/cache/CachedResource.cpp: |
| (WebCore::CachedResource::Callback::Callback): |
| * loader/cache/CachedResourceLoader.cpp: |
| (WebCore::CachedResourceLoader::loadDone): |
| * loader/cache/MemoryCache.cpp: |
| (WebCore::MemoryCache::pruneSoon): |
| * page/CaptionUserPreferences.cpp: |
| (WebCore::CaptionUserPreferences::notify): |
| * page/CaptionUserPreferencesMediaAF.cpp: |
| (WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges): |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::postMessage): |
| * page/DeviceController.cpp: |
| (WebCore::DeviceController::addDeviceEventListener): |
| * page/EventHandler.cpp: |
| (WebCore::EventHandler::scheduleHoverStateUpdate): |
| * page/EventSource.cpp: |
| (WebCore::EventSource::scheduleInitialConnect): |
| * page/FrameView.cpp: |
| (WebCore::FrameView::layout): |
| (WebCore::FrameView::performPostLayoutTasks): |
| * page/Settings.cpp: |
| (WebCore::Settings::setLoadsImagesAutomatically): |
| (WebCore::Settings::setImagesEnabled): |
| * page/SuspendableTimer.h: |
| * page/animation/CSSAnimationController.cpp: |
| (WebCore::CSSAnimationControllerPrivate::startUpdateStyleIfNeededDispatcher): |
| * page/mac/ServicesOverlayController.mm: |
| (WebCore::ServicesOverlayController::invalidateHighlightsOfType): |
| * page/scrolling/AsyncScrollingCoordinator.cpp: |
| (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll): |
| * page/scrolling/ios/ScrollingCoordinatorIOS.mm: |
| (WebCore::ScrollingCoordinatorIOS::scheduleTreeStateCommit): |
| * page/scrolling/mac/ScrollingCoordinatorMac.mm: |
| (WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit): |
| * platform/GenericTaskQueue.cpp: |
| (WebCore::TaskDispatcher<Timer>::postTask): |
| * platform/Scrollbar.cpp: |
| (WebCore::Scrollbar::autoscrollPressedPart): |
| (WebCore::Scrollbar::startTimerIfNeeded): |
| * platform/Scrollbar.h: |
| * platform/ScrollbarTheme.h: |
| (WebCore::ScrollbarTheme::initialAutoscrollTimerDelay): |
| (WebCore::ScrollbarTheme::autoscrollTimerDelay): |
| * platform/Timer.cpp: |
| * platform/Timer.h: |
| (WebCore::TimerBase::startRepeating): |
| (WebCore::TimerBase::startOneShot): |
| (WebCore::TimerBase::augmentFireInterval): |
| (WebCore::TimerBase::augmentRepeatInterval): |
| * platform/gamepad/mac/HIDGamepadProvider.cpp: |
| (WebCore::HIDGamepadProvider::deviceAdded): |
| * platform/graphics/MediaPlayer.cpp: |
| (WebCore::MediaPlayer::networkStateChanged): |
| * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm: |
| (WebCore::MediaSelectionGroupAVFObjC::updateOptions): |
| (WebCore::MediaSelectionGroupAVFObjC::setSelectedOption): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance): |
| * platform/graphics/ca/TileCoverageMap.cpp: |
| (WebCore::TileCoverageMap::setNeedsUpdate): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint): |
| * platform/graphics/gstreamer/VideoSinkGStreamer.cpp: |
| (VideoRenderRequestScheduler::requestRender): |
| * platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp: |
| (WebCore::TextureMapperPlatformLayerProxy::scheduleUpdateOnCompositorThread): |
| * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: |
| (WebCore::CoordinatedGraphicsLayer::addAnimation): |
| * platform/gtk/ScrollAnimatorGtk.cpp: |
| (WebCore::ScrollAnimatorGtk::showOverlayScrollbars): |
| * platform/gtk/ScrollbarThemeGtk.h: |
| * platform/ios/LegacyTileCache.mm: |
| (WebCore::LegacyTileCache::finishedCreatingTiles): |
| (WebCore::LegacyTileCache::setSpeculativeTileCreationEnabled): |
| * platform/ios/ScrollbarThemeIOS.h: |
| * platform/ios/ScrollbarThemeIOS.mm: |
| (WebCore::ScrollbarThemeIOS::initialAutoscrollTimerDelay): |
| (WebCore::ScrollbarThemeIOS::autoscrollTimerDelay): |
| * platform/mac/ScrollAnimatorMac.mm: |
| (WebCore::ScrollAnimatorMac::sendContentAreaScrolledSoon): |
| * platform/mac/ScrollbarThemeMac.h: |
| * platform/mac/ScrollbarThemeMac.mm: |
| (WebCore::ScrollbarThemeMac::preferencesChanged): |
| (WebCore::ScrollbarThemeMac::initialAutoscrollTimerDelay): |
| (WebCore::ScrollbarThemeMac::autoscrollTimerDelay): |
| * platform/mock/DeviceOrientationClientMock.cpp: |
| (WebCore::DeviceOrientationClientMock::setOrientation): |
| * platform/mock/GeolocationClientMock.cpp: |
| (WebCore::GeolocationClientMock::asyncUpdatePermission): |
| (WebCore::GeolocationClientMock::asyncUpdateController): |
| * platform/mock/MockMediaEndpoint.cpp: |
| (WebCore::MockMediaEndpoint::dispatchFakeIceCandidates): |
| (WebCore::MockMediaEndpoint::iceCandidateTimerFired): |
| (WebCore::MockMediaEndpoint::stepIceTransportStates): |
| (WebCore::MockMediaEndpoint::iceTransportTimerFired): |
| (WebCore::MockMediaEndpoint::unmuteRemoteSourcesByMid): |
| (WebCore::MockMediaEndpoint::unmuteTimerFired): |
| * platform/network/DataURLDecoder.cpp: |
| (WebCore::DataURLDecoder::DecodingResultDispatcher::startTimer): |
| * platform/network/ResourceHandle.cpp: |
| (WebCore::ResourceHandle::scheduleFailure): |
| (WebCore::ResourceHandle::setDefersLoading): |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::scheduleCompositingLayerUpdate): |
| * rendering/RenderNamedFlowThread.cpp: |
| (WebCore::RenderNamedFlowThread::dispatchRegionOversetChangeEventIfNeeded): |
| * rendering/RenderScrollbarTheme.h: |
| * rendering/RenderView.cpp: |
| (WebCore::RenderView::scheduleLazyRepaint): |
| * style/StyleScope.cpp: |
| (WebCore::Style::Scope::scheduleUpdate): |
| * svg/SVGElement.cpp: |
| (WebCore::SVGElement::sendSVGLoadEventIfPossibleAsynchronously): |
| * xml/XMLHttpRequest.cpp: |
| (WebCore::XMLHttpRequest::prepareToSend): |
| (WebCore::XMLHttpRequest::didFail): |
| (WebCore::XMLHttpRequest::resume): |
| * xml/XMLHttpRequestProgressEventThrottle.cpp: |
| (WebCore::XMLHttpRequestProgressEventThrottle::resume): |
| |
| 2017-04-08 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [Variation Fonts] Width values of GX fonts are not mapped correctly |
| https://bugs.webkit.org/show_bug.cgi?id=170367 |
| |
| Reviewed by Simon Fraser. |
| |
| For some reason, when I performed my calculations for how to map the 'wdth' axis of GX-style |
| variation fonts, I thought that font-stretch: 100% should map to a variation value of 0.0. |
| Instead, this should map to 1.0. |
| |
| Test: fast/text/variations/gx-width.html |
| |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::denormalizeSlope): |
| (WebCore::denormalizeVariationWidth): |
| (WebCore::normalizeVariationWidth): |
| (WebCore::normalizeWidth): |
| (WebCore::preparePlatformFont): |
| (WebCore::variationCapabilitiesForFontDescriptor): |
| (WebCore::denormalizeWidth): Deleted. |
| |
| 2017-04-08 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream Mac] Revert change of Mac video capture format |
| https://bugs.webkit.org/show_bug.cgi?id=170642 |
| <rdar://problem/31520492> |
| |
| Reviewed by Sam Weinig. |
| |
| Revert r214968 which changed macOS video capture format to kCVPixelFormatType_420YpCbCr8BiPlanarFullRange |
| from kCVPixelFormatType_420YpCbCr8Planar because AVSampleBufferDisplayLayer sometimes fails |
| to display the former. |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| |
| 2017-04-08 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| A synchronous DecodingOptions should be compatible with any asynchronous sizeForDrawing DecodingOptions |
| https://bugs.webkit.org/show_bug.cgi?id=170577 |
| |
| Reviewed by Simon Fraser. |
| |
| Once a synchronous decoded frame is found, there is no need to decode it |
| again. This decoded frame is suitable for any sizeForDrawing. This will |
| prevent double decoding if one image client wants synchronous decoded |
| frame while the other needs an asynchronous decode frame for a specific |
| sizeForDrawing. |
| |
| Test: fast/images/async-image-background-image-repeated.html |
| |
| * platform/graphics/DecodingOptions.h: |
| (WebCore::DecodingOptions::DecodingOptions): |
| (WebCore::DecodingOptions::isNone): |
| (WebCore::DecodingOptions::isAsynchronousCompatibleWith): |
| |
| 2017-04-08 Simon Fraser <simon.fraser@apple.com> |
| |
| Align the timers for throttled rAF to reduce power usage |
| https://bugs.webkit.org/show_bug.cgi?id=170630 |
| rdar://problem/31490620 |
| |
| Reviewed by Chris Dumez. |
| |
| Align the timers for all throttled ScriptedAnimationControllers in the process with |
| a resolution of 30ms, which reduces process wake-ups and thus saves power. |
| |
| * dom/ScriptedAnimationController.cpp: |
| (WebCore::ScriptedAnimationController::scheduleAnimation): |
| |
| 2017-04-08 Chris Dumez <cdumez@apple.com> |
| |
| Drop std::chrono support from Timer class |
| https://bugs.webkit.org/show_bug.cgi?id=170645 |
| |
| Reviewed by Sam Weinig. |
| |
| Drop std::chrono support from Timer class now that we prefer using Seconds type. |
| |
| * css/CSSImageGeneratorValue.cpp: |
| * html/HTMLPlugInImageElement.cpp: |
| * html/canvas/WebGLRenderingContextBase.cpp: |
| * loader/cache/CachedResource.cpp: |
| (WebCore::deadDecodedDataDeletionIntervalForResourceType): |
| (WebCore::CachedResource::destroyDecodedDataIfNeeded): |
| * loader/cache/MemoryCache.cpp: |
| (WebCore::MemoryCache::MemoryCache): |
| * loader/cache/MemoryCache.h: |
| (WebCore::MemoryCache::setDeadDecodedDataDeletionInterval): |
| (WebCore::MemoryCache::deadDecodedDataDeletionInterval): |
| * page/PerformanceMonitor.cpp: |
| * page/SuspendableTimer.h: |
| * page/mac/ServicesOverlayController.h: |
| * page/mac/ServicesOverlayController.mm: |
| (WebCore::ServicesOverlayController::selectionRectsDidChange): |
| (WebCore::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown): |
| (WebCore::ServicesOverlayController::determineActiveHighlight): |
| (WebCore::ServicesOverlayController::mouseEvent): |
| * platform/Timer.h: |
| (WebCore::TimerBase::startRepeating): |
| (WebCore::TimerBase::startOneShot): |
| (WebCore::TimerBase::augmentFireInterval): |
| (WebCore::TimerBase::augmentRepeatInterval): |
| (WebCore::DeferrableOneShotTimer::DeferrableOneShotTimer): |
| * platform/graphics/FontCache.cpp: |
| (WebCore::FontCache::fontForFamily): |
| * platform/graphics/ca/TileController.cpp: |
| * platform/graphics/cg/IOSurfacePool.cpp: |
| * platform/graphics/cg/SubimageCacheWithTimer.cpp: |
| * xml/XMLHttpRequest.cpp: |
| (WebCore::XMLHttpRequest::setTimeout): |
| (WebCore::XMLHttpRequest::createRequest): |
| * xml/XMLHttpRequest.h: |
| |
| 2017-04-08 Simon Fraser <simon.fraser@apple.com> |
| |
| Update CSSProperties.json with correct fill-and-stroke status, and other cleanup |
| https://bugs.webkit.org/show_bug.cgi?id=170643 |
| |
| Reviewed by Chris Dumez. |
| |
| Structural changes: |
| - move implementation-related "comment" blocks into "codegen-properties" |
| - move status-related "comment" blocks into "status" |
| |
| Add the concept of "obsolete-category" and "obsolete-url" for properties |
| like the text-fill-and-stroke properties that used to be specified in SVG but |
| now have their own module shared with CSS. |
| |
| Update the status of paint-order, stroke-linecap, stroke-linejoin, stroke-miterlimit |
| and stroke-width to "supported", overriding the default for css-text-fill-and-stroke which |
| is "under consideration". |
| |
| Add display values "flow" and "flow-root" but mark them as unimplemented. |
| |
| Fix makeprop.pl to ignore comments inside codegen-properties. |
| |
| * css/CSSProperties.json: |
| * css/makeprop.pl: |
| (addProperty): |
| |
| 2017-04-08 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream iOS] Update muted state when interrupted |
| https://bugs.webkit.org/show_bug.cgi?id=170605 |
| <rdar://problem/31503896> |
| |
| Reviewed by Youenn Fablet. |
| |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::setMuted): Don't check both m_stopped and stopped(). Split code |
| to notify observers out into notifyMutedObservers. |
| (WebCore::RealtimeMediaSource::notifyMutedObservers): Split from setMuted. |
| * platform/mediastream/RealtimeMediaSource.h: |
| |
| * platform/mediastream/mac/AVMediaCaptureSource.h: |
| * platform/mediastream/mac/AVMediaCaptureSource.mm: |
| (WebCore::AVMediaCaptureSource::captureSessionIsRunningDidChange): Set m_muted directly and |
| call notifyMutedObservers because the session has already stopped running. |
| (WebCore::AVMediaCaptureSource::isProducingData): Move from .h file to make debugging easier. |
| |
| 2017-04-08 Simon Fraser <simon.fraser@apple.com> |
| |
| Unprefix CSS cursor values grab and grabbing |
| https://bugs.webkit.org/show_bug.cgi?id=170543 |
| |
| Reviewed by Jon Lee. |
| |
| Add support for unprefixed "grab" and "grabbing" values for cursor (retaining |
| support for the prefixed values) which are now in <https://drafts.csswg.org/css-ui-3/#cursor> |
| |
| Canonicalize the order of the values based on the order in the spec in the enums |
| and switch statements. |
| |
| Tested by fast/css/cursor-parsing.html |
| |
| * css/CSSPrimitiveValueMappings.h: |
| (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): |
| (WebCore::CSSPrimitiveValue::operator ECursor): |
| * css/CSSProperties.json: |
| * css/CSSValueKeywords.in: |
| * page/EventHandler.cpp: |
| (WebCore::EventHandler::selectCursor): |
| * rendering/style/RenderStyleConstants.h: |
| |
| 2017-04-08 Youenn Fablet <youenn@apple.com> |
| |
| WebRTC tests gardening |
| https://bugs.webkit.org/show_bug.cgi?id=170508 |
| |
| Reviewed by Eric Carlson. |
| |
| * Configurations/FeatureDefines.xcconfig: Changing webrtc enabling for ios. |
| |
| 2017-04-08 Youenn Fablet <youenn@apple.com> |
| |
| MediaStreamTrack id should be preserved by PeerConnection |
| https://bugs.webkit.org/show_bug.cgi?id=170624 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by updated test. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::createReceiverForSource): Setting track id according source id. |
| |
| 2017-04-08 Chris Dumez <cdumez@apple.com> |
| |
| Timer's nextFireInterval() / repeatInterval() should return Seconds |
| https://bugs.webkit.org/show_bug.cgi?id=170639 |
| |
| Reviewed by Simon Fraser. |
| |
| Timer's nextFireInterval() / repeatInterval() should return Seconds, not double. |
| |
| * loader/NavigationScheduler.cpp: |
| * page/DOMTimer.cpp: |
| (WebCore::DOMTimer::updateTimerIntervalIfNecessary): |
| * page/SuspendableTimer.cpp: |
| (WebCore::SuspendableTimer::suspend): |
| (WebCore::SuspendableTimer::repeatInterval): |
| * page/SuspendableTimer.h: |
| * page/animation/AnimationBase.cpp: |
| (WebCore::AnimationBase::timeToNextService): |
| (WebCore::AnimationBase::getTimeToNextEvent): |
| (WebCore::AnimationBase::goIntoEndingOrLoopingState): |
| * page/animation/AnimationBase.h: |
| * page/animation/CSSAnimationController.cpp: |
| (WebCore::CSSAnimationControllerPrivate::updateAnimations): |
| (WebCore::CSSAnimationControllerPrivate::updateAnimationTimerForRenderer): |
| (WebCore::CSSAnimationControllerPrivate::updateAnimationTimer): |
| (WebCore::CSSAnimationControllerPrivate::animationFrameCallbackFired): |
| * page/animation/CSSAnimationControllerPrivate.h: |
| * page/animation/CompositeAnimation.cpp: |
| (WebCore::CompositeAnimation::timeToNextService): |
| * page/animation/CompositeAnimation.h: |
| * page/animation/ImplicitAnimation.cpp: |
| (WebCore::ImplicitAnimation::timeToNextService): |
| * page/animation/ImplicitAnimation.h: |
| * page/animation/KeyframeAnimation.cpp: |
| (WebCore::KeyframeAnimation::timeToNextService): |
| * page/animation/KeyframeAnimation.h: |
| * platform/ThreadTimers.cpp: |
| (WebCore::ThreadTimers::sharedTimerFiredInternal): |
| * platform/Timer.cpp: |
| (WebCore::TimerBase::nextFireInterval): |
| * platform/Timer.h: |
| (WebCore::TimerBase::repeatInterval): |
| * platform/graphics/ca/TileController.cpp: |
| (WebCore::TileController::setIsInWindow): |
| (WebCore::TileController::scheduleTileRevalidation): |
| * platform/graphics/ca/TileController.h: |
| * platform/graphics/ca/TileGrid.cpp: |
| (WebCore::TileGrid::revalidateTiles): |
| |
| 2017-04-08 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Unreviewed Mac cmake buildfix after r215051, just for fun. |
| https://bugs.webkit.org/show_bug.cgi?id=169761 |
| |
| * PlatformMac.cmake: |
| |
| 2017-04-07 Simon Fraser <simon.fraser@apple.com> |
| |
| Build fix: TimerBase::start(double, double) can't be inline and exported, |
| so make it non-inline. |
| |
| * platform/Timer.cpp: |
| (WebCore::TimerBase::start): |
| * platform/Timer.h: |
| (WebCore::TimerBase::start): Deleted. |
| |
| 2017-04-07 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (r203941): iAd Producer widgets fail to play in iBooks |
| https://bugs.webkit.org/show_bug.cgi?id=170635 |
| <rdar://problem/30797958> |
| |
| Reviewed by Daniel Bates. |
| |
| Extend the MouseEvent::initMouseEvent() workaround we added for iAd Producer |
| to iBooks since the iBooks widgets generated by iAd Producer contain the same |
| bug. |
| |
| * dom/MouseEvent.cpp: |
| (WebCore::MouseEvent::initMouseEventQuirk): |
| |
| 2017-04-07 Chris Dumez <cdumez@apple.com> |
| |
| Start using MonotonicTime / Seconds in Timer class |
| https://bugs.webkit.org/show_bug.cgi?id=170625 |
| |
| Reviewed by Simon Fraser. |
| |
| Start using MonotonicTime / Seconds in Timer class. More work will be needed |
| for the transition to be complete. I plan to do this in a follow-up. |
| |
| * page/DOMTimer.cpp: |
| (WebCore::DOMTimer::alignedFireTime): |
| * page/DOMTimer.h: |
| * page/SuspendableTimer.cpp: |
| (WebCore::SuspendableTimer::suspend): |
| (WebCore::SuspendableTimer::startRepeating): |
| (WebCore::SuspendableTimer::startOneShot): |
| (WebCore::SuspendableTimer::repeatInterval): |
| (WebCore::SuspendableTimer::augmentFireInterval): |
| (WebCore::SuspendableTimer::augmentRepeatInterval): |
| * page/SuspendableTimer.h: |
| (WebCore::SuspendableTimer::startRepeating): |
| (WebCore::SuspendableTimer::startOneShot): |
| (WebCore::SuspendableTimer::augmentFireInterval): |
| (WebCore::SuspendableTimer::augmentRepeatInterval): |
| * platform/ThreadTimers.cpp: |
| (WebCore::ThreadTimers::ThreadTimers): |
| (WebCore::ThreadTimers::setSharedTimer): |
| (WebCore::ThreadTimers::updateSharedTimer): |
| (WebCore::ThreadTimers::sharedTimerFiredInternal): |
| (WebCore::ThreadTimers::fireTimersInNestedEventLoop): |
| * platform/ThreadTimers.h: |
| * platform/Timer.cpp: |
| (WebCore::TimerHeapLessThanFunction::operator()): |
| (WebCore::TimerBase::TimerBase): |
| (WebCore::TimerBase::start): |
| (WebCore::TimerBase::stop): |
| (WebCore::TimerBase::nextFireInterval): |
| (WebCore::TimerBase::heapPop): |
| (WebCore::TimerBase::updateHeapIfNeeded): |
| (WebCore::TimerBase::setNextFireTime): |
| (WebCore::TimerBase::nextUnalignedFireInterval): |
| * platform/Timer.h: |
| (WebCore::TimerBase::start): |
| (WebCore::TimerBase::startOneShot): |
| (WebCore::TimerBase::repeatInterval): |
| (WebCore::TimerBase::repeatIntervalSeconds): |
| (WebCore::TimerBase::augmentFireInterval): |
| (WebCore::TimerBase::augmentRepeatInterval): |
| (WebCore::TimerBase::alignedFireTime): |
| (WebCore::TimerBase::isActive): |
| * testing/Internals.cpp: |
| (WebCore::Internals::isTimerThrottled): |
| |
| 2017-04-07 Yuichiro Kikura <y.kikura@gmail.com> |
| |
| WebGPU: implement ComputeCommandEncoder and related components |
| https://bugs.webkit.org/show_bug.cgi?id=170444 |
| |
| Reviewed by Alex Christensen. |
| |
| I implemented WebGPUComputeCommandEncoder and related components based on the WebGPU proposal. |
| https://webkit.org/wp-content/uploads/webgpu-api-proposal.html |
| |
| Test: fast/canvas/webgpu/webgpu-dispatch.html |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * PlatformMac.cmake: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSWebGPUCommandBufferCustom.cpp: Added. |
| (WebCore::JSWebGPUCommandBuffer::completed): |
| * html/canvas/WebGPUCommandBuffer.cpp: |
| (WebCore::WebGPUCommandBuffer::createComputeCommandEncoder): |
| * html/canvas/WebGPUCommandBuffer.h: |
| * html/canvas/WebGPUCommandBuffer.idl: |
| * html/canvas/WebGPUComputeCommandEncoder.cpp: Added. |
| (WebCore::GPUSizeMake): |
| (WebCore::WebGPUComputeCommandEncoder::create): |
| (WebCore::WebGPUComputeCommandEncoder::WebGPUComputeCommandEncoder): |
| (WebCore::WebGPUComputeCommandEncoder::~WebGPUComputeCommandEncoder): |
| (WebCore::WebGPUComputeCommandEncoder::setComputePipelineState): |
| (WebCore::WebGPUComputeCommandEncoder::setBuffer): |
| (WebCore::WebGPUComputeCommandEncoder::dispatch): |
| (WebCore::WebGPUComputeCommandEncoder::endEncoding): |
| * html/canvas/WebGPUComputeCommandEncoder.h: Copied from Source/WebCore/html/canvas/WebGPUCommandBuffer.h. |
| (WebCore::WebGPUComputeCommandEncoder::computeCommandEncoder): |
| * html/canvas/WebGPUComputeCommandEncoder.idl: Copied from Source/WebCore/html/canvas/WebGPUCommandBuffer.idl. |
| * html/canvas/WebGPUComputePipelineState.cpp: Copied from Source/WebCore/platform/graphics/gpu/GPUCommandBuffer.cpp. |
| (WebCore::WebGPUComputePipelineState::create): |
| (WebCore::WebGPUComputePipelineState::WebGPUComputePipelineState): |
| (WebCore::WebGPUComputePipelineState::~WebGPUComputePipelineState): |
| * html/canvas/WebGPUComputePipelineState.h: Copied from Source/WebCore/html/canvas/WebGPUCommandBuffer.h. |
| (WebCore::WebGPUComputePipelineState::computePipelineState): |
| * html/canvas/WebGPUComputePipelineState.idl: Copied from Source/WebCore/html/canvas/WebGPUCommandBuffer.idl. |
| * html/canvas/WebGPURenderingContext.cpp: |
| (WebCore::WebGPURenderingContext::createComputePipelineState): |
| * html/canvas/WebGPURenderingContext.h: |
| * html/canvas/WebGPURenderingContext.idl: |
| * html/canvas/WebGPUSize.h: Copied from Source/WebCore/html/canvas/WebGPUCommandBuffer.idl. |
| * html/canvas/WebGPUSize.idl: Copied from Source/WebCore/html/canvas/WebGPUCommandBuffer.idl. |
| * platform/graphics/cocoa/GPUCommandBufferMetal.mm: |
| (WebCore::GPUCommandBuffer::completed): |
| * platform/graphics/cocoa/GPUComputeCommandEncoderMetal.mm: Added. |
| (WebCore::MTLSizeMake): |
| (WebCore::GPUComputeCommandEncoder::GPUComputeCommandEncoder): |
| (WebCore::GPUComputeCommandEncoder::setComputePipelineState): |
| (WebCore::GPUComputeCommandEncoder::setBuffer): |
| (WebCore::GPUComputeCommandEncoder::dispatch): |
| (WebCore::GPUComputeCommandEncoder::endEncoding): |
| (WebCore::GPUComputeCommandEncoder::platformComputeCommandEncoder): |
| * platform/graphics/cocoa/GPUComputePipelineStateMetal.mm: Copied from Source/WebCore/platform/graphics/gpu/GPUCommandBuffer.cpp. |
| (WebCore::GPUComputePipelineState::GPUComputePipelineState): |
| (WebCore::GPUComputePipelineState::platformComputePipelineState): |
| * platform/graphics/gpu/GPUCommandBuffer.cpp: |
| (WebCore::GPUCommandBuffer::createComputeCommandEncoder): |
| * platform/graphics/gpu/GPUCommandBuffer.h: |
| * platform/graphics/gpu/GPUComputeCommandEncoder.cpp: Copied from Source/WebCore/platform/graphics/gpu/GPUCommandBuffer.cpp. |
| (WebCore::GPUComputeCommandEncoder::create): |
| (WebCore::GPUComputeCommandEncoder::~GPUComputeCommandEncoder): |
| (WebCore::GPUComputeCommandEncoder::setComputePipelineState): |
| (WebCore::GPUComputeCommandEncoder::setBuffer): |
| (WebCore::GPUComputeCommandEncoder::endEncoding): |
| * platform/graphics/gpu/GPUComputeCommandEncoder.h: Copied from Source/WebCore/platform/graphics/gpu/GPUCommandBuffer.h. |
| * platform/graphics/gpu/GPUComputePipelineState.cpp: Copied from Source/WebCore/html/canvas/WebGPUCommandBuffer.idl. |
| (WebCore::GPUComputePipelineState::create): |
| (WebCore::GPUComputePipelineState::~GPUComputePipelineState): |
| * platform/graphics/gpu/GPUComputePipelineState.h: Copied from Source/WebCore/platform/graphics/gpu/GPUCommandBuffer.h. |
| * platform/graphics/gpu/GPUSize.h: Copied from Source/WebCore/html/canvas/WebGPUCommandBuffer.idl. |
| |
| 2017-04-07 Alex Christensen <achristensen@webkit.org> |
| |
| Private browsing sessions should not look in keychain for client certificates |
| https://bugs.webkit.org/show_bug.cgi?id=170618 |
| <rdar://problem/18457427> |
| |
| Reviewed by Dan Bernstein. |
| |
| Our client certificate testing in WebKit leaves much to be desired. |
| See rdar://problem/17694210 for reproduction steps. |
| |
| * platform/spi/cf/CFNetworkSPI.h: |
| Add some new SPI. |
| |
| 2017-04-07 Zalan Bujtas <zalan@apple.com> |
| |
| Simple line layout: FlowContents::segmentIndexForRunSlow skips empty runs. |
| https://bugs.webkit.org/show_bug.cgi?id=170552 |
| |
| Reviewed by Antti Koivisto. |
| |
| The compare function passed to std::lower_bound completely misses empty runs. |
| |
| Test: fast/text/simple-line-layout-hover-over-subsequent-linebreaks.html |
| |
| * rendering/SimpleLineLayoutFlowContents.cpp: |
| (WebCore::SimpleLineLayout::FlowContents::segmentIndexForRunSlow): |
| |
| 2017-04-07 Chris Dumez <cdumez@apple.com> |
| |
| We should log how much CPU a background process was using when killing it due to CPU limiting |
| https://bugs.webkit.org/show_bug.cgi?id=170619 |
| |
| Reviewed by Andreas Kling. |
| |
| CPUMonitor now passes the CPU usage to the callback when it exceeds the threashold. |
| |
| * platform/CPUMonitor.cpp: |
| (WebCore::CPUMonitor::timerFired): |
| * platform/CPUMonitor.h: |
| |
| 2017-04-07 Chris Dumez <cdumez@apple.com> |
| |
| Audible autoplay videos should not get paused when outside the viewport |
| https://bugs.webkit.org/show_bug.cgi?id=170610 |
| <rdar://problem/31505984> |
| |
| Reviewed by Eric Carlson. |
| |
| Audible autoplay videos should not get paused when outside the viewport as this |
| would be observable by the user. |
| |
| Test: media/video-restricted-invisible-autoplay-allowed-if-audible.html |
| |
| * html/MediaElementSession.cpp: |
| (WebCore::MediaElementSession::autoplayPermitted): |
| |
| 2017-04-07 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| REGRESSION(r211382): Complex text with justification erroneously overflows containers |
| https://bugs.webkit.org/show_bug.cgi?id=170399 |
| <rdar://problem/31442008> |
| |
| Reviewed by Simon Fraser. |
| |
| When we perform justification, we adjust glyphs' advances to add extra space between words. |
| ComplexTextController maintains an invariant where m_totalWidth is equal to the sum of these |
| advances. However, in RTL text, inserting extra justification space to the left of a glyph |
| would break that invariant, and would increase the advances of two glyphs instead of just |
| one. Then, when we go to draw the text, the sum of the advances is wider than m_totalWidth, |
| which means the glyphs would be drawn outside of their container. |
| |
| This regressed in r211382 simply because of an oversight and because there were no tests for |
| this codepath. |
| |
| Test: ComplexTextControllerTest.TotalWidthWithJustification |
| |
| * platform/graphics/ComplexTextController.cpp: |
| (WebCore::ComplexTextController::adjustGlyphsAndAdvances): |
| * rendering/InlineBox.h: |
| (WebCore::InlineBox::InlineBox): |
| |
| 2017-04-07 Chris Dumez <cdumez@apple.com> |
| |
| Throttle / Align DOM Timers in cross-origin iframes to 30fps |
| https://bugs.webkit.org/show_bug.cgi?id=170613 |
| <rdar://problem/31506444> |
| |
| Reviewed by Simon Fraser. |
| |
| Throttle / Align DOM Timers in cross-origin iframes to 30fps unless the user |
| has interacted with them, in order to reduce power use. |
| |
| Test: http/tests/frame-throttling/timer-throttle-in-cross-origin-subframe.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::domTimerAlignmentInterval): |
| (WebCore::Document::updateLastHandledUserGestureTimestamp): |
| * page/DOMTimer.h: |
| |
| 2017-04-07 John Wilander <wilander@apple.com> |
| |
| Follow-up fix for Soup platform. |
| https://bugs.webkit.org/show_bug.cgi?id=170322 |
| |
| Unreviewed build fix. Error introduced by me in |
| https://trac.webkit.org/changeset/215104/webkit. |
| |
| No new tests. |
| |
| * platform/network/soup/SocketStreamHandleImpl.h: |
| Move parameter change to the right |
| SocketStreamHandleImpl::create() function. |
| |
| 2017-04-07 John Wilander <wilander@apple.com> |
| |
| WebSocket streams should have network usage attributed to correct process |
| https://bugs.webkit.org/show_bug.cgi?id=170322 |
| <rdar://problem/26413551> |
| |
| Reviewed by Alex Christensen. |
| |
| Tested manually since it requires a per-app VPN. |
| |
| * page/SocketProvider.cpp: |
| (WebCore::SocketProvider::createSocketStreamHandle): |
| Sends in an empty struct since it doesn't have access to |
| platform dependent sourceApplicationAuditData. |
| * platform/network/SocketStreamHandle.h: |
| Declaration of a per-platform struct to hold CF data for |
| Cocoa platforms. |
| * platform/network/cf/SocketStreamHandleImpl.h: |
| (WebCore::SocketStreamHandleImpl::create): |
| Now takes WebCore::SourceApplicationAuditToken which is |
| passed on to the constructor. |
| * platform/network/cf/SocketStreamHandleImplCFNet.cpp: |
| (WebCore::SocketStreamHandleImpl::SocketStreamHandleImpl): |
| Now takes WebCore::SourceApplicationAuditToken which is |
| passed on to the streams once created. |
| (WebCore::SocketStreamHandleImpl::createStreams): |
| Now sets kCFStreamPropertySourceApplication for the two |
| streams. |
| * platform/network/curl/SocketStreamHandleImpl.h: |
| (WebCore::SocketStreamHandleImpl::create): |
| Added unused WebCore::SourceApplicationAuditToken parameter. |
| * platform/network/soup/SocketStreamHandleImpl.h: |
| * platform/network/soup/SocketStreamHandleImplSoup.cpp: |
| (WebCore::SocketStreamHandleImpl::create): |
| Added unused WebCore::SourceApplicationAuditToken parameter. |
| |
| 2017-04-07 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION(r204512): WebSocket errors with "Failed to send WebSocket frame." if too much data is sent |
| https://bugs.webkit.org/show_bug.cgi?id=170463 |
| |
| Reviewed by Michael Catanzaro. |
| |
| This only reproduces when using WebSockets to communicate with an external server. |
| When communicating with a local server, CFWriteStreamWrite succeeds too reliably, so |
| CFWriteStreamCanAcceptBytes returns true, when sometimes it doesn't when communicating |
| across the real internet. |
| |
| * platform/network/cf/SocketStreamHandleImplCFNet.cpp: |
| (WebCore::SocketStreamHandleImpl::platformSendInternal): |
| * platform/network/soup/SocketStreamHandleImplSoup.cpp: |
| (WebCore::SocketStreamHandleImpl::platformSendInternal): |
| Returning std::nullopt means there was an error, which is not true when the socket stream |
| is in a state where it cannot be written to because it is actively communicating. |
| Returning 0 means 0 new bytes were sent, so we will try again later. |
| |
| 2017-04-07 Eric Carlson <eric.carlson@apple.com> |
| |
| MediaSample should store video sample rotation instead of orientation |
| https://bugs.webkit.org/show_bug.cgi?id=170598 |
| |
| Reviewed by Youenn Fablet. |
| |
| No new tests, no functional change. |
| |
| * platform/MediaSample.h: |
| (WebCore::MediaSample::videoRotation): |
| (WebCore::MediaSample::videoOrientation): Deleted. |
| * platform/graphics/avfoundation/MediaSampleAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoTransformationMatrix): |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSample): |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayLayer): |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::processNewFrame): |
| |
| * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: |
| (WebCore::RealtimeIncomingVideoSource::OnFrame): |
| (WebCore::RealtimeIncomingVideoSource::processNewSample): |
| * platform/mediastream/mac/RealtimeIncomingVideoSource.h: |
| |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: |
| (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable): |
| |
| 2017-04-07 Brent Fulgham <bfulgham@apple.com> |
| |
| WebKit should percent encode single quotes in query strings |
| https://bugs.webkit.org/show_bug.cgi?id=170561 |
| <rdar://problem/7415154> |
| |
| Reviewed by Alex Christensen. |
| |
| Modify the characterClassTable to instruct the URLParser to convert |
| the single-quote character ' to %27 in URL query strings. |
| |
| Tests: URLParserTest in TestWebKitAPI. |
| fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame.html |
| fast/frames/xss-auditor-handles-file-urls.html |
| http/tests/security/xssAuditor |
| |
| * platform/URLParser.cpp: |
| |
| 2017-04-07 Zalan Bujtas <zalan@apple.com> |
| |
| Text insertion cursor disappears after pressing enter |
| https://bugs.webkit.org/show_bug.cgi?id=169291 |
| <rdar://problem/30899611> |
| |
| Reviewed by Tim Horton. |
| |
| Positon upstream/downstream (as the result of VisiblePosition -> canonicalPosition) require |
| linebox tree. In addition to regular text, we need to bail out of simple line layout on line breaks too. |
| |
| Test: editing/simple-line-layout-caret-is-gone.html |
| |
| * dom/Position.cpp: |
| (WebCore::ensureLineBoxesIfNeeded): |
| (WebCore::Position::upstream): |
| (WebCore::Position::downstream): |
| (WebCore::Position::getInlineBoxAndOffset): |
| * rendering/RenderLineBreak.cpp: |
| (WebCore::RenderLineBreak::ensureLineBoxes): |
| (WebCore::RenderLineBreak::positionForPoint): |
| (WebCore::RenderLineBreak::setSelectionState): |
| (WebCore::RenderLineBreak::collectSelectionRects): |
| (WebCore::ensureLineBoxes): Deleted. |
| * rendering/RenderLineBreak.h: |
| |
| 2017-04-07 Xan Lopez <xlopez@igalia.com> |
| |
| [GTK] Fix codec name in OWR ASSERT |
| https://bugs.webkit.org/show_bug.cgi?id=170600 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * platform/mediastream/openwebrtc/MediaEndpointOwr.cpp: |
| (WebCore::MediaEndpointOwr::prepareMediaSession): uppercase the |
| codec name we are looking for, that's how they appear in the |
| vector. |
| |
| 2017-04-07 Per Arne Vollan <pvollan@apple.com> |
| |
| Add hasVideo property to WebAVPlayerController. |
| https://bugs.webkit.org/show_bug.cgi?id=170545 |
| rdar://problem/31325182 |
| |
| Reviewed by Eric Carlson. |
| |
| Add a new "hasVideo" property which can be used to discover if any video content is present in the playback item, |
| whether video content is currently enabled or not. |
| |
| * platform/ios/WebAVPlayerController.h: |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: |
| (WebVideoFullscreenInterfaceAVKit::hasVideoChanged): |
| |
| 2017-04-07 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK+] Animations not played properly when using synchronous decoding |
| https://bugs.webkit.org/show_bug.cgi?id=170591 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Fix an index error when destroying decoded frames that was sometimes deleting the frame we wanted |
| to keep. |
| |
| Covered by exitent tests. |
| |
| * platform/graphics/ImageFrameCache.cpp: |
| (WebCore::ImageFrameCache::destroyDecodedData): |
| |
| 2017-04-07 Xan Lopez <xan@igalia.com> |
| |
| [GTK] Add message about missing codecs to ASSERT in OWR |
| https://bugs.webkit.org/show_bug.cgi?id=170596 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * platform/mediastream/openwebrtc/MediaEndpointOwr.cpp: |
| (WebCore::MediaEndpointOwr::prepareMediaSession): add a message |
| about the missing coded to the ASSERT. |
| |
| 2017-04-07 Tomas Popela <tpopela@redhat.com> |
| |
| AX: Don't crash if no renderer is available for AccessibilityRenderObject |
| https://bugs.webkit.org/show_bug.cgi?id=170448 |
| |
| Reviewed by Chris Fleizach. |
| |
| Don't crash or assert if no renderer is available, but early return |
| gracefully (as in other places in the AccessibilityRenderObject.cpp). |
| Spotted by running some tests through dogtail. |
| |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::isOffScreen): |
| (WebCore::AccessibilityRenderObject::isUnvisited): |
| (WebCore::AccessibilityRenderObject::isVisited): |
| |
| 2017-04-07 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Update the priorities used in glib main loop sources |
| https://bugs.webkit.org/show_bug.cgi?id=170457 |
| |
| Reviewed by Žan Doberšek. |
| |
| * platform/glib/MainThreadSharedTimerGLib.cpp: |
| (WebCore::MainThreadSharedTimer::MainThreadSharedTimer): |
| * platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp: |
| (WebCore::TextureMapperPlatformLayerProxy::TextureMapperPlatformLayerProxy): |
| (WebCore::TextureMapperPlatformLayerProxy::activateOnCompositingThread): |
| |
| 2017-04-07 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] Implement AES_CBC support |
| https://bugs.webkit.org/show_bug.cgi?id=170550 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Implement the CryptoAlgorithmAES_CBC::platform{Encrypt,Decrypt} |
| functionality for configurations that use libgcrypt. This is done |
| by leveraging the gcry_cipher_* APIs for the AES algorithm that's |
| deduced appropriately from the key size and the CBC cipher mode. |
| Additionally, the PKCS#7 padding is implemented for each operation, |
| as demanded by the Web Crypto specification. |
| |
| No new tests -- current ones cover this sufficiently, but are not yet |
| enabled due to missing platform-specific SUBTLE_CRYPTO implementations. |
| |
| * crypto/gcrypt/CryptoAlgorithmAES_CBCGCrypt.cpp: |
| (WebCore::gcryptEncrypt): |
| (WebCore::gcryptDecrypt): |
| (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt): |
| (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt): |
| |
| 2017-04-07 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] Implement raw and JWK imports and exports for EC keys |
| https://bugs.webkit.org/show_bug.cgi?id=170546 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Implement import and export operations for EC keys, covering the raw |
| and JWK import/export types. |
| |
| CryptoKeyEC::platformImportRaw() builds a public-key s-expression, |
| providing the curve name and the key data, and yields the gcry_sexp_t |
| object to the new CryptoKeyEC. |
| |
| CryptoKeyEC::platformImportJWKPublic() first constructs a Vector<uint8_t> |
| object that contains the EC point in the uncompressed format. It then |
| puts that data into a newly-constructed public-key s-expression that is |
| then used to construct the new CryptoKeyEC object. |
| |
| CryptoKeyEC::platformImportJWKPrivate() constructs the EC point data just |
| the same, but it also lays out the private key field element data into |
| the private-key s-expression that's then handed off to the CryptoKeyEC |
| object. |
| |
| CryptoKeyEC::platformExportRaw() constructs a new EC operations context |
| and then uses it to retrieve the q parameter as an MPI. A Vector<uint8_t> |
| is retrieved from the MPI data through the extractMPIData() helper |
| function. |
| |
| CryptoKeyEC::platformAddFieldElements() similarly uses the EC operations |
| context to retrieve the q parameter data, which it then splits into the |
| x and y field elements and Base64 URL-encodes them into a form that can |
| be placed in a JsonWebKey. If the key is private, the d parameter is |
| retrieved in the same fashion and again Base64 URL-encoded and stored |
| in the JsonWebKey object. |
| |
| No new tests -- current ones cover this sufficiently, but are not yet |
| enabled due to other missing platform-specific SUBTLE_CRYPTO |
| implementations. |
| |
| * crypto/gcrypt/CryptoKeyECGCrypt.cpp: |
| (WebCore::uncompressedPointSizeForCurve): |
| (WebCore::uncompressedFieldElementSizeForCurve): |
| (WebCore::extractMPIData): |
| (WebCore::CryptoKeyEC::platformImportRaw): |
| (WebCore::CryptoKeyEC::platformImportJWKPublic): |
| (WebCore::CryptoKeyEC::platformImportJWKPrivate): |
| (WebCore::CryptoKeyEC::platformExportRaw): |
| (WebCore::CryptoKeyEC::platformAddFieldElements): |
| |
| 2017-04-07 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] Implement CryptoKeyRSA::generatePair() |
| https://bugs.webkit.org/show_bug.cgi?id=170350 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Start implementing the libgcrypt-based platform bits of CryptoKeyRSA. |
| |
| Implement generatePair() by constructing a genkey s-expression |
| that requests a generation of an RSA key that should use a modulus |
| of the specified bit-length and the specified exponent. The exponent |
| is extracted from an uint8_t array through a helper function. The |
| modulus length value is checked to be at least 16, since libgcrypt |
| does not support generating primes of less than that length in bits. |
| |
| The returned s-expression upon request will contain the data for |
| both the public and the private key. gcry_sexp_t handles representing |
| those s-expressions are then passed to CryptoKeyRSA::create() before |
| invoking the success callback with a new CryptoKeyPair object in a |
| separate ScriptExecutionContext task. |
| |
| The CryptoKeyRSA constructor simply has the notImplemented() call |
| removed. The destructor now invokes the HandleDeleter<gcry_sexp_t> |
| object instance to destroy the object represented by the |
| m_platformKey handle. |
| |
| The methods in CryptoKeyRSA.cpp are also reordered to follow the |
| declaration order used in the header. |
| |
| No new tests -- current ones cover this sufficiently, but are not yet |
| enabled due to other missing platform-specific SUBTLE_CRYPTO |
| implementations. |
| |
| * crypto/gcrypt/CryptoKeyRSAGCrypt.cpp: |
| (WebCore::CryptoKeyRSA::CryptoKeyRSA): |
| (WebCore::CryptoKeyRSA::~CryptoKeyRSA): |
| (WebCore::exponentVectorToUInt32): |
| (WebCore::CryptoKeyRSA::generatePair): |
| (WebCore::CryptoKeyRSA::importSpki): |
| (WebCore::CryptoKeyRSA::importPkcs8): |
| (WebCore::CryptoKeyRSA::exportPkcs8): |
| (WebCore::CryptoKeyRSA::buildAlgorithm): |
| (WebCore::CryptoKeyRSA::exportData): |
| * crypto/keys/CryptoKeyRSA.h: |
| |
| 2017-04-06 Youenn Fablet <youenn@apple.com> |
| |
| [Debug] ASSERT(!throwScope.exception()) on imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-status-worker.html |
| https://bugs.webkit.org/show_bug.cgi?id=170395 |
| <rdar://problem/31394017> |
| |
| Reviewed by Mark Lam. |
| |
| * bindings/js/JSDOMPromise.cpp: |
| (WebCore::DeferredPromise::reject): Exiting early in case of scope having an exception. |
| Adding an assertion to ensure this is a worker termination exception. |
| |
| 2017-04-06 Andreas Kling <akling@apple.com> |
| |
| Inaudible background tabs should become eligible for memory kill after 8 minutes |
| https://bugs.webkit.org/show_bug.cgi?id=170574 |
| <rdar://problem/31488686> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Lower the delay for potentially marking background tabs as inactive from 60 minutes to 8 minutes. |
| Letting a tab misbehave in the background for an entire hour was overly charitable. |
| |
| * page/PerformanceMonitor.cpp: |
| |
| 2017-04-06 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Scroll offset jumps after a programmatic scroll in an overflow container with scroll snapping |
| https://bugs.webkit.org/show_bug.cgi?id=170560 |
| <rdar://problem/31484693> |
| |
| Reviewed by Tim Horton. |
| |
| Test: css3/scroll-snap/scroll-snap-programmatic-overflow-scroll.html |
| |
| Logic for maintaining the scroll snap state in ScrollController was previously removed from iOS when refactoring |
| ScrollController. This was done because scroll snapping on iOS is driven not by the ScrollController (as it is |
| on Mac) but rather by sending scroll snap offsets to the UI process and hooking into UIScrollView delegates to |
| handle retargeted scrolling. |
| |
| However, on iOS, this ScrollController state is still important for the purposes of keeping the last active |
| snap point index in sync with the UI process when the scroll offset changes outside of a user gesture (i.e. |
| programmatic scrolling). Since the UI process does not get a chance to update the active snap offset during a |
| programmatic scroll, our last active snap offset state was only being updated to the last snap position that the |
| user manually scrolled to, making programmatic scrolling jump to this offset. |
| |
| To fix this, we need to update scroll snap state on iOS within ScrollController. Also adds a new Layout test |
| that exercises programmatic scrolling in an overflow scrolling container on all platforms. |
| |
| * platform/cocoa/ScrollController.mm: |
| (WebCore::otherScrollEventAxis): |
| (WebCore::ScrollController::updateScrollSnapState): |
| (WebCore::ScrollController::updateScrollSnapPoints): |
| |
| 2017-04-05 Simon Fraser <simon.fraser@apple.com> |
| |
| Throttle requestAnimationFrame in cross-origin iframes to 30fps |
| https://bugs.webkit.org/show_bug.cgi?id=170534 |
| |
| Reviewed by Dan Bates. |
| |
| Add a throttling reason to ScriptedAnimationController which is NonInteractedCrossOriginFrame, |
| set on cross-origin iframes whose documents have never seen a user interaction. It's cleared |
| as soon as an interaction on this frame or a child frame is detected. |
| |
| Move the initialization of the LowPowerMode throttling reason to Document::requestAnimationFrame(), |
| since it's more appropriate to compute NonInteractedCrossOriginFrame here than down in ScriptedAnimationController, |
| and best to do both in the same place. |
| |
| Tests: http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::requestAnimationFrame): |
| (WebCore::Document::updateLastHandledUserGestureTimestamp): |
| * dom/Document.h: |
| (WebCore::Document::hasHadUserInteraction): |
| * dom/ScriptedAnimationController.cpp: |
| (WebCore::ScriptedAnimationController::ScriptedAnimationController): |
| (WebCore::throttlingReasonToString): |
| (WebCore::ScriptedAnimationController::interval): |
| * dom/ScriptedAnimationController.h: |
| * loader/FrameLoader.cpp: |
| (WebCore::shouldAskForNavigationConfirmation): |
| |
| 2017-04-05 Simon Fraser <simon.fraser@apple.com> |
| |
| Use the Accelerate framework to optimize FEColorMatrix operations |
| https://bugs.webkit.org/show_bug.cgi?id=170518 |
| |
| Reviewed by Tim Horton. |
| |
| On macOS and iOS, we can use the Accelerate framework (vImage) to do color matrix |
| math to optimize color matrix, hue rotate, saturation and luminosity to alpha filters. |
| |
| Change ImageBuffer::getUnmultipliedImageData() and getPremultipliedImageData() to |
| return the size of the returned Uint8ClampedArray in physical pixels, because we |
| need to pass that to vImage. |
| |
| * html/canvas/CanvasRenderingContext2D.cpp: |
| (WebCore::CanvasRenderingContext2D::getImageData): |
| * platform/graphics/ImageBuffer.h: |
| * platform/graphics/cairo/ImageBufferCairo.cpp: |
| (WebCore::ImageBuffer::getUnmultipliedImageData): |
| (WebCore::ImageBuffer::getPremultipliedImageData): |
| * platform/graphics/cg/ImageBufferCG.cpp: |
| (WebCore::ImageBuffer::getUnmultipliedImageData): |
| (WebCore::ImageBuffer::getPremultipliedImageData): |
| * platform/graphics/filters/FEColorMatrix.cpp: |
| (WebCore::effectApplyAccelerated): |
| (WebCore::effectType): |
| (WebCore::FEColorMatrix::platformApplySoftware): |
| * platform/graphics/filters/FEDropShadow.cpp: |
| (WebCore::FEDropShadow::platformApplySoftware): |
| * platform/graphics/win/ImageBufferDirect2D.cpp: |
| (WebCore::ImageBuffer::getUnmultipliedImageData): |
| (WebCore::ImageBuffer::getPremultipliedImageData): |
| |
| 2017-04-04 Simon Fraser <simon.fraser@apple.com> |
| |
| Do some minor FEColorMatrix code cleanup and optimization |
| https://bugs.webkit.org/show_bug.cgi?id=170474 |
| |
| Reviewed by Dean Jackson. |
| |
| Don't switch inside of a pixel processing loop; repeat the loop inside switch (filterType). |
| |
| Change matrix() and saturateAndHueRotate() to dereference the source pixels once, instead |
| of multiple times, which is faster. |
| |
| This kind of code benefits from aligning things with spaces for readability, so do so, |
| violating webkit style. |
| |
| Add some off-by-default performance logging code. |
| |
| Increases pixel processing performance from about 86ms per megapixel to 65ms per megapixel. |
| |
| * platform/graphics/filters/FEColorMatrix.cpp: |
| (WebCore::matrix): |
| (WebCore::saturateAndHueRotate): |
| (WebCore::effectType): |
| (WebCore::FEColorMatrix::platformApplySoftware): |
| |
| 2017-04-06 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r215041. |
| |
| The LayoutTest for this change is failing on ios-simulator. |
| |
| Reverted changeset: |
| |
| "Rendering flexbox children across columns" |
| https://bugs.webkit.org/show_bug.cgi?id=164166 |
| http://trac.webkit.org/changeset/215041 |
| |
| 2017-04-06 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r215046. |
| |
| This change broke internal builds. |
| |
| Reverted changeset: |
| |
| "WebRTC tests gardening" |
| https://bugs.webkit.org/show_bug.cgi?id=170508 |
| http://trac.webkit.org/changeset/215046 |
| |
| 2017-04-06 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Only Capture Extra Network Load Metrics when there is a Web Inspector Frontend |
| https://bugs.webkit.org/show_bug.cgi?id=170525 |
| |
| Reviewed by Youenn Fablet. |
| |
| Covered by existing tests that when Web Inspector is open we enable collecting the extra data. |
| |
| * inspector/InspectorInstrumentation.cpp: |
| (WebCore::InspectorInstrumentation::firstFrontendCreated): |
| (WebCore::InspectorInstrumentation::lastFrontendDeleted): |
| * inspector/InspectorInstrumentation.h: |
| (WebCore::InspectorInstrumentation::frontendCreated): |
| (WebCore::InspectorInstrumentation::frontendDeleted): |
| When the first frontend is created enable a new loader strategy to |
| collect extra network load metrics. When the last frontend is closed |
| disable the extra metrics. |
| |
| * loader/LoaderStrategy.h: |
| * platform/PlatformStrategies.h: |
| New load strategy to enable/disable new metrics. |
| |
| 2017-04-06 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Show all headers in the Request Headers section of the Resource details sidebar |
| https://bugs.webkit.org/show_bug.cgi?id=16531 |
| <rdar://problem/5712895> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Test: http/tests/inspector/network/resource-request-headers.html |
| |
| * loader/ResourceTiming.cpp: |
| (WebCore::ResourceTiming::ResourceTiming): |
| Eliminate unnecessary data from the NetworkLoadTiming object |
| when it is used for ResourceTiming. This clears up some memory |
| that will otherwise never be used. |
| |
| * platform/network/NetworkLoadMetrics.h: |
| (WebCore::NetworkLoadMetrics::isolatedCopy): |
| (WebCore::NetworkLoadMetrics::reset): |
| (WebCore::NetworkLoadMetrics::clearNonTimingData): |
| (WebCore::NetworkLoadMetrics::operator==): |
| (WebCore::NetworkLoadMetrics::encode): |
| (WebCore::NetworkLoadMetrics::decode): |
| Include an optional HTTPHeaderMap for a refined list of |
| request headers for this network load. |
| |
| * inspector/InspectorNetworkAgent.cpp: |
| (WebCore::InspectorNetworkAgent::buildObjectForMetrics): |
| Include request headers with other optional metrics data |
| when the load is completed. |
| |
| 2017-04-06 Tim Horton <timothy_horton@apple.com> |
| |
| Follow up to r209304, remove line numbers from one more StyleRule construction |
| https://bugs.webkit.org/show_bug.cgi?id=170564 |
| |
| Reviewed by Simon Fraser. |
| |
| * css/StyleRule.cpp: |
| (WebCore::StyleRuleViewport::StyleRuleViewport): |
| This one was missed in r209304. |
| |
| 2017-04-06 Timothy Horton <timothy_horton@apple.com> |
| |
| Remove an unused member and constructor parameter from CSSPropertyParser |
| https://bugs.webkit.org/show_bug.cgi?id=170562 |
| |
| Reviewed by Simon Fraser. |
| |
| * css/parser/CSSParser.cpp: |
| (WebCore::CSSParser::parseSingleValue): |
| (WebCore::CSSParser::parseValueWithVariableReferences): |
| * css/parser/CSSParserImpl.cpp: |
| (WebCore::CSSParserImpl::consumeDeclarationValue): |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::CSSPropertyParser::CSSPropertyParser): |
| (WebCore::CSSPropertyParser::parseValue): |
| (WebCore::CSSPropertyParser::parseSingleValue): |
| * css/parser/CSSPropertyParser.h: |
| It is possible to get Clang to complain about the unused member, though |
| I'm not sure why it doesn't in the build today. |
| |
| 2017-04-06 Zalan Bujtas <zalan@apple.com> |
| |
| Simple line layout: Hittest always returns the first renderer in the block. |
| https://bugs.webkit.org/show_bug.cgi?id=170520 |
| <rdar://problem/30979175> |
| |
| Reviewed by Antti Koivisto. |
| |
| This is incorrect now with <br> support (multiple renderers within the same block flow). |
| |
| Test: fast/dom/Document/CaretRangeFromPoint/simple-line-layout-hittest-with-caret-range-from-point.html |
| |
| * rendering/RenderText.cpp: |
| (WebCore::RenderText::positionForPoint): Related fix. We don't yet support positionForPoint with multiple renderes. |
| * rendering/SimpleLineLayoutFlowContents.h: |
| (WebCore::SimpleLineLayout::FlowContents::segmentForRun): Empty runs are all valid. |
| * rendering/SimpleLineLayoutFunctions.cpp: |
| (WebCore::SimpleLineLayout::hitTestFlow): |
| (WebCore::SimpleLineLayout::collectFlowOverflow): |
| * rendering/SimpleLineLayoutResolver.cpp: |
| (WebCore::SimpleLineLayout::LineResolver::Iterator::operator*): This should eventually return a list of renderes. |
| * rendering/SimpleLineLayoutResolver.h: |
| (WebCore::SimpleLineLayout::RunResolver::flowContents): |
| |
| 2017-04-06 Jon Davis <jond@apple.com> |
| |
| Updates feature status for recently shipped features |
| https://bugs.webkit.org/show_bug.cgi?id=170359 |
| |
| Reviewed by Brian Burg. |
| |
| Added missing Gamepad entry. |
| Changed "Done" status to "Supported". |
| Also changed status from "In Development" to "Supported" for: |
| |
| - CSS Grid Layout Level 1 |
| - CSS Inline Layout Module Level 3 |
| - CSS Scroll Snap Points Module Level 1 |
| - CSS Color Level 4 |
| - Fetch API |
| - Indexed Database 2.0 |
| - Media Capture and Streams |
| - Pointer Lock |
| - Preload |
| - Input Events |
| |
| * features.json: |
| |
| 2017-03-31 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebCrypto] Add support for AES-CTR |
| https://bugs.webkit.org/show_bug.cgi?id=169761 |
| <rdar://problem/31331321> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch adds support for AES-CTR. Operations of AES-CTR include: encrypt, decrypt, generateKey, |
| importKey, exportKey, wrapKey, and unwrapKey. This implementation follows the latest WebCryptoAPI |
| spec: https://www.w3.org/TR/WebCryptoAPI/#aes-ctr. |
| |
| Tests: crypto/subtle/aes-ctr-encrypt-malformed-parameters.html |
| crypto/subtle/aes-ctr-encrypt-overflow.html |
| crypto/subtle/aes-ctr-generate-export-key-jwk-length-128.html |
| crypto/subtle/aes-ctr-generate-export-key-jwk-length-192.html |
| crypto/subtle/aes-ctr-generate-export-key-jwk-length-256.html |
| crypto/subtle/aes-ctr-generate-export-raw-key.html |
| crypto/subtle/aes-ctr-generate-key-encrypt-decrypt.html |
| crypto/subtle/aes-ctr-generate-key.html |
| crypto/subtle/aes-ctr-import-jwk-key-length-128.html |
| crypto/subtle/aes-ctr-import-jwk-key-length-192.html |
| crypto/subtle/aes-ctr-import-jwk-key-length-256.html |
| crypto/subtle/aes-ctr-import-key-decrypt.html |
| crypto/subtle/aes-ctr-import-key-encrypt.html |
| crypto/subtle/aes-ctr-import-key-unwrap-jwk-key.html |
| crypto/subtle/aes-ctr-import-key-unwrap-raw-key.html |
| crypto/subtle/aes-ctr-import-key-wrap-jwk-key.html |
| crypto/subtle/aes-ctr-import-key-wrap-raw-key.html |
| crypto/subtle/aes-ctr-import-raw-key.html |
| crypto/workers/subtle/aes-ctr-import-key-decrypt.html |
| crypto/workers/subtle/aes-ctr-import-key-encrypt.html |
| crypto/workers/subtle/aes-ctr-import-key-unwrap-key.html |
| crypto/workers/subtle/aes-ctr-import-key-wrap-key.html |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * PlatformGTK.cmake: |
| * PlatformMac.cmake: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSSubtleCryptoCustom.cpp: |
| (WebCore::normalizeCryptoAlgorithmParameters): |
| * crypto/CryptoAlgorithmParameters.h: |
| * crypto/algorithms/CryptoAlgorithmAES_CTR.cpp: Added. |
| (WebCore::usagesAreInvalidForCryptoAlgorithmAES_CTR): |
| (WebCore::parametersAreValid): |
| (WebCore::CryptoAlgorithmAES_CTR::create): |
| (WebCore::CryptoAlgorithmAES_CTR::identifier): |
| (WebCore::CryptoAlgorithmAES_CTR::encrypt): |
| (WebCore::CryptoAlgorithmAES_CTR::decrypt): |
| (WebCore::CryptoAlgorithmAES_CTR::generateKey): |
| (WebCore::CryptoAlgorithmAES_CTR::importKey): |
| (WebCore::CryptoAlgorithmAES_CTR::exportKey): |
| (WebCore::CryptoAlgorithmAES_CTR::getKeyLength): |
| * crypto/algorithms/CryptoAlgorithmAES_CTR.h: Added. |
| * crypto/gcrypt/CryptoAlgorithmAES_CTRGCrypt.cpp: Added. |
| (WebCore::CryptoAlgorithmAES_CTR::platformEncrypt): |
| (WebCore::CryptoAlgorithmAES_CTR::platformDecrypt): |
| * crypto/mac/CryptoAlgorithmAES_CTRMac.cpp: Added. |
| (WebCore::bigIntegerToSize): |
| (WebCore::transformAES_CTR): |
| (WebCore::CryptoAlgorithmAES_CTR::platformEncrypt): |
| (WebCore::CryptoAlgorithmAES_CTR::platformDecrypt): |
| * crypto/mac/CryptoAlgorithmRegistryMac.cpp: |
| (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): |
| * crypto/parameters/AesCtrParams.idl: Added. |
| * crypto/parameters/CryptoAlgorithmAesCtrParams.h: Added. |
| |
| 2017-04-06 Youenn Fablet <youenn@apple.com> |
| |
| WebRTC tests gardening |
| https://bugs.webkit.org/show_bug.cgi?id=170508 |
| |
| Reviewed by Eric Carlson. |
| |
| * Configurations/FeatureDefines.xcconfig: Changing webrtc enabling for ios. |
| |
| 2017-04-06 Andreas Kling <akling@apple.com> |
| |
| Stop forcing CA commit when memory pressure changes. |
| https://bugs.webkit.org/show_bug.cgi?id=170522 |
| <rdar://problem/31460236> |
| |
| Reviewed by Antti Koivisto. |
| |
| Don't force a CA commit when reaching critical memory pressure. We're already doing a ton |
| of work in response to the pressure, and this was really a hack to try to react quickly on |
| 512 MB devices which we don't support anymore. |
| |
| * page/MemoryRelease.cpp: |
| (WebCore::releaseCriticalMemory): |
| |
| 2017-04-06 Romain Bellessort <romain.bellessort@crf.canon.fr> |
| |
| [Readable Streams API] Implement ReadableStreamBYOBRequest respondWithNewView() |
| https://bugs.webkit.org/show_bug.cgi?id=170339 |
| |
| Reviewed by Youenn Fablet. |
| |
| Implemented ReadableStreamBYOBRequest respondWithNewView(). |
| |
| Added new tests to check respondWithNewView() behaviour. |
| |
| * Modules/streams/ReadableByteStreamInternals.js: |
| (readableByteStreamControllerRespondWithNewView): Added. |
| * Modules/streams/ReadableStreamBYOBRequest.js: |
| (respondWithNewView): Updated. |
| |
| 2017-04-06 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Host application should be able to mute and unmute media streams |
| https://bugs.webkit.org/show_bug.cgi?id=170519 |
| <rdar://problem/31174326> |
| |
| Unreviewed, fix crash introduced in r214980. |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::MediaStream): NULL-check page. |
| |
| 2017-04-06 Dave Hyatt <hyatt@apple.com> |
| |
| Rendering flexbox children across columns |
| https://bugs.webkit.org/show_bug.cgi?id=164166 |
| <rdar://problem/29055587> |
| |
| Reviewed by Zalan Bujtas. |
| |
| Added fast/multicol/flexbox-rows.html. |
| |
| * rendering/RenderBlockFlow.cpp: |
| (WebCore::RenderBlockFlow::adjustForUnsplittableChild): |
| Treat block-level flexboxes that occur inside block flows the same as replaced |
| and unsplittable elements and push them to the next page if they don't fit. We don't |
| update the minimum page height though, since the flexbox is not really unsplittable. |
| |
| 2017-04-05 Simon Fraser <simon.fraser@apple.com> |
| |
| Set lastHandledUserGestureTimestamp on all ancestor documents, not just the top document |
| https://bugs.webkit.org/show_bug.cgi?id=170479 |
| |
| Reviewed by Sam Weinig. |
| |
| When interacting with a subframe document, set lastHandledUserGestureTimestamp on all ancestor |
| documents up to the root. |
| |
| This will be used in future for requestAnimationFrame throttling. |
| |
| Test: fast/frames/user-gesture-timestamp-propagation.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::updateLastHandledUserGestureTimestamp): |
| * dom/Document.h: |
| * dom/UserGestureIndicator.cpp: |
| (WebCore::UserGestureIndicator::UserGestureIndicator): |
| * testing/Internals.cpp: |
| (WebCore::Internals::lastHandledUserGestureTimestamp): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-04-05 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Host application should be able to mute and unmute media streams |
| https://bugs.webkit.org/show_bug.cgi?id=170519 |
| <rdar://problem/31174326> |
| |
| Unreviewed, address review comments missed in the initial checkin. |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::MediaStream): Mute the private stream if the page doesn't allow |
| capture. |
| (WebCore::MediaStream::pageMutedStateDidChange): setMuted -> setCaptureTracksMuted. |
| |
| * platform/mediastream/MediaStreamPrivate.cpp: |
| (WebCore::MediaStreamPrivate::addTrack): Don't track muted state, the capture source already does. |
| (WebCore::MediaStreamPrivate::startProducingData): Ditto. |
| (WebCore::MediaStreamPrivate::setCaptureTracksMuted): Renamed from setMuted. |
| (WebCore::MediaStreamPrivate::setMuted): Deleted. |
| * platform/mediastream/MediaStreamPrivate.h: |
| |
| 2017-04-05 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Host application should be able to mute and unmute media streams |
| https://bugs.webkit.org/show_bug.cgi?id=170519 |
| <rdar://problem/31174326> |
| |
| Reviewed by Youenn Fablet. |
| |
| No new tests, fast/mediastream/MediaStream-page-muted.html was updated. |
| |
| * Modules/mediastream/MediaStream.cpp: |
| (WebCore::MediaStream::~MediaStream): Fix a typo. |
| (WebCore::MediaStream::pageMutedStateDidChange): Don't store muted state, let the private |
| stream store it. |
| (WebCore::MediaStream::mediaState): Deal with new muted state flags. |
| * Modules/mediastream/MediaStream.h: |
| |
| * dom/Document.cpp: |
| (WebCore::Document::prepareForDestruction): Clear media state before the frame is cleared. |
| |
| * page/MediaProducer.h: Add muted flags. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::checkSelectedVideoTrack): The display layer |
| should not be visible when the video track is muted. |
| |
| * platform/mediastream/MediaStreamPrivate.cpp: |
| (WebCore::MediaStreamPrivate::addTrack): Mute the new track if necessary. |
| (WebCore::MediaStreamPrivate::startProducingData): Do nothing when muted. |
| (WebCore::MediaStreamPrivate::setExternallyMuted): New, mute/unmute tracks. |
| * platform/mediastream/MediaStreamPrivate.h: |
| |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::setMuted): Start/stop producing data. |
| |
| * testing/Internals.cpp: |
| (WebCore::Internals::pageMediaState): Support new media stream muted flags. |
| |
| 2017-04-05 Andreas Kling <akling@apple.com> |
| |
| Make inactive web processes behave as though under memory pressure. |
| https://bugs.webkit.org/show_bug.cgi?id=170042 |
| <rdar://problem/31038445> |
| |
| Reviewed by Antti Koivisto. |
| |
| Prevent PerformanceMonitor from marking the process as inactive at startup. |
| This fixes the API test failure that caused this patch to get rolled out. |
| |
| * page/PerformanceMonitor.h: |
| |
| 2017-04-05 Youenn Fablet <youenn@apple.com> |
| |
| Switch to kCVPixelFormatType_420YpCbCr8BiPlanarFullRange for Mac video capture format |
| https://bugs.webkit.org/show_bug.cgi?id=170509 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by existing tests. |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| |
| 2017-04-05 Javier Fernandez <jfernandez@igalia.com> |
| |
| [css-align] Implement the place-items shorthand |
| https://bugs.webkit.org/show_bug.cgi?id=168847 |
| |
| Reviewed by David Hyatt. |
| |
| The CSS Box Alignment specification defines a new shorthand to set the |
| Content Alignment properties (align-items and justify-items) at the |
| same time. |
| |
| This patch provides the implementation of the CSS parsing logic and the |
| required regression tests. For the time being, as it happens with the |
| rest of the new alignment properties, the new parsing logic is |
| implemented behind the CSS Grid Layout runtime flag. |
| |
| Test: css3/parse-place-items.html |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::propertyValue): |
| * css/CSSProperties.json: |
| * css/StyleProperties.cpp: |
| (WebCore::StyleProperties::getPropertyValue): |
| (WebCore::StyleProperties::getAlignmentShorthandValue): |
| * css/StyleProperties.h: |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::isAutoOrNormalOrStretch): |
| (WebCore::consumeSelfPositionOverflowPosition): |
| (WebCore::consumeSimplifiedItemPosition): |
| (WebCore::CSSPropertyParser::consumePlaceItemsShorthand): |
| * css/parser/CSSPropertyParser.h: |
| |
| 2017-04-05 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r214932. |
| |
| This change broke an internal build. |
| |
| Reverted changeset: |
| |
| "[ios-simulator] API test WebKit2.DataDetectionReferenceDate |
| timing out" |
| https://bugs.webkit.org/show_bug.cgi?id=161967 |
| http://trac.webkit.org/changeset/214932 |
| |
| 2017-04-05 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r214962. |
| |
| Roll r214937 back in because it wasn't at fault for the build |
| breakage. |
| |
| Reverted changeset: |
| |
| "Unreviewed, rolling out r214937." |
| https://bugs.webkit.org/show_bug.cgi?id=170365 |
| http://trac.webkit.org/changeset/214962 |
| |
| 2017-04-05 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r214937. |
| |
| This change broke an internal build. |
| |
| Reverted changeset: |
| |
| "REGRESSION (r202472): Data Detection overwrites existing |
| links in detected ranges" |
| https://bugs.webkit.org/show_bug.cgi?id=170365 |
| http://trac.webkit.org/changeset/214937 |
| |
| 2017-04-05 Carlos Alberto Lopez Perez <clopez@igalia.com> |
| |
| [WebRTC][OpenWebRTC] Add support for SDP BUNDLE ("a:group:BUNDLE" and "a=bundle-only" lines) |
| https://bugs.webkit.org/show_bug.cgi?id=170157 |
| |
| Reviewed by Alejandro G. Castro. |
| |
| This implements support on the SDPProcessor for generating an "a=group:BUNDLE" |
| attribute with the MID identifiers specified in the bundle group in the most |
| recent answer. |
| It also implements support for generating "a=bundle-only" attributes on the |
| "m=" sections of the SDP according to the bundlePolicy defined. |
| |
| Test: fast/mediastream/RTCPeerConnection-inspect-offer-bundlePolicy-bundle-only.html |
| |
| * Modules/mediastream/MediaEndpointPeerConnection.cpp: |
| (WebCore::MediaEndpointPeerConnection::createOfferTask): |
| (WebCore::MediaEndpointPeerConnection::createAnswerTask): |
| * Modules/mediastream/SDPProcessor.cpp: |
| (WebCore::getBundlePolicyName): |
| (WebCore::configurationToJSON): |
| * Modules/mediastream/sdp.js: |
| (SDP.generate): |
| * platform/mediastream/MediaEndpointSessionConfiguration.h: |
| (WebCore::MediaEndpointSessionConfiguration::bundlePolicy): |
| (WebCore::MediaEndpointSessionConfiguration::setBundlePolicy): |
| (WebCore::MediaEndpointSessionConfiguration::clone): |
| |
| 2017-04-05 Jer Noble <jer.noble@apple.com> |
| |
| [MSE] Seeks to currentTime=0 will fail if currentTime is already 0. |
| https://bugs.webkit.org/show_bug.cgi?id=170510 |
| <rdar://problem/30988403> |
| |
| Reviewed by Eric Carlson. |
| |
| Test: media/media-source/media-source-unnecessary-seek-seeked.html |
| |
| The AVSampleBufferRenderSynchronizer won't fire a time jumped notification if no seek is actully |
| necessary. So short circuit the seek logic if the seek time is identical to the current synchronizer |
| time. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal): |
| |
| 2017-04-05 Chris Dumez <cdumez@apple.com> |
| |
| <input type="range"> changing to disabled while active breaks all pointer events |
| https://bugs.webkit.org/show_bug.cgi?id=170447 |
| <rdar://problem/31442875> |
| |
| Reviewed by Geoffrey Garen. |
| |
| When a range's slider is being moved, we set SliderThumbElement's m_inDragMode flag |
| to true and mark the range elements as the CapturingMouseEventsElement. When we get |
| the mouseUp event, we are supposed to exit drag mode. However, when the range element |
| gets disabled while dragging, we do not get the mouseUp event and we need to make |
| sure we exit dragging mode anyway. r112547 tried to fix this by calling stopDragging() |
| in SliderThumbElement::defaultEventHandler() when the input element is disabled. |
| While this often works, this is fragile and we sometimes fail to exit dragging mode |
| when we should. |
| |
| This patch addressed the issue by calling stopDragging() in |
| SliderThumbElement::disabledAttributeChanged() instead. This is much safer as we |
| guarantee will exit dragging mode whenever the range element gets disabled, even |
| if SliderThumbElement::defaultEventHandler() does not get called after that. |
| |
| Test: fast/forms/range/disabled-while-dragging.html |
| |
| * html/RangeInputType.cpp: |
| (WebCore::RangeInputType::disabledAttributeChanged): |
| * html/RangeInputType.h: |
| * html/shadow/SliderThumbElement.cpp: |
| (WebCore::SliderThumbElement::defaultEventHandler): |
| (WebCore::SliderThumbElement::disabledAttributeChanged): |
| * html/shadow/SliderThumbElement.h: |
| |
| 2017-04-05 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Video doesn't render in fullscreen on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=170404 |
| |
| Reviewed by Youenn Fablet. |
| |
| No new tests, filed https://bugs.webkit.org/show_bug.cgi?id=170512. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC): Include |
| video fullscreen manager on iOS too. |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoTransformationMatrix): Add paramater |
| to force transform recalculation. |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSample): Restructure code since |
| the display layer resize happens elsewhere. |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers): Include video fullscreen |
| manager on iOS too. |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyLayers): Ditto. |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformLayer): Ditto. |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVideoFullscreenLayer): Ditto. |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::backgroundLayerBoundsChanged): Change the |
| display layer size and position immediately instead of waiting for the next sample buffer |
| so the display is correct when fullscreen mode changes when paused. |
| |
| 2017-04-05 Youenn Fablet <youenn@apple.com> |
| |
| Deprecate and remove URL.createObjectURL(mediastream) |
| https://bugs.webkit.org/show_bug.cgi?id=167518 |
| <rdar://problem/31149607> |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by updated tests. |
| |
| * CMakeLists.txt: |
| * DerivedSources.cpp: |
| * DerivedSources.make: |
| * Modules/mediastream/DOMURLMediaStream.cpp: Removed. |
| * Modules/mediastream/DOMURLMediaStream.h: Removed. |
| * Modules/mediastream/DOMURLMediaStream.idl: Removed. |
| * WebCore.xcodeproj/project.pbxproj: |
| * html/DOMURL.idl: |
| |
| 2017-04-05 Alejandro G. Castro <alex@igalia.com> |
| |
| [Webrtc] Mock realtime sources factories should be static after r213941 |
| https://bugs.webkit.org/show_bug.cgi?id=170282 |
| |
| Reviewed by Alex Christensen. |
| |
| If we don't make the variables static we would be returning a |
| local variable. |
| |
| * platform/mock/MockRealtimeAudioSource.cpp: |
| (WebCore::MockRealtimeAudioSource::factory): |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSource::factory): |
| |
| 2017-04-05 Alex Christensen <achristensen@webkit.org> |
| |
| Fix CMake build. |
| |
| * platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm: |
| Some JavaScript inline functions were not being accessed from this file with different enable flags. |
| * platform/spi/cf/CFNetworkSPI.h: |
| * platform/spi/cocoa/NSURLConnectionSPI.h: |
| Moved NSURLSession-specific SPI from NSURLConnectionSPI.h to CFNetworkSPI.h. |
| |
| 2017-04-05 Chris Dumez <cdumez@apple.com> |
| |
| _blank / _self / _parent / _top browsing context names should be case-insensitive |
| https://bugs.webkit.org/show_bug.cgi?id=169747 |
| |
| Reviewed by Alex Christensen. |
| |
| _blank / _self / _parent / _top browsing context names should be case-insensitive |
| as per the HTML specification: |
| - https://html.spec.whatwg.org/#browsing-context-names |
| |
| This aligns our behavior with Firefox as well. See discussion at: |
| - https://github.com/whatwg/html/issues/2443 |
| |
| Tests: imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-names/browsing-context-_blank.html |
| imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-names/browsing-context-choose-parent-001.html |
| imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-names/browsing-context-choose-parent-002.html |
| imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-names/browsing-context-choose-parent-003.html |
| imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-names/browsing-context-choose-parent-004.html |
| |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): |
| (WebCore::createWindow): |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::open): |
| * page/FrameTree.cpp: |
| (WebCore::FrameTree::uniqueChildName): |
| (WebCore::FrameTree::find): |
| |
| 2017-04-05 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK+] PNG animations that should run once are not played at all |
| https://bugs.webkit.org/show_bug.cgi?id=170499 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| The repetition count reported bu the PNGImageDecoder is wrong. It's returning m_playCount - 1, which |
| means 0 for the animations that need to be played once. Change it to return an appropriate value. |
| |
| Covered by existent tests. |
| |
| * platform/image-decoders/png/PNGImageDecoder.cpp: |
| (WebCore::PNGImageDecoder::repetitionCount): |
| * platform/image-decoders/png/PNGImageDecoder.h: |
| |
| 2017-04-05 Andy Estes <aestes@apple.com> |
| |
| REGRESSION (r202472): Data Detection overwrites existing links in detected ranges |
| https://bugs.webkit.org/show_bug.cgi?id=170365 |
| <rdar://problem/29205721> |
| |
| Reviewed by Tim Horton. |
| |
| r202472 changed the node traversal in searchForLinkRemovingExistingDDLinks() to only |
| consider nodes that are descendants of startNode, but we need to traverse all nodes between |
| startNode and endNode to find existing non-DD links. |
| |
| As a result, we'd add a Data Detector link to the following snippet and make the original |
| links un-clickable: |
| |
| <a href='#'>tomorrow</a> <a href='#'>night</a> |
| |
| Fix this by not specifying a stayWithin node when calling NodeTraversal::next(). The loop |
| will terminate when we reach endNode. |
| |
| Updated WebKit2.DataDetectionReferenceDate API test. |
| |
| * editing/cocoa/DataDetection.mm: |
| (WebCore::searchForLinkRemovingExistingDDLinks): |
| |
| 2017-04-04 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Move WebErrors from WebProcess to Shared and get rid of ErrorsGtk in WebCore |
| https://bugs.webkit.org/show_bug.cgi?id=156974 |
| |
| Reviewed by Sam Weinig. |
| |
| Remove ErrorsGtk. |
| |
| * PlatformGTK.cmake: |
| * platform/gtk/ErrorsGtk.cpp: Removed. |
| * platform/gtk/ErrorsGtk.h: Removed. |
| |
| 2017-04-05 Andy Estes <aestes@apple.com> |
| |
| [ios-simulator] API test WebKit2.DataDetectionReferenceDate timing out |
| https://bugs.webkit.org/show_bug.cgi?id=161967 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| DataDetectorsCoreSPI.h defined DDQueryOffset as a struct of two CFIndexes, which is 16 bytes |
| on LP64, but the struct is actually defined as two CFIndex-typed 32-bit bitfields, which is |
| 8 bytes on LP64. This breaks the ABI on Public SDK builds when calling functions that take |
| or return DDQueryOffsets. |
| |
| * platform/spi/cocoa/DataDetectorsCoreSPI.h: Updated the DDQueryOffset definition for |
| Public SDK builds, and added a static_assert to detect future size changes at compile time. |
| |
| 2017-04-04 Jer Noble <jer.noble@apple.com> |
| |
| Move AVSampleBufferDisplayLayer declarations into AVFoundationSPI.h |
| https://bugs.webkit.org/show_bug.cgi?id=170471 |
| |
| Reviewed by Eric Carlson. |
| |
| Move the declaration of AVSampleBufferDisplayLayer (and related classes) into AVFoundationSPI. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| * platform/spi/mac/AVFoundationSPI.h: |
| |
| 2017-04-04 Youenn Fablet <youenn@apple.com> |
| |
| Canvas is tainted when painting a video with MediaStreamTrack |
| https://bugs.webkit.org/show_bug.cgi?id=170486 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: http/tests/media/media-stream/getusermedia-with-canvas.html |
| |
| Adding the notion of isolated source so that we can later on implement WebRTC isolated tracks. |
| For now, canvas will not be tainted if painted from a MediaStreamTrack. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::didPassCORSAccessCheck): |
| * platform/mediastream/MediaStreamTrackPrivate.h: |
| (WebCore::MediaStreamTrackPrivate::isIsolated): |
| * platform/mediastream/RealtimeMediaSource.h: |
| |
| 2017-04-04 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r214894, r214895, r214907, r214912, |
| and r214918. |
| https://bugs.webkit.org/show_bug.cgi?id=170491 |
| |
| Caused build failures on Mac (Requested by rniwa on #webkit). |
| |
| Reverted changesets: |
| |
| "Build fix." |
| http://trac.webkit.org/changeset/214894 |
| |
| "Rolling back the build fix, as it broke other builds." |
| http://trac.webkit.org/changeset/214895 |
| |
| "Move AVSampleBufferDisplayLayer declarations into |
| AVFoundationSPI.h" |
| https://bugs.webkit.org/show_bug.cgi?id=170471 |
| http://trac.webkit.org/changeset/214907 |
| |
| "Unreviewed build fix: fix compilation error on Sierra." |
| http://trac.webkit.org/changeset/214912 |
| |
| "More build fixing." |
| http://trac.webkit.org/changeset/214918 |
| |
| 2017-04-04 Youenn Fablet <youenn@apple.com> |
| |
| [Mac] Add back web audio support for getUserMedia MediaStreamTrack |
| https://bugs.webkit.org/show_bug.cgi?id=170482 |
| |
| Reviewed by Eric Carlson. |
| |
| ´Covered by reenabled test. |
| |
| Exporting method and class used in WebKit2. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/audio/mac/CAAudioStreamDescription.h: |
| * platform/mediastream/mac/WebAudioSourceProviderAVFObjC.h: |
| |
| 2017-04-04 Alexey Proskuryakov <ap@apple.com> |
| |
| More build fixing. |
| |
| * platform/spi/mac/AVFoundationSPI.h: |
| |
| 2017-04-04 Simon Fraser <simon.fraser@apple.com> |
| |
| Do some minor FEColorMatrix code cleanup and optimization |
| https://bugs.webkit.org/show_bug.cgi?id=170474 |
| |
| Reviewed by Dean Jackson. |
| |
| Don't switch inside of a pixel processing loop; repeat the loop inside switch (filterType). |
| |
| Change matrix() and saturateAndHueRotate() to dereference the source pixels once, instead |
| of multiple times, which is faster. |
| |
| This kind of code benefits from aligning things with spaces for readability, so do so, |
| violating webkit style. |
| |
| Add some off-by-default performance logging code. |
| |
| Increases pixel processing performance from about 86ms per megapixel to 65ms per megapixel. |
| |
| * platform/graphics/filters/FEColorMatrix.cpp: |
| (WebCore::matrix): |
| (WebCore::saturateAndHueRotate): |
| (WebCore::effectType): |
| (WebCore::FEColorMatrix::platformApplySoftware): |
| |
| 2017-04-04 Brent Fulgham <bfulgham@apple.com> |
| |
| Do not assert when CharacterData representing an Attr fires events |
| https://bugs.webkit.org/show_bug.cgi?id=170454 |
| <rdar://problem/30979320> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Make the NoEventDispatchAssertion in CharacterData::notifyParentAfterChange conditional |
| since Attr elements should be allowed to fire events. |
| |
| Tests: fast/dom/no-assert-for-malformed-js-url-attribute.html |
| |
| * dom/CharacterData.cpp: |
| (WebCore::CharacterData::notifyParentAfterChange): |
| |
| 2017-04-04 Youenn Fablet <youenn@apple.com> |
| |
| LayoutTest webrtc/libwebrtc/descriptionGetters.html is a flaky failure |
| https://bugs.webkit.org/show_bug.cgi?id=169481 |
| |
| Reviewed by Eric Carlson. |
| |
| No need to enumerate all network interfaces in most layout tests. |
| Adding an Internals API for that in case we want to use TCP localhost candidates. |
| |
| * testing/Internals.cpp: |
| (WebCore::Internals::Internals): |
| (WebCore::Internals::setEnumeratingAllNetworkInterfacesEnabled): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| |
| 2017-04-04 Jer Noble <jer.noble@apple.com> |
| |
| Unreviewed build fix: fix compilation error on Sierra. |
| |
| * platform/spi/mac/AVFoundationSPI.h: |
| |
| 2017-04-04 Jer Noble <jer.noble@apple.com> |
| |
| Move AVSampleBufferDisplayLayer declarations into AVFoundationSPI.h |
| https://bugs.webkit.org/show_bug.cgi?id=170471 |
| |
| Reviewed by Eric Carlson. |
| |
| Move the declaration of AVSampleBufferDisplayLayer (and related classes) into AVFoundationSPI. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer): Deleted. |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::removeDisplayLayer): Deleted. |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| * platform/spi/mac/AVFoundationSPI.h: |
| |
| 2017-04-04 Saam Barati <sbarati@apple.com> |
| |
| WebAssembly: JSWebAssemblyCallee should not be a JSCell |
| https://bugs.webkit.org/show_bug.cgi?id=170135 |
| |
| Reviewed by Michael Saboff. |
| |
| * bindings/js/JSDOMWindowBase.cpp: |
| (WebCore::callerDOMWindow): |
| |
| 2017-04-04 Simon Fraser <simon.fraser@apple.com> |
| |
| Change Document's lastHandledUserGestureTimestamp to be a MonotonicTime |
| https://bugs.webkit.org/show_bug.cgi?id=170468 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Change the double to MonotonicTime. No behavior change. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::updateLastHandledUserGestureTimestamp): |
| * dom/Document.h: |
| (WebCore::Document::lastHandledUserGestureTimestamp): |
| * html/HTMLPlugInImageElement.cpp: |
| (WebCore::documentHadRecentUserGesture): |
| * loader/FrameLoader.cpp: |
| (WebCore::shouldAskForNavigationConfirmation): |
| |
| 2017-04-04 Youenn Fablet <youenn@apple.com> |
| |
| [Debug] ASSERT(!throwScope.exception()) on imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-status-worker.html |
| https://bugs.webkit.org/show_bug.cgi?id=170395 |
| <rdar://problem/31394017> |
| |
| Reviewed by Mark Lam. |
| |
| No change of behavior. |
| |
| * bindings/js/JSDOMPromise.cpp: |
| (WebCore::DeferredPromise::reject): Adding early ASSERT that creating an exception is happening correctly. |
| |
| 2017-04-04 Alexey Proskuryakov <ap@apple.com> |
| |
| Rolling back the build fix, as it broke other builds. |
| |
| * platform/spi/mac/AVFoundationSPI.h: |
| |
| 2017-04-04 Alexey Proskuryakov <ap@apple.com> |
| |
| Build fix. |
| |
| Rubber-stamped by Jer Noble. |
| |
| * platform/spi/mac/AVFoundationSPI.h: |
| |
| 2017-04-04 Tim Horton <timothy_horton@apple.com> |
| |
| [Mac] -[WKWebView findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:] invokes the resultCollector with didWrap = NO even when it wraps |
| https://bugs.webkit.org/show_bug.cgi?id=165801 |
| <rdar://problem/29649535> |
| |
| Reviewed by Wenson Hsieh. |
| |
| New API tests: WebKit2.FindInPageWrapping* |
| |
| * page/FrameTree.cpp: |
| (WebCore::FrameTree::traverseNextWithWrap): |
| (WebCore::FrameTree::traversePreviousWithWrap): |
| (WebCore::FrameTree::traverseNextInPostOrderWithWrap): |
| * page/FrameTree.h: |
| Add CanWrap and DidWrap boolean enums, and add an optional out argument |
| to traverse*WithWrap indicating whether a wrap actually occurred. |
| |
| * history/CachedPage.cpp: |
| (WebCore::firePageShowAndPopStateEvents): |
| * history/PageCache.cpp: |
| (WebCore::destroyRenderTree): |
| Adjust to the new CanWrap enum. |
| |
| * page/Page.cpp: |
| (WebCore::incrementFrame): |
| (WebCore::Page::findString): |
| (WebCore::Page::findStringMatchingRanges): |
| (WebCore::Page::rangeOfString): |
| (WebCore::Page::findMatchesForText): |
| (WebCore::Page::unmarkAllTextMatches): |
| * page/Page.h: |
| Adjust to the new CanWrap enum, and optionally plumb DidWrap through |
| to callers of findString(). |
| |
| 2017-04-04 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] PLATFORM(GTK) && !USE(COORDINATED_GRAPHICS_THREADED) is no longer possible |
| https://bugs.webkit.org/show_bug.cgi?id=170458 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| That is not supported anymore, so we can remove dead code from VideoSinkGStreamer.cpp |
| |
| * platform/graphics/gstreamer/VideoSinkGStreamer.cpp: |
| (VideoRenderRequestScheduler::VideoRenderRequestScheduler): |
| |
| 2017-04-04 Per Arne Vollan <pvollan@apple.com> |
| |
| Unreviewed Windows build fix. |
| |
| * bindings/js/JSDOMGuardedObject.h: |
| |
| 2017-04-03 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Data interaction should register type identifiers in order of priority |
| https://bugs.webkit.org/show_bug.cgi?id=170428 |
| <rdar://problem/30633296> |
| |
| Reviewed by Tim Horton. |
| |
| Currently, due to the shared logic for writing to a UIPasteboard (in the case of copy/paste) and the shared |
| UIItemProvider-based pasteboard wrapper (in the case of data interaction), we don't enforce any particular |
| ordering in which type identifiers are registered in the generated item provider. This is because |
| -[UIPasteboard setItems:] only takes an unordered mapping of type identifiers to objects. |
| |
| To fix this, we introduce a separate way to set pasteboard data that first writes a list of object |
| representations in order of priority (which is dependent on the content being interacted with) and then register |
| individual type-data mappings at the end. |
| |
| Augmented existing API tests in DataInteractionTests to check for the existence and priority of type identifiers |
| in the UIItemProviders created upon starting data interaction. Also adds a new unit test: |
| DataInteractionTests.TextAreaToInput. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * editing/cocoa/EditorCocoa.mm: |
| (WebCore::archivedDataForAttributedString): |
| (WebCore::Editor::writeSelectionToPasteboard): |
| (WebCore::Editor::writeSelection): |
| * platform/Pasteboard.h: |
| * platform/PasteboardWriterData.h: |
| * platform/PlatformPasteboard.h: |
| * platform/ios/AbstractPasteboard.h: |
| * platform/ios/AbstractPasteboard.mm: Copied from Source/WebCore/platform/ios/AbstractPasteboard.h. |
| |
| Introduce WebPasteboardItemData, a wrapper around a list of objects representating the pasteboard data in order |
| of priority, and a dictionary containing additional NSData blobs that contain data useful for private clients. |
| |
| (+[WebPasteboardItemData itemWithRepresentingObjects:additionalData:]): |
| (-[WebPasteboardItemData initWithRepresentingObjects:additionalData:]): |
| (-[WebPasteboardItemData representingObjects]): |
| (-[WebPasteboardItemData additionalData]): |
| * platform/ios/PlatformPasteboardIOS.mm: |
| (WebCore::richTextRepresentationsForPasteboardWebContent): |
| (WebCore::PlatformPasteboard::writeObjectRepresentations): |
| (WebCore::PlatformPasteboard::write): |
| |
| Tweaked to check whether the pasteboard responds to -setItemsFromObjectRepresentations:. If so, uses the |
| PlatformPasteboard::writeObjectRepresentations codepath to write data to the pasteboard, respecting type |
| priority. |
| |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (-[WebItemProviderPasteboard pasteboardTypes]): |
| (-[WebItemProviderPasteboard setItemProviders:]): |
| (-[WebItemProviderPasteboard setItemsFromObjectRepresentations:]): |
| |
| Replaces -setItems: with -setItemsFromObjectRepresentations:, which respects the priority of each object |
| representation of the data in the pasteboard. |
| |
| (-[WebItemProviderPasteboard setItems:]): Deleted. |
| |
| 2017-04-03 Javier Fernandez <jfernandez@igalia.com> |
| |
| [css-align] Adapt place-content alignment shorthand to the new baseline syntax |
| https://bugs.webkit.org/show_bug.cgi?id=170340 |
| |
| Reviewed by David Hyatt. |
| |
| Now that the align-content and justify-content CSS properties are |
| adapted to the new baseline-position CSS values syntax we can adapt the |
| shorthand that controls such properties to the new syntax as well. |
| |
| No new tests, just adding some additional cases to the tests we already have. |
| |
| * css/StyleProperties.cpp: |
| (WebCore::StyleProperties::getPropertyValue): |
| (WebCore::StyleProperties::placeContentPropertyValue): |
| * css/StyleProperties.h: |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::isContentDistributionKeyword): |
| (WebCore::isContentPositionKeyword): |
| (WebCore::isOverflowKeyword): |
| (WebCore::getBaselineKeyword): |
| (WebCore::consumeContentDistributionOverflowPosition): |
| (WebCore::consumeSimplifiedContentPosition): |
| |
| 2017-04-03 Nan Wang <n_wang@apple.com> |
| |
| AX: Expose link children when doing search predication on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=170424 |
| <rdar://problem/31413335> |
| |
| The children of links are accessible elements on iOS instead of the link itself, |
| so we should expose the children when doing predicated searches as well. |
| |
| Reviewed by Chris Fleizach. |
| |
| Test: accessibility/ios-simulator/ios-search-predicate-link-children.html |
| |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex): |
| |
| 2017-04-03 Jer Noble <jer.noble@apple.com> |
| |
| No audio output for MediaStream-backed audio elements on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=170427 |
| |
| Reviewed by Eric Carlson. |
| |
| The logic for setting the output timestamp offset in AudioSampleDataSource was reversed; instead of |
| subtracting out the timestamp of the first pull request, it effectively doubled it. |
| |
| * platform/audio/mac/AudioSampleDataSource.mm: |
| (WebCore::AudioSampleDataSource::pullSamplesInternal): |
| |
| 2017-04-03 Dave Hyatt <hyatt@apple.com> |
| |
| Japanese fonts in vertical text should support synthesized italics |
| https://bugs.webkit.org/show_bug.cgi?id=169301 |
| |
| Reviewed by Simon Fraser. |
| |
| Updated test in fast/text/international. |
| |
| * platform/graphics/Font.cpp: |
| (WebCore::Font::nonSyntheticItalicFont): Deleted. |
| * platform/graphics/Font.h: |
| Removed the non-synthetic italic font member, since it's not used. |
| |
| * platform/graphics/FontCascadeFonts.cpp: |
| (WebCore::glyphDataForNonCJKCharacterWithGlyphOrientation): |
| Patched to ensure that a text-orientation-fallback font data is always |
| returned in the synthetic oblique case, so that non-CJK and CJK are |
| guaranteed to be broken up so that their slants can be applied differently. |
| |
| (WebCore::FontCascadeFonts::glyphDataForSystemFallback): |
| (WebCore::FontCascadeFonts::glyphDataForNormalVariant): |
| (WebCore::glyphDataForCJKCharacterWithoutSyntheticItalic): Deleted. |
| Patched to no longer turn off synthetic oblique for CJK. |
| |
| * platform/graphics/cocoa/FontCascadeCocoa.mm: |
| (WebCore::FontCascade::drawGlyphs): |
| Apply the correct italic transform to CJK when in vertical text. |
| |
| 2017-04-03 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (r206744): CSS background-image in style attribute ignored when using createHTMLDocument method of DOM parsing |
| https://bugs.webkit.org/show_bug.cgi?id=170285 |
| <rdar://problem/31378543> |
| |
| Reviewed by Andy Estes. |
| |
| r206744 caused up to stop trying to resolve relative URLs when trying to load an image |
| referred to by CSS. We already try to resolve the relative URL when parsing the CSS |
| property so this will usually work fine. However, in the case when the CSS property |
| is parsed in detached document and then moved to another document, we will not have |
| the complete URL. |
| |
| Test: fast/images/background-image-relative-url-changes-document.html |
| |
| * css/CSSImageValue.cpp: |
| (WebCore::CSSImageValue::loadImage): |
| |
| 2017-04-03 Jeremy Jones <jeremyj@apple.com> |
| |
| Do not set WebAVPlayerLayerView background to black in fullscreen. |
| https://bugs.webkit.org/show_bug.cgi?id=170132 |
| rdar://problem/30839278 |
| |
| Reviewed by Tim Horton. |
| |
| No new tests because no behavior change. |
| |
| The black background on WebAVPlayerLayerView interferes with the fullscreen animation |
| and has been removed. |
| |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: |
| (WebVideoFullscreenInterfaceAVKit::enterFullscreen): |
| (WebVideoFullscreenInterfaceAVKit::enterFullscreenStandard): |
| |
| 2017-04-03 Antti Koivisto <antti@apple.com> |
| |
| REGRESSION (r207669): FileMaker Pro Help pages do not render correctly |
| https://bugs.webkit.org/show_bug.cgi?id=170402 |
| <rdar://problem/31004344> |
| |
| Reviewed by Simon Fraser. |
| |
| If a new stylesheet load is started from the load event the document.styleSheets does not |
| always reflect the already loaded stylesheets. |
| |
| Test: fast/css/document-stylesheets-dynamic.html |
| |
| * style/StyleScope.cpp: |
| (WebCore::Style::Scope::updateActiveStyleSheets): |
| |
| Remove an old optimization where we would not update active stylesheets if there were pending |
| (head) stylesheet loads and they had not been updated already. |
| This is probably not a valuable optimization anymore with the new lazy stylesheet update strategy. |
| |
| * style/StyleScope.h: |
| |
| 2017-04-03 Anders Carlsson <andersca@apple.com> |
| |
| Tweak ApplePaySession API |
| https://bugs.webkit.org/show_bug.cgi?id=170409 |
| rdar://problem/31405459 |
| |
| Reviewed by Tim Horton. |
| |
| Rename "address" to "addressLines". Add "postalAddress". Reorder the ApplePayError constructor parameters. |
| |
| * Modules/applepay/ApplePayError.cpp: |
| (WebCore::ApplePayError::create): |
| (WebCore::ApplePayError::ApplePayError): |
| * Modules/applepay/ApplePayError.h: |
| * Modules/applepay/ApplePayError.idl: |
| * Modules/applepay/PaymentRequest.h: |
| |
| 2017-04-03 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] Implement CryptoKeyEC::keySizeInBits(), ::platformGeneratePair() |
| https://bugs.webkit.org/show_bug.cgi?id=170345 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Start implementing the libgcrypt-based platform bits of CryptoKeyEC. |
| |
| Implement keySizeInBits() by returning the appropriate size for this |
| object's curve type. An assertion is added to ensure that this size |
| matches the one that's returned by gcry_pk_get_nbits() for this |
| object's EC key as represented by the m_platformKey gcry_sexp_t object. |
| |
| Implement platformGeneratePair() by constructing a genkey s-expression |
| that requests a generation of an EC key for the specified curve type. |
| The s-expression is then passed to gcry_pk_genkey(), and the public |
| and private key data is then retrieved from the returned s-expression |
| upon success and used to create the public and private CryptoKeyEC |
| objects. |
| |
| The PlatformECKey type alias is changed to match gcry_sexp_t. The |
| CryptoKeyEC destructor releases the gcry_sexp_t object through |
| a PAL::GCrypt::HandleDeleter<gcry_sexp_t> instance. |
| |
| The method definitions in the CryptoKeyECGCrypt.cpp file are also |
| sorted to match the declaration order in the header. |
| |
| No new tests -- current ones cover this sufficiently, but are not yet |
| enabled due to other missing platform-specific SUBTLE_CRYPTO |
| implementations. |
| |
| * crypto/gcrypt/CryptoKeyECGCrypt.cpp: |
| (WebCore::curveSize): |
| (WebCore::curveName): |
| (WebCore::CryptoKeyEC::~CryptoKeyEC): |
| (WebCore::CryptoKeyEC::keySizeInBits): |
| (WebCore::CryptoKeyEC::platformGeneratePair): |
| (WebCore::CryptoKeyEC::platformImportSpki): |
| (WebCore::CryptoKeyEC::platformImportPkcs8): |
| (WebCore::CryptoKeyEC::platformExportRaw): |
| (WebCore::CryptoKeyEC::platformAddFieldElements): |
| (WebCore::CryptoKeyEC::platformExportSpki): |
| * crypto/keys/CryptoKeyEC.h: |
| |
| 2017-04-03 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] Implement AES_KW support |
| https://bugs.webkit.org/show_bug.cgi?id=170274 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Implement the CryptoAlgorithmAES_KW::platform{Wrap,Unwrap}Key() |
| functionality for configurations that use libgcrypt. This is done |
| by leveraging the gcry_cipher_* APIs for the AES algorithm that's |
| deducted appropriately from the key size and the AESWRAP cipher mode. |
| |
| No new tests -- current ones cover this sufficiently, but are not yet |
| enabled due to other missing platform-specific SUBTLE_CRYPTO |
| implementations. |
| |
| * crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp: |
| (WebCore::gcryptWrapKey): |
| (WebCore::gcryptUnwrapKey): |
| (WebCore::CryptoAlgorithmAES_KW::platformWrapKey): |
| (WebCore::CryptoAlgorithmAES_KW::platformUnwrapKey): |
| |
| 2017-04-03 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] Implement AES_GCM support |
| https://bugs.webkit.org/show_bug.cgi?id=170271 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Implement the CryptoAlgorithmAES_GCM::platform{Encrypt,Decrypt} |
| functionality for configurations that use libgcrypt. This is done |
| by leveraging the gcry_cipher_* APIs for the AES algorithm that's |
| deducted appropriately from the key size and the GCM cipher mode. |
| |
| No new tests -- current ones cover this sufficiently, but are not yet |
| enabled due to other missing platform-specific SUBTLE_CRYPTO |
| implementations. |
| |
| * crypto/gcrypt/CryptoAlgorithmAES_GCMGCrypt.cpp: |
| (WebCore::gcryptEncrypt): |
| (WebCore::gcryptDecrypt): |
| (WebCore::CryptoAlgorithmAES_GCM::platformEncrypt): |
| (WebCore::CryptoAlgorithmAES_GCM::platformDecrypt): |
| |
| 2017-04-03 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] Implement PBKDF2 support |
| https://bugs.webkit.org/show_bug.cgi?id=170270 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Implement the CryptoAlgorithmPBKDF2::platformDeriveBits() functionality |
| for configurations that use libgcrypt. This is done by leveraging the |
| gcry_kdf_derive() API, using GCRY_KDF_PBKDF2 as the preferred KDF |
| along with the properly deducted SHA algorithm. |
| |
| No new tests -- current ones cover this sufficiently, but are not yet |
| enabled due to other missing platform-specific SUBTLE_CRYPTO |
| implementations. |
| |
| * crypto/gcrypt/CryptoAlgorithmPBKDF2GCrypt.cpp: |
| (WebCore::gcryptDeriveBits): |
| (WebCore::CryptoAlgorithmPBKDF2::platformDeriveBits): |
| |
| 2017-04-01 Simon Fraser <simon.fraser@apple.com> |
| |
| Clean up touch event handler registration when moving nodes between documents |
| https://bugs.webkit.org/show_bug.cgi?id=170384 |
| rdar://problem/30816694 |
| |
| Reviewed by Chris Dumez. |
| |
| Make sure that Node::didMoveToNewDocument() does the correct unregistration on the |
| old document, and registration on the new document for nodes with touch event listeners, |
| and gesture event listeners. Touch "handler" nodes (those for overflow and sliders) are |
| already correctly moved via renderer-related teardown. |
| |
| Add assertions that fire when removal was not complete. |
| |
| Use references in more places. |
| |
| Tests: fast/events/touch/ios/gesture-node-move-between-documents.html |
| fast/events/touch/ios/overflow-node-move-between-documents.html |
| fast/events/touch/ios/slider-node-move-between-documents.html |
| fast/events/touch/ios/touch-node-move-between-documents.html |
| |
| * dom/EventNames.h: |
| (WebCore::EventNames::gestureEventNames): |
| * dom/Node.cpp: |
| (WebCore::Node::willBeDeletedFrom): |
| (WebCore::Node::didMoveToNewDocument): |
| (WebCore::tryAddEventListener): |
| (WebCore::tryRemoveEventListener): |
| * html/shadow/SliderThumbElement.cpp: |
| (WebCore::SliderThumbElement::registerForTouchEvents): |
| (WebCore::SliderThumbElement::unregisterForTouchEvents): |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::registerAsTouchEventListenerForScrolling): |
| (WebCore::RenderLayer::unregisterAsTouchEventListenerForScrolling): |
| |
| 2017-04-03 Youenn Fablet <youenn@apple.com> |
| |
| captureStream is getting black frames with webgl canvas |
| https://bugs.webkit.org/show_bug.cgi?id=170325 |
| |
| Reviewed by Dean Jackson. |
| |
| Test: fast/mediastream/captureStream/canvas3d.html |
| |
| Changing the webgl context to save buffers in case the canvas is captured. |
| Adding a canvas changed notification in case of clear. |
| In the future, we might want to change this notification and do it when endPaint or similar is called. |
| |
| Adding an Internals API to grab the RGBA equivalent of the next track frame. |
| For that purpose, adding a bunch of WEBCORE_EXPORT. |
| |
| * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: |
| (WebCore::CanvasCaptureMediaStreamTrack::Source::Source): Adding constraints support so that track settings |
| getter actually transmits the width and height of the source. |
| (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasChanged): ensuring webgl canvas context keep their drawing buffer. |
| * Modules/mediastream/MediaStreamTrack.h: |
| * bindings/js/JSDOMGuardedObject.h: |
| * bindings/js/JSDOMPromise.h: |
| (WebCore::DeferredPromise::resolve): |
| (WebCore::DeferredPromise::reject): |
| * dom/ActiveDOMCallback.h: |
| * html/HTMLCanvasElement.cpp: |
| (WebCore::HTMLCanvasElement::captureStream): |
| * html/ImageData.h: |
| * html/ImageData.idl: |
| * html/canvas/WebGLRenderingContext.cpp: |
| (WebCore::WebGLRenderingContext::clear): ensuring canvas observers get notified in case of clear calls. |
| * html/canvas/WebGLRenderingContextBase.h: |
| (WebCore::WebGLRenderingContextBase::preserveDrawingBuffer): Added to allow canvas capture to update this property. |
| * platform/MediaSample.h: |
| (WebCore::MediaSample::getRGBAImageData): Added for internals API. |
| * platform/graphics/avfoundation/MediaSampleAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm: |
| (WebCore::MediaSampleAVFObjC::getRGBAImageData): |
| * platform/graphics/cv/PixelBufferConformerCV.cpp: |
| (WebCore::PixelBufferConformerCV::convert): Helper routine for getRGBAImageData. |
| * platform/graphics/cv/PixelBufferConformerCV.h: |
| * platform/mediastream/RealtimeMediaSourceSettings.h: |
| (WebCore::RealtimeMediaSourceSettings::setSupportedConstraints): |
| (WebCore::RealtimeMediaSourceSettings::setSupportedConstraits): Deleted. |
| * platform/mediastream/mac/AVMediaCaptureSource.mm: |
| (WebCore::AVMediaCaptureSource::initializeSettings): |
| * platform/mediastream/openwebrtc/RealtimeAudioSourceOwr.h: |
| * platform/mediastream/openwebrtc/RealtimeVideoSourceOwr.h: |
| * platform/mock/MockRealtimeMediaSource.cpp: |
| (WebCore::MockRealtimeMediaSource::initializeSettings): |
| * testing/Internals.cpp: |
| (WebCore::Internals::grabNextMediaStreamTrackFrame): |
| (WebCore::Internals::videoSampleAvailable): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-04-03 Per Arne Vollan <pvollan@apple.com> |
| |
| Implement stroke-miterlimit. |
| https://bugs.webkit.org/show_bug.cgi?id=169078 |
| |
| Reviewed by Dean Jackson. |
| |
| Support stroke-miterlimit for text rendering, see https://drafts.fxtf.org/paint/. |
| |
| Tests: fast/css/stroke-miterlimit-default.html |
| fast/css/stroke-miterlimit-large.html |
| fast/css/stroke-miterlimit-zero.html |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::propertyValue): |
| * css/CSSProperties.json: |
| * css/SVGCSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::svgPropertyValue): |
| * rendering/TextPaintStyle.cpp: |
| (WebCore::computeTextPaintStyle): |
| (WebCore::updateGraphicsContext): |
| * rendering/TextPaintStyle.h: |
| * rendering/style/RenderStyle.cpp: |
| (WebCore::RenderStyle::diff): |
| * rendering/style/RenderStyle.h: |
| (WebCore::RenderStyle::strokeMiterLimit): |
| (WebCore::RenderStyle::setStrokeMiterLimit): |
| (WebCore::RenderStyle::initialStrokeMiterLimit): |
| (WebCore::RenderStyle::setStrokeDashOffset): |
| * rendering/style/RenderStyleConstants.cpp: |
| * rendering/style/RenderStyleConstants.h: |
| * rendering/style/SVGRenderStyle.cpp: |
| (WebCore::SVGRenderStyle::diff): |
| * rendering/style/SVGRenderStyle.h: |
| (WebCore::SVGRenderStyle::initialStrokeDashArray): |
| (WebCore::SVGRenderStyle::strokeDashArray): |
| (WebCore::SVGRenderStyle::initialStrokeMiterLimit): Deleted. |
| (WebCore::SVGRenderStyle::strokeMiterLimit): Deleted. |
| (WebCore::SVGRenderStyle::setStrokeMiterLimit): Deleted. |
| * rendering/style/SVGRenderStyleDefs.cpp: |
| (WebCore::StyleStrokeData::StyleStrokeData): |
| (WebCore::StyleStrokeData::operator==): |
| * rendering/style/SVGRenderStyleDefs.h: |
| * rendering/style/StyleRareInheritedData.cpp: |
| (WebCore::StyleRareInheritedData::StyleRareInheritedData): |
| (WebCore::StyleRareInheritedData::operator==): |
| * rendering/style/StyleRareInheritedData.h: |
| * rendering/svg/RenderSVGShape.cpp: |
| (WebCore::RenderSVGShape::hasSmoothStroke): |
| * rendering/svg/SVGRenderSupport.cpp: |
| (WebCore::SVGRenderSupport::applyStrokeStyleToContext): |
| * rendering/svg/SVGRenderTreeAsText.cpp: |
| (WebCore::writeStyle): |
| |
| 2017-04-03 Alejandro G. Castro <alex@igalia.com> |
| |
| [OWR] Fix class structure for the OWR mock classes after last modifications |
| https://bugs.webkit.org/show_bug.cgi?id=170173 |
| |
| Reviewed by Youenn Fablet. |
| |
| In case of OWR MockRealtimeMediaSource inherits from |
| RealtimeMediaSourceOwr, so we have to change some of the function |
| interfaces. |
| |
| * platform/mock/MockRealtimeMediaSource.h: |
| |
| 2017-04-02 Alexey Proskuryakov <ap@apple.com> |
| |
| Build fix for |
| Add missing text styles |
| https://bugs.webkit.org/show_bug.cgi?id=170295 |
| |
| * rendering/RenderThemeIOS.mm: |
| (WebCore::RenderThemeIOS::cachedSystemFontDescription): |
| (WebCore::RenderThemeIOS::updateCachedSystemFontDescription): |
| |
| 2017-04-01 Zalan Bujtas <zalan@apple.com> |
| |
| Long Arabic text in ContentEditable with css white-space=pre hangs Safari |
| https://bugs.webkit.org/show_bug.cgi?id=170245 |
| |
| Reviewed by Myles C. Maxfield. |
| |
| While searching for mid-word break, we measure the text by codepoints in a loop until the accumulated width > available width. |
| When we see that the accumulated width for the individual codepoints overflows, we join the codepoints and re-measure them. |
| These 2 widths could be considerably different for number of reasons (ligatures is a prime example). When we figure that |
| the run still fits, we go back to the main loop (since we are not supposed to wrap the line here) and take the next codepoint. |
| However this time we start the measurement from the last whitespace, so we end up remeasuring a potentially long chuck of text |
| until we hit the wrapping point. This is way too expensive. |
| This patch changes the logic so that we just go back to measuring individual codepoints until we hit the constrain again. |
| |
| Covered by existing tests. |
| |
| * rendering/line/BreakingContext.h: |
| (WebCore::BreakingContext::handleText): canUseSimpleFontCodePath() is just to mitigate the potential risk of regression and |
| complex text is more likely to fall into this category. |
| |
| 2017-04-01 Jon Lee <jonlee@apple.com> |
| |
| Add missing text styles |
| https://bugs.webkit.org/show_bug.cgi?id=170295 |
| rdar://problem/30219503 |
| |
| Reviewed by Dean Jackson. |
| |
| Updated existing test to include new text styles. |
| |
| * css/CSSValueKeywords.in: Add title0 and title4. |
| * platform/spi/cocoa/CoreTextSPI.h: |
| * rendering/RenderThemeIOS.mm: |
| (WebCore::RenderThemeIOS::cachedSystemFontDescription): |
| (WebCore::RenderThemeIOS::updateCachedSystemFontDescription): |
| |
| 2017-04-01 Dan Bernstein <mitz@apple.com> |
| |
| [iOS] <input type=file> label should be specified using plural rules |
| https://bugs.webkit.org/show_bug.cgi?id=170388 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * English.lproj/Localizable.strings: Updated using update-webkit-localizable-strings. |
| |
| * English.lproj/Localizable.stringsdict: Added an entry for the new key "%lu photo(s) and |
| %lu video(s)", with plural rules covering all the different combinations in English. |
| Other localizations may specify additional combinations as needed. |
| |
| 2017-04-01 Alexey Proskuryakov <ap@apple.com> |
| |
| Rolling back <https://trac.webkit.org/r214697>, as it made WebKit2.DataDetectionReferenceDate time out. |
| |
| Was REGRESSION (r202472): Data Detection overwrites existing links in detected ranges |
| https://bugs.webkit.org/show_bug.cgi?id=170365 |
| |
| * editing/cocoa/DataDetection.mm: |
| (WebCore::searchForLinkRemovingExistingDDLinks): |
| |
| 2017-04-01 Chris Dumez <cdumez@apple.com> |
| |
| We should pause silent WebAudio rendering in background tabs |
| https://bugs.webkit.org/show_bug.cgi?id=170299 |
| <rdar://problem/31289132> |
| |
| Reviewed by Eric Carlson. |
| |
| We should pause silent WebAudio rendering in background tabs since it uses CPU and is |
| not observable by the user. Such silent WebAudio rendering seems to be used by |
| doubleclick ads. |
| |
| Test: webaudio/silent-audio-interrupted-in-background.html |
| |
| * Modules/webaudio/AudioContext.cpp: |
| (WebCore::AudioContext::lazyInitialize): |
| (WebCore::AudioContext::uninitialize): |
| Have AudioContext register / unregister itself with the Document to get |
| visibility change notifications, similarly to what HTMLMediaElement was |
| already doing. |
| |
| (WebCore::AudioContext::visibilityStateChanged): |
| Begin / End session interruption whenever the page visiblity changes. |
| |
| * Modules/webaudio/AudioContext.h: |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| * dom/Document.cpp: |
| (WebCore::Document::registerForVisibilityStateChangedCallbacks): |
| (WebCore::Document::unregisterForVisibilityStateChangedCallbacks): |
| (WebCore::Document::visibilityStateChanged): |
| * dom/Document.h: |
| * dom/Element.h: |
| * dom/VisibilityChangeClient.h: Added. |
| (WebCore::VisibilityChangeClient::~VisibilityChangeClient): |
| * html/HTMLMediaElement.h: |
| Introduce a new VisibilityChangeClient interface and have both AudioContext |
| and HTMLMediaElement subclass it. Previously, the visibilityStateChanged() |
| function was on Element but this prevented AudioContext from registering |
| itself since AudioContext is not an Element. |
| |
| 2017-04-01 Dan Bernstein <mitz@apple.com> |
| |
| [Cocoa] A couple of UI strings use three periods instead of an ellipsis |
| https://bugs.webkit.org/show_bug.cgi?id=170386 |
| |
| Reviewed by Tim Horton. |
| |
| * English.lproj/Localizable.strings: Updated using update-webkit-localizable-strings. |
| |
| * platform/LocalizedStrings.cpp: |
| (WebCore::mediaElementLoadingStateText): Changed "Loading..." to "Loading…". |
| |
| * platform/cocoa/LocalizedStringsCocoa.mm: |
| (WebCore::contextMenuItemTagStyles): Changed "Styles..." to "Styles…". |
| |
| 2017-04-01 Dan Bernstein <mitz@apple.com> |
| |
| Localizable strings files are out of date |
| https://bugs.webkit.org/show_bug.cgi?id=170383 |
| |
| Reviewed by Tim Horton. |
| |
| Ran update-webkit-localizable-strings. |
| |
| * English.lproj/Localizable.strings: |
| |
| 2017-04-01 Dan Bernstein <mitz@apple.com> |
| |
| [Xcode] In engineering builds, linker warns about libwebrtc.dylib’s install name being invalid |
| https://bugs.webkit.org/show_bug.cgi?id=170385 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/DebugRelease.xcconfig: Set WK_RELOCATABLE_FRAMEWORKS to YES like we do |
| in some other projects’ DebugRelease.xcconfig. Engineering builds are always relocatable. |
| * Configurations/WebCore.xcconfig: When WebCore is relocatable, tell the linker that it’s |
| not going to be in the shared cache, even if its install name implies that it might be. |
| |
| 2017-04-01 Alexey Proskuryakov <ap@apple.com> |
| |
| Rolling back http://trac.webkit.org/r214663 - memory corruption |
| |
| * Modules/streams/ReadableByteStreamInternals.js: |
| (cloneArrayBuffer): |
| * bindings/js/JSDOMGlobalObject.cpp: |
| (WebCore::JSDOMGlobalObject::addBuiltinGlobals): |
| * bindings/js/StructuredClone.cpp: |
| (WebCore::structuredCloneArrayBuffer): |
| (WebCore::cloneArrayBufferImpl): Deleted. |
| (WebCore::cloneArrayBuffer): Deleted. |
| * bindings/js/StructuredClone.h: |
| * bindings/js/WebCoreBuiltinNames.h: |
| * testing/Internals.cpp: |
| (WebCore::markerTypeFrom): |
| (WebCore::Internals::resetToConsistentState): |
| (WebCore::Internals::isLoadingFromMemoryCache): |
| (WebCore::Internals::setImageFrameDecodingDuration): |
| (WebCore::deferredStyleRulesCountForList): |
| (WebCore::deferredGroupRulesCountForList): |
| (WebCore::deferredKeyframesRulesCountForList): |
| (WebCore::Internals::eventThrottlingBehaviorOverride): |
| (WebCore::Internals::enableMockSpeechSynthesizer): |
| (WebCore::Internals::rangeForDictionaryLookupAtLocation): |
| (WebCore::Internals::nodesFromRect): |
| (WebCore::Internals::layerIDForElement): |
| (WebCore::Internals::setElementUsesDisplayListDrawing): |
| (WebCore::Internals::setElementTracksDisplayListReplay): |
| (WebCore::Internals::styleRecalcCount): |
| (WebCore::Internals::compositingUpdateCount): |
| (WebCore::Internals::setCaptionDisplayMode): |
| (WebCore::Internals::endMediaSessionInterruption): |
| (WebCore::Internals::postRemoteControlCommand): |
| (WebCore::appendOffsets): |
| (WebCore::Internals::scrollSnapOffsets): |
| (WebCore::Internals::setShowAllPlugins): |
| (WebCore::Internals::cloneArrayBuffer): Deleted. |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-03-31 Zalan Bujtas <zalan@apple.com> |
| |
| <table>: Including <caption>, <thead> or <tbody> causes clipping across page breaks |
| https://bugs.webkit.org/show_bug.cgi?id=170348 |
| <rdar://problem/24727151> |
| |
| Reviewed by David Hyatt. |
| |
| 1. In RenderFlowThread::offsetFromLogicalTopOfFirstRegion() we need to take table section offset into account (they are skipped |
| during the containing block traversal). |
| 2. Trigger paginated relayout when body is moved vertically due to caption/thead etc. |
| |
| Test: fast/multicol/table-section-page-break.html |
| |
| * rendering/RenderFlowThread.cpp: |
| (WebCore::RenderFlowThread::offsetFromLogicalTopOfFirstRegion): |
| * rendering/RenderTable.cpp: |
| (WebCore::RenderTable::layout): |
| |
| 2017-03-31 Simon Fraser <simon.fraser@apple.com> |
| |
| Rename DOMWindow's m_touchEventListenerCount to m_touchAndGestureEventListenerCount |
| https://bugs.webkit.org/show_bug.cgi?id=170371 |
| |
| Reviewed by Tim Horton. |
| |
| This count tracks touch and gesture event listeners, so name it appropriately. |
| |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::addEventListener): |
| (WebCore::DOMWindow::removeEventListener): |
| (WebCore::DOMWindow::removeAllEventListeners): |
| * page/DOMWindow.h: |
| |
| 2017-03-31 Simon Fraser <simon.fraser@apple.com> |
| |
| When destroying a Node, assert that it's been removed from all the touch handler maps |
| https://bugs.webkit.org/show_bug.cgi?id=170363 |
| rdar://problem/31377469 |
| |
| Reviewed by Tim Horton. |
| |
| Assert that the Node has been removed from the touch handler maps in all documents on destruction. |
| |
| * dom/Document.h: |
| (WebCore::Document::hasTouchEventHandlers): |
| (WebCore::Document::touchEventTargetsContain): |
| * dom/Node.cpp: |
| (WebCore::Node::~Node): |
| |
| 2017-03-31 Alexey Proskuryakov <ap@apple.com> |
| |
| Rolling back https://trac.webkit.org/r214689, as it caused many crashes. |
| |
| Was: |
| Fix memory leak in CreateSessionDescriptionObserver::OnSuccess |
| https://bugs.webkit.org/show_bug.cgi?id=170357 |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::createSessionDescriptionSucceeded): |
| |
| 2017-03-31 Youenn Fablet <youenn@apple.com> |
| |
| Fix memory leak in RealtimeVideoIncomingSource |
| https://bugs.webkit.org/show_bug.cgi?id=170356 |
| |
| Reviewed by Eric Carlson. |
| |
| No change of behavior. |
| |
| * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: |
| (WebCore::RealtimeIncomingVideoSource::OnFrame): Adopting the newly created pointer. |
| |
| 2017-03-31 Andy Estes <aestes@apple.com> |
| |
| REGRESSION (r202472): Data Detection overwrites existing links in detected ranges |
| https://bugs.webkit.org/show_bug.cgi?id=170365 |
| <rdar://problem/29205721> |
| |
| Reviewed by Tim Horton. |
| |
| r202472 changed the node traversal in searchForLinkRemovingExistingDDLinks() to only |
| consider nodes that are descendants of startNode, but we need to traverse all nodes between |
| startNode and endNode to find existing non-DD links. |
| |
| As a result, we'd add a Data Detector link to the following snippet and make the original |
| links un-clickable: |
| |
| <a href='#'>tomorrow</a> <a href='#'>night</a> |
| |
| Fix this by not specifying a stayWithin node when calling NodeTraversal::next(). The loop |
| will terminate when we reach endNode. |
| |
| Updated WebKit2.DataDetectionReferenceDate API test. |
| |
| * editing/cocoa/DataDetection.mm: |
| (WebCore::searchForLinkRemovingExistingDDLinks): |
| |
| 2017-03-31 Eric Carlson <eric.carlson@apple.com> |
| |
| Incoming video source doesn't propogate frame rotation |
| https://bugs.webkit.org/show_bug.cgi?id=170364 |
| |
| Reviewed by Youenn Fablet. |
| |
| No new tests, the mock video source doesn't support rotation. Test will be added when |
| this is fixed in https://bugs.webkit.org/show_bug.cgi?id=169822. The changes were |
| verified manually. |
| |
| * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp: |
| (WebCore::RealtimeIncomingVideoSource::OnFrame): Convert frame rotation to sample |
| orientation and swap width and height when necessary. |
| (WebCore::RealtimeIncomingVideoSource::processNewSample): |
| * platform/mediastream/mac/RealtimeIncomingVideoSource.h: |
| |
| 2017-03-31 Chris Dumez <cdumez@apple.com> |
| |
| Possible null dereference under SourceBuffer::sourceBufferPrivateDidReceiveSample() |
| https://bugs.webkit.org/show_bug.cgi?id=159639 |
| |
| Reviewed by Eric Carlson. |
| |
| Add a null check for trackBuffer.description before dereferencing as it seems |
| it can be null. |
| |
| * Modules/mediasource/SourceBuffer.cpp: |
| (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): |
| |
| 2017-03-31 Youenn Fablet <youenn@apple.com> |
| |
| Fix memory leak in CreateSessionDescriptionObserver::OnSuccess |
| https://bugs.webkit.org/show_bug.cgi?id=170357 |
| |
| Reviewed by Geoffrey Garen. |
| |
| No change of behavior. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::createSessionDescriptionSucceeded): Adopting the raw pointer parameter. |
| |
| 2017-03-31 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [WinCairo] WebCore::PlatformDisplay::terminateEGLDisplay causes a crash in libGLESv2.dll while processing atexit |
| https://bugs.webkit.org/show_bug.cgi?id=170331 |
| |
| Reviewed by Michael Catanzaro. |
| |
| WebCore::PlatformDisplay uses atexit to destruct EGL displays |
| while exiting process. But, when the atexit will be processed, |
| heap of libGLESv2.dll would be already destructed and causing a |
| crash on Windows. Do not use atexit for Windows. |
| |
| AppleWin port does not use PlatformDisplay. Thus, it does not have |
| this bug. |
| |
| * platform/graphics/PlatformDisplay.cpp: |
| (WebCore::PlatformDisplay::initializeEGLDisplay): Do not use atexit for Windows. |
| (WebCore::PlatformDisplay::shutDownEglDisplays): Added. |
| * platform/graphics/PlatformDisplay.h: Added a declaration of shutDownEglDisplays. |
| |
| 2017-03-31 Yoav Weiss <yoav@yoav.ws> |
| |
| Remove PRELOAD_DEBUG related code. |
| https://bugs.webkit.org/show_bug.cgi?id=170352 |
| |
| Reviewed by Youenn Fablet. |
| |
| As the PRELOAD_DEBUG related code stopped building and it seems like no one noticed, |
| it seems safe to assume that we can remove that code. This patch removes it. |
| |
| No new tests as there's no functional change. |
| |
| * loader/cache/CachedResourceLoader.cpp: |
| (WebCore::CachedResourceLoader::preload): |
| (WebCore::CachedResourceLoader::clearPreloads): |
| (WebCore::CachedResourceLoader::printPreloadStats): Deleted. |
| |
| 2017-03-31 Brady Eidson <beidson@apple.com> |
| |
| Clean up the "StorageType" enum. |
| https://bugs.webkit.org/show_bug.cgi?id=170349 |
| |
| Reviewed by Tim Horton. |
| |
| - Make this `enum` into an `enum class` |
| - Add a new type specific for "transient local storage" |
| |
| No new tests (No behavior change). |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| * inspector/InspectorDOMStorageAgent.cpp: |
| (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent): |
| |
| * inspector/InspectorInstrumentation.h: |
| |
| * loader/EmptyClients.cpp: |
| |
| * storage/Storage.cpp: |
| (WebCore::Storage::isDisabledByPrivateBrowsing): |
| |
| * storage/StorageArea.h: |
| (): Deleted. |
| |
| * storage/StorageEventDispatcher.cpp: |
| (WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames): |
| (WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames): |
| |
| * storage/StorageType.h: |
| (WebCore::isLocalStorage): |
| |
| 2017-03-31 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, Mark "HTML interactive form validation" as done. |
| |
| It is shipping in Safari 10.1. |
| |
| * features.json: |
| |
| 2017-03-31 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Mac cmake buildfix after r214666 |
| https://bugs.webkit.org/show_bug.cgi?id=170342 |
| |
| Unreviewed buildfix. |
| |
| * PlatformMac.cmake: |
| * testing/MockPreviewLoaderClient.h: |
| |
| 2017-03-31 Sam Weinig <sam@webkit.org> |
| |
| Remove unneeded custom constructors include. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/ios: Removed. |
| * bindings/js/ios/TouchConstructors.cpp: Removed. |
| |
| 2017-03-31 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Check if the store exists before clearing it |
| https://bugs.webkit.org/show_bug.cgi?id=170324 |
| <rdar://problem/31258505> |
| |
| Reviewed by Brent Fulgham. |
| |
| No new tests. Added a null check. |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::clearInMemoryAndPersistentStore): |
| Added a null check. |
| |
| 2017-03-31 Romain Bellessort <romain.bellessort@crf.canon.fr> |
| |
| [Readable Streams API] Implement cloneArrayBuffer in WebCore |
| https://bugs.webkit.org/show_bug.cgi?id=170008 |
| |
| Reviewed by Youenn Fablet. |
| |
| Implemented cloneArrayBuffer based on existing structuredCloneArrayBuffer |
| implementation. The code has been factorized so that both cloneArrayBuffer |
| and structuredCloneArrayBuffer rely on the same code (which is basically |
| the previous implementation of structuredCloneArrayBuffer + the ability |
| to clone only a part of considered buffer). |
| |
| Added test to check cloneArrayBuffer behaviour. |
| |
| * Modules/streams/ReadableByteStreamInternals.js: Deleted cloneArrayBuffer JS implementation. |
| * bindings/js/JSDOMGlobalObject.cpp: |
| (WebCore::JSDOMGlobalObject::addBuiltinGlobals): Add cloneArrayBuffer private declaration. |
| * bindings/js/StructuredClone.cpp: |
| (WebCore::cloneArrayBufferImpl): Added (mostly based on previous structuredCloneArrayBuffer). |
| (WebCore::cloneArrayBuffer): Added. |
| (WebCore::structuredCloneArrayBuffer): Updated. |
| * bindings/js/StructuredClone.h: Added cloneArrayBuffer declaration. |
| * bindings/js/WebCoreBuiltinNames.h: Added cloneArrayBuffer declaration. |
| * testing/Internals.cpp: Added support for testing cloneArrayBuffer. |
| * testing/Internals.h: Added support for testing cloneArrayBuffer. |
| * testing/Internals.idl: Added support for testing cloneArrayBuffer. |
| |
| 2017-03-31 Antoine Quint <graouts@apple.com> |
| |
| [mac-wk1] LayoutTest media/modern-media-controls/airplay-button/airplay-button.html is a flaky timeout |
| https://bugs.webkit.org/show_bug.cgi?id=168409 |
| <rdar://problem/30799198> |
| |
| Unreviewed. Yet more logging to determine under what circumstance ScriptedAnimationController gets suspended. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::requestAnimationFrame): |
| |
| 2017-03-30 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed GTK+ build fix. Add missing ANGLE build targets |
| to the build. |
| |
| * CMakeLists.txt: |
| |
| 2017-03-30 Simon Fraser <simon.fraser@apple.com> |
| |
| Ensure that Node::willBeDeletedFrom() always removes touch event handlers from the document |
| https://bugs.webkit.org/show_bug.cgi?id=170323 |
| rdar://problem/23647630 |
| |
| Reviewed by Chris Dumez. |
| |
| There are two instances where nodes are registered as touch event handlers without |
| having normal touch event listeners: slider thumb elements, and elements with overflow scrolling, |
| on iOS. |
| |
| For such nodes, hasEventTargetData() will be false, but we want to ensure |
| that they are removed from the Document's touchEventHandler set, so move the |
| call to document.removeTouchEventHandler() outside of the conditional block. |
| |
| This should be cheap in most cases when the touchEventHandler is empty. |
| |
| * dom/Node.cpp: |
| (WebCore::Node::willBeDeletedFrom): |
| |
| 2017-03-30 Simon Fraser <simon.fraser@apple.com> |
| |
| Minor cleanup checking for gesture event names |
| https://bugs.webkit.org/show_bug.cgi?id=170319 |
| |
| Reviewed by Tim Horton. |
| |
| Just use isGestureEventType() in a couple of places. |
| |
| * dom/Node.cpp: |
| (WebCore::tryAddEventListener): |
| (WebCore::tryRemoveEventListener): |
| |
| 2017-03-30 Simon Fraser <simon.fraser@apple.com> |
| |
| Rename a touch event function, and new touch region test results |
| https://bugs.webkit.org/show_bug.cgi?id=170309 |
| rdar://problem/31329520 |
| |
| Reviewed by Chris Dumez. |
| |
| Adapt to a naming change in WebKitAdditions. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::removeAllEventListeners): |
| * page/FrameView.cpp: |
| (WebCore::FrameView::layout): |
| * rendering/RenderElement.cpp: |
| (WebCore::RenderElement::styleWillChange): |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::scrollTo): |
| (WebCore::RenderLayer::calculateClipRects): |
| |
| 2017-03-30 Matt Rajca <mrajca@apple.com> |
| |
| YouTube sometimes does not respect "user gesture" restriction for videos. |
| https://bugs.webkit.org/show_bug.cgi?id=170297 |
| |
| I discovered a code path that does not honor the "user gesture" requirement and playback is able to begin |
| even though we have a restriction in place. When using Media Source Extensions, which YouTube does, we transition |
| from a "Have Metadata" to a "Future Data" state that causes playback to begin, however, we never check |
| if we have a playback restriction in place. |
| |
| Reviewed by Eric Carlson. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::setReadyState): |
| |
| 2017-03-30 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| REGRESSION (r213764): Background image from sprite sheet incorrectly scaled |
| https://bugs.webkit.org/show_bug.cgi?id=169547 |
| |
| Reviewed by Simon Fraser. |
| |
| The bug happens when drawing only a rectangle of an image not the whole |
| image. In BitmapImage::draw(), sizeForDrawing was calculated as the destRect |
| scaled by the transformation which is applied to the GraphicsContext. Two |
| problems with this approach. The first one is destRect can be only part of |
| the image. The second problem is, the ratio destRect / srcRect is another |
| scaling that needs to be considered. |
| |
| To fix this issue, first the base size has to be size of the image and not |
| destRect.size(). Secondly, we need to scale this base size with the context |
| transformation multiplied by the ratio destRect / srcRect. This scaling is |
| exactly the same scaling which is calculated in subsamplingScale(). Finally |
| we use this scaled size as the sizeForDrawing to send to the ImageDecoder. |
| |
| Test: fast/images/sprite-sheet-image-draw.html |
| |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::draw): Fix the bug. |
| (WebCore::BitmapImage::stopAnimation): Stops the async image decoding for animated images only. |
| The decoding for large images will be stopped when BitmapImage::newFrameNativeImageAvailableAtIndex() |
| is called and the decoding queue is idle. |
| (WebCore::BitmapImage::newFrameNativeImageAvailableAtIndex): Add image logging. |
| * platform/graphics/BitmapImage.h: Move sourceURL() to the Image class. |
| * platform/graphics/GraphicsContext.cpp: Pass imagePaintingOptions.m_decodingMode to Image::drawTiled(). |
| (WebCore::GraphicsContext::drawTiledImage): Pass imagePaintingOptions.m_decodingMode) to Image::drawTiled(). |
| * platform/graphics/Image.cpp: |
| (WebCore::Image::sourceURL): Moved from BitmapImage. |
| (WebCore::Image::drawTiled): Add a DecodingMode argument instead of calling always with DecodingMode::Synchronous. |
| * platform/graphics/Image.h: |
| * platform/graphics/ImageFrameCache.cpp: |
| (WebCore::ImageFrameCache::cacheAsyncFrameNativeImageAtIndex): Add image logging. |
| (WebCore::ImageFrameCache::startAsyncDecodingQueue): Ditto, |
| (WebCore::ImageFrameCache::requestFrameAsyncDecodingAtIndex): Ditto. |
| (WebCore::ImageFrameCache::stopAsyncDecodingQueue): Ditto. |
| (WebCore::ImageFrameCache::sourceURL): A helper function to avoid checking the value of m_image. |
| * platform/graphics/ImageFrameCache.h: |
| * platform/graphics/NativeImage.h: Rename subsamplingScale() to nativeImageDrawingScale() and return image scaling instead. |
| * platform/graphics/cairo/NativeImageCairo.cpp: |
| (WebCore::nativeImageDrawingScale): Ditto. |
| (WebCore::subsamplingScale): Deleted. |
| * platform/graphics/cg/NativeImageCG.cpp: |
| (WebCore::nativeImageDrawingScale): Ditto. |
| (WebCore::subsamplingScale): Deleted. |
| * platform/graphics/win/NativeImageDirect2D.cpp: |
| (WebCore::nativeImageDrawingScale): Ditto. |
| (WebCore::subsamplingScale): Deleted. |
| |
| 2017-03-30 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Assertion failure in InspectorStyleProperty::setRawTextFromStyleDeclaration |
| https://bugs.webkit.org/show_bug.cgi?id=170279 |
| <rdar://problem/30200492> |
| |
| Reviewed by David Hyatt. |
| |
| The SourceRange for a CSSPropertySourceData should be relative to the start |
| of the declaration body, not the start of the StyleSheetHandler’s parsed |
| text. This only affected the ranges of unparsed (parsedOK == false) properties |
| lacking a trailing semi-colon. |
| |
| This patch doesn't change the behavior of InspectorStyleSheet other than |
| silencing an irksome assert, as String::substring does a safety check on |
| the passed in length. |
| |
| * inspector/InspectorStyleSheet.cpp: |
| (WebCore::fixUnparsedProperties): |
| |
| 2017-03-30 Youenn Fablet <youenn@apple.com> and Jon Lee <jonlee@apple.com> |
| |
| Clean up RTCDataChannel |
| https://bugs.webkit.org/show_bug.cgi?id=169732 |
| |
| Reviewed by Chris Dumez. |
| |
| Test: webrtc/datachannel/datachannel-event.html |
| webrtc/datachannel/bufferedAmountLowThreshold.html |
| |
| Making RTCDataChannel interface closer to the spec updating implementation accordingly. |
| See https://w3c.github.io/webrtc-pc/#rtcdatachannel. |
| In particular adding RTCDataChannelEvent constructor, and missing bufferedAmount related attributes. |
| Doing some additional cleaning refactoring. |
| |
| Making bufferedAmountIsDecreasing take a bufferedAmount argument so that we get the actual value passed by |
| libwebrtc without needing to get it from the libwebrtc network thread again. |
| In the future, we should store the bufferedAmount value in RTCDataChannel and update its value on each libwebrtc |
| OnBufferedAmountChange. Special treatment may be needed when the data channel is closed, in which case the bufferedAmount should just be |
| updated to increase in the send method. |
| |
| Added some FIXMEs as RTCDataChannel is not aligned with the spec related to send and bufferedAmount. |
| |
| * Modules/mediastream/RTCDataChannel.cpp: |
| (WebCore::RTCDataChannel::send): |
| (WebCore::RTCDataChannel::close): |
| (WebCore::RTCDataChannel::didChangeReadyState): |
| (WebCore::RTCDataChannel::bufferedAmountIsDecreasing): |
| * Modules/mediastream/RTCDataChannel.h: |
| * Modules/mediastream/RTCDataChannel.idl: |
| * Modules/mediastream/RTCDataChannelEvent.cpp: |
| (WebCore::RTCDataChannelEvent::create): |
| (WebCore::RTCDataChannelEvent::RTCDataChannelEvent): |
| (WebCore::RTCDataChannelEvent::channel): |
| * Modules/mediastream/RTCDataChannelEvent.h: |
| * Modules/mediastream/RTCDataChannelEvent.idl: |
| * Modules/mediastream/RTCPeerConnection.idl: |
| * Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp: |
| (WebCore::LibWebRTCDataChannelHandler::OnStateChange): |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::addDataChannel): |
| * WebCore.xcodeproj/project.pbxproj: |
| * dom/EventNames.h: |
| * platform/mediastream/RTCDataChannelHandler.h: |
| * platform/mediastream/RTCDataChannelHandlerClient.h: |
| * platform/mediastream/RTCDataChannelState.h: Added. |
| * platform/mediastream/RTCPeerConnectionHandlerClient.h: |
| * platform/mock/RTCDataChannelHandlerMock.cpp: |
| (WebCore::RTCDataChannelHandlerMock::setClient): |
| (WebCore::RTCDataChannelHandlerMock::close): |
| * platform/mock/RTCNotifiersMock.cpp: |
| (WebCore::IceConnectionNotifier::IceConnectionNotifier): |
| (WebCore::SignalingStateNotifier::SignalingStateNotifier): |
| (WebCore::DataChannelStateNotifier::DataChannelStateNotifier): |
| * platform/mock/RTCNotifiersMock.h: |
| |
| 2017-03-30 Javier Fernandez <jfernandez@igalia.com> |
| |
| [css-align] Adapt content-alignment properties to the new baseline syntax |
| https://bugs.webkit.org/show_bug.cgi?id=170262 |
| |
| Reviewed by David Hyatt. |
| |
| The baseline-position syntax has changed recently, so we need to update |
| the CSS properties using the old syntax. This patch address only the |
| content-alignment (align-content and justify-content). |
| |
| I used this patch to adapt the implementation of the parsing logic for |
| these properties to the new Blink's CSS Parsing Design. |
| |
| The new baseline syntax is "[first | last ]? baseline" which implies |
| modifying the parsing and computed value logic. |
| |
| There are several layout tests affected by this change, so I'll update |
| them accordingly. |
| |
| No new tests, just added/modified some cases to the tests we |
| already have using the new baseline values. |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::valueForContentPositionAndDistributionWithOverflowAlignment): |
| * css/CSSContentDistributionValue.cpp: |
| (WebCore::CSSContentDistributionValue::customCSSText): |
| * css/CSSPrimitiveValueMappings.h: |
| (WebCore::CSSPrimitiveValue::operator ItemPosition): |
| (WebCore::CSSPrimitiveValue::operator ContentPosition): |
| * css/CSSValueKeywords.in: |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::isBaselineKeyword): |
| (WebCore::consumeBaselineKeyword): |
| (WebCore::consumeContentDistributionOverflowPosition): |
| (WebCore::consumeSelfPositionOverflowPosition): |
| |
| 2017-03-30 James Craig <jcraig@apple.com> |
| |
| AX: Expose a new AXSubrole for explicit ARIA "group" role |
| https://bugs.webkit.org/show_bug.cgi?id=169810 |
| <rdar://problem/31039693> |
| |
| Reviewed by Chris Fleizach. |
| |
| Split GroupRole into generics (GroupRole) and explicit groups |
| (ApplicationGroupRole) so we can expose a subrole on the explicit |
| groups. Account for the change in ARIA Tree and Menu hierachies. |
| Update the computedRoleValue for WebKit Inspector usage, too. |
| |
| Updated existing tests. |
| |
| Test: accessibility/list-detection2.html: |
| Test: accessibility/roles-computedRoleString.html: |
| Test: inspector/dom/getAccessibilityPropertiesForNode.html: |
| Test: inspector/dom/highlightFrame.html: |
| Test: inspector/dom/highlightSelector.html: |
| |
| * accessibility/AccessibilityNodeObject.cpp: |
| (WebCore::AccessibilityNodeObject::helpText): |
| (WebCore::AccessibilityNodeObject::hierarchicalLevel): |
| (WebCore::AccessibilityNodeObject::remapAriaRoleDueToParent): |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::accessibleNameDerivesFromContent): |
| (WebCore::AccessibilityObject::ariaTreeItemContent): |
| (WebCore::initializeRoleMap): |
| (WebCore::AccessibilityObject::computedRoleString): |
| * accessibility/AccessibilityObject.h: |
| * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: |
| (atkRole): |
| * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: |
| (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]): |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: |
| (createAccessibilityRoleMap): |
| (-[WebAccessibilityObjectWrapper subrole]): |
| |
| 2017-03-30 Chris Dumez <cdumez@apple.com> |
| |
| We are spending a lot of time bzero'ing AudioChannel buffers on uni-watch.com |
| https://bugs.webkit.org/show_bug.cgi?id=170288 |
| <rdar://problem/31289132> |
| |
| Reviewed by Eric Carlson. |
| |
| We are spending a lot of time bzero'ing AudioChannel buffers on uni-watch.com due |
| to doubleclick ads using WebAudio with a 0-gain GainNode. We should optimize the |
| 0-gain case as much as possible. |
| |
| No new tests, only an optimization. |
| |
| * Modules/webaudio/AudioNode.cpp: |
| (WebCore::AudioNode::processIfNecessary): |
| Drop call to unsilenceOutputs() before calling AudioNode::process(). The AudioChannel |
| API already takes care of clearing its 'silent' flag whenever its buffer changes so |
| there should be no need to explicitly clearing the 'silent' flag before calling |
| process(). This was causing us to zero out buffers that were already filled with |
| zeros because AudioChannel::zero() would no longer return early, not knowing the |
| channel is already silent. This reduces the number of bzero() calls by ~3.5x on |
| uni-watch.com (from 100 calls every ~20ms to 100 calls every ~70ms. |
| |
| * Modules/webaudio/AudioNode.h: |
| * platform/audio/mac/AudioDestinationMac.cpp: |
| (WebCore::AudioDestinationMac::render): |
| Avoid clamping the values in the channel buffer if the channel is silent since this |
| will have no effect (given that the buffer only contains zeros). |
| |
| 2017-03-30 Eric Carlson <eric.carlson@apple.com> |
| |
| [Crash] WebCore::AudioBuffer::AudioBuffer don't checking illegal value |
| https://bugs.webkit.org/show_bug.cgi?id=169956 |
| |
| Reviewed by Youenn Fablet. |
| |
| Test: webaudio/audiobuffer-crash.html |
| |
| * Modules/webaudio/AudioBuffer.cpp: |
| (WebCore::AudioBuffer::AudioBuffer): Invalidate the object and return early if the channel |
| array allocation fails. |
| (WebCore::AudioBuffer::AudioBuffer): Ditto. |
| (WebCore::AudioBuffer::invalidate): Invalidate the object. |
| * Modules/webaudio/AudioBuffer.h: |
| |
| 2017-03-30 Antoine Quint <graouts@apple.com> |
| |
| [mac-wk1] LayoutTest media/modern-media-controls/airplay-button/airplay-button.html is a flaky timeout |
| https://bugs.webkit.org/show_bug.cgi?id=168409 |
| <rdar://problem/30799198> |
| |
| Unreview. Print the backtrace when we suspend scripted animations. |
| |
| * page/Page.cpp: |
| (WebCore::Page::suspendScriptedAnimations): |
| |
| 2017-03-30 Antoine Quint <graouts@apple.com> |
| |
| [mac-wk1] LayoutTest media/modern-media-controls/airplay-button/airplay-button.html is a flaky timeout |
| https://bugs.webkit.org/show_bug.cgi?id=168409 |
| <rdar://problem/30799198> |
| |
| Unreview. Pring the backtrace when we suspend ScriptedAnimationController. |
| |
| * dom/ScriptedAnimationController.cpp: |
| (WebCore::ScriptedAnimationController::suspend): |
| |
| 2017-03-30 Antoine Quint <graouts@apple.com> |
| |
| [Modern Media Controls] Invalid placard icon is not visible for short video |
| https://bugs.webkit.org/show_bug.cgi?id=170277 |
| <rdar://problem/31327955> |
| |
| Reviewed by Eric Carlson. |
| |
| Make the minimum dimension needed to display a placard icon configurable and let the |
| invalid placard use a 50pt dimension. We also make a drive-by fix to reset "text-align" |
| for media controls as having a "text-align: center" inherited value would mess up |
| positioning of the placard icon and make it flush to the right of the placard. |
| |
| Test: media/modern-media-controls/invalid-placard/invalid-placard-constrained-metrics.html |
| |
| * Modules/modern-media-controls/controls/invalid-placard.js: |
| (InvalidPlacard): |
| * Modules/modern-media-controls/controls/media-controls.css: |
| (.media-controls): |
| * Modules/modern-media-controls/controls/placard.js: |
| (Placard.prototype.layout): |
| |
| 2017-03-30 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] Register missing algorithms in CryptoAlgorithmRegistry::platformRegisterAlgoritmhs() |
| https://bugs.webkit.org/show_bug.cgi?id=170273 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * crypto/gcrypt/CryptoAlgorithmRegistryGCrypt.cpp: |
| (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): |
| Add registerAlgorithm<> calls for AES_CFB, AES_GCM, ECDH and |
| PBKDF2 algorithms. |
| |
| 2017-03-30 Brent Fulgham <bfulgham@apple.com> |
| |
| Remove unused MediaControlsApple implementation |
| https://bugs.webkit.org/show_bug.cgi?id=170258 |
| <rdar://problem/31331056> |
| |
| Reviewed by Eric Carlson. |
| |
| Remove dead code related to old media controls. We switched to HTML5-based media controls |
| several years ago. |
| |
| No new tests. Removing this dead code should have no change in behavior. |
| |
| * WebCore.xcodeproj/project.pbxproj: Remove unused files. |
| * dom/EventListener.h: Remove unused event type. |
| * html/shadow/MediaControlsApple.cpp: Removed. |
| * html/shadow/MediaControlsApple.h: Removed. |
| |
| 2017-03-30 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [WinCairo] ImageCairoWin.cpp: error C2660: 'WebCore::BitmapImage::draw': function does not take 6 arguments |
| https://bugs.webkit.org/show_bug.cgi?id=170275 |
| |
| Reviewed by Said Abou-Hallawa. |
| |
| Apply the similar change of ImageCGWin.cpp of r214450 to ImageCairoWin.cpp. |
| |
| * platform/graphics/win/ImageCairoWin.cpp: |
| (WebCore::BitmapImage::getHBITMAPOfSize): Pass DecodingMode::Synchronous to Image::draw(). |
| (WebCore::BitmapImage::drawFrameMatchingSourceSize): Ditto. |
| |
| 2017-03-27 Sergio Villar Senin <svillar@igalia.com> |
| |
| [css-grid] Clamp the number of autorepeat tracks |
| https://bugs.webkit.org/show_bug.cgi?id=170120 |
| |
| Reviewed by Manuel Rego Casasnovas. |
| |
| As suggested by the specs we do clamp the maximum number of tracks per grid in order to |
| minimize potential OOM situations. However we were not considering the case of the recently |
| added auto repeat syntax. Abnormally huge values for the width/height on the grid container |
| could lead to a number of auto repeat tracks higher than the maximum. |
| |
| A new API was added to Internals in order to test limits without having to create huge |
| grids. This new API allows clients to set an arbitrary limit to the number of tracks. The |
| addition of this new API forced us to add GridPosition.cpp to the project to define the |
| global variable we use for testing. We took the chance to move part of the implementation |
| from the header file to the source file. |
| |
| Last but not least, several new ASSERTs were added to Grid.cpp implementation to ensure that |
| we do not surpass the grid track limits. |
| |
| Test: fast/css-grid-layout/grid-auto-repeat-huge-grid.html |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::consumeGridTrackRepeatFunction): |
| * rendering/Grid.cpp: |
| (WebCore::Grid::ensureGridSize): Added ASSERT. |
| (WebCore::Grid::setSmallestTracksStart): Ditto. |
| (WebCore::Grid::setAutoRepeatTracks): Ditto. |
| (WebCore::Grid::setAutoRepeatEmptyColumns): Ditto. |
| (WebCore::Grid::setAutoRepeatEmptyRows): Ditto. |
| * rendering/RenderGrid.cpp: |
| (WebCore::RenderGrid::clampAutoRepeatTracks): New method. |
| (WebCore::RenderGrid::placeItemsOnGrid): Clamp the number of auto repeat tracks before |
| passing them to the Grid. |
| * rendering/RenderGrid.h: |
| * rendering/style/GridArea.h: |
| (WebCore::GridSpan::GridSpan): |
| * rendering/style/GridPosition.cpp: Added. |
| (WebCore::GridPosition::setExplicitPosition): |
| (WebCore::GridPosition::setAutoPosition): |
| (WebCore::GridPosition::setSpanPosition): |
| (WebCore::GridPosition::setNamedGridArea): |
| (WebCore::GridPosition::integerPosition): |
| (WebCore::GridPosition::namedGridLine): |
| (WebCore::GridPosition::spanPosition): |
| (WebCore::GridPosition::operator==): |
| * rendering/style/GridPosition.h: |
| (WebCore::GridPosition::shouldBeResolvedAgainstOppositePosition): |
| (WebCore::GridPosition::max): |
| (WebCore::GridPosition::min): |
| (WebCore::GridPosition::setMaxPositionForTesting): |
| (WebCore::GridPosition::setExplicitPosition): Deleted. |
| (WebCore::GridPosition::setAutoPosition): Deleted. |
| (WebCore::GridPosition::setSpanPosition): Deleted. |
| (WebCore::GridPosition::setNamedGridArea): Deleted. |
| (WebCore::GridPosition::integerPosition): Deleted. |
| (WebCore::GridPosition::namedGridLine): Deleted. |
| (WebCore::GridPosition::spanPosition): Deleted. |
| (WebCore::GridPosition::operator==): Deleted. |
| * rendering/style/GridPositionsResolver.cpp: |
| (WebCore::GridPositionsResolver::explicitGridColumnCount): |
| (WebCore::GridPositionsResolver::explicitGridRowCount): |
| * testing/Internals.cpp: |
| (WebCore::Internals::setGridMaxTracksLimit): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-03-29 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Disconnecting a HTMLObjectElement does not always unload its content document |
| https://bugs.webkit.org/show_bug.cgi?id=169606 |
| |
| Reviewed by Andy Estes. |
| |
| When removing a node, we first disconnect all subframes then update the focused element as we remove each child. |
| However, when the removed element is a focused object element with a content document, removeFocusedNodeOfSubtree |
| can update the style tree synchronously inside Document::setFocusedElement, and reload the document. |
| |
| Avoid this by instantiating a SubframeLoadingDisabler on the parent of the focused element. |
| |
| Test: fast/dom/removing-focused-object-element.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::removeFocusedNodeOfSubtree): |
| |
| 2017-03-29 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Migrate to kCTFontCSSWidthAttribute |
| https://bugs.webkit.org/show_bug.cgi?id=170265 |
| |
| Reviewed by Darin Adler. |
| |
| Previously, we were mapping from Core Text widths to CSS widths in WebKit. |
| However, on some OSes, Core Text can directly tell us what the CSS width |
| value is. |
| |
| No new tests because there is no behavior change. |
| |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::getCSSAttribute): |
| (WebCore::capabilitiesForFontDescriptor): |
| * platform/spi/cocoa/CoreTextSPI.h: |
| |
| 2017-03-28 Simon Fraser <simon.fraser@apple.com> |
| |
| Make it possible to dump touch event regions for testing |
| https://bugs.webkit.org/show_bug.cgi?id=170209 |
| <rdar://problem/31309258> |
| |
| Reviewed by Tim Horton. |
| |
| Expose internals.touchEventRectsForEvent() and internals.passiveTouchEventListenerRects(), which |
| fetch data via Page. |
| |
| Because the regions are normally updated on a timer, we have to force an eager update via Document::updateTouchEventRegions(). |
| |
| Test: fast/events/touch/ios/touch-event-regions.html |
| |
| * page/Page.cpp: |
| (WebCore::Page::nonFastScrollableRects): |
| (WebCore::Page::touchEventRectsForEvent): |
| (WebCore::Page::passiveTouchEventListenerRects): |
| * page/Page.h: |
| * testing/Internals.cpp: |
| (WebCore::Internals::touchEventRectsForEvent): |
| (WebCore::Internals::passiveTouchEventListenerRects): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2017-03-29 Zalan Bujtas <zalan@apple.com> |
| |
| RenderBlockFlow::addFloatsToNewParent should check if float is already added to the object list. |
| https://bugs.webkit.org/show_bug.cgi?id=170259 |
| <rdar://problem/31300584> |
| |
| Reviewed by Simon Fraser. |
| |
| r210145 assumed that m_floatingObjects would simply ignore the floating box if it was already in the list. |
| |
| Test: fast/block/float/placing-multiple-floats-crash.html |
| |
| * rendering/RenderBlockFlow.cpp: |
| (WebCore::RenderBlockFlow::addFloatsToNewParent): |
| |
| 2017-03-29 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Try to normalize variation ranges |
| https://bugs.webkit.org/show_bug.cgi?id=170119 |
| |
| Unreviewed. |
| |
| Addressing post-review comment. |
| |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::isGXVariableFont): |
| |
| 2017-03-29 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Try to normalize variation ranges |
| https://bugs.webkit.org/show_bug.cgi?id=170119 |
| |
| Reviewed by Simon Fraser. |
| |
| TrueType GX-style variation fonts use one particular scale for values on their |
| weight/width/slope axes - usually the values lie between -1 and 1 on that scale. |
| However, OpenType 1.8-style fonts use the CSS scale for values on these axes. |
| For the purposes of font selection, these values need to lie on the same scale. |
| However, when font selection is completed and the variation values are actually |
| being applied to the fonts, values which lie on the font's actual scale need to |
| be applied. This patch adds normalize*() and denormalize*() functions to perform |
| both of these operations. |
| |
| The conversion itself between the two scales isn't an exact mapping. Mapping |
| slope is just a linear relationship with 0deg <=> 0 and 20deg <=> 1 (as per the |
| CSS Fonts spec). Mapping widths is similar, it uses a 2-component piecewise |
| linear relationship which includes the values given in the Microsoft OpenType |
| spec for the OS/2 table's usWidthClass field. Weights are more difficult, so I |
| plotted the CSS weights and the GX-style weights for every style of San |
| Francisco, saw that the relationship appears to be linear, and ran a linear |
| regression to compute the line equation. |
| |
| As for the actual discrimination of determining whether a font is a GX-style |
| font or not, we can use the presence of the 'STAT' table. This table didn't |
| exist when GX fonts were being created, and OpenType 1.8 variable fonts are |
| required to have this table. |
| |
| Facebook uses the string ".SFNSText" in their @font-face blocks. This font is |
| a variation font, but uses the GX-style values. Facebook asks us to create |
| this font with a weight of 700, and because the values in the font are around |
| 1.0, we were erroneously thinking that the font wasn't bold, so we were then |
| applying synthetic bold. This was causing text on facebook to look fuzzy and |
| ugly. |
| |
| Test: fast/text/variations/font-selection-properties-expected.html |
| |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::isGXVariableFont): |
| (WebCore::normalizeWeight): |
| (WebCore::normalizeSlope): |
| (WebCore::denormalizeWeight): |
| (WebCore::denormalizeWidth): |
| (WebCore::denormalizeSlope): |
| (WebCore::normalizeWidth): |
| (WebCore::preparePlatformFont): Instead of using FontSelectionValues for the |
| intermediate values, we should use floats instead. This is because |
| FontSelectionValues are fixed-point numbers with the denominator having 2 bits. |
| When using this data type to represent values on the GX scale, which are usually |
| between 0 and 1, you lose a lot of fidelity. Instead, our intermediate |
| calculations should be done with floats, and converted to FontSelectionValues at |
| the end when they are representative of values on the CSS scale. |
| (WebCore::stretchFromCoreTextTraits): |
| (WebCore::fontWeightFromCoreText): |
| (WebCore::extractVariationBounds): |
| (WebCore::variationCapabilitiesForFontDescriptor): |
| (WebCore::capabilitiesForFontDescriptor): |
| |
| 2017-03-29 Saam Barati <sbarati@apple.com> |
| |
| LinkBuffer and ExecutableAllocator shouldn't have anything to do with VM |
| https://bugs.webkit.org/show_bug.cgi?id=170210 |
| |
| Reviewed by Mark Lam. |
| |
| * cssjit/SelectorCompiler.cpp: |
| (WebCore::SelectorCompiler::compileSelector): |
| (WebCore::SelectorCompiler::SelectorCodeGenerator::compile): |
| |
| 2017-03-29 Javier Fernandez <jfernandez@igalia.com> |
| |
| [css-align] Adapt self-alignment properties to the new baseline syntax |
| https://bugs.webkit.org/show_bug.cgi?id=170235 |
| |
| Reviewed by David Hyatt. |
| |
| The baseline-position syntax has changed recently, so we need to update |
| the CSS properties using the old syntax. This patch address only the |
| self-alignment (align-self and justify-self) and default-alignment |
| (align-items and justify-items). |
| |
| The content-distribution properties (align-content and justify-content) |
| will be updated in a follow up patch. |
| |
| The new baseline syntax is "[first | last ]? baseline" which implies |
| modifying the parsing and computed value logic. |
| |
| There are several layout tests affected by this change, so I'll update |
| them accordingly. |
| |
| No new tests, just added/modified some cases to the tests we already have using the new baseline values. |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::valueForItemPositionWithOverflowAlignment): |
| * css/CSSValueKeywords.in: |
| * css/StyleBuilderConverter.h: |
| (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::consumeBaselineKeyword): |
| (WebCore::consumeSelfPositionOverflowPosition): |
| |
| 2017-03-29 Chris Dumez <cdumez@apple.com> |
| |
| Animated SVG images are not paused in pages loaded in the background |
| https://bugs.webkit.org/show_bug.cgi?id=170043 |
| <rdar://problem/31234412> |
| |
| Reviewed by Simon Fraser. |
| |
| Animated SVG images are not paused in pages loaded in the background. We rely |
| on FrameView::isOffscreen() to stop images animations in background tab (See |
| logic in RenderElement's shouldRepaintForImageAnimation()). This works fine |
| if a tab is visble and then becomes hidden (i.e. by switching to another |
| tab). However, in the case where the tab gets loaded while in the background |
| (e.g. opening link in new background tab, or session restore), then the |
| animations would not be paused, due to FrameView::isOffscreen() erroneously |
| returning false in this case. |
| |
| Normally, the following chain of events happens: |
| - Page is visible, we construct a main frame and its FrameView for loading |
| the page. When a FrameView is constructed, we call FrameView::show() to |
| make it visible. Then, if the page becomes non-visible, we call |
| Page::setIsVisibleInternal(false) which calls FrameView::hide(). After |
| that, FrameView::isOffscreen() correctly returns true because we properly |
| called FrameView::hide(). |
| |
| However, when doing a load while the Page is hidden, the following was |
| happening: |
| - Page is not visible, we call Page::setIsVisibleInternal(false) which tries |
| to call FrameView::hide() for the main frame but it does not have a FrameView |
| yet (because the load has not started). We start the load and end up creating |
| a FrameView. The FrameView constructor was calling FrameView::show() |
| unconditionally, thus making the FrameView think is visible, even though its |
| page isn't. At this point, FrameView::isOffscreen() was returning false |
| and animations would keep running, even though the page is not visible. |
| |
| To address the issue, we now call FrameView::show() in FrameView::create() only |
| if the Page is actually visible, instead of calling it unconditionally. If the |
| page ever becomes visible, Page::setIsVisibleInternal(true) will be called and |
| it will take care of calling FrameView::show() then. |
| |
| Tests: svg/animations/animations-paused-in-background-page-iframe.html |
| svg/animations/animations-paused-in-background-page.html |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::create): |
| |
| 2017-03-29 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Links with empty hrefs should not be drag sources |
| https://bugs.webkit.org/show_bug.cgi?id=170241 |
| <rdar://problem/31305505> |
| |
| Reviewed by Tim Horton. |
| |
| The m_dragSouceAction member of DragController represents the drag source actions that are available to the |
| document, rather than the available actions given the dragging element. Thus, it is not correct to only check |
| that (m_dragSourceAction & DragSourceActionAttachment) before proceeding down the attachment dragging codepath. |
| This should be additionally guarded with a check that the element being dragged is, in fact, an attachment |
| element. |
| |
| New API test (see Tools/ChangeLog). |
| |
| * page/DragController.cpp: |
| (WebCore::DragController::startDrag): |
| |
| 2017-03-29 Jeremy Jones <jeremyj@apple.com> |
| |
| WebVideoFullscreenInterfaceAVKit needs a strong self ref before dispatching to the main thread. |
| https://bugs.webkit.org/show_bug.cgi?id=170129 |
| |
| Reviewed by David Kilzer. |
| |
| No new tests becuase no new behavior. |
| |
| Hold a strong reference to WebVideoFullscreenInterfaceAVKit when dispatching to the main thread. |
| Make WebVideoFullscreenInterfaceAVKit safe to retain from non-main thread. |
| |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.h: |
| * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: |
| (WebVideoFullscreenInterfaceAVKit::exitFullscreen): |
| |
| 2017-03-29 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] Add a Handle<> class to help with GCrypt object lifetime control |
| https://bugs.webkit.org/show_bug.cgi?id=170238 |
| |
| Reviewed by Michael Catanzaro. |
| |
| The platform-specific CryptoAlgorithmHMAC implementation is modified |
| to showcase the GCrypt::Handle<> use. HandleDeleter<gcry_mac_hd_t> |
| is added accordingly. |
| |
| * crypto/gcrypt/CryptoAlgorithmHMACGCrypt.cpp: |
| (WebCore::calculateSignature): |
| |
| 2017-03-29 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Variation fonts: Make sure that feature detection and preprocessor macros are right |
| https://bugs.webkit.org/show_bug.cgi?id=169518 |
| |
| Reviewed by Simon Fraser. |
| |
| When I added variable fonts support, I made all OSes parse the newly accepted values, |
| instead of just the OSes which support variable fonts. |
| |
| Test: fast/text/font-variations-feature-detection.html |
| |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::consumeFontStretch): |
| (WebCore::consumeFontStyle): |
| * css/parser/CSSPropertyParserHelpers.cpp: |
| (WebCore::CSSPropertyParserHelpers::divisibleBy100): |
| (WebCore::CSSPropertyParserHelpers::consumeFontWeightNumber): |
| |
| 2017-03-29 Antoine Quint <graouts@apple.com> |
| |
| [Modern Media Controls] Controls bar may disappear while captions menu is visible (redux) |
| https://bugs.webkit.org/show_bug.cgi?id=170239 |
| <rdar://problem/31320685> |
| |
| Reviewed by Dean Jackson. |
| |
| We did some work in webkit.org/b/168751 to prevent the controls bar from disappearing while the |
| captions menu is visible. But there were two cases where the behavior was not as intended: |
| |
| 1. the controls bar would hide upon exiting the video. |
| 2. clicking on the controls bar while the caption panel is up would hide the controls bar |
| as well as the captions panel. |
| |
| Instead of determining that the "userInteractionEnabled" property being set to "false" is indicative |
| of secondary UI, such as the tracks panel, being attached to the controls bar, we now have an |
| explicit property to specify this. Now, when "hasSecondaryUIAttached" is "true", we prevent the |
| controls bar from fading when exiting the media. |
| |
| Additionally, when dismissing the tracks panel, we check whether a mouse event lead to this and check |
| if the mouse was positioned over the controls bar. If that is the case, we no longer hide the controls |
| bar and only dismiss the tracks panel. |
| |
| Test: media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it.html |
| |
| * Modules/modern-media-controls/controls/controls-bar.js: |
| (ControlsBar.prototype.set userInteractionEnabled): |
| (ControlsBar.prototype.handleEvent): |
| (ControlsBar.prototype._autoHideTimerFired): |
| * Modules/modern-media-controls/controls/macos-media-controls.js: |
| (MacOSMediaControls.prototype.showTracksPanel): |
| (MacOSMediaControls.prototype.hideTracksPanel): |
| |
| 2017-03-29 Antoine Quint <graouts@apple.com> |
| |
| [Modern Media Controls] Volume slider is initially empty |
| https://bugs.webkit.org/show_bug.cgi?id=170237 |
| <rdar://problem/31319077> |
| |
| Reviewed by Dean Jackson. |
| |
| Fixing fallout from https://bugs.webkit.org/show_bug.cgi?id=167935 where we changed the behavior |
| of layout() to happen prior to a commit. In this one instance, we were overriding layout() to run |
| after a commit, so we now override commit(). Otherwise, the <canvas> that we draw the volume slider |
| into would have its "width" and "height" properties set after we drew, which would clear the <canvas>. |
| |
| * Modules/modern-media-controls/controls/slider.js: |
| (Slider.prototype.commit): |
| (Slider.prototype.layout): Deleted. |
| |
| 2017-03-29 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GCrypt] Move over empty GnuTLS-based SUBTLE_CRYPTO implementation files |
| https://bugs.webkit.org/show_bug.cgi?id=170232 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Migrate the GnuTLS SUBTLE_CRYPTO implementation files to the gcrypt/ |
| directory. The implementation files themselves are no-op, so this is |
| a simple move-and-rename operation that will enable proceeding with |
| the libgcrypt-based implementation of SUBTLE_CRYPTO functionality. |
| |
| No change in behavior. The SUBTLE_CRYPTO feature should build as it |
| did before, and the implementations are empty anyway. |
| |
| * PlatformGTK.cmake: |
| * crypto/gcrypt/CryptoAlgorithmAES_CBCGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmAES_CBCGnuTLS.cpp. |
| * crypto/gcrypt/CryptoAlgorithmAES_CFBGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmAES_CFBGnuTLS.cpp. |
| * crypto/gcrypt/CryptoAlgorithmAES_GCMGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmAES_GCMGnuTLS.cpp. |
| * crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmAES_KWGnuTLS.cpp. |
| * crypto/gcrypt/CryptoAlgorithmECDHGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmECDHGnuTLS.cpp. |
| * crypto/gcrypt/CryptoAlgorithmPBKDF2GCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmPBKDF2GnuTLS.cpp. |
| * crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmRSAES_PKCS1_v1_5GnuTLS.cpp. |
| * crypto/gcrypt/CryptoAlgorithmRSASSA_PKCS1_v1_5GCrypt.cpp: This one already exists. |
| * crypto/gcrypt/CryptoAlgorithmRSA_OAEPGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmRSA_OAEPGnuTLS.cpp. |
| * crypto/gcrypt/CryptoAlgorithmRegistryGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoAlgorithmRegistryGnuTLS.cpp. |
| * crypto/gcrypt/CryptoKeyECGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoKeyECGnuTLS.cpp. |
| * crypto/gcrypt/CryptoKeyRSAGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/CryptoKeyRSAGnuTLS.cpp. |
| * crypto/gcrypt/SerializedCryptoKeyWrapGCrypt.cpp: Renamed from Source/WebCore/crypto/gnutls/SerializedCryptoKeyWrapGnuTLS.cpp. |
| * crypto/gnutls/CryptoAlgorithmRSASSA_PKCS1_v1_5GnuTLS.cpp: Removed. |
| |
| 2017-03-29 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GnuTLS] Remove unused CryptoDigestGnuTLS, CryptoAlgorithmHMACGnuTLS implementation files |
| https://bugs.webkit.org/show_bug.cgi?id=170231 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * crypto/gnutls/CryptoAlgorithmHMACGnuTLS.cpp: Removed. The GCrypt counterpart |
| is already in use, and this file wasn't even being built. |
| |
| 2017-03-29 Youenn Fablet <youenn@apple.com> |
| |
| Move DTMF WebRTC extension behind its own compile flag |
| https://bugs.webkit.org/show_bug.cgi?id=170226 |
| |
| Reviewed by Eric Carlson. |
| |
| Moving RTCDTMFSender and RTCDTMFToneChangeEvent behinf a WEB_RTC_DTMF compile flag. |
| This compile flag is not set on any supported platform yet. |
| Disabling related test and updated test expectations. |
| |
| * Modules/mediastream/RTCDTMFSender.cpp: |
| * Modules/mediastream/RTCDTMFSender.h: |
| * Modules/mediastream/RTCDTMFSender.idl: |
| * Modules/mediastream/RTCDTMFToneChangeEvent.cpp: |
| * Modules/mediastream/RTCDTMFToneChangeEvent.h: |
| * Modules/mediastream/RTCDTMFToneChangeEvent.idl: |
| * dom/EventNames.in: |
| * dom/EventTargetFactory.in: |
| * platform/mediastream/RTCDTMFSenderHandler.h: |
| * platform/mediastream/RTCDTMFSenderHandlerClient.h: |
| |
| 2017-03-29 Antoine Quint <graouts@apple.com> |
| |
| [mac-wk1] LayoutTest media/modern-media-controls/airplay-button/airplay-button.html is a flaky timeout |
| https://bugs.webkit.org/show_bug.cgi?id=168409 |
| <rdar://problem/30799198> |
| |
| Reviewed by Dean Jackson. |
| |
| Add a new internals setting to opt into ScriptedAnimationController logging through DOM events dispatched |
| through the document. This should allow this flaky test to get information as to why the frame isn't |
| firing when it times out. |
| |
| * dom/ScriptedAnimationController.cpp: |
| (WebCore::ScriptedAnimationController::suspend): |
| (WebCore::ScriptedAnimationController::resume): |
| (WebCore::ScriptedAnimationController::addThrottlingReason): |
| (WebCore::ScriptedAnimationController::removeThrottlingReason): |
| (WebCore::ScriptedAnimationController::registerCallback): |
| (WebCore::ScriptedAnimationController::cancelCallback): |
| (WebCore::ScriptedAnimationController::serviceScriptedAnimations): |
| (WebCore::ScriptedAnimationController::scheduleAnimation): |
| (WebCore::ScriptedAnimationController::dispatchLoggingEventIfRequired): |
| * dom/ScriptedAnimationController.h: |
| * page/Settings.in: |
| * testing/InternalSettings.cpp: |
| (WebCore::InternalSettings::resetToConsistentState): |
| (WebCore::InternalSettings::shouldDispatchRequestAnimationFrameEvents): |
| (WebCore::InternalSettings::setShouldDispatchRequestAnimationFrameEvents): |
| * testing/InternalSettings.h: |
| * testing/InternalSettings.idl: |
| |
| 2017-03-28 Youenn Fablet <youenn@apple.com> |
| |
| [WebRTC] After r214441 addIceCandidate no longer accepts an RTCIceCandidateInit dictionary |
| https://bugs.webkit.org/show_bug.cgi?id=170192 |
| |
| Reviewed by Jon Lee. |
| |
| Covered by updated tests. |
| |
| * Modules/mediastream/RTCIceCandidate.idl: Candidate is no longer a required field in RTCIceCandidateInit. |
| * Modules/mediastream/RTCPeerConnectionInternals.js: Reworking defaultsToNull to handle both undefined and null cases. |
| |
| 2017-03-28 Youenn Fablet <youenn@apple.com> |
| |
| LibWebRTCProvider should allow setting encoder and decoder factories |
| https://bugs.webkit.org/show_bug.cgi?id=170212 |
| |
| Reviewed by Eric Carlson. |
| |
| No change of behavior. |
| Adding the ability to set encoder/decoder libwebrtc factory getters. |
| Setting default cocoa factory getters. |
| |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: |
| (WebCore::staticFactoryAndThreads): |
| (WebCore::initializePeerConnectionFactoryAndThreads): |
| (WebCore::LibWebRTCProvider::setDecoderFactoryGetter): |
| (WebCore::LibWebRTCProvider::setEncoderFactoryGetter): |
| (WebCore::LibWebRTCProvider::setPeerConnectionFactory): |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.h: |
| |
| 2017-03-27 Brent Fulgham <bfulgham@apple.com> |
| |
| Only attach Attributes to a given element one time |
| https://bugs.webkit.org/show_bug.cgi?id=170125 |
| <rdar://problem/31279676> |
| |
| Reviewed by Chris Dumez. |
| |
| Attach the attribute node to the Element before calling 'setAttributeInternal', since that method may cause |
| arbitrary JavaScript events to fire. |
| |
| Test: fast/dom/Attr/only-attach-attr-once.html |
| |
| * dom/Element.cpp: |
| (WebCore::Element::attachAttributeNodeIfNeeded): Added. |
| (WebCore::Element::setAttributeNode): Use new method. Revise to attach attribute before calling 'setAttributeInternal'. |
| (WebCore::Element::setAttributeNodeNS): Ditto. |
| * dom/Element.h: |
| |
| 2017-03-28 Youenn Fablet <youenn@apple.com> |
| |
| Stop RTCDataChannel when closing page |
| https://bugs.webkit.org/show_bug.cgi?id=170166 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: webrtc/datachannel/datachannel-gc.html |
| |
| Making RTCDataChannel an ActiveDOMObject. |
| Closing the data channel backend and freeing upon close and stop. |
| |
| * Modules/mediastream/RTCDataChannel.cpp: |
| (WebCore::RTCDataChannel::create): |
| (WebCore::RTCDataChannel::RTCDataChannel): |
| (WebCore::RTCDataChannel::close): |
| (WebCore::RTCDataChannel::stop): |
| * Modules/mediastream/RTCDataChannel.h: |
| * Modules/mediastream/RTCDataChannel.idl: |
| * Modules/mediastream/RTCPeerConnection.h: |
| |
| 2017-03-28 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Ranges for variation font properties are not enforced |
| https://bugs.webkit.org/show_bug.cgi?id=169979 |
| |
| Reviewed by David Hyatt. |
| |
| The spec specifies that: |
| - Font weights less than or equal to 0, or greater than or equal to 1000 are parse errors |
| - Font stretch values less than or equal to 0% are parse errors |
| - Font style values less than or equal to -90deg or greater than or equal to 90deg are parse errors |
| |
| Test: fast/text/variations/out-of-bounds-selection-properties.html |
| |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::consumeFontWeightRange): |
| (WebCore::fontStretchIsWithinRange): |
| (WebCore::consumeFontStretch): |
| (WebCore::consumeFontStretchRange): |
| (WebCore::fontStyleIsWithinRange): |
| (WebCore::consumeFontStyle): |
| (WebCore::consumeFontStyleRange): |
| |
| 2017-03-28 Andy Estes <aestes@apple.com> |
| |
| [iOS] Crash in -[WebPreviewLoader failed] when running http/tests/multipart/policy-ignore-crash.php |
| https://bugs.webkit.org/show_bug.cgi?id=170197 |
| <rdar://problem/30314067> |
| |
| Reviewed by Brady Eidson. |
| |
| If QuickLook conversion fails, we call ResourceLoader::didFail() with the NSError from |
| QuickLook, which will call back into PreviewLoader::didFail(). We only care about network |
| failures in PreviewLoader, not conversion failures, so check if |
| m_finishedLoadingDataIntoConverter is set before continuing (like we do in |
| PreviewLoader::didFinishLoading()). |
| |
| Fixes crash in http/tests/multipart/policy-ignore-crash.php. |
| |
| * loader/ios/PreviewLoader.mm: |
| (WebCore::PreviewLoader::didFail): |
| |
| 2017-03-28 Chris Dumez <cdumez@apple.com> |
| |
| Audio indicator is visible on uni-watch.com but there is no audible audio |
| https://bugs.webkit.org/show_bug.cgi?id=170200 |
| <rdar://problem/31289132> |
| |
| Reviewed by Eric Carlson. |
| |
| Cherry-pick the following patch from Blink by <rtoy@chromium.org>: |
| - https://chromium.googlesource.com/chromium/src.git/+/439de5bb2a31384666db1a0e2dadb2b97d2f3ce4 |
| |
| When the gain of a GainNode is 0 or 1, the operation of the node can |
| be optimized. When gain = 1, just copy the input to the output. When |
| gain = 0; just zero out the output. Currently, the input is |
| multiplied by the gain to produce the output. This just optimizes the |
| multiplication away for the two special cases. |
| |
| Also, have the GainNode set the silence hint if the gain is 0. |
| |
| And fix a bug in processIfNecessary when unsilenceOutputs was causing the |
| silence hint to be cleared after the node's process method was finished |
| and may have set the silence hint. The processing should come after |
| unsilenceOutputs to preserve any hints from processing the node. |
| |
| * Modules/webaudio/AudioNode.cpp: |
| (WebCore::AudioNode::processIfNecessary): |
| * Modules/webaudio/GainNode.cpp: |
| (WebCore::GainNode::process): |
| * platform/audio/AudioBus.cpp: |
| (WebCore::AudioBus::copyWithGainFrom): |
| |
| 2017-03-28 Chris Dumez <cdumez@apple.com> |
| |
| Animated SVG images are not paused when outside viewport |
| https://bugs.webkit.org/show_bug.cgi?id=170155 |
| <rdar://problem/31288893> |
| |
| Reviewed by Antti Koivisto. |
| |
| Make sure animated SVG images get paused when outside the viewport, |
| similarly to what was already done for animated GIF images. Also |
| make sure they are paused when they no longer have any renderers |
| using them. |
| |
| Tests: svg/animations/animated-svg-image-outside-viewport-paused.html |
| svg/animations/animated-svg-image-removed-from-document-paused.html |
| |
| * loader/cache/CachedImage.cpp: |
| (WebCore::CachedImage::didAddClient): |
| Restart the animation whenever a new CachedImage client is added. This |
| will cause us the re-evaluate if the animation should run. The animation |
| will pause again if the new renderer is not inside the viewport. |
| |
| (WebCore::CachedImage::animationAdvanced): |
| Add a flag to newImageAnimationFrameAvailable() so that the renderers can |
| let us know if we can pause the animation. Pause the animation if all no |
| renderer requires it (i.e. they are all outside the viewport, or there |
| are no renderers). |
| |
| * loader/cache/CachedImageClient.h: |
| (WebCore::CachedImageClient::newImageAnimationFrameAvailable): |
| By default, the CachedImageClients allow pausing. Only renderer will |
| potentially prevent pausing if they are inside the viewport. |
| |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::isAnimating): |
| * platform/graphics/BitmapImage.h: |
| * platform/graphics/Image.h: |
| (WebCore::Image::isAnimating): |
| Add isAnimating() flag on Image for layout testing purposes. |
| |
| * rendering/RenderElement.cpp: |
| (WebCore::RenderElement::newImageAnimationFrameAvailable): |
| Set canPause flag to true if the renderer is not inside the viewport. |
| |
| (WebCore::RenderElement::repaintForPausedImageAnimationsIfNeeded): |
| Call startAnimation() if the renderer is now visible to resume SVG |
| animations. Repainting is enough for GIF animations but not for SVG |
| animations, we have to explicitly resume them. |
| |
| * rendering/RenderElement.h: |
| * rendering/RenderView.cpp: |
| (WebCore::RenderView::addRendererWithPausedImageAnimations): |
| (WebCore::RenderView::removeRendererWithPausedImageAnimations): |
| (WebCore::RenderView::resumePausedImageAnimationsIfNeeded): |
| * rendering/RenderView.h: |
| Store CachedImages with the renderers that have paused animations. |
| This is required for SVG where we need to explicitly resume the |
| animation on the CachedImage when the renderer becomes visible |
| again. Having access to the Image will also allow us to do smarter |
| visibility checks in RenderElement's shouldRepaintForImageAnimation(), |
| in the future. |
| |
| * svg/SVGSVGElement.cpp: |
| (WebCore::SVGSVGElement::hasActiveAnimation): |
| * svg/SVGSVGElement.h: |
| Add hasActiveAnimation() method. |
| |
| * svg/graphics/SVGImage.cpp: |
| (WebCore::SVGImage::startAnimation): |
| Check that animations are paused before starting them. This avoid |
| jumping due to unnecessary calls to rootElement->setCurrentTime(0). |
| |
| (WebCore::SVGImage::isAnimating): |
| Add isAnimating() method for layout tests purposes. |
| |
| * svg/graphics/SVGImage.h: |
| * svg/graphics/SVGImageClients.h: |
| Call animationAdvanced() on the observer instead of the generic |
| changedInRect() when the SVGImage is animating. This way, we go |
| through the same code path as GIF animations and we end up calling |
| CachedImage::animationAdvanced() which calls newImageAnimationFrameAvailable() |
| on RenderElement, which determines if the animation should keep |
| running or not. |
| |
| * testing/Internals.cpp: |
| (WebCore::Internals::isImageAnimating): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| Add layout testing infrastructure. |
| |
| 2017-03-28 Antti Koivisto <antti@apple.com> |
| |
| Missing render tree position invalidation when tearing down renderers for display:contents subtree |
| https://bugs.webkit.org/show_bug.cgi?id=170199 |
| <rdar://problem/31260856> |
| |
| Reviewed by Zalan Bujtas. |
| |
| Test: fast/shadow-dom/slot-renderer-teardown.html |
| |
| * style/RenderTreeUpdater.cpp: |
| (WebCore::RenderTreeUpdater::updateElementRenderer): |
| |
| Invalidate the render tree position in case we do a teardown for an element without renderer. |
| |
| 2017-03-28 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r214485. |
| |
| This change caused LayoutTest crashes. |
| |
| Reverted changeset: |
| |
| "Stop RTCDataChannel when closing page" |
| https://bugs.webkit.org/show_bug.cgi?id=170166 |
| http://trac.webkit.org/changeset/214485 |
| |
| 2017-03-28 Anders Carlsson <andersca@apple.com> |
| |
| ApplePayShippingContactUpdate.idl shouldn't have status field |
| https://bugs.webkit.org/show_bug.cgi?id=170202 |
| rdar://problem/31307106 |
| |
| Reviewed by Beth Dakin. |
| |
| * Modules/applepay/ApplePaySession.cpp: |
| (WebCore::convertAndValidate): |
| If status isn't set, infer it based on whether there are errors present or not. |
| |
| * Modules/applepay/ApplePayShippingContactUpdate.h: |
| Make status optional here; it's still used by the old code path. |
| |
| * Modules/applepay/ApplePayShippingContactUpdate.idl: |
| Remove status here. |
| |
| 2017-03-28 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: Add "Disable Caches" option that only applies to the inspected page while Web Inspector is open |
| https://bugs.webkit.org/show_bug.cgi?id=169865 |
| <rdar://problem/31250573> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Rewrite the network agent's command for disabling resource caching to use Page::setResourceCachingEnabled. |
| The old implementation was doing weird stuff like setting no-cache headers and evicting the |
| contents of the memory cache, neither of which is correct. The new approach has no side effects |
| on the network, disk, or memory cache so it can be turned on temporarily without causing problems. |
| |
| New tests: |
| - http/tests/inspector/network/set-resource-caching-disabled-disk-cache.html |
| - http/tests/inspector/network/set-resource-caching-disabled-memory-cache.html |
| |
| * inspector/InspectorNetworkAgent.h: |
| * inspector/InspectorNetworkAgent.cpp: |
| (WebCore::InspectorNetworkAgent::setCacheDisabled): Deleted. |
| (WebCore::InspectorNetworkAgent::setResourceCachingDisabled): Added. |
| Implement new command. |
| |
| (WebCore::InspectorNetworkAgent::willSendRequest): |
| (WebCore::InspectorNetworkAgent::mainFrameNavigated): |
| Remove crufty attempts to break caches. I believe these are intended to defeat caching |
| proxies and similar middlemen, but this is just as likely to cause unusual loading behavior. |
| |
| * page/Page.h: |
| (WebCore::Page::isResourceCachingDisabled): |
| (WebCore::Page::setResourceCachingDisabledOverride): |
| Add an override setting so that Web Inspector's override does not mess up the value |
| of isResourceCachingDisabled that may have been set by a WebKit API client. |
| |
| 2017-03-28 Youenn Fablet <youenn@apple.com> |
| |
| Fix addIceCandidate after r214441 |
| https://bugs.webkit.org/show_bug.cgi?id=170146 |
| |
| Reviewed by Chris Dumez. |
| |
| Covered by rebased test. |
| |
| * Modules/mediastream/RTCPeerConnection.js: |
| (addIceCandidate): Setting function length to 1 and throwing if no parameter is passed. |
| |
| 2017-03-28 Youenn Fablet <youenn@apple.com> |
| |
| Stop RTCDataChannel when closing page |
| https://bugs.webkit.org/show_bug.cgi?id=170166 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: webrtc/datachannel/datachannel-gc.html |
| |
| Making RTCDataChannel an ActiveDOMObject. |
| Closing the data channel backend and freeing upon close and stop. |
| |
| * Modules/mediastream/RTCDataChannel.cpp: |
| (WebCore::RTCDataChannel::create): |
| (WebCore::RTCDataChannel::RTCDataChannel): |
| (WebCore::RTCDataChannel::close): |
| (WebCore::RTCDataChannel::stop): |
| * Modules/mediastream/RTCDataChannel.h: |
| * Modules/mediastream/RTCDataChannel.idl: |
| * Modules/mediastream/RTCPeerConnection.h: |
| |
| 2017-03-27 Simon Fraser <simon.fraser@apple.com> |
| |
| Enhance the touch region debug overlay to show regions for the different events |
| https://bugs.webkit.org/show_bug.cgi?id=170162 |
| |
| Reviewed by Tim Horton. |
| |
| Have NonFastScrollableRegionOverlay use a different color for each region in EventTrackingRegions, |
| and to draw a legend showing what the colors mean. |
| |
| On Mac, this overlay displays the non-fast scrollable region (which we don't keep separate from the wheel event |
| region). |
| |
| * page/DebugPageOverlays.cpp: |
| (WebCore::NonFastScrollableRegionOverlay::updateRegion): |
| (WebCore::touchEventRegionColors): |
| (WebCore::drawRightAlignedText): |
| (WebCore::NonFastScrollableRegionOverlay::drawRect): |
| (WebCore::RegionOverlay::drawRect): |
| (WebCore::RegionOverlay::drawRegion): |
| |
| 2017-03-27 Simon Fraser <simon.fraser@apple.com> |
| |
| Make sure the non-fast scrolling debug overlay is correctly updated |
| https://bugs.webkit.org/show_bug.cgi?id=170142 |
| |
| Reviewed by Tim Horton. |
| |
| AsyncScrollingCoordinator::frameViewEventTrackingRegionsChanged() is called on a timer |
| from Document code, so the existing DebugPageOverlays::didLayout() call at the end |
| of FrameView::layout() wasn't sufficient to keep the non-fast scrollable region up-to-date |
| on iOS. |
| |
| * page/scrolling/AsyncScrollingCoordinator.cpp: |
| (WebCore::AsyncScrollingCoordinator::frameViewEventTrackingRegionsChanged): |
| |
| 2017-03-28 Antoine Quint <graouts@apple.com> |
| |
| [Modern Media Controls] AirPlay placard text looks bad on 1x displays |
| https://bugs.webkit.org/show_bug.cgi?id=170183 |
| <rdar://problem/30663416> |
| |
| Reviewed by Dean Jackson. |
| |
| Use subpixel antialiasing for all text in modern media controls. |
| |
| * Modules/modern-media-controls/controls/media-controls.css: |
| (.media-controls-container,): |
| |
| 2017-03-28 Antoine Quint <graouts@apple.com> |
| |
| [Modern Media Controls] Improve appearance of tracks panel on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=168929 |
| <rdar://problem/30741589> |
| |
| Reviewed by Eric Carlson. |
| |
| We use a solid color for the focus state that matches the style used on macOS |
| and blend the titles the same way we blend other non-solid labels in the controls bar. |
| |
| * Modules/modern-media-controls/controls/tracks-panel.css: |
| (.tracks-panel section): |
| (.tracks-panel section > h3): |
| (.tracks-panel section > ul > li:focus): |
| |
| 2017-03-28 Yoav Weiss <yoav@yoav.ws> |
| |
| Add a warning for unused link preloads. |
| https://bugs.webkit.org/show_bug.cgi?id=165670 |
| |
| Reviewed by Youenn Fablet. |
| |
| Tests: http/tests/preload/single_download_preload_headers_charset.php |
| http/tests/preload/unused_preload_warning.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::prepareForDestruction): Stop the timer once the document is destructed. |
| * loader/LinkPreloadResourceClients.h: Add shouldMarkAsReferenced overides for the LinkPreloadResourceClient classes. |
| * loader/cache/CachedResource.cpp: |
| (WebCore::CachedResource::addClientToSet): Make sure LinkPreloadResourceClients don't set resource to be referenced. |
| * loader/cache/CachedResourceClient.h: |
| (WebCore::CachedResourceClient::shouldMarkAsReferenced): Make sure that ResourceClients mark preloads as referenced by default. |
| * loader/cache/CachedResourceLoader.cpp: |
| (WebCore::CachedResourceLoader::CachedResourceLoader): Initialize timer. |
| (WebCore::CachedResourceLoader::~CachedResourceLoader): Stop timer. |
| (WebCore::CachedResourceLoader::documentDidFinishLoadEvent): Trigger a timer if preloads weren't cleared at load time. |
| (WebCore::CachedResourceLoader::stopUnusedPreloadsTimer): Stop the timer. |
| (WebCore::CachedResourceLoader::warnUnusedPreloads): Iterate over m_preloads and issue a warning for non-referenced preloads. |
| * loader/cache/CachedResourceLoader.h: |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::willDetachDocumentFromFrame): Clear Resource Timing buffer when document detaches, to avoid test flakiness. |
| |
| 2017-03-28 Antoine Quint <graouts@apple.com> |
| |
| REGRESSION: Double-clicking the captions button while the captions popover is open prevents the popover from being opened again |
| https://bugs.webkit.org/show_bug.cgi?id=170171 |
| <rdar://problem/31095500> |
| |
| Reviewed by Dean Jackson. |
| |
| We used to consider that the tracks panel was presented as long as it had a parent, but since we were using for the animated |
| transition to complete before actually removing the panel from the node hierarchy, consecutive calls to hide then present |
| would fail to present the panel. We now use a private instance variable to track the presented state which is set immediately |
| as presentInParent() and hide() are called. |
| |
| Test: media/modern-media-controls/tracks-support/tracks-support-show-panel-then-double-click-on-tracks-button.html |
| |
| * Modules/modern-media-controls/controls/tracks-panel.js: |
| (TracksPanel.prototype.get presented): |
| (TracksPanel.prototype.presentInParent): |
| (TracksPanel.prototype.hide): |
| |
| 2017-03-28 Aaron Chu <aaron_chu@apple.com> |
| |
| AX: Media controls should be able to be re-activated after faded away |
| https://bugs.webkit.org/show_bug.cgi?id=170048 |
| <rdar://problem/30157179> |
| |
| Reviewed by Antoine Quint. |
| |
| Added a "foucsin" listener for the controls bar so that when an element |
| within fires a "focusin" event, the controls bar reappears if it is faded. |
| |
| Test: media/modern-media-controls/media-controls/media-controls-appear-when-focus.html |
| |
| * Modules/modern-media-controls/controls/controls-bar.js: |
| (ControlsBar.prototype.handleEvent): |
| |
| 2017-03-28 Antoine Quint <graouts@apple.com> |
| |
| [Modern Media Controls] Improve media documents across macOS, iPhone and iPad |
| https://bugs.webkit.org/show_bug.cgi?id=169145 |
| <rdar://problem/17048858> |
| |
| Reviewed by Dean Jackson. |
| |
| There were a variety of issues with media documents, some longstanding, and some specifically |
| about modern media controls. |
| |
| One issue was that fullscreen and picture-in-picture buttons would show for audio media documents, |
| due to using a <video> element to load the audio file. We now have additional logic in MediaController |
| to identify if the loaded media is really an audio file, and using this information to hide the |
| fullscreen and picture-in-picture buttons. |
| |
| Another issue was that we would inject style in MediaDocument.cpp that was specific to modern media |
| controls when we could have the modern-media-controls module injected CSS handle this styling. We now |
| use the injected style in the shadow root to size media documents based on the device characteristics |
| and ensuring that page styles are overridden. |
| |
| We also simplify how MediaDocument.cpp sets the source of the media element to simply use the "src" |
| attribute and not a <source> element. |
| |
| Finally, we introduce a MediaDocumentController class that is instantiated when we're dealing with |
| a media document to hide the controls while we determine the type of media we're loading (audio vs. |
| video) in order to apply the appropriate styling without flashes. |
| |
| As a result of the new styles applied by the modern-media-controls module, media documents have a |
| similar behavior on macOS and iPad, where we only enforce a min-width for video allowing them |
| to play at their natural size otherwise, and enforcing a fixed width for audio. On iPhone however, |
| we want to always play the media at full width, with some padding in the case of audio. |
| |
| Tests: media/modern-media-controls/fullscreen-support/fullscreen-support-disabled-video-with-audio-tracks-only.html |
| media/modern-media-controls/media-documents/ipad/media-document-audio-ios-sizing.html |
| media/modern-media-controls/media-documents/ipad/media-document-video-ios-sizing.html |
| media/modern-media-controls/media-documents/media-document-audio-ios-sizing.html |
| media/modern-media-controls/media-documents/media-document-audio-mac-sizing.html |
| media/modern-media-controls/media-documents/media-document-video-ios-sizing.html |
| media/modern-media-controls/media-documents/media-document-video-mac-sizing.html |
| media/modern-media-controls/pip-support/pip-support-disabled-video-with-audio-tracks-only.html |
| |
| * Modules/modern-media-controls/controls/ios-inline-media-controls.css: |
| (:host(audio) .media-controls.ios.inline > .controls-bar:before,): |
| (:host(audio) .media-controls.ios.inline > .controls-bar:before): Deleted. |
| * Modules/modern-media-controls/controls/macos-media-controls.css: |
| (:host(audio) .media-controls.mac.inline > .controls-bar,): |
| (:host(audio) .media-controls.mac.inline > .controls-bar > .background-tint,): |
| (:host(audio) .media-controls.mac.inline > .controls-bar): Deleted. |
| (:host(audio) .media-controls.mac.inline > .controls-bar > .background-tint): Deleted. |
| * Modules/modern-media-controls/controls/media-document.css: Copied from Source/WebCore/Modules/modern-media-controls/controls/macos-media-controls.css. |
| (:host(.media-document)): |
| (:host(.media-document.ready)): |
| (:host(.media-document.audio.mac)): |
| (:host(.media-document.audio.ipad)): |
| (:host(.media-document.audio.iphone)): |
| (:host(.media-document.video.mac)): |
| (:host(.media-document.video.ipad)): |
| (:host(.media-document.video.iphone)): |
| * Modules/modern-media-controls/js-files: |
| * Modules/modern-media-controls/media/fullscreen-support.js: |
| (FullscreenSupport.prototype.syncControl): |
| (FullscreenSupport): |
| * Modules/modern-media-controls/media/media-controller.js: |
| (MediaController): |
| (MediaController.prototype.get isAudio): |
| * Modules/modern-media-controls/media/media-document-controller.js: Copied from Source/WebCore/Modules/modern-media-controls/media/fullscreen-support.js. |
| (MediaDocumentController): |
| (MediaDocumentController.prototype.handleEvent): |
| (MediaDocumentController.prototype._mediaDocumentHasMetadata): |
| (MediaDocumentController.prototype._mediaDocumentHasSize): |
| * Modules/modern-media-controls/media/pip-support.js: |
| (PiPSupport.prototype.syncControl): |
| (PiPSupport): |
| * html/MediaDocument.cpp: |
| (WebCore::MediaDocumentParser::createDocumentStructure): |
| |
| 2017-03-28 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Follow-up patch after r214364. |
| https://bugs.webkit.org/show_bug.cgi?id=168895 |
| |
| Unreviewed. |
| |
| * platform/graphics/FontDescription.cpp: |
| (WebCore::FontDescription::FontDescription): |
| |
| 2017-03-27 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| REGRESSION(213764): Large images should not be decoded asynchronously when they are drawn on a canvas |
| https://bugs.webkit.org/show_bug.cgi?id=169771 |
| |
| Reviewed by Simon Fraser. |
| |
| Sometimes we have to draw the image immediately like when a canvas calls |
| drawImage. In this case we have to decode the image synchronously to guarantee |
| the drawing. Other times we need to decode with the native size of the image. |
| The animated images have to be decoded with native size always. Otherwise |
| the frame cache will be messed up if the same image is animated with different |
| sizes. Currently we always decode asynchronously with sizeForDrawing. We need |
| to decouple the decoding mode from the sizeForDrawing. |
| |
| This patch introduce the DecodingOptions class which can store and compare the |
| following four cases: |
| -- Synchronous: The frame has be decoded with native size only. |
| -- Asynchronous + anySize: This is passed from the Image::draw() callers. |
| -- Asynchronous + fullSize: The image has to be decoded with its full size. |
| -- Asynchronous + sizeForDrawing: The image can be decoded with sizeForDrawing unless |
| it was decoded with either a full size or sizeForDrawing which is larger than the |
| requested sizeForDrawing. |
| |
| A new argument of type DecodingMode will be added to Image::draw() function. |
| Only when the drawing comes from the render tree, it will be Asynchronous. |
| Otherwise it will be Synchronous. |
| |
| Tests: fast/images/animated-image-different-dest-size.html |
| fast/images/async-image-background-image.html |
| fast/images/async-image-canvas-draw-image.html |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::frameImageAtIndexCacheIfNeeded): Gets the frame image, cache it synchronously if |
| the current one is invalid. frameImageAtIndex() returns whatever stored in the cache. |
| (WebCore::BitmapImage::nativeImage): Call frameImageAtIndexCacheIfNeeded() instead of frameImageAtIndex(). |
| (WebCore::BitmapImage::nativeImageForCurrentFrame): Ditto. |
| (WebCore::BitmapImage::nativeImageOfSize): Ditto. |
| (WebCore::BitmapImage::framesNativeImages): Ditto. |
| (WebCore::BitmapImage::draw): Change the logic to do the following: |
| -- The animated image has to be decoded with its full size. |
| -- The animated image expects the current frame to be ready for drawing. |
| -- The large image decoding does not need to call internalStartAnimation(). |
| -- The large image has to request async image decoding but draw the current one if it exists. |
| (WebCore::BitmapImage::drawPattern): Draw the pattern synchronously. |
| (WebCore::BitmapImage::shouldUseAsyncDecodingForLargeImages): Delete the call to shouldUseAsyncDecodingForTesting() |
| since it is only applied for animated images. |
| (WebCore::BitmapImage::shouldUseAsyncDecodingForAnimatedImages): Call shouldUseAsyncDecodingForAnimatedImageForTesting(). |
| (WebCore::BitmapImage::internalStartAnimation): Request decoding with the full size. |
| (WebCore::BitmapImage::advanceAnimation): Call shouldUseAsyncDecodingForAnimatedImageForTesting(). |
| (WebCore::BitmapImage::internalAdvanceAnimation): Assert the current frame is not being decoding asynchronously for any size. |
| (WebCore::BitmapImage::frameImageAtIndex): Deleted. Moved to the header file but with a new purpose: return |
| the current frame from the frame cache as is; do not cache a new one. |
| (WebCore::BitmapImage::shouldUseAsyncDecodingForLargeImage): Deleted. Function was renamed to shouldUseAsyncDecodingForLargeImages. |
| (WebCore::BitmapImage::shouldUseAsyncDecodingForAnimatedImage): Deleted. Function was renamed to shouldUseAsyncDecodingForAnimatedImages. |
| * platform/graphics/BitmapImage.h: |
| * platform/graphics/CrossfadeGeneratedImage.cpp: |
| (WebCore::CrossfadeGeneratedImage::draw): Add a new argument of type DecodingMode. |
| * platform/graphics/CrossfadeGeneratedImage.h: |
| * platform/graphics/DecodingOptions.h: Added. |
| (WebCore::DecodingOptions::DecodingOptions): Default constructor: Synchronous mode. |
| (WebCore::DecodingOptions::operator==): Compares two DecodingOptions for equality. |
| (WebCore::DecodingOptions::isSynchronous): Is the frame decoded synchronously? |
| (WebCore::DecodingOptions::isAsynchronous): Is the frame decoded asynchronously? |
| (WebCore::DecodingOptions::isAsynchronousCompatibleWith): Is this DecodingOptions compatible with another one? |
| (WebCore::DecodingOptions::hasFullSize): Is the decoding mode asynchronous but for the image full size? |
| (WebCore::DecodingOptions::hasSizeForDrawing): Is this decoding mode asynchronous but for a sizeForDrawing? |
| (WebCore::DecodingOptions::sizeForDrawing): Returns the sizeForDrawing. m_decodingModeOrSize has to hold an IntSize. |
| (WebCore::DecodingOptions::maxDimension): Moved form ImageFrame.cpp. |
| (WebCore::DecodingOptions::has): A helper function. |
| (WebCore::DecodingOptions::hasDecodingMode): Does m_decodingModeOrSize a DecodingMode? |
| (WebCore::DecodingOptions::hasSize): Does m_decodingModeOrSize an IntSize? |
| * platform/graphics/GeneratedImage.h: Add a new argument of type DecodingMode. |
| * platform/graphics/GradientImage.cpp: |
| (WebCore::GradientImage::draw): Ditto. |
| * platform/graphics/GradientImage.h: Ditto. |
| * platform/graphics/GraphicsContext.cpp: |
| (WebCore::GraphicsContext::drawImage): Pass the ImagePaintingOptions::m_DecodingMode to Image::draw(). |
| * platform/graphics/GraphicsContext.h: |
| (WebCore::ImagePaintingOptions::ImagePaintingOptions): Add a new member of type DecodingMode to ImagePaintingOptions. |
| * platform/graphics/Image.cpp: |
| (WebCore::Image::drawTiled): Pass DecodingMode::Synchronous to Image::draw(). |
| * platform/graphics/Image.h: Add a new argument of type DecodingMode to Image::draw(). |
| * platform/graphics/ImageFrame.cpp: |
| (WebCore::ImageFrame::operator=): Replace m_sizeForDrawing by m_decodingOptions. |
| (WebCore::ImageFrame::hasNativeImage): Check if m_nativeImage is valid and the subsamplingLevels match. |
| (WebCore::ImageFrame::hasFullSizeNativeImage): Checks hasNativeImage() and whether the image frame was |
| decoded for the image full size. |
| (WebCore::ImageFrame::hasDecodedNativeImageCompatibleWithOptions): Checks hasNativeImage() and the DecodingOptions match. |
| (WebCore::maxDimension): Deleted. Moved to DecodingOptions.h. |
| (WebCore::ImageFrame::isBeingDecoded): Deleted. The check for having an ImageFrame being decoded is |
| moved to ImageFrameCache. |
| (WebCore::ImageFrame::hasValidNativeImage): Deleted. No need to this function. |
| * platform/graphics/ImageFrame.h: |
| (WebCore::ImageFrame::hasNativeImage): Add an std::optional<SubsamplingLevel> argument. |
| (WebCore::ImageFrame::hasFullSizeNativeImage): Checks whether the ImageFrame was decoded for the image full size. |
| (WebCore::ImageFrame::enqueueSizeForDecoding): Deleted. |
| (WebCore::ImageFrame::dequeueSizeForDecoding): Deleted. |
| (WebCore::ImageFrame::clearSizeForDecoding): Deleted. |
| (WebCore::ImageFrame::isBeingDecoded): Deleted. |
| (WebCore::ImageFrame::sizeForDrawing): Deleted. |
| (WebCore::ImageFrame::hasDecodedNativeImage): Deleted. |
| The logic of knowing whether an ImageFrame is being decoded is moved to ImageFrameCache. |
| * platform/graphics/ImageFrameCache.cpp: |
| (WebCore::ImageFrameCache::cacheFrameMetadataAtIndex): Caches the metadata of an ImageFrame. If the NativeImage |
| was decoded for a sizeForDrawing, the size of the ImageFrame will be the nativeImageSize(). Otherwise, the |
| frameSizeAtIndex() will be called. |
| (WebCore::ImageFrameCache::cacheFrameNativeImageAtIndex): Cache a new NativeImage which involves caching new |
| metadata and updating the memory cache. No need to check if the existing native image is valid or not for the |
| DecodingOptions. Actually it would be a bug if it happens. This is why cacheNativeImageForFrameRequest() asserts |
| !frame.hasAsyncNativeImage() before calling cacheFrameNativeImageAtIndex(). |
| (WebCore::ImageFrameCache::cacheAsyncFrameNativeImageAtIndex): Cache new NativeImage which was decoded asynchronously. |
| (WebCore::ImageFrameCache::startAsyncDecodingQueue): Call cacheAsyncFrameNativeImageAtIndex() instead of |
| cacheNativeImageForFrameRequest() for clarity. |
| (WebCore::ImageFrameCache::requestFrameAsyncDecodingAtIndex): Call hasAsyncNativeImage() instead of hasValidNativeImage() |
| Call frameIsDecodingCompatibleWithOptionsAtIndex() instead of frame.isBeingDecoded(). Replace the call to enqueueSizeForDecoding() |
| by appending the same ImageFrameRequest to m_frameCommitQueue. |
| (WebCore::ImageFrameCache::isAsyncDecodingQueueIdle): Use m_frameCommitQueue to answer the question whether the decodingQueue is idle. |
| (WebCore::ImageFrameCache::stopAsyncDecodingQueue): Use m_frameCommitQueue to loop through all the ImageFrames which are currently being decoded. |
| (WebCore::ImageFrameCache::frameAtIndexCacheIfNeeded): For getting the metadata, this function needs a valid frame. If it is requested |
| to decode the nativeImage, it has to do it synchronously. |
| (WebCore::ImageFrameCache::singlePixelSolidColor): Don't cache the frame if it is an animated image or the size is not a single pixel. |
| (WebCore::ImageFrameCache::frameIsBeingDecodedAndIsCompatibleWithOptionsAtIndex): Use m_frameCommitQueue to answer the question whether an ImageFrame |
| is being decoded and is compatible with DecodingOptions. |
| (WebCore::ImageFrameCache::frameHasFullSizeNativeImageAtIndex): Calls ImageFrame::hasFullNativeImage() for a frame. |
| (WebCore::ImageFrameCache::frameHasDecodedNativeImageCompatibleWithOptionsAtIndex): Calls ImageFrame::hasDecodedNativeImageCompatibleWithOptions() for a frame. |
| (WebCore::ImageFrameCache::frameImageAtIndex): Returns the current NativeImage without caching. |
| (WebCore::ImageFrameCache::frameImageAtIndexCacheIfNeeded): Returns the current NativeImage but cache it synchronously if needed. |
| (WebCore::ImageFrameCache::setFrameNativeImageAtIndex): Deleted. |
| (WebCore::ImageFrameCache::setFrameMetadataAtIndex): Deleted. |
| (WebCore::ImageFrameCache::replaceFrameNativeImageAtIndex): Deleted. |
| (WebCore::ImageFrameCache::frameIsBeingDecodedAtIndex): Deleted. |
| (WebCore::ImageFrameCache::frameHasImageAtIndex): Deleted. |
| (WebCore::ImageFrameCache::frameHasValidNativeImageAtIndex): Deleted. |
| (WebCore::ImageFrameCache::frameHasDecodedNativeImage): Deleted. |
| * platform/graphics/ImageFrameCache.h: Two ImageFrameRequest queues will be used. |
| -- The existing one m_frameRequestQueue which is shared between the main thread and decoding thread. The requests will be |
| dequeued from it before starting the decoding. The decoded NativeImage will be cached only on the main thread. The decoding |
| thread is not blocked by the callOnMainThread(). This means there might be multiple ImageFrameRequests which were dequeued |
| while their NativeImages have not been cached yet. |
| -- A new one m_frameCommitQueue which is track all the ImageFrameRequests whose NativeImages have not been cached yet. |
| (WebCore::ImageFrameCache::frameAtIndexCacheIfNeeded): Be explicit about caching the image frame. frameImageAtIndex() |
| returns the current image frame without caching. frameAtIndexCacheIfNeeded(). returns the current image frame but cache |
| it if needed. |
| (WebCore::ImageFrameCache::ImageFrameRequest::operator==): Compares two ImageFrameRequests for equality. |
| * platform/graphics/ImageSource.cpp: |
| (WebCore::ImageSource::frameImageAtIndexCacheIfNeeded): |
| (WebCore::ImageSource::frameImageAtIndex): Deleted. |
| * platform/graphics/ImageSource.h: |
| (WebCore::ImageSource::requestFrameAsyncDecodingAtIndex): Change the type of the argument from IntSize to be const std::optional<IntSize>. |
| (WebCore::ImageSource::frameIsBeingDecodedAndIsCompatibleWithOptionsAtIndex): Rename of frameIsBeingDecodedAtIndex(). Replace the argument of type |
| std::optional<IntSize> by an argument of type DecodingOptions. |
| (WebCore::ImageSource::frameHasFullSizeNativeImageAtIndex): A wrapper around the ImageFrameCache function. |
| (WebCore::ImageSource::frameHasDecodedNativeImageCompatibleWithOptionsAtIndex): Ditto. |
| (WebCore::ImageSource::frameImageAtIndex): Ditto. |
| (WebCore::ImageSource::frameIsBeingDecodedAtIndex): Deleted. |
| (WebCore::ImageSource::frameHasValidNativeImageAtIndex): Deleted. |
| (WebCore::ImageSource::frameHasDecodedNativeImage): Deleted. |
| * platform/graphics/NamedImageGeneratedImage.cpp: |
| (WebCore::NamedImageGeneratedImage::draw): Add a new argument of type DecodingMode. |
| * platform/graphics/NamedImageGeneratedImage.h: Ditto. |
| * platform/graphics/cairo/ImageBufferCairo.cpp: |
| (WebCore::ImageBuffer::draw): Add a new argument of type DecodingMode. |
| * platform/graphics/cg/ImageDecoderCG.cpp: |
| (WebCore::ImageDecoder::createFrameImageAtIndex): Replace the sizeForDrawing argument by a DecodingMode argument. Add a new handling |
| for decoding asynchronously for the image full size. |
| * platform/graphics/cg/ImageDecoderCG.h: Change the prototype of the function. |
| * platform/graphics/cg/PDFDocumentImage.cpp: |
| (WebCore::PDFDocumentImage::draw): Add a new argument of type DecodingMode. |
| * platform/graphics/cg/PDFDocumentImage.h: |
| * platform/graphics/win/ImageCGWin.cpp: |
| (WebCore::BitmapImage::getHBITMAPOfSize): Pass DecodingMode::Synchronous to Image::draw(). |
| (WebCore::BitmapImage::drawFrameMatchingSourceSize): Ditto. |
| * platform/graphics/win/ImageDecoderDirect2D.cpp: |
| (WebCore::ImageDecoder::createFrameImageAtIndex): Replace the sizeForDrawing argument by a DecodingMode argument. |
| * platform/graphics/win/ImageDecoderDirect2D.h: Change the prototype of the function. |
| * platform/image-decoders/ImageDecoder.cpp: |
| (WebCore::ImageDecoder::createFrameImageAtIndex): Replace the sizeForDrawing argument by a DecodingMode argument. |
| * platform/image-decoders/ImageDecoder.h: Change the prototype of the function. |
| * rendering/RenderBoxModelObject.cpp: |
| (WebCore::RenderBoxModelObject::paintFillLayerExtended): Draw the background image asynchronously if the image size is large. |
| * rendering/RenderImage.cpp: |
| (WebCore::RenderImage::paintIntoRect): Draw the background image element asynchronously if the image size is large. |
| * svg/graphics/SVGImage.cpp: |
| (WebCore::SVGImage::drawForContainer): Pass DecodingMode::Synchronous to draw(). |
| (WebCore::SVGImage::nativeImageForCurrentFrame): Ditto. |
| (WebCore::SVGImage::nativeImage): Ditto. |
| (WebCore::SVGImage::draw): Add a new argument of type DecodingMode. |
| * svg/graphics/SVGImage.h: Change the prototype of the function. |
| * svg/graphics/SVGImageForContainer.cpp: |
| (WebCore::SVGImageForContainer::draw): Add a new argument of type DecodingMode. |
| * svg/graphics/SVGImageForContainer.h: Change the prototype of the function. |
| |
| 2017-03-27 Youenn Fablet <youenn@apple.com> |
| |
| Activate release libwebrtc logging when WebRTC log channel is on |
| https://bugs.webkit.org/show_bug.cgi?id=169659 |
| |
| Reviewed by Alex Christensen. |
| |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: |
| (WebCore::initializePeerConnectionFactoryAndThreads): |
| |
| 2017-03-27 Antti Koivisto <antti@apple.com> |
| |
| Move visibleInViewportStateChanged callback from Element to render tree |
| https://bugs.webkit.org/show_bug.cgi?id=170039 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Make it easier to use from the render tree. |
| |
| Also for simplicity move the bits from RenderObject rare data to RenderElement. |
| There is plenty of space there. |
| |
| * dom/Element.h: |
| (WebCore::Element::isVisibleInViewportChanged): Deleted. |
| * html/HTMLMediaElement.h: |
| * rendering/RenderElement.cpp: |
| (WebCore::RenderElement::RenderElement): |
| (WebCore::RenderElement::willBeDestroyed): |
| (WebCore::RenderElement::registerForVisibleInViewportCallback): |
| (WebCore::RenderElement::unregisterForVisibleInViewportCallback): |
| (WebCore::RenderElement::setVisibleInViewportState): |
| (WebCore::RenderElement::visibleInViewportStateChanged): |
| * rendering/RenderElement.h: |
| (WebCore::RenderElement::visibleInViewportState): |
| * rendering/RenderObject.cpp: |
| (WebCore::RenderObject::setIsRegisteredForVisibleInViewportCallback): Deleted. |
| (WebCore::RenderObject::setVisibleInViewportState): Deleted. |
| * rendering/RenderObject.h: |
| (WebCore::RenderObject::hasOutlineAutoAncestor): |
| (WebCore::RenderObject::RenderObjectRareData::RenderObjectRareData): |
| (WebCore::RenderObject::isRegisteredForVisibleInViewportCallback): Deleted. |
| (WebCore::RenderObject::visibleInViewportState): Deleted. |
| * rendering/RenderVideo.cpp: |
| (WebCore::RenderVideo::visibleInViewportStateChanged): |
| * rendering/RenderVideo.h: |
| * rendering/RenderView.cpp: |
| (WebCore::RenderView::updateVisibleViewportRect): |
| |
| 2017-03-27 Youenn Fablet <youenn@apple.com> |
| |
| addIceCandidate should not throw if passed null or undefined |
| https://bugs.webkit.org/show_bug.cgi?id=170118 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by updated test. |
| |
| A null/undefined candidate passed to addIceCandidate means end of Ice candidate.. |
| |
| * Modules/mediastream/PeerConnectionBackend.cpp: |
| (WebCore::PeerConnectionBackend::addIceCandidate): |
| * Modules/mediastream/PeerConnectionBackend.h: |
| (WebCore::PeerConnectionBackend::endOfIceCandidates): |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::queuedAddIceCandidate): |
| * Modules/mediastream/RTCPeerConnection.h: |
| * Modules/mediastream/RTCPeerConnection.idl: |
| * Modules/mediastream/RTCPeerConnection.js: |
| (addIceCandidate): |
| |
| 2017-03-27 Antti Koivisto <antti@apple.com> |
| |
| Allow the page to render before <link> stylesheet tags in body |
| https://bugs.webkit.org/show_bug.cgi?id=149157 |
| <rdar://problem/24658830> |
| |
| Reviewed by Simon Fraser. |
| |
| Currently we block style and renderer building completely if document has any loading |
| stylesheets. In case a script queries something layout dependent we construct the render |
| tree with whatever style we have but block painting in it. |
| |
| This patch changes behavior so that a loading stylesheet in body only blocks rendering for elements |
| that are after it. The expectation is that such stylesheets rarely affect elements before them |
| and the elements can be rendered without causing ugly visible styling changes. |
| |
| The patch replaces the old flash-of-unstyled-content (FOUC) preventation mechanism with a more |
| fine-grained one. Paint blocking is now done on per-renderer basis with based on isNonFinal flag in |
| RenderStyle. |
| |
| For stylesheets in head the behavior should be largely unchanged. |
| |
| Test: http/tests/incremental/stylesheet-body-incremental-rendering.html |
| |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::pseudoStyleRulesForElement): |
| * dom/Document.cpp: |
| (WebCore::Document::Document): |
| (WebCore::Document::resolveStyle): |
| (WebCore::Document::updateLayoutIgnorePendingStylesheets): |
| |
| Remove the old FOUC preventation state tracking. |
| |
| (WebCore::Document::shouldScheduleLayout): |
| (WebCore::Document::didRemoveAllPendingStylesheet): |
| |
| Repaints will now get triggered by the normal style mechanism. |
| |
| * dom/Document.h: |
| (WebCore::Document::hasNodesWithNonFinalStyle): |
| (WebCore::Document::setHasNodesWithNonFinalStyle): |
| |
| Track if we need to recompute the style later because non-final or unstyled elements. |
| |
| (WebCore::Document::didLayoutWithPendingStylesheets): Deleted. |
| (WebCore::Document::hasNodesWithPlaceholderStyle): Deleted. |
| (WebCore::Document::setHasNodesWithPlaceholderStyle): Deleted. |
| * html/HTMLFrameSetElement.cpp: |
| (WebCore::HTMLFrameSetElement::rendererIsNeeded): |
| * page/FrameView.cpp: |
| (WebCore::FrameView::qualifiesAsVisuallyNonEmpty): |
| |
| Don't qualify as visually non-empty if we have loading stylesheets in head (even if there is |
| a fouc-prevented render tree). |
| |
| (WebCore::FrameView::fireLayoutRelatedMilestonesIfNeeded): |
| * rendering/RenderBlock.cpp: |
| (WebCore::RenderBlock::paintContents): |
| |
| Instead of a global test, block painting if isNonFinal is set in the renderer's style. |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::shouldSuppressPaintingLayer): |
| * rendering/style/RenderStyle.cpp: |
| (WebCore::RenderStyle::changeRequiresRepaint): |
| |
| The isNonFinal flag prevents painting so we need to trigger repaint when it gets cleared. |
| |
| * rendering/style/RenderStyle.h: |
| (WebCore::RenderStyle::isNotFinal): |
| (WebCore::RenderStyle::setIsNotFinal): |
| (WebCore::RenderStyle::isPlaceholderStyle): Deleted. |
| (WebCore::RenderStyle::setIsPlaceholderStyle): Deleted. |
| |
| There is no need for placeholder styles anymore. Reuse the bit for isNotFinal. |
| |
| * rendering/style/StyleRareNonInheritedData.cpp: |
| (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): |
| (WebCore::StyleRareNonInheritedData::operator==): |
| * rendering/style/StyleRareNonInheritedData.h: |
| * style/StyleScope.cpp: |
| (WebCore::Style::Scope::analyzeStyleSheetChange): |
| (WebCore::Style::Scope::updateActiveStyleSheets): |
| * style/StyleTreeResolver.cpp: |
| (WebCore::Style::TreeResolver::styleForElement): |
| (WebCore::Style::TreeResolver::resolveElement): |
| |
| If we have seens a loading stylesheet and don't have a renderer yet don't style the element. |
| In case there is a renderer or we are ignoring pending sheets, resolve the style normally |
| but mark it as non-final. |
| |
| (WebCore::Style::makePlaceholderStyle): Deleted. |
| |
| 2017-03-27 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Test variation font ranges in the CSS Font Loading API |
| https://bugs.webkit.org/show_bug.cgi?id=170022 |
| |
| Reviewed by Dean Jackson. |
| |
| Test: fast/text/variations/font-loading-api-parse-ranges.html |
| |
| Don't use keywords when reporting font variation range values. |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::fontNonKeywordWeightFromStyleValue): |
| (WebCore::ComputedStyleExtractor::fontWeightFromStyleValue): |
| (WebCore::ComputedStyleExtractor::fontNonKeywordStretchFromStyleValue): |
| (WebCore::ComputedStyleExtractor::fontStretchFromStyleValue): |
| (WebCore::ComputedStyleExtractor::fontNonKeywordStyleFromStyleValue): |
| (WebCore::ComputedStyleExtractor::fontStyleFromStyleValue): |
| * css/CSSComputedStyleDeclaration.h: |
| * css/FontFace.cpp: |
| (WebCore::FontFace::style): |
| (WebCore::FontFace::weight): |
| (WebCore::FontFace::stretch): |
| |
| 2017-03-27 Anders Carlsson <andersca@apple.com> |
| |
| Propagate shipping contact update errors |
| https://bugs.webkit.org/show_bug.cgi?id=170141 |
| rdar://problem/31276576 |
| |
| Reviewed by Tim Horton. |
| |
| * Modules/applepay/ApplePaySession.cpp: |
| (WebCore::convertAndValidate): |
| |
| 2017-03-27 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r214411. |
| |
| Two of the LayoutTests for this change time out on ios- |
| simulator. |
| |
| Reverted changeset: |
| |
| "[Modern Media Controls] Improve media documents across macOS, |
| iPhone and iPad" |
| https://bugs.webkit.org/show_bug.cgi?id=169145 |
| http://trac.webkit.org/changeset/214411 |
| |
| 2017-03-27 Antoine Quint <graouts@apple.com> |
| |
| [Modern Media Controls] Clicking on the tracks button when the tracks panel is up in a media document pauses the video |
| https://bugs.webkit.org/show_bug.cgi?id=168517 |
| <rdar://problem/30577636> |
| |
| Reviewed by Dean Jackson. |
| |
| We completely turn off default event handling in MediaDocument.cpp since we're implementing the |
| behavior we expect to pause and resume the video in the modern-media-controls module already. This |
| gets rid of this odd case where the content would not see the "click" event while the C++ side would |
| handle it and pause the video. |
| |
| * Modules/modern-media-controls/media/media-controller.js: |
| (MediaController): |
| (MediaController.prototype.handleEvent): |
| (MediaController.prototype._containerWasClicked): Deleted. |
| * html/MediaDocument.cpp: |
| (WebCore::MediaDocument::defaultEventHandler): |
| |
| 2017-03-27 Youenn Fablet <youenn@apple.com> |
| |
| Tighten RTCDatachannel creation and parameter getters |
| https://bugs.webkit.org/show_bug.cgi?id=170081 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by updated tests. |
| |
| Adding some parameter checks when creating data channels. |
| Making some getters nullable as per the spec. |
| |
| * Modules/mediastream/RTCDataChannel.h: |
| * Modules/mediastream/RTCDataChannel.idl: |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::createDataChannel): |
| * Modules/mediastream/RTCPeerConnection.idl: |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::createDataChannel): |
| (WebCore::LibWebRTCMediaEndpoint::addDataChannel): |
| * platform/mediastream/RTCDataChannelHandler.h: |
| (): Deleted. |
| |
| 2017-03-27 Youenn Fablet <youenn@apple.com> |
| |
| Add support for RTCRtpReceiver/RTCRtpSender getParameters |
| https://bugs.webkit.org/show_bug.cgi?id=170057 |
| |
| Reviewed by Alex Christensen. |
| |
| Test: webrtc/video-getParameters.html |
| |
| getParameters returns a dictionary of values taken from libwebrtc RtpReceiverInterface/RtpSenderInrterface objects. |
| Added a direct link between WebCore RTCRtpReceiver and libwebrtc RtpReceiverInterface object. |
| Making the link between WebCore RTCRtpSender and libwebrtc RtpSenderInrterface object through |
| PeerConnectionBackend to keep the current architecture shared with OpenWebRTC. |
| In the future, we should try to make the link more direct. |
| |
| Added routines to support the conversion from libwebrtc to WebCore. |
| Ensured that RTCRtpReceiver is cleaning its backend when being stopped. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * Modules/mediastream/MediaEndpointPeerConnection.cpp: |
| (WebCore::MediaEndpointPeerConnection::setRemoteDescriptionTask): |
| * Modules/mediastream/PeerConnectionBackend.h: |
| (WebCore::PeerConnectionBackend::getParameters): |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::doClose): |
| (WebCore::RTCPeerConnection::getParameters): |
| * Modules/mediastream/RTCPeerConnection.h: |
| * Modules/mediastream/RTCRtpParameters.h: Added. |
| * Modules/mediastream/RTCRtpParameters.idl: Added. |
| * Modules/mediastream/RTCRtpReceiver.cpp: |
| (WebCore::RTCRtpReceiver::RTCRtpReceiver): |
| * Modules/mediastream/RTCRtpReceiver.h: |
| (WebCore::RTCRtpReceiver::Backend::~Backend): |
| (WebCore::RTCRtpReceiver::Backend::getParameters): |
| (WebCore::RTCRtpReceiver::create): |
| (WebCore::RTCRtpReceiver::stop): |
| (WebCore::RTCRtpReceiver::setBackend): |
| (WebCore::RTCRtpReceiver::getParameters): |
| * Modules/mediastream/RTCRtpReceiver.idl: |
| * Modules/mediastream/RTCRtpSender.cpp: |
| (WebCore::RTCRtpSender::create): |
| (WebCore::RTCRtpSender::RTCRtpSender): |
| (WebCore::RTCRtpSender::replaceTrack): |
| (WebCore::RTCRtpSender::getParameters): |
| * Modules/mediastream/RTCRtpSender.h: |
| (WebCore::RTCRtpSender::Backend::~Backend): |
| (WebCore::RTCRtpSender::isStopped): |
| (WebCore::RTCRtpSender::stop): |
| * Modules/mediastream/RTCRtpSender.idl: |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::addTrack): |
| (WebCore::LibWebRTCMediaEndpoint::addRemoteTrack): |
| (WebCore::LibWebRTCMediaEndpoint::OnAddTrack): |
| (WebCore::LibWebRTCMediaEndpoint::stop): |
| (WebCore::fillEncodingParameters): |
| (WebCore::fillHeaderExtensionParameters): |
| (WebCore::fillCodecParameters): |
| (WebCore::fillRtpParameters): |
| (WebCore::RTCRtpReceiverBackend::getParameters): |
| (WebCore::LibWebRTCMediaEndpoint::getRTCRtpSenderParameters): |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::LibWebRTCPeerConnectionBackend::notifyAddedTrack): |
| (WebCore::LibWebRTCPeerConnectionBackend::getParameters): |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h: |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/mediastream/mac/RealtimeOutgoingAudioSource.h: |
| |
| 2017-03-27 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| font variation properties don't need to accept numbers |
| https://bugs.webkit.org/show_bug.cgi?id=169357 |
| |
| Reviewed by Antti Koivisto. |
| |
| The CSS Fonts level 4 spec stabilized the grammar accepted by font-weight, |
| font-style, and font-stretch. The changes are that font-style and |
| font-stretch no longer accept raw numbers, and the @font-face descriptor |
| ranges are now separated by spaces instead of slashes. |
| |
| Tests: fast/text/font-selection-font-face-parse.html |
| fast/text/font-selection-font-loading-api-parse.html |
| fast/text/font-stretch-parse.html |
| fast/text/font-style-parse.html |
| fast/text/variations/font-selection-properties.html |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::fontWeightFromStyleValue): |
| (WebCore::fontWeightFromStyle): |
| (WebCore::ComputedStyleExtractor::fontStretchFromStyleValue): |
| (WebCore::fontStretchFromStyle): |
| (WebCore::ComputedStyleExtractor::fontStyleFromStyleValue): |
| (WebCore::fontStyleFromStyle): |
| * css/CSSComputedStyleDeclaration.h: |
| * css/FontFace.cpp: |
| (WebCore::FontFace::style): |
| (WebCore::FontFace::weight): |
| (WebCore::FontFace::stretch): |
| (WebCore::rangeIsSingleValue): Deleted. |
| * css/StyleBuilderConverter.h: |
| (WebCore::StyleBuilderConverter::convertFontStretchFromValue): |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::consumeFontWeightRange): |
| (WebCore::consumeFontStretch): |
| (WebCore::consumeFontStretchRange): |
| (WebCore::consumeFontStyle): |
| (WebCore::consumeFontStyleRange): |
| |
| 2017-03-27 Youenn Fablet <youenn@apple.com> |
| |
| Further optimize checkWebRTCAvailability |
| https://bugs.webkit.org/show_bug.cgi?id=169147 |
| |
| Reviewed by Alex Christensen. |
| |
| Tested locally by removing libwebrtc.dylib. |
| Replacing dlopen check by checking an exported symbol, rtc::LogMessage::LogToDebug. |
| This check is more efficient and accurate. It should work in more configurations than the previous one. |
| |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: |
| (WebCore::isNullFunctionPointer): |
| (WebCore::LibWebRTCProvider::webRTCAvailable): |
| |
| 2017-03-27 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Implement format specifier for variation fonts |
| https://bugs.webkit.org/show_bug.cgi?id=169327 |
| |
| Reviewed by Simon Fraser. |
| |
| Variation fonts require the format("woff-variations"), format("truetype-variations"), |
| and format("opentype-variations") format specifies in @font-face rules. |
| |
| Test: fast/text/variations/font-face-format.html |
| |
| * platform/graphics/mac/FontCustomPlatformData.cpp: |
| (WebCore::FontCustomPlatformData::supportsFormat): |
| |
| 2017-03-27 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Make sure animation works for font-weight, font-stretch, and font-style |
| https://bugs.webkit.org/show_bug.cgi?id=169683 |
| |
| Reviewed by Simon Fraser. |
| |
| Hook up animation code for FontSelectionValues. |
| |
| Tests: animations/font-variations/font-stretch.html |
| animations/font-variations/font-style.html |
| animations/font-variations/font-weight.html |
| |
| * page/animation/CSSPropertyAnimation.cpp: |
| (WebCore::blendFunc): |
| (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): |
| * rendering/style/RenderStyle.cpp: |
| (WebCore::RenderStyle::setFontWeight): |
| (WebCore::RenderStyle::setFontStretch): |
| (WebCore::RenderStyle::setFontItalic): |
| * rendering/style/RenderStyle.h: |
| (WebCore::RenderStyle::fontWeight): |
| (WebCore::RenderStyle::fontStretch): |
| (WebCore::RenderStyle::fontItalic): |
| |
| 2017-03-27 Alex Christensen <achristensen@webkit.org> |
| |
| Make WebSockets work in network process |
| https://bugs.webkit.org/show_bug.cgi?id=169930 |
| |
| Reviewed by Youenn Fablet. |
| |
| Covered by 136 existing tests in http/tests/websocket/tests/hybi |
| This also does fine with the 544 websocket tests in the web-platform-tests which we have not yet imported. |
| Also added http/tests/websocket/tests/hybi/network-process-crash-error.html |
| to test a new condition that couldn't happen before this move: the NetworkProcess crashing. |
| |
| * Modules/websockets/WebSocketChannel.cpp: |
| (WebCore::WebSocketChannel::fail): |
| We were asserting that didCloseSocketStream was called. It is still called, |
| but not synchronously like it used to. This assertion is now invalid, but tests |
| that would hit it still pass. |
| * platform/network/cf/SocketStreamHandleImplCFNet.cpp: |
| (WebCore::SocketStreamHandleImpl::platformSendInternal): |
| CFWriteStreamCanAcceptBytes crashes if you give it a null parameter, and that can happen now. |
| If we have no write stream, then we cannot write. Tests that hit this pass still. |
| |
| 2017-03-27 Antoine Quint <graouts@apple.com> |
| |
| [Modern Media Controls] Improve media documents across macOS, iPhone and iPad |
| https://bugs.webkit.org/show_bug.cgi?id=169145 |
| <rdar://problem/17048858> |
| |
| Reviewed by Dean Jackson. |
| |
| There were a variety of issues with media documents, some longstanding, and some specifically |
| about modern media controls. |
| |
| One issue was that fullscreen and picture-in-picture buttons would show for audio media documents, |
| due to using a <video> element to load the audio file. We now have additional logic in MediaController |
| to identify if the loaded media is really an audio file, and using this information to hide the |
| fullscreen and picture-in-picture buttons. |
| |
| Another issue was that we would inject style in MediaDocument.cpp that was specific to modern media |
| controls when we could have the modern-media-controls module injected CSS handle this styling. We now |
| use the injected style in the shadow root to size media documents based on the device characteristics |
| and ensuring that page styles are overridden. |
| |
| We also simplify how MediaDocument.cpp sets the source of the media element to simply use the "src" |
| attribute and not a <source> element. |
| |
| Finally, we introduce a MediaDocumentController class that is instantiated when we're dealing with |
| a media document to hide the controls while we determine the type of media we're loading (audio vs. |
| video) in order to apply the appropriate styling without flashes. |
| |
| As a result of the new styles applied by the modern-media-controls module, media documents have a |
| similar behavior on macOS and iPad, where we only enforce a min-width for video allowing them |
| to play at their natural size otherwise, and enforcing a fixed width for audio. On iPhone however, |
| we want to always play the media at full width, with some padding in the case of audio. |
| |
| Tests: media/modern-media-controls/fullscreen-support/fullscreen-support-disabled-video-with-audio-tracks-only.html |
| media/modern-media-controls/media-documents/ipad/media-document-audio-ios-sizing.html |
| media/modern-media-controls/media-documents/ipad/media-document-video-ios-sizing.html |
| media/modern-media-controls/media-documents/media-document-audio-ios-sizing.html |
| media/modern-media-controls/media-documents/media-document-audio-mac-sizing.html |
| media/modern-media-controls/media-documents/media-document-video-ios-sizing.html |
| media/modern-media-controls/media-documents/media-document-video-mac-sizing.html |
| media/modern-media-controls/pip-support/pip-support-disabled-video-with-audio-tracks-only.html |
| |
| * Modules/modern-media-controls/controls/ios-inline-media-controls.css: |
| (:host(audio) .media-controls.ios.inline > .controls-bar:before,): |
| (:host(audio) .media-controls.ios.inline > .controls-bar:before): Deleted. |
| * Modules/modern-media-controls/controls/macos-media-controls.css: |
| (:host(audio) .media-controls.mac.inline > .controls-bar,): |
| (:host(audio) .media-controls.mac.inline > .controls-bar > .background-tint,): |
| (:host(audio) .media-controls.mac.inline > .controls-bar): Deleted. |
| (:host(audio) .media-controls.mac.inline > .controls-bar > .background-tint): Deleted. |
| * Modules/modern-media-controls/controls/media-document.css: Added. |
| (:host(.media-document)): |
| (:host(.media-document.ready)): |
| (:host(.media-document.audio.mac)): |
| (:host(.media-document.audio.ipad)): |
| (:host(.media-document.audio.iphone)): |
| (:host(.media-document.video.mac)): |
| (:host(.media-document.video.ipad)): |
| (:host(.media-document.video.iphone)): |
| * Modules/modern-media-controls/js-files: |
| * Modules/modern-media-controls/media/fullscreen-support.js: |
| (FullscreenSupport.prototype.syncControl): |
| (FullscreenSupport): |
| * Modules/modern-media-controls/media/media-controller.js: |
| (MediaController): |
| (MediaController.prototype.get isAudio): |
| * Modules/modern-media-controls/media/media-document-controller.js: Added. |
| (MediaDocumentController): |
| (MediaDocumentController.prototype.handleEvent): |
| (MediaDocumentController.prototype._mediaDocumentHasMetadata): |
| (MediaDocumentController.prototype._mediaDocumentHasSize): |
| * Modules/modern-media-controls/media/pip-support.js: |
| (PiPSupport.prototype.syncControl): |
| (PiPSupport): |
| * html/MediaDocument.cpp: |
| (WebCore::MediaDocumentParser::createDocumentStructure): |
| |
| 2017-03-25 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION(r214195): zillow.com header video doesn't resume when switching to another tab and back |
| https://bugs.webkit.org/show_bug.cgi?id=170080 |
| <rdar://problem/31252522> |
| |
| Reviewed by Eric Carlson. |
| |
| The video header on zillow.com would pause when switching to another tab after r214195. On |
| switching back to the zillow.com tab, we would resume the video but fail to take the poster |
| away, making it look like the video is still paused. |
| |
| We normally take the poster away when HTMLMediaElement::mediaPlayerFirstVideoFrameAvailable() |
| is called. However, mediaPlayerFirstVideoFrameAvailable() was only ever called once because of |
| the m_haveReportedFirstVideoFrame flag in MediaPlayerPrivateAVFoundation::updateStates(). |
| We now reset m_haveReportedFirstVideoFrame to false in updateStates() if hasAvailableVideoFrame() |
| return false, so that we call mediaPlayerFirstVideoFrameAvailable() again when the return |
| value of asAvailableVideoFrame() becomes true again (e.g. after the media session interruption |
| has ended). |
| |
| * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: |
| (WebCore::MediaPlayerPrivateAVFoundation::updateStates): |
| |
| 2017-03-24 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [WK2] Add a UI delegate SPI hook to enable or disable navigation on drop |
| https://bugs.webkit.org/show_bug.cgi?id=169168 |
| <rdar://problem/30688374> |
| |
| Reviewed by Tim Horton. |
| |
| Refactor client hooks for the drag destination action in WebCore to ask for the drag destination action mask |
| upon initializing the DragData. In DragController, rather than setting m_dragDestinationAction to the result of |
| m_client.actionMaskForDrag, we instead set it to the DragData's destination action. |
| |
| Tests to come in a future patch. |
| |
| * loader/EmptyClients.cpp: |
| * page/DragClient.h: |
| |
| Rather than pass in a DragData, pass in only the platform data that we need to hand to the delegate. This is |
| because we now ask for drag destination actions prior to creating the DragData. |
| |
| * page/DragController.cpp: |
| (WebCore::DragController::dragEnteredOrUpdated): |
| |
| Update the available drag destination actions in WebCore using the destination actions stored in DragData rather |
| than calling out to the client delegate. |
| |
| * loader/EmptyClients.cpp: |
| * platform/DragData.cpp: |
| (WebCore::DragData::DragData): |
| * platform/DragData.h: |
| (WebCore::DragData::dragDestinationAction): |
| (WebCore::DragData::operator =): |
| * platform/mac/DragDataMac.mm: |
| (WebCore::DragData::DragData): |
| |
| 2017-03-25 Aaron Chu <aaron_chu@apple.com> |
| |
| AX: Media controls are unlabeled |
| https://bugs.webkit.org/show_bug.cgi?id=169947 |
| <rdar://problem/30153323> |
| |
| Reviewed by Antoine Quint. |
| |
| Added a "label" property for Icons, which are used to set |
| the aria-label for the controls in modern media controls. |
| |
| Test: Addition to all existing modern media controls tests. |
| |
| * English.lproj/modern-media-controls-localized-strings.js: |
| * Modules/modern-media-controls/controls/icon-button.js: |
| (IconButton.prototype.set iconName): |
| (IconButton.prototype.handleEvent): |
| (IconButton.prototype._loadImage): |
| * Modules/modern-media-controls/controls/icon-service.js: |
| * Modules/modern-media-controls/controls/start-button.js: |
| (StartButton): |
| * Modules/modern-media-controls/js-files: |
| |
| 2017-03-25 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [XDG] MIMETypeRegistry::getMIMETypeForExtension should return a null/empty string when mime type is unknown |
| https://bugs.webkit.org/show_bug.cgi?id=170050 |
| |
| Reviewed by Michael Catanzaro. |
| |
| That's what the callers expect, but we alre always returning XDG_MIME_TYPE_UNKNOWN which is |
| application/octet-stream. |
| |
| Fixes: plugins/no-mime-with-valid-extension.html |
| |
| * platform/xdg/MIMETypeRegistryXdg.cpp: |
| (WebCore::MIMETypeRegistry::getMIMETypeForExtension): |
| |
| 2017-03-24 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Add font-optical-sizing to CSSComputedStyleDeclaration |
| https://bugs.webkit.org/show_bug.cgi?id=170083 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Covered by existing tests. |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| |
| 2017-03-24 Daniel Bates <dabates@apple.com> |
| |
| media/restore-from-page-cache.html causes NoEventDispatchAssertion::isEventAllowedInMainThread() assertion failure |
| https://bugs.webkit.org/show_bug.cgi?id=170087 |
| <rdar://problem/31254822> |
| |
| Reviewed by Simon Fraser. |
| |
| Reduce the scope of code that should never dispatch DOM events so as to allow updating contents size |
| after restoring a page from the page cache. |
| |
| In r214014 we instantiate a NoEventDispatchAssertion in FrameLoader::commitProvisionalLoad() |
| around the call to CachedPage::restore() to assert when a DOM event is dispatched during |
| page restoration as such events can cause re-entrancy into the page cache. As it turns out |
| it is sufficient to ensure that no DOM events are dispatched after restoring all cached frames |
| as opposed to after CachedPage::restore() returns. |
| |
| Also rename Document::enqueue{Pageshow, Popstate}Event() to dispatch{Pageshow, Popstate}Event(), |
| respectively, since they synchronously dispatch events :(. We hope in the future to make them |
| asynchronously dispatch events. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::implicitClose): Update for renaming. |
| (WebCore::Document::statePopped): Ditto. |
| (WebCore::Document::dispatchPageshowEvent): Renamed; formerly named enqueuePageshowEvent(). |
| (WebCore::Document::dispatchPopstateEvent): Renamed; formerly named enqueuePopstateEvent(). |
| (WebCore::Document::enqueuePageshowEvent): Deleted. |
| (WebCore::Document::enqueuePopstateEvent): Deleted. |
| * dom/Document.h: |
| * history/CachedPage.cpp: |
| (WebCore::firePageShowAndPopStateEvents): Moved logic from FrameLoader::didRestoreFromCachedPage() to here. |
| (WebCore::CachedPage::restore): Modified to call firePageShowAndPopStateEvents(). |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::commitProvisionalLoad): Removed use of NoEventDispatchAssertion RAII object. We |
| will instantiate it in CachedPage::restore() with a smaller scope. |
| (WebCore::FrameLoader::didRestoreFromCachedPage): Deleted; moved logic from here to WebCore::firePageShowAndPopStateEvents(). |
| * loader/FrameLoader.h: |
| |
| 2017-03-24 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r214361. |
| |
| This change caused flakiness in http/tests/preload tests. |
| |
| Reverted changeset: |
| |
| "Add a warning for unused link preloads." |
| https://bugs.webkit.org/show_bug.cgi?id=165670 |
| http://trac.webkit.org/changeset/214361 |
| |
| 2017-03-24 Antoine Quint <graouts@webkit.org> |
| |
| [Modern Media Controls] Remove placard icon if height is compressed |
| https://bugs.webkit.org/show_bug.cgi?id=167935 |
| <rdar://problem/30397128> |
| |
| Reviewed by Dean Jackson. |
| |
| We make the addition of certain Placard children conditional on the placard's metrics. Whenever the |
| media controls metrics changes, the placard, if any, is set to have the same metrics and layout() is |
| called where we ensure that there is enough space, per designs, to have the icon, description and even |
| the title visible. We also make some CSS improvements to guarantee that the description is laid out on |
| two lines at most and that both text labels are trimmed elegantly with an ellipsis shold the width be |
| insufficient to display the whole text. |
| |
| Since we would have needed to have more width/height setter overrides to trigger layout, we now make |
| LayoutNode trigger layout() directly and remove the need for subclasses to do this on a per-class basis. |
| We also make layout() a method that can be called safely anytime as it's now no longer part of the DOM |
| commit step, a new commit() method is used instead of that. |
| |
| Tests: media/modern-media-controls/layout-node/node-made-dirty-during-commit.html |
| media/modern-media-controls/media-controls/media-controls-placard-compressed-metrics.html |
| |
| * Modules/modern-media-controls/controls/layout-node.js: |
| (LayoutNode.prototype.set width): |
| (LayoutNode.prototype.set height): |
| Trigger a call to layout() anytime "width" or "height" is set on any LayoutNode. |
| |
| (LayoutNode.prototype.layout): |
| (LayoutNode.prototype.commit): |
| (performScheduledLayout): |
| Make layout() an empty method that subclasses can override easily outside of the DOM commit cycle, |
| its previous implementation is now called "commit()" which is a more accurate name. |
| |
| * Modules/modern-media-controls/controls/media-controls.js: |
| (MediaControls.prototype.get placard): |
| (MediaControls.prototype.get showsPlacard): |
| (MediaControls.prototype.showPlacard): |
| (MediaControls.prototype.hidePlacard): |
| (MediaControls.prototype.layout): |
| (MediaControls.prototype.get width): Deleted. |
| (MediaControls.prototype.set width): Deleted. |
| Add a "placard" property to make it simpler to reference the placard instead of making assumptions in |
| several places in that class on the children order. Anytime we run a layout or show the placard, ensure |
| that the placard metrics are synced with the media controls metrics. |
| |
| * Modules/modern-media-controls/controls/placard.css: |
| (.placard .container): |
| (.placard .title,): |
| (.placard .description): |
| We now ensure that both the title and description are trimmed with an ellipsis when we run out of space |
| to display them fully. |
| |
| * Modules/modern-media-controls/controls/placard.js: |
| (Placard.): |
| (Placard.prototype.layout): |
| We add new constraints to only show the icon, title and description if the placard is tall and wide enough. |
| |
| * Modules/modern-media-controls/controls/slider.js: |
| (Slider.prototype.get width): Deleted. |
| (Slider.prototype.set width): Deleted. |
| Removed custom "width" getters and setters now we can just override layout() in case node metrics change. |
| |
| * Modules/modern-media-controls/controls/time-control.js: |
| (TimeControl.prototype.set useSixDigitsForTimeLabels): |
| (TimeControl.prototype.layout): |
| (TimeControl.prototype.get width): Deleted. |
| (TimeControl.prototype.set width): Deleted. |
| (TimeControl.prototype._availableWidthHasChanged): Deleted. |
| Removed custom "width" getters and setters now we can just override layout() in case node metrics change. |
| |
| * Modules/modern-media-controls/media/media-controller.js: |
| (MediaController): |
| Ensure we flush pending updates at construction time so that we match the size of the media controls right |
| at the first media layout. |
| |
| 2017-03-24 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] "ideal" constraints passed to getUserMedia should affect fitness score |
| https://bugs.webkit.org/show_bug.cgi?id=170056 |
| |
| Reviewed by Youenn Fablet. |
| |
| Include the fitness score calculated for ideal constraints in the calculation of a capture |
| overall device fitness score. |
| |
| No new tests, existing tests updated. |
| |
| * platform/mediastream/MediaConstraints.cpp: |
| (WebCore::StringConstraint::fitnessDistance): Drive-by fix: return early if ideal is empty, |
| not exact. |
| |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::supportsSizeAndFrameRate): Return fitness distance. |
| (WebCore::RealtimeMediaSource::selectSettings): Include the fitness distance of supported |
| ideal constraints. |
| (WebCore::RealtimeMediaSource::supportsConstraint): New. |
| (WebCore::RealtimeMediaSource::applyConstraints): |
| * platform/mediastream/RealtimeMediaSource.h: |
| |
| * platform/mock/MockRealtimeMediaSourceCenter.cpp: |
| (WebCore::MockRealtimeMediaSourceCenter::validateRequestConstraints): Sort candidate sources |
| by their fitness score. |
| |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSource::initializeCapabilities): Each video source should support |
| one facing mode, not both. |
| |
| 2017-03-24 Dean Jackson <dino@apple.com> |
| |
| Serialization of custom props in longhand should be "" not value of shorthand |
| https://bugs.webkit.org/show_bug.cgi?id=167699 |
| <rdar://problem/30324200> |
| |
| Reviewed by Sam Weinig. |
| |
| https://www.w3.org/TR/css-variables/#variables-in-shorthands says |
| "Pending-substitution values must be serialized as the empty string, if |
| an API allows them to be observed." |
| |
| We were returning the cssText instead. |
| |
| Test: fast/css/variables/rule-property-get.html has been updated. |
| |
| * css/StyleProperties.cpp: |
| (WebCore::StyleProperties::getPropertyValue): Return the empty string |
| if we're a pending substitution value. |
| |
| 2017-03-24 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Unreviewed, fix the ToT build on the latest SDK. |
| |
| Add deprecated declaration guards around two synchronous UIItemProvider methods in WebItemProviderPasteboard. |
| <rdar://problem/30451096> tracks adoption of the asynchronous versions of these methods. |
| |
| * platform/ios/WebItemProviderPasteboard.mm: |
| (-[WebItemProviderPasteboard dataForPasteboardType:inItemSet:]): |
| (-[WebItemProviderPasteboard _tryToCreateAndAppendObjectOfClass:toArray:usingProvider:]): |
| |
| 2017-03-24 Antoine Quint <graouts@webkit.org> |
| |
| [Modern Media Controls] Captions don't move with the appearance of the inline controls |
| https://bugs.webkit.org/show_bug.cgi?id=170051 |
| <rdar://problem/30754428> |
| |
| Reviewed by Dean Jackson. |
| |
| We now size the captions container to account for the controls bar height when visible. To do this, |
| we use CSS variables to specify the height of the controls bar in default inline mode, compact inline |
| mode and fullscreen mode. |
| |
| Test: media/modern-media-controls/tracks-support/tracks-support-captions-offset-with-controls-bar.html |
| |
| * Modules/modern-media-controls/controls/controls-bar.js: |
| (ControlsBar.prototype.set faded): |
| Notify the hosting MediaControls that the "faded" property changed. |
| |
| * Modules/modern-media-controls/controls/ios-inline-media-controls.css: |
| (.media-controls.ios.inline > .controls-bar): |
| Use the new --inline-controls-bar-height CSS variable to specify the inline bar height. |
| |
| * Modules/modern-media-controls/controls/macos-compact-inline-media-controls.css: |
| (.media-controls.mac.inline.compact > .controls-bar): |
| Use the new --inline-compact-controls-bar-height CSS variable to specify the inline bar height. |
| |
| * Modules/modern-media-controls/controls/macos-fullscreen-media-controls.css: |
| (.media-controls.mac.fullscreen > .controls-bar): |
| Use the new --fullscreen-controls-bar-height CSS variable to specify the inline bar height. |
| |
| * Modules/modern-media-controls/controls/macos-inline-media-controls.css: |
| (.media-controls.mac.inline > .controls-bar): |
| Use the new --inline-controls-bar-height CSS variable to specify the inline bar height. |
| |
| * Modules/modern-media-controls/controls/media-controls.css: |
| (*): |
| Specify new CSS variables for the various controls bar heights. |
| |
| * Modules/modern-media-controls/controls/media-controls.js: |
| (MediaControls.prototype.controlsBarFadedStateDidChange): |
| Notify the delegate of a controls bar "faded" property change. |
| |
| * Modules/modern-media-controls/controls/text-tracks.css: |
| (video::-webkit-media-text-track-container): |
| (video::-webkit-media-text-track-container.visible-controls-bar): |
| (video::-webkit-media-text-track-container.visible-controls-bar.compact-controls-bar): |
| (video::-webkit-media-text-track-display): |
| Shorten the height of the captions container when the controls bar is visible. We also |
| fix a couple of prefixed properties that didn't need to be. |
| |
| * Modules/modern-media-controls/media/media-controller.js: |
| (MediaController.prototype.controlsBarFadedStateDidChange): |
| (MediaController.prototype._updateControlsIfNeeded): |
| (MediaController.prototype._updateTextTracksClassList): |
| (MediaController): |
| Ensure we reflect the "faded" state of the controls bar on the captions container using |
| a CSS class, as well as whether the controls bar mode is compact. |
| |
| 2017-03-24 Brent Fulgham <bfulgham@apple.com> |
| |
| Handle recursive calls to ProcessingInstruction::checkStyleSheet |
| https://bugs.webkit.org/show_bug.cgi?id=169982 |
| <rdar://problem/31083051> |
| |
| Reviewed by Antti Koivisto. |
| |
| See if we triggered a recursive load of the stylesheet during the 'beforeload' |
| event handler. If so, reset to a valid state before completing the load. |
| |
| We should also check after 'beforeload' that we were not disconnected from (or |
| moved to a new) document. |
| |
| I also looked for other cases of this pattern and fixed them, too. |
| |
| Tests: fast/dom/beforeload/image-removed-during-before-load.html |
| fast/dom/beforeload/recursive-css-pi-before-load.html |
| fast/dom/beforeload/recursive-link-before-load.html |
| fast/dom/beforeload/recursive-xsl-pi-before-load.html |
| |
| * dom/ProcessingInstruction.cpp: |
| (WebCore::ProcessingInstruction::clearExistingCachedSheet): Added. |
| (WebCore::ProcessingInstruction::checkStyleSheet): Prevent recursive calls into |
| this function during 'beforeload' handling. Also, safely handle the case where |
| the element was disconnected in the 'beforeload' handler (similar to what |
| we do in HTMLLinkElement). |
| (WebCore::ProcessingInstruction::setCSSStyleSheet): Drive-by Fix: Protect the |
| current document to match what we do in setXSLStyleSheet. |
| * dom/ProcessingInstruction.h: |
| * html/HTMLLinkElement.cpp: |
| (WebCore::HTMLLinkElement::process): Prevent recursive calls into |
| this function during 'beforeload' handling. |
| * html/HTMLLinkElement.h: |
| * loader/ImageLoader.cpp: |
| (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent): safely handle the case where |
| the element was disconnected in the 'beforeload' handler (similar to what |
| we do in HTMLLinkElement). |
| * style/StyleScope.cpp: |
| (WebCore::Style::Scope::hasPendingSheet): Added. |
| * style/StyleScope.h: |
| |
| 2017-03-24 Brady Eidson <beidson@apple.com> |
| |
| A null compound index value crashes the Databases process. |
| <rdar://problem/30499831> and https://bugs.webkit.org/show_bug.cgi?id=170000 |
| |
| Reviewed by Alex Christensen. |
| |
| Test: storage/indexeddb/modern/single-entry-index-invalid-key-crash.html |
| |
| * bindings/js/IDBBindingUtilities.cpp: |
| (WebCore::createKeyPathArray): Fix the bug by rejecting arrays with any invalid keys in them. |
| |
| Add some logging: |
| * Modules/indexeddb/IDBKeyPath.cpp: |
| (WebCore::loggingString): |
| * Modules/indexeddb/IDBKeyPath.h: |
| * Modules/indexeddb/IDBObjectStore.cpp: |
| (WebCore::IDBObjectStore::createIndex): |
| * Modules/indexeddb/shared/IDBIndexInfo.cpp: |
| (WebCore::IDBIndexInfo::loggingString): |
| |
| 2017-03-24 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r214360. |
| |
| This change caused 20+ LayoutTest failures. |
| |
| Reverted changeset: |
| |
| "Handle recursive calls to |
| ProcessingInstruction::checkStyleSheet" |
| https://bugs.webkit.org/show_bug.cgi?id=169982 |
| http://trac.webkit.org/changeset/214360 |
| |
| 2017-03-24 Youenn Fablet <youenn@apple.com> |
| |
| Add support for qpSum in WebRTC stats |
| https://bugs.webkit.org/show_bug.cgi?id=170060 |
| |
| Reviewed by Eric Carlson. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::fillRTCRTPStreamStats): exposing libwebrtc qpSum value. |
| |
| 2017-03-24 Daniel Bates <dabates@apple.com> |
| |
| Prevent new navigations during document unload |
| https://bugs.webkit.org/show_bug.cgi?id=169934 |
| <rdar://problem/31247584> |
| |
| Reviewed by Chris Dumez. |
| |
| Similar to our policy of preventing new navigations from onbeforeunload handlers |
| we should prevent new navigations that are initiated during the document unload |
| process. |
| |
| The significant part of this change is the instantiation of the RAII object NavigationDisabler |
| in Document::prepareForDestruction(). The rest of this change just renames class |
| NavigationDisablerForBeforeUnload to NavigationDisabler now that this RAII class is |
| used to prevent navigation from both onbeforeunload event handlers and when unloading |
| a document. |
| |
| Test: fast/frames/frame-unload-navigate-and-setTimeout-assert-fail.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::prepareForDestruction): Disable new navigations when disconnecting |
| subframes. Also assert that the document is not in the page cache before we fall off |
| the end of the function. |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::isNavigationAllowed): Update for renaming below. |
| (WebCore::FrameLoader::shouldClose): Ditto. |
| * loader/NavigationScheduler.cpp: |
| (WebCore::NavigationScheduler::shouldScheduleNavigation): Ditto. |
| * loader/NavigationScheduler.h: |
| (WebCore::NavigationDisabler::NavigationDisabler): Renamed class; formerly named NavigationDisablerForBeforeUnload. |
| (WebCore::NavigationDisabler::~NavigationDisabler): Ditto. |
| (WebCore::NavigationDisabler::isNavigationAllowed): Ditto. |
| (WebCore::NavigationDisablerForBeforeUnload::NavigationDisablerForBeforeUnload): Deleted. |
| (WebCore::NavigationDisablerForBeforeUnload::~NavigationDisablerForBeforeUnload): Deleted. |
| (WebCore::NavigationDisablerForBeforeUnload::isNavigationAllowed): Deleted. |
| |
| 2017-03-24 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Implement font-optical-sizing |
| https://bugs.webkit.org/show_bug.cgi?id=168895 |
| |
| Reviewed by Dean Jackson. |
| |
| Upon advice from Microsoft, the only input to optical sizing is just the |
| font-size computed value. It is implemented by setting the 'opsz' font |
| variation axis. Because the propery has such a simple grammar, the |
| implementation is quite straightforward. |
| |
| Test: fast/text/variations/optical-sizing.html |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::propertyValue): |
| * css/CSSPrimitiveValueMappings.h: |
| (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): |
| (WebCore::CSSPrimitiveValue::operator FontOpticalSizing): |
| * css/CSSProperties.json: |
| * css/parser/CSSParserFastPaths.cpp: |
| (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue): |
| (WebCore::CSSParserFastPaths::isKeywordPropertyID): |
| * platform/graphics/FontCache.h: |
| (WebCore::FontDescriptionKey::makeFlagsKey): |
| * platform/graphics/FontDescription.h: |
| (WebCore::FontDescription::opticalSizing): |
| (WebCore::FontDescription::setOpticalSizing): |
| (WebCore::FontDescription::operator==): |
| (WebCore::FontCascadeDescription::initialOpticalSizing): |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::preparePlatformFont): |
| (WebCore::fontWithFamily): |
| (WebCore::FontCache::createFontPlatformData): |
| (WebCore::FontCache::systemFallbackForCharacters): |
| * platform/graphics/mac/FontCustomPlatformData.cpp: |
| (WebCore::FontCustomPlatformData::fontPlatformData): |
| * platform/text/TextFlags.h: |
| |
| 2017-03-24 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r214329. |
| |
| Significantly regressed Speedometer |
| |
| Reverted changeset: |
| |
| "window.crypto.getRandomValues() uses the insecure RC4 RNG" |
| https://bugs.webkit.org/show_bug.cgi?id=169623 |
| http://trac.webkit.org/changeset/214329 |
| |
| 2017-03-24 Yoav Weiss <yoav@yoav.ws> |
| |
| Add a warning for unused link preloads. |
| https://bugs.webkit.org/show_bug.cgi?id=165670 |
| |
| Reviewed by Youenn Fablet. |
| |
| This patch adds a warning message, to warn developers that are using |
| link preloads in cases where the downloaded resource is likely to |
| remain unused. |
| |
| Test: http/tests/preload/unused_preload_warning.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::prepareForDestruction): Stop the timer once the document is destructed. |
| * loader/LinkPreloadResourceClients.h: Add shouldMarkAsReferenced overides for the LinkPreloadResourceClient classes. |
| * loader/cache/CachedResource.cpp: |
| (WebCore::CachedResource::addClientToSet): Make sure LinkPreloadResourceClients don't set resource to be referenced. |
| * loader/cache/CachedResourceClient.h: |
| (WebCore::CachedResourceClient::shouldMarkAsReferenced): Make sure that ResourceClients mark preloads as referenced by default. |
| * loader/cache/CachedResourceLoader.cpp: |
| (WebCore::CachedResourceLoader::CachedResourceLoader): Initialize timer. |
| (WebCore::CachedResourceLoader::~CachedResourceLoader): Stop timer. |
| (WebCore::CachedResourceLoader::warnUnusedPreloads): Iterate over m_preloads and issue a warning for non-referenced preloads. |
| (WebCore::CachedResourceLoader::documentDidFinishLoadEvent): Trigger a timer if preloads weren't cleared at load time. |
| (WebCore::CachedResourceLoader::warnUnusedPreloads): Triggered by the timer, and called CachedResourceLoader::warnUnusedPreloads. |
| (WebCore::CachedResourceLoader::stopUnusedPreloadsTimer): Stop the timer. |
| |
| 2017-03-24 Brent Fulgham <bfulgham@apple.com> |
| |
| Handle recursive calls to ProcessingInstruction::checkStyleSheet |
| https://bugs.webkit.org/show_bug.cgi?id=169982 |
| <rdar://problem/31083051> |
| |
| Reviewed by Antti Koivisto. |
| |
| See if we triggered a recursive load of the stylesheet during the 'beforeload' |
| event handler. If so, reset to a valid state before completing the load. |
| |
| We should also check after 'beforeload' that we were not disconnected from (or |
| moved to a new) document. |
| |
| I also looked for other cases of this pattern and fixed them. |
| |
| Tests: fast/dom/beforeload/image-removed-during-before-load.html |
| fast/dom/beforeload/recursive-css-pi-before-load.html |
| fast/dom/beforeload/recursive-link-before-load.html |
| fast/dom/beforeload/recursive-xsl-pi-before-load.html |
| |
| * dom/ProcessingInstruction.cpp: |
| (WebCore::ProcessingInstruction::clearExistingCachedSheet): Added. |
| (WebCore::ProcessingInstruction::checkStyleSheet): Reset to valid state |
| if necessary after the 'beforeload' handler. Also, safely handle the case where |
| the element was disconnected in the 'beforeload' handler (similar to what |
| we do in HTMLLinkElement). |
| (WebCore::ProcessingInstruction::setCSSStyleSheet): Drive-by Fix: Protect the |
| current document to match what we do in setXSLStyleSheet. |
| * dom/ProcessingInstruction.h: |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::selectMediaResource): Safely handle the case where |
| the element was disconnected in the 'beforeload' handler. |
| (WebCore::HTMLMediaElement::selectNextSourceChild): Ditto. |
| * loader/ImageLoader.cpp: |
| (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent): Ditto. |
| |
| 2017-03-24 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| font-style needs a new CSSValue to make CSSRule.cssText work correctly |
| https://bugs.webkit.org/show_bug.cgi?id=169258 |
| |
| Reviewed by David Hyatt. |
| |
| With variation fonts, font-style's value can't be captured in a CSSPrimitiveValue (nor any other subclass |
| off CSSValue) any more. Instead, we need to create two new CSSValues which represent the grammar that font- |
| style and it's associated @font-face descriptor accept. |
| |
| The grammar of the font-style property is "normal | italic | oblique [ <<angle>> ]?" |
| The grammar of the font-style descriptor is "normal | italic | oblique [ <<angle>> | <<angle>> <<angle>> ]?" |
| |
| We currently still support numbers in place of the <<angle>> value (contrary to the spec). We will remove |
| this support in https://bugs.webkit.org/show_bug.cgi?id=169357. |
| |
| Tests: fast/text/font-selection-font-face-parse.html: |
| fast/text/font-style-parse.html: |
| |
| * CMakeLists.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * css/CSSAllInOne.cpp: |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::fontStyleFromStyle): |
| (WebCore::fontShorthandValueForSelectionProperties): |
| * css/CSSFontFace.cpp: |
| (WebCore::calculateWeightRange): |
| (WebCore::calculateStretchRange): |
| (WebCore::calculateItalicRange): |
| * css/CSSFontFaceSet.cpp: |
| (WebCore::computeFontSelectionRequest): |
| (WebCore::CSSFontFaceSet::matchingFaces): |
| (WebCore::calculateWeightValue): Deleted. |
| (WebCore::calculateStretchValue): Deleted. |
| (WebCore::calculateStyleValue): Deleted. |
| * css/CSSFontFaceSet.h: |
| * css/CSSFontSelector.cpp: |
| (WebCore::CSSFontSelector::addFontFaceRule): |
| * css/CSSFontStyleRangeValue.cpp: Added. |
| (WebCore::CSSFontStyleRangeValue::customCSSText): |
| (WebCore::CSSFontStyleRangeValue::equals): |
| * css/CSSFontStyleRangeValue.h: Added. |
| * css/CSSFontStyleValue.cpp: Added. |
| (WebCore::CSSFontStyleValue::customCSSText): |
| (WebCore::CSSFontStyleValue::equals): |
| * css/CSSFontStyleValue.h: Added. |
| * css/CSSFontValue.cpp: |
| (WebCore::CSSFontValue::customCSSText): |
| * css/CSSFontValue.h: |
| * css/CSSValue.cpp: |
| (WebCore::CSSValue::equals): |
| (WebCore::CSSValue::cssText): |
| (WebCore::CSSValue::destroy): |
| * css/CSSValue.h: |
| (WebCore::CSSValue::isFontStyleValue): |
| (WebCore::CSSValue::isFontStyleRangeValue): |
| * css/FontFace.cpp: |
| (WebCore::FontFace::style): |
| (WebCore::FontFace::weight): |
| (WebCore::FontFace::stretch): |
| * css/StyleBuilderConverter.h: |
| (WebCore::StyleBuilderConverter::convertFontWeightFromValue): |
| (WebCore::StyleBuilderConverter::convertFontStretchFromValue): |
| (WebCore::StyleBuilderConverter::convertFontStyleFromValue): |
| (WebCore::StyleBuilderConverter::convertFontWeight): |
| (WebCore::StyleBuilderConverter::convertFontStretch): |
| (WebCore::StyleBuilderConverter::convertFontStyle): |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::consumeFontStyle): |
| (WebCore::consumeFontStyleRange): |
| (WebCore::CSSPropertyParser::consumeSystemFont): |
| (WebCore::CSSPropertyParser::consumeFont): |
| * svg/SVGFontFaceElement.cpp: |
| (WebCore::SVGFontFaceElement::parseAttribute): |
| |
| 2017-03-24 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION: Content Blocker: Blocking "a[href*=randomString]" doesn't work |
| https://bugs.webkit.org/show_bug.cgi?id=169167 |
| |
| Reviewed by Simon Fraser. |
| |
| When testing content extensions, we have always called an API function that internally |
| has called AtomicString::init somewhere before we start compiling the content extension. |
| On iOS, though, we call [_WKUserContentExtensionStore compileContentExtensionForIdentifier:...] |
| without having already called anything that calls AtomicString::init. The new CSS parser is now |
| failing to parse some selectors because CSSSelectorParser::defaultNamespace is returning starAtom, |
| which is a null atomic string before AtomicString::init is called. |
| |
| Covered by a new API test. |
| |
| * contentextensions/ContentExtensionParser.cpp: |
| (WebCore::ContentExtensions::isValidCSSSelector): |
| (WebCore::ContentExtensions::loadAction): |
| (WebCore::ContentExtensions::isValidSelector): Deleted. |
| * contentextensions/ContentExtensionParser.h: |
| Call AtomicString::init before checking if a css selector is valid. |
| |
| 2017-03-24 Youenn Fablet <youenn@apple.com> |
| |
| Add libwebrtc backend support for RTCRtpSender::replaceTrack |
| https://bugs.webkit.org/show_bug.cgi?id=169841 |
| |
| Reviewed by Alex Christensen. |
| |
| Tests: webrtc/audio-replace-track.html |
| webrtc/video-replace-track.html |
| |
| Adding support for replaceTrack for audio and video sources. |
| Replacing tracks will always succeed for audio sources. |
| For video tracks, it will only succeed if the video resolution is not greater. |
| LibWebRTCPeerConnectionBackend will delegate the track replacing by replacing the source of the outgoing sources with the source wrapped in the replacing track. |
| |
| Video test is not fully passing as size constraints for mock video sources are not providing the right video stream resolution. |
| |
| * Modules/mediastream/RTCRtpSender.cpp: |
| (WebCore::RTCRtpSender::replaceTrack): |
| * Modules/mediastream/RTCRtpSender.h: |
| * Modules/mediastream/RTCRtpSender.idl: |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::LibWebRTCPeerConnectionBackend::replaceTrack): |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h: |
| * platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp: |
| (WebCore::RealtimeOutgoingAudioSource::setSource): |
| * platform/mediastream/mac/RealtimeOutgoingAudioSource.h: |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp: |
| (WebCore::RealtimeOutgoingVideoSource::setSource): |
| * platform/mediastream/mac/RealtimeOutgoingVideoSource.h: |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSource::drawText): |
| (WebCore::MockRealtimeVideoSource::generateFrame): |
| |
| 2017-03-24 Jon Lee <jonlee@apple.com> |
| |
| Remove comment from RTCStatsReport.idl to convert ssrc to DOMString. |
| Unreviewed. |
| |
| Latest available Editor's Draft of WebRTC Statistics API is from 14 December 2016, |
| but since then, in https://github.com/w3c/webrtc-stats/pull/157, it was changed to become |
| unsigned long. |
| |
| * Modules/mediastream/RTCStatsReport.idl: |
| |
| 2017-03-24 Youenn Fablet <youenn@apple.com> |
| |
| Add support for DataChannel and MediaStreamTrack stats |
| https://bugs.webkit.org/show_bug.cgi?id=170031 |
| |
| Reviewed by Eric Carlson. |
| |
| Tests: webrtc/datachannel/datachannel-stats.html |
| webrtc/video-mediastreamtrack-stats.html |
| |
| Exposing libwebrtc stats through WebRTC stats API, gathered for data channel and media stream tracks. |
| |
| * Modules/mediastream/RTCStatsReport.h: |
| (WebCore::RTCStatsReport::MediaStreamTrackStats::MediaStreamTrackStats): |
| (WebCore::RTCStatsReport::DataChannelStats::DataChannelStats): |
| * Modules/mediastream/RTCStatsReport.idl: |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::fillRTCMediaStreamTrackStats): |
| (WebCore::fillRTCDataChannelStats): |
| (WebCore::LibWebRTCMediaEndpoint::StatsCollector::OnStatsDelivered): |
| |
| 2017-03-24 Youenn Fablet <youenn@apple.com> |
| |
| Fix framesEncoded/framesDecoded RTC stats |
| https://bugs.webkit.org/show_bug.cgi?id=170024 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: webrtc/video-stats.html |
| |
| Adding access to these fields now that they are available. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::fillInboundRTPStreamStats): |
| (WebCore::fillOutboundRTPStreamStats): |
| |
| 2017-03-24 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix GTK+ test /webkit2/WebKitWebView/default-menu after r214244. |
| |
| Fix mnemonic string of contextMenuItemTagOpenAudioInNewWindow() that I copy pasted from |
| contextMenuItemTagOpenVideoInNewWindow(). |
| |
| * platform/LocalizedStrings.cpp: |
| (WebCore::contextMenuItemTagOpenAudioInNewWindow): |
| |
| 2017-03-24 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GStreamer] MediaPlayerPrivateGStreamerOwr shouldn't be the default engine |
| https://bugs.webkit.org/show_bug.cgi?id=170049 |
| |
| Reviewed by Žan Doberšek. |
| |
| This is causing several media tests to fail after r214338. When trying to load something like this: |
| |
| http://127.0.0.1:8000/media/resources/serve-video.php?name=../../../../media/content/silence.wav&type=audio/wav&content-length=no&icy-data=yes |
| |
| since r214338, the content type is known and inferred from the extension in this case, what ends up calling |
| nextMediaEngine() in MediaPlayer::loadWithNextMediaEngine. That returns the first registered media engine, that |
| is Owr that doesn't know how to load that and fails. |
| |
| Fixes: http/tests/media/media-play-stream-chunked-icy.html |
| http/tests/media/media-seeking-no-ranges-server.html |
| http/tests/media/video-auth.html |
| http/tests/media/video-play-stall-before-meta-data.html |
| http/tests/security/contentSecurityPolicy/audio-redirect-allowed.html |
| http/tests/security/contentSecurityPolicy/audio-redirect-allowed2.html |
| http/tests/security/contentSecurityPolicy/audio-redirect-blocked.html |
| http/tests/security/contentSecurityPolicy/video-redirect-allowed.html |
| http/tests/security/contentSecurityPolicy/video-redirect-allowed2.html |
| http/tests/security/contentSecurityPolicy/video-redirect-blocked.html |
| |
| * platform/graphics/MediaPlayer.cpp: |
| (WebCore::buildMediaEnginesVector): |
| |
| 2017-03-24 Per Arne Vollan <pvollan@apple.com> |
| |
| Text stroke is sometimes clipped on video captions. |
| https://bugs.webkit.org/show_bug.cgi?id=170006 |
| |
| Reviewed by Eric Carlson. |
| |
| Set 'overflow' property to 'visible' on cue element to avoid clipping of text stroke. |
| |
| Updated test media/track/track-css-stroke-cues.html. |
| |
| * html/track/TextTrackCueGeneric.cpp: |
| (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties): |
| * html/track/VTTCue.cpp: |
| (WebCore::VTTCueBox::applyCSSProperties): |
| |
| 2017-03-24 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Add MIMETypeRegistry implementation using xdgmime and remove the GTK+ one |
| https://bugs.webkit.org/show_bug.cgi?id=170001 |
| |
| Reviewed by Michael Catanzaro. |
| |
| The XDG implementation could be used by any port where shared-mime-info is expected to be available. It also |
| improves the current GTK+ implementation that is based on a very small map of mime types and extensions. |
| |
| * CMakeLists.txt: |
| * PlatformGTK.cmake: |
| * platform/xdg/MIMETypeRegistryXdg.cpp: Renamed from Source/WebCore/platform/gtk/MIMETypeRegistryGtk.cpp. |
| (WebCore::MIMETypeRegistry::getMIMETypeForExtension): |
| (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType): |
| |
| 2017-03-23 Jon Lee <jonlee@apple.com> |
| |
| Update createDataChannel on RTCPeerConnection |
| https://bugs.webkit.org/show_bug.cgi?id=170044 |
| |
| Reviewed by Youenn Fablet. |
| |
| * Modules/mediastream/RTCPeerConnection.idl: Change label to USVString. |
| |
| 2017-03-23 Antti Koivisto <antti@apple.com> |
| |
| Revert r213712, caused iPad PLT regression |
| https://bugs.webkit.org/show_bug.cgi?id=170040 |
| |
| Unreviewed. |
| |
| A few subtests have big regressions. |
| |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::pseudoStyleRulesForElement): |
| * dom/Document.cpp: |
| (WebCore::Document::resolveStyle): |
| (WebCore::Document::updateLayoutIgnorePendingStylesheets): |
| (WebCore::Document::shouldScheduleLayout): |
| (WebCore::Document::didRemoveAllPendingStylesheet): |
| * dom/Document.h: |
| (WebCore::Document::didLayoutWithPendingStylesheets): |
| (WebCore::Document::hasNodesWithPlaceholderStyle): |
| (WebCore::Document::setHasNodesWithPlaceholderStyle): |
| (WebCore::Document::hasNodesWithNonFinalStyle): Deleted. |
| (WebCore::Document::setHasNodesWithNonFinalStyle): Deleted. |
| * html/HTMLFrameSetElement.cpp: |
| (WebCore::HTMLFrameSetElement::rendererIsNeeded): |
| * page/FrameView.cpp: |
| (WebCore::FrameView::qualifiesAsVisuallyNonEmpty): |
| (WebCore::FrameView::fireLayoutRelatedMilestonesIfNeeded): |
| * rendering/RenderBlock.cpp: |
| (WebCore::RenderBlock::paintContents): |
| * rendering/RenderLayer.cpp: |
| (WebCore::shouldSuppressPaintingLayer): |
| * rendering/style/RenderStyle.cpp: |
| (WebCore::RenderStyle::changeRequiresRepaint): |
| * rendering/style/RenderStyle.h: |
| (WebCore::RenderStyle::isPlaceholderStyle): |
| (WebCore::RenderStyle::setIsPlaceholderStyle): |
| (WebCore::RenderStyle::isNotFinal): Deleted. |
| (WebCore::RenderStyle::setIsNotFinal): Deleted. |
| * rendering/style/StyleRareNonInheritedData.cpp: |
| (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): |
| (WebCore::StyleRareNonInheritedData::operator==): |
| * rendering/style/StyleRareNonInheritedData.h: |
| * style/StyleScope.cpp: |
| (WebCore::Style::Scope::analyzeStyleSheetChange): |
| (WebCore::Style::Scope::updateActiveStyleSheets): |
| * style/StyleTreeResolver.cpp: |
| (WebCore::Style::makePlaceholderStyle): |
| (WebCore::Style::TreeResolver::styleForElement): |
| (WebCore::Style::TreeResolver::resolveElement): |
| |
| 2017-03-23 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Dragging on a large image should not revert to a file icon if data interaction is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=170018 |
| <rdar://problem/31184508> |
| |
| Reviewed by Tim Horton. |
| |
| If data interaction is enabled, don't fall back to showing a file icon when initiating a drag on an image element. |
| |
| New API tests: DataInteractionTests.LargeImageToTargetDiv |
| DataInteractionTests.AttachmentElementItemProviders |
| |
| * page/DragController.cpp: |
| (WebCore::DragController::doImageDrag): |
| (WebCore::DragController::shouldUseCachedImageForDragImage): |
| * page/DragController.h: |
| |
| 2017-03-23 Youenn Fablet <youenn@apple.com> |
| |
| Rename RTCIceCandidateEvent to RTCPeerConnectionIceEvent |
| https://bugs.webkit.org/show_bug.cgi?id=169981 |
| |
| Reviewed by Eric Carlson. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * Modules/mediastream/MediaEndpointPeerConnection.cpp: |
| * Modules/mediastream/PeerConnectionBackend.cpp: |
| (WebCore::PeerConnectionBackend::fireICECandidateEvent): |
| (WebCore::PeerConnectionBackend::doneGatheringCandidates): |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| * Modules/mediastream/RTCPeerConnectionIceEvent.cpp: Renamed from Source/WebCore/Modules/mediastream/RTCIceCandidateEvent.cpp. |
| (WebCore::RTCPeerConnectionIceEvent::create): |
| (WebCore::RTCPeerConnectionIceEvent::RTCPeerConnectionIceEvent): |
| (WebCore::RTCPeerConnectionIceEvent::~RTCPeerConnectionIceEvent): |
| (WebCore::RTCPeerConnectionIceEvent::candidate): |
| (WebCore::RTCPeerConnectionIceEvent::eventInterface): |
| * Modules/mediastream/RTCPeerConnectionIceEvent.h: Renamed from Source/WebCore/Modules/mediastream/RTCIceCandidateEvent.h. |
| * Modules/mediastream/RTCPeerConnectionIceEvent.idl: Renamed from Source/WebCore/Modules/mediastream/RTCIceCandidateEvent.idl. |
| * WebCore.xcodeproj/project.pbxproj: |
| * dom/EventNames.in: |
| |
| 2017-03-23 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| window.crypto.getRandomValues() uses the insecure RC4 RNG |
| https://bugs.webkit.org/show_bug.cgi?id=169623 |
| |
| Reviewed by Alex Christensen. |
| |
| * PlatformMac.cmake: |
| * WebCore.xcodeproj/project.pbxproj: |
| * crypto/CryptoKey.cpp: |
| (WebCore::CryptoKey::randomData): Use this on Mac now. |
| * crypto/mac/CryptoKeyMac.cpp: Removed. |
| * page/Crypto.cpp: |
| (WebCore::Crypto::getRandomValues): Rollout r214188. |
| |
| 2017-03-23 Chris Dumez <cdumez@apple.com> |
| |
| SVG animations are not paused when their <svg> element is removed from the document |
| https://bugs.webkit.org/show_bug.cgi?id=170030 |
| <rdar://problem/31230252> |
| |
| Reviewed by Dean Jackson. |
| |
| SVG animations were not paused when their <svg> element was removed from the document. |
| This patch fixes the issue. |
| |
| Test: svg/animations/animations-paused-when-removed-from-document.html |
| |
| * svg/SVGSVGElement.cpp: |
| (WebCore::SVGSVGElement::insertedInto): |
| (WebCore::SVGSVGElement::removedFrom): |
| |
| 2017-03-22 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| font shorthand should accept variation values |
| https://bugs.webkit.org/show_bug.cgi?id=168998 |
| |
| Reviewed by Simon Fraser. |
| |
| The CSS Fonts 4 spec has stabilized as to which variation values are allowed in |
| the font shorthand property. Weights are allowed because a 0 weight is considered |
| as a parse error, so there is no conflict with a unitless font-size of 0. |
| font-style accepts angles, so there is no conflict there. However, font-stretch |
| accepts percentages, which are also accepted by font-size, which means the newly |
| extended grammar for font-stretch can't be accepted in the shorthand. |
| |
| Tests: fast/text/font-style-parse.html |
| fast/text/font-weight-parse.html |
| |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::consumeFontWeight): |
| (WebCore::consumeFontStyle): |
| (WebCore::CSSPropertyParser::consumeFont): |
| (WebCore::consumeFontWeightCSS21): Deleted. |
| * css/parser/CSSPropertyParserHelpers.cpp: |
| (WebCore::CSSPropertyParserHelpers::consumeFontWeightNumber): |
| * css/parser/CSSPropertyParserHelpers.h: |
| |
| 2017-03-23 Chris Dumez <cdumez@apple.com> |
| |
| SVG animations are not paused when inserted into a hidden page |
| https://bugs.webkit.org/show_bug.cgi?id=170026 |
| <rdar://problem/31228704> |
| |
| Reviewed by Andreas Kling. |
| |
| SVG animations were not paused when inserted into a hidden page. We would pause |
| animations in a page when the page becomes hidden. However, new animations |
| inserted in the page after this point would start, despite the page being |
| hidden. |
| |
| Tests: |
| - svg/animations/animations-paused-when-inserted-in-hidden-document.html |
| - svg/animations/animations-paused-when-inserted-in-hidden-document2.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::accessSVGExtensions): |
| * svg/SVGDocumentExtensions.cpp: |
| (WebCore::SVGDocumentExtensions::SVGDocumentExtensions): |
| (WebCore::SVGDocumentExtensions::addTimeContainer): |
| (WebCore::reportMessage): |
| * svg/SVGDocumentExtensions.h: |
| * testing/Internals.cpp: |
| (WebCore::Internals::areSVGAnimationsPaused): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| == Rolled over to ChangeLog-2017-03-23 == |