Timeline
Sep 27, 2014:
- 10:57 PM Changeset in webkit [174040] by
-
- 11 edits in trunk/Source/WebCore
HTMLPlugInElement::isUserObservable() is causing layout
https://bugs.webkit.org/show_bug.cgi?id=137156
Reviewed by Ryosuke Niwa.
While profiling the page load of nytimes.com, I noticed that we were
spending ~4-5% of cpu time in HTMLPlugInElement::isUserObservable().
The reason is that the function calls pluginWidget(), which causes a
layout update in HTMLObjectElement::renderWidgetForJSBindings(), to
make sure the plugin is loaded and its renderer is created.
HTMLPlugInElement::isUserObservable() shouldn't need to do a layout.
This patch does the following to address the problem:
- Rename renderWidgetForJSBindings() to renderWidgetLoadingPlugin() because this function is not always called from the JS Bindings nowadays. The new name makes it clearer that this will load the plugin if needed (to make sure the renderer is created, and by doing a layout).
- Add a PluginLoadingPolicy argument to HTMLPlugInElement::pluginWidget() to let the caller control if the plugin should be loaded or not.
- Update the call to pluginWidget() in isUserObservable() so that we do not attempt to load the plugin (thus not causing a layout).
No new tests, no behavior change.
- WebCore.exp.in:
- WebCore.order:
- html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::renderWidgetLoadingPlugin):
(WebCore::HTMLAppletElement::renderWidgetForJSBindings): Deleted.
- html/HTMLAppletElement.h:
- html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::renderWidgetLoadingPlugin):
(WebCore::HTMLEmbedElement::renderWidgetForJSBindings): Deleted.
- html/HTMLEmbedElement.h:
- html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::renderWidgetLoadingPlugin):
(WebCore::HTMLObjectElement::renderWidgetForJSBindings): Deleted.
- html/HTMLObjectElement.h:
- html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::pluginWidget):
(WebCore::HTMLPlugInElement::isUserObservable):
- html/HTMLPlugInElement.h:
- 10:21 PM Changeset in webkit [174039] by
-
- 22 edits in trunk/Source/WebCore
Use the new is<>() / downcast<>() for more Node subclasses
https://bugs.webkit.org/show_bug.cgi?id=137184
Reviewed by Ryosuke Niwa.
Use the new is<>() / downcast<>() for more Node subclasses:
CDATASection, CharacterData, Comment, DocumentType,
ProcessingInstruction, and PseudoElement.
No new tests, no behavior change.
- dom/CDATASection.h:
(WebCore::isCDATASection):
- dom/CharacterData.cpp:
(WebCore::CharacterData::setDataAndUpdate):
- dom/CharacterData.h:
(WebCore::isCharacterData):
- dom/Comment.h:
(WebCore::isComment):
- dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
- dom/DocumentType.h:
(WebCore::isDocumentType):
- dom/EventDispatcher.cpp:
(WebCore::eventTargetRespectingTargetRules):
(WebCore::nodeOrHostIfPseudoElement):
- dom/Node.cpp:
(WebCore::markAncestorsWithChildNeedsStyleRecalc):
(WebCore::Node::pseudoAwarePreviousSibling):
(WebCore::Node::pseudoAwareNextSibling):
- dom/NodeTraversal.cpp:
(WebCore::NodeTraversal::previousIncludingPseudo):
(WebCore::NodeTraversal::nextIncludingPseudo):
(WebCore::NodeTraversal::nextIncludingPseudoSkippingChildren):
- dom/ProcessingInstruction.h:
(WebCore::isProcessingInstruction):
- dom/PseudoElement.h:
(WebCore::isPseudoElement):
- dom/Range.cpp:
(WebCore::lengthOfContentsInNode):
(WebCore::Range::processContentsBetweenOffsets):
(WebCore::Range::checkNodeWOffset):
- editing/Editor.cpp:
(WebCore::Editor::shouldInsertFragment):
- editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::appendStartMarkup):
- editing/cocoa/HTMLConverter.mm:
(HTMLConverter::_traverseNode):
- inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForNode):
- inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
- rendering/HitTestResult.cpp:
(WebCore::HitTestResult::setInnerNode):
(WebCore::HitTestResult::setInnerNonSharedNode):
- rendering/RenderListItem.cpp:
(WebCore::enclosingList):
- rendering/RenderObject.cpp:
(WebCore::RenderObject::generatingPseudoHostElement):
- xml/XPathFunctions.cpp:
(WebCore::XPath::expandedNameLocalPart):
- 9:13 PM Changeset in webkit [174038] by
-
- 8 edits in trunk/Source/WebCore
Use the new is<>() / downcast<>() for Attr Nodes
https://bugs.webkit.org/show_bug.cgi?id=137183
Reviewed by Ryosuke Niwa.
Use the new is<>() / downcast<>() for Attr Nodes instead of isAttr() /
toAttr().
No new tests, no behavior change.
- dom/Attr.h:
(WebCore::isAttr):
- dom/Document.cpp:
(WebCore::Document::importNode):
(WebCore::Document::adoptNode):
- dom/NamedNodeMap.cpp:
(WebCore::NamedNodeMap::setNamedItem):
- dom/Node.cpp:
(WebCore::Node::compareDocumentPosition):
- inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForNode):
- inspector/InspectorNodeFinder.cpp:
(WebCore::InspectorNodeFinder::searchUsingXPath):
- xml/XPathNodeSet.cpp:
(WebCore::XPath::sortBlock):
(WebCore::XPath::NodeSet::sort):
(WebCore::XPath::findRootNode):
- 3:17 PM Changeset in webkit [174037] by
-
- 5 edits in trunk/Source
Web Replay: Playback position updates should be sent before the next event loop input is dispatched
https://bugs.webkit.org/show_bug.cgi?id=137162
Reviewed by Timothy Hatcher.
Source/WebCore:
To drive playback position updates in the Inspector UI, we send playbackHitPosition protocol
messages as the replay backend dispatches inputs. However, right now the semantics of that
message are muddy. The update is sent *after* the input at the offset is dispatched. This leads
to unexpected results if the debugger pauses while the input is being dispatched: the frontend
will only know about the previous (stale) playback position when the debugger pauses.
With this patch, the backend sends the playbackHitPosition(segmentOffset=n, inputOffset=m)
message when backend is about to dispatch input m, but has not yet begun to do so. Thus, any
subsequent page execution events (profiling, debugger pauses, etc) until the next
playbackHitPosition are caused by input m's being dispatched.
- inspector/protocol/Replay.json: Clarify the message's semantics.
- replay/ReplayController.cpp:
(WebCore::ReplayController::willDispatchInput):
(WebCore::ReplayController::didDispatchInput):
Source/WebInspectorUI:
Pausing playback from the UI was broken because of a typo. Fix this, and rename
stopPlayback to cancelPlayback.
- UserInterface/Controllers/ReplayManager.js:
(WebInspector.ReplayManager.prototype.switchSession.if):
- 1:27 PM Changeset in webkit [174036] by
-
- 8 edits1 add in trunk
Disable function.arguments
https://bugs.webkit.org/show_bug.cgi?id=137167
Source/JavaScriptCore:
Rubber stamped by Geoffrey Garen.
Add an option to disable function.arguments. Add a test for disabling it.
Disabling function.arguments means that it returns an Arguments object that claims that
there were zero arguments. All other Arguments functionality still works, so any code
that tries to inspect this object will still think that it is looking at a perfectly
valid Arguments object.
This also makes function.arguments disabled by default. Note that the RJST harness will
enable them by default, to continue to get test coverage for the code that implements
the feature.
We will rip out that code once we're confident that it's really safe to remove this
feature. Only once we rip out that support will we be able to do optimizations to
leverage the lack of this feature. It's important to keep the support code, and the test
infrastructure, in place before we are confident. The logic to keep this working touches
the entire compiler and a large chunk of the runtime, so reimplementing it - or even
merging it back in - would be a nightmare. That's also basically the reason why we want
to rip it out if at all possible. It's a lot of terrible code.
- interpreter/StackVisitor.cpp:
(JSC::StackVisitor::Frame::createArguments):
- runtime/Arguments.h:
(JSC::Arguments::create):
(JSC::Arguments::finishCreation):
- runtime/Options.h:
- tests/stress/disable-function-dot-arguments.js: Added.
(foo):
(bar):
Tools:
Rubber stamped by Geoffrey Garen
Enable the feature by default during tests.
- Scripts/run-jsc-stress-tests:
LayoutTests:
Rubber stamped by Geoffrey Garen.
Don't remove the tests for this, yet - but mark them as failing. We will rebase these,
or remove them entirely, once we know that it's safe to rip out this feature entirely.
- 11:49 AM Changeset in webkit [174035] by
-
- 3 edits8 adds in trunk
Chaining multiple :nth-child() does not work properly
https://bugs.webkit.org/show_bug.cgi?id=137032
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-09-27
Reviewed by Gavin Barraclough.
Source/WebCore:
When multiple :nth-child() are chained, the evaluation of each "An+B" could depend on
the execution of the previous "An+B". The reason is that the register holding the position
of the current element could be modified by the evaluation of "An+B".
There are two cases in which the register was used as the destination of an operation:
1) When A and B are positive, the counter would be the destination of "counter - B".
2) When A is not 1 or 2, the modulo operation was not preserving the input register.
For (1), we a copy of the counter in that case of generateElementIsNthChild().
For (2), we also preserve a copy of the input if it is used by the operation. In this case,
if the input register is one of the argument we need for idiv, we preserve it on the stack
or in a register depending on what is available.
This increases the register requirements by 2 in the worst case on x86. The extra registers
can push generateElementIsNthChild() above the 4 available registers. To accomodate for that,
minimumRegisterRequirements() reserve more registers on x86.
The extra register pressure has strictly no effect on performance, x86_64 has 9 registers
available without pushing anything. The extra allocation is only necessary for debugging.
Tests: fast/selectors/nth-child-basics.html
fast/selectors/nth-child-chained.html
fast/selectors/nth-child-of-basics-2.html
fast/selectors/nth-child-of-chained.html
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::minimumRegisterRequirements):
(WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
LayoutTests:
- fast/selectors/nth-child-chained-expected.txt: Added.
- fast/selectors/nth-child-chained.html: Added.
- fast/selectors/nth-child-of-chained-expected.txt: Added.
- fast/selectors/nth-child-of-chained.html: Added.
Those new tests target specifically the register reuse bug fixed by the patch.
- fast/selectors/nth-child-basics-expected.txt: Added.
- fast/selectors/nth-child-basics.html: Added.
- fast/selectors/nth-child-of-basics-2-expected.txt: Added.
- fast/selectors/nth-child-of-basics-2.html: Added.
Those tests add coverage for the examples used by http://nthmaster.com. This is to increase
the general test coverage.
I added nth-child-of-basics-2.html instead of extending nth-child-of-basics.html because
of the speed issue in debug without CSS JIT (otherwise the test can timeout).
- 12:13 AM Changeset in webkit [174034] by
-
- 5 edits in trunk
WebKit top of tree sources won't build in 10.9 w/ Xcode 6.0.1
https://bugs.webkit.org/show_bug.cgi?id=137053
Reviewed by Mark Rowe.
.:
- WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme:
In the build pre-action, pass the --wksi and --llvm options to
copy-webkitlibraries-to-product-directory.
- WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme: Ditto.
Websites/webkit.org:
- building/build.html: Removed instructions how to work around this bug, now that it’s fixed.
Sep 26, 2014:
- 10:18 PM Changeset in webkit [174033] by
-
- 2 edits in trunk/Websites/webkit.org
WebKit top of tree sources won't build in 10.9 w/ Xcode 6.0.1
https://bugs.webkit.org/show_bug.cgi?id=137053
Patch by David Gatwood. Reviewed, tweaked and landed by Alexey Proskuryakov.
Explain that to build from Xcode, one needs to build from command line once first.
Removed a Windows section that explained how to launch cygwin shell, which was
silly given that we then link to a long document explaining further steps.
- building/build.html:
- 8:52 PM Changeset in webkit [174032] by
-
- 2 edits in trunk/LayoutTests
Mark fast/selectors/nth-child-of-basics as Slow
https://bugs.webkit.org/show_bug.cgi?id=137149
Reviewed by Benjamin Poulain.
Since there are many tests in fast/selectors/nth-child-of-basics,
it takes long time and sometime LayoutTests timeout[1].
[1]: https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release%20(Tests)/builds/3042
Mark fast/selectors/nth-child-of-basics as Slow.
- 6:32 PM Changeset in webkit [174031] by
-
- 97 edits in trunk/Source
Stop using legacy NODE_TYPE_CASTS() macro for HTML Elements
https://bugs.webkit.org/show_bug.cgi?id=137137
Reviewed by Benjamin Poulain.
Source/WebCore:
Stop using legacy NODE_TYPE_CASTS() macro for HTML Elements and use the
new SPECIALIZE_TYPE_TRAITS_*() macro instead so that is<>() /
downcast<>() works for those types.
No new tests, no behavior change.
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::labelForElement):
(WebCore::AccessibilityNodeObject::text):
- accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::isDataTable):
- accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetName):
(webkitAccessibleGetDescription):
- bindings/gobject/WebKitDOMPrivate.cpp:
(WebKit::wrap):
- bindings/js/JSElementCustom.cpp:
(WebCore::toJSNewlyCreated):
- bindings/js/JSNodeCustom.cpp:
(WebCore::createWrapperInline):
- bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginInstance):
(WebCore::pluginScriptObjectFromPluginViewBase):
(WebCore::pluginScriptObject):
(WebCore::pluginElementCustomPut):
(WebCore::isPluginElement): Deleted.
- bindings/objc/DOM.mm:
(kitClass):
- css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::matchAllRules):
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
- css/StyleResolver.cpp:
(WebCore::StyleResolver::locateCousinList):
(WebCore::elementHasDirectionAuto):
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::makeContextStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
(WebCore::SelectorCompiler::makeElementStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
(WebCore::SelectorCompiler::isPlaceholderShown):
- dom/ContainerNodeAlgorithms.cpp:
(WebCore::assertConnectedSubrameCountIsConsistent):
(WebCore::collectFrameOwners):
(WebCore::disconnectSubframes):
- dom/Document.cpp:
(WebCore::Document::adoptNode):
(WebCore::Document::setBody):
(WebCore::Document::iconURLs):
(WebCore::Document::dispatchFullScreenChangeOrErrorEvent):
(WebCore::Document::updateHoverActiveState):
- dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
- dom/Range.cpp:
(WebCore::Range::createContextualFragment):
- dom/make_names.pl:
(printTypeHelpers):
- editing/ApplyStyleCommand.cpp:
(WebCore::isLegacyAppleStyleSpan):
(WebCore::isStyleSpanOrSpanWithOnlyStyleAttribute):
(WebCore::isSpanWithoutAttributesOrUnstyledStyleSpan):
(WebCore::isEmptyFontTag):
(WebCore::ApplyStyleCommand::applyBlockStyle):
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
(WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
(WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
(WebCore::ApplyStyleCommand::removeConflictingInlineStyleFromRun):
(WebCore::ApplyStyleCommand::highestAncestorWithConflictingInlineStyle):
(WebCore::ApplyStyleCommand::applyInlineStyleToPushDown):
(WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
(WebCore::ApplyStyleCommand::removeInlineStyle):
(WebCore::ApplyStyleCommand::shouldSplitTextElement):
(WebCore::ApplyStyleCommand::applyInlineStyleChange):
- editing/DeleteButtonController.cpp:
(WebCore::enclosingDeletableElement):
- editing/Editor.cpp:
(WebCore::Editor::selectionForCommand):
(WebCore::Editor::setBaseWritingDirection):
(WebCore::findFirstMarkable):
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::selectAll):
(WebCore::scanForForm):
- editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::mergeWithNeighboringLists):
- editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::elementCannotHaveEndTag):
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
(WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
(WebCore::ReplaceSelectionCommand::handleStyleSpans):
(WebCore::ReplaceSelectionCommand::doApply):
(WebCore::ReplaceSelectionCommand::insertAsListItems):
- editing/TextIterator.cpp:
(WebCore::shouldEmitNewlinesBeforeAndAfterNode):
(WebCore::shouldEmitExtraNewlineForNode):
- editing/cocoa/HTMLConverter.mm:
(HTMLConverter::_addTableCellForElement):
(HTMLConverter::_processElement):
- editing/htmlediting.cpp:
(WebCore::enclosingList):
(WebCore::embeddedSublist):
(WebCore::appendedSublist):
- editing/ios/EditorIOS.mm:
(WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
- editing/mac/EditorMac.mm:
(WebCore::maybeCopyNodeAttributesToFragment):
- editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::appendElement):
- html/BaseChooserOnlyDateAndTimeInputType.cpp:
(WebCore::BaseChooserOnlyDateAndTimeInputType::updateAppearance):
- html/ColorInputType.cpp:
(WebCore::ColorInputType::shadowColorSwatch):
- html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::insertedInto):
- html/HTMLCollection.cpp:
(WebCore::HTMLCollection::namedItem):
(WebCore::HTMLCollection::updateNamedElementCache):
- html/HTMLElement.cpp:
(WebCore::HTMLElement::matchesReadWritePseudoClass):
(WebCore::HTMLElement::setOuterHTML):
(WebCore::elementAffectsDirectionality):
(WebCore::HTMLElement::directionality):
(WebCore::HTMLElement::dirAttributeChanged):
- html/HTMLElement.h:
(WebCore::isHTMLElement):
(WebCore::Node::hasTagName):
- html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::getNamedElements):
- html/HTMLFrameElementBase.h:
(WebCore::isHTMLFrameElementBase):
- html/HTMLFrameOwnerElement.h:
(WebCore::isHTMLFrameOwnerElement):
- html/HTMLMediaElement.h:
(WebCore::isHTMLMediaElement):
- html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::isDisabledFormControl):
- html/HTMLPlugInElement.h:
(WebCore::isHTMLPlugInElement):
- html/HTMLPlugInImageElement.cpp:
(WebCore::addPlugInsFromNodeListMatchingPlugInOrigin):
- html/HTMLPlugInImageElement.h:
(WebCore::isHTMLPlugInImageElement):
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setOption):
(WebCore::HTMLSelectElement::setLength):
(WebCore::HTMLSelectElement::recalcListItems):
- html/HTMLSourceElement.cpp:
(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
- html/HTMLTableCellElement.cpp:
(WebCore::HTMLTableCellElement::cellAbove):
- html/HTMLTableCellElement.h:
(WebCore::isHTMLTableCellElement):
- html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::tHead):
(WebCore::HTMLTableElement::tFoot):
(WebCore::HTMLTableElement::lastBody):
- html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::rowIndex):
- html/HTMLTableRowsCollection.cpp:
(WebCore::isInSection):
- html/HTMLTableSectionElement.h:
(WebCore::isHTMLTableSectionElement):
- html/HTMLTagNames.in:
- html/HTMLTextFormControlElement.cpp:
(WebCore::enclosingTextFormControl):
- html/HTMLTextFormControlElement.h:
(WebCore::isHTMLTextFormControlElement):
- html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::removedFrom):
(WebCore::HTMLTrackElement::mediaElement):
- html/LabelableElement.h:
(WebCore::isLabelableElement):
- html/RangeInputType.cpp:
(WebCore::RangeInputType::sliderTrackElement):
- html/shadow/MediaControlElementTypes.cpp:
(WebCore::parentMediaElement):
(WebCore::mediaControlElementType):
- html/shadow/TextControlInnerElements.h:
(WebCore::isTextControlInnerTextElement):
- inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForNode):
- inspector/InspectorNodeFinder.cpp:
(WebCore::InspectorNodeFinder::searchUsingDOMTreeTraversal):
- loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::loadSubframe):
- loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create):
- mathml/MathMLElement.cpp:
(WebCore::MathMLElement::isPhrasingContent):
(WebCore::MathMLElement::isFlowContent):
(WebCore::MathMLElement::childShouldCreateRenderer):
- mathml/mathtags.in:
- page/DragController.cpp:
(WebCore::DragController::canProcessDrag):
- page/EventHandler.cpp:
(WebCore::targetIsFrame):
- page/FocusController.cpp:
(WebCore::hasCustomFocusLogic):
(WebCore::FocusController::findFocusableElementDescendingDownIntoFrameDocument):
(WebCore::FocusController::advanceFocusInDocumentOrder):
- page/Frame.cpp:
(WebCore::Frame::searchForLabelsBeforeElement):
- page/FrameView.cpp:
(WebCore::FrameView::init):
(WebCore::FrameView::addEmbeddedObjectToUpdate):
(WebCore::FrameView::updateEmbeddedObject):
- page/PageSerializer.cpp:
(WebCore::isCharsetSpecifyingNode):
(WebCore::SerializerMarkupAccumulator::appendCustomAttributes):
- page/SpatialNavigation.cpp:
(WebCore::frameOwnerElement):
- rendering/HitTestResult.cpp:
(WebCore::HitTestResult::absolutePDFURL):
(WebCore::HitTestResult::mediaElement):
- rendering/RenderBlockFlow.cpp:
(WebCore::resizeTextPermitted):
- rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::paintContents):
(WebCore::RenderEmbeddedObject::layout):
(WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::updateSnapOffsets):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::isRestartedPlugin):
- rendering/RenderMedia.h:
(WebCore::RenderMedia::mediaElement):
- rendering/RenderObject.cpp:
(WebCore::RenderObject::offsetParent):
- rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::plugInImageElement):
- rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::parseColSpanFromDOM):
(WebCore::RenderTableCell::parseRowSpanFromDOM):
- rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::textFormControlElement):
- rendering/RenderThemeGtk.cpp:
(WebCore::getMediaElementFromRenderObject):
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):
- rendering/RenderTreeAsText.cpp:
(WebCore::isEmptyOrUnstyledAppleStyleSpan):
- rendering/RenderWidget.h:
(WebCore::RenderWidget::frameOwnerElement):
- testing/Internals.cpp:
(WebCore::Internals::visiblePlaceholder):
(WebCore::Internals::simulateAudioInterruption):
(WebCore::Internals::isPluginSnapshotted):
- xml/XPathStep.cpp:
(WebCore::XPath::nodeMatchesBasicTest):
Source/WebKit/win:
Use is<>() / downcast<>() where appropriate.
- DOMHTMLClasses.cpp:
(DOMHTMLElement::idName):
(DOMHTMLElement::innerText):
(DOMHTMLElement::setInnerText):
Source/WebKit2:
Use is<>() / downcast<>() where appropriate.
- WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
(WebKit::PDFPluginTextAnnotation::value):
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::initializePlugin):
(WebKit::PluginView::pluginSnapshotTimerFired):
(WebKit::PluginView::pluginDidReceiveUserInteraction):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::performActionOnElement):
- 4:55 PM Changeset in webkit [174030] by
-
- 2 edits in trunk/LayoutTests
[Win] Unreviewed. More gardening on Windows tests.
- platform/win/TestExpectations:
Enable some css3 conditional tests that are now passing.
Disable some failing hidpi tests since we don’t have hidpi test support on Windows.
- 4:38 PM Changeset in webkit [174029] by
-
- 5 edits in trunk/Source/WebKit2
Add API for loading local files
https://bugs.webkit.org/show_bug.cgi?id=137153
rdar://problem/17761459
Reviewed by Oliver Hunt.
- UIProcess/API/Cocoa/WKWebView.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView loadFileURL:allowingReadAccessToURL:]):
Load the file, wrapping the navigation ID in a WKNavigation using createLoadRequestNavigation.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadFile):
- UIProcess/WebPageProxy.h:
Return the navigation ID (or 0 if the navigation failed).
- 4:25 PM Changeset in webkit [174028] by
-
- 19 edits in trunk/Source
Web Inspector: Automatic Inspection should continue once all breakpoints are loaded
https://bugs.webkit.org/show_bug.cgi?id=137038
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-09-26
Reviewed by Timothy Hatcher.
Source/JavaScriptCore:
Add a new protocol command "Inspector.initialized" that signifies to the backend
when the frontend has sent all its initialization messages to the backend. This
can include information like breakpoints, which we would want to have loaded
before any JavaScript evaluates in the context.
- inspector/protocol/InspectorDomain.json:
New protocol command, Inspector.initialized.
- inspector/agents/InspectorAgent.h:
- inspector/agents/InspectorAgent.cpp:
(Inspector::InspectorAgent::InspectorAgent):
(Inspector::InspectorAgent::initialized):
Tell the InspectorEnvironment (the Controller) the frontend has initialized.
- inspector/InspectorEnvironment.h:
Abstract virtual method to handle frontend initialization. To be
implemented by all of the InspectorControllers.
- inspector/JSGlobalObjectInspectorController.h:
- inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
(Inspector::JSGlobalObjectInspectorController::connectFrontend):
(Inspector::JSGlobalObjectInspectorController::disconnectFrontend):
(Inspector::JSGlobalObjectInspectorController::frontendInitialized):
When a frontend is initialized, if it was automatic inspection unpause the debuggable.
- inspector/remote/RemoteInspectorDebuggable.cpp:
(Inspector::RemoteInspectorDebuggable::unpauseForInitializedInspector):
Complete setup for this debuggable.
- inspector/remote/RemoteInspectorDebuggable.h:
- inspector/remote/RemoteInspectorDebuggableConnection.mm:
(Inspector::RemoteInspectorDebuggableConnection::setup):
Move the setup complete to later, when the frontend sends an "initialized" message.
- inspector/remote/RemoteInspector.h:
- inspector/remote/RemoteInspector.mm:
(Inspector::RemoteInspector::updateDebuggableAutomaticInspectCandidate):
Provide a longer timeout now that the frontend must send messages after the connection
has established. The longest I have seen in 600ms, but the average tends to be 200ms.
So bump the timeout to 800ms for a buffer.
(Inspector::RemoteInspector::setupSucceeded): Deleted.
(Inspector::RemoteInspector::setupCompleted):
Rename, as this happens at a slightly different time.
Source/WebCore:
Handle frontend initialization messages even though pages cannot
be automatically inspected yet.
- inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::disconnectFrontend):
(WebCore::InspectorController::frontendInitialized):
- inspector/InspectorController.h:
- inspector/WorkerInspectorController.h:
- page/Page.h:
(WebCore::Page::inspectorDebuggable):
Source/WebInspectorUI:
- UserInterface/Base/Main.js:
Send the initialized message after we have sent all other setup messages,
such as enabling features and setting breakpoints.
- 4:18 PM Changeset in webkit [174027] by
-
- 2 edits in trunk/Tools
Many platform/mac-wk2/tiled-drawing/ tests fail when run on a retina device
https://bugs.webkit.org/show_bug.cgi?id=137089
Reviewed by Tim Horton.
This is a little sneaky since updateWindowScaleForTest() should ensure that these
tests run at 1x, but that code does not seem to execute at the right time for
these tests, so if we just ensure we start out at 1x, that appears to fix these
tests and does not break the HiDPI tests either.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::createWebViewWithOptions):
- 3:54 PM Changeset in webkit [174026] by
-
- 2 edits in trunk/Tools
[Windows] Decrease default number of child processes used by Windows.
- Scripts/webkitpy/port/win.py:
(WinPort.default_child_processes):
Having too many seems to cause many tests to crash or timeout.
We may even need to make it have only 1 child process if we’re still seeing problems after this.
- 3:53 PM Changeset in webkit [174025] by
-
- 4 edits in trunk/Source/JavaScriptCore
DFG shouldn't insert store barriers when it has it on good authority that we're not storing a cell
https://bugs.webkit.org/show_bug.cgi?id=137161
Reviewed by Mark Hahnenberg.
This looks like a 1% Octane speed-up.
- bytecode/SpeculatedType.h:
(JSC::isNotCellSpeculation):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::insertStoreBarrier):
(JSC::DFG::FixupPhase::insertCheck):
- dfg/DFGNode.h:
(JSC::DFG::Node::shouldSpeculateNotCell):
- 3:17 PM Changeset in webkit [174024] by
-
- 7 edits5 deletes in tags/Safari-601.1.1
Roll out r172794. <rdar://problem/18447606>
- 3:05 PM Changeset in webkit [174023] by
-
- 2 edits in tags/Safari-601.1.1/Source/WebCore
Merged r173981. <rdar://problem/18447820>
- 2:57 PM Changeset in webkit [174022] by
-
- 5 edits in trunk/Source
Versioning.
- 2:53 PM Changeset in webkit [174021] by
-
- 1 copy in tags/Safari-601.1.1
New tag.
- 2:41 PM Changeset in webkit [174020] by
-
- 2 edits in trunk/LayoutTests
[Mac] Some inspector tests time out following r173992.
https://bugs.webkit.org/show_bug.cgi?id=137157
- platform/mac/TestExpectations:
- 2:39 PM Changeset in webkit [174019] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Type Token View shows type information on hover when it shouldn't
https://bugs.webkit.org/show_bug.cgi?id=137152
Reviewed by Brian J. Burg.
TypeTokenView should only show type information when there is
more than one primitive type or more than zero objects types.
This fixes a bug in checking the length of object types.
- UserInterface/Views/TypeTokenView.js:
(WebInspector.TypeTokenView.prototype._shouldShowPopover):
- 2:05 PM Changeset in webkit [174018] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r173988): Fix unused variable warning in PDFDocumentImage.cpp
Fixes the following build failure in release builds:
WebCore/platform/graphics/cg/PDFDocumentImage.cpp:230:12: error: unused variable 'pageCount' [-Werror,-Wunused-variable]
- platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::computeBoundsForCurrentPage): Change
ASSERT() to call pageCount().
- 12:02 PM Changeset in webkit [174017] by
-
- 2 edits in trunk/Tools
Mac EWS bots do not keep logs as promised
https://bugs.webkit.org/show_bug.cgi?id=137151
Reviewed by Ryosuke Niwa.
- EWSTools/start-queue-mac.sh: Actually keep the logs for 14 days.
- 11:51 AM Changeset in webkit [174016] by
-
- 2 edits in trunk/Source/WebKit2
Add WKInspector back function stubs that went missing from r173929.
My changes to WKDeprecatedFunctions.cpp got lost in the shuffle.
- Shared/API/c/WKDeprecatedFunctions.cpp:
(WKInspectorIsDebuggingJavaScript):
(WKInspectorToggleJavaScriptDebugging):
(WKInspectorIsProfilingJavaScript):
(WKInspectorToggleJavaScriptProfiling):
- 11:49 AM Changeset in webkit [174015] by
-
- 7 edits1 move2 deletes in trunk/Tools
Get rid of webkit-queues dashboard
https://bugs.webkit.org/show_bug.cgi?id=137141
Reviewed by Ryosuke Niwa.
- QueueStatusServer/app.yaml: Updated version.
- QueueStatusServer/templates/dashboard.html: Removed.
- QueueStatusServer/handlers/dashboard.py: Removed.
- QueueStatusServer/main.py:
Kill it!
- QueueStatusServer/stylesheets/common.css: Copied from Tools/QueueStatusServer/stylesheets/dashboard.css.
(.status-cell): Deleted.
(.status-cell:hover): Deleted.
(.status-cell.pass): Deleted.
(.status-cell.fail): Deleted.
(.status-cell.pending): Deleted.
(.status-cell.error): Deleted.
- QueueStatusServer/stylesheets/dashboard.css: Removed.
- QueueStatusServer/templates/activebots.html:
- QueueStatusServer/templates/patch.html:
- QueueStatusServer/templates/queuestatus.html:
- QueueStatusServer/templates/recentstatus.html:
Renamed dashboard.css to common.css, and removed dashboard-only rules.
- 11:26 AM Changeset in webkit [174014] by
-
- 2 edits in trunk/Source/WebCore
StorageTracker::deleteOrigin being called off the main thread (ASSERTs in inspector/test-harness-trivially-works.html test)
https://bugs.webkit.org/show_bug.cgi?id=129642
Apply post-review comments from Alexey Proskuryakov.
- storage/StorageAreaSync.cpp:
(WebCore::StorageAreaSync::deleteEmptyDatabase): Make a thread-safe isolated copy of the string.
- 10:50 AM Changeset in webkit [174013] by
-
- 3 edits in trunk/Source/WebKit2
REGRESSION(r173929): Web inspector doesn't work after r173929 when INSPECTOR_SERVER is enabled
https://bugs.webkit.org/show_bug.cgi?id=137150
Reviewed by Timothy Hatcher.
The inspector doesn't show any information about the inspected
page because it's sending messages to a remote frontend that is
not running.
- WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::WebInspector): Initialize m_remoteFrontendConnected.
(WebKit::WebInspector::sendMessageToFrontend): Send
SendMessageToRemoteFrontend message to the UI process when remote
frontend is connected, or SendMessageToFrontend message to
WebInspectorUI otherwise.
(WebKit::WebInspector::remoteFrontendConnected): Set m_remoteFrontendConnected to true.
(WebKit::WebInspector::remoteFrontendDisconnected): Set m_remoteFrontendConnected to false.
- WebProcess/WebPage/WebInspector.h:
- 10:49 AM Changeset in webkit [174012] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix typo in YARR at BOL check
https://bugs.webkit.org/show_bug.cgi?id=137144
Reviewed by Darin Adler.
- yarr/YarrPattern.cpp: replace bitwise and operator by logical and
(JSC::Yarr::YarrPatternConstructor::assertionBOL):
- 10:18 AM Changeset in webkit [174011] by
-
- 2 edits in trunk/Source/WebCore
SVG -> OTF converter bug gardening
https://bugs.webkit.org/show_bug.cgi?id=137088
Reviewed by Darin Adler.
This test fixes some (but not all) of the svg/ layout tests that never worked with the
SVG -> OTF font converter. The actual list of tests this fixes is shown below. I will be
filing bugs for the remaining issues along with the relevant tests that those issues
cause to fail.
Tests: svg/W3C-SVG-1.1/fonts-elem-05-t.svg
svg/W3C-SVG-1.1/fonts-kern-01-t.svg
svg/custom/glyph-setting-d-attribute.svg
svg/custom/scrolling-embedded-svg-file-image-repaint-problem.html
svg/custom/skip-underline-missing-glyph.html
svg/custom/svg-fonts-fallback.xhtml
svg/custom/svg-fonts-in-text-controls.html
- svg/SVGToOTFFontConversion.cpp:
(WebCore::SVGToOTFFontConverter::appendHEADTable): We use the font's minimum and maximum
bounding box information to size <textarea>s and <input>s.
(WebCore::SVGToOTFFontConverter::addCodepointRanges): Codepoint ranges are closed.
(WebCore::SVGToOTFFontConverter::computeKerningData): Typo in appending glyphs to the
wrong set.
(WebCore::SVGToOTFFontConverter::transcodeGlyphPaths): Use the font's horizontal
origin if the glyph doesn't have one.
(WebCore::SVGToOTFFontConverter::convertSVGToOTFFont): r173852 implemented vhea, vmtx,
and kern.
(WebCore::transcodeGlyphPaths): Moved inside SVGToOTFFontConverter.
- 10:02 AM Changeset in webkit [174010] by
-
- 2 edits in trunk/Source/WebCore
iOS build fix following r173989.
- page/ios/FrameIOS.mm:
(WebCore::ancestorRespondingToClickEvents):
- 9:58 AM Changeset in webkit [174009] by
-
- 10 edits in trunk/Tools
Get rid of Retry status in webkit-queues
https://bugs.webkit.org/show_bug.cgi?id=137135
Reviewed by Ryosuke Niwa.
- QueueStatusServer/config/messages.py: Removed Retry.
- QueueStatusServer/handlers/releasepatch.py: This is now straightforward, as it
no longer needs to check the latest status. It just always both unlocks the patch
and removes it from WorkItems.
- QueueStatusServer/handlers/submittoews.py: (SubmitToEWS._should_add_to_ews_queue):
I don't understand why we even needed to check for retries here, but now that there
are no retries, that code can go to /dev/null.
- QueueStatusServer/loggers/recordpatchevent.py:
(RecordPatchEvent.started):
(RecordPatchEvent.retrying): Deleted.
Fixed retry counting, it should work for all queues now.
- QueueStatusServer/model/queuestatus.py:
(QueueStatus.is_retry_request): Deleted. These are no more.
- Scripts/webkitpy/common/net/statusserver_mock.py:
(MockStatusServer.release_lock):
- Scripts/webkitpy/tool/commands/queues_unittest.py:
Did whatever it took to keep passing the tests. The particular test doesn't seem
quite right, but whatever.
- Scripts/webkitpy/tool/commands/queues.py:
(CommitQueue.process_work_item): Instead of posting a retry status, just unlock
and let others pick up. Also, added explicit returns for clarity.
(AbstractPatchQueue._did_retry): Deleted.
- 9:57 AM Changeset in webkit [174008] by
-
- 2 edits in trunk/Source/WebKit2
[GTK] Don't include full path names in WebKitEnumTypes.h
https://bugs.webkit.org/show_bug.cgi?id=137148
Reviewed by Carlos Garcia Campos.
Replace @filename@ with @basename@ in the template, since we don't
want to include the full path name in the generated header.
- UIProcess/API/gtk/WebKitEnumTypes.h.template:
- 9:57 AM WebKitGTK/2.6.x edited by
- (diff)
- 7:27 AM Changeset in webkit [174007] by
-
- 2 edits in trunk/Source/WebCore
[CSS Grid Layout] Empty string case already covered by containesOnlyWhiteSpace.
https://bugs.webkit.org/show_bug.cgi?id=137146
Reviewed by Sergio Villar Senin.
When checking out for white-space only strings in the grid-template-areas
property values, it's not neccessary to check out for empty strings as
such case is already covered.
No new tests, already covered by fast/css-grid-layout/grid-template-areas-empty-string-crash.html.
- css/CSSParser.cpp:
(WebCore::CSSParser::parseGridTemplateAreasRow):
- 6:41 AM Changeset in webkit [174006] by
-
- 4 edits2 adds in trunk
[CSS Grid Layout] Fix the handling of infinity in track growth limits
https://bugs.webkit.org/show_bug.cgi?id=137019
Reviewed by Darin Adler.
Source/WebCore:
The growth limit of content sized tracks is initialized to
infinity which is internally represented as -1. We were not
specialcasing this situation, and thus, -1 was used in the
computations as any other value. This change makes the code aware
of the existence of infinites (like when sorting tracks by growth
potential or when initializing the track growth limits).
There was another bug related to infinities. The code that was
replacing a infinite growth limit by a finite one was not using
the proper indexes so the tracks that were being updated were the
wrong ones.
Test: fast/css-grid-layout/grid-content-sized-columns-resolution.html
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::sortByGridTrackGrowthPotential):
(WebCore::RenderGrid::distributeSpaceToTracks):
LayoutTests:
- fast/css-grid-layout/grid-content-sized-columns-resolution-expected.txt: Added.
- fast/css-grid-layout/grid-content-sized-columns-resolution.html: Added.
- fast/css-grid-layout/grid-item-order-in-content-sized-columns-resolution-expected.txt:
- 6:14 AM Changeset in webkit [174005] by
-
- 2 edits1 add in trunk/Tools
[EFL] Fix the gst-libav build on ARM Thumb2
https://bugs.webkit.org/show_bug.cgi?id=137022
Reviewed by Zoltan Herczeg.
- efl/jhbuild.modules:
- efl/patches/gst-libav.patch: Added.
- 5:16 AM Changeset in webkit [174004] by
-
- 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore
Unreviewed. Fix make distcheck.
- GNUmakefile.list.am: Add missing header file.
- 2:50 AM Changeset in webkit [174003] by
-
- 2 edits in releases/WebKitGTK/webkit-2.4
Merge r170997 - [GTK] Enable VIDEO_TRACK by default
https://bugs.webkit.org/show_bug.cgi?id=134801
Reviewed by Philippe Normand.
- Source/cmake/OptionsGTK.cmake:
- 1:39 AM Changeset in webkit [174002] by
-
- 3 edits6 adds in trunk
[GTK] Fix support for the initial-letter CSS property to first-letter
https://bugs.webkit.org/show_bug.cgi?id=137108
Patch by Lorenzo Tilve <ltilve@igalia.com> on 2014-09-26
Reviewed by Alejandro G. Castro.
Source/WebCore:
Add support for cap-height to the font system.
- platform/graphics/freetype/SimpleFontDataFreeType.cpp:
(WebCore::SimpleFontData::platformInit):
LayoutTests:
Add missing GTK test expectation files after http://webkit.org/b/136484
- platform/gtk/fast/css-generated-content/initial-letter-basic-expected.txt: Added.
- platform/gtk/fast/css-generated-content/initial-letter-border-padding-expected.txt: Added.
- platform/gtk/fast/css-generated-content/initial-letter-clearance-expected.txt: Added.
- platform/gtk/fast/css-generated-content/initial-letter-descender-expected.txt: Added.
- platform/gtk/fast/css-generated-content/initial-letter-raised-expected.txt: Added.
- platform/gtk/fast/css-generated-content/initial-letter-sunken-expected.txt: Added.
- 1:20 AM Changeset in webkit [174001] by
-
- 2 edits in trunk/Tools
[EFL] Bump up dependencies not to conflict with the GTK port.
https://bugs.webkit.org/show_bug.cgi?id=137143
Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-09-26
Reviewed by Gyuyoung Kim.
Tools/efl/install-dependencies and Tools/gtk/install-dependencies keep
installing and removing different versions of libgnutls-dev, thus
hindering the development for both ports on the same machine. GTK is
using the newer version of the package, now bumping up EFL to use the
same.
- efl/install-dependencies:
- 1:17 AM Changeset in webkit [174000] by
-
- 2 edits in releases/WebKitGTK/webkit-2.4
Merge r173999 - [GTK] Enable CSS_IMAGE_SET in production builds
https://bugs.webkit.org/show_bug.cgi?id=137142
Reviewed by Alejandro G. Castro.
This is required by the inspector to show some of the icons that
has a HiDPI variant.
- Source/cmake/OptionsGTK.cmake:
- 12:39 AM Changeset in webkit [173999] by
-
- 2 edits in trunk
[GTK] Enable CSS_IMAGE_SET in production builds
https://bugs.webkit.org/show_bug.cgi?id=137142
Reviewed by Alejandro G. Castro.
This is required by the inspector to show some of the icons that
has a HiDPI variant.
- Source/cmake/OptionsGTK.cmake:
- 12:32 AM Changeset in webkit [173998] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening after r173992. Skip inspector/timelines/.
- TestExpectations: mark inspector/timelines/ as Skip, since
it seems to be running into unexplained nondeterminism similar to
inspector/debugger/ tests. These should be investigated together.