Use unique_ptr instead of delete in a few places
https://bugs.webkit.org/show_bug.cgi?id=122639

Reviewed by Anders Carlsson.

Source/WebCore:

* Modules/webdatabase/DatabaseBackendBase.cpp:
(WebCore::guidToDatabaseMap): Use NeverDestroyed instead of DEFINE_STATIC_LOCAL.
(WebCore::guidForOriginAndName): Ditto.
(WebCore::DatabaseBackendBase::DatabaseBackendBase): Removed unneeded initialization
of m_guid, which is set in the body of the constructor explicitly anyway. Use emptyString.
Use unique_ptr for the values in the map. Use the add idiom instead of the get/set idiom.
(WebCore::DatabaseBackendBase::closeDatabase): Use the find/remove idiom instead of the
get/remove idiom.
(WebCore::DatabaseBackendBase::performOpenAndVerify): Use auto here to avoid having to
use the map type by name.

* loader/cache/CachedFont.cpp:
(WebCore::CachedFont::CachedFont): Don't initialize m_fontData to 0; unique_ptr will do that.
(WebCore::CachedFont::~CachedFont): Don't delete m_fontData. unique_ptr will do that.
(WebCore::CachedFont::ensureCustomFontData): Add a get.
(WebCore::CachedFont::allClientsRemoved): Don't delete m_fontData. Use nullptr instead of 0.
* loader/cache/CachedFont.h: Changed m_fontData to a unique_ptr.

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::BitmapImage): Don't initialize m_frameTimer to 0; unique_ptr will do that.
(WebCore::BitmapImage::startAnimation): Use make_unique to create the timer.
(WebCore::BitmapImage::stopAnimation): Don't delete m_frameTimer. Use nullptr instead of 0.
* platform/graphics/BitmapImage.h: Changed m_FrameTimer to a unique_ptr.
* platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::BitmapImage::BitmapImage): Don't initialize m_frameTimer to 0; unique_ptr will do that.

* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::~FontCustomPlatformData): Don't call CGFontRelease on m_cgFont.
(WebCore::FontCustomPlatformData::fontPlatformData): Use get on m_cgFont.
(WebCore::createFontCustomPlatformData): Use nullptr instead of 0, and make_unique instead of new.
* platform/graphics/mac/FontCustomPlatformData.h: Chnaged m_cgFont to be a RetainPtr, and the
return value from createFontCustomPlatformData to be a unique_ptr.

* platform/graphics/blackberry/FontCustomPlatformData.h:
* platform/graphics/blackberry/FontCustomPlatformDataBlackBerry.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/cairo/BitmapImageCairo.cpp:
(WebCore::BitmapImage::BitmapImage):
* platform/graphics/cairo/FontCustomPlatformData.h:
* platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::BitmapImage::BitmapImage):
* platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/win/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/win/FontCustomPlatformData.h:
* platform/graphics/win/FontCustomPlatformDataCairo.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/wince/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/wince/FontCustomPlatformData.h:
Same thing on all the other platforms.

* platform/network/NetworkStorageSession.h: Changed return value of createPrivateBrowsingSession
to a unique_ptr, and made constructors public.

* platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::createPrivateBrowsingSession): Use make_unique.

* platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::defaultSession):
(WebCore::NetworkStorageSession::defaultStorageSession):
(WebCore::NetworkStorageSession::createPrivateBrowsingSession):
(WebCore::NetworkStorageSession::switchToNewTestingSession):
Same thing on all the other platforms.

Source/WebKit/mac:

* History/WebHistory.mm:
(-[WebHistoryPrivate init]): Use make_unique.
(-[WebHistoryPrivate dealloc]): Don't delete.
(-[WebHistoryPrivate finalize]): Don't delete.
(-[WebHistoryPrivate data]): Use get.

* WebCoreSupport/WebFrameNetworkingContext.mm:
(privateSession): Use NeverDestroyed here instead of a raw pointer.
(WebFrameNetworkingContext::ensurePrivateBrowsingSession): Use the
new function instead of direct global variable access.
(WebFrameNetworkingContext::destroyPrivateBrowsingSession): Ditto.
(WebFrameNetworkingContext::storageSession): Ditto.

* WebView/WebFrame.mm:
(-[WebFramePrivate dealloc]): Don't delete.
(-[WebFramePrivate finalize]): Don't delete.
(-[WebFrame _attachScriptDebugger]): Use make_unique.
(-[WebFrame _detachScriptDebugger]): Don't delete.
* WebView/WebFrameInternal.h: Use unique_ptr.

Source/WebKit/win:

* WebCoreSupport/WebFrameNetworkingContext.cpp:
(privateSession):
(identifierBase):
(WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts):
(WebFrameNetworkingContext::setPrivateBrowsingStorageSessionIdentifierBase):
(WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebFrameNetworkingContext::destroyPrivateBrowsingSession):
(WebFrameNetworkingContext::storageSession):

Source/WebKit2:

* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::privateBrowsingStorageSession): Use NeverDestroyed and unique_ptr.
(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession): Use std::move.

* Shared/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::startDownload): Use std::move. Also add instead of set.
(WebKit::DownloadManager::convertHandleToDownload): Ditto.
(WebKit::DownloadManager::downloadFinished): Don't delete.

* Shared/Downloads/DownloadManager.h: Changed m_downloads to hold unique_ptr instead
of raw pointers.

* Shared/SandboxExtension.h: Use std::unique_ptr for m_data.

* Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::HandleArray::HandleArray): Don't initialize m_data to 0.
(WebKit::SandboxExtension::HandleArray::~HandleArray): Don't delete m_data.
(WebKit::SandboxExtension::HandleArray::allocate): Use make_unique to allocate m_data.

* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::privateSession): Use NeverDestroyed and unique_ptr.
(WebKit::identifierBase): Use NeverDestroyed.
(WebKit::WebFrameNetworkingContext::setPrivateBrowsingStorageSessionIdentifierBase):
Updated to use the above.
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession): Ditto.
(WebKit::WebFrameNetworkingContext::destroyPrivateBrowsingSession): Ditto.
(WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts): Ditto.
(WebKit::WebFrameNetworkingContext::storageSession): Ditto.

* WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
(WebKit::privateSession):
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::destroyPrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::storageSession):
(WebKit::WebFrameNetworkingContext::webFrameLoaderClient):
More of the same.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157337 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Replace RenderText::renderedTextLength with hasRenderedText
https://bugs.webkit.org/show_bug.cgi?id=122693

Reviewed by Andreas Kling.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157338 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix potential register trampling in JIT since r157313.
https://bugs.webkit.org/show_bug.cgi?id=122691

Patch by Julien Brianceau <jbriance@cisco.com> on 2013-10-12
Reviewed by Michael Saboff.

* jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsWithExecState):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157339 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Factor line box code from RenderText to a class
https://bugs.webkit.org/show_bug.cgi?id=122694

Reviewed by Andreas Kling.

Create RenderTextLineBoxes and move some line box specific code there.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157340 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Replace bounds checking ASSERTs with ASSERT_WITH_SECURITY_IMPLICATION
https://bugs.webkit.org/show_bug.cgi?id=120893

Patch by Jessica Pease <jessica_n_pease@apple.com> on 2013-09-06
Reviewed by Darin Adler.

Source/WebCore:

* Modules/indexeddb/IDBKeyPath.cpp:
(WebCore::IDBKeyPathLexer::lex):
* Modules/indexeddb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::compareEncodedIDBKeys):
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::cssPropertyIDForJSCSSPropertyName):
* css/CSSFontSelector.cpp:
(WebCore::compareFontFaces):
* css/CSSParser.cpp:
(WebCore::CSSParser::rewriteSpecifiers):
* html/HTMLCollection.cpp:
(WebCore::traverseMatchingElementsForwardToOffset):
(WebCore::LiveNodeListBase::traverseChildNodeListForwardToOffset):
(WebCore::HTMLCollection::traverseForwardToOffset):
* html/HTMLFontElement.cpp:
(WebCore::parseFontSize):
* html/parser/HTMLParserIdioms.cpp:
(WebCore::parseHTMLIntegerInternal):
(WebCore::parseHTMLNonNegativeIntegerInternal):
* inspector/InspectorStyleSheet.h:
(WebCore::InspectorStyleProperty::setRawTextFromStyleDeclaration):
* platform/graphics/StringTruncator.cpp:
(WebCore::centerTruncateToBuffer):
(WebCore::rightTruncateToBuffer):
(WebCore::truncateString):
* platform/graphics/TextRun.h:
(WebCore::TextRun::subRun):
* platform/text/BidiRunList.h:
(WebCore::::reverseRuns):
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::selectionRectForTextFragment):
(WebCore::SVGInlineTextBox::mapStartEndPositionsIntoFragmentCoordinates):
* rendering/svg/SVGTextChunkBuilder.cpp:
(WebCore::SVGTextChunkBuilder::buildTextChunks):
* rendering/svg/SVGTextLayoutEngine.cpp:
(WebCore::SVGTextLayoutEngine::currentLogicalCharacterMetrics):
* rendering/svg/SVGTextQuery.cpp:
(WebCore::SVGTextQuery::mapStartEndPositionsIntoFragmentCoordinates):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
* svg/SVGPathByteStreamSource.h:
(WebCore::SVGPathByteStreamSource::readType):

Source/WebKit2:

* Shared/Plugins/PluginQuirks.h:
(WebKit::PluginQuirks::add):

Source/WTF:

* wtf/BumpPointerAllocator.h:
(WTF::BumpPointerPool::ensureCapacity):
(WTF::BumpPointerPool::alloc):
(WTF::BumpPointerPool::ensureCapacityCrossPool):
* wtf/FastMalloc.cpp:
(WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
* wtf/StringPrintStream.cpp:
(WTF::StringPrintStream::increaseSize):
* wtf/dtoa/utils.h:
(WTF::double_conversion::BufferReference::SubBufferReference):
* wtf/text/WTFString.cpp:
(WTF::String::fromUTF8):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157341 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Replace static cast ASSERTs with ASSERT_WITH_SECURITY_IMPLICATION
https://bugs.webkit.org/show_bug.cgi?id=120803

Patch by Jessica Pease <jessica_n_pease@apple.com> on 2013-09-27
Reviewed by Andreas Kling.

No new tests because we're just changing assertions.

Source/WebCore:

* accessibility/AccessibilityMockObject.h:
(WebCore::toAccessibilityMockObject):
* bindings/js/JSCanvasRenderingContextCustom.cpp:
(WebCore::toJS):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::execute):
* css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::image):
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyTextUnderlinePosition::applyValue):
* dom/Element.cpp:
(WebCore::Element::elementRareData):
(WebCore::Element::synchronizeAttribute):
* dom/FocusEvent.h:
(WebCore::toFocusEvent):
* dom/MouseEvent.h:
(WebCore::toMouseEvent):
* dom/Node.cpp:
(WebCore::Node::rareData):
* dom/StyledElement.cpp:
(WebCore::StyledElement::ensureMutableInlineStyle):
* dom/TouchEvent.h:
(WebCore::toTouchEvent):
* editing/CompositeEditCommand.h:
(WebCore::toCompositeEditCommand):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk):
* html/track/AudioTrack.h:
(WebCore::toAudioTrack):
* html/track/TextTrack.h:
(WebCore::toTextTrack):
* html/track/VideoTrack.h:
(WebCore::toVideoTrack):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
* loader/cache/CachedResourceClientWalker.h:
(WebCore::CachedResourceClientWalker::next):
* page/FrameView.h:
(WebCore::toFrameView):
* rendering/InlineBox.cpp:
(WebCore::InlineBox::root):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::createLineBoxesFromBidiRuns):
* rendering/svg/SVGPathData.cpp:
(WebCore::updatePathFromEllipseElement):
(WebCore::updatePathFromLineElement):
(WebCore::updatePathFromPolygonElement):
(WebCore::updatePathFromPolylineElement):
* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::document):

Source/WebKit2:

* Shared/Plugins/NPObjectProxy.h:
(WebKit::NPObjectProxy::toNPObjectProxy):
* WebProcess/Plugins/Netscape/NPJSObject.h:
(WebKit::NPJSObject::toNPJSObject):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157342 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Generate tighter isFooElement() functions for HTML elements.
<https://webkit.org/b/122696>

Reviewed by Antti Koivisto.

Specialize HTML element type checking helpers to only compare the
localName and not the fully qualified tag name.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157343 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add a feature define for SubtleCrypto
https://bugs.webkit.org/show_bug.cgi?id=122683

Reviewed by Anders Carlsson.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157344 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move more code to RenderTextLineBoxes
https://bugs.webkit.org/show_bug.cgi?id=122697

Reviewed by Andreas Kling.

* rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::boundingBox):
(WebCore::RenderTextLineBoxes::visualOverflowBoundingBox):
(WebCore::RenderTextLineBoxes::hasRenderedText):
(WebCore::RenderTextLineBoxes::caretMinOffset):
(WebCore::RenderTextLineBoxes::caretMaxOffset):
        
    Moved these.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157345 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move line dirtying code to RenderTextLineBoxes
https://bugs.webkit.org/show_bug.cgi?id=122699

Reviewed by Andreas Kling.

* rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::removeAllFromParent):
        
    Also moved the removal loop.

(WebCore::RenderTextLineBoxes::dirtyAll):
(WebCore::RenderTextLineBoxes::dirtyRange):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157346 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Soup] The NeverDestroyed<std::unique_ptr<NetworkStorageSession>> variable in defaultSession() should be static
https://bugs.webkit.org/show_bug.cgi?id=122700

Reviewed by Anders Carlsson.

* platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::defaultSession): The NeverDestroyed variable should be static to avoid its reinitialization every time
the function is called. This was exposed by r157337 and should fix the subsequent crashes.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157347 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove unused ScrollingCoordinator hooks.
<https://webkit.org/b/122701>

Reviewed by Anders Carlsson.

Remove leftover ScrollingCoordinator hooks that were only used
by the Chromium port.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157348 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move positionForPoint to RenderTextLineBoxes
https://bugs.webkit.org/show_bug.cgi?id=122703

Reviewed by Andreas Kling.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157349 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rename toParentMediaElement to parentMediaElement, since it's not a type cast
https://bugs.webkit.org/show_bug.cgi?id=122707

Reviewed by Eric Carlson.

* accessibility/AccessibilityMediaControls.cpp:
(WebCore::AccessibilityMediaControlsContainer::controllingVideoElement): Call the
function by its new name, and also remove unnecessary type casting.

* html/shadow/MediaControlElementTypes.cpp:
(WebCore::parentMediaElement): Renamed from toParentMediaElement. Changed to use
nullptr. Removed an unnecessary null check.

* html/shadow/MediaControlElementTypes.h: Renamed from toParentMediaElement.
Changed the argument to the RenderObject overload to be a reference rather than
a pointer since it doesn't handle null.

* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler):
(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay):
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
(WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):
(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
(WebCore::MediaControlTextTrackContainerElement::updateTimerFired):
(WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation):
(WebCore::MediaControlTextTrackContainerElement::updateSizes):
(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
Updated to use the new name. Also use nullptr.

* html/shadow/MediaControlsBlackBerry.cpp:
(WebCore::MediaControlFullscreenFullscreenButtonElement::defaultEventHandler):
Updated to use the new name.

* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::determineFullScreenMultiplier):
(WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
(WebCore::RenderThemeBlackBerry::paintMediaPlayButton):
(WebCore::RenderThemeBlackBerry::paintMediaRewindButton):
(WebCore::RenderThemeBlackBerry::paintMediaMuteButton):
(WebCore::RenderThemeBlackBerry::paintMediaFullscreenButton):
(WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
(WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
Updated to use the new name.

* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::paintMediaSliderTrack):
Updated to use the new name.

* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::paintMediaSliderTrack):
(WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack):
Updated to use the new name.

* rendering/RenderMediaControls.cpp:
(WebCore::RenderMediaControls::paintMediaControlsPart):
Call the function by its new name and with a reference instead of a pointer.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157350 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebViews inside OS X screen savers have large caches, but should not
https://bugs.webkit.org/show_bug.cgi?id=122604

We use WebCacheModelDocumentViewer by default for apps linked against
modern WebKit, and WebCacheModelDocumentBrowser for apps linked
against legacy WebKit. ScreenSaverEngine.app doesn't link against
WebKit at all, and thus falls into the legacy case by accident because
NSVersionOfLinkTimeLibrary("WebKit") returns -1.

But WebViews inside screen savers are almost certainly not being used
as browsers, so this large-ish cache specified by
WebCacheModelDocumentBrowser is wasteful. This is likely true for all
apps that don't directly link against WebKit, so now we use
WebCacheModelDocumentViewer by default for those apps.

Reviewed by Darin Adler.

* WebView/WebPreferences.mm:
(cacheModelForMainBundle): Use WebCacheModelDocumentViewer by default
for apps that don't link against WebKit directly. Also converted to
use @autoreleasepool {} and early returns while I was in here.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157351 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove unneeded extra memory allocation and indirection for ValidityState
https://bugs.webkit.org/show_bug.cgi?id=122705

Reviewed by Anders Carlsson.

* CMakeLists.txt: Removed ValidityState.cpp.
* GNUmakefile.list.am: Ditto.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.

* html/FormAssociatedElement.cpp: Removed ValidityState.h include and the
FormAssociatedElement::validity function. That function is now an inline
in the ValidityState.h header.

* html/FormAssociatedElement.h: Added badInput function, the only function
from the ValidityState interface that was not already present here. Removed
m_validityState.

* html/HTMLFormControlElement.cpp: Removed include of ValidityState.h.
(WebCore::HTMLFormControlElement::isValidFormControlElement): Use the valid
function directly instead of indirectly through the validity state.
(WebCore::HTMLFormControlElement::setNeedsValidityCheck): Ditto.

* html/ValidityState.cpp: Removed.

* html/ValidityState.h: Removed the body of the ValidityState class and
made it effectively a "typedef" for FormAssociatedElement. It's actually
a derived class that adds no members, which is not quite right but will
work just fine for this.
(WebCore::FormAssociatedElement::validity): Implemented; just returns the
FormAssociatedElement, which the bindings expose as a ValidityState.

* html/ValidityState.idl: Use SkipVTableValidation instead of
ImplementationLacksVTable because FormAssociatedElement does have a vtable.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157352 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move code to find elements in slider shadow tree into RangeInputType class, since it creates that tree
https://bugs.webkit.org/show_bug.cgi?id=122708

Reviewed by Anders Carlsson.

* accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySliderThumb::elementRect): Use HTMLInputElement::sliderThumbElement
to find the thumb, rather than using the sliderThumbElementOf function.

* html/InputType.h: Use nullptr instead of 0. Tweak formatting a bit.

* html/RangeInputType.cpp:
(WebCore::RangeInputType::handleMouseDownEvent): Use typedSliderThumbElement function.
(WebCore::RangeInputType::handleTouchEvent): Ditto.
(WebCore::RangeInputType::createShadowSubtree): Fixed assertion to match the code below.
(WebCore::RangeInputType::sliderTrackElement): Moved next to the createShadowSubtree function
since it is finding an element in that subtree. Changed to do the work here instead of calling
a function in another file.
(WebCore::RangeInputType::typedSliderThumbElement): Added. Finds the slider thumb element,
and returns it as a reference with a specific type.
(WebCore::RangeInputType::sliderThumbElement): Changed to call typedSliderThumbElement, loosening
the type, and returning a pointer Changed to call typedSliderThumbElement, loosening
the type, and returning a pointer.
(WebCore::RangeInputType::minOrMaxAttributeChanged): Use typedSliderThumbElement.
(WebCore::RangeInputType::setValue): Ditto.
(WebCore::RangeInputType::listAttributeTargetChanged): Ditto.

* html/RangeInputType.h: Marked the class FINAL. Tweaked formatting a bit.
Added the typedSliderThumbElement function.

* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::setPositionFromPoint): Call the HTMLInputElement::sliderTrackElement
function instead of having the input element's shadow subtree hierarchy hard-coded here.
(WebCore::SliderThumbElement::cloneElementWithoutAttributesAndChildren): Moved here from the header,
since it's a virtual function that won't be inlined.

* html/shadow/SliderThumbElement.h: Removed unneeded forward declarations. Made more virtual
functions private and added more OVERRIDE. Removed the toSliderThumbElement, sliderThumbElementOf,
and sliderTrackElementOf functions.

* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::layout): Use HTMLInputElement::sliderThumbElement.
(WebCore::RenderSlider::inDragMode): Ditto.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157353 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move querySelector from Node to ContainerNode and use references instead of pointers
https://bugs.webkit.org/show_bug.cgi?id=122709

Reviewed by Anders Carlsson.

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::querySelector): Moved here from Node. Pass a reference instead
of a pointer to SelectorQuery. Changed return types to RefPtr and raw pointer instead of
PassRefPtr.
(WebCore::ContainerNode::querySelectorAll): Ditto.
* dom/ContainerNode.h: Added the new functions.

* dom/Element.cpp:
(WebCore::Element::webkitMatchesSelector): Use && instead of an if statement and a reference rather than
a pointer.

* dom/Node.cpp: Sorted includes, removed SelectorQuery.h, removed the querySelector functions.
(WebCore::Node::ownerDocument): Use document instead of doc and nullptr instead of 0.
* dom/Node.h: Removed the querySelector functions.

* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::selectorMatches): Take references instead of pointers.
(WebCore::SelectorDataList::matches): Ditto.
(WebCore::SelectorDataList::queryAll): Return a RefPtr instead of PassRefPtr.
(WebCore::SelectorDataList::queryFirst): Ditto. Also use nullptr.
(WebCore::selectorForIdLookup): Take references instead of pointers.
(WebCore::isTreeScopeRoot): Ditto.
(WebCore::SelectorDataList::executeFastPathForIdSelector): Ditto.
(WebCore::isSingleTagNameSelector): Ditto.
(WebCore::elementsForLocalName): Ditto. Also use iterators instead of traversal.
(WebCore::anyElement): Ditto.
(WebCore::SelectorDataList::executeSingleTagNameSelectorData): Ditto.
(WebCore::isSingleClassNameSelector): Ditto.
(WebCore::SelectorDataList::executeSingleClassNameSelectorData): Ditto.
(WebCore::SelectorDataList::executeSingleSelectorData): Ditto.
(WebCore::SelectorDataList::executeSingleMultiSelectorData): Ditto.
(WebCore::SelectorDataList::execute): Ditto.
(WebCore::SelectorQueryCache::add): Ditto.

* dom/SelectorQuery.h: Update to use ContainerNode, references, and RefPtr and raw pointers
rather than PassRefPtr.

* dom/TreeScope.cpp:
(WebCore::TreeScope::getElementById): Use nullptr instead of 0.
(WebCore::TreeScope::getAllElementsById): Ditto.
(WebCore::TreeScope::getElementByName): Ditto.
(WebCore::TreeScope::ancestorInThisScope): Ditto.

* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::assertNode): Use nullptr instead of 0.
(WebCore::InspectorDOMAgent::assertDocument): Ditto.
(WebCore::InspectorDOMAgent::assertElement): Ditto. Also use isElementNode instead of nodeType.
(WebCore::InspectorDOMAgent::assertEditableNode): Use nullptr instead of 0.
(WebCore::InspectorDOMAgent::assertEditableElement): Ditto.
(WebCore::InspectorDOMAgent::getDocument): Use document instead of doc.
(WebCore::InspectorDOMAgent::querySelector): Changed to pass a ContainerNode.
(WebCore::InspectorDOMAgent::querySelectorAll): Ditto.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157354 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove the not-much-used isShadowHost function from Element.h
https://bugs.webkit.org/show_bug.cgi?id=122710

Reviewed by Andreas Kling.

* dom/Element.h: Removed isShadowHost, which just checks if shadowRoot is null.

* page/FocusController.cpp:
(WebCore::FocusNavigationScope::focusNavigationScopeOwnedByShadowHost): Added
individual assertions instead of just asserting isShadowHost.
(WebCore::FocusNavigationScope::focusNavigationScopeOwnedByIFrame): Broke an
assertion with && in it into two assertions.
(WebCore::hasCustomFocusLogic): Changed argument type to be Element& and take
a reference instead of a pointer.
(WebCore::isNonFocusableShadowHost): Made arguments references instead of pointers.
Replaced isShadowHost check with a direct check of whether shadowRoot returns null
or not, which seems nearly as clear.
(WebCore::isFocusableShadowHost): Ditto.
(WebCore::adjustedTabIndex): Ditto.
(WebCore::shouldVisit): Ditto.
(WebCore::FocusController::findFocusableElementDescendingDownIntoFrameDocument):
Updated for changes above.
(WebCore::FocusController::advanceFocusInDocumentOrder): Ditto. Also some nullptr.
(WebCore::FocusController::findFocusableElementAcrossFocusScope): Ditto.
(WebCore::FocusController::findFocusableElementRecursively): Ditto.
(WebCore::FocusController::findElementWithExactTabIndex): Ditto.
(WebCore::nextElementWithGreaterTabIndex): Ditto.
(WebCore::previousElementWithLowerTabIndex): Ditto.
(WebCore::FocusController::nextFocusableElement): Ditto.
(WebCore::FocusController::previousFocusableElement): Ditto.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157355 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use nullptr instead of 0 in TreeScope.cpp
https://bugs.webkit.org/show_bug.cgi?id=122711

Reviewed by Andreas Kling.

* dom/TreeScope.cpp:
(WebCore::TreeScope::TreeScope):
(WebCore::TreeScope::~TreeScope):
(WebCore::TreeScope::clearDocumentScope):
(WebCore::TreeScope::getElementById):
(WebCore::TreeScope::getAllElementsById):
(WebCore::TreeScope::getElementByName):
(WebCore::TreeScope::ancestorInThisScope):
(WebCore::TreeScope::getImageMap):
(WebCore::nodeFromPoint):
(WebCore::TreeScope::labelElementForId):
(WebCore::TreeScope::getSelection):
(WebCore::TreeScope::findAnchor):
(WebCore::focusedFrameOwnerElement):
(WebCore::TreeScope::focusedElement):
(WebCore::commonTreeScope):
Use a lot more nullptr, and also rewrite one while loop as a for loop.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157356 268f45cc-cd09-0410-ab3c-d52691b4dbfc