Timeline



Aug 14, 2015:

10:51 PM Changeset in webkit [188509] by ap@apple.com
  • 23 edits in trunk/LayoutTests

Clean up js-test use in scroll-snap tests
https://bugs.webkit.org/show_bug.cgi?id=148046

Reviewed by Brent Fulgham.

  • tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe-expected.txt:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow-expected.txt:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders-expected.txt:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-expected.txt:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal-expected.txt:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical-expected.txt:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-expected.txt:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-expected.txt:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-stateless-expected.txt:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-stateless.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding-expected.txt:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated-expected.txt:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html:
10:44 PM Changeset in webkit [188508] by Chris Dumez
  • 31 edits
    4 adds in trunk/Source/WebCore

Refactor HTMLCollection to be as fast as CachedLiveNodeList
https://bugs.webkit.org/show_bug.cgi?id=147979

Reviewed by Ryosuke Niwa.

Refactor HTMLCollection to be as fast as CachedLiveNodeList. This is in
preparation of having getElementsByTagName*() / getElementsByClassName()
return an HTMLCollection instead of a NodeList, as per the
specification. Chrome and Firefox already match the specification in
this case.

Traversing an HTMLCollection was slow because of all the extra
branching it had compared to CachedLiveNodeList. To address the issue,
this patch introduces a new templated CachedHTMLCollection subclass,
which behaves in a similar way as CachedLiveNodeList. The 2 template
parameters are:

  1. The type of the subclass of CachedHTMLCollection, so we can call elementMatches() directly on the subclass, without needed any virtual function call or switch statement. This is the same approach as in CachedLiveNodeList.
  2. The type of tree traversal used (Descendants, ChildrenOnly, CustomForwardOnly). Unlike LiveNodeList, HTMLCollection needs to support these 3 types of tree traversal. These were causing extra branching for every item() call. We are now able to choose the right type of traversal for the CachedHTMLCollection at compile time.
  • WebCore.xcodeproj/project.pbxproj:

Add new files to the Project.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::children):
(WebCore::ContainerNode::cachedHTMLCollection): Deleted.

  • dom/ContainerNode.h:

Drop ContainerNode::ensureCachedHTMLCollection() and use
NodeListsNodeData::addCachedCollection() directly at call sites
instead. We need access to the CollectionType at build-time so
we can resolve the CollectionTraversalType parameter for the
GenericCachedHTMLCollection using CollectionTypeTraits.

  • dom/Document.cpp:
  • dom/Document.h:

Update ensureCachedCollection() so the CollectionType is now a template
parameter instead of a method argument. We need to know the
CollectionType at build time to construct the GenericCachedHTMLCollection.

  • dom/ElementChildIterator.h:

(WebCore::ElementChildIterator<ElementType>::operator):
(WebCore::ElementChildConstIterator<ElementType>::operator):
Add support for decrementing an ElementChildIterator, for consistency
with ElementDescendantIterator. We need this to support backward
traversal in CachedHTMLCollections that use the 'ChildrenOnly' type
of traversal.

  • dom/LiveNodeList.h:

(WebCore::CachedLiveNodeList<NodeListType>::collectionBegin):
(WebCore::CachedLiveNodeList<NodeListType>::collectionLast):
(WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseForward):
(WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseBackward):
Move traversal implementation to CollectionTraversal.h, so it can be
shared with achedHTMLCollection.h.

  • html/CachedHTMLCollection.h: Added.

(WebCore::traversalType>::CachedHTMLCollection):
(WebCore::traversalType>::~CachedHTMLCollection):
(WebCore::traversalType>::CachedHTMLCollection::memoryCost):
(WebCore::traversalType>::collectionCanTraverseBackward):
(WebCore::traversalType>::collectionTraverseForward):
(WebCore::traversalType>::collectionTraverseBackward):
(WebCore::traversalType>::willValidateIndexCache):
(WebCore::traversalType>::length):
(WebCore::traversalType>::item):
(WebCore::traversalType>::invalidateCache):
(WebCore::traversalType>::elementMatches):
(WebCore::nameShouldBeVisibleInDocumentAll):
(WebCore::traversalType>::namedItem):

  • html/CollectionTraversal.h: Added.

Add new template class that provide the collection traversal code
needed by CollectionIndexCache. It has template specializations for
all 3 types of traversal: Descendants, ChildrenOnly, and
CustomForwardOnly.

  • html/CollectionType.h:

Add CollectionTypeTraits traits so we can resolve the
CollectionTraversalType used by a specific CollectionType at
compile-time. This is needed for the second template parameter of
CachedHTMLCollection.

  • html/GenericCachedHTMLCollection.cpp: Added.

(WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches):

  • html/GenericCachedHTMLCollection.h: Added.

Add CachedHTMLCollection subclass is the generic one used for all
CollectionTypes that do not have their own subclass (e.g. NodeChildren).
This has an elementMatches() method with a switch() statement handling
all these CollectionTypes. Those are not normally not performance
sensitive.

  • html/HTMLAllCollection.cpp:

(WebCore::HTMLAllCollection::HTMLAllCollection):

  • html/HTMLAllCollection.h:

Subclass CachedHTMLCollection instead of HTMLCollection. Also provide
an elementMatches() method that simply returns true as we want to
match all elements.

  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::HTMLCollection):
Move CollectionIndexCache member to the subclass and drop the 2 other
members as they are replaced with the CollectionTraversalType template
parameter of CachedHTMLCollection.

(WebCore::HTMLCollection::~HTMLCollection):
Move Document::unregisterCollection() call to ~CachedHTMLCollection()
as we needed to check if the CollectionIndexCache was valid first.

(WebCore::HTMLCollection::updateNamedElementCache):
Move part of the implementation to the CachedHTMLCollection subclass
as it needs to know about the type of traversal and it needs to be
able to call elementMatches().

  • html/HTMLCollection.h:

(WebCore::HTMLCollection::rootNode):
Inline for performance reasons and consistency with CachedLiveNodeList.

(WebCore::HTMLCollection::memoryCost):
Make virtual and move part of the implementation to the
CachedHTMLCollection subclass to compute the cost of the
CollectionIndexCache.

(WebCore::HTMLCollection::invalidateCache):
Move part of the implementation to the subclass to invalidate the
CollectionIndexCache.

  • html/HTMLFieldSetElement.cpp:

(WebCore::HTMLFieldSetElement::elements):

  • html/HTMLFormControlsCollection.cpp:
  • html/HTMLFormControlsCollection.h:

Subclass CachedHTMLCollection instead of HTMLCollection.
customElementAfter() no longer needs to be virtual as it
is called directly by CachedHTMLCollection on the subclass.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::elements):

  • html/HTMLMapElement.cpp:

(WebCore::HTMLMapElement::areas):
Call NodeListsNodeData::addCachedCollection() directly.

  • html/HTMLNameCollection.cpp:
  • html/HTMLNameCollection.h:

Subclass CachedHTMLCollection instead of HTMLCollection.

  • html/HTMLOptionsCollection.cpp:
  • html/HTMLOptionsCollection.h:

Subclass CachedHTMLCollection instead of HTMLCollection.

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::selectedOptions):
(WebCore::HTMLSelectElement::options):

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::rows):
(WebCore::HTMLTableElement::tBodies):

  • html/HTMLTableRowElement.cpp:

(WebCore::HTMLTableRowElement::cells):
Call NodeListsNodeData::addCachedCollection() directly.

  • html/HTMLTableRowsCollection.cpp:
  • html/HTMLTableRowsCollection.h:

Subclass CachedHTMLCollection instead of HTMLCollection.
customElementAfter() no longer needs to be virtual as it
is called directly by CachedHTMLCollection on the subclass.

  • html/HTMLTableSectionElement.cpp:

(WebCore::HTMLTableSectionElement::rows):
Call NodeListsNodeData::addCachedCollection() directly.

10:00 PM Changeset in webkit [188507] by basile_clement@apple.com
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

Occasional failure in v8-v6/v8-raytrace.js.ftl-eager
https://bugs.webkit.org/show_bug.cgi?id=147165

Reviewed by Saam Barati.

The object allocation sinking phase was not properly checking that a
MultiGetByOffset was safe to lower before lowering it.
This makes it so that we only lower MultiGetByOffset if it only loads
from direct properties of the object, and considers it as an escape in
any other case (e.g. a load from the prototype).

It also ensure proper conversion of MultiGetByOffset into
CheckStructureImmediate when needed.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::checkStructure):

We were not compiling properly CheckStructure and
CheckStructureImmediate nodes with an empty StructureSet.

  • tests/stress/sink-multigetbyoffset.js: Regression test.
8:47 PM Changeset in webkit [188506] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: NavigationBar.updateLayoutSoon should use requestAnimationFrame
https://bugs.webkit.org/show_bug.cgi?id=148010

Reviewed by Brian Burg.

NavigationBar.updateLayoutSoon now uses requestAnimationFrame instead of setTimeout.

  • UserInterface/Views/NavigationBar.js:

(WebInspector.NavigationBar):
(WebInspector.NavigationBar.prototype.updateLayoutSoon.update):
(WebInspector.NavigationBar.prototype.updateLayoutSoon):
(WebInspector.NavigationBar.prototype.updateLayout):

8:24 PM Changeset in webkit [188505] by jhoneycutt@apple.com
  • 13 edits
    12 moves
    3 adds in trunk/LayoutTests

Rebase some WK2 test results to include the frame scroll pos. Move the
cross-platform test results to the WK1 directory.

  • platform/ios-simulator-wk1/fast/multicol/pagination/BottomToTop-bt-expected.txt: Renamed from LayoutTests/platform/ios-simulator/fast/multicol/pagination/BottomToTop-bt-expected.txt.
  • platform/ios-simulator-wk1/fast/multicol/pagination/BottomToTop-lr-expected.txt: Renamed from LayoutTests/platform/ios-simulator/fast/multicol/pagination/BottomToTop-lr-expected.txt.
  • platform/ios-simulator-wk1/fast/multicol/pagination/BottomToTop-rl-expected.txt: Renamed from LayoutTests/platform/ios-simulator/fast/multicol/pagination/BottomToTop-rl-expected.txt.
  • platform/ios-simulator-wk1/fast/multicol/pagination/BottomToTop-tb-expected.txt: Renamed from LayoutTests/platform/ios-simulator/fast/multicol/pagination/BottomToTop-tb-expected.txt.
  • platform/ios-simulator-wk1/fast/multicol/pagination/RightToLeft-bt-expected.txt: Renamed from LayoutTests/platform/ios-simulator/fast/multicol/pagination/RightToLeft-bt-expected.txt.
  • platform/ios-simulator-wk1/fast/multicol/pagination/RightToLeft-lr-expected.txt: Renamed from LayoutTests/platform/ios-simulator/fast/multicol/pagination/RightToLeft-lr-expected.txt.
  • platform/ios-simulator-wk1/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.txt: Renamed from LayoutTests/platform/ios-simulator/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.txt.
  • platform/ios-simulator-wk1/fast/multicol/pagination/RightToLeft-rl-expected.txt: Renamed from LayoutTests/platform/ios-simulator/fast/multicol/pagination/RightToLeft-rl-expected.txt.
  • platform/ios-simulator-wk1/fast/multicol/pagination/RightToLeft-tb-expected.txt: Renamed from LayoutTests/platform/ios-simulator/fast/multicol/pagination/RightToLeft-tb-expected.txt.
  • platform/ios-simulator-wk1/fast/multicol/vertical-rl/column-break-with-balancing-expected.txt: Renamed from LayoutTests/platform/ios-simulator/fast/multicol/vertical-rl/column-break-with-balancing-expected.txt.
  • platform/ios-simulator-wk1/fast/multicol/vertical-rl/column-rules-expected.txt: Renamed from LayoutTests/platform/ios-simulator/fast/multicol/vertical-rl/column-rules-expected.txt.
  • platform/ios-simulator-wk1/fast/multicol/vertical-rl/float-paginate-complex-expected.txt: Renamed from LayoutTests/platform/ios-simulator/fast/multicol/vertical-rl/float-paginate-complex-expected.txt.
  • platform/ios-simulator-wk2/fast/multicol/pagination/BottomToTop-bt-expected.txt:
  • platform/ios-simulator-wk2/fast/multicol/pagination/BottomToTop-lr-expected.txt:
  • platform/ios-simulator-wk2/fast/multicol/pagination/BottomToTop-rl-expected.txt:
  • platform/ios-simulator-wk2/fast/multicol/pagination/BottomToTop-tb-expected.txt:
  • platform/ios-simulator-wk2/fast/multicol/pagination/RightToLeft-bt-expected.txt:
  • platform/ios-simulator-wk2/fast/multicol/pagination/RightToLeft-lr-expected.txt:
  • platform/ios-simulator-wk2/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.txt:
  • platform/ios-simulator-wk2/fast/multicol/pagination/RightToLeft-rl-expected.txt:
  • platform/ios-simulator-wk2/fast/multicol/pagination/RightToLeft-tb-expected.txt:
  • platform/ios-simulator-wk2/fast/multicol/vertical-rl/column-break-with-balancing-expected.txt:
  • platform/ios-simulator-wk2/fast/multicol/vertical-rl/column-rules-expected.txt:
  • platform/ios-simulator-wk2/fast/multicol/vertical-rl/float-paginate-complex-expected.txt:
6:35 PM Changeset in webkit [188504] by jhoneycutt@apple.com
  • 3 edits in trunk/LayoutTests

iOS test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/js/dom/constructor-length-expected.txt:
6:07 PM Changeset in webkit [188503] by Devin Rousso
  • 5 edits
    2 adds in trunk/Source/WebInspectorUI

Web Inspector: Add VisualStyleDetailsPanel
https://bugs.webkit.org/show_bug.cgi?id=147570

Reviewed by Timothy Hatcher.

Added VisualStyleDetailsPanel and inclusions to forthcoming classes
that will be used in this visual sidebar panel.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Main.html:

Added files for all new classes used in the VisualStyleDetailsPanel.

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.js:

(WebInspector.CSSStyleDetailsSidebarPanel):

  • UserInterface/Views/DetailsSection.js:

(WebInspector.DetailsSection):
(WebInspector.DetailsSection.prototype.set collapsed):
(WebInspector.DetailsSection.prototype.get expandedByUser):
(WebInspector.DetailsSection.prototype._headerElementClicked):
Track whether or not the expanded state was caused by the user.

  • UserInterface/Views/VisualStyleDetailsPanel.css: Added.

(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .header):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .header > .visual-style-section-clear):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section:not(.modified) > .header > .visual-style-section-clear):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .header > span):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section.modified > .header > span::after):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row:last-child):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row.visual-style-separated-row):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row > .visual-style-property-container > .visual-style-property-title):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row > .visual-style-property-container:not(.layout-reversed):last-child):
(.sidebar > .panel.details.css-style .visual.disabled > .details-section:not(.visual-style-selector-section)):
(.sidebar > .panel.details.css-style .visual.disabled > .details-section:not(.visual-style-selector-section) input):

  • UserInterface/Views/VisualStyleDetailsPanel.js: Added.

(WebInspector.VisualStyleDetailsPanel):
(WebInspector.VisualStyleDetailsPanel.prototype.refresh):
(WebInspector.VisualStyleDetailsPanel.prototype._generateSection.replaceDashWithCapital):
(WebInspector.VisualStyleDetailsPanel.prototype._generateSection.createOptionsElement):
(WebInspector.VisualStyleDetailsPanel.prototype._generateSection):
(WebInspector.VisualStyleDetailsPanel.prototype._prepareForChange):
(WebInspector.VisualStyleDetailsPanel.prototype._updateSections):
(WebInspector.VisualStyleDetailsPanel.prototype._updateProperties):
(WebInspector.VisualStyleDetailsPanel.prototype._updateAutocompleteCompatiblePropertyEditor):
(WebInspector.VisualStyleDetailsPanel.prototype._sectionModified):
(WebInspector.VisualStyleDetailsPanel.prototype._clearModifiedSection):
(WebInspector.VisualStyleDetailsPanel.prototype.get _initialTextList):
(WebInspector.VisualStyleDetailsPanel.prototype._initialPropertyTextModified):
(WebInspector.VisualStyleDetailsPanel.prototype._populateSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateDisplaySection):
(WebInspector.VisualStyleDetailsPanel.prototype._generateMetricSectionRows):
(WebInspector.VisualStyleDetailsPanel.prototype._populatePositionSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateFloatSection):
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.onEditorMouseover):
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners.onEditorMouseout):
(WebInspector.VisualStyleDetailsPanel.prototype._addMetricsMouseListeners):
(WebInspector.VisualStyleDetailsPanel.prototype._populateDimensionsSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateMarginSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populatePaddingSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateFlexboxSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateTextStyleSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateFontSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateTextSpacingSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateTextShadowSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateBackgroundStyleSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateBorderSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateOutlineSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection.noRemainingTreeItems):
(WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection.selectedBoxShadowItemValueChanged):
(WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection.boxShadowItemSelected):
(WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection.noRemainingTreeItems):
(WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection.selectedtransitionItemValueChanged):
(WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection.transitionItemSelected):
(WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection):

5:58 PM Changeset in webkit [188502] by jhoneycutt@apple.com
  • 1 edit
    11 deletes in trunk/LayoutTests

iOS test gardening.

  • platform/ios-simulator-wk2/fast/ruby/bopomofo-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/ruby/bopomofo-letter-spacing-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/ruby/bopomofo-rl-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/text/international/plane2-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/text/international/synthesized-italic-vertical-latin-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/writing-mode/japanese-lr-text-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/writing-mode/japanese-rl-text-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/writing-mode/japanese-ruby-horizontal-bt-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/writing-mode/japanese-ruby-vertical-lr-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/writing-mode/japanese-ruby-vertical-rl-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/writing-mode/vertical-align-table-baseline-expected.txt: Removed.
5:51 PM Changeset in webkit [188501] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1-branch/Source

Versioning.

5:39 PM Changeset in webkit [188500] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.51

New tag.

5:14 PM Changeset in webkit [188499] by fpizlo@apple.com
  • 35 edits in trunk/Source

Use WTF::Lock and WTF::Condition instead of WTF::Mutex, WTF::ThreadCondition, std::mutex, and std::condition_variable
https://bugs.webkit.org/show_bug.cgi?id=147999

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • API/JSVirtualMachine.mm:

(initWrapperCache):
(+[JSVMWrapperCache addWrapper:forJSContextGroupRef:]):
(+[JSVMWrapperCache wrapperForJSContextGroupRef:]):
(wrapperCacheMutex): Deleted.

  • bytecode/SamplingTool.cpp:

(JSC::SamplingTool::doRun):
(JSC::SamplingTool::notifyOfScope):

  • bytecode/SamplingTool.h:
  • dfg/DFGThreadData.h:
  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::~Worklist):
(JSC::DFG::Worklist::isActiveForVM):
(JSC::DFG::Worklist::enqueue):
(JSC::DFG::Worklist::compilationState):
(JSC::DFG::Worklist::waitUntilAllPlansForVMAreReady):
(JSC::DFG::Worklist::removeAllReadyPlansForVM):
(JSC::DFG::Worklist::completeAllReadyPlansForVM):
(JSC::DFG::Worklist::visitWeakReferences):
(JSC::DFG::Worklist::removeDeadPlans):
(JSC::DFG::Worklist::queueLength):
(JSC::DFG::Worklist::dump):
(JSC::DFG::Worklist::runThread):

  • dfg/DFGWorklist.h:
  • disassembler/Disassembler.cpp:
  • heap/CopiedSpace.cpp:

(JSC::CopiedSpace::doneFillingBlock):
(JSC::CopiedSpace::doneCopying):

  • heap/CopiedSpace.h:
  • heap/CopiedSpaceInlines.h:

(JSC::CopiedSpace::recycleBorrowedBlock):
(JSC::CopiedSpace::allocateBlockForCopyingPhase):

  • heap/GCThread.cpp:

(JSC::GCThread::waitForNextPhase):
(JSC::GCThread::gcThreadMain):

  • heap/GCThreadSharedData.cpp:

(JSC::GCThreadSharedData::GCThreadSharedData):
(JSC::GCThreadSharedData::~GCThreadSharedData):
(JSC::GCThreadSharedData::startNextPhase):
(JSC::GCThreadSharedData::endCurrentPhase):
(JSC::GCThreadSharedData::didStartMarking):
(JSC::GCThreadSharedData::didFinishMarking):

  • heap/GCThreadSharedData.h:
  • heap/HeapTimer.h:
  • heap/MachineStackMarker.cpp:

(JSC::ActiveMachineThreadsManager::Locker::Locker):
(JSC::ActiveMachineThreadsManager::add):
(JSC::ActiveMachineThreadsManager::remove):
(JSC::ActiveMachineThreadsManager::ActiveMachineThreadsManager):
(JSC::MachineThreads::~MachineThreads):
(JSC::MachineThreads::addCurrentThread):
(JSC::MachineThreads::removeThreadIfFound):
(JSC::MachineThreads::tryCopyOtherThreadStack):
(JSC::MachineThreads::tryCopyOtherThreadStacks):
(JSC::MachineThreads::gatherConservativeRoots):

  • heap/MachineStackMarker.h:
  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::donateKnownParallel):
(JSC::SlotVisitor::drain):
(JSC::SlotVisitor::drainFromShared):
(JSC::SlotVisitor::mergeOpaqueRoots):

  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::containsOpaqueRootTriState):

  • inspector/remote/RemoteInspectorDebuggableConnection.h:
  • inspector/remote/RemoteInspectorDebuggableConnection.mm:

(Inspector::RemoteInspectorHandleRunSourceGlobal):
(Inspector::RemoteInspectorQueueTaskOnGlobalQueue):
(Inspector::RemoteInspectorInitializeGlobalQueue):
(Inspector::RemoteInspectorHandleRunSourceWithInfo):
(Inspector::RemoteInspectorDebuggableConnection::setup):
(Inspector::RemoteInspectorDebuggableConnection::closeFromDebuggable):
(Inspector::RemoteInspectorDebuggableConnection::close):
(Inspector::RemoteInspectorDebuggableConnection::sendMessageToBackend):
(Inspector::RemoteInspectorDebuggableConnection::queueTaskOnPrivateRunLoop):

  • interpreter/JSStack.cpp:

(JSC::JSStack::JSStack):
(JSC::JSStack::releaseExcessCapacity):
(JSC::JSStack::addToCommittedByteCount):
(JSC::JSStack::committedByteCount):
(JSC::stackStatisticsMutex): Deleted.
(JSC::JSStack::initializeThreading): Deleted.

  • interpreter/JSStack.h:

(JSC::JSStack::gatherConservativeRoots):
(JSC::JSStack::sanitizeStack):
(JSC::JSStack::size):
(JSC::JSStack::initializeThreading): Deleted.

  • jit/ExecutableAllocator.cpp:

(JSC::DemandExecutableAllocator::DemandExecutableAllocator):
(JSC::DemandExecutableAllocator::~DemandExecutableAllocator):
(JSC::DemandExecutableAllocator::bytesAllocatedByAllAllocators):
(JSC::DemandExecutableAllocator::bytesCommittedByAllocactors):
(JSC::DemandExecutableAllocator::dumpProfileFromAllAllocators):
(JSC::DemandExecutableAllocator::allocators):
(JSC::DemandExecutableAllocator::allocatorsMutex):

  • jit/JITThunks.cpp:

(JSC::JITThunks::ctiStub):

  • jit/JITThunks.h:
  • profiler/ProfilerDatabase.cpp:

(JSC::Profiler::Database::ensureBytecodesFor):
(JSC::Profiler::Database::notifyDestruction):

  • profiler/ProfilerDatabase.h:
  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

  • runtime/JSLock.cpp:

(JSC::GlobalJSLock::GlobalJSLock):
(JSC::GlobalJSLock::~GlobalJSLock):
(JSC::JSLockHolder::JSLockHolder):
(JSC::GlobalJSLock::initialize): Deleted.

  • runtime/JSLock.h:

Source/WTF:

Relanding after fixing a deadlock on Linux.

  • wtf/Condition.h: "using WTF::Condition".
  • wtf/Lock.h:

(WTF::LockBase::lock):
(WTF::LockBase::tryLock): Add tryLock() because it turns out that we use it sometimes.
(WTF::LockBase::try_lock): unique_lock needs this.
(WTF::LockBase::unlock):

  • wtf/ParkingLot.cpp:

(WTF::ParkingLot::parkConditionally): Work around a Linux C++ bug where wait_until with time_point::max() immediately returns and doesn't flash the lock.

4:50 PM Changeset in webkit [188498] by rniwa@webkit.org
  • 26 edits in trunk

ES6 class syntax should allow computed name method
https://bugs.webkit.org/show_bug.cgi?id=142690

Reviewed by Saam Barati.

Source/JavaScriptCore:

Added a new "attributes" attribute to op_put_getter_by_id, op_put_setter_by_id, op_put_getter_setter to specify
the property descriptor options so that we can use use op_put_setter_by_id and op_put_getter_setter to define
getters and setters for classes. Without this, getters and setters could erroneously override methods.

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitDirectPutById):
(JSC::BytecodeGenerator::emitPutGetterById):
(JSC::BytecodeGenerator::emitPutSetterById):
(JSC::BytecodeGenerator::emitPutGetterSetter):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::PropertyListNode::emitBytecode): Always use emitPutGetterSetter to emit getters and setters for classes
as done for object literals.
(JSC::PropertyListNode::emitPutConstantProperty):
(JSC::ClassExprNode::emitBytecode):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_put_getter_by_id):
(JSC::JIT::emit_op_put_setter_by_id):
(JSC::JIT::emit_op_put_getter_setter):
(JSC::JIT::emit_op_del_by_id):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_put_getter_by_id):
(JSC::JIT::emit_op_put_setter_by_id):
(JSC::JIT::emit_op_put_getter_setter):
(JSC::JIT::emit_op_del_by_id):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter.asm:
  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createProperty):
(JSC::ASTBuilder::createPropertyList):

  • parser/NodeConstructors.h:

(JSC::PropertyNode::PropertyNode):

  • parser/Nodes.h:

(JSC::PropertyNode::expressionName):
(JSC::PropertyNode::name):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseClass): Added the support for computed property name. We don't support computed names
for getters and setters.

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createProperty):

  • runtime/JSObject.cpp:

(JSC::JSObject::allowsAccessFrom):
(JSC::JSObject::putGetter):
(JSC::JSObject::putSetter):

  • runtime/JSObject.h:
  • runtime/PropertyDescriptor.h:

LayoutTests:

Added test cases for computed method names.

  • js/class-syntax-method-names-expected.txt:
  • js/script-tests/class-syntax-method-names.js:
3:24 PM Changeset in webkit [188497] by Yusuke Suzuki
  • 9 edits
    3 adds in trunk/Source/JavaScriptCore

Add InspectorInstrumentation builtin object to instrument the code in JS builtins like Promises
https://bugs.webkit.org/show_bug.cgi?id=147942

Reviewed by Geoffrey Garen.

This patch adds new private global object, @InspectorInstrumentation.
It is intended to be used as the namespace object (like Reflect/Math) for Inspector's
instrumentation system and it is used to instrument the builtin JS code, like Promises.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/InspectorInstrumentationObject.js: Added.

(debug):
(promiseFulfilled):
(promiseRejected):

  • builtins/Operations.Promise.js:

(rejectPromise):
(fulfillPromise):

  • runtime/CommonIdentifiers.h:
  • runtime/InspectorInstrumentationObject.cpp: Added.

(JSC::InspectorInstrumentationObject::InspectorInstrumentationObject):
(JSC::InspectorInstrumentationObject::finishCreation):
(JSC::InspectorInstrumentationObject::getOwnPropertySlot):
(JSC::InspectorInstrumentationObject::isEnabled):
(JSC::InspectorInstrumentationObject::enable):
(JSC::InspectorInstrumentationObject::disable):
(JSC::inspectorInstrumentationObjectDataLogImpl):

  • runtime/InspectorInstrumentationObject.h: Added.

(JSC::InspectorInstrumentationObject::create):
(JSC::InspectorInstrumentationObject::createStructure):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

3:19 PM Changeset in webkit [188496] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Highlight DOM node attribute changes in parallel, not sequentially
https://bugs.webkit.org/show_bug.cgi?id=148019

Reviewed by Brian Burg.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype._markNodeChanged):
(WebInspector.DOMTreeElement.prototype._nodeChangedAnimationEnd):
Now removes the animated element from the updated list once the animation ends.

3:19 PM Changeset in webkit [188495] by ap@apple.com
  • 3 edits in branches/safari-601.1-branch

Test result gardening. Merged r188488, and unmarked canvas tests that no longer fail.

  • platform/mac/TestExpectations:
3:15 PM Changeset in webkit [188494] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Long delay when row selection changes in timeline data grids
https://bugs.webkit.org/show_bug.cgi?id=148005

Reviewed by Brian Burg.

Selecting a tree element in the Timelines sidebar generates multiple
WebInspector.ContentView.SelectionPathComponentsDidChange events, each of which
causes NavigationBar to update its layout (which is extremely expensive).

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser.prototype._contentViewSelectionPathComponentDidChange):
Call updateLayoutSoon instead of updateLayout to coalesce layout requests.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._recordSelected):
When the selected record changes in the overview graph, make sure the record's tree element
isn't already selected. Reselecting the tree element results in an extra NavigationBar layout.

3:11 PM Changeset in webkit [188493] by mdaiter@apple.com
  • 7 edits in trunk/Source/WebCore

Implementing enumerateDevices
https://bugs.webkit.org/show_bug.cgi?id=146426
<rdar://problem/21599847>

Reviewed by Eric Carlson.

  • CMakeLists.txt:
  • Modules/mediastream/MediaDeviceInfo.idl:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::enumerateDevices):

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/MediaDevicesPrivate.cpp:

(WebCore::MediaDevicesPrivate::create):
(WebCore::MediaDevicesPrivate::MediaDevicesPrivate):
(WebCore::MediaDevicesPrivate::didCompleteRequest):
(WebCore::MediaDevicesPrivate::availableMediaDevices):

  • platform/mediastream/MediaDevicesPrivate.h:

(WebCore::MediaDevicesPrivate::~MediaDevicesPrivate):
(WebCore::MediaDevicesPrivate::capturedDevices):

3:11 PM Changeset in webkit [188492] by Chris Dumez
  • 1 edit
    2 adds in trunk/PerformanceTests

Add performance tests for NodeList and HTMLCollection traversal
https://bugs.webkit.org/show_bug.cgi?id=148043

Reviewed by Gavin Barraclough.

Add performance tests for NodeList and HTMLCollection traversal.
Ideally, those 2 tests should be as fast. However, due to inefficiencies
in our HTMLCollection bindings code, the HTMLCollection tests is ~30%
slower. This will be addressed in the near future.

  • Bindings/childNodes-traversal.html: Added.
  • Bindings/children-traversal.html: Added.
3:08 PM Changeset in webkit [188491] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION (r188396): Rendering Frames timeline ruler dividers are off by 1px
https://bugs.webkit.org/show_bug.cgi?id=148040

Reviewed by Brian Burg.

  • UserInterface/Views/TimelineOverview.css:

(.timeline-overview.frames > .timeline-ruler > .markers > .divider):
(.timeline-overview.frames > .timeline-ruler > .header > .divider): Deleted.
All ruler dividers should be translated by the same amount.

3:04 PM Changeset in webkit [188490] by Devin Rousso
  • 9 edits in trunk/Source/WebInspectorUI

Web Inspector: Style changes to Visual sidebar editors
https://bugs.webkit.org/show_bug.cgi?id=148021

Reviewed by Brian Burg.

Various style fixes and feature enhancements in some of the Visual style property editors.

  • UserInterface/Views/VisualStyleColorPicker.css:

(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > input):
(.visual-style-property-container.input-color-picker.multiple > .visual-style-property-value-container > .visual-style-multiple-property-placeholder):

  • UserInterface/Views/VisualStyleKeywordCheckbox.css:

(.visual-style-property-container.keyword-checkbox.font-variant > .visual-style-property-value-container > input):
(.visual-style-property-container.keyword-checkbox.font-variant > .visual-style-property-value-container > input::before):
(.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container > input): Deleted.
(.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container > div): Deleted.
Replaced the SVG image before the checkbox with a :before pseudo-element with content.

  • UserInterface/Views/VisualStyleKeywordCheckbox.js:

(WebInspector.VisualStyleKeywordCheckbox):
Removed the SVG image before the checkbox.

  • UserInterface/Views/VisualStyleKeywordPicker.js:

(WebInspector.VisualStyleKeywordPicker.prototype.get value):
(WebInspector.VisualStyleKeywordPicker.prototype.set value):
(WebInspector.VisualStyleKeywordPicker.prototype.set placeholder):
(WebInspector.VisualStyleKeywordPicker.prototype.get synthesizedValue):
(WebInspector.VisualStyleKeywordPicker.prototype._getValue):
(WebInspector.VisualStyleKeywordPicker.prototype._setValue):
(WebInspector.VisualStyleKeywordPicker.prototype._generateSynthesizedValue):
(WebInspector.VisualStyleKeywordPicker.prototype._handleKeywordChanged):
Due to a current bug (https://webkit.org/b/147064), you cannot extend ES6 getters/setters. In order to work
around this, a member function was added that performs the same action as the getter/setter, but can be extended.

  • UserInterface/Views/VisualStylePropertyEditorLink.css:

(.visual-style-property-editor-link.linked > .visual-style-property-editor-link-border):
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon > .unlinked-icon):

  • UserInterface/Views/VisualStyleRelativeNumberSlider.js:

(WebInspector.VisualStyleRelativeNumberSlider):
(WebInspector.VisualStyleRelativeNumberSlider.prototype._resetSlider):
(WebInspector.VisualStyleRelativeNumberSlider.prototype._sliderChanged):

  • UserInterface/Views/VisualStyleSelectorTreeItem.css:

(.item.visual-style-selector-item > input[type="checkbox"]):
(.item.visual-style-selector-item.selected > input[type="checkbox"]::before):
(.item.visual-style-selector-item.modified > .icon):
(.item.visual-style-selector-item:not(.dom-element-icon).editable > .titles > .title:focus):

  • UserInterface/Views/VisualStyleSelectorTreeItem.js:

(WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleMainTitleMouseDown):
Added another context menu item to show the source location for the selected rule.

3:01 PM Changeset in webkit [188489] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

cryptographicallyRandomValuesFromOS should use arc4random_buf on Darwin.
https://bugs.webkit.org/show_bug.cgi?id=148038

Patch by Keith Miller <keith_miller@apple.com> on 2015-08-14
Reviewed by Geoffrey Garen.

Currently, we open a file descriptor to /dev/urandom, which can sometimes
fail to open. Using arc4random_buf instead should get around this issue.

  • wtf/OSRandomSource.cpp:

(WTF::cryptographicallyRandomValuesFromOS):

2:55 PM Changeset in webkit [188488] by eric.carlson@apple.com
  • 2 edits in trunk/LayoutTests

[Mac] video-buffered-range-contains-currentTime.html is flakey after r188390
https://bugs.webkit.org/show_bug.cgi?id=148042

  • platform/mac/TestExpectations: Mark the test as flakey.
2:44 PM Changeset in webkit [188487] by bshafiei@apple.com
  • 17 edits in branches/safari-601.1-branch

Merged r188486. rdar://problem/22222453

2:08 PM Changeset in webkit [188486] by aestes@apple.com
  • 17 edits in trunk

[Cocoa] Downloads do not start if policy decision is made asynchronously
https://bugs.webkit.org/show_bug.cgi?id=147985

Reviewed by Brady Eidson.

Source/WebCore:

It's only possible to convert a NSURLConnection to a download while the connection delegate's
-connection:didReceiveResponse: is being called. However, WebKit clients can decide content policy
asynchronously. If a client chooses to download a response asynchronously, we can no longer convert the
connection to a download, so we should start a new download instead.

New API test: _WKDownload.AsynchronousDownloadPolicy

  • dom/Document.cpp: Updated to include SubresourceLoader.h.
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::mainResourceLoader): Updated to return a SubresourceLoader.
(WebCore::DocumentLoader::continueAfterContentPolicy): Cast mainResourceLoader() to a ResourceLoader since
didFail() is private in SubresourceLoader.

  • loader/DocumentLoader.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::SubresourceLoader): Initialized m_callingDidReceiveResponse to false.
(WebCore::SubresourceLoader::didReceiveResponse): Used TemporaryChange<> to set m_callingDidReceiveResponse to true.

  • loader/SubresourceLoader.h:
  • loader/appcache/ApplicationCacheHost.cpp: Updated to include SubresourceLoader.h.
  • loader/mac/DocumentLoaderMac.cpp: Ditto.

Source/WebKit/mac:

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::convertMainResourceLoadToDownload): Started a new download if the main resource loader is not calling didReceiveResponse.

Source/WebKit/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp: Updated to include SubresourceLoader.h.

Source/WebKit2:

  • WebProcess/Network/WebResourceLoader.cpp: Updated to include SubresourceLoader.h.
  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::convertMainResourceLoadToDownload): Started a new download if the main resource loader is not calling didReceiveResponse.

Tools:

Added a new API test.

  • TestWebKitAPI/Tests/WebKit2Cocoa/Download.mm:

(-[AsynchronousDownloadNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
(-[AsynchronousDownloadDelegate _downloadDidStart:]):
(TEST):

1:27 PM Changeset in webkit [188485] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

RenderBlock::simplifiedLayout should pop LayoutStateMaintainer when early returns.
https://bugs.webkit.org/show_bug.cgi?id=148031

Reviewed by Simon Fraser.

LayoutStateMaintainer push/pop calls need to be balanced to ensure layout consistency.

Unable to make a test case for this.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::simplifiedLayout):

  • rendering/RenderView.h:

(WebCore::LayoutStateMaintainer::~LayoutStateMaintainer): ASSERT the state properly.
(WebCore::LayoutStateMaintainer::push):
(WebCore::LayoutStateMaintainer::pop):
(WebCore::LayoutStateMaintainer::didPush):
(WebCore::LayoutStateMaintainer::LayoutStateMaintainer): Deleted.

1:07 PM Changeset in webkit [188484] by Devin Rousso
  • 1 edit
    5 adds in trunk/Source/WebInspectorUI

Web Inspector: Add visual editors for CSS properties
https://bugs.webkit.org/show_bug.cgi?id=147576

Added parent class for property editors in the Visual style
details panel in the CSS sidebar.

Reviewed by Timothy Hatcher.

  • UserInterface/Views/VisualStylePropertyCombiner.js: Added.

(WebInspector.VisualStylePropertyCombiner):
(WebInspector.VisualStylePropertyCombiner.prototype.get style):
(WebInspector.VisualStylePropertyCombiner.prototype.get synthesizedValue):
(WebInspector.VisualStylePropertyCombiner.prototype.modifyPropertyText):
(WebInspector.VisualStylePropertyCombiner.prototype.update):
(WebInspector.VisualStylePropertyCombiner.prototype.updateValuesFromText.updateCompatibleEditor):
(WebInspector.VisualStylePropertyCombiner.prototype.updateValuesFromText):
(WebInspector.VisualStylePropertyCombiner.prototype.propertyMissing):
(WebInspector.VisualStylePropertyCombiner.prototype.resetEditorValues):
(WebInspector.VisualStylePropertyCombiner.prototype._markEditors):
(WebInspector.VisualStylePropertyCombiner.prototype._handlePropertyEditorValueChanged):

  • UserInterface/Views/VisualStylePropertyEditor.css: Added.

(.visual-style-property-container):
(.visual-style-property-container > .visual-style-property-title):
(.visual-style-property-container > .visual-style-property-title > .property-reference-info):
(.visual-style-property-container.disabled > .visual-style-property-title > :not(.property-reference-info)):
(.visual-style-property-container > .visual-style-property-value-container):
(.visual-style-property-container.disabled > .visual-style-property-value-container):
(.visual-style-property-container > .visual-style-property-value-container select):
(.visual-style-property-container > .visual-style-property-value-container input):
(.visual-style-property-container.disabled > .visual-style-property-value-container input):
(.visual-style-property-container.layout-reversed > .visual-style-property-title):
(.visual-style-property-container > .visual-style-property-value-container > .visual-style-special-property-placeholder):
(.visual-style-property-info-popover):
(.visual-style-property-info-popover > h3):

  • UserInterface/Views/VisualStylePropertyEditor.js: Added.

(WebInspector.VisualStylePropertyEditor.canonicalizeValues):
(WebInspector.VisualStylePropertyEditor):
(WebInspector.VisualStylePropertyEditor.prototype.get element):
(WebInspector.VisualStylePropertyEditor.prototype.get style):
(WebInspector.VisualStylePropertyEditor.prototype.get value):
(WebInspector.VisualStylePropertyEditor.prototype.set value):
(WebInspector.VisualStylePropertyEditor.prototype.get units):
(WebInspector.VisualStylePropertyEditor.prototype.set units):
(WebInspector.VisualStylePropertyEditor.prototype.get placeholder):
(WebInspector.VisualStylePropertyEditor.prototype.set placeholder):
(WebInspector.VisualStylePropertyEditor.prototype.get synthesizedValue):
(WebInspector.VisualStylePropertyEditor.prototype.set suppressStyleTextUpdate):
(WebInspector.VisualStylePropertyEditor.prototype.set masterProperty):
(WebInspector.VisualStylePropertyEditor.prototype.get masterProperty):
(WebInspector.VisualStylePropertyEditor.prototype.set optionalProperty):
(WebInspector.VisualStylePropertyEditor.prototype.get optionalProperty):
(WebInspector.VisualStylePropertyEditor.prototype.set colorProperty):
(WebInspector.VisualStylePropertyEditor.prototype.get colorProperty):
(WebInspector.VisualStylePropertyEditor.prototype.get propertyReferenceName):
(WebInspector.VisualStylePropertyEditor.prototype.set propertyReferenceName):
(WebInspector.VisualStylePropertyEditor.prototype.set disabled):
(WebInspector.VisualStylePropertyEditor.prototype.get disabled):
(WebInspector.VisualStylePropertyEditor.prototype.update):
(WebInspector.VisualStylePropertyEditor.prototype.updateEditorValues):
(WebInspector.VisualStylePropertyEditor.prototype.resetEditorValues):
(WebInspector.VisualStylePropertyEditor.prototype.modifyPropertyText):
(WebInspector.VisualStylePropertyEditor.prototype.getValuesFromText):
(WebInspector.VisualStylePropertyEditor.prototype.propertyMissing):
(WebInspector.VisualStylePropertyEditor.prototype.valueIsCompatible):
(WebInspector.VisualStylePropertyEditor.prototype.valueIsSupportedKeyword):
(WebInspector.VisualStylePropertyEditor.prototype.valueIsSupportedUnit):
(WebInspector.VisualStylePropertyEditor.prototype.get contentElement):
(WebInspector.VisualStylePropertyEditor.prototype.get specialPropertyPlaceholderElement):
(WebInspector.VisualStylePropertyEditor.prototype.parseValue):
(WebInspector.VisualStylePropertyEditor.prototype._valueIsSupportedAdvancedKeyword):
(WebInspector.VisualStylePropertyEditor.prototype._valueIsSupportedAdvancedUnit):
(WebInspector.VisualStylePropertyEditor.prototype._canonicalizedKeywordForKey):
(WebInspector.VisualStylePropertyEditor.prototype._keyForKeyword):
(WebInspector.VisualStylePropertyEditor.prototype._valueDidChange):
(WebInspector.VisualStylePropertyEditor.prototype._replaceShorthandPropertyWithLonghandProperties):
(WebInspector.VisualStylePropertyEditor.prototype._titleElementPrepareForClick):
(WebInspector.VisualStylePropertyEditor.prototype._titleElementMouseOver):
(WebInspector.VisualStylePropertyEditor.prototype._titleElementMouseOut):
(WebInspector.VisualStylePropertyEditor.prototype._titleElementClick):
(WebInspector.VisualStylePropertyEditor.prototype._hasMultipleConflictingValues):
(WebInspector.VisualStylePropertyEditor.prototype._showPropertyInfoPopover):
(WebInspector.VisualStylePropertyEditor.prototype._toggleTabbingOfSelectableElements):

  • UserInterface/Views/VisualStyleTabbedPropertiesRow.css: Added.

(.visual-style-tabbed-properties-row ~ :not(.visible)):
(.visual-style-tabbed-properties-row > .visual-style-tabbed-properties-row-container):
(.visual-style-tabbed-properties-row > .visual-style-tabbed-properties-row-container > button):
(.visual-style-tabbed-properties-row > .visual-style-tabbed-properties-row-container > button.selected):
(.visual-style-tabbed-properties-row > .visual-style-tabbed-properties-row-container > button:not(.selected):hover):

  • UserInterface/Views/VisualStyleTabbedPropertiesRow.js: Added.

(WebInspector.VisualStyleTabbedPropertiesRow):
(WebInspector.VisualStyleTabbedPropertiesRow.prototype._handleButtonClicked):

1:05 PM Changeset in webkit [188483] by Devin Rousso
  • 2 edits
    5 adds in trunk/Source/WebInspectorUI

Web Inspector: Add Visual editors for CSS properties with comma separated values
https://bugs.webkit.org/show_bug.cgi?id=147578

Reviewed by Timothy Hatcher.

Displays comma separated CSS property values as a tree outline list.

  • UserInterface/Images/Minus.svg: Added.
  • UserInterface/Views/TreeOutline.js:

(WebInspector.TreeOutline.prototype.get selectedTreeElementIndex):
(WebInspector.TreeOutline):

  • UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css: Added.

(.visual-style-property-container.comma-separated-keyword-editor):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item:nth-child(odd)):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item.selected):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > :matches(button, img)):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item.visual-style-font-family-list-item.selected:not(.editor-hidden) > .titles > *):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item.visual-style-font-family-list-item > .visual-style-comma-separated-keyword-item-editor):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item.visual-style-font-family-list-item.editor-hidden > .visual-style-comma-separated-keyword-item-editor):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles > .subtitle):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item:not(.no-value) > .titles > .subtitle):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-controls):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-controls > div):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-controls > .visual-style-remove-comma-separated-keyword):

  • UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js: Added.

(WebInspector.VisualStyleCommaSeparatedKeywordEditor):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.set selectedTreeElementValue):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.get value):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.set value):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.get synthesizedValue):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._treeElementSelected):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._treeItemIsEmpty):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._addEmptyCommaSeparatedKeyword):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._removeSelectedCommaSeparatedKeyword):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._removeEmptyCommaSeparatedKeywords):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._addCommaSeparatedKeyword):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._removeCommaSeparatedKeyword):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._createNewTreeElement):

  • UserInterface/Views/VisualStyleFontFamilyListEditor.js: Added.

(WebInspector.VisualStyleFontFamilyListEditor):
(WebInspector.VisualStyleFontFamilyListEditor.prototype.visualStyleCompletionsControllerCustomizeCompletionElement):
(WebInspector.VisualStyleFontFamilyListEditor.prototype.get hasCompletions):
(WebInspector.VisualStyleFontFamilyListEditor.prototype.set completions):
(WebInspector.VisualStyleFontFamilyListEditor.prototype._modifyCommaSeparatedKeyword):
(WebInspector.VisualStyleFontFamilyListEditor.prototype._addCommaSeparatedKeyword):
(WebInspector.VisualStyleFontFamilyListEditor.prototype._addEmptyCommaSeparatedKeyword):
(WebInspector.VisualStyleFontFamilyListEditor.prototype._completionClicked):
(WebInspector.VisualStyleFontFamilyListEditor.prototype._treeElementKeyDown):
(WebInspector.VisualStyleFontFamilyListEditor.prototype._treeElementKeywordChanged):
(WebInspector.VisualStyleFontFamilyListEditor.prototype._hideCompletions):
(WebInspector.VisualStyleFontFamilyListEditor.prototype._createNewTreeElement):

  • UserInterface/Views/VisualStyleFontFamilyTreeElement.js: Added.

(WebInspector.VisualStyleFontFamilyTreeElement):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.editorBounds):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.updateMainTitle):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.showKeywordEditor):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.hideKeywordEditor):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.get keywordEditorHidden):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.onattach):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype.ondeselect):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype._keywordEditorKeyDown):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype._keywordEditorKeyUp):
(WebInspector.VisualStyleFontFamilyTreeElement.prototype._keywordEditorBlurred):

12:15 PM Changeset in webkit [188482] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Remove a few includes from RenderObject.h
https://bugs.webkit.org/show_bug.cgi?id=148007

Reviewed by Tim Horton.

Shrink down the RenderObject.h includes a little.

  • rendering/RenderElement.h:
  • rendering/RenderObject.h:
  • rendering/RenderText.h:
11:48 AM Changeset in webkit [188481] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Unreviewed, rolling out r187357.
https://bugs.webkit.org/show_bug.cgi?id=148032

webkit-patch generates incorrect patches that cannot be
applied (Requested by dydz on #webkit).

Reverted changeset:

"Call fixChangeLogPatch when generating patches from webkit-
patch"
https://bugs.webkit.org/show_bug.cgi?id=147248
http://trac.webkit.org/changeset/187357

11:43 AM Changeset in webkit [188480] by Devin Rousso
  • 3 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Add autocomplete controller for Visual property editors
https://bugs.webkit.org/show_bug.cgi?id=147579

Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/VisualStyleCompletionsController.js: Added.

(WebInspector.VisualStyleCompletionsController):
Takes in a CSSCompletions and displays a list of suggestions based on a given prefix in a popover.
(WebInspector.VisualStyleCompletionsController.prototype.get visible):
(WebInspector.VisualStyleCompletionsController.prototype.get hasCompletions):
(WebInspector.VisualStyleCompletionsController.prototype.get currentCompletion):
(WebInspector.VisualStyleCompletionsController.prototype.set completions):
(WebInspector.VisualStyleCompletionsController.prototype.completionSuggestionsViewCustomizeCompletionElement):
(WebInspector.VisualStyleCompletionsController.prototype.previous):
(WebInspector.VisualStyleCompletionsController.prototype.next):
(WebInspector.VisualStyleCompletionsController.prototype.update):
(WebInspector.VisualStyleCompletionsController.prototype.show):
(WebInspector.VisualStyleCompletionsController.prototype.hide):

  • UserInterface/Models/CSSKeywordCompletions.js:

(WebInspector.CSSKeywordCompletions.forProperty):
Make sure that the cssNameCompletions exist before trying to add them.

  • UserInterface/Views/CompletionSuggestionsView.js:

(WebInspector.CompletionSuggestionsView.prototype.update):
Allow the delegate to modify the newly created completion suggestion item.

11:31 AM Changeset in webkit [188479] by Devin Rousso
  • 1 edit
    2 adds in trunk/Source/WebInspectorUI

Web Inspector: Add a visual editor for timing functions
https://bugs.webkit.org/show_bug.cgi?id=148022

Reviewed by Timothy Hatcher.

Uses the existing bezier editor and the Visual keyword picker to make an editor for timing functions.

  • UserInterface/Views/VisualStyleTimingEditor.css: Added.

(.visual-style-property-container.timing-editor > .visual-style-property-value-container):
(.visual-style-property-container.timing-editor > .visual-style-property-value-container > .keyword-picker-select):
(.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor):
(.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor:hover):
(.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor:active):

  • UserInterface/Views/VisualStyleTimingEditor.js: Added.

(WebInspector.VisualStyleTimingEditor):
(WebInspector.VisualStyleTimingEditor.prototype.parseValue):
(WebInspector.VisualStyleTimingEditor.prototype.get bezierValue):
(WebInspector.VisualStyleTimingEditor.prototype.set bezierValue):
(WebInspector.VisualStyleTimingEditor.prototype._getValue):
(WebInspector.VisualStyleTimingEditor.prototype._setValue):
(WebInspector.VisualStyleTimingEditor.prototype._generateSynthesizedValue):
(WebInspector.VisualStyleTimingEditor.prototype._bezierMarkerClicked):
(WebInspector.VisualStyleTimingEditor.prototype._handleKeywordChanged):

11:06 AM Changeset in webkit [188478] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Refactor BuildbotQueueView._appendPendingRevisionCount to work more generically with repositories
other than "openSource" and "internal".
https://bugs.webkit.org/show_bug.cgi?id=147938

Patch by Jason Marcell <jmarcell@apple.com> on 2015-08-14
Reviewed by Daniel Bates.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:

(BuildbotQueueView.prototype._appendPendingRevisionCount): Refactored to work more generically with
repositories other than "openSource" and "internal".

10:43 AM Changeset in webkit [188477] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the Mavericks build.

  • platform/spi/mac/LookupSPI.h:
10:09 AM Changeset in webkit [188476] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Frequent assertions on animations/restart-after-scroll.html
https://bugs.webkit.org/show_bug.cgi?id=148026

9:53 AM Changeset in webkit [188475] by commit-queue@webkit.org
  • 34 edits in trunk/Source

Unreviewed, rolling out r188444.
https://bugs.webkit.org/show_bug.cgi?id=148029

Broke GTK and EFL (see bug #148027) (Requested by philn on
#webkit).

Reverted changeset:

"Use WTF::Lock and WTF::Condition instead of WTF::Mutex,
WTF::ThreadCondition, std::mutex, and std::condition_variable"
https://bugs.webkit.org/show_bug.cgi?id=147999
http://trac.webkit.org/changeset/188444

9:49 AM Changeset in webkit [188474] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Speculative fix for iOS build failure.

  • Shared/mac/RemoteLayerTreeTransaction.h:
9:48 AM Changeset in webkit [188473] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the build.

  • platform/spi/mac/LookupSPI.h:
9:31 AM Changeset in webkit [188472] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] Handle missing plugins better at runtime
https://bugs.webkit.org/show_bug.cgi?id=146999

Reviewed by Carlos Garcia Campos.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::createAudioSink): Warn the
user if autoaudiosink wasn't found at runtime. In that case
playbin will try to be smart by itself, hopefully. Also moved a
couple GST_WARNING calls to WARN_MEDIA_MESSAGE.
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): Use
WARN_MEDIA_MESSAGE here as well.

9:30 AM Changeset in webkit [188471] by Philippe Normand
  • 2 edits in trunk/Source/WebKit2

Unreviewed, remove dead code after r188385.

  • UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:

(webkitUserMediaPermissionRequestAllow): Deleted.

8:27 AM Changeset in webkit [188470] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.9.90

WebKitGTK+ 2.9.90

8:26 AM Changeset in webkit [188469] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.10

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.9.90 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.9.90.
7:08 AM Changeset in webkit [188468] by Antti Koivisto
  • 27 edits in trunk

Cover memory cache subresource validation policy with cache tests
https://bugs.webkit.org/show_bug.cgi?id=147830

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Existing tests under http/tests/cache/disk-cache currently cover disk and XHR memory cache validation behaviors.
They can be extended to cover the regular subresource policy too.

Add window.internals API to disable CachedRawResource validation behavior. This makes XHR validate like
other resources and allows existing tests (that use XHR) to cover normal subresource policy .

Test results reveal some bugs. For example subresources in memory cache don't respect Vary header.

It is generally bad that we have a separate XHR-and-main-resource validation policy in memory cache. Network cache
doesn't have one.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::clearTestingOverrides):
(WebCore::FrameLoader::applyShouldOpenExternalURLsPolicyToNewDocumentLoader):

  • loader/FrameLoader.h:

(WebCore::FrameLoader::setOverrideCachePolicyForTesting):
(WebCore::FrameLoader::setOverrideResourceLoadPriorityForTesting):
(WebCore::FrameLoader::setStrictRawResourceValidationPolicyDisabledForTesting):
(WebCore::FrameLoader::isStrictRawResourceValidationPolicyDisabledForTesting):
(WebCore::FrameLoader::provisionalLoadErrorBeingHandledURL):

  • loader/cache/CachedRawResource.h:
  • loader/cache/CachedResource.h:

(WebCore::CachedResource::setLoadFinishTime):
(WebCore::CachedResource::loadFinishTime):
(WebCore::CachedResource::canReuse): Deleted.

Made canReuse non-virtual and removed it from the base. Only CachedRawResource has implementation.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::determineRevalidationPolicy):

  • testing/Internals.cpp:

(WebCore::Internals::setOverrideResourceLoadPriority):
(WebCore::Internals::setStrictRawResourceValidationPolicyDisabled):
(WebCore::Internals::clearMemoryCache):

  • testing/Internals.h:

LayoutTests:

Add another test round using subresource validation policy.

  • http/tests/cache/disk-cache/disk-cache-204-status-code-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-302-status-code-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-307-status-code-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-404-status-code-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-disable-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-media-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-range-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-request-headers-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-request-max-stale-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-validation-attachment-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-validation-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-validation-no-body-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-vary-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-vary-no-body-expected.txt:
  • http/tests/cache/disk-cache/resources/cache-test.js:

(loadResourcesWithOptions):
(.):
(runTests):

5:34 AM Changeset in webkit [188467] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Tools

Merge r188445 - Unreviewed, shorten another test that is timing out.

  • TestWebKitAPI/Tests/WTF/Lock.cpp:

(TestWebKitAPI::TEST):

5:32 AM Changeset in webkit [188466] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Tools

Merge r188387 - Unreviewed, shorten another test. It's timing out in debug on some bot.

  • TestWebKitAPI/Tests/WTF/Lock.cpp:

(TestWebKitAPI::TEST):

5:28 AM Changeset in webkit [188465] by Carlos Garcia Campos
  • 15 edits in releases/WebKitGTK/webkit-2.10/Source

Merge r188386 - Use WTF::Optional in WindowFeatures
https://bugs.webkit.org/show_bug.cgi?id=147956

Reviewed by Sam Weinig.

Source/WebCore:

  • loader/FrameLoader.cpp:

(WebCore::createWindow):

  • page/WindowFeatures.cpp:

(WebCore::WindowFeatures::WindowFeatures):
(WebCore::WindowFeatures::setWindowFeature):
(WebCore::WindowFeatures::boolFeature):
(WebCore::WindowFeatures::floatFeature):
(WebCore::WindowFeatures::parseDialogFeatures):

  • page/WindowFeatures.h:

(WebCore::WindowFeatures::WindowFeatures):

Source/WebKit/mac:

  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::createWindow):

Source/WebKit/win:

  • WebCoreSupport/WebChromeClient.cpp:

(createWindowFeaturesPropertyBag):

Source/WebKit2:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<WindowFeatures>::encode): Deleted.
(IPC::ArgumentCoder<WindowFeatures>::decode): Deleted.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/Cocoa/WKWindowFeatures.mm:

(-[WKWindowFeatures _initWithWindowFeatures:]):

Source/WTF:

Add new operators to WTF::Optional to make it more like std::optional.

  • wtf/Optional.h:

(WTF::Optional::operator->):
(WTF::Optional::operator*):

Unreviewed. Fix GTK+ build after r188386.

  • UIProcess/API/gtk/WebKitWindowProperties.cpp:

(webkitWindowPropertiesUpdateFromWebWindowFeatures):

5:01 AM Changeset in webkit [188464] by Carlos Garcia Campos
  • 13 edits
    8 adds in releases/WebKitGTK/webkit-2.10/Source/JavaScriptCore

Merge r188432 - [JSC] Add support for GetByVal on arrays of Undecided shape
https://bugs.webkit.org/show_bug.cgi?id=147814

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-08-13
Reviewed by Filip Pizlo.

Previously, GetByVal on Array::Undecided would just take
the generic path. The problem is the generic path is so
slow that it could take a significant amount of time
even for unfrequent accesses.

With this patch, if the following conditions are met,
the GetByVal just returns a "undefined" constant:
-The object is an OriginalArray.
-The prototype chain is sane.
-The index is an integer.
-The integer is positive (runtime check).

Ideally, the 4th conditions should be removed
deducing a compile-time constant gives us so much better
opportunities at getting rid of this code.

There are two cases where this patch removes the runtime
check:
-If the index is constant (uncommon but easy)
-If the index is within a range known to be positive.

(common case and made possible with DFGIntegerRangeOptimizationPhase).

When we get into those cases, DFG just nukes everything
and all we have left is a structure check :)

This patch is a 14% improvement on audio-beat-detection,
a few percent faster here and there and no regression.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
If the index is a positive constant, we can get rid of the GetByVal
entirely. :)

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::fromObserved):
The returned type is now Array::Undecided + profiling information.
The useful type is set in ArrayMode::refine().

(JSC::DFG::ArrayMode::refine):
If we meet the particular set conditions, we speculate an Undecided
array type with sane chain. Anything else comes back to Generic.

(JSC::DFG::ArrayMode::originalArrayStructure):
To enable the structure check for Undecided array.

(JSC::DFG::ArrayMode::alreadyChecked):

  • dfg/DFGArrayMode.h:

(JSC::DFG::ArrayMode::withProfile):
(JSC::DFG::ArrayMode::canCSEStorage):
(JSC::DFG::ArrayMode::benefitsFromOriginalArray):
(JSC::DFG::ArrayMode::lengthNeedsStorage): Deleted.
(JSC::DFG::ArrayMode::isSpecific): Deleted.A

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsic): Deleted.
This is somewhat unrelated.

Having Array::Undecided on ArrayPush was impossible before
since ArrayMode::fromObserved() used to return Array::Generic.

Now that Array::Undecided is possible, we must make sure not
to provide it to ArrayPush since there is no code to handle it
properly.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):
The operation only depends on the index, it is pure.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode): Deleted.

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::jumpSlowForUnwantedArrayMode):
(JSC::DFG::SpeculativeJIT::checkArray):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileGetByVal):

  • tests/stress/get-by-val-on-undecided-array-type.js: Added.
  • tests/stress/get-by-val-on-undecided-sane-chain-1.js: Added.
  • tests/stress/get-by-val-on-undecided-sane-chain-2.js: Added.
  • tests/stress/get-by-val-on-undecided-sane-chain-3.js: Added.
  • tests/stress/get-by-val-on-undecided-sane-chain-4.js: Added.
  • tests/stress/get-by-val-on-undecided-sane-chain-5.js: Added.
  • tests/stress/get-by-val-on-undecided-sane-chain-6.js: Added.
4:46 AM Changeset in webkit [188463] by Carlos Garcia Campos
  • 20 edits in releases/WebKitGTK/webkit-2.10/Source/JavaScriptCore

Merge r188417 - Unify JSParserCodeType, FunctionParseMode and ModuleParseMode into SourceParseMode
https://bugs.webkit.org/show_bug.cgi?id=147353

Reviewed by Saam Barati.

This is the follow-up patch after r188355.
It includes the following changes.

  • Unify JSParserCodeType, FunctionParseMode and ModuleParseMode into SourceParseMode
  • Make SourceParseMode to C++ strongly-typed enum.
  • Fix the comments.
  • Rename ModuleSpecifier to ModuleName.
  • Add the type name ImportEntry before the C++11 uniform initialization.
  • Fix the thrown message for duplicate 'default' names.
  • Assert the all statements in the top-level source elements are the module declarations under the module analyzer phase.
  • API/JSScriptRef.cpp:

(parseScript):

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createExecutableInternal):

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateFunctionCodeBlock):

  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::makeFunction):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createFunctionMetadata):
(JSC::ASTBuilder::createModuleName):
(JSC::ASTBuilder::createImportDeclaration):
(JSC::ASTBuilder::createExportAllDeclaration):
(JSC::ASTBuilder::createExportNamedDeclaration):
(JSC::ASTBuilder::createModuleSpecifier): Deleted.

  • parser/ModuleAnalyzer.cpp:

(JSC::ModuleAnalyzer::analyze):

  • parser/NodeConstructors.h:

(JSC::ModuleNameNode::ModuleNameNode):
(JSC::ImportDeclarationNode::ImportDeclarationNode):
(JSC::ExportAllDeclarationNode::ExportAllDeclarationNode):
(JSC::ExportNamedDeclarationNode::ExportNamedDeclarationNode):
(JSC::ModuleSpecifierNode::ModuleSpecifierNode): Deleted.

  • parser/Nodes.cpp:

(JSC::FunctionMetadataNode::FunctionMetadataNode):

  • parser/Nodes.h:

(JSC::StatementNode::isModuleDeclarationNode):
(JSC::ModuleDeclarationNode::isModuleDeclarationNode):
(JSC::ImportDeclarationNode::moduleName):
(JSC::ExportAllDeclarationNode::moduleName):
(JSC::ExportNamedDeclarationNode::moduleName):
(JSC::ImportDeclarationNode::moduleSpecifier): Deleted.
(JSC::ExportAllDeclarationNode::moduleSpecifier): Deleted.
(JSC::ExportNamedDeclarationNode::moduleSpecifier): Deleted.

  • parser/NodesAnalyzeModule.cpp:

(JSC::SourceElements::analyzeModule):
(JSC::ImportDeclarationNode::analyzeModule):
(JSC::ExportAllDeclarationNode::analyzeModule):
(JSC::ExportNamedDeclarationNode::analyzeModule):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseModuleSourceElements):
(JSC::Parser<LexerType>::parseFunctionBody):
(JSC::stringForFunctionMode):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseModuleName):
(JSC::Parser<LexerType>::parseImportDeclaration):
(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parsePropertyMethod):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseArrowFunctionExpression):
(JSC::Parser<LexerType>::parseModuleSpecifier): Deleted.

  • parser/Parser.h:

(JSC::Parser<LexerType>::parse):
(JSC::parse):

  • parser/ParserModes.h:

(JSC::isFunctionParseMode):
(JSC::isModuleParseMode):
(JSC::isProgramParseMode):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createFunctionMetadata):
(JSC::SyntaxChecker::createModuleName):
(JSC::SyntaxChecker::createImportDeclaration):
(JSC::SyntaxChecker::createExportAllDeclaration):
(JSC::SyntaxChecker::createExportNamedDeclaration):
(JSC::SyntaxChecker::createModuleSpecifier): Deleted.

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):

  • runtime/Completion.cpp:

(JSC::checkSyntax):
(JSC::checkModuleSyntax):

  • runtime/Executable.cpp:

(JSC::ProgramExecutable::checkSyntax):

  • tests/stress/modules-syntax-error-with-names.js:
4:33 AM Changeset in webkit [188462] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/JavaScriptCore

Merge r188401 - Periodic code deletion should delete RegExp code
https://bugs.webkit.org/show_bug.cgi?id=147990

Reviewed by Filip Pizlo.

The RegExp code cache was created for the sake of simple loops that
re-created the same RegExps. It's reasonable to delete it periodically.

  • heap/Heap.cpp:

(JSC::Heap::deleteOldCode):

4:30 AM Changeset in webkit [188461] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/JavaScriptCore

Merge r188397 - RegExpCache::finalize should not delete code
https://bugs.webkit.org/show_bug.cgi?id=147987

Reviewed by Mark Lam.

The RegExp object already knows how to delete its own code in its
destructor. Our job is just to clear our stale pointer.

  • runtime/RegExpCache.cpp:

(JSC::RegExpCache::finalize):
(JSC::RegExpCache::addToStrongCache):

4:28 AM Changeset in webkit [188460] by Carlos Garcia Campos
  • 17 edits in releases/WebKitGTK/webkit-2.10/Source

Merge r188394 - Standardize on the phrase "delete code"
https://bugs.webkit.org/show_bug.cgi?id=147984

Reviewed by Mark Lam.

Source/JavaScriptCore:

Use "delete" when we talk about throwing away code, as opposed to
"invalidate" or "discard".

  • debugger/Debugger.cpp:

(JSC::Debugger::forEachCodeBlock):
(JSC::Debugger::setSteppingMode):
(JSC::Debugger::recompileAllJSFunctions):

  • heap/Heap.cpp:

(JSC::Heap::deleteAllCompiledCode):

  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::recompileAllJSFunctionsForTypeProfiling):

  • runtime/RegExp.cpp:

(JSC::RegExp::match):
(JSC::RegExp::deleteCode):
(JSC::RegExp::invalidateCode): Deleted.

  • runtime/RegExp.h:
  • runtime/RegExpCache.cpp:

(JSC::RegExpCache::finalize):
(JSC::RegExpCache::addToStrongCache):
(JSC::RegExpCache::deleteAllCode):
(JSC::RegExpCache::invalidateCode): Deleted.

  • runtime/RegExpCache.h:
  • runtime/VM.cpp:

(JSC::VM::stopSampling):
(JSC::VM::prepareToDeleteCode):
(JSC::VM::deleteAllCode):
(JSC::VM::setEnabledProfiler):
(JSC::VM::prepareToDiscardCode): Deleted.
(JSC::VM::discardAllCode): Deleted.

  • runtime/VM.h:

(JSC::VM::apiLock):
(JSC::VM::codeCache):

  • runtime/Watchdog.cpp:

(JSC::Watchdog::setTimeLimit):

Source/WebCore:

Use "delete" when we talk about throwing away code, as opposed to
"invalidate" or "discard".

  • bindings/js/GCController.cpp:

(WebCore::GCController::setJavaScriptGarbageCollectorTimerEnabled):
(WebCore::GCController::deleteAllCode):
(WebCore::GCController::discardAllCompiledCode): Deleted.

  • bindings/js/GCController.h:
  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseCriticalMemory):

Source/WebKit/mac:

  • WebView/WebView.mm:

(+[WebView discardAllCompiledCode]):
(+[WebView isCharacterSmartReplaceExempt:isPreviousCharacter:]):

4:00 AM Changeset in webkit [188459] by Carlos Garcia Campos
  • 4 edits
    1 add in releases/WebKitGTK/webkit-2.10/Source/JavaScriptCore

Merge r188384 - X.SetPrototypeOf?(Y) should succeed if X.Prototype? is already Y even if X is not extensible
https://bugs.webkit.org/show_bug.cgi?id=147930

Reviewed by Saam Barati.

When the passed prototype object to be set is the same to the existing
prototype object, SetPrototypeOf? just finishes its operation even
if the extensibility of the target object is false.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncProtoSetter):

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorSetPrototypeOf):

  • runtime/ReflectObject.cpp:

(JSC::reflectObjectSetPrototypeOf):

  • tests/stress/set-same-prototype.js: Added.

(shouldBe):
(shouldThrow):

3:47 AM Changeset in webkit [188458] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebInspectorUI

Merge r188442 - Web Inspector: Can't resize split console when window is too narrow
https://bugs.webkit.org/show_bug.cgi?id=147924

Make some items inside of the navigation bar click-through to incsease
the draggable area.

Reviewed by Timothy Hatcher.

  • UserInterface/Views/Main.css:

(#split-content-browser > .navigation-bar > :matches(.hierarchical-path, .log-search-bar, .log-scope-bar)):
(#split-content-browser > .navigation-bar > :matches(.log-search-bar, .log-scope-bar) > :matches(li, input)):

3:46 AM Changeset in webkit [188457] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.10/Source/WebInspectorUI

Merge r188429 - Web Inspector: Flash DOM node attribute on change
https://bugs.webkit.org/show_bug.cgi?id=147973

Reviewed by Timothy Hatcher.

Whenever an attribute on a DOM node changes, flash the attribute value.
If that value doesn't exist, flash the attribute name instead.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement):
(WebInspector.DOMTreeElement.prototype.nodeChanged):
(WebInspector.DOMTreeElement.prototype._buildAttributeDOM):
If the node has been marked with a general change, mark the attribute element for animation.
(WebInspector.DOMTreeElement.prototype._markNodeChanged.animationEnd):
(WebInspector.DOMTreeElement.prototype._markNodeChanged):
Adds a class to the given element that applies a simple background flash animation.
(WebInspector.DOMTreeElement.prototype._fireDidChange):
Add the animation class once all building of the represented DOM object for that node is done.

  • UserInterface/Views/DOMTreeOutline.css:

(@keyframes node-state-changed):
Applies a semi-transparent background that fades to default.
(.node-state-changed):

  • UserInterface/Views/DOMTreeUpdater.js:

(WebInspector.DOMTreeUpdater.prototype._attributesUpdated):
Now passes along the name of the modified attribute.
(WebInspector.DOMTreeUpdater.prototype._updateModifiedNodes):
If the modified node object has an attribute member, mark the node as being generally changed.

3:44 AM Changeset in webkit [188456] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebInspectorUI

Merge r188427 - REGRESSION (r184000): Web Inspector: Stripped whitespace after editing CSS in Styles sidebar
https://bugs.webkit.org/show_bug.cgi?id=145679

Reviewed by Timothy Hatcher.

The formatter will now calculate the number of beginning spaces before the first line in a rule
and duplicate them in front of every other line. If there is no new line at the beginning or are
no spaces, assume 4 spaces and a new line for each property.
Also cleaned up the code for _resetContent a bit.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.set get this):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.get this):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent):

3:42 AM Changeset in webkit [188455] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/LayoutTests

Merge r188426 - Web Inspector: Reduce flakiness of inspector/indexeddb/requestDatabaseNames
https://bugs.webkit.org/show_bug.cgi?id=148008

Reviewed by Timothy Hatcher.

  • inspector/indexeddb/requestDatabaseNames.html:

Follow-up fix to reduce flakiness in the test caused by other tests
creating IndexedDB databases.

3:41 AM Changeset in webkit [188454] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.10/Source/WebInspectorUI

Merge r188408 - Web Inspector: Skip rendering frame records without children
https://bugs.webkit.org/show_bug.cgi?id=147993

Reviewed by Reviewed by Joseph Pecoraro.

This became an issue for frames which include an IndexedDB "success" event. This caused the
payload to pass the "has children" test, but resulted in model objects with no child records.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype.eventRecorded):
Fixed record type check and moved rendering frame index assignment.

  • UserInterface/Models/RenderingFrameTimelineRecord.js:

(WebInspector.RenderingFrameTimelineRecord):
(WebInspector.RenderingFrameTimelineRecord.prototype.setupFrameIndex):
Frame index is now set externally, and can only be set once.

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView.prototype._renderingFrameTimelineRecordAdded):
Added assertion.

3:40 AM Changeset in webkit [188453] by Carlos Garcia Campos
  • 10 edits
    3 adds in releases/WebKitGTK/webkit-2.10

Merge r188407 - Web Inspector: Watch Expressions
https://bugs.webkit.org/show_bug.cgi?id=147904

Reviewed by Brian Burg.

Source/WebInspectorUI:

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject):
A RemoteObject's description string is optional, but we always
assume it exists and is a string, so default to the empty string.

  • UserInterface/Controllers/RuntimeManager.js:

(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow.evalCallback):
Include the object group in the DidEvaluate event.

(WebInspector.RemoteObject.fakeRemoteObject):
(WebInspector.RemoteObject.prototype.getDisplayablePropertyDescriptors):
(WebInspector.RemoteObject.prototype.deprecatedGetDisplayableProperties.get return):
(WebInspector.RemoteObject.prototype.deprecatedGetDisplayableProperties):
(WebInspector.RemoteObject.prototype._isFakeObject):
(WebInspector.RemoteObject.prototype._getPropertyDescriptors):
(WebInspector.RemoteObject.prototype._deprecatedGetProperties):
Support a fake RemoteObject. We use this fake RemoteObject to
back a ObjectTreeView where we add custom Properties which are of the form
"Expressions => RemoteObject" instead of "Object Property => RemoteObject".
Ensure a fake remote object is not used in unexpected ways.

  • UserInterface/Views/Popover.js:

(WebInspector.Popover.prototype.update):
Default a popover update to animate, but allow not animating.

(WebInspector.Popover.prototype.handleEvent):
Vend a class that other content can use so that the Popover won't
dismiss if content with that class is scrolled. For example, a
completions list may be showing over a popover, if that scrolls
it should not dismiss the popover.

  • UserInterface/Views/CompletionSuggestionsView.js:

(WebInspector.CompletionSuggestionsView):
Adopt the Popover ignore class so a popover won't dismiss if the
completion suggestions view is scrolled.

  • UserInterface/Views/ObjectTreeBaseTreeElement.js:

(WebInspector.ObjectTreeBaseTreeElement.prototype.createGetterElement.get return):
(WebInspector.ObjectTreeBaseTreeElement.prototype.createGetterElement):
Allow modifying the context menu on an ObjectTreeView by looking for a delegate
on the TreeOutline.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.css: Added.

(.details-section.watch-expressions .options > *):
(.details-section.watch-expressions .options > *:active):
(.details-section.watch-expressions .options > .watch-expression-add):
(.details-section.watch-expressions .options > .watch-expression-clear):
(.details-section.watch-expressions .options > .watch-expression-refresh):
(.popover .watch-expression):
(.watch-expression-editor):
(.watch-expression-editor > .CodeMirror):
(.watch-expression-editor > .CodeMirror-scroll):
Styles for the new Watch Expressions section, buttons, popover, and editor.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WebInspector.ScopeChainDetailsSidebarPanel):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.inspect):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateWatchExpressionsSection):
Because we update the UI after a delay, to allow ObjectTreeView's to asynchronously
expand and fetch their list of properties, we convert updating the watch expression
and call frame sections asynchronously and return a promise. This lets us visually
update the UI after both sections have updated.

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpression):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._removeWatchExpression):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._clearAllWatchExpressions):
Modify the saved list of watch expressions.

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked.presentPopoverOverTargetElement):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked.this._codeMirror.addKeyMap):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.willDismissPopover):
Handle presenting and dismissing the add watch expression popover.

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._refreshAllWatchExpressionsButtonClicked):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._clearAllWatchExpressionsButtonClicked):
Other button handlers.

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._mainResourceDidChange):
Refresh the sidebar on navigation, as the watch expressions may change value (location.href).

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeElementAddContextMenuItems):
Add our own context menu items to watch expression ObjectTreeView tree elements to
allow removing a watch expression.

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._propertyPathIdentifierForTreeElement):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeAddHandler):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeExpandHandler):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeCollapseHandler):
Convert code to use let.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Main.html:

Misc. changes.

LayoutTests:

  • inspector/model/remote-object-fake-object-expected.txt: Added.
  • inspector/model/remote-object-fake-object.html: Added.
3:38 AM Changeset in webkit [188452] by Carlos Garcia Campos
  • 14 edits in releases/WebKitGTK/webkit-2.10/LayoutTests

Merge r188406 - Web Inspector: refactor ProtocolTest to be an InjectedTestHarness subclass
https://bugs.webkit.org/show_bug.cgi?id=147954

Reviewed by Joseph Pecoraro.

In preparation for sharing the same test harness API between protocol tests
and frontend tests, this patch refactors ProtocolTest into the desired
class structure. Each type of test (currently: protocol, frontend) extends
InjectedTestHarness and fills in a few key methods for communicating with
the test page-side code.

This patch standardizes on assert() only logging when the condition is false.
Update protocol tests to use ProtocolTestHarness.expectThat, rather than assert.

  • http/tests/inspector/resources/ProtocolTestStub.js:

(window.InjectedTestHarness):
(window.InjectedTestHarness.prototype.createAsyncSuite):
(window.InjectedTestHarness.prototype.createSyncSuite):
(window.InjectedTestHarness.prototype.completeTest):
(window.InjectedTestHarness.prototype.addResult):
(window.InjectedTestHarness.prototype.debugLog):
(window.InjectedTestHarness.prototype.evaluateInPage):
(window.InjectedTestHarness.prototype.importScript):
(window.InjectedTestHarness.prototype.get logCount):
(window.InjectedTestHarness.prototype.log):
(window.InjectedTestHarness.prototype.assert):
(window.InjectedTestHarness.prototype.expectThat):

(InjectedTestHarness.AsyncTestSuite): Use a stored reference to the harness
rather than hardcoding a specific InjectedTestHarness instance.

(InjectedTestHarness.AsyncTestSuite.prototype.runTestCasesAndFinish.finish):
(InjectedTestHarness.AsyncTestSuite.prototype.runTestCasesAndFinish):
(InjectedTestHarness.AsyncTestSuite.prototype.runTestCases):

(InjectedTestHarness.SyncTestSuite): Use a stored reference to the harness
rather than hardcoding a specific InjectedTestHarness instance.

(InjectedTestHarness.SyncTestSuite.prototype.runTestCasesAndFinish):
(InjectedTestHarness.SyncTestSuite.prototype.runTestCases):

(ProtocolTestHarness.prototype.completeTest):
(ProtocolTestHarness.prototype.addResult):
(ProtocolTestHarness.prototype.debugLog):
(ProtocolTestHarness.prototype.evaluateInPage):
(ProtocolTestHarness):
(InspectorProtocol.sendCommand):
(InspectorProtocol.awaitCommand):
(InspectorProtocol.awaitEvent.):
(InspectorProtocol.awaitEvent):
(InspectorProtocol.addEventListener):
(InspectorProtocol.sendMessage):
(InspectorProtocol.checkForError):
(InspectorFrontendAPI.dispatchMessageAsync):
(ProtocolTest.AsyncTestSuite): Moved.
(ProtocolTest.AsyncTestSuite.prototype.runTestCasesAndFinish.finish): Moved.
(ProtocolTest.AsyncTestSuite.prototype.runTestCasesAndFinish): Moved.
(ProtocolTest.AsyncTestSuite.prototype.runTestCases): Moved.
(ProtocolTest.SyncTestSuite): Moved.
(ProtocolTest.SyncTestSuite.prototype.runTestCasesAndFinish): Moved.
(ProtocolTest.SyncTestSuite.prototype.runTestCases): Moved.
(ProtocolTest.log): Moved.
(ProtocolTest.assert): Moved.
(ProtocolTest.debugLog): Moved.
(ProtocolTest.completeTest): Moved.
(ProtocolTest.importScript): Moved.

  • http/tests/inspector/resources/console-test.js:

(.suite.addTestCase.):
(.suite.addTestCase):
(ProtocolTest.Console.addTestCase):

  • http/tests/inspector/resources/protocol-test.js:

(closeTest):

  • inspector/console/console-message.html:
  • inspector/console/x-frame-options-message.html:
  • inspector/debugger/didSampleProbe-multiple-probes.html:
  • inspector/dom-debugger/node-removed.html:
  • inspector/dom/dom-remove-events.html:
  • inspector/runtime/getProperties.html:
  • inspector/unit-tests/async-test-suite-expected.txt:
  • inspector/unit-tests/async-test-suite.html:
  • inspector/unit-tests/sync-test-suite-expected.txt:
  • inspector/unit-tests/sync-test-suite.html:
3:36 AM Changeset in webkit [188451] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.10

Merge r188403 - Web Inspector: A {Map, WeakMap, Set, WeakSet} object contains itself will hang the console
https://bugs.webkit.org/show_bug.cgi?id=147966

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-13
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype._initialPreview):
Renamed to initial preview. This is not a complete preview for
this object, and it needs some processing in order to be a
complete accurate preview.

(InjectedScript.RemoteObject.prototype._emptyPreview):
This attempts to be an accurate empty preview for the given object.
For types with entries, it adds an empty entries list and updates
the overflow and lossless properties.

(InjectedScript.RemoteObject.prototype._createObjectPreviewForValue):
Take a generatePreview parameter to generate a full preview or empty preview.

(InjectedScript.RemoteObject.prototype._appendPropertyPreviews):
(InjectedScript.RemoteObject.prototype._appendEntryPreviews):
(InjectedScript.RemoteObject.prototype._isPreviewableObject):
Take care to avoid cycles.

Source/WebInspectorUI:

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
For empty overflow previews, don't show ", ..." if we didn't show any
values; just show "..." in these cases.

LayoutTests:

  • inspector/model/remote-object.html:
  • inspector/model/remote-object-expected.txt:

Add tests for a cylic array, set, and map.

3:34 AM Changeset in webkit [188450] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.10/Source/WebInspectorUI

Merge r188398 - Web Inspector: Hide child rows for filtered tasks in the Rendering Frames data grid
https://bugs.webkit.org/show_bug.cgi?id=147960

Reviewed by Timothy Hatcher.

  • UserInterface/Models/RenderingFrameTimelineRecord.js:

(WebInspector.RenderingFrameTimelineRecord.taskTypeForTimelineRecord):
New static method for mapping TimelineRecords to rendering frame tasks.
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask):
Refactored to use taskTypeForTimelineRecord.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
Task filtering is applied to children of the frame record only. Parent frame
record is hidden by default, and visible by virtue of having unfiltered children.

3:32 AM Changeset in webkit [188449] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebInspectorUI

Merge r188396 - Web Inspector: Clearing frames timeline doesn't remove current time marker
https://bugs.webkit.org/show_bug.cgi?id=147650

Reviewed by Timothy Hatcher.

The rendering frames timeline offsets all markers by 1px to align them on frame
boundaries, which causes the current time marker to be visible even with left: 0px.
We can exclude the current time marker without it being noticable during recording.

  • UserInterface/Views/TimelineOverview.css:
3:30 AM Changeset in webkit [188448] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebInspectorUI

Merge r188382 - REGRESSION (r188325): Web Inspector: Fix vertical spacing in CodeMirror
https://bugs.webkit.org/show_bug.cgi?id=147971

r188325 inceased line-height by 2px. Remove top and bottom 1px padding
to compensate for line-height changes.

In the feature we may highlight the backgroud of text tokens (e.g. for the
heatmap profiler) so we would want to get rid of the gaps between the lines
(caused by the paddind) regardless of this regression.

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CodeMirrorOverrides.css:

(.CodeMirror pre):

1:47 AM Changeset in webkit [188447] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix the build with !ENABLE(MEDIA_STREAM) after r188385.

  • UIProcess/API/C/WKUserMediaPermissionRequest.cpp:

(WKUserMediaPermissionRequestDeviceNamesVideo):
(WKUserMediaPermissionRequestDeviceNamesAudio):

1:45 AM Changeset in webkit [188446] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix GTK+ build after r188386.

  • UIProcess/API/gtk/WebKitWindowProperties.cpp:

(webkitWindowPropertiesUpdateFromWebWindowFeatures):

12:30 AM Changeset in webkit [188445] by fpizlo@apple.com
  • 2 edits in trunk/Tools

Unreviewed, shorten another test that is timing out.

  • TestWebKitAPI/Tests/WTF/Lock.cpp:

(TestWebKitAPI::TEST):

Aug 13, 2015:

11:46 PM Changeset in webkit [188444] by fpizlo@apple.com
  • 34 edits in trunk/Source

Use WTF::Lock and WTF::Condition instead of WTF::Mutex, WTF::ThreadCondition, std::mutex, and std::condition_variable
https://bugs.webkit.org/show_bug.cgi?id=147999

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • API/JSVirtualMachine.mm:

(initWrapperCache):
(+[JSVMWrapperCache addWrapper:forJSContextGroupRef:]):
(+[JSVMWrapperCache wrapperForJSContextGroupRef:]):
(wrapperCacheMutex): Deleted.

  • bytecode/SamplingTool.cpp:

(JSC::SamplingTool::doRun):
(JSC::SamplingTool::notifyOfScope):

  • bytecode/SamplingTool.h:
  • dfg/DFGThreadData.h:
  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::~Worklist):
(JSC::DFG::Worklist::isActiveForVM):
(JSC::DFG::Worklist::enqueue):
(JSC::DFG::Worklist::compilationState):
(JSC::DFG::Worklist::waitUntilAllPlansForVMAreReady):
(JSC::DFG::Worklist::removeAllReadyPlansForVM):
(JSC::DFG::Worklist::completeAllReadyPlansForVM):
(JSC::DFG::Worklist::visitWeakReferences):
(JSC::DFG::Worklist::removeDeadPlans):
(JSC::DFG::Worklist::queueLength):
(JSC::DFG::Worklist::dump):
(JSC::DFG::Worklist::runThread):

  • dfg/DFGWorklist.h:
  • disassembler/Disassembler.cpp:
  • heap/CopiedSpace.cpp:

(JSC::CopiedSpace::doneFillingBlock):
(JSC::CopiedSpace::doneCopying):

  • heap/CopiedSpace.h:
  • heap/CopiedSpaceInlines.h:

(JSC::CopiedSpace::recycleBorrowedBlock):
(JSC::CopiedSpace::allocateBlockForCopyingPhase):

  • heap/GCThread.cpp:

(JSC::GCThread::waitForNextPhase):
(JSC::GCThread::gcThreadMain):

  • heap/GCThreadSharedData.cpp:

(JSC::GCThreadSharedData::GCThreadSharedData):
(JSC::GCThreadSharedData::~GCThreadSharedData):
(JSC::GCThreadSharedData::startNextPhase):
(JSC::GCThreadSharedData::endCurrentPhase):
(JSC::GCThreadSharedData::didStartMarking):
(JSC::GCThreadSharedData::didFinishMarking):

  • heap/GCThreadSharedData.h:
  • heap/HeapTimer.h:
  • heap/MachineStackMarker.cpp:

(JSC::ActiveMachineThreadsManager::Locker::Locker):
(JSC::ActiveMachineThreadsManager::add):
(JSC::ActiveMachineThreadsManager::remove):
(JSC::ActiveMachineThreadsManager::ActiveMachineThreadsManager):
(JSC::MachineThreads::~MachineThreads):
(JSC::MachineThreads::addCurrentThread):
(JSC::MachineThreads::removeThreadIfFound):
(JSC::MachineThreads::tryCopyOtherThreadStack):
(JSC::MachineThreads::tryCopyOtherThreadStacks):
(JSC::MachineThreads::gatherConservativeRoots):

  • heap/MachineStackMarker.h:
  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::donateKnownParallel):
(JSC::SlotVisitor::drain):
(JSC::SlotVisitor::drainFromShared):
(JSC::SlotVisitor::mergeOpaqueRoots):

  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::containsOpaqueRootTriState):

  • inspector/remote/RemoteInspectorDebuggableConnection.h:
  • inspector/remote/RemoteInspectorDebuggableConnection.mm:

(Inspector::RemoteInspectorHandleRunSourceGlobal):
(Inspector::RemoteInspectorQueueTaskOnGlobalQueue):
(Inspector::RemoteInspectorInitializeGlobalQueue):
(Inspector::RemoteInspectorHandleRunSourceWithInfo):
(Inspector::RemoteInspectorDebuggableConnection::setup):
(Inspector::RemoteInspectorDebuggableConnection::closeFromDebuggable):
(Inspector::RemoteInspectorDebuggableConnection::close):
(Inspector::RemoteInspectorDebuggableConnection::sendMessageToBackend):
(Inspector::RemoteInspectorDebuggableConnection::queueTaskOnPrivateRunLoop):

  • interpreter/JSStack.cpp:

(JSC::JSStack::JSStack):
(JSC::JSStack::releaseExcessCapacity):
(JSC::JSStack::addToCommittedByteCount):
(JSC::JSStack::committedByteCount):
(JSC::stackStatisticsMutex): Deleted.
(JSC::JSStack::initializeThreading): Deleted.

  • interpreter/JSStack.h:

(JSC::JSStack::gatherConservativeRoots):
(JSC::JSStack::sanitizeStack):
(JSC::JSStack::size):
(JSC::JSStack::initializeThreading): Deleted.

  • jit/ExecutableAllocator.cpp:

(JSC::DemandExecutableAllocator::DemandExecutableAllocator):
(JSC::DemandExecutableAllocator::~DemandExecutableAllocator):
(JSC::DemandExecutableAllocator::bytesAllocatedByAllAllocators):
(JSC::DemandExecutableAllocator::bytesCommittedByAllocactors):
(JSC::DemandExecutableAllocator::dumpProfileFromAllAllocators):
(JSC::DemandExecutableAllocator::allocators):
(JSC::DemandExecutableAllocator::allocatorsMutex):

  • jit/JITThunks.cpp:

(JSC::JITThunks::ctiStub):

  • jit/JITThunks.h:
  • profiler/ProfilerDatabase.cpp:

(JSC::Profiler::Database::ensureBytecodesFor):
(JSC::Profiler::Database::notifyDestruction):

  • profiler/ProfilerDatabase.h:
  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

  • runtime/JSLock.cpp:

(JSC::GlobalJSLock::GlobalJSLock):
(JSC::GlobalJSLock::~GlobalJSLock):
(JSC::JSLockHolder::JSLockHolder):
(JSC::GlobalJSLock::initialize): Deleted.

  • runtime/JSLock.h:

Source/WTF:

  • wtf/Condition.h: "using WTF::Condition".
  • wtf/Lock.h:

(WTF::LockBase::lock):
(WTF::LockBase::tryLock): Add tryLock() because it turns out that we use it sometimes.
(WTF::LockBase::try_lock): unique_lock needs this.
(WTF::LockBase::unlock):

11:31 PM Changeset in webkit [188443] by timothy_horton@apple.com
  • 7 edits in trunk/Source

Performing a Lookup on wrapped text puts the popover arrow in the wrong place (off to the right)
https://bugs.webkit.org/show_bug.cgi?id=148012
<rdar://problem/19238094>

Reviewed by Simon Fraser.

  • platform/spi/mac/LookupSPI.h:

Add some SPI.

  • WebView/WebView.mm:

(-[WebView _animationControllerForDictionaryLookupPopupInfo:]):
(-[WebView _showDictionaryLookupPopup:]):
Adopt the new SPI, handing it the first text rect, instead of having it
guess where to put the popover.
Also, null-check the TextIndicator.

  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::didPerformDictionaryLookup):

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController _animationControllerForText]):
Adopt the new SPI, handing it the first text rect, instead of having it
guess where to put the popover.

11:21 PM Changeset in webkit [188442] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Can't resize split console when window is too narrow
https://bugs.webkit.org/show_bug.cgi?id=147924

Make some items inside of the navigation bar click-through to incsease
the draggable area.

Reviewed by Timothy Hatcher.

  • UserInterface/Views/Main.css:

(#split-content-browser > .navigation-bar > :matches(.hierarchical-path, .log-search-bar, .log-scope-bar)):
(#split-content-browser > .navigation-bar > :matches(.log-search-bar, .log-scope-bar) > :matches(li, input)):

11:06 PM Changeset in webkit [188441] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Unreviewed, rolling out r188418.
https://bugs.webkit.org/show_bug.cgi?id=148017

Fix EFL after the rollout of r188404 (Requested by smfr on
#webkit).

Reverted changeset:

"[CMake] Unreviewed build fix after r188404"
http://trac.webkit.org/changeset/188418

10:58 PM Changeset in webkit [188440] by Simon Fraser
  • 2 edits in trunk/Source/WebKit/win

Windows build fix.

  • FullscreenVideoController.cpp:
10:48 PM Changeset in webkit [188439] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Another Windows build fix.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
10:36 PM Changeset in webkit [188438] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Try to fix Windows build after r188430.

  • platform/graphics/ca/win/PlatformCALayerWin.h:
10:23 PM Changeset in webkit [188437] by Simon Fraser
  • 11 edits in trunk/Source/WebCore

Generated files don't all need to include ScriptExecutionContext.h
https://bugs.webkit.org/show_bug.cgi?id=148011

Reviewed by Alexey Proskuryakov.

Generated files which are not callbacks or constructors do not need to include
ScriptExecutionContext.h.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation): Deleted.

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bindings/scripts/test/JS/JSattribute.cpp:
9:53 PM Changeset in webkit [188436] by commit-queue@webkit.org
  • 11 edits
    1 delete in trunk

Unreviewed, rolling out r188428.
https://bugs.webkit.org/show_bug.cgi?id=148015

broke cmake build (Requested by alexchristensen on #webkit).

Reverted changeset:

"Move some commands from ./CMakeLists.txt to Source/cmake"
https://bugs.webkit.org/show_bug.cgi?id=148003
http://trac.webkit.org/changeset/188428

9:41 PM Changeset in webkit [188435] by commit-queue@webkit.org
  • 10 edits
    4 deletes in trunk/Source/WebKit2

Unreviewed, rolling out r188404.
https://bugs.webkit.org/show_bug.cgi?id=148014

Broke 4 API tests (Requested by smfr on #webkit).

Reverted changeset:

"Add WKWindowFeaturesRef and a new modern createNewPage UI
client callback"
https://bugs.webkit.org/show_bug.cgi?id=147989
http://trac.webkit.org/changeset/188404

9:38 PM Changeset in webkit [188434] by commit-queue@webkit.org
  • 6 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r188431.
https://bugs.webkit.org/show_bug.cgi?id=148013

JSC headers are too hard to understand (Requested by smfr on
#webkit).

Reverted changeset:

"Remove a few includes from JSGlobalObject.h"
https://bugs.webkit.org/show_bug.cgi?id=148004
http://trac.webkit.org/changeset/188431

9:34 PM Changeset in webkit [188433] by Alan Bujtas
  • 33 edits in trunk/Source/WebCore

Remove pixelSnapped* functions from RenderBoxModelObject/RenderBox.
https://bugs.webkit.org/show_bug.cgi?id=147982

Reviewed by Simon Fraser.

RenderBoxModelObject/RenderBox::pixelSnapped* functions are misleading.
They all round to integral values, while the rest of the pixel snapping
functions round to device pixels.
This patch moves integral rounding to the callers. (Note that they all will eventually
go away as we convert additional modules to subpixel rendering (tables, scrolling etc).)

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

  • dom/Element.cpp:

(WebCore::Element::offsetLeft):
(WebCore::Element::offsetTop):
(WebCore::Element::offsetWidth):
(WebCore::Element::offsetHeight):
(WebCore::Element::clientWidth):
(WebCore::Element::clientHeight):

  • dom/Position.cpp:

(WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::width):
(WebCore::HTMLImageElement::height):

  • html/shadow/SpinButtonElement.cpp:

(WebCore::SpinButtonElement::defaultEventHandler):

  • inspector/InspectorOverlay.cpp:

(WebCore::buildObjectForElementData):

  • page/FrameView.cpp:

(WebCore::FrameView::applyPaginationToViewport):
(WebCore::FrameView::calculateScrollbarModesForLayout):
(WebCore::FrameView::calculateExtendedBackgroundMode):
(WebCore::FrameView::qualifiesAsVisuallyNonEmpty):

  • page/PrintContext.cpp:

(WebCore::PrintContext::pageNumberForElement):

  • platform/graphics/LayoutRect.h:

(WebCore::LayoutRect::pixelSnappedSize): Deleted.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::pixelSnappedClientWidth): Deleted.
(WebCore::RenderBox::pixelSnappedClientHeight): Deleted.
(WebCore::RenderBox::pixelSnappedOffsetWidth): Deleted.
(WebCore::RenderBox::pixelSnappedOffsetHeight): Deleted.

  • rendering/RenderBox.h:

(WebCore::RenderBox::pixelSnappedLogicalHeight): Deleted.
(WebCore::RenderBox::pixelSnappedLogicalWidth): Deleted.
(WebCore::RenderBox::pixelSnappedSize): Deleted.
(WebCore::RenderBox::pixelSnappedBorderBoxRect): Deleted.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::pixelSnappedOffsetWidth): Deleted.
(WebCore::RenderBoxModelObject::pixelSnappedOffsetHeight): Deleted.

  • rendering/RenderBoxModelObject.h:

(WebCore::RenderBoxModelObject::pixelSnappedOffsetLeft): Deleted.
(WebCore::RenderBoxModelObject::pixelSnappedOffsetTop): Deleted.

  • rendering/RenderFileUploadControl.cpp:

(WebCore::nodeWidth):
(WebCore::nodeHeight):
(WebCore::RenderFileUploadControl::maxFilenameWidth):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPosition):
(WebCore::RenderLayer::perspectiveTransform):
(WebCore::RenderLayer::clampScrollOffset):
(WebCore::RenderLayer::visibleSize):
(WebCore::RenderLayer::positionOverflowControls):
(WebCore::RenderLayer::hasHorizontalOverflow):
(WebCore::RenderLayer::hasVerticalOverflow):
(WebCore::RenderLayer::updateScrollbarsAfterLayout):
(WebCore::RenderLayer::overflowControlsIntersectRect):
(WebCore::RenderLayer::isPointInResizeControl):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::positionOverflowControlsLayers):
(WebCore::RenderLayerBacking::startAnimation):
(WebCore::RenderLayerBacking::startTransition):

  • rendering/RenderLayerBacking.h:
  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::scrollWidth):
(WebCore::RenderListBox::scrollHeight):

  • rendering/RenderMediaControlElements.cpp:

(WebCore::RenderMediaVolumeSliderContainer::layout):

  • rendering/RenderScrollbar.cpp:

(WebCore::RenderScrollbar::buttonRect):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::addOverflowFromChildren):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::computeIntrinsicPadding):
(WebCore::RenderTableCell::paintCollapsedBorders):
(WebCore::RenderTableCell::paintBackgroundsBehindCell):
(WebCore::RenderTableCell::paintBoxDecorations):
(WebCore::RenderTableCell::paintMask):

  • rendering/RenderTableCell.h:

(WebCore::RenderTableCell::logicalHeightForRowSizing):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):

  • rendering/RenderTheme.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart):
(WebCore::RenderThemeMac::paintSearchFieldResultsButton):

  • rendering/RenderTreeAsText.cpp:

(WebCore::write):

  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::paint):

  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::paint):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::paintReplaced):
(WebCore::RenderSVGRoot::computeFloatRectForRepaint):

8:54 PM Changeset in webkit [188432] by benjamin@webkit.org
  • 13 edits
    8 adds in trunk/Source/JavaScriptCore

[JSC] Add support for GetByVal on arrays of Undecided shape
https://bugs.webkit.org/show_bug.cgi?id=147814

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-08-13
Reviewed by Filip Pizlo.

Previously, GetByVal on Array::Undecided would just take
the generic path. The problem is the generic path is so
slow that it could take a significant amount of time
even for unfrequent accesses.

With this patch, if the following conditions are met,
the GetByVal just returns a "undefined" constant:
-The object is an OriginalArray.
-The prototype chain is sane.
-The index is an integer.
-The integer is positive (runtime check).

Ideally, the 4th conditions should be removed
deducing a compile-time constant gives us so much better
opportunities at getting rid of this code.

There are two cases where this patch removes the runtime
check:
-If the index is constant (uncommon but easy)
-If the index is within a range known to be positive.

(common case and made possible with DFGIntegerRangeOptimizationPhase).

When we get into those cases, DFG just nukes everything
and all we have left is a structure check :)

This patch is a 14% improvement on audio-beat-detection,
a few percent faster here and there and no regression.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
If the index is a positive constant, we can get rid of the GetByVal
entirely. :)

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::fromObserved):
The returned type is now Array::Undecided + profiling information.
The useful type is set in ArrayMode::refine().

(JSC::DFG::ArrayMode::refine):
If we meet the particular set conditions, we speculate an Undecided
array type with sane chain. Anything else comes back to Generic.

(JSC::DFG::ArrayMode::originalArrayStructure):
To enable the structure check for Undecided array.

(JSC::DFG::ArrayMode::alreadyChecked):

  • dfg/DFGArrayMode.h:

(JSC::DFG::ArrayMode::withProfile):
(JSC::DFG::ArrayMode::canCSEStorage):
(JSC::DFG::ArrayMode::benefitsFromOriginalArray):
(JSC::DFG::ArrayMode::lengthNeedsStorage): Deleted.
(JSC::DFG::ArrayMode::isSpecific): Deleted.A

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsic): Deleted.
This is somewhat unrelated.

Having Array::Undecided on ArrayPush was impossible before
since ArrayMode::fromObserved() used to return Array::Generic.

Now that Array::Undecided is possible, we must make sure not
to provide it to ArrayPush since there is no code to handle it
properly.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):
The operation only depends on the index, it is pure.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode): Deleted.

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::jumpSlowForUnwantedArrayMode):
(JSC::DFG::SpeculativeJIT::checkArray):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileGetByVal):

  • tests/stress/get-by-val-on-undecided-array-type.js: Added.
  • tests/stress/get-by-val-on-undecided-sane-chain-1.js: Added.
  • tests/stress/get-by-val-on-undecided-sane-chain-2.js: Added.
  • tests/stress/get-by-val-on-undecided-sane-chain-3.js: Added.
  • tests/stress/get-by-val-on-undecided-sane-chain-4.js: Added.
  • tests/stress/get-by-val-on-undecided-sane-chain-5.js: Added.
  • tests/stress/get-by-val-on-undecided-sane-chain-6.js: Added.
7:36 PM Changeset in webkit [188431] by Simon Fraser
  • 6 edits in trunk/Source/JavaScriptCore

Remove a few includes from JSGlobalObject.h
https://bugs.webkit.org/show_bug.cgi?id=148004

Reviewed by Tim Horton.

Remove 4 #includes from JSGlobalObject.h, and fix the fallout.

  • parser/VariableEnvironment.cpp:
  • parser/VariableEnvironment.h:
  • runtime/JSGlobalObject.h:
  • runtime/Structure.h:
  • runtime/StructureInlines.h:
7:23 PM Changeset in webkit [188430] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Minor GraphicsLayer.h/PlatformCALayer.h cleanup
https://bugs.webkit.org/show_bug.cgi?id=148009

Reviewed by Tim Horton.

Remove some #includes.

  • platform/graphics/GraphicsLayer.h:
  • platform/graphics/ca/PlatformCALayer.h:
7:20 PM Changeset in webkit [188429] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Flash DOM node attribute on change
https://bugs.webkit.org/show_bug.cgi?id=147973

Reviewed by Timothy Hatcher.

Whenever an attribute on a DOM node changes, flash the attribute value.
If that value doesn't exist, flash the attribute name instead.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement):
(WebInspector.DOMTreeElement.prototype.nodeChanged):
(WebInspector.DOMTreeElement.prototype._buildAttributeDOM):
If the node has been marked with a general change, mark the attribute element for animation.
(WebInspector.DOMTreeElement.prototype._markNodeChanged.animationEnd):
(WebInspector.DOMTreeElement.prototype._markNodeChanged):
Adds a class to the given element that applies a simple background flash animation.
(WebInspector.DOMTreeElement.prototype._fireDidChange):
Add the animation class once all building of the represented DOM object for that node is done.

  • UserInterface/Views/DOMTreeOutline.css:

(@keyframes node-state-changed):
Applies a semi-transparent background that fades to default.
(.node-state-changed):

  • UserInterface/Views/DOMTreeUpdater.js:

(WebInspector.DOMTreeUpdater.prototype._attributesUpdated):
Now passes along the name of the modified attribute.
(WebInspector.DOMTreeUpdater.prototype._updateModifiedNodes):
If the modified node object has an attribute member, mark the node as being generally changed.

7:14 PM Changeset in webkit [188428] by commit-queue@webkit.org
  • 11 edits
    1 add in trunk

Move some commands from ./CMakeLists.txt to Source/cmake
https://bugs.webkit.org/show_bug.cgi?id=148003

Patch by Alex Christensen <achristensen@webkit.org> on 2015-08-13
Reviewed by Brent Fulgham.

  • CMakeLists.txt:

.:

Moved functionality to WebKitCommon.cmake and WebKitFS.cmake and made conditional
so we can change directory structure from command line parameters.

  • Source/cmake/WebKitCommon.cmake: Added.
  • Source/cmake/WebKitFS.cmake:

Source/JavaScriptCore:

Added commands needed to build JSC by itself.

Source/WebCore:

Added commands needed to build WebCore by itself.

Source/WebKit:

Added some commands needed to build WebKit by itself.

Source/WTF:

Added commands needed to build WTF by itself.

6:51 PM Changeset in webkit [188427] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r184000): Web Inspector: Stripped whitespace after editing CSS in Styles sidebar
https://bugs.webkit.org/show_bug.cgi?id=145679

Reviewed by Timothy Hatcher.

The formatter will now calculate the number of beginning spaces before the first line in a rule
and duplicate them in front of every other line. If there is no new line at the beginning or are
no spaces, assume 4 spaces and a new line for each property.
Also cleaned up the code for _resetContent a bit.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.set get this):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.get this):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent):

6:29 PM Changeset in webkit [188426] by Joseph Pecoraro
  • 2 edits in trunk/LayoutTests

Web Inspector: Reduce flakiness of inspector/indexeddb/requestDatabaseNames
https://bugs.webkit.org/show_bug.cgi?id=148008

Reviewed by Timothy Hatcher.

  • inspector/indexeddb/requestDatabaseNames.html:

Follow-up fix to reduce flakiness in the test caused by other tests
creating IndexedDB databases.

6:06 PM Changeset in webkit [188425] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Try to fix the Gtk/EFL build.

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::updateFindIndicator):

6:06 PM Changeset in webkit [188424] by bshafiei@apple.com
  • 3 edits in branches/safari-601.1-branch/Source/WebCore

Merged r188416. rdar://problem/21367467

5:45 PM Changeset in webkit [188423] by jhoneycutt@apple.com
  • 2 edits
    3 adds in trunk/LayoutTests

iOS test gardening.

  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator-wk1/fast/forms/indeterminate-progress-inline-height-expected.txt: Added.
  • platform/ios-simulator-wk1/fast/forms/input-appearance-spinbutton-expected.txt: Added.
  • platform/ios-simulator-wk1/fast/forms/input-appearance-spinbutton-up-expected.txt: Added.
5:23 PM Changeset in webkit [188422] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

5:09 PM Changeset in webkit [188421] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.10

New tag.

5:06 PM Changeset in webkit [188420] by timothy_horton@apple.com
  • 47 edits in trunk/Source

Refactor and improve TextIndicator to prepare for tests
https://bugs.webkit.org/show_bug.cgi?id=147622

Reviewed by Simon Fraser.

No new tests because they're coming soon!

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::TextIndicator):
(WebCore::TextIndicator::~TextIndicator):
(WebCore::TextIndicator::createWithRange):
(WebCore::TextIndicator::createWithSelectionInFrame):
(WebCore::hasNonInlineOrReplacedElements):
(WebCore::snapshotOptionsForTextIndicatorOptions):
(WebCore::takeSnapshot):
(WebCore::takeSnapshots):
(WebCore::initializeIndicator):
(WebCore::snapshotSelectionWithHighlight): Deleted.
(WebCore::TextIndicator::wantsBounce): Deleted.
(WebCore::TextIndicator::wantsContentCrossfade): Deleted.
(WebCore::TextIndicator::wantsFadeIn): Deleted.
(WebCore::TextIndicator::wantsManualAnimation): Deleted.

  • page/TextIndicator.h:

(WebCore::TextIndicator::indicatesCurrentSelection):
(WebCore::TextIndicator::setWantsMargin): Deleted.
(WebCore::TextIndicator::wantsMargin): Deleted.
Rename wantsMargin to indicatesCurrentSelection. It's really about whether
the TextIndicator indicates the existing selection, and the Mac presentation
just uses that to determine whether or not to show a margin, but that
margin has nothing to do with the cross-platform TextIndicator code.

Move most of the snapshotting and rect gathering code to initializeTextIndicator, and call it
from both ::createWithRange and ::createWithSelectionInFrame, instead of calling
::createWithSelectionInFrame from ::createWithRange after setting the selection.
This way, the range passed into ::createWithRange is preserved for use in initializeTextIndicator,
instead of round-tripping through selection code, which can change it (e.g. in the case
of user-select: none; elements).

Add TextIndicatorOptions, which allow callers to adjust the behavior of TextIndicator
instead of having #if PLATFORM(X) strewn throughout TextIndicator.

Add an option which was previously implemented at the iOS-specific callsites,
TextIndicatorOptionUseBoundingRectAndPaintAllContentForComplexRanges,
which falls back to indicating a bounding rect and not doing a range-only paint
if the given range includes any non-inline elements or any replaced elements.
This makes it so that we do something reasonable-looking for very complex ranges,
like article links on the New York Times, which include multiple disparate paragraphs
of text and one or more images, and also so that indicating a range that only
includes an image does something fairly reasonable.

Move presentation-specific functions (wantsBounce, wantsContentCrossfade, etc.)
to TextIndicatorWindow. Ideally TextIndicatorPresentationTransition would also move,
but that is a fairly large and complicated change that should be made separately.

  • page/mac/TextIndicatorWindow.h:
  • page/mac/TextIndicatorWindow.mm:

(indicatorWantsBounce):
(indicatorWantsContentCrossfade):
(indicatorWantsFadeIn):
(indicatorWantsManualAnimation):
(-[WebTextIndicatorView initWithFrame:textIndicator:margin:offset:]):
(-[WebTextIndicatorView _animationDuration]):
(-[WebTextIndicatorView present]):
(WebCore::TextIndicatorWindow::~TextIndicatorWindow):
(WebCore::TextIndicatorWindow::clearTextIndicator):
(WebCore::TextIndicatorWindow::setTextIndicator):
Rename TextIndicatorDismissalAnimation to TextIndicatorWindowDismissalAnimation,
and TextIndicatorLifetime to TextIndicatorWindowLifetime, because
they are TextIndicatorWindow specific.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange):

  • bindings/objc/DOM.mm:

(-[DOMNode getPreviewSnapshotImage:andRects:]):
(-[DOMRange boundingBox]):
(-[DOMRange textRects]):

  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::addTextMatchMarker):

  • dom/Node.cpp:

(WebCore::Node::textRects):

  • dom/Range.cpp:

(WebCore::Range::intersectsNode):
(WebCore::Range::absoluteBoundingBox):
(WebCore::Range::absoluteTextRects):
(WebCore::Range::absoluteTextQuads):
(WebCore::Range::getClientRects):
(WebCore::Range::getBoundingClientRect):
(WebCore::Range::getBorderAndTextQuads):
(WebCore::Range::boundingRectInternal):
(WebCore::Range::absoluteBoundingRect):
(WebCore::Range::boundingBox): Deleted.
(WebCore::Range::textRects): Deleted.
(WebCore::Range::textQuads): Deleted.
(WebCore::Range::boundingRect): Deleted.

  • dom/Range.h:
  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::rootViewRectForRange):

  • editing/Editor.cpp:

(WebCore::Editor::findStringAndScrollToVisible):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::getClippedVisibleTextRectangles):

  • editing/mac/DataDetection.mm:

(WebCore::DataDetection::detectItemAroundHitTestResult):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::absoluteBoundingBoxRectForRange):
Rename various Range methods to make it clear whether they return absolute or client rects.

  • WebView/WebFrame.mm:

(-[WebFrame _rectsForRange:]):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _lookUpInDictionaryFromMenu:]):
(-[WebHTMLView quickLookWithEvent:]):

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController webView:didHandleScrollWheel:]):
(-[WebImmediateActionController _cancelImmediateAction]):
(-[WebImmediateActionController immediateActionRecognizerDidCancelAnimation:]):
(-[WebImmediateActionController _defaultAnimationController]):
(-[WebImmediateActionController menuItemDidClose:]):
(-[WebImmediateActionController _animationControllerForDataDetectedText]):
(-[WebImmediateActionController _animationControllerForDataDetectedLink]):
(dictionaryPopupInfoForRange):

  • WebView/WebView.mm:

(-[WebView _animationControllerForDictionaryLookupPopupInfo:]):
(-[WebView _setTextIndicator:]):
(-[WebView _setTextIndicator:withLifetime:]):
(-[WebView _clearTextIndicatorWithAnimation:]):
(-[WebView _showDictionaryLookupPopup:]):
(-[WebView _dictionaryLookupPopoverWillClose:]):

  • WebView/WebViewInternal.h:

Adopt TextIndicatorOptions.
Adjust to Range method renames.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::encodeOptionalImage):
(IPC::decodeOptionalImage):
(IPC::ArgumentCoder<TextIndicatorData>::encode):
(IPC::ArgumentCoder<TextIndicatorData>::decode):
Move encode/decodeOptionalImage to their own functions to avoid duplication.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _dictionaryLookupPopoverWillClose:]):
(-[WKView _setTextIndicator:]):
(-[WKView _setTextIndicator:withLifetime:]):
(-[WKView _clearTextIndicatorWithAnimation:]):
(-[WKView _dismissContentRelativeChildWindows]):
(-[WKView _dismissContentRelativeChildWindowsWithAnimation:]):

  • UIProcess/API/mac/WKViewInternal.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setTextIndicator):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::setTextIndicator):
(WebKit::PageClientImpl::clearTextIndicator):

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::setTextIndicator):
(WebKit::PageClientImpl::clearTextIndicator):
(WebKit::PageClientImpl::didPerformDictionaryLookup):

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController _animationControllerForText]):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::updateFindIndicator):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):
(WebKit::shouldUseTextIndicatorForLink): Deleted.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::dictionaryPopupInfoForRange):
(WebKit::WebPage::performImmediateActionHitTestAtLocation):
Adopt TextIndicatorOptions.
Adjust to Range method renames.

  • WebCoreSupport/WebFrameIOS.mm:

(-[WebFrame closestCaretRectInMarkedTextRangeForPoint:]):
Adjust to Range method renames.

5:01 PM Changeset in webkit [188419] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

AppScale: Assertion hit when hovering a webkit-queue bubble
https://bugs.webkit.org/show_bug.cgi?id=147997

Patch by Aakash Jain <aakash_jain@apple.com> on 2015-08-13
Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueue.js:

(BubbleQueue.prototype.loadDetailedStatus): Strip off http(s) before asserting.

4:59 PM Changeset in webkit [188418] by ljaehun.lim@samsung.com
  • 2 edits in trunk/Source/WebKit2

[CMake] Unreviewed build fix after r188404

  • CMakeLists.txt: Add UIProcess/API/APIWindowFeatures.cpp, UIProcess/API/C/WKWindowFeaturesRef.cpp
4:55 PM Changeset in webkit [188417] by Yusuke Suzuki
  • 20 edits in trunk/Source/JavaScriptCore

Unify JSParserCodeType, FunctionParseMode and ModuleParseMode into SourceParseMode
https://bugs.webkit.org/show_bug.cgi?id=147353

Reviewed by Saam Barati.

This is the follow-up patch after r188355.
It includes the following changes.

  • Unify JSParserCodeType, FunctionParseMode and ModuleParseMode into SourceParseMode
  • Make SourceParseMode to C++ strongly-typed enum.
  • Fix the comments.
  • Rename ModuleSpecifier to ModuleName.
  • Add the type name ImportEntry before the C++11 uniform initialization.
  • Fix the thrown message for duplicate 'default' names.
  • Assert the all statements in the top-level source elements are the module declarations under the module analyzer phase.
  • API/JSScriptRef.cpp:

(parseScript):

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createExecutableInternal):

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateFunctionCodeBlock):

  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::makeFunction):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createFunctionMetadata):
(JSC::ASTBuilder::createModuleName):
(JSC::ASTBuilder::createImportDeclaration):
(JSC::ASTBuilder::createExportAllDeclaration):
(JSC::ASTBuilder::createExportNamedDeclaration):
(JSC::ASTBuilder::createModuleSpecifier): Deleted.

  • parser/ModuleAnalyzer.cpp:

(JSC::ModuleAnalyzer::analyze):

  • parser/NodeConstructors.h:

(JSC::ModuleNameNode::ModuleNameNode):
(JSC::ImportDeclarationNode::ImportDeclarationNode):
(JSC::ExportAllDeclarationNode::ExportAllDeclarationNode):
(JSC::ExportNamedDeclarationNode::ExportNamedDeclarationNode):
(JSC::ModuleSpecifierNode::ModuleSpecifierNode): Deleted.

  • parser/Nodes.cpp:

(JSC::FunctionMetadataNode::FunctionMetadataNode):

  • parser/Nodes.h:

(JSC::StatementNode::isModuleDeclarationNode):
(JSC::ModuleDeclarationNode::isModuleDeclarationNode):
(JSC::ImportDeclarationNode::moduleName):
(JSC::ExportAllDeclarationNode::moduleName):
(JSC::ExportNamedDeclarationNode::moduleName):
(JSC::ImportDeclarationNode::moduleSpecifier): Deleted.
(JSC::ExportAllDeclarationNode::moduleSpecifier): Deleted.
(JSC::ExportNamedDeclarationNode::moduleSpecifier): Deleted.

  • parser/NodesAnalyzeModule.cpp:

(JSC::SourceElements::analyzeModule):
(JSC::ImportDeclarationNode::analyzeModule):
(JSC::ExportAllDeclarationNode::analyzeModule):
(JSC::ExportNamedDeclarationNode::analyzeModule):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseModuleSourceElements):
(JSC::Parser<LexerType>::parseFunctionBody):
(JSC::stringForFunctionMode):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseModuleName):
(JSC::Parser<LexerType>::parseImportDeclaration):
(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parsePropertyMethod):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseArrowFunctionExpression):
(JSC::Parser<LexerType>::parseModuleSpecifier): Deleted.

  • parser/Parser.h:

(JSC::Parser<LexerType>::parse):
(JSC::parse):

  • parser/ParserModes.h:

(JSC::isFunctionParseMode):
(JSC::isModuleParseMode):
(JSC::isProgramParseMode):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createFunctionMetadata):
(JSC::SyntaxChecker::createModuleName):
(JSC::SyntaxChecker::createImportDeclaration):
(JSC::SyntaxChecker::createExportAllDeclaration):
(JSC::SyntaxChecker::createExportNamedDeclaration):
(JSC::SyntaxChecker::createModuleSpecifier): Deleted.

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):

  • runtime/Completion.cpp:

(JSC::checkSyntax):
(JSC::checkModuleSyntax):

  • runtime/Executable.cpp:

(JSC::ProgramExecutable::checkSyntax):

  • tests/stress/modules-syntax-error-with-names.js:
4:39 PM Changeset in webkit [188416] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Don't short circuit seeking
https://bugs.webkit.org/show_bug.cgi?id=147892

Reviewed by Eric Carlson.

When two seekWithTolerance() requests come in before the first is acted upon in seekTask(),
the second will result in a "no seek required" conditional, because the new "currentTime" is
assumed to be the destination time of the first seek.

When cancelling a pending seek, first replace the "now" value with the "now" value from the
replaced seek, thus preserving the original currentTime across all replacement seeks.

Drive-by fix: some added logging causes occasional crashes, due to the underlying object being
accessed having been deleted.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::seekWithTolerance):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime):

4:38 PM Changeset in webkit [188415] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

WorkQueue::dispatchAfter() on Windows fires early.
https://bugs.webkit.org/show_bug.cgi?id=147992

Reviewed by Brent Fulgham.

The Windows implementation of WorkQueue::dispatchAfter() uses CreateTimerQueueTimer().
Unfortunately, CreateTimerQueueTimer() is sloppy and can fire early. We need to compensate
for this slop to ensure that the specified duration does expire before the callback function
is called. Otherwise, the JSC watchdog (which depends on this) can fail randomly.

  • wtf/win/WorkQueueWin.cpp:

(WTF::WorkQueue::dispatchAfter):

4:26 PM Changeset in webkit [188414] by Lucas Forschler
  • 2 edits in trunk/Tools

Teach Scripts/copy-webkitlibraries-to-product-directory to copy the El Capitan Library.

Unreviewed.

  • Scripts/copy-webkitlibraries-to-product-directory:
4:25 PM Changeset in webkit [188413] by Lucas Forschler
  • 2 edits
    1 add in trunk/WebKitLibraries

Update WebKitSystemInterface Libraries.

4:05 PM Changeset in webkit [188412] by jhoneycutt@apple.com
  • 30 edits in trunk/LayoutTests

Rebaseline some iOS simulator test results for font changes.

Rubber-stamped by Sam Weinig.

  • platform/ios-simulator/editing/selection/vertical-lr-ltr-extend-line-backward-br-expected.txt:
  • platform/ios-simulator/editing/selection/vertical-lr-ltr-extend-line-forward-br-expected.txt:
  • platform/ios-simulator/editing/selection/vertical-rl-ltr-extend-line-backward-br-expected.txt:
  • platform/ios-simulator/editing/selection/vertical-rl-ltr-extend-line-backward-p-expected.txt:
  • platform/ios-simulator/editing/selection/vertical-rl-ltr-extend-line-backward-wrap-expected.txt:
  • platform/ios-simulator/editing/selection/vertical-rl-ltr-extend-line-forward-br-expected.txt:
  • platform/ios-simulator/editing/selection/vertical-rl-ltr-extend-line-forward-p-expected.txt:
  • platform/ios-simulator/editing/selection/vertical-rl-ltr-extend-line-forward-wrap-expected.txt:
  • platform/ios-simulator/fast/ruby/bopomofo-expected.txt:
  • platform/ios-simulator/fast/ruby/bopomofo-letter-spacing-expected.txt:
  • platform/ios-simulator/fast/ruby/bopomofo-rl-expected.txt:
  • platform/ios-simulator/fast/text/backslash-to-yen-sign-euc-expected.txt:
  • platform/ios-simulator/fast/text/backslash-to-yen-sign-expected.txt:
  • platform/ios-simulator/fast/text/font-weights-zh-expected.txt:
  • platform/ios-simulator/fast/text/indic-expected.txt:
  • platform/ios-simulator/fast/text/international/plane2-expected.txt:
  • platform/ios-simulator/fast/text/international/synthesized-italic-vertical-latin-expected.txt:
  • platform/ios-simulator/fast/text/international/text-combine-image-test-expected.txt:
  • platform/ios-simulator/fast/text/international/text-spliced-font-expected.txt:
  • platform/ios-simulator/fast/text/tatechuyoko-expected.txt:
  • platform/ios-simulator/fast/text/text-combine-different-fonts-expected.txt:
  • platform/ios-simulator/fast/writing-mode/japanese-lr-selection-expected.txt:
  • platform/ios-simulator/fast/writing-mode/japanese-lr-text-expected.txt:
  • platform/ios-simulator/fast/writing-mode/japanese-rl-selection-expected.txt:
  • platform/ios-simulator/fast/writing-mode/japanese-rl-text-expected.txt:
  • platform/ios-simulator/fast/writing-mode/japanese-ruby-horizontal-bt-expected.txt:
  • platform/ios-simulator/fast/writing-mode/japanese-ruby-vertical-lr-expected.txt:
  • platform/ios-simulator/fast/writing-mode/japanese-ruby-vertical-rl-expected.txt:
  • platform/ios-simulator/fast/writing-mode/vertical-align-table-baseline-expected.txt:
4:00 PM Changeset in webkit [188411] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

Prospective Mac/iOS build fix after the last Windows build fix.

  • page/CaptionUserPreferences.cpp:
  • page/UserContentController.cpp:
3:39 PM Changeset in webkit [188410] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Run benchmark customized Dromaeo should not assume there is an internet connection.
https://bugs.webkit.org/show_bug.cgi?id=147995

Patch by Dewei Zhu <Dewei Zhu> on 2015-08-13
Reviewed by Ryosuke Niwa.

Add several dependency js libs to local.

  • Scripts/webkitpy/benchmark_runner/data/patches/Dromaeo.patch:
3:31 PM Changeset in webkit [188409] by Brent Fulgham
  • 5 edits in trunk/Source/WebCore

[Win] More build fixes.

  • dom/make_event_factory.pl:

(generateImplementation):

  • page/CaptionUserPreferences.cpp:
  • page/PageGroup.cpp:
  • page/UserContentController.cpp:
3:27 PM Changeset in webkit [188408] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Skip rendering frame records without children
https://bugs.webkit.org/show_bug.cgi?id=147993

Reviewed by Reviewed by Joseph Pecoraro.

This became an issue for frames which include an IndexedDB "success" event. This caused the
payload to pass the "has children" test, but resulted in model objects with no child records.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype.eventRecorded):
Fixed record type check and moved rendering frame index assignment.

  • UserInterface/Models/RenderingFrameTimelineRecord.js:

(WebInspector.RenderingFrameTimelineRecord):
(WebInspector.RenderingFrameTimelineRecord.prototype.setupFrameIndex):
Frame index is now set externally, and can only be set once.

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView.prototype._renderingFrameTimelineRecordAdded):
Added assertion.

3:03 PM Changeset in webkit [188407] by Joseph Pecoraro
  • 10 edits
    3 adds in trunk

Web Inspector: Watch Expressions
https://bugs.webkit.org/show_bug.cgi?id=147904

Reviewed by Brian Burg.

Source/WebInspectorUI:

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject):
A RemoteObject's description string is optional, but we always
assume it exists and is a string, so default to the empty string.

  • UserInterface/Controllers/RuntimeManager.js:

(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow.evalCallback):
Include the object group in the DidEvaluate event.

(WebInspector.RemoteObject.fakeRemoteObject):
(WebInspector.RemoteObject.prototype.getDisplayablePropertyDescriptors):
(WebInspector.RemoteObject.prototype.deprecatedGetDisplayableProperties.get return):
(WebInspector.RemoteObject.prototype.deprecatedGetDisplayableProperties):
(WebInspector.RemoteObject.prototype._isFakeObject):
(WebInspector.RemoteObject.prototype._getPropertyDescriptors):
(WebInspector.RemoteObject.prototype._deprecatedGetProperties):
Support a fake RemoteObject. We use this fake RemoteObject to
back a ObjectTreeView where we add custom Properties which are of the form
"Expressions => RemoteObject" instead of "Object Property => RemoteObject".
Ensure a fake remote object is not used in unexpected ways.

  • UserInterface/Views/Popover.js:

(WebInspector.Popover.prototype.update):
Default a popover update to animate, but allow not animating.

(WebInspector.Popover.prototype.handleEvent):
Vend a class that other content can use so that the Popover won't
dismiss if content with that class is scrolled. For example, a
completions list may be showing over a popover, if that scrolls
it should not dismiss the popover.

  • UserInterface/Views/CompletionSuggestionsView.js:

(WebInspector.CompletionSuggestionsView):
Adopt the Popover ignore class so a popover won't dismiss if the
completion suggestions view is scrolled.

  • UserInterface/Views/ObjectTreeBaseTreeElement.js:

(WebInspector.ObjectTreeBaseTreeElement.prototype.createGetterElement.get return):
(WebInspector.ObjectTreeBaseTreeElement.prototype.createGetterElement):
Allow modifying the context menu on an ObjectTreeView by looking for a delegate
on the TreeOutline.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.css: Added.

(.details-section.watch-expressions .options > *):
(.details-section.watch-expressions .options > *:active):
(.details-section.watch-expressions .options > .watch-expression-add):
(.details-section.watch-expressions .options > .watch-expression-clear):
(.details-section.watch-expressions .options > .watch-expression-refresh):
(.popover .watch-expression):
(.watch-expression-editor):
(.watch-expression-editor > .CodeMirror):
(.watch-expression-editor > .CodeMirror-scroll):
Styles for the new Watch Expressions section, buttons, popover, and editor.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WebInspector.ScopeChainDetailsSidebarPanel):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.inspect):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateWatchExpressionsSection):
Because we update the UI after a delay, to allow ObjectTreeView's to asynchronously
expand and fetch their list of properties, we convert updating the watch expression
and call frame sections asynchronously and return a promise. This lets us visually
update the UI after both sections have updated.

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpression):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._removeWatchExpression):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._clearAllWatchExpressions):
Modify the saved list of watch expressions.

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked.presentPopoverOverTargetElement):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked.this._codeMirror.addKeyMap):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.willDismissPopover):
Handle presenting and dismissing the add watch expression popover.

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._refreshAllWatchExpressionsButtonClicked):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._clearAllWatchExpressionsButtonClicked):
Other button handlers.

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._mainResourceDidChange):
Refresh the sidebar on navigation, as the watch expressions may change value (location.href).

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeElementAddContextMenuItems):
Add our own context menu items to watch expression ObjectTreeView tree elements to
allow removing a watch expression.

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._propertyPathIdentifierForTreeElement):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeAddHandler):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeExpandHandler):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeCollapseHandler):
Convert code to use let.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Main.html:

Misc. changes.

LayoutTests:

  • inspector/model/remote-object-fake-object-expected.txt: Added.
  • inspector/model/remote-object-fake-object.html: Added.
2:53 PM Changeset in webkit [188406] by BJ Burg
  • 14 edits in trunk/LayoutTests

Web Inspector: refactor ProtocolTest to be an InjectedTestHarness subclass
https://bugs.webkit.org/show_bug.cgi?id=147954

Reviewed by Joseph Pecoraro.

In preparation for sharing the same test harness API between protocol tests
and frontend tests, this patch refactors ProtocolTest into the desired
class structure. Each type of test (currently: protocol, frontend) extends
InjectedTestHarness and fills in a few key methods for communicating with
the test page-side code.

This patch standardizes on assert() only logging when the condition is false.
Update protocol tests to use ProtocolTestHarness.expectThat, rather than assert.

  • http/tests/inspector/resources/ProtocolTestStub.js:

(window.InjectedTestHarness):
(window.InjectedTestHarness.prototype.createAsyncSuite):
(window.InjectedTestHarness.prototype.createSyncSuite):
(window.InjectedTestHarness.prototype.completeTest):
(window.InjectedTestHarness.prototype.addResult):
(window.InjectedTestHarness.prototype.debugLog):
(window.InjectedTestHarness.prototype.evaluateInPage):
(window.InjectedTestHarness.prototype.importScript):
(window.InjectedTestHarness.prototype.get logCount):
(window.InjectedTestHarness.prototype.log):
(window.InjectedTestHarness.prototype.assert):
(window.InjectedTestHarness.prototype.expectThat):

(InjectedTestHarness.AsyncTestSuite): Use a stored reference to the harness
rather than hardcoding a specific InjectedTestHarness instance.

(InjectedTestHarness.AsyncTestSuite.prototype.runTestCasesAndFinish.finish):
(InjectedTestHarness.AsyncTestSuite.prototype.runTestCasesAndFinish):
(InjectedTestHarness.AsyncTestSuite.prototype.runTestCases):

(InjectedTestHarness.SyncTestSuite): Use a stored reference to the harness
rather than hardcoding a specific InjectedTestHarness instance.

(InjectedTestHarness.SyncTestSuite.prototype.runTestCasesAndFinish):
(InjectedTestHarness.SyncTestSuite.prototype.runTestCases):

(ProtocolTestHarness.prototype.completeTest):
(ProtocolTestHarness.prototype.addResult):
(ProtocolTestHarness.prototype.debugLog):
(ProtocolTestHarness.prototype.evaluateInPage):
(ProtocolTestHarness):
(InspectorProtocol.sendCommand):
(InspectorProtocol.awaitCommand):
(InspectorProtocol.awaitEvent.):
(InspectorProtocol.awaitEvent):
(InspectorProtocol.addEventListener):
(InspectorProtocol.sendMessage):
(InspectorProtocol.checkForError):
(InspectorFrontendAPI.dispatchMessageAsync):
(ProtocolTest.AsyncTestSuite): Moved.
(ProtocolTest.AsyncTestSuite.prototype.runTestCasesAndFinish.finish): Moved.
(ProtocolTest.AsyncTestSuite.prototype.runTestCasesAndFinish): Moved.
(ProtocolTest.AsyncTestSuite.prototype.runTestCases): Moved.
(ProtocolTest.SyncTestSuite): Moved.
(ProtocolTest.SyncTestSuite.prototype.runTestCasesAndFinish): Moved.
(ProtocolTest.SyncTestSuite.prototype.runTestCases): Moved.
(ProtocolTest.log): Moved.
(ProtocolTest.assert): Moved.
(ProtocolTest.debugLog): Moved.
(ProtocolTest.completeTest): Moved.
(ProtocolTest.importScript): Moved.

  • http/tests/inspector/resources/console-test.js:

(.suite.addTestCase.):
(.suite.addTestCase):
(ProtocolTest.Console.addTestCase):

  • http/tests/inspector/resources/protocol-test.js:

(closeTest):

  • inspector/console/console-message.html:
  • inspector/console/x-frame-options-message.html:
  • inspector/debugger/didSampleProbe-multiple-probes.html:
  • inspector/dom-debugger/node-removed.html:
  • inspector/dom/dom-remove-events.html:
  • inspector/runtime/getProperties.html:
  • inspector/unit-tests/async-test-suite-expected.txt:
  • inspector/unit-tests/async-test-suite.html:
  • inspector/unit-tests/sync-test-suite-expected.txt:
  • inspector/unit-tests/sync-test-suite.html:
2:48 PM Changeset in webkit [188405] by Wenson Hsieh
  • 11 edits
    2 adds in trunk

A focused node should not be assisted when handling touch events synchronously
https://bugs.webkit.org/show_bug.cgi?id=147836
.:

Reviewed by Enrica Casucci.

Added manual tests for keyboard assistance behavior due to receiving touch events on iOS.

  • ManualTests/ios/focused-input-should-assist-on-touch.html: Checks that a currently focused

input can still be assisted due to a touch event.

  • ManualTests/ios/keyboard-should-not-show-on-touch-event.html: Checks that handling a touch

event does not automatically cause us to assist the currently focused node.

Source/WebCore:

<rdar://problem/22204108>

Reviewed by Enrica Casucci.

Makes interaction with touch handlers no longer assist the currently focused element in the
general case. Added plumbing to reassist a currently focused node when dispatching touch events,
so that an input that programmatically focuses itself and prevents default on a touch event will
be properly assisted when it has been programmatically focused (either through Javascript or the
autofocus attribute) prior to receiving the touch event. This patch also removes the now
unnecessary special-casing of the Gmail settings app that currently makes the keyboard deploy
upon autofocus.

  • dom/Element.cpp:

(WebCore::Element::focus): Notifies the chrome client that the element has refocused before

returning early.

  • page/ChromeClient.h: Refocusing an element does nothing by default.
  • platform/RuntimeApplicationChecksIOS.h: Removed special casing for Gmail Add Account.
  • platform/RuntimeApplicationChecksIOS.mm: See above.

(WebCore::applicationIsGmailAddAccountOnIOS): See above.

Source/WebKit2:

<rdar://problem/22204108>

Reviewed by Enrica Casucci.

Makes interaction with touch handlers no longer assist the currently focused element in the
general case. Added plumbing to reassist a currently focused node when dispatching touch events,
so that an input that programmatically focuses itself and prevents default on a touch event will
be properly assisted when it has been programmatically focused (either through Javascript or the
autofocus attribute) prior to receiving the touch event. This patch also removes the now
unnecessary special-casing of the Gmail settings app that currently makes the keyboard deploy
upon autofocus.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]): Removed

special case to avoid the early return for Gmail Add Account.

  • WebProcess/WebCoreSupport/WebChromeClient.h: Added a handler for refocusing an element.
  • WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:

(WebKit::WebChromeClient::elementDidRefocus): Makes refocusing an element trigger input

assistance on iOS.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::dispatchTouchEvent): Removes logic to focus the currently focused element upon

receiving a touch event.

2:31 PM Changeset in webkit [188404] by andersca@apple.com
  • 10 edits
    4 copies in trunk/Source/WebKit2

Add WKWindowFeaturesRef and a new modern createNewPage UI client callback
https://bugs.webkit.org/show_bug.cgi?id=147989

Reviewed by Tim Horton.

  • Platform/IPC/mac/ConnectionMac.mm:
  • Shared/API/APIObject.h:
  • Shared/API/c/WKBase.h:
  • UIProcess/API/APIWindowFeatures.cpp: Added.
  • UIProcess/API/APIWindowFeatures.h: Added.
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/C/WKPageUIClient.h:
  • UIProcess/API/C/WKWindowFeaturesRef.cpp: Added.

(WKWindowFeaturesGetTypeID):

  • UIProcess/API/C/WKWindowFeaturesRef.h: Added.
  • UIProcess/API/Cocoa/WKWindowFeatures.mm:

(-[WKWindowFeatures dealloc]):
(-[WKWindowFeatures menuBarVisibility]):
(-[WKWindowFeatures statusBarVisibility]):
(-[WKWindowFeatures toolbarsVisibility]):
(-[WKWindowFeatures allowsResizing]):
(-[WKWindowFeatures x]):
(-[WKWindowFeatures y]):
(-[WKWindowFeatures width]):
(-[WKWindowFeatures height]):
(-[WKWindowFeatures _apiObject]):
(-[WKWindowFeatures _initWithWindowFeatures:]): Deleted.

  • UIProcess/API/Cocoa/WKWindowFeaturesInternal.h:

(WebKit::wrapper):

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::createNewPage):

  • WebKit2.xcodeproj/project.pbxproj:
2:30 PM Changeset in webkit [188403] by commit-queue@webkit.org
  • 7 edits in trunk

Web Inspector: A {Map, WeakMap, Set, WeakSet} object contains itself will hang the console
https://bugs.webkit.org/show_bug.cgi?id=147966

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-13
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype._initialPreview):
Renamed to initial preview. This is not a complete preview for
this object, and it needs some processing in order to be a
complete accurate preview.

(InjectedScript.RemoteObject.prototype._emptyPreview):
This attempts to be an accurate empty preview for the given object.
For types with entries, it adds an empty entries list and updates
the overflow and lossless properties.

(InjectedScript.RemoteObject.prototype._createObjectPreviewForValue):
Take a generatePreview parameter to generate a full preview or empty preview.

(InjectedScript.RemoteObject.prototype._appendPropertyPreviews):
(InjectedScript.RemoteObject.prototype._appendEntryPreviews):
(InjectedScript.RemoteObject.prototype._isPreviewableObject):
Take care to avoid cycles.

Source/WebInspectorUI:

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
For empty overflow previews, don't show ", ..." if we didn't show any
values; just show "..." in these cases.

LayoutTests:

  • inspector/model/remote-object.html:
  • inspector/model/remote-object-expected.txt:

Add tests for a cylic array, set, and map.

2:17 PM Changeset in webkit [188402] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed build fix.

  • accessibility/AXObjectCache.cpp: Add missing 'DataLog.h' include.
2:06 PM Changeset in webkit [188401] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Periodic code deletion should delete RegExp code
https://bugs.webkit.org/show_bug.cgi?id=147990

Reviewed by Filip Pizlo.

The RegExp code cache was created for the sake of simple loops that
re-created the same RegExps. It's reasonable to delete it periodically.

  • heap/Heap.cpp:

(JSC::Heap::deleteOldCode):

1:42 PM Changeset in webkit [188400] by fpizlo@apple.com
  • 12 edits
    2 adds in trunk

WTF should have a compact Condition object to use with Lock
https://bugs.webkit.org/show_bug.cgi?id=147986

Reviewed by Geoffrey Garen.

Source/WTF:

Adds a condition variable implementation based on ParkingLot, called simply WTF::Condition.
It can be used with WTF::Lock or actually any lock implementation. It should even work with
WTF::SpinLock, WTF::Mutex, or std::mutex. Best of all, Condition only requires one byte.

ParkingLot almost contained all of the functionality needed to implemenet wait/notify. We
could have implemented Condition using a 32-bit (or even 64-bit) version that protects
against a notify that happens just before we park. But, this changes the ParkingLot API to
give us the ability to run some code between when ParkingLot enqueues the current thread
and when it actually sleeps. This callback is called with no locks held, so it can call
unlock() on any kind of lock, so long as that lock's unlock() method doesn't recurse into
ParkingLot::parkConditionally(). That seems unlikely; unlock() is more likely to call
ParkingLot::unparkOne() or unparkAll(). WTF::Lock will never call parkConditionally()
inside unlock(), so WTF::Lock is definitely appropriate for use with Condition.

Condition supports most of the API that std::condition_variable supports. It does some
things to try to reduce footgun potential. The preferred timeout form is waitUntil() which
takes an absolute time from the steady_clock. The only relative timeout form also takes a
predicate callback, so it's impossible to write the subtly incorrect
"while (...) wait_for(...)" idiom.

This patch doesn't actually introduce any uses of WTF::Condition other than the unit tests.
I'll start switching code over to using WTF::Condition in another patch.

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/Condition.h: Added.

(WTF::Condition::Condition):
(WTF::Condition::waitUntil):
(WTF::Condition::waitFor):
(WTF::Condition::wait):
(WTF::Condition::notifyOne):
(WTF::Condition::notifyAll):

  • wtf/Lock.cpp:

(WTF::LockBase::unlockSlow): Make this useful assertion be a release assertion. It catches cases where you unlock the lock even though you don't hold it.

  • wtf/ParkingLot.cpp:

(WTF::ParkingLot::parkConditionally): Add the beforeSleep() callback.
(WTF::ParkingLot::unparkOne):

  • wtf/ParkingLot.h:

(WTF::ParkingLot::compareAndPark):

Tools:

Add a test for WTF::Condition.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/Condition.cpp: Added.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/Lock.cpp:

(TestWebKitAPI::runLockTest): Change the name of the thread.

1:30 PM Changeset in webkit [188399] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Selects should scale when rendering while zoomed
https://bugs.webkit.org/show_bug.cgi?id=147868

Reviewed by Daniel Bates.

When rendering zoomed <select> elements, draw to an image buffer instead of drawing directly
into the context. This allows us to scale the image buffer up before rendering.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintMenuList): Use ThemeMac::drawCellOrFocusRingWithViewIntoContext

to render search fields, utilizing an offscreen image buffer only when necessary.

1:29 PM Changeset in webkit [188398] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Hide child rows for filtered tasks in the Rendering Frames data grid
https://bugs.webkit.org/show_bug.cgi?id=147960

Reviewed by Timothy Hatcher.

  • UserInterface/Models/RenderingFrameTimelineRecord.js:

(WebInspector.RenderingFrameTimelineRecord.taskTypeForTimelineRecord):
New static method for mapping TimelineRecords to rendering frame tasks.
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask):
Refactored to use taskTypeForTimelineRecord.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
Task filtering is applied to children of the frame record only. Parent frame
record is hidden by default, and visible by virtue of having unfiltered children.

1:28 PM Changeset in webkit [188397] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

RegExpCache::finalize should not delete code
https://bugs.webkit.org/show_bug.cgi?id=147987

Reviewed by Mark Lam.

The RegExp object already knows how to delete its own code in its
destructor. Our job is just to clear our stale pointer.

  • runtime/RegExpCache.cpp:

(JSC::RegExpCache::finalize):
(JSC::RegExpCache::addToStrongCache):

1:27 PM Changeset in webkit [188396] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Clearing frames timeline doesn't remove current time marker
https://bugs.webkit.org/show_bug.cgi?id=147650

Reviewed by Timothy Hatcher.

The rendering frames timeline offsets all markers by 1px to align them on frame
boundaries, which causes the current time marker to be visible even with left: 0px.
We can exclude the current time marker without it being noticable during recording.

  • UserInterface/Views/TimelineOverview.css:
1:26 PM Changeset in webkit [188395] by achristensen@apple.com
  • 4 edits in trunk/Source/WebCore

[Win] Unreviewed build fix after r188388.

  • bindings/js/JSWebGLRenderingContextCustom.cpp:
  • dom/EventFactory.h:
  • rendering/RenderThemeWin.cpp:

Strange things happen when you change including headers. This fixed my local build.

1:17 PM Changeset in webkit [188394] by ggaren@apple.com
  • 17 edits in trunk/Source

Standardize on the phrase "delete code"
https://bugs.webkit.org/show_bug.cgi?id=147984

Reviewed by Mark Lam.

Source/JavaScriptCore:

Use "delete" when we talk about throwing away code, as opposed to
"invalidate" or "discard".

  • debugger/Debugger.cpp:

(JSC::Debugger::forEachCodeBlock):
(JSC::Debugger::setSteppingMode):
(JSC::Debugger::recompileAllJSFunctions):

  • heap/Heap.cpp:

(JSC::Heap::deleteAllCompiledCode):

  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::recompileAllJSFunctionsForTypeProfiling):

  • runtime/RegExp.cpp:

(JSC::RegExp::match):
(JSC::RegExp::deleteCode):
(JSC::RegExp::invalidateCode): Deleted.

  • runtime/RegExp.h:
  • runtime/RegExpCache.cpp:

(JSC::RegExpCache::finalize):
(JSC::RegExpCache::addToStrongCache):
(JSC::RegExpCache::deleteAllCode):
(JSC::RegExpCache::invalidateCode): Deleted.

  • runtime/RegExpCache.h:
  • runtime/VM.cpp:

(JSC::VM::stopSampling):
(JSC::VM::prepareToDeleteCode):
(JSC::VM::deleteAllCode):
(JSC::VM::setEnabledProfiler):
(JSC::VM::prepareToDiscardCode): Deleted.
(JSC::VM::discardAllCode): Deleted.

  • runtime/VM.h:

(JSC::VM::apiLock):
(JSC::VM::codeCache):

  • runtime/Watchdog.cpp:

(JSC::Watchdog::setTimeLimit):

Source/WebCore:

Use "delete" when we talk about throwing away code, as opposed to
"invalidate" or "discard".

  • bindings/js/GCController.cpp:

(WebCore::GCController::setJavaScriptGarbageCollectorTimerEnabled):
(WebCore::GCController::deleteAllCode):
(WebCore::GCController::discardAllCompiledCode): Deleted.

  • bindings/js/GCController.h:
  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseCriticalMemory):

Source/WebKit/mac:

  • WebView/WebView.mm:

(+[WebView discardAllCompiledCode]):
(+[WebView isCharacterSmartReplaceExempt:isPreviousCharacter:]):

12:49 PM Changeset in webkit [188393] by matthew_hanson@apple.com
  • 14 edits
    2 adds in branches/safari-601.1-branch

Merge r188390. rdar://problem/21367467

12:19 PM Changeset in webkit [188392] by bshafiei@apple.com
  • 1 edit
    1 copy in branches/safari-601.1.46-branch/LayoutTests

Merged r188383. rdar://problem/22256660

12:17 PM Changeset in webkit [188391] by bshafiei@apple.com
  • 6 edits
    2 copies in branches/safari-601.1.46-branch

Merged r188377. rdar://problem/22256660

12:16 PM Changeset in webkit [188390] by eric.carlson@apple.com
  • 14 edits
    2 adds in trunk

Don't short circuit seeking
https://bugs.webkit.org/show_bug.cgi?id=147892

Reviewed by Jer Noble.

Source/WebCore:

Test: media/video-seek-to-current-time.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::prepareForLoad): Call clearSeeking.
(WebCore::HTMLMediaElement::fastSeek): Add logging.
(WebCore::HTMLMediaElement::seekWithTolerance): Add logging. Set m_pendingSeekType.
(WebCore::HTMLMediaElement::seekTask): Call clearSeeking. Don't short circuit a

if the current or pending seek is a fast seek. Set m_seeking to true immediately
before calling media engine as it may have been cleared before the seek task
queue ran.

(WebCore::HTMLMediaElement::clearSeeking): New.

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElementEnums.h:
  • platform/GenericTaskQueue.h:

(WebCore::GenericTaskQueue::enqueueTask): Clear m_pendingTasks.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::seekWithTolerance): Don't return early

when asked to seek to the current time.

(WebCore::MediaPlayerPrivateAVFoundation::invalidateCachedDuration): Remove some

extremely noisy logging.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime): Add logging.

LayoutTests:

  • media/event-attributes-expected.txt: Update for test change.
  • media/event-attributes.html: There is no reason to expect that a 'timeupdate' will have been sent before 'canplaythrough'.
  • media/video-seek-to-current-time-expected.txt: Added.
  • media/video-seek-to-current-time.html: Added.
  • platform/efl/TestExpectations: Skip new test.
  • platform/gtk/TestExpectations: Ditto.
  • platform/mac/TestExpectations: Mark the new test as sometimes failing because of webkit.org/b/147944.
  • platform/win/TestExpectations: Skip new test.
12:08 PM Changeset in webkit [188389] by Simon Fraser
  • 5 edits in trunk/Source

FilterOperation.h should not include FilterEffect.h
https://bugs.webkit.org/show_bug.cgi?id=147970

Reviewed by Daniel Bates.

FilterEffect.h pulls in lots of JSC goop via runtime/Uint8ClampedArray.h,
so move its include to FilterOperation.cpp.

Causes include bloat because FilterOperation.h is pulled in via RenderStyle.h.

Source/WebCore:

  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::ReferenceFilterOperation::setFilterEffect):

  • platform/graphics/filters/FilterOperation.h:

(WebCore::ReferenceFilterOperation::setFilterEffect): Deleted.

Source/WebKit2:

  • UIProcess/ios/WebVideoFullscreenManagerProxy.h:
12:08 PM Changeset in webkit [188388] by Simon Fraser
  • 9 edits in trunk/Source/WebCore

ScriptExecutionContext.h pulls in all the JSC headers
https://bugs.webkit.org/show_bug.cgi?id=147969

Reviewed by Alexey Proskuryakov.

ScriptExecutionContext.h included ScheduledAction.h, which pulled in all the
JSC headers via JSDOMBinding.h. There was no need for this #include, so remove
it and fix the fallout.

  • Modules/webdatabase/DatabaseTracker.cpp:
  • Modules/webdatabase/SQLTransaction.h:
  • bindings/js/JSWebGLRenderingContextCustom.cpp:
  • contentextensions/ContentExtensionStyleSheet.cpp:
  • dom/ScriptExecutionContext.h:
  • html/FTPDirectoryDocument.cpp:
  • html/canvas/WebGLRenderingContext.cpp:
  • html/parser/HTMLTreeBuilder.h:
11:10 AM Changeset in webkit [188387] by fpizlo@apple.com
  • 2 edits in trunk/Tools

Unreviewed, shorten another test. It's timing out in debug on some bot.

  • TestWebKitAPI/Tests/WTF/Lock.cpp:

(TestWebKitAPI::TEST):

10:37 AM Changeset in webkit [188386] by andersca@apple.com
  • 14 edits in trunk/Source

Use WTF::Optional in WindowFeatures
https://bugs.webkit.org/show_bug.cgi?id=147956

Reviewed by Sam Weinig.

Source/WebCore:

  • loader/FrameLoader.cpp:

(WebCore::createWindow):

  • page/WindowFeatures.cpp:

(WebCore::WindowFeatures::WindowFeatures):
(WebCore::WindowFeatures::setWindowFeature):
(WebCore::WindowFeatures::boolFeature):
(WebCore::WindowFeatures::floatFeature):
(WebCore::WindowFeatures::parseDialogFeatures):

  • page/WindowFeatures.h:

(WebCore::WindowFeatures::WindowFeatures):

Source/WebKit/mac:

  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::createWindow):

Source/WebKit/win:

  • WebCoreSupport/WebChromeClient.cpp:

(createWindowFeaturesPropertyBag):

Source/WebKit2:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<WindowFeatures>::encode): Deleted.
(IPC::ArgumentCoder<WindowFeatures>::decode): Deleted.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/Cocoa/WKWindowFeatures.mm:

(-[WKWindowFeatures _initWithWindowFeatures:]):

Source/WTF:

Add new operators to WTF::Optional to make it more like std::optional.

  • wtf/Optional.h:

(WTF::Optional::operator->):
(WTF::Optional::operator*):

10:33 AM Changeset in webkit [188385] by mdaiter@apple.com
  • 18 edits in trunk

Source/WebCore:
UserMediaRequest should supply IDs of devices selected by user
https://bugs.webkit.org/show_bug.cgi?id=147263
<rdar://problem/21983345>

Reviewed by Jer Noble.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::userMediaAccessGranted):

  • Modules/mediastream/UserMediaRequest.h:
  • platform/mock/UserMediaClientMock.h:

Source/WebKit/mac:
Linking device query ability from WebKit2 to clients
https://bugs.webkit.org/show_bug.cgi?id=147263
<rdar://problem/21983345>

Reviewed by Jer Noble.

  • WebCoreSupport/WebUserMediaClient.mm:

(-[WebUserMediaPolicyListener allow]):
(-[WebUserMediaPolicyListener allowDeviceWithVideoUID:andAudioUID:]):

Source/WebKit2:
Linking device query ability from WebKit2 to clients
https://bugs.webkit.org/show_bug.cgi?id=147263
<rdar://problem/21983345>

Reviewed by Jer Noble.

  • Platform/mac/LayerHostingContext.mm:

(WebKit::LayerHostingContext::setColorMatchUntaggedContent):
(WebKit::LayerHostingContext::colorMatchUntaggedContent):

  • UIProcess/API/C/WKUserMediaPermissionRequest.cpp:

(WKUserMediaPermissionRequestAllow):
(WKUserMediaPermissionRequestDeviceNamesVideo):
(WKUserMediaPermissionRequestDeviceNamesAudio):

  • UIProcess/API/C/WKUserMediaPermissionRequest.h:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::didReceiveUserMediaPermissionDecision): Deleted.

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::UserMediaPermissionRequestProxy::allow):
(WebKit::UserMediaPermissionRequestProxy::deny):

  • UIProcess/UserMediaPermissionRequestProxy.h:
  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::didReceiveUserMediaPermissionDecision):

10:25 AM Changeset in webkit [188384] by Yusuke Suzuki
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

X.SetPrototypeOf?(Y) should succeed if X.Prototype? is already Y even if X is not extensible
https://bugs.webkit.org/show_bug.cgi?id=147930

Reviewed by Saam Barati.

When the passed prototype object to be set is the same to the existing
prototype object, SetPrototypeOf? just finishes its operation even
if the extensibility of the target object is false.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncProtoSetter):

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorSetPrototypeOf):

  • runtime/ReflectObject.cpp:

(JSC::reflectObjectSetPrototypeOf):

  • tests/stress/set-same-prototype.js: Added.

(shouldBe):
(shouldThrow):

8:53 AM Changeset in webkit [188383] by ap@apple.com
  • 1 edit
    1 add in trunk/LayoutTests

[Cocoa] [CJK-configured device] System font has vertical punctuation
https://bugs.webkit.org/show_bug.cgi?id=147964
<rdar://problem/22256660>

  • platform/mac/fast/text/system-font-punctuation-expected.txt: Actually landing

results for Mac.

4:49 AM Changeset in webkit [188382] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r188325): Web Inspector: Fix vertical spacing in CodeMirror
https://bugs.webkit.org/show_bug.cgi?id=147971

r188325 inceased line-height by 2px. Remove top and bottom 1px padding
to compensate for line-height changes.

In the feature we may highlight the backgroud of text tokens (e.g. for the
heatmap profiler) so we would want to get rid of the gaps between the lines
(caused by the paddind) regardless of this regression.

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CodeMirrorOverrides.css:

(.CodeMirror pre):

12:55 AM WebKitGTK/2.10.x created by Carlos Garcia Campos
12:03 AM Changeset in webkit [188381] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.10

Branch WebKitGTK+ for 2.10

Aug 12, 2015:

11:10 PM Changeset in webkit [188380] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Mac TestExpectations gardening.

  • platform/mac/TestExpectations:
11:07 PM Changeset in webkit [188379] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[Cairo] Improve image quality when using newer versions of cairo/pixman
https://bugs.webkit.org/show_bug.cgi?id=147826

Reviewed by Martin Robinson.

Since cairo 1.14 the image filters changed a bit:

  • CAIRO_FILTER_GOOD uses a box filter when downscaling if the scale factor is less than 0.75, otherwise it uses a filter equivalent to CAIRO_FILTER_BILINEAR.
  • CAIRO_FILTER_BEST uses always a Catmull-Rom filter.

We are currently using CAIRO_FILTER_BILINEAR for medium, high and
default interpolation levels. We could use CAIRO_FILTER_GOOD for
medium and default, and CAIRO_FILTER_BEST for high. This will not
have any effect in previous versions of cairo because before 1.14
CAIRO_FILTER_GOOD, CAIRO_FILTER_BILINEAR and CAIRO_FILTER_BEST had
the same implementation in pixman.

  • platform/graphics/cairo/PlatformContextCairo.cpp:

(WebCore::PlatformContextCairo::drawSurfaceToContext):

10:51 PM Changeset in webkit [188378] by Joseph Pecoraro
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Sometimes CSS resources don't update after editing via Styles panel
https://bugs.webkit.org/show_bug.cgi?id=143244

Reviewed by Timothy Hatcher.

  • UserInterface/Models/SourceCode.js:

(WebInspector.SourceCode.prototype._processContent):
This code is brittle and we should move off of putting the
possibly stale content in the Promise result.

  • UserInterface/Views/ResourceContentView.js:

(WebInspector.ResourceContentView.prototype._contentAvailable):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._contentAvailable):

  • UserInterface/Models/Script.js:

(WebInspector.Script.prototype.requestScriptSyntaxTree):
Use the current source code's content.

10:36 PM Changeset in webkit [188377] by mmaxfield@apple.com
  • 6 edits
    2 adds in trunk

[Cocoa] [CJK-configured device] System font has vertical punctuation
https://bugs.webkit.org/show_bug.cgi?id=147964
<rdar://problem/22256660>

Reviewed by Dean Jackson.

Source/WebCore:

GlyphPage::fill() has multiple code paths to accomplish its goal. It uses the shouldUseCoreText() helper
function to determine which one of the paths should be taken. However, not all of the code paths in
GlyphPage::fill() are able of handling all situations. Indeed, the CoreText code paths in GlyphPage::fill()
are only able to handle the situations which shouldUseCoreText() returns true for. This happens in the
following cases:

  1. If the font is a composite font
  2. If the font is used for text-combine
  3. If the font has vertical glyphs

In r187693, I added one more case to this list: If the font is the system font. However, I failed to add
the necessary support to GlyphPage::fill() for this case. Becasue of this, we just happened to fall into
the case of vertical fonts (just by coincidence), which causes us to use
CTFontGetVerticalGlyphsForCharacters() instead of CTFontGetGlyphsForCharacters().

The solution is to adopt the same behavior we were using before r187693. Back then, we were using
CGFontGetGlyphsForUnichars(), which always returned horizontal glyphs. We should simply adopt this same
behavior, except in the Core Text case. Therefore, this patch is just a simple check to see if we are
using the system font when determining which Core Text function to use.

Test: fast/text/system-font-punctuation.html

  • platform/graphics/FontDescription.h:

(WebCore::FontDescription::setWidthVariant):

  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::isForTextCombine):

  • platform/graphics/mac/GlyphPageMac.cpp:

(WebCore::shouldUseCoreText):
(WebCore::GlyphPage::fill):

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

LayoutTests:

Make sure punctuation isn't vertical.

  • fast/text/system-font-punctuation.html: Added.
  • platform/ios-simulator/fast/text/system-font-punctuation-expected.txt: Added
  • platform/mac/fast/text/system-font-punctuation-expected.txt: Added
10:30 PM Changeset in webkit [188376] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Removing an expectation for a long fixed bug.

9:38 PM Changeset in webkit [188375] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WinCairo] Turn on WOFF font
https://bugs.webkit.org/show_bug.cgi?id=147878

WOFF is already usable in Windows Cairo. Just turn it on.

Patch by Jinyoung Hur <hur.ims@navercorp.com> on 2015-08-12
Reviewed by Myles C. Maxfield.

Test: fast\css\font-face-woff.html

  • platform/graphics/win/FontCustomPlatformDataCairo.cpp:

(WebCore::FontCustomPlatformData::supportsFormat):

8:51 PM Changeset in webkit [188374] by fpizlo@apple.com
  • 9 edits in trunk

WTF::Lock should not suffer from the thundering herd
https://bugs.webkit.org/show_bug.cgi?id=147947

Reviewed by Geoffrey Garen.

Source/WTF:

This changes Lock::unlockSlow() to use unparkOne() instead of unparkAll(). The problem with
doing this is that it's not obvious after calling unparkOne() if there are any other threads
that are still parked on the lock's queue. If we assume that there are and leave the
hasParkedBit set, then future calls to unlock() will take the slow path. We don't want that
if there aren't actually any threads parked. On the other hand, if we assume that there
aren't any threads parked and clear the hasParkedBit, then if there actually were some
threads parked, then they may never be awoken since future calls to unlock() won't take slow
path and so won't call unparkOne(). In other words, we need a way to be very precise about
when we clear the hasParkedBit and we need to do it in a race-free way: it can't be the case
that we clear the bit just as some thread gets parked on the queue.

A similar problem arises in futexes, and one of the solutions is to have a thread that
acquires a lock after parking sets the hasParkedBit. This is what Rusty Russel's usersem
does. It's a subtle algorithm. Also, it means that if a thread barges in before the unparked
thread runs, then that barging thread will not know that there are threads parked. This
could increase the severity of barging.

Since ParkingLot is a user-level API, we don't have to worry about the kernel-user security
issues and so we can expose callbacks while ParkingLot is holding its internal locks. This
change does exactly that for unparkOne(). The new variant of unparkOne() will call a user
function while the queue from which we are unparking is locked. The callback is told basic
stats about the queue: did we unpark a thread this time, and could there be more threads to
unpark in the future. The callback runs while it's impossible for the queue state to change,
since the ParkingLot's internal locks for the queue is held. This means that
Lock::unlockSlow() can either clear, or leave, the hasParkedBit while releasing the lock
inside the callback from unparkOne(). This takes care of the thundering herd problem while
also reducing the greed that arises from barging threads.

This required some careful reworking of the ParkingLot algorithm. The first thing I noticed
was that the ThreadData::shouldPark flag was useless, since it's set exactly when
ThreadData::address is non-null. Then I had to make sure that dequeue() could lazily create
both hashtables and buckets, since the "callback is called while queue is locked" invariant
requires that we didn't exit early due to the hashtable or bucket not being present. Note
that all of this is done in such a way that the old unparkOne() and unparkAll() don't have
to create any buckets, though they now may create the hashtable. We don't care as much about
the hashtable being created by unpark since it's just such an unlikely scenario and it would
only happen once.

This change reduces the kernel CPU usage of WTF::Lock for the long critical section test by
about 8x and makes it always perform as well as WTF::WordLock and WTF::Mutex for that
benchmark.

  • benchmarks/LockSpeedTest.cpp:
  • wtf/Lock.cpp:

(WTF::LockBase::unlockSlow):

  • wtf/Lock.h:

(WTF::LockBase::isLocked):
(WTF::LockBase::isFullyReset):

  • wtf/ParkingLot.cpp:

(WTF::ParkingLot::parkConditionally):
(WTF::ParkingLot::unparkOne):
(WTF::ParkingLot::unparkAll):

  • wtf/ParkingLot.h:
  • wtf/WordLock.h:

(WTF::WordLock::isLocked):
(WTF::WordLock::isFullyReset):

Tools:

Add testing that checks that locks return to a pristine state after contention is over.

  • TestWebKitAPI/Tests/WTF/Lock.cpp:

(TestWebKitAPI::LockInspector::isFullyReset):
(TestWebKitAPI::runLockTest):
(TestWebKitAPI::TEST):

7:12 PM Changeset in webkit [188373] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Fix Poor Class Names
https://bugs.webkit.org/show_bug.cgi?id=147958

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-12
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ClusterContentView.js:
  • UserInterface/Views/ResourceContentView.js:
7:08 PM Changeset in webkit [188372] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Opening the Elements tab without a selected sidebar panel causes a crash
https://bugs.webkit.org/show_bug.cgi?id=147965

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.js:

(WebInspector.CSSStyleDetailsSidebarPanel):
If the saved setting for the selectedPanel does not exist, default to the rules panel.

(WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels):
Only save the new navigationItem info if the selectedPanel exists.

6:38 PM Changeset in webkit [188371] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Benchmarks supported by run_benchmark script should not assume we have internet access.
https://bugs.webkit.org/show_bug.cgi?id=147959

Patch by Dewei Zhu <Dewei Zhu> on 2015-08-12
Reviewed by Ryosuke Niwa.

For JSBench we should not request jquery.min.js from google through the internet.

  • Scripts/webkitpy/benchmark_runner/data/patches/JSBench.patch:
6:20 PM Changeset in webkit [188370] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

Move RenderBox-specific Scroll Snap code from RenderElement to RenderBox
https://bugs.webkit.org/show_bug.cgi?id=147963

Reviewed by Simon Fraser.

No new tests: No change in functionality.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleWillChange): Remove RenderBox-specific code.
(WebCore::RenderBox::willBeRemovedFromTree): Ditto.

  • rendering/RenderBox.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange): Move code from RenderElement to
handle Scroll Snap Points.
(WebCore::RenderElement::willBeRemovedFromTree): Added new override to handle
scroll-snap point logic.

6:08 PM Changeset in webkit [188369] by Lucas Forschler
  • 3 edits in trunk/WebKitLibraries

Check in LLVM 3.6.2 binary drops for Yosemite.

5:53 PM Changeset in webkit [188368] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

5:50 PM Changeset in webkit [188367] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.9

New tag.

5:45 PM Changeset in webkit [188366] by ap@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/security/cors-post-redirect-308.html doesn't work properly
https://bugs.webkit.org/show_bug.cgi?id=147914

Reviewed by Brady Eidson.

  • http/tests/resources/redirect.php: Trying to return

code 308 without a reason phrase results in an internal server error with Apache/2.2.
While at it, also corrected the script to always set Cache-Control: no-store.

5:40 PM Changeset in webkit [188365] by ap@apple.com
  • 3 edits in trunk/Source/WebKit2

[Mac] WebKit processes should have access to com.apple.nesessionmanager.flow-divert-token
https://bugs.webkit.org/show_bug.cgi?id=147949
rdar://problem/22254920

Reviewed by Anders Carlsson.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
5:04 PM Changeset in webkit [188364] by ggaren@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Removed clearEvalCodeCache()
https://bugs.webkit.org/show_bug.cgi?id=147957

Reviewed by Filip Pizlo.

It was unused.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::linkIncomingCall):
(JSC::CodeBlock::install):
(JSC::CodeBlock::clearEvalCache): Deleted.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::numberOfJumpTargets):
(JSC::CodeBlock::jumpTarget):
(JSC::CodeBlock::numberOfArgumentValueProfiles):

5:00 PM Changeset in webkit [188363] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Removing an expectation for a test that's fixed.

  • platform/mac/TestExpectations:
4:02 PM Changeset in webkit [188362] by BJ Burg
  • 3 edits in trunk/Source/WebKit2

Web Inspector: CRASH under WebInspector::closeFrontend for some protocol tests
https://bugs.webkit.org/show_bug.cgi?id=147948

Reviewed by Joseph Pecoraro.

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::closeFrontend): Don't invalidate the channel if it's null.

  • WebProcess/WebPage/WebInspector.h: Add default member variable values.
3:59 PM Changeset in webkit [188361] by Yusuke Suzuki
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

[ES6] Implement Reflect.defineProperty
https://bugs.webkit.org/show_bug.cgi?id=147943

Reviewed by Saam Barati.

This patch implements Reflect.defineProperty.
The difference from the Object.defineProperty is,

  1. Reflect.defineProperty does not perform ToObject operation onto the first argument.
  2. Reflect.defineProperty does not throw a TypeError when the DefineOwnProperty? operation fails.
  3. Reflect.defineProperty returns the boolean value that represents whether DefineOwnProperty? succeeded.

And this patch comments the links to the ES6 spec.

  • builtins/ReflectObject.js:
  • runtime/ObjectConstructor.cpp:

(JSC::toPropertyDescriptor):

  • runtime/ObjectConstructor.h:
  • runtime/ReflectObject.cpp:

(JSC::reflectObjectDefineProperty):

  • tests/stress/reflect-define-property.js: Added.

(shouldBe):
(shouldThrow):
(.set getter):
(setter):
(.get testDescriptor):
(.set get var):
(.set testDescriptor):
(.set get testDescriptor):
(.set get shouldThrow):
(.get var):

2:39 PM Changeset in webkit [188360] by Matt Baker
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove clamp and adopt Number.constrain
https://bugs.webkit.org/show_bug.cgi?id=147952

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Utilities.js:

Removed clamp function.

  • UserInterface/Views/BezierEditor.js:

(WebInspector.BezierEditor.prototype._updateControlPointsForMouseEvent):

  • UserInterface/Views/ProfileNodeDataGridNode.js:

(WebInspector.ProfileNodeDataGridNode.prototype.updateRangeTimes):

  • UserInterface/Views/ScriptTimelineDataGridNode.js:

(WebInspector.ScriptTimelineDataGridNode.prototype.updateRangeTimes):

  • UserInterface/Views/TimelineRuler.js:

(WebInspector.TimelineRuler.prototype._updateSelection):
Replaced instances of clamp with Number.constrain.

2:10 PM Changeset in webkit [188359] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Refactor BuildbotQueueView.revisionContentForIteration to work more generically with repositories
other than "openSource" and "internal".
https://bugs.webkit.org/show_bug.cgi?id=147796

Patch by Jason Marcell <jmarcell@apple.com> on 2015-08-12
Reviewed by Daniel Bates.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:

(BuildbotQueueView.prototype._revisionContentWithPopoverForIteration): The "repository" parameter
is now a repository object instead of the repository name, thus we don't have to pass the "trac"
object in separately. Also added an assertion to see if the given repository is in iteration.revision,
and another assertion that, if the previousIteration is non-null, the given repository is in
previousIteration.revision.
(BuildbotQueueView.prototype.revisionContentForIteration): Refactored to work more generically
with repositories other than "openSource" and "internal". Also added an assertion that the returned
fragment has at least one child node.

2:07 PM Changeset in webkit [188358] by Antti Koivisto
  • 6 edits
    3 adds in trunk

CachedResource leak in validation code
https://bugs.webkit.org/show_bug.cgi?id=147941

Reviewed by Chris Dumez.

Source/WebCore:

While adding test coverage I discovered a way to hit ASSERT(!resource->m_proxyResource) in CachedResource::setResourceToRevalidate.
I think this ends up leaking a resource too.

Test: http/tests/cache/recursive-validation.html

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::didAddClient):

Tighten the condition.

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::setResourceToRevalidate):
(WebCore::CachedResource::clearResourceToRevalidate):

Replace workaround for this bug with an assert.

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::validationInProgress):
(WebCore::CachedResource::validationCompleting):
(WebCore::CachedResource::didSendData):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::revalidateResource):
(WebCore::CachedResourceLoader::determineRevalidationPolicy):

Fix the bug by using (instead of revalidating) resource that we are just finishing revalidating.
This can happen when a succesful revalidation synchronously triggers another load for the same resource.

LayoutTests:

  • http/tests/cache/recursive-validation.html: Added.
  • http/tests/cache/resources/no-cache-with-validation.php: Added.
2:01 PM Changeset in webkit [188357] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DFG::ByteCodeParser should attempt constant folding on loads from structures that are DFG-watchable
https://bugs.webkit.org/show_bug.cgi?id=147950

Reviewed by Michael Saboff.

Previously we reduced the constant folding power of ByteCodeParser::load() because that code was
responsible for memory corruption, since it would sometimes install watchpoints on structures that
weren't being traced. It seemed like the safest fix was to remove the constant folding rule
entirely since later phases also do constant folding, and they do it without introducing the bug.
Well, that change (http://trac.webkit.org/changeset/188292) caused a big regression, because we
still have some constant folding rules that only exist in ByteCodeParser, and so ByteCodeParser must
be maximally aggressive in constant-folding whenever possible.

So, this change now brings back that constant folding rule - for loads from object constants that
have DFG-watchable structures - and implements it properly, by ensuring that we only call into
tryGetConstantProperty() if we have registered the structure set.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::load):

1:51 PM Changeset in webkit [188356] by mdaiter@apple.com
  • 5 edits in trunk/Source/WebCore

Need to add stubs to enumerateDevices
https://bugs.webkit.org/show_bug.cgi?id=147903

Reviewed by Eric Carlson.

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::enumerateDevices):

  • Modules/mediastream/MediaDevices.h:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::enumerateDevices):

  • Modules/mediastream/UserMediaRequest.h:
1:38 PM Changeset in webkit [188355] by Yusuke Suzuki
  • 18 edits
    5 adds in trunk/Source/JavaScriptCore

[ES6] Add ES6 Modules preparsing phase to collect the dependencies
https://bugs.webkit.org/show_bug.cgi?id=147353

Reviewed by Geoffrey Garen.

This patch implements ModuleRecord and ModuleAnalyzer.
ModuleAnalyzer analyzes the produced AST from the parser.
By collaborating with the parser, ModuleAnalyzer collects the information
that is necessary to request the loading for the dependent modules and
construct module's environment and namespace object before executing the actual
module body.

In the parser, we annotate which variable is imported binding and which variable
is exported from the current module. This information is leveraged in the ModuleAnalyzer
to categorize the export entries.

To preparse the modules in the parser, we just add the new flag ModuleParseMode
instead of introducing a new TreeContext type. This is because only 2 users use the
parseModuleSourceElements; preparser and actual compiler. Adding the flag is simple
enough to switch the context to the SyntaxChecker when parsing the non-module related
statement in the preparsing phase.

To demonstrate the module analyzer, we added the new option dumpModuleRecord option
into the JSC shell. By specifying this, the result of analysis is dumped when the module
is parsed and analyzed.

(JSC::ASTBuilder::createExportDefaultDeclaration):

  • parser/ModuleAnalyzer.cpp: Added.

(JSC::ModuleAnalyzer::ModuleAnalyzer):
(JSC::ModuleAnalyzer::exportedBinding):
(JSC::ModuleAnalyzer::declareExportAlias):
(JSC::ModuleAnalyzer::exportVariable):
(JSC::ModuleAnalyzer::analyze):

  • parser/ModuleAnalyzer.h: Added.

(JSC::ModuleAnalyzer::vm):
(JSC::ModuleAnalyzer::moduleRecord):

  • parser/ModuleRecord.cpp: Added.

(JSC::printableName):
(JSC::ModuleRecord::dump):

  • parser/ModuleRecord.h: Added.

(JSC::ModuleRecord::ImportEntry::isNamespace):
(JSC::ModuleRecord::create):
(JSC::ModuleRecord::appendRequestedModule):
(JSC::ModuleRecord::addImportEntry):
(JSC::ModuleRecord::addExportEntry):
(JSC::ModuleRecord::addStarExportEntry):

  • parser/NodeConstructors.h:

(JSC::ModuleDeclarationNode::ModuleDeclarationNode):
(JSC::ImportDeclarationNode::ImportDeclarationNode):
(JSC::ExportAllDeclarationNode::ExportAllDeclarationNode):
(JSC::ExportDefaultDeclarationNode::ExportDefaultDeclarationNode):
(JSC::ExportLocalDeclarationNode::ExportLocalDeclarationNode):
(JSC::ExportNamedDeclarationNode::ExportNamedDeclarationNode):

  • parser/Nodes.h:

(JSC::ExportDefaultDeclarationNode::localName):

  • parser/NodesAnalyzeModule.cpp: Added.

(JSC::ScopeNode::analyzeModule):
(JSC::SourceElements::analyzeModule):
(JSC::ImportDeclarationNode::analyzeModule):
(JSC::ExportAllDeclarationNode::analyzeModule):
(JSC::ExportDefaultDeclarationNode::analyzeModule):
(JSC::ExportLocalDeclarationNode::analyzeModule):
(JSC::ExportNamedDeclarationNode::analyzeModule):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseModuleSourceElements):
(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::createBindingPattern):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseClassDeclaration):
(JSC::Parser<LexerType>::parseImportClauseItem):
(JSC::Parser<LexerType>::parseExportSpecifier):
(JSC::Parser<LexerType>::parseExportDeclaration):

  • parser/Parser.h:

(JSC::Scope::lexicalVariables):
(JSC::Scope::declareLexicalVariable):
(JSC::Parser::declareVariable):
(JSC::Parser::exportName):
(JSC::Parser<LexerType>::parse):
(JSC::parse):

  • parser/ParserModes.h:
  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createExportDefaultDeclaration):

  • parser/VariableEnvironment.cpp:

(JSC::VariableEnvironment::markVariableAsImported):
(JSC::VariableEnvironment::markVariableAsExported):

  • parser/VariableEnvironment.h:

(JSC::VariableEnvironmentEntry::isExported):
(JSC::VariableEnvironmentEntry::isImported):
(JSC::VariableEnvironmentEntry::setIsExported):
(JSC::VariableEnvironmentEntry::setIsImported):

  • runtime/CommonIdentifiers.h:
  • runtime/Completion.cpp:

(JSC::checkModuleSyntax):

  • runtime/Options.h:
1:22 PM Changeset in webkit [188354] by bshafiei@apple.com
  • 4 edits
    2 deletes in branches/safari-601.1.46-branch

Merged r188190. rdar://problem/22242281

1:20 PM Changeset in webkit [188353] by commit-queue@webkit.org
  • 5 edits
    3 adds in trunk

Web Inspector: Not receiving responses for async request IndexedDB.requestDatabaseNames
https://bugs.webkit.org/show_bug.cgi?id=147844

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-12
Reviewed by Brian Burg.

Source/WebKit2:

  • WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:

(WebKit::WebIDBFactoryBackend::getDatabaseNames):
This method should not return without calling either the success
or error callbacks. In this case, it can succeed with an empty list.

LayoutTests:

  • inspector/indexeddb/requestDatabaseNames-expected.txt: Added.
  • inspector/indexeddb/requestDatabaseNames.html: Added.
1:20 PM Changeset in webkit [188352] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/WebKit2

Merged r188349. rdar://problem/22206433

1:12 PM Changeset in webkit [188351] by ggaren@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Re-land r188339, since Alex fixed it in r188341 by landing the WebCore half.

  • jit/ExecutableAllocator.h:
  • jsc.cpp:

(GlobalObject::finishCreation):
(functionAddressOf):
(functionVersion):
(functionReleaseExecutableMemory): Deleted.

  • runtime/VM.cpp:

(JSC::StackPreservingRecompiler::operator()):
(JSC::VM::throwException):
(JSC::VM::updateFTLLargestStackSize):
(JSC::VM::gatherConservativeRoots):
(JSC::VM::releaseExecutableMemory): Deleted.
(JSC::releaseExecutableMemory): Deleted.

  • runtime/VM.h:

(JSC::VM::isCollectorBusy):

  • runtime/Watchdog.cpp:

(JSC::Watchdog::setTimeLimit):

12:31 PM Changeset in webkit [188350] by Simon Fraser
  • 1 edit
    1 add in trunk/Tools

Add a tool that dumps class and struct member layout, showing padding
https://bugs.webkit.org/show_bug.cgi?id=147898

Reviewed by Zalan Bujtas.

This 'dump-class-layout' script uses the lldb Python bindings to collect data
about data member layout, and displays it.

Sample output:

+0 { 72} WTF::ListHashSet<WebCore::URL, WebCore::URLHash>::Node
+0 < 56> WebCore::URL m_value;
+0 < 8> WTF::String m_string;
+0 < 8> WTF::RefPtr<WTF::StringImpl> m_impl;
+0 < 8> WTF::StringImpl * m_ptr;
+8 < 1> bool:1 m_isValid;
+8 < 1> bool:1 m_protocolIsInHTTPFamily;
+9 < 3> <PADDING>

+12 < 4> int m_schemeEnd;
+16 < 4> int m_userStart;
+20 < 4> int m_userEnd;
+24 < 4> int m_passwordEnd;
+28 < 4> int m_hostEnd;
+32 < 4> int m_portEnd;
+36 < 4> int m_pathAfterLastSlash;
+40 < 4> int m_pathEnd;
+44 < 4> int m_queryEnd;
+48 < 4> int m_fragmentEnd;
+52 < 4> <PADDING>
+52 < 4> <PADDING>
+56 < 8> WTF::ListHashSetNode<WebCore::URL> * m_prev;
+64 < 8> WTF::ListHashSetNode<WebCore::URL> * m_next;

Total byte size: 72
Total pad bytes: 11
Padding percentage: 15.28 %

  • Scripts/dump-class-layout: Added.

(webkit_build_dir):
(developer_dir):
(import_lldb):
(find_build_directory):
(verify_type):
(verify_type_recursive):
(dump_class):
(main):
(main.or):

12:29 PM Changeset in webkit [188349] by enrica@apple.com
  • 4 edits in trunk/Source/WebKit2

Element interaction should not be canceled when the menu is already being shown.
https://bugs.webkit.org/show_bug.cgi?id=147945
rdar://problem/22206433

Reviewed by Beth Dakin.

When preview is canceled by the action menu gesture, we should not stop interacting
with the element, since the information about the element is used for the menu actions.
We now expose a new method in the action sheet assistant to know if the action sheed is
being shown and we use this as an indication that we should not stop the interaction
with the element.

  • UIProcess/ios/WKActionSheetAssistant.h:
  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant isShowingSheet]): Added.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _interactionStoppedFromPreviewItemController:]): Do not stop
the interaction if the sheet is being shown.

12:23 PM Changeset in webkit [188348] by mrajca@apple.com
  • 4 edits in trunk/Source

Fixed the Release build when MEDIA_SESSION is enabled.

WebCore:

  • testing/Internals.cpp:

(WebCore::interruptingCategoryFromString):

WebKit2:

  • UIProcess/API/C/WKPage.cpp:

(WKPageHandleMediaEvent):

12:23 PM Changeset in webkit [188347] by mrajca@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Media Session: test Play/Pause media control events delivered to Default media sessions
https://bugs.webkit.org/show_bug.cgi?id=147910

Reviewed by Eric Carlson.

Media elements that aren't explicitly assigned a media session should respond to play/pause media control events.

  • media/session/play-pause-media-events-in-default-sessions-expected.txt: Added.
  • media/session/play-pause-media-events-in-default-sessions.html: Added.
12:22 PM Changeset in webkit [188346] by mrajca@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Media Session: add test for Content media session focus
https://bugs.webkit.org/show_bug.cgi?id=147902

Reviewed by Eric Carlson.

Playing a media element that belongs to a Content media session should pause other media elements that belong
to Content media sessions.

  • media/session/content-session-focus-expected.txt: Added.
  • media/session/content-session-focus.html: Added.
12:22 PM Changeset in webkit [188345] by mrajca@apple.com
  • 11 edits in trunk/Source

Media Session: notify the UI process when media controls are enabled/disabled
https://bugs.webkit.org/show_bug.cgi?id=147802

Reviewed by Eric Carlson.

WebCore:

  • Modules/mediasession/MediaRemoteControls.cpp:

(WebCore::MediaRemoteControls::MediaRemoteControls): Keep track of the parent session.
(WebCore::MediaRemoteControls::~MediaRemoteControls): Removed unnecessary line.
(WebCore::MediaRemoteControls::setPreviousTrackEnabled): Tell the session a control was enabled/disabled.
(WebCore::MediaRemoteControls::setNextTrackEnabled): Tell the session a control was enabled/disabled.

  • Modules/mediasession/MediaRemoteControls.h:

(WebCore::MediaRemoteControls::create):
(WebCore::MediaRemoteControls::setPreviousTrackEnabled): Moved to implementation file.
(WebCore::MediaRemoteControls::setNextTrackEnabled): Moved to implementation file.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::MediaSession): Keep track of the remote controls' parent session.
(WebCore::MediaSession::controlIsEnabledDidChange): Propagate the new media state to the UI process.

  • Modules/mediasession/MediaSession.h:
  • dom/Document.cpp:

(WebCore::Document::updateIsPlayingMedia): Include whether we can skip to the previous/next track.

  • page/MediaProducer.h:

WebKit2:

  • UIProcess/WebMediaSessionFocusManager.cpp:

(WebKit::WebMediaSessionFocusManager::playbackAttributeDidChange): Generalized to take different attributes.
(WebKit::WebMediaSessionFocusManager::mediaElementIsPlayingDidChange): Deleted.

  • UIProcess/WebMediaSessionFocusManager.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::isPlayingMediaDidChange): Process new attributes for enabling/disabling media controls.

12:16 PM Changeset in webkit [188344] by jhoneycutt@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Roll out r188339, which broke the build.

Unreviewed.

  • jit/ExecutableAllocator.h:
  • jsc.cpp:

(GlobalObject::finishCreation):
(functionReleaseExecutableMemory):

  • runtime/VM.cpp:

(JSC::StackPreservingRecompiler::visit):
(JSC::StackPreservingRecompiler::operator()):
(JSC::VM::releaseExecutableMemory):
(JSC::releaseExecutableMemory):

  • runtime/VM.h:
  • runtime/Watchdog.cpp:

(JSC::Watchdog::setTimeLimit):

12:03 PM Changeset in webkit [188343] by Joseph Pecoraro
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: DOM Node should have context menu to scroll it into view on the inspected page
https://bugs.webkit.org/show_bug.cgi?id=147913

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype._updateChildren.set continue):
(WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
Add a context menu item to scroll into view for element nodes.

(WebInspector.DOMTreeElement.prototype._scrollIntoView.resolvedNode.scrollIntoView):
(WebInspector.DOMTreeElement.prototype._scrollIntoView.resolvedNode):
(WebInspector.DOMTreeElement.prototype._scrollIntoView):
Call scrollIntoViewIfNeeded on the real Node.

  • UserInterface/Views/DOMTreeOutline.js:

(WebInspector.DOMTreeOutline.prototype.populateContextMenu):
Remove unused parameter.

  • UserInterface/Views/ObjectTreeBaseTreeElement.js:

(WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
Add context menu for Nodes in ObjectTrees.

12:00 PM Changeset in webkit [188342] by achristensen@apple.com
  • 12 edits in trunk

Fix Debug CMake builds on Windows
https://bugs.webkit.org/show_bug.cgi?id=147940

Reviewed by Chris Dumez.

.:

  • Source/cmake/OptionsWindows.cmake:

Put 32-bit binaries in a bin32 subdirectory and 64-bit binaries in a bin64 subdirectory.

Source/JavaScriptCore:

  • PlatformWin.cmake:

Copy the plist to the JavaScriptCore.resources directory.

Source/WebCore:

  • PlatformWin.cmake:

Copy localized strings to the WebKit.resources directory.

Source/WebKit:

  • PlatformWin.cmake:

We need /NODEFAULTLIB with the debug version of libraries, too.

Tools:

  • DumpRenderTree/PlatformWin.cmake:
  • TestWebKitAPI/PlatformWin.cmake:

The BitmapImage test is not enabled on the AppleWin port.

  • WinLauncher/CMakeLists.txt:

Debug builds need /NODEFAULTLIB:MSVCRTD, too.

11:56 AM Changeset in webkit [188341] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix after r188339.

  • bindings/js/GCController.cpp:

(WebCore::GCController::garbageCollectOnAlternateThreadForDebugging):
(WebCore::GCController::setJavaScriptGarbageCollectorTimerEnabled):
(WebCore::GCController::releaseExecutableMemory): Deleted.

  • bindings/js/GCController.h:

Commit WebCore part of patch.

11:54 AM Changeset in webkit [188340] by Brent Fulgham
  • 3 edits
    2 adds in trunk

REGRESSION(r185606): ASSERT in WebCore::RenderElement::styleWillChange
https://bugs.webkit.org/show_bug.cgi?id=147596
<rdar://problem/21963355>

Reviewed by Jon Honeycutt.

Source/WebCore:

Only add (or remove) a RenderElement from the container of RenderBoxes with
scroll snap coordinates if the element actually is a RenderBox.

Tested by css3/scroll-snap/improper-snap-points-crash.html.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):
(WebCore::RenderElement::willBeRemovedFromTree):

LayoutTests:

  • css3/scroll-snap/improper-snap-points-crash-expected.txt: Added.
  • css3/scroll-snap/improper-snap-points-crash.html: Added.
11:28 AM Changeset in webkit [188339] by ggaren@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Remove VM::releaseExecutableMemory
https://bugs.webkit.org/show_bug.cgi?id=147915

Reviewed by Saam Barati.

releaseExecutableMemory() was only used in one place, where discardAllCode()
would work just as well.

It's confusing to have two slightly different ways to discard code. Also,
releaseExecutableMemory() is unused in any production code, and it seems
to have bit-rotted.

  • jit/ExecutableAllocator.h:
  • jsc.cpp:

(GlobalObject::finishCreation):
(functionAddressOf):
(functionVersion):
(functionReleaseExecutableMemory): Deleted.

  • runtime/VM.cpp:

(JSC::StackPreservingRecompiler::operator()):
(JSC::VM::throwException):
(JSC::VM::updateFTLLargestStackSize):
(JSC::VM::gatherConservativeRoots):
(JSC::VM::releaseExecutableMemory): Deleted.
(JSC::releaseExecutableMemory): Deleted.

  • runtime/VM.h:

(JSC::VM::isCollectorBusy):

  • runtime/Watchdog.cpp:

(JSC::Watchdog::setTimeLimit):

11:14 AM Changeset in webkit [188338] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Add a JSC option to enable the watchdog for testing.
https://bugs.webkit.org/show_bug.cgi?id=147939

Reviewed by Michael Saboff.

  • API/JSContextRef.cpp:

(JSContextGroupSetExecutionTimeLimit):
(createWatchdogIfNeeded): Deleted.

  • runtime/Options.h:
  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::~VM):
(JSC::VM::sharedInstanceInternal):
(JSC::VM::ensureWatchdog):
(JSC::thunkGeneratorForIntrinsic):

  • runtime/VM.h:
10:53 AM Changeset in webkit [188337] by Devin Rousso
  • 4 edits in trunk/Source

Web Inspector: Implement selector highlighting for iOS
https://bugs.webkit.org/show_bug.cgi?id=147919

Reviewed by Timothy Hatcher.

Source/WebCore:

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::getHighlight):
If the current highlight is a nodeList, generate highlights for each node in the list and
return the concatenated value of those highlights.

Source/WebKit2:

  • UIProcess/WKInspectorHighlightView.mm:

(-[WKInspectorHighlightView _layoutForNodeHighlight:offset:]):
Added offset parameter to start drawing the highlight at that index of the highlight quad list.

(-[WKInspectorHighlightView _layoutForNodeListHighlight:]):
Loops through the highlight quads and draws a new highlight for every 4 highlight quad objects.

(-[WKInspectorHighlightView update:]):
Now uses the light highlighting for both nodes and lists of nodes.

7:28 AM Changeset in webkit [188336] by mitz@apple.com
  • 20 edits in trunk/Source/WebInspectorUI

Removed the executable bit from non-executable source.

  • UserInterface/External/CodeMirror/LICENSE: Removed property svn:executable.
  • UserInterface/External/CodeMirror/clojure.js: Removed property svn:executable.
  • UserInterface/External/CodeMirror/closebrackets.js: Removed property svn:executable.
  • UserInterface/External/CodeMirror/codemirror.css: Removed property svn:executable.
  • UserInterface/External/CodeMirror/codemirror.js: Removed property svn:executable.
  • UserInterface/External/CodeMirror/coffeescript.js: Removed property svn:executable.
  • UserInterface/External/CodeMirror/comment.js: Removed property svn:executable.
  • UserInterface/External/CodeMirror/css.js: Removed property svn:executable.
  • UserInterface/External/CodeMirror/htmlmixed.js: Removed property svn:executable.
  • UserInterface/External/CodeMirror/javascript.js: Removed property svn:executable.
  • UserInterface/External/CodeMirror/livescript.js: Removed property svn:executable.
  • UserInterface/External/CodeMirror/matchbrackets.js: Removed property svn:executable.
  • UserInterface/External/CodeMirror/overlay.js: Removed property svn:executable.
  • UserInterface/External/CodeMirror/placeholder.js: Removed property svn:executable.
  • UserInterface/External/CodeMirror/runmode.js: Removed property svn:executable.
  • UserInterface/External/CodeMirror/sass.js: Removed property svn:executable.
  • UserInterface/External/CodeMirror/searchcursor.js: Removed property svn:executable.
  • UserInterface/External/CodeMirror/sql.js: Removed property svn:executable.
  • UserInterface/External/CodeMirror/xml.js: Removed property svn:executable.
3:35 AM Changeset in webkit [188335] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. run-gtk-tests: Use a longer timeout for slow tests.

In r188125 I added a way to mark tests as slow to use a longer
timeout. But it seems it was not enough for
WTF_Lock.ContendedShortSection, so let's try again with a longer
timeout now.

  • Scripts/run-gtk-tests:

(TestRunner._run_google_test):

3:33 AM Changeset in webkit [188334] by youenn.fablet@crf.canon.fr
  • 7 edits in trunk/Source/WebCore

Remove promise attribute specific handling from binding generator
https://bugs.webkit.org/show_bug.cgi?id=147828

Reviewed by Darin Adler.

Reverting http://trac.webkit.org/changeset/184643, as CachedAttribute is used instead.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader): Deleted.

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjConstructor): Deleted.
(WebCore::setJSTestObjConstructorStaticStringAttr): Deleted.

  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:

(-[DOMTestObj voidMethod]): Deleted.
(-[DOMTestObj voidMethodWithArgs:strArg:objArg:]): Deleted.

  • bindings/scripts/test/TestObj.idl:
3:12 AM Changeset in webkit [188333] by youenn.fablet@crf.canon.fr
  • 8 edits
    3 adds in trunk

XHR.setRequestHeader should remove trailing and leading whitespaces from the header value
https://bugs.webkit.org/show_bug.cgi?id=147445

Reviewed by Darin Adler.

Source/WebCore:

Covered by added and modifed tests.

  • platform/network/HTTPParsers.h:

(WebCore::isHTTPSpace):
(WebCore::stripLeadingAndTrailingHTTPSpaces):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::setRequestHeader): strip trailing and leading whitespace before testing for header value validity and storing.

LayoutTests:

  • http/tests/xmlhttprequest/inject-header-expected.txt:
  • http/tests/xmlhttprequest/inject-header.html:
  • http/tests/xmlhttprequest/resources/print-xtest-header.cgi: Added.
  • http/tests/xmlhttprequest/set-bad-headervalue-expected.txt:
  • http/tests/xmlhttprequest/set-bad-headervalue.html:
  • http/tests/xmlhttprequest/setrequestheader-allow-whitespace-in-value-expected.txt: Added.
  • http/tests/xmlhttprequest/setrequestheader-allow-whitespace-in-value.htm: Added.
12:29 AM Changeset in webkit [188332] by Yusuke Suzuki
  • 2 edits in trunk/Tools

Allow --debug option in run-jsc
https://bugs.webkit.org/show_bug.cgi?id=147923

Reviewed by Csaba Osztrogonác.

When --debug option is specified in run-jsc, it runs the JSC shell built in the debug mode.

  • Scripts/run-jsc:
12:13 AM Changeset in webkit [188331] by Carlos Garcia Campos
  • 15 edits in trunk/Source

NetworkProcess: DNS prefetch happens in the Web Process
https://bugs.webkit.org/show_bug.cgi?id=147824

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Use FrameLoaderClient to do the DNS prefetch.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parseAttribute):

  • loader/FrameLoaderClient.h:
  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLink):

  • page/Chrome.cpp:

(WebCore::Chrome::mouseDidMoveOverElement):

Source/WebKit2:

DNS prefetch requests started in the WebProcess should be sent to
the network process when it's enabled.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::prefetchDNS): Do the
actual DNS prefetch.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in: Add

PrefetchDNS message.

  • WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp:

(webkitWebExtensionDidReceiveMessage): Use WebProcess::prefetchDNS().

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::prefetchDNS): Ditto.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::sendTapHighlightForNodeIfNecessary): Use
FrameLoaderClient to do the DNS prefetch.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::prefetchDNS): Send the request to the network
process if it's enabled, otherwise do the actual DNS prefetch.

  • WebProcess/WebProcess.h:

Aug 11, 2015:

11:05 PM Changeset in webkit [188330] by Matt Baker
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: TimelineView data not cleared when recording is reset
https://bugs.webkit.org/show_bug.cgi?id=147916

Reviewed by Timothy Hatcher.

Each derived timeline view maintains a separate array of timeline records. These weren't
cleared on reset, so switching to a timeline view after clearing the recording caused
the view to populate its tree outline.

  • UserInterface/Views/LayoutTimelineView.js:

(WebInspector.LayoutTimelineView.set columns):
(WebInspector.LayoutTimelineView):

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView.set columns):
(WebInspector.NetworkTimelineView):

  • UserInterface/Views/OverviewTimelineView.js:

(WebInspector.OverviewTimelineView.prototype.reset):
(WebInspector.OverviewTimelineView.prototype._processPendingRepresentedObjects):

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView.prototype.reset):

  • UserInterface/Views/ScriptTimelineView.js:

(WebInspector.ScriptTimelineView.prototype.reset):

10:56 PM Changeset in webkit [188329] by mark.lam@apple.com
  • 32 edits
    1 add in trunk/Source

Implementation JavaScript watchdog using WTF::WorkQueue.
https://bugs.webkit.org/show_bug.cgi?id=147107

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

How the Watchdog works?
======================

  1. When do we start the Watchdog? ============================= The watchdog should only be started if both the following conditions are true:
    1. A time limit has been set.
    2. We have entered the VM.


  1. CPU time vs Wall Clock time =========================== Why do we need 2 time deadlines: m_cpuDeadline and m_wallClockDeadline?

The watchdog uses WorkQueue dispatchAfter() to queue a timer to measure the watchdog time
limit. WorkQueue timers measure time in monotonic wall clock time. m_wallClockDeadline
indicates the wall clock time point when the WorkQueue timer is expected to fire.

The time limit for which we allow JS code to run should be measured in CPU time, which can
differ from wall clock time. m_cpuDeadline indicates the CPU time point when the watchdog
should fire.

Note: the timer firing is not the same thing as the watchdog firing. When the timer fires,
we need to check if m_cpuDeadline has been reached.

If m_cpuDeadline has been reached, the watchdog is considered to have fired.

If not, then we have a remaining amount of CPU time, Tremainder, that we should allow JS
code to continue to run for. Hence, we need to start a new timer to fire again after
Tremainder microseconds.


See Watchdog::didFireSlow().

  1. Spurious wake ups ================= Because the WorkQueue timer cannot be cancelled, the watchdog needs to ignore stale timers. It does this by checking the m_wallClockDeadline. A wakeup that occurs right after m_wallClockDeadline expires is considered to be the wakeup for the active timer. All other wake ups are considered to be spurious and will be ignored.


See Watchdog::didFireSlow().


  1. Minimizing Timer creation cost ============================== Conceptually, we could start a new timer every time we start the watchdog. But we can do better than this.


In practice, the time limit of a watchdog tends to be long, and the amount of time a watchdog
stays active tends to be short for well-behaved JS code. The user also tends to re-use the same
time limit. Consider the following example:


|

t0 t1 t2 t3 t0 + L t2 + L

|<--- T1 --------------------->|

|<--- T2 --------------------->|

|<-- Td ->| |<-- Td ->|

  1. The user initializes the watchdog with time limit L.
  2. At t0, we enter the VM to execute JS code, and starts the watchdog timer, T1. The timer is set to expire at t0 + L.
  3. At t1, we exit the VM.
  4. At t2, we enter the VM again, and would like to start a new watchdog timer, T2.


However, we can note that the expiration time for T2 would be after the expiration time
of T1. Specifically, T2 would have expired at Td after T1 expires.


Hence, we can just wait for T1 to expire, and then start a new timer T2' at time t0 + L
for a period or Td instead.

Note that didFireSlow() already compensates for time differences between wall clock and CPU time,
as well as handle spurious wake ups (see note 2 and 3 above). As a result, didFireSlow() will
automatically take care of starting a new timer for the difference Td in the example above.
Instead of starting the new timer T2 and time t2, we just verify that if the active timer, T1's
expiration is less than T2s, then we are already covered by T1 and there's no need to start T2.

The benefit:

  1. we minimize the number of timer instances we have queued in the workqueue at the same time (ideally only 1 or 0), and use less peak memory usage.
  1. we minimize the frequency of instantiating timer instances. By waiting for the current active timer to expire first, on average, we get to start one timer per time limit (which is infrequent because time limits tend to be long) instead of one timer per VM entry (which tends to be frequent).

See Watchdog::startTimer().

  • API/JSContextRef.cpp:

(createWatchdogIfNeeded):
(JSContextGroupClearExecutionTimeLimit):

  • No need to create the watchdog (if not already created) just to clear it. If the watchdog is not created yet, then it is effectively cleared.
  • API/tests/ExecutionTimeLimitTest.cpp:

(currentCPUTimeAsJSFunctionCallback):
(testExecutionTimeLimit):
(currentCPUTime): Deleted.

  • API/tests/testapi.c:

(main):

  • JavaScriptCore.vcxproj/testapi/testapi.vcxproj:
  • JavaScriptCore.vcxproj/testapi/testapi.vcxproj.filters:
  • Enable watchdog tests for all platforms.
  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Remove now unneeded WatchdogMac.cpp and WatchdogNone.cpp.
  • PlatformEfl.cmake:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGSpeculativeJIT32_64.cpp:
  • dfg/DFGSpeculativeJIT64.cpp:
  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_loop_hint):
(JSC::JIT::emitSlow_op_loop_hint):

  • jit/JITOperations.cpp:
  • llint/LLIntOffsetsExtractor.cpp:
  • llint/LLIntSlowPaths.cpp:
  • runtime/VM.cpp:
  • #include Watchdog.h in these files directly instead of doing it via VM.h. These saves us from having to recompile the world when we change Watchdog.h.
  • runtime/VM.h:
  • See comment in Watchdog::startTimer() below for why the Watchdog needs to be thread-safe ref counted.
  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):
(JSC::VMEntryScope::~VMEntryScope):

  • We have done away with the WatchdogScope and arming/disarming of the watchdog. Instead, the VMEntryScope will inform the watchdog of when we have entered and exited the VM.
  • runtime/Watchdog.cpp:

(JSC::currentWallClockTime):
(JSC::Watchdog::Watchdog):
(JSC::Watchdog::hasStartedTimer):
(JSC::Watchdog::setTimeLimit):
(JSC::Watchdog::didFireSlow):
(JSC::Watchdog::hasTimeLimit):
(JSC::Watchdog::fire):
(JSC::Watchdog::enteredVM):
(JSC::Watchdog::exitedVM):

(JSC::Watchdog::startTimer):

  • The Watchdog is now thread-safe ref counted because the WorkQueue may access it (from a different thread) even after the VM shuts down. We need to keep it alive until the WorkQueue callback completes.

In Watchdog::startTimer(), we'll ref the Watchdog to keep it alive for each
WorkQueue callback we dispatch. The callback will deref the Watchdog after it
is done with it. This ensures that the Watchdog is kept alive until all
WorkQueue callbacks are done.

(JSC::Watchdog::stopTimer):
(JSC::Watchdog::~Watchdog): Deleted.
(JSC::Watchdog::didFire): Deleted.
(JSC::Watchdog::isEnabled): Deleted.
(JSC::Watchdog::arm): Deleted.
(JSC::Watchdog::disarm): Deleted.
(JSC::Watchdog::startCountdownIfNeeded): Deleted.
(JSC::Watchdog::startCountdown): Deleted.
(JSC::Watchdog::stopCountdown): Deleted.

  • runtime/Watchdog.h:

(JSC::Watchdog::didFire):
(JSC::Watchdog::timerDidFireAddress):
(JSC::Watchdog::isArmed): Deleted.
(JSC::Watchdog::Scope::Scope): Deleted.
(JSC::Watchdog::Scope::~Scope): Deleted.

  • runtime/WatchdogMac.cpp:

(JSC::Watchdog::initTimer): Deleted.
(JSC::Watchdog::destroyTimer): Deleted.
(JSC::Watchdog::startTimer): Deleted.
(JSC::Watchdog::stopTimer): Deleted.

  • runtime/WatchdogNone.cpp:

(JSC::Watchdog::initTimer): Deleted.
(JSC::Watchdog::destroyTimer): Deleted.
(JSC::Watchdog::startTimer): Deleted.
(JSC::Watchdog::stopTimer): Deleted.

Source/WebCore:

No new tests because we're not introducing any behavior change to WebCore here.
We're only #include'ing Watchdog.h directly instead of going through VM.h.

  • ForwardingHeaders/runtime/Watchdog.h: Added.
  • PlatformEfl.cmake:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • bindings/js/JSEventListener.cpp:
  • bindings/js/WorkerScriptController.cpp:
10:54 PM Changeset in webkit [188328] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Dragging a timeline ruler handle when both handles clamped is broken
https://bugs.webkit.org/show_bug.cgi?id=147912

Reviewed by Timothy Hatcher.

When clamped handles overlap, the handle nearest in time to the ruler's edge should be visible and
clickable, and the other should be hidden. This change ensures that clicking and dragging a ruler
handle to modify a selection outside the visible area works correctly.

  • UserInterface/Views/TimelineOverview.css:

(.timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .selection-handle.right):
Style adjustment for rendering frames, which offsets the right handle by 5px instead of 4px.
(.timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .shaded-area.right):
Style adjustment for rendering frames, which offsets the right shaded area by 1px.
(.timeline-overview.frames > .timeline-ruler > .selection-handle.right): Deleted.
(.timeline-overview.frames > .timeline-ruler > .shaded-area.right): Deleted.

  • UserInterface/Views/TimelineRuler.css:

(.timeline-ruler.both-handles-clamped > .selection-handle):
Updated handle style when both are clamped.
(.timeline-ruler > .selection-handle.clamped.hidden):
Hide the clamped handle that is beneath the other clamped handle.

  • UserInterface/Views/TimelineRuler.js:

(WebInspector.TimelineRuler.prototype._updateSelection):

10:49 PM Changeset in webkit [188327] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Fix test after build fix in r188286.
https://bugs.webkit.org/show_bug.cgi?id=147907

Patch by Alex Christensen <achristensen@webkit.org> on 2015-08-11
Reviewed by Anders Carlsson.

  • TestWebKitAPI/Tests/WTF/ParkingLot.cpp:

sleep_for can now be used, but we need to include <thread>

10:45 PM Changeset in webkit [188326] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Disabling attribute styles should not be possible
https://bugs.webkit.org/show_bug.cgi?id=147922

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection):
Increases the specificity of the if statement that adds rule disable state toggling to the icon.

10:40 PM Changeset in webkit [188325] by Devin Rousso
  • 29 edits in trunk/Source/WebInspectorUI

Web Inspector: Update to CodeMirror 5.5 or later
https://bugs.webkit.org/show_bug.cgi?id=147109

Reviewed by Timothy Hatcher.

Updated CodeMirror to version 5.5, as well as the extension files for CodeMirror
that are currently used in WebInspector.

  • Localizations/en.lproj/localizedStrings.js:
  • Tools/PrettyPrinting/FormatterDebug.js:

Added WebInspector namespace for formatters.

  • Tools/PrettyPrinting/index.html:

Added WebInspector namespace for formatters.

  • UserInterface/External/CodeMirror/LICENSE:
  • UserInterface/External/CodeMirror/clojure.js:
  • UserInterface/External/CodeMirror/closebrackets.js:
  • UserInterface/External/CodeMirror/codemirror.css:
  • UserInterface/External/CodeMirror/codemirror.js:
  • UserInterface/External/CodeMirror/coffeescript.js:
  • UserInterface/External/CodeMirror/comment.js:
  • UserInterface/External/CodeMirror/css.js:
  • UserInterface/External/CodeMirror/htmlmixed.js:
  • UserInterface/External/CodeMirror/javascript.js:
  • UserInterface/External/CodeMirror/livescript.js:
  • UserInterface/External/CodeMirror/matchbrackets.js:
  • UserInterface/External/CodeMirror/overlay.js:
  • UserInterface/External/CodeMirror/sass.js:
  • UserInterface/External/CodeMirror/searchcursor.js:
  • UserInterface/External/CodeMirror/sql.js:
  • UserInterface/External/CodeMirror/xml.js:
  • UserInterface/Views/CodeMirrorFormatters.js:

Now uses the new token in CodeMirror for media query parenthesis.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.css:

(.css-style-text-editor > .CodeMirror pre):
Removed the additional vertical padding.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseDown):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp):
Clicking on the end of a line in a style will now correctly insert a new line.

  • UserInterface/Views/ComputedStyleDetailsPanel.css:

(.details-section > .content > .group > .row .CodeMirror-code pre .go-to-arrow):
The go-to arrow now has the proper dimensions.

  • UserInterface/Views/HoverMenu.css:

(.hover-menu > img):

  • UserInterface/Views/SourceCodeTextEditor.css:

(.hover-menu.color > img):

9:58 PM Changeset in webkit [188324] by Simon Fraser
  • 7 edits in trunk/Source/WebCore
[iOS WK2] ASSERT(!m_properties.backingStore
owner()) sometimes on zooming

https://bugs.webkit.org/show_bug.cgi?id=147854

Reviewed by Tim Horton.

When destroying a TileGrid, the container layer remains alive by virtue of being
in the layer tree, and it and its tiles get visited during layer tree transaction
building but we assert because we've cleared the owner on the tile layers.

The real bug is that TileController doesn't tell GraphicsLayerCA when the custom
sublayers change. Make this possible via a new PlatformCALayerClient function,
and make TileController use this when rearranging its tile grids.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::platformCALayerCustomSublayersChanged):
(WebCore::GraphicsLayerCA::updateContentsScale): No need to explicitly set
the ChildrenChanged flag now.

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/ca/PlatformCALayerClient.h:

(WebCore::PlatformCALayerClient::platformCALayerCustomSublayersChanged):
(WebCore::PlatformCALayerClient::platformCALayerLayerDidDisplay):

  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::setNeedsDisplay):
(WebCore::TileController::setContentsScale):
(WebCore::TileController::setZoomedOutContentsScale):
(WebCore::TileController::revalidateTiles):
(WebCore::TileController::clearZoomedOutTileGrid):
(WebCore::TileController::tileGridsChanged):
(WebCore::TileController::tileRevalidationTimerFired):

  • platform/graphics/ca/TileController.h:
  • platform/graphics/ca/TileGrid.h: Default param.
9:20 PM Changeset in webkit [188323] by fpizlo@apple.com
  • 12 edits
    2 adds
    2 deletes in trunk

Always use a byte-sized lock implementation
https://bugs.webkit.org/show_bug.cgi?id=147908

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • runtime/ConcurrentJITLock.h: Lock is now byte-sized and ByteLock is gone, so use Lock.

Source/WTF:

At the start of my locking algorithm crusade, I implemented Lock, which is a sizeof(void*)
lock implementation with some nice theoretical properties and good performance. Then I added
the ParkingLot abstraction and ByteLock. ParkingLot uses Lock in its implementation.
ByteLock uses ParkingLot to create a sizeof(char) lock implementation that performs like
Lock.

It turns out that ByteLock is always at least as good as Lock, and sometimes a lot better:
it requires 8x less memory on 64-bit systems. It's hard to construct a benchmark where
ByteLock is significantly slower than Lock, and when you do construct such a benchmark,
tweaking it a bit can also create a scenario where ByteLock is significantly faster than
Lock.

So, the thing that we call "Lock" should really use ByteLock's algorithm, since it is more
compact and just as fast. That's what this patch does.

But we still need to keep the old Lock algorithm, because it's used to implement ParkingLot,
which in turn is used to implement ByteLock. So this patch does this transformation:

  • Move the algorithm in Lock into files called WordLock.h|cpp. Make ParkingLot use WordLock.
  • Move the algorithm in ByteLock into Lock.h|cpp. Make everyone who used ByteLock use Lock instead. All other users of Lock now get the byte-sized lock implementation.
  • Remove the old ByteLock files.
  • WTF.vcxproj/WTF.vcxproj:
  • WTF.xcodeproj/project.pbxproj:
  • benchmarks/LockSpeedTest.cpp:

(main):

  • wtf/WordLock.cpp: Added.

(WTF::WordLock::lockSlow):
(WTF::WordLock::unlockSlow):

  • wtf/WordLock.h: Added.

(WTF::WordLock::WordLock):
(WTF::WordLock::lock):
(WTF::WordLock::unlock):
(WTF::WordLock::isHeld):
(WTF::WordLock::isLocked):

  • wtf/ByteLock.cpp: Removed.
  • wtf/ByteLock.h: Removed.
  • wtf/CMakeLists.txt:
  • wtf/Lock.cpp:

(WTF::LockBase::lockSlow):
(WTF::LockBase::unlockSlow):

  • wtf/Lock.h:

(WTF::LockBase::lock):
(WTF::LockBase::unlock):
(WTF::LockBase::isHeld):
(WTF::LockBase::isLocked):
(WTF::Lock::Lock):

  • wtf/ParkingLot.cpp:

Tools:

All previous tests of Lock are now tests of WordLock. All previous tests of ByteLock are
now tests of Lock.

  • TestWebKitAPI/Tests/WTF/Lock.cpp:

(TestWebKitAPI::runLockTest):
(TestWebKitAPI::TEST):

8:41 PM Changeset in webkit [188322] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

Disconnect LayoutStateDisabler logic and RenderView pointer.
https://bugs.webkit.org/show_bug.cgi?id=147906

Reviewed by Simon Fraser.

LayoutStateDisabler should disable layout state unconditionally.
The only place where it was actually conditional was the subtree layout branch.
Create a dedicated SubtreeLayoutStateMaintainer to manage the subtree layout case.

No change in behaviour.

  • page/FrameView.cpp:

(WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer):
(WebCore::SubtreeLayoutStateMaintainer::~SubtreeLayoutStateMaintainer):
(WebCore::FrameView::layout):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::updateFirstLetterStyle):
(WebCore::RenderBlock::updateFirstLetter):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::repaintOverhangingFloats):

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::repaintRectangleInRegions):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::layout):

  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::insertOrMoveMarkerRendererIfNeeded):

  • rendering/RenderMediaControlElements.cpp:

(WebCore::RenderMediaVolumeSliderContainer::layout):
(WebCore::RenderMediaControlTimelineContainer::layout):
(WebCore::RenderTextTrackContainerElement::layout):

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::populate):
(WebCore::RenderMultiColumnFlowThread::evacuateAndDestroy):

  • rendering/RenderView.h:

(WebCore::LayoutStateDisabler::LayoutStateDisabler):
(WebCore::LayoutStateDisabler::~LayoutStateDisabler):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::layout):

8:16 PM Changeset in webkit [188321] by Matt Baker
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Add the ability to filter out tasks in the Rendering Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=147389

Reviewed by Timothy Hatcher.

Added filtering by task type to the Rendering Frames timeline view. Legend item checkboxes
in the timeline sidebar toggle filtering for the corresponding task. The "Other" category
cannot be filtered, since all rendering frame records include some "other" time in addition to
child records from at least one additional task type.

A row is filtered (hidden) from the data grid when the corresponding rendering frame has no
unfiltered child records.

  • UserInterface/Base/Main.js:

(WebInspector._windowFocused):
(WebInspector._windowBlurred):
Added inactive style for docked window.

  • UserInterface/Views/ChartDetailsSectionRow.css:

(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > label > .color-key):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > label):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > label > input[type=checkbox]):
(body.window-inactive .details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > label > input[type=checkbox]):
(.details-section > .content > .group > .row.chart > .defs-only):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label > .color-swatch): Deleted.
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label): Deleted.
Switched to label elements, added checkbox styles, and updated color swatch style for non-checkbox items.

  • UserInterface/Views/ChartDetailsSectionRow.js:

(WebInspector.ChartDetailsSectionRow):
Added svg filter container and style sheet element.
(WebInspector.ChartDetailsSectionRow.prototype.set data):
(WebInspector.ChartDetailsSectionRow.prototype._createLegend.createGammaPrimitive):
(WebInspector.ChartDetailsSectionRow.prototype._createLegend.createCheckboxFilterElement):
Helper function to create an svg:filter to blend legend key color over the native checkbox element.
Filter assumes grayscale input, and each checkbox requires a separate filter.
(WebInspector.ChartDetailsSectionRow.prototype._createLegend):
Creates legend items, svg filters, and checkbox style sheet.
(WebInspector.ChartDetailsSectionRow.prototype._legendItemCheckboxValueChanged):
Repackage and forward checkbox changed event.
(WebInspector.ChartDetailsSectionRow.prototype._createLegendItem): Deleted.
Logic moved to WebInspector.ChartDetailsSectionRow.prototype._createLegend.

  • UserInterface/Views/TimelineSidebarPanel.js:

Added set of rendering frame task types against which tree elements can be filtered.
(WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
If filter is not empty, check ancestor rendering frame record for unfiltered data.
(WebInspector.TimelineSidebarPanel.prototype._frameSelectionLegendItemChecked):
Update task filter in response when legend items are checked/unchecked.

7:35 PM Changeset in webkit [188320] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix ViewportConfiguration dumping.

ViewportConfiguration::dump() was dumping parameters.width as parameters.initialScale.

  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfigurationTextStream::operator<<):

6:59 PM Changeset in webkit [188319] by mmaxfield@apple.com
  • 5 edits
    1 add in trunk

[font-features] Map OpenType feature tags to TrueType feature selectors
https://bugs.webkit.org/show_bug.cgi?id=147819

Reviewed by Dean Jackson.

Source/WebCore:

Allow uses of font-feature-settings even on TrueType fonts.

Test: css3/font-feature-settings-preinstalled-fonts.html

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::appendRawTrueTypeFeature):
(WebCore::appendTrueTypeFeature):

LayoutTests:

Updated test results.

  • platform/mac/css3/font-feature-settings-preinstalled-fonts-expected.png: Added.
  • platform/mac/css3/font-feature-settings-preinstalled-fonts-expected.txt:
6:59 PM Changeset in webkit [188318] by basile_clement@apple.com
  • 7 edits in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: Arity fixup should make use of the possible extra empty slots at top of the frame
https://bugs.webkit.org/show_bug.cgi?id=147893

Reviewed by Michael Saboff.

This changes the way arity fixup is performed. Since r187767, we always
ensure that the total amount of space reserved for a call frame is
stack-aligned, which means that for a non-aligned call frame size, we
have an additional "free" slot at the top of the frame. This makes it
so that when performing arity fixup, we first use that space if
necessary before moving the frame down.

This ensures that the total stack space used by a frame is always
max(argCount, numParameters) + JSStack::CallFrameHeaderSize, rounded up
to be a multiple of 2.

  • jit/CCallHelpers.h:
  • jit/ThunkGenerators.cpp:

(JSC::arityFixupGenerator):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::arityCheckFor): Returns the padding in amount of slots instead of aligned stack units

6:46 PM Changeset in webkit [188317] by Gyuyoung Kim
  • 3 edits in trunk/Source/WebKit2

Try to fix the EFL build after r188279
https://bugs.webkit.org/show_bug.cgi?id=147917

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-08-11
Reviewed by Gyuyoung Kim.

Replaced the WKPageLoaderClient with variable name because it is removed in r188279.

  • UIProcess/efl/PageLoadClientEfl.cpp:

(WebKit::PageLoadClientEfl::PageLoadClientEfl):

  • UIProcess/efl/PagePolicyClientEfl.cpp:

(WebKit::PagePolicyClientEfl::PagePolicyClientEfl):

6:43 PM Changeset in webkit [188316] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1-branch/Source

Versioning.

6:12 PM Changeset in webkit [188315] by Gyuyoung Kim
  • 46 edits in trunk/Source/WebCore

Reduce use of PassRefPtr in WebCore/css
https://bugs.webkit.org/show_bug.cgi?id=147821

Reviewed by Daniel Bates.

Use RefPtr when returning nullptr or RefPtr, if not, use Ref.

  • css/CSSBasicShapes.cpp:

(WebCore::buildSerializablePositionOffset):
(WebCore::CSSBasicShapeCircle::cssText):
(WebCore::CSSBasicShapeEllipse::cssText):

  • css/CSSBasicShapes.h:
  • css/CSSCalculationValue.cpp:

(WebCore::determineCategory):
(WebCore::CSSCalcExpressionNodeParser::parseCalc):
(WebCore::createBlendHalf):
(WebCore::createCSS):

  • css/CSSCanvasValue.cpp:

(WebCore::CSSCanvasValue::image):

  • css/CSSCanvasValue.h:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::positionOffsetValue):
(WebCore::ComputedStyleExtractor::currentColorOrValidColor):
(WebCore::ComputedStyleExtractor::getFontSizeCSSValuePreferringKeyword):
(WebCore::counterToCSSValue):
(WebCore::zoomAdjustedPaddingOrMarginPixelValue):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
(WebCore::computeRenderStyleForProperty):
(WebCore::valueForItemPositionWithOverflowAlignment):
(WebCore::valueForContentPositionAndDistributionWithOverflowAlignment):
(WebCore::ComputedStyleExtractor::propertyValue):
(WebCore::ComputedStyleExtractor::getCSSPropertyValuesForShorthandProperties):
(WebCore::ComputedStyleExtractor::getCSSPropertyValuesForSidesShorthand):
(WebCore::ComputedStyleExtractor::getCSSPropertyValuesForGridShorthand):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValueInternal):
(WebCore::ComputedStyleExtractor::getBackgroundShorthandValue):

  • css/CSSComputedStyleDeclaration.h:
  • css/CSSCrossfadeValue.cpp:

(WebCore::CSSCrossfadeValue::image):
(WebCore::CSSCrossfadeValue::blend):

  • css/CSSCrossfadeValue.h:
  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::image):

  • css/CSSFilterImageValue.h:
  • css/CSSGradientValue.cpp:

(WebCore::CSSGradientValue::image):
(WebCore::CSSGradientValue::gradientWithStylesResolved):
(WebCore::CSSLinearGradientValue::createGradient):
(WebCore::CSSRadialGradientValue::createGradient):

  • css/CSSGradientValue.h:
  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::cloneForCSSOM):

  • css/CSSImageSetValue.h:
  • css/CSSImageValue.cpp:

(WebCore::CSSImageValue::cloneForCSSOM):

  • css/CSSImageValue.h:
  • css/CSSParser.cpp:

(WebCore::CSSParser::parseRule):
(WebCore::CSSParser::parseKeyframeRule):
(WebCore::CSSParser::parseFontFaceValue):
(WebCore::CSSParser::parseValidPrimitive):
(WebCore::CSSParser::parseContentDistributionOverflowPosition):
(WebCore::CSSParser::parseAttr):
(WebCore::CSSParser::parseBackgroundColor):
(WebCore::CSSParser::parsePositionX):
(WebCore::CSSParser::parsePositionY):
(WebCore::CSSParser::parseFillPositionComponent):
(WebCore::CSSParser::parseFillSize):
(WebCore::CSSParser::parseAnimationDelay):
(WebCore::CSSParser::parseAnimationDirection):
(WebCore::CSSParser::parseAnimationDuration):
(WebCore::CSSParser::parseAnimationFillMode):
(WebCore::CSSParser::parseAnimationIterationCount):
(WebCore::CSSParser::parseAnimationName):
(WebCore::CSSParser::parseAnimationPlayState):
(WebCore::CSSParser::parseAnimationTrigger):
(WebCore::CSSParser::parseAnimationProperty):
(WebCore::CSSParser::parseAnimationTimingFunction):
(WebCore::CSSParser::parseGridPosition):
(WebCore::gridMissingGridPositionValue):
(WebCore::CSSParser::parseGridTrackList):
(WebCore::CSSParser::parseGridTrackSize):
(WebCore::CSSParser::parseGridBreadth):
(WebCore::CSSParser::parseGridAutoFlow):
(WebCore::CSSParser::parseGridTemplateAreas):
(WebCore::CSSParser::parseCounterContent):
(WebCore::CSSParser::parseInsetRoundedCorners):
(WebCore::CSSParser::parseBasicShapeInset):
(WebCore::CSSParser::parseShapeRadius):
(WebCore::CSSParser::parseBasicShapeCircle):
(WebCore::CSSParser::parseBasicShapeEllipse):
(WebCore::CSSParser::parseBasicShapePolygon):
(WebCore::CSSParser::parseBasicShapeAndOrBox):
(WebCore::CSSParser::parseShapeProperty):
(WebCore::CSSParser::parseClipPath):
(WebCore::CSSParser::parseBasicShape):
(WebCore::CSSParser::parseFontFamily):
(WebCore::CSSParser::parseColor):
(WebCore::CSSParser::parseShadow):
(WebCore::CSSParser::parseImageResolution):
(WebCore::CSSParser::parseImageSet):
(WebCore::CSSParser::parseTransform):
(WebCore::CSSParser::parseTransformValue):
(WebCore::CSSParser::parseBuiltinFilterArguments):
(WebCore::CSSParser::parseTextIndent):
(WebCore::CSSParser::createImportRule):
(WebCore::CSSParser::createMediaRule):
(WebCore::CSSParser::createEmptyMediaRule):
(WebCore::CSSParser::createSupportsRule):
(WebCore::CSSParser::popSupportsRuleData):
(WebCore::CSSParser::createKeyframesRule):
(WebCore::CSSParser::createStyleRule):
(WebCore::CSSParser::createFontFaceRule):
(WebCore::CSSParser::createPageRule):
(WebCore::CSSParser::createRegionRule):
(WebCore::CSSParser::createKeyframe):

  • css/CSSParser.h:
  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::cloneForCSSOM):

  • css/CSSPrimitiveValue.h:
  • css/CSSStyleDeclaration.h:
  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::rules):
(WebCore::CSSStyleSheet::cssRules):

  • css/CSSStyleSheet.h:
  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::styleImage):

  • css/CSSToStyleMap.h:
  • css/CSSValue.cpp:

(WebCore::CSSValue::cloneForCSSOM):

  • css/CSSValue.h:
  • css/CSSValueList.cpp:

(WebCore::CSSValueList::cloneForCSSOM):

  • css/CSSValueList.h:
  • css/MediaList.h:

(WebCore::MediaQuerySet::copy):

  • css/MediaQueryMatcher.cpp:

(WebCore::MediaQueryMatcher::matchMedia):

  • css/MediaQueryMatcher.h:
  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValueInternal):

  • css/PropertySetCSSStyleDeclaration.h:
  • css/RGBColor.cpp:

(WebCore::RGBColor::red):
(WebCore::RGBColor::green):
(WebCore::RGBColor::blue):
(WebCore::RGBColor::alpha):

  • css/RGBColor.h:
  • css/SVGCSSComputedStyleDeclaration.cpp:

(WebCore::glyphOrientationToCSSPrimitiveValue):
(WebCore::strokeDashArrayToCSSValueList):
(WebCore::ComputedStyleExtractor::adjustSVGPaintForCurrentColor):
(WebCore::ComputedStyleExtractor::svgPropertyValue):

  • css/SVGCSSParser.cpp:

(WebCore::CSSParser::parseSVGStrokeDasharray):
(WebCore::CSSParser::parseSVGPaint):
(WebCore::CSSParser::parseSVGColor):
(WebCore::CSSParser::parsePaintOrder):

  • css/WebKitCSSFilterValue.cpp:

(WebCore::WebKitCSSFilterValue::cloneForCSSOM):

  • css/WebKitCSSFilterValue.h:
  • css/WebKitCSSMatrix.cpp:

(WebCore::WebKitCSSMatrix::multiply):
(WebCore::WebKitCSSMatrix::inverse):
(WebCore::WebKitCSSMatrix::translate):
(WebCore::WebKitCSSMatrix::scale):
(WebCore::WebKitCSSMatrix::rotate):
(WebCore::WebKitCSSMatrix::rotateAxisAngle):
(WebCore::WebKitCSSMatrix::skewX):
(WebCore::WebKitCSSMatrix::skewY):

  • css/WebKitCSSMatrix.h:
  • css/WebKitCSSTransformValue.cpp:

(WebCore::WebKitCSSTransformValue::cloneForCSSOM):

  • css/WebKitCSSTransformValue.h:
5:45 PM Changeset in webkit [188314] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.50

New tag.

5:22 PM Changeset in webkit [188313] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

5:18 PM Changeset in webkit [188312] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.8

New tag.

4:50 PM Changeset in webkit [188311] by ap@apple.com
  • 9 edits
    1 delete in trunk

Make ASan build not depend on asan.xcconfig
https://bugs.webkit.org/show_bug.cgi?id=147840
rdar://problem/21093702

Reviewed by Daniel Bates.

Source/JavaScriptCore:

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::OSREntryData::dump):
(JSC::DFG::prepareOSREntry):

  • ftl/FTLOSREntry.cpp:

(JSC::FTL::prepareOSREntry):

  • heap/ConservativeRoots.cpp:

(JSC::ConservativeRoots::genericAddPointer):
(JSC::ConservativeRoots::genericAddSpan):

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::removeThreadIfFound):
(JSC::MachineThreads::gatherFromCurrentThread):
(JSC::MachineThreads::Thread::captureStack):
(JSC::copyMemory):

  • interpreter/Register.h:

(JSC::Register::operator=):
(JSC::Register::asanUnsafeJSValue):
(JSC::Register::jsValue):

Tools:

  • asan/asan.xcconfig:
  • asan/webkit-asan-ignore.txt: Removed. It's no longer needed, as unsafe functions

are now marked in source code.

4:36 PM Changeset in webkit [188310] by fpizlo@apple.com
  • 2 edits in trunk/Tools

Unreviewed, shorten another test since it timed out.

  • TestWebKitAPI/Tests/WTF/ParkingLot.cpp:

(TestWebKitAPI::TEST):

4:23 PM Changeset in webkit [188309] by mark.lam@apple.com
  • 3 edits in trunk/Tools

Fix names of Lock tests: should be "Contended", not "Contented".
https://bugs.webkit.org/show_bug.cgi?id=147905

Reviewed by Saam Barati.

We're testing the behavior of lock contention (i.e. when threads contend), not
whether the locks are happy (contented).

  • Scripts/run-gtk-tests:

(TestRunner):
(TestRunner.init): Deleted.

  • TestWebKitAPI/Tests/WTF/Lock.cpp:

(TestWebKitAPI::runLockTest):
(TestWebKitAPI::TEST):

4:17 PM Changeset in webkit [188308] by achristensen@apple.com
  • 2 edits in trunk/Tools

Update WinCairoRequirements to VS2015.

  • Scripts/update-webkit-wincairo-libs:

Update WinCairoRequirements location.

4:10 PM Changeset in webkit [188307] by Simon Fraser
  • 2 edits
    3 adds in trunk/LayoutTests

Windows test gardening.

  • platform/win/TestExpectations:
  • platform/win/css3/font-feature-settings-preinstalled-fonts-expected.txt: Added.
  • platform/win/fast/forms/input-appearance-spinbutton-expected.txt: Added.
  • platform/win/fast/forms/input-appearance-spinbutton-up-expected.txt: Added.
4:04 PM Changeset in webkit [188306] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Move CountQueuingStrategy and related to files to their correct place in the Xcode project
https://bugs.webkit.org/show_bug.cgi?id=147901

Patch by Sam Weinig <sam@webkit.org> on 2015-08-11
Reviewed by Anders Carlsson.

  • WebCore.xcodeproj/project.pbxproj:
4:00 PM Changeset in webkit [188305] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

Use more references in FrameView.
https://bugs.webkit.org/show_bug.cgi?id=147899

Reviewed by Simon Fraser.

No change in functionality.

  • page/FrameView.cpp:

(WebCore::FrameView::flushCompositingStateForThisFrame):
(WebCore::FrameView::flushCompositingStateIncludingSubframes):
(WebCore::FrameView::addSlowRepaintObject):
(WebCore::FrameView::scrollElementToRect):

  • page/FrameView.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::willBeDestroyed):

  • rendering/RenderScrollbarPart.cpp:

(WebCore::RenderScrollbarPart::imageChanged):

  • testing/Internals.cpp:

(WebCore::Internals::scrollElementToRect):

3:47 PM Changeset in webkit [188304] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

Substituted Dashboard.Repository.OpenSource.trac for webkitTrac and Dashboard.Repository.Internal.trac
for internalTrac.
https://bugs.webkit.org/show_bug.cgi?id=147805

Patch by Jason Marcell <jmarcell@apple.com> on 2015-08-11
Reviewed by Daniel Bates.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:

(BuildbotQueueView): Substituted Dashboard.Repository.OpenSource.trac for webkitTrac and
Dashboard.Repository.Internal.trac for internalTrac.
(BuildbotQueueView.prototype._appendPendingRevisionCount): Added local variables webkitTrac
and internalTrac for Dashboard.Repository.OpenSource.trac and Dashboard.Repository.Internal.trac,
respectively.
(BuildbotQueueView.prototype._presentPopoverForPendingCommits): Ditto.
(BuildbotQueueView.prototype.revisionContentForIteration): Substituted
Dashboard.Repository.OpenSource.trac for webkitTrac and Dashboard.Repository.Internal.trac for
internalTrac.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Initialization.js: Ditto.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js: Ditto.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsAnalyzer.js:

(Analyzer): Ditto.
(Analyzer.prototype.analyze): Ditto.

3:43 PM Changeset in webkit [188303] by matthew_hanson@apple.com
  • 7 edits
    2 deletes in branches/safari-601.1-branch

Rollout r188263. rdar://problem/22202935

3:39 PM Changeset in webkit [188302] by fpizlo@apple.com
  • 2 edits in trunk/Tools

Unreviewed, gardening these tests to run faster so that they don't timeout on slower OSes.

  • TestWebKitAPI/Tests/WTF/ParkingLot.cpp:

(TestWebKitAPI::TEST):

3:04 PM Changeset in webkit [188301] by fpizlo@apple.com
  • 2 edits
    1 delete in trunk/Source/WTF

Remove ByteSpinLock
https://bugs.webkit.org/show_bug.cgi?id=147900

Rubber stamped by Mark Lam.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/ByteSpinLock.h: Removed.
3:02 PM Changeset in webkit [188300] by Brent Fulgham
  • 2 edits in trunk/WebKitLibraries

[Win] Unreviewed build fix for VS2015 targets.

  • win/lib32/WebKitSystemInterface.lib: Update with VS2015 version of library.
3:02 PM Changeset in webkit [188299] by Yusuke Suzuki
  • 38 edits
    51 adds in trunk

Introduce get_by_id like IC into get_by_val when the given name is String or Symbol
https://bugs.webkit.org/show_bug.cgi?id=147480

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch adds get_by_id IC to get_by_val operation by caching the string / symbol id.
The IC site only caches one id. After checking that the given id is the same to the
cached one, we perform the get_by_id IC onto it.
And by collecting IC StructureStubInfo information, we pass it to the DFG and DFG
compiles get_by_val op code into CheckIdent (with edge type check) and GetById related
operations when the given get_by_val leverages the property load with the cached id.

To ensure the incoming value is the expected id, in DFG layer, we use SymbolUse and
StringIdentUse to enforce the type. To use it, this patch implements SymbolUse.
This can be leveraged to optimize symbol operations in DFG.

And since byValInfo is frequently used, we align the byValInfo design to the stubInfo like one.
Allocated by the Bag and operations take the raw byValInfo pointer directly instead of performing
binary search onto m_byValInfos. And by storing ArrayProfile* under the ByValInfo, we replaced the
argument ArrayProfile* in the operations with ByValInfo*.

  • bytecode/ByValInfo.h:

(JSC::ByValInfo::ByValInfo):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::getByValInfoMap):
(JSC::CodeBlock::addByValInfo):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::getByValInfo): Deleted.
(JSC::CodeBlock::setNumberOfByValInfos): Deleted.
(JSC::CodeBlock::numberOfByValInfos): Deleted.
(JSC::CodeBlock::byValInfo): Deleted.

  • bytecode/ExitKind.cpp:

(JSC::exitKindToString):

  • bytecode/ExitKind.h:
  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeFor):
(JSC::GetByIdStatus::computeForStubInfo):
(JSC::GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback):

  • bytecode/GetByIdStatus.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::observeUseKindOnNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasUidOperand):
(JSC::DFG::Node::uidOperand):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):
(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckIdent):
(JSC::DFG::SpeculativeJIT::speculateSymbol):
(JSC::DFG::SpeculativeJIT::speculate):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGUseKind.cpp:

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):
(JSC::DFG::isCell):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCheckIdent):
(JSC::FTL::DFG::LowerDFGToLLVM::lowSymbol):
(JSC::FTL::DFG::LowerDFGToLLVM::speculate):
(JSC::FTL::DFG::LowerDFGToLLVM::isNotSymbol):
(JSC::FTL::DFG::LowerDFGToLLVM::speculateSymbol):

  • jit/JIT.cpp:

(JSC::JIT::privateCompile):

  • jit/JIT.h:

(JSC::ByValCompilationInfo::ByValCompilationInfo):
(JSC::JIT::compileGetByValWithCachedId):

  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_has_indexed_property):
(JSC::JIT::emitSlow_op_has_indexed_property):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_has_indexed_property):
(JSC::JIT::emitSlow_op_has_indexed_property):

  • jit/JITOperations.cpp:

(JSC::getByVal):

  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::privateCompileGetByVal):
(JSC::JIT::privateCompileGetByValWithCachedId):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitSlow_op_put_by_val):

  • runtime/Symbol.h:
  • tests/stress/get-by-val-with-string-constructor.js: Added.

(Hello):
(get Hello.prototype.generate):
(ok):

  • tests/stress/get-by-val-with-string-exit.js: Added.

(shouldBe):
(getByVal):
(getStr1):
(getStr2):

  • tests/stress/get-by-val-with-string-generated.js: Added.

(shouldBe):
(getByVal):
(getStr1):
(getStr2):

  • tests/stress/get-by-val-with-string-getter.js: Added.

(object.get hello):
(ok):

  • tests/stress/get-by-val-with-string.js: Added.

(shouldBe):
(getByVal):
(getStr1):
(getStr2):

  • tests/stress/get-by-val-with-symbol-constructor.js: Added.

(Hello):
(get Hello.prototype.generate):
(ok):

  • tests/stress/get-by-val-with-symbol-exit.js: Added.

(shouldBe):
(getByVal):
(getSym1):
(getSym2):

  • tests/stress/get-by-val-with-symbol-getter.js: Added.

(object.get hello):
(.get ok):

  • tests/stress/get-by-val-with-symbol.js: Added.

(shouldBe):
(getByVal):
(getSym1):
(getSym2):

LayoutTests:

Add synthetic benchmarks that replaces normal property load with symbol/string keyed load.

  • js/regress/get-by-val-with-string-bimorphic-check-structure-elimination-expected.txt: Added.
  • js/regress/get-by-val-with-string-bimorphic-check-structure-elimination-simple-expected.txt: Added.
  • js/regress/get-by-val-with-string-bimorphic-check-structure-elimination-simple.html: Added.
  • js/regress/get-by-val-with-string-bimorphic-check-structure-elimination.html: Added.
  • js/regress/get-by-val-with-string-chain-from-try-block-expected.txt: Added.
  • js/regress/get-by-val-with-string-chain-from-try-block.html: Added.
  • js/regress/get-by-val-with-string-check-structure-elimination-expected.txt: Added.
  • js/regress/get-by-val-with-string-check-structure-elimination.html: Added.
  • js/regress/get-by-val-with-string-proto-or-self-expected.txt: Added.
  • js/regress/get-by-val-with-string-proto-or-self.html: Added.
  • js/regress/get-by-val-with-string-quadmorphic-check-structure-elimination-simple-expected.txt: Added.
  • js/regress/get-by-val-with-string-quadmorphic-check-structure-elimination-simple.html: Added.
  • js/regress/get-by-val-with-string-self-or-proto-expected.txt: Added.
  • js/regress/get-by-val-with-string-self-or-proto.html: Added.
  • js/regress/get-by-val-with-symbol-bimorphic-check-structure-elimination-expected.txt: Added.
  • js/regress/get-by-val-with-symbol-bimorphic-check-structure-elimination-simple-expected.txt: Added.
  • js/regress/get-by-val-with-symbol-bimorphic-check-structure-elimination-simple.html: Added.
  • js/regress/get-by-val-with-symbol-bimorphic-check-structure-elimination.html: Added.
  • js/regress/get-by-val-with-symbol-chain-from-try-block-expected.txt: Added.
  • js/regress/get-by-val-with-symbol-chain-from-try-block.html: Added.
  • js/regress/get-by-val-with-symbol-check-structure-elimination-expected.txt: Added.
  • js/regress/get-by-val-with-symbol-check-structure-elimination.html: Added.
  • js/regress/get-by-val-with-symbol-proto-or-self-expected.txt: Added.
  • js/regress/get-by-val-with-symbol-proto-or-self.html: Added.
  • js/regress/get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple-expected.txt: Added.
  • js/regress/get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple.html: Added.
  • js/regress/get-by-val-with-symbol-self-or-proto-expected.txt: Added.
  • js/regress/get-by-val-with-symbol-self-or-proto.html: Added.
  • js/regress/script-tests/get-by-val-with-string-bimorphic-check-structure-elimination-simple.js: Added.
  • js/regress/script-tests/get-by-val-with-string-bimorphic-check-structure-elimination.js: Added.
  • js/regress/script-tests/get-by-val-with-string-chain-from-try-block.js: Added.

(A):
(B):
(C):
(D):
(E):
(F):
(G):
(foo):

  • js/regress/script-tests/get-by-val-with-string-check-structure-elimination.js: Added.
  • js/regress/script-tests/get-by-val-with-string-proto-or-self.js: Added.

(foo):
(bar):
(Foo):

  • js/regress/script-tests/get-by-val-with-string-quadmorphic-check-structure-elimination-simple.js: Added.
  • js/regress/script-tests/get-by-val-with-string-self-or-proto.js: Added.

(foo):
(bar):
(Foo):

  • js/regress/script-tests/get-by-val-with-symbol-bimorphic-check-structure-elimination-simple.js: Added.
  • js/regress/script-tests/get-by-val-with-symbol-bimorphic-check-structure-elimination.js: Added.
  • js/regress/script-tests/get-by-val-with-symbol-chain-from-try-block.js: Added.

(A):
(B):
(C):
(D):
(E):
(F):
(G):
(foo):

  • js/regress/script-tests/get-by-val-with-symbol-check-structure-elimination.js: Added.
  • js/regress/script-tests/get-by-val-with-symbol-proto-or-self.js: Added.

(foo):
(bar):
(Foo):

  • js/regress/script-tests/get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple.js: Added.
  • js/regress/script-tests/get-by-val-with-symbol-self-or-proto.js: Added.

(foo):
(bar):
(Foo):

2:50 PM Changeset in webkit [188298] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Invalid FrameView::m_viewportRenderer after layout is finished.
https://bugs.webkit.org/show_bug.cgi?id=147848
rdar://problem/22205197

Reviewed by Simon Fraser.

We cache the current viewport renderer (FrameView::m_viewportRenderer) right before layout.
It gets dereferenced later when layout is finished to update the overflow status.
If the viewport renderer gets destroyed during layout, we end up with a dangling pointer.
This patch replaces the pointer caching with type caching (none, body, document).

Unable to construct a test case.

2:42 PM Changeset in webkit [188297] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit2

Tried again to fix the iOS build.

  • UIProcess/ios/WKGeolocationProviderIOS.mm:

(-[WKGeolocationProviderIOS initWithProcessPool:]):

2:26 PM Changeset in webkit [188296] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1.46-branch/Source/WebKit2

Merge r188285. rdar://problem/22206433

2:19 PM Changeset in webkit [188295] by matthew_hanson@apple.com
  • 8 edits
    2 adds in branches/safari-601.1-branch

Merge r188203. rdar://problem/22026625

2:13 PM Changeset in webkit [188294] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Rollout r188243. rdar://problem/22102378

2:13 PM Changeset in webkit [188293] by matthew_hanson@apple.com
  • 3 edits
    2 deletes in branches/safari-601.1.46-branch

Rollout r188195. rdar://problem/22102378

2:04 PM Changeset in webkit [188292] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

DFG::ByteCodeParser shouldn't call tryGetConstantProperty() with some StructureSet if it isn't checking that the base has a structure in that StructureSet
https://bugs.webkit.org/show_bug.cgi?id=147891
rdar://problem/22129447

Reviewed by Mark Lam.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleGetByOffset): Get rid of this.
(JSC::DFG::ByteCodeParser::load): Don't call the version of handleGetByOffset() that assumes that we had CheckStructure'd some StructureSet, since we may not have CheckStructure'd anything.

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::assertIsRegistered): Make this always assert even before the StructureRegistrationPhase.

  • dfg/DFGStructureRegistrationPhase.cpp:

(JSC::DFG::StructureRegistrationPhase::run): Add a FIXME that notes that we no longer believe that structures should be registered only at this phase. They should be registered before this phase and this phase should be removed.

2:02 PM Changeset in webkit [188291] by Brent Fulgham
  • 49 edits in trunk

[Win] Switch Windows build to Visual Studio 2015
https://bugs.webkit.org/show_bug.cgi?id=147887
<rdar://problem/22235098>

Reviewed by Alex Christensen.

Update Visual Studio project file settings to use the current Visual
Studio and compiler. Continue targeting binaries to run on our minimum
supported configuration of Windows 7.

Source/JavaScriptCore:

Source/ThirdParty:

  • gtest/msvc/gtest-md.vcxproj:

Source/ThirdParty/ANGLE:

  • ANGLE.vcxproj/libEGL.vcxproj:
  • ANGLE.vcxproj/libGLESv2.vcxproj:
  • ANGLE.vcxproj/preprocessor.vcxproj:
  • ANGLE.vcxproj/translator_common.vcxproj:
  • ANGLE.vcxproj/translator_glsl.vcxproj:
  • ANGLE.vcxproj/translator_hlsl.vcxproj:

Source/WebCore:

No change in behavior, so no new tests.

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCoreGenerated.vcxproj:
  • WebCore.vcxproj/WebCoreTestSupport.vcxproj:

Source/WebInspectorUI:

  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:

Source/WebKit:

  • WebKit.vcxproj/Interfaces/Interfaces.vcxproj:
  • WebKit.vcxproj/WebKit.sln:
  • WebKit.vcxproj/WebKit/WebKit.vcxproj:
  • WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj:

Source/WTF:

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.vcxproj/WTFGenerated.vcxproj:

Tools:

  • DumpRenderTree/DumpRenderTree.vcxproj/DumpRenderTree/DumpRenderTree.vcxproj:
  • DumpRenderTree/DumpRenderTree.vcxproj/DumpRenderTree/DumpRenderTreeLauncher.vcxproj:
  • DumpRenderTree/DumpRenderTree.vcxproj/ImageDiff/ImageDiff.vcxproj:
  • DumpRenderTree/DumpRenderTree.vcxproj/ImageDiff/ImageDiffLauncher.vcxproj:
  • DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/TestNetscapePlugin.vcxproj:
  • Scripts/webkitdirs.pm: Modify our Visual Studio search routines to

prefer the newer MSBuild included in Visual Studio 2015.
(visualStudioInstallDir):
(msBuildInstallDir):
(visualStudioVersion):

  • TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj:
  • TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj.filters:
  • WinLauncher/WinLauncher.vcxproj/WinLauncher.vcxproj:
  • WinLauncher/WinLauncher.vcxproj/WinLauncherLib.vcxproj:
  • win/AssembleBuildLogs/AssembleBuildLogs.vcxproj:
  • win/record-memory/record-memory.vcxproj:
2:01 PM Changeset in webkit [188290] by ap@apple.com
  • 6 edits in branches/safari-601.1-branch

Merge r187595.

2015-07-30 Nan Wang <n_wang@apple.com>

aria-liveregions-notifications tests are very flaky
https://bugs.webkit.org/show_bug.cgi?id=147299
<rdar://problem/21998675>

Reviewed by Chris Fleizach.

These tests were flaky because they relied on timer notification callbacks.
Fixed these tests by using different objects to capture the notifications instead.

  • platform/mac/accessibility/aria-liveregions-notifications-always-sent-expected.txt:
  • platform/mac/accessibility/aria-liveregions-notifications-always-sent.html:
  • platform/mac/accessibility/aria-liveregions-notifications-expected.txt:
  • platform/mac/accessibility/aria-liveregions-notifications.html:
1:47 PM Changeset in webkit [188289] by basile_clement@apple.com
  • 4 edits
    1 delete in branches/jsc-tailcall

jsc-tailcall: Make tail call tests run in all tiers
https://bugs.webkit.org/show_bug.cgi?id=147895

Reviewed by Michael Saboff.

Source/JavaScriptCore:

Make the test checking that tail calls are correctly performed
when we have a syntaxic tail call run enough to get compiled to the
upper tiers.

Also remove a bogus file that contained a duplicate of those tests.

  • tests/stress/tail-call-recognize.js:
  • tests/stress/tail-call-trigger.js: Removed.

Tools:

Add a runNoInline function to jsc-stress-tests to force a test to run
globally without inlining.

  • Scripts/run-jsc-stress-tests:
1:47 PM Changeset in webkit [188288] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Tried to fix the iOS build.

  • UIProcess/ios/WKGeolocationProviderIOS.mm:

(-[WKGeolocationProviderIOS initWithProcessPool:]):

1:41 PM Changeset in webkit [188287] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit2

WebFrameLoaderClient::dispatchDecidePolicyForResponse() calls an std::function after it's been moved from
https://bugs.webkit.org/show_bug.cgi?id=147873

Reviewed by Alexey Proskuryakov.

I noticed during code inspection that we were calling an std::function after WTF::move() has been called on it.
Calling an empty std::function results in a C++ exception being thrown. I don't know how to make a sync IPC
message fail, so I'm not sure how to test this.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): Called didReceivePolicyDecision instead.

1:38 PM Changeset in webkit [188286] by achristensen@apple.com
  • 2 edits in trunk/Tools

Another speculative build fix after r188280.

  • TestWebKitAPI/Tests/WTF/ParkingLot.cpp:

std::this_thread is too modern c++ for VS2013 and supported GCC versions,
so let's go back to usleep and I made something close to usleep, but with much lower resolution.

1:36 PM Changeset in webkit [188285] by Beth Dakin
  • 3 edits in trunk/Source/WebKit2

REGRESSION (r188053): Sometimes unable to save an image from Google Search/
imgur via long press
https://bugs.webkit.org/show_bug.cgi?id=147896

Reviewed by Enrica Casucci.

http://trac.webkit.org/changeset/188053 added code to call cleanupSheet when
the long press gesture is cancelled. However, the gesture will be called with
the cancelled state when then user taps an item in the action sheet (such as
“save image”), and sometimes the “cancel” comes in before the image has been
saved. That is a problem because we need to avoid cleaning up the sheet until
after the image is saved. Before that patch, we never cleaned up the sheet on
cancel, so this patch goes back to that behavior. We also have to remove some
assertions that assume that everything will be totally cleaned up when a new
sheet is created, but that is not necessarily true due to interactions
between the preview gesture and the long press gesture.

Remove assertions.

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]):
(-[WKActionSheetAssistant showImageSheet]):
(-[WKActionSheetAssistant showLinkSheet]):
(-[WKActionSheetAssistant showDataDetectorsSheet]):

Revert the part of Enrica’s patch that called cleanupSheet when the gesture
is cancelled.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _longPressRecognized:]):

1:20 PM Changeset in webkit [188284] by achristensen@apple.com
  • 2 edits in trunk/Tools

Unreviewed build fix after r188280.

  • TestWebKitAPI/Tests/WTF/ParkingLot.cpp:

Include DataLog.h, and usleep is not available on Windows, so I used what I think is the c++11 equivalent.

1:15 PM Changeset in webkit [188283] by Brian Burg
  • 10 edits
    2 adds
    2 deletes in trunk

Web Inspector: Agent commands do not actually return a promise when expected
https://bugs.webkit.org/show_bug.cgi?id=138665

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

This patch unifies the handling of different invocation and dispatch modes in the
InspectorBackend protocol system. Command responses are dispatched to a provided
callback function; if no function was provided, then the command returns a promise.

Rather than awkwardly converting between promises and callbacks at invocation and
response dispatch time, the backend now stores the callback or promise thunks and
knows how to invoke each when the response comes. This mirrors how response handling
works in ProtocolTestStub.js. InspectorBackend includes more machinery to support Agent
objects and various debug flags.

Performanace impact is expected to be negligible, because there are relatively
few commands issued by the inspector frontend and returned promises are short-lived.

Remove all uses of Command.prototype.promise, since it is no longer necessary.

  • UserInterface/Base/Test.js:

(InspectorTest.reloadPage):

  • UserInterface/Controllers/ReplayManager.js:

(WebInspector.ReplayManager.prototype.getSession.get var):
(WebInspector.ReplayManager.getSegment.get var):

  • UserInterface/Models/ReplaySession.js:

(WebInspector.ReplaySession.prototype.segmentsChanged):

  • UserInterface/Models/Resource.js:

(WebInspector.Resource.prototype.requestContentFromBackend):

  • UserInterface/Models/Script.js:

(WebInspector.Script.prototype.requestContentFromBackend):

  • UserInterface/Models/SourceMapResource.js:

(WebInspector.SourceMapResource.prototype.requestContentFromBackend):

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackendClass):
(InspectorBackendClass.prototype.dispatch):
(InspectorBackendClass.prototype.runAfterPendingDispatches):
(InspectorBackendClass.prototype._sendCommandToBackendWithCallback.set this):
(InspectorBackendClass.set this):
(InspectorBackendClass.prototype._sendCommandToBackendWithCallback):
(InspectorBackendClass.prototype._dispatchResponseToCallback):
(InspectorBackendClass.prototype._dispatchResponseToPromise):
(InspectorBackendClass.prototype._flushPendingScripts):
(InspectorBackend.Command.prototype.invoke):
(InspectorBackend.Command.prototype._invokeWithArguments):
(InspectorBackendClass.prototype._willSendMessageToBackend.set return): Deleted.
(InspectorBackendClass._dispatchCallback.get if): Deleted.
(InspectorBackendClass.prototype._willSendMessageToBackend): Deleted.
(InspectorBackendClass.prototype._invokeCommand): Deleted.
(.callable): Deleted.
(InspectorBackend.Command.create): Deleted.
(InspectorBackend.Command.prototype.promise): Deleted.

LayoutTests:

Add a new test that only checks for proper invocation return values.
Once the async test suite infrastructure is available for frontend tests,
more thorough tests of promises and callbacks will be added.

  • inspector/protocol/inspector-backend-invocation-return-value-expected.txt: Added.
  • inspector/protocol/inspector-backend-invocation-return-value.html: Added.
  • inspector/protocol/protocol-promise-result-expected.txt: Removed.
  • inspector/protocol/protocol-promise-result.html: Removed.
  • platform/win/TestExpectations: Remove deleted test.
1:08 PM Changeset in webkit [188282] by basile_clement@apple.com
  • 2 edits in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: REGRESSION: DFGByteCodeParser fails when a tail call is inside a ternary
https://bugs.webkit.org/show_bug.cgi?id=147849

Reviewed by Michael Saboff.

We were assuming that a tail call could only be followed by a return.
But it could also be followed by a jump to a return when the tail call
is inside a ternary expression.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

1:06 PM Changeset in webkit [188281] by basile_clement@apple.com
  • 1 edit
    7 adds in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: Add more strict mode tests
https://bugs.webkit.org/show_bug.cgi?id=147850

Reviewed by Michael Saboff.

We should have more tests in strict mode to have better test coverage.
This adds a copy of the v8-v6 tests from SunSpider as JSC stress tests,
with "use strict"; added at the top of the files.

A few modifications were necessary to make the files valid in strict
mode, namely adding a couple of "var" statements and removing some
generated code in earley-boyer that was using strings with octal
escapes.

  • tests/stress/v8-crypto-strict.js: Added.
  • tests/stress/v8-deltablue-strict.js: Added.
  • tests/stress/v8-earley-boyer-strict.js: Added.
  • tests/stress/v8-raytrace-strict.js: Added.
  • tests/stress/v8-regexp-strict.js: Added.
  • tests/stress/v8-richards-strict.js: Added.
  • tests/stress/v8-splay-strict.js: Added.
12:51 PM Changeset in webkit [188280] by fpizlo@apple.com
  • 13 edits
    5 adds in trunk

WTF should have a ParkingLot for parking sleeping threads, so that locks can fit in 1.6 bits
https://bugs.webkit.org/show_bug.cgi?id=147665

Reviewed by Mark Lam.

Source/JavaScriptCore:

Replace ByteSpinLock with ByteLock.

  • runtime/ConcurrentJITLock.h:

Source/WTF:

This change adds a major new abstraction for concurrency algorithms in WebKit. It's called a
ParkingLot, and it makes available a thread parking queue for each virtual address in memory.
The queues are maintained by a data-access-parallel concurrent hashtable implementation. The
memory usage is bounded at around half a KB per thread.

The ParkingLot makes it easy to turn any spinlock-based concurrency protocol into one that
parks threads after a while. Because queue state management is up to the ParkingLot and not
the user's data structure, this patch uses it to implement a full adaptive mutex in one byte.
In fact, only three states of that byte are used (0 = available, 1 = locked, 2 = locked and
there are parked threads). Hence the joke that ParkingLot allows locks that fit in 1.6 bits.

ByteLock is used as a replacement for ByteSpinLock in JavaScriptCore.

The API tests for this also demo how to create a completely fair (FIFO) binary semamphore. The
comment in Lock.h shows how we could accelerate Lock performance using ParkingLot. After we
are sure that this code works, we can expand the use of ParkingLot. That's covered by
https://bugs.webkit.org/show_bug.cgi?id=147841.

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.xcodeproj/project.pbxproj:
  • benchmarks/LockSpeedTest.cpp:

(main):

  • wtf/Atomics.h:

(WTF::Atomic::compareExchangeWeak):
(WTF::Atomic::compareExchangeStrong):

  • wtf/ByteLock.cpp: Added.

(WTF::ByteLock::lockSlow):
(WTF::ByteLock::unlockSlow):

  • wtf/ByteLock.h: Added.

(WTF::ByteLock::ByteLock):
(WTF::ByteLock::lock):
(WTF::ByteLock::unlock):
(WTF::ByteLock::isHeld):
(WTF::ByteLock::isLocked):

  • wtf/CMakeLists.txt:
  • wtf/Lock.h:
  • wtf/ParkingLot.cpp: Added.

(WTF::ParkingLot::parkConditionally):
(WTF::ParkingLot::unparkOne):
(WTF::ParkingLot::unparkAll):
(WTF::ParkingLot::forEach):

  • wtf/ParkingLot.h: Added.

(WTF::ParkingLot::compareAndPark):

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/Lock.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/ParkingLot.cpp: Added.

(TestWebKitAPI::TEST):

12:48 PM Changeset in webkit [188279] by andersca@apple.com
  • 32 edits in trunk/Source/WebKit2

Remove unversioned client structs from the C SPI
https://bugs.webkit.org/show_bug.cgi?id=147894

Reviewed by Dan Bernstein.

  • Shared/API/c/WKConnectionRef.h:
  • UIProcess/API/C/WKContext.h:
  • UIProcess/API/C/WKContextConnectionClient.h:
  • UIProcess/API/C/WKContextDownloadClient.h:
  • UIProcess/API/C/WKContextHistoryClient.h:
  • UIProcess/API/C/WKContextInjectedBundleClient.h:
  • UIProcess/API/C/WKCookieManager.h:
  • UIProcess/API/C/WKDatabaseManager.h:
  • UIProcess/API/C/WKGeolocationManager.h:
  • UIProcess/API/C/WKIconDatabase.h:
  • UIProcess/API/C/WKNotificationProvider.h:
  • UIProcess/API/C/WKPageContextMenuClient.h:
  • UIProcess/API/C/WKPageDiagnosticLoggingClient.h:
  • UIProcess/API/C/WKPageFindClient.h:
  • UIProcess/API/C/WKPageFindMatchesClient.h:
  • UIProcess/API/C/WKPageFormClient.h:
  • UIProcess/API/C/WKPageLoaderClient.h:
  • UIProcess/API/C/WKPagePolicyClient.h:
  • UIProcess/API/C/WKPageUIClient.h:
  • WebProcess/InjectedBundle/API/c/WKBundle.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageBanner.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageContextMenuClient.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageDiagnosticLoggingClient.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageEditorClient.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageFormClient.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageFullScreenClient.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageLoaderClient.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePagePolicyClient.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageResourceLoadClient.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h:
12:47 PM Changeset in webkit [188278] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r188243. rdar://problem/22102378

12:47 PM Changeset in webkit [188277] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-601.1.46-branch

Merge r188195. rdar://problem/22102378

12:47 PM Changeset in webkit [188276] by matthew_hanson@apple.com
  • 7 edits
    2 adds in branches/safari-601.1.46-branch

Merge r188263. rdar://problem/22202935

12:36 PM Changeset in webkit [188275] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merge r188243. rdar://problem/22102378

12:36 PM Changeset in webkit [188274] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-601.1-branch

Merge r188195. rdar://problem/22102378

12:32 PM Changeset in webkit [188273] by matthew_hanson@apple.com
  • 7 edits
    2 adds in branches/safari-601.1-branch

Merge r188263. rdar://problem/22202935

12:32 PM Changeset in webkit [188272] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merge r187758. rdar://problem/22095006

12:27 PM Changeset in webkit [188271] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

feMorphology is not rendered correctly on Retina display
https://bugs.webkit.org/show_bug.cgi?id=147589

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-08-11
Reviewed by Dean Jackson.

Source/WebCore:

The result ImageBuffer of any FilterEffect is already scaled up for 2x
display. The FEMorphology needs to fix its painting data dimension and
radius by multiplying them by the filter scale factor.

Test: fast/hidpi/filters-morphology.html

  • platform/graphics/filters/FEMorphology.cpp:

(WebCore::FEMorphology::platformApplySoftware):

LayoutTests:

Ensure we take the filter scale factor into consideration when applying
the FEMorphology.

  • fast/hidpi/filters-morphology-expected.html: Added.
  • fast/hidpi/filters-morphology.html: Added.
12:15 PM Changeset in webkit [188270] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

webkit-patch should not explode when $EDITOR is set incorrectly
https://bugs.webkit.org/show_bug.cgi?id=147884

Patch by Brian Burg <BJ Burg> on 2015-08-11
Reviewed by Darin Adler.

If $EDITOR doesn't exist, log a warning and continue.

  • Scripts/webkitpy/common/system/user.py:

(User.edit):
(User.edit_changelog):

12:11 PM Changeset in webkit [188269] by Yusuke Suzuki
  • 4 edits
    4 adds in trunk

Numeric setter on prototype doesn't get called.
https://bugs.webkit.org/show_bug.cgi?id=144252

Reviewed by Darin Adler.

Source/JavaScriptCore:

When switching the blank indexing type to the other one in putByIndex,
if the structure(vm)->needsSlowPutIndexing() is true, we need to switch
it to the slow put indexing type and reloop the putByIndex since there may
be some indexing accessor in the prototype chain. Previously, we just set
the value into the allocated vector.

In the putDirectIndex case, we just store the value to the vector.
This is because putDirectIndex is the operation to store the own property
and it does not check the accessors in the prototype chain.

  • runtime/JSObject.cpp:

(JSC::JSObject::putByIndexBeyondVectorLength):

  • tests/stress/injected-numeric-setter-on-prototype.js: Added.

(shouldBe):
(Trace):
(Trace.prototype.trace):
(Trace.prototype.get count):
(.):

  • tests/stress/numeric-setter-on-prototype-non-blank-array.js: Added.

(shouldBe):
(Trace):
(Trace.prototype.trace):
(Trace.prototype.get count):
(.):

  • tests/stress/numeric-setter-on-prototype.js: Added.

(shouldBe):
(Trace):
(Trace.prototype.trace):
(Trace.prototype.get count):
(.z.proto.set 3):

  • tests/stress/numeric-setter-on-self.js: Added.

(shouldBe):
(Trace):
(Trace.prototype.trace):
(Trace.prototype.get count):
(.y.set 2):

LayoutTests:

Update the test expectation file.

  • js/class-syntax-string-and-numeric-names-expected.txt:
11:29 AM Changeset in webkit [188268] by Brent Fulgham
  • 2 edits in trunk/Source/JavaScriptCore

[Win] Unreviewed gardening.

file references so they appear in the proper IDE locations.

11:28 AM Changeset in webkit [188267] by commit-queue@webkit.org
  • 73 edits in trunk/LayoutTests

Web Inspector: use different namespaces in test fixtures for protocol tests and frontend tests
https://bugs.webkit.org/show_bug.cgi?id=147787

Patch by Brian Burg <BJ Burg> on 2015-08-11
Reviewed by Timothy Hatcher.

Refactor test methods to use three distinct namespaces to reflect their implementation:

  • InspectorProtocol contains commands that are only used from within protocol tests.

This includes sending and receiving protocol messages and checking message errors.

  • InspectorTest contains test methods for full inspector frontend tests.
  • ProtocolTest contains test methods for protocol tests.

In a subsequent patch, most methods in InspectorTest and ProtocolTest namespaces
will be unified so that implementations of log, assert, etc. are no longer duplicated.
For now, at least make it obvious at each callsite what code is being invoked.

  • http/tests/inspector/console/access-inspected-object.html:
  • http/tests/inspector/dom/resources/InspectorDOMListener.js:
  • http/tests/inspector/page/loading-iframe-document-node.html:
  • http/tests/inspector/resources/ProtocolTestStub.js:
  • http/tests/inspector/resources/console-test.js:
  • http/tests/inspector/resources/probe-test.js:
  • inspector/console/console-message.html:
  • inspector/console/css-source-locations.html:
  • inspector/console/js-source-locations.html:
  • inspector/console/x-frame-options-message.html:
  • inspector/css/getSupportedCSSProperties.html:
  • inspector/debugger/breakpoint-action-detach.html:
  • inspector/debugger/breakpoint-action-with-exception.html:
  • inspector/debugger/breakpoint-condition-detach.html:
  • inspector/debugger/breakpoint-condition-with-bad-script.html:
  • inspector/debugger/breakpoint-condition-with-exception.html:
  • inspector/debugger/breakpoint-eval-with-exception.html:
  • inspector/debugger/breakpoint-inside-conditons-and-actions.html:
  • inspector/debugger/call-frame-function-name.html:
  • inspector/debugger/call-frame-this-host.html:
  • inspector/debugger/call-frame-this-nonstrict.html:
  • inspector/debugger/call-frame-this-strict.html:
  • inspector/debugger/debugger-statement.html:
  • inspector/debugger/didSampleProbe-multiple-probes.html:
  • inspector/debugger/hit-breakpoint-from-console.html:
  • inspector/debugger/nested-inspectors.html:
  • inspector/debugger/pause-dedicated-worker.html:
  • inspector/debugger/pause-on-assert.html:
  • inspector/debugger/regress-133182.html:
  • inspector/debugger/removeBreakpoint.html:
  • inspector/debugger/searchInContent-linebreaks.html:
  • inspector/debugger/setBreakpoint-actions.html:
  • inspector/debugger/setBreakpoint-autoContinue.html:
  • inspector/debugger/setBreakpoint-column.html:
  • inspector/debugger/setBreakpoint-condition.html:
  • inspector/debugger/setBreakpoint-dfg-and-modify-local.html:
  • inspector/debugger/setBreakpoint-dfg-callee-and-examine-dfg-local.html:
  • inspector/debugger/setBreakpoint-dfg.html:
  • inspector/debugger/setBreakpoint-options-exception.html:
  • inspector/debugger/setBreakpoint.html:
  • inspector/debugger/setBreakpointByUrl-sourceURL.html:
  • inspector/debugger/setPauseOnExceptions-all.html:
  • inspector/debugger/setPauseOnExceptions-none.html:
  • inspector/debugger/setPauseOnExceptions-uncaught.html:
  • inspector/debugger/setVariableValue.html:
  • inspector/debugger/terminate-dedicated-worker-while-paused.html:
  • inspector/dom-debugger/node-removed.html:
  • inspector/dom/dom-remove-events.html:
  • inspector/dom/dom-search-crash.html:
  • inspector/dom/dom-search-with-context.html:
  • inspector/dom/dom-search.html:
  • inspector/dom/focus.html:
  • inspector/dom/getAccessibilityPropertiesForNode.html:
  • inspector/dom/getAccessibilityPropertiesForNode_liveRegion.html:
  • inspector/dom/getAccessibilityPropertiesForNode_mouseEventNodeId.html:
  • inspector/dom/highlight-flow-with-no-region.html:
  • inspector/dom/remove-multiple-nodes.html:
  • inspector/dom/request-child-nodes-depth.html:
  • inspector/layers/layers-anonymous.html:
  • inspector/layers/layers-blending-compositing-reasons.html:
  • inspector/layers/layers-compositing-reasons.html:
  • inspector/layers/layers-for-node.html:
  • inspector/layers/layers-generated-content.html:
  • inspector/layers/layers-reflected-content.html:
  • inspector/page/archive.html:
  • inspector/page/frameScheduledNavigation.html:
  • inspector/page/frameStartedLoading.html:
  • inspector/page/javascriptDialogEvents.html:
  • inspector/page/setEmulatedMedia.html:
  • inspector/runtime/getProperties.html:
  • inspector/unit-tests/async-test-suite.html:
  • inspector/unit-tests/sync-test-suite.html:
11:26 AM Changeset in webkit [188266] by Brent Fulgham
  • 2 edits in trunk/Source/WTF

[Win] Unreviewed gardening.

  • WTF.vcxproj/WTF.vcxproj.filters: Place file references so that files appear in correct

folders in IDE.

11:21 AM Changeset in webkit [188265] by Brent Fulgham
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed windows build fix for VS2015.

  • bindings/ScriptValue.h: Add missing JSCJSValueInlines.h include.
11:18 AM Changeset in webkit [188264] by Yusuke Suzuki
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

[ES6] Implement Reflect.has
https://bugs.webkit.org/show_bug.cgi?id=147875

Reviewed by Sam Weinig.

This patch implements Reflect.has[1].
Since the semantics is the same to the in operator in the JS[2],
we can implement it in builtin JS code.

[1]: http://www.ecma-international.org/ecma-262/6.0/#sec-reflect.has
[2]: http://www.ecma-international.org/ecma-262/6.0/#sec-relational-operators-runtime-semantics-evaluation

  • builtins/ReflectObject.js:

(has):

  • runtime/ReflectObject.cpp:
  • tests/stress/reflect-has.js: Added.

(shouldBe):
(shouldThrow):

11:05 AM Changeset in webkit [188263] by mmaxfield@apple.com
  • 7 edits
    2 adds in trunk

[iOS] Arabic letter Yeh is drawn in LastResort
https://bugs.webkit.org/show_bug.cgi?id=147862
<rdar://problem/22202935>

Reviewed by Darin Adler.

Source/WebCore:

In order to perform font fallback, we must know which fonts support which characters. We
perform this check by asking each font to map a sequence of codepoints to glyphs, and
any glyphs which end up with a 0 value are unsupported by the font.

One of the mechanisms that we use to do this is to combine the code points into a string,
and tell Core Text to lay out the string. However, this is fundamentally a different
operation than the one we are trying to perform. Strings combine adjacent codepoints into
grapheme clusters, and CoreText operates on these. However, we are trying to gain
information regarding codepoints, not grapheme clusters.

Instead of taking this string-based approach, we should try harder to use Core Text
functions which operate on ordered collections of characters, rather than strings. In
particular, CTFontGetGlyphsForCharacters() and CTFontGetVerticalGlyphsForCharacters()
have the behavior we want where any unmapped characters end up with a 0 value glyph.

Previously, we were only using the result of those functions if they were successfully
able to map their entire input. However, given the fact that we can degrade gracefully
in the case of a partial mapping, we shouldn't need to bail completely to the
string-based approach should a partial mapping occur.

At some point we should delete the string-based approach entirely. However, this path
is still explicitly used for composite fonts. Fixing that use case is out of scope
for this patch.

Test: fast/text/arabic-glyph-cache-fill-combine.html

  • platform/graphics/mac/GlyphPageMac.cpp:

(WebCore::GlyphPage::fill):

LayoutTests:

  • fast/text/arabic-glyph-cache-fill-combine-expected.html: Added.
  • fast/text/arabic-glyph-cache-fill-combine.html: Added.
  • platform/mac/TestExpectations: Mark test as iOS-specific
  • platform/gtk/TestExpectations: Mark test as iOS-specific
  • platform/efl/TestExpectations: Mark test as iOS-specific
  • platform/efl/TestExpectations: Mark test as iOS-specific
10:57 AM Changeset in webkit [188262] by Yusuke Suzuki
  • 4 edits
    2 adds in trunk/Source/JavaScriptCore

[ES6] Implement Reflect.getPrototypeOf and Reflect.setPrototypeOf
https://bugs.webkit.org/show_bug.cgi?id=147874

Reviewed by Darin Adler.

This patch implements ES6 Reflect.{getPrototypeOf, setPrototypeOf}.
The difference from the Object.* one is

  1. They dont not perform ToObject onto the non-object arguments. They make it as a TypeError.
  2. Reflect.setPrototyeOf returns false when the operation is failed. In Object.setPrototypeOf, it raises a TypeError.
  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructorGetPrototypeOfFunctor::ObjectConstructorGetPrototypeOfFunctor):
(JSC::ObjectConstructorGetPrototypeOfFunctor::result):
(JSC::ObjectConstructorGetPrototypeOfFunctor::operator()):
(JSC::objectConstructorGetPrototypeOf):

  • runtime/ObjectConstructor.h:
  • runtime/ReflectObject.cpp:

(JSC::reflectObjectGetPrototypeOf):
(JSC::reflectObjectSetPrototypeOf):

  • tests/stress/reflect-get-prototype-of.js: Added.

(shouldBe):
(shouldThrow):
(Base):
(Derived):

  • tests/stress/reflect-set-prototype-of.js: Added.

(shouldBe):
(shouldThrow):

10:52 AM Changeset in webkit [188261] by Chris Dumez
  • 21 edits
    2 adds in trunk

The 'length' property on interface objects should be configurable
https://bugs.webkit.org/show_bug.cgi?id=147858

Reviewed by Daniel Bates.

Source/WebCore:

Make the 'length' property configurable on interface objects to comply
with the Web IDL specification [1] and to align our behavior with
Firefox 38 and Chrome 44.

This behavior is also covered by the following W3C test suite:
http://w3c-test.org/dom/interfaces.html

[1] http://heycam.github.io/webidl/#es-interface-call (17 July 2015)

Test: fast/dom/length-property-configurable.html

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorHelperMethods):
Make the 'length' property configurable on interface objects.

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::JSTestActiveDOMObjectConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:

(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:

(WebCore::JSTestCustomNamedGetterConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::JSTestEventConstructorConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::JSTestEventTargetConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::JSTestExceptionConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachableConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterfaceConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:

(WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::JSTestNamedConstructorConstructor::finishCreation):
(WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNodeConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:

(WebCore::JSTestNondeterministicConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefsConstructor::finishCreation):

  • bindings/scripts/test/JS/JSattribute.cpp:

(WebCore::JSattributeConstructor::finishCreation):

  • bindings/scripts/test/JS/JSreadonly.cpp:

(WebCore::JSreadonlyConstructor::finishCreation):
Rebaseline bindings tests.

LayoutTests:

Add layout test to check that the 'length' property on interface
objects has the following attributes:
{ Writable?: false, Enumerable?: false, Configurable?: true }

  • fast/dom/length-property-configurable-expected.txt: Added.
  • fast/dom/length-property-configurable.html: Added.
10:18 AM Changeset in webkit [188260] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Hovering over an element in the Elements tab should highlight the whole line
https://bugs.webkit.org/show_bug.cgi?id=147855

Reviewed by Brian Burg.

  • UserInterface/Views/DOMTreeOutline.css:

(.dom-tree-outline li.hovered:not(.selected) .selection):
Removed the horizontal positioning and border radius.

10:15 AM Changeset in webkit [188259] by peavo@outlook.com
  • 2 edits in trunk/Source/WebCore

[Win] Popup menus have incorrect placement when device scale factor != 1.
https://bugs.webkit.org/show_bug.cgi?id=147880

Reviewed by Brent Fulgham.

We need to take the device scaling factor into account when calculating
the position and size of the popup menu.

  • platform/win/PopupMenuWin.cpp:

(WebCore::PopupMenuWin::calculatePositionAndSize):

9:58 AM Changeset in webkit [188258] by Chris Dumez
  • 22 edits
    2 adds in trunk

[WebIDL] All interface objects must have a property named "name"
https://bugs.webkit.org/show_bug.cgi?id=147865

Reviewed by Darin Adler.

Source/WebCore:

As per the Web IDL specification, all interface objects must have a
property named "name" with attributes
{ Writable?: false, Enumerable?: false, Configurable?: true }
whose value is the identifier of the corresponding interface:
http://heycam.github.io/webidl/#es-interface-call
http://heycam.github.io/webidl/#named-constructors

Previously, our interface objects had no such property, this patch
addresses the problem.

Both Firefox 38 and Chrome 44 comply with the Web IDL specification
here.

Test: fast/dom/interface-name-property.html

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorHelperMethods):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::JSTestActiveDOMObjectConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:

(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:

(WebCore::JSTestCustomNamedGetterConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::JSTestEventConstructorConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::JSTestEventTargetConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::JSTestExceptionConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachableConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterfaceConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:

(WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::JSTestNamedConstructorConstructor::finishCreation):
(WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNodeConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:

(WebCore::JSTestNondeterministicConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefsConstructor::finishCreation):

  • bindings/scripts/test/JS/JSattribute.cpp:

(WebCore::JSattributeConstructor::finishCreation):

  • bindings/scripts/test/JS/JSreadonly.cpp:

(WebCore::JSreadonlyConstructor::finishCreation):
Rebaseline bindings tests.

LayoutTests:

Add layout test to check that the 'name' property on interface
objects has the following attributes:
{ Writable?: false, Enumerable?: false, Configurable?: true }

  • fast/dom/interface-name-property-expected.txt: Added.
  • fast/dom/interface-name-property.html: Added.

New test.

  • media/track/track-cue-empty-cue-text-expected.txt:

Rebaseline, this is a progression.

9:51 AM Changeset in webkit [188257] by mitz@apple.com
  • 12 edits
    1 delete in trunk

Reverted r188255, because it turned out that delegates do nonot need this information.

Source/WebKit2:

  • UIProcess/API/APIUIClient.h:

(API::UIClient::footerHeight):
(API::UIClient::drawHeader):
(API::UIClient::drawFooter):
(API::UIClient::printFrame):
(API::UIClient::canRunModal):
(API::UIClient::runModal):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIDelegate):
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::reachedApplicationCacheOriginQuota):
(WebKit::UIDelegate::UIClient::printFrame):
(WebKit::UIDelegate::UIClient::close):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runOpenPanel):
(WebKit::WebPageProxy::printFrame):
(WebKit::WebPageProxy::printMainFrame):
(WebKit::WebPageProxy::setMediaVolume):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::setShouldSendEventsSynchronously):

  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::print):
(WebKit::WebChromeClient::exceededDatabaseQuota):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/PrintFrame.mm: Removed.
9:45 AM Changeset in webkit [188256] by commit-queue@webkit.org
  • 5 edits in trunk/Source

Fix debug build when optimization is enabled
https://bugs.webkit.org/show_bug.cgi?id=147816

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2015-08-11
Reviewed by Alexey Proskuryakov.

Source/JavaScriptCore:

  • llint/LLIntEntrypoint.cpp:
  • runtime/FunctionExecutableDump.cpp:

Source/WebCore:

No new tests because this is only a build fix.

  • editing/InsertNodeBeforeCommand.cpp:
9:14 AM Changeset in webkit [188255] by mitz@apple.com
  • 12 edits
    1 add in trunk

[Cocoa] The UI delegate can't tell if printing was user-initiated
https://bugs.webkit.org/show_bug.cgi?id=147869

Reviewed by Sam Weinig.

Source/WebKit2:

  • UIProcess/API/APIUIClient.h:

(API::UIClient::printFrame): Added processingUserGesture argument.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient): Updated for new client function signature.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Added userInitiated boolean argument to -_webView:printFrame:.
  • UIProcess/Cocoa/UIDelegate.h: Added bool to m_delegateMethods for the new method.
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIDelegate):
(WebKit::UIDelegate::setDelegate): Initialized new bool.
(WebKit::UIDelegate::UIClient::printFrame): Pass processingUserGesture as the delegate’s

userInitiated argument.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::printFrame): Added processingUserGesture argument, passing it along

to the client.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in: Added processingUserGesture argument to printFrame.
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::print): Pass new argument.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/PrintFrame.mm: Added.

(-[PrintFrameController webView:didFinishNavigation:]):
(-[PrintFrameController _webView:printFrame:userInitiated:]):
(TEST):

7:56 AM Changeset in webkit [188254] by Chris Dumez
  • 19 edits in trunk/Source/WebCore

Unreviewed, rebaseline bindings tests after r188252.

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::JSTestActiveDOMObjectConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:

(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:

(WebCore::JSTestCustomNamedGetterConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::JSTestEventConstructorConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::JSTestEventTargetConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::JSTestExceptionConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachableConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterfaceConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:

(WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::JSTestNamedConstructorConstructor::finishCreation):
(WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNodeConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:

(WebCore::JSTestNondeterministicConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefsConstructor::finishCreation):

  • bindings/scripts/test/JS/JSattribute.cpp:

(WebCore::JSattributeConstructor::finishCreation):

  • bindings/scripts/test/JS/JSreadonly.cpp:

(WebCore::JSreadonlyConstructor::finishCreation):

12:36 AM Changeset in webkit [188253] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Ensure that Reflect.enumerate does not produce the deleted keys
https://bugs.webkit.org/show_bug.cgi?id=147677

Reviewed by Darin Adler.

Add tests for Reflect.enumerate that delete the property keys during the enumeration.

  • tests/stress/reflect-enumerate.js:

Aug 10, 2015:

11:42 PM Changeset in webkit [188252] by Chris Dumez
  • 3 edits
    2 adds in trunk

The 'prototype' property on interface objects should not be enumerable
https://bugs.webkit.org/show_bug.cgi?id=147861

Reviewed by Darin Adler.

Source/WebCore:

  1. Make the 'prototype' property not enumerable on interface object to comply with the Web IDL specification [1] and to align our behavior with Firefox 38 and Chrome 44.
  1. Also update the 'prototype' property on named constructors to have the following attributes: { Writable?: false, Enumerable?: false, Configurable?: false }

Previously, all these were true in WebKit. The new behavior complies
with the Web IDL specification [2] and aligns our behavior with
Firefox 38. On Chrome 44, the attributes are as follows:
{ Writable?: true, Enumerable?: false, Configurable?: false }

This behavior is also covered by the following W3C test suite:
http://w3c-test.org/dom/interfaces.html

[1] http://heycam.github.io/webidl/#interface-object
[2] http://heycam.github.io/webidl/#named-constructors

Test: fast/dom/prototype-property-not-enumerable.html

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorHelperMethods):

LayoutTests:

Add layout test to check that the 'prototype' property on interface
objects has the following attributes:
{ Writable?: false, Enumerable?: false, Configurable?: false }

  • fast/dom/prototype-property-not-enumerable-expected.txt: Added.
  • fast/dom/prototype-property-not-enumerable.html: Added.
11:40 PM Changeset in webkit [188251] by achristensen@apple.com
  • 3 edits in trunk/Tools

Another build fix after r188239.

  • TestWebKitAPI/PlatformWin.cmake:

Link with more libraries.

  • WinLauncher/CMakeLists.txt:

/NODEFAULTLIB:MSVCRT is not just needed for AppleWin.

10:07 PM Changeset in webkit [188250] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1-branch/Source

Versioning.

10:06 PM Changeset in webkit [188249] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

9:59 PM Changeset in webkit [188248] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Another build fix after r188239.

  • PlatformWin.cmake:

Link WinCairo with Media Foundation libraries.

9:46 PM Changeset in webkit [188247] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix after r188239.

  • PlatformWinCairo.cmake:

MediaPlayerPrivateMediaFoundation is needed on WinCairo with video properly enabled.

9:25 PM Changeset in webkit [188246] by achristensen@apple.com
  • 2 edits in trunk/Source/ThirdParty

[Win] Unreviewed build fix after r188239.

  • gtest/CMakeLists.txt:

VS2015 requires STDC_LIMIT_MACROS to be defined for INTMAX_MAX to be defined.

8:46 PM Changeset in webkit [188245] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Build fix after r188237.

  • Scripts/webkitpy/benchmark_runner/benchmark_builder.py:

(BenchmarkBuilder.enter):

8:15 PM Changeset in webkit [188244] by commit-queue@webkit.org
  • 6 edits in trunk/Tools

Update ReadMe and correct the way to use abstract abstract class.
https://bugs.webkit.org/show_bug.cgi?id=147860

Patch by Dewei Zhu <Dewei Zhu> on 2015-08-10
Reviewed by Ryosuke Niwa.

Update ReadMe according to recent changes. And set ABCMeta to be the metaclass of BrowserDriver and HTTPServerDriver,
so that all methods annotated by 'abstractmethod' will check whether they are implememnt by subclasses.

  • Scripts/webkitpy/benchmark_runner/README.md:
  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:

(BrowserDriver):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:

(OSXBrowserDriver.restore_env):

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:

(HTTPServerDriver):
(HTTPServerDriver.set_device_id):

  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:

(SimpleHTTPServerDriver.get_return_code):
(SimpleHTTPServerDriver):
(SimpleHTTPServerDriver.set_device_id):

7:49 PM Changeset in webkit [188243] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Post-review fixup after r188195
https://bugs.webkit.org/show_bug.cgi?id=147806

Unreviewed.

Covered by fast/text/crash-obscure-text.html.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::objectForEqualityCheck):

6:26 PM Changeset in webkit [188242] by ggaren@apple.com
  • 8 edits
    3 copies in trunk/Source/JavaScriptCore

Start beating UnlinkedCodeBlock.h/.cpp with the "One Class per File" stick
https://bugs.webkit.org/show_bug.cgi?id=147856

Reviewed by Saam Barati.

Split out UnlinkedFunctionExecutable.h/.cpp and ExecutableInfo.h into separate files.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/ExecutableInfo.h: Copied from Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h.

(JSC::ExecutableInfo::ExecutableInfo):
(JSC::UnlinkedStringJumpTable::offsetForValue): Deleted.
(JSC::UnlinkedSimpleJumpTable::add): Deleted.
(JSC::UnlinkedInstruction::UnlinkedInstruction): Deleted.
(JSC::UnlinkedCodeBlock::isConstructor): Deleted.
(JSC::UnlinkedCodeBlock::isStrictMode): Deleted.
(JSC::UnlinkedCodeBlock::usesEval): Deleted.
(JSC::UnlinkedCodeBlock::needsFullScopeChain): Deleted.
(JSC::UnlinkedCodeBlock::hasExpressionInfo): Deleted.
(JSC::UnlinkedCodeBlock::setThisRegister): Deleted.
(JSC::UnlinkedCodeBlock::setScopeRegister): Deleted.
(JSC::UnlinkedCodeBlock::setActivationRegister): Deleted.
(JSC::UnlinkedCodeBlock::usesGlobalObject): Deleted.
(JSC::UnlinkedCodeBlock::setGlobalObjectRegister): Deleted.
(JSC::UnlinkedCodeBlock::globalObjectRegister): Deleted.
(JSC::UnlinkedCodeBlock::setNumParameters): Deleted.
(JSC::UnlinkedCodeBlock::addParameter): Deleted.
(JSC::UnlinkedCodeBlock::numParameters): Deleted.
(JSC::UnlinkedCodeBlock::addRegExp): Deleted.
(JSC::UnlinkedCodeBlock::numberOfRegExps): Deleted.
(JSC::UnlinkedCodeBlock::regexp): Deleted.
(JSC::UnlinkedCodeBlock::numberOfIdentifiers): Deleted.
(JSC::UnlinkedCodeBlock::addIdentifier): Deleted.
(JSC::UnlinkedCodeBlock::identifier): Deleted.
(JSC::UnlinkedCodeBlock::identifiers): Deleted.
(JSC::UnlinkedCodeBlock::addConstant): Deleted.
(JSC::UnlinkedCodeBlock::registerIndexForLinkTimeConstant): Deleted.
(JSC::UnlinkedCodeBlock::constantRegisters): Deleted.
(JSC::UnlinkedCodeBlock::constantRegister): Deleted.
(JSC::UnlinkedCodeBlock::isConstantRegisterIndex): Deleted.
(JSC::UnlinkedCodeBlock::constantsSourceCodeRepresentation): Deleted.
(JSC::UnlinkedCodeBlock::numberOfJumpTargets): Deleted.
(JSC::UnlinkedCodeBlock::addJumpTarget): Deleted.
(JSC::UnlinkedCodeBlock::jumpTarget): Deleted.
(JSC::UnlinkedCodeBlock::lastJumpTarget): Deleted.
(JSC::UnlinkedCodeBlock::isBuiltinFunction): Deleted.
(JSC::UnlinkedCodeBlock::constructorKind): Deleted.
(JSC::UnlinkedCodeBlock::shrinkToFit): Deleted.
(JSC::UnlinkedCodeBlock::numberOfSwitchJumpTables): Deleted.
(JSC::UnlinkedCodeBlock::addSwitchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::switchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::numberOfStringSwitchJumpTables): Deleted.
(JSC::UnlinkedCodeBlock::addStringSwitchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::stringSwitchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::addFunctionDecl): Deleted.
(JSC::UnlinkedCodeBlock::functionDecl): Deleted.
(JSC::UnlinkedCodeBlock::numberOfFunctionDecls): Deleted.
(JSC::UnlinkedCodeBlock::addFunctionExpr): Deleted.
(JSC::UnlinkedCodeBlock::functionExpr): Deleted.
(JSC::UnlinkedCodeBlock::numberOfFunctionExprs): Deleted.
(JSC::UnlinkedCodeBlock::numberOfExceptionHandlers): Deleted.
(JSC::UnlinkedCodeBlock::addExceptionHandler): Deleted.
(JSC::UnlinkedCodeBlock::exceptionHandler): Deleted.
(JSC::UnlinkedCodeBlock::vm): Deleted.
(JSC::UnlinkedCodeBlock::addArrayProfile): Deleted.
(JSC::UnlinkedCodeBlock::numberOfArrayProfiles): Deleted.
(JSC::UnlinkedCodeBlock::addArrayAllocationProfile): Deleted.
(JSC::UnlinkedCodeBlock::numberOfArrayAllocationProfiles): Deleted.
(JSC::UnlinkedCodeBlock::addObjectAllocationProfile): Deleted.
(JSC::UnlinkedCodeBlock::numberOfObjectAllocationProfiles): Deleted.
(JSC::UnlinkedCodeBlock::addValueProfile): Deleted.
(JSC::UnlinkedCodeBlock::numberOfValueProfiles): Deleted.
(JSC::UnlinkedCodeBlock::addLLIntCallLinkInfo): Deleted.
(JSC::UnlinkedCodeBlock::numberOfLLintCallLinkInfos): Deleted.
(JSC::UnlinkedCodeBlock::codeType): Deleted.
(JSC::UnlinkedCodeBlock::thisRegister): Deleted.
(JSC::UnlinkedCodeBlock::scopeRegister): Deleted.
(JSC::UnlinkedCodeBlock::activationRegister): Deleted.
(JSC::UnlinkedCodeBlock::hasActivationRegister): Deleted.
(JSC::UnlinkedCodeBlock::addPropertyAccessInstruction): Deleted.
(JSC::UnlinkedCodeBlock::numberOfPropertyAccessInstructions): Deleted.
(JSC::UnlinkedCodeBlock::propertyAccessInstructions): Deleted.
(JSC::UnlinkedCodeBlock::constantBufferCount): Deleted.
(JSC::UnlinkedCodeBlock::addConstantBuffer): Deleted.
(JSC::UnlinkedCodeBlock::constantBuffer): Deleted.
(JSC::UnlinkedCodeBlock::hasRareData): Deleted.
(JSC::UnlinkedCodeBlock::recordParse): Deleted.
(JSC::UnlinkedCodeBlock::codeFeatures): Deleted.
(JSC::UnlinkedCodeBlock::hasCapturedVariables): Deleted.
(JSC::UnlinkedCodeBlock::firstLine): Deleted.
(JSC::UnlinkedCodeBlock::lineCount): Deleted.
(JSC::UnlinkedCodeBlock::startColumn): Deleted.
(JSC::UnlinkedCodeBlock::endColumn): Deleted.
(JSC::UnlinkedCodeBlock::addOpProfileControlFlowBytecodeOffset): Deleted.
(JSC::UnlinkedCodeBlock::opProfileControlFlowBytecodeOffsets): Deleted.
(JSC::UnlinkedCodeBlock::finishCreation): Deleted.
(JSC::UnlinkedCodeBlock::createRareDataIfNecessary): Deleted.
(JSC::UnlinkedGlobalCodeBlock::UnlinkedGlobalCodeBlock): Deleted.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
(JSC::generateFunctionCodeBlock): Deleted.
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable): Deleted.
(JSC::UnlinkedFunctionExecutable::visitChildren): Deleted.
(JSC::UnlinkedFunctionExecutable::link): Deleted.
(JSC::UnlinkedFunctionExecutable::fromGlobalCode): Deleted.
(JSC::UnlinkedFunctionExecutable::codeBlockFor): Deleted.

  • bytecode/UnlinkedCodeBlock.h:

(JSC::ExecutableInfo::ExecutableInfo): Deleted.
(JSC::ExecutableInfo::needsActivation): Deleted.
(JSC::ExecutableInfo::usesEval): Deleted.
(JSC::ExecutableInfo::isStrictMode): Deleted.
(JSC::ExecutableInfo::isConstructor): Deleted.
(JSC::ExecutableInfo::isBuiltinFunction): Deleted.
(JSC::ExecutableInfo::constructorKind): Deleted.

  • bytecode/UnlinkedFunctionExecutable.cpp: Copied from Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp.

(JSC::generateFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::codeBlockFor):
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock): Deleted.
(JSC::UnlinkedCodeBlock::visitChildren): Deleted.
(JSC::UnlinkedCodeBlock::lineNumberForBytecodeOffset): Deleted.
(JSC::UnlinkedCodeBlock::getLineAndColumn): Deleted.
(JSC::dumpLineColumnEntry): Deleted.
(JSC::UnlinkedCodeBlock::dumpExpressionRangeInfo): Deleted.
(JSC::UnlinkedCodeBlock::expressionRangeForBytecodeOffset): Deleted.
(JSC::UnlinkedCodeBlock::addExpressionInfo): Deleted.
(JSC::UnlinkedCodeBlock::typeProfilerExpressionInfoForBytecodeOffset): Deleted.
(JSC::UnlinkedCodeBlock::addTypeProfilerExpressionInfo): Deleted.
(JSC::UnlinkedProgramCodeBlock::visitChildren): Deleted.
(JSC::UnlinkedCodeBlock::~UnlinkedCodeBlock): Deleted.
(JSC::UnlinkedProgramCodeBlock::destroy): Deleted.
(JSC::UnlinkedEvalCodeBlock::destroy): Deleted.
(JSC::UnlinkedFunctionCodeBlock::destroy): Deleted.
(JSC::UnlinkedFunctionExecutable::destroy): Deleted.
(JSC::UnlinkedCodeBlock::setInstructions): Deleted.
(JSC::UnlinkedCodeBlock::instructions): Deleted.

  • bytecode/UnlinkedFunctionExecutable.h: Copied from Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h.

(JSC::ExecutableInfo::ExecutableInfo): Deleted.
(JSC::ExecutableInfo::needsActivation): Deleted.
(JSC::ExecutableInfo::usesEval): Deleted.
(JSC::ExecutableInfo::isStrictMode): Deleted.
(JSC::ExecutableInfo::isConstructor): Deleted.
(JSC::ExecutableInfo::isBuiltinFunction): Deleted.
(JSC::ExecutableInfo::constructorKind): Deleted.
(JSC::UnlinkedStringJumpTable::offsetForValue): Deleted.
(JSC::UnlinkedSimpleJumpTable::add): Deleted.
(JSC::UnlinkedInstruction::UnlinkedInstruction): Deleted.
(JSC::UnlinkedCodeBlock::isConstructor): Deleted.
(JSC::UnlinkedCodeBlock::isStrictMode): Deleted.
(JSC::UnlinkedCodeBlock::usesEval): Deleted.
(JSC::UnlinkedCodeBlock::needsFullScopeChain): Deleted.
(JSC::UnlinkedCodeBlock::hasExpressionInfo): Deleted.
(JSC::UnlinkedCodeBlock::setThisRegister): Deleted.
(JSC::UnlinkedCodeBlock::setScopeRegister): Deleted.
(JSC::UnlinkedCodeBlock::setActivationRegister): Deleted.
(JSC::UnlinkedCodeBlock::usesGlobalObject): Deleted.
(JSC::UnlinkedCodeBlock::setGlobalObjectRegister): Deleted.
(JSC::UnlinkedCodeBlock::globalObjectRegister): Deleted.
(JSC::UnlinkedCodeBlock::setNumParameters): Deleted.
(JSC::UnlinkedCodeBlock::addParameter): Deleted.
(JSC::UnlinkedCodeBlock::numParameters): Deleted.
(JSC::UnlinkedCodeBlock::addRegExp): Deleted.
(JSC::UnlinkedCodeBlock::numberOfRegExps): Deleted.
(JSC::UnlinkedCodeBlock::regexp): Deleted.
(JSC::UnlinkedCodeBlock::numberOfIdentifiers): Deleted.
(JSC::UnlinkedCodeBlock::addIdentifier): Deleted.
(JSC::UnlinkedCodeBlock::identifier): Deleted.
(JSC::UnlinkedCodeBlock::identifiers): Deleted.
(JSC::UnlinkedCodeBlock::addConstant): Deleted.
(JSC::UnlinkedCodeBlock::registerIndexForLinkTimeConstant): Deleted.
(JSC::UnlinkedCodeBlock::constantRegisters): Deleted.
(JSC::UnlinkedCodeBlock::constantRegister): Deleted.
(JSC::UnlinkedCodeBlock::isConstantRegisterIndex): Deleted.
(JSC::UnlinkedCodeBlock::constantsSourceCodeRepresentation): Deleted.
(JSC::UnlinkedCodeBlock::numberOfJumpTargets): Deleted.
(JSC::UnlinkedCodeBlock::addJumpTarget): Deleted.
(JSC::UnlinkedCodeBlock::jumpTarget): Deleted.
(JSC::UnlinkedCodeBlock::lastJumpTarget): Deleted.
(JSC::UnlinkedCodeBlock::isBuiltinFunction): Deleted.
(JSC::UnlinkedCodeBlock::constructorKind): Deleted.
(JSC::UnlinkedCodeBlock::shrinkToFit): Deleted.
(JSC::UnlinkedCodeBlock::numberOfSwitchJumpTables): Deleted.
(JSC::UnlinkedCodeBlock::addSwitchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::switchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::numberOfStringSwitchJumpTables): Deleted.
(JSC::UnlinkedCodeBlock::addStringSwitchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::stringSwitchJumpTable): Deleted.
(JSC::UnlinkedCodeBlock::addFunctionDecl): Deleted.
(JSC::UnlinkedCodeBlock::functionDecl): Deleted.
(JSC::UnlinkedCodeBlock::numberOfFunctionDecls): Deleted.
(JSC::UnlinkedCodeBlock::addFunctionExpr): Deleted.
(JSC::UnlinkedCodeBlock::functionExpr): Deleted.
(JSC::UnlinkedCodeBlock::numberOfFunctionExprs): Deleted.
(JSC::UnlinkedCodeBlock::numberOfExceptionHandlers): Deleted.
(JSC::UnlinkedCodeBlock::addExceptionHandler): Deleted.
(JSC::UnlinkedCodeBlock::exceptionHandler): Deleted.
(JSC::UnlinkedCodeBlock::vm): Deleted.
(JSC::UnlinkedCodeBlock::addArrayProfile): Deleted.
(JSC::UnlinkedCodeBlock::numberOfArrayProfiles): Deleted.
(JSC::UnlinkedCodeBlock::addArrayAllocationProfile): Deleted.
(JSC::UnlinkedCodeBlock::numberOfArrayAllocationProfiles): Deleted.
(JSC::UnlinkedCodeBlock::addObjectAllocationProfile): Deleted.
(JSC::UnlinkedCodeBlock::numberOfObjectAllocationProfiles): Deleted.
(JSC::UnlinkedCodeBlock::addValueProfile): Deleted.
(JSC::UnlinkedCodeBlock::numberOfValueProfiles): Deleted.
(JSC::UnlinkedCodeBlock::addLLIntCallLinkInfo): Deleted.
(JSC::UnlinkedCodeBlock::numberOfLLintCallLinkInfos): Deleted.
(JSC::UnlinkedCodeBlock::codeType): Deleted.
(JSC::UnlinkedCodeBlock::thisRegister): Deleted.
(JSC::UnlinkedCodeBlock::scopeRegister): Deleted.
(JSC::UnlinkedCodeBlock::activationRegister): Deleted.
(JSC::UnlinkedCodeBlock::hasActivationRegister): Deleted.
(JSC::UnlinkedCodeBlock::addPropertyAccessInstruction): Deleted.
(JSC::UnlinkedCodeBlock::numberOfPropertyAccessInstructions): Deleted.
(JSC::UnlinkedCodeBlock::propertyAccessInstructions): Deleted.
(JSC::UnlinkedCodeBlock::constantBufferCount): Deleted.
(JSC::UnlinkedCodeBlock::addConstantBuffer): Deleted.
(JSC::UnlinkedCodeBlock::constantBuffer): Deleted.
(JSC::UnlinkedCodeBlock::hasRareData): Deleted.
(JSC::UnlinkedCodeBlock::recordParse): Deleted.
(JSC::UnlinkedCodeBlock::codeFeatures): Deleted.
(JSC::UnlinkedCodeBlock::hasCapturedVariables): Deleted.
(JSC::UnlinkedCodeBlock::firstLine): Deleted.
(JSC::UnlinkedCodeBlock::lineCount): Deleted.
(JSC::UnlinkedCodeBlock::startColumn): Deleted.
(JSC::UnlinkedCodeBlock::endColumn): Deleted.
(JSC::UnlinkedCodeBlock::addOpProfileControlFlowBytecodeOffset): Deleted.
(JSC::UnlinkedCodeBlock::opProfileControlFlowBytecodeOffsets): Deleted.
(JSC::UnlinkedCodeBlock::finishCreation): Deleted.
(JSC::UnlinkedCodeBlock::createRareDataIfNecessary): Deleted.
(JSC::UnlinkedGlobalCodeBlock::UnlinkedGlobalCodeBlock): Deleted.

  • runtime/Executable.h:
6:11 PM Changeset in webkit [188241] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.49

New tag.

5:38 PM Changeset in webkit [188240] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.7

New tag.

5:09 PM Changeset in webkit [188239] by achristensen@apple.com
  • 16 edits
    1 add in trunk

Build TestWebKitAPI with CMake on Windows
https://bugs.webkit.org/show_bug.cgi?id=147851

Reviewed by Chris Dumez.

.:

  • Source/cmake/OptionsWindows.cmake:

Enable api tests and set USE_SYSTEM_MALLOC to avoid warnings when redefining it.

Source/ThirdParty:

  • gtest/CMakeLists.txt:

Include DerivedSources to find WTF/WTFHeaderDetection.h.

Source/WebCore:

  • PlatformWin.cmake:

Remove RenderThemeWin.cpp which is included in RenderingAllInOne.cpp.

  • WebCorePrefix.h:

Include cmakeconfig.h before wtf/Platform.h like we do in JavaScriptCore's config.h to avoid warnings and redefining ENABLE_* macros.

Source/WebKit:

  • PlatformWin.cmake:

WinCairo libraries conflict with LIBCMT.lib, AppleWin libraries conflict with MSVCRT.lib,
so different /NODEFAULTLIB is needed to link WebKit.dll successfully.

Tools:

  • CMakeLists.txt:
  • TestWebKitAPI/CMakeLists.txt:

Removed TestJavaScriptCore because JavaScriptCore's API tests are elsewhere and this was just making an empty binary.
Surrounded WebKit2-specific features with ENABLE_WEBKIT2 checks.
Include directories after the Platform*.cmake is included because HostWindow.h needs to be found in Tools/TestWebKitAPI/win
before we look in Source/WebCore/platform, where another file named HostWindow.h exists.

  • TestWebKitAPI/PlatformEfl.cmake:
  • TestWebKitAPI/PlatformGTK.cmake:

Windows needs all the binaries to be in the same directory to find gtest.dll and the other dlls.
I did this without changing the directory structure of the existing EFL and GTK builds.

  • TestWebKitAPI/PlatformWin.cmake: Added.
  • TestWebKitAPI/win/main.cpp:

(main):
(dllLauncherEntryPoint):
Added so we can launch TestWebKitAPI executables after finding the AAS directory.

  • WinLauncher/CMakeLists.txt:

AppleWin port needs /NODEFAULTLIB:MSVCRT.

4:56 PM Changeset in webkit [188238] by Devin Rousso
  • 1 edit
    8 adds in trunk/Source/WebInspectorUI

Web Inspector: Add numerical input and slider based Visual editors for CSS properties
https://bugs.webkit.org/show_bug.cgi?id=147712

Reviewed by Brian Burg.

Added editors for CSS properties with numerical values for use in the Visual style
details panel in the CSS sidebar, in the form of a combined select and input or an
input range. Also added optional visual linkages to sync values between multiple
editors of this type.

  • UserInterface/Images/VisualStylePropertyLinked.svg: Added.
  • UserInterface/Images/VisualStylePropertyUnlinked.svg: Added.
  • UserInterface/Views/VisualStyleNumberInputBox.css: Added.

(.visual-style-property-container > .visual-style-property-value-container.focused > .focus-ring):
(.visual-style-property-container > .visual-style-property-value-container > .number-input-keyword-select):
(.visual-style-property-container > .visual-style-property-value-container > .number-input-container):
(.visual-style-property-container > .visual-style-property-value-container:not(.number-input-editable) > .number-input-container):
(.visual-style-property-container > .visual-style-property-value-container > .number-input-container > .number-input-value):
(.visual-style-property-container > .visual-style-property-value-container > .number-input-container > span):

  • UserInterface/Views/VisualStyleNumberInputBox.js: Added.

(WebInspector.VisualStyleNumberInputBox):
(WebInspector.VisualStyleNumberInputBox.prototype.get value):
(WebInspector.VisualStyleNumberInputBox.prototype.set value):
(WebInspector.VisualStyleNumberInputBox.prototype.get units):
(WebInspector.VisualStyleNumberInputBox.prototype.set units):
(WebInspector.VisualStyleNumberInputBox.prototype.get placeholder):
(WebInspector.VisualStyleNumberInputBox.prototype.set placeholder):
(WebInspector.VisualStyleNumberInputBox.prototype.get synthesizedValue):
(WebInspector.VisualStyleNumberInputBox.prototype.get numberInputEditable):
(WebInspector.VisualStyleNumberInputBox.prototype.updateValueFromText):
(WebInspector.VisualStyleNumberInputBox.prototype.parseValue):
(WebInspector.VisualStyleNumberInputBox.prototype._keywordChanged):
(WebInspector.VisualStyleNumberInputBox.prototype._valueNumberInputKeyDown.shiftValue):
(WebInspector.VisualStyleNumberInputBox.prototype._valueNumberInputKeyDown):
(WebInspector.VisualStyleNumberInputBox.prototype._numberInputChanged):
(WebInspector.VisualStyleNumberInputBox.prototype._keywordSelectMouseDown):
(WebInspector.VisualStyleNumberInputBox.prototype._createValueOptions):
(WebInspector.VisualStyleNumberInputBox.prototype._createUnitOptions):
(WebInspector.VisualStyleNumberInputBox.prototype._addAdvancedUnits):
(WebInspector.VisualStyleNumberInputBox.prototype._removeAdvancedUnits):
(WebInspector.VisualStyleNumberInputBox.prototype._focusContentElement):
(WebInspector.VisualStyleNumberInputBox.prototype._blurContentElement):
(WebInspector.VisualStyleNumberInputBox.prototype._toggleTabbingOfSelectableElements):

  • UserInterface/Views/VisualStylePropertyEditorLink.css: Added.

(.visual-style-property-editor-link):
(.visual-style-property-editor-link.disabled):
(.visual-style-property-editor-link.link-all):
(.visual-style-property-editor-link.link-all.linked):
(.visual-style-property-editor-link > .visual-style-property-editor-link-border):
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-icon:hover + .visual-style-property-editor-link-border.right):
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-border.left):
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-border.right):
(.visual-style-property-editor-link.linked > .visual-style-property-editor-link-border):
(.visual-style-property-editor-link > .visual-style-property-editor-link-border.left):
(.visual-style-property-editor-link > .visual-style-property-editor-link-border.right):
(.visual-style-property-editor-link:not(.link-all) > .visual-style-property-editor-link-border):
(.visual-style-property-editor-link:not(.link-all).linked > .visual-style-property-editor-link-border):
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon):
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon > .unlinked-icon):
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon > .unlinked-icon svg .filled):
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon > .unlinked-icon svg .stroked):
(.visual-style-property-editor-link:not(.link-all) > .visual-style-property-editor-link-icon):
(.visual-style-property-editor-link.link-all > .visual-style-property-editor-link-icon):

  • UserInterface/Views/VisualStylePropertyEditorLink.js: Added.

(WebInspector.VisualStylePropertyEditorLink):
(WebInspector.VisualStylePropertyEditorLink.prototype.get element):
(WebInspector.VisualStylePropertyEditorLink.prototype.set disabled):
(WebInspector.VisualStylePropertyEditorLink.prototype._linkedPropertyValueChanged):
(WebInspector.VisualStylePropertyEditorLink.prototype._updateLinkedEditors):
(WebInspector.VisualStylePropertyEditorLink.prototype._iconMouseover):
(WebInspector.VisualStylePropertyEditorLink.prototype._iconMouseout):
(WebInspector.VisualStylePropertyEditorLink.prototype._iconClicked):

  • UserInterface/Views/VisualStyleRelativeNumberSlider.css: Added.

(.visual-style-property-container.number-input-box.relative-number-slider > .visual-style-property-title):
(.visual-style-property-container.number-input-box.relative-number-slider > .visual-style-property-value-container):
(.visual-style-property-container.number-input-box.relative-number-slider.disabled > .relative-slider):
(.visual-style-property-container.number-input-box.relative-number-slider > .visual-style-property-value-container.no-values.no-units):
(.visual-style-property-container.number-input-box.relative-number-slider > .relative-slider):

  • UserInterface/Views/VisualStyleRelativeNumberSlider.js: Added.

(WebInspector.VisualStyleRelativeNumberSlider):
(WebInspector.VisualStyleRelativeNumberSlider.prototype.set scale):
(WebInspector.VisualStyleRelativeNumberSlider.prototype.updateEditorValues):
(WebInspector.VisualStyleRelativeNumberSlider.prototype._resetSlider):
(WebInspector.VisualStyleRelativeNumberSlider.prototype._sliderChanged):
(WebInspector.VisualStyleRelativeNumberSlider.prototype._numberInputChanged):

4:44 PM Changeset in webkit [188237] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

Make cleanup more robust and minor code cleaning in run benchmark script.
https://bugs.webkit.org/show_bug.cgi?id=147800

Patch by Dewei Zhu <Dewei Zhu> on 2015-08-10
Reviewed by Ryosuke Niwa.

Use 'finnaly' block to make sure cleanup code is always executed.

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(built_benchmark):
(built_benchmark.init):
(built_benchmark.enter):
(built_benchmark.exit):
(test_environment):
(test_environment.init):
(test_environment.enter):
(test_environment.exit):
(BenchmarkRunner.init):
(BenchmarkRunner.execute):
(BenchmarkRunner._dump):
(BenchmarkRunner._wrap):
(BenchmarkRunner): Deleted.
(BenchmarkRunner._cleanup): Deleted.

  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:

(BrowserDriver.close_browsers):
(BrowserDriver):
(BrowserDriver.restore_env):

  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:

(SimpleHTTPServerDriver.init): We do not actually need to know external ip address for now.

4:40 PM Changeset in webkit [188236] by mdaiter@apple.com
  • 2 edits in trunk/Source/WebKit2

Add MediaDeviceIdentifier to WebsiteDataTypes
https://bugs.webkit.org/show_bug.cgi?id=147853

Reviewed by Jer Noble.

  • Shared/WebsiteData/WebsiteDataTypes.h:
4:33 PM Changeset in webkit [188235] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebKit2

Merged r188223. rdar://problem/21465328

4:27 PM Changeset in webkit [188234] by mdaiter@apple.com
  • 5 edits in trunk/Source/WebCore

HTMLMediaElement needs way to find MediaDeviceInfo
https://bugs.webkit.org/show_bug.cgi?id=147842

Reviewed by Jer Noble.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerMediaDeviceIdentifierStorageDirectory):

  • html/HTMLMediaElement.h:
  • page/Settings.h:

(WebCore::Settings::setMediaDeviceIdentifierStorageDirectory):
(WebCore::Settings::mediaDeviceIdentifierStorageDirectory):

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerMediaDeviceIdentifierStorageDirectory):

3:58 PM Changeset in webkit [188233] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Simplify code for making Page-cacheability decision
https://bugs.webkit.org/show_bug.cgi?id=147829

Reviewed by Antti Koivisto.

Simplify code for making Page-cacheability decision by merging logging
code and decision making code. Having the same checks in two places was
redundant and error-prone as we needed to keep them in sync.

Also get rid of failure reason enum values as those have not been used
in a while.

  • history/PageCache.cpp:

(WebCore::canCacheFrame):
(WebCore::canCachePage):
(WebCore::PageCache::canCache):
(WebCore::logPageCacheFailureDiagnosticMessage): Deleted.
(WebCore::PageCache::singleton): Deleted.
(WebCore::PageCache::setMaxSize): Deleted.
(WebCore::PageCache::frameCount): Deleted.
(WebCore::PageCache::markPagesForVisitedLinkStyleRecalc): Deleted.
(WebCore::PageCache::markPagesForFullStyleRecalc): Deleted.
(WebCore::PageCache::markPagesForDeviceOrPageScaleChanged): Deleted.
(WebCore::PageCache::markPagesForContentsSizeChanged): Deleted.
(WebCore::PageCache::markPagesForCaptionPreferencesChanged): Deleted.
(WebCore::pruningReasonToDiagnosticLoggingKey): Deleted.

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::isDisabledKey):
(WebCore::DiagnosticLoggingKeys::redirectKey):
(WebCore::DiagnosticLoggingKeys::replaceKey):
(WebCore::DiagnosticLoggingKeys::sourceKey):
(WebCore::DiagnosticLoggingKeys::underMemoryPressureKey):
(WebCore::DiagnosticLoggingKeys::reloadFromOriginKey): Deleted.

  • page/DiagnosticLoggingKeys.h:
3:09 PM Changeset in webkit [188232] by weinig@apple.com
  • 2 edits in trunk/Source/WebKit2

Try to fix the 32-bit build.

  • UIProcess/API/mac/WKViewInternal.h:
2:54 PM Changeset in webkit [188231] by mark.lam@apple.com
  • 7 edits
    3 adds in trunk/Source/JavaScriptCore

Refactor LiveObjectList and LiveObjectData into their own files.
https://bugs.webkit.org/show_bug.cgi?id=147843

Reviewed by Saam Barati.

There is no behavior change in this patch.

(JSC::HeapVerifier::HeapVerifier):
(JSC::LiveObjectList::findObject): Deleted.

  • heap/HeapVerifier.h:

(JSC::LiveObjectData::LiveObjectData): Deleted.
(JSC::LiveObjectList::LiveObjectList): Deleted.
(JSC::LiveObjectList::reset): Deleted.

  • heap/LiveObjectData.h: Added.

(JSC::LiveObjectData::LiveObjectData):

  • heap/LiveObjectList.cpp: Added.

(JSC::LiveObjectList::findObject):

  • heap/LiveObjectList.h: Added.

(JSC::LiveObjectList::LiveObjectList):
(JSC::LiveObjectList::reset):

2:35 PM Changeset in webkit [188230] by dburkart@apple.com
  • 5 edits in trunk/Websites/test-results

Fix flakiness dashboard stability and performance issues.
https://bugs.webkit.org/show_bug.cgi?id=147835

Reviewed by Ryosuke Niwa.

  • init-database.sql:
  • public/.htaccess:
  • public/include/json-shared.php:
  • public/include/test-results.php:
1:56 PM Changeset in webkit [188229] by Devin Rousso
  • 3 edits
    30 adds in trunk/Source/WebInspectorUI

Web Inspector: Add different types of non-numerical Visual editors for CSS properties
https://bugs.webkit.org/show_bug.cgi?id=147711

Added editors for keyword based CSS properties for use in the Visual style
details panel in the CSS sidebar. Also added images for keyword values that
are simple enough to be conveyed in an image.

Reviewed by Brian Burg.

  • UserInterface/Images/ClearBoth.svg: Added.
  • UserInterface/Images/ClearLeft.svg: Added.
  • UserInterface/Images/ClearRight.svg: Added.
  • UserInterface/Images/FloatLeft.svg: Added.
  • UserInterface/Images/FloatRight.svg: Added.
  • UserInterface/Images/FontStyleItalic.svg: Added.
  • UserInterface/Images/FontStyleNormal.svg: Added.
  • UserInterface/Images/FontVariantSmallCaps.svg: Added.
  • UserInterface/Images/TextAlignCenter.svg: Added.
  • UserInterface/Images/TextAlignJustify.svg: Added.
  • UserInterface/Images/TextAlignLeft.svg: Added.
  • UserInterface/Images/TextAlignRight.svg: Added.
  • UserInterface/Images/TextDecorationLineThrough.svg: Added.
  • UserInterface/Images/TextDecorationOverline.svg: Added.
  • UserInterface/Images/TextDecorationUnderline.svg: Added.
  • UserInterface/Images/TextTransformCapitalize.svg: Added.
  • UserInterface/Images/TextTransformLowercase.svg: Added.
  • UserInterface/Images/TextTransformUppercase.svg: Added.
  • UserInterface/Images/VisualStyleNone.svg: Added.
  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
Changed color swatch title.

  • UserInterface/Views/Slider.js:

(WebInspector.Slider):
(WebInspector.Slider.prototype.set value):
(WebInspector.Slider.prototype.set knobX):
(WebInspector.Slider.prototype.get maxX):
If the given value is below 0, reset it to 0.
(WebInspector.Slider.prototype._handleMousedown):
(WebInspector.Slider.prototype._handleMousemove):
(WebInspector.Slider.prototype.get _maxX): Deleted.

  • UserInterface/Views/VisualStyleColorPicker.css: Added.

(.visual-style-property-container.input-color-picker > .visual-style-property-value-container):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .visual-style-special-property-placeholder):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch:hover):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch:active):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch > span):
(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > input):
(.visual-style-property-container.input-color-picker.multiple > .visual-style-property-value-container > .visual-style-multiple-property-placeholder):

  • UserInterface/Views/VisualStyleColorPicker.js: Added.

(WebInspector.VisualStyleColorPicker):
(WebInspector.VisualStyleColorPicker.prototype.get value):
(WebInspector.VisualStyleColorPicker.prototype.set value):
(WebInspector.VisualStyleColorPicker.prototype.get placeholder):
(WebInspector.VisualStyleColorPicker.prototype.set placeholder):
(WebInspector.VisualStyleColorPicker.prototype.get synthesizedValue):
(WebInspector.VisualStyleColorPicker.prototype.get hasCompletions):
(WebInspector.VisualStyleColorPicker.prototype.set completions):
(WebInspector.VisualStyleColorPicker.prototype._updateColorSwatch):
(WebInspector.VisualStyleColorPicker.prototype._colorSwatchClicked):
(WebInspector.VisualStyleColorPicker.prototype._colorPickerColorDidChange):
(WebInspector.VisualStyleColorPicker.prototype._completionClicked):
(WebInspector.VisualStyleColorPicker.prototype._textInputKeyDown):
(WebInspector.VisualStyleColorPicker.prototype._textInputKeyUp):
(WebInspector.VisualStyleColorPicker.prototype._showCompletionsIfAble):
(WebInspector.VisualStyleColorPicker.prototype._hideCompletions):
(WebInspector.VisualStyleColorPicker.prototype._toggleTabbingOfSelectableElements):

  • UserInterface/Views/VisualStyleKeywordCheckbox.css: Added.

(.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container):
(.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container > input):
(.visual-style-property-container.keyword-checkbox > .visual-style-property-value-container > div):

  • UserInterface/Views/VisualStyleKeywordCheckbox.js: Added.

(WebInspector.VisualStyleKeywordCheckbox):
(WebInspector.VisualStyleKeywordCheckbox.prototype.get value):
(WebInspector.VisualStyleKeywordCheckbox.prototype.set value):
(WebInspector.VisualStyleKeywordCheckbox.prototype.get synthesizedValue):
(WebInspector.VisualStyleKeywordCheckbox.prototype._toggleTabbingOfSelectableElements):

  • UserInterface/Views/VisualStyleKeywordIconList.css: Added.

(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:first-child):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:last-child):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:matches(.computed, .selected)):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected svg .stroked):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected svg .filled):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:matches(.computed, .selected) + .keyword-icon):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon > div):
(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:not(.selected) > div):

  • UserInterface/Views/VisualStyleKeywordIconList.js: Added.

(WebInspector.VisualStyleKeywordIconList.dashToCapital):
(WebInspector.VisualStyleKeywordIconList.createListItem):
(WebInspector.VisualStyleKeywordIconList):
(WebInspector.VisualStyleKeywordIconList.prototype.get value):
(WebInspector.VisualStyleKeywordIconList.prototype.set value):
(WebInspector.VisualStyleKeywordIconList.prototype.get synthesizedValue):
(WebInspector.VisualStyleKeywordIconList.prototype._handleKeywordChanged):

  • UserInterface/Views/VisualStyleKeywordPicker.js: Added.

(WebInspector.VisualStyleKeywordPicker):
(WebInspector.VisualStyleKeywordPicker.prototype.get value):
(WebInspector.VisualStyleKeywordPicker.prototype.set value):
(WebInspector.VisualStyleKeywordPicker.prototype.set placeholder):
(WebInspector.VisualStyleKeywordPicker.prototype.get synthesizedValue):
(WebInspector.VisualStyleKeywordPicker.prototype.updateEditorValues):
(WebInspector.VisualStyleKeywordPicker.prototype._handleKeywordChanged):
(WebInspector.VisualStyleKeywordPicker.prototype._keywordSelectMouseDown):
(WebInspector.VisualStyleKeywordPicker.prototype._addValues):
(WebInspector.VisualStyleKeywordPicker.prototype._addAdvancedValues):
(WebInspector.VisualStyleKeywordPicker.prototype._removeAdvancedValues):
(WebInspector.VisualStyleKeywordPicker.prototype._toggleTabbingOfSelectableElements):

  • UserInterface/Views/VisualStylePropertyNameInput.js: Added.

(WebInspector.VisualStylePropertyNameInput):
(WebInspector.VisualStylePropertyNameInput.prototype.get value):
(WebInspector.VisualStylePropertyNameInput.prototype.set value):
(WebInspector.VisualStylePropertyNameInput.prototype.get synthesizedValue):
(WebInspector.VisualStylePropertyNameInput.prototype.get hasCompletions):
(WebInspector.VisualStylePropertyNameInput.prototype.set completions):
(WebInspector.VisualStylePropertyNameInput.prototype._completionClicked):
(WebInspector.VisualStylePropertyNameInput.prototype._inputKeyDown):
(WebInspector.VisualStylePropertyNameInput.prototype._inputKeyUp):
(WebInspector.VisualStylePropertyNameInput.prototype._hideCompletions):
(WebInspector.VisualStylePropertyNameInput.prototype._toggleTabbingOfSelectableElements):

  • UserInterface/Views/VisualStyleURLInput.js: Added.

(WebInspector.VisualStyleURLInput):
(WebInspector.VisualStyleURLInput.prototype.set get value):
(WebInspector.VisualStyleURLInput.prototype.parseValue):

  • UserInterface/Views/VisualStyleUnitSlider.css: Added.

(.visual-style-property-container.unit-slider > .visual-style-property-value-container > .slider):
(.visual-style-property-container.unit-slider > .visual-style-property-value-container > .slider > img):
(.visual-style-property-container.unit-slider.opacity > .visual-style-property-value-container > .slider):

  • UserInterface/Views/VisualStyleUnitSlider.js: Added.

(WebInspector.VisualStyleUnitSlider):
(WebInspector.VisualStyleUnitSlider.prototype.set value):
(WebInspector.VisualStyleUnitSlider.prototype.get value):
(WebInspector.VisualStyleUnitSlider.prototype.get synthesizedValue):
(WebInspector.VisualStyleUnitSlider.prototype.sliderValueDidChange):

1:51 PM Changeset in webkit [188228] by weinig@apple.com
  • 26 edits in trunk/Source/WebKit2

Replace WebPageConfiguration with API::PageConfiguration and expose a C-SPI accessor for it
https://bugs.webkit.org/show_bug.cgi?id=147811

Reviewed by Darin Adler.

  • Adds the missing pieces from WebPageConfiguration into API::PageConfiguration.
  • Adds C-SPI to set and get the WebsiteDataStore on the WKPageConfigurationRef.
  • Uses API::PageConfiguration to pass configuration information from WKWebView/WKView to WebPageProxy.
  • Stores the API::PageConfiguration on the WebPageProxy and exposes a new C-SPI function, WKPageCopyPageConfiguration, to get a copy of it.
  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::create):
(API::PageConfiguration::PageConfiguration):
(API::PageConfiguration::~PageConfiguration):
(API::PageConfiguration::copy):
(API::PageConfiguration::processPool):
(API::PageConfiguration::setRelatedPage):
(API::PageConfiguration::visitedLinkProvider):
(API::PageConfiguration::setVisitedLinkProvider):
(API::PageConfiguration::websiteDataStore):
(API::PageConfiguration::setWebsiteDataStore):
(API::PageConfiguration::sessionID):
(API::PageConfiguration::setSessionID):
(API::PageConfiguration::webPageConfiguration): Deleted.

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::preferenceValues):
(API::PageConfiguration::treatsSHA1SignedCertificatesAsInsecure):
(API::PageConfiguration::setTreatsSHA1SignedCertificatesAsInsecure):
(API::PageConfiguration::alwaysRunsAtForegroundPriority):
(API::PageConfiguration::setAlwaysRunsAtForegroundPriority):
(API::PageConfiguration::create): Deleted.

  • UIProcess/API/C/WKPage.cpp:

(WKPageGetPageGroup):
(WKPageCopyPageConfiguration):
(WKPageLoadURL):

  • UIProcess/API/C/WKPage.h:
  • UIProcess/API/C/WKPageConfigurationRef.cpp:

(WKPageConfigurationSetRelatedPage):
(WKPageConfigurationGetWebsiteDataStore):
(WKPageConfigurationSetWebsiteDataStore):

  • UIProcess/API/C/WKPageConfigurationRef.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):

  • UIProcess/API/ios/WKViewIOS.mm:

(-[WKView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]):

  • UIProcess/API/mac/WKView.mm:

(-[WKView _setPrimaryTrackingArea:]):
(-[WKView initWithFrame:processPool:configuration:webView:]):
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
(-[WKView initWithFrame:configurationRef:]):
(-[WKView wantsUpdateLayer]):

  • UIProcess/API/mac/WKViewInternal.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::create):
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::~WebPageProxy):
(WebKit::WebPageProxy::configuration):
(WebKit::WebPageProxy::processIdentifier):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::pageID):
(WebKit::WebPageProxy::sessionID):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::download):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::webPage):
(WebKit::WebProcessProxy::createWebPage):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::processPool):

  • UIProcess/ios/WKContentView.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
(-[WKContentView initWithFrame:processPool:configuration:webView:]):
(-[WKContentView initWithFrame:processPool:configuration:wkView:]):
(-[WKContentView dealloc]):

1:51 PM Changeset in webkit [188227] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

Web Inspector: [iOS] Allow inspector to retrieve a list of system fonts
https://bugs.webkit.org/show_bug.cgi?id=147033

Reviewed by Joseph Pecoraro.

Implement systemFontFamilies for iOS.

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::FontCache::systemFontFamilies):

1:49 PM Changeset in webkit [188226] by Devin Rousso
  • 4 edits
    4 adds in trunk/Source/WebInspectorUI

Web Inspector: Add VisualStyleSelectorSection
https://bugs.webkit.org/show_bug.cgi?id=147572

Reviewed by Brian Burg.

Adds a section to the new Visual style sidebar panel that contains the list of
styles for the currently selected node.

  • UserInterface/Models/CSSRule.js:

(WebInspector.CSSRule.prototype.get mediaText):
Returns a string containing the list of media queries.

  • UserInterface/Models/CSSStyleDeclaration.js:

(WebInspector.CSSStyleDeclaration):
(WebInspector.CSSStyleDeclaration.prototype.set text):
(WebInspector.CSSStyleDeclaration.prototype.get modified):
(WebInspector.CSSStyleDeclaration.prototype.resetText):
(WebInspector.CSSStyleDeclaration.prototype.generateCSSRuleString):
Generates a formatted string of the style text.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection.prototype._handleContextMenuEvent):
(WebInspector.CSSStyleDeclarationSection.prototype._generateCSSRuleString): Deleted.

  • UserInterface/Views/VisualStyleSelectorSection.css: Added.

(.details-section.visual-style-selector-section > .header):
(.details-section.visual-style-selector-section:not(.collapsed) > .header):
(@media (-webkit-min-device-pixel-ratio: 2)):
(.details-section.visual-style-selector-section > .header > .current-selector):
(.visual-style-selector-section.details-section:not(.collapsed) > .header > .current-selector):
(.details-section.visual-style-selector-section > .header > .current-selector > .icon):
(.details-section.visual-style-selector-section > .header > .current-selector > span):
(.details-section.visual-style-selector-section > .header > .controls):
(.details-section.visual-style-selector-section.collapsed > .header > .controls):
(.details-section.visual-style-selector-section > .header > .controls > .visual-style-selector-section-add-rule):
(.details-section.visual-style-selector-section > .content > .selectors):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .visual-style-selector-item:nth-child(odd)):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > .icon):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > :matches(.disclosure-button, .icon)):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > .titles > .title):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider ~ .visual-style-selector-item:nth-child(even)):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider ~ .visual-style-selector-item:nth-child(odd)):

  • UserInterface/Views/VisualStyleSelectorSection.js: Added.

(WebInspector.VisualStyleSelectorSection):
(WebInspector.VisualStyleSelectorSection.prototype.update.createSelectorItem):
(WebInspector.VisualStyleSelectorSection.prototype.update.uniqueOrderedRules):
(WebInspector.VisualStyleSelectorSection.prototype.update.insertAllMatchingPseudoRules):
(WebInspector.VisualStyleSelectorSection.prototype.update):
(WebInspector.VisualStyleSelectorSection.prototype.currentStyle):
(WebInspector.VisualStyleSelectorSection.prototype._selectorChanged):
(WebInspector.VisualStyleSelectorSection.prototype._styleTextReset):
(WebInspector.VisualStyleSelectorSection.prototype._addNewRule):
(WebInspector.VisualStyleSelectorSection.prototype._treeElementCheckboxToggled):
(WebInspector.VisualStyleSelectorSection.prototype._handleMouseOver):
(WebInspector.VisualStyleSelectorSection.prototype._handleMouseOut):

  • UserInterface/Views/VisualStyleSelectorTreeItem.css:

(.item.visual-style-selector-item):
(.item.visual-style-selector-item.selected):
(.item.visual-style-selector-item > .disclosure-button):
(.item.visual-style-selector-item > input[type="checkbox"]):
(.item.visual-style-selector-item > .icon):
(.item.visual-style-selector-item.modified > .icon):
(.item.visual-style-selector-item.selector-invalid > .icon):
(.item.visual-style-selector-item.selector-invalid > .titles > .title):
(.item.visual-style-selector-item.selector-invalid > .titles > .title::before):
(.item.visual-style-selector-item > .titles):
(.item.visual-style-selector-item:not(.dom-element-icon) > .titles > .title):
(.item.visual-style-selector-item:not(.dom-element-icon).editable > .titles > .title):
(.item.visual-style-selector-item:not(.dom-element-icon).editable > .titles > .title:focus):
(.item.visual-style-selector-item > .titles > .subtitle::before):
(.item.visual-style-selector-item > .titles > .subtitle):

  • UserInterface/Views/VisualStyleSelectorTreeItem.js:

(WebInspector.VisualStyleSelectorTreeItem):
(WebInspector.VisualStyleSelectorTreeItem.prototype.get iconClassName):
(WebInspector.VisualStyleSelectorTreeItem.prototype.get selectorText):
(WebInspector.VisualStyleSelectorTreeItem.prototype.onattach):
(WebInspector.VisualStyleSelectorTreeItem.prototype.ondeselect):
(WebInspector.VisualStyleSelectorTreeItem.prototype._highlightNodesWithSelector):
(WebInspector.VisualStyleSelectorTreeItem.prototype._hideDOMNodeHighlight):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleCheckboxChanged):
(WebInspector.VisualStyleSelectorTreeItem.prototype._updateCheckboxTitle):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleMainTitleMouseDown):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleMainTitleKeyDown):
(WebInspector.VisualStyleSelectorTreeItem.prototype._commitSelector):
(WebInspector.VisualStyleSelectorTreeItem.prototype._styleTextModified):
(WebInspector.VisualStyleSelectorTreeItem.prototype._selectorChanged):

1:38 PM Changeset in webkit [188225] by dburkart@apple.com
  • 8 edits
    2 adds in branches/safari-601.1-branch

Merge r188182. rdar://problem/21254835

1:36 PM Changeset in webkit [188224] by dburkart@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merge r188196. rdar://problem/22192773

1:36 PM Changeset in webkit [188223] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Unreviewed, rolling out r187131 and r187286.
https://bugs.webkit.org/show_bug.cgi?id=147839

Causing mroe frequent crashes with invalid layer bounds

(rdar://problem/21465328) (Requested by smfr on #webkit).

Reverted changesets:

"[iOS] Menu drop down such as on nike.com does not stay"
https://bugs.webkit.org/show_bug.cgi?id=147047
http://trac.webkit.org/changeset/187131

"[iOS] REGRESSION (187131): Loading CuteOverload zooms in to
the top left corner."
https://bugs.webkit.org/show_bug.cgi?id=147251
http://trac.webkit.org/changeset/187286

1:33 PM Changeset in webkit [188222] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

Web Inspector: Invalid selectors can be applied to the stylesheet
https://bugs.webkit.org/show_bug.cgi?id=147230

Reviewed by Timothy Hatcher.

  • inspector/InspectorStyleSheet.cpp:

(WebCore::isValidSelectorListString):
(WebCore::InspectorStyleSheet::setRuleSelector):
Now checks to see that the supplied selector is valid before trying to commit it to the rule.
(WebCore::InspectorStyleSheet::addRule):
(WebCore::checkStyleRuleSelector): Deleted.

1:33 PM Changeset in webkit [188221] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: TDZ in ProbeSetDataGrid construction
https://bugs.webkit.org/show_bug.cgi?id=147834

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-10
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ProbeSetDataGrid.js:

(WebInspector.ProbeSetDataGrid):
Do not use "this" before calling super.

1:32 PM Changeset in webkit [188220] by dburkart@apple.com
  • 4 edits
    2 deletes in branches/safari-601.1-branch

Merge r188190. rdar://problem/22191482

1:24 PM Changeset in webkit [188219] by ggaren@apple.com
  • 16 edits in trunk/Source/JavaScriptCore

Let's rename FunctionBodyNode
https://bugs.webkit.org/show_bug.cgi?id=147292

Reviewed by Mark Lam & Saam Barati.

FunctionBodyNode => FunctionMetadataNode

Make FunctionMetadataNode inherit from Node instead of StatementNode
because a FunctionMetadataNode can appear in expression context and does
not have a next statement.

(I decided to continue allocating FunctionMetadataNode in the AST arena,
and to retain "Node" in its name, because it really is a parsing
construct, and we transform its data before consuming it elsewhere.

There is still room for a future patch to distill and simplify the
metadata we track about functions between FunDeclNode/FuncExprNode,
FunctionMetadataNode, and UnlinkedFunctionExecutable. But this is a start.)

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createExecutableInternal):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::generateFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):

  • bytecode/UnlinkedCodeBlock.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitNewArray):
(JSC::BytecodeGenerator::emitNewFunction):
(JSC::BytecodeGenerator::emitNewFunctionExpression):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::makeFunction):

  • bytecompiler/NodesCodegen.cpp:

(JSC::EvalNode::emitBytecode):
(JSC::FunctionNode::emitBytecode):
(JSC::FunctionBodyNode::emitBytecode): Deleted.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createFunctionExpr):
(JSC::ASTBuilder::createFunctionBody):

  • parser/NodeConstructors.h:

(JSC::FunctionParameters::FunctionParameters):
(JSC::FuncExprNode::FuncExprNode):
(JSC::FuncDeclNode::FuncDeclNode):

  • parser/Nodes.cpp:

(JSC::EvalNode::EvalNode):
(JSC::FunctionMetadataNode::FunctionMetadataNode):
(JSC::FunctionMetadataNode::finishParsing):
(JSC::FunctionMetadataNode::setEndPosition):
(JSC::FunctionBodyNode::FunctionBodyNode): Deleted.
(JSC::FunctionBodyNode::finishParsing): Deleted.
(JSC::FunctionBodyNode::setEndPosition): Deleted.

  • parser/Nodes.h:

(JSC::FuncExprNode::body):
(JSC::FuncDeclNode::body):

  • parser/Parser.h:

(JSC::Parser::isFunctionMetadataNode):
(JSC::Parser::next):
(JSC::Parser<LexerType>::parse):
(JSC::Parser::isFunctionBodyNode): Deleted.

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getFunctionExecutableFromGlobalCode):

  • runtime/CodeCache.h:
12:18 PM Changeset in webkit [188218] by mrajca@apple.com
  • 5 edits in trunk/Source/WebKit2

Media Session: generalize isFocusedContentMediaElementPlaying so it works with other playback attributes
https://bugs.webkit.org/show_bug.cgi?id=147797

Reviewed by Simon Fraser.

  • UIProcess/API/C/WKMediaSessionFocusManager.cpp:

(WKMediaSessionFocusManagerValueForPlaybackAttribute):
(WKMediaSessionFocusManagerIsFocusedContentMediaElementPlaying): Deleted.

  • UIProcess/API/C/WKMediaSessionFocusManager.h:
  • UIProcess/WebMediaSessionFocusManager.cpp:

(WebKit::WebMediaSessionFocusManager::valueForPlaybackAttribute):
(WebKit::WebMediaSessionFocusManager::mediaControlIsEnabledDidChange):
(WebKit::WebMediaSessionFocusManager::isFocusedContentMediaElementPlaying): Deleted.
(WebKit::WebMediaSessionFocusManager::mediaElementIsPlayingDidChange): Deleted.

  • UIProcess/WebMediaSessionFocusManager.h:
11:57 AM Changeset in webkit [188217] by Chris Dumez
  • 2 edits in trunk/Source/WebKit/mac

Align WebKit1's PageCache size with WebKit2's
https://bugs.webkit.org/show_bug.cgi?id=147831

Reviewed by Sam Weinig.

Align WebKit1's PageCache size with WebKit2's for consistency. Also, we
have data showing that keeping more than 3 pages in the PageCache is
not really useful.

  • WebView/WebView.mm:

(+[WebView _setCacheModel:]):

11:06 AM Changeset in webkit [188216] by Antti Koivisto
  • 3 edits
    2 adds in trunk/LayoutTests

http/tests/cache/disk-cache/disk-cache-validation.html has too many subtests
https://bugs.webkit.org/show_bug.cgi?id=147827

Rubber-stamped by Alexey Proskuryakov.

Also split the no-body variant of this.

  • http/tests/cache/disk-cache/disk-cache-validation-no-body-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-validation-no-body.html:
  • http/tests/cache/disk-cache/disk-cache-vary-no-body-expected.txt: Added.
  • http/tests/cache/disk-cache/disk-cache-vary-no-body.html: Added.
10:56 AM Changeset in webkit [188215] by peavo@outlook.com
  • 2 edits in trunk/Source/WebKit/win

[Win] Small repaint issues when device scale factor != 1.
https://bugs.webkit.org/show_bug.cgi?id=147825

Reviewed by Alex Christensen.

When scaling, we should scale a FloatRect, and then compute the enclosing IntRect.

  • WebView.cpp:

(WebView::repaint):
(WebView::scrollBackingStore):
(WebView::paintIntoBackingStore):

9:09 AM Changeset in webkit [188214] by Antti Koivisto
  • 3 edits
    2 adds in trunk/LayoutTests

http/tests/cache/disk-cache/disk-cache-validation.html has too many subtests
https://bugs.webkit.org/show_bug.cgi?id=147827

Reviewed by Chris Dumez.

Looks like it occasionally times out because a bot is running slowly and 243 subtests take >30s.

  • http/tests/cache/disk-cache/disk-cache-validation-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-validation.html:

Split Vary header cases to a separate test.

  • http/tests/cache/disk-cache/disk-cache-vary-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-vary.html:

Reduce test matrix size by no testing Expires header here.

9:01 AM Changeset in webkit [188213] by jcraig@apple.com
  • 7 edits in trunk

AX: Address follow-up comments in bug 145684
https://bugs.webkit.org/show_bug.cgi?id=147817

Reviewed by Dean Jackson.

Minor cleanup and style updates requested by Dean.
Source/WebCore:

Updated Existing Test Expectations.

  • Modules/mediacontrols/mediaControlsApple.css:

(video::-webkit-media-show-controls):

  • Modules/mediacontrols/mediaControlsiOS.css:

(video::-webkit-media-show-controls):

LayoutTests:

  • http/tests/contentextensions/text-track-blocked-expected.txt:
  • media/video-controls-show-on-kb-or-ax-event.html:
  • platform/mac/media/track/track-cue-rendering-horizontal-expected.txt:
7:12 AM Changeset in webkit [188212] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit2

[CoordinatedGraphics] Fix forward declarations of CoordinatedGraphicsLayerState, ViewportAttributes
https://bugs.webkit.org/show_bug.cgi?id=147823

Reviewed by Carlos Garcia Campos.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/LayerTreeHost.h:
5:48 AM Changeset in webkit [188211] by Antti Koivisto
  • 22 edits in trunk

Expand network cache tests to cover memory cache behavior
https://bugs.webkit.org/show_bug.cgi?id=147783

Reviewed by Alexey Proskuryakov.

Source/WebCore:

To support testing, include memory cache as a possible source type to XHR responses.

  • loader/ResourceLoader.cpp:

(WebCore::logResourceResponseSource):

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::didAddClient):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::revalidationInProgress):

  • platform/network/ResourceResponseBase.h:
  • testing/Internals.cpp:

(WebCore::Internals::xhrResponseSource):

LayoutTests:

Add another round to existing cache tests with hot memory cache.
This add 691 individual cases worth of memory cache test coverage.

XHR (and main resource, CachedRawResource in general) behaves differently from other resource types. The added
coverage maps this behavior. The regular subresource behavior needs coverage too.

  • http/tests/cache/disk-cache/disk-cache-204-status-code-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-302-status-code-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-307-status-code-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-404-status-code-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-disable-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-media-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-range-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-request-headers-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-request-max-stale-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-validation-attachment-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-validation-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-validation-no-body-expected.txt:
  • http/tests/cache/disk-cache/resources/cache-test.js:

(loadResource):
(loadResourcesWithOptions):
(loadResources):
(.):
(runTests):

3:05 AM Changeset in webkit [188210] by youenn.fablet@crf.canon.fr
  • 7 edits in trunk

Compile warning (-Wsign-compare) on 32-bits at WebCore/platform/FileSystem.cpp
https://bugs.webkit.org/show_bug.cgi?id=146414

Reviewed by Darin Adler.

Source/WebCore:

No behavioral changes.

  • platform/FileSystem.cpp:

(WebCore::MappedFileData::MappedFileData): Making use of convertSafely.

  • platform/posix/SharedBufferPOSIX.cpp:

(WebCore::SharedBuffer::createFromReadingFile): Making use of convertSafely.

Source/WTF:

Added convertSafely routine based on isInBounds routine.
Updated BoundChecker by adding a third boolean parameter to this template giving whether Target has greater or equal precision than Source.
Removed BoundCheckElider, which is no longer necessary and had some issues.

  • wtf/CheckedArithmetic.h:

(WTF::isInBounds):
(WTF::convertSafely):

Tools:

  • TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp:

(TestWebKitAPI::TEST): Improving testing of WTF::isInBounds.

3:01 AM Changeset in webkit [188209] by youenn.fablet@crf.canon.fr
  • 3 edits in trunk/Source/WebCore

[Streams API] ReadableStreamReader closed promise should use CachedAttribute
https://bugs.webkit.org/show_bug.cgi?id=147487

Reviewed by Darin Adler.

Covered by existing tests.

  • Modules/streams/ReadableStreamReader.idl: Made closed a CachedAttribute.
  • bindings/js/JSReadableStreamReaderCustom.cpp:

(WebCore::JSReadableStreamReader::closed): Updated according CachedAttribute specific field.

1:27 AM Changeset in webkit [188208] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] Crash when the web view is destroyed while the screensaver DBUs proxy is being created
https://bugs.webkit.org/show_bug.cgi?id=147780

Reviewed by Sergio Villar Senin.

We should cancel the screenSaverInhibitCancellable on
dispose. Also use adoptGRef() when creating the cancellable object
to not leak it.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseDispose):
(webkitWebViewBaseSendInhibitMessageToScreenSaver):
(webkitWebViewBaseInhibitScreenSaver):

1:24 AM Changeset in webkit [188207] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

[GTK] Test /webkit2/WebKitWebView/submit-form is flaky
https://bugs.webkit.org/show_bug.cgi?id=147727

Reviewed by Sergio Villar Senin.

I think it was not this test in particular, but
/webkit2/WebKitWebView/custom-charset that is affecting the
others. This is because changing the encoding reloads the page,
but we don't wait for the page to be reloaded, so when the test
finishes and other test starts the web process is still reloading
the page.

  • Scripts/run-gtk-tests:

(TestRunner): Unskip /webkit2/WebKitWebView/submit-form.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewCustomCharset): Wait until page is reloaded after
changing the charset.

Note: See TracTimeline for information about the timeline view.