haikuwebkit/Source/WebCore/contentextensions/ImmutableNFANodeBuilder.h

230 lines
7.8 KiB
C
Raw Permalink Normal View History

Make the NFA transitions range-based https://bugs.webkit.org/show_bug.cgi?id=146338 Reviewed by Alex Christensen. Source/WebCore: Change the NFA to use range based transition for any kind of transition. The fallback transition is also absorbed as ranges. Previously, the NFA would only have single transitions and a fallback transition for all cases not covered by single transitions. The problem with that design was that character ranges (e.g. [a-z]) were extended as individual transitions. Something like [^a] would cover most of the alphabet with transitions. When converting the NFA to DFA, the time is proportional to the number of states multiplied by the number of transitions. With many individual transitions, the run time was an order of magnitude higher than what we want. This patch changes the NFA to only handle ranges of characters. A single transition becomes a range with the character as first and last character in the range ('a' becomes 'a' to 'a'). Ranges of characters are handled direclty (e.g. [a-z] becomes a single 'a' to 'z' transition). In the context of the state machines, ranges have identifies (the target of the transitions). When two ranges collide, they have to be split such that each part retain its target except the intersection that gets the union of the targets. Handling the union of ranges efficiently is critical because we have to do it for every NFA node in any subset when building the DFA. The helper class that does that is MutableRange. The union of ranges is done efficiently because of preconditions on our list of ranges: -The ranges must be sorted. -No range in a list can intersect any other range in the same list. To merge two ranges, we can go over them in order and split them part by part. It is easy to find what goes where because they are both sorted and we can compare the characters of each to know how to move forward. The time to merge 2 range list is proportional to O(n+m) where 'n' and 'm' are the number of ranges in each list. Since taking the union of two lists usually create new ranges, we have to allocate those somewhere efficiently. To do that, MutableRange support an inline capacity, which is used for the NFAToDFA Convertion. --- With ranges, the NFA-to-DFA conversion changes very little: -Each NFA nodes contains a list of ranges and each range has a list of targets. -The subset construction select any number of NFA nodes corresponding to a single deterministic state. -For the subset, we can use MutableRange to merge the ranges of every NFA node in the set. The resulting list has rangeis with targets corresponding to the union of all the transitions. -We go over all the ranges the same way we used to go over the transitions. Since the DFA does not support ranges, the ranges are spread as individual transitions + fallback transition. --- With the efficient merging solved, we still need the actual NFA to use ranges instead of individual transitions. I could have used MutableRange for that but it is not the most compact way to represent ranges that do not need merging. Instead, the NFA uses a custom structure: ImmutableNFA. It is basically the same thing, but in that one you cannot change a list of range after creating it. Consequently, the sorted ranges in ImmutableNFA are also subsequent in memory, which is really nice to go over them efficiently when merging ranges in the NFA-to-DFA conversion. :) When building the NFA, we don't know all the transitions when creating each node, BUT we know that we have very few node "unfinished" at any time. Since we build by going depth-first in the prefix-tree, we only have the max-depth of live nodes in the worst case. To help building the NFA out of the prefix tree, we have ImmutableNFANodeBuilder. It keeps all the informations about a NFA node, but in a non-compact, mutable form. When a ImmutableNFANodeBuilder is destroyed, it serialize the information into the immutable NFA. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::generateNFAForSubtree): (WebCore::ContentExtensions::CombinedURLFilters::processNFAs): * contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::empty): * contentextensions/DFA.h: * contentextensions/ImmutableNFA.h: Added. (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::end): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::end): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::debugPrint): (WebCore::ContentExtensions::ImmutableNFA::transitionsForNode): (WebCore::ContentExtensions::ImmutableNFA::root): (WebCore::ContentExtensions::ImmutableNFA::finalize): (WebCore::ContentExtensions::ImmutableNFA::memoryUsed): * contentextensions/ImmutableNFANodeBuilder.h: Added. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::setActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::finalize): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkTransitions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkEpsilonTransitions): * contentextensions/MutableRange.h: Added. (WebCore::ContentExtensions::MutableRange::MutableRange): (WebCore::ContentExtensions::MutableRange::operator=): (WebCore::ContentExtensions::MutableRange::size): * contentextensions/MutableRangeList.h: Added. (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator*): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator->): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator==): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator!=): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator++): (WebCore::ContentExtensions::MutableRangeList::begin): (WebCore::ContentExtensions::MutableRangeList::end): (WebCore::ContentExtensions::MutableRangeList::appendRange): (WebCore::ContentExtensions::MutableRangeList::extend): (WebCore::ContentExtensions::MutableRangeList::isEmpty): (WebCore::ContentExtensions::MutableRangeList::clear): (WebCore::ContentExtensions::MutableRangeList::debugPrint): (WebCore::ContentExtensions::MutableRangeList::insertBetween): (WebCore::ContentExtensions::MutableRangeList::initializeFrom): * contentextensions/NFA.cpp: (WebCore::ContentExtensions::NFA::debugPrintDot): (WebCore::ContentExtensions::NFA::NFA): Deleted. (WebCore::ContentExtensions::NFA::createNode): Deleted. (WebCore::ContentExtensions::NFA::memoryUsed): Deleted. (WebCore::ContentExtensions::NFA::addTransition): Deleted. (WebCore::ContentExtensions::NFA::addEpsilonTransition): Deleted. (WebCore::ContentExtensions::NFA::addTransitionsOnAnyCharacter): Deleted. (WebCore::ContentExtensions::NFA::setActions): Deleted. (WebCore::ContentExtensions::NFA::graphSize): Deleted. (WebCore::ContentExtensions::NFA::restoreToGraphSize): Deleted. (WebCore::ContentExtensions::printRange): Deleted. (WebCore::ContentExtensions::printTransitions): Deleted. * contentextensions/NFA.h: (WebCore::ContentExtensions::NFA::root): Deleted. (WebCore::ContentExtensions::NFA::addRuleId): Deleted. * contentextensions/NFANode.h: * contentextensions/NFAToDFA.cpp: (WebCore::ContentExtensions::epsilonClosureExcludingSelf): (WebCore::ContentExtensions::resolveEpsilonClosures): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::convert): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::extend): (WebCore::ContentExtensions::createCombinedTransition): (WebCore::ContentExtensions::canUseFallbackTransition): (WebCore::ContentExtensions::findBestFallbackTarget): (WebCore::ContentExtensions::getOrCreateDFANode): (WebCore::ContentExtensions::NFAToDFA::convert): (WebCore::ContentExtensions::populateTransitions): Deleted. * contentextensions/NFAToDFA.h: * contentextensions/Term.h: (WebCore::ContentExtensions::Term::Term): (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): (WebCore::ContentExtensions::Term::Term::generateGraph): Deleted. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: Test some new interesting cases. Canonical link: https://commits.webkit.org/164509@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186079 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-06-29 19:40:12 +00:00
/*
* Copyright (C) 2015 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
#pragma once
Make the NFA transitions range-based https://bugs.webkit.org/show_bug.cgi?id=146338 Reviewed by Alex Christensen. Source/WebCore: Change the NFA to use range based transition for any kind of transition. The fallback transition is also absorbed as ranges. Previously, the NFA would only have single transitions and a fallback transition for all cases not covered by single transitions. The problem with that design was that character ranges (e.g. [a-z]) were extended as individual transitions. Something like [^a] would cover most of the alphabet with transitions. When converting the NFA to DFA, the time is proportional to the number of states multiplied by the number of transitions. With many individual transitions, the run time was an order of magnitude higher than what we want. This patch changes the NFA to only handle ranges of characters. A single transition becomes a range with the character as first and last character in the range ('a' becomes 'a' to 'a'). Ranges of characters are handled direclty (e.g. [a-z] becomes a single 'a' to 'z' transition). In the context of the state machines, ranges have identifies (the target of the transitions). When two ranges collide, they have to be split such that each part retain its target except the intersection that gets the union of the targets. Handling the union of ranges efficiently is critical because we have to do it for every NFA node in any subset when building the DFA. The helper class that does that is MutableRange. The union of ranges is done efficiently because of preconditions on our list of ranges: -The ranges must be sorted. -No range in a list can intersect any other range in the same list. To merge two ranges, we can go over them in order and split them part by part. It is easy to find what goes where because they are both sorted and we can compare the characters of each to know how to move forward. The time to merge 2 range list is proportional to O(n+m) where 'n' and 'm' are the number of ranges in each list. Since taking the union of two lists usually create new ranges, we have to allocate those somewhere efficiently. To do that, MutableRange support an inline capacity, which is used for the NFAToDFA Convertion. --- With ranges, the NFA-to-DFA conversion changes very little: -Each NFA nodes contains a list of ranges and each range has a list of targets. -The subset construction select any number of NFA nodes corresponding to a single deterministic state. -For the subset, we can use MutableRange to merge the ranges of every NFA node in the set. The resulting list has rangeis with targets corresponding to the union of all the transitions. -We go over all the ranges the same way we used to go over the transitions. Since the DFA does not support ranges, the ranges are spread as individual transitions + fallback transition. --- With the efficient merging solved, we still need the actual NFA to use ranges instead of individual transitions. I could have used MutableRange for that but it is not the most compact way to represent ranges that do not need merging. Instead, the NFA uses a custom structure: ImmutableNFA. It is basically the same thing, but in that one you cannot change a list of range after creating it. Consequently, the sorted ranges in ImmutableNFA are also subsequent in memory, which is really nice to go over them efficiently when merging ranges in the NFA-to-DFA conversion. :) When building the NFA, we don't know all the transitions when creating each node, BUT we know that we have very few node "unfinished" at any time. Since we build by going depth-first in the prefix-tree, we only have the max-depth of live nodes in the worst case. To help building the NFA out of the prefix tree, we have ImmutableNFANodeBuilder. It keeps all the informations about a NFA node, but in a non-compact, mutable form. When a ImmutableNFANodeBuilder is destroyed, it serialize the information into the immutable NFA. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::generateNFAForSubtree): (WebCore::ContentExtensions::CombinedURLFilters::processNFAs): * contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::empty): * contentextensions/DFA.h: * contentextensions/ImmutableNFA.h: Added. (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::end): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::end): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::debugPrint): (WebCore::ContentExtensions::ImmutableNFA::transitionsForNode): (WebCore::ContentExtensions::ImmutableNFA::root): (WebCore::ContentExtensions::ImmutableNFA::finalize): (WebCore::ContentExtensions::ImmutableNFA::memoryUsed): * contentextensions/ImmutableNFANodeBuilder.h: Added. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::setActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::finalize): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkTransitions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkEpsilonTransitions): * contentextensions/MutableRange.h: Added. (WebCore::ContentExtensions::MutableRange::MutableRange): (WebCore::ContentExtensions::MutableRange::operator=): (WebCore::ContentExtensions::MutableRange::size): * contentextensions/MutableRangeList.h: Added. (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator*): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator->): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator==): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator!=): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator++): (WebCore::ContentExtensions::MutableRangeList::begin): (WebCore::ContentExtensions::MutableRangeList::end): (WebCore::ContentExtensions::MutableRangeList::appendRange): (WebCore::ContentExtensions::MutableRangeList::extend): (WebCore::ContentExtensions::MutableRangeList::isEmpty): (WebCore::ContentExtensions::MutableRangeList::clear): (WebCore::ContentExtensions::MutableRangeList::debugPrint): (WebCore::ContentExtensions::MutableRangeList::insertBetween): (WebCore::ContentExtensions::MutableRangeList::initializeFrom): * contentextensions/NFA.cpp: (WebCore::ContentExtensions::NFA::debugPrintDot): (WebCore::ContentExtensions::NFA::NFA): Deleted. (WebCore::ContentExtensions::NFA::createNode): Deleted. (WebCore::ContentExtensions::NFA::memoryUsed): Deleted. (WebCore::ContentExtensions::NFA::addTransition): Deleted. (WebCore::ContentExtensions::NFA::addEpsilonTransition): Deleted. (WebCore::ContentExtensions::NFA::addTransitionsOnAnyCharacter): Deleted. (WebCore::ContentExtensions::NFA::setActions): Deleted. (WebCore::ContentExtensions::NFA::graphSize): Deleted. (WebCore::ContentExtensions::NFA::restoreToGraphSize): Deleted. (WebCore::ContentExtensions::printRange): Deleted. (WebCore::ContentExtensions::printTransitions): Deleted. * contentextensions/NFA.h: (WebCore::ContentExtensions::NFA::root): Deleted. (WebCore::ContentExtensions::NFA::addRuleId): Deleted. * contentextensions/NFANode.h: * contentextensions/NFAToDFA.cpp: (WebCore::ContentExtensions::epsilonClosureExcludingSelf): (WebCore::ContentExtensions::resolveEpsilonClosures): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::convert): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::extend): (WebCore::ContentExtensions::createCombinedTransition): (WebCore::ContentExtensions::canUseFallbackTransition): (WebCore::ContentExtensions::findBestFallbackTarget): (WebCore::ContentExtensions::getOrCreateDFANode): (WebCore::ContentExtensions::NFAToDFA::convert): (WebCore::ContentExtensions::populateTransitions): Deleted. * contentextensions/NFAToDFA.h: * contentextensions/Term.h: (WebCore::ContentExtensions::Term::Term): (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): (WebCore::ContentExtensions::Term::Term::generateGraph): Deleted. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: Test some new interesting cases. Canonical link: https://commits.webkit.org/164509@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186079 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-06-29 19:40:12 +00:00
#include "ImmutableNFA.h"
#include "MutableRangeList.h"
#include <wtf/HashSet.h>
#if ENABLE(CONTENT_EXTENSIONS)
namespace WebCore {
namespace ContentExtensions {
Serialize NFA to disk before converting it to a DFA when compiling a WKContentRuleList https://bugs.webkit.org/show_bug.cgi?id=219452 Patch by Alex Christensen <achristensen@webkit.org> on 2020-12-03 Reviewed by Geoffrey Garen. Source/WebCore: This decreases maximum memory use by about 50% because the NFA and DFA never need to be in memory at the same time. I'll have to do some tuning and on-device measurement, but this may allow us to increase maxRuleCount. * Headers.cmake: * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::CombinedURLFilters::processNFAs): * contentextensions/CombinedURLFilters.h: * contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileToBytecode): (WebCore::ContentExtensions::compileRuleList): * contentextensions/ContentExtensionError.cpp: (WebCore::ContentExtensions::contentExtensionErrorCategory): * contentextensions/ContentExtensionError.h: * contentextensions/ContentExtensionsDebugging.h: * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::shrinkToFit): Deleted. * contentextensions/DFA.h: * contentextensions/ImmutableNFA.h: (WebCore::ContentExtensions::ImmutableNFA::clear): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator* const): Deleted. (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator-> const): Deleted. (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator== const): Deleted. (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator!= const): Deleted. (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator++): Deleted. (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::begin const): Deleted. (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::end const): Deleted. (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator== const): Deleted. (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator!= const): Deleted. (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator++): Deleted. (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::first const): Deleted. (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::last const): Deleted. (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data const): Deleted. (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::range const): Deleted. (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::begin const): Deleted. (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::end const): Deleted. (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::debugPrint const): Deleted. (WebCore::ContentExtensions::ImmutableNFA::transitionsForNode const): Deleted. (WebCore::ContentExtensions::ImmutableNFA::root const): Deleted. (WebCore::ContentExtensions::ImmutableNFA::finalize): Deleted. * contentextensions/ImmutableNFANodeBuilder.h: * contentextensions/NFAToDFA.cpp: (WebCore::ContentExtensions::epsilonClosureExcludingSelf): (WebCore::ContentExtensions::resolveEpsilonClosures): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate): (WebCore::ContentExtensions::createCombinedTransition): (WebCore::ContentExtensions::getOrCreateDFANode): (WebCore::ContentExtensions::NFAToDFA::convert): * contentextensions/NFAToDFA.h: * contentextensions/SerializedNFA.cpp: Added. (WebCore::ContentExtensions::writeAllToFile): (WebCore::ContentExtensions::SerializedNFA::serialize): (WebCore::ContentExtensions::SerializedNFA::SerializedNFA): (WebCore::ContentExtensions::SerializedNFA::pointerAtOffsetInFile const): (WebCore::ContentExtensions::SerializedNFA::nodes const const): (WebCore::ContentExtensions::SerializedNFA::transitions const const): (WebCore::ContentExtensions::SerializedNFA::targets const const): (WebCore::ContentExtensions::SerializedNFA::epsilonTransitionsTargets const const): (WebCore::ContentExtensions::SerializedNFA::actions const const): * contentextensions/SerializedNFA.h: Copied from Source/WebCore/contentextensions/ImmutableNFA.h. (WebCore::ContentExtensions::SerializedNFA::Range::Range): (WebCore::ContentExtensions::SerializedNFA::Range::begin const): (WebCore::ContentExtensions::SerializedNFA::Range::end const): (WebCore::ContentExtensions::SerializedNFA::Range::size const): (WebCore::ContentExtensions::SerializedNFA::Range::operator[] const): (WebCore::ContentExtensions::SerializedNFA::root const): (WebCore::ContentExtensions::SerializedNFA::ConstTargetIterator::operator* const): (WebCore::ContentExtensions::SerializedNFA::ConstTargetIterator::operator-> const): (WebCore::ContentExtensions::SerializedNFA::ConstTargetIterator::operator== const): (WebCore::ContentExtensions::SerializedNFA::ConstTargetIterator::operator!= const): (WebCore::ContentExtensions::SerializedNFA::ConstTargetIterator::operator++): (WebCore::ContentExtensions::SerializedNFA::IterableConstTargets::begin const): (WebCore::ContentExtensions::SerializedNFA::IterableConstTargets::end const): (WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::operator== const): (WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::operator!= const): (WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::operator++): (WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::first const): (WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::last const): (WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::data const): (WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::range const): (WebCore::ContentExtensions::SerializedNFA::IterableConstRange::begin const): (WebCore::ContentExtensions::SerializedNFA::IterableConstRange::end const): (WebCore::ContentExtensions::SerializedNFA::IterableConstRange::debugPrint const): (WebCore::ContentExtensions::SerializedNFA::transitionsForNode const): Source/WebKit: * UIProcess/API/Cocoa/WKContentRuleListStore.mm: (-[WKContentRuleListStore _compileContentRuleListForIdentifier:encodedContentRuleList:completionHandler:]): * UIProcess/API/Cocoa/WKContentRuleListStorePrivate.h: Remove NS_RELEASES_ARGUMENT because it was incorrect and unnecessary because the WTF::String is copied to a background thread. Tools: Update syntax of existing tests, which cover behavior quite well. * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (TestWebKitAPI::createNFAs): (TestWebKitAPI::TEST_F): * TestWebKitAPI/Tests/WebCore/DFAHelpers.h: (TestWebKitAPI::createNFAs): (TestWebKitAPI::buildDFAFromPatterns): Canonical link: https://commits.webkit.org/232097@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270414 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-12-04 00:01:23 +00:00
// A ImmutableNFANodeBuilder let you build an NFA node by adding states and linking with other nodes.
// When a builder is destructed, all its properties are finalized into the NFA. Using the NFA with a live
// builder results in undefined behavior.
Make the NFA transitions range-based https://bugs.webkit.org/show_bug.cgi?id=146338 Reviewed by Alex Christensen. Source/WebCore: Change the NFA to use range based transition for any kind of transition. The fallback transition is also absorbed as ranges. Previously, the NFA would only have single transitions and a fallback transition for all cases not covered by single transitions. The problem with that design was that character ranges (e.g. [a-z]) were extended as individual transitions. Something like [^a] would cover most of the alphabet with transitions. When converting the NFA to DFA, the time is proportional to the number of states multiplied by the number of transitions. With many individual transitions, the run time was an order of magnitude higher than what we want. This patch changes the NFA to only handle ranges of characters. A single transition becomes a range with the character as first and last character in the range ('a' becomes 'a' to 'a'). Ranges of characters are handled direclty (e.g. [a-z] becomes a single 'a' to 'z' transition). In the context of the state machines, ranges have identifies (the target of the transitions). When two ranges collide, they have to be split such that each part retain its target except the intersection that gets the union of the targets. Handling the union of ranges efficiently is critical because we have to do it for every NFA node in any subset when building the DFA. The helper class that does that is MutableRange. The union of ranges is done efficiently because of preconditions on our list of ranges: -The ranges must be sorted. -No range in a list can intersect any other range in the same list. To merge two ranges, we can go over them in order and split them part by part. It is easy to find what goes where because they are both sorted and we can compare the characters of each to know how to move forward. The time to merge 2 range list is proportional to O(n+m) where 'n' and 'm' are the number of ranges in each list. Since taking the union of two lists usually create new ranges, we have to allocate those somewhere efficiently. To do that, MutableRange support an inline capacity, which is used for the NFAToDFA Convertion. --- With ranges, the NFA-to-DFA conversion changes very little: -Each NFA nodes contains a list of ranges and each range has a list of targets. -The subset construction select any number of NFA nodes corresponding to a single deterministic state. -For the subset, we can use MutableRange to merge the ranges of every NFA node in the set. The resulting list has rangeis with targets corresponding to the union of all the transitions. -We go over all the ranges the same way we used to go over the transitions. Since the DFA does not support ranges, the ranges are spread as individual transitions + fallback transition. --- With the efficient merging solved, we still need the actual NFA to use ranges instead of individual transitions. I could have used MutableRange for that but it is not the most compact way to represent ranges that do not need merging. Instead, the NFA uses a custom structure: ImmutableNFA. It is basically the same thing, but in that one you cannot change a list of range after creating it. Consequently, the sorted ranges in ImmutableNFA are also subsequent in memory, which is really nice to go over them efficiently when merging ranges in the NFA-to-DFA conversion. :) When building the NFA, we don't know all the transitions when creating each node, BUT we know that we have very few node "unfinished" at any time. Since we build by going depth-first in the prefix-tree, we only have the max-depth of live nodes in the worst case. To help building the NFA out of the prefix tree, we have ImmutableNFANodeBuilder. It keeps all the informations about a NFA node, but in a non-compact, mutable form. When a ImmutableNFANodeBuilder is destroyed, it serialize the information into the immutable NFA. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::generateNFAForSubtree): (WebCore::ContentExtensions::CombinedURLFilters::processNFAs): * contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::empty): * contentextensions/DFA.h: * contentextensions/ImmutableNFA.h: Added. (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::end): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::end): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::debugPrint): (WebCore::ContentExtensions::ImmutableNFA::transitionsForNode): (WebCore::ContentExtensions::ImmutableNFA::root): (WebCore::ContentExtensions::ImmutableNFA::finalize): (WebCore::ContentExtensions::ImmutableNFA::memoryUsed): * contentextensions/ImmutableNFANodeBuilder.h: Added. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::setActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::finalize): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkTransitions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkEpsilonTransitions): * contentextensions/MutableRange.h: Added. (WebCore::ContentExtensions::MutableRange::MutableRange): (WebCore::ContentExtensions::MutableRange::operator=): (WebCore::ContentExtensions::MutableRange::size): * contentextensions/MutableRangeList.h: Added. (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator*): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator->): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator==): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator!=): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator++): (WebCore::ContentExtensions::MutableRangeList::begin): (WebCore::ContentExtensions::MutableRangeList::end): (WebCore::ContentExtensions::MutableRangeList::appendRange): (WebCore::ContentExtensions::MutableRangeList::extend): (WebCore::ContentExtensions::MutableRangeList::isEmpty): (WebCore::ContentExtensions::MutableRangeList::clear): (WebCore::ContentExtensions::MutableRangeList::debugPrint): (WebCore::ContentExtensions::MutableRangeList::insertBetween): (WebCore::ContentExtensions::MutableRangeList::initializeFrom): * contentextensions/NFA.cpp: (WebCore::ContentExtensions::NFA::debugPrintDot): (WebCore::ContentExtensions::NFA::NFA): Deleted. (WebCore::ContentExtensions::NFA::createNode): Deleted. (WebCore::ContentExtensions::NFA::memoryUsed): Deleted. (WebCore::ContentExtensions::NFA::addTransition): Deleted. (WebCore::ContentExtensions::NFA::addEpsilonTransition): Deleted. (WebCore::ContentExtensions::NFA::addTransitionsOnAnyCharacter): Deleted. (WebCore::ContentExtensions::NFA::setActions): Deleted. (WebCore::ContentExtensions::NFA::graphSize): Deleted. (WebCore::ContentExtensions::NFA::restoreToGraphSize): Deleted. (WebCore::ContentExtensions::printRange): Deleted. (WebCore::ContentExtensions::printTransitions): Deleted. * contentextensions/NFA.h: (WebCore::ContentExtensions::NFA::root): Deleted. (WebCore::ContentExtensions::NFA::addRuleId): Deleted. * contentextensions/NFANode.h: * contentextensions/NFAToDFA.cpp: (WebCore::ContentExtensions::epsilonClosureExcludingSelf): (WebCore::ContentExtensions::resolveEpsilonClosures): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::convert): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::extend): (WebCore::ContentExtensions::createCombinedTransition): (WebCore::ContentExtensions::canUseFallbackTransition): (WebCore::ContentExtensions::findBestFallbackTarget): (WebCore::ContentExtensions::getOrCreateDFANode): (WebCore::ContentExtensions::NFAToDFA::convert): (WebCore::ContentExtensions::populateTransitions): Deleted. * contentextensions/NFAToDFA.h: * contentextensions/Term.h: (WebCore::ContentExtensions::Term::Term): (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): (WebCore::ContentExtensions::Term::Term::generateGraph): Deleted. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: Test some new interesting cases. Canonical link: https://commits.webkit.org/164509@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186079 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-06-29 19:40:12 +00:00
template <typename CharacterType, typename ActionType>
class ImmutableNFANodeBuilder {
typedef ImmutableNFA<CharacterType, ActionType> TypedImmutableNFA;
[WTF] Remove the unnecessary inner class DefaultHash<T>::Hash https://bugs.webkit.org/show_bug.cgi?id=214389 Reviewed by Darin Adler. Source/JavaScriptCore: * assembler/MacroAssemblerCodeRef.h: * b3/B3CheckSpecial.h: * b3/B3Kind.h: * b3/B3ValueKey.h: * b3/air/AirAllocateRegistersByGraphColoring.cpp: * b3/air/AirArg.h: * b3/air/AirTmp.h: * bytecode/BytecodeIndex.h: * bytecode/CallVariant.h: * bytecode/CodeOrigin.h: * bytecode/DFGExitProfile.h: * bytecode/LazyOperandValueProfile.h: * bytecode/ObjectPropertyCondition.h: * bytecode/PropertyCondition.h: * dfg/DFGAbstractHeap.h: * dfg/DFGArgumentsEliminationPhase.cpp: * dfg/DFGByteCodeParser.cpp: * dfg/DFGCSEPhase.cpp: * dfg/DFGCompilationKey.h: * dfg/DFGDesiredGlobalProperty.h: * dfg/DFGHeapLocation.h: * dfg/DFGLivenessAnalysisPhase.cpp: * dfg/DFGMinifiedID.h: * dfg/DFGNodeFlowProjection.h: * dfg/DFGPromotedHeapLocation.h: * dfg/DFGPropertyTypeKey.h: * dfg/DFGPureValue.h: * ftl/FTLLocation.h: * ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSpread): (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread): (JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewObject): * ftl/FTLSlowPathCallKey.h: * heap/MarkedBlock.h: * heap/VisitRaceKey.h: * inspector/scripts/codegen/generate_cpp_protocol_types_header.py: * inspector/scripts/tests/expected/commands-with-async-attribute.json-result: * inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result: * inspector/scripts/tests/expected/enum-values.json-result: * inspector/scripts/tests/expected/type-declaration-array-type.json-result: * inspector/scripts/tests/expected/type-declaration-enum-type.json-result: * inspector/scripts/tests/expected/type-declaration-object-type.json-result: * inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result: * jit/ICStats.h: * jit/JITThunks.h: * jit/Reg.h: * jit/RegisterSet.h: * parser/VariableEnvironment.h: * profiler/ProfilerOrigin.h: * profiler/ProfilerOriginStack.h: * profiler/ProfilerUID.h: * runtime/CachedTypes.cpp: * runtime/ControlFlowProfiler.h: * runtime/NativeFunction.h: * runtime/PrototypeKey.h: * runtime/RegExpKey.h: * runtime/TemplateObjectDescriptor.h: * runtime/TypeProfiler.h: * runtime/VarOffset.h: * runtime/WeakGCMap.h: * wasm/WasmBBQPlan.h: * wasm/WasmCodeBlock.h: * wasm/WasmEntryPlan.h: * wasm/WasmLLIntPlan.h: * wasm/WasmSignature.h: Source/WebCore: * Modules/indexeddb/IDBDatabaseIdentifier.h: * Modules/indexeddb/shared/IDBResourceIdentifier.h: * Modules/webgpu/WHLSL/AST/WHLSLUnnamedTypeHash.h: * Modules/webgpu/WHLSL/WHLSLSemanticMatcher.cpp: (WebCore::WHLSL::matchResources): (WebCore::WHLSL::matchVertexAttributes): (WebCore::WHLSL::matchColorAttachments): * accessibility/AccessibilityObject.cpp: * accessibility/AccessibilityObject.h: * contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::serializeActions): * contentextensions/ContentExtensionRule.h: (WebCore::ContentExtensions::TriggerHash::hash): * contentextensions/ContentExtensionStyleSheet.h: * contentextensions/DFA.cpp: (WebCore::ContentExtensions::printTransitions): * contentextensions/DFABytecodeInterpreter.h: * contentextensions/DFACombiner.cpp: (WebCore::ContentExtensions::DFAMerger::getOrCreateCombinedNode): * contentextensions/DFANode.cpp: (WebCore::ContentExtensions::DFANode::bestFallbackTarget const): * contentextensions/ImmutableNFANodeBuilder.h: * contentextensions/NFA.cpp: (WebCore::ContentExtensions::NFA::debugPrintDot const): * contentextensions/NFANode.h: * contentextensions/NFAToDFA.cpp: (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate): * css/makeprop.pl: * css/parser/CSSParserContext.h: * dom/GCReachableRef.h: * dom/MessagePortIdentifier.h: * dom/NodeRareData.h: (WebCore::NodeListsNodeData::NodeListCacheMapEntryHash::hash): (WebCore::NodeListsNodeData::NodeListCacheMapEntryHash::equal): * dom/QualifiedName.h: * history/BackForwardItemIdentifier.h: * html/canvas/WebGLRenderingContextBase.h: * layout/LayoutUnits.h: * loader/AdClickAttribution.h: * loader/ResourceCryptographicDigest.h: (WTF::DefaultHash<WebCore::ResourceCryptographicDigest>::hash): (WTF::DefaultHash<WebCore::ResourceCryptographicDigest>::equal): (WTF::DefaultHash<WebCore::ResourceCryptographicDigest>::Hash::hash): Deleted. (WTF::DefaultHash<WebCore::ResourceCryptographicDigest>::Hash::equal): Deleted. * page/ClientOrigin.h: * page/GlobalWindowIdentifier.h: * page/SecurityOriginData.h: * page/SecurityOriginHash.h: * platform/Cookie.h: * platform/RegistrableDomain.h: * platform/graphics/ColorHash.h: * platform/graphics/FloatSizeHash.h: (WTF::FloatHash<WebCore::FloatSize>::hash): * platform/graphics/FontGenericFamilies.h: * platform/graphics/IntPointHash.h: * platform/graphics/IntRectHash.h: (WTF::IntHash<WebCore::IntRect>::hash): (WTF::IntHash<WebCore::IntRect>::equal): * platform/graphics/IntSizeHash.h: * platform/graphics/WidthCache.h: * platform/graphics/freetype/FontCacheFreeType.cpp: (WebCore::FallbackFontDescriptionKey::computeHash const): * platform/network/HTTPParsers.h: * platform/network/ProtectionSpaceHash.h: * platform/win/COMPtr.h: * platform/win/WindowsKeyNames.h: * rendering/CSSValueKey.h: * rendering/GridBaselineAlignment.h: * rendering/GridTrackSizingAlgorithm.h: * rendering/RenderGrid.cpp: (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid const): * rendering/RenderTheme.h: * style/RuleSet.cpp: (WebCore::Style::RuleSet::evaluateDynamicMediaQueryRules): * svg/SVGElement.h: (WebCore::SVGAttributeHashTranslator::hash): * workers/service/ServiceWorkerClientIdentifier.h: * workers/service/ServiceWorkerRegistrationKey.h: Source/WebCore/PAL: * pal/SessionID.h: Source/WebKit: * NetworkProcess/Downloads/DownloadID.h: * NetworkProcess/cache/NetworkCache.h: * NetworkProcess/cache/NetworkCacheKey.h: * Platform/IPC/MessageReceiverMap.h: * Platform/IPC/StringReference.h: * Shared/CallbackID.h: * UIProcess/API/cpp/WKRetainPtr.h: Source/WebKitLegacy/win: * COMPropertyBag.h: Source/WTF: DefaultHash<T> doesn't need to have a inner struct Hash. This can be a problem for forward declarations (Bug 214320 Comment 5). * wtf/BitVector.h: * wtf/Forward.h: * wtf/HashFunctions.h: (WTF::PairHash::hash): (WTF::PairHash::equal): (WTF::TupleHash::hash): (WTF::TupleHash::equal): * wtf/ListHashSet.h: * wtf/LoggingHashMap.h: * wtf/LoggingHashSet.h: * wtf/MetaAllocatorPtr.h: * wtf/ObjectIdentifier.h: * wtf/OptionSetHash.h: (WTF::DefaultHash<OptionSet<T>>::hash): (WTF::DefaultHash<OptionSet<T>>::equal): (WTF::DefaultHash<OptionSet<T>>::Hash::hash): Deleted. (WTF::DefaultHash<OptionSet<T>>::Hash::equal): Deleted. * wtf/Packed.h: * wtf/RetainPtr.h: * wtf/StackShot.h: * wtf/URLHash.h: * wtf/VectorHash.h: (WTF::VectorHash::hash): * wtf/text/AtomString.h: * wtf/text/AtomStringHash.h: * wtf/text/CString.h: * wtf/text/StringHash.h: * wtf/text/StringImpl.h: * wtf/text/SymbolRegistry.h: (WTF::DefaultHash<SymbolRegistryKey>::hash): (WTF::DefaultHash<SymbolRegistryKey>::equal): (WTF::DefaultHash<SymbolRegistryKey>::Hash::hash): Deleted. (WTF::DefaultHash<SymbolRegistryKey>::Hash::equal): Deleted. * wtf/text/WTFString.h: Tools: * TestWebKitAPI/Tests/WTF/DeletedAddressOfOperator.h: (WTF::DefaultHash<DeletedAddressOfOperator>::hash): (WTF::DefaultHash<DeletedAddressOfOperator>::equal): (WTF::DefaultHash<DeletedAddressOfOperator>::Hash::hash): Deleted. (WTF::DefaultHash<DeletedAddressOfOperator>::Hash::equal): Deleted. * TestWebKitAPI/Tests/WTF/HashCountedSet.cpp: (TestWebKitAPI::bucketForKey): * TestWebKitAPI/Tests/WTF/HashMap.cpp: (TestWebKitAPI::bucketForKey): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/HashSet.cpp: (TestWebKitAPI::testInitialCapacity): * TestWebKitAPI/Tests/WTF/MoveOnly.h: (WTF::DefaultHash<MoveOnly>::hash): (WTF::DefaultHash<MoveOnly>::equal): (WTF::DefaultHash<MoveOnly>::Hash::hash): Deleted. (WTF::DefaultHash<MoveOnly>::Hash::equal): Deleted. Canonical link: https://commits.webkit.org/227236@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@264488 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-07-17 00:33:37 +00:00
typedef HashSet<uint32_t, DefaultHash<uint32_t>, WTF::UnsignedWithZeroKeyHashTraits<uint32_t>> TargetSet;
Make the NFA transitions range-based https://bugs.webkit.org/show_bug.cgi?id=146338 Reviewed by Alex Christensen. Source/WebCore: Change the NFA to use range based transition for any kind of transition. The fallback transition is also absorbed as ranges. Previously, the NFA would only have single transitions and a fallback transition for all cases not covered by single transitions. The problem with that design was that character ranges (e.g. [a-z]) were extended as individual transitions. Something like [^a] would cover most of the alphabet with transitions. When converting the NFA to DFA, the time is proportional to the number of states multiplied by the number of transitions. With many individual transitions, the run time was an order of magnitude higher than what we want. This patch changes the NFA to only handle ranges of characters. A single transition becomes a range with the character as first and last character in the range ('a' becomes 'a' to 'a'). Ranges of characters are handled direclty (e.g. [a-z] becomes a single 'a' to 'z' transition). In the context of the state machines, ranges have identifies (the target of the transitions). When two ranges collide, they have to be split such that each part retain its target except the intersection that gets the union of the targets. Handling the union of ranges efficiently is critical because we have to do it for every NFA node in any subset when building the DFA. The helper class that does that is MutableRange. The union of ranges is done efficiently because of preconditions on our list of ranges: -The ranges must be sorted. -No range in a list can intersect any other range in the same list. To merge two ranges, we can go over them in order and split them part by part. It is easy to find what goes where because they are both sorted and we can compare the characters of each to know how to move forward. The time to merge 2 range list is proportional to O(n+m) where 'n' and 'm' are the number of ranges in each list. Since taking the union of two lists usually create new ranges, we have to allocate those somewhere efficiently. To do that, MutableRange support an inline capacity, which is used for the NFAToDFA Convertion. --- With ranges, the NFA-to-DFA conversion changes very little: -Each NFA nodes contains a list of ranges and each range has a list of targets. -The subset construction select any number of NFA nodes corresponding to a single deterministic state. -For the subset, we can use MutableRange to merge the ranges of every NFA node in the set. The resulting list has rangeis with targets corresponding to the union of all the transitions. -We go over all the ranges the same way we used to go over the transitions. Since the DFA does not support ranges, the ranges are spread as individual transitions + fallback transition. --- With the efficient merging solved, we still need the actual NFA to use ranges instead of individual transitions. I could have used MutableRange for that but it is not the most compact way to represent ranges that do not need merging. Instead, the NFA uses a custom structure: ImmutableNFA. It is basically the same thing, but in that one you cannot change a list of range after creating it. Consequently, the sorted ranges in ImmutableNFA are also subsequent in memory, which is really nice to go over them efficiently when merging ranges in the NFA-to-DFA conversion. :) When building the NFA, we don't know all the transitions when creating each node, BUT we know that we have very few node "unfinished" at any time. Since we build by going depth-first in the prefix-tree, we only have the max-depth of live nodes in the worst case. To help building the NFA out of the prefix tree, we have ImmutableNFANodeBuilder. It keeps all the informations about a NFA node, but in a non-compact, mutable form. When a ImmutableNFANodeBuilder is destroyed, it serialize the information into the immutable NFA. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::generateNFAForSubtree): (WebCore::ContentExtensions::CombinedURLFilters::processNFAs): * contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::empty): * contentextensions/DFA.h: * contentextensions/ImmutableNFA.h: Added. (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::end): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::end): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::debugPrint): (WebCore::ContentExtensions::ImmutableNFA::transitionsForNode): (WebCore::ContentExtensions::ImmutableNFA::root): (WebCore::ContentExtensions::ImmutableNFA::finalize): (WebCore::ContentExtensions::ImmutableNFA::memoryUsed): * contentextensions/ImmutableNFANodeBuilder.h: Added. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::setActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::finalize): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkTransitions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkEpsilonTransitions): * contentextensions/MutableRange.h: Added. (WebCore::ContentExtensions::MutableRange::MutableRange): (WebCore::ContentExtensions::MutableRange::operator=): (WebCore::ContentExtensions::MutableRange::size): * contentextensions/MutableRangeList.h: Added. (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator*): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator->): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator==): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator!=): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator++): (WebCore::ContentExtensions::MutableRangeList::begin): (WebCore::ContentExtensions::MutableRangeList::end): (WebCore::ContentExtensions::MutableRangeList::appendRange): (WebCore::ContentExtensions::MutableRangeList::extend): (WebCore::ContentExtensions::MutableRangeList::isEmpty): (WebCore::ContentExtensions::MutableRangeList::clear): (WebCore::ContentExtensions::MutableRangeList::debugPrint): (WebCore::ContentExtensions::MutableRangeList::insertBetween): (WebCore::ContentExtensions::MutableRangeList::initializeFrom): * contentextensions/NFA.cpp: (WebCore::ContentExtensions::NFA::debugPrintDot): (WebCore::ContentExtensions::NFA::NFA): Deleted. (WebCore::ContentExtensions::NFA::createNode): Deleted. (WebCore::ContentExtensions::NFA::memoryUsed): Deleted. (WebCore::ContentExtensions::NFA::addTransition): Deleted. (WebCore::ContentExtensions::NFA::addEpsilonTransition): Deleted. (WebCore::ContentExtensions::NFA::addTransitionsOnAnyCharacter): Deleted. (WebCore::ContentExtensions::NFA::setActions): Deleted. (WebCore::ContentExtensions::NFA::graphSize): Deleted. (WebCore::ContentExtensions::NFA::restoreToGraphSize): Deleted. (WebCore::ContentExtensions::printRange): Deleted. (WebCore::ContentExtensions::printTransitions): Deleted. * contentextensions/NFA.h: (WebCore::ContentExtensions::NFA::root): Deleted. (WebCore::ContentExtensions::NFA::addRuleId): Deleted. * contentextensions/NFANode.h: * contentextensions/NFAToDFA.cpp: (WebCore::ContentExtensions::epsilonClosureExcludingSelf): (WebCore::ContentExtensions::resolveEpsilonClosures): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::convert): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::extend): (WebCore::ContentExtensions::createCombinedTransition): (WebCore::ContentExtensions::canUseFallbackTransition): (WebCore::ContentExtensions::findBestFallbackTarget): (WebCore::ContentExtensions::getOrCreateDFANode): (WebCore::ContentExtensions::NFAToDFA::convert): (WebCore::ContentExtensions::populateTransitions): Deleted. * contentextensions/NFAToDFA.h: * contentextensions/Term.h: (WebCore::ContentExtensions::Term::Term): (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): (WebCore::ContentExtensions::Term::Term::generateGraph): Deleted. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: Test some new interesting cases. Canonical link: https://commits.webkit.org/164509@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186079 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-06-29 19:40:12 +00:00
public:
ImmutableNFANodeBuilder() { }
ImmutableNFANodeBuilder(TypedImmutableNFA& immutableNFA)
: m_immutableNFA(&immutableNFA)
, m_finalized(false)
{
m_nodeId = m_immutableNFA->nodes.size();
m_immutableNFA->nodes.append(ImmutableNFANode());
}
ImmutableNFANodeBuilder(ImmutableNFANodeBuilder&& other)
: m_immutableNFA(other.m_immutableNFA)
Replace WTF::move with WTFMove https://bugs.webkit.org/show_bug.cgi?id=152601 Reviewed by Brady Eidson. Source/JavaScriptCore: * API/ObjCCallbackFunction.mm: (JSC::ObjCCallbackFunctionImpl::ObjCCallbackFunctionImpl): (JSC::ObjCCallbackFunction::ObjCCallbackFunction): (JSC::ObjCCallbackFunction::create): (objCCallbackFunctionForInvocation): * assembler/AssemblerBuffer.h: (JSC::AssemblerBuffer::releaseAssemblerData): * assembler/LinkBuffer.cpp: (JSC::LinkBuffer::linkCode): * b3/B3BlockInsertionSet.cpp: (JSC::B3::BlockInsertionSet::insert): (JSC::B3::BlockInsertionSet::splitForward): * b3/B3LowerToAir.cpp: (JSC::B3::Air::LowerToAir::run): (JSC::B3::Air::LowerToAir::lower): * b3/B3OpaqueByproducts.cpp: (JSC::B3::OpaqueByproducts::add): * b3/B3Procedure.cpp: (JSC::B3::Procedure::addBlock): (JSC::B3::Procedure::addDataSection): * b3/B3Procedure.h: (JSC::B3::Procedure::releaseByproducts): * b3/B3ProcedureInlines.h: (JSC::B3::Procedure::add): * b3/B3Value.h: * b3/air/AirCode.cpp: (JSC::B3::Air::Code::addBlock): (JSC::B3::Air::Code::addStackSlot): (JSC::B3::Air::Code::addSpecial): * b3/air/AirInst.h: (JSC::B3::Air::Inst::Inst): * b3/air/AirIteratedRegisterCoalescing.cpp: * b3/air/AirSimplifyCFG.cpp: (JSC::B3::Air::simplifyCFG): * bindings/ScriptValue.cpp: (Deprecated::jsToInspectorValue): * builtins/BuiltinExecutables.cpp: (JSC::createExecutableInternal): * bytecode/BytecodeBasicBlock.cpp: (JSC::computeBytecodeBasicBlocks): * bytecode/CodeBlock.cpp: (JSC::CodeBlock::finishCreation): (JSC::CodeBlock::setCalleeSaveRegisters): * bytecode/CodeBlock.h: (JSC::CodeBlock::setJITCodeMap): (JSC::CodeBlock::livenessAnalysis): * bytecode/GetByIdStatus.cpp: (JSC::GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback): * bytecode/GetByIdVariant.cpp: (JSC::GetByIdVariant::GetByIdVariant): * bytecode/PolymorphicAccess.cpp: (JSC::PolymorphicAccess::regenerateWithCases): (JSC::PolymorphicAccess::regenerateWithCase): (JSC::PolymorphicAccess::regenerate): * bytecode/PutByIdStatus.cpp: (JSC::PutByIdStatus::computeForStubInfo): * bytecode/PutByIdVariant.cpp: (JSC::PutByIdVariant::setter): * bytecode/StructureStubClearingWatchpoint.cpp: (JSC::StructureStubClearingWatchpoint::push): * bytecode/StructureStubClearingWatchpoint.h: (JSC::StructureStubClearingWatchpoint::StructureStubClearingWatchpoint): * bytecode/StructureStubInfo.cpp: (JSC::StructureStubInfo::addAccessCase): * bytecode/UnlinkedCodeBlock.cpp: (JSC::UnlinkedCodeBlock::setInstructions): * bytecode/UnlinkedFunctionExecutable.cpp: (JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable): * bytecode/UnlinkedFunctionExecutable.h: * bytecompiler/SetForScope.h: (JSC::SetForScope::SetForScope): * dfg/DFGGraph.cpp: (JSC::DFG::Graph::livenessFor): (JSC::DFG::Graph::killsFor): * dfg/DFGJITCompiler.cpp: (JSC::DFG::JITCompiler::link): (JSC::DFG::JITCompiler::compile): (JSC::DFG::JITCompiler::compileFunction): * dfg/DFGJITFinalizer.cpp: (JSC::DFG::JITFinalizer::JITFinalizer): * dfg/DFGLivenessAnalysisPhase.cpp: (JSC::DFG::LivenessAnalysisPhase::process): * dfg/DFGObjectAllocationSinkingPhase.cpp: * dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::addSlowPathGenerator): (JSC::DFG::SpeculativeJIT::compileIn): (JSC::DFG::SpeculativeJIT::compileCreateDirectArguments): * dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::cachedGetById): (JSC::DFG::SpeculativeJIT::cachedPutById): * dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::cachedGetById): (JSC::DFG::SpeculativeJIT::cachedPutById): * dfg/DFGWorklist.cpp: (JSC::DFG::Worklist::finishCreation): * disassembler/Disassembler.cpp: (JSC::disassembleAsynchronously): * ftl/FTLB3Compile.cpp: (JSC::FTL::compile): * ftl/FTLCompile.cpp: (JSC::FTL::mmAllocateDataSection): * ftl/FTLJITCode.cpp: (JSC::FTL::JITCode::initializeB3Byproducts): * ftl/FTLJITFinalizer.h: (JSC::FTL::OutOfLineCodeInfo::OutOfLineCodeInfo): * ftl/FTLLink.cpp: (JSC::FTL::link): * ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::DFG::LowerDFGToLLVM::compileTailCall): (JSC::FTL::DFG::LowerDFGToLLVM::lazySlowPath): * heap/Heap.cpp: (JSC::Heap::releaseDelayedReleasedObjects): (JSC::Heap::markRoots): (JSC::Heap::setIncrementalSweeper): * heap/HeapInlines.h: (JSC::Heap::releaseSoon): (JSC::Heap::registerWeakGCMap): * heap/WeakInlines.h: * inspector/ConsoleMessage.cpp: (Inspector::ConsoleMessage::addToFrontend): * inspector/ContentSearchUtilities.cpp: (Inspector::ContentSearchUtilities::searchInTextByLines): * inspector/InjectedScript.cpp: (Inspector::InjectedScript::getFunctionDetails): (Inspector::InjectedScript::getProperties): (Inspector::InjectedScript::getDisplayableProperties): (Inspector::InjectedScript::getInternalProperties): (Inspector::InjectedScript::getCollectionEntries): (Inspector::InjectedScript::wrapCallFrames): * inspector/InspectorAgentRegistry.cpp: (Inspector::AgentRegistry::append): (Inspector::AgentRegistry::appendExtraAgent): * inspector/InspectorBackendDispatcher.cpp: (Inspector::BackendDispatcher::CallbackBase::CallbackBase): (Inspector::BackendDispatcher::CallbackBase::sendSuccess): (Inspector::BackendDispatcher::BackendDispatcher): (Inspector::BackendDispatcher::create): (Inspector::BackendDispatcher::sendPendingErrors): * inspector/InspectorProtocolTypes.h: (Inspector::Protocol::Array::addItem): * inspector/InspectorValues.cpp: * inspector/InspectorValues.h: (Inspector::InspectorObjectBase::setValue): (Inspector::InspectorObjectBase::setObject): (Inspector::InspectorObjectBase::setArray): (Inspector::InspectorArrayBase::pushValue): (Inspector::InspectorArrayBase::pushObject): (Inspector::InspectorArrayBase::pushArray): * inspector/JSGlobalObjectConsoleClient.cpp: (Inspector::JSGlobalObjectConsoleClient::messageWithTypeAndLevel): (Inspector::JSGlobalObjectConsoleClient::timeEnd): * inspector/JSGlobalObjectInspectorController.cpp: (Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController): (Inspector::JSGlobalObjectInspectorController::appendExtraAgent): * inspector/JSInjectedScriptHost.cpp: (Inspector::JSInjectedScriptHost::JSInjectedScriptHost): * inspector/JSInjectedScriptHost.h: (Inspector::JSInjectedScriptHost::create): * inspector/agents/InspectorAgent.cpp: (Inspector::InspectorAgent::activateExtraDomain): * inspector/agents/InspectorConsoleAgent.cpp: (Inspector::InspectorConsoleAgent::addMessageToConsole): (Inspector::InspectorConsoleAgent::addConsoleMessage): * inspector/agents/InspectorDebuggerAgent.cpp: (Inspector::InspectorDebuggerAgent::setBreakpointByUrl): (Inspector::InspectorDebuggerAgent::resolveBreakpoint): (Inspector::InspectorDebuggerAgent::schedulePauseOnNextStatement): (Inspector::InspectorDebuggerAgent::breakpointActionProbe): (Inspector::InspectorDebuggerAgent::breakProgram): * inspector/agents/InspectorHeapAgent.cpp: (Inspector::InspectorHeapAgent::didGarbageCollect): * inspector/agents/InspectorRuntimeAgent.cpp: (Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets): (Inspector::InspectorRuntimeAgent::getBasicBlocks): * inspector/agents/InspectorScriptProfilerAgent.cpp: (Inspector::InspectorScriptProfilerAgent::addEvent): (Inspector::buildInspectorObject): (Inspector::buildProfileInspectorObject): (Inspector::InspectorScriptProfilerAgent::trackingComplete): * inspector/augmentable/AlternateDispatchableAgent.h: * inspector/scripts/codegen/cpp_generator_templates.py: * inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py: (CppBackendDispatcherImplementationGenerator._generate_small_dispatcher_switch_implementation_for_domain): (CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command): * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py: (CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_event): * inspector/scripts/codegen/generate_cpp_protocol_types_header.py: (_generate_unchecked_setter_for_member): * inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py: (ObjCConfigurationImplementationGenerator._generate_success_block_for_command): * inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py: (ObjCFrontendDispatcherImplementationGenerator._generate_event_out_parameters): * inspector/scripts/codegen/objc_generator_templates.py: * inspector/scripts/tests/expected/commands-with-async-attribute.json-result: * inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result: * inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result: * inspector/scripts/tests/expected/enum-values.json-result: * inspector/scripts/tests/expected/events-with-optional-parameters.json-result: * inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result: * inspector/scripts/tests/expected/same-type-id-different-domain.json-result: * inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result: * inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result: * inspector/scripts/tests/expected/type-declaration-array-type.json-result: * inspector/scripts/tests/expected/type-declaration-enum-type.json-result: * inspector/scripts/tests/expected/type-declaration-object-type.json-result: * inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result: * jit/CallFrameShuffler.cpp: (JSC::CallFrameShuffler::performSafeWrites): * jit/PolymorphicCallStubRoutine.cpp: (JSC::PolymorphicCallStubRoutine::PolymorphicCallStubRoutine): * jit/Repatch.cpp: (JSC::tryCacheGetByID): (JSC::tryCachePutByID): (JSC::tryRepatchIn): (JSC::linkPolymorphicCall): * parser/Nodes.cpp: (JSC::ProgramNode::setClosedVariables): * parser/Parser.cpp: (JSC::Parser<LexerType>::parseInner): (JSC::Parser<LexerType>::parseFunctionInfo): * parser/Parser.h: (JSC::Parser::closedVariables): * parser/SourceProviderCache.cpp: (JSC::SourceProviderCache::add): * profiler/ProfileNode.h: (JSC::CalculateProfileSubtreeDataFunctor::returnValue): * replay/EncodedValue.cpp: (JSC::EncodedValue::get<EncodedValue>): * replay/scripts/CodeGeneratorReplayInputs.py: (Generator.generate_member_move_expression): * replay/scripts/tests/expected/generate-enum-with-guard.json-TestReplayInputs.cpp: (Test::HandleWheelEvent::HandleWheelEvent): (JSC::InputTraits<Test::HandleWheelEvent>::decode): * replay/scripts/tests/expected/generate-memoized-type-modes.json-TestReplayInputs.cpp: (Test::MapInput::MapInput): (JSC::InputTraits<Test::MapInput>::decode): * runtime/ConsoleClient.cpp: (JSC::ConsoleClient::internalMessageWithTypeAndLevel): (JSC::ConsoleClient::logWithLevel): (JSC::ConsoleClient::clear): (JSC::ConsoleClient::dir): (JSC::ConsoleClient::dirXML): (JSC::ConsoleClient::table): (JSC::ConsoleClient::trace): (JSC::ConsoleClient::assertCondition): (JSC::ConsoleClient::group): (JSC::ConsoleClient::groupCollapsed): (JSC::ConsoleClient::groupEnd): * runtime/JSNativeStdFunction.cpp: (JSC::JSNativeStdFunction::create): * runtime/JSString.h: (JSC::jsNontrivialString): * runtime/JSStringJoiner.cpp: (JSC::JSStringJoiner::join): * runtime/JSStringJoiner.h: (JSC::JSStringJoiner::append): * runtime/NativeStdFunctionCell.cpp: (JSC::NativeStdFunctionCell::create): (JSC::NativeStdFunctionCell::NativeStdFunctionCell): * runtime/ScopedArgumentsTable.cpp: (JSC::ScopedArgumentsTable::setLength): * runtime/StructureIDTable.cpp: (JSC::StructureIDTable::resize): * runtime/TypeSet.cpp: (JSC::StructureShape::inspectorRepresentation): * runtime/WeakGCMap.h: (JSC::WeakGCMap::set): * tools/CodeProfile.h: (JSC::CodeProfile::addChild): * yarr/YarrInterpreter.cpp: (JSC::Yarr::ByteCompiler::compile): (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd): * yarr/YarrInterpreter.h: (JSC::Yarr::BytecodePattern::BytecodePattern): * yarr/YarrPattern.cpp: (JSC::Yarr::YarrPatternConstructor::YarrPatternConstructor): (JSC::Yarr::YarrPatternConstructor::reset): (JSC::Yarr::YarrPatternConstructor::atomPatternCharacter): (JSC::Yarr::YarrPatternConstructor::atomCharacterClassEnd): (JSC::Yarr::YarrPatternConstructor::atomParenthesesSubpatternBegin): (JSC::Yarr::YarrPatternConstructor::atomParentheticalAssertionBegin): (JSC::Yarr::YarrPatternConstructor::copyDisjunction): Source/WebCore: * Modules/battery/NavigatorBattery.cpp: (WebCore::NavigatorBattery::from): * Modules/encryptedmedia/CDMSessionClearKey.cpp: (WebCore::CDMSessionClearKey::update): * Modules/encryptedmedia/MediaKeys.cpp: (WebCore::MediaKeys::create): (WebCore::MediaKeys::MediaKeys): * Modules/gamepad/NavigatorGamepad.cpp: (WebCore::NavigatorGamepad::from): * Modules/gamepad/deprecated/NavigatorGamepad.cpp: (WebCore::NavigatorGamepad::from): * Modules/geolocation/GeoNotifier.cpp: (WebCore::GeoNotifier::GeoNotifier): (WebCore::GeoNotifier::setFatalError): * Modules/geolocation/GeoNotifier.h: (WebCore::GeoNotifier::create): * Modules/geolocation/Geolocation.cpp: (WebCore::Geolocation::Watchers::add): (WebCore::Geolocation::getCurrentPosition): (WebCore::Geolocation::watchPosition): * Modules/geolocation/GeolocationController.cpp: (WebCore::GeolocationController::viewStateDidChange): * Modules/geolocation/Geoposition.h: (WebCore::Geoposition::create): (WebCore::Geoposition::Geoposition): * Modules/geolocation/NavigatorGeolocation.cpp: (WebCore::NavigatorGeolocation::from): * Modules/indexeddb/DOMWindowIndexedDatabase.cpp: (WebCore::DOMWindowIndexedDatabase::from): * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp: (WebCore::WorkerGlobalScopeIndexedDatabase::from): * Modules/indexeddb/client/IDBAnyImpl.cpp: (WebCore::IDBClient::IDBAny::IDBAny): * Modules/indexeddb/client/IDBAnyImpl.h: (WebCore::IDBClient::IDBAny::create): * Modules/indexeddb/client/IDBDatabaseImpl.cpp: (WebCore::IDBClient::IDBDatabase::willCommitTransaction): (WebCore::IDBClient::IDBDatabase::willAbortTransaction): (WebCore::IDBClient::IDBDatabase::fireVersionChangeEvent): * Modules/indexeddb/client/IDBIndexImpl.cpp: (WebCore::IDBClient::IDBIndex::openCursor): (WebCore::IDBClient::IDBIndex::openKeyCursor): * Modules/indexeddb/client/IDBObjectStoreImpl.cpp: (WebCore::IDBClient::IDBObjectStore::openCursor): (WebCore::IDBClient::IDBObjectStore::get): (WebCore::IDBClient::IDBObjectStore::deleteFunction): (WebCore::IDBClient::IDBObjectStore::createIndex): (WebCore::IDBClient::IDBObjectStore::index): * Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp: (WebCore::IDBClient::IDBOpenDBRequest::onSuccess): (WebCore::IDBClient::IDBOpenDBRequest::onUpgradeNeeded): * Modules/indexeddb/client/IDBRequestImpl.cpp: (WebCore::IDBClient::IDBRequest::enqueueEvent): (WebCore::IDBClient::IDBRequest::setResult): (WebCore::IDBClient::IDBRequest::setResultToStructuredClone): * Modules/indexeddb/client/IDBTransactionImpl.cpp: (WebCore::IDBClient::IDBTransaction::abort): (WebCore::IDBClient::IDBTransaction::scheduleOperation): (WebCore::IDBClient::IDBTransaction::commit): (WebCore::IDBClient::IDBTransaction::enqueueEvent): (WebCore::IDBClient::IDBTransaction::createObjectStore): (WebCore::IDBClient::IDBTransaction::createIndex): (WebCore::IDBClient::IDBTransaction::doRequestOpenCursor): (WebCore::IDBClient::IDBTransaction::iterateCursor): (WebCore::IDBClient::IDBTransaction::requestGetRecord): (WebCore::IDBClient::IDBTransaction::requestIndexRecord): (WebCore::IDBClient::IDBTransaction::requestClearObjectStore): (WebCore::IDBClient::IDBTransaction::requestPutOrAdd): (WebCore::IDBClient::IDBTransaction::deleteObjectStore): (WebCore::IDBClient::IDBTransaction::deleteIndex): * Modules/indexeddb/legacy/IDBDatabaseBackend.cpp: (WebCore::IDBDatabaseBackend::processPendingOpenCalls): * Modules/indexeddb/legacy/IDBDatabaseBackend.h: (WebCore::IDBDatabaseBackend::setPendingSecondHalfOpen): * Modules/indexeddb/legacy/LegacyAny.h: (WebCore::LegacyAny::create): * Modules/indexeddb/legacy/LegacyDatabase.cpp: (WebCore::LegacyDatabase::enqueueEvent): * Modules/indexeddb/legacy/LegacyRequest.cpp: (WebCore::LegacyRequest::enqueueEvent): * Modules/indexeddb/legacy/LegacyTransaction.cpp: (WebCore::LegacyTransaction::enqueueEvent): * Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::postDatabaseTask): (WebCore::IDBServer::IDBServer::postDatabaseTaskReply): * Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp: (WebCore::IDBServer::MemoryBackingStoreTransaction::indexDeleted): (WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreDeleted): (WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreCleared): (WebCore::IDBServer::MemoryBackingStoreTransaction::indexCleared): (WebCore::IDBServer::MemoryBackingStoreTransaction::abort): * Modules/indexeddb/server/MemoryIDBBackingStore.cpp: (WebCore::IDBServer::MemoryIDBBackingStore::beginTransaction): (WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore): (WebCore::IDBServer::MemoryIDBBackingStore::deleteObjectStore): (WebCore::IDBServer::MemoryIDBBackingStore::restoreObjectStoreForVersionChangeAbort): (WebCore::IDBServer::MemoryIDBBackingStore::registerObjectStore): * Modules/indexeddb/server/MemoryIndex.cpp: (WebCore::IDBServer::MemoryIndex::objectStoreCleared): (WebCore::IDBServer::MemoryIndex::replaceIndexValueStore): * Modules/indexeddb/server/MemoryObjectStore.cpp: (WebCore::IDBServer::MemoryObjectStore::createIndex): (WebCore::IDBServer::MemoryObjectStore::maybeRestoreDeletedIndex): (WebCore::IDBServer::MemoryObjectStore::deleteIndex): (WebCore::IDBServer::MemoryObjectStore::clear): (WebCore::IDBServer::MemoryObjectStore::replaceKeyValueStore): (WebCore::IDBServer::MemoryObjectStore::registerIndex): * Modules/indexeddb/server/ServerOpenDBRequest.cpp: (WebCore::IDBServer::ServerOpenDBRequest::notifiedConnectionsOfVersionChange): * Modules/indexeddb/server/UniqueIDBDatabase.cpp: (WebCore::IDBServer::UniqueIDBDatabase::openDatabaseConnection): (WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation): (WebCore::IDBServer::UniqueIDBDatabase::startVersionChangeTransaction): (WebCore::IDBServer::UniqueIDBDatabase::maybeNotifyConnectionsOfVersionChange): (WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient): (WebCore::IDBServer::UniqueIDBDatabase::enqueueTransaction): (WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction): * Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp: (WebCore::IDBServer::UniqueIDBDatabaseConnection::establishTransaction): * Modules/indexeddb/shared/IndexKey.cpp: (WebCore::IndexKey::isolatedCopy): * Modules/mediasession/WebMediaSessionManager.cpp: (WebCore::WebMediaSessionManager::setPlaybackTarget): * Modules/mediasource/MediaSource.cpp: (WebCore::MediaSource::setPrivateAndOpen): * Modules/mediasource/SourceBuffer.cpp: (WebCore::SourceBuffer::create): (WebCore::SourceBuffer::SourceBuffer): * Modules/mediastream/MediaDevices.cpp: (WebCore::MediaDevices::getUserMedia): (WebCore::MediaDevices::enumerateDevices): * Modules/mediastream/MediaDevicesRequest.cpp: (WebCore::MediaDevicesRequest::create): (WebCore::MediaDevicesRequest::MediaDevicesRequest): * Modules/mediastream/MediaStream.cpp: (WebCore::MediaStream::create): (WebCore::MediaStream::MediaStream): (WebCore::MediaStream::addTrack): (WebCore::MediaStream::didRemoveTrack): (WebCore::MediaStream::internalAddTrack): (WebCore::MediaStream::internalRemoveTrack): * Modules/mediastream/NavigatorMediaDevices.cpp: (WebCore::NavigatorMediaDevices::from): * Modules/mediastream/RTCConfiguration.cpp: (WebCore::RTCConfiguration::initialize): * Modules/mediastream/RTCDTMFSender.cpp: (WebCore::RTCDTMFSender::create): (WebCore::RTCDTMFSender::RTCDTMFSender): (WebCore::RTCDTMFSender::scheduleDispatchEvent): * Modules/mediastream/RTCDataChannel.cpp: (WebCore::RTCDataChannel::create): (WebCore::RTCDataChannel::RTCDataChannel): (WebCore::RTCDataChannel::scheduleDispatchEvent): * Modules/mediastream/RTCIceCandidateEvent.cpp: (WebCore::RTCIceCandidateEvent::create): (WebCore::RTCIceCandidateEvent::RTCIceCandidateEvent): * Modules/mediastream/RTCPeerConnection.cpp: (WebCore::RTCPeerConnection::create): (WebCore::RTCPeerConnection::RTCPeerConnection): (WebCore::RTCPeerConnection::addTrack): (WebCore::RTCPeerConnection::queuedCreateOffer): (WebCore::RTCPeerConnection::queuedCreateAnswer): (WebCore::RTCPeerConnection::queuedSetLocalDescription): (WebCore::RTCPeerConnection::queuedSetRemoteDescription): (WebCore::RTCPeerConnection::queuedAddIceCandidate): (WebCore::RTCPeerConnection::setConfiguration): (WebCore::RTCPeerConnection::privateGetStats): * Modules/mediastream/RTCRtpReceiver.cpp: (WebCore::RTCRtpReceiver::RTCRtpReceiver): * Modules/mediastream/RTCRtpReceiver.h: (WebCore::RTCRtpReceiver::create): * Modules/mediastream/RTCRtpSender.cpp: (WebCore::RTCRtpSender::RTCRtpSender): * Modules/mediastream/RTCRtpSender.h: (WebCore::RTCRtpSender::create): * Modules/mediastream/RTCTrackEvent.cpp: (WebCore::RTCTrackEvent::create): * Modules/mediastream/UserMediaRequest.cpp: (WebCore::UserMediaRequest::start): (WebCore::UserMediaRequest::UserMediaRequest): * Modules/navigatorcontentutils/NavigatorContentUtils.cpp: (WebCore::provideNavigatorContentUtilsTo): * Modules/navigatorcontentutils/NavigatorContentUtils.h: * Modules/notifications/DOMWindowNotifications.cpp: (WebCore::DOMWindowNotifications::from): * Modules/notifications/NotificationCenter.cpp: (WebCore::NotificationCenter::timerFired): * Modules/notifications/WorkerGlobalScopeNotifications.cpp: (WebCore::WorkerGlobalScopeNotifications::from): * Modules/plugins/QuickTimePluginReplacement.mm: (WebCore::QuickTimePluginReplacement::createElementRenderer): * Modules/plugins/YouTubePluginReplacement.cpp: (WebCore::YouTubePluginReplacement::createElementRenderer): (WebCore::YouTubePluginReplacement::installReplacement): * Modules/quota/DOMWindowQuota.cpp: (WebCore::DOMWindowQuota::from): * Modules/quota/NavigatorStorageQuota.cpp: (WebCore::NavigatorStorageQuota::from): * Modules/quota/WorkerNavigatorStorageQuota.cpp: (WebCore::WorkerNavigatorStorageQuota::from): * Modules/speech/DOMWindowSpeechSynthesis.cpp: (WebCore::DOMWindowSpeechSynthesis::from): * Modules/speech/SpeechSynthesis.cpp: (WebCore::SpeechSynthesis::setPlatformSynthesizer): * Modules/webaudio/AsyncAudioDecoder.cpp: (WebCore::AsyncAudioDecoder::decodeAsync): * Modules/webaudio/AudioContext.cpp: (WebCore::AudioContext::addReaction): (WebCore::AudioContext::suspend): (WebCore::AudioContext::resume): (WebCore::AudioContext::close): * Modules/webaudio/AudioNode.cpp: (WebCore::AudioNode::addInput): (WebCore::AudioNode::addOutput): * Modules/webaudio/AudioScheduledSourceNode.cpp: (WebCore::AudioScheduledSourceNode::addEventListener): * Modules/webaudio/ConvolverNode.cpp: (WebCore::ConvolverNode::setBuffer): * Modules/webaudio/MediaStreamAudioDestinationNode.cpp: (WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode): * Modules/webaudio/ScriptProcessorNode.cpp: (WebCore::ScriptProcessorNode::addEventListener): * Modules/webdatabase/Database.cpp: (WebCore::Database::openAndVerifyVersion): (WebCore::Database::scheduleTransaction): (WebCore::Database::scheduleTransactionStep): (WebCore::Database::markAsDeletedAndClose): (WebCore::Database::runTransaction): (WebCore::Database::tableNames): * Modules/webdatabase/DatabaseThread.cpp: (WebCore::DatabaseThread::scheduleTask): (WebCore::DatabaseThread::scheduleImmediateTask): * Modules/webdatabase/SQLTransaction.cpp: (WebCore::SQLTransaction::create): (WebCore::SQLTransaction::SQLTransaction): (WebCore::SQLTransaction::executeSQL): * Modules/webdatabase/SQLTransactionBackend.cpp: (WebCore::SQLTransactionBackend::enqueueStatementBackend): (WebCore::SQLTransactionBackend::executeSQL): * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp: (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData): (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks): * Modules/websockets/WebSocket.cpp: (WebCore::WebSocket::didReceiveBinaryData): (WebCore::WebSocket::dispatchOrQueueEvent): * Modules/websockets/WebSocketChannel.cpp: (WebCore::WebSocketChannel::processFrame): * Modules/websockets/WebSocketExtensionDispatcher.cpp: (WebCore::WebSocketExtensionDispatcher::addProcessor): * Modules/websockets/WebSocketHandshake.cpp: (WebCore::WebSocketHandshake::addExtensionProcessor): * Modules/websockets/WorkerThreadableWebSocketChannel.cpp: (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData): * accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::notificationPostTimerFired): (WebCore::AXObjectCache::passwordNotificationPostTimerFired): * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::ariaLabeledByText): * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::selectText): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityText::AccessibilityText): * bindings/gobject/DOMObjectCache.cpp: * bindings/js/IDBBindingUtilities.cpp: (WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath): (WebCore::generateIndexKeyForValue): * bindings/js/JSCryptoAlgorithmDictionary.cpp: (WebCore::createAesCbcParams): (WebCore::createAesKeyGenParams): (WebCore::createHmacParams): (WebCore::createHmacKeyParams): (WebCore::createRsaKeyGenParams): (WebCore::createRsaOaepParams): (WebCore::createRsaSsaParams): * bindings/js/JSCryptoKeySerializationJWK.cpp: (WebCore::createHMACParameters): (WebCore::createRSAKeyParametersWithHash): (WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm): * bindings/js/JSDOMPromise.h: (WebCore::DOMPromise::DOMPromise): * bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::queueTaskToEventLoop): * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::setTimeout): (WebCore::JSDOMWindow::setInterval): * bindings/js/JSDOMWrapper.h: (WebCore::JSDOMWrapper::JSDOMWrapper): * bindings/js/JSMessageEventCustom.cpp: (WebCore::handleInitMessageEvent): * bindings/js/JSSubtleCryptoCustom.cpp: (WebCore::JSSubtleCrypto::encrypt): (WebCore::JSSubtleCrypto::decrypt): (WebCore::JSSubtleCrypto::sign): (WebCore::JSSubtleCrypto::verify): (WebCore::JSSubtleCrypto::digest): (WebCore::JSSubtleCrypto::generateKey): (WebCore::importKey): (WebCore::JSSubtleCrypto::importKey): (WebCore::JSSubtleCrypto::exportKey): (WebCore::JSSubtleCrypto::wrapKey): (WebCore::JSSubtleCrypto::unwrapKey): * bindings/js/JSWorkerGlobalScopeCustom.cpp: (WebCore::JSWorkerGlobalScope::setTimeout): (WebCore::JSWorkerGlobalScope::setInterval): * bindings/js/SerializedScriptValue.cpp: (WebCore::CloneDeserializer::readRSAKey): (WebCore::CloneDeserializer::readTerminal): (WebCore::SerializedScriptValue::SerializedScriptValue): (WebCore::SerializedScriptValue::create): * bindings/scripts/CodeGeneratorJS.pm: (GenerateHeader): (GenerateImplementation): * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: (WebCore::JSTestActiveDOMObject::JSTestActiveDOMObject): * bindings/scripts/test/JS/JSTestActiveDOMObject.h: (WebCore::JSTestActiveDOMObject::create): * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp: (WebCore::JSTestClassWithJSBuiltinConstructor::JSTestClassWithJSBuiltinConstructor): * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h: (WebCore::JSTestClassWithJSBuiltinConstructor::create): * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp: (WebCore::JSTestCustomConstructorWithNoInterfaceObject::JSTestCustomConstructorWithNoInterfaceObject): * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h: (WebCore::JSTestCustomConstructorWithNoInterfaceObject::create): * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: (WebCore::JSTestCustomNamedGetter::JSTestCustomNamedGetter): * bindings/scripts/test/JS/JSTestCustomNamedGetter.h: (WebCore::JSTestCustomNamedGetter::create): * bindings/scripts/test/JS/JSTestEventConstructor.cpp: (WebCore::JSTestEventConstructor::JSTestEventConstructor): * bindings/scripts/test/JS/JSTestEventConstructor.h: (WebCore::JSTestEventConstructor::create): * bindings/scripts/test/JS/JSTestEventTarget.cpp: (WebCore::JSTestEventTarget::JSTestEventTarget): * bindings/scripts/test/JS/JSTestEventTarget.h: (WebCore::JSTestEventTarget::create): * bindings/scripts/test/JS/JSTestException.cpp: (WebCore::JSTestException::JSTestException): * bindings/scripts/test/JS/JSTestException.h: (WebCore::JSTestException::create): * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: (WebCore::JSTestGenerateIsReachable::JSTestGenerateIsReachable): * bindings/scripts/test/JS/JSTestGenerateIsReachable.h: (WebCore::JSTestGenerateIsReachable::create): * bindings/scripts/test/JS/JSTestInterface.cpp: (WebCore::JSTestInterface::JSTestInterface): * bindings/scripts/test/JS/JSTestInterface.h: * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: (WebCore::JSTestMediaQueryListListener::JSTestMediaQueryListListener): * bindings/scripts/test/JS/JSTestMediaQueryListListener.h: (WebCore::JSTestMediaQueryListListener::create): * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: (WebCore::JSTestNamedConstructor::JSTestNamedConstructor): * bindings/scripts/test/JS/JSTestNamedConstructor.h: (WebCore::JSTestNamedConstructor::create): * bindings/scripts/test/JS/JSTestNode.cpp: (WebCore::JSTestNode::JSTestNode): * bindings/scripts/test/JS/JSTestNode.h: * bindings/scripts/test/JS/JSTestNondeterministic.cpp: (WebCore::JSTestNondeterministic::JSTestNondeterministic): * bindings/scripts/test/JS/JSTestNondeterministic.h: (WebCore::JSTestNondeterministic::create): * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::JSTestObj::JSTestObj): * bindings/scripts/test/JS/JSTestObj.h: (WebCore::JSTestObj::create): * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: (WebCore::JSTestOverloadedConstructors::JSTestOverloadedConstructors): * bindings/scripts/test/JS/JSTestOverloadedConstructors.h: (WebCore::JSTestOverloadedConstructors::create): * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp: (WebCore::JSTestOverrideBuiltins::JSTestOverrideBuiltins): * bindings/scripts/test/JS/JSTestOverrideBuiltins.h: (WebCore::JSTestOverrideBuiltins::create): * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: (WebCore::JSTestSerializedScriptValueInterface::JSTestSerializedScriptValueInterface): * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h: (WebCore::JSTestSerializedScriptValueInterface::create): * bindings/scripts/test/JS/JSTestTypedefs.cpp: (WebCore::JSTestTypedefs::JSTestTypedefs): * bindings/scripts/test/JS/JSTestTypedefs.h: (WebCore::JSTestTypedefs::create): * bindings/scripts/test/JS/JSattribute.cpp: (WebCore::JSattribute::JSattribute): * bindings/scripts/test/JS/JSattribute.h: (WebCore::JSattribute::create): * bindings/scripts/test/JS/JSreadonly.cpp: (WebCore::JSreadonly::JSreadonly): * bindings/scripts/test/JS/JSreadonly.h: (WebCore::JSreadonly::create): * bridge/c/CRuntimeObject.cpp: (JSC::Bindings::CRuntimeObject::CRuntimeObject): * bridge/c/CRuntimeObject.h: (JSC::Bindings::CRuntimeObject::create): * bridge/c/c_class.cpp: (JSC::Bindings::CClass::methodNamed): (JSC::Bindings::CClass::fieldNamed): * bridge/c/c_instance.cpp: (JSC::Bindings::CInstance::CInstance): * bridge/c/c_instance.h: (JSC::Bindings::CInstance::create): * bridge/jsc/BridgeJSC.cpp: (JSC::Bindings::Array::Array): (JSC::Bindings::Instance::Instance): * bridge/objc/ObjCRuntimeObject.h: (JSC::Bindings::ObjCRuntimeObject::create): * bridge/objc/objc_class.mm: (JSC::Bindings::ObjcClass::methodNamed): (JSC::Bindings::ObjcClass::fieldNamed): * bridge/objc/objc_instance.mm: (ObjcInstance::ObjcInstance): (ObjcInstance::create): * bridge/objc/objc_runtime.mm: (JSC::Bindings::ObjcArray::ObjcArray): * bridge/runtime_object.cpp: (JSC::Bindings::RuntimeObject::RuntimeObject): * bridge/runtime_object.h: * contentextensions/CombinedFiltersAlphabet.cpp: (WebCore::ContentExtensions::TermCreatorTranslator::translate): * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::ActiveSubtree::ActiveSubtree): (WebCore::ContentExtensions::generateSuffixWithReverseSuffixTree): (WebCore::ContentExtensions::generateNFAForSubtree): (WebCore::ContentExtensions::CombinedURLFilters::processNFAs): * contentextensions/ContentExtension.cpp: (WebCore::ContentExtensions::ContentExtension::create): (WebCore::ContentExtensions::ContentExtension::ContentExtension): * contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList): * contentextensions/ContentExtensionParser.cpp: (WebCore::ContentExtensions::loadEncodedRules): * contentextensions/ContentExtensionsBackend.cpp: (WebCore::ContentExtensions::ContentExtensionsBackend::addContentExtension): * contentextensions/DFACombiner.cpp: (WebCore::ContentExtensions::DFACombiner::combineDFAs): * contentextensions/DFACombiner.h: (WebCore::ContentExtensions::DFACombiner::addDFA): * contentextensions/ImmutableNFANodeBuilder.h: (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): * contentextensions/MutableRange.h: (WebCore::ContentExtensions::MutableRange::MutableRange): (WebCore::ContentExtensions::MutableRange::operator=): * contentextensions/MutableRangeList.h: (WebCore::ContentExtensions::MutableRangeList::extend): (WebCore::ContentExtensions::MutableRangeList::insertBetween): * contentextensions/Term.h: (WebCore::ContentExtensions::Term::Term): (WebCore::ContentExtensions::Term::operator=): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): * crypto/CryptoAlgorithm.cpp: (WebCore::CryptoAlgorithm::encryptForWrapKey): (WebCore::CryptoAlgorithm::decryptForUnwrapKey): * crypto/CryptoKeyPair.cpp: (WebCore::CryptoKeyPair::CryptoKeyPair): * crypto/CryptoKeyPair.h: (WebCore::CryptoKeyPair::create): * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp: (WebCore::CryptoAlgorithmAES_CBC::encrypt): (WebCore::CryptoAlgorithmAES_CBC::decrypt): * crypto/algorithms/CryptoAlgorithmAES_KW.cpp: (WebCore::CryptoAlgorithmAES_KW::encryptForWrapKey): (WebCore::CryptoAlgorithmAES_KW::decryptForUnwrapKey): * crypto/algorithms/CryptoAlgorithmHMAC.cpp: (WebCore::CryptoAlgorithmHMAC::sign): (WebCore::CryptoAlgorithmHMAC::verify): * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp: (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt): (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::decrypt): (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey): * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp: (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign): (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify): (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey): * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp: (WebCore::CryptoAlgorithmRSA_OAEP::encrypt): (WebCore::CryptoAlgorithmRSA_OAEP::decrypt): (WebCore::CryptoAlgorithmRSA_OAEP::generateKey): * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp: (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt): (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt): * crypto/mac/CryptoKeyRSAMac.cpp: (WebCore::CryptoKeyRSA::generatePair): * css/BasicShapeFunctions.cpp: (WebCore::valueForBasicShape): (WebCore::basicShapeForValue): * css/CSSBasicShapes.cpp: (WebCore::CSSBasicShapePath::CSSBasicShapePath): * css/CSSBasicShapes.h: * css/CSSBorderImage.cpp: (WebCore::createBorderImageValue): * css/CSSCalculationValue.cpp: * css/CSSCalculationValue.h: (WebCore::CSSCalcValue::CSSCalcValue): * css/CSSComputedStyleDeclaration.cpp: (WebCore::valueForNinePieceImageSlice): (WebCore::valueForNinePieceImageQuad): (WebCore::computedTransform): (WebCore::ComputedStyleExtractor::valueForShadow): (WebCore::ComputedStyleExtractor::valueForFilter): (WebCore::valueForGridTrackList): (WebCore::valueForGridPosition): (WebCore::scrollSnapPoints): (WebCore::scrollSnapCoordinates): (WebCore::getWillChangePropertyValue): (WebCore::fontVariantLigaturesPropertyValue): (WebCore::fontVariantNumericPropertyValue): (WebCore::fontVariantEastAsianPropertyValue): (WebCore::fillRepeatToCSSValue): (WebCore::fillSizeToCSSValue): (WebCore::fontVariantFromStyle): (WebCore::ComputedStyleExtractor::propertyValue): * css/CSSCrossfadeValue.cpp: (WebCore::CSSCrossfadeValue::blend): * css/CSSCursorImageValue.cpp: (WebCore::CSSCursorImageValue::CSSCursorImageValue): * css/CSSCursorImageValue.h: (WebCore::CSSCursorImageValue::create): * css/CSSFilterImageValue.cpp: (WebCore::CSSFilterImageValue::image): * css/CSSFilterImageValue.h: (WebCore::CSSFilterImageValue::create): * css/CSSFontFace.cpp: (WebCore::CSSFontFace::addSource): * css/CSSFontFace.h: (WebCore::CSSFontFace::create): (WebCore::CSSFontFace::insertFeature): * css/CSSFontFaceSource.cpp: (WebCore::CSSFontFaceSource::font): * css/CSSFontFeatureValue.cpp: (WebCore::CSSFontFeatureValue::CSSFontFeatureValue): * css/CSSFontFeatureValue.h: (WebCore::CSSFontFeatureValue::create): * css/CSSFontSelector.cpp: (WebCore::createFontFace): (WebCore::constructFamilyFontFaces): * css/CSSGrammar.y.in: * css/CSSImageValue.cpp: (WebCore::CSSImageValue::cloneForCSSOM): * css/CSSKeyframeRule.cpp: (WebCore::StyleKeyframe::StyleKeyframe): * css/CSSKeyframeRule.h: (WebCore::StyleKeyframe::create): * css/CSSParser.cpp: (WebCore::CSSParser::parseFontFaceValue): (WebCore::CSSParser::parseMediaQuery): (WebCore::CSSParser::parseSizesAttribute): (WebCore::CSSParser::SourceSize::SourceSize): (WebCore::CSSParser::sourceSize): (WebCore::CSSParser::addFillValue): (WebCore::CSSParser::addAnimationValue): (WebCore::CSSParser::parse4ValuesFillPosition): (WebCore::CSSParser::parse3ValuesFillPosition): (WebCore::CSSParser::parseFillPosition): (WebCore::CSSParser::parseFillSize): (WebCore::CSSParser::parseDashboardRegions): (WebCore::CSSParser::parseClipShape): (WebCore::CSSParser::parseBasicShapePath): (WebCore::CSSParser::parseSystemFont): (WebCore::CSSParser::parseBorderImageRepeat): (WebCore::BorderImageSliceParseContext::commitBorderImageSlice): (WebCore::BorderImageQuadParseContext::commitBorderImageQuad): (WebCore::CSSParser::parseBuiltinFilterArguments): (WebCore::CSSParser::parseFontFeatureTag): (WebCore::CSSParser::parseFontVariantLigatures): (WebCore::CSSParser::parseFontVariantNumeric): (WebCore::CSSParser::parseFontVariantEastAsian): (WebCore::CSSParser::createKeyframesRule): (WebCore::CSSParser::rewriteSpecifiers): (WebCore::CSSParser::createPageRule): (WebCore::CSSParser::createSelectorVector): (WebCore::CSSParser::recycleSelectorVector): * css/CSSParserValues.cpp: (WebCore::CSSParserSelector::~CSSParserSelector): (WebCore::CSSParserSelector::adoptSelectorVector): (WebCore::CSSParserSelector::setLangArgumentList): (WebCore::CSSParserSelector::insertTagHistory): (WebCore::CSSParserSelector::appendTagHistory): (WebCore::CSSParserSelector::prependTagSelector): * css/CSSParserValues.h: (WebCore::CSSParserSelector::releaseSelector): (WebCore::CSSParserSelector::setTagHistory): * css/CSSPrimitiveValue.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): * css/CSSProperty.cpp: (WebCore::CSSProperty::wrapValueInCommaSeparatedList): * css/CSSSegmentedFontFace.cpp: (WebCore::CSSSegmentedFontFace::appendFontFace): (WebCore::appendFontWithInvalidUnicodeRangeIfLoading): * css/CSSSelector.cpp: (WebCore::CSSSelector::setLangArgumentList): (WebCore::CSSSelector::setSelectorList): * css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::create): (WebCore::CSSStyleSheet::CSSStyleSheet): * css/CSSValueList.h: (WebCore::CSSValueList::append): (WebCore::CSSValueList::prepend): * css/DocumentRuleSets.cpp: (WebCore::DocumentRuleSets::initUserStyle): * css/FontLoader.cpp: (WebCore::FontLoader::scheduleEvent): * css/MediaList.cpp: (WebCore::MediaQuerySet::parse): (WebCore::MediaQuerySet::add): (WebCore::MediaQuerySet::addMediaQuery): * css/MediaQuery.cpp: (WebCore::MediaQuery::MediaQuery): * css/Pair.h: (WebCore::Pair::create): (WebCore::Pair::Pair): * css/RuleSet.cpp: (WebCore::RuleSet::addRegionRule): * css/RuleSet.h: (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair): * css/SVGCSSComputedStyleDeclaration.cpp: (WebCore::paintOrder): * css/SourceSizeList.cpp: (WebCore::match): (WebCore::parseSizesAttribute): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue): (WebCore::StyleBuilderCustom::applyValueContent): (WebCore::StyleBuilderCustom::applyValueWillChange): * css/StyleResolver.cpp: (WebCore::StyleResolver::State::setStyle): (WebCore::StyleResolver::addToMatchedPropertiesCache): * css/StyleResolver.h: (WebCore::StyleResolver::State::setParentStyle): (WebCore::StyleResolver::State::setAuthorRollback): (WebCore::StyleResolver::State::setUserRollback): * css/StyleRule.cpp: (WebCore::StyleRule::StyleRule): (WebCore::StyleRule::create): (WebCore::StyleRulePage::StyleRulePage): (WebCore::StyleRuleFontFace::StyleRuleFontFace): (WebCore::StyleRuleGroup::wrapperInsertRule): (WebCore::StyleRuleViewport::StyleRuleViewport): * css/StyleRule.h: (WebCore::StyleRule::create): (WebCore::StyleRule::wrapperAdoptSelectorList): (WebCore::StyleRuleFontFace::create): (WebCore::StyleRulePage::create): (WebCore::StyleRulePage::wrapperAdoptSelectorList): (WebCore::StyleRuleViewport::create): * cssjit/SelectorCompiler.cpp: (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker): (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatchesSelectorList): * dom/ActiveDOMCallbackMicrotask.cpp: (WebCore::ActiveDOMCallbackMicrotask::ActiveDOMCallbackMicrotask): * dom/Attr.cpp: (WebCore::Attr::cloneNodeInternal): * dom/ChildListMutationScope.cpp: (WebCore::ChildListMutationAccumulator::ChildListMutationAccumulator): * dom/ContainerNode.cpp: (WebCore::ContainerNode::insertBefore): (WebCore::ContainerNode::append): (WebCore::ContainerNode::prepend): * dom/DataTransfer.cpp: (WebCore::DataTransfer::DataTransfer): * dom/Document.cpp: (WebCore::Document::createNodeIterator): (WebCore::Document::createTreeWalker): (WebCore::Document::logExceptionToConsole): (WebCore::Document::cloneNodeInternal): (WebCore::Document::enqueueWindowEvent): (WebCore::Document::enqueueDocumentEvent): (WebCore::Document::enqueueOverflowEvent): (WebCore::Document::setTransformSource): (WebCore::Document::addMessage): (WebCore::Document::postTask): (WebCore::Document::pendingTasksTimerFired): (WebCore::Document::sendWillRevealEdgeEventsIfNeeded): * dom/DocumentEventQueue.cpp: (WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent): * dom/DocumentFragment.cpp: (WebCore::DocumentFragment::cloneNodeInternal): * dom/Element.cpp: (WebCore::Element::createElementRenderer): (WebCore::Element::addShadowRoot): (WebCore::Element::dispatchFocusInEvent): (WebCore::Element::dispatchFocusOutEvent): (WebCore::Element::dispatchFocusEvent): (WebCore::Element::dispatchBlurEvent): (WebCore::Element::resolveComputedStyle): (WebCore::Element::setBeforePseudoElement): (WebCore::Element::setAfterPseudoElement): * dom/ElementRareData.h: (WebCore::ElementRareData::setShadowRoot): (WebCore::ElementRareData::setAttributeMap): (WebCore::ElementRareData::setComputedStyle): (WebCore::ElementRareData::setClassList): (WebCore::ElementRareData::setDataset): (WebCore::ElementRareData::setBeforePseudoElement): (WebCore::ElementRareData::setAfterPseudoElement): * dom/Event.cpp: (WebCore::Event::setTarget): * dom/EventTarget.cpp: (WebCore::EventTarget::addEventListener): * dom/ExtensionStyleSheets.cpp: (WebCore::ExtensionStyleSheets::addUserStyleSheet): (WebCore::ExtensionStyleSheets::addAuthorStyleSheetForTesting): * dom/FocusEvent.cpp: (WebCore::FocusEvent::FocusEvent): * dom/FocusEvent.h: * dom/MessageEvent.cpp: (WebCore::MessageEvent::MessageEvent): (WebCore::MessageEvent::initMessageEvent): * dom/MessageEvent.h: * dom/MessagePort.cpp: (WebCore::MessagePort::postMessage): (WebCore::MessagePort::disentangle): (WebCore::MessagePort::entangle): (WebCore::MessagePort::dispatchMessages): (WebCore::MessagePort::disentanglePorts): (WebCore::MessagePort::entanglePorts): (WebCore::MessagePort::addEventListener): * dom/Microtasks.cpp: (WebCore::MicrotaskQueue::append): (WebCore::MicrotaskQueue::performMicrotaskCheckpoint): * dom/MutationObserver.cpp: (WebCore::queueMutationObserverCompoundMicrotask): * dom/NativeNodeFilter.h: * dom/Node.cpp: (WebCore::Node::before): (WebCore::Node::after): (WebCore::Node::replaceWith): (WebCore::Document::invalidateNodeListAndCollectionCaches): (WebCore::tryAddEventListener): (WebCore::Node::addEventListener): * dom/NodeIterator.cpp: (WebCore::NodeIterator::NodeIterator): * dom/NodeIterator.h: (WebCore::NodeIterator::create): * dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::setCSSStyleSheet): * dom/PseudoElement.cpp: (WebCore::PseudoElement::didRecalcStyle): * dom/ScopedEventQueue.cpp: (WebCore::ScopedEventQueue::enqueueEvent): (WebCore::ScopedEventQueue::dispatchAllEvents): * dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::reportException): * dom/ScriptExecutionContext.h: (WebCore::ScriptExecutionContext::Task::Task): * dom/SecurityContext.cpp: (WebCore::SecurityContext::setSecurityOriginPolicy): (WebCore::SecurityContext::setContentSecurityPolicy): * dom/SecurityOriginPolicy.cpp: (WebCore::SecurityOriginPolicy::create): (WebCore::SecurityOriginPolicy::SecurityOriginPolicy): * dom/SelectorQuery.cpp: (WebCore::SelectorQuery::SelectorQuery): (WebCore::SelectorQueryCache::add): * dom/ShadowRoot.cpp: (WebCore::ShadowRoot::ShadowRoot): * dom/ShadowRoot.h: * dom/SlotAssignment.cpp: (WebCore::SlotAssignment::SlotAssignment): * dom/StyledElement.cpp: (WebCore::StyledElement::rebuildPresentationAttributeStyle): * dom/Text.cpp: (WebCore::Text::splitText): (WebCore::Text::replaceWholeText): * dom/Traversal.cpp: (WebCore::NodeIteratorBase::NodeIteratorBase): * dom/TreeWalker.cpp: (WebCore::TreeWalker::TreeWalker): (WebCore::TreeWalker::traverseSiblings): * dom/TreeWalker.h: (WebCore::TreeWalker::create): * dom/TypedElementDescendantIterator.h: (WebCore::DoubleTypedElementDescendantIteratorAdapter<ElementType>::DoubleTypedElementDescendantIteratorAdapter): (WebCore::DoubleTypedElementDescendantIterator<ElementType>::DoubleTypedElementDescendantIterator): * dom/default/PlatformMessagePortChannel.cpp: (WebCore::PlatformMessagePortChannel::EventData::EventData): (WebCore::MessagePortChannel::createChannel): (WebCore::MessagePortChannel::postMessageToRemote): * dom/default/PlatformMessagePortChannel.h: (WebCore::PlatformMessagePortChannel::EventData::channels): (WebCore::PlatformMessagePortChannel::MessagePortQueue::appendAndCheckEmpty): * editing/AppendNodeCommand.cpp: (WebCore::AppendNodeCommand::AppendNodeCommand): * editing/AppendNodeCommand.h: (WebCore::AppendNodeCommand::create): * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::replaceTextInNode): (WebCore::CompositeEditCommand::moveParagraphs): * editing/DeleteFromTextNodeCommand.h: (WebCore::DeleteFromTextNodeCommand::create): * editing/EditingStyle.cpp: (WebCore::applyTextDecorationChangeToValueList): (WebCore::EditingStyle::overrideTypingStyleAt): (WebCore::EditingStyle::conflictsWithInlineStyleOfElement): (WebCore::mergeTextDecorationValues): (WebCore::StyleChange::StyleChange): * editing/Editor.cpp: (WebCore::Editor::insertDictationPhrases): (WebCore::Editor::setTextAsChildOfElement): (WebCore::Editor::applyStyleToSelection): * editing/EditorCommand.cpp: (WebCore::applyCommandToFrame): (WebCore::executeInsertNode): (WebCore::executeInsertHorizontalRule): (WebCore::executeInsertImage): (WebCore::executeStrikethrough): (WebCore::executeUnderline): * editing/InsertIntoTextNodeCommand.h: (WebCore::InsertIntoTextNodeCommand::create): * editing/InsertNodeBeforeCommand.h: (WebCore::InsertNodeBeforeCommand::create): * editing/MergeIdenticalElementsCommand.cpp: (WebCore::MergeIdenticalElementsCommand::doApply): (WebCore::MergeIdenticalElementsCommand::doUnapply): * editing/MoveSelectionCommand.cpp: (WebCore::MoveSelectionCommand::doApply): * editing/RemoveNodeCommand.cpp: (WebCore::RemoveNodeCommand::RemoveNodeCommand): * editing/RemoveNodeCommand.h: (WebCore::RemoveNodeCommand::create): * editing/ReplaceDeleteFromTextNodeCommand.cpp: (WebCore::ReplaceDeleteFromTextNodeCommand::ReplaceDeleteFromTextNodeCommand): * editing/ReplaceDeleteFromTextNodeCommand.h: * editing/ReplaceInsertIntoTextNodeCommand.cpp: (WebCore::ReplaceInsertIntoTextNodeCommand::ReplaceInsertIntoTextNodeCommand): * editing/ReplaceInsertIntoTextNodeCommand.h: * editing/ReplaceNodeWithSpanCommand.cpp: (WebCore::swapInNodePreservingAttributesAndChildren): * editing/ReplaceSelectionCommand.h: (WebCore::ReplaceSelectionCommand::create): * editing/SplitElementCommand.cpp: (WebCore::SplitElementCommand::executeApply): (WebCore::SplitElementCommand::doUnapply): * editing/TextCheckingHelper.cpp: (WebCore::findGrammaticalErrors): (WebCore::checkTextOfParagraph): * editing/TextIterator.cpp: (WebCore::TextIteratorCopyableText::set): (WebCore::TextIterator::handleReplacedElement): (WebCore::TextIterator::emitText): (WebCore::SimplifiedBackwardsTextIterator::handleTextNode): (WebCore::TextIterator::rangeFromLocationAndLength): * editing/WrapContentsInDummySpanCommand.cpp: (WebCore::WrapContentsInDummySpanCommand::executeApply): (WebCore::WrapContentsInDummySpanCommand::doUnapply): * editing/ios/DictationCommandIOS.cpp: (WebCore::DictationCommandIOS::DictationCommandIOS): * editing/ios/DictationCommandIOS.h: (WebCore::DictationCommandIOS::create): * editing/ios/EditorIOS.mm: (WebCore::Editor::WebContentReader::readURL): (WebCore::Editor::createFragmentForImageResourceAndAddResource): * editing/mac/EditorMac.mm: (WebCore::Editor::WebContentReader::readFilenames): (WebCore::Editor::WebContentReader::readURL): (WebCore::Editor::createFragmentForImageResourceAndAddResource): * editing/markup.cpp: (WebCore::fillContainerFromString): (WebCore::createFragmentFromText): (WebCore::replaceChildrenWithFragment): (WebCore::replaceChildrenWithText): * fileapi/AsyncFileStream.cpp: (WebCore::callOnFileThread): * fileapi/Blob.cpp: (WebCore::Blob::Blob): * fileapi/Blob.h: (WebCore::Blob::create): * fileapi/FileList.h: (WebCore::FileList::create): (WebCore::FileList::FileList): (WebCore::FileList::append): * fileapi/ThreadableBlobRegistry.cpp: (WebCore::BlobRegistryContext::BlobRegistryContext): (WebCore::ThreadableBlobRegistry::registerBlobURL): * fileapi/WebKitBlobBuilder.cpp: (WebCore::BlobBuilder::append): (WebCore::BlobBuilder::finalize): * history/BackForwardController.cpp: (WebCore::BackForwardController::BackForwardController): (WebCore::BackForwardController::addItem): * history/BackForwardList.cpp: (WebCore::BackForwardList::addItem): * history/CachedFrame.cpp: (WebCore::CachedFrame::setCachedFramePlatformData): * history/HistoryItem.cpp: (WebCore::HistoryItem::setStateObject): (WebCore::HistoryItem::addChildItem): (WebCore::HistoryItem::setChildItem): (WebCore::HistoryItem::setFormData): (WebCore::HistoryItem::setRedirectURLs): * history/PageCache.cpp: (WebCore::PageCache::take): * html/BaseButtonInputType.cpp: (WebCore::BaseButtonInputType::createInputRenderer): * html/BaseChooserOnlyDateAndTimeInputType.cpp: (WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree): * html/ColorInputType.cpp: (WebCore::ColorInputType::createShadowSubtree): * html/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryDocumentParser::appendEntry): (WebCore::FTPDirectoryDocumentParser::createTDForFilename): (WebCore::FTPDirectoryDocumentParser::createBasicDocument): (WebCore::FTPDirectoryDocumentParser::append): * html/FileInputType.cpp: (WebCore::FileInputType::createInputRenderer): (WebCore::FileInputType::createFileList): * html/FormController.cpp: (WebCore::FormController::formStatesFromStateVector): * html/HTMLAppletElement.cpp: (WebCore::HTMLAppletElement::createElementRenderer): * html/HTMLAttachmentElement.cpp: (WebCore::HTMLAttachmentElement::createElementRenderer): * html/HTMLBRElement.cpp: (WebCore::HTMLBRElement::createElementRenderer): * html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::collectStyleForPresentationAttribute): * html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::createElementRenderer): * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::createElementRenderer): (WebCore::HTMLCanvasElement::setImageBuffer): * html/HTMLCollection.cpp: (WebCore::HTMLCollection::updateNamedElementCache): * html/HTMLCollection.h: (WebCore::HTMLCollection::setNamedItemCache): * html/HTMLDetailsElement.cpp: (WebCore::HTMLDetailsElement::createElementRenderer): (WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot): * html/HTMLElement.cpp: (WebCore::HTMLElement::populateEventHandlerNameMap): (WebCore::HTMLElement::setInnerText): (WebCore::HTMLElement::createElementRenderer): * html/HTMLFieldSetElement.cpp: (WebCore::HTMLFieldSetElement::createElementRenderer): * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::dispatchBlurEvent): * html/HTMLFormControlsCollection.cpp: (WebCore::HTMLFormControlsCollection::updateNamedElementCache): * html/HTMLFrameElement.cpp: (WebCore::HTMLFrameElement::createElementRenderer): * html/HTMLFrameSetElement.cpp: (WebCore::HTMLFrameSetElement::createElementRenderer): * html/HTMLIFrameElement.cpp: (WebCore::HTMLIFrameElement::createElementRenderer): * html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::createElementRenderer): * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::updateType): (WebCore::HTMLInputElement::createElementRenderer): * html/HTMLKeygenElement.cpp: (WebCore::HTMLKeygenElement::HTMLKeygenElement): * html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::setCSSStyleSheet): * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::createElementRenderer): (WebCore::HTMLMediaElement::addEventListener): (WebCore::HTMLMediaElement::setWirelessPlaybackTarget): (WebCore::HTMLMediaElement::mediaPlayerCreateResourceLoader): * html/HTMLMeterElement.cpp: (WebCore::HTMLMeterElement::createElementRenderer): (WebCore::HTMLMeterElement::didAddUserAgentShadowRoot): * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::createForJSConstructor): * html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::createElementRenderer): * html/HTMLPlugInImageElement.cpp: (WebCore::HTMLPlugInImageElement::createElementRenderer): * html/HTMLProgressElement.cpp: (WebCore::HTMLProgressElement::createElementRenderer): (WebCore::HTMLProgressElement::didAddUserAgentShadowRoot): * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::createElementRenderer): (WebCore::HTMLSelectElement::dispatchFocusEvent): (WebCore::HTMLSelectElement::dispatchBlurEvent): * html/HTMLSummaryElement.cpp: (WebCore::HTMLSummaryElement::createElementRenderer): * html/HTMLTableElement.cpp: (WebCore::HTMLTableElement::insertRow): * html/HTMLTableRowElement.cpp: (WebCore::HTMLTableRowElement::insertCell): * html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::createElementRenderer): * html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::dispatchFocusEvent): (WebCore::HTMLTextFormControlElement::dispatchBlurEvent): * html/HTMLVideoElement.cpp: (WebCore::HTMLVideoElement::createElementRenderer): * html/HTMLWBRElement.cpp: (WebCore::HTMLWBRElement::createElementRenderer): * html/ImageDocument.cpp: (WebCore::ImageDocument::createDocumentStructure): * html/ImageInputType.cpp: (WebCore::ImageInputType::createInputRenderer): * html/InputType.cpp: (WebCore::InputType::createInputRenderer): * html/MediaDocument.cpp: (WebCore::MediaDocumentParser::createDocumentStructure): * html/MediaElementSession.cpp: (WebCore::MediaElementSession::setPlaybackTarget): * html/PluginDocument.cpp: (WebCore::PluginDocumentParser::createDocumentStructure): * html/RangeInputType.cpp: (WebCore::RangeInputType::createShadowSubtree): (WebCore::RangeInputType::createInputRenderer): * html/RubyElement.cpp: (WebCore::RubyElement::createElementRenderer): * html/RubyTextElement.cpp: (WebCore::RubyTextElement::createElementRenderer): * html/SearchInputType.cpp: (WebCore::SearchInputType::createInputRenderer): (WebCore::SearchInputType::createShadowSubtree): * html/TextFieldInputType.cpp: (WebCore::TextFieldInputType::createInputRenderer): * html/ValidationMessage.cpp: (WebCore::ValidationMessage::buildBubbleTree): * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::createLinearGradient): (WebCore::CanvasRenderingContext2D::createRadialGradient): * html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::LRUImageBufferCache::imageBuffer): * html/parser/AtomicHTMLToken.h: (WebCore::AtomicHTMLToken::AtomicHTMLToken): * html/parser/HTMLConstructionSite.cpp: (WebCore::HTMLConstructionSite::executeQueuedTasks): (WebCore::HTMLConstructionSite::insertTextNode): * html/parser/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::append): * html/parser/HTMLElementStack.cpp: (WebCore::HTMLElementStack::ElementRecord::ElementRecord): (WebCore::HTMLElementStack::pushCommon): * html/parser/HTMLElementStack.h: (WebCore::HTMLElementStack::ElementRecord::releaseNext): (WebCore::HTMLElementStack::ElementRecord::setNext): * html/parser/HTMLPreloadScanner.cpp: (WebCore::TokenPreloadScanner::scan): (WebCore::HTMLPreloadScanner::scan): * html/parser/HTMLResourcePreloader.cpp: (WebCore::HTMLResourcePreloader::preload): * html/parser/HTMLStackItem.h: (WebCore::HTMLStackItem::HTMLStackItem): (WebCore::HTMLStackItem::create): * html/parser/HTMLToken.h: (WebCore::HTMLToken::releaseDoctypeData): * html/parser/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::takeScriptToProcess): (WebCore::HTMLTreeBuilder::processFakeStartTag): (WebCore::HTMLTreeBuilder::insertPhoneNumberLink): * html/parser/TextDocumentParser.cpp: (WebCore::TextDocumentParser::append): (WebCore::TextDocumentParser::insertFakePreElement): * html/parser/XSSAuditorDelegate.cpp: (WebCore::XSSAuditorDelegate::generateViolationReport): * html/shadow/DetailsMarkerControl.cpp: (WebCore::DetailsMarkerControl::createElementRenderer): * html/shadow/MediaControlElements.cpp: (WebCore::MediaControlTimelineContainerElement::createElementRenderer): (WebCore::MediaControlVolumeSliderContainerElement::createElementRenderer): (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu): (WebCore::MediaControlTextTrackContainerElement::createElementRenderer): (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage): * html/shadow/MediaControls.cpp: (WebCore::MediaControls::createTextTrackDisplay): * html/shadow/MediaControlsApple.cpp: (WebCore::MediaControlsApple::createControls): (WebCore::MediaControlsApple::showClosedCaptionTrackList): * html/shadow/MeterShadowElement.cpp: (WebCore::MeterInnerElement::createElementRenderer): * html/shadow/ProgressShadowElement.cpp: (WebCore::ProgressInnerElement::createElementRenderer): * html/shadow/SliderThumbElement.cpp: (WebCore::RenderSliderThumb::RenderSliderThumb): (WebCore::SliderThumbElement::createElementRenderer): (WebCore::SliderContainerElement::createElementRenderer): * html/shadow/TextControlInnerElements.cpp: (WebCore::TextControlInnerContainer::createElementRenderer): (WebCore::TextControlInnerTextElement::createElementRenderer): * html/shadow/mac/ImageControlsButtonElementMac.cpp: (WebCore::RenderImageControlsButton::RenderImageControlsButton): (WebCore::ImageControlsButtonElementMac::createElementRenderer): * html/shadow/mac/ImageControlsRootElementMac.cpp: (WebCore::RenderImageControls::RenderImageControls): (WebCore::ImageControlsRootElement::maybeCreate): (WebCore::ImageControlsRootElementMac::createElementRenderer): * html/track/VTTCue.cpp: (WebCore::VTTCueBox::createElementRenderer): * html/track/WebVTTElement.cpp: (WebCore::WebVTTElement::cloneElementWithoutAttributesAndChildren): * html/track/WebVTTParser.cpp: (WebCore::WebVTTTreeBuilder::constructTreeFromToken): * inspector/CommandLineAPIHost.cpp: (WebCore::CommandLineAPIHost::inspectImpl): (WebCore::CommandLineAPIHost::addInspectedObject): * inspector/DOMEditor.cpp: (WebCore::DOMEditor::InsertBeforeAction::InsertBeforeAction): (WebCore::DOMEditor::ReplaceChildNodeAction::ReplaceChildNodeAction): (WebCore::DOMEditor::insertBefore): (WebCore::DOMEditor::setOuterHTML): (WebCore::DOMEditor::replaceChild): * inspector/DOMPatchSupport.cpp: (WebCore::DOMPatchSupport::createDigest): (WebCore::DOMPatchSupport::removeChildAndMoveToNew): * inspector/InspectorApplicationCacheAgent.cpp: (WebCore::InspectorApplicationCacheAgent::getFramesWithManifests): * inspector/InspectorCSSAgent.cpp: (WebCore::InspectorCSSAgent::getMatchedStylesForNode): (WebCore::InspectorCSSAgent::addRule): (WebCore::InspectorCSSAgent::getSupportedCSSProperties): (WebCore::InspectorCSSAgent::getSupportedSystemFontFamilyNames): (WebCore::InspectorCSSAgent::getNamedFlowCollection): (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList): (WebCore::InspectorCSSAgent::buildArrayForRegions): (WebCore::InspectorCSSAgent::buildObjectForNamedFlow): * inspector/InspectorConsoleInstrumentation.h: (WebCore::InspectorInstrumentation::addMessageToConsole): (WebCore::InspectorInstrumentation::consoleCount): (WebCore::InspectorInstrumentation::stopConsoleTiming): (WebCore::InspectorInstrumentation::consoleTimeStamp): * inspector/InspectorController.cpp: (WebCore::InspectorController::InspectorController): * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::pushNodePathToFrontend): (WebCore::InspectorDOMAgent::highlightRect): (WebCore::InspectorDOMAgent::highlightQuad): (WebCore::InspectorDOMAgent::innerHighlightQuad): (WebCore::InspectorDOMAgent::highlightSelector): (WebCore::InspectorDOMAgent::buildObjectForNode): (WebCore::InspectorDOMAgent::buildArrayForPseudoElements): (WebCore::InspectorDOMAgent::buildObjectForEventListener): (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties): (WebCore::InspectorDOMAgent::didCommitLoad): (WebCore::InspectorDOMAgent::didInsertDOMNode): (WebCore::InspectorDOMAgent::styleAttributeInvalidated): * inspector/InspectorDOMDebuggerAgent.cpp: (WebCore::InspectorDOMDebuggerAgent::didInvalidateStyleAttr): (WebCore::InspectorDOMDebuggerAgent::willInsertDOMNode): (WebCore::InspectorDOMDebuggerAgent::willRemoveDOMNode): (WebCore::InspectorDOMDebuggerAgent::willModifyDOMAttr): (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded): (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest): * inspector/InspectorDOMStorageAgent.cpp: (WebCore::InspectorDOMStorageAgent::getDOMStorageItems): * inspector/InspectorDatabaseAgent.cpp: (WebCore::InspectorDatabaseAgent::didOpenDatabase): (WebCore::InspectorDatabaseAgent::executeSQL): * inspector/InspectorDatabaseResource.cpp: (WebCore::InspectorDatabaseResource::create): (WebCore::InspectorDatabaseResource::bind): * inspector/InspectorDatabaseResource.h: (WebCore::InspectorDatabaseResource::setDatabase): * inspector/InspectorFrontendClientLocal.cpp: (WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal): * inspector/InspectorHistory.cpp: (WebCore::InspectorHistory::perform): * inspector/InspectorIndexedDBAgent.cpp: (WebCore::InspectorIndexedDBAgent::requestDatabaseNames): (WebCore::InspectorIndexedDBAgent::requestDatabase): (WebCore::InspectorIndexedDBAgent::requestData): (WebCore::ClearObjectStoreListener::create): (WebCore::ClearObjectStoreListener::ClearObjectStoreListener): (WebCore::ClearObjectStore::create): (WebCore::ClearObjectStore::ClearObjectStore): (WebCore::InspectorIndexedDBAgent::clearObjectStore): * inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::addMessageToConsoleImpl): (WebCore::InspectorInstrumentation::didOpenDatabaseImpl): (WebCore::InspectorInstrumentation::sessionCreatedImpl): (WebCore::InspectorInstrumentation::sessionLoadedImpl): (WebCore::InspectorInstrumentation::sessionModifiedImpl): (WebCore::InspectorInstrumentation::segmentCreatedImpl): (WebCore::InspectorInstrumentation::segmentCompletedImpl): (WebCore::InspectorInstrumentation::segmentLoadedImpl): * inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::didOpenDatabase): (WebCore::InspectorInstrumentation::sessionCreated): (WebCore::InspectorInstrumentation::sessionLoaded): (WebCore::InspectorInstrumentation::sessionModified): (WebCore::InspectorInstrumentation::segmentCreated): (WebCore::InspectorInstrumentation::segmentCompleted): (WebCore::InspectorInstrumentation::segmentLoaded): * inspector/InspectorLayerTreeAgent.cpp: (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer): * inspector/InspectorNetworkAgent.cpp: (WebCore::buildObjectForResourceResponse): (WebCore::buildObjectForCachedResource): (WebCore::InspectorNetworkAgent::buildInitiatorObject): (WebCore::InspectorNetworkAgent::willSendWebSocketHandshakeRequest): (WebCore::InspectorNetworkAgent::didReceiveWebSocketHandshakeResponse): (WebCore::InspectorNetworkAgent::didReceiveWebSocketFrame): (WebCore::InspectorNetworkAgent::didSendWebSocketFrame): * inspector/InspectorOverlay.cpp: (WebCore::InspectorOverlay::highlightNodeList): (WebCore::InspectorOverlay::highlightQuad): (WebCore::buildObjectForHighlight): (WebCore::buildObjectForFlowRegions): (WebCore::InspectorOverlay::drawPaintRects): (WebCore::buildArrayForRendererFragments): (WebCore::buildObjectForShapeOutside): (WebCore::buildObjectForElementData): (WebCore::InspectorOverlay::buildHighlightObjectForNode): (WebCore::InspectorOverlay::buildObjectForHighlightedNodes): (WebCore::InspectorOverlay::reset): (WebCore::InspectorOverlay::evaluateInOverlay): * inspector/InspectorPageAgent.cpp: (WebCore::InspectorPageAgent::buildObjectForFrameTree): * inspector/InspectorReplayAgent.cpp: (WebCore::buildInspectorObjectForSession): (WebCore::SerializeInputToJSONFunctor::operator()): (WebCore::SerializeInputToJSONFunctor::returnValue): (WebCore::buildInspectorObjectForSegment): (WebCore::InspectorReplayAgent::switchSession): (WebCore::InspectorReplayAgent::insertSessionSegment): (WebCore::InspectorReplayAgent::removeSessionSegment): (WebCore::InspectorReplayAgent::getSessionData): (WebCore::InspectorReplayAgent::getSegmentData): * inspector/InspectorStyleSheet.cpp: (WebCore::asCSSRuleList): (WebCore::InspectorStyle::create): (WebCore::InspectorStyle::buildObjectForStyle): (WebCore::InspectorStyle::buildArrayForComputedStyle): (WebCore::InspectorStyle::styleWithProperties): (WebCore::InspectorStyleSheet::create): (WebCore::InspectorStyleSheet::InspectorStyleSheet): (WebCore::InspectorStyleSheet::buildObjectForStyleSheet): (WebCore::buildObjectForSelectorHelper): (WebCore::InspectorStyleSheet::buildObjectForRule): (WebCore::InspectorStyleSheet::ensureSourceData): (WebCore::InspectorStyleSheet::buildArrayForRuleList): (WebCore::InspectorStyleSheet::collectFlatRules): (WebCore::InspectorStyleSheetForInlineStyle::create): (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle): * inspector/InspectorTimelineAgent.cpp: (WebCore::startProfiling): (WebCore::InspectorTimelineAgent::addRecordToTimeline): (WebCore::InspectorTimelineAgent::appendRecord): (WebCore::InspectorTimelineAgent::sendEvent): (WebCore::InspectorTimelineAgent::createRecordEntry): (WebCore::InspectorTimelineAgent::pushCurrentRecord): * inspector/InspectorTimelineAgent.h: * inspector/NetworkResourcesData.cpp: (WebCore::NetworkResourcesData::addResourceSharedBuffer): * inspector/NetworkResourcesData.h: (WebCore::NetworkResourcesData::ResourceData::setDecoder): (WebCore::NetworkResourcesData::ResourceData::setBuffer): * inspector/TimelineRecordFactory.cpp: (WebCore::buildInspectorObject): (WebCore::buildProfileInspectorObject): * inspector/WebInjectedScriptManager.cpp: (WebCore::WebInjectedScriptManager::WebInjectedScriptManager): * loader/ContentFilter.cpp: (WebCore::ContentFilter::createIfEnabled): (WebCore::ContentFilter::ContentFilter): * loader/CrossOriginPreflightResultCache.cpp: (WebCore::CrossOriginPreflightResultCache::appendEntry): * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::subresources): (WebCore::DocumentLoader::installContentFilterUnblockHandler): * loader/DocumentLoader.h: (WebCore::DocumentLoader::setQuickLookHandle): * loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest): (WebCore::DocumentThreadableLoader::didReceiveResponse): * loader/HistoryController.cpp: (WebCore::HistoryController::updateBackForwardListClippedAtTarget): (WebCore::HistoryController::pushState): * loader/MediaResourceLoader.cpp: (WebCore::MediaResourceLoader::MediaResourceLoader): * loader/NavigationScheduler.cpp: (WebCore::NavigationScheduler::timerFired): (WebCore::NavigationScheduler::schedule): (WebCore::NavigationScheduler::cancel): * loader/NetscapePlugInStreamLoader.cpp: (WebCore::NetscapePlugInStreamLoader::willSendRequest): * loader/PolicyCallback.cpp: (WebCore::PolicyCallback::set): * loader/PolicyChecker.cpp: (WebCore::PolicyChecker::checkNavigationPolicy): (WebCore::PolicyChecker::checkNewWindowPolicy): (WebCore::PolicyChecker::checkContentPolicy): * loader/PolicyChecker.h: (WebCore::PolicyChecker::setContentFilterUnblockHandler): * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willSendRequest): * loader/ThreadableLoader.cpp: (WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions): (WebCore::ThreadableLoaderOptions::isolatedCopy): * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::ApplicationCacheGroup): * loader/archive/cf/LegacyWebArchive.cpp: (WebCore::LegacyWebArchive::create): * loader/cache/CachedCSSStyleSheet.cpp: (WebCore::CachedCSSStyleSheet::saveParsedStyleSheet): * loader/icon/IconDatabase.cpp: (WebCore::IconDatabase::syncThreadMainLoop): * mathml/MathMLInlineContainerElement.cpp: (WebCore::MathMLInlineContainerElement::createElementRenderer): * mathml/MathMLMathElement.cpp: (WebCore::MathMLMathElement::createElementRenderer): * mathml/MathMLMencloseElement.cpp: (WebCore::MathMLMencloseElement::createElementRenderer): * mathml/MathMLSelectElement.cpp: (WebCore::MathMLSelectElement::createElementRenderer): * mathml/MathMLTextElement.cpp: (WebCore::MathMLTextElement::createElementRenderer): * page/CaptionUserPreferences.cpp: (WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride): * page/DOMTimer.cpp: (WebCore::DOMTimer::DOMTimer): (WebCore::DOMTimer::install): * page/DOMWindow.cpp: (WebCore::PostMessageTimer::PostMessageTimer): (WebCore::PostMessageTimer::event): (WebCore::DOMWindow::postMessage): (WebCore::DOMWindow::setTimeout): (WebCore::DOMWindow::setInterval): (WebCore::DOMWindow::addEventListener): (WebCore::DOMWindow::showModalDialog): * page/DebugPageOverlays.cpp: (WebCore::MouseWheelRegionOverlay::updateRegion): (WebCore::NonFastScrollableRegionOverlay::updateRegion): (WebCore::DebugPageOverlays::ensureRegionOverlayForFrame): * page/DragController.cpp: (WebCore::documentFragmentFromDragData): (WebCore::DragController::concludeEditDrag): * page/Frame.cpp: (WebCore::Frame::setView): * page/FrameView.cpp: (WebCore::FrameView::sendResizeEventIfNeeded): (WebCore::FrameView::updateOverflowStatus): * page/Page.cpp: (WebCore::Page::Page): (WebCore::Page::setSessionStorage): (WebCore::Page::setStorageNamespaceProvider): (WebCore::Page::setVisitedLinkStore): * page/PageConsoleClient.cpp: (WebCore::PageConsoleClient::addMessage): (WebCore::PageConsoleClient::messageWithTypeAndLevel): (WebCore::PageConsoleClient::count): (WebCore::PageConsoleClient::profileEnd): (WebCore::PageConsoleClient::timeEnd): (WebCore::PageConsoleClient::timeStamp): * page/PageOverlayController.cpp: (WebCore::PageOverlayController::installPageOverlay): * page/TextIndicator.cpp: (WebCore::takeSnapshot): * page/UserContentController.cpp: (WebCore::UserContentController::addUserScript): (WebCore::UserContentController::addUserStyleSheet): * page/UserScript.h: (WebCore::UserScript::UserScript): * page/UserStyleSheet.h: (WebCore::UserStyleSheet::UserStyleSheet): * page/WheelEventTestTrigger.cpp: (WebCore::WheelEventTestTrigger::setTestCallbackAndStartNotificationTimer): (WebCore::WheelEventTestTrigger::triggerTestTimerFired): * page/animation/AnimationController.cpp: (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle): (WebCore::AnimationControllerPrivate::addElementChangeToDispatch): * page/animation/CSSPropertyAnimation.cpp: (WebCore::blendFilter): (WebCore::crossfadeBlend): (WebCore::PropertyWrapperShadow::blendSimpleOrMatchedShadowLists): (WebCore::PropertyWrapperShadow::blendMismatchedShadowLists): (WebCore::ShorthandPropertyWrapper::ShorthandPropertyWrapper): (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): * page/cocoa/ResourceUsageOverlayCocoa.mm: (WebCore::RingBuffer::append): (WebCore::MemoryCategoryInfo::MemoryCategoryInfo): * page/mac/TextIndicatorWindow.mm: (WebCore::TextIndicatorWindow::clearTextIndicator): * page/scrolling/AxisScrollSnapOffsets.cpp: (WebCore::updateSnapOffsetsForScrollableArea): * page/scrolling/ScrollingStateTree.cpp: (WebCore::ScrollingStateTree::setRemovedNodes): * page/scrolling/ScrollingThread.cpp: (WebCore::ScrollingThread::dispatchBarrier): (WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread): * page/scrolling/ThreadedScrollingTree.cpp: (WebCore::ThreadedScrollingTree::commitNewTreeState): * page/scrolling/ios/ScrollingTreeIOS.cpp: (WebCore::ScrollingTreeIOS::commitNewTreeState): * page/scrolling/mac/ScrollingCoordinatorMac.mm: (WebCore::ScrollingCoordinatorMac::commitTreeState): * platform/CalculationValue.cpp: (WebCore::CalculationValue::create): * platform/CalculationValue.h: (WebCore::CalculationValue::CalculationValue): (WebCore::CalcExpressionBinaryOperation::CalcExpressionBinaryOperation): * platform/DragImage.cpp: (WebCore::createDragImageFromSnapshot): * platform/KeyedCoding.h: (WebCore::KeyedDecoder::decodeObjects): * platform/Length.cpp: (WebCore::Length::Length): (WebCore::Length::blendMixedTypes): * platform/LengthSize.h: (WebCore::LengthSize::LengthSize): (WebCore::LengthSize::setWidth): (WebCore::LengthSize::setHeight): * platform/MainThreadSharedTimer.cpp: (WebCore::MainThreadSharedTimer::setFiredFunction): * platform/ScrollableArea.cpp: (WebCore::ScrollableArea::setHorizontalSnapOffsets): (WebCore::ScrollableArea::setVerticalSnapOffsets): * platform/SharedBuffer.cpp: (WebCore::SharedBuffer::SharedBuffer): (WebCore::SharedBuffer::createWithContentsOfFile): (WebCore::SharedBuffer::maybeTransferMappedFileData): * platform/Supplementable.h: (WebCore::Supplement::provideTo): (WebCore::Supplementable::provideSupplement): * platform/Timer.h: (WebCore::Timer::Timer): (WebCore::DeferrableOneShotTimer::DeferrableOneShotTimer): * platform/URL.h: (WebCore::URLCapture::releaseURL): * platform/audio/AudioBus.cpp: (WebCore::AudioBus::AudioBus): * platform/audio/HRTFDatabase.cpp: (WebCore::HRTFDatabase::HRTFDatabase): * platform/audio/HRTFElevation.cpp: (WebCore::HRTFElevation::createForSubject): (WebCore::HRTFElevation::createByInterpolatingSlices): * platform/audio/HRTFElevation.h: (WebCore::HRTFElevation::HRTFElevation): * platform/audio/HRTFKernel.cpp: (WebCore::HRTFKernel::createInterpolatedKernel): * platform/audio/HRTFKernel.h: (WebCore::HRTFKernel::create): (WebCore::HRTFKernel::HRTFKernel): * platform/audio/ReverbConvolver.cpp: (WebCore::ReverbConvolver::ReverbConvolver): * platform/audio/ios/MediaSessionManagerIOS.mm: (-[WebMediaSessionHelper dealloc]): * platform/cf/KeyedDecoderCF.cpp: (WebCore::KeyedDecoderCF::KeyedDecoderCF): * platform/cocoa/ContentFilterUnblockHandlerCocoa.mm: (WebCore::ContentFilterUnblockHandler::ContentFilterUnblockHandler): * platform/glib/KeyedDecoderGlib.cpp: (WebCore::KeyedDecoderGlib::dictionaryFromGVariant): * platform/graphics/FloatPolygon.cpp: (WebCore::FloatPolygon::FloatPolygon): * platform/graphics/Font.cpp: (WebCore::Font::Font): (WebCore::createAndFillGlyphPage): (WebCore::Font::systemFallbackFontForCharacter): * platform/graphics/Font.h: (WebCore::Font::create): * platform/graphics/FontCache.cpp: (WebCore::FontCache::purgeInactiveFontData): * platform/graphics/FontCascade.cpp: (WebCore::FontCascadeCacheEntry::FontCascadeCacheEntry): (WebCore::retrieveOrAddCachedFonts): (WebCore::FontCascade::update): * platform/graphics/FontCascadeFonts.cpp: (WebCore::realizeNextFallback): * platform/graphics/FontCascadeFonts.h: (WebCore::FontCascadeFonts::create): * platform/graphics/FontDescription.h: (WebCore::FontDescription::setFeatureSettings): * platform/graphics/FontFeatureSettings.cpp: (WebCore::FontFeature::FontFeature): (WebCore::FontFeatureSettings::insert): * platform/graphics/FontRanges.h: (WebCore::FontRanges::Range::Range): * platform/graphics/GLContext.cpp: (WebCore::GLContext::createContextForWindow): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::setStrokePattern): (WebCore::GraphicsContext::setFillPattern): (WebCore::GraphicsContext::setStrokeGradient): (WebCore::GraphicsContext::setFillGradient): (WebCore::GraphicsContext::drawConsumingImageBuffer): * platform/graphics/GraphicsLayer.cpp: (WebCore::KeyframeValueList::insert): * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::setWirelessPlaybackTarget): (WebCore::MediaPlayer::createResourceLoader): * platform/graphics/PlatformMediaResourceLoader.h: (WebCore::PlatformMediaResourceLoader::PlatformMediaResourceLoader): * platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm: (WebCore::CDMPrivateMediaSourceAVFObjC::createSession): * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessPlaybackTarget): * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setWirelessPlaybackTarget): * platform/graphics/ca/TileController.cpp: (WebCore::TileController::setContentsScale): * platform/graphics/cg/IOSurfacePool.cpp: (WebCore::IOSurfacePool::takeSurface): (WebCore::IOSurfacePool::addSurface): (WebCore::IOSurfacePool::insertSurfaceIntoPool): (WebCore::IOSurfacePool::collectInUseSurfaces): * platform/graphics/cg/ImageBufferCG.cpp: (WebCore::ImageBuffer::copyImage): (WebCore::ImageBuffer::sinkIntoImage): (WebCore::ImageBuffer::sinkIntoNativeImage): (WebCore::ImageBuffer::drawConsuming): * platform/graphics/cocoa/IOSurface.mm: (IOSurface::moveToPool): (IOSurface::createFromImageBuffer): (IOSurface::convertToFormat): * platform/graphics/efl/CairoUtilitiesEfl.cpp: (WebCore::evasObjectFromCairoImageSurface): * platform/graphics/efl/GraphicsContext3DEfl.cpp: (WebCore::GraphicsContext3D::setContextLostCallback): * platform/graphics/efl/GraphicsContext3DPrivate.cpp: (WebCore::GraphicsContext3DPrivate::setContextLostCallback): * platform/graphics/egl/GLContextEGL.cpp: (WebCore::GLContextEGL::createWindowContext): (WebCore::GLContextEGL::createPixmapContext): (WebCore::GLContextEGL::createContext): (WebCore::GLContextEGL::GLContextEGL): * platform/graphics/filters/FETile.cpp: (WebCore::FETile::platformApplySoftware): * platform/graphics/filters/Filter.h: (WebCore::Filter::setSourceImage): * platform/graphics/filters/FilterOperation.h: * platform/graphics/glx/GLContextGLX.cpp: (WebCore::GLContextGLX::createWindowContext): (WebCore::GLContextGLX::createPbufferContext): (WebCore::GLContextGLX::createPixmapContext): (WebCore::GLContextGLX::createContext): (WebCore::GLContextGLX::GLContextGLX): * platform/graphics/gpu/Texture.cpp: (WebCore::Texture::Texture): (WebCore::Texture::create): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: (WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor): * platform/graphics/gstreamer/MediaPlayerRequestInstallMissingPluginsCallback.h: (WebCore::MediaPlayerRequestInstallMissingPluginsCallback::create): (WebCore::MediaPlayerRequestInstallMissingPluginsCallback::MediaPlayerRequestInstallMissingPluginsCallback): * platform/graphics/gstreamer/VideoSinkGStreamer.cpp: (VideoRenderRequestScheduler::render): * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivateQTKit::setWirelessPlaybackTarget): * platform/graphics/opengl/Extensions3DOpenGLES.cpp: (WebCore::Extensions3DOpenGLES::setEXTContextLostCallback): * platform/graphics/surfaces/GLTransportSurface.cpp: (WebCore::GLTransportSurface::createTransportSurface): (WebCore::GLTransportSurfaceClient::createTransportSurfaceClient): * platform/graphics/surfaces/egl/EGLSurface.cpp: (WebCore::EGLTransportSurface::createTransportSurface): (WebCore::EGLTransportSurface::createTransportSurfaceClient): * platform/graphics/texmap/BitmapTexturePool.cpp: (WebCore::BitmapTexturePool::BitmapTexturePool): * platform/graphics/texmap/BitmapTexturePool.h: (WebCore::BitmapTexturePool::Entry::Entry): * platform/graphics/texmap/TextureMapperLayer.cpp: (WebCore::TextureMapperLayer::removeAllChildren): * platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp: (WebCore::TextureMapperPlatformLayerBuffer::TextureMapperPlatformLayerBuffer): * platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h: (WebCore::TextureMapperPlatformLayerBuffer::setUnmanagedBufferDataHolder): * platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp: (WebCore::TextureMapperPlatformLayerProxy::pushNextBuffer): (WebCore::TextureMapperPlatformLayerProxy::getAvailableBuffer): (WebCore::TextureMapperPlatformLayerProxy::releaseUnusedBuffersTimerFired): (WebCore::TextureMapperPlatformLayerProxy::swapBuffer): (WebCore::TextureMapperPlatformLayerProxy::scheduleUpdateOnCompositorThread): (WebCore::TextureMapperPlatformLayerProxy::compositorThreadUpdateTimerFired): * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp: (WebCore::CompositingCoordinator::releaseInactiveAtlasesTimerFired): * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: (WebCore::CoordinatedGraphicsLayer::adjustContentsScale): * platform/graphics/wayland/PlatformDisplayWayland.cpp: (WebCore::PlatformDisplayWayland::createSharingGLContext): * platform/graphics/win/FontCacheWin.cpp: (WebCore::FontCache::createFontPlatformData): * platform/graphics/win/FontCustomPlatformData.cpp: (WebCore::FontCustomPlatformData::fontPlatformData): * platform/graphics/win/FontCustomPlatformDataCairo.cpp: (WebCore::FontCustomPlatformData::fontPlatformData): * platform/graphics/win/FontPlatformDataCGWin.cpp: (WebCore::FontPlatformData::FontPlatformData): * platform/graphics/win/FontPlatformDataCairoWin.cpp: (WebCore::FontPlatformData::FontPlatformData): * platform/graphics/win/FontPlatformDataWin.cpp: (WebCore::FontPlatformData::FontPlatformData): * platform/graphics/win/SharedGDIObject.h: (WebCore::SharedGDIObject::create): (WebCore::SharedGDIObject::SharedGDIObject): * platform/graphics/win/SimpleFontDataWin.cpp: (WebCore::Font::platformCreateScaledFont): * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: (WebVideoFullscreenInterfaceAVKit::preparedToReturnToInline): * platform/mac/HIDGamepadProvider.cpp: (WebCore::HIDGamepadProvider::deviceAdded): * platform/mac/ThemeMac.mm: (WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext): * platform/mediastream/MediaStreamPrivate.cpp: (WebCore::MediaStreamPrivate::create): * platform/mediastream/MediaStreamTrackPrivate.cpp: (WebCore::MediaStreamTrackPrivate::create): * platform/mediastream/mac/AVVideoCaptureSource.mm: (WebCore::AVVideoCaptureSource::currentFrameImage): * platform/network/BlobData.h: (WebCore::RawData::create): (WebCore::RawData::RawData): * platform/network/BlobPart.h: (WebCore::BlobPart::BlobPart): (WebCore::BlobPart::moveData): * platform/network/DataURLDecoder.cpp: (WebCore::DataURLDecoder::DecodingResultDispatcher::dispatch): (WebCore::DataURLDecoder::DecodingResultDispatcher::DecodingResultDispatcher): (WebCore::DataURLDecoder::DecodingResultDispatcher::timerFired): (WebCore::DataURLDecoder::createDecodeTask): (WebCore::DataURLDecoder::decode): * platform/network/HTTPHeaderMap.cpp: (WebCore::HTTPHeaderMap::adopt): * platform/network/NetworkStateNotifier.cpp: (WebCore::NetworkStateNotifier::addNetworkStateChangeListener): * platform/network/ResourceHandle.h: (WebCore::ResourceHandle::setQuickLookHandle): * platform/network/ResourceRequestBase.cpp: (WebCore::ResourceRequestBase::adopt): (WebCore::ResourceRequestBase::copyData): (WebCore::ResourceRequestBase::setHTTPHeaderFields): * platform/network/ResourceResponseBase.cpp: (WebCore::ResourceResponseBase::adopt): (WebCore::ResourceResponseBase::copyData): * platform/network/cf/FormDataStreamCFNet.cpp: (WebCore::advanceCurrentStream): * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::releaseConnectionForDownload): * platform/network/curl/CurlCacheManager.cpp: (WebCore::CurlCacheManager::loadIndex): (WebCore::CurlCacheManager::didReceiveResponse): * platform/network/curl/SocketStreamHandle.h: (WebCore::SocketStreamHandle::SocketData::SocketData): * platform/network/curl/SocketStreamHandleCurl.cpp: (WebCore::SocketStreamHandle::platformSend): (WebCore::SocketStreamHandle::readData): (WebCore::SocketStreamHandle::sendData): (WebCore::SocketStreamHandle::didReceiveData): (WebCore::SocketStreamHandle::createCopy): * platform/network/soup/NetworkStorageSessionSoup.cpp: (WebCore::NetworkStorageSession::NetworkStorageSession): (WebCore::NetworkStorageSession::setSoupNetworkSession): * platform/text/LocaleICU.cpp: (WebCore::LocaleICU::createLabelVector): (WebCore::createFallbackMonthLabels): (WebCore::createFallbackAMPMLabels): * platform/win/WCDataObject.cpp: (WebCore::WCDataObject::SetData): * plugins/DOMMimeType.cpp: (WebCore::DOMMimeType::DOMMimeType): * plugins/DOMMimeType.h: (WebCore::DOMMimeType::create): * plugins/DOMPlugin.cpp: (WebCore::DOMPlugin::DOMPlugin): * plugins/DOMPlugin.h: (WebCore::DOMPlugin::create): * plugins/PluginData.cpp: (WebCore::PluginData::publiclyVisiblePlugins): * rendering/ClipPathOperation.h: * rendering/FloatingObjects.cpp: (WebCore::FloatingObjects::moveAllToFloatInfoMap): (WebCore::FloatingObjects::add): * rendering/LayoutState.cpp: (WebCore::LayoutState::LayoutState): * rendering/RenderAttachment.cpp: (WebCore::RenderAttachment::RenderAttachment): * rendering/RenderBlock.cpp: (WebCore::OverflowEventDispatcher::~OverflowEventDispatcher): (WebCore::RenderBlock::RenderBlock): * rendering/RenderBlockFlow.cpp: (WebCore::RenderBlockFlow::RenderBlockFlow): (WebCore::RenderBlockFlow::layoutLineGridBox): (WebCore::RenderBlockFlow::insertFloatingObject): * rendering/RenderBlockFlow.h: (WebCore::RenderBlockFlow::setLineGridBox): * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlockFlow::createAndAppendRootInlineBox): (WebCore::constructBidiRunsForSegment): (WebCore::RenderBlockFlow::linkToEndLineIfNeeded): * rendering/RenderBox.cpp: (WebCore::RenderBox::RenderBox): * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::RenderBoxModelObject): (WebCore::RenderBoxModelObject::paintFillLayerExtended): * rendering/RenderButton.cpp: (WebCore::RenderButton::RenderButton): * rendering/RenderDeprecatedFlexibleBox.cpp: (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox): * rendering/RenderDetailsMarker.cpp: (WebCore::RenderDetailsMarker::RenderDetailsMarker): * rendering/RenderElement.cpp: (WebCore::RenderElement::RenderElement): (WebCore::RenderElement::createFor): (WebCore::RenderElement::setStyle): (WebCore::RenderElement::propagateStyleToAnonymousChildren): * rendering/RenderElement.h: (WebCore::RenderElement::setStyleInternal): (WebCore::RenderElement::setAnimatableStyle): * rendering/RenderEmbeddedObject.cpp: (WebCore::RenderEmbeddedObject::RenderEmbeddedObject): (WebCore::RenderEmbeddedObject::createForApplet): * rendering/RenderFieldset.cpp: (WebCore::RenderFieldset::RenderFieldset): * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::RenderFileUploadControl): * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::RenderFlexibleBox): * rendering/RenderFlowThread.cpp: (WebCore::RenderFlowThread::RenderFlowThread): * rendering/RenderFrame.cpp: (WebCore::RenderFrame::RenderFrame): * rendering/RenderFrameBase.cpp: (WebCore::RenderFrameBase::RenderFrameBase): * rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::RenderFrameSet): * rendering/RenderFullScreen.cpp: (WebCore::RenderFullScreen::RenderFullScreen): (WebCore::RenderFullScreen::createPlaceholder): * rendering/RenderGrid.cpp: (WebCore::RenderGrid::RenderGrid): (WebCore::RenderGrid::computeFlexFactorUnitSize): * rendering/RenderHTMLCanvas.cpp: (WebCore::RenderHTMLCanvas::RenderHTMLCanvas): * rendering/RenderIFrame.cpp: (WebCore::RenderIFrame::RenderIFrame): * rendering/RenderImage.cpp: (WebCore::RenderImage::RenderImage): * rendering/RenderInline.cpp: (WebCore::RenderInline::RenderInline): (WebCore::updateStyleOfAnonymousBlockContinuations): (WebCore::RenderInline::addChildIgnoringContinuation): (WebCore::RenderInline::splitInlines): (WebCore::RenderInline::createAndAppendInlineFlowBox): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::calculateClipRects): * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers): * rendering/RenderLayerModelObject.cpp: (WebCore::RenderLayerModelObject::RenderLayerModelObject): * rendering/RenderLineBreak.cpp: (WebCore::RenderLineBreak::RenderLineBreak): * rendering/RenderListBox.cpp: (WebCore::RenderListBox::RenderListBox): * rendering/RenderListItem.cpp: (WebCore::RenderListItem::RenderListItem): (WebCore::RenderListItem::styleDidChange): * rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::RenderListMarker): * rendering/RenderMedia.cpp: (WebCore::RenderMedia::RenderMedia): * rendering/RenderMediaControlElements.cpp: (WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer): (WebCore::RenderMediaControlTimelineContainer::RenderMediaControlTimelineContainer): (WebCore::RenderTextTrackContainerElement::RenderTextTrackContainerElement): * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::RenderMenuList): * rendering/RenderMeter.cpp: (WebCore::RenderMeter::RenderMeter): * rendering/RenderMultiColumnFlowThread.cpp: (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread): * rendering/RenderMultiColumnSet.cpp: (WebCore::RenderMultiColumnSet::RenderMultiColumnSet): * rendering/RenderMultiColumnSpannerPlaceholder.cpp: (WebCore::RenderMultiColumnSpannerPlaceholder::RenderMultiColumnSpannerPlaceholder): * rendering/RenderNamedFlowFragment.cpp: (WebCore::RenderNamedFlowFragment::RenderNamedFlowFragment): * rendering/RenderNamedFlowThread.cpp: (WebCore::RenderNamedFlowThread::RenderNamedFlowThread): (WebCore::RenderNamedFlowThread::updateWritingMode): * rendering/RenderProgress.cpp: (WebCore::RenderProgress::RenderProgress): * rendering/RenderPtr.h: * rendering/RenderQuote.cpp: (WebCore::RenderQuote::RenderQuote): * rendering/RenderRegion.cpp: (WebCore::RenderRegion::RenderRegion): * rendering/RenderRegionSet.cpp: (WebCore::RenderRegionSet::RenderRegionSet): * rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::RenderReplaced): * rendering/RenderReplica.cpp: (WebCore::RenderReplica::RenderReplica): * rendering/RenderRuby.cpp: (WebCore::RenderRubyAsInline::RenderRubyAsInline): (WebCore::RenderRubyAsBlock::RenderRubyAsBlock): * rendering/RenderRubyBase.cpp: (WebCore::RenderRubyBase::RenderRubyBase): * rendering/RenderRubyRun.cpp: (WebCore::RenderRubyRun::RenderRubyRun): (WebCore::RenderRubyRun::createRubyBase): * rendering/RenderRubyText.cpp: (WebCore::RenderRubyText::RenderRubyText): * rendering/RenderScrollbarPart.cpp: (WebCore::RenderScrollbarPart::RenderScrollbarPart): * rendering/RenderSearchField.cpp: (WebCore::RenderSearchField::RenderSearchField): (WebCore::RenderSearchField::updateCancelButtonVisibility): * rendering/RenderSlider.cpp: (WebCore::RenderSlider::RenderSlider): * rendering/RenderSnapshottedPlugIn.cpp: (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): * rendering/RenderTable.cpp: (WebCore::RenderTable::RenderTable): * rendering/RenderTableCaption.cpp: (WebCore::RenderTableCaption::RenderTableCaption): * rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::RenderTableCell): * rendering/RenderTableCol.cpp: (WebCore::RenderTableCol::RenderTableCol): * rendering/RenderTableRow.cpp: (WebCore::RenderTableRow::RenderTableRow): * rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::RenderTableSection): * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::RenderTextControl): * rendering/RenderTextControl.h: * rendering/RenderTextControlMultiLine.cpp: (WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine): * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine): * rendering/RenderTextControlSingleLine.h: * rendering/RenderThemeEfl.cpp: (WebCore::RenderThemeEfl::getThemePartFromCache): (WebCore::RenderThemeEfl::loadTheme): * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintProgressBar): * rendering/RenderVTTCue.cpp: (WebCore::RenderVTTCue::RenderVTTCue): * rendering/RenderVideo.cpp: (WebCore::RenderVideo::RenderVideo): * rendering/RenderView.cpp: (WebCore::RenderView::RenderView): (WebCore::RenderView::updateSelectionForSubtrees): (WebCore::RenderView::applySubtreeSelection): * rendering/RenderView.h: * rendering/RenderWidget.cpp: (WebCore::RenderWidget::RenderWidget): * rendering/RootInlineBox.cpp: (WebCore::RootInlineBox::placeEllipsis): * rendering/mathml/RenderMathMLBlock.cpp: (WebCore::RenderMathMLBlock::RenderMathMLBlock): * rendering/mathml/RenderMathMLBlock.h: * rendering/mathml/RenderMathMLFenced.cpp: (WebCore::RenderMathMLFenced::RenderMathMLFenced): * rendering/mathml/RenderMathMLFraction.cpp: (WebCore::RenderMathMLFraction::RenderMathMLFraction): * rendering/mathml/RenderMathMLMath.cpp: (WebCore::RenderMathMLMath::RenderMathMLMath): * rendering/mathml/RenderMathMLMenclose.cpp: (WebCore::RenderMathMLMenclose::RenderMathMLMenclose): * rendering/mathml/RenderMathMLOperator.cpp: (WebCore::RenderMathMLOperator::RenderMathMLOperator): (WebCore::RenderMathMLOperator::updateStyle): * rendering/mathml/RenderMathMLRadicalOperator.cpp: (WebCore::RenderMathMLRadicalOperator::RenderMathMLRadicalOperator): * rendering/mathml/RenderMathMLRoot.cpp: (WebCore::RenderMathMLRoot::RenderMathMLRoot): (WebCore::RenderMathMLRoot::updateStyle): * rendering/mathml/RenderMathMLRoot.h: * rendering/mathml/RenderMathMLRow.cpp: (WebCore::RenderMathMLRow::RenderMathMLRow): * rendering/mathml/RenderMathMLScripts.cpp: (WebCore::RenderMathMLScripts::RenderMathMLScripts): * rendering/mathml/RenderMathMLScripts.h: * rendering/mathml/RenderMathMLSpace.cpp: (WebCore::RenderMathMLSpace::RenderMathMLSpace): * rendering/mathml/RenderMathMLSquareRoot.cpp: (WebCore::RenderMathMLSquareRoot::RenderMathMLSquareRoot): * rendering/mathml/RenderMathMLToken.cpp: (WebCore::RenderMathMLToken::RenderMathMLToken): (WebCore::RenderMathMLToken::updateStyle): * rendering/mathml/RenderMathMLUnderOver.cpp: (WebCore::RenderMathMLUnderOver::RenderMathMLUnderOver): * rendering/shapes/PolygonShape.h: (WebCore::PolygonShape::PolygonShape): * rendering/shapes/RasterShape.h: * rendering/shapes/Shape.cpp: (WebCore::createPolygonShape): (WebCore::Shape::createShape): (WebCore::Shape::createRasterShape): (WebCore::Shape::createBoxShape): * rendering/style/BasicShapes.cpp: (WebCore::BasicShapeCenterCoordinate::updateComputedLength): (WebCore::BasicShapeCircle::blend): (WebCore::BasicShapeEllipse::blend): (WebCore::BasicShapePolygon::blend): (WebCore::BasicShapePath::BasicShapePath): (WebCore::BasicShapePath::blend): (WebCore::BasicShapeInset::blend): * rendering/style/BasicShapes.h: * rendering/style/ContentData.cpp: (WebCore::ContentData::clone): (WebCore::ImageContentData::createContentRenderer): (WebCore::TextContentData::createContentRenderer): (WebCore::QuoteContentData::createContentRenderer): * rendering/style/ContentData.h: (WebCore::ContentData::setNext): * rendering/style/DataRef.h: (WebCore::DataRef::DataRef): * rendering/style/FillLayer.cpp: (WebCore::FillLayer::~FillLayer): * rendering/style/FillLayer.h: (WebCore::FillLayer::setXPosition): (WebCore::FillLayer::setYPosition): (WebCore::FillLayer::setNext): * rendering/style/NinePieceImage.cpp: (WebCore::NinePieceImage::NinePieceImage): * rendering/style/NinePieceImage.h: (WebCore::NinePieceImage::setImageSlices): (WebCore::NinePieceImage::setBorderSlices): (WebCore::NinePieceImage::setOutset): * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::setWillChange): (WebCore::RenderStyle::appendContent): (WebCore::RenderStyle::setContent): (WebCore::RenderStyle::setTextShadow): (WebCore::RenderStyle::setBoxShadow): (WebCore::RenderStyle::setWordSpacing): (WebCore::RenderStyle::setScrollSnapPointsX): (WebCore::RenderStyle::setScrollSnapPointsY): (WebCore::RenderStyle::setScrollSnapDestination): (WebCore::RenderStyle::setScrollSnapCoordinates): * rendering/style/RenderStyle.h: * rendering/style/SVGRenderStyle.h: (WebCore::SVGRenderStyle::setShadow): * rendering/style/ShadowData.h: (WebCore::ShadowData::setNext): * rendering/style/StyleGeneratedImage.cpp: (WebCore::StyleGeneratedImage::StyleGeneratedImage): * rendering/style/StyleGeneratedImage.h: * rendering/style/StyleReflection.h: (WebCore::StyleReflection::setOffset): * rendering/svg/RenderSVGBlock.cpp: (WebCore::RenderSVGBlock::RenderSVGBlock): * rendering/svg/RenderSVGContainer.cpp: (WebCore::RenderSVGContainer::RenderSVGContainer): * rendering/svg/RenderSVGEllipse.cpp: (WebCore::RenderSVGEllipse::RenderSVGEllipse): * rendering/svg/RenderSVGForeignObject.cpp: (WebCore::RenderSVGForeignObject::RenderSVGForeignObject): * rendering/svg/RenderSVGGradientStop.cpp: (WebCore::RenderSVGGradientStop::RenderSVGGradientStop): * rendering/svg/RenderSVGHiddenContainer.cpp: (WebCore::RenderSVGHiddenContainer::RenderSVGHiddenContainer): * rendering/svg/RenderSVGImage.cpp: (WebCore::RenderSVGImage::RenderSVGImage): * rendering/svg/RenderSVGInline.cpp: (WebCore::RenderSVGInline::RenderSVGInline): (WebCore::RenderSVGInline::createInlineFlowBox): * rendering/svg/RenderSVGInlineText.cpp: (WebCore::RenderSVGInlineText::createTextBox): * rendering/svg/RenderSVGModelObject.cpp: (WebCore::RenderSVGModelObject::RenderSVGModelObject): * rendering/svg/RenderSVGPath.cpp: (WebCore::RenderSVGPath::RenderSVGPath): * rendering/svg/RenderSVGRect.cpp: (WebCore::RenderSVGRect::RenderSVGRect): * rendering/svg/RenderSVGResourceClipper.cpp: (WebCore::RenderSVGResourceClipper::RenderSVGResourceClipper): * rendering/svg/RenderSVGResourceContainer.cpp: (WebCore::RenderSVGResourceContainer::RenderSVGResourceContainer): * rendering/svg/RenderSVGResourceFilter.cpp: (WebCore::RenderSVGResourceFilter::RenderSVGResourceFilter): (WebCore::RenderSVGResourceFilter::buildPrimitives): (WebCore::RenderSVGResourceFilter::applyResource): (WebCore::RenderSVGResourceFilter::postApplyResource): * rendering/svg/RenderSVGResourceFilterPrimitive.cpp: (WebCore::RenderSVGResourceFilterPrimitive::RenderSVGResourceFilterPrimitive): * rendering/svg/RenderSVGResourceGradient.cpp: (WebCore::RenderSVGResourceGradient::RenderSVGResourceGradient): (WebCore::createMaskAndSwapContextForTextGradient): * rendering/svg/RenderSVGResourceLinearGradient.cpp: (WebCore::RenderSVGResourceLinearGradient::RenderSVGResourceLinearGradient): * rendering/svg/RenderSVGResourceMarker.cpp: (WebCore::RenderSVGResourceMarker::RenderSVGResourceMarker): * rendering/svg/RenderSVGResourceMasker.cpp: (WebCore::RenderSVGResourceMasker::RenderSVGResourceMasker): * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::RenderSVGResourcePattern): (WebCore::RenderSVGResourcePattern::buildPattern): * rendering/svg/RenderSVGResourceRadialGradient.cpp: (WebCore::RenderSVGResourceRadialGradient::RenderSVGResourceRadialGradient): * rendering/svg/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::RenderSVGRoot): * rendering/svg/RenderSVGShape.cpp: (WebCore::RenderSVGShape::RenderSVGShape): * rendering/svg/RenderSVGTSpan.h: * rendering/svg/RenderSVGText.cpp: (WebCore::RenderSVGText::RenderSVGText): (WebCore::RenderSVGText::createRootInlineBox): * rendering/svg/RenderSVGTextPath.cpp: (WebCore::RenderSVGTextPath::RenderSVGTextPath): * rendering/svg/RenderSVGTransformableContainer.cpp: (WebCore::RenderSVGTransformableContainer::RenderSVGTransformableContainer): * rendering/svg/RenderSVGViewportContainer.cpp: (WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer): * rendering/svg/SVGResourcesCache.cpp: (WebCore::SVGResourcesCache::addResourcesFromRenderer): * replay/CapturingInputCursor.cpp: (WebCore::CapturingInputCursor::CapturingInputCursor): (WebCore::CapturingInputCursor::create): (WebCore::CapturingInputCursor::storeInput): * replay/FunctorInputCursor.h: (WebCore::FunctorInputCursor::FunctorInputCursor): * replay/MemoizedDOMResult.cpp: (JSC::InputTraits<MemoizedDOMResultBase>::decode): * replay/ReplayController.cpp: (WebCore::ReplayController::createSegment): * replay/ReplayInputCreationMethods.cpp: (WebCore::InitialNavigation::createFromPage): * replay/ReplaySession.cpp: (WebCore::ReplaySession::appendSegment): (WebCore::ReplaySession::insertSegment): * replay/ReplayingInputCursor.cpp: (WebCore::ReplayingInputCursor::ReplayingInputCursor): (WebCore::ReplayingInputCursor::create): * replay/SegmentedInputStorage.cpp: (WebCore::SegmentedInputStorage::store): * replay/SerializationMethods.cpp: (JSC::EncodingTraits<NondeterministicInputBase>::decodeValue): * replay/UserInputBridge.cpp: (WebCore::UserInputBridge::handleMousePressEvent): (WebCore::UserInputBridge::handleMouseReleaseEvent): (WebCore::UserInputBridge::handleMouseMoveEvent): (WebCore::UserInputBridge::handleMouseMoveOnScrollbarEvent): (WebCore::UserInputBridge::handleKeyEvent): (WebCore::UserInputBridge::handleWheelEvent): * storage/Storage.cpp: (WebCore::Storage::create): (WebCore::Storage::Storage): * style/StyleResolveForDocument.cpp: (WebCore::Style::resolveForDocument): * style/StyleResolveTree.cpp: (WebCore::Style::createRendererIfNeeded): (WebCore::Style::setBeforeOrAfterPseudoElement): (WebCore::Style::resolveTree): * svg/SVGAElement.cpp: (WebCore::SVGAElement::createElementRenderer): * svg/SVGAltGlyphElement.cpp: (WebCore::SVGAltGlyphElement::createElementRenderer): * svg/SVGAnimatedPath.cpp: (WebCore::SVGAnimatedPathAnimator::constructFromString): (WebCore::SVGAnimatedPathAnimator::startAnimValAnimation): * svg/SVGAnimatedTypeAnimator.cpp: (WebCore::SVGAnimatedTypeAnimator::findAnimatedPropertiesForAttributeName): * svg/SVGCircleElement.cpp: (WebCore::SVGCircleElement::createElementRenderer): * svg/SVGClipPathElement.cpp: (WebCore::SVGClipPathElement::createElementRenderer): * svg/SVGDefsElement.cpp: (WebCore::SVGDefsElement::createElementRenderer): * svg/SVGDocumentExtensions.cpp: (WebCore::SVGDocumentExtensions::markPendingResourcesForRemoval): (WebCore::SVGDocumentExtensions::addElementReferencingTarget): (WebCore::SVGDocumentExtensions::rebuildElements): * svg/SVGEllipseElement.cpp: (WebCore::SVGEllipseElement::createElementRenderer): * svg/SVGFilterElement.cpp: (WebCore::SVGFilterElement::createElementRenderer): * svg/SVGFilterPrimitiveStandardAttributes.cpp: (WebCore::SVGFilterPrimitiveStandardAttributes::createElementRenderer): * svg/SVGFontElement.cpp: (WebCore::SVGKerningMap::insert): * svg/SVGForeignObjectElement.cpp: (WebCore::SVGForeignObjectElement::createElementRenderer): * svg/SVGGElement.cpp: (WebCore::SVGGElement::createElementRenderer): * svg/SVGGraphicsElement.cpp: (WebCore::SVGGraphicsElement::createElementRenderer): * svg/SVGImageElement.cpp: (WebCore::SVGImageElement::createElementRenderer): * svg/SVGLinearGradientElement.cpp: (WebCore::SVGLinearGradientElement::createElementRenderer): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::createElementRenderer): * svg/SVGMaskElement.cpp: (WebCore::SVGMaskElement::createElementRenderer): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::createElementRenderer): * svg/SVGPathUtilities.cpp: (WebCore::appendSVGPathByteStreamFromSVGPathSeg): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::createElementRenderer): * svg/SVGRadialGradientElement.cpp: (WebCore::SVGRadialGradientElement::createElementRenderer): * svg/SVGRectElement.cpp: (WebCore::SVGRectElement::createElementRenderer): * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::createElementRenderer): * svg/SVGStopElement.cpp: (WebCore::SVGStopElement::createElementRenderer): * svg/SVGSwitchElement.cpp: (WebCore::SVGSwitchElement::createElementRenderer): * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::createElementRenderer): * svg/SVGTRefElement.cpp: (WebCore::SVGTRefTargetEventListener::attach): (WebCore::SVGTRefElement::createElementRenderer): * svg/SVGTSpanElement.cpp: (WebCore::SVGTSpanElement::createElementRenderer): * svg/SVGTextElement.cpp: (WebCore::SVGTextElement::createElementRenderer): * svg/SVGTextPathElement.cpp: (WebCore::SVGTextPathElement::createElementRenderer): * svg/SVGToOTFFontConversion.cpp: (WebCore::SVGToOTFFontConverter::releaseResult): (WebCore::SVGToOTFFontConverter::appendKERNSubtable): (WebCore::SVGToOTFFontConverter::processGlyphElement): * svg/SVGUseElement.cpp: (WebCore::SVGUseElement::createElementRenderer): (WebCore::SVGUseElement::cloneTarget): * svg/graphics/SVGImage.cpp: (WebCore::SVGImage::~SVGImage): (WebCore::SVGImage::drawPatternForContainer): * testing/Internals.cpp: (WebCore::Internals::insertAuthorCSS): (WebCore::Internals::insertUserCSS): (WebCore::Internals::queueMicroTask): * workers/DedicatedWorkerGlobalScope.cpp: (WebCore::DedicatedWorkerGlobalScope::postMessage): * workers/Worker.cpp: (WebCore::Worker::create): (WebCore::Worker::postMessage): * workers/WorkerEventQueue.cpp: (WebCore::WorkerEventQueue::EventDispatcher::EventDispatcher): * workers/WorkerGlobalScope.cpp: (WebCore::WorkerGlobalScope::postTask): (WebCore::WorkerGlobalScope::setTimeout): (WebCore::WorkerGlobalScope::setInterval): (WebCore::WorkerGlobalScope::importScripts): (WebCore::WorkerGlobalScope::addMessage): (WebCore::WorkerGlobalScope::addMessageToWorkerConsole): * workers/WorkerMessagingProxy.cpp: (WebCore::WorkerMessagingProxy::postMessageToWorkerObject): (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope): (WebCore::WorkerMessagingProxy::postTaskToLoader): (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope): (WebCore::WorkerMessagingProxy::workerThreadCreated): * workers/WorkerRunLoop.cpp: (WebCore::WorkerRunLoop::postTask): (WebCore::WorkerRunLoop::postTaskAndTerminate): (WebCore::WorkerRunLoop::postTaskForMode): (WebCore::WorkerRunLoop::Task::Task): * xml/DOMParser.cpp: (WebCore::DOMParser::parseFromString): * xml/NativeXPathNSResolver.cpp: (WebCore::NativeXPathNSResolver::NativeXPathNSResolver): * xml/NativeXPathNSResolver.h: (WebCore::NativeXPathNSResolver::create): * xml/XMLErrors.cpp: (WebCore::XMLErrors::insertErrorMessageBlock): * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseBlob): * xml/XMLHttpRequestProgressEventThrottle.cpp: (WebCore::XMLHttpRequestProgressEventThrottle::flushProgressEvent): (WebCore::XMLHttpRequestProgressEventThrottle::dispatchDeferredEvents): * xml/XMLTreeViewer.cpp: (WebCore::XMLTreeViewer::transformDocumentToTreeView): * xml/XPathExpression.cpp: (WebCore::XPathExpression::XPathExpression): (WebCore::XPathExpression::createExpression): * xml/XPathExpressionNode.cpp: (WebCore::XPath::Expression::setSubexpressions): * xml/XPathExpressionNode.h: (WebCore::XPath::Expression::addSubexpression): * xml/XPathFunctions.cpp: (WebCore::XPath::Function::setArguments): (WebCore::XPath::FunId::evaluate): (WebCore::XPath::Function::create): * xml/XPathGrammar.y: * xml/XPathNodeSet.cpp: (WebCore::XPath::NodeSet::sort): (WebCore::XPath::NodeSet::traversalSort): * xml/XPathNodeSet.h: (WebCore::XPath::NodeSet::NodeSet): (WebCore::XPath::NodeSet::append): * xml/XPathParser.cpp: (WebCore::XPath::Parser::parseStatement): * xml/XPathParser.h: (WebCore::XPath::Parser::setParseResult): * xml/XPathPath.cpp: (WebCore::XPath::Filter::Filter): (WebCore::XPath::Filter::evaluate): (WebCore::XPath::LocationPath::evaluate): (WebCore::XPath::LocationPath::appendStep): (WebCore::XPath::LocationPath::prependStep): (WebCore::XPath::Path::Path): * xml/XPathPredicate.cpp: (WebCore::XPath::StringExpression::StringExpression): (WebCore::XPath::Negative::Negative): (WebCore::XPath::NumericOp::NumericOp): (WebCore::XPath::EqTestOp::EqTestOp): (WebCore::XPath::LogicalOp::LogicalOp): (WebCore::XPath::Union::Union): * xml/XPathStep.cpp: (WebCore::XPath::Step::Step): (WebCore::XPath::Step::optimize): (WebCore::XPath::optimizeStepPair): (WebCore::XPath::Step::evaluate): * xml/XPathStep.h: (WebCore::XPath::Step::NodeTest::NodeTest): (WebCore::XPath::Step::NodeTest::operator=): * xml/XPathValue.h: (WebCore::XPath::Value::Value): (WebCore::XPath::Value::Data::create): (WebCore::XPath::Value::Data::Data): * xml/XSLTProcessor.h: (WebCore::XSLTProcessor::setXSLStyleSheet): (WebCore::XSLTProcessor::importStylesheet): * xml/parser/XMLDocumentParser.cpp: (WebCore::XMLDocumentParser::append): * xml/parser/XMLDocumentParserLibxml2.cpp: (WebCore::PendingCallbacks::appendStartElementNSCallback): (WebCore::PendingCallbacks::appendCharactersCallback): (WebCore::PendingCallbacks::appendProcessingInstructionCallback): (WebCore::PendingCallbacks::appendCDATABlockCallback): (WebCore::PendingCallbacks::appendCommentCallback): (WebCore::PendingCallbacks::appendInternalSubsetCallback): (WebCore::PendingCallbacks::appendErrorCallback): (WebCore::OffsetBuffer::OffsetBuffer): (WebCore::openFunc): (WebCore::XMLDocumentParser::cdataBlock): (WebCore::XMLDocumentParser::comment): (WebCore::parseAttributes): Source/WebKit: * Storage/StorageNamespaceImpl.cpp: (WebCore::StorageNamespaceImpl::storageArea): Source/WebKit/ios: * WebCoreSupport/WebFixedPositionContent.mm: (-[WebFixedPositionContent setViewportConstrainedLayers:stickyContainerMap:]): * WebCoreSupport/WebInspectorClientIOS.mm: (WebInspectorFrontendClient::WebInspectorFrontendClient): Source/WebKit/mac: * History/WebHistoryItem.mm: (-[WebHistoryItem initFromDictionaryRepresentation:]): * Plugins/Hosted/HostedNetscapePluginStream.mm: (WebKit::HostedNetscapePluginStream::willSendRequest): * Plugins/Hosted/NetscapePluginInstanceProxy.h: (WebKit::NetscapePluginInstanceProxy::setCurrentReply): * Plugins/WebNetscapePluginStream.mm: (WebNetscapePluginStream::willSendRequest): * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView scheduleTimerWithInterval:repeat:timerFunc:]): * WebCoreSupport/WebContextMenuClient.mm: (WebContextMenuClient::imageForCurrentSharingServicePickerItem): * WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::dispatchDecidePolicyForResponse): (WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): (WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): (WebFrameLoaderClient::dispatchWillSubmitForm): (WebFrameLoaderClient::createDocumentLoader): * WebCoreSupport/WebInspectorClient.mm: (WebInspectorFrontendClient::WebInspectorFrontendClient): * WebView/WebArchive.mm: (-[WebArchive initWithMainResource:subresources:subframeArchives:]): * WebView/WebFrame.mm: (-[WebFrame _documentFragmentWithNodesAsParagraphs:]): * WebView/WebHTMLView.mm: (-[WebHTMLView _applyEditingStyleToSelection:withUndoAction:]): * WebView/WebMediaPlaybackTargetPicker.mm: (WebMediaPlaybackTargetPicker::setPlaybackTarget): * WebView/WebView.mm: (-[WebView _loadBackForwardListFromOtherView:]): (+[WebView _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:injectedFrames:]): (+[WebView _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:injectedFrames:]): Source/WebKit/win: * Plugins/PluginStream.cpp: (WebCore::PluginStream::willSendRequest): * Plugins/PluginView.cpp: (WebCore::PluginView::requestTimerFired): (WebCore::PluginView::scheduleRequest): (WebCore::PluginView::handlePost): * WebCoreSupport/WebFrameLoaderClient.cpp: (WebFrameLoaderClient::createDocumentLoader): * WebCoreSupport/WebInspectorClient.cpp: (WebInspectorFrontendClient::WebInspectorFrontendClient): * WebHistory.cpp: (createUserInfoFromArray): * WebHistoryItem.cpp: (WebHistoryItem::initFromDictionaryRepresentation): * WebView.cpp: (WebView::addToDirtyRegion): (WebView::scrollBackingStore): (WebView::loadBackForwardListFromOtherView): (WebView::addUserScriptToGroup): (WebView::addUserStyleSheetToGroup): Source/WebKit2: * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::postDatabaseTask): (WebKit::DatabaseProcess::fetchWebsiteData): (WebKit::DatabaseProcess::deleteWebsiteData): (WebKit::DatabaseProcess::deleteWebsiteDataForOrigins): (WebKit::DatabaseProcess::indexedDatabaseOrigins): * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp: (WebKit::UniqueIDBDatabase::postTransactionOperation): (WebKit::UniqueIDBDatabase::postMainThreadTask): (WebKit::UniqueIDBDatabase::postDatabaseTask): * NetworkProcess/Downloads/DownloadManager.cpp: (WebKit::DownloadManager::startDownload): (WebKit::DownloadManager::convertHandleToDownload): (WebKit::DownloadManager::resumeDownload): * NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm: (WebKit::NetworkServiceInitializerDelegate::NetworkServiceInitializerDelegate): * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: (WebKit::NetworkBlobRegistry::registerBlobURL): * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::performSynchronousLoad): (WebKit::NetworkConnectionToWebProcess::registerBlobURL): * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::didReceiveData): (WebKit::NetworkLoad::didReceiveBuffer): (WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace): * NetworkProcess/NetworkProcess.cpp: (WebKit::fetchDiskCacheEntries): (WebKit::NetworkProcess::fetchWebsiteData): (WebKit::NetworkProcess::deleteWebsiteData): (WebKit::clearDiskCacheEntries): (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::SynchronousLoadData::SynchronousLoadData): (WebKit::NetworkResourceLoader::NetworkResourceLoader): (WebKit::NetworkResourceLoader::retrieveCacheEntry): (WebKit::NetworkResourceLoader::didFinishLoading): (WebKit::NetworkResourceLoader::tryStoreAsCacheEntry): (WebKit::NetworkResourceLoader::validateCacheEntry): * NetworkProcess/NetworkResourceLoader.h: * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::retrieve): (WebKit::NetworkCache::Cache::store): (WebKit::NetworkCache::Cache::clear): * NetworkProcess/cache/NetworkCacheCoders.h: * NetworkProcess/cache/NetworkCacheDataSoup.cpp: (WebKit::NetworkCache::Data::empty): (WebKit::NetworkCache::Data::subrange): (WebKit::NetworkCache::concatenate): (WebKit::NetworkCache::Data::adoptMap): * NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::Entry): * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: (WebKit::NetworkCache::runTaskInQueue): (WebKit::NetworkCache::fillDataFromReadBuffer): (WebKit::NetworkCache::IOChannel::readSyncInThread): * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): (WebKit::NetworkCache::SpeculativeLoad::didFinishLoading): (WebKit::NetworkCache::SpeculativeLoad::didComplete): * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: (WebKit::NetworkCache::SpeculativeLoadManager::ExpiringEntry::ExpiringEntry): (WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::PreloadedEntry): (WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::takeCacheEntry): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::create): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::setExistingSubresourcesEntry): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::PendingFrameLoad): (WebKit::NetworkCache::SpeculativeLoadManager::registerLoad): (WebKit::NetworkCache::SpeculativeLoadManager::addPreloadedEntry): (WebKit::NetworkCache::SpeculativeLoadManager::retrieveEntryFromStorage): (WebKit::NetworkCache::SpeculativeLoadManager::revalidateEntry): (WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry): (WebKit::NetworkCache::SpeculativeLoadManager::retrieveSubresourcesEntry): * NetworkProcess/cache/NetworkCacheStatistics.cpp: (WebKit::NetworkCache::Statistics::queryWasEverRequested): * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::ReadOperation::finish): (WebKit::NetworkCache::Storage::synchronize): (WebKit::NetworkCache::Storage::dispatchReadOperation): (WebKit::NetworkCache::Storage::dispatchWriteOperation): (WebKit::NetworkCache::Storage::retrieve): (WebKit::NetworkCache::Storage::store): (WebKit::NetworkCache::Storage::traverse): (WebKit::NetworkCache::Storage::clear): * NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp: (WebKit::NetworkCache::SubresourcesEntry::SubresourcesEntry): (WebKit::NetworkCache::SubresourcesEntry::updateSubresourceKeys): * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkDataTask::NetworkDataTask): * NetworkProcess/soup/NetworkProcessSoup.cpp: (WebKit::NetworkProcess::clearDiskCache): * Platform/IPC/ArgumentCoders.h: (IPC::ArgumentCoder<WTF::Optional<T>>::decode): * Platform/IPC/ArgumentDecoder.cpp: (IPC::ArgumentDecoder::ArgumentDecoder): * Platform/IPC/ArgumentEncoder.cpp: (IPC::ArgumentEncoder::addAttachment): (IPC::ArgumentEncoder::releaseAttachments): * Platform/IPC/Attachment.cpp: (IPC::Attachment::encode): * Platform/IPC/Connection.cpp: (IPC::Connection::SyncMessageState::processIncomingMessage): (IPC::Connection::SyncMessageState::dispatchMessages): (IPC::Connection::dispatchWorkQueueMessageReceiverMessage): (IPC::Connection::sendMessage): (IPC::Connection::sendSyncReply): (IPC::Connection::waitForMessage): (IPC::Connection::sendSyncMessage): (IPC::Connection::sendSyncMessageFromSecondaryThread): (IPC::Connection::waitForSyncReply): (IPC::Connection::processIncomingSyncReply): (IPC::Connection::processIncomingMessage): (IPC::Connection::sendOutgoingMessages): (IPC::Connection::dispatchSyncMessage): (IPC::Connection::enqueueIncomingMessage): (IPC::Connection::dispatchOneMessage): * Platform/IPC/Connection.h: (IPC::Connection::Identifier::Identifier): (IPC::Connection::send): (IPC::Connection::sendSync): * Platform/IPC/HandleMessage.h: (IPC::handleMessage): (IPC::handleMessageDelayed): * Platform/IPC/MessageDecoder.cpp: (IPC::MessageDecoder::MessageDecoder): (IPC::MessageDecoder::setImportanceAssertion): (IPC::MessageDecoder::unwrapForTesting): * Platform/IPC/MessageDecoder.h: (IPC::MessageDecoder::setMessageProcessingToken): * Platform/IPC/MessageEncoder.cpp: (IPC::MessageEncoder::wrapForTesting): * Platform/IPC/MessageRecorder.cpp: (IPC::MessageRecorder::recordOutgoingMessage): (IPC::MessageRecorder::recordIncomingMessage): (IPC::MessageRecorder::MessageProcessingToken::MessageProcessingToken): * Platform/IPC/MessageSender.cpp: (IPC::MessageSender::sendMessage): * Platform/IPC/MessageSender.h: (IPC::MessageSender::send): (IPC::MessageSender::sendSync): * Platform/IPC/glib/GSocketMonitor.cpp: (IPC::GSocketMonitor::start): * Platform/IPC/mac/ConnectionMac.mm: (IPC::Connection::open): (IPC::createMessageDecoder): (IPC::Connection::receiveSourceEventHandler): * Platform/IPC/unix/ConnectionUnix.cpp: (IPC::Connection::processMessage): * Platform/unix/SharedMemoryUnix.cpp: (WebKit::SharedMemory::Handle::decode): (WebKit::SharedMemory::Handle::releaseAttachment): (WebKit::SharedMemory::Handle::adoptAttachment): * PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm: (WebKit::PluginServiceInitializerDelegate::PluginServiceInitializerDelegate): * PluginProcess/PluginProcess.cpp: (WebKit::PluginProcess::initializePluginProcess): * PluginProcess/WebProcessConnection.cpp: (WebKit::WebProcessConnection::addPluginControllerProxy): (WebKit::WebProcessConnection::createPluginInternal): * PluginProcess/mac/PluginProcessMac.mm: (WebKit::PluginProcess::platformInitializePluginProcess): * Scripts/webkit/LegacyMessageReceiver-expected.cpp: (Messages::WebPage::GetPluginProcessConnection::DelayedReply::DelayedReply): (Messages::WebPage::GetPluginProcessConnection::DelayedReply::send): (Messages::WebPage::TestMultipleAttributes::DelayedReply::DelayedReply): (Messages::WebPage::TestMultipleAttributes::DelayedReply::send): * Scripts/webkit/MessageReceiver-expected.cpp: (Messages::WebPage::GetPluginProcessConnection::DelayedReply::DelayedReply): (Messages::WebPage::GetPluginProcessConnection::DelayedReply::send): (Messages::WebPage::TestMultipleAttributes::DelayedReply::DelayedReply): (Messages::WebPage::TestMultipleAttributes::DelayedReply::send): * Scripts/webkit/messages.py: (generate_message_handler): * Shared/API/APIArray.cpp: (API::Array::create): (API::Array::createStringArray): (API::Array::copy): * Shared/API/APIArray.h: * Shared/API/APIDictionary.cpp: (API::Dictionary::create): (API::Dictionary::Dictionary): (API::Dictionary::keys): * Shared/API/APIPageGroupHandle.cpp: (API::PageGroupHandle::create): (API::PageGroupHandle::PageGroupHandle): (API::PageGroupHandle::decode): * Shared/API/APIString.h: * Shared/API/APIURL.h: (API::URL::create): (API::URL::URL): * Shared/API/Cocoa/RemoteObjectInvocation.h: (WebKit::RemoteObjectInvocation::ReplyInfo::ReplyInfo): * Shared/API/Cocoa/RemoteObjectInvocation.mm: (WebKit::RemoteObjectInvocation::RemoteObjectInvocation): (WebKit::RemoteObjectInvocation::decode): * Shared/API/Cocoa/WKRemoteObjectCoder.mm: (ensureObjectStream): (createEncodedObject): * Shared/API/Cocoa/_WKRemoteObjectInterface.mm: (initializeMethod): (-[_WKRemoteObjectInterface setClasses:forSelector:argumentIndex:ofReply:]): * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: (-[_WKRemoteObjectRegistry _sendInvocation:interface:]): * Shared/API/c/WKArray.cpp: (WKArrayCreate): (WKArrayCreateAdoptingValues): * Shared/API/c/WKDictionary.cpp: (WKDictionaryCreate): * Shared/API/c/WKSharedAPICast.h: (WebKit::ProxyingRefPtr::ProxyingRefPtr): * Shared/APIWebArchive.mm: (API::WebArchive::WebArchive): (API::WebArchive::subresources): (API::WebArchive::subframeArchives): * Shared/AsyncRequest.cpp: (WebKit::AsyncRequest::AsyncRequest): (WebKit::AsyncRequest::setAbortHandler): * Shared/AsyncRequest.h: * Shared/BlockingResponseMap.h: (BlockingResponseMap::didReceiveResponse): * Shared/ChildProcessProxy.cpp: (WebKit::ChildProcessProxy::sendMessage): (WebKit::ChildProcessProxy::didFinishLaunching): * Shared/ChildProcessProxy.h: (WebKit::ChildProcessProxy::send): (WebKit::ChildProcessProxy::sendSync): * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: (WebKit::CoordinatedGraphicsScene::dispatchOnMainThread): (WebKit::CoordinatedGraphicsScene::dispatchOnClientRunLoop): (WebKit::CoordinatedGraphicsScene::createLayer): (WebKit::CoordinatedGraphicsScene::syncRemoteContent): (WebKit::CoordinatedGraphicsScene::appendUpdate): * Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp: (WebKit::ThreadSafeCoordinatedSurface::create): (WebKit::ThreadSafeCoordinatedSurface::ThreadSafeCoordinatedSurface): * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: (WebKit::CompositingRunLoop::CompositingRunLoop): (WebKit::CompositingRunLoop::callOnCompositingRunLoop): (WebKit::ThreadedCompositor::callOnCompositingThread): * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: (WebKit::XPCServiceInitializerDelegate::XPCServiceInitializerDelegate): (WebKit::XPCServiceInitializer): * Shared/Plugins/Netscape/PluginInformation.cpp: (WebKit::createPluginInformationDictionary): * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.h: (WebKit::RemoteScrollingCoordinatorTransaction::setStateTreeToEncode): * Shared/SessionTracker.cpp: (WebKit::SessionTracker::setSession): * Shared/UserData.cpp: (WebKit::UserData::UserData): (WebKit::transformGraph): (WebKit::UserData::decode): * Shared/WebBackForwardListItem.cpp: (WebKit::WebBackForwardListItem::create): (WebKit::WebBackForwardListItem::WebBackForwardListItem): * Shared/WebBackForwardListItem.h: (WebKit::WebBackForwardListItem::setPageState): * Shared/WebCompiledContentExtension.cpp: (WebKit::WebCompiledContentExtension::create): (WebKit::WebCompiledContentExtension::WebCompiledContentExtension): * Shared/WebCompiledContentExtensionData.h: (WebKit::WebCompiledContentExtensionData::WebCompiledContentExtensionData): * Shared/WebContextMenuItem.cpp: (WebKit::WebContextMenuItem::submenuItemsAsAPIArray): * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder<UserStyleSheet>::decode): (IPC::ArgumentCoder<UserScript>::decode): (IPC::ArgumentCoder<FilterOperations>::decode): (IPC::ArgumentCoder<BlobPart>::decode): * Shared/WebKeyboardEvent.cpp: (WebKit::WebKeyboardEvent::WebKeyboardEvent): * Shared/WebPreferencesStore.h: (WebKit::WebPreferencesStore::Value::Value): * Shared/WebRenderLayer.cpp: (WebKit::WebRenderLayer::createArrayFromLayerList): * Shared/WebRenderObject.cpp: (WebKit::WebRenderObject::WebRenderObject): * Shared/WebTouchEvent.cpp: (WebKit::WebTouchEvent::WebTouchEvent): * Shared/efl/WebEventFactory.cpp: (WebKit::WebEventFactory::createWebTouchEvent): * Shared/gtk/NativeWebKeyboardEventGtk.cpp: (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): * Shared/gtk/NativeWebTouchEventGtk.cpp: (WebKit::NativeWebTouchEvent::NativeWebTouchEvent): * Shared/gtk/WebContextMenuItemGtk.cpp: (WebKit::WebContextMenuItemGtk::WebContextMenuItemGtk): * Shared/gtk/WebEventFactory.cpp: (WebKit::WebEventFactory::createWebKeyboardEvent): (WebKit::WebEventFactory::createWebTouchEvent): * Shared/linux/SeccompFilters/OpenSyscall.cpp: (WebKit::OpenSyscall::createFromOpenatContext): (WebKit::OpenSyscall::createFromCreatContext): (WebKit::OpenSyscallResult::encode): * Shared/mac/ObjCObjectGraph.mm: (WebKit::ObjCObjectGraph::decode): * Shared/mac/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::takeFrontContextPendingFlush): (WebKit::RemoteLayerBackingStore::Buffer::discard): * Shared/mac/RemoteLayerTreeTransaction.h: (WebKit::RemoteLayerTreeTransaction::setCallbackIDs): * Shared/mac/RemoteLayerTreeTransaction.mm: (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode): (WebKit::RemoteLayerTreeTransaction::decode): (WebKit::RemoteLayerTreeTransaction::setCreatedLayers): (WebKit::RemoteLayerTreeTransaction::setDestroyedLayerIDs): (WebKit::RemoteLayerTreeTransaction::setLayerIDsWithNewlyUnreachableBackingStore): * Shared/soup/WebCoreArgumentCodersSoup.cpp: (IPC::ArgumentCoder<ResourceRequest>::decodePlatformData): * UIProcess/API/APIProcessPoolConfiguration.h: * UIProcess/API/APISessionState.cpp: (API::SessionState::create): (API::SessionState::SessionState): * UIProcess/API/APIUserContentExtension.cpp: (API::UserContentExtension::UserContentExtension): * UIProcess/API/APIUserContentExtension.h: * UIProcess/API/APIUserContentExtensionStore.cpp: (API::compiledToFile): (API::createExtension): (API::UserContentExtensionStore::compileContentExtension): * UIProcess/API/APIUserScript.h: * UIProcess/API/APIWebsiteDataRecord.cpp: (API::WebsiteDataRecord::create): (API::WebsiteDataRecord::WebsiteDataRecord): * UIProcess/API/APIWebsiteDataStore.cpp: (API::WebsiteDataStore::create): (API::WebsiteDataStore::WebsiteDataStore): * UIProcess/API/C/WKApplicationCacheManager.cpp: (WKApplicationCacheManagerGetApplicationCacheOrigins): * UIProcess/API/C/WKKeyValueStorageManager.cpp: (WKKeyValueStorageManagerGetKeyValueStorageOrigins): (WKKeyValueStorageManagerGetStorageDetailsByOrigin): * UIProcess/API/C/WKPage.cpp: (WKPageCopySessionState): (WKPageRestoreFromSessionState): (WKPageSetPageContextMenuClient): (WKPageSetPageFindMatchesClient): (WKPageSetPageLoaderClient): (WebKit::RunJavaScriptAlertResultListener::create): (WebKit::RunJavaScriptAlertResultListener::RunJavaScriptAlertResultListener): (WebKit::RunJavaScriptConfirmResultListener::create): (WebKit::RunJavaScriptConfirmResultListener::RunJavaScriptConfirmResultListener): (WebKit::RunJavaScriptPromptResultListener::create): (WebKit::RunJavaScriptPromptResultListener::RunJavaScriptPromptResultListener): (WKPageSetPageUIClient): (WKPageSetPageNavigationClient): (WKPageCopyRelatedPages): * UIProcess/API/C/WKResourceCacheManager.cpp: (WKResourceCacheManagerGetCacheOrigins): * UIProcess/API/C/WKSessionStateRef.cpp: (WKSessionStateCreateFromData): * UIProcess/API/C/mac/WKContextPrivateMac.mm: (WKContextGetInfoForInstalledPlugIns): * UIProcess/API/C/mac/WKPagePrivateMac.mm: (-[WKObservablePageState initWithPage:]): * UIProcess/API/Cocoa/WKBrowsingContextGroup.mm: (createWKArray): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): (-[WKWebView _takeViewSnapshot]): (-[WKWebView _restoreFromSessionStateData:]): (-[WKWebView _setInputDelegate:]): * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (LazyInitialized::set): * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]): * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: (-[_WKProcessPoolConfiguration setCachePartitionedURLSchemes:]): * UIProcess/API/Cocoa/_WKSessionState.mm: (-[_WKSessionState _initWithSessionState:]): * UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm: (-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]): * UIProcess/API/efl/ewk_database_manager.cpp: (EwkDatabaseManager::getDatabaseOrigins): * UIProcess/API/gtk/WebKitContextMenuItem.cpp: (webkitContextMenuItemToWebContextMenuItemGtk): * UIProcess/API/gtk/WebKitFileChooserRequest.cpp: (webkit_file_chooser_request_select_files): * UIProcess/API/gtk/WebKitNotificationProvider.cpp: (WebKitNotificationProvider::notificationCloseCallback): * UIProcess/API/gtk/WebKitWebContext.cpp: (webkit_web_context_prefetch_dns): (webkitWebContextCreatePageForWebView): * UIProcess/API/gtk/WebKitWebView.cpp: (webkit_web_view_get_snapshot): * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseTouchEvent): (webkitWebViewBaseCreateWebPage): * UIProcess/API/gtk/WebKitWebsiteDataManager.cpp: (webkitWebsiteDataManagerCreate): (webkitWebsiteDataManagerGetDataStore): * UIProcess/API/mac/WKView.mm: (-[WKView initWithFrame:processPool:configuration:webView:]): (-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]): (-[WKView initWithFrame:configurationRef:]): * UIProcess/Cocoa/NavigationState.mm: (WebKit::tryAppLink): (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse): * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::WebViewImpl): (WebKit::WebViewImpl::takeViewSnapshot): * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp: (WebKit::CoordinatedLayerTreeHostProxy::dispatchUpdate): * UIProcess/Databases/DatabaseProcessProxy.cpp: (WebKit::DatabaseProcessProxy::fetchWebsiteData): (WebKit::DatabaseProcessProxy::deleteWebsiteData): (WebKit::DatabaseProcessProxy::deleteWebsiteDataForOrigins): * UIProcess/GenericCallback.h: (WebKit::CallbackMap::put): * UIProcess/InspectorServer/WebSocketServer.cpp: (WebKit::WebSocketServer::didAcceptConnection): * UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp: (WebKit::connectionCallback): * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::fetchWebsiteData): * UIProcess/Notifications/WebNotificationManagerProxy.cpp: (WebKit::WebNotificationManagerProxy::providerDidCloseNotifications): * UIProcess/Notifications/WebNotificationProvider.cpp: (WebKit::WebNotificationProvider::clearNotifications): * UIProcess/PageLoadState.cpp: (WebKit::PageLoadState::Transaction::Transaction): * UIProcess/Plugins/PlugInAutoStartProvider.cpp: (WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy): * UIProcess/Plugins/PluginProcessManager.cpp: (WebKit::PluginProcessManager::pluginProcessToken): (WebKit::PluginProcessManager::fetchWebsiteData): (WebKit::PluginProcessManager::deleteWebsiteData): (WebKit::PluginProcessManager::deleteWebsiteDataForHostNames): * UIProcess/Plugins/PluginProcessProxy.cpp: (WebKit::PluginProcessProxy::fetchWebsiteData): (WebKit::PluginProcessProxy::deleteWebsiteData): (WebKit::PluginProcessProxy::deleteWebsiteDataForHostNames): * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp: (WebKit::RemoteScrollingCoordinatorProxy::updateScrollingTree): * UIProcess/StatisticsRequest.cpp: (WebKit::StatisticsRequest::completedRequest): * UIProcess/Storage/LocalStorageDatabase.cpp: (WebKit::LocalStorageDatabase::create): (WebKit::LocalStorageDatabase::LocalStorageDatabase): * UIProcess/Storage/StorageManager.cpp: (WebKit::StorageManager::TransientLocalStorageNamespace::getOrCreateStorageArea): (WebKit::StorageManager::StorageArea::create): (WebKit::StorageManager::StorageArea::StorageArea): (WebKit::StorageManager::LocalStorageNamespace::getOrCreateStorageArea): (WebKit::StorageManager::SessionStorageNamespace::getOrCreateStorageArea): (WebKit::StorageManager::getSessionStorageOrigins): (WebKit::StorageManager::getLocalStorageOrigins): (WebKit::StorageManager::getLocalStorageOriginDetails): (WebKit::StorageManager::createTransientLocalStorageMap): (WebKit::StorageManager::createSessionStorageMap): * UIProcess/UserContent/WebScriptMessageHandler.cpp: (WebKit::WebScriptMessageHandler::create): (WebKit::WebScriptMessageHandler::WebScriptMessageHandler): * UIProcess/UserContent/WebUserContentControllerProxy.cpp: (WebKit::WebUserContentControllerProxy::addUserStyleSheet): * UIProcess/ViewGestureController.cpp: (WebKit::ViewGestureController::SnapshotRemovalTracker::start): (WebKit::ViewGestureController::SnapshotRemovalTracker::fireRemovalCallbackImmediately): * UIProcess/WebBackForwardList.cpp: (WebKit::WebBackForwardList::addItem): (WebKit::WebBackForwardList::backListAsAPIArrayWithLimit): (WebKit::WebBackForwardList::forwardListAsAPIArrayWithLimit): (WebKit::WebBackForwardList::removeAllItems): (WebKit::WebBackForwardList::clear): (WebKit::WebBackForwardList::restoreFromState): * UIProcess/WebCookieManagerProxy.cpp: (WebKit::WebCookieManagerProxy::getHostnamesWithCookies): (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy): * UIProcess/WebFormClient.cpp: (WebKit::WebFormClient::willSubmitForm): * UIProcess/WebFrameListenerProxy.h: (WebKit::WebFrameListenerProxy::setNavigation): * UIProcess/WebFrameProxy.h: (WebKit::WebFrameProxy::contentFilterDidBlockLoad): * UIProcess/WebGrammarDetail.cpp: (WebKit::WebGrammarDetail::guesses): * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::createInspectorPage): * UIProcess/WebMediaCacheManagerProxy.cpp: (WebKit::WebMediaCacheManagerProxy::getHostnamesWithMediaCache): * UIProcess/WebPageProxy.cpp: (WebKit::ExceededDatabaseQuotaRecords::add): (WebKit::WebPageProxy::create): (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::setHistoryClient): (WebKit::WebPageProxy::setNavigationClient): (WebKit::WebPageProxy::setLoaderClient): (WebKit::WebPageProxy::setPolicyClient): (WebKit::WebPageProxy::setFormClient): (WebKit::WebPageProxy::setUIClient): (WebKit::WebPageProxy::setFindClient): (WebKit::WebPageProxy::setFindMatchesClient): (WebKit::WebPageProxy::setDiagnosticLoggingClient): (WebKit::WebPageProxy::setContextMenuClient): (WebKit::WebPageProxy::reattachToWebProcessForReload): (WebKit::WebPageProxy::reattachToWebProcessWithItem): (WebKit::WebPageProxy::loadRequest): (WebKit::WebPageProxy::loadFile): (WebKit::WebPageProxy::loadData): (WebKit::WebPageProxy::loadHTMLString): (WebKit::WebPageProxy::reload): (WebKit::WebPageProxy::didChangeBackForwardList): (WebKit::WebPageProxy::setInitialFocus): (WebKit::WebPageProxy::validateCommand): (WebKit::WebPageProxy::handleWheelEvent): (WebKit::WebPageProxy::processNextQueuedWheelEvent): (WebKit::WebPageProxy::restoreFromSessionState): (WebKit::WebPageProxy::runJavaScriptInMainFrame): (WebKit::WebPageProxy::getRenderTreeExternalRepresentation): (WebKit::WebPageProxy::getSourceForFrame): (WebKit::WebPageProxy::getContentsAsString): (WebKit::WebPageProxy::getBytecodeProfile): (WebKit::WebPageProxy::getContentsAsMHTMLData): (WebKit::WebPageProxy::getSelectionOrContentsAsString): (WebKit::WebPageProxy::getSelectionAsWebArchiveData): (WebKit::WebPageProxy::getMainResourceDataOfFrame): (WebKit::WebPageProxy::getResourceDataFromFrame): (WebKit::WebPageProxy::getWebArchiveOfFrame): (WebKit::WebPageProxy::decidePolicyForNavigationAction): (WebKit::WebPageProxy::decidePolicyForNewWindowAction): (WebKit::WebPageProxy::decidePolicyForResponse): (WebKit::WebPageProxy::sendMessage): (WebKit::WebPageProxy::exceededDatabaseQuota): (WebKit::WebPageProxy::getMarkedRangeAsync): (WebKit::WebPageProxy::getSelectedRangeAsync): (WebKit::WebPageProxy::characterIndexForPointAsync): (WebKit::WebPageProxy::firstRectForCharacterRangeAsync): (WebKit::WebPageProxy::takeSnapshot): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::setHistoryClient): (WebKit::WebProcessPool::setDownloadClient): (WebKit::WebProcessPool::createWebPage): (WebKit::WebProcessPool::getStatistics): (WebKit::WebProcessPool::pluginInfoStoreDidLoadPlugins): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::createWebPage): (WebKit::WebProcessProxy::addBackForwardItem): (WebKit::WebProcessProxy::fetchWebsiteData): * UIProcess/WebsiteData/WebsiteDataRecord.cpp: (WebKit::WebsiteDataRecord::add): * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::create): (WebKit::WebsiteDataStore::WebsiteDataStore): (WebKit::WebsiteDataStore::fetchData): (WebKit::WebsiteDataStore::removeData): (WebKit::WebsiteDataStore::mediaKeyOrigins): * UIProcess/efl/InputMethodContextEfl.cpp: (WebKit::InputMethodContextEfl::InputMethodContextEfl): * UIProcess/efl/InputMethodContextEfl.h: (WebKit::InputMethodContextEfl::create): * UIProcess/efl/WebContextMenuProxyEfl.cpp: (WebKit::WebContextMenuProxyEfl::showContextMenu): * UIProcess/efl/WebUIPopupMenuClient.cpp: (WebUIPopupMenuClient::showPopupMenu): * UIProcess/gtk/InputMethodFilter.cpp: (WebKit::InputMethodFilter::filterKeyEvent): * UIProcess/gtk/KeyBindingTranslator.cpp: (WebKit::KeyBindingTranslator::commandsForKeyEvent): * UIProcess/gtk/RedirectedXCompositeWindow.cpp: (WebKit::XDamageNotifier::add): (WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow): (WebKit::RedirectedXCompositeWindow::surface): * UIProcess/ios/WKActionSheetAssistant.mm: (-[WKActionSheetAssistant showImageSheet]): (-[WKActionSheetAssistant showLinkSheet]): * UIProcess/ios/WKContentView.mm: (-[WKContentView _commonInitializationWithProcessPool:configuration:]): (-[WKContentView initWithFrame:processPool:configuration:webView:]): * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView actionSheetAssistant:decideActionsForElement:defaultActions:]): * UIProcess/ios/WKGeolocationProviderIOS.mm: (-[WKGeolocationProviderIOS geolocationAuthorizationGranted]): (-[WKGeolocationProviderIOS geolocationAuthorizationDenied]): * UIProcess/ios/WKPDFView.mm: (-[WKPDFView actionSheetAssistant:decideActionsForElement:defaultActions:]): * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::selectWithGesture): (WebKit::WebPageProxy::updateSelectionWithTouches): (WebKit::WebPageProxy::requestAutocorrectionData): (WebKit::WebPageProxy::applyAutocorrection): (WebKit::WebPageProxy::executeEditCommand): (WebKit::WebPageProxy::selectTextWithGranularityAtPoint): (WebKit::WebPageProxy::selectPositionAtBoundaryWithDirection): (WebKit::WebPageProxy::moveSelectionAtBoundaryWithDirection): (WebKit::WebPageProxy::selectPositionAtPoint): (WebKit::WebPageProxy::beginSelectionInDirection): (WebKit::WebPageProxy::updateSelectionWithExtentPoint): (WebKit::WebPageProxy::updateSelectionWithExtentPointAndBoundary): (WebKit::WebPageProxy::requestDictationContext): (WebKit::WebPageProxy::requestAutocorrectionContext): (WebKit::WebPageProxy::getLookupContextAtPoint): (WebKit::WebPageProxy::selectWithTwoTouches): (WebKit::WebPageProxy::moveSelectionByOffset): (WebKit::WebPageProxy::focusNextAssistedNode): * UIProcess/ios/WebVideoFullscreenManagerProxy.h: * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::createModelAndInterface): * UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel _chooseFiles:displayString:iconImage:]): * UIProcess/mac/LegacySessionStateCoding.cpp: (WebKit::HistoryEntryDataEncoder::finishEncoding): (WebKit::decodeFormData): (WebKit::decodeBackForwardTreeNode): (WebKit::decodeSessionHistoryEntries): * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm: (WebKit::RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing): * UIProcess/mac/ViewGestureController.h: (WebKit::ViewGestureController::setCustomSwipeViews): * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::PendingSwipeTracker::PendingSwipeTracker): * UIProcess/mac/ViewSnapshotStore.mm: (WebKit::ViewSnapshot::create): (WebKit::ViewSnapshot::ViewSnapshot): (WebKit::ViewSnapshot::setSurface): * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync): (WebKit::WebPageProxy::fontAtSelection): * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (contextMenuItems): (WKBundlePageCopyOriginsWithApplicationCache): * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp: (WKBundlePageOverlayCreate): * WebProcess/InjectedBundle/API/efl/ewk_extension.cpp: (EwkExtension::didCreatePage): * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp: (webkitFrameGetOrCreate): (didInitiateLoadForResource): (willSendRequestForFrame): (didReceiveResponseForResource): (didReceiveContentLengthForResource): (didFinishLoadForResource): (didFailLoadForResource): (webkitWebPageDidReceiveMessage): * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: (-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::addUserScript): (WebKit::InjectedBundle::addUserStyleSheet): * WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp: (WebKit::InjectedBundleBackForwardListItem::children): * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp: (WebKit::InjectedBundlePageContextMenuClient::getCustomMenuFromDefaultItems): * WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp: (WebKit::InjectedBundlePageFormClient::willSendSubmitEvent): (WebKit::InjectedBundlePageFormClient::willSubmitForm): (WebKit::InjectedBundlePageFormClient::didAssociateFormControls): * WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp: (WebKit::InjectedBundlePageResourceLoadClient::willSendRequestForFrame): * WebProcess/Network/WebResourceLoader.cpp: (WebKit::WebResourceLoader::willSendRequest): * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: (WebKit::NPN_PostURL): * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::NetscapePlugin::scheduleTimer): * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: (WebKit::convertStringToKeyCodes): * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm: (WebKit::PDFPlugin::PDFPlugin): * WebProcess/Plugins/PDF/PDFPlugin.mm: (-[WKPDFHUDAnimationDelegate initWithAnimationCompletionHandler:]): * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm: (WebKit::PDFPluginChoiceAnnotation::createAnnotationElement): * WebProcess/Storage/StorageAreaMap.cpp: (WebKit::StorageAreaMap::create): (WebKit::StorageAreaMap::StorageAreaMap): * WebProcess/Storage/StorageNamespaceImpl.cpp: (WebKit::StorageNamespaceImpl::storageArea): * WebProcess/UserContent/WebUserContentController.cpp: (WebKit::WebUserContentController::addUserContentExtensions): * WebProcess/WebCoreSupport/SessionStateConversion.cpp: (WebKit::toHTTPBody): (WebKit::toFrameState): (WebKit::applyFrameState): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm): (WebKit::WebFrameLoaderClient::contentFilterDidBlockLoad): * WebProcess/WebCoreSupport/WebPasteboardOverrides.cpp: (WebKit::WebPasteboardOverrides::addOverride): * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: (WebKit::WebEditorClient::executePendingEditorCommands): * WebProcess/WebPage/FindController.cpp: (WebKit::FindController::findStringMatches): * WebProcess/WebPage/ViewUpdateDispatcher.cpp: (WebKit::ViewUpdateDispatcher::dispatchVisibleContentRectUpdate): * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::createSubframe): (WebKit::WebFrame::create): (WebKit::WebFrame::WebFrame): (WebKit::WebFrame::didReceivePolicyDecision): (WebKit::WebFrame::childFrames): (WebKit::WebFrame::createSelectionSnapshot): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setInjectedBundleContextMenuClient): (WebKit::WebPage::setInjectedBundleFormClient): (WebKit::WebPage::setInjectedBundleUIClient): (WebKit::WebPage::trackedRepaintRects): (WebKit::WebPage::createDocumentLoader): * WebProcess/WebPage/WebPageGroupProxy.cpp: (WebKit::WebPageGroupProxy::addUserContentExtension): * WebProcess/WebPage/WebPageOverlay.cpp: (WebKit::WebPageOverlay::create): (WebKit::WebPageOverlay::WebPageOverlay): * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: (WebKit::LayerTreeHostGtk::RenderFrameScheduler::RenderFrameScheduler): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::computePagesForPrintingAndStartDrawingToPDF): * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm: (WebKit::PlatformCAAnimationRemote::setTimingFunction): (WebKit::PlatformCAAnimationRemote::setValues): (WebKit::PlatformCAAnimationRemote::setTimingFunctions): * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm: (WebKit::RemoteLayerTreeContext::layerWasCreated): (WebKit::RemoteLayerTreeContext::buildTransaction): * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::flushLayers): (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::create): (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::BackingStoreFlusher): (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess): (WebKit::WebProcess::transformObjectsToHandles): * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenInterfaceContext::setLayerHostingContext): (WebKit::WebVideoFullscreenManager::createModelAndInterface): (WebKit::WebVideoFullscreenManager::setSeekableRanges): * WebProcess/soup/WebKitSoupRequestInputStream.cpp: (webkitSoupRequestInputStreamDidFailWithError): Source/WTF: This also removes the definition of WTF::move. * wtf/Deque.h: * wtf/HashMap.h: * wtf/HashSet.h: * wtf/HashTable.h: (WTF::HashTable::add): (WTF::KeyTraits>::HashTable): * wtf/Insertion.h: (WTF::executeInsertions): * wtf/IteratorAdaptors.h: (WTF::FilterIterator::FilterIterator): (WTF::TransformIterator::TransformIterator): (WTF::makeTransformIterator): * wtf/IteratorRange.h: (WTF::IteratorRange::IteratorRange): * wtf/ListHashSet.h: (WTF::U>::takeFirst): (WTF::U>::takeLast): * wtf/MainThread.cpp: (WTF::callOnMainThread): * wtf/MallocPtr.h: (WTF::MallocPtr::operator=): * wtf/MessageQueue.h: (WTF::MessageQueue<DataType>::append): (WTF::MessageQueue<DataType>::appendAndKill): (WTF::MessageQueue<DataType>::appendAndCheckEmpty): (WTF::MessageQueue<DataType>::prepend): * wtf/NakedPtr.h: (WTF::=): * wtf/OSObjectPtr.h: (WTF::OSObjectPtr::operator=): * wtf/Optional.h: (WTF::Optional::Optional): (WTF::Optional::operator=): * wtf/RefPtr.h: (WTF::=): * wtf/RetainPtr.h: (WTF::=): * wtf/RunLoop.cpp: (WTF::RunLoop::dispatch): * wtf/SharedTask.h: (WTF::createSharedTask): * wtf/StdLibExtras.h: (WTF::move): Deleted. * wtf/Threading.cpp: (WTF::threadEntryPoint): (WTF::createThread): * wtf/Vector.h: (WTF::Vector::takeLast): * wtf/efl/DispatchQueueEfl.cpp: (DispatchQueue::dispatch): (DispatchQueue::setSocketEventHandler): (DispatchQueue::performTimerWork): (DispatchQueue::insertTimerWorkItem): * wtf/efl/DispatchQueueWorkItemEfl.h: (WorkItem::WorkItem): (TimerWorkItem::create): (TimerWorkItem::TimerWorkItem): * wtf/efl/WorkQueueEfl.cpp: (WorkQueue::registerSocketEventHandler): (WorkQueue::dispatch): (WorkQueue::dispatchAfter): * wtf/glib/GRefPtr.h: (WTF::=): * wtf/glib/WorkQueueGLib.cpp: (WTF::DispatchAfterContext::DispatchAfterContext): (WTF::WorkQueue::dispatchAfter): * wtf/text/AtomicString.h: (WTF::AtomicString::AtomicString): (WTF::AtomicString::operator=): * wtf/text/StringConcatenate.h: (WTF::tryMakeString): * wtf/text/WTFString.cpp: (WTF::String::isolatedCopy): * wtf/text/WTFString.h: (WTF::String::String): (WTF::StringCapture::releaseString): * wtf/win/GDIObject.h: (WTF::=): Tools: * DumpRenderTree/TestRunner.h: (TestRunner::setAllowedHosts): * DumpRenderTree/win/DRTDataObject.cpp: (DRTDataObject::SetData): * TestWebKitAPI/Tests/WTF/Deque.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/HashMap.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/HashSet.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/NakedPtr.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/Ref.cpp: (TestWebKitAPI::passWithRef): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/RefPtr.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/Vector.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/WTFString.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/ns/RetainPtr.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebCore/CalculationValue.cpp: (TestWebKitAPI::createTestValue): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter): (TestWebKitAPI::InMemoryCompiledContentExtension::create): (TestWebKitAPI::InMemoryCompiledContentExtension::InMemoryCompiledContentExtension): (TestWebKitAPI::createNFAs): (TestWebKitAPI::TEST_F): * TestWebKitAPI/Tests/WebCore/DFACombiner.cpp: (TestWebKitAPI::combine): * TestWebKitAPI/Tests/WebCore/DFAHelpers.h: (TestWebKitAPI::createNFAs): * TestWebKitAPI/Tests/WebKit2/cocoa/WeakObjCPtr.mm: (TEST): * TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp: (WebProcessTest::add): Canonical link: https://commits.webkit.org/170734@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@194496 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-01-02 08:03:08 +00:00
, m_ranges(WTFMove(other.m_ranges))
, m_epsilonTransitionTargets(WTFMove(other.m_epsilonTransitionTargets))
, m_actions(WTFMove(other.m_actions))
Make the NFA transitions range-based https://bugs.webkit.org/show_bug.cgi?id=146338 Reviewed by Alex Christensen. Source/WebCore: Change the NFA to use range based transition for any kind of transition. The fallback transition is also absorbed as ranges. Previously, the NFA would only have single transitions and a fallback transition for all cases not covered by single transitions. The problem with that design was that character ranges (e.g. [a-z]) were extended as individual transitions. Something like [^a] would cover most of the alphabet with transitions. When converting the NFA to DFA, the time is proportional to the number of states multiplied by the number of transitions. With many individual transitions, the run time was an order of magnitude higher than what we want. This patch changes the NFA to only handle ranges of characters. A single transition becomes a range with the character as first and last character in the range ('a' becomes 'a' to 'a'). Ranges of characters are handled direclty (e.g. [a-z] becomes a single 'a' to 'z' transition). In the context of the state machines, ranges have identifies (the target of the transitions). When two ranges collide, they have to be split such that each part retain its target except the intersection that gets the union of the targets. Handling the union of ranges efficiently is critical because we have to do it for every NFA node in any subset when building the DFA. The helper class that does that is MutableRange. The union of ranges is done efficiently because of preconditions on our list of ranges: -The ranges must be sorted. -No range in a list can intersect any other range in the same list. To merge two ranges, we can go over them in order and split them part by part. It is easy to find what goes where because they are both sorted and we can compare the characters of each to know how to move forward. The time to merge 2 range list is proportional to O(n+m) where 'n' and 'm' are the number of ranges in each list. Since taking the union of two lists usually create new ranges, we have to allocate those somewhere efficiently. To do that, MutableRange support an inline capacity, which is used for the NFAToDFA Convertion. --- With ranges, the NFA-to-DFA conversion changes very little: -Each NFA nodes contains a list of ranges and each range has a list of targets. -The subset construction select any number of NFA nodes corresponding to a single deterministic state. -For the subset, we can use MutableRange to merge the ranges of every NFA node in the set. The resulting list has rangeis with targets corresponding to the union of all the transitions. -We go over all the ranges the same way we used to go over the transitions. Since the DFA does not support ranges, the ranges are spread as individual transitions + fallback transition. --- With the efficient merging solved, we still need the actual NFA to use ranges instead of individual transitions. I could have used MutableRange for that but it is not the most compact way to represent ranges that do not need merging. Instead, the NFA uses a custom structure: ImmutableNFA. It is basically the same thing, but in that one you cannot change a list of range after creating it. Consequently, the sorted ranges in ImmutableNFA are also subsequent in memory, which is really nice to go over them efficiently when merging ranges in the NFA-to-DFA conversion. :) When building the NFA, we don't know all the transitions when creating each node, BUT we know that we have very few node "unfinished" at any time. Since we build by going depth-first in the prefix-tree, we only have the max-depth of live nodes in the worst case. To help building the NFA out of the prefix tree, we have ImmutableNFANodeBuilder. It keeps all the informations about a NFA node, but in a non-compact, mutable form. When a ImmutableNFANodeBuilder is destroyed, it serialize the information into the immutable NFA. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::generateNFAForSubtree): (WebCore::ContentExtensions::CombinedURLFilters::processNFAs): * contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::empty): * contentextensions/DFA.h: * contentextensions/ImmutableNFA.h: Added. (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::end): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::end): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::debugPrint): (WebCore::ContentExtensions::ImmutableNFA::transitionsForNode): (WebCore::ContentExtensions::ImmutableNFA::root): (WebCore::ContentExtensions::ImmutableNFA::finalize): (WebCore::ContentExtensions::ImmutableNFA::memoryUsed): * contentextensions/ImmutableNFANodeBuilder.h: Added. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::setActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::finalize): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkTransitions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkEpsilonTransitions): * contentextensions/MutableRange.h: Added. (WebCore::ContentExtensions::MutableRange::MutableRange): (WebCore::ContentExtensions::MutableRange::operator=): (WebCore::ContentExtensions::MutableRange::size): * contentextensions/MutableRangeList.h: Added. (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator*): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator->): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator==): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator!=): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator++): (WebCore::ContentExtensions::MutableRangeList::begin): (WebCore::ContentExtensions::MutableRangeList::end): (WebCore::ContentExtensions::MutableRangeList::appendRange): (WebCore::ContentExtensions::MutableRangeList::extend): (WebCore::ContentExtensions::MutableRangeList::isEmpty): (WebCore::ContentExtensions::MutableRangeList::clear): (WebCore::ContentExtensions::MutableRangeList::debugPrint): (WebCore::ContentExtensions::MutableRangeList::insertBetween): (WebCore::ContentExtensions::MutableRangeList::initializeFrom): * contentextensions/NFA.cpp: (WebCore::ContentExtensions::NFA::debugPrintDot): (WebCore::ContentExtensions::NFA::NFA): Deleted. (WebCore::ContentExtensions::NFA::createNode): Deleted. (WebCore::ContentExtensions::NFA::memoryUsed): Deleted. (WebCore::ContentExtensions::NFA::addTransition): Deleted. (WebCore::ContentExtensions::NFA::addEpsilonTransition): Deleted. (WebCore::ContentExtensions::NFA::addTransitionsOnAnyCharacter): Deleted. (WebCore::ContentExtensions::NFA::setActions): Deleted. (WebCore::ContentExtensions::NFA::graphSize): Deleted. (WebCore::ContentExtensions::NFA::restoreToGraphSize): Deleted. (WebCore::ContentExtensions::printRange): Deleted. (WebCore::ContentExtensions::printTransitions): Deleted. * contentextensions/NFA.h: (WebCore::ContentExtensions::NFA::root): Deleted. (WebCore::ContentExtensions::NFA::addRuleId): Deleted. * contentextensions/NFANode.h: * contentextensions/NFAToDFA.cpp: (WebCore::ContentExtensions::epsilonClosureExcludingSelf): (WebCore::ContentExtensions::resolveEpsilonClosures): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::convert): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::extend): (WebCore::ContentExtensions::createCombinedTransition): (WebCore::ContentExtensions::canUseFallbackTransition): (WebCore::ContentExtensions::findBestFallbackTarget): (WebCore::ContentExtensions::getOrCreateDFANode): (WebCore::ContentExtensions::NFAToDFA::convert): (WebCore::ContentExtensions::populateTransitions): Deleted. * contentextensions/NFAToDFA.h: * contentextensions/Term.h: (WebCore::ContentExtensions::Term::Term): (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): (WebCore::ContentExtensions::Term::Term::generateGraph): Deleted. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: Test some new interesting cases. Canonical link: https://commits.webkit.org/164509@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186079 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-06-29 19:40:12 +00:00
, m_nodeId(other.m_nodeId)
, m_finalized(other.m_finalized)
{
other.m_immutableNFA = nullptr;
other.m_finalized = true;
}
~ImmutableNFANodeBuilder()
{
if (!m_finalized)
finalize();
}
[Content extensions] Combine suffixes when generating NFAs https://bugs.webkit.org/show_bug.cgi?id=146961 Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-07-16 Reviewed by Alex Christensen. Source/WebCore: In this patch, I add a mechanism very similar to the prefix tree but for the suffix (called a reverse suffix tree here). The idea is here is to reuse the existing NFA nodes when generating a chain of suffix Term that were already generated previously. When generating a disjunction ending with the same suffix, we now have the same trailing NFA nodes for both sides of the disjunction. Mixing the prefix and suffix generation can be tricky, we do not want transitions from a pattern to creep into the suffix of an other. To avoid any conflict, the rules here are very simple: -Only use the reverse suffix tree for terms without actions up to a leaf term with actions. This rule ensure that no action will accidentally make its way to an other rule by resuing a vertex of the reverse suffix tree. -Only use the reverse suffix tree for chains of terms in which each term only has zero or one following term. With this condition, when taking any vertex of the reverse suffix tree, there is only one edge that move out of that vertex when reading from left to right. For any vertex, there is only one possible string generated left-to-right, a single suffix. This is overly restrictive but it is fast, easier to verify, and it works well in practice. For all the more complicated cases, we can count on the Minimizer to find a better solution. With all the simple suffixes merged, our NFAs are smaller, which let us combine more patterns. The DFAs are also smaller and faster to produce since their size is relative to the NFA sizes. Overall, I get the following gains: -Chris's test case: compile time -40%. bytecode size -14%. -Armand's test case: compile time -53%. bytecode size -13%. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::ActiveSubtree::ActiveSubtree): (WebCore::ContentExtensions::generateInfixUnsuitableForReverseSuffixTree): (WebCore::ContentExtensions::generateSuffixWithReverseSuffixTree): (WebCore::ContentExtensions::clearReverseSuffixTree): (WebCore::ContentExtensions::generateNFAForSubtree): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::debugPrintDot): Forgot to close a tag, dot was not happy. * contentextensions/HashableActionList.h: Added. (WebCore::ContentExtensions::HashableActionList::HashableActionList): (WebCore::ContentExtensions::HashableActionList::isEmptyValue): (WebCore::ContentExtensions::HashableActionList::isDeletedValue): (WebCore::ContentExtensions::HashableActionList::operator==): (WebCore::ContentExtensions::HashableActionList::operator!=): (WebCore::ContentExtensions::HashableActionListHash::hash): (WebCore::ContentExtensions::HashableActionListHash::equal): We need a way to group reverse suffix tree by their terminal actions. This new hash structure lets us find unique vertex for a list of actions in any order. * contentextensions/ImmutableNFANodeBuilder.h: (WebCore::ContentExtensions::ImmutableNFANodeBuilder::isValid): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::nodeId): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): Deleted. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): Deleted. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): Deleted. * contentextensions/Term.h: (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): Node building changes a bit. Previously, it was assumed nodes are always built from left to right. Getting the node on the right was done by providing the left node and the term doing the transition. Now we have both left to right and right to left generation. The right-to-left has a specific property: no edge can be added after it's initial term (rule 2 of our reverse suffix tree). This simplifies things a bit since we can finalize all the nodes in the suffix tree. All we need is to keep their ID to be able to link new nodes to the reverse suffix tree. Source/WTF: * wtf/Vector.h: (WTF::minCapacity>::Vector): (WTF::=): Copying a vector with a different inline capacity was broken due to the addition of MinimumCapacity. This feature was needed by this patch so I fixed WTF. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (TestWebKitAPI::compareContents): * TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp: Canonical link: https://commits.webkit.org/165074@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186910 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-07-16 21:51:08 +00:00
bool isValid() const
{
return !!m_immutableNFA;
}
uint32_t nodeId() const
{
ASSERT(isValid());
return m_nodeId;
}
Make the NFA transitions range-based https://bugs.webkit.org/show_bug.cgi?id=146338 Reviewed by Alex Christensen. Source/WebCore: Change the NFA to use range based transition for any kind of transition. The fallback transition is also absorbed as ranges. Previously, the NFA would only have single transitions and a fallback transition for all cases not covered by single transitions. The problem with that design was that character ranges (e.g. [a-z]) were extended as individual transitions. Something like [^a] would cover most of the alphabet with transitions. When converting the NFA to DFA, the time is proportional to the number of states multiplied by the number of transitions. With many individual transitions, the run time was an order of magnitude higher than what we want. This patch changes the NFA to only handle ranges of characters. A single transition becomes a range with the character as first and last character in the range ('a' becomes 'a' to 'a'). Ranges of characters are handled direclty (e.g. [a-z] becomes a single 'a' to 'z' transition). In the context of the state machines, ranges have identifies (the target of the transitions). When two ranges collide, they have to be split such that each part retain its target except the intersection that gets the union of the targets. Handling the union of ranges efficiently is critical because we have to do it for every NFA node in any subset when building the DFA. The helper class that does that is MutableRange. The union of ranges is done efficiently because of preconditions on our list of ranges: -The ranges must be sorted. -No range in a list can intersect any other range in the same list. To merge two ranges, we can go over them in order and split them part by part. It is easy to find what goes where because they are both sorted and we can compare the characters of each to know how to move forward. The time to merge 2 range list is proportional to O(n+m) where 'n' and 'm' are the number of ranges in each list. Since taking the union of two lists usually create new ranges, we have to allocate those somewhere efficiently. To do that, MutableRange support an inline capacity, which is used for the NFAToDFA Convertion. --- With ranges, the NFA-to-DFA conversion changes very little: -Each NFA nodes contains a list of ranges and each range has a list of targets. -The subset construction select any number of NFA nodes corresponding to a single deterministic state. -For the subset, we can use MutableRange to merge the ranges of every NFA node in the set. The resulting list has rangeis with targets corresponding to the union of all the transitions. -We go over all the ranges the same way we used to go over the transitions. Since the DFA does not support ranges, the ranges are spread as individual transitions + fallback transition. --- With the efficient merging solved, we still need the actual NFA to use ranges instead of individual transitions. I could have used MutableRange for that but it is not the most compact way to represent ranges that do not need merging. Instead, the NFA uses a custom structure: ImmutableNFA. It is basically the same thing, but in that one you cannot change a list of range after creating it. Consequently, the sorted ranges in ImmutableNFA are also subsequent in memory, which is really nice to go over them efficiently when merging ranges in the NFA-to-DFA conversion. :) When building the NFA, we don't know all the transitions when creating each node, BUT we know that we have very few node "unfinished" at any time. Since we build by going depth-first in the prefix-tree, we only have the max-depth of live nodes in the worst case. To help building the NFA out of the prefix tree, we have ImmutableNFANodeBuilder. It keeps all the informations about a NFA node, but in a non-compact, mutable form. When a ImmutableNFANodeBuilder is destroyed, it serialize the information into the immutable NFA. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::generateNFAForSubtree): (WebCore::ContentExtensions::CombinedURLFilters::processNFAs): * contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::empty): * contentextensions/DFA.h: * contentextensions/ImmutableNFA.h: Added. (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::end): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::end): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::debugPrint): (WebCore::ContentExtensions::ImmutableNFA::transitionsForNode): (WebCore::ContentExtensions::ImmutableNFA::root): (WebCore::ContentExtensions::ImmutableNFA::finalize): (WebCore::ContentExtensions::ImmutableNFA::memoryUsed): * contentextensions/ImmutableNFANodeBuilder.h: Added. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::setActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::finalize): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkTransitions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkEpsilonTransitions): * contentextensions/MutableRange.h: Added. (WebCore::ContentExtensions::MutableRange::MutableRange): (WebCore::ContentExtensions::MutableRange::operator=): (WebCore::ContentExtensions::MutableRange::size): * contentextensions/MutableRangeList.h: Added. (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator*): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator->): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator==): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator!=): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator++): (WebCore::ContentExtensions::MutableRangeList::begin): (WebCore::ContentExtensions::MutableRangeList::end): (WebCore::ContentExtensions::MutableRangeList::appendRange): (WebCore::ContentExtensions::MutableRangeList::extend): (WebCore::ContentExtensions::MutableRangeList::isEmpty): (WebCore::ContentExtensions::MutableRangeList::clear): (WebCore::ContentExtensions::MutableRangeList::debugPrint): (WebCore::ContentExtensions::MutableRangeList::insertBetween): (WebCore::ContentExtensions::MutableRangeList::initializeFrom): * contentextensions/NFA.cpp: (WebCore::ContentExtensions::NFA::debugPrintDot): (WebCore::ContentExtensions::NFA::NFA): Deleted. (WebCore::ContentExtensions::NFA::createNode): Deleted. (WebCore::ContentExtensions::NFA::memoryUsed): Deleted. (WebCore::ContentExtensions::NFA::addTransition): Deleted. (WebCore::ContentExtensions::NFA::addEpsilonTransition): Deleted. (WebCore::ContentExtensions::NFA::addTransitionsOnAnyCharacter): Deleted. (WebCore::ContentExtensions::NFA::setActions): Deleted. (WebCore::ContentExtensions::NFA::graphSize): Deleted. (WebCore::ContentExtensions::NFA::restoreToGraphSize): Deleted. (WebCore::ContentExtensions::printRange): Deleted. (WebCore::ContentExtensions::printTransitions): Deleted. * contentextensions/NFA.h: (WebCore::ContentExtensions::NFA::root): Deleted. (WebCore::ContentExtensions::NFA::addRuleId): Deleted. * contentextensions/NFANode.h: * contentextensions/NFAToDFA.cpp: (WebCore::ContentExtensions::epsilonClosureExcludingSelf): (WebCore::ContentExtensions::resolveEpsilonClosures): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::convert): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::extend): (WebCore::ContentExtensions::createCombinedTransition): (WebCore::ContentExtensions::canUseFallbackTransition): (WebCore::ContentExtensions::findBestFallbackTarget): (WebCore::ContentExtensions::getOrCreateDFANode): (WebCore::ContentExtensions::NFAToDFA::convert): (WebCore::ContentExtensions::populateTransitions): Deleted. * contentextensions/NFAToDFA.h: * contentextensions/Term.h: (WebCore::ContentExtensions::Term::Term): (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): (WebCore::ContentExtensions::Term::Term::generateGraph): Deleted. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: Test some new interesting cases. Canonical link: https://commits.webkit.org/164509@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186079 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-06-29 19:40:12 +00:00
struct TrivialRange {
CharacterType first;
CharacterType last;
};
struct FakeRangeIterator {
[Content Extensions] Make the DFA transitions ranges instead of characters https://bugs.webkit.org/show_bug.cgi?id=146575 Patch by Benjamin Poulain <benjamin@webkit.org> on 2015-07-06 Reviewed by Alex Christensen. Source/WebCore: This patch changes the DFA and code using the DFA to use ranges to represent the transitions between any two nodes. This patch builds on top of the tools introduced in r186079. The DFA structure is basically the same as ImmutableNFA but without any epsilon transitions. This patch introduces a transition iterator to make the DFA compatible with the existing algorithms. --- The DFA combiner is rebuilt on top of MutableRangeList. Combining the transitions of two nodes is one by merging the range list of each not into a common MutableRangeList. The data converter takes care of creating the signature of the combination. The code got simpler since MutableRangeList does most of the work now. It is also much faster. --- The minimizer is more intersting. With the current algorithm, we cannot resolve overlaps between ranges. On the other hand, the minimizer does not care about the symbol of the transitions if we are careful to partition transitions of the same symbol together. What I did was to turn the minimizer into a pure transition based one, BUT each "symbol" is actually an unbreakable range. The first step is to go over all the transitions of all the nodes and find the largest ranges such that the alphabet of interest is covered but there is not a single intersection between any two nodes (what I called "singular transitions" in the code). This can be done efficiently with MutableRangeList. A little trick there is that I also used the converter to count how many real transition overlaps any singular transition. Those singular transitions become the alphabet of our minimizer. The "symbol" of our alphabet is simply the position of the singular transition in the list. The partition of transition is created by populating each set with all the transition that overlaps the symbols. Note that since the partition is created on the fly, the Transition structure used for repartitioning only contains the source of the transitions. Once our transition parition has been carefuly created, we can completely forget about the symbols and only work with subsets. Since the singular transitions have no overlap (unlike fallback transitions), this new minimizer will find the minimial solution for well formed input. * WebCore.xcodeproj/project.pbxproj: * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::memoryUsed): (WebCore::ContentExtensions::printTransitions): (WebCore::ContentExtensions::DFANode::actions): Deleted. (WebCore::ContentExtensions::DFANode::transitions): Deleted. (WebCore::ContentExtensions::DFANode::fallbackTransitionDestination): Deleted. (WebCore::ContentExtensions::DFANode::changeFallbackTransition): Deleted. (WebCore::ContentExtensions::DFANode::addFallbackTransition): Deleted. (WebCore::ContentExtensions::DFANode::containsTransition): Deleted. (WebCore::ContentExtensions::DFANode::kill): Deleted. (WebCore::ContentExtensions::DFA::debugPrintDot): Deleted. * contentextensions/DFA.h: (WebCore::ContentExtensions::DFANode::ConstRangeIterator::range): (WebCore::ContentExtensions::DFANode::ConstRangeIterator::target): (WebCore::ContentExtensions::DFANode::RangeIterator::range): (WebCore::ContentExtensions::DFANode::RangeIterator::target): (WebCore::ContentExtensions::DFANode::RangeIterator::resetTarget): * contentextensions/DFABytecodeCompiler.cpp: (WebCore::ContentExtensions::DFABytecodeCompiler::ranges): (WebCore::ContentExtensions::DFABytecodeCompiler::nodeTransitionsMaxBytecodeSize): (WebCore::ContentExtensions::DFABytecodeCompiler::compileNodeTransitions): * contentextensions/DFACombiner.cpp: (WebCore::ContentExtensions::DFAMerger::TargetConverter::convert): (WebCore::ContentExtensions::DFAMerger::TargetConverter::extend): (WebCore::ContentExtensions::DFAMerger::TargetConverter::setHalfSignature): (WebCore::ContentExtensions::DFAMerger::merge): (WebCore::ContentExtensions::DFAMerger::getOrCreateCombinedNode): (WebCore::ContentExtensions::DFAMerger::setHalfSignature): Deleted. (WebCore::ContentExtensions::DFAMerger::populateTransitions): Deleted. (WebCore::ContentExtensions::DFAMerger::populateFromFallbackTransitions): Deleted. (WebCore::ContentExtensions::DFAMerger::createTransitions): Deleted. (WebCore::ContentExtensions::DFAMerger::createFallbackTransitionIfNeeded): Deleted. * contentextensions/DFAMinimizer.cpp: (WebCore::ContentExtensions::DFAMinimizer::minimize): * contentextensions/DFANode.cpp: Added. (WebCore::ContentExtensions::DFANode::actions): (WebCore::ContentExtensions::DFANode::containsTransition): (WebCore::ContentExtensions::DFANode::kill): (WebCore::ContentExtensions::DFANode::canUseFallbackTransition): (WebCore::ContentExtensions::DFANode::bestFallbackTarget): * contentextensions/DFANode.h: (WebCore::ContentExtensions::CharRange::size): (WebCore::ContentExtensions::DFANode::ConstRangeIterator::operator*): (WebCore::ContentExtensions::DFANode::ConstRangeIterator::operator==): (WebCore::ContentExtensions::DFANode::ConstRangeIterator::operator!=): (WebCore::ContentExtensions::DFANode::ConstRangeIterator::operator++): (WebCore::ContentExtensions::DFANode::ConstRangeIterator::first): (WebCore::ContentExtensions::DFANode::ConstRangeIterator::last): (WebCore::ContentExtensions::DFANode::ConstRangeIterator::data): (WebCore::ContentExtensions::DFANode::IterableConstRange::begin): (WebCore::ContentExtensions::DFANode::IterableConstRange::end): (WebCore::ContentExtensions::DFANode::transitions): (WebCore::ContentExtensions::DFANode::RangeIterator::operator*): (WebCore::ContentExtensions::DFANode::RangeIterator::operator==): (WebCore::ContentExtensions::DFANode::RangeIterator::operator!=): (WebCore::ContentExtensions::DFANode::RangeIterator::operator++): (WebCore::ContentExtensions::DFANode::RangeIterator::first): (WebCore::ContentExtensions::DFANode::RangeIterator::last): (WebCore::ContentExtensions::DFANode::RangeIterator::data): (WebCore::ContentExtensions::DFANode::IterableRange::begin): (WebCore::ContentExtensions::DFANode::IterableRange::end): (WebCore::ContentExtensions::DFANode::hasFallbackTransition): Deleted. (WebCore::ContentExtensions::DFANode::transitionsLength): Deleted. (WebCore::ContentExtensions::DFANode::transitionsStart): Deleted. (WebCore::ContentExtensions::DFANode::resetTransitions): Deleted. (WebCore::ContentExtensions::DFANode::setHasFallbackTransitionWithoutChangingDFA): Deleted. * contentextensions/ImmutableNFA.h: (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::first): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::last): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::range): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator*): Deleted. (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator->): Deleted. * contentextensions/ImmutableNFANodeBuilder.h: (WebCore::ContentExtensions::ImmutableNFANodeBuilder::FakeRangeIterator::first): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::FakeRangeIterator::last): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::FakeRangeIterator::operator*): Deleted. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::FakeRangeIterator::operator->): Deleted. * contentextensions/MutableRange.h: (WebCore::ContentExtensions::MutableRange::size): Deleted. * contentextensions/MutableRangeList.h: (WebCore::ContentExtensions::MutableRangeList::ConstIterator::first): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::last): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::data): (WebCore::ContentExtensions::MutableRangeList::extend): (WebCore::ContentExtensions::MutableRangeList::size): (WebCore::ContentExtensions::MutableRangeList::initializeFrom): * contentextensions/NFAToDFA.cpp: (WebCore::ContentExtensions::NFAToDFA::convert): (WebCore::ContentExtensions::canUseFallbackTransition): Deleted. (WebCore::ContentExtensions::findBestFallbackTarget): Deleted. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: * TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp: Since the minimizer is perfect, we get the minimal solution now, which is really cool! Canonical link: https://commits.webkit.org/164740@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186374 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-07-06 21:06:30 +00:00
CharacterType first() const { return range.first; }
CharacterType last() const { return range.last; }
Make the NFA transitions range-based https://bugs.webkit.org/show_bug.cgi?id=146338 Reviewed by Alex Christensen. Source/WebCore: Change the NFA to use range based transition for any kind of transition. The fallback transition is also absorbed as ranges. Previously, the NFA would only have single transitions and a fallback transition for all cases not covered by single transitions. The problem with that design was that character ranges (e.g. [a-z]) were extended as individual transitions. Something like [^a] would cover most of the alphabet with transitions. When converting the NFA to DFA, the time is proportional to the number of states multiplied by the number of transitions. With many individual transitions, the run time was an order of magnitude higher than what we want. This patch changes the NFA to only handle ranges of characters. A single transition becomes a range with the character as first and last character in the range ('a' becomes 'a' to 'a'). Ranges of characters are handled direclty (e.g. [a-z] becomes a single 'a' to 'z' transition). In the context of the state machines, ranges have identifies (the target of the transitions). When two ranges collide, they have to be split such that each part retain its target except the intersection that gets the union of the targets. Handling the union of ranges efficiently is critical because we have to do it for every NFA node in any subset when building the DFA. The helper class that does that is MutableRange. The union of ranges is done efficiently because of preconditions on our list of ranges: -The ranges must be sorted. -No range in a list can intersect any other range in the same list. To merge two ranges, we can go over them in order and split them part by part. It is easy to find what goes where because they are both sorted and we can compare the characters of each to know how to move forward. The time to merge 2 range list is proportional to O(n+m) where 'n' and 'm' are the number of ranges in each list. Since taking the union of two lists usually create new ranges, we have to allocate those somewhere efficiently. To do that, MutableRange support an inline capacity, which is used for the NFAToDFA Convertion. --- With ranges, the NFA-to-DFA conversion changes very little: -Each NFA nodes contains a list of ranges and each range has a list of targets. -The subset construction select any number of NFA nodes corresponding to a single deterministic state. -For the subset, we can use MutableRange to merge the ranges of every NFA node in the set. The resulting list has rangeis with targets corresponding to the union of all the transitions. -We go over all the ranges the same way we used to go over the transitions. Since the DFA does not support ranges, the ranges are spread as individual transitions + fallback transition. --- With the efficient merging solved, we still need the actual NFA to use ranges instead of individual transitions. I could have used MutableRange for that but it is not the most compact way to represent ranges that do not need merging. Instead, the NFA uses a custom structure: ImmutableNFA. It is basically the same thing, but in that one you cannot change a list of range after creating it. Consequently, the sorted ranges in ImmutableNFA are also subsequent in memory, which is really nice to go over them efficiently when merging ranges in the NFA-to-DFA conversion. :) When building the NFA, we don't know all the transitions when creating each node, BUT we know that we have very few node "unfinished" at any time. Since we build by going depth-first in the prefix-tree, we only have the max-depth of live nodes in the worst case. To help building the NFA out of the prefix tree, we have ImmutableNFANodeBuilder. It keeps all the informations about a NFA node, but in a non-compact, mutable form. When a ImmutableNFANodeBuilder is destroyed, it serialize the information into the immutable NFA. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::generateNFAForSubtree): (WebCore::ContentExtensions::CombinedURLFilters::processNFAs): * contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::empty): * contentextensions/DFA.h: * contentextensions/ImmutableNFA.h: Added. (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::end): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::end): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::debugPrint): (WebCore::ContentExtensions::ImmutableNFA::transitionsForNode): (WebCore::ContentExtensions::ImmutableNFA::root): (WebCore::ContentExtensions::ImmutableNFA::finalize): (WebCore::ContentExtensions::ImmutableNFA::memoryUsed): * contentextensions/ImmutableNFANodeBuilder.h: Added. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::setActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::finalize): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkTransitions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkEpsilonTransitions): * contentextensions/MutableRange.h: Added. (WebCore::ContentExtensions::MutableRange::MutableRange): (WebCore::ContentExtensions::MutableRange::operator=): (WebCore::ContentExtensions::MutableRange::size): * contentextensions/MutableRangeList.h: Added. (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator*): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator->): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator==): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator!=): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator++): (WebCore::ContentExtensions::MutableRangeList::begin): (WebCore::ContentExtensions::MutableRangeList::end): (WebCore::ContentExtensions::MutableRangeList::appendRange): (WebCore::ContentExtensions::MutableRangeList::extend): (WebCore::ContentExtensions::MutableRangeList::isEmpty): (WebCore::ContentExtensions::MutableRangeList::clear): (WebCore::ContentExtensions::MutableRangeList::debugPrint): (WebCore::ContentExtensions::MutableRangeList::insertBetween): (WebCore::ContentExtensions::MutableRangeList::initializeFrom): * contentextensions/NFA.cpp: (WebCore::ContentExtensions::NFA::debugPrintDot): (WebCore::ContentExtensions::NFA::NFA): Deleted. (WebCore::ContentExtensions::NFA::createNode): Deleted. (WebCore::ContentExtensions::NFA::memoryUsed): Deleted. (WebCore::ContentExtensions::NFA::addTransition): Deleted. (WebCore::ContentExtensions::NFA::addEpsilonTransition): Deleted. (WebCore::ContentExtensions::NFA::addTransitionsOnAnyCharacter): Deleted. (WebCore::ContentExtensions::NFA::setActions): Deleted. (WebCore::ContentExtensions::NFA::graphSize): Deleted. (WebCore::ContentExtensions::NFA::restoreToGraphSize): Deleted. (WebCore::ContentExtensions::printRange): Deleted. (WebCore::ContentExtensions::printTransitions): Deleted. * contentextensions/NFA.h: (WebCore::ContentExtensions::NFA::root): Deleted. (WebCore::ContentExtensions::NFA::addRuleId): Deleted. * contentextensions/NFANode.h: * contentextensions/NFAToDFA.cpp: (WebCore::ContentExtensions::epsilonClosureExcludingSelf): (WebCore::ContentExtensions::resolveEpsilonClosures): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::convert): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::extend): (WebCore::ContentExtensions::createCombinedTransition): (WebCore::ContentExtensions::canUseFallbackTransition): (WebCore::ContentExtensions::findBestFallbackTarget): (WebCore::ContentExtensions::getOrCreateDFANode): (WebCore::ContentExtensions::NFAToDFA::convert): (WebCore::ContentExtensions::populateTransitions): Deleted. * contentextensions/NFAToDFA.h: * contentextensions/Term.h: (WebCore::ContentExtensions::Term::Term): (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): (WebCore::ContentExtensions::Term::Term::generateGraph): Deleted. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: Test some new interesting cases. Canonical link: https://commits.webkit.org/164509@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186079 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-06-29 19:40:12 +00:00
uint32_t data() const { return targetId; }
bool operator==(const FakeRangeIterator& other)
{
return this->isEnd == other.isEnd;
}
bool operator!=(const FakeRangeIterator& other) { return !(*this == other); }
FakeRangeIterator operator++()
{
isEnd = true;
return *this;
}
TrivialRange range;
uint32_t targetId;
bool isEnd;
};
[Content extensions] Combine suffixes when generating NFAs https://bugs.webkit.org/show_bug.cgi?id=146961 Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-07-16 Reviewed by Alex Christensen. Source/WebCore: In this patch, I add a mechanism very similar to the prefix tree but for the suffix (called a reverse suffix tree here). The idea is here is to reuse the existing NFA nodes when generating a chain of suffix Term that were already generated previously. When generating a disjunction ending with the same suffix, we now have the same trailing NFA nodes for both sides of the disjunction. Mixing the prefix and suffix generation can be tricky, we do not want transitions from a pattern to creep into the suffix of an other. To avoid any conflict, the rules here are very simple: -Only use the reverse suffix tree for terms without actions up to a leaf term with actions. This rule ensure that no action will accidentally make its way to an other rule by resuing a vertex of the reverse suffix tree. -Only use the reverse suffix tree for chains of terms in which each term only has zero or one following term. With this condition, when taking any vertex of the reverse suffix tree, there is only one edge that move out of that vertex when reading from left to right. For any vertex, there is only one possible string generated left-to-right, a single suffix. This is overly restrictive but it is fast, easier to verify, and it works well in practice. For all the more complicated cases, we can count on the Minimizer to find a better solution. With all the simple suffixes merged, our NFAs are smaller, which let us combine more patterns. The DFAs are also smaller and faster to produce since their size is relative to the NFA sizes. Overall, I get the following gains: -Chris's test case: compile time -40%. bytecode size -14%. -Armand's test case: compile time -53%. bytecode size -13%. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::ActiveSubtree::ActiveSubtree): (WebCore::ContentExtensions::generateInfixUnsuitableForReverseSuffixTree): (WebCore::ContentExtensions::generateSuffixWithReverseSuffixTree): (WebCore::ContentExtensions::clearReverseSuffixTree): (WebCore::ContentExtensions::generateNFAForSubtree): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::debugPrintDot): Forgot to close a tag, dot was not happy. * contentextensions/HashableActionList.h: Added. (WebCore::ContentExtensions::HashableActionList::HashableActionList): (WebCore::ContentExtensions::HashableActionList::isEmptyValue): (WebCore::ContentExtensions::HashableActionList::isDeletedValue): (WebCore::ContentExtensions::HashableActionList::operator==): (WebCore::ContentExtensions::HashableActionList::operator!=): (WebCore::ContentExtensions::HashableActionListHash::hash): (WebCore::ContentExtensions::HashableActionListHash::equal): We need a way to group reverse suffix tree by their terminal actions. This new hash structure lets us find unique vertex for a list of actions in any order. * contentextensions/ImmutableNFANodeBuilder.h: (WebCore::ContentExtensions::ImmutableNFANodeBuilder::isValid): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::nodeId): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): Deleted. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): Deleted. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): Deleted. * contentextensions/Term.h: (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): Node building changes a bit. Previously, it was assumed nodes are always built from left to right. Getting the node on the right was done by providing the left node and the term doing the transition. Now we have both left to right and right to left generation. The right-to-left has a specific property: no edge can be added after it's initial term (rule 2 of our reverse suffix tree). This simplifies things a bit since we can finalize all the nodes in the suffix tree. All we need is to keep their ID to be able to link new nodes to the reverse suffix tree. Source/WTF: * wtf/Vector.h: (WTF::minCapacity>::Vector): (WTF::=): Copying a vector with a different inline capacity was broken due to the addition of MinimumCapacity. This feature was needed by this patch so I fixed WTF. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (TestWebKitAPI::compareContents): * TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp: Canonical link: https://commits.webkit.org/165074@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186910 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-07-16 21:51:08 +00:00
void addTransition(CharacterType first, CharacterType last, uint32_t targetNodeId)
Make the NFA transitions range-based https://bugs.webkit.org/show_bug.cgi?id=146338 Reviewed by Alex Christensen. Source/WebCore: Change the NFA to use range based transition for any kind of transition. The fallback transition is also absorbed as ranges. Previously, the NFA would only have single transitions and a fallback transition for all cases not covered by single transitions. The problem with that design was that character ranges (e.g. [a-z]) were extended as individual transitions. Something like [^a] would cover most of the alphabet with transitions. When converting the NFA to DFA, the time is proportional to the number of states multiplied by the number of transitions. With many individual transitions, the run time was an order of magnitude higher than what we want. This patch changes the NFA to only handle ranges of characters. A single transition becomes a range with the character as first and last character in the range ('a' becomes 'a' to 'a'). Ranges of characters are handled direclty (e.g. [a-z] becomes a single 'a' to 'z' transition). In the context of the state machines, ranges have identifies (the target of the transitions). When two ranges collide, they have to be split such that each part retain its target except the intersection that gets the union of the targets. Handling the union of ranges efficiently is critical because we have to do it for every NFA node in any subset when building the DFA. The helper class that does that is MutableRange. The union of ranges is done efficiently because of preconditions on our list of ranges: -The ranges must be sorted. -No range in a list can intersect any other range in the same list. To merge two ranges, we can go over them in order and split them part by part. It is easy to find what goes where because they are both sorted and we can compare the characters of each to know how to move forward. The time to merge 2 range list is proportional to O(n+m) where 'n' and 'm' are the number of ranges in each list. Since taking the union of two lists usually create new ranges, we have to allocate those somewhere efficiently. To do that, MutableRange support an inline capacity, which is used for the NFAToDFA Convertion. --- With ranges, the NFA-to-DFA conversion changes very little: -Each NFA nodes contains a list of ranges and each range has a list of targets. -The subset construction select any number of NFA nodes corresponding to a single deterministic state. -For the subset, we can use MutableRange to merge the ranges of every NFA node in the set. The resulting list has rangeis with targets corresponding to the union of all the transitions. -We go over all the ranges the same way we used to go over the transitions. Since the DFA does not support ranges, the ranges are spread as individual transitions + fallback transition. --- With the efficient merging solved, we still need the actual NFA to use ranges instead of individual transitions. I could have used MutableRange for that but it is not the most compact way to represent ranges that do not need merging. Instead, the NFA uses a custom structure: ImmutableNFA. It is basically the same thing, but in that one you cannot change a list of range after creating it. Consequently, the sorted ranges in ImmutableNFA are also subsequent in memory, which is really nice to go over them efficiently when merging ranges in the NFA-to-DFA conversion. :) When building the NFA, we don't know all the transitions when creating each node, BUT we know that we have very few node "unfinished" at any time. Since we build by going depth-first in the prefix-tree, we only have the max-depth of live nodes in the worst case. To help building the NFA out of the prefix tree, we have ImmutableNFANodeBuilder. It keeps all the informations about a NFA node, but in a non-compact, mutable form. When a ImmutableNFANodeBuilder is destroyed, it serialize the information into the immutable NFA. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::generateNFAForSubtree): (WebCore::ContentExtensions::CombinedURLFilters::processNFAs): * contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::empty): * contentextensions/DFA.h: * contentextensions/ImmutableNFA.h: Added. (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::end): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::end): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::debugPrint): (WebCore::ContentExtensions::ImmutableNFA::transitionsForNode): (WebCore::ContentExtensions::ImmutableNFA::root): (WebCore::ContentExtensions::ImmutableNFA::finalize): (WebCore::ContentExtensions::ImmutableNFA::memoryUsed): * contentextensions/ImmutableNFANodeBuilder.h: Added. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::setActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::finalize): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkTransitions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkEpsilonTransitions): * contentextensions/MutableRange.h: Added. (WebCore::ContentExtensions::MutableRange::MutableRange): (WebCore::ContentExtensions::MutableRange::operator=): (WebCore::ContentExtensions::MutableRange::size): * contentextensions/MutableRangeList.h: Added. (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator*): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator->): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator==): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator!=): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator++): (WebCore::ContentExtensions::MutableRangeList::begin): (WebCore::ContentExtensions::MutableRangeList::end): (WebCore::ContentExtensions::MutableRangeList::appendRange): (WebCore::ContentExtensions::MutableRangeList::extend): (WebCore::ContentExtensions::MutableRangeList::isEmpty): (WebCore::ContentExtensions::MutableRangeList::clear): (WebCore::ContentExtensions::MutableRangeList::debugPrint): (WebCore::ContentExtensions::MutableRangeList::insertBetween): (WebCore::ContentExtensions::MutableRangeList::initializeFrom): * contentextensions/NFA.cpp: (WebCore::ContentExtensions::NFA::debugPrintDot): (WebCore::ContentExtensions::NFA::NFA): Deleted. (WebCore::ContentExtensions::NFA::createNode): Deleted. (WebCore::ContentExtensions::NFA::memoryUsed): Deleted. (WebCore::ContentExtensions::NFA::addTransition): Deleted. (WebCore::ContentExtensions::NFA::addEpsilonTransition): Deleted. (WebCore::ContentExtensions::NFA::addTransitionsOnAnyCharacter): Deleted. (WebCore::ContentExtensions::NFA::setActions): Deleted. (WebCore::ContentExtensions::NFA::graphSize): Deleted. (WebCore::ContentExtensions::NFA::restoreToGraphSize): Deleted. (WebCore::ContentExtensions::printRange): Deleted. (WebCore::ContentExtensions::printTransitions): Deleted. * contentextensions/NFA.h: (WebCore::ContentExtensions::NFA::root): Deleted. (WebCore::ContentExtensions::NFA::addRuleId): Deleted. * contentextensions/NFANode.h: * contentextensions/NFAToDFA.cpp: (WebCore::ContentExtensions::epsilonClosureExcludingSelf): (WebCore::ContentExtensions::resolveEpsilonClosures): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::convert): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::extend): (WebCore::ContentExtensions::createCombinedTransition): (WebCore::ContentExtensions::canUseFallbackTransition): (WebCore::ContentExtensions::findBestFallbackTarget): (WebCore::ContentExtensions::getOrCreateDFANode): (WebCore::ContentExtensions::NFAToDFA::convert): (WebCore::ContentExtensions::populateTransitions): Deleted. * contentextensions/NFAToDFA.h: * contentextensions/Term.h: (WebCore::ContentExtensions::Term::Term): (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): (WebCore::ContentExtensions::Term::Term::generateGraph): Deleted. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: Test some new interesting cases. Canonical link: https://commits.webkit.org/164509@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186079 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-06-29 19:40:12 +00:00
{
ASSERT(!m_finalized);
ASSERT(m_immutableNFA);
struct Converter {
TargetSet convert(uint32_t target)
{
return TargetSet({ target });
}
void extend(TargetSet& existingTargets, uint32_t target)
{
existingTargets.add(target);
}
};
Converter converter;
[Content extensions] Combine suffixes when generating NFAs https://bugs.webkit.org/show_bug.cgi?id=146961 Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-07-16 Reviewed by Alex Christensen. Source/WebCore: In this patch, I add a mechanism very similar to the prefix tree but for the suffix (called a reverse suffix tree here). The idea is here is to reuse the existing NFA nodes when generating a chain of suffix Term that were already generated previously. When generating a disjunction ending with the same suffix, we now have the same trailing NFA nodes for both sides of the disjunction. Mixing the prefix and suffix generation can be tricky, we do not want transitions from a pattern to creep into the suffix of an other. To avoid any conflict, the rules here are very simple: -Only use the reverse suffix tree for terms without actions up to a leaf term with actions. This rule ensure that no action will accidentally make its way to an other rule by resuing a vertex of the reverse suffix tree. -Only use the reverse suffix tree for chains of terms in which each term only has zero or one following term. With this condition, when taking any vertex of the reverse suffix tree, there is only one edge that move out of that vertex when reading from left to right. For any vertex, there is only one possible string generated left-to-right, a single suffix. This is overly restrictive but it is fast, easier to verify, and it works well in practice. For all the more complicated cases, we can count on the Minimizer to find a better solution. With all the simple suffixes merged, our NFAs are smaller, which let us combine more patterns. The DFAs are also smaller and faster to produce since their size is relative to the NFA sizes. Overall, I get the following gains: -Chris's test case: compile time -40%. bytecode size -14%. -Armand's test case: compile time -53%. bytecode size -13%. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::ActiveSubtree::ActiveSubtree): (WebCore::ContentExtensions::generateInfixUnsuitableForReverseSuffixTree): (WebCore::ContentExtensions::generateSuffixWithReverseSuffixTree): (WebCore::ContentExtensions::clearReverseSuffixTree): (WebCore::ContentExtensions::generateNFAForSubtree): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::debugPrintDot): Forgot to close a tag, dot was not happy. * contentextensions/HashableActionList.h: Added. (WebCore::ContentExtensions::HashableActionList::HashableActionList): (WebCore::ContentExtensions::HashableActionList::isEmptyValue): (WebCore::ContentExtensions::HashableActionList::isDeletedValue): (WebCore::ContentExtensions::HashableActionList::operator==): (WebCore::ContentExtensions::HashableActionList::operator!=): (WebCore::ContentExtensions::HashableActionListHash::hash): (WebCore::ContentExtensions::HashableActionListHash::equal): We need a way to group reverse suffix tree by their terminal actions. This new hash structure lets us find unique vertex for a list of actions in any order. * contentextensions/ImmutableNFANodeBuilder.h: (WebCore::ContentExtensions::ImmutableNFANodeBuilder::isValid): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::nodeId): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): Deleted. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): Deleted. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): Deleted. * contentextensions/Term.h: (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): Node building changes a bit. Previously, it was assumed nodes are always built from left to right. Getting the node on the right was done by providing the left node and the term doing the transition. Now we have both left to right and right to left generation. The right-to-left has a specific property: no edge can be added after it's initial term (rule 2 of our reverse suffix tree). This simplifies things a bit since we can finalize all the nodes in the suffix tree. All we need is to keep their ID to be able to link new nodes to the reverse suffix tree. Source/WTF: * wtf/Vector.h: (WTF::minCapacity>::Vector): (WTF::=): Copying a vector with a different inline capacity was broken due to the addition of MinimumCapacity. This feature was needed by this patch so I fixed WTF. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (TestWebKitAPI::compareContents): * TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp: Canonical link: https://commits.webkit.org/165074@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186910 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-07-16 21:51:08 +00:00
m_ranges.extend(FakeRangeIterator { { first, last }, targetNodeId, false }, FakeRangeIterator { { 0, 0 }, targetNodeId, true }, converter);
Make the NFA transitions range-based https://bugs.webkit.org/show_bug.cgi?id=146338 Reviewed by Alex Christensen. Source/WebCore: Change the NFA to use range based transition for any kind of transition. The fallback transition is also absorbed as ranges. Previously, the NFA would only have single transitions and a fallback transition for all cases not covered by single transitions. The problem with that design was that character ranges (e.g. [a-z]) were extended as individual transitions. Something like [^a] would cover most of the alphabet with transitions. When converting the NFA to DFA, the time is proportional to the number of states multiplied by the number of transitions. With many individual transitions, the run time was an order of magnitude higher than what we want. This patch changes the NFA to only handle ranges of characters. A single transition becomes a range with the character as first and last character in the range ('a' becomes 'a' to 'a'). Ranges of characters are handled direclty (e.g. [a-z] becomes a single 'a' to 'z' transition). In the context of the state machines, ranges have identifies (the target of the transitions). When two ranges collide, they have to be split such that each part retain its target except the intersection that gets the union of the targets. Handling the union of ranges efficiently is critical because we have to do it for every NFA node in any subset when building the DFA. The helper class that does that is MutableRange. The union of ranges is done efficiently because of preconditions on our list of ranges: -The ranges must be sorted. -No range in a list can intersect any other range in the same list. To merge two ranges, we can go over them in order and split them part by part. It is easy to find what goes where because they are both sorted and we can compare the characters of each to know how to move forward. The time to merge 2 range list is proportional to O(n+m) where 'n' and 'm' are the number of ranges in each list. Since taking the union of two lists usually create new ranges, we have to allocate those somewhere efficiently. To do that, MutableRange support an inline capacity, which is used for the NFAToDFA Convertion. --- With ranges, the NFA-to-DFA conversion changes very little: -Each NFA nodes contains a list of ranges and each range has a list of targets. -The subset construction select any number of NFA nodes corresponding to a single deterministic state. -For the subset, we can use MutableRange to merge the ranges of every NFA node in the set. The resulting list has rangeis with targets corresponding to the union of all the transitions. -We go over all the ranges the same way we used to go over the transitions. Since the DFA does not support ranges, the ranges are spread as individual transitions + fallback transition. --- With the efficient merging solved, we still need the actual NFA to use ranges instead of individual transitions. I could have used MutableRange for that but it is not the most compact way to represent ranges that do not need merging. Instead, the NFA uses a custom structure: ImmutableNFA. It is basically the same thing, but in that one you cannot change a list of range after creating it. Consequently, the sorted ranges in ImmutableNFA are also subsequent in memory, which is really nice to go over them efficiently when merging ranges in the NFA-to-DFA conversion. :) When building the NFA, we don't know all the transitions when creating each node, BUT we know that we have very few node "unfinished" at any time. Since we build by going depth-first in the prefix-tree, we only have the max-depth of live nodes in the worst case. To help building the NFA out of the prefix tree, we have ImmutableNFANodeBuilder. It keeps all the informations about a NFA node, but in a non-compact, mutable form. When a ImmutableNFANodeBuilder is destroyed, it serialize the information into the immutable NFA. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::generateNFAForSubtree): (WebCore::ContentExtensions::CombinedURLFilters::processNFAs): * contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::empty): * contentextensions/DFA.h: * contentextensions/ImmutableNFA.h: Added. (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::end): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::end): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::debugPrint): (WebCore::ContentExtensions::ImmutableNFA::transitionsForNode): (WebCore::ContentExtensions::ImmutableNFA::root): (WebCore::ContentExtensions::ImmutableNFA::finalize): (WebCore::ContentExtensions::ImmutableNFA::memoryUsed): * contentextensions/ImmutableNFANodeBuilder.h: Added. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::setActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::finalize): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkTransitions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkEpsilonTransitions): * contentextensions/MutableRange.h: Added. (WebCore::ContentExtensions::MutableRange::MutableRange): (WebCore::ContentExtensions::MutableRange::operator=): (WebCore::ContentExtensions::MutableRange::size): * contentextensions/MutableRangeList.h: Added. (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator*): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator->): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator==): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator!=): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator++): (WebCore::ContentExtensions::MutableRangeList::begin): (WebCore::ContentExtensions::MutableRangeList::end): (WebCore::ContentExtensions::MutableRangeList::appendRange): (WebCore::ContentExtensions::MutableRangeList::extend): (WebCore::ContentExtensions::MutableRangeList::isEmpty): (WebCore::ContentExtensions::MutableRangeList::clear): (WebCore::ContentExtensions::MutableRangeList::debugPrint): (WebCore::ContentExtensions::MutableRangeList::insertBetween): (WebCore::ContentExtensions::MutableRangeList::initializeFrom): * contentextensions/NFA.cpp: (WebCore::ContentExtensions::NFA::debugPrintDot): (WebCore::ContentExtensions::NFA::NFA): Deleted. (WebCore::ContentExtensions::NFA::createNode): Deleted. (WebCore::ContentExtensions::NFA::memoryUsed): Deleted. (WebCore::ContentExtensions::NFA::addTransition): Deleted. (WebCore::ContentExtensions::NFA::addEpsilonTransition): Deleted. (WebCore::ContentExtensions::NFA::addTransitionsOnAnyCharacter): Deleted. (WebCore::ContentExtensions::NFA::setActions): Deleted. (WebCore::ContentExtensions::NFA::graphSize): Deleted. (WebCore::ContentExtensions::NFA::restoreToGraphSize): Deleted. (WebCore::ContentExtensions::printRange): Deleted. (WebCore::ContentExtensions::printTransitions): Deleted. * contentextensions/NFA.h: (WebCore::ContentExtensions::NFA::root): Deleted. (WebCore::ContentExtensions::NFA::addRuleId): Deleted. * contentextensions/NFANode.h: * contentextensions/NFAToDFA.cpp: (WebCore::ContentExtensions::epsilonClosureExcludingSelf): (WebCore::ContentExtensions::resolveEpsilonClosures): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::convert): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::extend): (WebCore::ContentExtensions::createCombinedTransition): (WebCore::ContentExtensions::canUseFallbackTransition): (WebCore::ContentExtensions::findBestFallbackTarget): (WebCore::ContentExtensions::getOrCreateDFANode): (WebCore::ContentExtensions::NFAToDFA::convert): (WebCore::ContentExtensions::populateTransitions): Deleted. * contentextensions/NFAToDFA.h: * contentextensions/Term.h: (WebCore::ContentExtensions::Term::Term): (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): (WebCore::ContentExtensions::Term::Term::generateGraph): Deleted. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: Test some new interesting cases. Canonical link: https://commits.webkit.org/164509@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186079 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-06-29 19:40:12 +00:00
}
void addEpsilonTransition(const ImmutableNFANodeBuilder& target)
[Content extensions] Combine suffixes when generating NFAs https://bugs.webkit.org/show_bug.cgi?id=146961 Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-07-16 Reviewed by Alex Christensen. Source/WebCore: In this patch, I add a mechanism very similar to the prefix tree but for the suffix (called a reverse suffix tree here). The idea is here is to reuse the existing NFA nodes when generating a chain of suffix Term that were already generated previously. When generating a disjunction ending with the same suffix, we now have the same trailing NFA nodes for both sides of the disjunction. Mixing the prefix and suffix generation can be tricky, we do not want transitions from a pattern to creep into the suffix of an other. To avoid any conflict, the rules here are very simple: -Only use the reverse suffix tree for terms without actions up to a leaf term with actions. This rule ensure that no action will accidentally make its way to an other rule by resuing a vertex of the reverse suffix tree. -Only use the reverse suffix tree for chains of terms in which each term only has zero or one following term. With this condition, when taking any vertex of the reverse suffix tree, there is only one edge that move out of that vertex when reading from left to right. For any vertex, there is only one possible string generated left-to-right, a single suffix. This is overly restrictive but it is fast, easier to verify, and it works well in practice. For all the more complicated cases, we can count on the Minimizer to find a better solution. With all the simple suffixes merged, our NFAs are smaller, which let us combine more patterns. The DFAs are also smaller and faster to produce since their size is relative to the NFA sizes. Overall, I get the following gains: -Chris's test case: compile time -40%. bytecode size -14%. -Armand's test case: compile time -53%. bytecode size -13%. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::ActiveSubtree::ActiveSubtree): (WebCore::ContentExtensions::generateInfixUnsuitableForReverseSuffixTree): (WebCore::ContentExtensions::generateSuffixWithReverseSuffixTree): (WebCore::ContentExtensions::clearReverseSuffixTree): (WebCore::ContentExtensions::generateNFAForSubtree): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::debugPrintDot): Forgot to close a tag, dot was not happy. * contentextensions/HashableActionList.h: Added. (WebCore::ContentExtensions::HashableActionList::HashableActionList): (WebCore::ContentExtensions::HashableActionList::isEmptyValue): (WebCore::ContentExtensions::HashableActionList::isDeletedValue): (WebCore::ContentExtensions::HashableActionList::operator==): (WebCore::ContentExtensions::HashableActionList::operator!=): (WebCore::ContentExtensions::HashableActionListHash::hash): (WebCore::ContentExtensions::HashableActionListHash::equal): We need a way to group reverse suffix tree by their terminal actions. This new hash structure lets us find unique vertex for a list of actions in any order. * contentextensions/ImmutableNFANodeBuilder.h: (WebCore::ContentExtensions::ImmutableNFANodeBuilder::isValid): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::nodeId): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): Deleted. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): Deleted. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): Deleted. * contentextensions/Term.h: (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): Node building changes a bit. Previously, it was assumed nodes are always built from left to right. Getting the node on the right was done by providing the left node and the term doing the transition. Now we have both left to right and right to left generation. The right-to-left has a specific property: no edge can be added after it's initial term (rule 2 of our reverse suffix tree). This simplifies things a bit since we can finalize all the nodes in the suffix tree. All we need is to keep their ID to be able to link new nodes to the reverse suffix tree. Source/WTF: * wtf/Vector.h: (WTF::minCapacity>::Vector): (WTF::=): Copying a vector with a different inline capacity was broken due to the addition of MinimumCapacity. This feature was needed by this patch so I fixed WTF. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (TestWebKitAPI::compareContents): * TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp: Canonical link: https://commits.webkit.org/165074@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186910 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-07-16 21:51:08 +00:00
{
ASSERT(m_immutableNFA == target.m_immutableNFA);
addEpsilonTransition(target.m_nodeId);
}
void addEpsilonTransition(uint32_t targetNodeId)
Make the NFA transitions range-based https://bugs.webkit.org/show_bug.cgi?id=146338 Reviewed by Alex Christensen. Source/WebCore: Change the NFA to use range based transition for any kind of transition. The fallback transition is also absorbed as ranges. Previously, the NFA would only have single transitions and a fallback transition for all cases not covered by single transitions. The problem with that design was that character ranges (e.g. [a-z]) were extended as individual transitions. Something like [^a] would cover most of the alphabet with transitions. When converting the NFA to DFA, the time is proportional to the number of states multiplied by the number of transitions. With many individual transitions, the run time was an order of magnitude higher than what we want. This patch changes the NFA to only handle ranges of characters. A single transition becomes a range with the character as first and last character in the range ('a' becomes 'a' to 'a'). Ranges of characters are handled direclty (e.g. [a-z] becomes a single 'a' to 'z' transition). In the context of the state machines, ranges have identifies (the target of the transitions). When two ranges collide, they have to be split such that each part retain its target except the intersection that gets the union of the targets. Handling the union of ranges efficiently is critical because we have to do it for every NFA node in any subset when building the DFA. The helper class that does that is MutableRange. The union of ranges is done efficiently because of preconditions on our list of ranges: -The ranges must be sorted. -No range in a list can intersect any other range in the same list. To merge two ranges, we can go over them in order and split them part by part. It is easy to find what goes where because they are both sorted and we can compare the characters of each to know how to move forward. The time to merge 2 range list is proportional to O(n+m) where 'n' and 'm' are the number of ranges in each list. Since taking the union of two lists usually create new ranges, we have to allocate those somewhere efficiently. To do that, MutableRange support an inline capacity, which is used for the NFAToDFA Convertion. --- With ranges, the NFA-to-DFA conversion changes very little: -Each NFA nodes contains a list of ranges and each range has a list of targets. -The subset construction select any number of NFA nodes corresponding to a single deterministic state. -For the subset, we can use MutableRange to merge the ranges of every NFA node in the set. The resulting list has rangeis with targets corresponding to the union of all the transitions. -We go over all the ranges the same way we used to go over the transitions. Since the DFA does not support ranges, the ranges are spread as individual transitions + fallback transition. --- With the efficient merging solved, we still need the actual NFA to use ranges instead of individual transitions. I could have used MutableRange for that but it is not the most compact way to represent ranges that do not need merging. Instead, the NFA uses a custom structure: ImmutableNFA. It is basically the same thing, but in that one you cannot change a list of range after creating it. Consequently, the sorted ranges in ImmutableNFA are also subsequent in memory, which is really nice to go over them efficiently when merging ranges in the NFA-to-DFA conversion. :) When building the NFA, we don't know all the transitions when creating each node, BUT we know that we have very few node "unfinished" at any time. Since we build by going depth-first in the prefix-tree, we only have the max-depth of live nodes in the worst case. To help building the NFA out of the prefix tree, we have ImmutableNFANodeBuilder. It keeps all the informations about a NFA node, but in a non-compact, mutable form. When a ImmutableNFANodeBuilder is destroyed, it serialize the information into the immutable NFA. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::generateNFAForSubtree): (WebCore::ContentExtensions::CombinedURLFilters::processNFAs): * contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::empty): * contentextensions/DFA.h: * contentextensions/ImmutableNFA.h: Added. (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::end): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::end): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::debugPrint): (WebCore::ContentExtensions::ImmutableNFA::transitionsForNode): (WebCore::ContentExtensions::ImmutableNFA::root): (WebCore::ContentExtensions::ImmutableNFA::finalize): (WebCore::ContentExtensions::ImmutableNFA::memoryUsed): * contentextensions/ImmutableNFANodeBuilder.h: Added. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::setActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::finalize): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkTransitions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkEpsilonTransitions): * contentextensions/MutableRange.h: Added. (WebCore::ContentExtensions::MutableRange::MutableRange): (WebCore::ContentExtensions::MutableRange::operator=): (WebCore::ContentExtensions::MutableRange::size): * contentextensions/MutableRangeList.h: Added. (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator*): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator->): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator==): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator!=): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator++): (WebCore::ContentExtensions::MutableRangeList::begin): (WebCore::ContentExtensions::MutableRangeList::end): (WebCore::ContentExtensions::MutableRangeList::appendRange): (WebCore::ContentExtensions::MutableRangeList::extend): (WebCore::ContentExtensions::MutableRangeList::isEmpty): (WebCore::ContentExtensions::MutableRangeList::clear): (WebCore::ContentExtensions::MutableRangeList::debugPrint): (WebCore::ContentExtensions::MutableRangeList::insertBetween): (WebCore::ContentExtensions::MutableRangeList::initializeFrom): * contentextensions/NFA.cpp: (WebCore::ContentExtensions::NFA::debugPrintDot): (WebCore::ContentExtensions::NFA::NFA): Deleted. (WebCore::ContentExtensions::NFA::createNode): Deleted. (WebCore::ContentExtensions::NFA::memoryUsed): Deleted. (WebCore::ContentExtensions::NFA::addTransition): Deleted. (WebCore::ContentExtensions::NFA::addEpsilonTransition): Deleted. (WebCore::ContentExtensions::NFA::addTransitionsOnAnyCharacter): Deleted. (WebCore::ContentExtensions::NFA::setActions): Deleted. (WebCore::ContentExtensions::NFA::graphSize): Deleted. (WebCore::ContentExtensions::NFA::restoreToGraphSize): Deleted. (WebCore::ContentExtensions::printRange): Deleted. (WebCore::ContentExtensions::printTransitions): Deleted. * contentextensions/NFA.h: (WebCore::ContentExtensions::NFA::root): Deleted. (WebCore::ContentExtensions::NFA::addRuleId): Deleted. * contentextensions/NFANode.h: * contentextensions/NFAToDFA.cpp: (WebCore::ContentExtensions::epsilonClosureExcludingSelf): (WebCore::ContentExtensions::resolveEpsilonClosures): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::convert): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::extend): (WebCore::ContentExtensions::createCombinedTransition): (WebCore::ContentExtensions::canUseFallbackTransition): (WebCore::ContentExtensions::findBestFallbackTarget): (WebCore::ContentExtensions::getOrCreateDFANode): (WebCore::ContentExtensions::NFAToDFA::convert): (WebCore::ContentExtensions::populateTransitions): Deleted. * contentextensions/NFAToDFA.h: * contentextensions/Term.h: (WebCore::ContentExtensions::Term::Term): (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): (WebCore::ContentExtensions::Term::Term::generateGraph): Deleted. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: Test some new interesting cases. Canonical link: https://commits.webkit.org/164509@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186079 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-06-29 19:40:12 +00:00
{
ASSERT(!m_finalized);
ASSERT(m_immutableNFA);
[Content extensions] Combine suffixes when generating NFAs https://bugs.webkit.org/show_bug.cgi?id=146961 Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-07-16 Reviewed by Alex Christensen. Source/WebCore: In this patch, I add a mechanism very similar to the prefix tree but for the suffix (called a reverse suffix tree here). The idea is here is to reuse the existing NFA nodes when generating a chain of suffix Term that were already generated previously. When generating a disjunction ending with the same suffix, we now have the same trailing NFA nodes for both sides of the disjunction. Mixing the prefix and suffix generation can be tricky, we do not want transitions from a pattern to creep into the suffix of an other. To avoid any conflict, the rules here are very simple: -Only use the reverse suffix tree for terms without actions up to a leaf term with actions. This rule ensure that no action will accidentally make its way to an other rule by resuing a vertex of the reverse suffix tree. -Only use the reverse suffix tree for chains of terms in which each term only has zero or one following term. With this condition, when taking any vertex of the reverse suffix tree, there is only one edge that move out of that vertex when reading from left to right. For any vertex, there is only one possible string generated left-to-right, a single suffix. This is overly restrictive but it is fast, easier to verify, and it works well in practice. For all the more complicated cases, we can count on the Minimizer to find a better solution. With all the simple suffixes merged, our NFAs are smaller, which let us combine more patterns. The DFAs are also smaller and faster to produce since their size is relative to the NFA sizes. Overall, I get the following gains: -Chris's test case: compile time -40%. bytecode size -14%. -Armand's test case: compile time -53%. bytecode size -13%. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::ActiveSubtree::ActiveSubtree): (WebCore::ContentExtensions::generateInfixUnsuitableForReverseSuffixTree): (WebCore::ContentExtensions::generateSuffixWithReverseSuffixTree): (WebCore::ContentExtensions::clearReverseSuffixTree): (WebCore::ContentExtensions::generateNFAForSubtree): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::debugPrintDot): Forgot to close a tag, dot was not happy. * contentextensions/HashableActionList.h: Added. (WebCore::ContentExtensions::HashableActionList::HashableActionList): (WebCore::ContentExtensions::HashableActionList::isEmptyValue): (WebCore::ContentExtensions::HashableActionList::isDeletedValue): (WebCore::ContentExtensions::HashableActionList::operator==): (WebCore::ContentExtensions::HashableActionList::operator!=): (WebCore::ContentExtensions::HashableActionListHash::hash): (WebCore::ContentExtensions::HashableActionListHash::equal): We need a way to group reverse suffix tree by their terminal actions. This new hash structure lets us find unique vertex for a list of actions in any order. * contentextensions/ImmutableNFANodeBuilder.h: (WebCore::ContentExtensions::ImmutableNFANodeBuilder::isValid): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::nodeId): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): Deleted. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): Deleted. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): Deleted. * contentextensions/Term.h: (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): Node building changes a bit. Previously, it was assumed nodes are always built from left to right. Getting the node on the right was done by providing the left node and the term doing the transition. Now we have both left to right and right to left generation. The right-to-left has a specific property: no edge can be added after it's initial term (rule 2 of our reverse suffix tree). This simplifies things a bit since we can finalize all the nodes in the suffix tree. All we need is to keep their ID to be able to link new nodes to the reverse suffix tree. Source/WTF: * wtf/Vector.h: (WTF::minCapacity>::Vector): (WTF::=): Copying a vector with a different inline capacity was broken due to the addition of MinimumCapacity. This feature was needed by this patch so I fixed WTF. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (TestWebKitAPI::compareContents): * TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp: Canonical link: https://commits.webkit.org/165074@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186910 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-07-16 21:51:08 +00:00
m_epsilonTransitionTargets.add(targetNodeId);
Make the NFA transitions range-based https://bugs.webkit.org/show_bug.cgi?id=146338 Reviewed by Alex Christensen. Source/WebCore: Change the NFA to use range based transition for any kind of transition. The fallback transition is also absorbed as ranges. Previously, the NFA would only have single transitions and a fallback transition for all cases not covered by single transitions. The problem with that design was that character ranges (e.g. [a-z]) were extended as individual transitions. Something like [^a] would cover most of the alphabet with transitions. When converting the NFA to DFA, the time is proportional to the number of states multiplied by the number of transitions. With many individual transitions, the run time was an order of magnitude higher than what we want. This patch changes the NFA to only handle ranges of characters. A single transition becomes a range with the character as first and last character in the range ('a' becomes 'a' to 'a'). Ranges of characters are handled direclty (e.g. [a-z] becomes a single 'a' to 'z' transition). In the context of the state machines, ranges have identifies (the target of the transitions). When two ranges collide, they have to be split such that each part retain its target except the intersection that gets the union of the targets. Handling the union of ranges efficiently is critical because we have to do it for every NFA node in any subset when building the DFA. The helper class that does that is MutableRange. The union of ranges is done efficiently because of preconditions on our list of ranges: -The ranges must be sorted. -No range in a list can intersect any other range in the same list. To merge two ranges, we can go over them in order and split them part by part. It is easy to find what goes where because they are both sorted and we can compare the characters of each to know how to move forward. The time to merge 2 range list is proportional to O(n+m) where 'n' and 'm' are the number of ranges in each list. Since taking the union of two lists usually create new ranges, we have to allocate those somewhere efficiently. To do that, MutableRange support an inline capacity, which is used for the NFAToDFA Convertion. --- With ranges, the NFA-to-DFA conversion changes very little: -Each NFA nodes contains a list of ranges and each range has a list of targets. -The subset construction select any number of NFA nodes corresponding to a single deterministic state. -For the subset, we can use MutableRange to merge the ranges of every NFA node in the set. The resulting list has rangeis with targets corresponding to the union of all the transitions. -We go over all the ranges the same way we used to go over the transitions. Since the DFA does not support ranges, the ranges are spread as individual transitions + fallback transition. --- With the efficient merging solved, we still need the actual NFA to use ranges instead of individual transitions. I could have used MutableRange for that but it is not the most compact way to represent ranges that do not need merging. Instead, the NFA uses a custom structure: ImmutableNFA. It is basically the same thing, but in that one you cannot change a list of range after creating it. Consequently, the sorted ranges in ImmutableNFA are also subsequent in memory, which is really nice to go over them efficiently when merging ranges in the NFA-to-DFA conversion. :) When building the NFA, we don't know all the transitions when creating each node, BUT we know that we have very few node "unfinished" at any time. Since we build by going depth-first in the prefix-tree, we only have the max-depth of live nodes in the worst case. To help building the NFA out of the prefix tree, we have ImmutableNFANodeBuilder. It keeps all the informations about a NFA node, but in a non-compact, mutable form. When a ImmutableNFANodeBuilder is destroyed, it serialize the information into the immutable NFA. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::generateNFAForSubtree): (WebCore::ContentExtensions::CombinedURLFilters::processNFAs): * contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::empty): * contentextensions/DFA.h: * contentextensions/ImmutableNFA.h: Added. (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::end): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::end): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::debugPrint): (WebCore::ContentExtensions::ImmutableNFA::transitionsForNode): (WebCore::ContentExtensions::ImmutableNFA::root): (WebCore::ContentExtensions::ImmutableNFA::finalize): (WebCore::ContentExtensions::ImmutableNFA::memoryUsed): * contentextensions/ImmutableNFANodeBuilder.h: Added. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::setActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::finalize): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkTransitions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkEpsilonTransitions): * contentextensions/MutableRange.h: Added. (WebCore::ContentExtensions::MutableRange::MutableRange): (WebCore::ContentExtensions::MutableRange::operator=): (WebCore::ContentExtensions::MutableRange::size): * contentextensions/MutableRangeList.h: Added. (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator*): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator->): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator==): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator!=): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator++): (WebCore::ContentExtensions::MutableRangeList::begin): (WebCore::ContentExtensions::MutableRangeList::end): (WebCore::ContentExtensions::MutableRangeList::appendRange): (WebCore::ContentExtensions::MutableRangeList::extend): (WebCore::ContentExtensions::MutableRangeList::isEmpty): (WebCore::ContentExtensions::MutableRangeList::clear): (WebCore::ContentExtensions::MutableRangeList::debugPrint): (WebCore::ContentExtensions::MutableRangeList::insertBetween): (WebCore::ContentExtensions::MutableRangeList::initializeFrom): * contentextensions/NFA.cpp: (WebCore::ContentExtensions::NFA::debugPrintDot): (WebCore::ContentExtensions::NFA::NFA): Deleted. (WebCore::ContentExtensions::NFA::createNode): Deleted. (WebCore::ContentExtensions::NFA::memoryUsed): Deleted. (WebCore::ContentExtensions::NFA::addTransition): Deleted. (WebCore::ContentExtensions::NFA::addEpsilonTransition): Deleted. (WebCore::ContentExtensions::NFA::addTransitionsOnAnyCharacter): Deleted. (WebCore::ContentExtensions::NFA::setActions): Deleted. (WebCore::ContentExtensions::NFA::graphSize): Deleted. (WebCore::ContentExtensions::NFA::restoreToGraphSize): Deleted. (WebCore::ContentExtensions::printRange): Deleted. (WebCore::ContentExtensions::printTransitions): Deleted. * contentextensions/NFA.h: (WebCore::ContentExtensions::NFA::root): Deleted. (WebCore::ContentExtensions::NFA::addRuleId): Deleted. * contentextensions/NFANode.h: * contentextensions/NFAToDFA.cpp: (WebCore::ContentExtensions::epsilonClosureExcludingSelf): (WebCore::ContentExtensions::resolveEpsilonClosures): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::convert): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::extend): (WebCore::ContentExtensions::createCombinedTransition): (WebCore::ContentExtensions::canUseFallbackTransition): (WebCore::ContentExtensions::findBestFallbackTarget): (WebCore::ContentExtensions::getOrCreateDFANode): (WebCore::ContentExtensions::NFAToDFA::convert): (WebCore::ContentExtensions::populateTransitions): Deleted. * contentextensions/NFAToDFA.h: * contentextensions/Term.h: (WebCore::ContentExtensions::Term::Term): (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): (WebCore::ContentExtensions::Term::Term::generateGraph): Deleted. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: Test some new interesting cases. Canonical link: https://commits.webkit.org/164509@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186079 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-06-29 19:40:12 +00:00
}
template<typename ActionIterator>
void setActions(ActionIterator begin, ActionIterator end)
{
ASSERT(!m_finalized);
ASSERT(m_immutableNFA);
m_actions.add(begin, end);
}
ImmutableNFANodeBuilder& operator=(ImmutableNFANodeBuilder&& other)
{
if (!m_finalized)
finalize();
m_immutableNFA = other.m_immutableNFA;
Replace WTF::move with WTFMove https://bugs.webkit.org/show_bug.cgi?id=152601 Reviewed by Brady Eidson. Source/JavaScriptCore: * API/ObjCCallbackFunction.mm: (JSC::ObjCCallbackFunctionImpl::ObjCCallbackFunctionImpl): (JSC::ObjCCallbackFunction::ObjCCallbackFunction): (JSC::ObjCCallbackFunction::create): (objCCallbackFunctionForInvocation): * assembler/AssemblerBuffer.h: (JSC::AssemblerBuffer::releaseAssemblerData): * assembler/LinkBuffer.cpp: (JSC::LinkBuffer::linkCode): * b3/B3BlockInsertionSet.cpp: (JSC::B3::BlockInsertionSet::insert): (JSC::B3::BlockInsertionSet::splitForward): * b3/B3LowerToAir.cpp: (JSC::B3::Air::LowerToAir::run): (JSC::B3::Air::LowerToAir::lower): * b3/B3OpaqueByproducts.cpp: (JSC::B3::OpaqueByproducts::add): * b3/B3Procedure.cpp: (JSC::B3::Procedure::addBlock): (JSC::B3::Procedure::addDataSection): * b3/B3Procedure.h: (JSC::B3::Procedure::releaseByproducts): * b3/B3ProcedureInlines.h: (JSC::B3::Procedure::add): * b3/B3Value.h: * b3/air/AirCode.cpp: (JSC::B3::Air::Code::addBlock): (JSC::B3::Air::Code::addStackSlot): (JSC::B3::Air::Code::addSpecial): * b3/air/AirInst.h: (JSC::B3::Air::Inst::Inst): * b3/air/AirIteratedRegisterCoalescing.cpp: * b3/air/AirSimplifyCFG.cpp: (JSC::B3::Air::simplifyCFG): * bindings/ScriptValue.cpp: (Deprecated::jsToInspectorValue): * builtins/BuiltinExecutables.cpp: (JSC::createExecutableInternal): * bytecode/BytecodeBasicBlock.cpp: (JSC::computeBytecodeBasicBlocks): * bytecode/CodeBlock.cpp: (JSC::CodeBlock::finishCreation): (JSC::CodeBlock::setCalleeSaveRegisters): * bytecode/CodeBlock.h: (JSC::CodeBlock::setJITCodeMap): (JSC::CodeBlock::livenessAnalysis): * bytecode/GetByIdStatus.cpp: (JSC::GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback): * bytecode/GetByIdVariant.cpp: (JSC::GetByIdVariant::GetByIdVariant): * bytecode/PolymorphicAccess.cpp: (JSC::PolymorphicAccess::regenerateWithCases): (JSC::PolymorphicAccess::regenerateWithCase): (JSC::PolymorphicAccess::regenerate): * bytecode/PutByIdStatus.cpp: (JSC::PutByIdStatus::computeForStubInfo): * bytecode/PutByIdVariant.cpp: (JSC::PutByIdVariant::setter): * bytecode/StructureStubClearingWatchpoint.cpp: (JSC::StructureStubClearingWatchpoint::push): * bytecode/StructureStubClearingWatchpoint.h: (JSC::StructureStubClearingWatchpoint::StructureStubClearingWatchpoint): * bytecode/StructureStubInfo.cpp: (JSC::StructureStubInfo::addAccessCase): * bytecode/UnlinkedCodeBlock.cpp: (JSC::UnlinkedCodeBlock::setInstructions): * bytecode/UnlinkedFunctionExecutable.cpp: (JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable): * bytecode/UnlinkedFunctionExecutable.h: * bytecompiler/SetForScope.h: (JSC::SetForScope::SetForScope): * dfg/DFGGraph.cpp: (JSC::DFG::Graph::livenessFor): (JSC::DFG::Graph::killsFor): * dfg/DFGJITCompiler.cpp: (JSC::DFG::JITCompiler::link): (JSC::DFG::JITCompiler::compile): (JSC::DFG::JITCompiler::compileFunction): * dfg/DFGJITFinalizer.cpp: (JSC::DFG::JITFinalizer::JITFinalizer): * dfg/DFGLivenessAnalysisPhase.cpp: (JSC::DFG::LivenessAnalysisPhase::process): * dfg/DFGObjectAllocationSinkingPhase.cpp: * dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::addSlowPathGenerator): (JSC::DFG::SpeculativeJIT::compileIn): (JSC::DFG::SpeculativeJIT::compileCreateDirectArguments): * dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::cachedGetById): (JSC::DFG::SpeculativeJIT::cachedPutById): * dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::cachedGetById): (JSC::DFG::SpeculativeJIT::cachedPutById): * dfg/DFGWorklist.cpp: (JSC::DFG::Worklist::finishCreation): * disassembler/Disassembler.cpp: (JSC::disassembleAsynchronously): * ftl/FTLB3Compile.cpp: (JSC::FTL::compile): * ftl/FTLCompile.cpp: (JSC::FTL::mmAllocateDataSection): * ftl/FTLJITCode.cpp: (JSC::FTL::JITCode::initializeB3Byproducts): * ftl/FTLJITFinalizer.h: (JSC::FTL::OutOfLineCodeInfo::OutOfLineCodeInfo): * ftl/FTLLink.cpp: (JSC::FTL::link): * ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::DFG::LowerDFGToLLVM::compileTailCall): (JSC::FTL::DFG::LowerDFGToLLVM::lazySlowPath): * heap/Heap.cpp: (JSC::Heap::releaseDelayedReleasedObjects): (JSC::Heap::markRoots): (JSC::Heap::setIncrementalSweeper): * heap/HeapInlines.h: (JSC::Heap::releaseSoon): (JSC::Heap::registerWeakGCMap): * heap/WeakInlines.h: * inspector/ConsoleMessage.cpp: (Inspector::ConsoleMessage::addToFrontend): * inspector/ContentSearchUtilities.cpp: (Inspector::ContentSearchUtilities::searchInTextByLines): * inspector/InjectedScript.cpp: (Inspector::InjectedScript::getFunctionDetails): (Inspector::InjectedScript::getProperties): (Inspector::InjectedScript::getDisplayableProperties): (Inspector::InjectedScript::getInternalProperties): (Inspector::InjectedScript::getCollectionEntries): (Inspector::InjectedScript::wrapCallFrames): * inspector/InspectorAgentRegistry.cpp: (Inspector::AgentRegistry::append): (Inspector::AgentRegistry::appendExtraAgent): * inspector/InspectorBackendDispatcher.cpp: (Inspector::BackendDispatcher::CallbackBase::CallbackBase): (Inspector::BackendDispatcher::CallbackBase::sendSuccess): (Inspector::BackendDispatcher::BackendDispatcher): (Inspector::BackendDispatcher::create): (Inspector::BackendDispatcher::sendPendingErrors): * inspector/InspectorProtocolTypes.h: (Inspector::Protocol::Array::addItem): * inspector/InspectorValues.cpp: * inspector/InspectorValues.h: (Inspector::InspectorObjectBase::setValue): (Inspector::InspectorObjectBase::setObject): (Inspector::InspectorObjectBase::setArray): (Inspector::InspectorArrayBase::pushValue): (Inspector::InspectorArrayBase::pushObject): (Inspector::InspectorArrayBase::pushArray): * inspector/JSGlobalObjectConsoleClient.cpp: (Inspector::JSGlobalObjectConsoleClient::messageWithTypeAndLevel): (Inspector::JSGlobalObjectConsoleClient::timeEnd): * inspector/JSGlobalObjectInspectorController.cpp: (Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController): (Inspector::JSGlobalObjectInspectorController::appendExtraAgent): * inspector/JSInjectedScriptHost.cpp: (Inspector::JSInjectedScriptHost::JSInjectedScriptHost): * inspector/JSInjectedScriptHost.h: (Inspector::JSInjectedScriptHost::create): * inspector/agents/InspectorAgent.cpp: (Inspector::InspectorAgent::activateExtraDomain): * inspector/agents/InspectorConsoleAgent.cpp: (Inspector::InspectorConsoleAgent::addMessageToConsole): (Inspector::InspectorConsoleAgent::addConsoleMessage): * inspector/agents/InspectorDebuggerAgent.cpp: (Inspector::InspectorDebuggerAgent::setBreakpointByUrl): (Inspector::InspectorDebuggerAgent::resolveBreakpoint): (Inspector::InspectorDebuggerAgent::schedulePauseOnNextStatement): (Inspector::InspectorDebuggerAgent::breakpointActionProbe): (Inspector::InspectorDebuggerAgent::breakProgram): * inspector/agents/InspectorHeapAgent.cpp: (Inspector::InspectorHeapAgent::didGarbageCollect): * inspector/agents/InspectorRuntimeAgent.cpp: (Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets): (Inspector::InspectorRuntimeAgent::getBasicBlocks): * inspector/agents/InspectorScriptProfilerAgent.cpp: (Inspector::InspectorScriptProfilerAgent::addEvent): (Inspector::buildInspectorObject): (Inspector::buildProfileInspectorObject): (Inspector::InspectorScriptProfilerAgent::trackingComplete): * inspector/augmentable/AlternateDispatchableAgent.h: * inspector/scripts/codegen/cpp_generator_templates.py: * inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py: (CppBackendDispatcherImplementationGenerator._generate_small_dispatcher_switch_implementation_for_domain): (CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command): * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py: (CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_event): * inspector/scripts/codegen/generate_cpp_protocol_types_header.py: (_generate_unchecked_setter_for_member): * inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py: (ObjCConfigurationImplementationGenerator._generate_success_block_for_command): * inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py: (ObjCFrontendDispatcherImplementationGenerator._generate_event_out_parameters): * inspector/scripts/codegen/objc_generator_templates.py: * inspector/scripts/tests/expected/commands-with-async-attribute.json-result: * inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result: * inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result: * inspector/scripts/tests/expected/enum-values.json-result: * inspector/scripts/tests/expected/events-with-optional-parameters.json-result: * inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result: * inspector/scripts/tests/expected/same-type-id-different-domain.json-result: * inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result: * inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result: * inspector/scripts/tests/expected/type-declaration-array-type.json-result: * inspector/scripts/tests/expected/type-declaration-enum-type.json-result: * inspector/scripts/tests/expected/type-declaration-object-type.json-result: * inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result: * jit/CallFrameShuffler.cpp: (JSC::CallFrameShuffler::performSafeWrites): * jit/PolymorphicCallStubRoutine.cpp: (JSC::PolymorphicCallStubRoutine::PolymorphicCallStubRoutine): * jit/Repatch.cpp: (JSC::tryCacheGetByID): (JSC::tryCachePutByID): (JSC::tryRepatchIn): (JSC::linkPolymorphicCall): * parser/Nodes.cpp: (JSC::ProgramNode::setClosedVariables): * parser/Parser.cpp: (JSC::Parser<LexerType>::parseInner): (JSC::Parser<LexerType>::parseFunctionInfo): * parser/Parser.h: (JSC::Parser::closedVariables): * parser/SourceProviderCache.cpp: (JSC::SourceProviderCache::add): * profiler/ProfileNode.h: (JSC::CalculateProfileSubtreeDataFunctor::returnValue): * replay/EncodedValue.cpp: (JSC::EncodedValue::get<EncodedValue>): * replay/scripts/CodeGeneratorReplayInputs.py: (Generator.generate_member_move_expression): * replay/scripts/tests/expected/generate-enum-with-guard.json-TestReplayInputs.cpp: (Test::HandleWheelEvent::HandleWheelEvent): (JSC::InputTraits<Test::HandleWheelEvent>::decode): * replay/scripts/tests/expected/generate-memoized-type-modes.json-TestReplayInputs.cpp: (Test::MapInput::MapInput): (JSC::InputTraits<Test::MapInput>::decode): * runtime/ConsoleClient.cpp: (JSC::ConsoleClient::internalMessageWithTypeAndLevel): (JSC::ConsoleClient::logWithLevel): (JSC::ConsoleClient::clear): (JSC::ConsoleClient::dir): (JSC::ConsoleClient::dirXML): (JSC::ConsoleClient::table): (JSC::ConsoleClient::trace): (JSC::ConsoleClient::assertCondition): (JSC::ConsoleClient::group): (JSC::ConsoleClient::groupCollapsed): (JSC::ConsoleClient::groupEnd): * runtime/JSNativeStdFunction.cpp: (JSC::JSNativeStdFunction::create): * runtime/JSString.h: (JSC::jsNontrivialString): * runtime/JSStringJoiner.cpp: (JSC::JSStringJoiner::join): * runtime/JSStringJoiner.h: (JSC::JSStringJoiner::append): * runtime/NativeStdFunctionCell.cpp: (JSC::NativeStdFunctionCell::create): (JSC::NativeStdFunctionCell::NativeStdFunctionCell): * runtime/ScopedArgumentsTable.cpp: (JSC::ScopedArgumentsTable::setLength): * runtime/StructureIDTable.cpp: (JSC::StructureIDTable::resize): * runtime/TypeSet.cpp: (JSC::StructureShape::inspectorRepresentation): * runtime/WeakGCMap.h: (JSC::WeakGCMap::set): * tools/CodeProfile.h: (JSC::CodeProfile::addChild): * yarr/YarrInterpreter.cpp: (JSC::Yarr::ByteCompiler::compile): (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd): * yarr/YarrInterpreter.h: (JSC::Yarr::BytecodePattern::BytecodePattern): * yarr/YarrPattern.cpp: (JSC::Yarr::YarrPatternConstructor::YarrPatternConstructor): (JSC::Yarr::YarrPatternConstructor::reset): (JSC::Yarr::YarrPatternConstructor::atomPatternCharacter): (JSC::Yarr::YarrPatternConstructor::atomCharacterClassEnd): (JSC::Yarr::YarrPatternConstructor::atomParenthesesSubpatternBegin): (JSC::Yarr::YarrPatternConstructor::atomParentheticalAssertionBegin): (JSC::Yarr::YarrPatternConstructor::copyDisjunction): Source/WebCore: * Modules/battery/NavigatorBattery.cpp: (WebCore::NavigatorBattery::from): * Modules/encryptedmedia/CDMSessionClearKey.cpp: (WebCore::CDMSessionClearKey::update): * Modules/encryptedmedia/MediaKeys.cpp: (WebCore::MediaKeys::create): (WebCore::MediaKeys::MediaKeys): * Modules/gamepad/NavigatorGamepad.cpp: (WebCore::NavigatorGamepad::from): * Modules/gamepad/deprecated/NavigatorGamepad.cpp: (WebCore::NavigatorGamepad::from): * Modules/geolocation/GeoNotifier.cpp: (WebCore::GeoNotifier::GeoNotifier): (WebCore::GeoNotifier::setFatalError): * Modules/geolocation/GeoNotifier.h: (WebCore::GeoNotifier::create): * Modules/geolocation/Geolocation.cpp: (WebCore::Geolocation::Watchers::add): (WebCore::Geolocation::getCurrentPosition): (WebCore::Geolocation::watchPosition): * Modules/geolocation/GeolocationController.cpp: (WebCore::GeolocationController::viewStateDidChange): * Modules/geolocation/Geoposition.h: (WebCore::Geoposition::create): (WebCore::Geoposition::Geoposition): * Modules/geolocation/NavigatorGeolocation.cpp: (WebCore::NavigatorGeolocation::from): * Modules/indexeddb/DOMWindowIndexedDatabase.cpp: (WebCore::DOMWindowIndexedDatabase::from): * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp: (WebCore::WorkerGlobalScopeIndexedDatabase::from): * Modules/indexeddb/client/IDBAnyImpl.cpp: (WebCore::IDBClient::IDBAny::IDBAny): * Modules/indexeddb/client/IDBAnyImpl.h: (WebCore::IDBClient::IDBAny::create): * Modules/indexeddb/client/IDBDatabaseImpl.cpp: (WebCore::IDBClient::IDBDatabase::willCommitTransaction): (WebCore::IDBClient::IDBDatabase::willAbortTransaction): (WebCore::IDBClient::IDBDatabase::fireVersionChangeEvent): * Modules/indexeddb/client/IDBIndexImpl.cpp: (WebCore::IDBClient::IDBIndex::openCursor): (WebCore::IDBClient::IDBIndex::openKeyCursor): * Modules/indexeddb/client/IDBObjectStoreImpl.cpp: (WebCore::IDBClient::IDBObjectStore::openCursor): (WebCore::IDBClient::IDBObjectStore::get): (WebCore::IDBClient::IDBObjectStore::deleteFunction): (WebCore::IDBClient::IDBObjectStore::createIndex): (WebCore::IDBClient::IDBObjectStore::index): * Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp: (WebCore::IDBClient::IDBOpenDBRequest::onSuccess): (WebCore::IDBClient::IDBOpenDBRequest::onUpgradeNeeded): * Modules/indexeddb/client/IDBRequestImpl.cpp: (WebCore::IDBClient::IDBRequest::enqueueEvent): (WebCore::IDBClient::IDBRequest::setResult): (WebCore::IDBClient::IDBRequest::setResultToStructuredClone): * Modules/indexeddb/client/IDBTransactionImpl.cpp: (WebCore::IDBClient::IDBTransaction::abort): (WebCore::IDBClient::IDBTransaction::scheduleOperation): (WebCore::IDBClient::IDBTransaction::commit): (WebCore::IDBClient::IDBTransaction::enqueueEvent): (WebCore::IDBClient::IDBTransaction::createObjectStore): (WebCore::IDBClient::IDBTransaction::createIndex): (WebCore::IDBClient::IDBTransaction::doRequestOpenCursor): (WebCore::IDBClient::IDBTransaction::iterateCursor): (WebCore::IDBClient::IDBTransaction::requestGetRecord): (WebCore::IDBClient::IDBTransaction::requestIndexRecord): (WebCore::IDBClient::IDBTransaction::requestClearObjectStore): (WebCore::IDBClient::IDBTransaction::requestPutOrAdd): (WebCore::IDBClient::IDBTransaction::deleteObjectStore): (WebCore::IDBClient::IDBTransaction::deleteIndex): * Modules/indexeddb/legacy/IDBDatabaseBackend.cpp: (WebCore::IDBDatabaseBackend::processPendingOpenCalls): * Modules/indexeddb/legacy/IDBDatabaseBackend.h: (WebCore::IDBDatabaseBackend::setPendingSecondHalfOpen): * Modules/indexeddb/legacy/LegacyAny.h: (WebCore::LegacyAny::create): * Modules/indexeddb/legacy/LegacyDatabase.cpp: (WebCore::LegacyDatabase::enqueueEvent): * Modules/indexeddb/legacy/LegacyRequest.cpp: (WebCore::LegacyRequest::enqueueEvent): * Modules/indexeddb/legacy/LegacyTransaction.cpp: (WebCore::LegacyTransaction::enqueueEvent): * Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::postDatabaseTask): (WebCore::IDBServer::IDBServer::postDatabaseTaskReply): * Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp: (WebCore::IDBServer::MemoryBackingStoreTransaction::indexDeleted): (WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreDeleted): (WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreCleared): (WebCore::IDBServer::MemoryBackingStoreTransaction::indexCleared): (WebCore::IDBServer::MemoryBackingStoreTransaction::abort): * Modules/indexeddb/server/MemoryIDBBackingStore.cpp: (WebCore::IDBServer::MemoryIDBBackingStore::beginTransaction): (WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore): (WebCore::IDBServer::MemoryIDBBackingStore::deleteObjectStore): (WebCore::IDBServer::MemoryIDBBackingStore::restoreObjectStoreForVersionChangeAbort): (WebCore::IDBServer::MemoryIDBBackingStore::registerObjectStore): * Modules/indexeddb/server/MemoryIndex.cpp: (WebCore::IDBServer::MemoryIndex::objectStoreCleared): (WebCore::IDBServer::MemoryIndex::replaceIndexValueStore): * Modules/indexeddb/server/MemoryObjectStore.cpp: (WebCore::IDBServer::MemoryObjectStore::createIndex): (WebCore::IDBServer::MemoryObjectStore::maybeRestoreDeletedIndex): (WebCore::IDBServer::MemoryObjectStore::deleteIndex): (WebCore::IDBServer::MemoryObjectStore::clear): (WebCore::IDBServer::MemoryObjectStore::replaceKeyValueStore): (WebCore::IDBServer::MemoryObjectStore::registerIndex): * Modules/indexeddb/server/ServerOpenDBRequest.cpp: (WebCore::IDBServer::ServerOpenDBRequest::notifiedConnectionsOfVersionChange): * Modules/indexeddb/server/UniqueIDBDatabase.cpp: (WebCore::IDBServer::UniqueIDBDatabase::openDatabaseConnection): (WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation): (WebCore::IDBServer::UniqueIDBDatabase::startVersionChangeTransaction): (WebCore::IDBServer::UniqueIDBDatabase::maybeNotifyConnectionsOfVersionChange): (WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient): (WebCore::IDBServer::UniqueIDBDatabase::enqueueTransaction): (WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction): * Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp: (WebCore::IDBServer::UniqueIDBDatabaseConnection::establishTransaction): * Modules/indexeddb/shared/IndexKey.cpp: (WebCore::IndexKey::isolatedCopy): * Modules/mediasession/WebMediaSessionManager.cpp: (WebCore::WebMediaSessionManager::setPlaybackTarget): * Modules/mediasource/MediaSource.cpp: (WebCore::MediaSource::setPrivateAndOpen): * Modules/mediasource/SourceBuffer.cpp: (WebCore::SourceBuffer::create): (WebCore::SourceBuffer::SourceBuffer): * Modules/mediastream/MediaDevices.cpp: (WebCore::MediaDevices::getUserMedia): (WebCore::MediaDevices::enumerateDevices): * Modules/mediastream/MediaDevicesRequest.cpp: (WebCore::MediaDevicesRequest::create): (WebCore::MediaDevicesRequest::MediaDevicesRequest): * Modules/mediastream/MediaStream.cpp: (WebCore::MediaStream::create): (WebCore::MediaStream::MediaStream): (WebCore::MediaStream::addTrack): (WebCore::MediaStream::didRemoveTrack): (WebCore::MediaStream::internalAddTrack): (WebCore::MediaStream::internalRemoveTrack): * Modules/mediastream/NavigatorMediaDevices.cpp: (WebCore::NavigatorMediaDevices::from): * Modules/mediastream/RTCConfiguration.cpp: (WebCore::RTCConfiguration::initialize): * Modules/mediastream/RTCDTMFSender.cpp: (WebCore::RTCDTMFSender::create): (WebCore::RTCDTMFSender::RTCDTMFSender): (WebCore::RTCDTMFSender::scheduleDispatchEvent): * Modules/mediastream/RTCDataChannel.cpp: (WebCore::RTCDataChannel::create): (WebCore::RTCDataChannel::RTCDataChannel): (WebCore::RTCDataChannel::scheduleDispatchEvent): * Modules/mediastream/RTCIceCandidateEvent.cpp: (WebCore::RTCIceCandidateEvent::create): (WebCore::RTCIceCandidateEvent::RTCIceCandidateEvent): * Modules/mediastream/RTCPeerConnection.cpp: (WebCore::RTCPeerConnection::create): (WebCore::RTCPeerConnection::RTCPeerConnection): (WebCore::RTCPeerConnection::addTrack): (WebCore::RTCPeerConnection::queuedCreateOffer): (WebCore::RTCPeerConnection::queuedCreateAnswer): (WebCore::RTCPeerConnection::queuedSetLocalDescription): (WebCore::RTCPeerConnection::queuedSetRemoteDescription): (WebCore::RTCPeerConnection::queuedAddIceCandidate): (WebCore::RTCPeerConnection::setConfiguration): (WebCore::RTCPeerConnection::privateGetStats): * Modules/mediastream/RTCRtpReceiver.cpp: (WebCore::RTCRtpReceiver::RTCRtpReceiver): * Modules/mediastream/RTCRtpReceiver.h: (WebCore::RTCRtpReceiver::create): * Modules/mediastream/RTCRtpSender.cpp: (WebCore::RTCRtpSender::RTCRtpSender): * Modules/mediastream/RTCRtpSender.h: (WebCore::RTCRtpSender::create): * Modules/mediastream/RTCTrackEvent.cpp: (WebCore::RTCTrackEvent::create): * Modules/mediastream/UserMediaRequest.cpp: (WebCore::UserMediaRequest::start): (WebCore::UserMediaRequest::UserMediaRequest): * Modules/navigatorcontentutils/NavigatorContentUtils.cpp: (WebCore::provideNavigatorContentUtilsTo): * Modules/navigatorcontentutils/NavigatorContentUtils.h: * Modules/notifications/DOMWindowNotifications.cpp: (WebCore::DOMWindowNotifications::from): * Modules/notifications/NotificationCenter.cpp: (WebCore::NotificationCenter::timerFired): * Modules/notifications/WorkerGlobalScopeNotifications.cpp: (WebCore::WorkerGlobalScopeNotifications::from): * Modules/plugins/QuickTimePluginReplacement.mm: (WebCore::QuickTimePluginReplacement::createElementRenderer): * Modules/plugins/YouTubePluginReplacement.cpp: (WebCore::YouTubePluginReplacement::createElementRenderer): (WebCore::YouTubePluginReplacement::installReplacement): * Modules/quota/DOMWindowQuota.cpp: (WebCore::DOMWindowQuota::from): * Modules/quota/NavigatorStorageQuota.cpp: (WebCore::NavigatorStorageQuota::from): * Modules/quota/WorkerNavigatorStorageQuota.cpp: (WebCore::WorkerNavigatorStorageQuota::from): * Modules/speech/DOMWindowSpeechSynthesis.cpp: (WebCore::DOMWindowSpeechSynthesis::from): * Modules/speech/SpeechSynthesis.cpp: (WebCore::SpeechSynthesis::setPlatformSynthesizer): * Modules/webaudio/AsyncAudioDecoder.cpp: (WebCore::AsyncAudioDecoder::decodeAsync): * Modules/webaudio/AudioContext.cpp: (WebCore::AudioContext::addReaction): (WebCore::AudioContext::suspend): (WebCore::AudioContext::resume): (WebCore::AudioContext::close): * Modules/webaudio/AudioNode.cpp: (WebCore::AudioNode::addInput): (WebCore::AudioNode::addOutput): * Modules/webaudio/AudioScheduledSourceNode.cpp: (WebCore::AudioScheduledSourceNode::addEventListener): * Modules/webaudio/ConvolverNode.cpp: (WebCore::ConvolverNode::setBuffer): * Modules/webaudio/MediaStreamAudioDestinationNode.cpp: (WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode): * Modules/webaudio/ScriptProcessorNode.cpp: (WebCore::ScriptProcessorNode::addEventListener): * Modules/webdatabase/Database.cpp: (WebCore::Database::openAndVerifyVersion): (WebCore::Database::scheduleTransaction): (WebCore::Database::scheduleTransactionStep): (WebCore::Database::markAsDeletedAndClose): (WebCore::Database::runTransaction): (WebCore::Database::tableNames): * Modules/webdatabase/DatabaseThread.cpp: (WebCore::DatabaseThread::scheduleTask): (WebCore::DatabaseThread::scheduleImmediateTask): * Modules/webdatabase/SQLTransaction.cpp: (WebCore::SQLTransaction::create): (WebCore::SQLTransaction::SQLTransaction): (WebCore::SQLTransaction::executeSQL): * Modules/webdatabase/SQLTransactionBackend.cpp: (WebCore::SQLTransactionBackend::enqueueStatementBackend): (WebCore::SQLTransactionBackend::executeSQL): * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp: (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData): (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks): * Modules/websockets/WebSocket.cpp: (WebCore::WebSocket::didReceiveBinaryData): (WebCore::WebSocket::dispatchOrQueueEvent): * Modules/websockets/WebSocketChannel.cpp: (WebCore::WebSocketChannel::processFrame): * Modules/websockets/WebSocketExtensionDispatcher.cpp: (WebCore::WebSocketExtensionDispatcher::addProcessor): * Modules/websockets/WebSocketHandshake.cpp: (WebCore::WebSocketHandshake::addExtensionProcessor): * Modules/websockets/WorkerThreadableWebSocketChannel.cpp: (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData): * accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::notificationPostTimerFired): (WebCore::AXObjectCache::passwordNotificationPostTimerFired): * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::ariaLabeledByText): * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::selectText): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityText::AccessibilityText): * bindings/gobject/DOMObjectCache.cpp: * bindings/js/IDBBindingUtilities.cpp: (WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath): (WebCore::generateIndexKeyForValue): * bindings/js/JSCryptoAlgorithmDictionary.cpp: (WebCore::createAesCbcParams): (WebCore::createAesKeyGenParams): (WebCore::createHmacParams): (WebCore::createHmacKeyParams): (WebCore::createRsaKeyGenParams): (WebCore::createRsaOaepParams): (WebCore::createRsaSsaParams): * bindings/js/JSCryptoKeySerializationJWK.cpp: (WebCore::createHMACParameters): (WebCore::createRSAKeyParametersWithHash): (WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm): * bindings/js/JSDOMPromise.h: (WebCore::DOMPromise::DOMPromise): * bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::queueTaskToEventLoop): * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::setTimeout): (WebCore::JSDOMWindow::setInterval): * bindings/js/JSDOMWrapper.h: (WebCore::JSDOMWrapper::JSDOMWrapper): * bindings/js/JSMessageEventCustom.cpp: (WebCore::handleInitMessageEvent): * bindings/js/JSSubtleCryptoCustom.cpp: (WebCore::JSSubtleCrypto::encrypt): (WebCore::JSSubtleCrypto::decrypt): (WebCore::JSSubtleCrypto::sign): (WebCore::JSSubtleCrypto::verify): (WebCore::JSSubtleCrypto::digest): (WebCore::JSSubtleCrypto::generateKey): (WebCore::importKey): (WebCore::JSSubtleCrypto::importKey): (WebCore::JSSubtleCrypto::exportKey): (WebCore::JSSubtleCrypto::wrapKey): (WebCore::JSSubtleCrypto::unwrapKey): * bindings/js/JSWorkerGlobalScopeCustom.cpp: (WebCore::JSWorkerGlobalScope::setTimeout): (WebCore::JSWorkerGlobalScope::setInterval): * bindings/js/SerializedScriptValue.cpp: (WebCore::CloneDeserializer::readRSAKey): (WebCore::CloneDeserializer::readTerminal): (WebCore::SerializedScriptValue::SerializedScriptValue): (WebCore::SerializedScriptValue::create): * bindings/scripts/CodeGeneratorJS.pm: (GenerateHeader): (GenerateImplementation): * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: (WebCore::JSTestActiveDOMObject::JSTestActiveDOMObject): * bindings/scripts/test/JS/JSTestActiveDOMObject.h: (WebCore::JSTestActiveDOMObject::create): * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp: (WebCore::JSTestClassWithJSBuiltinConstructor::JSTestClassWithJSBuiltinConstructor): * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h: (WebCore::JSTestClassWithJSBuiltinConstructor::create): * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp: (WebCore::JSTestCustomConstructorWithNoInterfaceObject::JSTestCustomConstructorWithNoInterfaceObject): * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h: (WebCore::JSTestCustomConstructorWithNoInterfaceObject::create): * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: (WebCore::JSTestCustomNamedGetter::JSTestCustomNamedGetter): * bindings/scripts/test/JS/JSTestCustomNamedGetter.h: (WebCore::JSTestCustomNamedGetter::create): * bindings/scripts/test/JS/JSTestEventConstructor.cpp: (WebCore::JSTestEventConstructor::JSTestEventConstructor): * bindings/scripts/test/JS/JSTestEventConstructor.h: (WebCore::JSTestEventConstructor::create): * bindings/scripts/test/JS/JSTestEventTarget.cpp: (WebCore::JSTestEventTarget::JSTestEventTarget): * bindings/scripts/test/JS/JSTestEventTarget.h: (WebCore::JSTestEventTarget::create): * bindings/scripts/test/JS/JSTestException.cpp: (WebCore::JSTestException::JSTestException): * bindings/scripts/test/JS/JSTestException.h: (WebCore::JSTestException::create): * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: (WebCore::JSTestGenerateIsReachable::JSTestGenerateIsReachable): * bindings/scripts/test/JS/JSTestGenerateIsReachable.h: (WebCore::JSTestGenerateIsReachable::create): * bindings/scripts/test/JS/JSTestInterface.cpp: (WebCore::JSTestInterface::JSTestInterface): * bindings/scripts/test/JS/JSTestInterface.h: * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: (WebCore::JSTestMediaQueryListListener::JSTestMediaQueryListListener): * bindings/scripts/test/JS/JSTestMediaQueryListListener.h: (WebCore::JSTestMediaQueryListListener::create): * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: (WebCore::JSTestNamedConstructor::JSTestNamedConstructor): * bindings/scripts/test/JS/JSTestNamedConstructor.h: (WebCore::JSTestNamedConstructor::create): * bindings/scripts/test/JS/JSTestNode.cpp: (WebCore::JSTestNode::JSTestNode): * bindings/scripts/test/JS/JSTestNode.h: * bindings/scripts/test/JS/JSTestNondeterministic.cpp: (WebCore::JSTestNondeterministic::JSTestNondeterministic): * bindings/scripts/test/JS/JSTestNondeterministic.h: (WebCore::JSTestNondeterministic::create): * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::JSTestObj::JSTestObj): * bindings/scripts/test/JS/JSTestObj.h: (WebCore::JSTestObj::create): * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: (WebCore::JSTestOverloadedConstructors::JSTestOverloadedConstructors): * bindings/scripts/test/JS/JSTestOverloadedConstructors.h: (WebCore::JSTestOverloadedConstructors::create): * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp: (WebCore::JSTestOverrideBuiltins::JSTestOverrideBuiltins): * bindings/scripts/test/JS/JSTestOverrideBuiltins.h: (WebCore::JSTestOverrideBuiltins::create): * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: (WebCore::JSTestSerializedScriptValueInterface::JSTestSerializedScriptValueInterface): * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h: (WebCore::JSTestSerializedScriptValueInterface::create): * bindings/scripts/test/JS/JSTestTypedefs.cpp: (WebCore::JSTestTypedefs::JSTestTypedefs): * bindings/scripts/test/JS/JSTestTypedefs.h: (WebCore::JSTestTypedefs::create): * bindings/scripts/test/JS/JSattribute.cpp: (WebCore::JSattribute::JSattribute): * bindings/scripts/test/JS/JSattribute.h: (WebCore::JSattribute::create): * bindings/scripts/test/JS/JSreadonly.cpp: (WebCore::JSreadonly::JSreadonly): * bindings/scripts/test/JS/JSreadonly.h: (WebCore::JSreadonly::create): * bridge/c/CRuntimeObject.cpp: (JSC::Bindings::CRuntimeObject::CRuntimeObject): * bridge/c/CRuntimeObject.h: (JSC::Bindings::CRuntimeObject::create): * bridge/c/c_class.cpp: (JSC::Bindings::CClass::methodNamed): (JSC::Bindings::CClass::fieldNamed): * bridge/c/c_instance.cpp: (JSC::Bindings::CInstance::CInstance): * bridge/c/c_instance.h: (JSC::Bindings::CInstance::create): * bridge/jsc/BridgeJSC.cpp: (JSC::Bindings::Array::Array): (JSC::Bindings::Instance::Instance): * bridge/objc/ObjCRuntimeObject.h: (JSC::Bindings::ObjCRuntimeObject::create): * bridge/objc/objc_class.mm: (JSC::Bindings::ObjcClass::methodNamed): (JSC::Bindings::ObjcClass::fieldNamed): * bridge/objc/objc_instance.mm: (ObjcInstance::ObjcInstance): (ObjcInstance::create): * bridge/objc/objc_runtime.mm: (JSC::Bindings::ObjcArray::ObjcArray): * bridge/runtime_object.cpp: (JSC::Bindings::RuntimeObject::RuntimeObject): * bridge/runtime_object.h: * contentextensions/CombinedFiltersAlphabet.cpp: (WebCore::ContentExtensions::TermCreatorTranslator::translate): * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::ActiveSubtree::ActiveSubtree): (WebCore::ContentExtensions::generateSuffixWithReverseSuffixTree): (WebCore::ContentExtensions::generateNFAForSubtree): (WebCore::ContentExtensions::CombinedURLFilters::processNFAs): * contentextensions/ContentExtension.cpp: (WebCore::ContentExtensions::ContentExtension::create): (WebCore::ContentExtensions::ContentExtension::ContentExtension): * contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList): * contentextensions/ContentExtensionParser.cpp: (WebCore::ContentExtensions::loadEncodedRules): * contentextensions/ContentExtensionsBackend.cpp: (WebCore::ContentExtensions::ContentExtensionsBackend::addContentExtension): * contentextensions/DFACombiner.cpp: (WebCore::ContentExtensions::DFACombiner::combineDFAs): * contentextensions/DFACombiner.h: (WebCore::ContentExtensions::DFACombiner::addDFA): * contentextensions/ImmutableNFANodeBuilder.h: (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): * contentextensions/MutableRange.h: (WebCore::ContentExtensions::MutableRange::MutableRange): (WebCore::ContentExtensions::MutableRange::operator=): * contentextensions/MutableRangeList.h: (WebCore::ContentExtensions::MutableRangeList::extend): (WebCore::ContentExtensions::MutableRangeList::insertBetween): * contentextensions/Term.h: (WebCore::ContentExtensions::Term::Term): (WebCore::ContentExtensions::Term::operator=): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): * crypto/CryptoAlgorithm.cpp: (WebCore::CryptoAlgorithm::encryptForWrapKey): (WebCore::CryptoAlgorithm::decryptForUnwrapKey): * crypto/CryptoKeyPair.cpp: (WebCore::CryptoKeyPair::CryptoKeyPair): * crypto/CryptoKeyPair.h: (WebCore::CryptoKeyPair::create): * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp: (WebCore::CryptoAlgorithmAES_CBC::encrypt): (WebCore::CryptoAlgorithmAES_CBC::decrypt): * crypto/algorithms/CryptoAlgorithmAES_KW.cpp: (WebCore::CryptoAlgorithmAES_KW::encryptForWrapKey): (WebCore::CryptoAlgorithmAES_KW::decryptForUnwrapKey): * crypto/algorithms/CryptoAlgorithmHMAC.cpp: (WebCore::CryptoAlgorithmHMAC::sign): (WebCore::CryptoAlgorithmHMAC::verify): * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp: (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt): (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::decrypt): (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey): * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp: (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign): (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify): (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey): * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp: (WebCore::CryptoAlgorithmRSA_OAEP::encrypt): (WebCore::CryptoAlgorithmRSA_OAEP::decrypt): (WebCore::CryptoAlgorithmRSA_OAEP::generateKey): * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp: (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt): (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt): * crypto/mac/CryptoKeyRSAMac.cpp: (WebCore::CryptoKeyRSA::generatePair): * css/BasicShapeFunctions.cpp: (WebCore::valueForBasicShape): (WebCore::basicShapeForValue): * css/CSSBasicShapes.cpp: (WebCore::CSSBasicShapePath::CSSBasicShapePath): * css/CSSBasicShapes.h: * css/CSSBorderImage.cpp: (WebCore::createBorderImageValue): * css/CSSCalculationValue.cpp: * css/CSSCalculationValue.h: (WebCore::CSSCalcValue::CSSCalcValue): * css/CSSComputedStyleDeclaration.cpp: (WebCore::valueForNinePieceImageSlice): (WebCore::valueForNinePieceImageQuad): (WebCore::computedTransform): (WebCore::ComputedStyleExtractor::valueForShadow): (WebCore::ComputedStyleExtractor::valueForFilter): (WebCore::valueForGridTrackList): (WebCore::valueForGridPosition): (WebCore::scrollSnapPoints): (WebCore::scrollSnapCoordinates): (WebCore::getWillChangePropertyValue): (WebCore::fontVariantLigaturesPropertyValue): (WebCore::fontVariantNumericPropertyValue): (WebCore::fontVariantEastAsianPropertyValue): (WebCore::fillRepeatToCSSValue): (WebCore::fillSizeToCSSValue): (WebCore::fontVariantFromStyle): (WebCore::ComputedStyleExtractor::propertyValue): * css/CSSCrossfadeValue.cpp: (WebCore::CSSCrossfadeValue::blend): * css/CSSCursorImageValue.cpp: (WebCore::CSSCursorImageValue::CSSCursorImageValue): * css/CSSCursorImageValue.h: (WebCore::CSSCursorImageValue::create): * css/CSSFilterImageValue.cpp: (WebCore::CSSFilterImageValue::image): * css/CSSFilterImageValue.h: (WebCore::CSSFilterImageValue::create): * css/CSSFontFace.cpp: (WebCore::CSSFontFace::addSource): * css/CSSFontFace.h: (WebCore::CSSFontFace::create): (WebCore::CSSFontFace::insertFeature): * css/CSSFontFaceSource.cpp: (WebCore::CSSFontFaceSource::font): * css/CSSFontFeatureValue.cpp: (WebCore::CSSFontFeatureValue::CSSFontFeatureValue): * css/CSSFontFeatureValue.h: (WebCore::CSSFontFeatureValue::create): * css/CSSFontSelector.cpp: (WebCore::createFontFace): (WebCore::constructFamilyFontFaces): * css/CSSGrammar.y.in: * css/CSSImageValue.cpp: (WebCore::CSSImageValue::cloneForCSSOM): * css/CSSKeyframeRule.cpp: (WebCore::StyleKeyframe::StyleKeyframe): * css/CSSKeyframeRule.h: (WebCore::StyleKeyframe::create): * css/CSSParser.cpp: (WebCore::CSSParser::parseFontFaceValue): (WebCore::CSSParser::parseMediaQuery): (WebCore::CSSParser::parseSizesAttribute): (WebCore::CSSParser::SourceSize::SourceSize): (WebCore::CSSParser::sourceSize): (WebCore::CSSParser::addFillValue): (WebCore::CSSParser::addAnimationValue): (WebCore::CSSParser::parse4ValuesFillPosition): (WebCore::CSSParser::parse3ValuesFillPosition): (WebCore::CSSParser::parseFillPosition): (WebCore::CSSParser::parseFillSize): (WebCore::CSSParser::parseDashboardRegions): (WebCore::CSSParser::parseClipShape): (WebCore::CSSParser::parseBasicShapePath): (WebCore::CSSParser::parseSystemFont): (WebCore::CSSParser::parseBorderImageRepeat): (WebCore::BorderImageSliceParseContext::commitBorderImageSlice): (WebCore::BorderImageQuadParseContext::commitBorderImageQuad): (WebCore::CSSParser::parseBuiltinFilterArguments): (WebCore::CSSParser::parseFontFeatureTag): (WebCore::CSSParser::parseFontVariantLigatures): (WebCore::CSSParser::parseFontVariantNumeric): (WebCore::CSSParser::parseFontVariantEastAsian): (WebCore::CSSParser::createKeyframesRule): (WebCore::CSSParser::rewriteSpecifiers): (WebCore::CSSParser::createPageRule): (WebCore::CSSParser::createSelectorVector): (WebCore::CSSParser::recycleSelectorVector): * css/CSSParserValues.cpp: (WebCore::CSSParserSelector::~CSSParserSelector): (WebCore::CSSParserSelector::adoptSelectorVector): (WebCore::CSSParserSelector::setLangArgumentList): (WebCore::CSSParserSelector::insertTagHistory): (WebCore::CSSParserSelector::appendTagHistory): (WebCore::CSSParserSelector::prependTagSelector): * css/CSSParserValues.h: (WebCore::CSSParserSelector::releaseSelector): (WebCore::CSSParserSelector::setTagHistory): * css/CSSPrimitiveValue.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): * css/CSSProperty.cpp: (WebCore::CSSProperty::wrapValueInCommaSeparatedList): * css/CSSSegmentedFontFace.cpp: (WebCore::CSSSegmentedFontFace::appendFontFace): (WebCore::appendFontWithInvalidUnicodeRangeIfLoading): * css/CSSSelector.cpp: (WebCore::CSSSelector::setLangArgumentList): (WebCore::CSSSelector::setSelectorList): * css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::create): (WebCore::CSSStyleSheet::CSSStyleSheet): * css/CSSValueList.h: (WebCore::CSSValueList::append): (WebCore::CSSValueList::prepend): * css/DocumentRuleSets.cpp: (WebCore::DocumentRuleSets::initUserStyle): * css/FontLoader.cpp: (WebCore::FontLoader::scheduleEvent): * css/MediaList.cpp: (WebCore::MediaQuerySet::parse): (WebCore::MediaQuerySet::add): (WebCore::MediaQuerySet::addMediaQuery): * css/MediaQuery.cpp: (WebCore::MediaQuery::MediaQuery): * css/Pair.h: (WebCore::Pair::create): (WebCore::Pair::Pair): * css/RuleSet.cpp: (WebCore::RuleSet::addRegionRule): * css/RuleSet.h: (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair): * css/SVGCSSComputedStyleDeclaration.cpp: (WebCore::paintOrder): * css/SourceSizeList.cpp: (WebCore::match): (WebCore::parseSizesAttribute): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue): (WebCore::StyleBuilderCustom::applyValueContent): (WebCore::StyleBuilderCustom::applyValueWillChange): * css/StyleResolver.cpp: (WebCore::StyleResolver::State::setStyle): (WebCore::StyleResolver::addToMatchedPropertiesCache): * css/StyleResolver.h: (WebCore::StyleResolver::State::setParentStyle): (WebCore::StyleResolver::State::setAuthorRollback): (WebCore::StyleResolver::State::setUserRollback): * css/StyleRule.cpp: (WebCore::StyleRule::StyleRule): (WebCore::StyleRule::create): (WebCore::StyleRulePage::StyleRulePage): (WebCore::StyleRuleFontFace::StyleRuleFontFace): (WebCore::StyleRuleGroup::wrapperInsertRule): (WebCore::StyleRuleViewport::StyleRuleViewport): * css/StyleRule.h: (WebCore::StyleRule::create): (WebCore::StyleRule::wrapperAdoptSelectorList): (WebCore::StyleRuleFontFace::create): (WebCore::StyleRulePage::create): (WebCore::StyleRulePage::wrapperAdoptSelectorList): (WebCore::StyleRuleViewport::create): * cssjit/SelectorCompiler.cpp: (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker): (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatchesSelectorList): * dom/ActiveDOMCallbackMicrotask.cpp: (WebCore::ActiveDOMCallbackMicrotask::ActiveDOMCallbackMicrotask): * dom/Attr.cpp: (WebCore::Attr::cloneNodeInternal): * dom/ChildListMutationScope.cpp: (WebCore::ChildListMutationAccumulator::ChildListMutationAccumulator): * dom/ContainerNode.cpp: (WebCore::ContainerNode::insertBefore): (WebCore::ContainerNode::append): (WebCore::ContainerNode::prepend): * dom/DataTransfer.cpp: (WebCore::DataTransfer::DataTransfer): * dom/Document.cpp: (WebCore::Document::createNodeIterator): (WebCore::Document::createTreeWalker): (WebCore::Document::logExceptionToConsole): (WebCore::Document::cloneNodeInternal): (WebCore::Document::enqueueWindowEvent): (WebCore::Document::enqueueDocumentEvent): (WebCore::Document::enqueueOverflowEvent): (WebCore::Document::setTransformSource): (WebCore::Document::addMessage): (WebCore::Document::postTask): (WebCore::Document::pendingTasksTimerFired): (WebCore::Document::sendWillRevealEdgeEventsIfNeeded): * dom/DocumentEventQueue.cpp: (WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent): * dom/DocumentFragment.cpp: (WebCore::DocumentFragment::cloneNodeInternal): * dom/Element.cpp: (WebCore::Element::createElementRenderer): (WebCore::Element::addShadowRoot): (WebCore::Element::dispatchFocusInEvent): (WebCore::Element::dispatchFocusOutEvent): (WebCore::Element::dispatchFocusEvent): (WebCore::Element::dispatchBlurEvent): (WebCore::Element::resolveComputedStyle): (WebCore::Element::setBeforePseudoElement): (WebCore::Element::setAfterPseudoElement): * dom/ElementRareData.h: (WebCore::ElementRareData::setShadowRoot): (WebCore::ElementRareData::setAttributeMap): (WebCore::ElementRareData::setComputedStyle): (WebCore::ElementRareData::setClassList): (WebCore::ElementRareData::setDataset): (WebCore::ElementRareData::setBeforePseudoElement): (WebCore::ElementRareData::setAfterPseudoElement): * dom/Event.cpp: (WebCore::Event::setTarget): * dom/EventTarget.cpp: (WebCore::EventTarget::addEventListener): * dom/ExtensionStyleSheets.cpp: (WebCore::ExtensionStyleSheets::addUserStyleSheet): (WebCore::ExtensionStyleSheets::addAuthorStyleSheetForTesting): * dom/FocusEvent.cpp: (WebCore::FocusEvent::FocusEvent): * dom/FocusEvent.h: * dom/MessageEvent.cpp: (WebCore::MessageEvent::MessageEvent): (WebCore::MessageEvent::initMessageEvent): * dom/MessageEvent.h: * dom/MessagePort.cpp: (WebCore::MessagePort::postMessage): (WebCore::MessagePort::disentangle): (WebCore::MessagePort::entangle): (WebCore::MessagePort::dispatchMessages): (WebCore::MessagePort::disentanglePorts): (WebCore::MessagePort::entanglePorts): (WebCore::MessagePort::addEventListener): * dom/Microtasks.cpp: (WebCore::MicrotaskQueue::append): (WebCore::MicrotaskQueue::performMicrotaskCheckpoint): * dom/MutationObserver.cpp: (WebCore::queueMutationObserverCompoundMicrotask): * dom/NativeNodeFilter.h: * dom/Node.cpp: (WebCore::Node::before): (WebCore::Node::after): (WebCore::Node::replaceWith): (WebCore::Document::invalidateNodeListAndCollectionCaches): (WebCore::tryAddEventListener): (WebCore::Node::addEventListener): * dom/NodeIterator.cpp: (WebCore::NodeIterator::NodeIterator): * dom/NodeIterator.h: (WebCore::NodeIterator::create): * dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::setCSSStyleSheet): * dom/PseudoElement.cpp: (WebCore::PseudoElement::didRecalcStyle): * dom/ScopedEventQueue.cpp: (WebCore::ScopedEventQueue::enqueueEvent): (WebCore::ScopedEventQueue::dispatchAllEvents): * dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::reportException): * dom/ScriptExecutionContext.h: (WebCore::ScriptExecutionContext::Task::Task): * dom/SecurityContext.cpp: (WebCore::SecurityContext::setSecurityOriginPolicy): (WebCore::SecurityContext::setContentSecurityPolicy): * dom/SecurityOriginPolicy.cpp: (WebCore::SecurityOriginPolicy::create): (WebCore::SecurityOriginPolicy::SecurityOriginPolicy): * dom/SelectorQuery.cpp: (WebCore::SelectorQuery::SelectorQuery): (WebCore::SelectorQueryCache::add): * dom/ShadowRoot.cpp: (WebCore::ShadowRoot::ShadowRoot): * dom/ShadowRoot.h: * dom/SlotAssignment.cpp: (WebCore::SlotAssignment::SlotAssignment): * dom/StyledElement.cpp: (WebCore::StyledElement::rebuildPresentationAttributeStyle): * dom/Text.cpp: (WebCore::Text::splitText): (WebCore::Text::replaceWholeText): * dom/Traversal.cpp: (WebCore::NodeIteratorBase::NodeIteratorBase): * dom/TreeWalker.cpp: (WebCore::TreeWalker::TreeWalker): (WebCore::TreeWalker::traverseSiblings): * dom/TreeWalker.h: (WebCore::TreeWalker::create): * dom/TypedElementDescendantIterator.h: (WebCore::DoubleTypedElementDescendantIteratorAdapter<ElementType>::DoubleTypedElementDescendantIteratorAdapter): (WebCore::DoubleTypedElementDescendantIterator<ElementType>::DoubleTypedElementDescendantIterator): * dom/default/PlatformMessagePortChannel.cpp: (WebCore::PlatformMessagePortChannel::EventData::EventData): (WebCore::MessagePortChannel::createChannel): (WebCore::MessagePortChannel::postMessageToRemote): * dom/default/PlatformMessagePortChannel.h: (WebCore::PlatformMessagePortChannel::EventData::channels): (WebCore::PlatformMessagePortChannel::MessagePortQueue::appendAndCheckEmpty): * editing/AppendNodeCommand.cpp: (WebCore::AppendNodeCommand::AppendNodeCommand): * editing/AppendNodeCommand.h: (WebCore::AppendNodeCommand::create): * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::replaceTextInNode): (WebCore::CompositeEditCommand::moveParagraphs): * editing/DeleteFromTextNodeCommand.h: (WebCore::DeleteFromTextNodeCommand::create): * editing/EditingStyle.cpp: (WebCore::applyTextDecorationChangeToValueList): (WebCore::EditingStyle::overrideTypingStyleAt): (WebCore::EditingStyle::conflictsWithInlineStyleOfElement): (WebCore::mergeTextDecorationValues): (WebCore::StyleChange::StyleChange): * editing/Editor.cpp: (WebCore::Editor::insertDictationPhrases): (WebCore::Editor::setTextAsChildOfElement): (WebCore::Editor::applyStyleToSelection): * editing/EditorCommand.cpp: (WebCore::applyCommandToFrame): (WebCore::executeInsertNode): (WebCore::executeInsertHorizontalRule): (WebCore::executeInsertImage): (WebCore::executeStrikethrough): (WebCore::executeUnderline): * editing/InsertIntoTextNodeCommand.h: (WebCore::InsertIntoTextNodeCommand::create): * editing/InsertNodeBeforeCommand.h: (WebCore::InsertNodeBeforeCommand::create): * editing/MergeIdenticalElementsCommand.cpp: (WebCore::MergeIdenticalElementsCommand::doApply): (WebCore::MergeIdenticalElementsCommand::doUnapply): * editing/MoveSelectionCommand.cpp: (WebCore::MoveSelectionCommand::doApply): * editing/RemoveNodeCommand.cpp: (WebCore::RemoveNodeCommand::RemoveNodeCommand): * editing/RemoveNodeCommand.h: (WebCore::RemoveNodeCommand::create): * editing/ReplaceDeleteFromTextNodeCommand.cpp: (WebCore::ReplaceDeleteFromTextNodeCommand::ReplaceDeleteFromTextNodeCommand): * editing/ReplaceDeleteFromTextNodeCommand.h: * editing/ReplaceInsertIntoTextNodeCommand.cpp: (WebCore::ReplaceInsertIntoTextNodeCommand::ReplaceInsertIntoTextNodeCommand): * editing/ReplaceInsertIntoTextNodeCommand.h: * editing/ReplaceNodeWithSpanCommand.cpp: (WebCore::swapInNodePreservingAttributesAndChildren): * editing/ReplaceSelectionCommand.h: (WebCore::ReplaceSelectionCommand::create): * editing/SplitElementCommand.cpp: (WebCore::SplitElementCommand::executeApply): (WebCore::SplitElementCommand::doUnapply): * editing/TextCheckingHelper.cpp: (WebCore::findGrammaticalErrors): (WebCore::checkTextOfParagraph): * editing/TextIterator.cpp: (WebCore::TextIteratorCopyableText::set): (WebCore::TextIterator::handleReplacedElement): (WebCore::TextIterator::emitText): (WebCore::SimplifiedBackwardsTextIterator::handleTextNode): (WebCore::TextIterator::rangeFromLocationAndLength): * editing/WrapContentsInDummySpanCommand.cpp: (WebCore::WrapContentsInDummySpanCommand::executeApply): (WebCore::WrapContentsInDummySpanCommand::doUnapply): * editing/ios/DictationCommandIOS.cpp: (WebCore::DictationCommandIOS::DictationCommandIOS): * editing/ios/DictationCommandIOS.h: (WebCore::DictationCommandIOS::create): * editing/ios/EditorIOS.mm: (WebCore::Editor::WebContentReader::readURL): (WebCore::Editor::createFragmentForImageResourceAndAddResource): * editing/mac/EditorMac.mm: (WebCore::Editor::WebContentReader::readFilenames): (WebCore::Editor::WebContentReader::readURL): (WebCore::Editor::createFragmentForImageResourceAndAddResource): * editing/markup.cpp: (WebCore::fillContainerFromString): (WebCore::createFragmentFromText): (WebCore::replaceChildrenWithFragment): (WebCore::replaceChildrenWithText): * fileapi/AsyncFileStream.cpp: (WebCore::callOnFileThread): * fileapi/Blob.cpp: (WebCore::Blob::Blob): * fileapi/Blob.h: (WebCore::Blob::create): * fileapi/FileList.h: (WebCore::FileList::create): (WebCore::FileList::FileList): (WebCore::FileList::append): * fileapi/ThreadableBlobRegistry.cpp: (WebCore::BlobRegistryContext::BlobRegistryContext): (WebCore::ThreadableBlobRegistry::registerBlobURL): * fileapi/WebKitBlobBuilder.cpp: (WebCore::BlobBuilder::append): (WebCore::BlobBuilder::finalize): * history/BackForwardController.cpp: (WebCore::BackForwardController::BackForwardController): (WebCore::BackForwardController::addItem): * history/BackForwardList.cpp: (WebCore::BackForwardList::addItem): * history/CachedFrame.cpp: (WebCore::CachedFrame::setCachedFramePlatformData): * history/HistoryItem.cpp: (WebCore::HistoryItem::setStateObject): (WebCore::HistoryItem::addChildItem): (WebCore::HistoryItem::setChildItem): (WebCore::HistoryItem::setFormData): (WebCore::HistoryItem::setRedirectURLs): * history/PageCache.cpp: (WebCore::PageCache::take): * html/BaseButtonInputType.cpp: (WebCore::BaseButtonInputType::createInputRenderer): * html/BaseChooserOnlyDateAndTimeInputType.cpp: (WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree): * html/ColorInputType.cpp: (WebCore::ColorInputType::createShadowSubtree): * html/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryDocumentParser::appendEntry): (WebCore::FTPDirectoryDocumentParser::createTDForFilename): (WebCore::FTPDirectoryDocumentParser::createBasicDocument): (WebCore::FTPDirectoryDocumentParser::append): * html/FileInputType.cpp: (WebCore::FileInputType::createInputRenderer): (WebCore::FileInputType::createFileList): * html/FormController.cpp: (WebCore::FormController::formStatesFromStateVector): * html/HTMLAppletElement.cpp: (WebCore::HTMLAppletElement::createElementRenderer): * html/HTMLAttachmentElement.cpp: (WebCore::HTMLAttachmentElement::createElementRenderer): * html/HTMLBRElement.cpp: (WebCore::HTMLBRElement::createElementRenderer): * html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::collectStyleForPresentationAttribute): * html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::createElementRenderer): * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::createElementRenderer): (WebCore::HTMLCanvasElement::setImageBuffer): * html/HTMLCollection.cpp: (WebCore::HTMLCollection::updateNamedElementCache): * html/HTMLCollection.h: (WebCore::HTMLCollection::setNamedItemCache): * html/HTMLDetailsElement.cpp: (WebCore::HTMLDetailsElement::createElementRenderer): (WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot): * html/HTMLElement.cpp: (WebCore::HTMLElement::populateEventHandlerNameMap): (WebCore::HTMLElement::setInnerText): (WebCore::HTMLElement::createElementRenderer): * html/HTMLFieldSetElement.cpp: (WebCore::HTMLFieldSetElement::createElementRenderer): * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::dispatchBlurEvent): * html/HTMLFormControlsCollection.cpp: (WebCore::HTMLFormControlsCollection::updateNamedElementCache): * html/HTMLFrameElement.cpp: (WebCore::HTMLFrameElement::createElementRenderer): * html/HTMLFrameSetElement.cpp: (WebCore::HTMLFrameSetElement::createElementRenderer): * html/HTMLIFrameElement.cpp: (WebCore::HTMLIFrameElement::createElementRenderer): * html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::createElementRenderer): * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::updateType): (WebCore::HTMLInputElement::createElementRenderer): * html/HTMLKeygenElement.cpp: (WebCore::HTMLKeygenElement::HTMLKeygenElement): * html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::setCSSStyleSheet): * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::createElementRenderer): (WebCore::HTMLMediaElement::addEventListener): (WebCore::HTMLMediaElement::setWirelessPlaybackTarget): (WebCore::HTMLMediaElement::mediaPlayerCreateResourceLoader): * html/HTMLMeterElement.cpp: (WebCore::HTMLMeterElement::createElementRenderer): (WebCore::HTMLMeterElement::didAddUserAgentShadowRoot): * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::createForJSConstructor): * html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::createElementRenderer): * html/HTMLPlugInImageElement.cpp: (WebCore::HTMLPlugInImageElement::createElementRenderer): * html/HTMLProgressElement.cpp: (WebCore::HTMLProgressElement::createElementRenderer): (WebCore::HTMLProgressElement::didAddUserAgentShadowRoot): * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::createElementRenderer): (WebCore::HTMLSelectElement::dispatchFocusEvent): (WebCore::HTMLSelectElement::dispatchBlurEvent): * html/HTMLSummaryElement.cpp: (WebCore::HTMLSummaryElement::createElementRenderer): * html/HTMLTableElement.cpp: (WebCore::HTMLTableElement::insertRow): * html/HTMLTableRowElement.cpp: (WebCore::HTMLTableRowElement::insertCell): * html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::createElementRenderer): * html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::dispatchFocusEvent): (WebCore::HTMLTextFormControlElement::dispatchBlurEvent): * html/HTMLVideoElement.cpp: (WebCore::HTMLVideoElement::createElementRenderer): * html/HTMLWBRElement.cpp: (WebCore::HTMLWBRElement::createElementRenderer): * html/ImageDocument.cpp: (WebCore::ImageDocument::createDocumentStructure): * html/ImageInputType.cpp: (WebCore::ImageInputType::createInputRenderer): * html/InputType.cpp: (WebCore::InputType::createInputRenderer): * html/MediaDocument.cpp: (WebCore::MediaDocumentParser::createDocumentStructure): * html/MediaElementSession.cpp: (WebCore::MediaElementSession::setPlaybackTarget): * html/PluginDocument.cpp: (WebCore::PluginDocumentParser::createDocumentStructure): * html/RangeInputType.cpp: (WebCore::RangeInputType::createShadowSubtree): (WebCore::RangeInputType::createInputRenderer): * html/RubyElement.cpp: (WebCore::RubyElement::createElementRenderer): * html/RubyTextElement.cpp: (WebCore::RubyTextElement::createElementRenderer): * html/SearchInputType.cpp: (WebCore::SearchInputType::createInputRenderer): (WebCore::SearchInputType::createShadowSubtree): * html/TextFieldInputType.cpp: (WebCore::TextFieldInputType::createInputRenderer): * html/ValidationMessage.cpp: (WebCore::ValidationMessage::buildBubbleTree): * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::createLinearGradient): (WebCore::CanvasRenderingContext2D::createRadialGradient): * html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::LRUImageBufferCache::imageBuffer): * html/parser/AtomicHTMLToken.h: (WebCore::AtomicHTMLToken::AtomicHTMLToken): * html/parser/HTMLConstructionSite.cpp: (WebCore::HTMLConstructionSite::executeQueuedTasks): (WebCore::HTMLConstructionSite::insertTextNode): * html/parser/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::append): * html/parser/HTMLElementStack.cpp: (WebCore::HTMLElementStack::ElementRecord::ElementRecord): (WebCore::HTMLElementStack::pushCommon): * html/parser/HTMLElementStack.h: (WebCore::HTMLElementStack::ElementRecord::releaseNext): (WebCore::HTMLElementStack::ElementRecord::setNext): * html/parser/HTMLPreloadScanner.cpp: (WebCore::TokenPreloadScanner::scan): (WebCore::HTMLPreloadScanner::scan): * html/parser/HTMLResourcePreloader.cpp: (WebCore::HTMLResourcePreloader::preload): * html/parser/HTMLStackItem.h: (WebCore::HTMLStackItem::HTMLStackItem): (WebCore::HTMLStackItem::create): * html/parser/HTMLToken.h: (WebCore::HTMLToken::releaseDoctypeData): * html/parser/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::takeScriptToProcess): (WebCore::HTMLTreeBuilder::processFakeStartTag): (WebCore::HTMLTreeBuilder::insertPhoneNumberLink): * html/parser/TextDocumentParser.cpp: (WebCore::TextDocumentParser::append): (WebCore::TextDocumentParser::insertFakePreElement): * html/parser/XSSAuditorDelegate.cpp: (WebCore::XSSAuditorDelegate::generateViolationReport): * html/shadow/DetailsMarkerControl.cpp: (WebCore::DetailsMarkerControl::createElementRenderer): * html/shadow/MediaControlElements.cpp: (WebCore::MediaControlTimelineContainerElement::createElementRenderer): (WebCore::MediaControlVolumeSliderContainerElement::createElementRenderer): (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu): (WebCore::MediaControlTextTrackContainerElement::createElementRenderer): (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage): * html/shadow/MediaControls.cpp: (WebCore::MediaControls::createTextTrackDisplay): * html/shadow/MediaControlsApple.cpp: (WebCore::MediaControlsApple::createControls): (WebCore::MediaControlsApple::showClosedCaptionTrackList): * html/shadow/MeterShadowElement.cpp: (WebCore::MeterInnerElement::createElementRenderer): * html/shadow/ProgressShadowElement.cpp: (WebCore::ProgressInnerElement::createElementRenderer): * html/shadow/SliderThumbElement.cpp: (WebCore::RenderSliderThumb::RenderSliderThumb): (WebCore::SliderThumbElement::createElementRenderer): (WebCore::SliderContainerElement::createElementRenderer): * html/shadow/TextControlInnerElements.cpp: (WebCore::TextControlInnerContainer::createElementRenderer): (WebCore::TextControlInnerTextElement::createElementRenderer): * html/shadow/mac/ImageControlsButtonElementMac.cpp: (WebCore::RenderImageControlsButton::RenderImageControlsButton): (WebCore::ImageControlsButtonElementMac::createElementRenderer): * html/shadow/mac/ImageControlsRootElementMac.cpp: (WebCore::RenderImageControls::RenderImageControls): (WebCore::ImageControlsRootElement::maybeCreate): (WebCore::ImageControlsRootElementMac::createElementRenderer): * html/track/VTTCue.cpp: (WebCore::VTTCueBox::createElementRenderer): * html/track/WebVTTElement.cpp: (WebCore::WebVTTElement::cloneElementWithoutAttributesAndChildren): * html/track/WebVTTParser.cpp: (WebCore::WebVTTTreeBuilder::constructTreeFromToken): * inspector/CommandLineAPIHost.cpp: (WebCore::CommandLineAPIHost::inspectImpl): (WebCore::CommandLineAPIHost::addInspectedObject): * inspector/DOMEditor.cpp: (WebCore::DOMEditor::InsertBeforeAction::InsertBeforeAction): (WebCore::DOMEditor::ReplaceChildNodeAction::ReplaceChildNodeAction): (WebCore::DOMEditor::insertBefore): (WebCore::DOMEditor::setOuterHTML): (WebCore::DOMEditor::replaceChild): * inspector/DOMPatchSupport.cpp: (WebCore::DOMPatchSupport::createDigest): (WebCore::DOMPatchSupport::removeChildAndMoveToNew): * inspector/InspectorApplicationCacheAgent.cpp: (WebCore::InspectorApplicationCacheAgent::getFramesWithManifests): * inspector/InspectorCSSAgent.cpp: (WebCore::InspectorCSSAgent::getMatchedStylesForNode): (WebCore::InspectorCSSAgent::addRule): (WebCore::InspectorCSSAgent::getSupportedCSSProperties): (WebCore::InspectorCSSAgent::getSupportedSystemFontFamilyNames): (WebCore::InspectorCSSAgent::getNamedFlowCollection): (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList): (WebCore::InspectorCSSAgent::buildArrayForRegions): (WebCore::InspectorCSSAgent::buildObjectForNamedFlow): * inspector/InspectorConsoleInstrumentation.h: (WebCore::InspectorInstrumentation::addMessageToConsole): (WebCore::InspectorInstrumentation::consoleCount): (WebCore::InspectorInstrumentation::stopConsoleTiming): (WebCore::InspectorInstrumentation::consoleTimeStamp): * inspector/InspectorController.cpp: (WebCore::InspectorController::InspectorController): * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::pushNodePathToFrontend): (WebCore::InspectorDOMAgent::highlightRect): (WebCore::InspectorDOMAgent::highlightQuad): (WebCore::InspectorDOMAgent::innerHighlightQuad): (WebCore::InspectorDOMAgent::highlightSelector): (WebCore::InspectorDOMAgent::buildObjectForNode): (WebCore::InspectorDOMAgent::buildArrayForPseudoElements): (WebCore::InspectorDOMAgent::buildObjectForEventListener): (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties): (WebCore::InspectorDOMAgent::didCommitLoad): (WebCore::InspectorDOMAgent::didInsertDOMNode): (WebCore::InspectorDOMAgent::styleAttributeInvalidated): * inspector/InspectorDOMDebuggerAgent.cpp: (WebCore::InspectorDOMDebuggerAgent::didInvalidateStyleAttr): (WebCore::InspectorDOMDebuggerAgent::willInsertDOMNode): (WebCore::InspectorDOMDebuggerAgent::willRemoveDOMNode): (WebCore::InspectorDOMDebuggerAgent::willModifyDOMAttr): (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded): (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest): * inspector/InspectorDOMStorageAgent.cpp: (WebCore::InspectorDOMStorageAgent::getDOMStorageItems): * inspector/InspectorDatabaseAgent.cpp: (WebCore::InspectorDatabaseAgent::didOpenDatabase): (WebCore::InspectorDatabaseAgent::executeSQL): * inspector/InspectorDatabaseResource.cpp: (WebCore::InspectorDatabaseResource::create): (WebCore::InspectorDatabaseResource::bind): * inspector/InspectorDatabaseResource.h: (WebCore::InspectorDatabaseResource::setDatabase): * inspector/InspectorFrontendClientLocal.cpp: (WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal): * inspector/InspectorHistory.cpp: (WebCore::InspectorHistory::perform): * inspector/InspectorIndexedDBAgent.cpp: (WebCore::InspectorIndexedDBAgent::requestDatabaseNames): (WebCore::InspectorIndexedDBAgent::requestDatabase): (WebCore::InspectorIndexedDBAgent::requestData): (WebCore::ClearObjectStoreListener::create): (WebCore::ClearObjectStoreListener::ClearObjectStoreListener): (WebCore::ClearObjectStore::create): (WebCore::ClearObjectStore::ClearObjectStore): (WebCore::InspectorIndexedDBAgent::clearObjectStore): * inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::addMessageToConsoleImpl): (WebCore::InspectorInstrumentation::didOpenDatabaseImpl): (WebCore::InspectorInstrumentation::sessionCreatedImpl): (WebCore::InspectorInstrumentation::sessionLoadedImpl): (WebCore::InspectorInstrumentation::sessionModifiedImpl): (WebCore::InspectorInstrumentation::segmentCreatedImpl): (WebCore::InspectorInstrumentation::segmentCompletedImpl): (WebCore::InspectorInstrumentation::segmentLoadedImpl): * inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::didOpenDatabase): (WebCore::InspectorInstrumentation::sessionCreated): (WebCore::InspectorInstrumentation::sessionLoaded): (WebCore::InspectorInstrumentation::sessionModified): (WebCore::InspectorInstrumentation::segmentCreated): (WebCore::InspectorInstrumentation::segmentCompleted): (WebCore::InspectorInstrumentation::segmentLoaded): * inspector/InspectorLayerTreeAgent.cpp: (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer): * inspector/InspectorNetworkAgent.cpp: (WebCore::buildObjectForResourceResponse): (WebCore::buildObjectForCachedResource): (WebCore::InspectorNetworkAgent::buildInitiatorObject): (WebCore::InspectorNetworkAgent::willSendWebSocketHandshakeRequest): (WebCore::InspectorNetworkAgent::didReceiveWebSocketHandshakeResponse): (WebCore::InspectorNetworkAgent::didReceiveWebSocketFrame): (WebCore::InspectorNetworkAgent::didSendWebSocketFrame): * inspector/InspectorOverlay.cpp: (WebCore::InspectorOverlay::highlightNodeList): (WebCore::InspectorOverlay::highlightQuad): (WebCore::buildObjectForHighlight): (WebCore::buildObjectForFlowRegions): (WebCore::InspectorOverlay::drawPaintRects): (WebCore::buildArrayForRendererFragments): (WebCore::buildObjectForShapeOutside): (WebCore::buildObjectForElementData): (WebCore::InspectorOverlay::buildHighlightObjectForNode): (WebCore::InspectorOverlay::buildObjectForHighlightedNodes): (WebCore::InspectorOverlay::reset): (WebCore::InspectorOverlay::evaluateInOverlay): * inspector/InspectorPageAgent.cpp: (WebCore::InspectorPageAgent::buildObjectForFrameTree): * inspector/InspectorReplayAgent.cpp: (WebCore::buildInspectorObjectForSession): (WebCore::SerializeInputToJSONFunctor::operator()): (WebCore::SerializeInputToJSONFunctor::returnValue): (WebCore::buildInspectorObjectForSegment): (WebCore::InspectorReplayAgent::switchSession): (WebCore::InspectorReplayAgent::insertSessionSegment): (WebCore::InspectorReplayAgent::removeSessionSegment): (WebCore::InspectorReplayAgent::getSessionData): (WebCore::InspectorReplayAgent::getSegmentData): * inspector/InspectorStyleSheet.cpp: (WebCore::asCSSRuleList): (WebCore::InspectorStyle::create): (WebCore::InspectorStyle::buildObjectForStyle): (WebCore::InspectorStyle::buildArrayForComputedStyle): (WebCore::InspectorStyle::styleWithProperties): (WebCore::InspectorStyleSheet::create): (WebCore::InspectorStyleSheet::InspectorStyleSheet): (WebCore::InspectorStyleSheet::buildObjectForStyleSheet): (WebCore::buildObjectForSelectorHelper): (WebCore::InspectorStyleSheet::buildObjectForRule): (WebCore::InspectorStyleSheet::ensureSourceData): (WebCore::InspectorStyleSheet::buildArrayForRuleList): (WebCore::InspectorStyleSheet::collectFlatRules): (WebCore::InspectorStyleSheetForInlineStyle::create): (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle): * inspector/InspectorTimelineAgent.cpp: (WebCore::startProfiling): (WebCore::InspectorTimelineAgent::addRecordToTimeline): (WebCore::InspectorTimelineAgent::appendRecord): (WebCore::InspectorTimelineAgent::sendEvent): (WebCore::InspectorTimelineAgent::createRecordEntry): (WebCore::InspectorTimelineAgent::pushCurrentRecord): * inspector/InspectorTimelineAgent.h: * inspector/NetworkResourcesData.cpp: (WebCore::NetworkResourcesData::addResourceSharedBuffer): * inspector/NetworkResourcesData.h: (WebCore::NetworkResourcesData::ResourceData::setDecoder): (WebCore::NetworkResourcesData::ResourceData::setBuffer): * inspector/TimelineRecordFactory.cpp: (WebCore::buildInspectorObject): (WebCore::buildProfileInspectorObject): * inspector/WebInjectedScriptManager.cpp: (WebCore::WebInjectedScriptManager::WebInjectedScriptManager): * loader/ContentFilter.cpp: (WebCore::ContentFilter::createIfEnabled): (WebCore::ContentFilter::ContentFilter): * loader/CrossOriginPreflightResultCache.cpp: (WebCore::CrossOriginPreflightResultCache::appendEntry): * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::subresources): (WebCore::DocumentLoader::installContentFilterUnblockHandler): * loader/DocumentLoader.h: (WebCore::DocumentLoader::setQuickLookHandle): * loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest): (WebCore::DocumentThreadableLoader::didReceiveResponse): * loader/HistoryController.cpp: (WebCore::HistoryController::updateBackForwardListClippedAtTarget): (WebCore::HistoryController::pushState): * loader/MediaResourceLoader.cpp: (WebCore::MediaResourceLoader::MediaResourceLoader): * loader/NavigationScheduler.cpp: (WebCore::NavigationScheduler::timerFired): (WebCore::NavigationScheduler::schedule): (WebCore::NavigationScheduler::cancel): * loader/NetscapePlugInStreamLoader.cpp: (WebCore::NetscapePlugInStreamLoader::willSendRequest): * loader/PolicyCallback.cpp: (WebCore::PolicyCallback::set): * loader/PolicyChecker.cpp: (WebCore::PolicyChecker::checkNavigationPolicy): (WebCore::PolicyChecker::checkNewWindowPolicy): (WebCore::PolicyChecker::checkContentPolicy): * loader/PolicyChecker.h: (WebCore::PolicyChecker::setContentFilterUnblockHandler): * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willSendRequest): * loader/ThreadableLoader.cpp: (WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions): (WebCore::ThreadableLoaderOptions::isolatedCopy): * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::ApplicationCacheGroup): * loader/archive/cf/LegacyWebArchive.cpp: (WebCore::LegacyWebArchive::create): * loader/cache/CachedCSSStyleSheet.cpp: (WebCore::CachedCSSStyleSheet::saveParsedStyleSheet): * loader/icon/IconDatabase.cpp: (WebCore::IconDatabase::syncThreadMainLoop): * mathml/MathMLInlineContainerElement.cpp: (WebCore::MathMLInlineContainerElement::createElementRenderer): * mathml/MathMLMathElement.cpp: (WebCore::MathMLMathElement::createElementRenderer): * mathml/MathMLMencloseElement.cpp: (WebCore::MathMLMencloseElement::createElementRenderer): * mathml/MathMLSelectElement.cpp: (WebCore::MathMLSelectElement::createElementRenderer): * mathml/MathMLTextElement.cpp: (WebCore::MathMLTextElement::createElementRenderer): * page/CaptionUserPreferences.cpp: (WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride): * page/DOMTimer.cpp: (WebCore::DOMTimer::DOMTimer): (WebCore::DOMTimer::install): * page/DOMWindow.cpp: (WebCore::PostMessageTimer::PostMessageTimer): (WebCore::PostMessageTimer::event): (WebCore::DOMWindow::postMessage): (WebCore::DOMWindow::setTimeout): (WebCore::DOMWindow::setInterval): (WebCore::DOMWindow::addEventListener): (WebCore::DOMWindow::showModalDialog): * page/DebugPageOverlays.cpp: (WebCore::MouseWheelRegionOverlay::updateRegion): (WebCore::NonFastScrollableRegionOverlay::updateRegion): (WebCore::DebugPageOverlays::ensureRegionOverlayForFrame): * page/DragController.cpp: (WebCore::documentFragmentFromDragData): (WebCore::DragController::concludeEditDrag): * page/Frame.cpp: (WebCore::Frame::setView): * page/FrameView.cpp: (WebCore::FrameView::sendResizeEventIfNeeded): (WebCore::FrameView::updateOverflowStatus): * page/Page.cpp: (WebCore::Page::Page): (WebCore::Page::setSessionStorage): (WebCore::Page::setStorageNamespaceProvider): (WebCore::Page::setVisitedLinkStore): * page/PageConsoleClient.cpp: (WebCore::PageConsoleClient::addMessage): (WebCore::PageConsoleClient::messageWithTypeAndLevel): (WebCore::PageConsoleClient::count): (WebCore::PageConsoleClient::profileEnd): (WebCore::PageConsoleClient::timeEnd): (WebCore::PageConsoleClient::timeStamp): * page/PageOverlayController.cpp: (WebCore::PageOverlayController::installPageOverlay): * page/TextIndicator.cpp: (WebCore::takeSnapshot): * page/UserContentController.cpp: (WebCore::UserContentController::addUserScript): (WebCore::UserContentController::addUserStyleSheet): * page/UserScript.h: (WebCore::UserScript::UserScript): * page/UserStyleSheet.h: (WebCore::UserStyleSheet::UserStyleSheet): * page/WheelEventTestTrigger.cpp: (WebCore::WheelEventTestTrigger::setTestCallbackAndStartNotificationTimer): (WebCore::WheelEventTestTrigger::triggerTestTimerFired): * page/animation/AnimationController.cpp: (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle): (WebCore::AnimationControllerPrivate::addElementChangeToDispatch): * page/animation/CSSPropertyAnimation.cpp: (WebCore::blendFilter): (WebCore::crossfadeBlend): (WebCore::PropertyWrapperShadow::blendSimpleOrMatchedShadowLists): (WebCore::PropertyWrapperShadow::blendMismatchedShadowLists): (WebCore::ShorthandPropertyWrapper::ShorthandPropertyWrapper): (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): * page/cocoa/ResourceUsageOverlayCocoa.mm: (WebCore::RingBuffer::append): (WebCore::MemoryCategoryInfo::MemoryCategoryInfo): * page/mac/TextIndicatorWindow.mm: (WebCore::TextIndicatorWindow::clearTextIndicator): * page/scrolling/AxisScrollSnapOffsets.cpp: (WebCore::updateSnapOffsetsForScrollableArea): * page/scrolling/ScrollingStateTree.cpp: (WebCore::ScrollingStateTree::setRemovedNodes): * page/scrolling/ScrollingThread.cpp: (WebCore::ScrollingThread::dispatchBarrier): (WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread): * page/scrolling/ThreadedScrollingTree.cpp: (WebCore::ThreadedScrollingTree::commitNewTreeState): * page/scrolling/ios/ScrollingTreeIOS.cpp: (WebCore::ScrollingTreeIOS::commitNewTreeState): * page/scrolling/mac/ScrollingCoordinatorMac.mm: (WebCore::ScrollingCoordinatorMac::commitTreeState): * platform/CalculationValue.cpp: (WebCore::CalculationValue::create): * platform/CalculationValue.h: (WebCore::CalculationValue::CalculationValue): (WebCore::CalcExpressionBinaryOperation::CalcExpressionBinaryOperation): * platform/DragImage.cpp: (WebCore::createDragImageFromSnapshot): * platform/KeyedCoding.h: (WebCore::KeyedDecoder::decodeObjects): * platform/Length.cpp: (WebCore::Length::Length): (WebCore::Length::blendMixedTypes): * platform/LengthSize.h: (WebCore::LengthSize::LengthSize): (WebCore::LengthSize::setWidth): (WebCore::LengthSize::setHeight): * platform/MainThreadSharedTimer.cpp: (WebCore::MainThreadSharedTimer::setFiredFunction): * platform/ScrollableArea.cpp: (WebCore::ScrollableArea::setHorizontalSnapOffsets): (WebCore::ScrollableArea::setVerticalSnapOffsets): * platform/SharedBuffer.cpp: (WebCore::SharedBuffer::SharedBuffer): (WebCore::SharedBuffer::createWithContentsOfFile): (WebCore::SharedBuffer::maybeTransferMappedFileData): * platform/Supplementable.h: (WebCore::Supplement::provideTo): (WebCore::Supplementable::provideSupplement): * platform/Timer.h: (WebCore::Timer::Timer): (WebCore::DeferrableOneShotTimer::DeferrableOneShotTimer): * platform/URL.h: (WebCore::URLCapture::releaseURL): * platform/audio/AudioBus.cpp: (WebCore::AudioBus::AudioBus): * platform/audio/HRTFDatabase.cpp: (WebCore::HRTFDatabase::HRTFDatabase): * platform/audio/HRTFElevation.cpp: (WebCore::HRTFElevation::createForSubject): (WebCore::HRTFElevation::createByInterpolatingSlices): * platform/audio/HRTFElevation.h: (WebCore::HRTFElevation::HRTFElevation): * platform/audio/HRTFKernel.cpp: (WebCore::HRTFKernel::createInterpolatedKernel): * platform/audio/HRTFKernel.h: (WebCore::HRTFKernel::create): (WebCore::HRTFKernel::HRTFKernel): * platform/audio/ReverbConvolver.cpp: (WebCore::ReverbConvolver::ReverbConvolver): * platform/audio/ios/MediaSessionManagerIOS.mm: (-[WebMediaSessionHelper dealloc]): * platform/cf/KeyedDecoderCF.cpp: (WebCore::KeyedDecoderCF::KeyedDecoderCF): * platform/cocoa/ContentFilterUnblockHandlerCocoa.mm: (WebCore::ContentFilterUnblockHandler::ContentFilterUnblockHandler): * platform/glib/KeyedDecoderGlib.cpp: (WebCore::KeyedDecoderGlib::dictionaryFromGVariant): * platform/graphics/FloatPolygon.cpp: (WebCore::FloatPolygon::FloatPolygon): * platform/graphics/Font.cpp: (WebCore::Font::Font): (WebCore::createAndFillGlyphPage): (WebCore::Font::systemFallbackFontForCharacter): * platform/graphics/Font.h: (WebCore::Font::create): * platform/graphics/FontCache.cpp: (WebCore::FontCache::purgeInactiveFontData): * platform/graphics/FontCascade.cpp: (WebCore::FontCascadeCacheEntry::FontCascadeCacheEntry): (WebCore::retrieveOrAddCachedFonts): (WebCore::FontCascade::update): * platform/graphics/FontCascadeFonts.cpp: (WebCore::realizeNextFallback): * platform/graphics/FontCascadeFonts.h: (WebCore::FontCascadeFonts::create): * platform/graphics/FontDescription.h: (WebCore::FontDescription::setFeatureSettings): * platform/graphics/FontFeatureSettings.cpp: (WebCore::FontFeature::FontFeature): (WebCore::FontFeatureSettings::insert): * platform/graphics/FontRanges.h: (WebCore::FontRanges::Range::Range): * platform/graphics/GLContext.cpp: (WebCore::GLContext::createContextForWindow): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::setStrokePattern): (WebCore::GraphicsContext::setFillPattern): (WebCore::GraphicsContext::setStrokeGradient): (WebCore::GraphicsContext::setFillGradient): (WebCore::GraphicsContext::drawConsumingImageBuffer): * platform/graphics/GraphicsLayer.cpp: (WebCore::KeyframeValueList::insert): * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::setWirelessPlaybackTarget): (WebCore::MediaPlayer::createResourceLoader): * platform/graphics/PlatformMediaResourceLoader.h: (WebCore::PlatformMediaResourceLoader::PlatformMediaResourceLoader): * platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm: (WebCore::CDMPrivateMediaSourceAVFObjC::createSession): * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessPlaybackTarget): * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setWirelessPlaybackTarget): * platform/graphics/ca/TileController.cpp: (WebCore::TileController::setContentsScale): * platform/graphics/cg/IOSurfacePool.cpp: (WebCore::IOSurfacePool::takeSurface): (WebCore::IOSurfacePool::addSurface): (WebCore::IOSurfacePool::insertSurfaceIntoPool): (WebCore::IOSurfacePool::collectInUseSurfaces): * platform/graphics/cg/ImageBufferCG.cpp: (WebCore::ImageBuffer::copyImage): (WebCore::ImageBuffer::sinkIntoImage): (WebCore::ImageBuffer::sinkIntoNativeImage): (WebCore::ImageBuffer::drawConsuming): * platform/graphics/cocoa/IOSurface.mm: (IOSurface::moveToPool): (IOSurface::createFromImageBuffer): (IOSurface::convertToFormat): * platform/graphics/efl/CairoUtilitiesEfl.cpp: (WebCore::evasObjectFromCairoImageSurface): * platform/graphics/efl/GraphicsContext3DEfl.cpp: (WebCore::GraphicsContext3D::setContextLostCallback): * platform/graphics/efl/GraphicsContext3DPrivate.cpp: (WebCore::GraphicsContext3DPrivate::setContextLostCallback): * platform/graphics/egl/GLContextEGL.cpp: (WebCore::GLContextEGL::createWindowContext): (WebCore::GLContextEGL::createPixmapContext): (WebCore::GLContextEGL::createContext): (WebCore::GLContextEGL::GLContextEGL): * platform/graphics/filters/FETile.cpp: (WebCore::FETile::platformApplySoftware): * platform/graphics/filters/Filter.h: (WebCore::Filter::setSourceImage): * platform/graphics/filters/FilterOperation.h: * platform/graphics/glx/GLContextGLX.cpp: (WebCore::GLContextGLX::createWindowContext): (WebCore::GLContextGLX::createPbufferContext): (WebCore::GLContextGLX::createPixmapContext): (WebCore::GLContextGLX::createContext): (WebCore::GLContextGLX::GLContextGLX): * platform/graphics/gpu/Texture.cpp: (WebCore::Texture::Texture): (WebCore::Texture::create): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: (WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor): * platform/graphics/gstreamer/MediaPlayerRequestInstallMissingPluginsCallback.h: (WebCore::MediaPlayerRequestInstallMissingPluginsCallback::create): (WebCore::MediaPlayerRequestInstallMissingPluginsCallback::MediaPlayerRequestInstallMissingPluginsCallback): * platform/graphics/gstreamer/VideoSinkGStreamer.cpp: (VideoRenderRequestScheduler::render): * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivateQTKit::setWirelessPlaybackTarget): * platform/graphics/opengl/Extensions3DOpenGLES.cpp: (WebCore::Extensions3DOpenGLES::setEXTContextLostCallback): * platform/graphics/surfaces/GLTransportSurface.cpp: (WebCore::GLTransportSurface::createTransportSurface): (WebCore::GLTransportSurfaceClient::createTransportSurfaceClient): * platform/graphics/surfaces/egl/EGLSurface.cpp: (WebCore::EGLTransportSurface::createTransportSurface): (WebCore::EGLTransportSurface::createTransportSurfaceClient): * platform/graphics/texmap/BitmapTexturePool.cpp: (WebCore::BitmapTexturePool::BitmapTexturePool): * platform/graphics/texmap/BitmapTexturePool.h: (WebCore::BitmapTexturePool::Entry::Entry): * platform/graphics/texmap/TextureMapperLayer.cpp: (WebCore::TextureMapperLayer::removeAllChildren): * platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp: (WebCore::TextureMapperPlatformLayerBuffer::TextureMapperPlatformLayerBuffer): * platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h: (WebCore::TextureMapperPlatformLayerBuffer::setUnmanagedBufferDataHolder): * platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp: (WebCore::TextureMapperPlatformLayerProxy::pushNextBuffer): (WebCore::TextureMapperPlatformLayerProxy::getAvailableBuffer): (WebCore::TextureMapperPlatformLayerProxy::releaseUnusedBuffersTimerFired): (WebCore::TextureMapperPlatformLayerProxy::swapBuffer): (WebCore::TextureMapperPlatformLayerProxy::scheduleUpdateOnCompositorThread): (WebCore::TextureMapperPlatformLayerProxy::compositorThreadUpdateTimerFired): * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp: (WebCore::CompositingCoordinator::releaseInactiveAtlasesTimerFired): * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: (WebCore::CoordinatedGraphicsLayer::adjustContentsScale): * platform/graphics/wayland/PlatformDisplayWayland.cpp: (WebCore::PlatformDisplayWayland::createSharingGLContext): * platform/graphics/win/FontCacheWin.cpp: (WebCore::FontCache::createFontPlatformData): * platform/graphics/win/FontCustomPlatformData.cpp: (WebCore::FontCustomPlatformData::fontPlatformData): * platform/graphics/win/FontCustomPlatformDataCairo.cpp: (WebCore::FontCustomPlatformData::fontPlatformData): * platform/graphics/win/FontPlatformDataCGWin.cpp: (WebCore::FontPlatformData::FontPlatformData): * platform/graphics/win/FontPlatformDataCairoWin.cpp: (WebCore::FontPlatformData::FontPlatformData): * platform/graphics/win/FontPlatformDataWin.cpp: (WebCore::FontPlatformData::FontPlatformData): * platform/graphics/win/SharedGDIObject.h: (WebCore::SharedGDIObject::create): (WebCore::SharedGDIObject::SharedGDIObject): * platform/graphics/win/SimpleFontDataWin.cpp: (WebCore::Font::platformCreateScaledFont): * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: (WebVideoFullscreenInterfaceAVKit::preparedToReturnToInline): * platform/mac/HIDGamepadProvider.cpp: (WebCore::HIDGamepadProvider::deviceAdded): * platform/mac/ThemeMac.mm: (WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext): * platform/mediastream/MediaStreamPrivate.cpp: (WebCore::MediaStreamPrivate::create): * platform/mediastream/MediaStreamTrackPrivate.cpp: (WebCore::MediaStreamTrackPrivate::create): * platform/mediastream/mac/AVVideoCaptureSource.mm: (WebCore::AVVideoCaptureSource::currentFrameImage): * platform/network/BlobData.h: (WebCore::RawData::create): (WebCore::RawData::RawData): * platform/network/BlobPart.h: (WebCore::BlobPart::BlobPart): (WebCore::BlobPart::moveData): * platform/network/DataURLDecoder.cpp: (WebCore::DataURLDecoder::DecodingResultDispatcher::dispatch): (WebCore::DataURLDecoder::DecodingResultDispatcher::DecodingResultDispatcher): (WebCore::DataURLDecoder::DecodingResultDispatcher::timerFired): (WebCore::DataURLDecoder::createDecodeTask): (WebCore::DataURLDecoder::decode): * platform/network/HTTPHeaderMap.cpp: (WebCore::HTTPHeaderMap::adopt): * platform/network/NetworkStateNotifier.cpp: (WebCore::NetworkStateNotifier::addNetworkStateChangeListener): * platform/network/ResourceHandle.h: (WebCore::ResourceHandle::setQuickLookHandle): * platform/network/ResourceRequestBase.cpp: (WebCore::ResourceRequestBase::adopt): (WebCore::ResourceRequestBase::copyData): (WebCore::ResourceRequestBase::setHTTPHeaderFields): * platform/network/ResourceResponseBase.cpp: (WebCore::ResourceResponseBase::adopt): (WebCore::ResourceResponseBase::copyData): * platform/network/cf/FormDataStreamCFNet.cpp: (WebCore::advanceCurrentStream): * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::releaseConnectionForDownload): * platform/network/curl/CurlCacheManager.cpp: (WebCore::CurlCacheManager::loadIndex): (WebCore::CurlCacheManager::didReceiveResponse): * platform/network/curl/SocketStreamHandle.h: (WebCore::SocketStreamHandle::SocketData::SocketData): * platform/network/curl/SocketStreamHandleCurl.cpp: (WebCore::SocketStreamHandle::platformSend): (WebCore::SocketStreamHandle::readData): (WebCore::SocketStreamHandle::sendData): (WebCore::SocketStreamHandle::didReceiveData): (WebCore::SocketStreamHandle::createCopy): * platform/network/soup/NetworkStorageSessionSoup.cpp: (WebCore::NetworkStorageSession::NetworkStorageSession): (WebCore::NetworkStorageSession::setSoupNetworkSession): * platform/text/LocaleICU.cpp: (WebCore::LocaleICU::createLabelVector): (WebCore::createFallbackMonthLabels): (WebCore::createFallbackAMPMLabels): * platform/win/WCDataObject.cpp: (WebCore::WCDataObject::SetData): * plugins/DOMMimeType.cpp: (WebCore::DOMMimeType::DOMMimeType): * plugins/DOMMimeType.h: (WebCore::DOMMimeType::create): * plugins/DOMPlugin.cpp: (WebCore::DOMPlugin::DOMPlugin): * plugins/DOMPlugin.h: (WebCore::DOMPlugin::create): * plugins/PluginData.cpp: (WebCore::PluginData::publiclyVisiblePlugins): * rendering/ClipPathOperation.h: * rendering/FloatingObjects.cpp: (WebCore::FloatingObjects::moveAllToFloatInfoMap): (WebCore::FloatingObjects::add): * rendering/LayoutState.cpp: (WebCore::LayoutState::LayoutState): * rendering/RenderAttachment.cpp: (WebCore::RenderAttachment::RenderAttachment): * rendering/RenderBlock.cpp: (WebCore::OverflowEventDispatcher::~OverflowEventDispatcher): (WebCore::RenderBlock::RenderBlock): * rendering/RenderBlockFlow.cpp: (WebCore::RenderBlockFlow::RenderBlockFlow): (WebCore::RenderBlockFlow::layoutLineGridBox): (WebCore::RenderBlockFlow::insertFloatingObject): * rendering/RenderBlockFlow.h: (WebCore::RenderBlockFlow::setLineGridBox): * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlockFlow::createAndAppendRootInlineBox): (WebCore::constructBidiRunsForSegment): (WebCore::RenderBlockFlow::linkToEndLineIfNeeded): * rendering/RenderBox.cpp: (WebCore::RenderBox::RenderBox): * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::RenderBoxModelObject): (WebCore::RenderBoxModelObject::paintFillLayerExtended): * rendering/RenderButton.cpp: (WebCore::RenderButton::RenderButton): * rendering/RenderDeprecatedFlexibleBox.cpp: (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox): * rendering/RenderDetailsMarker.cpp: (WebCore::RenderDetailsMarker::RenderDetailsMarker): * rendering/RenderElement.cpp: (WebCore::RenderElement::RenderElement): (WebCore::RenderElement::createFor): (WebCore::RenderElement::setStyle): (WebCore::RenderElement::propagateStyleToAnonymousChildren): * rendering/RenderElement.h: (WebCore::RenderElement::setStyleInternal): (WebCore::RenderElement::setAnimatableStyle): * rendering/RenderEmbeddedObject.cpp: (WebCore::RenderEmbeddedObject::RenderEmbeddedObject): (WebCore::RenderEmbeddedObject::createForApplet): * rendering/RenderFieldset.cpp: (WebCore::RenderFieldset::RenderFieldset): * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::RenderFileUploadControl): * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::RenderFlexibleBox): * rendering/RenderFlowThread.cpp: (WebCore::RenderFlowThread::RenderFlowThread): * rendering/RenderFrame.cpp: (WebCore::RenderFrame::RenderFrame): * rendering/RenderFrameBase.cpp: (WebCore::RenderFrameBase::RenderFrameBase): * rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::RenderFrameSet): * rendering/RenderFullScreen.cpp: (WebCore::RenderFullScreen::RenderFullScreen): (WebCore::RenderFullScreen::createPlaceholder): * rendering/RenderGrid.cpp: (WebCore::RenderGrid::RenderGrid): (WebCore::RenderGrid::computeFlexFactorUnitSize): * rendering/RenderHTMLCanvas.cpp: (WebCore::RenderHTMLCanvas::RenderHTMLCanvas): * rendering/RenderIFrame.cpp: (WebCore::RenderIFrame::RenderIFrame): * rendering/RenderImage.cpp: (WebCore::RenderImage::RenderImage): * rendering/RenderInline.cpp: (WebCore::RenderInline::RenderInline): (WebCore::updateStyleOfAnonymousBlockContinuations): (WebCore::RenderInline::addChildIgnoringContinuation): (WebCore::RenderInline::splitInlines): (WebCore::RenderInline::createAndAppendInlineFlowBox): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::calculateClipRects): * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers): * rendering/RenderLayerModelObject.cpp: (WebCore::RenderLayerModelObject::RenderLayerModelObject): * rendering/RenderLineBreak.cpp: (WebCore::RenderLineBreak::RenderLineBreak): * rendering/RenderListBox.cpp: (WebCore::RenderListBox::RenderListBox): * rendering/RenderListItem.cpp: (WebCore::RenderListItem::RenderListItem): (WebCore::RenderListItem::styleDidChange): * rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::RenderListMarker): * rendering/RenderMedia.cpp: (WebCore::RenderMedia::RenderMedia): * rendering/RenderMediaControlElements.cpp: (WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer): (WebCore::RenderMediaControlTimelineContainer::RenderMediaControlTimelineContainer): (WebCore::RenderTextTrackContainerElement::RenderTextTrackContainerElement): * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::RenderMenuList): * rendering/RenderMeter.cpp: (WebCore::RenderMeter::RenderMeter): * rendering/RenderMultiColumnFlowThread.cpp: (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread): * rendering/RenderMultiColumnSet.cpp: (WebCore::RenderMultiColumnSet::RenderMultiColumnSet): * rendering/RenderMultiColumnSpannerPlaceholder.cpp: (WebCore::RenderMultiColumnSpannerPlaceholder::RenderMultiColumnSpannerPlaceholder): * rendering/RenderNamedFlowFragment.cpp: (WebCore::RenderNamedFlowFragment::RenderNamedFlowFragment): * rendering/RenderNamedFlowThread.cpp: (WebCore::RenderNamedFlowThread::RenderNamedFlowThread): (WebCore::RenderNamedFlowThread::updateWritingMode): * rendering/RenderProgress.cpp: (WebCore::RenderProgress::RenderProgress): * rendering/RenderPtr.h: * rendering/RenderQuote.cpp: (WebCore::RenderQuote::RenderQuote): * rendering/RenderRegion.cpp: (WebCore::RenderRegion::RenderRegion): * rendering/RenderRegionSet.cpp: (WebCore::RenderRegionSet::RenderRegionSet): * rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::RenderReplaced): * rendering/RenderReplica.cpp: (WebCore::RenderReplica::RenderReplica): * rendering/RenderRuby.cpp: (WebCore::RenderRubyAsInline::RenderRubyAsInline): (WebCore::RenderRubyAsBlock::RenderRubyAsBlock): * rendering/RenderRubyBase.cpp: (WebCore::RenderRubyBase::RenderRubyBase): * rendering/RenderRubyRun.cpp: (WebCore::RenderRubyRun::RenderRubyRun): (WebCore::RenderRubyRun::createRubyBase): * rendering/RenderRubyText.cpp: (WebCore::RenderRubyText::RenderRubyText): * rendering/RenderScrollbarPart.cpp: (WebCore::RenderScrollbarPart::RenderScrollbarPart): * rendering/RenderSearchField.cpp: (WebCore::RenderSearchField::RenderSearchField): (WebCore::RenderSearchField::updateCancelButtonVisibility): * rendering/RenderSlider.cpp: (WebCore::RenderSlider::RenderSlider): * rendering/RenderSnapshottedPlugIn.cpp: (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): * rendering/RenderTable.cpp: (WebCore::RenderTable::RenderTable): * rendering/RenderTableCaption.cpp: (WebCore::RenderTableCaption::RenderTableCaption): * rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::RenderTableCell): * rendering/RenderTableCol.cpp: (WebCore::RenderTableCol::RenderTableCol): * rendering/RenderTableRow.cpp: (WebCore::RenderTableRow::RenderTableRow): * rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::RenderTableSection): * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::RenderTextControl): * rendering/RenderTextControl.h: * rendering/RenderTextControlMultiLine.cpp: (WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine): * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine): * rendering/RenderTextControlSingleLine.h: * rendering/RenderThemeEfl.cpp: (WebCore::RenderThemeEfl::getThemePartFromCache): (WebCore::RenderThemeEfl::loadTheme): * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintProgressBar): * rendering/RenderVTTCue.cpp: (WebCore::RenderVTTCue::RenderVTTCue): * rendering/RenderVideo.cpp: (WebCore::RenderVideo::RenderVideo): * rendering/RenderView.cpp: (WebCore::RenderView::RenderView): (WebCore::RenderView::updateSelectionForSubtrees): (WebCore::RenderView::applySubtreeSelection): * rendering/RenderView.h: * rendering/RenderWidget.cpp: (WebCore::RenderWidget::RenderWidget): * rendering/RootInlineBox.cpp: (WebCore::RootInlineBox::placeEllipsis): * rendering/mathml/RenderMathMLBlock.cpp: (WebCore::RenderMathMLBlock::RenderMathMLBlock): * rendering/mathml/RenderMathMLBlock.h: * rendering/mathml/RenderMathMLFenced.cpp: (WebCore::RenderMathMLFenced::RenderMathMLFenced): * rendering/mathml/RenderMathMLFraction.cpp: (WebCore::RenderMathMLFraction::RenderMathMLFraction): * rendering/mathml/RenderMathMLMath.cpp: (WebCore::RenderMathMLMath::RenderMathMLMath): * rendering/mathml/RenderMathMLMenclose.cpp: (WebCore::RenderMathMLMenclose::RenderMathMLMenclose): * rendering/mathml/RenderMathMLOperator.cpp: (WebCore::RenderMathMLOperator::RenderMathMLOperator): (WebCore::RenderMathMLOperator::updateStyle): * rendering/mathml/RenderMathMLRadicalOperator.cpp: (WebCore::RenderMathMLRadicalOperator::RenderMathMLRadicalOperator): * rendering/mathml/RenderMathMLRoot.cpp: (WebCore::RenderMathMLRoot::RenderMathMLRoot): (WebCore::RenderMathMLRoot::updateStyle): * rendering/mathml/RenderMathMLRoot.h: * rendering/mathml/RenderMathMLRow.cpp: (WebCore::RenderMathMLRow::RenderMathMLRow): * rendering/mathml/RenderMathMLScripts.cpp: (WebCore::RenderMathMLScripts::RenderMathMLScripts): * rendering/mathml/RenderMathMLScripts.h: * rendering/mathml/RenderMathMLSpace.cpp: (WebCore::RenderMathMLSpace::RenderMathMLSpace): * rendering/mathml/RenderMathMLSquareRoot.cpp: (WebCore::RenderMathMLSquareRoot::RenderMathMLSquareRoot): * rendering/mathml/RenderMathMLToken.cpp: (WebCore::RenderMathMLToken::RenderMathMLToken): (WebCore::RenderMathMLToken::updateStyle): * rendering/mathml/RenderMathMLUnderOver.cpp: (WebCore::RenderMathMLUnderOver::RenderMathMLUnderOver): * rendering/shapes/PolygonShape.h: (WebCore::PolygonShape::PolygonShape): * rendering/shapes/RasterShape.h: * rendering/shapes/Shape.cpp: (WebCore::createPolygonShape): (WebCore::Shape::createShape): (WebCore::Shape::createRasterShape): (WebCore::Shape::createBoxShape): * rendering/style/BasicShapes.cpp: (WebCore::BasicShapeCenterCoordinate::updateComputedLength): (WebCore::BasicShapeCircle::blend): (WebCore::BasicShapeEllipse::blend): (WebCore::BasicShapePolygon::blend): (WebCore::BasicShapePath::BasicShapePath): (WebCore::BasicShapePath::blend): (WebCore::BasicShapeInset::blend): * rendering/style/BasicShapes.h: * rendering/style/ContentData.cpp: (WebCore::ContentData::clone): (WebCore::ImageContentData::createContentRenderer): (WebCore::TextContentData::createContentRenderer): (WebCore::QuoteContentData::createContentRenderer): * rendering/style/ContentData.h: (WebCore::ContentData::setNext): * rendering/style/DataRef.h: (WebCore::DataRef::DataRef): * rendering/style/FillLayer.cpp: (WebCore::FillLayer::~FillLayer): * rendering/style/FillLayer.h: (WebCore::FillLayer::setXPosition): (WebCore::FillLayer::setYPosition): (WebCore::FillLayer::setNext): * rendering/style/NinePieceImage.cpp: (WebCore::NinePieceImage::NinePieceImage): * rendering/style/NinePieceImage.h: (WebCore::NinePieceImage::setImageSlices): (WebCore::NinePieceImage::setBorderSlices): (WebCore::NinePieceImage::setOutset): * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::setWillChange): (WebCore::RenderStyle::appendContent): (WebCore::RenderStyle::setContent): (WebCore::RenderStyle::setTextShadow): (WebCore::RenderStyle::setBoxShadow): (WebCore::RenderStyle::setWordSpacing): (WebCore::RenderStyle::setScrollSnapPointsX): (WebCore::RenderStyle::setScrollSnapPointsY): (WebCore::RenderStyle::setScrollSnapDestination): (WebCore::RenderStyle::setScrollSnapCoordinates): * rendering/style/RenderStyle.h: * rendering/style/SVGRenderStyle.h: (WebCore::SVGRenderStyle::setShadow): * rendering/style/ShadowData.h: (WebCore::ShadowData::setNext): * rendering/style/StyleGeneratedImage.cpp: (WebCore::StyleGeneratedImage::StyleGeneratedImage): * rendering/style/StyleGeneratedImage.h: * rendering/style/StyleReflection.h: (WebCore::StyleReflection::setOffset): * rendering/svg/RenderSVGBlock.cpp: (WebCore::RenderSVGBlock::RenderSVGBlock): * rendering/svg/RenderSVGContainer.cpp: (WebCore::RenderSVGContainer::RenderSVGContainer): * rendering/svg/RenderSVGEllipse.cpp: (WebCore::RenderSVGEllipse::RenderSVGEllipse): * rendering/svg/RenderSVGForeignObject.cpp: (WebCore::RenderSVGForeignObject::RenderSVGForeignObject): * rendering/svg/RenderSVGGradientStop.cpp: (WebCore::RenderSVGGradientStop::RenderSVGGradientStop): * rendering/svg/RenderSVGHiddenContainer.cpp: (WebCore::RenderSVGHiddenContainer::RenderSVGHiddenContainer): * rendering/svg/RenderSVGImage.cpp: (WebCore::RenderSVGImage::RenderSVGImage): * rendering/svg/RenderSVGInline.cpp: (WebCore::RenderSVGInline::RenderSVGInline): (WebCore::RenderSVGInline::createInlineFlowBox): * rendering/svg/RenderSVGInlineText.cpp: (WebCore::RenderSVGInlineText::createTextBox): * rendering/svg/RenderSVGModelObject.cpp: (WebCore::RenderSVGModelObject::RenderSVGModelObject): * rendering/svg/RenderSVGPath.cpp: (WebCore::RenderSVGPath::RenderSVGPath): * rendering/svg/RenderSVGRect.cpp: (WebCore::RenderSVGRect::RenderSVGRect): * rendering/svg/RenderSVGResourceClipper.cpp: (WebCore::RenderSVGResourceClipper::RenderSVGResourceClipper): * rendering/svg/RenderSVGResourceContainer.cpp: (WebCore::RenderSVGResourceContainer::RenderSVGResourceContainer): * rendering/svg/RenderSVGResourceFilter.cpp: (WebCore::RenderSVGResourceFilter::RenderSVGResourceFilter): (WebCore::RenderSVGResourceFilter::buildPrimitives): (WebCore::RenderSVGResourceFilter::applyResource): (WebCore::RenderSVGResourceFilter::postApplyResource): * rendering/svg/RenderSVGResourceFilterPrimitive.cpp: (WebCore::RenderSVGResourceFilterPrimitive::RenderSVGResourceFilterPrimitive): * rendering/svg/RenderSVGResourceGradient.cpp: (WebCore::RenderSVGResourceGradient::RenderSVGResourceGradient): (WebCore::createMaskAndSwapContextForTextGradient): * rendering/svg/RenderSVGResourceLinearGradient.cpp: (WebCore::RenderSVGResourceLinearGradient::RenderSVGResourceLinearGradient): * rendering/svg/RenderSVGResourceMarker.cpp: (WebCore::RenderSVGResourceMarker::RenderSVGResourceMarker): * rendering/svg/RenderSVGResourceMasker.cpp: (WebCore::RenderSVGResourceMasker::RenderSVGResourceMasker): * rendering/svg/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::RenderSVGResourcePattern): (WebCore::RenderSVGResourcePattern::buildPattern): * rendering/svg/RenderSVGResourceRadialGradient.cpp: (WebCore::RenderSVGResourceRadialGradient::RenderSVGResourceRadialGradient): * rendering/svg/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::RenderSVGRoot): * rendering/svg/RenderSVGShape.cpp: (WebCore::RenderSVGShape::RenderSVGShape): * rendering/svg/RenderSVGTSpan.h: * rendering/svg/RenderSVGText.cpp: (WebCore::RenderSVGText::RenderSVGText): (WebCore::RenderSVGText::createRootInlineBox): * rendering/svg/RenderSVGTextPath.cpp: (WebCore::RenderSVGTextPath::RenderSVGTextPath): * rendering/svg/RenderSVGTransformableContainer.cpp: (WebCore::RenderSVGTransformableContainer::RenderSVGTransformableContainer): * rendering/svg/RenderSVGViewportContainer.cpp: (WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer): * rendering/svg/SVGResourcesCache.cpp: (WebCore::SVGResourcesCache::addResourcesFromRenderer): * replay/CapturingInputCursor.cpp: (WebCore::CapturingInputCursor::CapturingInputCursor): (WebCore::CapturingInputCursor::create): (WebCore::CapturingInputCursor::storeInput): * replay/FunctorInputCursor.h: (WebCore::FunctorInputCursor::FunctorInputCursor): * replay/MemoizedDOMResult.cpp: (JSC::InputTraits<MemoizedDOMResultBase>::decode): * replay/ReplayController.cpp: (WebCore::ReplayController::createSegment): * replay/ReplayInputCreationMethods.cpp: (WebCore::InitialNavigation::createFromPage): * replay/ReplaySession.cpp: (WebCore::ReplaySession::appendSegment): (WebCore::ReplaySession::insertSegment): * replay/ReplayingInputCursor.cpp: (WebCore::ReplayingInputCursor::ReplayingInputCursor): (WebCore::ReplayingInputCursor::create): * replay/SegmentedInputStorage.cpp: (WebCore::SegmentedInputStorage::store): * replay/SerializationMethods.cpp: (JSC::EncodingTraits<NondeterministicInputBase>::decodeValue): * replay/UserInputBridge.cpp: (WebCore::UserInputBridge::handleMousePressEvent): (WebCore::UserInputBridge::handleMouseReleaseEvent): (WebCore::UserInputBridge::handleMouseMoveEvent): (WebCore::UserInputBridge::handleMouseMoveOnScrollbarEvent): (WebCore::UserInputBridge::handleKeyEvent): (WebCore::UserInputBridge::handleWheelEvent): * storage/Storage.cpp: (WebCore::Storage::create): (WebCore::Storage::Storage): * style/StyleResolveForDocument.cpp: (WebCore::Style::resolveForDocument): * style/StyleResolveTree.cpp: (WebCore::Style::createRendererIfNeeded): (WebCore::Style::setBeforeOrAfterPseudoElement): (WebCore::Style::resolveTree): * svg/SVGAElement.cpp: (WebCore::SVGAElement::createElementRenderer): * svg/SVGAltGlyphElement.cpp: (WebCore::SVGAltGlyphElement::createElementRenderer): * svg/SVGAnimatedPath.cpp: (WebCore::SVGAnimatedPathAnimator::constructFromString): (WebCore::SVGAnimatedPathAnimator::startAnimValAnimation): * svg/SVGAnimatedTypeAnimator.cpp: (WebCore::SVGAnimatedTypeAnimator::findAnimatedPropertiesForAttributeName): * svg/SVGCircleElement.cpp: (WebCore::SVGCircleElement::createElementRenderer): * svg/SVGClipPathElement.cpp: (WebCore::SVGClipPathElement::createElementRenderer): * svg/SVGDefsElement.cpp: (WebCore::SVGDefsElement::createElementRenderer): * svg/SVGDocumentExtensions.cpp: (WebCore::SVGDocumentExtensions::markPendingResourcesForRemoval): (WebCore::SVGDocumentExtensions::addElementReferencingTarget): (WebCore::SVGDocumentExtensions::rebuildElements): * svg/SVGEllipseElement.cpp: (WebCore::SVGEllipseElement::createElementRenderer): * svg/SVGFilterElement.cpp: (WebCore::SVGFilterElement::createElementRenderer): * svg/SVGFilterPrimitiveStandardAttributes.cpp: (WebCore::SVGFilterPrimitiveStandardAttributes::createElementRenderer): * svg/SVGFontElement.cpp: (WebCore::SVGKerningMap::insert): * svg/SVGForeignObjectElement.cpp: (WebCore::SVGForeignObjectElement::createElementRenderer): * svg/SVGGElement.cpp: (WebCore::SVGGElement::createElementRenderer): * svg/SVGGraphicsElement.cpp: (WebCore::SVGGraphicsElement::createElementRenderer): * svg/SVGImageElement.cpp: (WebCore::SVGImageElement::createElementRenderer): * svg/SVGLinearGradientElement.cpp: (WebCore::SVGLinearGradientElement::createElementRenderer): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::createElementRenderer): * svg/SVGMaskElement.cpp: (WebCore::SVGMaskElement::createElementRenderer): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::createElementRenderer): * svg/SVGPathUtilities.cpp: (WebCore::appendSVGPathByteStreamFromSVGPathSeg): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::createElementRenderer): * svg/SVGRadialGradientElement.cpp: (WebCore::SVGRadialGradientElement::createElementRenderer): * svg/SVGRectElement.cpp: (WebCore::SVGRectElement::createElementRenderer): * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::createElementRenderer): * svg/SVGStopElement.cpp: (WebCore::SVGStopElement::createElementRenderer): * svg/SVGSwitchElement.cpp: (WebCore::SVGSwitchElement::createElementRenderer): * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::createElementRenderer): * svg/SVGTRefElement.cpp: (WebCore::SVGTRefTargetEventListener::attach): (WebCore::SVGTRefElement::createElementRenderer): * svg/SVGTSpanElement.cpp: (WebCore::SVGTSpanElement::createElementRenderer): * svg/SVGTextElement.cpp: (WebCore::SVGTextElement::createElementRenderer): * svg/SVGTextPathElement.cpp: (WebCore::SVGTextPathElement::createElementRenderer): * svg/SVGToOTFFontConversion.cpp: (WebCore::SVGToOTFFontConverter::releaseResult): (WebCore::SVGToOTFFontConverter::appendKERNSubtable): (WebCore::SVGToOTFFontConverter::processGlyphElement): * svg/SVGUseElement.cpp: (WebCore::SVGUseElement::createElementRenderer): (WebCore::SVGUseElement::cloneTarget): * svg/graphics/SVGImage.cpp: (WebCore::SVGImage::~SVGImage): (WebCore::SVGImage::drawPatternForContainer): * testing/Internals.cpp: (WebCore::Internals::insertAuthorCSS): (WebCore::Internals::insertUserCSS): (WebCore::Internals::queueMicroTask): * workers/DedicatedWorkerGlobalScope.cpp: (WebCore::DedicatedWorkerGlobalScope::postMessage): * workers/Worker.cpp: (WebCore::Worker::create): (WebCore::Worker::postMessage): * workers/WorkerEventQueue.cpp: (WebCore::WorkerEventQueue::EventDispatcher::EventDispatcher): * workers/WorkerGlobalScope.cpp: (WebCore::WorkerGlobalScope::postTask): (WebCore::WorkerGlobalScope::setTimeout): (WebCore::WorkerGlobalScope::setInterval): (WebCore::WorkerGlobalScope::importScripts): (WebCore::WorkerGlobalScope::addMessage): (WebCore::WorkerGlobalScope::addMessageToWorkerConsole): * workers/WorkerMessagingProxy.cpp: (WebCore::WorkerMessagingProxy::postMessageToWorkerObject): (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope): (WebCore::WorkerMessagingProxy::postTaskToLoader): (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope): (WebCore::WorkerMessagingProxy::workerThreadCreated): * workers/WorkerRunLoop.cpp: (WebCore::WorkerRunLoop::postTask): (WebCore::WorkerRunLoop::postTaskAndTerminate): (WebCore::WorkerRunLoop::postTaskForMode): (WebCore::WorkerRunLoop::Task::Task): * xml/DOMParser.cpp: (WebCore::DOMParser::parseFromString): * xml/NativeXPathNSResolver.cpp: (WebCore::NativeXPathNSResolver::NativeXPathNSResolver): * xml/NativeXPathNSResolver.h: (WebCore::NativeXPathNSResolver::create): * xml/XMLErrors.cpp: (WebCore::XMLErrors::insertErrorMessageBlock): * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseBlob): * xml/XMLHttpRequestProgressEventThrottle.cpp: (WebCore::XMLHttpRequestProgressEventThrottle::flushProgressEvent): (WebCore::XMLHttpRequestProgressEventThrottle::dispatchDeferredEvents): * xml/XMLTreeViewer.cpp: (WebCore::XMLTreeViewer::transformDocumentToTreeView): * xml/XPathExpression.cpp: (WebCore::XPathExpression::XPathExpression): (WebCore::XPathExpression::createExpression): * xml/XPathExpressionNode.cpp: (WebCore::XPath::Expression::setSubexpressions): * xml/XPathExpressionNode.h: (WebCore::XPath::Expression::addSubexpression): * xml/XPathFunctions.cpp: (WebCore::XPath::Function::setArguments): (WebCore::XPath::FunId::evaluate): (WebCore::XPath::Function::create): * xml/XPathGrammar.y: * xml/XPathNodeSet.cpp: (WebCore::XPath::NodeSet::sort): (WebCore::XPath::NodeSet::traversalSort): * xml/XPathNodeSet.h: (WebCore::XPath::NodeSet::NodeSet): (WebCore::XPath::NodeSet::append): * xml/XPathParser.cpp: (WebCore::XPath::Parser::parseStatement): * xml/XPathParser.h: (WebCore::XPath::Parser::setParseResult): * xml/XPathPath.cpp: (WebCore::XPath::Filter::Filter): (WebCore::XPath::Filter::evaluate): (WebCore::XPath::LocationPath::evaluate): (WebCore::XPath::LocationPath::appendStep): (WebCore::XPath::LocationPath::prependStep): (WebCore::XPath::Path::Path): * xml/XPathPredicate.cpp: (WebCore::XPath::StringExpression::StringExpression): (WebCore::XPath::Negative::Negative): (WebCore::XPath::NumericOp::NumericOp): (WebCore::XPath::EqTestOp::EqTestOp): (WebCore::XPath::LogicalOp::LogicalOp): (WebCore::XPath::Union::Union): * xml/XPathStep.cpp: (WebCore::XPath::Step::Step): (WebCore::XPath::Step::optimize): (WebCore::XPath::optimizeStepPair): (WebCore::XPath::Step::evaluate): * xml/XPathStep.h: (WebCore::XPath::Step::NodeTest::NodeTest): (WebCore::XPath::Step::NodeTest::operator=): * xml/XPathValue.h: (WebCore::XPath::Value::Value): (WebCore::XPath::Value::Data::create): (WebCore::XPath::Value::Data::Data): * xml/XSLTProcessor.h: (WebCore::XSLTProcessor::setXSLStyleSheet): (WebCore::XSLTProcessor::importStylesheet): * xml/parser/XMLDocumentParser.cpp: (WebCore::XMLDocumentParser::append): * xml/parser/XMLDocumentParserLibxml2.cpp: (WebCore::PendingCallbacks::appendStartElementNSCallback): (WebCore::PendingCallbacks::appendCharactersCallback): (WebCore::PendingCallbacks::appendProcessingInstructionCallback): (WebCore::PendingCallbacks::appendCDATABlockCallback): (WebCore::PendingCallbacks::appendCommentCallback): (WebCore::PendingCallbacks::appendInternalSubsetCallback): (WebCore::PendingCallbacks::appendErrorCallback): (WebCore::OffsetBuffer::OffsetBuffer): (WebCore::openFunc): (WebCore::XMLDocumentParser::cdataBlock): (WebCore::XMLDocumentParser::comment): (WebCore::parseAttributes): Source/WebKit: * Storage/StorageNamespaceImpl.cpp: (WebCore::StorageNamespaceImpl::storageArea): Source/WebKit/ios: * WebCoreSupport/WebFixedPositionContent.mm: (-[WebFixedPositionContent setViewportConstrainedLayers:stickyContainerMap:]): * WebCoreSupport/WebInspectorClientIOS.mm: (WebInspectorFrontendClient::WebInspectorFrontendClient): Source/WebKit/mac: * History/WebHistoryItem.mm: (-[WebHistoryItem initFromDictionaryRepresentation:]): * Plugins/Hosted/HostedNetscapePluginStream.mm: (WebKit::HostedNetscapePluginStream::willSendRequest): * Plugins/Hosted/NetscapePluginInstanceProxy.h: (WebKit::NetscapePluginInstanceProxy::setCurrentReply): * Plugins/WebNetscapePluginStream.mm: (WebNetscapePluginStream::willSendRequest): * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView scheduleTimerWithInterval:repeat:timerFunc:]): * WebCoreSupport/WebContextMenuClient.mm: (WebContextMenuClient::imageForCurrentSharingServicePickerItem): * WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::dispatchDecidePolicyForResponse): (WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): (WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): (WebFrameLoaderClient::dispatchWillSubmitForm): (WebFrameLoaderClient::createDocumentLoader): * WebCoreSupport/WebInspectorClient.mm: (WebInspectorFrontendClient::WebInspectorFrontendClient): * WebView/WebArchive.mm: (-[WebArchive initWithMainResource:subresources:subframeArchives:]): * WebView/WebFrame.mm: (-[WebFrame _documentFragmentWithNodesAsParagraphs:]): * WebView/WebHTMLView.mm: (-[WebHTMLView _applyEditingStyleToSelection:withUndoAction:]): * WebView/WebMediaPlaybackTargetPicker.mm: (WebMediaPlaybackTargetPicker::setPlaybackTarget): * WebView/WebView.mm: (-[WebView _loadBackForwardListFromOtherView:]): (+[WebView _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:injectedFrames:]): (+[WebView _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:injectedFrames:]): Source/WebKit/win: * Plugins/PluginStream.cpp: (WebCore::PluginStream::willSendRequest): * Plugins/PluginView.cpp: (WebCore::PluginView::requestTimerFired): (WebCore::PluginView::scheduleRequest): (WebCore::PluginView::handlePost): * WebCoreSupport/WebFrameLoaderClient.cpp: (WebFrameLoaderClient::createDocumentLoader): * WebCoreSupport/WebInspectorClient.cpp: (WebInspectorFrontendClient::WebInspectorFrontendClient): * WebHistory.cpp: (createUserInfoFromArray): * WebHistoryItem.cpp: (WebHistoryItem::initFromDictionaryRepresentation): * WebView.cpp: (WebView::addToDirtyRegion): (WebView::scrollBackingStore): (WebView::loadBackForwardListFromOtherView): (WebView::addUserScriptToGroup): (WebView::addUserStyleSheetToGroup): Source/WebKit2: * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::postDatabaseTask): (WebKit::DatabaseProcess::fetchWebsiteData): (WebKit::DatabaseProcess::deleteWebsiteData): (WebKit::DatabaseProcess::deleteWebsiteDataForOrigins): (WebKit::DatabaseProcess::indexedDatabaseOrigins): * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp: (WebKit::UniqueIDBDatabase::postTransactionOperation): (WebKit::UniqueIDBDatabase::postMainThreadTask): (WebKit::UniqueIDBDatabase::postDatabaseTask): * NetworkProcess/Downloads/DownloadManager.cpp: (WebKit::DownloadManager::startDownload): (WebKit::DownloadManager::convertHandleToDownload): (WebKit::DownloadManager::resumeDownload): * NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm: (WebKit::NetworkServiceInitializerDelegate::NetworkServiceInitializerDelegate): * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: (WebKit::NetworkBlobRegistry::registerBlobURL): * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::performSynchronousLoad): (WebKit::NetworkConnectionToWebProcess::registerBlobURL): * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::didReceiveData): (WebKit::NetworkLoad::didReceiveBuffer): (WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace): * NetworkProcess/NetworkProcess.cpp: (WebKit::fetchDiskCacheEntries): (WebKit::NetworkProcess::fetchWebsiteData): (WebKit::NetworkProcess::deleteWebsiteData): (WebKit::clearDiskCacheEntries): (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::SynchronousLoadData::SynchronousLoadData): (WebKit::NetworkResourceLoader::NetworkResourceLoader): (WebKit::NetworkResourceLoader::retrieveCacheEntry): (WebKit::NetworkResourceLoader::didFinishLoading): (WebKit::NetworkResourceLoader::tryStoreAsCacheEntry): (WebKit::NetworkResourceLoader::validateCacheEntry): * NetworkProcess/NetworkResourceLoader.h: * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::retrieve): (WebKit::NetworkCache::Cache::store): (WebKit::NetworkCache::Cache::clear): * NetworkProcess/cache/NetworkCacheCoders.h: * NetworkProcess/cache/NetworkCacheDataSoup.cpp: (WebKit::NetworkCache::Data::empty): (WebKit::NetworkCache::Data::subrange): (WebKit::NetworkCache::concatenate): (WebKit::NetworkCache::Data::adoptMap): * NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::Entry): * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: (WebKit::NetworkCache::runTaskInQueue): (WebKit::NetworkCache::fillDataFromReadBuffer): (WebKit::NetworkCache::IOChannel::readSyncInThread): * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): (WebKit::NetworkCache::SpeculativeLoad::didFinishLoading): (WebKit::NetworkCache::SpeculativeLoad::didComplete): * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: (WebKit::NetworkCache::SpeculativeLoadManager::ExpiringEntry::ExpiringEntry): (WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::PreloadedEntry): (WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::takeCacheEntry): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::create): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::setExistingSubresourcesEntry): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::PendingFrameLoad): (WebKit::NetworkCache::SpeculativeLoadManager::registerLoad): (WebKit::NetworkCache::SpeculativeLoadManager::addPreloadedEntry): (WebKit::NetworkCache::SpeculativeLoadManager::retrieveEntryFromStorage): (WebKit::NetworkCache::SpeculativeLoadManager::revalidateEntry): (WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry): (WebKit::NetworkCache::SpeculativeLoadManager::retrieveSubresourcesEntry): * NetworkProcess/cache/NetworkCacheStatistics.cpp: (WebKit::NetworkCache::Statistics::queryWasEverRequested): * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::ReadOperation::finish): (WebKit::NetworkCache::Storage::synchronize): (WebKit::NetworkCache::Storage::dispatchReadOperation): (WebKit::NetworkCache::Storage::dispatchWriteOperation): (WebKit::NetworkCache::Storage::retrieve): (WebKit::NetworkCache::Storage::store): (WebKit::NetworkCache::Storage::traverse): (WebKit::NetworkCache::Storage::clear): * NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp: (WebKit::NetworkCache::SubresourcesEntry::SubresourcesEntry): (WebKit::NetworkCache::SubresourcesEntry::updateSubresourceKeys): * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkDataTask::NetworkDataTask): * NetworkProcess/soup/NetworkProcessSoup.cpp: (WebKit::NetworkProcess::clearDiskCache): * Platform/IPC/ArgumentCoders.h: (IPC::ArgumentCoder<WTF::Optional<T>>::decode): * Platform/IPC/ArgumentDecoder.cpp: (IPC::ArgumentDecoder::ArgumentDecoder): * Platform/IPC/ArgumentEncoder.cpp: (IPC::ArgumentEncoder::addAttachment): (IPC::ArgumentEncoder::releaseAttachments): * Platform/IPC/Attachment.cpp: (IPC::Attachment::encode): * Platform/IPC/Connection.cpp: (IPC::Connection::SyncMessageState::processIncomingMessage): (IPC::Connection::SyncMessageState::dispatchMessages): (IPC::Connection::dispatchWorkQueueMessageReceiverMessage): (IPC::Connection::sendMessage): (IPC::Connection::sendSyncReply): (IPC::Connection::waitForMessage): (IPC::Connection::sendSyncMessage): (IPC::Connection::sendSyncMessageFromSecondaryThread): (IPC::Connection::waitForSyncReply): (IPC::Connection::processIncomingSyncReply): (IPC::Connection::processIncomingMessage): (IPC::Connection::sendOutgoingMessages): (IPC::Connection::dispatchSyncMessage): (IPC::Connection::enqueueIncomingMessage): (IPC::Connection::dispatchOneMessage): * Platform/IPC/Connection.h: (IPC::Connection::Identifier::Identifier): (IPC::Connection::send): (IPC::Connection::sendSync): * Platform/IPC/HandleMessage.h: (IPC::handleMessage): (IPC::handleMessageDelayed): * Platform/IPC/MessageDecoder.cpp: (IPC::MessageDecoder::MessageDecoder): (IPC::MessageDecoder::setImportanceAssertion): (IPC::MessageDecoder::unwrapForTesting): * Platform/IPC/MessageDecoder.h: (IPC::MessageDecoder::setMessageProcessingToken): * Platform/IPC/MessageEncoder.cpp: (IPC::MessageEncoder::wrapForTesting): * Platform/IPC/MessageRecorder.cpp: (IPC::MessageRecorder::recordOutgoingMessage): (IPC::MessageRecorder::recordIncomingMessage): (IPC::MessageRecorder::MessageProcessingToken::MessageProcessingToken): * Platform/IPC/MessageSender.cpp: (IPC::MessageSender::sendMessage): * Platform/IPC/MessageSender.h: (IPC::MessageSender::send): (IPC::MessageSender::sendSync): * Platform/IPC/glib/GSocketMonitor.cpp: (IPC::GSocketMonitor::start): * Platform/IPC/mac/ConnectionMac.mm: (IPC::Connection::open): (IPC::createMessageDecoder): (IPC::Connection::receiveSourceEventHandler): * Platform/IPC/unix/ConnectionUnix.cpp: (IPC::Connection::processMessage): * Platform/unix/SharedMemoryUnix.cpp: (WebKit::SharedMemory::Handle::decode): (WebKit::SharedMemory::Handle::releaseAttachment): (WebKit::SharedMemory::Handle::adoptAttachment): * PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm: (WebKit::PluginServiceInitializerDelegate::PluginServiceInitializerDelegate): * PluginProcess/PluginProcess.cpp: (WebKit::PluginProcess::initializePluginProcess): * PluginProcess/WebProcessConnection.cpp: (WebKit::WebProcessConnection::addPluginControllerProxy): (WebKit::WebProcessConnection::createPluginInternal): * PluginProcess/mac/PluginProcessMac.mm: (WebKit::PluginProcess::platformInitializePluginProcess): * Scripts/webkit/LegacyMessageReceiver-expected.cpp: (Messages::WebPage::GetPluginProcessConnection::DelayedReply::DelayedReply): (Messages::WebPage::GetPluginProcessConnection::DelayedReply::send): (Messages::WebPage::TestMultipleAttributes::DelayedReply::DelayedReply): (Messages::WebPage::TestMultipleAttributes::DelayedReply::send): * Scripts/webkit/MessageReceiver-expected.cpp: (Messages::WebPage::GetPluginProcessConnection::DelayedReply::DelayedReply): (Messages::WebPage::GetPluginProcessConnection::DelayedReply::send): (Messages::WebPage::TestMultipleAttributes::DelayedReply::DelayedReply): (Messages::WebPage::TestMultipleAttributes::DelayedReply::send): * Scripts/webkit/messages.py: (generate_message_handler): * Shared/API/APIArray.cpp: (API::Array::create): (API::Array::createStringArray): (API::Array::copy): * Shared/API/APIArray.h: * Shared/API/APIDictionary.cpp: (API::Dictionary::create): (API::Dictionary::Dictionary): (API::Dictionary::keys): * Shared/API/APIPageGroupHandle.cpp: (API::PageGroupHandle::create): (API::PageGroupHandle::PageGroupHandle): (API::PageGroupHandle::decode): * Shared/API/APIString.h: * Shared/API/APIURL.h: (API::URL::create): (API::URL::URL): * Shared/API/Cocoa/RemoteObjectInvocation.h: (WebKit::RemoteObjectInvocation::ReplyInfo::ReplyInfo): * Shared/API/Cocoa/RemoteObjectInvocation.mm: (WebKit::RemoteObjectInvocation::RemoteObjectInvocation): (WebKit::RemoteObjectInvocation::decode): * Shared/API/Cocoa/WKRemoteObjectCoder.mm: (ensureObjectStream): (createEncodedObject): * Shared/API/Cocoa/_WKRemoteObjectInterface.mm: (initializeMethod): (-[_WKRemoteObjectInterface setClasses:forSelector:argumentIndex:ofReply:]): * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: (-[_WKRemoteObjectRegistry _sendInvocation:interface:]): * Shared/API/c/WKArray.cpp: (WKArrayCreate): (WKArrayCreateAdoptingValues): * Shared/API/c/WKDictionary.cpp: (WKDictionaryCreate): * Shared/API/c/WKSharedAPICast.h: (WebKit::ProxyingRefPtr::ProxyingRefPtr): * Shared/APIWebArchive.mm: (API::WebArchive::WebArchive): (API::WebArchive::subresources): (API::WebArchive::subframeArchives): * Shared/AsyncRequest.cpp: (WebKit::AsyncRequest::AsyncRequest): (WebKit::AsyncRequest::setAbortHandler): * Shared/AsyncRequest.h: * Shared/BlockingResponseMap.h: (BlockingResponseMap::didReceiveResponse): * Shared/ChildProcessProxy.cpp: (WebKit::ChildProcessProxy::sendMessage): (WebKit::ChildProcessProxy::didFinishLaunching): * Shared/ChildProcessProxy.h: (WebKit::ChildProcessProxy::send): (WebKit::ChildProcessProxy::sendSync): * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: (WebKit::CoordinatedGraphicsScene::dispatchOnMainThread): (WebKit::CoordinatedGraphicsScene::dispatchOnClientRunLoop): (WebKit::CoordinatedGraphicsScene::createLayer): (WebKit::CoordinatedGraphicsScene::syncRemoteContent): (WebKit::CoordinatedGraphicsScene::appendUpdate): * Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp: (WebKit::ThreadSafeCoordinatedSurface::create): (WebKit::ThreadSafeCoordinatedSurface::ThreadSafeCoordinatedSurface): * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: (WebKit::CompositingRunLoop::CompositingRunLoop): (WebKit::CompositingRunLoop::callOnCompositingRunLoop): (WebKit::ThreadedCompositor::callOnCompositingThread): * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: (WebKit::XPCServiceInitializerDelegate::XPCServiceInitializerDelegate): (WebKit::XPCServiceInitializer): * Shared/Plugins/Netscape/PluginInformation.cpp: (WebKit::createPluginInformationDictionary): * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.h: (WebKit::RemoteScrollingCoordinatorTransaction::setStateTreeToEncode): * Shared/SessionTracker.cpp: (WebKit::SessionTracker::setSession): * Shared/UserData.cpp: (WebKit::UserData::UserData): (WebKit::transformGraph): (WebKit::UserData::decode): * Shared/WebBackForwardListItem.cpp: (WebKit::WebBackForwardListItem::create): (WebKit::WebBackForwardListItem::WebBackForwardListItem): * Shared/WebBackForwardListItem.h: (WebKit::WebBackForwardListItem::setPageState): * Shared/WebCompiledContentExtension.cpp: (WebKit::WebCompiledContentExtension::create): (WebKit::WebCompiledContentExtension::WebCompiledContentExtension): * Shared/WebCompiledContentExtensionData.h: (WebKit::WebCompiledContentExtensionData::WebCompiledContentExtensionData): * Shared/WebContextMenuItem.cpp: (WebKit::WebContextMenuItem::submenuItemsAsAPIArray): * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder<UserStyleSheet>::decode): (IPC::ArgumentCoder<UserScript>::decode): (IPC::ArgumentCoder<FilterOperations>::decode): (IPC::ArgumentCoder<BlobPart>::decode): * Shared/WebKeyboardEvent.cpp: (WebKit::WebKeyboardEvent::WebKeyboardEvent): * Shared/WebPreferencesStore.h: (WebKit::WebPreferencesStore::Value::Value): * Shared/WebRenderLayer.cpp: (WebKit::WebRenderLayer::createArrayFromLayerList): * Shared/WebRenderObject.cpp: (WebKit::WebRenderObject::WebRenderObject): * Shared/WebTouchEvent.cpp: (WebKit::WebTouchEvent::WebTouchEvent): * Shared/efl/WebEventFactory.cpp: (WebKit::WebEventFactory::createWebTouchEvent): * Shared/gtk/NativeWebKeyboardEventGtk.cpp: (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): * Shared/gtk/NativeWebTouchEventGtk.cpp: (WebKit::NativeWebTouchEvent::NativeWebTouchEvent): * Shared/gtk/WebContextMenuItemGtk.cpp: (WebKit::WebContextMenuItemGtk::WebContextMenuItemGtk): * Shared/gtk/WebEventFactory.cpp: (WebKit::WebEventFactory::createWebKeyboardEvent): (WebKit::WebEventFactory::createWebTouchEvent): * Shared/linux/SeccompFilters/OpenSyscall.cpp: (WebKit::OpenSyscall::createFromOpenatContext): (WebKit::OpenSyscall::createFromCreatContext): (WebKit::OpenSyscallResult::encode): * Shared/mac/ObjCObjectGraph.mm: (WebKit::ObjCObjectGraph::decode): * Shared/mac/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::takeFrontContextPendingFlush): (WebKit::RemoteLayerBackingStore::Buffer::discard): * Shared/mac/RemoteLayerTreeTransaction.h: (WebKit::RemoteLayerTreeTransaction::setCallbackIDs): * Shared/mac/RemoteLayerTreeTransaction.mm: (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode): (WebKit::RemoteLayerTreeTransaction::decode): (WebKit::RemoteLayerTreeTransaction::setCreatedLayers): (WebKit::RemoteLayerTreeTransaction::setDestroyedLayerIDs): (WebKit::RemoteLayerTreeTransaction::setLayerIDsWithNewlyUnreachableBackingStore): * Shared/soup/WebCoreArgumentCodersSoup.cpp: (IPC::ArgumentCoder<ResourceRequest>::decodePlatformData): * UIProcess/API/APIProcessPoolConfiguration.h: * UIProcess/API/APISessionState.cpp: (API::SessionState::create): (API::SessionState::SessionState): * UIProcess/API/APIUserContentExtension.cpp: (API::UserContentExtension::UserContentExtension): * UIProcess/API/APIUserContentExtension.h: * UIProcess/API/APIUserContentExtensionStore.cpp: (API::compiledToFile): (API::createExtension): (API::UserContentExtensionStore::compileContentExtension): * UIProcess/API/APIUserScript.h: * UIProcess/API/APIWebsiteDataRecord.cpp: (API::WebsiteDataRecord::create): (API::WebsiteDataRecord::WebsiteDataRecord): * UIProcess/API/APIWebsiteDataStore.cpp: (API::WebsiteDataStore::create): (API::WebsiteDataStore::WebsiteDataStore): * UIProcess/API/C/WKApplicationCacheManager.cpp: (WKApplicationCacheManagerGetApplicationCacheOrigins): * UIProcess/API/C/WKKeyValueStorageManager.cpp: (WKKeyValueStorageManagerGetKeyValueStorageOrigins): (WKKeyValueStorageManagerGetStorageDetailsByOrigin): * UIProcess/API/C/WKPage.cpp: (WKPageCopySessionState): (WKPageRestoreFromSessionState): (WKPageSetPageContextMenuClient): (WKPageSetPageFindMatchesClient): (WKPageSetPageLoaderClient): (WebKit::RunJavaScriptAlertResultListener::create): (WebKit::RunJavaScriptAlertResultListener::RunJavaScriptAlertResultListener): (WebKit::RunJavaScriptConfirmResultListener::create): (WebKit::RunJavaScriptConfirmResultListener::RunJavaScriptConfirmResultListener): (WebKit::RunJavaScriptPromptResultListener::create): (WebKit::RunJavaScriptPromptResultListener::RunJavaScriptPromptResultListener): (WKPageSetPageUIClient): (WKPageSetPageNavigationClient): (WKPageCopyRelatedPages): * UIProcess/API/C/WKResourceCacheManager.cpp: (WKResourceCacheManagerGetCacheOrigins): * UIProcess/API/C/WKSessionStateRef.cpp: (WKSessionStateCreateFromData): * UIProcess/API/C/mac/WKContextPrivateMac.mm: (WKContextGetInfoForInstalledPlugIns): * UIProcess/API/C/mac/WKPagePrivateMac.mm: (-[WKObservablePageState initWithPage:]): * UIProcess/API/Cocoa/WKBrowsingContextGroup.mm: (createWKArray): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): (-[WKWebView _takeViewSnapshot]): (-[WKWebView _restoreFromSessionStateData:]): (-[WKWebView _setInputDelegate:]): * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (LazyInitialized::set): * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]): * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: (-[_WKProcessPoolConfiguration setCachePartitionedURLSchemes:]): * UIProcess/API/Cocoa/_WKSessionState.mm: (-[_WKSessionState _initWithSessionState:]): * UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm: (-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]): * UIProcess/API/efl/ewk_database_manager.cpp: (EwkDatabaseManager::getDatabaseOrigins): * UIProcess/API/gtk/WebKitContextMenuItem.cpp: (webkitContextMenuItemToWebContextMenuItemGtk): * UIProcess/API/gtk/WebKitFileChooserRequest.cpp: (webkit_file_chooser_request_select_files): * UIProcess/API/gtk/WebKitNotificationProvider.cpp: (WebKitNotificationProvider::notificationCloseCallback): * UIProcess/API/gtk/WebKitWebContext.cpp: (webkit_web_context_prefetch_dns): (webkitWebContextCreatePageForWebView): * UIProcess/API/gtk/WebKitWebView.cpp: (webkit_web_view_get_snapshot): * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseTouchEvent): (webkitWebViewBaseCreateWebPage): * UIProcess/API/gtk/WebKitWebsiteDataManager.cpp: (webkitWebsiteDataManagerCreate): (webkitWebsiteDataManagerGetDataStore): * UIProcess/API/mac/WKView.mm: (-[WKView initWithFrame:processPool:configuration:webView:]): (-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]): (-[WKView initWithFrame:configurationRef:]): * UIProcess/Cocoa/NavigationState.mm: (WebKit::tryAppLink): (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse): * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::WebViewImpl): (WebKit::WebViewImpl::takeViewSnapshot): * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp: (WebKit::CoordinatedLayerTreeHostProxy::dispatchUpdate): * UIProcess/Databases/DatabaseProcessProxy.cpp: (WebKit::DatabaseProcessProxy::fetchWebsiteData): (WebKit::DatabaseProcessProxy::deleteWebsiteData): (WebKit::DatabaseProcessProxy::deleteWebsiteDataForOrigins): * UIProcess/GenericCallback.h: (WebKit::CallbackMap::put): * UIProcess/InspectorServer/WebSocketServer.cpp: (WebKit::WebSocketServer::didAcceptConnection): * UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp: (WebKit::connectionCallback): * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::fetchWebsiteData): * UIProcess/Notifications/WebNotificationManagerProxy.cpp: (WebKit::WebNotificationManagerProxy::providerDidCloseNotifications): * UIProcess/Notifications/WebNotificationProvider.cpp: (WebKit::WebNotificationProvider::clearNotifications): * UIProcess/PageLoadState.cpp: (WebKit::PageLoadState::Transaction::Transaction): * UIProcess/Plugins/PlugInAutoStartProvider.cpp: (WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy): * UIProcess/Plugins/PluginProcessManager.cpp: (WebKit::PluginProcessManager::pluginProcessToken): (WebKit::PluginProcessManager::fetchWebsiteData): (WebKit::PluginProcessManager::deleteWebsiteData): (WebKit::PluginProcessManager::deleteWebsiteDataForHostNames): * UIProcess/Plugins/PluginProcessProxy.cpp: (WebKit::PluginProcessProxy::fetchWebsiteData): (WebKit::PluginProcessProxy::deleteWebsiteData): (WebKit::PluginProcessProxy::deleteWebsiteDataForHostNames): * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp: (WebKit::RemoteScrollingCoordinatorProxy::updateScrollingTree): * UIProcess/StatisticsRequest.cpp: (WebKit::StatisticsRequest::completedRequest): * UIProcess/Storage/LocalStorageDatabase.cpp: (WebKit::LocalStorageDatabase::create): (WebKit::LocalStorageDatabase::LocalStorageDatabase): * UIProcess/Storage/StorageManager.cpp: (WebKit::StorageManager::TransientLocalStorageNamespace::getOrCreateStorageArea): (WebKit::StorageManager::StorageArea::create): (WebKit::StorageManager::StorageArea::StorageArea): (WebKit::StorageManager::LocalStorageNamespace::getOrCreateStorageArea): (WebKit::StorageManager::SessionStorageNamespace::getOrCreateStorageArea): (WebKit::StorageManager::getSessionStorageOrigins): (WebKit::StorageManager::getLocalStorageOrigins): (WebKit::StorageManager::getLocalStorageOriginDetails): (WebKit::StorageManager::createTransientLocalStorageMap): (WebKit::StorageManager::createSessionStorageMap): * UIProcess/UserContent/WebScriptMessageHandler.cpp: (WebKit::WebScriptMessageHandler::create): (WebKit::WebScriptMessageHandler::WebScriptMessageHandler): * UIProcess/UserContent/WebUserContentControllerProxy.cpp: (WebKit::WebUserContentControllerProxy::addUserStyleSheet): * UIProcess/ViewGestureController.cpp: (WebKit::ViewGestureController::SnapshotRemovalTracker::start): (WebKit::ViewGestureController::SnapshotRemovalTracker::fireRemovalCallbackImmediately): * UIProcess/WebBackForwardList.cpp: (WebKit::WebBackForwardList::addItem): (WebKit::WebBackForwardList::backListAsAPIArrayWithLimit): (WebKit::WebBackForwardList::forwardListAsAPIArrayWithLimit): (WebKit::WebBackForwardList::removeAllItems): (WebKit::WebBackForwardList::clear): (WebKit::WebBackForwardList::restoreFromState): * UIProcess/WebCookieManagerProxy.cpp: (WebKit::WebCookieManagerProxy::getHostnamesWithCookies): (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy): * UIProcess/WebFormClient.cpp: (WebKit::WebFormClient::willSubmitForm): * UIProcess/WebFrameListenerProxy.h: (WebKit::WebFrameListenerProxy::setNavigation): * UIProcess/WebFrameProxy.h: (WebKit::WebFrameProxy::contentFilterDidBlockLoad): * UIProcess/WebGrammarDetail.cpp: (WebKit::WebGrammarDetail::guesses): * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::createInspectorPage): * UIProcess/WebMediaCacheManagerProxy.cpp: (WebKit::WebMediaCacheManagerProxy::getHostnamesWithMediaCache): * UIProcess/WebPageProxy.cpp: (WebKit::ExceededDatabaseQuotaRecords::add): (WebKit::WebPageProxy::create): (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::setHistoryClient): (WebKit::WebPageProxy::setNavigationClient): (WebKit::WebPageProxy::setLoaderClient): (WebKit::WebPageProxy::setPolicyClient): (WebKit::WebPageProxy::setFormClient): (WebKit::WebPageProxy::setUIClient): (WebKit::WebPageProxy::setFindClient): (WebKit::WebPageProxy::setFindMatchesClient): (WebKit::WebPageProxy::setDiagnosticLoggingClient): (WebKit::WebPageProxy::setContextMenuClient): (WebKit::WebPageProxy::reattachToWebProcessForReload): (WebKit::WebPageProxy::reattachToWebProcessWithItem): (WebKit::WebPageProxy::loadRequest): (WebKit::WebPageProxy::loadFile): (WebKit::WebPageProxy::loadData): (WebKit::WebPageProxy::loadHTMLString): (WebKit::WebPageProxy::reload): (WebKit::WebPageProxy::didChangeBackForwardList): (WebKit::WebPageProxy::setInitialFocus): (WebKit::WebPageProxy::validateCommand): (WebKit::WebPageProxy::handleWheelEvent): (WebKit::WebPageProxy::processNextQueuedWheelEvent): (WebKit::WebPageProxy::restoreFromSessionState): (WebKit::WebPageProxy::runJavaScriptInMainFrame): (WebKit::WebPageProxy::getRenderTreeExternalRepresentation): (WebKit::WebPageProxy::getSourceForFrame): (WebKit::WebPageProxy::getContentsAsString): (WebKit::WebPageProxy::getBytecodeProfile): (WebKit::WebPageProxy::getContentsAsMHTMLData): (WebKit::WebPageProxy::getSelectionOrContentsAsString): (WebKit::WebPageProxy::getSelectionAsWebArchiveData): (WebKit::WebPageProxy::getMainResourceDataOfFrame): (WebKit::WebPageProxy::getResourceDataFromFrame): (WebKit::WebPageProxy::getWebArchiveOfFrame): (WebKit::WebPageProxy::decidePolicyForNavigationAction): (WebKit::WebPageProxy::decidePolicyForNewWindowAction): (WebKit::WebPageProxy::decidePolicyForResponse): (WebKit::WebPageProxy::sendMessage): (WebKit::WebPageProxy::exceededDatabaseQuota): (WebKit::WebPageProxy::getMarkedRangeAsync): (WebKit::WebPageProxy::getSelectedRangeAsync): (WebKit::WebPageProxy::characterIndexForPointAsync): (WebKit::WebPageProxy::firstRectForCharacterRangeAsync): (WebKit::WebPageProxy::takeSnapshot): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::setHistoryClient): (WebKit::WebProcessPool::setDownloadClient): (WebKit::WebProcessPool::createWebPage): (WebKit::WebProcessPool::getStatistics): (WebKit::WebProcessPool::pluginInfoStoreDidLoadPlugins): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::createWebPage): (WebKit::WebProcessProxy::addBackForwardItem): (WebKit::WebProcessProxy::fetchWebsiteData): * UIProcess/WebsiteData/WebsiteDataRecord.cpp: (WebKit::WebsiteDataRecord::add): * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::create): (WebKit::WebsiteDataStore::WebsiteDataStore): (WebKit::WebsiteDataStore::fetchData): (WebKit::WebsiteDataStore::removeData): (WebKit::WebsiteDataStore::mediaKeyOrigins): * UIProcess/efl/InputMethodContextEfl.cpp: (WebKit::InputMethodContextEfl::InputMethodContextEfl): * UIProcess/efl/InputMethodContextEfl.h: (WebKit::InputMethodContextEfl::create): * UIProcess/efl/WebContextMenuProxyEfl.cpp: (WebKit::WebContextMenuProxyEfl::showContextMenu): * UIProcess/efl/WebUIPopupMenuClient.cpp: (WebUIPopupMenuClient::showPopupMenu): * UIProcess/gtk/InputMethodFilter.cpp: (WebKit::InputMethodFilter::filterKeyEvent): * UIProcess/gtk/KeyBindingTranslator.cpp: (WebKit::KeyBindingTranslator::commandsForKeyEvent): * UIProcess/gtk/RedirectedXCompositeWindow.cpp: (WebKit::XDamageNotifier::add): (WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow): (WebKit::RedirectedXCompositeWindow::surface): * UIProcess/ios/WKActionSheetAssistant.mm: (-[WKActionSheetAssistant showImageSheet]): (-[WKActionSheetAssistant showLinkSheet]): * UIProcess/ios/WKContentView.mm: (-[WKContentView _commonInitializationWithProcessPool:configuration:]): (-[WKContentView initWithFrame:processPool:configuration:webView:]): * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView actionSheetAssistant:decideActionsForElement:defaultActions:]): * UIProcess/ios/WKGeolocationProviderIOS.mm: (-[WKGeolocationProviderIOS geolocationAuthorizationGranted]): (-[WKGeolocationProviderIOS geolocationAuthorizationDenied]): * UIProcess/ios/WKPDFView.mm: (-[WKPDFView actionSheetAssistant:decideActionsForElement:defaultActions:]): * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::selectWithGesture): (WebKit::WebPageProxy::updateSelectionWithTouches): (WebKit::WebPageProxy::requestAutocorrectionData): (WebKit::WebPageProxy::applyAutocorrection): (WebKit::WebPageProxy::executeEditCommand): (WebKit::WebPageProxy::selectTextWithGranularityAtPoint): (WebKit::WebPageProxy::selectPositionAtBoundaryWithDirection): (WebKit::WebPageProxy::moveSelectionAtBoundaryWithDirection): (WebKit::WebPageProxy::selectPositionAtPoint): (WebKit::WebPageProxy::beginSelectionInDirection): (WebKit::WebPageProxy::updateSelectionWithExtentPoint): (WebKit::WebPageProxy::updateSelectionWithExtentPointAndBoundary): (WebKit::WebPageProxy::requestDictationContext): (WebKit::WebPageProxy::requestAutocorrectionContext): (WebKit::WebPageProxy::getLookupContextAtPoint): (WebKit::WebPageProxy::selectWithTwoTouches): (WebKit::WebPageProxy::moveSelectionByOffset): (WebKit::WebPageProxy::focusNextAssistedNode): * UIProcess/ios/WebVideoFullscreenManagerProxy.h: * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::createModelAndInterface): * UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel _chooseFiles:displayString:iconImage:]): * UIProcess/mac/LegacySessionStateCoding.cpp: (WebKit::HistoryEntryDataEncoder::finishEncoding): (WebKit::decodeFormData): (WebKit::decodeBackForwardTreeNode): (WebKit::decodeSessionHistoryEntries): * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm: (WebKit::RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing): * UIProcess/mac/ViewGestureController.h: (WebKit::ViewGestureController::setCustomSwipeViews): * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::PendingSwipeTracker::PendingSwipeTracker): * UIProcess/mac/ViewSnapshotStore.mm: (WebKit::ViewSnapshot::create): (WebKit::ViewSnapshot::ViewSnapshot): (WebKit::ViewSnapshot::setSurface): * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync): (WebKit::WebPageProxy::fontAtSelection): * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (contextMenuItems): (WKBundlePageCopyOriginsWithApplicationCache): * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp: (WKBundlePageOverlayCreate): * WebProcess/InjectedBundle/API/efl/ewk_extension.cpp: (EwkExtension::didCreatePage): * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp: (webkitFrameGetOrCreate): (didInitiateLoadForResource): (willSendRequestForFrame): (didReceiveResponseForResource): (didReceiveContentLengthForResource): (didFinishLoadForResource): (didFailLoadForResource): (webkitWebPageDidReceiveMessage): * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: (-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::addUserScript): (WebKit::InjectedBundle::addUserStyleSheet): * WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp: (WebKit::InjectedBundleBackForwardListItem::children): * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp: (WebKit::InjectedBundlePageContextMenuClient::getCustomMenuFromDefaultItems): * WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp: (WebKit::InjectedBundlePageFormClient::willSendSubmitEvent): (WebKit::InjectedBundlePageFormClient::willSubmitForm): (WebKit::InjectedBundlePageFormClient::didAssociateFormControls): * WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp: (WebKit::InjectedBundlePageResourceLoadClient::willSendRequestForFrame): * WebProcess/Network/WebResourceLoader.cpp: (WebKit::WebResourceLoader::willSendRequest): * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: (WebKit::NPN_PostURL): * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::NetscapePlugin::scheduleTimer): * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: (WebKit::convertStringToKeyCodes): * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm: (WebKit::PDFPlugin::PDFPlugin): * WebProcess/Plugins/PDF/PDFPlugin.mm: (-[WKPDFHUDAnimationDelegate initWithAnimationCompletionHandler:]): * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm: (WebKit::PDFPluginChoiceAnnotation::createAnnotationElement): * WebProcess/Storage/StorageAreaMap.cpp: (WebKit::StorageAreaMap::create): (WebKit::StorageAreaMap::StorageAreaMap): * WebProcess/Storage/StorageNamespaceImpl.cpp: (WebKit::StorageNamespaceImpl::storageArea): * WebProcess/UserContent/WebUserContentController.cpp: (WebKit::WebUserContentController::addUserContentExtensions): * WebProcess/WebCoreSupport/SessionStateConversion.cpp: (WebKit::toHTTPBody): (WebKit::toFrameState): (WebKit::applyFrameState): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm): (WebKit::WebFrameLoaderClient::contentFilterDidBlockLoad): * WebProcess/WebCoreSupport/WebPasteboardOverrides.cpp: (WebKit::WebPasteboardOverrides::addOverride): * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: (WebKit::WebEditorClient::executePendingEditorCommands): * WebProcess/WebPage/FindController.cpp: (WebKit::FindController::findStringMatches): * WebProcess/WebPage/ViewUpdateDispatcher.cpp: (WebKit::ViewUpdateDispatcher::dispatchVisibleContentRectUpdate): * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::createSubframe): (WebKit::WebFrame::create): (WebKit::WebFrame::WebFrame): (WebKit::WebFrame::didReceivePolicyDecision): (WebKit::WebFrame::childFrames): (WebKit::WebFrame::createSelectionSnapshot): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setInjectedBundleContextMenuClient): (WebKit::WebPage::setInjectedBundleFormClient): (WebKit::WebPage::setInjectedBundleUIClient): (WebKit::WebPage::trackedRepaintRects): (WebKit::WebPage::createDocumentLoader): * WebProcess/WebPage/WebPageGroupProxy.cpp: (WebKit::WebPageGroupProxy::addUserContentExtension): * WebProcess/WebPage/WebPageOverlay.cpp: (WebKit::WebPageOverlay::create): (WebKit::WebPageOverlay::WebPageOverlay): * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: (WebKit::LayerTreeHostGtk::RenderFrameScheduler::RenderFrameScheduler): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::computePagesForPrintingAndStartDrawingToPDF): * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm: (WebKit::PlatformCAAnimationRemote::setTimingFunction): (WebKit::PlatformCAAnimationRemote::setValues): (WebKit::PlatformCAAnimationRemote::setTimingFunctions): * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm: (WebKit::RemoteLayerTreeContext::layerWasCreated): (WebKit::RemoteLayerTreeContext::buildTransaction): * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::flushLayers): (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::create): (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::BackingStoreFlusher): (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess): (WebKit::WebProcess::transformObjectsToHandles): * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenInterfaceContext::setLayerHostingContext): (WebKit::WebVideoFullscreenManager::createModelAndInterface): (WebKit::WebVideoFullscreenManager::setSeekableRanges): * WebProcess/soup/WebKitSoupRequestInputStream.cpp: (webkitSoupRequestInputStreamDidFailWithError): Source/WTF: This also removes the definition of WTF::move. * wtf/Deque.h: * wtf/HashMap.h: * wtf/HashSet.h: * wtf/HashTable.h: (WTF::HashTable::add): (WTF::KeyTraits>::HashTable): * wtf/Insertion.h: (WTF::executeInsertions): * wtf/IteratorAdaptors.h: (WTF::FilterIterator::FilterIterator): (WTF::TransformIterator::TransformIterator): (WTF::makeTransformIterator): * wtf/IteratorRange.h: (WTF::IteratorRange::IteratorRange): * wtf/ListHashSet.h: (WTF::U>::takeFirst): (WTF::U>::takeLast): * wtf/MainThread.cpp: (WTF::callOnMainThread): * wtf/MallocPtr.h: (WTF::MallocPtr::operator=): * wtf/MessageQueue.h: (WTF::MessageQueue<DataType>::append): (WTF::MessageQueue<DataType>::appendAndKill): (WTF::MessageQueue<DataType>::appendAndCheckEmpty): (WTF::MessageQueue<DataType>::prepend): * wtf/NakedPtr.h: (WTF::=): * wtf/OSObjectPtr.h: (WTF::OSObjectPtr::operator=): * wtf/Optional.h: (WTF::Optional::Optional): (WTF::Optional::operator=): * wtf/RefPtr.h: (WTF::=): * wtf/RetainPtr.h: (WTF::=): * wtf/RunLoop.cpp: (WTF::RunLoop::dispatch): * wtf/SharedTask.h: (WTF::createSharedTask): * wtf/StdLibExtras.h: (WTF::move): Deleted. * wtf/Threading.cpp: (WTF::threadEntryPoint): (WTF::createThread): * wtf/Vector.h: (WTF::Vector::takeLast): * wtf/efl/DispatchQueueEfl.cpp: (DispatchQueue::dispatch): (DispatchQueue::setSocketEventHandler): (DispatchQueue::performTimerWork): (DispatchQueue::insertTimerWorkItem): * wtf/efl/DispatchQueueWorkItemEfl.h: (WorkItem::WorkItem): (TimerWorkItem::create): (TimerWorkItem::TimerWorkItem): * wtf/efl/WorkQueueEfl.cpp: (WorkQueue::registerSocketEventHandler): (WorkQueue::dispatch): (WorkQueue::dispatchAfter): * wtf/glib/GRefPtr.h: (WTF::=): * wtf/glib/WorkQueueGLib.cpp: (WTF::DispatchAfterContext::DispatchAfterContext): (WTF::WorkQueue::dispatchAfter): * wtf/text/AtomicString.h: (WTF::AtomicString::AtomicString): (WTF::AtomicString::operator=): * wtf/text/StringConcatenate.h: (WTF::tryMakeString): * wtf/text/WTFString.cpp: (WTF::String::isolatedCopy): * wtf/text/WTFString.h: (WTF::String::String): (WTF::StringCapture::releaseString): * wtf/win/GDIObject.h: (WTF::=): Tools: * DumpRenderTree/TestRunner.h: (TestRunner::setAllowedHosts): * DumpRenderTree/win/DRTDataObject.cpp: (DRTDataObject::SetData): * TestWebKitAPI/Tests/WTF/Deque.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/HashMap.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/HashSet.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/NakedPtr.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/Ref.cpp: (TestWebKitAPI::passWithRef): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/RefPtr.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/Vector.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/WTFString.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/ns/RetainPtr.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebCore/CalculationValue.cpp: (TestWebKitAPI::createTestValue): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter): (TestWebKitAPI::InMemoryCompiledContentExtension::create): (TestWebKitAPI::InMemoryCompiledContentExtension::InMemoryCompiledContentExtension): (TestWebKitAPI::createNFAs): (TestWebKitAPI::TEST_F): * TestWebKitAPI/Tests/WebCore/DFACombiner.cpp: (TestWebKitAPI::combine): * TestWebKitAPI/Tests/WebCore/DFAHelpers.h: (TestWebKitAPI::createNFAs): * TestWebKitAPI/Tests/WebKit2/cocoa/WeakObjCPtr.mm: (TEST): * TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp: (WebProcessTest::add): Canonical link: https://commits.webkit.org/170734@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@194496 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-01-02 08:03:08 +00:00
m_ranges = WTFMove(other.m_ranges);
m_epsilonTransitionTargets = WTFMove(other.m_epsilonTransitionTargets);
m_actions = WTFMove(other.m_actions);
Make the NFA transitions range-based https://bugs.webkit.org/show_bug.cgi?id=146338 Reviewed by Alex Christensen. Source/WebCore: Change the NFA to use range based transition for any kind of transition. The fallback transition is also absorbed as ranges. Previously, the NFA would only have single transitions and a fallback transition for all cases not covered by single transitions. The problem with that design was that character ranges (e.g. [a-z]) were extended as individual transitions. Something like [^a] would cover most of the alphabet with transitions. When converting the NFA to DFA, the time is proportional to the number of states multiplied by the number of transitions. With many individual transitions, the run time was an order of magnitude higher than what we want. This patch changes the NFA to only handle ranges of characters. A single transition becomes a range with the character as first and last character in the range ('a' becomes 'a' to 'a'). Ranges of characters are handled direclty (e.g. [a-z] becomes a single 'a' to 'z' transition). In the context of the state machines, ranges have identifies (the target of the transitions). When two ranges collide, they have to be split such that each part retain its target except the intersection that gets the union of the targets. Handling the union of ranges efficiently is critical because we have to do it for every NFA node in any subset when building the DFA. The helper class that does that is MutableRange. The union of ranges is done efficiently because of preconditions on our list of ranges: -The ranges must be sorted. -No range in a list can intersect any other range in the same list. To merge two ranges, we can go over them in order and split them part by part. It is easy to find what goes where because they are both sorted and we can compare the characters of each to know how to move forward. The time to merge 2 range list is proportional to O(n+m) where 'n' and 'm' are the number of ranges in each list. Since taking the union of two lists usually create new ranges, we have to allocate those somewhere efficiently. To do that, MutableRange support an inline capacity, which is used for the NFAToDFA Convertion. --- With ranges, the NFA-to-DFA conversion changes very little: -Each NFA nodes contains a list of ranges and each range has a list of targets. -The subset construction select any number of NFA nodes corresponding to a single deterministic state. -For the subset, we can use MutableRange to merge the ranges of every NFA node in the set. The resulting list has rangeis with targets corresponding to the union of all the transitions. -We go over all the ranges the same way we used to go over the transitions. Since the DFA does not support ranges, the ranges are spread as individual transitions + fallback transition. --- With the efficient merging solved, we still need the actual NFA to use ranges instead of individual transitions. I could have used MutableRange for that but it is not the most compact way to represent ranges that do not need merging. Instead, the NFA uses a custom structure: ImmutableNFA. It is basically the same thing, but in that one you cannot change a list of range after creating it. Consequently, the sorted ranges in ImmutableNFA are also subsequent in memory, which is really nice to go over them efficiently when merging ranges in the NFA-to-DFA conversion. :) When building the NFA, we don't know all the transitions when creating each node, BUT we know that we have very few node "unfinished" at any time. Since we build by going depth-first in the prefix-tree, we only have the max-depth of live nodes in the worst case. To help building the NFA out of the prefix tree, we have ImmutableNFANodeBuilder. It keeps all the informations about a NFA node, but in a non-compact, mutable form. When a ImmutableNFANodeBuilder is destroyed, it serialize the information into the immutable NFA. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::generateNFAForSubtree): (WebCore::ContentExtensions::CombinedURLFilters::processNFAs): * contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::empty): * contentextensions/DFA.h: * contentextensions/ImmutableNFA.h: Added. (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::end): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::end): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::debugPrint): (WebCore::ContentExtensions::ImmutableNFA::transitionsForNode): (WebCore::ContentExtensions::ImmutableNFA::root): (WebCore::ContentExtensions::ImmutableNFA::finalize): (WebCore::ContentExtensions::ImmutableNFA::memoryUsed): * contentextensions/ImmutableNFANodeBuilder.h: Added. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::setActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::finalize): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkTransitions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkEpsilonTransitions): * contentextensions/MutableRange.h: Added. (WebCore::ContentExtensions::MutableRange::MutableRange): (WebCore::ContentExtensions::MutableRange::operator=): (WebCore::ContentExtensions::MutableRange::size): * contentextensions/MutableRangeList.h: Added. (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator*): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator->): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator==): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator!=): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator++): (WebCore::ContentExtensions::MutableRangeList::begin): (WebCore::ContentExtensions::MutableRangeList::end): (WebCore::ContentExtensions::MutableRangeList::appendRange): (WebCore::ContentExtensions::MutableRangeList::extend): (WebCore::ContentExtensions::MutableRangeList::isEmpty): (WebCore::ContentExtensions::MutableRangeList::clear): (WebCore::ContentExtensions::MutableRangeList::debugPrint): (WebCore::ContentExtensions::MutableRangeList::insertBetween): (WebCore::ContentExtensions::MutableRangeList::initializeFrom): * contentextensions/NFA.cpp: (WebCore::ContentExtensions::NFA::debugPrintDot): (WebCore::ContentExtensions::NFA::NFA): Deleted. (WebCore::ContentExtensions::NFA::createNode): Deleted. (WebCore::ContentExtensions::NFA::memoryUsed): Deleted. (WebCore::ContentExtensions::NFA::addTransition): Deleted. (WebCore::ContentExtensions::NFA::addEpsilonTransition): Deleted. (WebCore::ContentExtensions::NFA::addTransitionsOnAnyCharacter): Deleted. (WebCore::ContentExtensions::NFA::setActions): Deleted. (WebCore::ContentExtensions::NFA::graphSize): Deleted. (WebCore::ContentExtensions::NFA::restoreToGraphSize): Deleted. (WebCore::ContentExtensions::printRange): Deleted. (WebCore::ContentExtensions::printTransitions): Deleted. * contentextensions/NFA.h: (WebCore::ContentExtensions::NFA::root): Deleted. (WebCore::ContentExtensions::NFA::addRuleId): Deleted. * contentextensions/NFANode.h: * contentextensions/NFAToDFA.cpp: (WebCore::ContentExtensions::epsilonClosureExcludingSelf): (WebCore::ContentExtensions::resolveEpsilonClosures): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::convert): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::extend): (WebCore::ContentExtensions::createCombinedTransition): (WebCore::ContentExtensions::canUseFallbackTransition): (WebCore::ContentExtensions::findBestFallbackTarget): (WebCore::ContentExtensions::getOrCreateDFANode): (WebCore::ContentExtensions::NFAToDFA::convert): (WebCore::ContentExtensions::populateTransitions): Deleted. * contentextensions/NFAToDFA.h: * contentextensions/Term.h: (WebCore::ContentExtensions::Term::Term): (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): (WebCore::ContentExtensions::Term::Term::generateGraph): Deleted. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: Test some new interesting cases. Canonical link: https://commits.webkit.org/164509@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186079 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-06-29 19:40:12 +00:00
m_nodeId = other.m_nodeId;
m_finalized = other.m_finalized;
other.m_immutableNFA = nullptr;
other.m_finalized = true;
return *this;
}
private:
void finalize()
{
ASSERT_WITH_MESSAGE(!m_finalized, "The API contract is that the builder can only be finalized once.");
m_finalized = true;
ImmutableNFANode& immutableNFANode = m_immutableNFA->nodes[m_nodeId];
sinkActions(immutableNFANode);
sinkEpsilonTransitions(immutableNFANode);
sinkTransitions(immutableNFANode);
}
void sinkActions(ImmutableNFANode& immutableNFANode)
{
unsigned actionStart = m_immutableNFA->actions.size();
for (const ActionType& action : m_actions)
m_immutableNFA->actions.append(action);
unsigned actionEnd = m_immutableNFA->actions.size();
immutableNFANode.actionStart = actionStart;
immutableNFANode.actionEnd = actionEnd;
}
void sinkTransitions(ImmutableNFANode& immutableNFANode)
{
unsigned transitionsStart = m_immutableNFA->transitions.size();
for (const auto& range : m_ranges) {
unsigned targetsStart = m_immutableNFA->targets.size();
for (uint32_t target : range.data)
m_immutableNFA->targets.append(target);
unsigned targetsEnd = m_immutableNFA->targets.size();
m_immutableNFA->transitions.append(ImmutableRange<CharacterType> { targetsStart, targetsEnd, range.first, range.last });
}
unsigned transitionsEnd = m_immutableNFA->transitions.size();
immutableNFANode.rangesStart = transitionsStart;
immutableNFANode.rangesEnd = transitionsEnd;
}
void sinkEpsilonTransitions(ImmutableNFANode& immutableNFANode)
{
unsigned start = m_immutableNFA->epsilonTransitionsTargets.size();
for (uint32_t target : m_epsilonTransitionTargets)
m_immutableNFA->epsilonTransitionsTargets.append(target);
unsigned end = m_immutableNFA->epsilonTransitionsTargets.size();
immutableNFANode.epsilonTransitionTargetsStart = start;
immutableNFANode.epsilonTransitionTargetsEnd = end;
}
TypedImmutableNFA* m_immutableNFA { nullptr };
MutableRangeList<CharacterType, TargetSet> m_ranges;
TargetSet m_epsilonTransitionTargets;
HashSet<ActionType, WTF::IntHash<ActionType>, WTF::UnsignedWithZeroKeyHashTraits<ActionType>> m_actions;
uint32_t m_nodeId;
bool m_finalized { true };
};
} // namespace ContentExtensions
Make the NFA transitions range-based https://bugs.webkit.org/show_bug.cgi?id=146338 Reviewed by Alex Christensen. Source/WebCore: Change the NFA to use range based transition for any kind of transition. The fallback transition is also absorbed as ranges. Previously, the NFA would only have single transitions and a fallback transition for all cases not covered by single transitions. The problem with that design was that character ranges (e.g. [a-z]) were extended as individual transitions. Something like [^a] would cover most of the alphabet with transitions. When converting the NFA to DFA, the time is proportional to the number of states multiplied by the number of transitions. With many individual transitions, the run time was an order of magnitude higher than what we want. This patch changes the NFA to only handle ranges of characters. A single transition becomes a range with the character as first and last character in the range ('a' becomes 'a' to 'a'). Ranges of characters are handled direclty (e.g. [a-z] becomes a single 'a' to 'z' transition). In the context of the state machines, ranges have identifies (the target of the transitions). When two ranges collide, they have to be split such that each part retain its target except the intersection that gets the union of the targets. Handling the union of ranges efficiently is critical because we have to do it for every NFA node in any subset when building the DFA. The helper class that does that is MutableRange. The union of ranges is done efficiently because of preconditions on our list of ranges: -The ranges must be sorted. -No range in a list can intersect any other range in the same list. To merge two ranges, we can go over them in order and split them part by part. It is easy to find what goes where because they are both sorted and we can compare the characters of each to know how to move forward. The time to merge 2 range list is proportional to O(n+m) where 'n' and 'm' are the number of ranges in each list. Since taking the union of two lists usually create new ranges, we have to allocate those somewhere efficiently. To do that, MutableRange support an inline capacity, which is used for the NFAToDFA Convertion. --- With ranges, the NFA-to-DFA conversion changes very little: -Each NFA nodes contains a list of ranges and each range has a list of targets. -The subset construction select any number of NFA nodes corresponding to a single deterministic state. -For the subset, we can use MutableRange to merge the ranges of every NFA node in the set. The resulting list has rangeis with targets corresponding to the union of all the transitions. -We go over all the ranges the same way we used to go over the transitions. Since the DFA does not support ranges, the ranges are spread as individual transitions + fallback transition. --- With the efficient merging solved, we still need the actual NFA to use ranges instead of individual transitions. I could have used MutableRange for that but it is not the most compact way to represent ranges that do not need merging. Instead, the NFA uses a custom structure: ImmutableNFA. It is basically the same thing, but in that one you cannot change a list of range after creating it. Consequently, the sorted ranges in ImmutableNFA are also subsequent in memory, which is really nice to go over them efficiently when merging ranges in the NFA-to-DFA conversion. :) When building the NFA, we don't know all the transitions when creating each node, BUT we know that we have very few node "unfinished" at any time. Since we build by going depth-first in the prefix-tree, we only have the max-depth of live nodes in the worst case. To help building the NFA out of the prefix tree, we have ImmutableNFANodeBuilder. It keeps all the informations about a NFA node, but in a non-compact, mutable form. When a ImmutableNFANodeBuilder is destroyed, it serialize the information into the immutable NFA. * WebCore.xcodeproj/project.pbxproj: * contentextensions/CombinedURLFilters.cpp: (WebCore::ContentExtensions::generateNFAForSubtree): (WebCore::ContentExtensions::CombinedURLFilters::processNFAs): * contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList): * contentextensions/DFA.cpp: (WebCore::ContentExtensions::DFA::empty): * contentextensions/DFA.h: * contentextensions/ImmutableNFA.h: Added. (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstTargetIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstTargets::end): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator*): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator->): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator==): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator!=): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::operator++): (WebCore::ContentExtensions::ImmutableNFA::ConstRangeIterator::data): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::begin): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::end): (WebCore::ContentExtensions::ImmutableNFA::IterableConstRange::debugPrint): (WebCore::ContentExtensions::ImmutableNFA::transitionsForNode): (WebCore::ContentExtensions::ImmutableNFA::root): (WebCore::ContentExtensions::ImmutableNFA::finalize): (WebCore::ContentExtensions::ImmutableNFA::memoryUsed): * contentextensions/ImmutableNFANodeBuilder.h: Added. (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::~ImmutableNFANodeBuilder): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::addEpsilonTransition): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::setActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::operator=): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::finalize): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkActions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkTransitions): (WebCore::ContentExtensions::ImmutableNFANodeBuilder::sinkEpsilonTransitions): * contentextensions/MutableRange.h: Added. (WebCore::ContentExtensions::MutableRange::MutableRange): (WebCore::ContentExtensions::MutableRange::operator=): (WebCore::ContentExtensions::MutableRange::size): * contentextensions/MutableRangeList.h: Added. (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator*): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator->): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator==): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator!=): (WebCore::ContentExtensions::MutableRangeList::ConstIterator::operator++): (WebCore::ContentExtensions::MutableRangeList::begin): (WebCore::ContentExtensions::MutableRangeList::end): (WebCore::ContentExtensions::MutableRangeList::appendRange): (WebCore::ContentExtensions::MutableRangeList::extend): (WebCore::ContentExtensions::MutableRangeList::isEmpty): (WebCore::ContentExtensions::MutableRangeList::clear): (WebCore::ContentExtensions::MutableRangeList::debugPrint): (WebCore::ContentExtensions::MutableRangeList::insertBetween): (WebCore::ContentExtensions::MutableRangeList::initializeFrom): * contentextensions/NFA.cpp: (WebCore::ContentExtensions::NFA::debugPrintDot): (WebCore::ContentExtensions::NFA::NFA): Deleted. (WebCore::ContentExtensions::NFA::createNode): Deleted. (WebCore::ContentExtensions::NFA::memoryUsed): Deleted. (WebCore::ContentExtensions::NFA::addTransition): Deleted. (WebCore::ContentExtensions::NFA::addEpsilonTransition): Deleted. (WebCore::ContentExtensions::NFA::addTransitionsOnAnyCharacter): Deleted. (WebCore::ContentExtensions::NFA::setActions): Deleted. (WebCore::ContentExtensions::NFA::graphSize): Deleted. (WebCore::ContentExtensions::NFA::restoreToGraphSize): Deleted. (WebCore::ContentExtensions::printRange): Deleted. (WebCore::ContentExtensions::printTransitions): Deleted. * contentextensions/NFA.h: (WebCore::ContentExtensions::NFA::root): Deleted. (WebCore::ContentExtensions::NFA::addRuleId): Deleted. * contentextensions/NFANode.h: * contentextensions/NFAToDFA.cpp: (WebCore::ContentExtensions::epsilonClosureExcludingSelf): (WebCore::ContentExtensions::resolveEpsilonClosures): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetSource::NodeIdSetToUniqueNodeIdSetSource): (WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::convert): (WebCore::ContentExtensions::DataConverterWithEpsilonClosure::extend): (WebCore::ContentExtensions::createCombinedTransition): (WebCore::ContentExtensions::canUseFallbackTransition): (WebCore::ContentExtensions::findBestFallbackTarget): (WebCore::ContentExtensions::getOrCreateDFANode): (WebCore::ContentExtensions::NFAToDFA::convert): (WebCore::ContentExtensions::populateTransitions): Deleted. * contentextensions/NFAToDFA.h: * contentextensions/Term.h: (WebCore::ContentExtensions::Term::Term): (WebCore::ContentExtensions::Term::generateGraph): (WebCore::ContentExtensions::Term::generateSubgraphForAtom): (WebCore::ContentExtensions::Term::Term::generateGraph): Deleted. Tools: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: Test some new interesting cases. Canonical link: https://commits.webkit.org/164509@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186079 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2015-06-29 19:40:12 +00:00
} // namespace WebCore
#endif // ENABLE(CONTENT_EXTENSIONS)