2013-10-13 Andreas Kling RenderLayerBacking should have RenderLayer& backpointer. Reviewed by Anders Carlsson. RenderLayerBacking is always owned by a RenderLayer and so should store its backpointer in a reference. 2013-10-13 Darin Adler Make element predicates and type casts work more consistently on more types https://bugs.webkit.org/show_bug.cgi?id=122718 Reviewed by Antti Koivisto. * dom/ContainerNodeAlgorithms.cpp: (WebCore::assertConnectedSubrameCountIsConsistent): * dom/ContainerNodeAlgorithms.h: (WebCore::ChildFrameDisconnector::collectFrameOwners): Updated for name change. * dom/Document.cpp: (WebCore::Document::adoptNode): Use a reference instead of a pointer. (WebCore::Document::dispatchFullScreenChangeOrErrorEvent): Updated for typecast name change and also to cast a reference, since we don't overload for pointers. (WebCore::Document::updateHoverActiveState): Ditto. * dom/Element.h: Made the isElementOfType functions take references instead of pointers. Also use const in the type template argument. These changes go hand in hand with the changes in the generated code and all the classes. Also use a bit of nullptr. * dom/ElementIterator.h: (WebCore::findElementAncestorOfType): Got rid of the ElementTypeWithConst naming since this works with or without const. Added const to the call site for isElementOfType, because it works that way now. * dom/ElementTraversal.h: (WebCore::Traversal::firstChildTemplate): Add const to the type when calling isElementOfType. Along with the corresponding changes, this makes these templates work for const types. (WebCore::Traversal::lastChildTemplate): Ditto. (WebCore::Traversal::firstWithinTemplate): Ditto. (WebCore::Traversal::lastWithinTemplate): Ditto. (WebCore::Traversal::nextTemplate): Ditto. (WebCore::Traversal::previousTemplate): Ditto. (WebCore::Traversal::nextSiblingTemplate): Ditto. (WebCore::Traversal::previousSiblingTemplate): Ditto. (WebCore::Traversal::nextSkippingChildrenTemplate): Ditto. * dom/Node.cpp: (WebCore::Node::handleLocalEvents): Check isElementNode and then call the isDisabledFormControl member function, since we no longer have a helper that takes a node. (WebCore::Node::willRespondToMouseMoveEvents): Ditto. (WebCore::Node::willRespondToMouseClickEvents): Ditto. (WebCore::Node::willRespondToTouchEvents): Ditto. * dom/PseudoElement.h: Use some nullptr. Added an isPseudoElement function that the ELEMENT_TYPE_CASTS macro can use, and also used that macro to make the toPseudoElement functions instead of a hand-written local variant. * dom/make_names.pl: (printTypeHelpers): Added unimplemented versions of the element predicate functions that return void to catch unnecessary runtime checks of types that are already known at compile time. Added assertions to the pointer overloads of the predicates. Maybe later we can delete them. Added const to the isElementOf template arguments to make these work with both const and non-const. Put overloads in a consistent order, most specific class first, then less specific. Changed isElementOfType to take references rather than pointers. * editing/Editor.cpp: (WebCore::Editor::selectionForCommand): Updated to pass a reference. (WebCore::Editor::setBaseWritingDirection): Ditto. (WebCore::findFirstMarkable): Ditto. * html/FormAssociatedElement.h: Tweaked a comment. * html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::insertedInto): Updated for name change and to pass a reference. * html/HTMLElement.cpp: (WebCore::HTMLElement::translate): Removed FIXME and const_cast since the problem is fixed. (WebCore::HTMLElement::directionality): Use a reference. * html/HTMLElement.h: Use const in the type of the isElementOfType functions. Use references for all the arguments, not pointers. * html/HTMLFieldSetElement.cpp: (WebCore::HTMLFieldSetElement::refreshElementsIfNeeded): Use documentVersion instead of docVersion for local variable name. Use elementDescendants instead of elementTraversal. (WebCore::HTMLFieldSetElement::length): Use length instead of len for name. * html/HTMLFormControlElement.h: Put predicates into the standard format and did them on single lines. Added ELEMENT_TYPE_CASTS so we get standard casts. * html/HTMLFrameElementBase.h: Ditto. * html/HTMLFrameOwnerElement.h: Ditto, but changed the name to match the class, so it's now isHTMLFrameOwnerElement and toHTMLFrameOwnerElement. * html/HTMLLabelElement.cpp: (WebCore::nodeAsSupportedLabelableElement): Updated to use references. * html/HTMLMediaElement.h: Put predicates into the standard format and did them on single lines. Added ELEMENT_TYPE_CASTS so we get standard casts. * html/HTMLPlugInElement.h: Ditto. Also marked isPluginElement FINAL. * html/HTMLPlugInImageElement.h: Ditto. * html/HTMLTableCellElement.cpp: Removed old hand-written cast functions. * html/HTMLTableCellElement.h: Did same predicate and ELEMENT_TYPE_CASTS changes. Also fixed up the ordering of functions in the class. * html/HTMLTextFormControlElement.cpp: (WebCore::enclosingTextFormControl): Updated to use references and nullptr. * html/HTMLTextFormControlElement.h: Did same predicate and ELEMENT_TYPE_CASTS. * html/HTMLTrackElement.cpp: (WebCore::HTMLTrackElement::removedFrom): Call isHTMLMediaElement by its new name. * html/LabelableElement.h: Did same predicate and ELEMENT_TYPE_CASTS. * html/track/WebVTTElement.h: Made isWebVTTElement private. Changed the argument type of setLanguage to const AtomicString& to avoid excess reference count churn. Did the predicate and type casts thing. * loader/archive/cf/LegacyWebArchive.cpp: (WebCore::LegacyWebArchive::create): Update for name changes and use references. * mathml/MathMLElement.h: Did same predicate and ELEMENT_TYPE_CASTS. * page/FocusController.cpp: (WebCore::FocusController::findFocusableElementDescendingDownIntoFrameDocument): (WebCore::FocusController::advanceFocusInDocumentOrder): * page/PageSerializer.cpp: (WebCore::SerializerMarkupAccumulator::appendCustomAttributes): Update for name change. * platform/Pasteboard.h: Removed unneeded forward declaration. * rendering/RenderWidget.h: Updated for name change. * rendering/svg/RenderSVGResourceFilter.cpp: (WebCore::RenderSVGResourceFilter::buildPrimitives): Use element iterator and nullptr. * svg/SVGAElement.cpp: (WebCore::SVGAElement::defaultEventHandler): Update for name changes. * svg/SVGAnimateElement.cpp: (WebCore::isSVGAnimateElement): Moved here since we don't want to inline such a long list of tag names. * svg/SVGAnimateElement.h: Marked a lot more virtual functions OVERRIDE. Did predicate and ELEMENT_TYPE_CASTS changes, but did not make the predicate be inlined. * svg/SVGElement.h: Did predicate and ELEMENT_TYPE_CASTS changes. * svg/SVGFilterPrimitiveStandardAttributes.h: Ditto. * svg/SVGGradientElement.cpp: (WebCore::isSVGGradientElement): Moved here since we don't want to inline the two tag names. * svg/SVGGradientElement.h: Did predicate and ELEMENT_TYPE_CASTS changes. * svg/SVGGraphicsElement.h: Ditto. * svg/SVGImageElement.cpp: (WebCore::SVGImageElement::SVGImageElement): Took out assertion, since it was asserting the class of the obejct we just created. * svg/SVGPolyElement.cpp: (WebCore::isSVGPolyElement): Moved here since we don't want to inline the two tag names. * svg/SVGPolyElement.h: Did predicate and ELEMENT_TYPE_CASTS changes. * svg/SVGTextContentElement.h: Ditto. * svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::connectConditions): Update for name changes, to use references and nullptr, and to get rid of a non-helpful local. * svg/animation/SVGSMILElement.h: Added a virtual function to check if a given SVGElement is an SVGSMILElement so we don't have to check a long list of tag names instead. Also did the predicate and ELEMENT_TYPE_CASTS changes. * testing/Internals.cpp: (WebCore::Internals::visiblePlaceholder): Updated to use references. 2013-10-13 Antti Koivisto Text::renderer() should return RenderText https://bugs.webkit.org/show_bug.cgi?id=122729 Reviewed by Andreas Kling. Tighten typing. 2013-10-13 Andreas Kling Devirtualize RenderView::viewRect(). Reviewed by Antti Koivisto. There's no need for viewRect() to be a virtual RenderObject function. The single call site that didn't already access it through RenderView can just go via view(). 2013-10-13 Andreas Kling Move setPseudoStyle() to RenderImage (from RenderElement.) Reviewed by Antti Koivisto. Only RenderImages ever use setPseudoStyle() so move it there and remove the non-image codepath. 2013-10-13 Andreas Kling CTTE: RenderSlider always has an HTMLInputElement. Reviewed by Anders Carlsson. This renderer is never anonymous and always has a corresponding HTMLInputElement. Tighten this up by having the constructor take the element by reference, and override element() with a stronger return type. 2013-10-13 Andreas Kling Remove two unused AX functions for getting a FrameView*. Reviewed by Anders Carlsson. 2013-10-13 Antti Koivisto Add traverseNextSkippingChildren to ElementIterators https://bugs.webkit.org/show_bug.cgi?id=122727 Reviewed by Andreas Kling. Also switch some code using ElementTraversal over to iterators. 2013-10-13 Antti Koivisto Rename InlineBox::remove() to removeFromParent https://bugs.webkit.org/show_bug.cgi?id=122725 Reviewed by Andreas Kling. Also make it clear from the code that all InlineTextBoxes have behavesLikeText set. 2013-10-13 Antti Koivisto Make absoluteQuads/Rects functions return Vectors https://bugs.webkit.org/show_bug.cgi?id=122722 Reviewed by Andreas Kling. * dom/Document.cpp: (WebCore::Document::adjustFloatQuadsForScrollAndAbsoluteZoomAndFrameScale): (WebCore::Document::adjustFloatRectForScrollAndAbsoluteZoomAndFrameScale): Take RenderStyle instead of RenderObject * dom/Document.h: * dom/Element.cpp: (WebCore::Element::getClientRects): (WebCore::Element::getBoundingClientRect): * dom/Range.cpp: (WebCore::Range::textRects): (WebCore::Range::textQuads): (WebCore::Range::getBorderAndTextQuads): Adapt to the changes. * rendering/RenderObject.h: Removed unnecessary adjustFloatQuad/RectForAbsoluteZoom functions, inline code to adjustFloatQuads/RectForScrollAndAbsoluteZoomAndFrameScale. * rendering/RenderText.cpp: (WebCore::RenderText::absoluteRects): (WebCore::RenderText::absoluteRectsForRange): (WebCore::RenderText::absoluteQuadsClippedToEllipsis): (WebCore::RenderText::absoluteQuads): (WebCore::RenderText::absoluteQuadsForRange): * rendering/RenderText.h: * rendering/RenderTextLineBoxes.cpp: (WebCore::RenderTextLineBoxes::absoluteRects): (WebCore::RenderTextLineBoxes::absoluteRectsForRange): (WebCore::RenderTextLineBoxes::absoluteQuads): (WebCore::RenderTextLineBoxes::absoluteQuadsForRange): * rendering/RenderTextLineBoxes.h: Use return value instead of an out-arg, except for the virtual versions. 2013-10-13 Andreas Kling LiveNodeList: rootNode() and document() should return references. Reviewed by Antti Koivisto. Tighten up this code a bit by having rootNode() and document() return references. Also replaced some handwritten traversal with a call to Node::lastDescendant(). 2013-10-13 Andreas Kling Document::createRenderTree() should assert that there is no arena. Reviewed by Antti Koivisto. Calling createRenderTree() with a RenderArena already in place would be a programming error. 2013-10-13 Andreas Kling Remove dead ENABLE(CUSTOM_ELEMENTS) code. Reviewed by Antti Koivisto. There are no ports building with this flag since April and the code has bitrotted since. Remove it for now. If someone wants to resurrect the feature someday, getting back to this point is trivial. 2013-10-12 Antti Koivisto Move absoluteRects/Quads to RenderTextLineBoxes https://bugs.webkit.org/show_bug.cgi?id=122706 Reviewed by Andreas Kling. * rendering/RenderTextLineBoxes.cpp: (WebCore::RenderTextLineBoxes::absoluteRects): (WebCore::RenderTextLineBoxes::absoluteRectsForRange): (WebCore::RenderTextLineBoxes::absoluteQuads): (WebCore::RenderTextLineBoxes::absoluteQuadsForRange): These move. (WebCore::RenderTextLineBoxes::selectionRectForRange): (WebCore::RenderTextLineBoxes::setSelectionState): Also moved a few smaller functions. 2013-10-13 Andreas Kling Remove dead code hiding behind ENABLE(TOUCH_EVENT_TRACKING). Reviewed by Antti Koivisto. Nobody is building with this flag, and it has broken-looking code behind it anyway. Nuke from orbit. 2013-10-13 Andreas Kling RenderLayer: Check SVG bit instead of element namespace in isTransparent(). Reviewed by Darin Adler. Replace the (virtual) namespaceURI() check with an isSVGElement() bit check. * rendering/RenderLayer.cpp: (WebCore::RenderLayer::isTransparent): 2013-10-12 Darin Adler Use nullptr in Document.cpp https://bugs.webkit.org/show_bug.cgi?id=122715 Reviewed by Sam Weinig. * dom/Document.cpp: (WebCore::widgetForElement): (WebCore::Document::Document): (WebCore::Document::~Document): (WebCore::Document::dropChildren): (WebCore::Document::getElementByAccessKey): (WebCore::Document::doctype): (WebCore::Document::createElement): (WebCore::Document::createElementNS): (WebCore::Document::registerElement): (WebCore::Document::createCDATASection): (WebCore::Document::createProcessingInstruction): (WebCore::Document::createEntityReference): (WebCore::Document::importNode): (WebCore::Document::adoptNode): (WebCore::Document::webkitGetNamedFlows): (WebCore::Document::elementFromPoint): (WebCore::Document::caretRangeFromPoint): (WebCore::Document::setTitle): (WebCore::Document::removeTitle): (WebCore::Document::view): (WebCore::Document::page): (WebCore::Document::settings): (WebCore::Document::createNodeIterator): (WebCore::Document::createTreeWalker): (WebCore::Document::updateStyleIfNeeded): (WebCore::Document::styleForElementIgnoringPendingStylesheets): (WebCore::Document::disconnectFromFrame): (WebCore::Document::destroyRenderTree): (WebCore::Document::existingAXObjectCache): (WebCore::Document::axObjectCache): (WebCore::Document::scriptableDocumentParser): (WebCore::Document::body): (WebCore::Document::head): (WebCore::Document::processBaseElement): (WebCore::Document::findUnsafeParentScrollPropagationBoundary): (WebCore::Document::cloneNode): (WebCore::Document::styleResolverChanged): (WebCore::Document::removeFocusedNodeOfSubtree): (WebCore::Document::setFocusedElement): (WebCore::Document::getWindowAttributeEventListener): (WebCore::Document::createEvent): (WebCore::Document::getOverrideStyle): (WebCore::Document::ownerElement): (WebCore::Document::setInPageCache): (WebCore::Document::parentDocument): (WebCore::Document::createAttributeNS): (WebCore::Document::initSecurityContext): (WebCore::Document::resetHiddenFocusElementTimer): (WebCore::Document::getCSSCanvasContext): (WebCore::Document::enqueuePopstateEvent): (WebCore::Document::takeAnyMediaCanStartListener): (WebCore::Document::requestFullScreenForElement): (WebCore::Document::webkitExitFullscreen): (WebCore::Document::webkitWillEnterFullScreenForElement): (WebCore::Document::webkitDidExitFullScreenForElement): (WebCore::Document::fullScreenRendererDestroyed): (WebCore::Document::webkitPointerLockElement): (WebCore::Document::seamlessParentIFrame): (WebCore::Document::loader): (WebCore::eventTargetElementForDocument): (WebCore::nearestCommonHoverAncestor): (WebCore::Document::ensureTemplateDocument): Use nullptr in many places we were using 0. 2013-10-12 Darin Adler Get rid of the toHTMLElement helper for casting FormAssociatedElement to HTMLElement https://bugs.webkit.org/show_bug.cgi?id=122713 Reviewed by Sam Weinig. Since we are using the function name toHTMLElement for casting to an HTMLElement from a Node or Element, it's awkward to also use it for a quite different type of type conversion on a FormAssociatedElement. We already have an asHTMLElement member function, so lets use that. * html/DOMFormData.cpp: (WebCore::DOMFormData::DOMFormData): Use references instead of pointers, and asHTMLElement instead of toHTMLElement. * html/FormAssociatedElement.cpp: Made FormAttributeTargetObserver FINAL, made its private inheritance explicit, made its constructor public so we can use it with make_unique and got rid of its creation function. Also use reference instead of a pointer. (WebCore::FormAssociatedElement::FormAssociatedElement): Use nullptr. (WebCore::FormAssociatedElement::~FormAssociatedElement): Ditto. (WebCore::FormAssociatedElement::didMoveToNewDocument): Use asHTMLElement instead of toHTMLElement and use a reference instead of a pointer. (WebCore::FormAssociatedElement::insertedInto): Ditto. (WebCore::FormAssociatedElement::removedFrom): Ditto. (WebCore::FormAssociatedElement::formRemovedFromTree): Ditto. (WebCore::FormAssociatedElement::resetFormOwner): Ditto. (WebCore::FormAssociatedElement::formAttributeChanged): Ditto. (WebCore::FormAssociatedElement::customError): Ditto. (WebCore::FormAssociatedElement::resetFormAttributeTargetObserver): Use make_unique instead of create here. (WebCore::FormAssociatedElement::name): Use asHTMLElement. (WebCore::FormAttributeTargetObserver::FormAttributeTargetObserver): Ditto. (WebCore::FormAttributeTargetObserver::idTargetChanged): Updated since m_element is now a reference. * html/FormAssociatedElement.h: Removed some unneeded class declarations. Made isFormAssociatedElement const. Use std::unique_ptr instead of OwnPtr. * html/FormNamedItem.h: Made asHTMLElement return a reference, and overloaded it for both const and non-const. Made isFormAssociatedElement const. * html/HTMLFormControlElement.h: Updated for FormNamedItem changes. Removed an unneeded class declaration. * html/HTMLFormControlsCollection.cpp: (WebCore::HTMLFormControlsCollection::virtualItemAfter): Use references, asHTMLElement, and nullptr. (WebCore::firstNamedItem): Ditto. (WebCore::HTMLFormControlsCollection::namedItem): Ditto. (WebCore::HTMLFormControlsCollection::updateNameCache): Ditto. * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::validateInteractively): Use asHTMLElement and references. (WebCore::HTMLFormElement::getTextFieldValues): Ditto. (WebCore::HTMLFormElement::formElementIndexWithFormAttribute): Ditto. (WebCore::HTMLFormElement::formElementIndex): Ditto. (WebCore::HTMLFormElement::assertItemCanBeInPastNamesMap): Ditto. (WebCore::HTMLFormElement::elementFromPastNamesMap): Ditto, and nullptr. * html/HTMLImageElement.h: Updated for FormNamedItem changes. * html/HTMLObjectElement.h: Ditto. * loader/FormSubmission.cpp: (WebCore::FormSubmission::create): Use asHTMLElement and references. 2013-10-12 Darin Adler 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. 2013-10-12 Darin Adler 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. 2013-10-12 Darin Adler 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. 2013-10-12 Darin Adler 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. 2013-10-12 Darin Adler 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. 2013-10-12 Darin Adler 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. 2013-10-12 Antti Koivisto Move positionForPoint to RenderTextLineBoxes https://bugs.webkit.org/show_bug.cgi?id=122703 Reviewed by Andreas Kling. 2013-10-12 Andreas Kling Remove unused ScrollingCoordinator hooks. Reviewed by Anders Carlsson. Remove leftover ScrollingCoordinator hooks that were only used by the Chromium port. 2013-10-12 Zan Dobersek [Soup] The NeverDestroyed> 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. 2013-10-12 Antti Koivisto 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): 2013-10-12 Antti Koivisto 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. 2013-10-12 Alexey Proskuryakov Add a feature define for SubtleCrypto https://bugs.webkit.org/show_bug.cgi?id=122683 Reviewed by Anders Carlsson. * Configurations/FeatureDefines.xcconfig: 2013-10-12 Andreas Kling Generate tighter isFooElement() functions for HTML elements. Reviewed by Antti Koivisto. Specialize HTML element type checking helpers to only compare the localName and not the fully qualified tag name. 2013-09-27 Jessica Pease Replace static cast ASSERTs with ASSERT_WITH_SECURITY_IMPLICATION https://bugs.webkit.org/show_bug.cgi?id=120803 Reviewed by Andreas Kling. No new tests because we're just changing assertions. * 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): 2013-09-06 Jessica Pease Replace bounds checking ASSERTs with ASSERT_WITH_SECURITY_IMPLICATION https://bugs.webkit.org/show_bug.cgi?id=120893 Reviewed by Darin Adler. * 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): 2013-10-12 Antti Koivisto 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. 2013-10-12 Antti Koivisto Replace RenderText::renderedTextLength with hasRenderedText https://bugs.webkit.org/show_bug.cgi?id=122693 Reviewed by Andreas Kling. 2013-10-12 Darin Adler Use unique_ptr instead of delete in a few places https://bugs.webkit.org/show_bug.cgi?id=122639 Reviewed by Anders Carlsson. * 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. 2013-10-11 Andreas Kling Make LayoutState not arena-allocated. Reviewed by Antti Koivisto. Let RenderView own a singly-linked chain of LayoutState objects managed by unique_ptr. 2013-10-10 Andreas Kling Make RenderLayer not arena-allocated. Reviewed by Antti Koivisto. Let RenderLayerModelObject store its RenderLayer in a unique_ptr. Layers are relatively low-volume objects and this looks neutral on our performance tests. Re-landing this since the original commit exposed a problem with the destruction order. This pattern: m_someRenderer->destroy(); m_someRenderer = nullptr; ..is different from what we get with unique_ptr, which clears the pointer storage before calling the destructor. I believe that the new order is strictly better as it removes one path to accessing an object that is undergoing destruction. The exposed bug was in RLC::fixedRootBackgroundLayerChanged() where we were dereferencing the RenderView's layer() without checking, despite it being called below ~RenderLayer. 2013-10-11 Zoltan Horvath Move firstPositiveWidth/adjustLogicalLineTop functions where they're actually used https://bugs.webkit.org/show_bug.cgi?id=122685 Reviewed by Darin Adler. I'm working on the refactoring of RenderBlockLineLayout, progress tracked under bug #121261. For the better readability, I moved firstPositiveWidth and adjustLogicalLineTop functions above pushShapeContentOverflowBelowTheContentBox, where these're actually used. No new tests, no behavior change. * rendering/RenderBlockLineLayout.cpp: (WebCore::firstPositiveWidth): (WebCore::adjustLogicalLineTop): 2013-10-11 Ryosuke Niwa Extract an iterator/resolver class from calculateAdjustedNodes https://bugs.webkit.org/show_bug.cgi?id=122687 Reviewed by Darin Adler. Extracted EventRelatedNodeResolver out of calculateAdjustedNodes and replaced calls to calculateAdjustedNodes in updateTouchListsInEventPath and setRelatedTarget by the use of this newly added class. * dom/EventContext.h: Added some helper functions to TouchEventContext so that updateTouchListsInEventPath could obtain respective TouchList* without having to hard-code the name. * dom/EventDispatcher.cpp: (WebCore::EventRelatedNodeResolver::EventRelatedNodeResolver): Added. (WebCore::EventRelatedNodeResolver::moveToParentOrShadowHost): Extracted from calculateAdjustedNodes. (WebCore::EventPath::updateTouchListsInEventPath): Updated to use EventRelatedNodeResolver. Also made this a member function of EventPath. (WebCore::EventPath::updateTouchLists): Removed local Vectors to TouchList now that updateTouchListsInEventPath can obtain TouchList* on demand. (WebCore::EventPath::setRelatedTarget): Upsed to use EventRelatedNodeResolver. 2013-10-11 Darin Adler Change most call sites to call ICU directly instead of through WTF::Unicode https://bugs.webkit.org/show_bug.cgi?id=122635 Reviewed by Alexey Proskuryakov. * Modules/indexeddb/IDBKeyPath.cpp: (isIdentifierStartCharacter): Use U_GET_GC_MASK instead of WTF::Unicode::category. (isIdentifierCharacter): Ditto. * css/CSSParser.cpp: (WebCore::makeLower): Use u_tolower instead of WTF::Unicode::toLower. Also assert the character fits in a UChar. * dom/Document.cpp: (WebCore::isValidNameStart): Use U_GET_GC_MASK instead of WTF::Unicode::category, and u_getIntPropertyValue instead of WTF::Unicode::decompositionType. (WebCore::isValidNamePart): Ditto. (WebCore::canonicalizedTitle): Ditto. * editing/Editor.cpp: (WebCore::Editor::insertTextWithoutSendingTextEvent): Use u_isPunct instead of WTF::Unicode::isPunct. * editing/TextIterator.cpp: (WebCore::SearchBuffer::append): Use u_strFoldCase instead of WTF::Unicode::foldCase. * html/HTMLElement.cpp: (WebCore::HTMLElement::directionality): Use UCharDirection instead of WTF::Unicode::Direction. * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::defaultEventHandler): Use u_isprint instead of WTF::Unicode::isPrintableChar. * html/TypeAhead.cpp: (WebCore::stripLeadingWhiteSpace): Use u_charDirection instead of WTF::Unicode::direction. * html/track/TextTrackCue.cpp: (WebCore::isCueParagraphSeparator): Use u_charType instead of WTF::Unicode::category. (WebCore::TextTrackCue::determineTextDirection): Use u_charDirection instead of WTF::Unicode::direction. * page/ContextMenuController.cpp: (WebCore::selectionContainsPossibleWord): Use U_GET_GC_MASK instead of WTF::Unicode::category. * platform/graphics/Font.cpp: (WebCore::Font::canReceiveTextEmphasis): Ditto. * platform/graphics/FontGlyphs.cpp: (WebCore::FontGlyphs::glyphDataAndPageForCharacter): Use u_toupper instead of WTF::Unicode::toUpper. Use u_charMirror instead of WTF::Unicode::mirroredChar. * platform/graphics/GraphicsContext.cpp: (WebCore::TextRunIterator::direction): Use u_charDirection instead of WTF::Unicode::direction. * platform/graphics/SVGGlyph.cpp: (WebCore::charactersWithArabicForm): Use ublock_getCode instead of WTF::Unicode::isArabicChar. * platform/graphics/SurrogatePairAwareTextIterator.cpp: (WebCore::SurrogatePairAwareTextIterator::normalizeVoicingMarks): Use u_getCombiningClass instead of WTF::Unicode::combiningClass. * platform/graphics/WidthIterator.cpp: (WebCore::WidthIterator::advanceInternal): Use u_toupper instead of WTF::Unicode::toUpper. * platform/graphics/mac/ComplexTextController.cpp: (WebCore::ComplexTextController::collectComplexTextRuns): Added some assertions about the user of u_toupper and tweaked coding style a bit. * platform/text/BidiContext.cpp: (WebCore::BidiContext::createUncached): Use UCharDirection instead of WTF::Unicode::Direction. (WebCore::BidiContext::create): Ditto. (WebCore::copyContextAndRebaselineLevel): Ditto. * platform/text/BidiContext.h: (WebCore::BidiContext::dir): Ditto. (WebCore::BidiContext::BidiContext): Ditto. * platform/text/BidiResolver.h: (WebCore::BidiStatus::BidiStatus): Ditto. (WebCore::BidiEmbedding::BidiEmbedding): Ditto. (WebCore::BidiEmbedding::direction): Ditto. (WebCore::BidiCharacterRun::BidiCharacterRun): Ditto. (WebCore::BidiResolver::BidiResolver): Ditto. (WebCore::BidiResolver::setLastDir): Ditto. (WebCore::BidiResolver::setLastStrongDir): Ditto. (WebCore::BidiResolver::setEorDir): Ditto. (WebCore::BidiResolver::dir): Ditto. (WebCore::BidiResolver::setDir): Ditto. (WebCore::BidiResolver::appendRun): Ditto. (WebCore::BidiResolver::embed): Ditto. (WebCore::BidiResolver::checkDirectionInLowerRaiseEmbeddingLevel): Ditto. (WebCore::BidiResolver::lowerExplicitEmbeddingLevel): Ditto. (WebCore::BidiResolver::raiseExplicitEmbeddingLevel): Ditto. (WebCore::BidiResolver::commitExplicitEmbedding): Ditto. (WebCore::BidiResolver::updateStatusLastFromCurrentDirection): Ditto. (WebCore::BidiResolver::createBidiRunsForLine): Ditto. * platform/text/SegmentedString.h: (WebCore::SegmentedString::advanceAndASSERTIgnoringCase): Use u_foldCase instead of WTF::Unicode::foldCase. * platform/text/TextBoundaries.cpp: (WebCore::findNextWordFromIndex): Use u_isalnum instead of WTF::Unicode::isAlphanumeric. * platform/text/TextBoundaries.h: (WebCore::requiresContextForWordBoundary): Use u_getIntPropertyValue directly instead of WTF::Unicode::requiresComplexContextForWordBreaking. * platform/text/mac/TextBoundaries.mm: Removed explicit use of WTF::Unicode, which was unneeded and also will no longer compile. * rendering/BidiRun.h: (WebCore::BidiRun::BidiRun): Use UCharDirection instead of WTF::Unicode::Direction. * rendering/InlineFlowBox.h: Ditto. * rendering/InlineIterator.h: (WebCore::embedCharFromDirection): Ditto. (WebCore::notifyObserverWillExitObject): Ditto. (WebCore::InlineIterator::direction): Ditto. (WebCore::IsolateTracker::embed): Ditto. (WebCore::InlineBidiResolver::appendRun): Ditto. * rendering/RenderBlock.cpp: (WebCore::isPunctuationForFirstLetter): Use U_GET_GC_MASK instead of WTF::Unicode::category. * rendering/RenderBlockLineLayout.cpp: (WebCore::determineDirectionality): Use u_charDirection instead of WTF::Unicode::direction. (WebCore::RenderBlockFlow::handleTrailingSpaces): Ditto. (WebCore::statusWithDirection): Ditto. (WebCore::LineBreaker::nextSegmentBreak): Use U_GET_GC_MASK instead of WTF::Unicode::category. * rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::paint): Use u_charDirection instead of WTF::Unicode::direction. * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::adjustInnerStyle): Use UCharDirection instead of WTF::Unicode::Direction. * rendering/RenderText.cpp: (WebCore::makeCapitalized): Use u_totile instead of WTF::Unicode::toTitleCase. Also added a comment about the fact that we need to use u_strToTitle instead. * rendering/RootInlineBox.cpp: (WebCore::RootInlineBox::lineBreakBidiStatus): Use UCharDirection instead of WTF::Unicode::Direction. * svg/SVGFontData.cpp: (WebCore::SVGFontData::createStringWithMirroredCharacters): Use u_charMirror instead of WTF::Unicode::mirroredChar. * xml/XPathParser.cpp: (WebCore::XPath::charCat): Use U_GET_GC_MASK instead of WTF::Unicode::category. * platform/graphics/win/UniscribeController.cpp: (WebCore::UniscribeController::advance): * platform/win/PopupMenuWin.cpp: (WebCore::PopupMenuWin::paint): * platform/win/WebCoreTextRenderer.cpp: (WebCore::isOneLeftToRightRun): More of the same for Windows. 2013-10-11 Ryosuke Niwa Dramatically simplify calculateAdjustedNodes https://bugs.webkit.org/show_bug.cgi?id=122680 Reviewed by Antti Koivisto. Without insertion points, we never have to worry about entering a shadow DOM we've already climbed out of. Deleted the logic to deal with insertion points in calculateAdjustedNodes accordingly. * dom/EventDispatcher.cpp: (WebCore::EventPath::EventPath): (WebCore::calculateAdjustedNodes): (WebCore::updateTouchListsInEventPath): (WebCore::EventPath::updateTouchLists): (WebCore::EventPath::setRelatedTarget): 2013-10-11 Roger Fong [Windows] Fix for fast/xpath test regressions caused by r157205. https://bugs.webkit.org/show_bug.cgi?id=122658. Reviewed by Darin Adler. * xml/XPathStep.h: (WebCore::XPath::Step::NodeTest::NodeTest): (WebCore::XPath::Step::NodeTest::operator=): We were incorrectly setting the predicate list to null instead of the predicate list of the NodeTest being passed in. 2013-10-11 Zoltan Horvath [CSS Shapes] Use the floatingObject's logical coordinates to determine its size in computeLogicalLocationForFloat https://bugs.webkit.org/show_bug.cgi?id=122663 Reviewed by David Hyatt. Covered by existing float tests in fast/shapes/shape-inside. I'll add additional tests in bug #122664. * rendering/RenderBlockFlow.cpp: (WebCore::RenderBlockFlow::computeLogicalLocationForFloat): 2013-10-11 Anders Carlsson Remove gesture event support from WebCore https://bugs.webkit.org/show_bug.cgi?id=122650 Reviewed by Ryosuke Niwa. * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.exp.in: * WebCore.xcodeproj/project.pbxproj: * dom/GestureEvent.cpp: Removed. * dom/GestureEvent.h: Removed. * dom/Node.cpp: * dom/Node.h: * page/EventHandler.cpp: (WebCore::EventHandler::EventHandler): (WebCore::EventHandler::clear): (WebCore::EventHandler::sendContextMenuEventForKey): * page/EventHandler.h: * platform/PlatformGestureEvent.h: Removed. * platform/Scrollbar.cpp: * platform/Scrollbar.h: * platform/mac/PlatformEventFactoryMac.h: * platform/mac/PlatformEventFactoryMac.mm: 2013-10-11 Tim Horton Remove some dead code from PlatformCALayer* https://bugs.webkit.org/show_bug.cgi?id=122641 Reviewed by Anders Carlsson. Remove some unused getters from PlatformCALayer and its implementations. No new tests, just removing dead code. * platform/graphics/ca/PlatformCALayer.h: * platform/graphics/ca/mac/PlatformCALayerMac.mm: * platform/graphics/ca/win/PlatformCALayerWin.cpp: 2013-10-11 Adam Roben Confusing CGImageRef memory management in ImageBuffer::copyImage https://bugs.webkit.org/show_bug.cgi?id=122605 BitmapImage::create was adopting the CGImage passed into it, which resulted in some strange contortions in ImageBuffer::copyImage that made it look like it was leaking CGImages, when in fact it was just relying on BitmapImage to adopt the extra references. BitmapImage::create now retains the passed-in CGImage, and I updated the two callers to it to expect that (one here, one in WebKit2). I also changed ImageBuffer::copyNativeImage to return a RetainPtr to reduce the number of adoptCF()s needed and make it harder to make programming mistakes. Reviewed by Simon Fraser. No new tests because this is just a code cleanup. * platform/graphics/ImageBuffer.h: Changed copyNativeImage to return a RetainPtr. (WebCore::ImageBuffer::draw): (WebCore::ImageBuffer::clip): (WebCore::ImageBuffer::putByteArray): (WebCore::ImageBuffer::toDataURL): Updated for changes to copyNativeImage. 2013-10-11 Bear Travis [CSS Shapes] Shape-Image-Threshold should be animatable https://bugs.webkit.org/show_bug.cgi?id=122622 Reviewed by Darin Adler. Make the shape-image-threshold property respond to dynamic changes made through JS or CSS animations. Responding to changes made to shape-image-threshold is handled in RenderBox::updateShapeOutsideInfoAfterStyleChange, while CSSPropertyAnimation.cpp adds the property to the list of animatable properties. Tests: fast/shapes/shape-outside-floats/shape-outside-dynamic-shape-image-threshold.html fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html * page/animation/CSSPropertyAnimation.cpp: (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Add shape-image-threshold to the list of animatable properties. * rendering/RenderBox.cpp: (WebCore::RenderBox::styleDidChange): updateShapeOutsideInfoAfterStyleChange needs to take two RenderStyle arguments to compare multiple shape properties, rather than just the shape-outside property. (WebCore::RenderBox::updateShapeOutsideInfoAfterStyleChange): Compare shape-image-threshold values to see if they changed, and invalidate the layout if necessary. * rendering/RenderBox.h: 2013-10-11 Brent Fulgham Unreviewed gardening. Remove a Windows work-around that is not needed. * dom/Range.cpp: (WebCore::rangeOfContents): Move implementation back to source file. * dom/Range.h: Remove inline I added to work around a compiler bug. 2013-10-11 Commit Queue Unreviewed, rolling out r157297. http://trac.webkit.org/changeset/157297 https://bugs.webkit.org/show_bug.cgi?id=122651 Caused crashes on multiple platform/mac-wk2/tiled-drawing tests (Requested by ap on #webkit). * rendering/RenderLayer.cpp: (WebCore::RenderLayer::operator new): (WebCore::RenderLayer::operator delete): (WebCore::RenderLayer::destroy): * rendering/RenderLayer.h: * rendering/RenderLayerModelObject.cpp: (WebCore::RenderLayerModelObject::RenderLayerModelObject): (WebCore::RenderLayerModelObject::destroyLayer): (WebCore::RenderLayerModelObject::ensureLayer): * rendering/RenderLayerModelObject.h: (WebCore::RenderLayerModelObject::layer): 2013-10-11 Darin Adler Fix build. * html/HTMLElement.cpp: (WebCore::HTMLElement::translate): Do a const_cast when creating the lineage, since it doesn't yet work with const pointers. 2013-10-11 Darin Adler Do a bit of optimization and cleanup in the HTMLElement class https://bugs.webkit.org/show_bug.cgi?id=122640 Reviewed by Andreas Kling. * html/HTMLElement.cpp: (WebCore::unicodeBidiAttributeForDirAuto): Take a reference. (WebCore::HTMLElement::collectStyleForPresentationAttribute): Pass one. (WebCore::mergeWithNextTextNode): Take a reference to a Text node instead of a PassRefPtr to a Node. Also removed unnecessary check of parentNode. Also update to new calling convention for mergeWithNextTextNode. (WebCore::HTMLElement::setOuterHTML): Use parentElement instead of parentNode, since Antti says that's the future, and either will work here. Also use nullptr. (WebCore::HTMLElement::textToFragment): Fix indentation and use nullptr. (WebCore::HTMLElement::setOuterText): Use a RefPtr for the parent here, since otherwise there is no guarantee it survives. Also use nullptr and update to new calling convention for mergeWithNextTextNode. (WebCore::HTMLElement::insertAdjacent): Use nullptr. (WebCore::HTMLElement::insertAdjacentElement): Use nullptr. (WebCore::contextElementForInsertion): Use nullptr. (WebCore::HTMLElement::contentEditable): Use ASCIILiteral. (WebCore::HTMLElement::setContentEditable): Use AtomicString::ConstructFromLiteral. (WebCore::HTMLElement::draggable): Use fastGetAttribute. (WebCore::HTMLElement::setDraggable): Use AtomicString::ConstructFromLiteral. (WebCore::HTMLElement::setSpellcheck): Use AtomicString::ConstructFromLiteral. (WebCore::HTMLElement::click): Use nullptr. (WebCore::HTMLElement::accessKeyAction): Use nullptr. (WebCore::HTMLElement::title): Use fastGetAttribute. (WebCore::HTMLElement::translateAttributeMode): Use fastGetAttribute, isNull, and isEmpty. (WebCore::HTMLElement::translate): Use parentElement and toHTMLElement. Use early-continue style instead of nesting the whole loop body inside an if. (WebCore::setHasDirAutoFlagRecursively): Use nullptr. (WebCore::HTMLElement::hasDirectionAuto): Use isNull. (WebCore::HTMLElement::directionality): Use nullptr. (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged): Use nullptr. (WebCore::HTMLElement::addHTMLLengthToStyle): Use longer variable names. * html/HTMLTableCellElement.cpp: (WebCore::HTMLTableCellElement::abbr): Use fastGetAttribute. (WebCore::HTMLTableCellElement::axis): Ditto. (WebCore::HTMLTableCellElement::headers): Ditto. (WebCore::HTMLTableCellElement::scope): Ditto. * html/HTMLTableColElement.cpp: (WebCore::HTMLTableColElement::width): Ditto. 2013-10-10 Darin Adler Use after free in WebCore::DisplayRefreshMonitorClient::fireDisplayRefreshIfNeeded https://bugs.webkit.org/show_bug.cgi?id=121033 Reviewed by Dean Jackson. For safe iteration, use a set rather than a vector, and remove the clients from the set if they are removed during iteration. Test: fast/animation/request-animation-frame-remove-client.html * platform/graphics/DisplayRefreshMonitor.cpp: (WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor): Initialize the m_clientsToBeNotified pointer to null. (WebCore::DisplayRefreshMonitor::removeClient): If there is a m_clientsToBeNotified set, remove from it as well as the real m_clients set. (WebCore::DisplayRefreshMonitor::displayDidRefresh): Use a HashSet instead of a vector for the copy of the clients set we iterate. * platform/graphics/DisplayRefreshMonitor.h: Moved some of the BlackBerry-specific part of this out of the header. Added a new HashSet pointer, m_clientsToBeNotified, to be used to remove clients during the notification process. Also added a FIXME. * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp: Moved the DisplayAnimationClient class in here. 2013-10-10 Dean Jackson Use after free in WebCore::DisplayRefreshMonitorClient::fireDisplayRefreshIfNeeded http://webkit.org/b/121033 Reviewed by Darin Adler. Add an ASSERT to detect if an animation client will be removed during the callback dispatch. Test: fast/animation/request-animation-frame-remove-client.html * platform/graphics/DisplayRefreshMonitor.cpp: (WebCore::DisplayRefreshMonitor::displayDidRefresh): 2013-10-11 Andreas Kling Make RenderLayer not arena-allocated. Reviewed by Antti Koivisto. Let RenderLayerModelObject store its RenderLayer in a unique_ptr. Layers are relatively low-volume objects and this looks neutral on our performance tests. 2013-10-11 Zalan Bujtas REGRESSION (r155607): Javascript site does not load visually on panerabread.com https://bugs.webkit.org/show_bug.cgi?id=122461 Reviewed by Simon Fraser. Do not modify the composited layer backing's internal layer structure directly when the clipping behaviour changes. When we directly create/destroy RenderLayerBacking::m_ancestorClippingLayer to reflect the new clipping state, other, depending layers need updating. In order to not to corrupt the internal hierarchy, mark the compositing layers dirty and let the normal updating mechanism take care of creating/destroying the ancestor layers. Existing tests are extended. * rendering/RenderLayer.cpp: (WebCore::RenderLayer::checkIfDescendantClippingContextNeedsUpdate): (WebCore::RenderLayer::styleChanged): * rendering/RenderLayer.h: * rendering/RenderLayerBacking.h: 2013-10-10 Ryosuke Niwa Make EventPath private to EventDispatcher.cpp https://bugs.webkit.org/show_bug.cgi?id=122638 Reviewed by Darin Adler. Move the declaration of EventPath into EventDispatcher.cpp since EventPath is only used in this file. Also make EventDispatcher a namespace since it is never instantiated since r157250. * dom/EventDispatcher.cpp: (WebCore::EventPath::isEmpty): (WebCore::EventPath::size): (WebCore::EventPath::contextAt): (WebCore::EventPath::lastContextIfExists): * dom/EventDispatcher.h: * inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::willDispatchEvent): 2013-10-10 Santosh Mahto contentEditable with "position:relative" paragraphs is buggy https://bugs.webkit.org/show_bug.cgi?id=33950 Reviewed by Darin Adler. When paragraph is positioned(relative/absolute/fixed) then deleting that paragraph cause wrong merging of other(below) paragraphs. This is happening because positioned element is treated as special element and on deletion complete paragraph element is removed. The ranges become paragraph. This issue happens when all the content of special element are deleted. So the merging of paragraph is avoided in this scenario. Test: editing/deleting/deleting-relative-positioned-special-element.html * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::initializeStartEnd):Avoid merging block when special candidate are included in deletion range 2013-10-10 Brendan Long Track controls show metadata and chapter tracks https://bugs.webkit.org/show_bug.cgi?id=122468 Reviewed by Darin Adler. Test: media/video-controls-captions-trackmenu-only-captions-descriptions-and-subtitles.html * page/CaptionUserPreferences.cpp: (WebCore::CaptionUserPreferences::sortedTrackListForMenu): Only show captions, descriptions and subtitles in the track controls. 2013-10-10 Ryosuke Niwa EventContext should be used only in EventDispatcher.cpp https://bugs.webkit.org/show_bug.cgi?id=122631 Reviewed by Anders Carlsson. Merged WindowEventContext into EventDispatcher. Moved the code to avoid dispatching load event on window into dispatchEventInDOM so that WindowEventContext's constructor doesn't need Event. Also replaced DOMWindow, Node, and EventPath arguments to InspectorInstrumentation::willDispatchEvent by a single boolean indicating whether window, the origin, or the event path has an event listener. * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.vcxproj/WebCore.vcxproj: * WebCore.vcxproj/WebCore.vcxproj.filters: * WebCore.xcodeproj/project.pbxproj: * dom/DOMAllInOne.cpp: * dom/EventDispatcher.cpp: (WebCore::WindowEventContext::window): Moved from WindowEventContext. (WebCore::WindowEventContext::target): Ditto. (WebCore::WindowEventContext::WindowEventContext): Ditto; removed the code to avoid dispatching load event on window since that's checked in dispatchEventInDOM now. (WebCore::WindowEventContext::handleLocalEvents): Ditto. (WebCore::dispatchEventInDOM): Avoid calling handleLocalEvent on a load event with WindowEventContext. (WebCore::EventDispatcher::dispatchEvent): Pass a boolean to indicate whether window, the origin, or the event path contains any event listener to InspectorInstrumentation::willDispatchEvent to hide EventPath from the inspector code. * dom/EventDispatcher.h: * dom/Node.cpp: * dom/Node.h: * dom/WindowEventContext.cpp: Removed. * dom/WindowEventContext.h: Removed. * inspector/InspectorDOMAgent.cpp: * inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::willDispatchEventImpl): * inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::willDispatchEvent): 2013-10-10 Darin Adler REGRESSION (r157205?): Leaks in XPath https://bugs.webkit.org/show_bug.cgi?id=122609 Reviewed by Andreas Kling. * xml/XPathGrammar.y: Fixed warnings by adding missing "$$ = $1" to various rules. Added local unique_ptr for NodeTest and ArgumentList in three rules, so they won't be leaked. 2013-10-10 Gyuyoung Kim Add toSVGColor|Paint() to cleanup static_cast<>, and use it https://bugs.webkit.org/show_bug.cgi?id=122630 Reviewed by Andreas Kling. SVGColor and SVGPaint can't use CSS_VALUE_TYPE_CASTS(), this cl adds toSVGColor() and toSVGPaint() manually. Those functions will help to detect bad type cast. * css/CSSValue.cpp: (WebCore::CSSValue::cssText): (WebCore::CSSValue::destroy): (WebCore::CSSValue::cloneForCSSOM): * css/SVGCSSStyleSelector.cpp: (WebCore::StyleResolver::applySVGProperty): * svg/SVGColor.h: (WebCore::toSVGColor): * svg/SVGPaint.h: (WebCore::toSVGPaint): 2013-10-10 Andreas Kling Kill WebCore::BindingState. Reviewed by Darin Adler. Just use JSC::ExecState directly instead. 2013-10-10 Ryosuke Niwa Remove EventRetargeter.h/cpp https://bugs.webkit.org/show_bug.cgi?id=122625 Reviewed by Anders Carlsson. Merged the remaining contents of EventRetargeter.h and EventRetargter.cpp into EventDispatcher.cpp. * CMakeLists.txt: * GNUmakefile.list.am: * Modules/indieui/UIRequestEvent.cpp: * WebCore.xcodeproj/project.pbxproj: * dom/DOMAllInOne.cpp: * dom/Event.cpp: * dom/Event.h: * dom/EventDispatcher.cpp: (WebCore::eventTargetRespectingTargetRules): (WebCore::shouldEventCrossShadowBoundary): (WebCore::nodeOrHostIfPseudoElement): (WebCore::EventPath::EventPath): (WebCore::buildRelatedNodeMap): (WebCore::addRelatedNodeForUnmapedTreeScopes): (WebCore::calculateAdjustedNodes): (WebCore::updateTouchListsInEventPath): (WebCore::EventPath::updateTouchLists): (WebCore::EventPath::setRelatedTarget): * dom/EventRetargeter.cpp: Removed. * dom/EventRetargeter.h: Removed. * dom/FocusEvent.cpp: * dom/GestureEvent.h: * dom/KeyboardEvent.h: * dom/MouseEvent.cpp: * dom/MouseEvent.h: * dom/TouchEvent.cpp: * dom/UIEvent.cpp: * dom/WheelEvent.cpp: 2013-10-10 Thiago de Barros Lacerda Making the base implementation of isAudioStreamSource, in MediaStreamSource, return the correct value https://bugs.webkit.org/show_bug.cgi?id=122612 Reviewed by Jer Noble. There is no reason for this implementation, in the base class, to always return false if we already have the information about the type of the source. No new tests needed. * Modules/webaudio/MediaStreamAudioSource.h: * platform/mediastream/MediaStreamSource.h: (WebCore::MediaStreamSource::isAudioStreamSource): 2013-10-10 Timothy Hatcher Web Inspector: Remove the old front-end from WebKit. https://bugs.webkit.org/show_bug.cgi?id=122295 * inspector/front-end/AceTextEditor.js: Removed. * inspector/front-end/AdvancedSearchController.js: Removed. * inspector/front-end/ApplicationCacheItemsView.js: Removed. * inspector/front-end/ApplicationCacheModel.js: Removed. * inspector/front-end/AuditCategories.js: Removed. * inspector/front-end/AuditController.js: Removed. * inspector/front-end/AuditFormatters.js: Removed. * inspector/front-end/AuditLauncherView.js: Removed. * inspector/front-end/AuditResultView.js: Removed. * inspector/front-end/AuditRules.js: Removed. * inspector/front-end/AuditsPanel.js: Removed. * inspector/front-end/BottomUpProfileDataGridTree.js: Removed. * inspector/front-end/BreakpointManager.js: Removed. * inspector/front-end/BreakpointsSidebarPane.js: Removed. * inspector/front-end/CPUProfileView.js: Removed. * inspector/front-end/CSSMetadata.js: Removed. * inspector/front-end/CSSNamedFlowCollectionsView.js: Removed. * inspector/front-end/CSSNamedFlowView.js: Removed. * inspector/front-end/CSSSelectorProfileView.js: Removed. * inspector/front-end/CSSStyleModel.js: Removed. * inspector/front-end/CallStackSidebarPane.js: Removed. * inspector/front-end/CanvasProfileView.js: Removed. * inspector/front-end/Checkbox.js: Removed. * inspector/front-end/CodeMirrorTextEditor.js: Removed. * inspector/front-end/Color.js: Removed. * inspector/front-end/CompilerScriptMapping.js: Removed. * inspector/front-end/ConsoleMessage.js: Removed. * inspector/front-end/ConsoleModel.js: Removed. * inspector/front-end/ConsolePanel.js: Removed. * inspector/front-end/ConsoleView.js: Removed. * inspector/front-end/ContentProvider.js: Removed. * inspector/front-end/ContentProviderBasedProjectDelegate.js: Removed. * inspector/front-end/ContentProviders.js: Removed. * inspector/front-end/ContextMenu.js: Removed. * inspector/front-end/CookieItemsView.js: Removed. * inspector/front-end/CookieParser.js: Removed. * inspector/front-end/CookiesTable.js: Removed. * inspector/front-end/DOMAgent.js: Removed. * inspector/front-end/DOMBreakpointsSidebarPane.js: Removed. * inspector/front-end/DOMCountersGraph.js: Removed. * inspector/front-end/DOMExtension.js: Removed. * inspector/front-end/DOMPresentationUtils.js: Removed. * inspector/front-end/DOMStorage.js: Removed. * inspector/front-end/DOMStorageItemsView.js: Removed. * inspector/front-end/DOMSyntaxHighlighter.js: Removed. * inspector/front-end/DataGrid.js: Removed. * inspector/front-end/Database.js: Removed. * inspector/front-end/DatabaseQueryView.js: Removed. * inspector/front-end/DatabaseTableView.js: Removed. * inspector/front-end/DebuggerModel.js: Removed. * inspector/front-end/DebuggerScriptMapping.js: Removed. * inspector/front-end/DefaultScriptMapping.js: Removed. * inspector/front-end/DefaultTextEditor.js: Removed. * inspector/front-end/Dialog.js: Removed. * inspector/front-end/DirectoryContentView.js: Removed. * inspector/front-end/DockController.js: Removed. * inspector/front-end/Drawer.js: Removed. * inspector/front-end/ElementsPanel.js: Removed. * inspector/front-end/ElementsPanelDescriptor.js: Removed. * inspector/front-end/ElementsTreeOutline.js: Removed. * inspector/front-end/EmptyView.js: Removed. * inspector/front-end/EventListenersSidebarPane.js: Removed. * inspector/front-end/ExtensionAPI.js: Removed. * inspector/front-end/ExtensionAuditCategory.js: Removed. * inspector/front-end/ExtensionPanel.js: Removed. * inspector/front-end/ExtensionRegistryStub.js: Removed. * inspector/front-end/ExtensionServer.js: Removed. * inspector/front-end/ExtensionView.js: Removed. * inspector/front-end/FileContentView.js: Removed. * inspector/front-end/FileManager.js: Removed. * inspector/front-end/FileMapping.js: Removed. * inspector/front-end/FileSystemMapping.js: Removed. * inspector/front-end/FileSystemModel.js: Removed. * inspector/front-end/FileSystemProjectDelegate.js: Removed. * inspector/front-end/FileSystemView.js: Removed. * inspector/front-end/FileUtils.js: Removed. * inspector/front-end/FilteredItemSelectionDialog.js: Removed. * inspector/front-end/FlameChart.js: Removed. * inspector/front-end/FontView.js: Removed. * inspector/front-end/GoToLineDialog.js: Removed. * inspector/front-end/HAREntry.js: Removed. * inspector/front-end/HandlerRegistry.js: Removed. * inspector/front-end/HeapSnapshot.js: Removed. * inspector/front-end/HeapSnapshotDataGrids.js: Removed. * inspector/front-end/HeapSnapshotGridNodes.js: Removed. * inspector/front-end/HeapSnapshotLoader.js: Removed. * inspector/front-end/HeapSnapshotProxy.js: Removed. * inspector/front-end/HeapSnapshotView.js: Removed. * inspector/front-end/HeapSnapshotWorker.js: Removed. * inspector/front-end/HeapSnapshotWorkerDispatcher.js: Removed. * inspector/front-end/HelpScreen.js: Removed. * inspector/front-end/ImageView.js: Removed. * inspector/front-end/Images/addIcon.png: Removed. * inspector/front-end/Images/applicationCache.png: Removed. * inspector/front-end/Images/back.png: Removed. * inspector/front-end/Images/breakpointBorder.png: Removed. * inspector/front-end/Images/breakpointConditionalBorder.png: Removed. * inspector/front-end/Images/breakpointConditionalCounterBorder.png: Removed. * inspector/front-end/Images/breakpointCounterBorder.png: Removed. * inspector/front-end/Images/checker.png: Removed. * inspector/front-end/Images/closeButtons.png: Removed. * inspector/front-end/Images/cookie.png: Removed. * inspector/front-end/Images/database.png: Removed. * inspector/front-end/Images/databaseTable.png: Removed. * inspector/front-end/Images/debuggerContinue.png: Removed. * inspector/front-end/Images/debuggerPause.png: Removed. * inspector/front-end/Images/debuggerStepInto.png: Removed. * inspector/front-end/Images/debuggerStepOut.png: Removed. * inspector/front-end/Images/debuggerStepOver.png: Removed. * inspector/front-end/Images/deleteIcon.png: Removed. * inspector/front-end/Images/disclosureTriangleSmallDown.png: Removed. * inspector/front-end/Images/disclosureTriangleSmallDownBlack.png: Removed. * inspector/front-end/Images/disclosureTriangleSmallDownWhite.png: Removed. * inspector/front-end/Images/disclosureTriangleSmallRight.png: Removed. * inspector/front-end/Images/disclosureTriangleSmallRightBlack.png: Removed. * inspector/front-end/Images/disclosureTriangleSmallRightDown.png: Removed. * inspector/front-end/Images/disclosureTriangleSmallRightDownBlack.png: Removed. * inspector/front-end/Images/disclosureTriangleSmallRightDownWhite.png: Removed. * inspector/front-end/Images/disclosureTriangleSmallRightWhite.png: Removed. * inspector/front-end/Images/domain.png: Removed. * inspector/front-end/Images/errorIcon.png: Removed. * inspector/front-end/Images/errorMediumIcon.png: Removed. * inspector/front-end/Images/errorRedDot.png: Removed. * inspector/front-end/Images/fileSystem.png: Removed. * inspector/front-end/Images/forward.png: Removed. * inspector/front-end/Images/frame.png: Removed. * inspector/front-end/Images/glossyHeader.png: Removed. * inspector/front-end/Images/glossyHeaderPressed.png: Removed. * inspector/front-end/Images/glossyHeaderSelected.png: Removed. * inspector/front-end/Images/glossyHeaderSelectedPressed.png: Removed. * inspector/front-end/Images/goArrow.png: Removed. * inspector/front-end/Images/graphLabelCalloutLeft.png: Removed. * inspector/front-end/Images/graphLabelCalloutRight.png: Removed. * inspector/front-end/Images/indexedDB.png: Removed. * inspector/front-end/Images/indexedDBIndex.png: Removed. * inspector/front-end/Images/indexedDBObjectStore.png: Removed. * inspector/front-end/Images/localStorage.png: Removed. * inspector/front-end/Images/namedFlowOverflow.png: Removed. * inspector/front-end/Images/navigatorShowHideButton.png: Removed. * inspector/front-end/Images/paneAddButtons.png: Removed. * inspector/front-end/Images/paneBottomGrow.png: Removed. * inspector/front-end/Images/paneBottomGrowActive.png: Removed. * inspector/front-end/Images/paneElementStateButtons.png: Removed. * inspector/front-end/Images/paneFilterButtons.png: Removed. * inspector/front-end/Images/paneGrowHandleLine.png: Removed. * inspector/front-end/Images/paneRefreshButtons.png: Removed. * inspector/front-end/Images/paneSettingsButtons.png: Removed. * inspector/front-end/Images/popoverArrows.png: Removed. * inspector/front-end/Images/popoverBackground.png: Removed. * inspector/front-end/Images/profileGroupIcon.png: Removed. * inspector/front-end/Images/profileIcon.png: Removed. * inspector/front-end/Images/profileSmallIcon.png: Removed. * inspector/front-end/Images/profilesSilhouette.png: Removed. * inspector/front-end/Images/programCounterBorder.png: Removed. * inspector/front-end/Images/radioDot.png: Removed. * inspector/front-end/Images/regionEmpty.png: Removed. * inspector/front-end/Images/regionFit.png: Removed. * inspector/front-end/Images/regionOverset.png: Removed. * inspector/front-end/Images/resourceCSSIcon.png: Removed. * inspector/front-end/Images/resourceDocumentIcon.png: Removed. * inspector/front-end/Images/resourceDocumentIconSmall.png: Removed. * inspector/front-end/Images/resourceJSIcon.png: Removed. * inspector/front-end/Images/resourcePlainIcon.png: Removed. * inspector/front-end/Images/resourcePlainIconSmall.png: Removed. * inspector/front-end/Images/resourcesSizeGraphIcon.png: Removed. * inspector/front-end/Images/resourcesTimeGraphIcon.png: Removed. * inspector/front-end/Images/scriptsSilhouette.png: Removed. * inspector/front-end/Images/searchNext.png: Removed. * inspector/front-end/Images/searchPrev.png: Removed. * inspector/front-end/Images/searchSmallBlue.png: Removed. * inspector/front-end/Images/searchSmallBrightBlue.png: Removed. * inspector/front-end/Images/searchSmallGray.png: Removed. * inspector/front-end/Images/searchSmallWhite.png: Removed. * inspector/front-end/Images/segment.png: Removed. * inspector/front-end/Images/segmentEnd.png: Removed. * inspector/front-end/Images/segmentHover.png: Removed. * inspector/front-end/Images/segmentHoverEnd.png: Removed. * inspector/front-end/Images/segmentSelected.png: Removed. * inspector/front-end/Images/segmentSelectedEnd.png: Removed. * inspector/front-end/Images/sessionStorage.png: Removed. * inspector/front-end/Images/spinner.gif: Removed. * inspector/front-end/Images/spinnerActive.gif: Removed. * inspector/front-end/Images/spinnerActiveSelected.gif: Removed. * inspector/front-end/Images/spinnerInactive.gif: Removed. * inspector/front-end/Images/spinnerInactiveSelected.gif: Removed. * inspector/front-end/Images/splitviewDimple.png: Removed. * inspector/front-end/Images/splitviewDividerBackground.png: Removed. * inspector/front-end/Images/statusbarButtonGlyphs.png: Removed. * inspector/front-end/Images/statusbarButtonGlyphs2x.png: Removed. * inspector/front-end/Images/statusbarResizerHorizontal.png: Removed. * inspector/front-end/Images/statusbarResizerVertical.png: Removed. * inspector/front-end/Images/successGreenDot.png: Removed. * inspector/front-end/Images/thumbActiveHoriz.png: Removed. * inspector/front-end/Images/thumbActiveVert.png: Removed. * inspector/front-end/Images/thumbHoriz.png: Removed. * inspector/front-end/Images/thumbHoverHoriz.png: Removed. * inspector/front-end/Images/thumbHoverVert.png: Removed. * inspector/front-end/Images/thumbVert.png: Removed. * inspector/front-end/Images/tickMark.png: Removed. * inspector/front-end/Images/timelineHollowPillBlue.png: Removed. * inspector/front-end/Images/timelineHollowPillGray.png: Removed. * inspector/front-end/Images/timelineHollowPillGreen.png: Removed. * inspector/front-end/Images/timelineHollowPillOrange.png: Removed. * inspector/front-end/Images/timelineHollowPillPurple.png: Removed. * inspector/front-end/Images/timelineHollowPillRed.png: Removed. * inspector/front-end/Images/timelineHollowPillYellow.png: Removed. * inspector/front-end/Images/timelinePillBlue.png: Removed. * inspector/front-end/Images/timelinePillGray.png: Removed. * inspector/front-end/Images/timelinePillGreen.png: Removed. * inspector/front-end/Images/timelinePillOrange.png: Removed. * inspector/front-end/Images/timelinePillPurple.png: Removed. * inspector/front-end/Images/timelinePillRed.png: Removed. * inspector/front-end/Images/timelinePillYellow.png: Removed. * inspector/front-end/Images/toolbarIcons.png: Removed. * inspector/front-end/Images/toolbarIconsSmall.png: Removed. * inspector/front-end/Images/toolbarItemSelected.png: Removed. * inspector/front-end/Images/trackHoriz.png: Removed. * inspector/front-end/Images/trackVert.png: Removed. * inspector/front-end/Images/treeDownTriangleBlack.png: Removed. * inspector/front-end/Images/treeDownTriangleWhite.png: Removed. * inspector/front-end/Images/treeRightTriangleBlack.png: Removed. * inspector/front-end/Images/treeRightTriangleWhite.png: Removed. * inspector/front-end/Images/treeUpTriangleBlack.png: Removed. * inspector/front-end/Images/treeUpTriangleWhite.png: Removed. * inspector/front-end/Images/userInputIcon.png: Removed. * inspector/front-end/Images/userInputPreviousIcon.png: Removed. * inspector/front-end/Images/userInputResultIcon.png: Removed. * inspector/front-end/Images/warningIcon.png: Removed. * inspector/front-end/Images/warningMediumIcon.png: Removed. * inspector/front-end/Images/warningOrangeDot.png: Removed. * inspector/front-end/Images/warningsErrors.png: Removed. * inspector/front-end/IndexedDBModel.js: Removed. * inspector/front-end/IndexedDBViews.js: Removed. * inspector/front-end/InspectElementModeController.js: Removed. * inspector/front-end/InspectorBackend.js: Removed. * inspector/front-end/InspectorBackendCommands.qrc: Removed. * inspector/front-end/InspectorFrontendAPI.js: Removed. * inspector/front-end/InspectorFrontendHostStub.js: Removed. * inspector/front-end/InspectorView.js: Removed. * inspector/front-end/IsolatedFileSystem.js: Removed. * inspector/front-end/IsolatedFileSystemManager.js: Removed. * inspector/front-end/JSHeapSnapshot.js: Removed. * inspector/front-end/JavaScriptFormatter.js: Removed. * inspector/front-end/JavaScriptSourceFrame.js: Removed. * inspector/front-end/KeyboardShortcut.js: Removed. * inspector/front-end/Linkifier.js: Removed. * inspector/front-end/LiveEditSupport.js: Removed. * inspector/front-end/MemoryStatistics.js: Removed. * inspector/front-end/MetricsSidebarPane.js: Removed. * inspector/front-end/NativeBreakpointsSidebarPane.js: Removed. * inspector/front-end/NativeHeapSnapshot.js: Removed. * inspector/front-end/NativeMemoryGraph.js: Removed. * inspector/front-end/NavigatorOverlayController.js: Removed. * inspector/front-end/NavigatorView.js: Removed. * inspector/front-end/NetworkItemView.js: Removed. * inspector/front-end/NetworkLog.js: Removed. * inspector/front-end/NetworkManager.js: Removed. * inspector/front-end/NetworkPanel.js: Removed. * inspector/front-end/NetworkPanelDescriptor.js: Removed. * inspector/front-end/NetworkRequest.js: Removed. * inspector/front-end/NetworkUISourceCodeProvider.js: Removed. * inspector/front-end/Object.js: Removed. * inspector/front-end/ObjectPopoverHelper.js: Removed. * inspector/front-end/ObjectPropertiesSection.js: Removed. * inspector/front-end/OverridesView.js: Removed. * inspector/front-end/OverviewGrid.js: Removed. * inspector/front-end/Panel.js: Removed. * inspector/front-end/PanelEnablerView.js: Removed. * inspector/front-end/ParsedURL.js: Removed. * inspector/front-end/Placard.js: Removed. * inspector/front-end/Popover.js: Removed. * inspector/front-end/PresentationConsoleMessageHelper.js: Removed. * inspector/front-end/ProfileDataGridTree.js: Removed. * inspector/front-end/ProfileLauncherView.js: Removed. * inspector/front-end/ProfilesPanel.js: Removed. * inspector/front-end/ProfilesPanelDescriptor.js: Removed. * inspector/front-end/Progress.js: Removed. * inspector/front-end/ProgressIndicator.js: Removed. * inspector/front-end/PropertiesSection.js: Removed. * inspector/front-end/PropertiesSidebarPane.js: Removed. * inspector/front-end/RawSourceCode.js: Removed. * inspector/front-end/RemoteObject.js: Removed. * inspector/front-end/RequestCookiesView.js: Removed. * inspector/front-end/RequestHTMLView.js: Removed. * inspector/front-end/RequestHeadersView.js: Removed. * inspector/front-end/RequestJSONView.js: Removed. * inspector/front-end/RequestPreviewView.js: Removed. * inspector/front-end/RequestResponseView.js: Removed. * inspector/front-end/RequestTimingView.js: Removed. * inspector/front-end/RequestView.js: Removed. * inspector/front-end/Resource.js: Removed. * inspector/front-end/ResourceScriptMapping.js: Removed. * inspector/front-end/ResourceTreeModel.js: Removed. * inspector/front-end/ResourceType.js: Removed. * inspector/front-end/ResourceUtils.js: Removed. * inspector/front-end/ResourceView.js: Removed. * inspector/front-end/ResourceWebSocketFrameView.js: Removed. * inspector/front-end/ResourcesPanel.js: Removed. * inspector/front-end/RevisionHistoryView.js: Removed. * inspector/front-end/RuntimeModel.js: Removed. * inspector/front-end/SASSSourceMapping.js: Removed. * inspector/front-end/ScopeChainSidebarPane.js: Removed. * inspector/front-end/Script.js: Removed. * inspector/front-end/ScriptFormatter.js: Removed. * inspector/front-end/ScriptFormatterWorker.js: Removed. * inspector/front-end/ScriptSnippetModel.js: Removed. * inspector/front-end/ScriptsNavigator.js: Removed. * inspector/front-end/ScriptsPanel.js: Removed. * inspector/front-end/ScriptsPanelDescriptor.js: Removed. * inspector/front-end/ScriptsSearchScope.js: Removed. * inspector/front-end/SearchController.js: Removed. * inspector/front-end/Section.js: Removed. * inspector/front-end/Settings.js: Removed. * inspector/front-end/SettingsScreen.js: Removed. * inspector/front-end/ShortcutsScreen.js: Removed. * inspector/front-end/ShowMoreDataGridNode.js: Removed. * inspector/front-end/SidebarOverlay.js: Removed. * inspector/front-end/SidebarPane.js: Removed. * inspector/front-end/SidebarTreeElement.js: Removed. * inspector/front-end/SidebarView.js: Removed. * inspector/front-end/SimpleWorkspaceProvider.js: Removed. * inspector/front-end/SnippetJavaScriptSourceFrame.js: Removed. * inspector/front-end/SnippetStorage.js: Removed. * inspector/front-end/SoftContextMenu.js: Removed. * inspector/front-end/SourceCSSTokenizer.js: Removed. * inspector/front-end/SourceCSSTokenizer.re2js: Removed. * inspector/front-end/SourceFrame.js: Removed. * inspector/front-end/SourceHTMLTokenizer.js: Removed. * inspector/front-end/SourceHTMLTokenizer.re2js: Removed. * inspector/front-end/SourceJavaScriptTokenizer.js: Removed. * inspector/front-end/SourceJavaScriptTokenizer.re2js: Removed. * inspector/front-end/SourceMap.js: Removed. * inspector/front-end/SourceMapping.js: Removed. * inspector/front-end/SourceTokenizer.js: Removed. * inspector/front-end/Spectrum.js: Removed. * inspector/front-end/SplitView.js: Removed. * inspector/front-end/StatusBarButton.js: Removed. * inspector/front-end/StyleSheetOutlineDialog.js: Removed. * inspector/front-end/StylesSidebarPane.js: Removed. * inspector/front-end/StylesSourceMapping.js: Removed. * inspector/front-end/SuggestBox.js: Removed. * inspector/front-end/TabbedEditorContainer.js: Removed. * inspector/front-end/TabbedPane.js: Removed. * inspector/front-end/TestController.js: Removed. * inspector/front-end/TextEditor.js: Removed. * inspector/front-end/TextEditorHighlighter.js: Removed. * inspector/front-end/TextEditorModel.js: Removed. * inspector/front-end/TextPrompt.js: Removed. * inspector/front-end/TextUtils.js: Removed. * inspector/front-end/TimelineFrameController.js: Removed. * inspector/front-end/TimelineGrid.js: Removed. * inspector/front-end/TimelineManager.js: Removed. * inspector/front-end/TimelineModel.js: Removed. * inspector/front-end/TimelineOverviewPane.js: Removed. * inspector/front-end/TimelinePanel.js: Removed. * inspector/front-end/TimelinePanelDescriptor.js: Removed. * inspector/front-end/TimelinePresentationModel.js: Removed. * inspector/front-end/Toolbar.js: Removed. * inspector/front-end/TopDownProfileDataGridTree.js: Removed. * inspector/front-end/UISourceCode.js: Removed. * inspector/front-end/UISourceCodeFrame.js: Removed. * inspector/front-end/UIString.js: Removed. * inspector/front-end/UIUtils.js: Removed. * inspector/front-end/UglifyJS/parse-js.js: Removed. * inspector/front-end/UserAgentSupport.js: Removed. * inspector/front-end/UserMetrics.js: Removed. * inspector/front-end/View.js: Removed. * inspector/front-end/ViewportControl.js: Removed. * inspector/front-end/WatchExpressionsSidebarPane.js: Removed. * inspector/front-end/WebKit.qrc: Removed. * inspector/front-end/WorkerManager.js: Removed. * inspector/front-end/WorkersSidebarPane.js: Removed. * inspector/front-end/Workspace.js: Removed. * inspector/front-end/ace/LICENSE.txt: Removed. * inspector/front-end/ace/ace.js: Removed. * inspector/front-end/ace/acedevtools.css: Removed. * inspector/front-end/ace/mode_css.js: Removed. * inspector/front-end/ace/mode_html.js: Removed. * inspector/front-end/ace/mode_javascript.js: Removed. * inspector/front-end/ace/theme_textmate.js: Removed. * inspector/front-end/auditsPanel.css: Removed. * inspector/front-end/breadcrumbList.css: Removed. * inspector/front-end/breakpointsList.css: Removed. * inspector/front-end/buildSystemOnly.js: Removed. * inspector/front-end/canvasProfiler.css: Removed. * inspector/front-end/cm/LICENSE: Removed. * inspector/front-end/cm/closebrackets.js: Removed. * inspector/front-end/cm/cmdevtools.css: Removed. * inspector/front-end/cm/codemirror.css: Removed. * inspector/front-end/cm/codemirror.js: Removed. * inspector/front-end/cm/css.js: Removed. * inspector/front-end/cm/htmlmixed.js: Removed. * inspector/front-end/cm/javascript.js: Removed. * inspector/front-end/cm/matchbrackets.js: Removed. * inspector/front-end/cm/xml.js: Removed. * inspector/front-end/cssNamedFlows.css: Removed. * inspector/front-end/dataGrid.css: Removed. * inspector/front-end/dialog.css: Removed. * inspector/front-end/elementsPanel.css: Removed. * inspector/front-end/externs.js: Removed. * inspector/front-end/filteredItemSelectionDialog.css: Removed. * inspector/front-end/flameChart.css: Removed. * inspector/front-end/heapProfiler.css: Removed. * inspector/front-end/helpScreen.css: Removed. * inspector/front-end/indexedDBViews.css: Removed. * inspector/front-end/inspector.css: Removed. * inspector/front-end/inspector.html: Removed. * inspector/front-end/inspector.js: Removed. * inspector/front-end/inspectorCommon.css: Removed. * inspector/front-end/inspectorSyntaxHighlight.css: Removed. * inspector/front-end/jsdifflib.js: Removed. * inspector/front-end/navigatorView.css: Removed. * inspector/front-end/networkLogView.css: Removed. * inspector/front-end/networkPanel.css: Removed. * inspector/front-end/panelEnablerView.css: Removed. * inspector/front-end/popover.css: Removed. * inspector/front-end/profilesPanel.css: Removed. * inspector/front-end/resourceView.css: Removed. * inspector/front-end/resourcesPanel.css: Removed. * inspector/front-end/revisionHistory.css: Removed. * inspector/front-end/scriptsPanel.css: Removed. * inspector/front-end/sidebarPane.css: Removed. * inspector/front-end/spectrum.css: Removed. * inspector/front-end/splitView.css: Removed. * inspector/front-end/tabbedPane.css: Removed. * inspector/front-end/test-runner.html: Removed. * inspector/front-end/textEditor.css: Removed. * inspector/front-end/textPrompt.css: Removed. * inspector/front-end/timelinePanel.css: Removed. * inspector/front-end/treeoutline.js: Removed. * inspector/front-end/utilities.js: Removed. 2013-10-10 Marcelo Morais Web Inspector: Remove the old front-end from WebKit https://bugs.webkit.org/show_bug.cgi?id=122295 Reviewed by Timothy Hatcher. Updating the project files to remove all references from the old inspector front-end. * WebCore.vcxproj/WebCore.vcxproj: Removed the references for the old inspector front-end. * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto. * WebCore.xcodeproj/project.pbxproj: Ditto. * inspector/compile-front-end.py: Removed. 2013-10-10 Ryuan Choi Unreviewed build fix with ENABLE_DEVICE_ORIENTATION after r157215 Now, impl() return reference instead of a pointer. * bindings/js/JSDeviceMotionEventCustom.cpp: (WebCore::JSDeviceMotionEvent::acceleration): (WebCore::JSDeviceMotionEvent::accelerationIncludingGravity): (WebCore::JSDeviceMotionEvent::rotationRate): (WebCore::JSDeviceMotionEvent::interval): (WebCore::JSDeviceMotionEvent::initDeviceMotionEvent): * bindings/js/JSDeviceOrientationEventCustom.cpp: (WebCore::JSDeviceOrientationEvent::alpha): (WebCore::JSDeviceOrientationEvent::beta): (WebCore::JSDeviceOrientationEvent::gamma): (WebCore::JSDeviceOrientationEvent::absolute): (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent): 2013-10-10 Thiago de Barros Lacerda [MediaStream API] update MediaStream object to match spec https://bugs.webkit.org/show_bug.cgi?id=121939 Reviewed by Jer Noble. Test: fast/mediastream/MediaStream-clone.html * Modules/mediastream/MediaStream.cpp: (WebCore::MediaStream::MediaStream): (WebCore::MediaStream::ended): (WebCore::MediaStream::clone): (WebCore::MediaStream::cloneMediaStreamTrackVector): (WebCore::MediaStream::contextDestroyed): (WebCore::MediaStream::scheduledEventTimerFired): * Modules/mediastream/MediaStream.h: * Modules/mediastream/MediaStream.idl: 2013-10-10 Beth Dakin Calling setUsePresentationValue on MountainLion results in unrecognized selector warnings https://bugs.webkit.org/show_bug.cgi?id=122624 Reviewed by Tim Horton. Only call setUsePresentationValue if the scrollbar supports updates on a secondary thread. * platform/mac/ScrollAnimatorMac.mm: (-[WebScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]): 2013-10-10 Seokju Kwon Unreviewed build fix after r157250 * dom/EventDispatcher.cpp: (WebCore::EventDispatcher::dispatchEvent): 2013-10-10 Thiago de Barros Lacerda Create MediaStream object with ended attribute set if all tracks that are being used on its creation are ended https://bugs.webkit.org/show_bug.cgi?id=122358 Reviewed by Jer Noble. Spec tells that if all tracks that belongs to a new MediaStream object being created are ended, then the ended attribute of this MediaStream must be set to true. http://www.w3.org/TR/mediacapture-streams/#widl-MediaStream-ended Since there is no port supporting MediaStream yet, we are skipping this test for now. Test: fast/mediastream/MediaStream-construct-with-ended-tracks.html * Modules/mediastream/MediaStream.cpp: (WebCore::createFromSourceVectors): (WebCore::MediaStream::create): * Modules/webaudio/MediaStreamAudioDestinationNode.cpp: (WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode): * platform/mediastream/MediaStreamDescriptor.cpp: (WebCore::MediaStreamDescriptor::create): (WebCore::MediaStreamDescriptor::MediaStreamDescriptor): * platform/mediastream/MediaStreamDescriptor.h: * platform/mock/MockMediaStreamCenter.cpp: (WebCore::MockMediaStreamCenter::createMediaStream): 2013-10-10 Andy Estes Add SPI for telling WebKit to prefer pictograph glyphs over monochrome ones https://bugs.webkit.org/show_bug.cgi?id=122608 Reviewed by Dan Bernstein. Based on patches by Dan Bernstein. Test: fonts/font-fallback-prefers-pictographs.html Created a mechanism to append a font to the end of a font's fallback list, before the system fallback list. This mechanism is used when Settings::fontFallbackPrefersPictographs() is true to insert a pictograph font ahead of a monochrome one from the system fallback list. * WebCore.exp.in: Moved __ZN7WebCore8Settings33setFontFallbackPrefersPictographsEb outside of an iOS platform guard. * css/CSSFontSelector.cpp: (WebCore::CSSFontSelector::fallbackFontDataCount): Retuned 1 if pictograph fonts are preferred. (WebCore::CSSFontSelector::getFallbackFontData): Returned the pictograph font's FontData if it is preferred. * css/CSSFontSelector.h: * page/Settings.cpp: (WebCore::Settings::Settings): Initialized m_fontFallbackPrefersPictographs to false. (WebCore::Settings::setFontFallbackPrefersPictographs): Set m_fontFallbackPrefersPictographs and called Page::setNeedsRecalcStyleInAllFrames(). * page/Settings.h: (WebCore::Settings::fontFallbackPrefersPictographs): * platform/graphics/FontGlyphs.cpp: (WebCore::FontGlyphs::realizeFontDataAt): Realized the selector's fallback font if necessary. * platform/graphics/FontSelector.h: * style/StyleResolveTree.cpp: (WebCore::Style::resolveTree): Removed iOS platform guards. * testing/InternalSettings.cpp: (WebCore::InternalSettings::setFontFallbackPrefersPictographs): Set the corresponding WebCore::Setting. * testing/InternalSettings.h: Defined an internal setting for the test. * testing/InternalSettings.idl: Ditto. 2013-10-10 Sergio Correia Remove unused attribute in CoordinatedTile class https://bugs.webkit.org/show_bug.cgi?id=122619 Reviewed by Noam Rosenthal. No new tests, covered by existing ones. * platform/graphics/texmap/coordinated/CoordinatedTile.h: Remove m_localBuffer. 2013-10-10 Beth Dakin Scrollbars are updated on the main thread rather than the scrolling thread (causing scroll bars not to appear/update quickly in some cases) https://bugs.webkit.org/show_bug.cgi?id=122585 -and corresponding- Reviewed by Simon Fraser. This patch does a few things in order to allow scrollbars to be updated on the scrolling thread: 1. This patch adds the ability to know if the lower-level APIs necessary to get this to work right are available, AND if the content is actually capable of taking advantage of this feature. This is currently implemented as Scrollbar::supportsUpdateOnSecondaryThread() which makes use of a new ScrollableArea function called updatesScrollLayerPositionOnMainThread() 2. To update on the scrolling thread, the scrolling tree needs to know about the ScrollbarPainters. 3. Once it knows about them, it should update the presentation value whenever the layer position changes. 4. Presentation value is basically the same thing as double value. There is a bit of code we maintain currently to compute that. This patch moves that code to a static function on ScrollableArea that can be called from both the main thread and the scrolling thread. 5. ScrollbarPainter API needs to know about the layers we have created for the vertical and horizontal scrollbars, then they will use those layers and the presentation value that we set on the scrolling thread to move the layers around. This is part of #1 above. * page/FrameView.cpp: (WebCore::FrameView::updatesScrollLayerPositionOnMainThread): * page/FrameView.h: This is part of #2. ScrollingStateScrollingNodes now have vertical and horizontal ScrollbarPainters for Mac only. * page/scrolling/ScrollingStateScrollingNode.cpp: (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): * page/scrolling/ScrollingStateScrollingNode.h: (WebCore::ScrollingStateScrollingNode::verticalScrollbarPainter): (WebCore::ScrollingStateScrollingNode::horizontalScrollbarPainter): Also part of #2. Make sure to set the ScrollbarPainters for scrolling nodes when appropriate. * page/scrolling/mac/ScrollingCoordinatorMac.h: * page/scrolling/mac/ScrollingCoordinatorMac.mm: (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated): Implement this function that was just stubbed out before. This is part of #5 in that is will allow the ScrollbarPainter API to know about any layer changes. (WebCore::ScrollingCoordinatorMac::scrollableAreaScrollbarLayerDidChange): Back to #2, making sure we properly set the ScrollbarPainters to send over to the scrolling thread. (WebCore::ScrollingCoordinatorMac::setScrollbarPaintersForNode): * page/scrolling/mac/ScrollingStateScrollingNodeMac.mm: (WebCore::ScrollingStateScrollingNode::setScrollbarPainters): This code achieves #3. It uses new ScrollbarPainter API to adjust the position of the scrollbars from the scrolling thread. * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h: * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm: (WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac): (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren): (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition): This is for #5. ScrollbarPainter needs to know about our scrollbar layers. * platform/ScrollAnimator.h: (WebCore::ScrollAnimator::verticalScrollbarLayerDidChange): (WebCore::ScrollAnimator::horizontalScrollbarLayerDidChange): * platform/ScrollableArea.cpp: (WebCore::ScrollableArea::verticalScrollbarLayerDidChange): (WebCore::ScrollableArea::horizontalScrollbarLayerDidChange): This is for #4. This code computes the scrollbar’s value and current overhang amount. (WebCore::ScrollableArea::computeScrollbarValueAndOverhang): * platform/ScrollableArea.h: (WebCore::ScrollableArea::layerForHorizontalScrollbar): (WebCore::ScrollableArea::layerForVerticalScrollbar): (WebCore::ScrollableArea::layerForScrolling): This is for #1. We need to know if we have the ability to update scrollbars on a different thread. We can do that only on certain versions of the OS, only when threaded scrolling is enabled, and only when the current page is actually using the scrolling thread to scroll. * platform/Scrollbar.cpp: (WebCore::Scrollbar::supportsUpdateOnSecondaryThread): * platform/Scrollbar.h: * platform/ScrollbarThemeClient.h: New ScrollbarPainter APIs. * platform/mac/NSScrollerImpDetails.h: This is for #5, letting the ScrollbarPainter API know about the layers. * platform/mac/ScrollAnimatorMac.h: * platform/mac/ScrollAnimatorMac.mm: (-[WebScrollbarPainterDelegate layer]): (-[WebScrollbarPainterDelegate convertRectToLayer:]): (-[WebScrollbarPainterDelegate shouldUseLayerPerPartForScrollerImp:]): Before we kick off a scroll animation, set the current painting characteristics so they are up-to-date in case we are scrolling on the scrolling thread. (-[WebScrollbarPainterDelegate setUpAlphaAnimation:scrollerPainter:part:WebCore::animateAlphaTo:duration:]): (-[WebScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]): (-[WebScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]): (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar): (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar): (WebCore::ScrollAnimatorMac::verticalScrollbarLayerDidChange): (WebCore::ScrollAnimatorMac::horizontalScrollbarLayerDidChange): Only paint the scrollbars through ScrollbarThemeMac if they are NOT being updated by the scrolling thread. * platform/mac/ScrollbarThemeMac.h: * platform/mac/ScrollbarThemeMac.mm: (WebCore::ScrollbarThemeMac::setCurrentPaintCharacteristics): (WebCore::scrollbarPainterPaint): (WebCore::ScrollbarThemeMac::paint): Back to #1. * rendering/RenderLayer.cpp: (WebCore::RenderLayer::updatesScrollLayerPositionOnMainThread): * rendering/RenderLayer.h: * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::updateOverflowControlsLayers): * rendering/RenderListBox.h: 2013-10-10 Brent Fulgham [Win] Unreviewed build fix after r157228 The changes in r157228 trigger a bug in VS2010. This patch works around the compiler bug to allow this platform to build. * dom/Range.cpp: Move implementation to header file. * dom/Range.h: Inline the method. * page/DOMWindow.cpp: (WebCore::DOMWindow::open): Add stub method (with pointer arguments) to call the real method with references. * page/DOMWindow.h: Declare stub method taking pointer arguments to avoid compiler bug. * testing/Internals.cpp: (WebCore::Internals::openDummyInspectorFrontend): Use work-around method when building under the buggy version of Visual Studio. 2013-10-10 Ryosuke Niwa Make all functions of EventDispatcher static https://bugs.webkit.org/show_bug.cgi?id=122591 Reviewed by Antti Koivisto. Now that EventDispatchMediator is gone, we don't have to have an EventDispatcher object. Turn EventDispatcher into an empty class with a bunch of static functions. We can convert it to a namespace or whatever later. * dom/EventDispatcher.cpp: (WebCore::EventDispatcher::dispatchSimulatedClick): (WebCore::EventDispatcher::dispatchEvent): * dom/EventDispatcher.h: 2013-10-10 Sergio Correia Convert some OwnPtr/PassOwnPtr in CoordinatedGraphics code to std::unique_ptr's https://bugs.webkit.org/show_bug.cgi?id=122614 Reviewed by Anders Carlsson. No new tests, covered by existing ones. * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp: (WebCore::CompositingCoordinator::paintToSurface): (WebCore::CompositingCoordinator::releaseInactiveAtlasesTimerFired): * platform/graphics/texmap/coordinated/CompositingCoordinator.h: * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: (WebCore::CoordinatedGraphicsLayer::adjustContentsScale): (WebCore::CoordinatedGraphicsLayer::createBackingStore): (WebCore::CoordinatedGraphicsLayer::updateContentBuffers): (WebCore::CoordinatedGraphicsLayer::purgeBackingStores): * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h: * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp: (WebCore::CoordinatedGraphicsScene::createLayer): (WebCore::CoordinatedGraphicsScene::deleteLayer): (WebCore::CoordinatedGraphicsScene::ensureRootLayer): (WebCore::CoordinatedGraphicsScene::purgeGLResources): * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h: * platform/graphics/texmap/coordinated/ThreadSafeCoordinatedSurface.cpp: (WebCore::ThreadSafeCoordinatedSurface::ThreadSafeCoordinatedSurface): * platform/graphics/texmap/coordinated/ThreadSafeCoordinatedSurface.h: * platform/graphics/texmap/coordinated/UpdateAtlas.cpp: (WebCore::UpdateAtlas::buildLayoutIfNeeded): (WebCore::UpdateAtlas::didSwapBuffers): * platform/graphics/texmap/coordinated/UpdateAtlas.h: (WebCore::UpdateAtlas::isInUse): 2013-10-10 Roger Fong Validate uniform input when setting texture sampler uniforms. https://bugs.webkit.org/show_bug.cgi?id=122610. Reviewed by Dean Jackson. Covered by Khronos Conformance Suite 1.0.2. Specifically, conformance/uniforms/uniform-samplers-test.html. * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::uniform1i): (WebCore::WebGLRenderingContext::uniform1iv): 2013-10-10 Roger Fong Store uniform type information in WebGLUniformationLocation. https://bugs.webkit.org/show_bug.cgi?id=122607. Reviewed by Dean Jackson. Covered by Khronos Conformance Suite 1.0.2. * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::getUniform): (WebCore::WebGLRenderingContext::getUniformLocation): * html/canvas/WebGLUniformLocation.cpp: (WebCore::WebGLUniformLocation::create): (WebCore::WebGLUniformLocation::WebGLUniformLocation): (WebCore::WebGLUniformLocation::type): * html/canvas/WebGLUniformLocation.h: 2013-10-10 Ryosuke Niwa REGRESSION(r157203): WebKit crashes after dispatching gesture event https://bugs.webkit.org/show_bug.cgi?id=122615 Reviewed by Anders Carlsson. Don't release the event until the end of the function where we call member functions on it. * dom/Node.cpp: (WebCore::Node::dispatchGestureEvent): 2013-10-10 Ryosuke Niwa Move the rest of EventRetargeter functions to EventPath https://bugs.webkit.org/show_bug.cgi?id=122586 Reviewed by Andreas Kling. Moved the rest of EventRetargeter functiosn either static local or EventPath member functions. * dom/EventDispatcher.cpp: (WebCore::EventDispatcher::dispatchScopedEvent): (WebCore::EventDispatcher::dispatch): (WebCore::EventDispatcher::dispatchEventPostProcess): * dom/EventDispatcher.h: * dom/EventRetargeter.cpp: (WebCore::EventPath::EventPath): (WebCore::calculateAdjustedNodes): Made static local. Also takes const EventPath and returns the size to which EventPath should be shrunk; this allows us to remove EventPath::shrink. (WebCore::updateTouchListsInEventPath): Moved and renamed from EventRetargeter::adjustTouchList. (WebCore::EventPath::updateTouchLists): Moved and renamed from EventRetargeter::adjustForTouchEvent. (WebCore::EventPath::setRelatedTarget): Moved. * dom/EventRetargeter.h: (WebCore::eventTargetRespectingTargetRules): Renamed from EventRetargeter::eventTargetRespectingTargetRules. 2013-10-10 Mark Rowe WebKit should always build against an SDK. Have all projects default to building against the OS X Internal SDK for the Production configuration. For the Debug and Release configurations, look for UseInternalSDK.xcconfig to determine whether the OS X Internal SDK should be used. If not, use the normal OS X SDK. Reviewed by Dan Bernstein. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: 2013-10-10 Hans Muller [CSS Shapes] clampToUnsigned() should return unsigned, not int https://bugs.webkit.org/show_bug.cgi?id=122601 Reviewed by Andreas Kling. Corrected the return type for clampToUnsigned() in MathExtras.h. It's now unsigned. No new tests since this is just an internal refactoring of existing code. * rendering/shapes/RasterShape.cpp: (WebCore::RasterShape::marginIntervals): Use the redefined clampToUnsigned method. 2013-10-10 Bem Jones-Bey [CSS Shapes] New positioning model: Shape cropped to margin box https://bugs.webkit.org/show_bug.cgi?id=118092 Reviewed by Alexandru Chiculita. Clip the shape to the margin box when it extends out the left or right edges. Also added a few local variables to make the code easier to read. Tests: csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-clipped-001-ref.html csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-clipped-004.html csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-clipped-005.html csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-clipped-006.html * rendering/shapes/ShapeOutsideInfo.cpp: (WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine): 2013-10-10 Daniel Bates Avoid resizing the internal buffer of SharedBuffer when creating a PurgeableBuffer https://bugs.webkit.org/show_bug.cgi?id=122516 Reviewed by Darin Adler. Currently when we create a PurgeableBuffer from a SharedBuffer we may resize the internal buffer of the SharedBuffer so that it can fit the concatenated contents of all of its segments before copying this internal buffer to the internal buffer of the PurgeableBuffer. Instead, we can avoid resizing the internal buffer of SharedBuffer by allocating a PurgeableBuffer and then copying the internal buffer of SharedBuffer and its segments directly into it. * platform/PurgeableBuffer.h: (WebCore::PurgeableBuffer::createUninitialized): Add inline implementation when building with ENABLE_PURGEABLE_MEMORY disabled. * platform/SharedBuffer.cpp: (WebCore::SharedBuffer::createPurgeableBuffer): Implemented in terms of SharedBuffer::{copyBufferAndClear, createUninitialized}(). (WebCore::SharedBuffer::copyBufferAndClear): Added. (WebCore::SharedBuffer::buffer): Moved logic to copy segments/data array to SharedBuffer::copyBufferAndClear() and modified this function to use it. * platform/SharedBuffer.h: * platform/cf/SharedBufferCF.cpp: (WebCore::SharedBuffer::copyBufferAndClear): Renamed; formerly called SharedBuffer::copyDataArrayAndClear. * platform/mac/PurgeableBufferMac.cpp: (WebCore::allocatePurgeableBuffer): Added. (WebCore::PurgeableBuffer::createUninitialized): Added. (WebCore::PurgeableBuffer::create): Moved logic to allocate a purgeable buffer into PurgeableBuffer::createUninitialized() and modified this function to use it. 2013-10-09 Chris Fleizach AX: VoiceOver speaking too much when group elements with tabindex=-1 are used https://bugs.webkit.org/show_bug.cgi?id=122574 Reviewed by Mario Sanchez Prada. Tests: accessibility/negative-tabindex-does-not-expose-label.html Elements that expose tabindex=-1 are being identified as generic focusable elements for accessibility. Which among other things, determines whether to create an accessible name for the object. This has the negative effect of causing VoiceOver to speak way too much information when navigating inside a
with this attribute. * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::visibleText): (WebCore::AccessibilityNodeObject::title): 2013-10-10 Andreas Kling Remove custom finalizer for Node JS wrappers. Reviewed by Geoff Garen. Node can just use the auto-generated finalizer, the custom one was identical to what the generator would output. 2013-10-10 Andreas Kling CTTE: activeDOMWindow() and firstDOMWindow() should return references. Reviewed by Anders Carlsson. Now that wrappers vend references to their WebCore objects, follow up and make these two return references as well. 2013-10-10 Mario Sanchez Prada [ATK] Missing checks in returnIfWebKitAccessibleIsInvalid https://bugs.webkit.org/show_bug.cgi?id=122600 Reviewed by Chris Fleizach. Check that the AccessibilityObject associated to the ATK wrapper is not NULL and contains a valid reference to the document before calling AccessibilityObject::updateBackingStore(). * accessibility/atk/WebKitAccessibleUtil.h: Add extra checks. 2013-10-10 Andreas Kling Clean up JSDOMWindowShell a little. Reviewed by Anders Carlsson. - Have impl() return a DOMWindow& instead of a pointer. - Store the DOMWrapperWorld in a Ref instead of a RefPtr. - Reuse TRY_TO_UNWRAP_WITH_INTERFACE in EventTarget bindings. 2013-10-10 Sergio Correia Make XPathGrammar.y bison3-friendly again after r157205 https://bugs.webkit.org/show_bug.cgi?id=122595 Reviewed by Anders Carlsson. No new tests, build fix. * xml/XPathGrammar.y: Replace YYLEX_PARAM with %lex-param, as the former was removed in bison3. 2013-10-10 Andreas Kling SVGUseElement: Use iterative traversal to find disallowed elements. Reviewed by Antti Koivisto. Rewrote subtreeContainsDisallowedElement() in SVGUseElement.cpp to use iterative traversal with descendantsOfType instead of recursing through the tree. 2013-10-10 Andreas Kling Move RenderObject::layout() to RenderElement. Reviewed by Antti Koivisto. RenderText will ASSERT_NOT_REACHED() in its layout(), so move this to RenderElement. This allows us to use the fast firstChild() instead of virtual dispatch. The needsLayout() bit remains on RenderObject for now. Moving that to RenderElement is a far more involved change. 2013-10-10 Chris Fleizach AX: Crash at WebCore::accessibleNameForNode when visiting Facebook https://bugs.webkit.org/show_bug.cgi?id=122572 Reviewed by Mario Sanchez Prada. Test: accessibility/aria-labeled-with-hidden-node.html Handle the case where aria-labelledby references a non-rendered node. * accessibility/AccessibilityNodeObject.cpp: (WebCore::accessibleNameForNode): 2013-10-10 Zan Dobersek REGRESSION(r157210): Crashes in WebCore::ScopedEventQueue::dispatchEvent for platforms using GCC https://bugs.webkit.org/show_bug.cgi?id=122592 Reviewed by Gustavo Noronha Silva. * dom/ScopedEventQueue.cpp: (WebCore::ScopedEventQueue::dispatchEvent): When calling EventDispatcher::dispatchEvent(), the GCC-compiled code first creates a copy of the PassRefPtr object that's being passed into the method call. The copy will be used in that method while the original is left with a null pointer. Only after that is the original queried for its pointer while trying to get the Event's target, resulting in a crash due to calling the Event::target() on a null pointer. To avoid it, pass a naked Event pointer to the method call. This will create a new PassRefPtr object without nullifying the original one. 2013-10-10 Andreas Kling Use more Element iterators in SVG code. Reviewed by Antti Koivisto. Use childrenOfType to iterate over only SVGElement (or even more specific) children in a bunch of places. Also auto-generate type helpers for SVGElement and SVGStopElement. 2013-10-10 Andreas Kling JS DOM wrappers' impl() functions should return references. Reviewed by Antti Koivisto. JS DOM wrappers always have a corresponding WebCore object during their lifetime, so make impl() return a reference. 2013-10-10 Sergio Correia Fix debug build after r157210 https://bugs.webkit.org/show_bug.cgi?id=122593 Reviewed by Andreas Kling. No new tests, build fix. * dom/EventContext.cpp: (WebCore::TouchEventContext::handleLocalEvents): Fix ASSERT, now that event is a reference instead of a pointer. 2013-10-10 Andreas Kling Tighten some renderer access in Document. Reviewed by Antti Koivisto. A bit of Node/Element and RenderObject/RenderElement tightening. 2013-10-08 Andreas Kling rangeOfContents() should take a Node&. Reviewed by Darin Adler. All callers of rangeOfContents() either have a Node& already, or do some kind of null-checking before calling it. 2013-10-08 Sergio Villar Senin [CSS Grid Layout] Implement support for grid-template https://bugs.webkit.org/show_bug.cgi?id=103313 Reviewed by Dean Jackson. Based on Blink r153427, r155199 and r155712 by Test: fast/css-grid-layout/grid-template-get-set.html Recognize, parse, store and return properly the value of grid-template. It required some extra parsing code because the specs mandates to check that the defined grid areas are indeed rectangular. Named grid areas are still not fully supported, will be done in a follow up patch. As validating involves building the grid areas a new CSSValue was added to hold the computed value. Note that we have to track the explicit size of the named grid areas as the named grid areas (".") are not tracked in our HashMap of grid areas. This change also involves moving GridCoordinate and GridSpan to a separate file in order to share the code that describes the grid area coordinates. * CMakeLists.txt: Added new files to the build. * GNUmakefile.list.am: Ditto. * WebCore.vcxproj/WebCore.vcxproj: Ditto. * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto. * WebCore.xcodeproj/project.pbxproj: Ditto. * css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::propertyValue): * css/CSSGridTemplateValue.cpp: Added. (WebCore::CSSGridTemplateValue::CSSGridTemplateValue): (WebCore::stringForPosition): (WebCore::CSSGridTemplateValue::customCSSText): * css/CSSGridTemplateValue.h: Added. (WebCore::CSSGridTemplateValue::create): (WebCore::CSSGridTemplateValue::~CSSGridTemplateValue): (WebCore::CSSGridTemplateValue::gridAreaMap): (WebCore::CSSGridTemplateValue::rowCount): (WebCore::CSSGridTemplateValue::columnCount): (WebCore::toCSSGridTemplateValue): * css/CSSParser.cpp: (WebCore::CSSParser::parseValue): (WebCore::CSSParser::parseGridTemplate): create the grid areas and validate that they define rectangular sections. * css/CSSParser.h: * css/CSSPropertyNames.in: Added -webkit-grid-template. * css/CSSValue.cpp: (WebCore::CSSValue::equals): add support for the new CSSGridTemplateValue. (WebCore::CSSValue::cssText): Ditto. (WebCore::CSSValue::destroy): Ditto. * css/CSSValue.h: (WebCore::CSSValue::isGridTemplateValue): * css/StyleResolver.cpp: (WebCore::StyleResolver::applyProperty): * rendering/RenderGrid.cpp: (WebCore::RenderGrid::cachedGridCoordinate): Replaced RenderGrid::GridSpan by WebCore::GridSpan. (WebCore::RenderGrid::resolveGridPositionsFromAutoPlacementPosition): Ditto. (WebCore::RenderGrid::resolveGridPositionsFromStyle): Ditto. (WebCore::RenderGrid::resolveGridPositionAgainstOppositePosition): Ditto. (WebCore::RenderGrid::resolveNamedGridLinePositionAgainstOppositePosition): Ditto. (WebCore::RenderGrid::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition): Ditto. (WebCore::RenderGrid::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition): Ditto. * rendering/RenderGrid.h: Took GridSpan and GridCoordinate out. * rendering/style/GridCoordinate.h: Added. (WebCore::GridSpan::create): (WebCore::GridSpan::GridSpan): (WebCore::GridSpan::operator==): (WebCore::GridCoordinate::GridCoordinate): (WebCore::GridCoordinate::operator==): (WebCore::GridCoordinate::operator!=): * rendering/style/RenderStyle.h: * rendering/style/StyleGridData.cpp: (WebCore::StyleGridData::StyleGridData): * rendering/style/StyleGridData.h: (WebCore::StyleGridData::operator==): 2013-10-09 Ryosuke Niwa Make EventDispatcher::dispatch comprehensible https://bugs.webkit.org/show_bug.cgi?id=122588 Reviewed by Andreas Kling. Merged EventDispatcher::dispatchEventAtCapturing, EventDispatcher::dispatchEventAtTarget, EventDispatcher::dispatchEventAtBubbling, and EventDispatcher::dispatchEventPostProcess into EventDispatcher::dispatch, and extracted static local callDefaultEventHandlersInTheBubblingOrder and dispatchEventInDOM out of it. Also made handleLocalEvents of subclasses of EventContext and Node take Event& instead of Event*. * dom/EventContext.cpp: The following functions now take Event& instead of Event*. (WebCore::EventContext::handleLocalEvents): (WebCore::MouseOrFocusEventContext::handleLocalEvents): (WebCore::TouchEventContext::handleLocalEvents): * dom/EventContext.h: * dom/EventDispatcher.cpp: (WebCore::callDefaultEventHandlersInTheBubblingOrder): Extracted from EventDispatcher::dispatchEventPostProcess, which is now merged into EventDispatcher::dispatch. (WebCore::dispatchEventInDOM): Extracted out of EventDispatcher::dispatch, EventDispatcher::dispatchEventAtCapturing, EventDispatcher::dispatchEventAtTarget and EventDispatcher::dispatchEventAtBubbling. This function is responsible for dispatching the event for capturing, at the target, and then bubbling through the event path chain. (WebCore::EventDispatcher::dispatch): EventDispatcher::dispatchEventPostProcess got merged into this. The calls to dispatchEventAtCapturing, dispatchEventAtTarget, and dispatchEventAtBubbling are replaced by a single call to dispatchEventInDOM. * dom/EventDispatcher.h: * dom/FocusEvent.h: (WebCore::toFocusEvent): Added the version that takes a reference. * dom/MouseEvent.h: (WebCore::toMouseEvent): Ditto. * dom/TouchEvent.h: (WebCore::toTouchEvent): Ditto. * dom/Node.cpp: (WebCore::Node::handleLocalEvents): Now takes Event& instead of Event*. * dom/Node.h: * dom/WindowEventContext.cpp: (WebCore::WindowEventContext::handleLocalEvents): Ditto. * dom/WindowEventContext.h: * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::handleLocalEvents): Ditto. * html/HTMLFormElement.h: 2013-10-09 Ryosuke Niwa Another build fix after r157204. * dom/EventDispatcher.cpp: (WebCore::EventDispatcher::dispatch): 2013-10-09 Ryosuke Niwa Build fix after r157204. * dom/EventDispatcher.cpp: (WebCore::EventDispatcher::dispatch): 2013-10-07 Darin Adler Use unique_ptr instead of deleteAllValues in XPath https://bugs.webkit.org/show_bug.cgi?id=121082 Reviewed by Anders Carlsson. * dom/Attr.h: Made the namespaceURI function public so it can be called by code in XPath. Since the class is FINAL, calls won't do virtual dispatch. * xml/XPathExpression.cpp: (WebCore::XPathExpression::XPathExpression): Added. Use std::move. (WebCore::XPathExpression::createExpression): Use the new Parser::parseStatement and more std::move. (WebCore::XPathExpression::~XPathExpression): Removed now-unneeded delete. * xml/XPathExpression.h: Removed unused create function. Use std::unique_ptr. * xml/XPathExpressionNode.cpp: (WebCore::XPath::Expression::evaluationContext): Use NeverDestroyed instead of DEFINE_STATIC_LOCAL. (WebCore::XPath::Expression::setSubexpressions): Added. Used to set all the subexpressions at once rather than adding one at a time. * xml/XPathExpressionNode.h: Use plain unsigned instead of unsigned long. Eliminated the ParseNode class, used only by the parser to delete objects, which we now do with %destructor. Made more functions protected. Fixed the capitalization of the word "subexpression". Made m_subexpressions be a Vector of std::unique_ptr. * xml/XPathFunctions.cpp: Marked all the classes FINAL and all their virtual functions OVERRIDE. Reduced some of the boilerplate. (WebCore::XPath::Function::setArguments): Passed in the name so we don't have to store the function names in all the function objects. (WebCore::XPath::FunId::evaluate): Use std::move instead of Value::adopt. (WebCore::XPath::FunLocalName::evaluate): Use emptyString instead of "". (WebCore::XPath::FunNamespaceURI::evaluate): Ditto. (WebCore::XPath::FunName::evaluate): Ditto. (WebCore::XPath::FunSubstringBefore::evaluate): Ditto. (WebCore::XPath::FunSubstringAfter::evaluate): Ditto. (WebCore::XPath::FunSubstring::evaluate): Ditto. (WebCore::XPath::FunLang::evaluate): Use Value(false) so we can make the constructor that takes a boolean explicit. (WebCore::XPath::FunFalse::evaluate): Ditto. (WebCore::XPath::populateFunctionMap): Changed idiom slightly to match other maps we set up. (WebCore::XPath::Function::create): Refactored createFunction into three member functions of this name. * xml/XPathFunctions.h: Made all the Function members private or protected except for Function::create. * xml/XPathGrammar.y: Changed the parser to use a reference instead of a pointer, and to pass the reference through to yylex as well. Break up the union into pieces and add %destructor as needed to make sure everything gets deallocated if parsing fails. Added a new top level rule "Top" so that we would not try to set the parse result multiple times during parsing. Call setParseResult instead of setting m_topExpr directly. Use std::unique_ptr to adopt pointers from the union. Removed all the register/unregister calls that used to be used to manage storage. Also changed the four different node types to be separate tokens instead of using string matching at this level for them. * xml/XPathNodeSet.cpp: (WebCore::XPath::NodeSet::sort): Removed const_cast since m_isSorted and m_nodes are now both marked mutable. Also set m_isSorted after sorting; this was an oversight that hurt performance before. (WebCore::XPath::NodeSet::traversalSort): Ditto. (WebCore::XPath::NodeSet::firstNode): Use nullptr. (WebCore::XPath::NodeSet::anyNode): Ditto. * xml/XPathNodeSet.h: Removed unneeded extra includes. Removed the WTF_MAKE_FAST_ALLOCATED for NodeSet since we never allocate these on the heap. Added a constructor that takes a single node. Deleted the swap function, since we now move instead of swap. Deleted the append function that takes a raw Node*, since calling the PassRefPtr overload does the same thing. Removed the unused reverse function. Marked both m_isSorted and m_nodes mutable so the sort function can be const. * xml/XPathParser.cpp: Moved the Token struct in here instead of the header. (WebCore::XPath::populateAxisNamesMap):Renamed to match our normal naming scheme, and changed to use add instead of set, use WTF_ARRAY_LENGTH, and not use a typedef. (WebCore::XPath::parseAxisName): Related style changes, including renaming to better reflect the way this works with a boolean. (WebCore::XPath::Parser::nextTokenInternal): Updated to call parseAxisName, and to produce four separate tokens for the four node type functions. (WebCore::XPath::Parser::nextToken): Renamed local variable. (WebCore::XPath::Parser::Parser): Made this a real constructor that takes arguments and initializes all the fields. Deleted the unneeded reset function. (WebCore::XPath::Parser::lex): Changed to take an argument of an appropriate type instead of casting from void*. Also changed the string code to leak a StringImpl, which is now what the grammar code expects. (WebCore::XPath::Parser::expandQualifiedName): Renamed from expandQName. Changed to set m_sawNamespaceError instead of relying on code in the grammar to do it. (WebCore::XPath::Parser::parseStatement): Removed most of the code in this function. Changed to a much simpler model. Also made this a static member function so it takes care of creating the parser itself and does not need to call reset. Also changed return value to be a std::unique_ptr to make ownership more clear. * xml/XPathParser.h: Added a declaration of YYSTYPE. Removed unneeded forward declarations and moved Token into the cpp file. Deleted most public functions, leaving only parseStatement, the entry point, and the three functions needed by the grammar, lex, expandQualifiedName, and setParseResult. * xml/XPathPath.cpp: (WebCore::XPath::Filter::Filter): Move in the arguments instead of copying them. (WebCore::XPath::Filter::evaluate): Updated for name and type changes. (WebCore::XPath::LocationPath::LocationPath): Ditto. (WebCore::XPath::LocationPath::evaluate): Ditto. Also use std::move instead of Value::adopt and instead of swap. (WebCore::XPath::LocationPath::appendStep): Changed to take ownership of a unique_ptr. (WebCore::XPath::LocationPath::prependStep): Ditto. Renamed from insertFirstStep. (WebCore::XPath::Path::Path): Move in the arguments. * xml/XPathPath.h: Removed unneeded includes. Changed arugument types to use std::unique_ptr to pass ownership in. Added override to all virtual functions. Changed data members to use std::unique_ptr. * xml/XPathPredicate.cpp: (WebCore::XPath::StringExpression::StringExpression): Use move. (WebCore::XPath::Negative::Negative): Added. (WebCore::XPath::Negative::evaluate): Updated for name changes. (WebCore::XPath::NumericOp::NumericOp): Use move. (WebCore::XPath::NumericOp::evaluate): Tweak formatting. (WebCore::XPath::EqTestOp::EqTestOp): Use move. (WebCore::XPath::EqTestOp::evaluate): Updated for name changes. (WebCore::XPath::LogicalOp::LogicalOp): Use move. (WebCore::XPath::LogicalOp::shortCircuitOn): Made shorter. (WebCore::XPath::LogicalOp::evaluate): Updated for name changes. (WebCore::XPath::Union::Union): Added. (WebCore::XPath::Union::evaluate): Updated for name changes. (WebCore::XPath::evaluatePredicate): Updated for name changes, to use ASCIILiteral, and to be a free function that takes an expression. (WebCore::XPath::predicateIsContextPositionSensitive): Added. Replaces the Predicate::isContextPositionSensitive function. * xml/XPathPredicate.h: Made all the classes FINAL and added a lot of OVERRIDE. Added a constructor for Negative and Union. Got rid of the Predicate class and instead provided two functions that operate on an Expression. * xml/XPathStep.cpp: (WebCore::XPath::Step::Step): Use move instea dof copying. (WebCore::XPath::Step::~Step): Removed calls to deleteAllValues. (WebCore::XPath::Step::optimize): Use move instead of swap and copy. Also operate directly on the data members of the node test instead of using functions that just return references to those data members. (WebCore::XPath::optimizeStepPair): Use references instead of pointers, move instead of swap, and early return instead of nested if statements. (WebCore::XPath::Step::predicatesAreContextListInsensitive): Use references. (WebCore::XPath::Step::evaluate): Use references instead of pointers and move instead of swap. (WebCore::XPath::nodeMatchesBasicTest): Use references instead of pointers and more specific types when possible. (WebCore::XPath::nodeMatches): Ditto. (WebCore::XPath::Step::nodesInAxis): Use references instead of pointers. Added braces to match style. Use words instead of letters for local variable names. * xml/XPathStep.h: Make almost everything in NodeTest private since callers just set these up and Step is what actually uses them. Changed the predicate vectors to be vectors of Predicate instead of Predicate*, since a Predicate is just a wrapper around a single std::unique_ptr. Changed to use move instead of copy when making a Step and to use references instead of pointers. * xml/XPathValue.cpp: Use std::numeric_limits explicitly instead of using using. Got rid of Value::adopt. (WebCore::XPath::Value::toNodeSet): Use NeverDestroyed instead of DEFINE_STATE_LOCAL. Updated for name changes. (WebCore::XPath::Value::modifiableNodeSet): Ditto. (WebCore::XPath::Value::toBoolean): Ditto. (WebCore::XPath::Value::toNumber): Ditto. (WebCore::XPath::Value::toString): Ditto. Use ASCIILiteral. * xml/XPathValue.h: Moved ValueData class inside the Value class and renamed it Value::Data. Removed fancy trick that avoids turning pointers into bool, and just take the risk. Made many, but not all, of the Value constructors explicit since we normally are explicit at call sites. Removed unneeded unsigned long overload of the constructor. Changed the NodeSet version of the constructor to use std::move and use that instead of AdoptTag. 2013-10-09 Ryosuke Niwa Build fix. Add back the missing call to EventRetargeter::adjustForTouchEvent. * dom/EventDispatcher.cpp: (WebCore::EventDispatcher::dispatch): 2013-10-09 Ryosuke Niwa EventDispatchMediator is goner https://bugs.webkit.org/show_bug.cgi?id=122581 Reviewed by Antti Koivisto. Killed the death. * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.vcxproj/WebCore.vcxproj: * WebCore.vcxproj/WebCore.vcxproj.filters: * WebCore.xcodeproj/project.pbxproj: * dom/DOMAllInOne.cpp: * dom/Element.cpp: (WebCore::Element::dispatchWheelEvent): (WebCore::Element::dispatchKeyEvent): (WebCore::Element::dispatchFocusEvent): (WebCore::Element::dispatchBlurEvent): * dom/EventDispatchMediator.cpp: Removed. * dom/EventDispatchMediator.h: Removed. * dom/EventDispatcher.cpp: (WebCore::EventDispatcher::dispatchEvent): (WebCore::EventDispatcher::dispatchScopedEvent): * dom/EventDispatcher.h: * dom/KeyboardEvent.h: * dom/MouseEvent.h: * dom/Node.cpp: (WebCore::Node::dispatchScopedEvent): (WebCore::Node::dispatchEvent): (WebCore::Node::dispatchGestureEvent): (WebCore::Node::dispatchTouchEvent): (WebCore::Node::dispatchUIRequestEvent): * dom/Node.h: * dom/ScopedEventQueue.cpp: (WebCore::ScopedEventQueue::~ScopedEventQueue): (WebCore::ScopedEventQueue::enqueueEvent): (WebCore::ScopedEventQueue::dispatchAllEvents): (WebCore::ScopedEventQueue::dispatchEvent): * dom/ScopedEventQueue.h: * dom/TouchEvent.cpp: * dom/TouchEvent.h: * dom/UIEvent.h: * dom/WheelEvent.h: 2013-10-09 Andreas Kling Kill some RenderObject::firstChildSlow/lastChildSlow usage. Reviewed by Antti Koivisto. Use tighter typing in some random places to flush out unnecessary use of virtual first/last child getters on RenderObject. There are more of these opportunities, but I left them untouched to avoid snowballing this patch. 2013-10-09 Simon Fraser Fix some bad paths in the Xcode project https://bugs.webkit.org/show_bug.cgi?id=122583 Reviewed by Mark Rowe. Fix paths for some storage quota-related files, and remove reference to mediaControlsQuickTime.css which was removed in r156546. * WebCore.xcodeproj/project.pbxproj: 2013-10-09 Alexandru Chiculita Web Inspector: [CSS Regions] Display the correct fragment boxes for content inside flow threads https://bugs.webkit.org/show_bug.cgi?id=122291 Reviewed by Timothy Hatcher. Tests: inspector/elements/highlight-regions-flow-horiz-bt.html inspector/elements/highlight-regions-flow-transform-horiz-bt.html inspector/elements/highlight-regions-flow-transform-vert-lr.html inspector/elements/highlight-regions-flow-transform-vert-rl.html inspector/elements/highlight-regions-flow-transform.html inspector/elements/highlight-regions-flow-vert-lr.html inspector/elements/highlight-regions-flow-vert-rl.html inspector/elements/highlight-regions-flow.html Nodes inside a RenderFlowThread can be split across multiple regions. This patch adds the required code to compute "fragments" for each region. Each fragment will display its own label. There are a couple of changes: 1. The node highlight object now has a "scroll" property to hold the main view's scroll offset. 2. There's a "fragment" array to get a list of quads for each renderer fragment. Renderers outside RenderFlowThreads will just have one fragment. 3. ElementInfo now has two more properties: "regionFlowInfo" (renamed from former flowInfo) and "contentFlowInfo". If the renderer is a RenderRegion it will have a regionFlowInfo. If the renderer is inside a RenderFlowThread then it will have a "contentFlowInfo". * inspector/InspectorOverlay.cpp: (WebCore::InspectorOverlay::getHighlight): It should now take a "region" parameter to customize the output for a specific containing region. (WebCore::buildObjectForHighlight): (WebCore::buildObjectForCSSRegionContentClip): We need to know how to clip the fragments inside regions. (WebCore::buildObjectForRendererFragments): Extracted code from buildObjectForHighlight and added the new regions lookup code. (WebCore::buildObjectForElementInfo): Extracted from buildObjectForHighlight. (WebCore::InspectorOverlay::buildObjectForHighlightedNode): (WebCore::InspectorOverlay::drawQuadHighlight): * inspector/InspectorOverlayPage.css: There can be multiple labels on screen at once, so I've created the #element-title-template element that we clone for each label. .element-title-container is now holding all the .element-title elements, so that we can remove them all at once. (.element-title-container): (.element-title): (#element-title-template): (.tag-name): (.node-id): (.class-name): * inspector/InspectorOverlayPage.html: * inspector/InspectorOverlayPage.js: (reset): (_toggleOptionalValue): (_createElementTitle): Creates an element populated with data read from elementInfo. (_drawElementTitle): Added code to create more labels for multiple fragments. (_drawRegionsHighlight): (_drawFragmentHighlight): (drawNodeHighlight): Consolidated the scroll property into a canvas.transform. 2013-10-09 Simon Fraser Layout assertion failure in WebCore::RenderView::paint https://bugs.webkit.org/show_bug.cgi?id=121925 Reviewed by Tim Horton. This fixes the assertion seen when running WK2 API tests. If RenderLayerCompositor::flushPendingLayerChanges() was called before the root layer was attached, it would set m_shouldFlushOnReattach to do the flush later, after attaching (bypassing the runloop observer that updated layout if necessary). This could cause us to get to a CA commit without having updated layout, hence the assertion. Fix by having attachRootLayer() schedule a layer flush, rather than doing one right away. * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::attachRootLayer): 2013-10-09 Bem Jones-Bey Move float logical location/dimension methods to RenderBlockFlow https://bugs.webkit.org/show_bug.cgi?id=122282 Reviewed by David Hyatt. I recently moved the logical location and dimension methods from RenderBlock to FloatingObject. This made it so that the methods needed to take in the horizontal writing mode of the FloatingObject's container in order to do their thing. When looking into how to fix this, I came to understand why RenderBlock has methods to determine the logical location and dimensions of its children, when the children themselves have those methods: the methods on RenderBlock are for determining the logical value in the writing mode of that RenderBlock, and the method on the child is for determining the logical value in the writing mode of the child. Since the floating object list has moved from RenderBlock to RenderBlockFlow, this change moves the logical dimension methods from FloatingObject to RenderBlockFlow. No new tests, no new behavior. * rendering/FloatingObjects.cpp: (WebCore::ComputeFloatOffsetAdapter::ComputeFloatOffsetAdapter): (WebCore::FloatingObjects::FloatingObjects): (WebCore::::updateOffsetIfNeeded): (WebCore::::collectIfNeeded): (WebCore::::getHeightRemaining): * rendering/FloatingObjects.h: * rendering/LineWidth.cpp: (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): * rendering/RenderBlockFlow.cpp: (WebCore::RenderBlockFlow::clearFloats): (WebCore::RenderBlockFlow::repaintOverhangingFloats): (WebCore::RenderBlockFlow::insertFloatingObject): (WebCore::RenderBlockFlow::removeFloatingObject): (WebCore::RenderBlockFlow::removeFloatingObjectsBelow): (WebCore::RenderBlockFlow::computeLogicalLocationForFloat): (WebCore::RenderBlockFlow::positionNewFloats): (WebCore::RenderBlockFlow::nextFloatLogicalBottomBelow): (WebCore::RenderBlockFlow::lowestFloatLogicalBottom): (WebCore::RenderBlockFlow::addOverhangingFloats): (WebCore::RenderBlockFlow::hasOverhangingFloat): (WebCore::RenderBlockFlow::addIntrudingFloats): * rendering/RenderBlockFlow.h: (WebCore::RenderBlockFlow::logicalTopForFloat): (WebCore::RenderBlockFlow::logicalBottomForFloat): (WebCore::RenderBlockFlow::logicalLeftForFloat): (WebCore::RenderBlockFlow::logicalRightForFloat): (WebCore::RenderBlockFlow::logicalWidthForFloat): (WebCore::RenderBlockFlow::logicalHeightForFloat): (WebCore::RenderBlockFlow::logicalSizeForFloat): (WebCore::RenderBlockFlow::pixelSnappedLogicalTopForFloat): (WebCore::RenderBlockFlow::pixelSnappedLogicalBottomForFloat): (WebCore::RenderBlockFlow::pixelSnappedLogicalLeftForFloat): (WebCore::RenderBlockFlow::pixelSnappedLogicalRightForFloat): (WebCore::RenderBlockFlow::setLogicalTopForFloat): (WebCore::RenderBlockFlow::setLogicalLeftForFloat): (WebCore::RenderBlockFlow::setLogicalHeightForFloat): (WebCore::RenderBlockFlow::setLogicalWidthForFloat): * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlockFlow::adjustLogicalLineTopAndLogicalHeightIfNeeded): (WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine): (WebCore::updateSegmentsForShapes): (WebCore::LineBreaker::nextSegmentBreak): (WebCore::RenderBlockFlow::positionNewFloatOnLine): * rendering/shapes/ShapeOutsideInfo.cpp: (WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine): * rendering/shapes/ShapeOutsideInfo.h: 2013-10-09 Ryosuke Niwa Remove MouseEventDispatchMediator https://bugs.webkit.org/show_bug.cgi?id=122580 Reviewed by Antti Koivisto. Removed. Will remove EventDispatchMediator next. * dom/Element.cpp: (WebCore::Element::dispatchMouseEvent): * dom/MouseEvent.cpp: * dom/MouseEvent.h: * dom/Node.cpp: (WebCore::Node::dispatchEvent): (WebCore::Node::dispatchTouchEvent): 2013-10-09 Ryosuke Niwa Remove all subclasses of EventDispatchMediator except MouseEventDispatchMediator https://bugs.webkit.org/show_bug.cgi?id=122579 Reviewed by Antti Koivisto. Removed UIRequestEventDispatchMediator, GestureEventDispatchMediator, KeyboardEventDispatchMediator, and WheelEventDispatchMediator. Moved the code in the respective mediateAndDispatchEvent functions to their respective dispatch*Event functions in Node.cpp and Element.cpp. * Modules/indieui/UIRequestEvent.cpp: (WebCore::UIRequestEvent::eventInterface): * Modules/indieui/UIRequestEvent.h: * dom/Element.cpp: (WebCore::deltaMode): (WebCore::Element::dispatchWheelEvent): (WebCore::Element::dispatchKeyEvent): * dom/GestureEvent.cpp: * dom/GestureEvent.h: * dom/KeyboardEvent.cpp: * dom/KeyboardEvent.h: * dom/Node.cpp: (WebCore::Node::dispatchGestureEvent): (WebCore::Node::dispatchUIRequestEvent): * dom/WheelEvent.cpp: * dom/WheelEvent.h: 2013-10-09 Bem Jones-Bey [CSS Shapes] Lines that don't intersect shape-outside should ignore both left and right margins https://bugs.webkit.org/show_bug.cgi?id=122570 Reviewed by Alexandru Chiculita. Due to an oversight, the left margin on left floats and the right margin on right floats was having an effect on lines that did not intersect the shape (but did intersect the margin box of the float). By the spec, lines that do not intersect the shape should act as if the float isn't there, so those margins should have no effect on those lines. This patch fixes this. No new tests, it is covered by the existing tests now that they have been fixed to have the proper behavior. * rendering/shapes/ShapeOutsideInfo.cpp: (WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine): 2013-10-09 Bem Jones-Bey [CSS Shapes] Clip shape-outside to the bottom of the margin box https://bugs.webkit.org/show_bug.cgi?id=122562 Reviewed by Alexandru Chiculita. The spec says that a shape-outside shape must be clipped to the margin box. This implements clipping the bottom of the shape to the bottom of the margin box. Test: csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-clipped-000.html csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-clipped-001.html csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-clipped-002.html csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-clipped-003.html * rendering/RenderBlockFlow.cpp: (WebCore::RenderBlockFlow::nextFloatLogicalBottomBelow): 2013-10-09 Sergio Correia [CoordinatedGraphics] ASSERTION FAILED: !m_flushingLayers (after r156291) https://bugs.webkit.org/show_bug.cgi?id=122016 Reviewed by Noam Rosenthal. To prevent calling scheduleLayerFlush() inside flushCompositingState(), we now only call m_client->notifyFlushRequired() - which will trigger scheduleLayerFlush() - if we are not already flushing layer changes. No new tests, covered by existing ones. * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp: (WebCore::CompositingCoordinator::notifyFlushRequired): Check if we are already flushing layer changes before calling notifyFlushRequired. (WebCore::CompositingCoordinator::sizeDidChange): Use notifyFlushRequired() from CompositingCoordinator instead of calling the one from m_client directly. (WebCore::CompositingCoordinator::createGraphicsLayer): Ditto. (WebCore::CompositingCoordinator::detachLayer): Ditto. * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: (WebCore::CoordinatedGraphicsLayer::notifyFlushRequired): Added helper to check whether we are flushing layer changes before calling client()'s notifyFlushRequired(). It returns a boolean indicating whether it called the client's method. (WebCore::CoordinatedGraphicsLayer::didChangeLayerState): Use the notifyFlushRequired() helper. (WebCore::CoordinatedGraphicsLayer::didChangeAnimations): Ditto. (WebCore::CoordinatedGraphicsLayer::didChangeChildren): Ditto. (WebCore::CoordinatedGraphicsLayer::didChangeFilters): Ditto. (WebCore::CoordinatedGraphicsLayer::didChangeImageBacking): Ditto. (WebCore::CoordinatedGraphicsLayer::setContentsNeedsDisplay): Ditto. (WebCore::CoordinatedGraphicsLayer::setContentsToCanvas): Ditto. (WebCore::CoordinatedGraphicsLayer::flushCompositingState): Ditto. (WebCore::CoordinatedGraphicsLayer::tiledBackingStoreHasPendingTileCreation):Ditto. * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h: Declaration of the notifyFlushRequired() helper. 2013-10-09 Chris Fleizach AX: VoiceOver double speaks all items in
  • nodes https://bugs.webkit.org/show_bug.cgi?id=122564 Reviewed by Brent Fulgham. Test: platform/mac/accessibility/native-list-item-should-not-expose-label.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::visibleText): 2013-10-09 Sergio Correia CoordinatedGraphics: Fix integer rounding when computing pixel alignment https://bugs.webkit.org/show_bug.cgi?id=122565 Reviewed by Noam Rosenthal. Replace roundedIntRect call in computePixelAlignment() with enclosingIntRect, so that very small rectangles (after content scaling) don't appear to be empty, creating a crash later. Test: transforms/3d/general/rotate-45-degrees-long-inner-text-in-dt.html * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: (WebCore::CoordinatedGraphicsLayer::computePixelAlignment): 2013-10-08 Ryosuke Niwa Rename EventRetargeter::adjustForRelatedTarget to EventPath::setRelatedTarget https://bugs.webkit.org/show_bug.cgi?id=122539 Reviewed by Darin Adler. Renamed EventRetargeter::adjustForRelatedTarget to EventPath::setRelatedTarget and got rid of EventDispatchMediators for focus events. We set the related target inside EventDispatcher's dispatch via Event::relatedTarget, which is now virtual and overridden by mouse/focus events. * dom/Element.cpp: The following functions no longer use FocusEventDispatchMediators. (WebCore::Element::dispatchFocusInEvent): (WebCore::Element::dispatchFocusOutEvent): (WebCore::Element::dispatchFocusEvent): (WebCore::Element::dispatchBlurEvent): * dom/Event.h: (WebCore::Event::relatedTarget): Added as a virtual function. * dom/EventDispatcher.cpp: (WebCore::EventDispatcher::dispatchEvent): Cache Event*. (WebCore::EventDispatcher::dispatch): Call setRelatedTargetToPath at the beginning to update related targets in the path. * dom/EventDispatcher.h: * dom/EventRetargeter.cpp: (WebCore::EventPath::EventPath): Initialize m_origin, used in EventPath::setRelatedTarget. (WebCore::EventRetargeter::adjustTouchList): (WebCore::EventPath::setRelatedTarget): Renamed from EventRetargeter::adjustForRelatedTarget. Delegated the nullity checks to callers by taking references instead of pointers. (WebCore::EventRetargeter::calculateAdjustedNodes): * dom/EventRetargeter.h: Removed AdjustedNodes typedef. It's just a Vector of RefPtr. * dom/FocusEvent.cpp: Removed FocusEventDispatchMediators for focus events. * dom/FocusEvent.h: * dom/MouseEvent.cpp: (WebCore::MouseEvent::toElement): Cache the related target now that relatedTarget() is virtual. (WebCore::MouseEvent::fromElement): Ditto. (WebCore::MouseEventDispatchMediator::mediateAndDispatchEvent): No longer sets the related targets since that's done in EventDispatcher::dispatch now. * dom/MouseEvent.h: * dom/Node.cpp: Removed obnoxious Node::dispatchScopedEventDispatchMediator. (WebCore::Node::dispatchScopedEvent): * dom/Node.h: * html/shadow/MediaControlElements.cpp: (WebCore::MediaControlVolumeSliderContainerElement::defaultEventHandler): Cache the related target in a local variable now that relatedTarget() is virtual. 2013-10-09 Chris Fleizach AX: VoiceOver does not speak aria-expanded state on iOS https://bugs.webkit.org/show_bug.cgi?id=122540 Expose aria-pressed state for iOS. Reviewed by Mario Sanchez Prada. * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper accessibilityIsExpanded]): 2013-10-09 Carlos Garcia Campos Unreviewed. Update GObject DOM symbols file after r157163. * bindings/gobject/webkitdom.symbols: 2013-10-08 Anders Carlsson Remove RunLoopMac.mm https://bugs.webkit.org/show_bug.cgi?id=122527 Reviewed by Antti Koivisto. RunLoop::setUseApplicationRunLoopOnMainRunLoop() is no longer used, so we can just use the run() and stop() implementations from RunLoopCF. * WebCore.exp.in: * WebCore.xcodeproj/project.pbxproj: * platform/RunLoop.cpp: * platform/RunLoop.h: * platform/cf/RunLoopCF.cpp: (WebCore::RunLoop::stop): * platform/mac/RunLoopMac.mm: Removed. 2013-10-09 Mario Sanchez Prada [ATK] Implement new API in AtkText: atk_text_get_string_at_offset() https://bugs.webkit.org/show_bug.cgi?id=120638 Reviewed by Gustavo Noronha Silva. Implemented new atk_text_get_string_at_offset() API, introduced in ATK 2.9.4 to simplify how text at a given offset is retrieved. * accessibility/atk/WebKitAccessibleInterfaceText.cpp: (webkitAccessibleTextGetStringAtOffset): New function implementing the new API, which basically translates calls to the new API to calls to the old API using 'at' positions and START boundaries. (webkitAccessibleTextInterfaceInit): Hook the new function. 2013-10-09 Carlos Garcia Campos [GTK] mouse wheel events are not considered to be mouse events https://bugs.webkit.org/show_bug.cgi?id=120648 Reviewed by Gustavo Noronha Silva. Expose WheelEvent in the GObject DOM bindings API. * bindings/gobject/GNUmakefile.am: Add new files to compilation. * bindings/gobject/WebKitDOMPrivate.cpp: (WebKit::wrap): Create a WebKitDOMWheelEvent when the given Event is a WheelEvent. 2013-10-08 Gyuyoung Kim Unreviewed. Fix EFL buildbreak since r157152. * dom/EventRetargeter.cpp: (WebCore::EventRetargeter::adjustForTouchEvent): 2013-10-08 Alex Christensen Improved WinLauncher. https://bugs.webkit.org/show_bug.cgi?id=122536 Reviewed by Brent Fulgham. * platform/network/curl/ResourceHandleManager.cpp: (WebCore::cookieJarPath): Put cookies.dat into the AppData directory on Windows. 2013-10-08 Ryosuke Niwa Remove the code erroneously in the previous commit. * dom/EventDispatcher.h: (WebCore::EventPath::contextAt): 2013-10-08 Ryosuke Niwa Turn EventPath into a real class https://bugs.webkit.org/show_bug.cgi?id=122533 Reviewed by Antti Koivisto. Turned EventPath into a real class and made EventRetargeter::calculateEventPath its constructor. We can turn a lot of functions in EventRetargeter.cpp member functions of EventPath since many of them manipulate EventPath in one way or another. * dom/EventContext.h: (WebCore::toMouseOrFocusEventContext): (WebCore::toTouchEventContext): * dom/EventDispatcher.cpp: (WebCore::EventDispatcher::EventDispatcher): (WebCore::EventDispatcher::dispatchEventAtCapturing): (WebCore::EventDispatcher::dispatchEventAtTarget): (WebCore::EventDispatcher::dispatchEventAtBubbling): (WebCore::EventDispatcher::dispatchEventPostProcess): (WebCore::EventDispatcher::topEventContext): (WebCore::EventPath::hasEventListeners): * dom/EventDispatcher.h: (WebCore::EventPath::isEmpty): (WebCore::EventPath::size): (WebCore::EventPath::item): (WebCore::EventPath::targetRespectingTargetRules): (WebCore::EventPath::shrink): (WebCore::EventPath::lastContextIfExists): * dom/EventRetargeter.cpp: (WebCore::EventPath::EventPath): (WebCore::EventRetargeter::adjustForTouchEvent): (WebCore::EventRetargeter::adjustForRelatedTarget): (WebCore::EventRetargeter::calculateAdjustedNodes): * dom/EventRetargeter.h: * inspector/InspectorInstrumentation.cpp: (WebCore::eventHasListeners): * inspector/InspectorInstrumentation.h: 2013-10-08 Alex Christensen Enabled all necessary files for Win64 build. https://bugs.webkit.org/show_bug.cgi?id=122530 Reviewed by Brent Fulgham. * WebCore.vcxproj/WebCore.vcxproj: Enabled MediaPlayerPrivateFullscreenWindow and RenderLayerModelObject to be built in Win64 build. 2013-10-07 Sam Weinig Consolidate findString functions https://bugs.webkit.org/show_bug.cgi?id=122480 Reviewed by Darin Adler. * editing/Editor.cpp: * editing/Editor.h: * editing/EditorCommand.cpp: (WebCore::executeFindString): * page/DOMWindow.cpp: (WebCore::DOMWindow::find): * page/Page.cpp: * page/Page.h: Fix a long standing FIXME. 2013-10-08 Bem Jones-Bey Move m_floatingObjects to RenderBlockFlow from RenderBlock https://bugs.webkit.org/show_bug.cgi?id=122512 Reviewed by David Hyatt. Floats are part of block flow, not every RenderBlock can contain floars. This change makes it so that RenderBlock no longer can contain floats, only RenderBlockFlow can. This also moves a bunch of line layout stuff over to RenderBlockFlow, but makes no effort to move all of line layout, as all of that is destined to move out of both RenderBlockFlow and RenderBlock into its own class. No new tests, no behavior change. * rendering/InlineIterator.h: (WebCore::InlineBidiResolver::appendRun): * rendering/LineWidth.cpp: (WebCore::LineWidth::LineWidth): * rendering/LineWidth.h: * rendering/RenderBlock.cpp: (WebCore::RenderBlock::styleWillChange): (WebCore::RenderBlock::styleDidChange): (WebCore::RenderBlock::splitFlow): (WebCore::RenderBlock::deleteLineBoxTree): (WebCore::RenderBlock::removeChild): (WebCore::RenderBlock::computeOverflow): (WebCore::RenderBlock::selectionGaps): (WebCore::RenderBlock::adjustForBorderFit): * rendering/RenderBlock.h: (WebCore::RenderBlock::containsFloats): (WebCore::RenderBlock::shouldSkipCreatingRunsForObject): (WebCore::RenderBlock::addOverflowFromFloats): (WebCore::RenderBlock::logicalRightFloatOffsetForLine): (WebCore::RenderBlock::logicalLeftFloatOffsetForLine): (WebCore::RenderBlock::moveAllChildrenOnRemovalTo): (WebCore::RenderBlock::paintFloats): (WebCore::RenderBlock::hitTestFloats): (WebCore::RenderBlock::clipOutFloatingObjects): * rendering/RenderBlockFlow.cpp: (WebCore::RenderBlockFlow::clearFloats): (WebCore::RenderBlockFlow::layoutBlock): (WebCore::RenderBlockFlow::layoutBlockChild): (WebCore::RenderBlockFlow::collapseMargins): (WebCore::RenderBlockFlow::clearFloatsIfNeeded): (WebCore::RenderBlockFlow::adjustBlockChildForPagination): (WebCore::RenderBlockFlow::containsFloat): (WebCore::RenderBlockFlow::styleDidChange): (WebCore::RenderBlockFlow::styleWillChange): (WebCore::RenderBlockFlow::deleteLineBoxTree): (WebCore::RenderBlockFlow::moveAllChildrenOnRemovalTo): (WebCore::RenderBlockFlow::addOverflowFromFloats): (WebCore::RenderBlockFlow::computeOverflow): (WebCore::RenderBlockFlow::repaintOverhangingFloats): (WebCore::RenderBlockFlow::paintFloats): (WebCore::RenderBlockFlow::clipOutFloatingObjects): (WebCore::RenderBlockFlow::createFloatingObjects): (WebCore::RenderBlockFlow::removeFloatingObjects): (WebCore::RenderBlockFlow::insertFloatingObject): (WebCore::RenderBlockFlow::removeFloatingObject): (WebCore::RenderBlockFlow::removeFloatingObjectsBelow): (WebCore::RenderBlockFlow::computeLogicalLocationForFloat): (WebCore::RenderBlockFlow::positionNewFloats): (WebCore::RenderBlockFlow::newLine): (WebCore::RenderBlockFlow::logicalLeftFloatOffsetForLine): (WebCore::RenderBlockFlow::logicalRightFloatOffsetForLine): (WebCore::RenderBlockFlow::nextFloatLogicalBottomBelow): (WebCore::RenderBlockFlow::lowestFloatLogicalBottom): (WebCore::RenderBlockFlow::addOverhangingFloats): (WebCore::RenderBlockFlow::hasOverhangingFloat): (WebCore::RenderBlockFlow::addIntrudingFloats): (WebCore::RenderBlockFlow::markAllDescendantsWithFloatsForLayout): (WebCore::RenderBlockFlow::markSiblingsWithFloatsForLayout): (WebCore::RenderBlockFlow::getClearDelta): (WebCore::RenderBlockFlow::hitTestFloats): (WebCore::RenderBlockFlow::adjustForBorderFit): * rendering/RenderBlockFlow.h: (WebCore::RenderBlockFlow::hasOverhangingFloats): * rendering/RenderBlockLineLayout.cpp: (WebCore::LineBreaker::LineBreaker): (WebCore::RenderBlockFlow::appendRunsForObject): (WebCore::RenderBlockFlow::createLineBoxes): (WebCore::RenderBlockFlow::constructLine): (WebCore::RenderBlockFlow::setMarginsForRubyRun): (WebCore::updateLogicalInlinePositions): (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine): (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment): (WebCore::RenderBlockFlow::computeBlockDirectionPositionsForLine): (WebCore::setStaticPositions): (WebCore::RenderBlockFlow::handleTrailingSpaces): (WebCore::RenderBlockFlow::appendFloatingObjectToLastLine): (WebCore::constructBidiRunsForLine): (WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns): (WebCore::RenderBlockFlow::layoutRunsAndFloats): (WebCore::RenderBlockFlow::restartLayoutRunsAndFloatsInRange): (WebCore::pushShapeContentOverflowBelowTheContentBox): (WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLine): (WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread): (WebCore::RenderBlockFlow::adjustLogicalLineTopAndLogicalHeightIfNeeded): (WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange): (WebCore::RenderBlockFlow::linkToEndLineIfNeeded): (WebCore::RenderBlockFlow::repaintDirtyFloats): (WebCore::RenderBlockFlow::checkFloatsInCleanLine): (WebCore::RenderBlockFlow::determineStartPosition): (WebCore::RenderBlockFlow::determineEndPosition): (WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine): (WebCore::RenderBlockFlow::matchedEndLine): (WebCore::shouldSkipWhitespaceAfterStartObject): (WebCore::updateSegmentsForShapes): (WebCore::RenderBlockFlow::deleteEllipsisLineBoxes): (WebCore::RenderBlockFlow::checkLinesForTextOverflow): (WebCore::RenderBlockFlow::positionNewFloatOnLine): * rendering/RenderBox.cpp: (WebCore::RenderBox::outermostBlockContainingFloatingObject): (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists): * rendering/RenderBox.h: * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::moveChildrenTo): * rendering/RenderInline.cpp: (WebCore::RenderInline::splitFlow): 2013-10-08 Dean Jackson Support unprefixed WebGL context creation https://bugs.webkit.org/show_bug.cgi?id=122523 Reviewed by Simon Fraser. Add support for the unprefixed "webgl" canvas context type. Test: fast/canvas/webgl/unprefixed-context.html * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::is3dType): * inspector/InjectedScriptCanvasModuleSource.js: 2013-10-08 Ryosuke Niwa Rename EventDispatchMediator::dispatchEvent to mediateAndDispatchEvent https://bugs.webkit.org/show_bug.cgi?id=122522 Reviewed by Darin Adler. Renamed EventDispatchMediator::dispatchEvent to EventDispatchMediator::mediateAndDispatchEvent to make the future refactoring easier. * Modules/indieui/UIRequestEvent.cpp: (WebCore::UIRequestEventDispatchMediator::mediateAndDispatchEvent): * Modules/indieui/UIRequestEvent.h: * dom/EventDispatchMediator.cpp: (WebCore::EventDispatchMediator::mediateAndDispatchEvent): * dom/EventDispatchMediator.h: * dom/EventDispatcher.cpp: (WebCore::EventDispatcher::dispatchEvent): * dom/FocusEvent.cpp: (WebCore::FocusEventDispatchMediator::mediateAndDispatchEvent): (WebCore::BlurEventDispatchMediator::mediateAndDispatchEvent): (WebCore::FocusInEventDispatchMediator::mediateAndDispatchEvent): (WebCore::FocusOutEventDispatchMediator::mediateAndDispatchEvent): * dom/FocusEvent.h: * dom/GestureEvent.cpp: (WebCore::GestureEventDispatchMediator::mediateAndDispatchEvent): * dom/GestureEvent.h: * dom/KeyboardEvent.cpp: (WebCore::KeyboardEventDispatchMediator::mediateAndDispatchEvent): * dom/KeyboardEvent.h: * dom/MouseEvent.cpp: (WebCore::MouseEventDispatchMediator::mediateAndDispatchEvent): * dom/MouseEvent.h: * dom/TouchEvent.cpp: (WebCore::TouchEventDispatchMediator::mediateAndDispatchEvent): * dom/TouchEvent.h: * dom/WheelEvent.cpp: (WebCore::WheelEventDispatchMediator::mediateAndDispatchEvent): * dom/WheelEvent.h: 2013-10-08 Brent Fulgham [MathML] Use of floating point floor/ceil on LayoutUnits seems wrong https://bugs.webkit.org/show_bug.cgi?id=122367 Reviewed by Darin Adler. * rendering/mathml/RenderMathMLOperator.cpp: (WebCore::RenderMathMLOperator::paintCharacter): Use member methods to compute correct floor/ceil values for LayoutUnits. 2013-10-07 Dean Jackson Video -> pixel buffer output should not manage color spaces https://bugs.webkit.org/show_bug.cgi?id=122486 Reviewed by Tim Horton. On Mac, when we draw a video into a canvas or WebGL, the output of the video should not be color managed. Instead, leave it as DeviceRGB so that it matches other colors in those elements. We'll hopefully solve this properly soon - making everything sRGB. Test: media/video-canvas-drawing-output.html * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect): Pass on a CGImageRef via CGImageCreateCopyWithColorSpace rather than the raw data. (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput): Tell CoreImage to allocate a pixel buffer that is unmanaged. 2013-10-08 Lauro Neto [MediaStream] Fix segfault in initializeMockSources() https://bugs.webkit.org/show_bug.cgi?id=122517 Reviewed by Darin Adler. Calling release() and a member function on the same RefPtr as arguments to a function can lead to segfaults if the release call is evaluated first. * platform/mock/MockMediaStreamCenter.cpp: (WebCore::initializeMockSources): 2013-10-08 Mihnea Ovidenie [CSSRegions] Regions with overflow: hidden should paint over positioned sibling https://bugs.webkit.org/show_bug.cgi?id=122389 Reviewed by Alexandru Chiculita. As a follow-up from https://bugs.webkit.org/show_bug.cgi?id=122321, a region should not be a normal flow layer when it has overflow clip. Change existing test by adding overflow:hidden to the region element. * rendering/RenderLayer.cpp: (WebCore::RenderLayer::shouldBeNormalFlowOnly): 2013-10-08 Ryosuke Niwa Simplify the loop in EventRetargeter::calculateEventPath https://bugs.webkit.org/show_bug.cgi?id=122500 Reviewed by Antti Koivisto. Replaced the convoluted loop by two nested loops to make semantics clear. * dom/EventRetargeter.cpp: (WebCore::EventRetargeter::calculateEventPath): 2013-10-08 ChangSeok Oh [GTK] Leak: GdkEvent retured by gtk_get_current_event is not freed. https://bugs.webkit.org/show_bug.cgi?id=122506 Reviewed by Gustavo Noronha Silva. Gdk event returned by gtk_get_current_event should be freed after using it. No functionality changed. * platform/gtk/PopupMenuGtk.cpp: (WebCore::PopupMenuGtk::show): 2013-10-08 Ryosuke Niwa Use references in EventRetargeter::calculateEventPath and EventRetargeter::eventTargetRespectingTargetRules https://bugs.webkit.org/show_bug.cgi?id=122494 Reviewed by Antti Koivisto. Use referenecs instead of pointers in ventRetargeter's calculateEventPath and eventTargetRespectingTargetRules. Also replace Vector targetStack by a single pointer since we only append an item to the vector when it's empty and we always use the last item. * dom/EventDispatcher.cpp: (WebCore::EventDispatcher::EventDispatcher): (WebCore::EventDispatcher::dispatchScopedEvent): (WebCore::EventDispatcher::dispatch): (WebCore::EventDispatcher::dispatchEventPostProcess): * dom/EventDispatcher.h: * dom/EventRetargeter.cpp: (WebCore::EventRetargeter::calculateEventPath): * dom/EventRetargeter.h: (WebCore::EventRetargeter::eventTargetRespectingTargetRules): * dom/Node.cpp: (WebCore::Node::dispatchScopedEventDispatchMediator): 2013-10-08 Mihnea Ovidenie [CSSRegions] Computed z-Index should return 0 instead of auto for a region https://bugs.webkit.org/show_bug.cgi?id=122405 Reviewed by David Hyatt. Test: fast/regions/layers/region-zIndex-computedStyle.html Adjust the z-index value for a region. Also, since a box with a z-Index that is non-auto receives a layer, i removed the requiresLayer override in RenderRegion and RenderMultiColumnSet. * css/StyleResolver.cpp: (WebCore::StyleResolver::adjustRenderStyle): * rendering/RenderMultiColumnSet.cpp: * rendering/RenderMultiColumnSet.h: * rendering/RenderRegion.cpp: * rendering/RenderRegion.h: * rendering/style/RenderStyle.h: 2013-10-08 Andrei Bucur [CSS Regions] Widows don't work if the first line in a region is aligned with the top of the region https://bugs.webkit.org/show_bug.cgi?id=122450 Reviewed by David Hyatt. The patch adds a new function updateRegionForLine that updates the containing region for a line and the flag used to determine if it's the first line in that region. This is necessary because the code in adjustLinePositionForPagination is not sufficient to determine when an unforced break occurs and the line being positioned is the first one in the fragmentation container or not. Test: fast/regions/regions-widows-float-top-aligned.html * rendering/RenderBlockFlow.cpp: (WebCore::RenderBlockFlow::adjustLinePositionForPagination): Added FIXME comment. * rendering/RenderBlockFlow.h: * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::layoutRunsAndFloatsInRange): (WebCore::RenderBlock::linkToEndLineIfNeeded): (WebCore::RenderBlock::determineStartPosition): (WebCore::RenderBlockFlow::updateRegionForLine): New function used to update the containing region and the first line flag. 2013-10-08 Thiago de Barros Lacerda Get EFL and GTK compiling with media stream enabled https://bugs.webkit.org/show_bug.cgi?id=122505 Reviewed by Philippe Normand. After r157068 No new tests needed. * GNUmakefile.list.am: * UseJSC.cmake: 2013-10-08 Hurnjoo Lee Composited layer that painted into composited ancestor is not repainted after moving https://bugs.webkit.org/show_bug.cgi?id=114655 Reviewed by Simon Fraser. Test: compositing/repaint/absolute-painted-into-composited-ancestor.html Composited layers are currently skipping repainting after layout, if the repaint status is not NeedsFullRepaint. However, in case layers were painted into composited ancestor, they need to repaint. * rendering/RenderLayer.cpp: (WebCore::RenderLayer::shouldRepaintAfterLayout): 2013-10-08 Zalan Bujtas Unreviewed. Rollout of r156536. ~5% regression in inline layout performance. * rendering/LineWidth.cpp: * rendering/LineWidth.h: (WebCore::LineWidth::addUncommittedWidth): * rendering/RenderBlockLineLayout.cpp: (WebCore::LineBreaker::nextSegmentBreak): 2013-10-08 Gyuyoung Kim Use toCSSFooValue() instead of using static_cast https://bugs.webkit.org/show_bug.cgi?id=122491 Reviewed by Andreas Kling. static_cast wasn't cleanup. So, we need to use toCSSFooValue() for it. To use toCSSValue() will help to detect bad type-cast. Besides static_cast helper functions need to be added to support this use. No new tests, no behavior change. * css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::propertyMatches): * css/CSSImageGeneratorValue.cpp: (WebCore::CSSImageGeneratorValue::isFixedSize): (WebCore::CSSImageGeneratorValue::isPending): (WebCore::CSSImageGeneratorValue::knownToBeOpaque): * css/CSSValue.cpp: (WebCore::CSSValue::isImplicitInitialValue): (WebCore::CSSValue::addSubresourceStyleURLs): (WebCore::CSSValue::hasFailedOrCanceledSubresources): (WebCore::CSSValue::equals): (WebCore::CSSValue::cssText): (WebCore::CSSValue::serializeResolvingVariables): (WebCore::CSSValue::cloneForCSSOM): * css/StylePropertySet.cpp: (WebCore::StylePropertySet::PropertyReference::cssName): * css/WebKitCSSSVGDocumentValue.h: (WebCore::toWebKitCSSSVGDocumentValue): * css/WebKitCSSTransformValue.h: (WebCore::toWebKitCSSTransformValue): 2013-10-08 Thiago de Barros Lacerda Get MediaStreamCenterGStreamer compiling again https://bugs.webkit.org/show_bug.cgi?id=122482 Reviewed by Eric Carlson. r157068 was including a nonexistent header No new tests needed. * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp: 2013-10-08 Mario Sanchez Prada [ATK] Expose state of aria-invalid as ATK_STATE_INVALID_ENTRY https://bugs.webkit.org/show_bug.cgi?id=122104 Reviewed by Chris Fleizach. Map invalid state of an AccessibilityObject to the proper AtkState. * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: (setAtkStateSetFromCoreObject): Add the mapping. 2013-10-07 Carlos Garcia Campos [GTK] media/video-src-blob.html https://bugs.webkit.org/show_bug.cgi?id=102586 Reviewed by Martin Robinson. Add support for loading videos using blob URLs. Fixes media/video-src-blob.html. * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: (webKitWebSrcStart): Use BufferData buffering policy for blob URLs. (webKitWebSrcGetProtocols): Add blob to the list of supported protocols. (webKitWebSrcSetUri): Consider blob URLs as valid. 2013-10-07 Ryosuke Niwa EventDispatchBehavior is unnecessary https://bugs.webkit.org/show_bug.cgi?id=122483 Reviewed by Andreas Kling. Removed EventDispatchBehavior and changed the return type of determineDispatchBehavior to bool. Also renamed it to shouldEventCrossShadowBoundary to reflect the semantics more clear. * dom/EventRetargeter.cpp: (WebCore::shouldEventCrossShadowBoundary): (WebCore::EventRetargeter::calculateEventPath): * dom/EventRetargeter.h: 2013-10-07 Ryosuke Niwa Make buildRelatedNodeMap and findRelatedNode static to EventRetargeter.cpp https://bugs.webkit.org/show_bug.cgi?id=122477 Reviewed by Antti Koivisto. Make EventRetargeter::buildRelatedNodeMap and EventRetargeter::findRelatedNode static local functions in EventRetargeter.cpp since they're only called in EventRetargeter::calculateAdjustedNodes and don't depend on any oher member function or variable (EventRetarger doesn't have any member variables). Also get rid of Vector local variables in both functions as they're redundant. * dom/EventRetargeter.cpp: (WebCore::buildRelatedNodeMap): Moved. Replaced Vector relatedNodeStack by a single pointer since the only time we add an item to this Vector is when it's empty, and we always use or remove the last item. (WebCore::addRelatedNodeForUnmapedTreeScopes): Renamed from EventRetargeter::findRelatedNode. Removed Vector parentTreeScopes since it only contains the ancestor tree scopes of scope up to a tree scope already in relatedNodeMap. We could simply remember this tree scope and re-traverse the ancestor tree scopes in the second loop. (WebCore::EventRetargeter::calculateAdjustedNodes): * dom/EventRetargeter.h: 2013-10-07 Andreas Kling CTTE: EditCommand always has a Document. Reviewed by Anders Carlsson. Store a Ref in EditComment since it's never null. Since Ref enforces more const consistency than RefPtr, I had to make document() and frame() non-const here. Only a single method depended on the old half-const behavior. 2013-10-07 Anders Carlsson Update test again. * bindings/scripts/test/JS/JSTestCallback.cpp: (WebCore::JSTestCallback::~JSTestCallback): 2013-10-07 Commit Queue Unreviewed, rolling out r157061. http://trac.webkit.org/changeset/157061 https://bugs.webkit.org/show_bug.cgi?id=122479 Broke worker tests (Requested by andersca on #webkit). * Modules/webdatabase/Database.cpp: (WebCore::DerefContextTask::create): (WebCore::DerefContextTask::DerefContextTask): (WebCore::Database::~Database): (WebCore::DeliverPendingCallbackTask::create): (WebCore::DeliverPendingCallbackTask::performTask): (WebCore::DeliverPendingCallbackTask::DeliverPendingCallbackTask): (WebCore::Database::scheduleTransactionCallback): * Modules/webdatabase/DatabaseManager.cpp: (WebCore::DatabaseCreationCallbackTask::create): (WebCore::DatabaseCreationCallbackTask::performTask): (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask): (WebCore::DatabaseManager::openDatabase): * Modules/webdatabase/SQLCallbackWrapper.h: (WebCore::SQLCallbackWrapper::clear): (WebCore::SQLCallbackWrapper::SafeReleaseTask::create): (WebCore::SQLCallbackWrapper::SafeReleaseTask::performTask): (WebCore::SQLCallbackWrapper::SafeReleaseTask::isCleanupTask): (WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask): * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp: (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks): * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h: * Modules/websockets/WorkerThreadableWebSocketChannel.cpp: (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::create): (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::~WorkerGlobalScopeDidInitializeTask): (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::WorkerGlobalScopeDidInitializeTask): (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize): * bindings/js/JSCallbackData.h: (WebCore::DeleteCallbackDataTask::create): (WebCore::DeleteCallbackDataTask::performTask): (WebCore::DeleteCallbackDataTask::isCleanupTask): (WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask): * bindings/js/JSDOMGlobalObjectTask.h: * bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::queueTaskToEventLoop): * bindings/js/JSWorkerGlobalScopeBase.cpp: (WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop): * bindings/scripts/CodeGeneratorJS.pm: (GenerateCallbackImplementation): * dom/CrossThreadTask.h: (WebCore::CrossThreadTask1::create): (WebCore::CrossThreadTask1::performTask): (WebCore::CrossThreadTask2::create): (WebCore::CrossThreadTask2::performTask): (WebCore::CrossThreadTask3::create): (WebCore::CrossThreadTask3::performTask): (WebCore::CrossThreadTask4::create): (WebCore::CrossThreadTask4::performTask): (WebCore::CrossThreadTask5::create): (WebCore::CrossThreadTask5::performTask): (WebCore::CrossThreadTask6::create): (WebCore::CrossThreadTask6::performTask): (WebCore::CrossThreadTask7::create): (WebCore::CrossThreadTask7::performTask): (WebCore::CrossThreadTask8::create): (WebCore::CrossThreadTask8::performTask): (WebCore::createCallbackTask): * dom/Document.cpp: (WebCore::Document::addConsoleMessage): (WebCore::Document::addMessage): (WebCore::PerformTaskContext::PerformTaskContext): (WebCore::Document::postTask): (WebCore::Document::pendingTasksTimerFired): * dom/Document.h: * dom/ScriptExecutionContext.cpp: (WebCore::ProcessMessagesSoonTask::create): (WebCore::ProcessMessagesSoonTask::performTask): (WebCore::ScriptExecutionContext::processMessagePortMessagesSoon): * dom/ScriptExecutionContext.h: (WebCore::ScriptExecutionContext::AddConsoleMessageTask::create): (WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask): * dom/StringCallback.cpp: (WebCore::StringCallback::scheduleCallback): * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::CallCacheListenerTask::create): (WebCore::CallCacheListenerTask::CallCacheListenerTask): (WebCore::ApplicationCacheGroup::postListenerTask): * workers/DefaultSharedWorkerRepository.cpp: (WebCore::SharedWorkerProxy::postTaskToLoader): (WebCore::SharedWorkerProxy::postTaskForModeToWorkerGlobalScope): (WebCore::SharedWorkerConnectTask::create): (WebCore::SharedWorkerConnectTask::performTask): (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded): (WebCore::DefaultSharedWorkerRepository::connectToWorker): * workers/WorkerEventQueue.cpp: (WebCore::WorkerEventQueue::enqueueEvent): * workers/WorkerGlobalScope.cpp: (WebCore::WorkerGlobalScope::close): (WebCore::WorkerGlobalScope::postTask): (WebCore::WorkerGlobalScope::addConsoleMessage): (WebCore::WorkerGlobalScope::addMessage): * workers/WorkerGlobalScope.h: * workers/WorkerLoaderProxy.h: * workers/WorkerMessagingProxy.cpp: (WebCore::MessageWorkerGlobalScopeTask::create): (WebCore::MessageWorkerGlobalScopeTask::performTask): (WebCore::MessageWorkerTask::create): (WebCore::MessageWorkerTask::performTask): (WebCore::WorkerExceptionTask::create): (WebCore::WorkerExceptionTask::performTask): (WebCore::WorkerGlobalScopeDestroyedTask::create): (WebCore::WorkerGlobalScopeDestroyedTask::performTask): (WebCore::WorkerTerminateTask::create): (WebCore::WorkerTerminateTask::WorkerTerminateTask): (WebCore::WorkerTerminateTask::performTask): (WebCore::WorkerThreadActivityReportTask::create): (WebCore::WorkerThreadActivityReportTask::performTask): (WebCore::PostMessageToPageInspectorTask::create): (WebCore::PostMessageToPageInspectorTask::performTask): (WebCore::NotifyNetworkStateChangeTask::create): (WebCore::NotifyNetworkStateChangeTask::NotifyNetworkStateChangeTask): (WebCore::NotifyNetworkStateChangeTask::performTask): (WebCore::WorkerMessagingProxy::postMessageToWorkerObject): (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope): (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope): (WebCore::WorkerMessagingProxy::postTaskToLoader): (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject): (WebCore::WorkerMessagingProxy::workerThreadCreated): (WebCore::WorkerMessagingProxy::notifyNetworkStateChange): (WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyed): (WebCore::WorkerMessagingProxy::workerGlobalScopeClosed): (WebCore::WorkerMessagingProxy::postMessageToPageInspector): (WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject): (WebCore::WorkerMessagingProxy::reportPendingActivity): * workers/WorkerMessagingProxy.h: * workers/WorkerRunLoop.cpp: (WebCore::WorkerRunLoop::postTask): (WebCore::WorkerRunLoop::postTaskAndTerminate): (WebCore::WorkerRunLoop::postTaskForMode): (WebCore::WorkerRunLoop::Task::create): (WebCore::WorkerRunLoop::Task::Task): * workers/WorkerRunLoop.h: * workers/WorkerThread.cpp: (WebCore::WorkerThreadShutdownFinishTask::create): (WebCore::WorkerThreadShutdownFinishTask::performTask): (WebCore::WorkerThreadShutdownFinishTask::isCleanupTask): (WebCore::WorkerThreadShutdownStartTask::performTask): (WebCore::WorkerThread::stop): (WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads): 2013-10-07 Darin Adler Make Vector::insert work for move-only types https://bugs.webkit.org/show_bug.cgi?id=122429 Reviewed by Anders Carlsson. * history/HistoryItem.cpp: (WebCore::HistoryItem::padDailyCountsForNewVisit): Call insertVector. Also added some inline capacity, which should make this faster. 2013-10-07 Anders Carlsson Update test results. * bindings/scripts/test/JS/JSTestCallback.cpp: (WebCore::JSTestCallback::~JSTestCallback): 2013-10-04 Ojan Vafai and Martin Robinson [MathML] Remove RenderTree modification during layout and refactor the StretchyOp code https://bugs.webkit.org/show_bug.cgi?id=121416 Reviewed by David Hyatt. Tests: mathml/presentation/mo-minus.html mathml/presentation/mo-stacked-glyphs.html mathml/presentation/mo-stretchy-vertical-bar.html mathml/very-large-stretchy-operators.html MathML stretched operators by both modifying the width of the operator and adding children to the operator node in the render tree. Instead we make the operator width equal to the widest glyph possible that we use to represent the operator. Additionally instead of rendering stretchy glyphs via stacked operator pieces in separate render tree nodes, keep only one node for the glyph, and use a custom paint method to paint the stacked representation. With this patch, rendering seems roughly equivalent on Mac and markedly better on Linux. * css/mathml.css: Not sure what this line-height:0 was here for, but it caused bugs with the new code * mathml/MathMLTextElement.cpp: (WebCore::MathMLTextElement::attach): (WebCore): (WebCore::MathMLTextElement::childrenChanged): Need to update the anonymous render tree below elements when their children change or when the renderer is first attached. * mathml/MathMLTextElement.h: (MathMLTextElement): * rendering/mathml/RenderMathMLBlock.cpp: (WebCore::RenderMathMLBlock::RenderMathMLBlock): * rendering/mathml/RenderMathMLBlock.h: Now that the preferred width doesn't depend on the height, we don't need to override computePreferredLogicalWidths at all. * rendering/mathml/RenderMathMLFenced.cpp: (WebCore::RenderMathMLFenced::makeFences): (WebCore::RenderMathMLFenced::styleDidChange): Need to update the anonymous renderers for the anonymous RenderMathMLOperators. * rendering/mathml/RenderMathMLOperator.cpp: (WebCore::RenderMathMLOperator::expandedStretchHeight): Store the non-expanded stretch height so that we can detect when the height actually changed. (WebCore::RenderMathMLOperator::stretchToHeight): Only update the style on the anonymous render tree since this is called from RenderMathMLRow::layout (WebCore::RenderMathMLOperator::styleDidChange): (WebCore::RenderMathMLOperator::glyphBoundsForCharacter): A helper to get glyph boundaries. (WebCore::RenderMathMLOperator::glyphHeightForCharacter): Ditto for glyph width. (WebCore::RenderMathMLOperator::advanceForCharacter): The advance is different from the width, and we want the width of the operator to be the advance instead of the tight bounding width. (WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Use the max of all possible glyphs we can use to render this operator. (WebCore::RenderMathMLOperator::computeLogicalHeight): Return the stretched operator height, if appropriate. (WebCore::RenderMathMLOperator::updateFromElement): We add a child for rendering the non-scaled version of the glyph. (WebCore::RenderMathMLOperator::firstCharacterForStretching): Helper to figure out what character is the character used for stretching operations. (WebCore::RenderMathMLOperator::findAcceptableStretchyCharacter): Helper to find an acceptable set of glyph pieces for stretching characters. (WebCore::RenderMathMLOperator::updateStyle): Resize the operator to the appropriate height and hide the child if we are using the stretchy style. (WebCore::RenderMathMLOperator::firstLineBoxBaseline): (WebCore::RenderMathMLOperator::paintCharacter): Helper to paint a single character component of the stretchy glyph. (WebCore::RenderMathMLOperator::fillWithExtensionGlyph): Helper to paint the extender glue between features of the stretchy glyph. (WebCore::RenderMathMLOperator::paint): Properly paint stretchy glyphs. * rendering/mathml/RenderMathMLOperator.h: Update method declarations. 2013-10-07 Eric Carlson [MediaStream API] update MediaStreamTrack object to match spec https://bugs.webkit.org/show_bug.cgi?id=121940 Reviewed by Jer Noble. No new tests, existing test updated. Add new source files to the project: * CMakeLists.txt: * DerivedSources.make: * GNUmakefile.list.am: * WebCore.xcodeproj/project.pbxproj: New capability dictionary objects: * Modules/mediastream/AllAudioCapabilities.h: Added. * Modules/mediastream/AllAudioCapabilities.idl: Added. * Modules/mediastream/AllVideoCapabilities.h: Added. * Modules/mediastream/AllVideoCapabilities.idl: Added. * Modules/mediastream/AudioStreamTrack.cpp: (WebCore::AudioStreamTrack::create): New version that takes a MediaStreamTrack*. * Modules/mediastream/AudioStreamTrack.h: New object for a capability range: * Modules/mediastream/CapabilityRange.cpp: Added. * Modules/mediastream/CapabilityRange.h: Added. * Modules/mediastream/CapabilityRange.idl: Added. * Modules/mediastream/MediaConstraintsImpl.h: Make initialize() public. New object for the current states for a media source. * Modules/mediastream/MediaSourceStates.cpp: Added. * Modules/mediastream/MediaSourceStates.h: Added. * Modules/mediastream/MediaSourceStates.idl: Added. Don't call the media stream center to notify it when the state of other objects change. * Modules/mediastream/MediaStream.cpp: (WebCore::processTrack): Remove the stream source duplication hack. (WebCore::createFromSourceVectors): (WebCore::MediaStream::MediaStream): (WebCore::MediaStream::addTrack): (WebCore::MediaStream::removeTrack): * Modules/mediastream/MediaStream.h: New object for the capabilities of a source. * Modules/mediastream/MediaStreamCapabilities.cpp: Added. * Modules/mediastream/MediaStreamCapabilities.h: Added. * Modules/mediastream/MediaStreamCapabilities.idl: Added. Update interface to match spec. * Modules/mediastream/MediaStreamTrack.cpp: (WebCore::MediaStreamTrack::MediaStreamTrack): Define a copy constructor to use in clone(). (WebCore::MediaStreamTrack::setSource): Call removeObserver if the track already has a source. Initialize m_muted from new source's muted state. (WebCore::MediaStreamTrack::id): Allow source to provide ID as the spec suggests. (WebCore::MediaStreamTrack::setEnabled): Add some spec text to clarify logic. Always call source->setEnabled, it can figure out if nothing needs to be done. (WebCore::MediaStreamTrack::muted): Don't call the stream center when muted changes, the source can take care of notifying interested parties. (WebCore::MediaStreamTrack::readonly): New. (WebCore::MediaStreamTrack::remote): New. (WebCore::MediaStreamTrack::constraints): New. (WebCore::MediaStreamTrack::states): New. (WebCore::MediaStreamTrack::capabilities): New. (WebCore::MediaStreamTrack::applyConstraints): New. (WebCore::MediaStreamTrack::clone): New. (WebCore::MediaStreamTrack::stopProducingData): New. (WebCore::MediaStreamTrack::sourceStateChanged): Renamed from sourceChangedState. (WebCore::MediaStreamTrack::sourceMutedChanged): New. (WebCore::MediaStreamTrack::sourceEnabledChanged): New. (WebCore::MediaStreamTrack::configureTrackRendering): New. (WebCore::MediaStreamTrack::stopped): New. (WebCore::MediaStreamTrack::stop): Call stopProducingData. (WebCore::MediaStreamTrack::scheduleEventDispatch): New. (WebCore::MediaStreamTrack::dispatchQueuedEvents): New. * Modules/mediastream/MediaStreamTrack.h: * Modules/mediastream/MediaStreamTrack.idl: * Modules/mediastream/MediaTrackConstraint.cpp: Added. * Modules/mediastream/MediaTrackConstraint.h: Added. * Modules/mediastream/MediaTrackConstraint.idl: Added. // Add empty classes/IDL for track constraint objects. * Modules/mediastream/MediaTrackConstraintSet.cpp: Added. * Modules/mediastream/MediaTrackConstraintSet.h: Added. * Modules/mediastream/MediaTrackConstraintSet.idl: Added. * Modules/mediastream/MediaTrackConstraints.cpp: Added. * Modules/mediastream/MediaTrackConstraints.h: Added. * Modules/mediastream/MediaTrackConstraints.idl: Added. * Modules/mediastream/UserMediaRequest.cpp: (WebCore::UserMediaRequest::callSuccessHandler): Don't call the stream center, the stream can take care of notifying interested parties. // Add a constructor and create() that take a MediaStreamTrack*. * Modules/mediastream/VideoStreamTrack.cpp: (WebCore::VideoStreamTrack::create): (WebCore::VideoStreamTrack::VideoStreamTrack): * Modules/mediastream/VideoStreamTrack.h: // Create a MediaStreamSource subclass for WebAudio * Modules/webaudio/AudioContext.cpp: (WebCore::AudioContext::createMediaStreamSource): Call isAudioStreamSource instead of checking deviceID. * Modules/webaudio/MediaStreamAudioDestinationNode.cpp: (WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode): Create a MediaStreamAudioSource instead of a MediaStreamSource. * Modules/webaudio/MediaStreamAudioDestinationNode.h: * Modules/webaudio/MediaStreamAudioSource.cpp: Added. * Modules/webaudio/MediaStreamAudioSource.h: Added. (WebCore::MediaStreamAudioSource::~MediaStreamAudioSource): // Add new generated files. * bindings/js/JSMediaSourceStatesCustom.cpp: Added. * bindings/js/JSMediaStreamCapabilitiesCustom.cpp: Added. * dom/EventNames.h: Defined 'overconstrained' event. * platform/mediastream/MediaStreamCenter.h: Get rid of all of the methods nobody uses. It isn't clear that they are necessary, and we can add them back if/when we need them. * platform/mediastream/MediaStreamDescriptor.cpp: (WebCore::MediaStreamDescriptor::~MediaStreamDescriptor): Clear the all source streams. (WebCore::MediaStreamDescriptor::removeSource): Clear the source stream. * platform/mediastream/MediaStreamDescriptor.h: // Make MediaStreamSource an abstract base class, and remove everyting WebAudio-specific // to MediaStreamAudioSource. * platform/mediastream/MediaStreamSource.cpp: (WebCore::MediaStreamSource::MediaStreamSource): Remove readyState and requiresConsumer parameters. Create new UUID for id if non was passed. (WebCore::MediaStreamSource::reset): Reset internal state to just-constructed. Used for testing. (WebCore::MediaStreamSource::setReadyState): sourceChangedState -> sourceStateChanged. (WebCore::MediaStreamSource::setStream): Remove the ASSERT that check for a source being added to a new stream. This is still a problem, but it is required for testing and will be fixed as a part of bug 121954. (WebCore::MediaStreamSource::setConstraints): Added. (WebCore::MediaStreamSource::setMuted): Notify observers when muted changes. (WebCore::MediaStreamSource::setEnabled): Notify observers when enabled changes. (WebCore::MediaStreamSource::readonly): New. (WebCore::MediaStreamSource::stop): New. Set state to Ended when all of the observers has stopped. * platform/mediastream/MediaStreamSource.h: // Define platform versions of the Capabilities classes. * platform/mediastream/MediaStreamSourceCapabilities.h: Added. // Update the non-functional platform stream centers for the API changes. * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp: * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h: * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp: * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h: * platform/mediastream/mac/MediaStreamCenterMac.cpp: * platform/mediastream/mac/MediaStreamCenterMac.h: // Update the Mock stream center for the API changes. Add a concrete mock MediaStreamSource // subclass. * platform/mock/MockMediaStreamCenter.cpp: (WebCore::MockSource::MockSource): New, the mock media stream source. (WebCore::MockSource::~MockSource): (WebCore::MockSource::capabilities): (WebCore::MockSource::states): (WebCore::mockSourceMap): (WebCore::mockAudioSourceID): (WebCore::mockVideoSourceID): (WebCore::initializeMockSources): Create one audio and one video mock source. (WebCore::MockMediaStreamCenter::registerMockMediaStreamCenter): Call initializeMockSources. (WebCore::MockMediaStreamCenter::createMediaStream): Use the already allocated mock media sources. (WebCore::MockMediaStreamCenter::getMediaStreamTrackSources): Ditto. * platform/mock/MockMediaStreamCenter.h: 2013-10-07 Andreas Kling CTTE: Live node lists always have an owner Node. Reviewed by Anders Carlsson. Make LiveNodeListBase::m_ownerNode a Ref instead of a RefPtr and have all constructors take Node&. 2013-10-07 Anders Carlsson Clean up ScriptExecutionContext::Task and subclasses https://bugs.webkit.org/show_bug.cgi?id=122469 Reviewed by Andreas Kling. * Modules/webdatabase/Database.cpp: (WebCore::DerefContextTask::DerefContextTask): (WebCore::Database::~Database): (WebCore::DeliverPendingCallbackTask::DeliverPendingCallbackTask): (WebCore::Database::scheduleTransactionCallback): * Modules/webdatabase/DatabaseManager.cpp: (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask): (WebCore::DatabaseManager::openDatabase): * Modules/webdatabase/SQLCallbackWrapper.h: (WebCore::SQLCallbackWrapper::clear): (WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask): * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp: (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks): * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h: * Modules/websockets/WorkerThreadableWebSocketChannel.cpp: (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::WorkerGlobalScopeDidInitializeTask): (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize): * bindings/js/JSCallbackData.h: (WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask): * bindings/js/JSDOMGlobalObjectTask.h: * bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::queueTaskToEventLoop): * bindings/js/JSWorkerGlobalScopeBase.cpp: (WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop): * bindings/scripts/CodeGeneratorJS.pm: (GenerateCallbackImplementation): * dom/CrossThreadTask.h: (WebCore::createCallbackTask): * dom/Document.cpp: (WebCore::Document::addConsoleMessage): (WebCore::Document::addMessage): (WebCore::PerformTaskContext::PerformTaskContext): (WebCore::Document::postTask): (WebCore::Document::pendingTasksTimerFired): * dom/Document.h: * dom/ScriptExecutionContext.cpp: (WebCore::ProcessMessagesSoonTask::ProcessMessagesSoonTask): (WebCore::ScriptExecutionContext::processMessagePortMessagesSoon): * dom/ScriptExecutionContext.h: * dom/StringCallback.cpp: (WebCore::StringCallback::scheduleCallback): * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::CallCacheListenerTask::CallCacheListenerTask): (WebCore::ApplicationCacheGroup::postListenerTask): * workers/DefaultSharedWorkerRepository.cpp: (WebCore::SharedWorkerProxy::postTaskToLoader): (WebCore::SharedWorkerProxy::postTaskForModeToWorkerGlobalScope): (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded): (WebCore::DefaultSharedWorkerRepository::connectToWorker): * workers/WorkerEventQueue.cpp: (WebCore::WorkerEventQueue::enqueueEvent): * workers/WorkerGlobalScope.cpp: (WebCore::WorkerGlobalScope::close): (WebCore::WorkerGlobalScope::postTask): (WebCore::WorkerGlobalScope::addConsoleMessage): (WebCore::WorkerGlobalScope::addMessage): * workers/WorkerGlobalScope.h: * workers/WorkerLoaderProxy.h: * workers/WorkerMessagingProxy.cpp: (WebCore::WorkerMessagingProxy::postMessageToWorkerObject): (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope): (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope): (WebCore::WorkerMessagingProxy::postTaskToLoader): (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject): (WebCore::WorkerMessagingProxy::workerThreadCreated): (WebCore::WorkerMessagingProxy::notifyNetworkStateChange): (WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyed): (WebCore::WorkerMessagingProxy::workerGlobalScopeClosed): (WebCore::WorkerMessagingProxy::postMessageToPageInspector): (WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject): (WebCore::WorkerMessagingProxy::reportPendingActivity): * workers/WorkerMessagingProxy.h: * workers/WorkerRunLoop.cpp: (WebCore::WorkerRunLoop::postTask): (WebCore::WorkerRunLoop::postTaskAndTerminate): (WebCore::WorkerRunLoop::postTaskForMode): (WebCore::WorkerRunLoop::Task::Task): * workers/WorkerRunLoop.h: * workers/WorkerThread.cpp: (WebCore::WorkerThreadShutdownFinishTask::WorkerThreadShutdownFinishTask): (WebCore::WorkerThreadShutdownStartTask::performTask): (WebCore::WorkerThread::stop): (WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads): 2013-10-07 Sam Weinig CTTE: Use references in and around DragController https://bugs.webkit.org/show_bug.cgi?id=122427 Reviewed by Andreas Kling. Use references to indicate non-nullness of DragController related objects. 2013-10-07 Tim Horton Animated images are not restarted when page visibility changes https://bugs.webkit.org/show_bug.cgi?id=122464 Reviewed by Simon Fraser. Always kickstart animated images when the page visibility changes, which can occur via window occlusion, and which is independent of in-window state, which we were previously using to advance animation. No new tests; attempts to make a test have resulted only in a flaky, timing-dependent test. * page/Frame.cpp: (WebCore::Frame::resumeActiveDOMObjectsAndAnimations): Move this call to resumeAnimatingImages() up to Page. * page/FrameView.cpp: (WebCore::FrameView::setIsInWindow): Move this call to resumeAnimatingImages() up to Page. * WebCore.exp.in * page/FrameView.h: * page/Page.h: Move resumeAnimatingImages() itself up to Page. * page/Page.cpp: (WebCore::Page::setIsInWindow): Resume animated images when we move in-window. (WebCore::Page::setVisibilityState): Resume animated images when we become visible. This is the one we were previously missing. (WebCore::Page::resumeActiveDOMObjectsAndAnimations): Resume animated images when we're told to. (WebCore::Page::resumeAnimatingImages): Kickstart any animated images in all frames. 2013-10-07 Jer Noble [Mac] Drawing video into canvas doesn't work on the first attempt https://bugs.webkit.org/show_bug.cgi?id=122404 Reviewed by Eric Carlson. Test: media/video-canvas-drawing.html If creating and painting from an AVPlayerItemVideoOutput fails, fall back to the (much slower) AVAssetImageGenerator path. Make sure to revert to the AVPlayerItemVideoOutput path when that object begins to have available images, however. To do so, remove the "__MAC_OS_X_VERSION_MIN_REQUIRED < 1080" check around the AVAssetImageGenerator code, and allow both the image generator and video output to exist simultaneously. * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::hasContextRenderer): (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyContextVideoRenderer): (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyImageGenerator): (WebCore::MediaPlayerPrivateAVFoundationObjC::paintCurrentFrameInContext): (WebCore::MediaPlayerPrivateAVFoundationObjC::videoOutputHasAvailableFrame): (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput): 2013-10-07 Jer Noble URLMediaSource.idl and URLMediaStream.idl are wrong https://bugs.webkit.org/show_bug.cgi?id=122301 Reviewed by Philippe Normand. Rename URLMediaSource and URLMediaStream to DOMURLMediaSource and DOMURLMediaStream, respectively. Update the build files: * CMakeLists.txt: Rename URL -> DOMURL. * DerivedSources.make: Ditto. * GNUmakefile.list.am: Ditto. * WebCore.xcodeproj/project.pbxproj: Ditto. Rename the .idl and implementation files: * Modules/mediasource/DOMURLMediaSource.cpp: Renamed from Source/WebCore/Modules/mediasource/URLMediaSource.cpp. (WebCore::DOMURLMediaSource::createObjectURL): * Modules/mediasource/DOMURLMediaSource.h: Renamed from Source/WebCore/Modules/mediasource/URLMediaSource.h. * Modules/mediasource/DOMURLMediaSource.idl: Renamed from Source/WebCore/Modules/mediasource/URLMediaSource.idl. * Modules/mediastream/DOMURLMediaStream.cpp: Renamed from Source/WebCore/Modules/mediastream/URLMediaStream.cpp. (WebCore::DOMURLMediaStream::createObjectURL): * Modules/mediastream/DOMURLMediaStream.h: Renamed from Source/WebCore/Modules/mediastream/URLMediaStream.h. * Modules/mediastream/DOMURLMediaStream.idl: Renamed from Source/WebCore/Modules/mediastream/URLMediaStream.idl. 2013-10-07 Philippe Normand Conditional support in bindings code generator for overloaded functions https://bugs.webkit.org/show_bug.cgi?id=122443 Reviewed by Darin Adler. * bindings/scripts/CodeGeneratorJS.pm: (GenerateOverloadedFunction): Generate conditional for overloaded function, if it's present in the idl. (GenerateImplementation): Close the last overloaded function conditional before generating the distpatch function. * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::jsTestObjConstructorFunctionOverloadedMethod1): Rebaseline overloaded function tests. 2013-10-07 Tim Horton -webkit-cross-fade paints SVGs at full opacity during cross-fade https://bugs.webkit.org/show_bug.cgi?id=122441 Reviewed by Simon Fraser. Test: css3/images/cross-fade-svg-with-opacity.html * platform/graphics/CrossfadeGeneratedImage.cpp: (WebCore::drawCrossfadeSubimage): (WebCore::CrossfadeGeneratedImage::drawCrossfade): Factor the image painting out into a function. Conditionally use a transparency layer around painting if the image we're drawing is an SVG (SVGImage is the only Image subclass that will not respect the context's opacity). 2013-10-06 Anders Carlsson Add OVERRIDE and virtual where appropriate https://bugs.webkit.org/show_bug.cgi?id=122439 Reviewed by Antti Koivisto. * Modules/encryptedmedia/MediaKeys.h: * Modules/webaudio/AnalyserNode.h: * Modules/webaudio/AudioBasicInspectorNode.h: * Modules/webaudio/AudioBasicProcessorNode.h: * Modules/webaudio/AudioBufferSourceNode.h: * Modules/webaudio/AudioContext.h: * Modules/webaudio/AudioDestinationNode.h: * Modules/webaudio/AudioProcessingEvent.h: * Modules/webaudio/BiquadDSPKernel.h: * Modules/webaudio/BiquadProcessor.h: * Modules/webaudio/ChannelMergerNode.h: * Modules/webaudio/ChannelSplitterNode.h: * Modules/webaudio/ConvolverNode.h: * Modules/webaudio/DelayDSPKernel.h: * Modules/webaudio/DelayProcessor.h: * Modules/webaudio/DynamicsCompressorNode.h: * Modules/webaudio/GainNode.h: * Modules/webaudio/MediaElementAudioSourceNode.h: * Modules/webaudio/OfflineAudioCompletionEvent.h: * Modules/webaudio/OfflineAudioDestinationNode.h: * Modules/webaudio/OscillatorNode.h: * Modules/webaudio/PannerNode.h: * Modules/webaudio/ScriptProcessorNode.h: * Modules/webaudio/WaveShaperProcessor.h: * accessibility/AccessibilityARIAGrid.h: * accessibility/AccessibilityARIAGridCell.h: * accessibility/AccessibilityARIAGridRow.h: * accessibility/AccessibilityImageMapLink.h: * accessibility/AccessibilityList.h: * accessibility/AccessibilityListBox.h: * accessibility/AccessibilityListBoxOption.h: * accessibility/AccessibilityMediaControls.h: * accessibility/AccessibilityMenuList.h: * accessibility/AccessibilityMenuListOption.h: * accessibility/AccessibilityMenuListPopup.h: * accessibility/AccessibilityMockObject.h: * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityProgressIndicator.h: * accessibility/AccessibilityRenderObject.h: * accessibility/AccessibilitySVGRoot.h: * accessibility/AccessibilityScrollView.h: * accessibility/AccessibilityScrollbar.h: * accessibility/AccessibilitySlider.h: * accessibility/AccessibilitySpinButton.h: * accessibility/AccessibilityTable.h: * accessibility/AccessibilityTableCell.h: * accessibility/AccessibilityTableColumn.h: * accessibility/AccessibilityTableHeaderContainer.h: * accessibility/AccessibilityTableRow.h: * bindings/js/JSEventListener.h: * bindings/js/WebCoreTypedArrayController.h: * bridge/c/c_class.h: * bridge/c/c_instance.h: * bridge/c/c_runtime.h: * bridge/runtime_root.h: * css/CSSBasicShapes.h: * css/CSSComputedStyleDeclaration.h: * css/CSSStyleSheet.h: * dom/Attr.h: * dom/BeforeTextInsertedEvent.h: * dom/CDATASection.h: * dom/ChildNodeList.h: * dom/DatasetDOMStringMap.h: * dom/Document.h: * dom/DocumentEventQueue.h: * dom/DocumentFragment.h: * dom/Element.h: * dom/ErrorEvent.h: * dom/KeyboardEvent.h: * dom/Node.h: * dom/PageTransitionEvent.h: * dom/ProgressEvent.h: * dom/PseudoElement.h: * dom/ScriptExecutionContext.h: * dom/ShadowRoot.h: * dom/StyledElement.h: * dom/TagNodeList.h: * dom/Text.h: * dom/TextEvent.h: * dom/TransitionEvent.h: * dom/UIEvent.h: * dom/WebKitAnimationEvent.h: * dom/WebKitTransitionEvent.h: * editing/ApplyBlockElementCommand.h: * editing/ApplyStyleCommand.h: * editing/BreakBlockquoteCommand.h: * editing/CompositeEditCommand.h: * editing/SpellingCorrectionCommand.h: * fileapi/File.h: * fileapi/FileThreadTask.h: * history/BackForwardList.h: * html/BaseCheckableInputType.h: * html/HTMLAnchorElement.h: * html/HTMLAreaElement.h: * html/HTMLCanvasElement.h: * html/HTMLCollection.h: * html/HTMLElement.h: * html/HTMLFieldSetElement.h: * html/HTMLFormControlElement.h: * html/HTMLFormControlElementWithState.h: * html/HTMLFormElement.h: * html/HTMLFrameElementBase.h: * html/HTMLImageElement.h: * html/HTMLImageLoader.h: * html/HTMLInputElement.h: * html/HTMLLabelElement.h: * html/HTMLLegendElement.h: * html/HTMLMediaElement.h: * html/HTMLMeterElement.h: * html/HTMLOptGroupElement.h: * html/HTMLOptionElement.h: * html/HTMLPlugInElement.h: * html/HTMLPlugInImageElement.h: * html/HTMLProgressElement.h: * html/HTMLSelectElement.h: * html/HTMLTableElement.h: * html/HTMLTextAreaElement.h: * html/HTMLTextFormControlElement.h: * html/HTMLVideoElement.h: * html/canvas/CanvasRenderingContext2D.cpp: * html/shadow/MediaControlElementTypes.h: * html/shadow/MediaControlElements.h: * html/shadow/SpinButtonElement.h: * html/shadow/TextControlInnerElements.h: * html/track/AudioTrackList.h: * html/track/TextTrackList.h: * html/track/TrackListBase.h: * inspector/InspectorValues.h: * loader/EmptyClients.h: * loader/ImageLoader.h: * loader/ResourceLoader.h: * loader/SubresourceLoader.h: * loader/appcache/ApplicationCacheGroup.cpp: * loader/appcache/ApplicationCacheGroup.h: * loader/appcache/DOMApplicationCache.h: * loader/archive/cf/LegacyWebArchive.h: * loader/cache/CachedCSSStyleSheet.h: * loader/cache/CachedFont.h: * loader/cache/CachedFontClient.h: * loader/cache/CachedImageClient.h: * loader/cache/CachedSVGDocumentClient.h: * loader/cache/CachedStyleSheetClient.h: * loader/cache/CachedXSLStyleSheet.h: * page/Chrome.h: * page/DOMWindow.h: * page/FrameView.h: * page/animation/ImplicitAnimation.h: * platform/PODIntervalTree.h: * platform/PODRedBlackTree.h: * platform/ScrollView.h: * platform/Scrollbar.h: * platform/Timer.h: * platform/animation/TimingFunction.h: (WebCore::LinearTimingFunction::~LinearTimingFunction): (WebCore::CubicBezierTimingFunction::~CubicBezierTimingFunction): (WebCore::StepsTimingFunction::~StepsTimingFunction): * platform/audio/AudioDSPKernelProcessor.h: * platform/audio/HRTFPanner.h: * platform/audio/mac/AudioDestinationMac.h: * platform/graphics/SimpleFontData.h: * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: * platform/graphics/filters/FilterOperation.h: * platform/network/ResourceHandle.h: * rendering/AutoTableLayout.h: * rendering/ClipPathOperation.h: * rendering/InlineFlowBox.h: * rendering/RenderBlock.h: * rendering/RenderBox.h: * rendering/RenderBoxModelObject.h: * rendering/RenderButton.h: * rendering/RenderFieldset.h: * rendering/RenderFileUploadControl.h: * rendering/RenderFlexibleBox.h: * rendering/RenderFlowThread.h: * rendering/RenderFullScreen.h: * rendering/RenderImage.h: * rendering/RenderLayer.h: * rendering/RenderLineBreak.h: * rendering/RenderListBox.h: * rendering/RenderListItem.h: * rendering/RenderListMarker.h: * rendering/RenderMenuList.h: * rendering/RenderMeter.h: * rendering/RenderObject.h: * rendering/RenderReplaced.h: * rendering/RenderSlider.h: * rendering/RenderTable.h: * rendering/RenderTableCell.h: * rendering/RenderText.h: * rendering/RenderTextControl.h: * rendering/RenderTextControlSingleLine.h: * rendering/RenderTextFragment.h: * rendering/RenderView.h: * rendering/RootInlineBox.h: * rendering/mathml/RenderMathMLBlock.h: * rendering/mathml/RenderMathMLFraction.h: * rendering/mathml/RenderMathMLOperator.h: * rendering/style/BasicShapes.h: * rendering/svg/RenderSVGModelObject.h: * rendering/svg/RenderSVGShape.h: * svg/SVGAnimatedBoolean.h: * svg/SVGAnimatedString.h: * svg/SVGAnimatedTransformList.h: * svg/SVGDocument.h: * svg/SVGElement.h: * svg/SVGElementInstance.h: * svg/SVGFontElement.h: * svg/SVGGElement.h: * svg/SVGGraphicsElement.h: * svg/SVGTransformable.h: * svg/properties/SVGAnimatedListPropertyTearOff.h: * svg/properties/SVGAnimatedPropertyMacros.h: * svg/properties/SVGAnimatedTransformListPropertyTearOff.h: * svg/properties/SVGListPropertyTearOff.h: * svg/properties/SVGPropertyTearOff.h: * workers/WorkerGlobalScope.h: 2013-10-07 Philippe Normand URLMediaStream is unguarded by ENABLE(MEDIA_STREAM) https://bugs.webkit.org/show_bug.cgi?id=122444 Reviewed by Martin Robinson. * Modules/mediastream/URLMediaStream.cpp: Added missing conditional guards. * Modules/mediastream/URLMediaStream.h: Ditto. 2013-10-07 Philippe Normand [GTK] webkit_dom_html_style_element_{s,g}et_scoped was removed https://bugs.webkit.org/show_bug.cgi?id=122446 Reviewed by Martin Robinson. Added skeleton functions warning of removed functionality for the Since the change in text-decoration has no effect on the rendering of the element, we'll now be smart enough to avoid repainting it. * rendering/style/RenderStyleConstants.h: * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::diff): Move checking of text-only properties until the very end, and return StyleDifferenceRepaintIfText in case a difference is found, giving precedence to StyleDifferenceRepaint. * rendering/RenderObject.h: * rendering/RenderObject.cpp: (WebCore::RenderObject::hasImmediateNonWhitespaceTextChild): Helper to check if a RenderObject has at least one RenderText child containing more than just collapsible whitespace. (WebCore::RenderObject::shouldRepaintForStyleDifference): Helper to check if a StyleDifference is either ...Repaint or ...RepaintIfText and the renderer has an immediate text child. (WebCore::RenderObject::styleWillChange): (WebCore::RenderObject::setStyle): Don't repaint for StyleDifferenceRepaintIfText unless hasImmediateNonWhitespaceTextChild(). * rendering/RenderBox.cpp: (WebCore::RenderBox::styleDidChange): * rendering/svg/SVGResourcesCache.cpp: (WebCore::SVGResourcesCache::clientStyleChanged): Tweak for new StyleDifference enum value. * rendering/RenderText.h: * rendering/RenderText.cpp: (WebCore::RenderText::isAllCollapsibleWhitespace): Made this const. 2013-05-17 Lamarque V. Souza Improve -webkit-text-underline-position memory usage. https://bugs.webkit.org/show_bug.cgi?id=116108 Reviewed by Benjamin Poulain. Remove m_maxLogicalTop private variable from RootInlineBox to reduce the overall memory used to render RootInlineBoxes (eight bytes per RootInlineBox instance in a 64-bit machine). RootInline::maxLogicalTop() now computes the maxLogicalTop value everytime it is called. In a typical page computeMaxLogicalTop is called less than 10 times for each InlineTextBox that uses -webkit-text-underline-position. That is a small price users of -webkit-text-underline-position will pay so that everybody can benefit from the memory reduction in RootInlineBox. No new tests, no change in behavior. * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::computeMaxLogicalTop): Make it const. * rendering/InlineFlowBox.h: * rendering/RootInlineBox.cpp: (WebCore::RootInlineBox::RootInlineBox): Remove m_maxLogicalTop. (WebCore::RootInlineBox::alignBoxesInBlockDirection): Remove computeMaxLogicalTop call and obsolete comment. (WebCore): (WebCore::RootInlineBox::maxLogicalTop): Compute maxLogicalTop before returning its value. * rendering/RootInlineBox.h: (RootInlineBox): 2013-05-17 Alexis Menard Make sure to call release() on our smart pointers when we should. https://bugs.webkit.org/show_bug.cgi?id=116307 Reviewed by Andreas Kling. Call release() when we should call it. There is probably more occurence of this problem on the codebase but this is a first bunch of fixes. No new tests : existing ones should cover. * css/CSSComputedStyleDeclaration.cpp: (WebCore::valueForNinePieceImage): (WebCore::getBorderRadiusShorthandValue): (WebCore::CSSComputedStyleDeclaration::valueForFilter): (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForSidesShorthand): (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForGridShorthand): * css/CSSParser.cpp: (WebCore::CSSParser::parseBorderImage): * html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::collectStyleForPresentationAttribute): 2013-05-17 Allan Sandfeld Jensen Make PNGImageDecoder::rowAvailable auto-vectorizable https://bugs.webkit.org/show_bug.cgi?id=116151 Reviewed by Benjamin Poulain. Changed the main loops under PNGImageDecoder::rowAvailable so that they avoid branches and non-sequential table look ups. Together with automatic vectorization by the compiler this provides around 4x speed-up with AVX or 2x speed-up on generic x64. Shaving off 12-40% on PNG decoding in general. * platform/graphics/Color.cpp: (WebCore::premultipliedARGBFromColor): * platform/graphics/Color.h: (WebCore::fastDivideBy255): * platform/graphics/filters/FEBlend.cpp: * platform/image-decoders/png/PNGImageDecoder.cpp: (WebCore::setPixelRGB): (WebCore::setPixelRGBA): (WebCore::setPixelRGBA_Premultiplied): (WebCore::PNGImageDecoder::rowAvailable): 2013-05-17 Joseph Pecoraro Web Inspector: Allow "//# sourceMappingURL" syntax alongside "//@" https://bugs.webkit.org/show_bug.cgi?id=116290 Follow an update to the spec and support the new and old syntax. Reviewed by Timothy Hatcher. * inspector/ContentSearchUtils.cpp: (WebCore::ContentSearchUtils::scriptCommentPattern): (WebCore::ContentSearchUtils::stylesheetCommentPattern): * inspector/front-end/SASSSourceMapping.js: (WebInspector.SASSSourceMapping.prototype._loadAndProcessSourceMap): 2013-05-17 Christophe Dumez Remove custom code for MessageEvent.ports getter https://bugs.webkit.org/show_bug.cgi?id=116304 Reviewed by Kentaro Hara. Remove Custom code for the "ports" attribute getter in MessageEvent IDL interface. The JSC bindings generator already supports attributes of type MessagePortArray. No new tests, already covered by existing layout tests and bindings tests. * bindings/js/JSMessageEventCustom.cpp: Remove Custom code for ports getter. * bindings/scripts/CodeGeneratorJS.pm: (NativeToJSValue): Small tweak to correctly handle the case where impl->ports() returns NULL and avoid crashing in this case. * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: Rebaseline due to bindings generator tweak. * dom/MessageEvent.idl: Remove [CustomGetter] extended attribute for 'ports' attribute and switch to MessagePortArray type. 2013-05-16 Jesus Sanchez-Palencia Add stubs for ContextMenu and ContextMenuItem https://bugs.webkit.org/show_bug.cgi?id=116235 Reviewed by Antonio Gomes. No new tests needed, only a refactor. Add ContextMenuNone.cpp and ContextMenuItemNone.cpp so ports using ENABLE(CROSS_PLATFORM_CONTEXT_MENU) don't need to replicate these stubs. * PlatformEfl.cmake: * Target.pri: * platform/ContextMenuNone.cpp: Added. (WebCore): (WebCore::ContextMenu::ContextMenu): (WebCore::ContextMenu::getContextMenuItems): (WebCore::ContextMenu::createPlatformContextMenuFromItems): (WebCore::ContextMenu::platformContextMenu): * platform/ContextMenuItemNone.cpp: Added. (WebCore): (WebCore::ContextMenuItem::platformContextMenuItem): * platform/efl/ContextMenuEfl.cpp: Removed. * platform/efl/ContextMenuItemEfl.cpp: Removed. * platform/qt/ContextMenuQt.cpp: Removed. * platform/qt/ContextMenuItemQt.cpp: Removed. 2013-05-16 Alexis Menard Regression: Event#stopPropagation() does not halt bubbling for webkitTransitionEnd https://bugs.webkit.org/show_bug.cgi?id=115656 Reviewed by Darin Adler. If we create a prefixed event to dispatch it (in the case we have only prefixed event listeners in client's code) then we need to make sure to keep it in sync with the original unprefixed event after it has been dispatched. While being dispatched the event can be modified by client's code and when propagated back to outer elements, attributes were not updated. This patch changes the old design of creating a separate event for the prefixed case and now change the type of the event (so the name) before dispatching it, keeping the attributes if changed and then rename it back to unprefixed when the dispatching is finished. Tests: transitions/transition-end-event-prefixed-01.html transitions/transition-end-event-prefixed-02.html transitions/transition-end-event-prefixed-03.html * dom/Event.h: (WebCore::Event::setType): * dom/EventTarget.cpp: (WebCore::EventTarget::fireEventListeners): 2013-05-16 Mike Fenton [BlackBerry] Strip invoke URLs when writing to the clipboard. https://bugs.webkit.org/show_bug.cgi?id=116226 Reviewed by Rob Buis. PR 333516. Invoke URLs should not be included in the paste data. Internally Reviewed by Gen Mak. * platform/blackberry/PasteboardBlackBerry.cpp: (WebCore::Pasteboard::writeSelection): 2013-05-16 Eduardo Lima Mitev Missing UNUSED_PARAM macro for textPosition argument in WebKitAccessibleInterfaceText https://bugs.webkit.org/show_bug.cgi?id=116230 Reviewed by Chris Fleizach. No new functionality, no new tests. * accessibility/atk/WebKitAccessibleInterfaceText.cpp: (webkitAccessibleTextGetTextForOffset): List textPosition argument as unused parameter for all platforms except GTK. 2013-05-16 Jaehun Lim Frame flattening prevents in from having scrollbars https://bugs.webkit.org/show_bug.cgi?id=115884 Reviewed by Antonio Gomes. Frame flattening should be applied when the frame owner is frame or iframe. But when the frame owner is object element, frame flattening prevents it from having scrollbars. In this situation, we can't scroll the html document in object element. This patch adds two helper functions to verify flattening conditions. Test: fast/frames/flattening/scrolling-in-object.html * page/FrameView.cpp: (WebCore::frameFlatteningEnabled): Added. Helper to check whether flattening is enabled or not. (WebCore::supportsFrameFlattening): Added. Helper to check whether the frame owner is or