haikuwebkit/Source/WebCore/style/RuleData.h

102 lines
3.6 KiB
C
Raw Permalink Normal View History

Move RuleData to a file of its own https://bugs.webkit.org/show_bug.cgi?id=204351 Reviewed by Anders Carlsson. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * style/RuleData.cpp: Added. (WebCore::Style::computeMatchBasedOnRuleHash): (WebCore::Style::selectorCanMatchPseudoElement): (WebCore::Style::isCommonAttributeSelectorAttribute): (WebCore::Style::computeContainsUncommonAttributeSelector): (WebCore::Style::determinePropertyWhitelistType): (WebCore::Style::RuleData::RuleData): * style/RuleData.h: Added. (WebCore::Style::RuleData::position const): (WebCore::Style::RuleData::rule const): (WebCore::Style::RuleData::selector const): (WebCore::Style::RuleData::selectorIndex const): (WebCore::Style::RuleData::selectorListIndex const): (WebCore::Style::RuleData::canMatchPseudoElement const): (WebCore::Style::RuleData::matchBasedOnRuleHash const): (WebCore::Style::RuleData::containsUncommonAttributeSelector const): (WebCore::Style::RuleData::linkMatchType const): (WebCore::Style::RuleData::propertyWhitelistType const): (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): (WebCore::Style::RuleData::disableSelectorFiltering): * style/RuleSet.cpp: (WebCore::Style::computeMatchBasedOnRuleHash): Deleted. (WebCore::Style::selectorCanMatchPseudoElement): Deleted. (WebCore::Style::isCommonAttributeSelectorAttribute): Deleted. (WebCore::Style::computeContainsUncommonAttributeSelector): Deleted. (WebCore::Style::determinePropertyWhitelistType): Deleted. (WebCore::Style::RuleData::RuleData): Deleted. * style/RuleSet.h: (WebCore::Style::RuleData::position const): Deleted. (WebCore::Style::RuleData::rule const): Deleted. (WebCore::Style::RuleData::selector const): Deleted. (WebCore::Style::RuleData::selectorIndex const): Deleted. (WebCore::Style::RuleData::selectorListIndex const): Deleted. (WebCore::Style::RuleData::canMatchPseudoElement const): Deleted. (WebCore::Style::RuleData::matchBasedOnRuleHash const): Deleted. (WebCore::Style::RuleData::containsUncommonAttributeSelector const): Deleted. (WebCore::Style::RuleData::linkMatchType const): Deleted. (WebCore::Style::RuleData::propertyWhitelistType const): Deleted. (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): Deleted. (WebCore::Style::RuleData::disableSelectorFiltering): Deleted. Canonical link: https://commits.webkit.org/217623@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-19 16:10:40 +00:00
/*
* Copyright (C) 1999 Lars Knoll (knoll@kde.org)
* Copyright (C) 2003-2019 Apple Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*
*/
#pragma once
#include "SelectorFilter.h"
#include "StyleRule.h"
namespace WebCore {
namespace Style {
Replace instances of whitelist in WebCore with allowlist https://bugs.webkit.org/show_bug.cgi?id=213068 Reviewed by Tim Horton. Source/WebCore: * Modules/webdatabase/DatabaseAuthorizer.cpp: (WebCore::DatabaseAuthorizer::DatabaseAuthorizer): (WebCore::DatabaseAuthorizer::addAllowedFunctions): (WebCore::DatabaseAuthorizer::allowFunction): (WebCore::DatabaseAuthorizer::addWhitelistedFunctions): Deleted. * Modules/webdatabase/DatabaseAuthorizer.h: * dom/ExtensionStyleSheets.cpp: (WebCore::ExtensionStyleSheets::updateInjectedStyleSheetCache const): * loader/CrossOriginAccessControl.cpp: (WebCore::isOnAccessControlSimpleRequestMethodAllowlist): (WebCore::isSimpleCrossOriginAccessRequest): (WebCore::isOnAccessControlSimpleRequestMethodWhitelist): Deleted. * loader/CrossOriginAccessControl.h: * loader/CrossOriginPreflightResultCache.cpp: (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod const): * loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::setOnlineAllowlist): (WebCore::ApplicationCache::isURLInOnlineAllowlist): (WebCore::ApplicationCache::setOnlineWhitelist): Deleted. (WebCore::ApplicationCache::isURLInOnlineWhitelist): Deleted. * loader/appcache/ApplicationCache.h: (WebCore::ApplicationCache::onlineAllowlist const): (WebCore::ApplicationCache::onlineWhitelist const): Deleted. * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::didFinishLoadingManifest): * loader/appcache/ApplicationCacheHost.cpp: (WebCore::ApplicationCacheHost::shouldLoadResourceFromApplicationCache): (WebCore::ApplicationCacheHost::getApplicationCacheFallbackResource): * loader/appcache/ApplicationCacheStorage.cpp: (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL): (WebCore::ApplicationCacheStorage::openDatabase): (WebCore::ApplicationCacheStorage::store): (WebCore::ApplicationCacheStorage::loadCache): * loader/appcache/ManifestParser.cpp: (WebCore::parseManifest): * loader/appcache/ManifestParser.h: * page/Frame.cpp: (WebCore::Frame::injectUserScriptImmediately): * page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::canRequest const): (WebCore::SecurityOrigin::canDisplay const): * page/SecurityPolicy.cpp: (WebCore::SecurityPolicy::isAccessAllowed): (WebCore::SecurityPolicy::addOriginAccessAllowlistEntry): (WebCore::SecurityPolicy::removeOriginAccessAllowlistEntry): (WebCore::SecurityPolicy::resetOriginAccessAllowlists): (WebCore::SecurityPolicy::isAccessWhiteListed): Deleted. (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry): Deleted. (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry): Deleted. (WebCore::SecurityPolicy::resetOriginAccessWhitelists): Deleted. * page/SecurityPolicy.h: * page/UserContentURLPattern.cpp: (WebCore::UserContentURLPattern::matchesPatterns): * page/UserContentURLPattern.h: * page/UserScript.h: (WebCore::UserScript::UserScript): (WebCore::UserScript::allowlist const): (WebCore::UserScript::encode const): (WebCore::UserScript::decode): (WebCore::UserScript::whitelist const): Deleted. * page/UserStyleSheet.h: (WebCore::UserStyleSheet::UserStyleSheet): (WebCore::UserStyleSheet::allowlist const): (WebCore::UserStyleSheet::whitelist const): Deleted. * platform/graphics/FontCache.h: * platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::fontAllowlist): (WebCore::FontCache::setFontAllowlist): (WebCore::platformFontLookupWithFamily): (WebCore::fontWhitelist): Deleted. (WebCore::FontCache::setFontWhitelist): Deleted. * platform/network/HTTPParsers.cpp: (WebCore::isValidAcceptHeaderValue): * rendering/FloatingObjects.h: * style/ElementRuleCollector.cpp: (WebCore::Style::ElementRuleCollector::transferMatchedRules): * style/ElementRuleCollector.h: * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::addMatch): * style/RuleData.cpp: (WebCore::Style::determinePropertyAllowlistType): (WebCore::Style::RuleData::RuleData): (WebCore::Style::determinePropertyWhitelistType): Deleted. * style/RuleData.h: (WebCore::Style::RuleData::propertyAllowlistType const): (WebCore::Style::RuleData::propertyWhitelistType const): Deleted. Source/WebKit: * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::addOriginAccessWhitelistEntry): (WebKit::NetworkConnectionToWebProcess::removeOriginAccessWhitelistEntry): (WebKit::NetworkConnectionToWebProcess::resetOriginAccessWhitelists): * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder<UserStyleSheet>::encode): (IPC::ArgumentCoder<UserStyleSheet>::decode): * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::addOriginAccessWhitelistEntry): (WebKit::InjectedBundle::removeOriginAccessWhitelistEntry): (WebKit::InjectedBundle::resetOriginAccessWhitelists): * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): Source/WebKitLegacy/mac: * WebView/WebView.mm: (+[WebView _addOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]): (+[WebView _removeOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]): (+[WebView _resetOriginAccessWhitelists]): (+[WebView _setFontWhitelist:]): Canonical link: https://commits.webkit.org/225877@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262922 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-06-11 20:47:21 +00:00
enum PropertyAllowlistType {
PropertyAllowlistNone = 0,
PropertyAllowlistMarker,
Remove ENABLE_VIDEO_TRACK ifdef guards https://bugs.webkit.org/show_bug.cgi?id=212568 Reviewed by Youenn Fablet. .: VIDEO_TRACK has been enabled by default on all ports for a long time. As the spec is stable, the feature can unconditionally be enabled and is now guarded under ENABLE(VIDEO). * Source/cmake/OptionsFTW.cmake: * Source/cmake/OptionsMac.cmake: * Source/cmake/OptionsWin.cmake: * Source/cmake/WebKitFeatures.cmake: * Source/cmake/tools/vsprops/FeatureDefines.props: * Source/cmake/tools/vsprops/FeatureDefinesCairo.props: Source/JavaScriptCore: * Configurations/FeatureDefines.xcconfig: Remove ENABLE_VIDEO_TRACK, which is now enabled by default under the ENABLE_VIDEO guard. Source/WebCore: * CMakeLists.txt: * Configurations/FeatureDefines.xcconfig: * Modules/mediacontrols/MediaControlsHost.cpp: * Modules/mediasource/AudioTrackMediaSource.h: * Modules/mediasource/AudioTrackMediaSource.idl: * Modules/mediasource/SourceBuffer.h: * Modules/mediasource/SourceBuffer.idl: * Modules/mediasource/TextTrackMediaSource.h: * Modules/mediasource/TextTrackMediaSource.idl: * Modules/mediasource/VideoTrackMediaSource.h: * Modules/mediasource/VideoTrackMediaSource.idl: * Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp: (WebCore::HTMLVideoElementPictureInPicture::requestPictureInPicture): * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSAudioTrackCustom.cpp: * bindings/js/JSAudioTrackListCustom.cpp: * bindings/js/JSTextTrackCueCustom.cpp: * bindings/js/JSTextTrackCustom.cpp: * bindings/js/JSTextTrackListCustom.cpp: * bindings/js/JSTrackCustom.cpp: * bindings/js/JSTrackCustom.h: * bindings/js/JSVideoTrackCustom.cpp: * bindings/js/JSVideoTrackListCustom.cpp: * css/CSSSelector.cpp: (WebCore::CSSSelector::pseudoId): (WebCore::CSSSelector::selectorText const): * css/CSSSelector.h: * css/SelectorChecker.cpp: (WebCore::SelectorChecker::checkOne const): * css/SelectorCheckerTestFunctions.h: (WebCore::matchesLangPseudoClass): * css/SelectorPseudoClassAndCompatibilityElementMap.in: * css/SelectorPseudoElementTypeMap.in: * css/parser/CSSParserSelector.h: (WebCore::CSSParserSelector::needsImplicitShadowCombinatorForMatching const): (WebCore::CSSParserSelector::isPseudoElementCueFunction const): * css/parser/CSSSelectorParser.cpp: (WebCore::CSSSelectorParser::consumePseudo): * cssjit/SelectorCompiler.cpp: (WebCore::SelectorCompiler::addPseudoClassType): * dom/Document.cpp: * dom/Document.h: * dom/EventNames.in: * dom/EventTargetFactory.in: * dom/Node.h: * history/BackForwardCache.cpp: * history/BackForwardCache.h: * history/CachedPage.cpp: (WebCore::CachedPage::restore): (WebCore::CachedPage::clear): * history/CachedPage.h: * html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::as const): * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::HTMLMediaElement): (WebCore::HTMLMediaElement::~HTMLMediaElement): (WebCore::HTMLMediaElement::registerWithDocument): (WebCore::HTMLMediaElement::unregisterWithDocument): (WebCore::HTMLMediaElement::finishParsingChildren): (WebCore::HTMLMediaElement::prepareForLoad): (WebCore::HTMLMediaElement::selectMediaResource): (WebCore::HTMLMediaElement::canTransitionFromAutoplayToPlay const): (WebCore::HTMLMediaElement::setReadyState): (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): (WebCore::HTMLMediaElement::playInternal): (WebCore::HTMLMediaElement::setVolume): (WebCore::HTMLMediaElement::playbackProgressTimerFired): (WebCore::HTMLMediaElement::configureTextTracks): (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): (WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged): (WebCore::HTMLMediaElement::userCancelledLoad): (WebCore::HTMLMediaElement::clearMediaPlayer): (WebCore::HTMLMediaElement::syncTextTrackBounds): (WebCore::HTMLMediaElement::setVideoFullscreenStandby): (WebCore::HTMLMediaElement::setVideoFullscreenLayer): (WebCore::HTMLMediaElement::hasClosedCaptions const): (WebCore::HTMLMediaElement::setClosedCaptionsVisible): (WebCore::HTMLMediaElement::createMediaPlayer): (WebCore::HTMLMediaElement::bufferingPolicy const): * html/HTMLMediaElement.h: * html/HTMLMediaElement.idl: * html/HTMLTagNames.in: * html/HTMLTrackElement.cpp: * html/HTMLTrackElement.h: * html/HTMLTrackElement.idl: * html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::texImageSourceHelper): (WebCore::WebGLRenderingContextBase::validateTexFuncParameters): * html/shadow/MediaControlTextTrackContainerElement.cpp: * html/shadow/MediaControlTextTrackContainerElement.h: * html/track/AudioTrack.cpp: * html/track/AudioTrack.h: * html/track/AudioTrack.idl: * html/track/AudioTrackList.cpp: * html/track/AudioTrackList.h: * html/track/AudioTrackList.idl: * html/track/DataCue.cpp: * html/track/DataCue.h: * html/track/DataCue.idl: * html/track/InbandDataTextTrack.cpp: * html/track/InbandDataTextTrack.h: * html/track/InbandGenericTextTrack.cpp: * html/track/InbandGenericTextTrack.h: * html/track/InbandTextTrack.cpp: * html/track/InbandTextTrack.h: * html/track/InbandWebVTTTextTrack.cpp: * html/track/InbandWebVTTTextTrack.h: * html/track/LoadableTextTrack.cpp: * html/track/LoadableTextTrack.h: * html/track/TextTrack.cpp: * html/track/TextTrack.h: * html/track/TextTrack.idl: * html/track/TextTrackCue.cpp: * html/track/TextTrackCue.h: * html/track/TextTrackCue.idl: * html/track/TextTrackCueGeneric.cpp: * html/track/TextTrackCueGeneric.h: * html/track/TextTrackCueGeneric.idl: * html/track/TextTrackCueList.cpp: * html/track/TextTrackCueList.h: * html/track/TextTrackCueList.idl: * html/track/TextTrackList.cpp: * html/track/TextTrackList.h: * html/track/TextTrackList.idl: * html/track/TrackBase.cpp: * html/track/TrackBase.h: * html/track/TrackEvent.cpp: * html/track/TrackEvent.h: * html/track/TrackEvent.idl: * html/track/TrackListBase.cpp: * html/track/TrackListBase.h: * html/track/VTTCue.cpp: * html/track/VTTCue.h: * html/track/VTTCue.idl: * html/track/VTTRegion.cpp: * html/track/VTTRegion.h: * html/track/VTTRegion.idl: * html/track/VTTRegionList.cpp: * html/track/VTTRegionList.h: * html/track/VTTRegionList.idl: * html/track/VideoTrack.cpp: * html/track/VideoTrack.h: * html/track/VideoTrack.idl: * html/track/VideoTrackList.cpp: * html/track/VideoTrackList.h: * html/track/VideoTrackList.idl: * html/track/WebVTTElement.cpp: * html/track/WebVTTElement.h: * html/track/WebVTTParser.cpp: * html/track/WebVTTParser.h: * html/track/WebVTTToken.h: * html/track/WebVTTTokenizer.cpp: * html/track/WebVTTTokenizer.h: * loader/LinkLoader.cpp: (WebCore::LinkLoader::resourceTypeFromAsAttribute): (WebCore::createLinkPreloadResourceClient): (WebCore::LinkLoader::isSupportedType): * loader/ResourceLoadInfo.cpp: (WebCore::ContentExtensions::toResourceType): * loader/SubresourceLoader.cpp: (WebCore::logResourceLoaded): * loader/TextTrackLoader.cpp: * loader/TextTrackLoader.h: * loader/cache/CachedResource.cpp: (WebCore::CachedResource::defaultPriorityForResourceType): * loader/cache/CachedResource.h: * loader/cache/CachedResourceLoader.cpp: (WebCore::createResource): (WebCore::contentTypeFromResourceType): (WebCore::CachedResourceLoader::checkInsecureContent const): (WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const): (WebCore::destinationForType): * loader/cache/CachedResourceLoader.h: * loader/cache/CachedTextTrack.cpp: * loader/cache/CachedTextTrack.h: * page/CaptionUserPreferences.cpp: * page/CaptionUserPreferences.h: * page/CaptionUserPreferencesMediaAF.cpp: * page/CaptionUserPreferencesMediaAF.h: * page/Page.cpp: (WebCore::Page::setPageScaleFactor): (WebCore::Page::setUserInterfaceLayoutDirection): (WebCore::Page::doAfterUpdateRendering): (WebCore::Page::forEachMediaElement): * page/Page.h: * page/PageGroup.cpp: * page/PageGroup.h: * page/Settings.yaml: * platform/LocalizedStrings.cpp: * platform/LocalizedStrings.h: * platform/MIMETypeRegistry.cpp: (WebCore::MIMETypeRegistry::isSupportedImageVideoOrSVGMIMEType): * platform/SerializedPlatformDataCue.cpp: * platform/graphics/AudioTrackPrivate.h: * platform/graphics/ImageDecoder.cpp: (WebCore::ImageDecoder::create): (WebCore::ImageDecoder::supportsMediaType): * platform/graphics/InbandGenericCue.cpp: * platform/graphics/InbandGenericCue.h: * platform/graphics/InbandTextTrackPrivate.h: * platform/graphics/InbandTextTrackPrivateClient.h: * platform/graphics/MediaPlayer.cpp: (WebCore::buildMediaEnginesVector): * platform/graphics/MediaPlayer.h: (WebCore::MediaPlayerClient::textTrackRepresentationBoundsChanged): * platform/graphics/MediaPlayerPrivate.h: (WebCore::MediaPlayerPrivateInterface::tracksChanged): * platform/graphics/TextTrackRepresentation.cpp: * platform/graphics/TextTrackRepresentation.h: * platform/graphics/TrackPrivateBase.cpp: * platform/graphics/TrackPrivateBase.h: * platform/graphics/VideoTrackPrivate.h: * platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h: * platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm: * platform/graphics/avfoundation/AudioTrackPrivateAVF.h: * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h: * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm: * platform/graphics/avfoundation/VideoTrackPrivateAVF.h: * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h: * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm: * platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.cpp: * platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.h: * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp: * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h: * platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h: * platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm: * platform/graphics/cocoa/TextTrackRepresentationCocoa.h: * platform/graphics/cocoa/TextTrackRepresentationCocoa.mm: * platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp: * platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h: * platform/graphics/gstreamer/GStreamerCommon.cpp: (WebCore::initializeGStreamer): * platform/graphics/gstreamer/ImageDecoderGStreamer.cpp: * platform/graphics/gstreamer/ImageDecoderGStreamer.h: * platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h: * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp: * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h: * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer): (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo): (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio): (WebCore::MediaPlayerPrivateGStreamer::newTextSample): (WebCore::MediaPlayerPrivateGStreamer::updateTracks): (WebCore::MediaPlayerPrivateGStreamer::handleMessage): (WebCore::MediaPlayerPrivateGStreamer::purgeInvalidTextTracks): (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: * platform/graphics/gstreamer/TextCombinerGStreamer.cpp: * platform/graphics/gstreamer/TextCombinerGStreamer.h: * platform/graphics/gstreamer/TextSinkGStreamer.cpp: * platform/graphics/gstreamer/TextSinkGStreamer.h: * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp: * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h: * platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp: * platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h: * platform/mac/SerializedPlatformDataCueMac.h: * platform/mac/SerializedPlatformDataCueMac.mm: * platform/mediastream/AudioMediaStreamTrackRenderer.cpp: * platform/mediastream/AudioMediaStreamTrackRenderer.h: * platform/mediastream/AudioTrackPrivateMediaStream.cpp: * platform/mediastream/AudioTrackPrivateMediaStream.h: * platform/mediastream/VideoTrackPrivateMediaStream.h: * platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp: * platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.h: * rendering/RenderVTTCue.cpp: * rendering/RenderVTTCue.h: * style/ElementRuleCollector.cpp: (WebCore::Style::ElementRuleCollector::collectMatchingShadowPseudoElementRules): * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::addMatch): * style/RuleData.cpp: (WebCore::Style::determinePropertyWhitelistType): * style/RuleData.h: * style/RuleSet.cpp: (WebCore::Style::RuleSet::addRule): (WebCore::Style::RuleSet::traverseRuleDatas): (WebCore::Style::RuleSet::hasShadowPseudoElementRules const): (WebCore::Style::RuleSet::shrinkToFit): * style/RuleSet.h: * style/StyleAdjuster.cpp: (WebCore::Style::Adjuster::adjustForSiteSpecificQuirks const): * testing/InternalSettings.cpp: (WebCore::InternalSettings::Backup::Backup): (WebCore::InternalSettings::Backup::restoreTo): (WebCore::InternalSettings::setShouldDisplayTrackKind): (WebCore::InternalSettings::shouldDisplayTrackKind): * testing/InternalSettings.h: * testing/InternalSettings.idl: * testing/Internals.cpp: (WebCore::Internals::resetToConsistentState): (WebCore::Internals::Internals): (WebCore::Internals::userPreferredAudioCharacteristics const): (WebCore::Internals::setUserPreferredAudioCharacteristic): (WebCore::Internals::captionsStyleSheetOverride): (WebCore::Internals::setCaptionsStyleSheetOverride): (WebCore::Internals::setPrimaryAudioTrackLanguageOverride): (WebCore::Internals::setCaptionDisplayMode): (WebCore::Internals::textTrackBCP47Language): (WebCore::Internals::getCurrentMediaControlsStatusForElement): * testing/Internals.h: * testing/Internals.idl: Source/WebCore/PAL: * Configurations/FeatureDefines.xcconfig: Source/WebKit: * Configurations/FeatureDefines.xcconfig: * GPUProcess/GPUConnectionToWebProcess.cpp: (WebKit::GPUConnectionToWebProcess::dispatchMessage): * GPUProcess/GPUConnectionToWebProcess.h: * GPUProcess/media/RemoteMediaPlayerProxy.cpp: (WebKit::RemoteMediaPlayerProxy::textTrackSetMode): (WebKit::RemoteMediaPlayerProxy::notifyTrackModeChanged): * GPUProcess/media/RemoteMediaPlayerProxy.h: * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp: * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h: * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in: * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.cpp: * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.h: * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.messages.in: * GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp: * GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h: * GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in: * GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp: * GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h: * GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.messages.in: * Shared/WebPreferences.yaml: * WebProcess/GPU/GPUProcessConnection.cpp: (WebKit::GPUProcessConnection::dispatchMessage): * WebProcess/GPU/GPUProcessConnection.h: * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::tracksChanged): * WebProcess/GPU/media/MediaPlayerPrivateRemote.h: * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp: (WebKit::RemoteMediaPlayerManager::updatePreferences): * WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp: * WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.h: * WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp: * WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h: * WebProcess/GPU/webrtc/SampleBufferDisplayLayer.messages.in: * WebProcess/GPU/webrtc/SampleBufferDisplayLayerManager.cpp: * WebProcess/GPU/webrtc/SampleBufferDisplayLayerManager.h: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): * WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::maximumBufferingTime): Source/WebKitLegacy/mac: * Configurations/FeatureDefines.xcconfig: * WebView/WebPreferences.mm: (+[WebPreferences initialize]): * WebView/WebView.mm: (-[WebView _preferencesChanged:]): Source/WebKitLegacy/win: * WebPreferences.cpp: (WebPreferences::shouldDisplaySubtitles): (WebPreferences::setShouldDisplaySubtitles): (WebPreferences::shouldDisplayCaptions): (WebPreferences::setShouldDisplayCaptions): (WebPreferences::shouldDisplayTextDescriptions): (WebPreferences::setShouldDisplayTextDescriptions): * WebView.cpp: (WebView::notifyPreferencesChanged): Source/WTF: * wtf/PlatformEnable.h: Remove ENABLE_VIDEO_TRACK, which is now enabled by default under the ENABLE_VIDEO guard. * wtf/PlatformEnableCocoa.h: Ditto. Tools: * Scripts/webkitperl/FeatureList.pm: * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Canonical link: https://commits.webkit.org/225692@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262695 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-06-07 09:55:32 +00:00
#if ENABLE(VIDEO)
Replace instances of whitelist in WebCore with allowlist https://bugs.webkit.org/show_bug.cgi?id=213068 Reviewed by Tim Horton. Source/WebCore: * Modules/webdatabase/DatabaseAuthorizer.cpp: (WebCore::DatabaseAuthorizer::DatabaseAuthorizer): (WebCore::DatabaseAuthorizer::addAllowedFunctions): (WebCore::DatabaseAuthorizer::allowFunction): (WebCore::DatabaseAuthorizer::addWhitelistedFunctions): Deleted. * Modules/webdatabase/DatabaseAuthorizer.h: * dom/ExtensionStyleSheets.cpp: (WebCore::ExtensionStyleSheets::updateInjectedStyleSheetCache const): * loader/CrossOriginAccessControl.cpp: (WebCore::isOnAccessControlSimpleRequestMethodAllowlist): (WebCore::isSimpleCrossOriginAccessRequest): (WebCore::isOnAccessControlSimpleRequestMethodWhitelist): Deleted. * loader/CrossOriginAccessControl.h: * loader/CrossOriginPreflightResultCache.cpp: (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod const): * loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::setOnlineAllowlist): (WebCore::ApplicationCache::isURLInOnlineAllowlist): (WebCore::ApplicationCache::setOnlineWhitelist): Deleted. (WebCore::ApplicationCache::isURLInOnlineWhitelist): Deleted. * loader/appcache/ApplicationCache.h: (WebCore::ApplicationCache::onlineAllowlist const): (WebCore::ApplicationCache::onlineWhitelist const): Deleted. * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::didFinishLoadingManifest): * loader/appcache/ApplicationCacheHost.cpp: (WebCore::ApplicationCacheHost::shouldLoadResourceFromApplicationCache): (WebCore::ApplicationCacheHost::getApplicationCacheFallbackResource): * loader/appcache/ApplicationCacheStorage.cpp: (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL): (WebCore::ApplicationCacheStorage::openDatabase): (WebCore::ApplicationCacheStorage::store): (WebCore::ApplicationCacheStorage::loadCache): * loader/appcache/ManifestParser.cpp: (WebCore::parseManifest): * loader/appcache/ManifestParser.h: * page/Frame.cpp: (WebCore::Frame::injectUserScriptImmediately): * page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::canRequest const): (WebCore::SecurityOrigin::canDisplay const): * page/SecurityPolicy.cpp: (WebCore::SecurityPolicy::isAccessAllowed): (WebCore::SecurityPolicy::addOriginAccessAllowlistEntry): (WebCore::SecurityPolicy::removeOriginAccessAllowlistEntry): (WebCore::SecurityPolicy::resetOriginAccessAllowlists): (WebCore::SecurityPolicy::isAccessWhiteListed): Deleted. (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry): Deleted. (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry): Deleted. (WebCore::SecurityPolicy::resetOriginAccessWhitelists): Deleted. * page/SecurityPolicy.h: * page/UserContentURLPattern.cpp: (WebCore::UserContentURLPattern::matchesPatterns): * page/UserContentURLPattern.h: * page/UserScript.h: (WebCore::UserScript::UserScript): (WebCore::UserScript::allowlist const): (WebCore::UserScript::encode const): (WebCore::UserScript::decode): (WebCore::UserScript::whitelist const): Deleted. * page/UserStyleSheet.h: (WebCore::UserStyleSheet::UserStyleSheet): (WebCore::UserStyleSheet::allowlist const): (WebCore::UserStyleSheet::whitelist const): Deleted. * platform/graphics/FontCache.h: * platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::fontAllowlist): (WebCore::FontCache::setFontAllowlist): (WebCore::platformFontLookupWithFamily): (WebCore::fontWhitelist): Deleted. (WebCore::FontCache::setFontWhitelist): Deleted. * platform/network/HTTPParsers.cpp: (WebCore::isValidAcceptHeaderValue): * rendering/FloatingObjects.h: * style/ElementRuleCollector.cpp: (WebCore::Style::ElementRuleCollector::transferMatchedRules): * style/ElementRuleCollector.h: * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::addMatch): * style/RuleData.cpp: (WebCore::Style::determinePropertyAllowlistType): (WebCore::Style::RuleData::RuleData): (WebCore::Style::determinePropertyWhitelistType): Deleted. * style/RuleData.h: (WebCore::Style::RuleData::propertyAllowlistType const): (WebCore::Style::RuleData::propertyWhitelistType const): Deleted. Source/WebKit: * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::addOriginAccessWhitelistEntry): (WebKit::NetworkConnectionToWebProcess::removeOriginAccessWhitelistEntry): (WebKit::NetworkConnectionToWebProcess::resetOriginAccessWhitelists): * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder<UserStyleSheet>::encode): (IPC::ArgumentCoder<UserStyleSheet>::decode): * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::addOriginAccessWhitelistEntry): (WebKit::InjectedBundle::removeOriginAccessWhitelistEntry): (WebKit::InjectedBundle::resetOriginAccessWhitelists): * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): Source/WebKitLegacy/mac: * WebView/WebView.mm: (+[WebView _addOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]): (+[WebView _removeOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]): (+[WebView _resetOriginAccessWhitelists]): (+[WebView _setFontWhitelist:]): Canonical link: https://commits.webkit.org/225877@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262922 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-06-11 20:47:21 +00:00
PropertyAllowlistCue
Move RuleData to a file of its own https://bugs.webkit.org/show_bug.cgi?id=204351 Reviewed by Anders Carlsson. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * style/RuleData.cpp: Added. (WebCore::Style::computeMatchBasedOnRuleHash): (WebCore::Style::selectorCanMatchPseudoElement): (WebCore::Style::isCommonAttributeSelectorAttribute): (WebCore::Style::computeContainsUncommonAttributeSelector): (WebCore::Style::determinePropertyWhitelistType): (WebCore::Style::RuleData::RuleData): * style/RuleData.h: Added. (WebCore::Style::RuleData::position const): (WebCore::Style::RuleData::rule const): (WebCore::Style::RuleData::selector const): (WebCore::Style::RuleData::selectorIndex const): (WebCore::Style::RuleData::selectorListIndex const): (WebCore::Style::RuleData::canMatchPseudoElement const): (WebCore::Style::RuleData::matchBasedOnRuleHash const): (WebCore::Style::RuleData::containsUncommonAttributeSelector const): (WebCore::Style::RuleData::linkMatchType const): (WebCore::Style::RuleData::propertyWhitelistType const): (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): (WebCore::Style::RuleData::disableSelectorFiltering): * style/RuleSet.cpp: (WebCore::Style::computeMatchBasedOnRuleHash): Deleted. (WebCore::Style::selectorCanMatchPseudoElement): Deleted. (WebCore::Style::isCommonAttributeSelectorAttribute): Deleted. (WebCore::Style::computeContainsUncommonAttributeSelector): Deleted. (WebCore::Style::determinePropertyWhitelistType): Deleted. (WebCore::Style::RuleData::RuleData): Deleted. * style/RuleSet.h: (WebCore::Style::RuleData::position const): Deleted. (WebCore::Style::RuleData::rule const): Deleted. (WebCore::Style::RuleData::selector const): Deleted. (WebCore::Style::RuleData::selectorIndex const): Deleted. (WebCore::Style::RuleData::selectorListIndex const): Deleted. (WebCore::Style::RuleData::canMatchPseudoElement const): Deleted. (WebCore::Style::RuleData::matchBasedOnRuleHash const): Deleted. (WebCore::Style::RuleData::containsUncommonAttributeSelector const): Deleted. (WebCore::Style::RuleData::linkMatchType const): Deleted. (WebCore::Style::RuleData::propertyWhitelistType const): Deleted. (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): Deleted. (WebCore::Style::RuleData::disableSelectorFiltering): Deleted. Canonical link: https://commits.webkit.org/217623@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-19 16:10:40 +00:00
#endif
};
enum class MatchBasedOnRuleHash : unsigned {
None,
Universal,
ClassA,
ClassB,
ClassC
};
Move RuleData to a file of its own https://bugs.webkit.org/show_bug.cgi?id=204351 Reviewed by Anders Carlsson. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * style/RuleData.cpp: Added. (WebCore::Style::computeMatchBasedOnRuleHash): (WebCore::Style::selectorCanMatchPseudoElement): (WebCore::Style::isCommonAttributeSelectorAttribute): (WebCore::Style::computeContainsUncommonAttributeSelector): (WebCore::Style::determinePropertyWhitelistType): (WebCore::Style::RuleData::RuleData): * style/RuleData.h: Added. (WebCore::Style::RuleData::position const): (WebCore::Style::RuleData::rule const): (WebCore::Style::RuleData::selector const): (WebCore::Style::RuleData::selectorIndex const): (WebCore::Style::RuleData::selectorListIndex const): (WebCore::Style::RuleData::canMatchPseudoElement const): (WebCore::Style::RuleData::matchBasedOnRuleHash const): (WebCore::Style::RuleData::containsUncommonAttributeSelector const): (WebCore::Style::RuleData::linkMatchType const): (WebCore::Style::RuleData::propertyWhitelistType const): (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): (WebCore::Style::RuleData::disableSelectorFiltering): * style/RuleSet.cpp: (WebCore::Style::computeMatchBasedOnRuleHash): Deleted. (WebCore::Style::selectorCanMatchPseudoElement): Deleted. (WebCore::Style::isCommonAttributeSelectorAttribute): Deleted. (WebCore::Style::computeContainsUncommonAttributeSelector): Deleted. (WebCore::Style::determinePropertyWhitelistType): Deleted. (WebCore::Style::RuleData::RuleData): Deleted. * style/RuleSet.h: (WebCore::Style::RuleData::position const): Deleted. (WebCore::Style::RuleData::rule const): Deleted. (WebCore::Style::RuleData::selector const): Deleted. (WebCore::Style::RuleData::selectorIndex const): Deleted. (WebCore::Style::RuleData::selectorListIndex const): Deleted. (WebCore::Style::RuleData::canMatchPseudoElement const): Deleted. (WebCore::Style::RuleData::matchBasedOnRuleHash const): Deleted. (WebCore::Style::RuleData::containsUncommonAttributeSelector const): Deleted. (WebCore::Style::RuleData::linkMatchType const): Deleted. (WebCore::Style::RuleData::propertyWhitelistType const): Deleted. (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): Deleted. (WebCore::Style::RuleData::disableSelectorFiltering): Deleted. Canonical link: https://commits.webkit.org/217623@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-19 16:10:40 +00:00
class RuleData {
public:
static const unsigned maximumSelectorComponentCount = 8192;
StyleRule accessor in RuleData should return a const reference https://bugs.webkit.org/show_bug.cgi?id=205655 Reviewed by Zalan Bujtas. It is currently a non-const pointer. This leads to StyleRule being const in many other places too. * css/StyleRule.h: (WebCore::StyleRuleBase::deref const): (WebCore::StyleRuleBase::deref): Deleted. Make deref const, matching RefCounted and allowing RefPtr<const StyleRule> * editing/EditingStyle.cpp: (WebCore::styleFromMatchedRulesForElement): * inspector/agents/InspectorCSSAgent.cpp: (WebCore::InspectorCSSAgent::buildObjectForRule): (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList): * inspector/agents/InspectorCSSAgent.h: * style/ElementRuleCollector.cpp: (WebCore::Style::ElementRuleCollector::matchedRuleList const): (WebCore::Style::ElementRuleCollector::transferMatchedRules): (WebCore::Style::ElementRuleCollector::ruleMatches): (WebCore::Style::ElementRuleCollector::collectMatchingRulesForList): * style/ElementRuleCollector.h: * style/InspectorCSSOMWrappers.cpp: (WebCore::Style::InspectorCSSOMWrappers::getWrapperForRuleInSheets): * style/InspectorCSSOMWrappers.h: * style/RuleData.cpp: (WebCore::Style::RuleData::RuleData): * style/RuleData.h: (WebCore::Style::RuleData::styleRule const): (WebCore::Style::RuleData::compiledSelector const): (WebCore::Style::RuleData::rule const): Deleted. * style/RuleFeature.cpp: (WebCore::Style::RuleFeature::RuleFeature): (WebCore::Style::RuleFeatureSet::collectFeatures): * style/RuleFeature.h: (WebCore::Style::RuleFeature::RuleFeature): Deleted. * style/RuleSet.cpp: (WebCore::Style::RuleSet::addRule): (WebCore::Style::RuleSet::addStyleRule): (WebCore::Style::RuleSet::evaluteDynamicMediaQueryRules): (WebCore::Style::RuleSet::MediaQueryCollector::addRuleIfNeeded): * style/RuleSet.h: * style/StyleResolver.cpp: (WebCore::Style::Resolver::styleRulesForElement): (WebCore::Style::Resolver::pseudoStyleRulesForElement): * style/StyleResolver.h: * style/StyleScopeRuleSets.cpp: (WebCore::Style::makeRuleSet): (WebCore::Style::ensureInvalidationRuleSets): Canonical link: https://commits.webkit.org/218835@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253959 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-12-31 16:15:10 +00:00
RuleData(const StyleRule&, unsigned selectorIndex, unsigned selectorListIndex, unsigned position);
Move RuleData to a file of its own https://bugs.webkit.org/show_bug.cgi?id=204351 Reviewed by Anders Carlsson. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * style/RuleData.cpp: Added. (WebCore::Style::computeMatchBasedOnRuleHash): (WebCore::Style::selectorCanMatchPseudoElement): (WebCore::Style::isCommonAttributeSelectorAttribute): (WebCore::Style::computeContainsUncommonAttributeSelector): (WebCore::Style::determinePropertyWhitelistType): (WebCore::Style::RuleData::RuleData): * style/RuleData.h: Added. (WebCore::Style::RuleData::position const): (WebCore::Style::RuleData::rule const): (WebCore::Style::RuleData::selector const): (WebCore::Style::RuleData::selectorIndex const): (WebCore::Style::RuleData::selectorListIndex const): (WebCore::Style::RuleData::canMatchPseudoElement const): (WebCore::Style::RuleData::matchBasedOnRuleHash const): (WebCore::Style::RuleData::containsUncommonAttributeSelector const): (WebCore::Style::RuleData::linkMatchType const): (WebCore::Style::RuleData::propertyWhitelistType const): (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): (WebCore::Style::RuleData::disableSelectorFiltering): * style/RuleSet.cpp: (WebCore::Style::computeMatchBasedOnRuleHash): Deleted. (WebCore::Style::selectorCanMatchPseudoElement): Deleted. (WebCore::Style::isCommonAttributeSelectorAttribute): Deleted. (WebCore::Style::computeContainsUncommonAttributeSelector): Deleted. (WebCore::Style::determinePropertyWhitelistType): Deleted. (WebCore::Style::RuleData::RuleData): Deleted. * style/RuleSet.h: (WebCore::Style::RuleData::position const): Deleted. (WebCore::Style::RuleData::rule const): Deleted. (WebCore::Style::RuleData::selector const): Deleted. (WebCore::Style::RuleData::selectorIndex const): Deleted. (WebCore::Style::RuleData::selectorListIndex const): Deleted. (WebCore::Style::RuleData::canMatchPseudoElement const): Deleted. (WebCore::Style::RuleData::matchBasedOnRuleHash const): Deleted. (WebCore::Style::RuleData::containsUncommonAttributeSelector const): Deleted. (WebCore::Style::RuleData::linkMatchType const): Deleted. (WebCore::Style::RuleData::propertyWhitelistType const): Deleted. (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): Deleted. (WebCore::Style::RuleData::disableSelectorFiltering): Deleted. Canonical link: https://commits.webkit.org/217623@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-19 16:10:40 +00:00
unsigned position() const { return m_position; }
StyleRule accessor in RuleData should return a const reference https://bugs.webkit.org/show_bug.cgi?id=205655 Reviewed by Zalan Bujtas. It is currently a non-const pointer. This leads to StyleRule being const in many other places too. * css/StyleRule.h: (WebCore::StyleRuleBase::deref const): (WebCore::StyleRuleBase::deref): Deleted. Make deref const, matching RefCounted and allowing RefPtr<const StyleRule> * editing/EditingStyle.cpp: (WebCore::styleFromMatchedRulesForElement): * inspector/agents/InspectorCSSAgent.cpp: (WebCore::InspectorCSSAgent::buildObjectForRule): (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList): * inspector/agents/InspectorCSSAgent.h: * style/ElementRuleCollector.cpp: (WebCore::Style::ElementRuleCollector::matchedRuleList const): (WebCore::Style::ElementRuleCollector::transferMatchedRules): (WebCore::Style::ElementRuleCollector::ruleMatches): (WebCore::Style::ElementRuleCollector::collectMatchingRulesForList): * style/ElementRuleCollector.h: * style/InspectorCSSOMWrappers.cpp: (WebCore::Style::InspectorCSSOMWrappers::getWrapperForRuleInSheets): * style/InspectorCSSOMWrappers.h: * style/RuleData.cpp: (WebCore::Style::RuleData::RuleData): * style/RuleData.h: (WebCore::Style::RuleData::styleRule const): (WebCore::Style::RuleData::compiledSelector const): (WebCore::Style::RuleData::rule const): Deleted. * style/RuleFeature.cpp: (WebCore::Style::RuleFeature::RuleFeature): (WebCore::Style::RuleFeatureSet::collectFeatures): * style/RuleFeature.h: (WebCore::Style::RuleFeature::RuleFeature): Deleted. * style/RuleSet.cpp: (WebCore::Style::RuleSet::addRule): (WebCore::Style::RuleSet::addStyleRule): (WebCore::Style::RuleSet::evaluteDynamicMediaQueryRules): (WebCore::Style::RuleSet::MediaQueryCollector::addRuleIfNeeded): * style/RuleSet.h: * style/StyleResolver.cpp: (WebCore::Style::Resolver::styleRulesForElement): (WebCore::Style::Resolver::pseudoStyleRulesForElement): * style/StyleResolver.h: * style/StyleScopeRuleSets.cpp: (WebCore::Style::makeRuleSet): (WebCore::Style::ensureInvalidationRuleSets): Canonical link: https://commits.webkit.org/218835@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253959 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-12-31 16:15:10 +00:00
const StyleRule& styleRule() const { return *m_styleRule; }
const CSSSelector* selector() const { return m_styleRule->selectorList().selectorAt(m_selectorIndex); }
#if ENABLE(CSS_SELECTOR_JIT)
CompiledSelector& compiledSelector() const { return m_styleRule->compiledSelectorForListIndex(m_selectorListIndex); }
#endif
Move RuleData to a file of its own https://bugs.webkit.org/show_bug.cgi?id=204351 Reviewed by Anders Carlsson. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * style/RuleData.cpp: Added. (WebCore::Style::computeMatchBasedOnRuleHash): (WebCore::Style::selectorCanMatchPseudoElement): (WebCore::Style::isCommonAttributeSelectorAttribute): (WebCore::Style::computeContainsUncommonAttributeSelector): (WebCore::Style::determinePropertyWhitelistType): (WebCore::Style::RuleData::RuleData): * style/RuleData.h: Added. (WebCore::Style::RuleData::position const): (WebCore::Style::RuleData::rule const): (WebCore::Style::RuleData::selector const): (WebCore::Style::RuleData::selectorIndex const): (WebCore::Style::RuleData::selectorListIndex const): (WebCore::Style::RuleData::canMatchPseudoElement const): (WebCore::Style::RuleData::matchBasedOnRuleHash const): (WebCore::Style::RuleData::containsUncommonAttributeSelector const): (WebCore::Style::RuleData::linkMatchType const): (WebCore::Style::RuleData::propertyWhitelistType const): (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): (WebCore::Style::RuleData::disableSelectorFiltering): * style/RuleSet.cpp: (WebCore::Style::computeMatchBasedOnRuleHash): Deleted. (WebCore::Style::selectorCanMatchPseudoElement): Deleted. (WebCore::Style::isCommonAttributeSelectorAttribute): Deleted. (WebCore::Style::computeContainsUncommonAttributeSelector): Deleted. (WebCore::Style::determinePropertyWhitelistType): Deleted. (WebCore::Style::RuleData::RuleData): Deleted. * style/RuleSet.h: (WebCore::Style::RuleData::position const): Deleted. (WebCore::Style::RuleData::rule const): Deleted. (WebCore::Style::RuleData::selector const): Deleted. (WebCore::Style::RuleData::selectorIndex const): Deleted. (WebCore::Style::RuleData::selectorListIndex const): Deleted. (WebCore::Style::RuleData::canMatchPseudoElement const): Deleted. (WebCore::Style::RuleData::matchBasedOnRuleHash const): Deleted. (WebCore::Style::RuleData::containsUncommonAttributeSelector const): Deleted. (WebCore::Style::RuleData::linkMatchType const): Deleted. (WebCore::Style::RuleData::propertyWhitelistType const): Deleted. (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): Deleted. (WebCore::Style::RuleData::disableSelectorFiltering): Deleted. Canonical link: https://commits.webkit.org/217623@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-19 16:10:40 +00:00
unsigned selectorIndex() const { return m_selectorIndex; }
unsigned selectorListIndex() const { return m_selectorListIndex; }
bool canMatchPseudoElement() const { return m_canMatchPseudoElement; }
MatchBasedOnRuleHash matchBasedOnRuleHash() const { return static_cast<MatchBasedOnRuleHash>(m_matchBasedOnRuleHash); }
Move RuleData to a file of its own https://bugs.webkit.org/show_bug.cgi?id=204351 Reviewed by Anders Carlsson. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * style/RuleData.cpp: Added. (WebCore::Style::computeMatchBasedOnRuleHash): (WebCore::Style::selectorCanMatchPseudoElement): (WebCore::Style::isCommonAttributeSelectorAttribute): (WebCore::Style::computeContainsUncommonAttributeSelector): (WebCore::Style::determinePropertyWhitelistType): (WebCore::Style::RuleData::RuleData): * style/RuleData.h: Added. (WebCore::Style::RuleData::position const): (WebCore::Style::RuleData::rule const): (WebCore::Style::RuleData::selector const): (WebCore::Style::RuleData::selectorIndex const): (WebCore::Style::RuleData::selectorListIndex const): (WebCore::Style::RuleData::canMatchPseudoElement const): (WebCore::Style::RuleData::matchBasedOnRuleHash const): (WebCore::Style::RuleData::containsUncommonAttributeSelector const): (WebCore::Style::RuleData::linkMatchType const): (WebCore::Style::RuleData::propertyWhitelistType const): (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): (WebCore::Style::RuleData::disableSelectorFiltering): * style/RuleSet.cpp: (WebCore::Style::computeMatchBasedOnRuleHash): Deleted. (WebCore::Style::selectorCanMatchPseudoElement): Deleted. (WebCore::Style::isCommonAttributeSelectorAttribute): Deleted. (WebCore::Style::computeContainsUncommonAttributeSelector): Deleted. (WebCore::Style::determinePropertyWhitelistType): Deleted. (WebCore::Style::RuleData::RuleData): Deleted. * style/RuleSet.h: (WebCore::Style::RuleData::position const): Deleted. (WebCore::Style::RuleData::rule const): Deleted. (WebCore::Style::RuleData::selector const): Deleted. (WebCore::Style::RuleData::selectorIndex const): Deleted. (WebCore::Style::RuleData::selectorListIndex const): Deleted. (WebCore::Style::RuleData::canMatchPseudoElement const): Deleted. (WebCore::Style::RuleData::matchBasedOnRuleHash const): Deleted. (WebCore::Style::RuleData::containsUncommonAttributeSelector const): Deleted. (WebCore::Style::RuleData::linkMatchType const): Deleted. (WebCore::Style::RuleData::propertyWhitelistType const): Deleted. (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): Deleted. (WebCore::Style::RuleData::disableSelectorFiltering): Deleted. Canonical link: https://commits.webkit.org/217623@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-19 16:10:40 +00:00
bool containsUncommonAttributeSelector() const { return m_containsUncommonAttributeSelector; }
unsigned linkMatchType() const { return m_linkMatchType; }
Replace instances of whitelist in WebCore with allowlist https://bugs.webkit.org/show_bug.cgi?id=213068 Reviewed by Tim Horton. Source/WebCore: * Modules/webdatabase/DatabaseAuthorizer.cpp: (WebCore::DatabaseAuthorizer::DatabaseAuthorizer): (WebCore::DatabaseAuthorizer::addAllowedFunctions): (WebCore::DatabaseAuthorizer::allowFunction): (WebCore::DatabaseAuthorizer::addWhitelistedFunctions): Deleted. * Modules/webdatabase/DatabaseAuthorizer.h: * dom/ExtensionStyleSheets.cpp: (WebCore::ExtensionStyleSheets::updateInjectedStyleSheetCache const): * loader/CrossOriginAccessControl.cpp: (WebCore::isOnAccessControlSimpleRequestMethodAllowlist): (WebCore::isSimpleCrossOriginAccessRequest): (WebCore::isOnAccessControlSimpleRequestMethodWhitelist): Deleted. * loader/CrossOriginAccessControl.h: * loader/CrossOriginPreflightResultCache.cpp: (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod const): * loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::setOnlineAllowlist): (WebCore::ApplicationCache::isURLInOnlineAllowlist): (WebCore::ApplicationCache::setOnlineWhitelist): Deleted. (WebCore::ApplicationCache::isURLInOnlineWhitelist): Deleted. * loader/appcache/ApplicationCache.h: (WebCore::ApplicationCache::onlineAllowlist const): (WebCore::ApplicationCache::onlineWhitelist const): Deleted. * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::didFinishLoadingManifest): * loader/appcache/ApplicationCacheHost.cpp: (WebCore::ApplicationCacheHost::shouldLoadResourceFromApplicationCache): (WebCore::ApplicationCacheHost::getApplicationCacheFallbackResource): * loader/appcache/ApplicationCacheStorage.cpp: (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL): (WebCore::ApplicationCacheStorage::openDatabase): (WebCore::ApplicationCacheStorage::store): (WebCore::ApplicationCacheStorage::loadCache): * loader/appcache/ManifestParser.cpp: (WebCore::parseManifest): * loader/appcache/ManifestParser.h: * page/Frame.cpp: (WebCore::Frame::injectUserScriptImmediately): * page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::canRequest const): (WebCore::SecurityOrigin::canDisplay const): * page/SecurityPolicy.cpp: (WebCore::SecurityPolicy::isAccessAllowed): (WebCore::SecurityPolicy::addOriginAccessAllowlistEntry): (WebCore::SecurityPolicy::removeOriginAccessAllowlistEntry): (WebCore::SecurityPolicy::resetOriginAccessAllowlists): (WebCore::SecurityPolicy::isAccessWhiteListed): Deleted. (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry): Deleted. (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry): Deleted. (WebCore::SecurityPolicy::resetOriginAccessWhitelists): Deleted. * page/SecurityPolicy.h: * page/UserContentURLPattern.cpp: (WebCore::UserContentURLPattern::matchesPatterns): * page/UserContentURLPattern.h: * page/UserScript.h: (WebCore::UserScript::UserScript): (WebCore::UserScript::allowlist const): (WebCore::UserScript::encode const): (WebCore::UserScript::decode): (WebCore::UserScript::whitelist const): Deleted. * page/UserStyleSheet.h: (WebCore::UserStyleSheet::UserStyleSheet): (WebCore::UserStyleSheet::allowlist const): (WebCore::UserStyleSheet::whitelist const): Deleted. * platform/graphics/FontCache.h: * platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::fontAllowlist): (WebCore::FontCache::setFontAllowlist): (WebCore::platformFontLookupWithFamily): (WebCore::fontWhitelist): Deleted. (WebCore::FontCache::setFontWhitelist): Deleted. * platform/network/HTTPParsers.cpp: (WebCore::isValidAcceptHeaderValue): * rendering/FloatingObjects.h: * style/ElementRuleCollector.cpp: (WebCore::Style::ElementRuleCollector::transferMatchedRules): * style/ElementRuleCollector.h: * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::addMatch): * style/RuleData.cpp: (WebCore::Style::determinePropertyAllowlistType): (WebCore::Style::RuleData::RuleData): (WebCore::Style::determinePropertyWhitelistType): Deleted. * style/RuleData.h: (WebCore::Style::RuleData::propertyAllowlistType const): (WebCore::Style::RuleData::propertyWhitelistType const): Deleted. Source/WebKit: * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::addOriginAccessWhitelistEntry): (WebKit::NetworkConnectionToWebProcess::removeOriginAccessWhitelistEntry): (WebKit::NetworkConnectionToWebProcess::resetOriginAccessWhitelists): * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder<UserStyleSheet>::encode): (IPC::ArgumentCoder<UserStyleSheet>::decode): * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::addOriginAccessWhitelistEntry): (WebKit::InjectedBundle::removeOriginAccessWhitelistEntry): (WebKit::InjectedBundle::resetOriginAccessWhitelists): * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): Source/WebKitLegacy/mac: * WebView/WebView.mm: (+[WebView _addOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]): (+[WebView _removeOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]): (+[WebView _resetOriginAccessWhitelists]): (+[WebView _setFontWhitelist:]): Canonical link: https://commits.webkit.org/225877@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262922 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-06-11 20:47:21 +00:00
PropertyAllowlistType propertyAllowlistType() const { return static_cast<PropertyAllowlistType>(m_propertyAllowlistType); }
Resolve dynamic media queries without reconstructing RuleSets https://bugs.webkit.org/show_bug.cgi?id=205264 Reviewed by Zalan Bujtas. Source/WebCore: We currently do a full style resolver reset whenever a media query result changes. This is very inefficient as we need to reconstuct all RuleSets and optimization structures. We also lose related caches and are forced to re-resolve full document style. This may happen frequently, for example when resizing window on a responsive web site. With this patch we construct RuleDatas also for non-matching dynamic media queries and simply mark them disabled. We create a data structure that allows enabling and disabling them efficiently as a response to environment changes (like view resize). This allows us to avoid throwing away anything during common scenarios. Test: fast/media/media-query-dynamic-with-font-face.html * css/MediaQueryEvaluator.cpp: (WebCore::MediaQueryEvaluator::evaluate const): Add a mode where dynamic media queries all evaluate to true and only static properties can cause the query to fail. * css/MediaQueryEvaluator.h: * style/ElementRuleCollector.cpp: (WebCore::Style::ElementRuleCollector::collectMatchingRulesForList): Skip disabled rules during rule collection. * style/RuleData.cpp: (WebCore::Style::RuleData::RuleData): * style/RuleData.h: (WebCore::Style::RuleData::isEnabled const): (WebCore::Style::RuleData::setEnabled): Add a bit. * style/RuleSet.cpp: (WebCore::Style::RuleSet::addRule): Collect positions of rules affected by dynamic media queries. (WebCore::Style::RuleSet::addPageRule): (WebCore::Style::RuleSet::addChildRules): (WebCore::Style::RuleSet::addRulesFromSheet): First check for a special case where we have style resolver mutating rules (like @font-face) inside a media query. In this case we fall back to static resolution. Then collect the rules. Static media queries (print etc) are evaluated right away, dynamic ones are collected by MediaQueryCollector. (WebCore::Style::RuleSet::addStyleRule): (WebCore::Style::RuleSet::traverseRuleDatas): (WebCore::Style::RuleSet::evaluteDynamicMediaQueryRules): Evaluate media queries for changes and flip the enabled state of the rules if needed. (WebCore::Style::RuleSet::MediaQueryCollector::pushAndEvaluate): (WebCore::Style::RuleSet::MediaQueryCollector::pop): (WebCore::Style::RuleSet::MediaQueryCollector::didMutateResolver): (WebCore::Style::RuleSet::MediaQueryCollector::addRulePositionIfNeeded): * style/RuleSet.h: (WebCore::Style::RuleSet::hasViewportDependentMediaQueries const): * style/StyleResolver.cpp: (WebCore::Style::Resolver::hasViewportDependentMediaQueries const): (WebCore::Style::Resolver::evaluateDynamicMediaQueries): (WebCore::Style::Resolver::addMediaQueryDynamicResults): Deleted. (WebCore::Style::Resolver::hasMediaQueriesAffectedByViewportChange const): Deleted. (WebCore::Style::Resolver::hasMediaQueriesAffectedByAccessibilitySettingsChange const): Deleted. (WebCore::Style::Resolver::hasMediaQueriesAffectedByAppearanceChange const): Deleted. Profiling doesn't show any need to handle the cases separately. Replace with single evaluateDynamicMediaQueries path. We can bring type specific paths back easily if needed. * style/StyleResolver.h: (WebCore::Style::Resolver::hasViewportDependentMediaQueries const): Deleted. (WebCore::Style::Resolver::hasAccessibilitySettingsDependentMediaQueries const): Deleted. (WebCore::Style::Resolver::hasAppearanceDependentMediaQueries const): Deleted. * style/StyleScope.cpp: (WebCore::Style::Scope::evaluateMediaQueriesForViewportChange): (WebCore::Style::Scope::evaluateMediaQueriesForAccessibilitySettingsChange): (WebCore::Style::Scope::evaluateMediaQueriesForAppearanceChange): Call into general evaluateDynamicMediaQueries. (WebCore::Style::Scope::evaluateMediaQueries): In normal case we can just invalidate style, not throw everything away. This can be further improved by adding optimization rule sets. * style/StyleScopeRuleSets.cpp: (WebCore::Style::ScopeRuleSets::updateUserAgentMediaQueryStyleIfNeeded const): (WebCore::Style::ScopeRuleSets::initializeUserStyle): (WebCore::Style::ScopeRuleSets::collectRulesFromUserStyleSheets): (WebCore::Style::makeRuleSet): (WebCore::Style::ScopeRuleSets::hasViewportDependentMediaQueries const): (WebCore::Style::ScopeRuleSets::evaluteDynamicMediaQueryRules): (WebCore::Style::ScopeRuleSets::appendAuthorStyleSheets): (WebCore::Style::ensureInvalidationRuleSets): * style/StyleScopeRuleSets.h: LayoutTests: Add a test verifying that @font-face inside @media works in dynamic scenarios. * fast/media/media-query-dynamic-with-font-face-expected.html: Added. * fast/media/media-query-dynamic-with-font-face.html: Added. Canonical link: https://commits.webkit.org/218523@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253616 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-12-17 09:51:54 +00:00
bool isEnabled() const { return m_isEnabled; }
void setEnabled(bool value) { m_isEnabled = value; }
Move RuleData to a file of its own https://bugs.webkit.org/show_bug.cgi?id=204351 Reviewed by Anders Carlsson. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * style/RuleData.cpp: Added. (WebCore::Style::computeMatchBasedOnRuleHash): (WebCore::Style::selectorCanMatchPseudoElement): (WebCore::Style::isCommonAttributeSelectorAttribute): (WebCore::Style::computeContainsUncommonAttributeSelector): (WebCore::Style::determinePropertyWhitelistType): (WebCore::Style::RuleData::RuleData): * style/RuleData.h: Added. (WebCore::Style::RuleData::position const): (WebCore::Style::RuleData::rule const): (WebCore::Style::RuleData::selector const): (WebCore::Style::RuleData::selectorIndex const): (WebCore::Style::RuleData::selectorListIndex const): (WebCore::Style::RuleData::canMatchPseudoElement const): (WebCore::Style::RuleData::matchBasedOnRuleHash const): (WebCore::Style::RuleData::containsUncommonAttributeSelector const): (WebCore::Style::RuleData::linkMatchType const): (WebCore::Style::RuleData::propertyWhitelistType const): (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): (WebCore::Style::RuleData::disableSelectorFiltering): * style/RuleSet.cpp: (WebCore::Style::computeMatchBasedOnRuleHash): Deleted. (WebCore::Style::selectorCanMatchPseudoElement): Deleted. (WebCore::Style::isCommonAttributeSelectorAttribute): Deleted. (WebCore::Style::computeContainsUncommonAttributeSelector): Deleted. (WebCore::Style::determinePropertyWhitelistType): Deleted. (WebCore::Style::RuleData::RuleData): Deleted. * style/RuleSet.h: (WebCore::Style::RuleData::position const): Deleted. (WebCore::Style::RuleData::rule const): Deleted. (WebCore::Style::RuleData::selector const): Deleted. (WebCore::Style::RuleData::selectorIndex const): Deleted. (WebCore::Style::RuleData::selectorListIndex const): Deleted. (WebCore::Style::RuleData::canMatchPseudoElement const): Deleted. (WebCore::Style::RuleData::matchBasedOnRuleHash const): Deleted. (WebCore::Style::RuleData::containsUncommonAttributeSelector const): Deleted. (WebCore::Style::RuleData::linkMatchType const): Deleted. (WebCore::Style::RuleData::propertyWhitelistType const): Deleted. (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): Deleted. (WebCore::Style::RuleData::disableSelectorFiltering): Deleted. Canonical link: https://commits.webkit.org/217623@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-19 16:10:40 +00:00
const SelectorFilter::Hashes& descendantSelectorIdentifierHashes() const { return m_descendantSelectorIdentifierHashes; }
void disableSelectorFiltering() { m_descendantSelectorIdentifierHashes[0] = 0; }
private:
StyleRule accessor in RuleData should return a const reference https://bugs.webkit.org/show_bug.cgi?id=205655 Reviewed by Zalan Bujtas. It is currently a non-const pointer. This leads to StyleRule being const in many other places too. * css/StyleRule.h: (WebCore::StyleRuleBase::deref const): (WebCore::StyleRuleBase::deref): Deleted. Make deref const, matching RefCounted and allowing RefPtr<const StyleRule> * editing/EditingStyle.cpp: (WebCore::styleFromMatchedRulesForElement): * inspector/agents/InspectorCSSAgent.cpp: (WebCore::InspectorCSSAgent::buildObjectForRule): (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList): * inspector/agents/InspectorCSSAgent.h: * style/ElementRuleCollector.cpp: (WebCore::Style::ElementRuleCollector::matchedRuleList const): (WebCore::Style::ElementRuleCollector::transferMatchedRules): (WebCore::Style::ElementRuleCollector::ruleMatches): (WebCore::Style::ElementRuleCollector::collectMatchingRulesForList): * style/ElementRuleCollector.h: * style/InspectorCSSOMWrappers.cpp: (WebCore::Style::InspectorCSSOMWrappers::getWrapperForRuleInSheets): * style/InspectorCSSOMWrappers.h: * style/RuleData.cpp: (WebCore::Style::RuleData::RuleData): * style/RuleData.h: (WebCore::Style::RuleData::styleRule const): (WebCore::Style::RuleData::compiledSelector const): (WebCore::Style::RuleData::rule const): Deleted. * style/RuleFeature.cpp: (WebCore::Style::RuleFeature::RuleFeature): (WebCore::Style::RuleFeatureSet::collectFeatures): * style/RuleFeature.h: (WebCore::Style::RuleFeature::RuleFeature): Deleted. * style/RuleSet.cpp: (WebCore::Style::RuleSet::addRule): (WebCore::Style::RuleSet::addStyleRule): (WebCore::Style::RuleSet::evaluteDynamicMediaQueryRules): (WebCore::Style::RuleSet::MediaQueryCollector::addRuleIfNeeded): * style/RuleSet.h: * style/StyleResolver.cpp: (WebCore::Style::Resolver::styleRulesForElement): (WebCore::Style::Resolver::pseudoStyleRulesForElement): * style/StyleResolver.h: * style/StyleScopeRuleSets.cpp: (WebCore::Style::makeRuleSet): (WebCore::Style::ensureInvalidationRuleSets): Canonical link: https://commits.webkit.org/218835@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253959 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-12-31 16:15:10 +00:00
RefPtr<const StyleRule> m_styleRule;
2020-01-06 18:59:35 +00:00
// Keep in sync with RuleFeature's selectorIndex and selectorListIndex size.
Move RuleData to a file of its own https://bugs.webkit.org/show_bug.cgi?id=204351 Reviewed by Anders Carlsson. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * style/RuleData.cpp: Added. (WebCore::Style::computeMatchBasedOnRuleHash): (WebCore::Style::selectorCanMatchPseudoElement): (WebCore::Style::isCommonAttributeSelectorAttribute): (WebCore::Style::computeContainsUncommonAttributeSelector): (WebCore::Style::determinePropertyWhitelistType): (WebCore::Style::RuleData::RuleData): * style/RuleData.h: Added. (WebCore::Style::RuleData::position const): (WebCore::Style::RuleData::rule const): (WebCore::Style::RuleData::selector const): (WebCore::Style::RuleData::selectorIndex const): (WebCore::Style::RuleData::selectorListIndex const): (WebCore::Style::RuleData::canMatchPseudoElement const): (WebCore::Style::RuleData::matchBasedOnRuleHash const): (WebCore::Style::RuleData::containsUncommonAttributeSelector const): (WebCore::Style::RuleData::linkMatchType const): (WebCore::Style::RuleData::propertyWhitelistType const): (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): (WebCore::Style::RuleData::disableSelectorFiltering): * style/RuleSet.cpp: (WebCore::Style::computeMatchBasedOnRuleHash): Deleted. (WebCore::Style::selectorCanMatchPseudoElement): Deleted. (WebCore::Style::isCommonAttributeSelectorAttribute): Deleted. (WebCore::Style::computeContainsUncommonAttributeSelector): Deleted. (WebCore::Style::determinePropertyWhitelistType): Deleted. (WebCore::Style::RuleData::RuleData): Deleted. * style/RuleSet.h: (WebCore::Style::RuleData::position const): Deleted. (WebCore::Style::RuleData::rule const): Deleted. (WebCore::Style::RuleData::selector const): Deleted. (WebCore::Style::RuleData::selectorIndex const): Deleted. (WebCore::Style::RuleData::selectorListIndex const): Deleted. (WebCore::Style::RuleData::canMatchPseudoElement const): Deleted. (WebCore::Style::RuleData::matchBasedOnRuleHash const): Deleted. (WebCore::Style::RuleData::containsUncommonAttributeSelector const): Deleted. (WebCore::Style::RuleData::linkMatchType const): Deleted. (WebCore::Style::RuleData::propertyWhitelistType const): Deleted. (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): Deleted. (WebCore::Style::RuleData::disableSelectorFiltering): Deleted. Canonical link: https://commits.webkit.org/217623@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-19 16:10:40 +00:00
unsigned m_selectorIndex : 16;
unsigned m_selectorListIndex : 16;
// If we have more rules than 2^bitcount here we'll get confused about rule order.
unsigned m_position : 22;
unsigned m_matchBasedOnRuleHash : 3;
Move RuleData to a file of its own https://bugs.webkit.org/show_bug.cgi?id=204351 Reviewed by Anders Carlsson. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * style/RuleData.cpp: Added. (WebCore::Style::computeMatchBasedOnRuleHash): (WebCore::Style::selectorCanMatchPseudoElement): (WebCore::Style::isCommonAttributeSelectorAttribute): (WebCore::Style::computeContainsUncommonAttributeSelector): (WebCore::Style::determinePropertyWhitelistType): (WebCore::Style::RuleData::RuleData): * style/RuleData.h: Added. (WebCore::Style::RuleData::position const): (WebCore::Style::RuleData::rule const): (WebCore::Style::RuleData::selector const): (WebCore::Style::RuleData::selectorIndex const): (WebCore::Style::RuleData::selectorListIndex const): (WebCore::Style::RuleData::canMatchPseudoElement const): (WebCore::Style::RuleData::matchBasedOnRuleHash const): (WebCore::Style::RuleData::containsUncommonAttributeSelector const): (WebCore::Style::RuleData::linkMatchType const): (WebCore::Style::RuleData::propertyWhitelistType const): (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): (WebCore::Style::RuleData::disableSelectorFiltering): * style/RuleSet.cpp: (WebCore::Style::computeMatchBasedOnRuleHash): Deleted. (WebCore::Style::selectorCanMatchPseudoElement): Deleted. (WebCore::Style::isCommonAttributeSelectorAttribute): Deleted. (WebCore::Style::computeContainsUncommonAttributeSelector): Deleted. (WebCore::Style::determinePropertyWhitelistType): Deleted. (WebCore::Style::RuleData::RuleData): Deleted. * style/RuleSet.h: (WebCore::Style::RuleData::position const): Deleted. (WebCore::Style::RuleData::rule const): Deleted. (WebCore::Style::RuleData::selector const): Deleted. (WebCore::Style::RuleData::selectorIndex const): Deleted. (WebCore::Style::RuleData::selectorListIndex const): Deleted. (WebCore::Style::RuleData::canMatchPseudoElement const): Deleted. (WebCore::Style::RuleData::matchBasedOnRuleHash const): Deleted. (WebCore::Style::RuleData::containsUncommonAttributeSelector const): Deleted. (WebCore::Style::RuleData::linkMatchType const): Deleted. (WebCore::Style::RuleData::propertyWhitelistType const): Deleted. (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): Deleted. (WebCore::Style::RuleData::disableSelectorFiltering): Deleted. Canonical link: https://commits.webkit.org/217623@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-19 16:10:40 +00:00
unsigned m_canMatchPseudoElement : 1;
unsigned m_containsUncommonAttributeSelector : 1;
unsigned m_linkMatchType : 2; // SelectorChecker::LinkMatchMask
Replace instances of whitelist in WebCore with allowlist https://bugs.webkit.org/show_bug.cgi?id=213068 Reviewed by Tim Horton. Source/WebCore: * Modules/webdatabase/DatabaseAuthorizer.cpp: (WebCore::DatabaseAuthorizer::DatabaseAuthorizer): (WebCore::DatabaseAuthorizer::addAllowedFunctions): (WebCore::DatabaseAuthorizer::allowFunction): (WebCore::DatabaseAuthorizer::addWhitelistedFunctions): Deleted. * Modules/webdatabase/DatabaseAuthorizer.h: * dom/ExtensionStyleSheets.cpp: (WebCore::ExtensionStyleSheets::updateInjectedStyleSheetCache const): * loader/CrossOriginAccessControl.cpp: (WebCore::isOnAccessControlSimpleRequestMethodAllowlist): (WebCore::isSimpleCrossOriginAccessRequest): (WebCore::isOnAccessControlSimpleRequestMethodWhitelist): Deleted. * loader/CrossOriginAccessControl.h: * loader/CrossOriginPreflightResultCache.cpp: (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod const): * loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::setOnlineAllowlist): (WebCore::ApplicationCache::isURLInOnlineAllowlist): (WebCore::ApplicationCache::setOnlineWhitelist): Deleted. (WebCore::ApplicationCache::isURLInOnlineWhitelist): Deleted. * loader/appcache/ApplicationCache.h: (WebCore::ApplicationCache::onlineAllowlist const): (WebCore::ApplicationCache::onlineWhitelist const): Deleted. * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::didFinishLoadingManifest): * loader/appcache/ApplicationCacheHost.cpp: (WebCore::ApplicationCacheHost::shouldLoadResourceFromApplicationCache): (WebCore::ApplicationCacheHost::getApplicationCacheFallbackResource): * loader/appcache/ApplicationCacheStorage.cpp: (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL): (WebCore::ApplicationCacheStorage::openDatabase): (WebCore::ApplicationCacheStorage::store): (WebCore::ApplicationCacheStorage::loadCache): * loader/appcache/ManifestParser.cpp: (WebCore::parseManifest): * loader/appcache/ManifestParser.h: * page/Frame.cpp: (WebCore::Frame::injectUserScriptImmediately): * page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::canRequest const): (WebCore::SecurityOrigin::canDisplay const): * page/SecurityPolicy.cpp: (WebCore::SecurityPolicy::isAccessAllowed): (WebCore::SecurityPolicy::addOriginAccessAllowlistEntry): (WebCore::SecurityPolicy::removeOriginAccessAllowlistEntry): (WebCore::SecurityPolicy::resetOriginAccessAllowlists): (WebCore::SecurityPolicy::isAccessWhiteListed): Deleted. (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry): Deleted. (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry): Deleted. (WebCore::SecurityPolicy::resetOriginAccessWhitelists): Deleted. * page/SecurityPolicy.h: * page/UserContentURLPattern.cpp: (WebCore::UserContentURLPattern::matchesPatterns): * page/UserContentURLPattern.h: * page/UserScript.h: (WebCore::UserScript::UserScript): (WebCore::UserScript::allowlist const): (WebCore::UserScript::encode const): (WebCore::UserScript::decode): (WebCore::UserScript::whitelist const): Deleted. * page/UserStyleSheet.h: (WebCore::UserStyleSheet::UserStyleSheet): (WebCore::UserStyleSheet::allowlist const): (WebCore::UserStyleSheet::whitelist const): Deleted. * platform/graphics/FontCache.h: * platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::fontAllowlist): (WebCore::FontCache::setFontAllowlist): (WebCore::platformFontLookupWithFamily): (WebCore::fontWhitelist): Deleted. (WebCore::FontCache::setFontWhitelist): Deleted. * platform/network/HTTPParsers.cpp: (WebCore::isValidAcceptHeaderValue): * rendering/FloatingObjects.h: * style/ElementRuleCollector.cpp: (WebCore::Style::ElementRuleCollector::transferMatchedRules): * style/ElementRuleCollector.h: * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::addMatch): * style/RuleData.cpp: (WebCore::Style::determinePropertyAllowlistType): (WebCore::Style::RuleData::RuleData): (WebCore::Style::determinePropertyWhitelistType): Deleted. * style/RuleData.h: (WebCore::Style::RuleData::propertyAllowlistType const): (WebCore::Style::RuleData::propertyWhitelistType const): Deleted. Source/WebKit: * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::addOriginAccessWhitelistEntry): (WebKit::NetworkConnectionToWebProcess::removeOriginAccessWhitelistEntry): (WebKit::NetworkConnectionToWebProcess::resetOriginAccessWhitelists): * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder<UserStyleSheet>::encode): (IPC::ArgumentCoder<UserStyleSheet>::decode): * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::addOriginAccessWhitelistEntry): (WebKit::InjectedBundle::removeOriginAccessWhitelistEntry): (WebKit::InjectedBundle::resetOriginAccessWhitelists): * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): Source/WebKitLegacy/mac: * WebView/WebView.mm: (+[WebView _addOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]): (+[WebView _removeOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]): (+[WebView _resetOriginAccessWhitelists]): (+[WebView _setFontWhitelist:]): Canonical link: https://commits.webkit.org/225877@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262922 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-06-11 20:47:21 +00:00
unsigned m_propertyAllowlistType : 2;
Resolve dynamic media queries without reconstructing RuleSets https://bugs.webkit.org/show_bug.cgi?id=205264 Reviewed by Zalan Bujtas. Source/WebCore: We currently do a full style resolver reset whenever a media query result changes. This is very inefficient as we need to reconstuct all RuleSets and optimization structures. We also lose related caches and are forced to re-resolve full document style. This may happen frequently, for example when resizing window on a responsive web site. With this patch we construct RuleDatas also for non-matching dynamic media queries and simply mark them disabled. We create a data structure that allows enabling and disabling them efficiently as a response to environment changes (like view resize). This allows us to avoid throwing away anything during common scenarios. Test: fast/media/media-query-dynamic-with-font-face.html * css/MediaQueryEvaluator.cpp: (WebCore::MediaQueryEvaluator::evaluate const): Add a mode where dynamic media queries all evaluate to true and only static properties can cause the query to fail. * css/MediaQueryEvaluator.h: * style/ElementRuleCollector.cpp: (WebCore::Style::ElementRuleCollector::collectMatchingRulesForList): Skip disabled rules during rule collection. * style/RuleData.cpp: (WebCore::Style::RuleData::RuleData): * style/RuleData.h: (WebCore::Style::RuleData::isEnabled const): (WebCore::Style::RuleData::setEnabled): Add a bit. * style/RuleSet.cpp: (WebCore::Style::RuleSet::addRule): Collect positions of rules affected by dynamic media queries. (WebCore::Style::RuleSet::addPageRule): (WebCore::Style::RuleSet::addChildRules): (WebCore::Style::RuleSet::addRulesFromSheet): First check for a special case where we have style resolver mutating rules (like @font-face) inside a media query. In this case we fall back to static resolution. Then collect the rules. Static media queries (print etc) are evaluated right away, dynamic ones are collected by MediaQueryCollector. (WebCore::Style::RuleSet::addStyleRule): (WebCore::Style::RuleSet::traverseRuleDatas): (WebCore::Style::RuleSet::evaluteDynamicMediaQueryRules): Evaluate media queries for changes and flip the enabled state of the rules if needed. (WebCore::Style::RuleSet::MediaQueryCollector::pushAndEvaluate): (WebCore::Style::RuleSet::MediaQueryCollector::pop): (WebCore::Style::RuleSet::MediaQueryCollector::didMutateResolver): (WebCore::Style::RuleSet::MediaQueryCollector::addRulePositionIfNeeded): * style/RuleSet.h: (WebCore::Style::RuleSet::hasViewportDependentMediaQueries const): * style/StyleResolver.cpp: (WebCore::Style::Resolver::hasViewportDependentMediaQueries const): (WebCore::Style::Resolver::evaluateDynamicMediaQueries): (WebCore::Style::Resolver::addMediaQueryDynamicResults): Deleted. (WebCore::Style::Resolver::hasMediaQueriesAffectedByViewportChange const): Deleted. (WebCore::Style::Resolver::hasMediaQueriesAffectedByAccessibilitySettingsChange const): Deleted. (WebCore::Style::Resolver::hasMediaQueriesAffectedByAppearanceChange const): Deleted. Profiling doesn't show any need to handle the cases separately. Replace with single evaluateDynamicMediaQueries path. We can bring type specific paths back easily if needed. * style/StyleResolver.h: (WebCore::Style::Resolver::hasViewportDependentMediaQueries const): Deleted. (WebCore::Style::Resolver::hasAccessibilitySettingsDependentMediaQueries const): Deleted. (WebCore::Style::Resolver::hasAppearanceDependentMediaQueries const): Deleted. * style/StyleScope.cpp: (WebCore::Style::Scope::evaluateMediaQueriesForViewportChange): (WebCore::Style::Scope::evaluateMediaQueriesForAccessibilitySettingsChange): (WebCore::Style::Scope::evaluateMediaQueriesForAppearanceChange): Call into general evaluateDynamicMediaQueries. (WebCore::Style::Scope::evaluateMediaQueries): In normal case we can just invalidate style, not throw everything away. This can be further improved by adding optimization rule sets. * style/StyleScopeRuleSets.cpp: (WebCore::Style::ScopeRuleSets::updateUserAgentMediaQueryStyleIfNeeded const): (WebCore::Style::ScopeRuleSets::initializeUserStyle): (WebCore::Style::ScopeRuleSets::collectRulesFromUserStyleSheets): (WebCore::Style::makeRuleSet): (WebCore::Style::ScopeRuleSets::hasViewportDependentMediaQueries const): (WebCore::Style::ScopeRuleSets::evaluteDynamicMediaQueryRules): (WebCore::Style::ScopeRuleSets::appendAuthorStyleSheets): (WebCore::Style::ensureInvalidationRuleSets): * style/StyleScopeRuleSets.h: LayoutTests: Add a test verifying that @font-face inside @media works in dynamic scenarios. * fast/media/media-query-dynamic-with-font-face-expected.html: Added. * fast/media/media-query-dynamic-with-font-face.html: Added. Canonical link: https://commits.webkit.org/218523@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253616 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-12-17 09:51:54 +00:00
unsigned m_isEnabled : 1;
Move RuleData to a file of its own https://bugs.webkit.org/show_bug.cgi?id=204351 Reviewed by Anders Carlsson. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * style/RuleData.cpp: Added. (WebCore::Style::computeMatchBasedOnRuleHash): (WebCore::Style::selectorCanMatchPseudoElement): (WebCore::Style::isCommonAttributeSelectorAttribute): (WebCore::Style::computeContainsUncommonAttributeSelector): (WebCore::Style::determinePropertyWhitelistType): (WebCore::Style::RuleData::RuleData): * style/RuleData.h: Added. (WebCore::Style::RuleData::position const): (WebCore::Style::RuleData::rule const): (WebCore::Style::RuleData::selector const): (WebCore::Style::RuleData::selectorIndex const): (WebCore::Style::RuleData::selectorListIndex const): (WebCore::Style::RuleData::canMatchPseudoElement const): (WebCore::Style::RuleData::matchBasedOnRuleHash const): (WebCore::Style::RuleData::containsUncommonAttributeSelector const): (WebCore::Style::RuleData::linkMatchType const): (WebCore::Style::RuleData::propertyWhitelistType const): (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): (WebCore::Style::RuleData::disableSelectorFiltering): * style/RuleSet.cpp: (WebCore::Style::computeMatchBasedOnRuleHash): Deleted. (WebCore::Style::selectorCanMatchPseudoElement): Deleted. (WebCore::Style::isCommonAttributeSelectorAttribute): Deleted. (WebCore::Style::computeContainsUncommonAttributeSelector): Deleted. (WebCore::Style::determinePropertyWhitelistType): Deleted. (WebCore::Style::RuleData::RuleData): Deleted. * style/RuleSet.h: (WebCore::Style::RuleData::position const): Deleted. (WebCore::Style::RuleData::rule const): Deleted. (WebCore::Style::RuleData::selector const): Deleted. (WebCore::Style::RuleData::selectorIndex const): Deleted. (WebCore::Style::RuleData::selectorListIndex const): Deleted. (WebCore::Style::RuleData::canMatchPseudoElement const): Deleted. (WebCore::Style::RuleData::matchBasedOnRuleHash const): Deleted. (WebCore::Style::RuleData::containsUncommonAttributeSelector const): Deleted. (WebCore::Style::RuleData::linkMatchType const): Deleted. (WebCore::Style::RuleData::propertyWhitelistType const): Deleted. (WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): Deleted. (WebCore::Style::RuleData::disableSelectorFiltering): Deleted. Canonical link: https://commits.webkit.org/217623@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-19 16:10:40 +00:00
SelectorFilter::Hashes m_descendantSelectorIdentifierHashes;
};
} // namespace Style
} // namespace WebCore
namespace WTF {
// RuleData is simple enough that initializing to 0 and moving with memcpy will totally work.
template<> struct VectorTraits<WebCore::Style::RuleData> : SimpleClassVectorTraits { };
} // namespace WTF