Timeline



Oct 4, 2014:

11:34 PM Changeset in webkit [174325] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[SVG -> OTF Converter] Arabic forms are not substituted correctly
https://bugs.webkit.org/show_bug.cgi?id=137092

Reviewed by Darin Adler.

Tests: svg/W3C-SVG-1.1/fonts-glyph-02-t.svg

svg/custom/glyph-selection-arabic-forms.svg

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::appendArabicReplacementSubtable): Invoked for each of the three
Arabic form substitutions.
(WebCore::SVGToOTFFontConverter::appendGSUBTable): OpenType "Advanced Typographic Table":
"Glyph substitution data"
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter): Re-order the m_codepointsToIndicesMap
to prefer isolated forms of glyphs.
(WebCore::SVGToOTFFontConverter::convertSVGToOTFFont): Append the GSUB table.
(WebCore::calculateChecksum): Deleted.

3:24 PM Changeset in webkit [174324] by commit-queue@webkit.org
  • 7 edits
    4 adds in trunk

Implement Element.closest() API
https://bugs.webkit.org/show_bug.cgi?id=137418

Patch by Dhi Aurrahman <diorahman@rockybars.com> on 2014-10-04
Reviewed by Benjamin Poulain.

Source/WebCore:

Implement Element.closest() API as specified in [1].

[1]: https://dom.spec.whatwg.org/#dom-element-closest

Tests: fast/selectors/closest-general.html

fast/selectors/closest-scope.html

  • dom/Element.cpp:

(WebCore::Element::closest):

  • dom/Element.h:
  • dom/Element.idl:
  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::selectorClosest):
(WebCore::SelectorDataList::closest):

  • dom/SelectorQuery.h:

(WebCore::SelectorQuery::closest):

LayoutTests:

Add test cases for Element.closest() API

  • fast/selectors/closest-general-expected.txt: Added.
  • fast/selectors/closest-general.html: Added.
  • fast/selectors/closest-scope-expected.txt: Added.
  • fast/selectors/closest-scope.html: Added.
3:11 PM Changeset in webkit [174323] by commit-queue@webkit.org
  • 6 edits
    9 adds in trunk/Source/WebInspectorUI

Web Inspector: Add PrettyPrinter CSS tests
https://bugs.webkit.org/show_bug.cgi?id=134005

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-10-04
Reviewed by Timothy Hatcher.

Add CSS pretty printing tests. Improve pretty printing of calc()
expressions and media-queries with whitespace around operators
and keywords. Also fix the debug output in the tool for CSS.

  • Tools/PrettyPrinting/CodeMirrorFormatters.js:
  • Tools/PrettyPrinting/FormatterContentBuilder.js:

(FormatterContentBuilder.prototype._appendIndent):

  • Tools/PrettyPrinting/FormatterDebug.js:

(.debugToken):
(Formatter.prototype.debug):

  • Tools/PrettyPrinting/css-tests/basic-expected.css: Added.
  • Tools/PrettyPrinting/css-tests/basic.css: Added.
  • Tools/PrettyPrinting/css-tests/calc-expected.css: Added.
  • Tools/PrettyPrinting/css-tests/calc.css: Added.
  • Tools/PrettyPrinting/css-tests/media-query-expected.css: Added.
  • Tools/PrettyPrinting/css-tests/media-query.css: Added.
  • Tools/PrettyPrinting/css-tests/selectors-expected.css: Added.
  • Tools/PrettyPrinting/css-tests/selectors.css: Added.
  • Tools/PrettyPrinting/index.html:
  • UserInterface/Views/CodeMirrorFormatters.js:
2:55 PM Changeset in webkit [174322] by Brian Burg
  • 24 edits
    1 delete in trunk/Source

Unreviewed, rolling out r174319.

Causes assertions in fast/profiler tests. Needs nontrivial
investigation, will take offline.

Reverted changeset:

"Web Inspector: timelines should not count time elapsed while
paused in the debugger"
https://bugs.webkit.org/show_bug.cgi?id=136351
http://trac.webkit.org/changeset/174319

12:55 PM Changeset in webkit [174321] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Try to fix the Windows build after r174315.

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
12:35 PM Changeset in webkit [174320] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Try to fix the Windows build after r174315.

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
12:18 PM Changeset in webkit [174319] by Brian Burg
  • 24 edits
    1 add in trunk/Source

Web Inspector: timelines should not count time elapsed while paused in the debugger
https://bugs.webkit.org/show_bug.cgi?id=136351

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Now that we have a stopwatch to provide pause-aware timing data, we can remove the
profiler's handling of debugger pause/continue callbacks. The timeline agent accounts
for debugger pauses by pausing and resuming the stopwatch.

  • API/JSProfilerPrivate.cpp:

(JSStartProfiling): Use a fresh stopwatch when profiling from the JSC API.

  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::handlePause):

  • profiler/LegacyProfiler.cpp:

(JSC::LegacyProfiler::profiler): Use nullptr.
(JSC::LegacyProfiler::startProfiling): Hand off a stopwatch to the profile generator.
(JSC::LegacyProfiler::stopProfiling): Use nullptr.
(JSC::LegacyProfiler::didPause): Deleted.
(JSC::LegacyProfiler::didContinue): Deleted.

  • profiler/LegacyProfiler.h:
  • profiler/ProfileGenerator.cpp: Remove debugger pause/continue callbacks and the

timestamp member that was used to track time elapsed by the debugger. Just use the
stopwatch's elapsed times to generate start/elapsed times for function calls.
(JSC::ProfileGenerator::create):
(JSC::ProfileGenerator::ProfileGenerator):
(JSC::ProfileGenerator::beginCallEntry):
(JSC::ProfileGenerator::endCallEntry):
(JSC::ProfileGenerator::didPause): Deleted.
(JSC::ProfileGenerator::didContinue): Deleted.

  • profiler/ProfileGenerator.h:

Source/WebCore:

To avoid counting time elapsed while the debugger is paused, timeline records should
keep track of time elapsed since the start of timeline capturing, rather than wall clock
timestamps. We can easily compute elapsed time by sharing Stopwatch instance among
all timeline record-generating code. The stopwatch is paused while the debugger is paused,
so subsequent time measurements will not include time elapsed while the debugger is paused.

Agents use the shared stopwatch to generate timestamps if the timeline agent is active
(i.e., a timeline recording is being captured). If not, use a zero timestamp since the timing data is only revealed through the Timeline interface.

This refactoring is safe because start and end times are only used to graph records; the
timestamp's actual value is irrelevant and is not displayed in the user interface. Date
timestamps are still included with network-related records as part of their header data.

No new tests, because we cannot reliably test timing changes induced by debugger pauses.
It is possible for records to accrue time before the debugger pauses or after it resumes.

  • inspector/InspectorCSSAgent.cpp: Remove unused include.
  • inspector/InspectorPageAgent.cpp: Use timestamps from the shared stopwatch.

(WebCore::InspectorPageAgent::timestamp):
(WebCore::InspectorPageAgent::domContentEventFired):
(WebCore::InspectorPageAgent::loadEventFired):

  • inspector/InspectorPageAgent.h:
  • inspector/InspectorResourceAgent.cpp: Use timestamps from the shared stopwatch.

(WebCore::InspectorResourceAgent::timestamp):
(WebCore::InspectorResourceAgent::willSendRequest):
(WebCore::InspectorResourceAgent::didReceiveResponse):
(WebCore::InspectorResourceAgent::didReceiveData):
(WebCore::InspectorResourceAgent::didFinishLoading):
(WebCore::InspectorResourceAgent::didFailLoading):
(WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
(WebCore::InspectorResourceAgent::willSendWebSocketHandshakeRequest):
(WebCore::InspectorResourceAgent::didReceiveWebSocketHandshakeResponse):
(WebCore::InspectorResourceAgent::didCloseWebSocket):
(WebCore::InspectorResourceAgent::didReceiveWebSocketFrame):
(WebCore::InspectorResourceAgent::didSendWebSocketFrame):
(WebCore::InspectorResourceAgent::didReceiveWebSocketFrameError):

  • inspector/InspectorResourceAgent.h:
  • inspector/InspectorTimelineAgent.cpp: Add calls to reset, start, and stop the stopwatch.

(WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
(WebCore::InspectorTimelineAgent::internalStart):
(WebCore::InspectorTimelineAgent::internalStop):
(WebCore::startProfiling):
(WebCore::InspectorTimelineAgent::startFromConsole):
(WebCore::InspectorTimelineAgent::willCallFunction):
(WebCore::InspectorTimelineAgent::willEvaluateScript):
(WebCore::InspectorTimelineAgent::didPause):
(WebCore::InspectorTimelineAgent::didContinue):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
(WebCore::InspectorTimelineAgent::timestamp):
(WebCore::TimelineTimeConverter::reset): Deleted.

  • inspector/InspectorTimelineAgent.h: Make timestamp() public, and remove old timepieces.

(WebCore::TimelineTimeConverter::TimelineTimeConverter): Deleted.
(WebCore::TimelineTimeConverter::fromMonotonicallyIncreasingTime): Deleted.
(WebCore::InspectorTimelineAgent::timeConverter): Deleted.

  • inspector/TimelineRecordFactory.cpp:

Source/WebInspectorUI:

Don't update the timeline's current time when the debugger is paused.

Start and end times for timeline records are now in seconds elapsed since timeline
recording started, rather than milliseconds since the epoch. Add a workaround to
preserve compatibility with old backends.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype.capturingStarted):
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):

  • UserInterface/Views/TimelineContentView.js:

(WebInspector.TimelineContentView.prototype._debuggerPaused):
(WebInspector.TimelineContentView.prototype._debuggerResumed):

Source/WTF:

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.vcxproj/WTF.vcxproj.filters:
  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/Stopwatch.h: Added. This implements a refcounted monotonic stopwatch.

(WTF::Stopwatch::reset):
(WTF::Stopwatch::start):
(WTF::Stopwatch::stop):

10:18 AM Changeset in webkit [174318] by fpizlo@apple.com
  • 24 edits
    6 adds in trunk

FTL should sink PutLocals
https://bugs.webkit.org/show_bug.cgi?id=137168

Reviewed by Oliver Hunt.
Source/JavaScriptCore:


We've known for a while that our PutLocal situation was sub-optimal. We emit them anytime we
"pass" arguments to an inlined function call, because we need to enable the runtime to grab
those arguments when doing foo.arguments where foo is inlined: our engine doesn't deoptimize
in that case but rather just relies on the arguments being flushed (i.e. a copy of their
values is spilled) at a well-known place in a well-known format.

The PutLocals incur two costs: (1) they are store instructions and stores ain't free, and (2)
they look like escaping sites and so they inhibit object allocation sinking.

But in most cases, the PutLocals are unnecessary because the inlined code never performs any
side effect that could transitively lead to function.arguments. Even if the inlined code
could do such a side effect, it may be on a rare path so there is no need to penalize the
entire function.

This patch implements one solution to the PutLocal problem: it aggressively sinks PutLocals
to the latest possible point. This is even more aggressive than the object allocation
sinking. That sinking algorithm avoids creating situations where an object could be
materialized more than one along any path. PutLocal sinking, on the other hand, doesn't avoid
this at all - both to make the phase cheaper and simpler and to make it more aggressive.
Every PutLocal is sunk no matter what.

The upside of this patch is that it eliminates many PutLocals: many of them are sunk "past
their death", thus eliminating them completely. Others are sunk to rare paths. This enables a
lot of object allocation sinking and it removes a lot of pointless store instructions.

It also has downsites. Sinking PutLocals increases register pressure because it increases the
live ranges of things like inlined arguments.

This patch is a net performance win in its current form: 1% SunSpider regression, 2% OctaneV2
progression, 0.6% Kraken regression, 1% AsmBench progression, and 0.5% CompressionBench
regression. The biggest win is on Octane/raytrace, which improves by 27%.

Relanding after fixing internal builds. We have to be careful about implicit casts from int64
to int32.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/CodeBlock.h:
  • bytecode/Operands.h:

(JSC::Operands::dump): Deleted.

  • bytecode/OperandsInlines.h:

(JSC::Traits>::dump):

  • bytecode/VirtualRegister.h:

(JSC::VirtualRegister::isHeader):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):

  • dfg/DFGClobberSet.h:

(JSC::DFG::ClobberSetAdd::operator()):
(JSC::DFG::ClobberSetOverlaps::operator()):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):
(JSC::DFG::NoOpClobberize::operator()):
(JSC::DFG::CheckClobberize::operator()):
(JSC::DFG::AbstractHeapOverlaps::operator()):
(JSC::DFG::ReadMethodClobberize::operator()):
(JSC::DFG::WriteMethodClobberize::operator()):
(JSC::DFG::DefMethodClobberize::operator()):

  • dfg/DFGFlushFormat.h:

(JSC::DFG::merge):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::Graph):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::capturedVarsFor):

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::determineMaterializationPoints):
(JSC::DFG::ObjectAllocationSinkingPhase::placeMaterializationPoints):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

  • dfg/DFGPreciseLocalClobberize.h: Added.

(JSC::DFG::PreciseLocalClobberizeAdaptor::PreciseLocalClobberizeAdaptor):
(JSC::DFG::PreciseLocalClobberizeAdaptor::read):
(JSC::DFG::PreciseLocalClobberizeAdaptor::write):
(JSC::DFG::PreciseLocalClobberizeAdaptor::def):
(JSC::DFG::PreciseLocalClobberizeAdaptor::callIfAppropriate):
(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):
(JSC::DFG::PreciseLocalClobberizeAdaptor::writeTop):
(JSC::DFG::forEachLocalReadByUnwind):
(JSC::DFG::preciseLocalClobberize):

  • dfg/DFGPutLocalSinkingPhase.cpp: Added.

(JSC::DFG::performPutLocalSinking):

  • dfg/DFGPutLocalSinkingPhase.h: Added.
  • dfg/DFGSSACalculator.h:

(JSC::DFG::SSACalculator::computePhis):

  • dfg/DFGValidate.cpp:

Source/WTF:


Make the set bits of a BitVector iterable.

  • wtf/BitVector.h:

(WTF::BitVector::SetBitsIterable::SetBitsIterable):
(WTF::BitVector::SetBitsIterable::iterator::iterator):
(WTF::BitVector::SetBitsIterable::iterator::operator*):
(WTF::BitVector::SetBitsIterable::iterator::operator++):
(WTF::BitVector::SetBitsIterable::iterator::operator==):
(WTF::BitVector::SetBitsIterable::iterator::operator!=):
(WTF::BitVector::SetBitsIterable::begin):
(WTF::BitVector::SetBitsIterable::end):
(WTF::BitVector::setBits):

LayoutTests:

  • js/regress/elidable-new-object-then-call-expected.txt: Added.
  • js/regress/elidable-new-object-then-call.html: Added.
  • js/regress/script-tests/elidable-new-object-then-call.js: Added.

(sumOfArithSeries):
(bar):
(foo):

3:04 AM Changeset in webkit [174317] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[jhbuild] Simplify platform detection in update-webkit-libs-jhbuild
https://bugs.webkit.org/show_bug.cgi?id=137390

Reviewed by Carlos Garcia Campos.

  • Scripts/update-webkit-libs-jhbuild:
2:07 AM Changeset in webkit [174316] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Add missing inspector files to compilation.

  • PlatformGTK.cmake: Add javascript sources in

WebInspectorUI/UserInterface/External/Esprima to the list of
inspector files.

1:47 AM Changeset in webkit [174315] by timothy_horton@apple.com
  • 17 edits
    20 adds in trunk

Make it possible to test page overlays
https://bugs.webkit.org/show_bug.cgi?id=137339

Reviewed by Dan Bernstein.

Tests: pageoverlay/overlay-installation.html

pageoverlay/overlay-large-document-scrolled.html
pageoverlay/overlay-large-document.html

Do some initial work to make page overlays testable.
There are many more tests to be written, but this lays the groundwork.

  • WebCore.exp.in:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCore.vcxproj/WebCoreTestSupport.vcxproj:
  • WebCore.vcxproj/WebCoreTestSupport.vcxproj.filters:
  • CMakeLists.txt:

Add MockPageOverlayClient.

  • platform/graphics/GraphicsLayer.h:
  • page/PageOverlayController.h:
  • page/PageOverlayController.cpp:

(WebCore::PageOverlayController::shouldSkipLayerInDump):
Don't skip PageOverlayController-owned layers in the layer tree dump if the
layerTreeAsText behavior says that we should include them.

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::dumpChildren):

  • platform/graphics/GraphicsLayerClient.h:

(WebCore::GraphicsLayerClient::shouldSkipLayerInDump):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::shouldSkipLayerInDump):

  • rendering/RenderLayerBacking.h:

Pass the LayerTreeAsTextBehavior through shouldSkipLayerInDump.

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
Uninstall all page overlays when resetting to a consistent state.

(WebCore::Internals::installMockPageOverlay):
(WebCore::Internals::pageOverlayLayerTreeAsText):
Expose two new internals functions.
installMockPageOverlay takes "view" or "document", allowing script
to choose the appropriate overlay type.
pageOverlayLayerTreeAsText dumps both view and document-relative
overlays, from each overlay container layer.

  • testing/Internals.h:
  • testing/Internals.idl:

Fix some typos.

  • testing/MockPageOverlayClient.cpp: Added.

(WebCore::MockPageOverlayClient::shared):
(WebCore::MockPageOverlayClient::MockPageOverlayClient):
(WebCore::MockPageOverlayClient::installOverlay):
(WebCore::MockPageOverlayClient::uninstallAllOverlays):
(WebCore::MockPageOverlayClient::layerTreeAsText):
(WebCore::MockPageOverlayClient::pageOverlayDestroyed):
(WebCore::MockPageOverlayClient::willMoveToPage):
(WebCore::MockPageOverlayClient::didMoveToPage):
When the overlay is parented, mark it as needing repaint.
Future tests might want to test overlays without content,
but for now this is a reasonable default behavior.

(WebCore::MockPageOverlayClient::drawRect):
Paint the overlay rects as described in the LayoutTests ChangeLog.

(WebCore::MockPageOverlayClient::mouseEvent):
(WebCore::MockPageOverlayClient::didScrollFrame):
(WebCore::MockPageOverlayClient::copyAccessibilityAttributeStringValueForPoint):
(WebCore::MockPageOverlayClient::copyAccessibilityAttributeBoolValueForPoint):
(WebCore::MockPageOverlayClient::copyAccessibilityAttributeNames):

  • testing/MockPageOverlayClient.h: Added.
  • pageoverlay/overlay-installation.html: Added.

Add a test which just installs one view-relative and one document-relative
overlay, and dumps the layer tree and pixel results. The mock overlay
strokes a blue rectangle (inset a little from the overlay bounds) for
view-relative overlays, and a green rectangle (inset a bit more) for
document-relative overlays.

  • pageoverlay/overlay-large-document.html: Added.
  • pageoverlay/overlay-large-document-scrolled.html: Added.

Tests that do the same as the -installation test, but with a larger document;
the view-relative overlay should be the same size (or slightly smaller,
because we have scrollbars now), but the document-relative overlay should
be the size of the document. The second test scrolls to maxX, maxY, and
the document-relative overlay should scroll along with it, while the
view-relative overlay should remain fixed.

  • pageoverlay/overlay-installation-expected.txt: Added.
  • pageoverlay/overlay-large-document-expected.txt: Added.
  • pageoverlay/overlay-large-document-scrolled-expected.txt: Added.

"Normal" layer tree expectations.

  • platform/mac-wk1/pageoverlay/overlay-installation-expected.png: Added.
  • platform/mac-wk1/pageoverlay/overlay-installation-expected.txt: Added.
  • platform/mac-wk1/pageoverlay/overlay-large-document-expected.png: Added.
  • platform/mac-wk1/pageoverlay/overlay-large-document-expected.txt: Added.
  • platform/mac-wk1/pageoverlay/overlay-large-document-scrolled-expected.png: Added.
  • platform/mac-wk1/pageoverlay/overlay-large-document-scrolled-expected.txt: Added.

Expected results for WebKit1 differ for view-relative overlays, because
we don't currently hook up view-relative overlays for WebKit1.

  • platform/mac/pageoverlay/overlay-installation-expected.png: Added.
  • platform/mac/pageoverlay/overlay-large-document-expected.png: Added.
  • platform/mac/pageoverlay/overlay-large-document-scrolled-expected.png: Added.

"Normal" pixel dump expectations.

1:37 AM Changeset in webkit [174314] by Carlos Garcia Campos
  • 14 edits
    2 adds in trunk/Source/WebCore

Move DragController::createFragmentFromDragData implementation to the editor
https://bugs.webkit.org/show_bug.cgi?id=136819

Reviewed by Darin Adler.

Make Editor::webContentFromPasteboard() common to all ports and
add a implementation for every port.

  • PlatformWin.cmake: Add new files to compilation.
  • WebCore.vcxproj/WebCore.vcxproj: Ditto.
  • editing/Editor.cpp:

(WebCore::Editor::pasteWithPasteboard): Move to EditorWin.cpp
since this is only used by windows port.

  • editing/Editor.h:
  • editing/efl/EditorEfl.cpp:

(WebCore::Editor::webContentFromPasteboard):

  • editing/gtk/EditorGtk.cpp:

(WebCore::Editor::webContentFromPasteboard):

  • editing/win/EditorWin.cpp: Added.

(WebCore::Editor::pasteWithPasteboard):
(WebCore::Editor::webContentFromPasteboard):

  • page/DragController.cpp:

(WebCore::documentFragmentFromDragData): Use the editor instead of
createFragmentFromDragData() that has been removed. Also made this
method a static funtion again.

  • page/DragController.h:
  • page/efl/DragControllerEfl.cpp: Remove createFragmentFromDragData().
  • page/gtk/DragControllerGtk.cpp: Ditto.
  • page/mac/DragControllerMac.mm: Ditto.
  • page/win/DragControllerWin.cpp: Ditto.
  • platform/Pasteboard.h:

(WebCore::Pasteboard::dragDataMap): Add a getter for m_dragDataMap
as required by Editor::webContentFromPasteboard for windows.

1:30 AM Changeset in webkit [174313] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Use is<>() / downcast<>() for CSS StyleProperties
https://bugs.webkit.org/show_bug.cgi?id=137398

Reviewed by Benjamin Poulain.

Use is<>() / downcast<>() for CSS StyleProperties subclasses.

No new tests, no behavior change.

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::immutableCopyIfNeeded):
(WebCore::MutableStyleProperties::MutableStyleProperties):
(WebCore::StyleProperties::hasCSSOMWrapper):

  • css/StyleProperties.h:

(WebCore::StyleProperties::PropertyReference::propertyMetadata):
(WebCore::StyleProperties::PropertyReference::propertyValue):
(WebCore::StyleProperties::propertyCount):
(WebCore::StyleProperties::deref):
(WebCore::StyleProperties::findPropertyIndex):
(isType):
(WebCore::toMutableStyleProperties): Deleted.
(WebCore::toImmutableStyleProperties): Deleted.

  • css/StyleRule.cpp:

(WebCore::StyleRule::mutableProperties):
(WebCore::StyleRulePage::mutableProperties):
(WebCore::StyleRuleFontFace::mutableProperties):

  • css/WebKitCSSKeyframeRule.cpp:

(WebCore::StyleKeyframe::mutableProperties):

  • dom/StyledElement.cpp:

(WebCore::StyledElement::ensureMutableInlineStyle):
(WebCore::StyledElement::setInlineStyleFromString):

1:05 AM Changeset in webkit [174312] by roger_fong@apple.com
  • 2 edits in trunk/LayoutTests

[Windows] Skip remaining failing media tests after adding audio devices to the bots.

  • platform/win/TestExpectations:
12:56 AM Changeset in webkit [174311] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[TexMap] Clean up GraphicsLayerTextureMapper::prepareBackingStoreIfNeeded()
https://bugs.webkit.org/show_bug.cgi?id=137263

Reviewed by Darin Adler.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::prepareBackingStoreIfNeeded): Clean up
the method a bit. When the backing store will not be in use the change mask
should only get updated if there was a backing store present beforehand.

12:46 AM Changeset in webkit [174310] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] Do not generate webkit2gtk-tests-resources.gresource unconditionally
https://bugs.webkit.org/show_bug.cgi?id=137391

Reviewed by Martin Robinson.

Add a custom command to only re-generate
webkit2gtk-tests-resources.gresource when any of its dependencies changes.

  • TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt:
12:35 AM Changeset in webkit [174309] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] generate-gtkdoc crashes when generating HTML due to encoding issues
https://bugs.webkit.org/show_bug.cgi?id=135502

Reviewed by Martin Robinson.

When writing to stdout/stderr fails due to a UnicodeDecodeError
exception, try again without encoding the output.

  • gtk/gtkdoc.py:

(GTKDoc._run_command):

12:14 AM Changeset in webkit [174308] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[TexMap] Remove QDoc comments in GraphicsLayerTextureMapper
https://bugs.webkit.org/show_bug.cgi?id=137264

Reviewed by Andreas Kling.

Remove all the QDoc comments in the class that were
left over by the Qt port.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):

Oct 3, 2014:

7:41 PM Changeset in webkit [174307] by Yusuke Suzuki
  • 2 edits
    68 adds in trunk/LayoutTests

Introduce Promise A+ tests into WebKit
https://bugs.webkit.org/show_bug.cgi?id=136878

Reviewed by Sam Weinig.

To ensure WebKit Promise stability, introducing Promise A+ tests[1] into WebKit.
It's also used to test V8 Promise[2].
So the tests guarantee that WebKit Promise's spec validity and interchangeability
to the other browser's Promise implementation.

Promise A+ tests assumes that it works on the Node.js environment. To work it on
LayoutTests correctly, we need to transform Node.js styled JavaScript code into
browser styled code. In this patch, we use browserify[3] to transform the test code.
Through transforming pipeline, some dependent JS code is bundled into the produced code.
So added SinonJS[4] and browserify's license files into the test directory.

And tests assume that it is used with Mocha[5] test runner. So introducing mocha.js and
added LICENSE file into this directory.

And since Promises/A+ 2.3.3 has many tests, it consumes much time (13s in GTK debug build).
So mark it as a Slow test.

[1]: https://github.com/promises-aplus/promises-tests
[2]: https://code.google.com/p/v8/source/browse#svn%2Ftrunk%2Ftest%2Fpromises-aplus
[3]: http://browserify.org/
[4]: http://sinonjs.org/
[5]: http://visionmedia.github.io/mocha/

  • TestExpectations:
  • js/promises-tests/README: Added.
  • js/promises-tests/browserify-entry-point.js: Added.

(.):

  • js/promises-tests/browserify.LICENSE: Added.
  • js/promises-tests/mocha.LICENSE: Added.
  • js/promises-tests/promises-tests-2-1-2-expected.txt: Added.
  • js/promises-tests/promises-tests-2-1-2.html: Added.
  • js/promises-tests/promises-tests-2-1-3-expected.txt: Added.
  • js/promises-tests/promises-tests-2-1-3.html: Added.
  • js/promises-tests/promises-tests-2-2-1-expected.txt: Added.
  • js/promises-tests/promises-tests-2-2-1.html: Added.
  • js/promises-tests/promises-tests-2-2-2-expected.txt: Added.
  • js/promises-tests/promises-tests-2-2-2.html: Added.
  • js/promises-tests/promises-tests-2-2-3-expected.txt: Added.
  • js/promises-tests/promises-tests-2-2-3.html: Added.
  • js/promises-tests/promises-tests-2-2-4-expected.txt: Added.
  • js/promises-tests/promises-tests-2-2-4.html: Added.
  • js/promises-tests/promises-tests-2-2-5-expected.txt: Added.
  • js/promises-tests/promises-tests-2-2-5.html: Added.
  • js/promises-tests/promises-tests-2-2-6-expected.txt: Added.
  • js/promises-tests/promises-tests-2-2-6.html: Added.
  • js/promises-tests/promises-tests-2-2-7-expected.txt: Added.
  • js/promises-tests/promises-tests-2-2-7.html: Added.
  • js/promises-tests/promises-tests-2-3-1-expected.txt: Added.
  • js/promises-tests/promises-tests-2-3-1.html: Added.
  • js/promises-tests/promises-tests-2-3-2-expected.txt: Added.
  • js/promises-tests/promises-tests-2-3-2.html: Added.
  • js/promises-tests/promises-tests-2-3-3-expected.txt: Added.
  • js/promises-tests/promises-tests-2-3-3.html: Added.
  • js/promises-tests/promises-tests-2-3-4-expected.txt: Added.
  • js/promises-tests/promises-tests-2-3-4.html: Added.
  • js/promises-tests/promises-tests.LICENSE: Added.
  • js/promises-tests/promises-tests.js: Added.

(.):

  • js/promises-tests/promises-tests/.gitignore: Added.
  • js/promises-tests/promises-tests/.jshintrc: Added.
  • js/promises-tests/promises-tests/.npmignore: Added.
  • js/promises-tests/promises-tests/LICENSE.txt: Added.
  • js/promises-tests/promises-tests/README.md: Added.
  • js/promises-tests/promises-tests/lib/cli.js: Added.

(getAdapterFilePath):
(adapterObjectFromFilePath):

  • js/promises-tests/promises-tests/lib/getMochaOpts.js: Added.

(module.exports):

  • js/promises-tests/promises-tests/lib/programmaticRunner.js: Added.

(normalizeAdapter.adapter.resolved):
(normalizeAdapter.adapter.rejected):
(normalizeAdapter):
(.cb):
(.):
(module.exports):
(module.exports.mocha):

  • js/promises-tests/promises-tests/lib/tests/2.1.2.js: Added.

(.):

  • js/promises-tests/promises-tests/lib/tests/2.1.3.js: Added.

(.):

  • js/promises-tests/promises-tests/lib/tests/2.2.1.js: Added.
  • js/promises-tests/promises-tests/lib/tests/2.2.2.js: Added.

(.):

  • js/promises-tests/promises-tests/lib/tests/2.2.3.js: Added.

(.):

  • js/promises-tests/promises-tests/lib/tests/2.2.4.js: Added.

(.):

  • js/promises-tests/promises-tests/lib/tests/2.2.5.js: Added.
  • js/promises-tests/promises-tests/lib/tests/2.2.6.js: Added.

(.return.if):
(callbackAggregator):
(.):

  • js/promises-tests/promises-tests/lib/tests/2.2.7.js: Added.

(.):

  • js/promises-tests/promises-tests/lib/tests/2.3.1.js: Added.

(.):

  • js/promises-tests/promises-tests/lib/tests/2.3.2.js: Added.

(.):
(testPromiseResolution):

  • js/promises-tests/promises-tests/lib/tests/2.3.3.js: Added.

(.):
(testPromiseResolution):
(testCallingResolvePromiseRejectsWith):
(testCallingRejectPromiseRejectsWith):
(describe):

  • js/promises-tests/promises-tests/lib/tests/2.3.4.js: Added.

(.):

  • js/promises-tests/promises-tests/lib/tests/helpers/reasons.js: Added.

(exports.string_appeared_here):
(exports.string_appeared_here.return.then):

  • js/promises-tests/promises-tests/lib/tests/helpers/testThreeCases.js: Added.

(.specify):
(.):
(exports.testFulfilled):
(exports.testRejected):

  • js/promises-tests/promises-tests/lib/tests/helpers/thenables.js: Added.

(exports.fulfilled.string_appeared_here.return.then):
(exports.fulfilled.string_appeared_here):
(exports.fulfilled.string_appeared_here.):
(exports.fulfilled.get string_appeared_here.return.then):
(exports.fulfilled.get string_appeared_here):
(exports.rejected.string_appeared_here.return.then):
(exports.rejected.string_appeared_here):
(exports.rejected.string_appeared_here.):
(exports.rejected.get string_appeared_here.return.then):
(exports.rejected.get string_appeared_here):

  • js/promises-tests/promises-tests/package.json: Added.
  • js/promises-tests/promises-tests/test/getMochaOptsTest.js: Added.
  • js/promises-tests/resources/adapter.js: Added.

(LayoutTestsReporter.runner):
(window.adapter.resolved):
(window.adapter.rejected):
(window.adapter.deferred):

  • js/promises-tests/resources/mocha.js: Added.

(.):

  • js/promises-tests/sinonjs.LICENSE: Added.
5:04 PM Changeset in webkit [174306] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.11-branch/Source

Versioning.

5:01 PM Changeset in webkit [174305] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.11.12

New tag.

4:48 PM Changeset in webkit [174304] by ap@apple.com
  • 3 edits in trunk/Tools/QueueStatusServer

Bugzilla status bubble displays an exception showing attachment 175738
https://bugs.webkit.org/show_bug.cgi?id=137410

Reviewed by Tim Horton.

  • QueueStatusServer/app.yaml: Update version.
  • QueueStatusServer/handlers/statusbubble.py: (StatusBubble._build_bubble):

Don't fail even if expected status message is missing.

  • QueueStatusServer/model/patchlog.py: (PatchLog): Quick unrelated fix - define

the field in the same way it's defined in QueueStatus table.

4:36 PM Changeset in webkit [174303] by ap@apple.com
  • 1 edit in trunk/Tools/ChangeLog

Bugzilla status bubble displays an exception showing attachment 175738
https://bugs.webkit.org/show_bug.cgi?id=137410

Reviewed by Tim Horton.

  • QueueStatusServer/app.yaml: Update version.
  • QueueStatusServer/handlers/statusbubble.py: (StatusBubble._build_bubble):

Don't fail even if expected status message is missing.

  • QueueStatusServer/model/patchlog.py: (PatchLog): Quick unrelated fix - define

the field in the same way it's defined in QueueStatus table.

4:27 PM Changeset in webkit [174302] by ap@apple.com
  • 3 edits in trunk/Tools

Record latest message in PatchLog for quick access
https://bugs.webkit.org/show_bug.cgi?id=137405

Fixing a typo.

  • QueueStatusServer/app.yaml:
  • QueueStatusServer/handlers/releasepatch.py:
4:22 PM Changeset in webkit [174301] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r174216): CodeBlock::dumpByteCodes crashes on op_push_name_scope
https://bugs.webkit.org/show_bug.cgi?id=137412

Reviewed by Mark Lam.

Added support for the JSNameScope::type opcode parameter in dumpBytecode().

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

4:17 PM Changeset in webkit [174300] by Chris Dumez
  • 63 edits in trunk/Source/WebCore

Use is<>() / downcast<>() for CSSValue subclasses
https://bugs.webkit.org/show_bug.cgi?id=137381

Reviewed by Benjamin Poulain.

Use is<>() / downcast<>() for CSSValue subclasses.

No new tests, no behavior change.

  • css/CSSAspectRatioValue.h:
  • css/CSSBorderImageSliceValue.h:
  • css/CSSCalculationValue.cpp:

(WebCore::CSSCalcExpressionNodeParser::parseValue):

  • css/CSSCalculationValue.h:
  • css/CSSCanvasValue.h:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::getBorderRadiusShorthandValue):
(WebCore::ComputedStyleExtractor::propertyMatches):

  • css/CSSCrossfadeValue.cpp:

(WebCore::subimageKnownToBeOpaque):

  • css/CSSCrossfadeValue.h:
  • css/CSSCursorImageValue.cpp:

(WebCore::CSSCursorImageValue::~CSSCursorImageValue):
(WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
(WebCore::CSSCursorImageValue::cachedImage):
(WebCore::CSSCursorImageValue::cachedOrPendingImage):
(WebCore::CSSCursorImageValue::isSVGCursor):

  • css/CSSCursorImageValue.h:
  • css/CSSFilterImageValue.h:
  • css/CSSFontFaceSrcValue.h:
  • css/CSSFontFeatureValue.h:
  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::addFontFaceRule):

  • css/CSSFontValue.h:
  • css/CSSFunctionValue.h:
  • css/CSSGradientValue.cpp:

(WebCore::CSSGradientValue::image):
(WebCore::CSSGradientValue::gradientWithStylesResolved):

  • css/CSSGradientValue.h:
  • css/CSSGridLineNamesValue.h:
  • css/CSSGridTemplateAreasValue.h:
  • css/CSSImageGeneratorValue.cpp:

(WebCore::CSSImageGeneratorValue::image):
(WebCore::CSSImageGeneratorValue::isFixedSize):
(WebCore::CSSImageGeneratorValue::fixedSize):
(WebCore::CSSImageGeneratorValue::isPending):
(WebCore::CSSImageGeneratorValue::knownToBeOpaque):
(WebCore::CSSImageGeneratorValue::loadSubimages):
(WebCore::CSSImageGeneratorValue::subimageIsPending):
(WebCore::CSSImageGeneratorValue::cachedImageForCSSValue):

  • css/CSSImageGeneratorValue.h:
  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::fillImageSet):

  • css/CSSImageSetValue.h:
  • css/CSSImageValue.h:
  • css/CSSInheritedValue.h:
  • css/CSSInitialValue.h:
  • css/CSSLineBoxContainValue.h:
  • css/CSSParser.cpp:

(WebCore::CSSParser::parseColor):
(WebCore::CSSParser::addFillValue):
(WebCore::CSSParser::addAnimationValue):
(WebCore::CSSParser::parse3ValuesFillPosition):
(WebCore::CSSParser::parseFillPosition):
(WebCore::CSSParser::parseFillRepeat):
(WebCore::gridMissingGridPositionValue):
(WebCore::CSSParser::parseGridTemplateRowsAndAreas):
(WebCore::CSSParser::parseBasicShapeCircle):
(WebCore::CSSParser::parseBasicShapeEllipse):
(WebCore::CSSParser::parseDeprecatedGradient):
(WebCore::CSSParser::parseDeprecatedRadialGradient):
(WebCore::CSSParser::parseRadialGradient):
(WebCore::CSSParser::createFontFaceRule):

  • css/CSSPrimitiveValue.h:
  • css/CSSReflectValue.h:
  • css/CSSShadowValue.h:
  • css/CSSTimingFunctionValue.h:
  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapFillAttachment):
(WebCore::CSSToStyleMap::mapFillClip):
(WebCore::CSSToStyleMap::mapFillComposite):
(WebCore::CSSToStyleMap::mapFillBlendMode):
(WebCore::CSSToStyleMap::mapFillOrigin):
(WebCore::CSSToStyleMap::mapFillRepeatX):
(WebCore::CSSToStyleMap::mapFillRepeatY):
(WebCore::CSSToStyleMap::mapFillSize):
(WebCore::CSSToStyleMap::mapFillXPosition):
(WebCore::CSSToStyleMap::mapFillYPosition):
(WebCore::CSSToStyleMap::mapFillMaskSourceType):
(WebCore::CSSToStyleMap::mapAnimationDelay):
(WebCore::CSSToStyleMap::mapAnimationDirection):
(WebCore::CSSToStyleMap::mapAnimationDuration):
(WebCore::CSSToStyleMap::mapAnimationFillMode):
(WebCore::CSSToStyleMap::mapAnimationIterationCount):
(WebCore::CSSToStyleMap::mapAnimationName):
(WebCore::CSSToStyleMap::mapAnimationPlayState):
(WebCore::CSSToStyleMap::mapAnimationProperty):
(WebCore::CSSToStyleMap::mapAnimationTimingFunction):
(WebCore::CSSToStyleMap::mapNinePieceImage):
(WebCore::CSSToStyleMap::mapNinePieceImageSlice):
(WebCore::CSSToStyleMap::mapNinePieceImageQuad):
(WebCore::CSSToStyleMap::mapNinePieceImageRepeat):

  • css/CSSUnicodeRangeValue.h:
  • css/CSSValue.cpp:

(WebCore::CSSValue::isImplicitInitialValue):
(WebCore::CSSValue::addSubresourceStyleURLs):
(WebCore::CSSValue::hasFailedOrCanceledSubresources):
(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
(WebCore::CSSValue::cloneForCSSOM):

  • css/CSSValue.h:
  • css/CSSValueList.h:

(WebCore::CSSValueListInspector::CSSValueListInspector):

  • css/DeprecatedStyleBuilder.cpp:

(WebCore::ApplyPropertyDefault::applyValue):
(WebCore::ApplyPropertyNumber::applyValue):
(WebCore::ApplyPropertyAuto::applyValue):
(WebCore::ApplyPropertyClip::applyValue):
(WebCore::ApplyPropertyColor::applyValue):
(WebCore::ApplyPropertyLength::applyValue):
(WebCore::ApplyPropertyString::applyValue):
(WebCore::ApplyPropertyBorderRadius::applyValue):
(WebCore::ApplyPropertyFillLayer::applyValue):
(WebCore::ApplyPropertyComputeLength::applyValue):
(WebCore::ApplyPropertyFont::applyValue):
(WebCore::ApplyPropertyFontFamily::applyValue):
(WebCore::ApplyPropertyFontSize::applyValue):
(WebCore::ApplyPropertyFontWeight::applyValue):
(WebCore::ApplyPropertyFontVariantLigatures::applyValue):
(WebCore::ApplyPropertyCounter::applyValue):
(WebCore::ApplyPropertyCursor::applyValue):
(WebCore::ApplyPropertyTextAlign::applyValue):
(WebCore::ApplyPropertyTextDecoration::applyValue):
(WebCore::ApplyPropertyTextDecorationSkip::applyValue):
(WebCore::ApplyPropertyMarqueeIncrement::applyValue):
(WebCore::ApplyPropertyMarqueeRepetition::applyValue):
(WebCore::ApplyPropertyMarqueeSpeed::applyValue):
(WebCore::ApplyPropertyTextUnderlinePosition::applyValue):
(WebCore::ApplyPropertyLineHeight::applyValue):
(WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyValue):
(WebCore::ApplyPropertyWordSpacing::applyValue):
(WebCore::ApplyPropertyPageSize::applyValue):
(WebCore::ApplyPropertyTextEmphasisStyle::applyValue):
(WebCore::ApplyPropertyTextEmphasisPosition::applyValue):
(WebCore::ApplyPropertyResize::applyValue):
(WebCore::ApplyPropertyVerticalAlign::applyValue):
(WebCore::ApplyPropertyAspectRatio::applyValue):
(WebCore::ApplyPropertyZoom::applyValue):
(WebCore::ApplyPropertyDisplay::applyValue):
(WebCore::ApplyPropertyClipPath::applyValue):
(WebCore::ApplyPropertyShape::applyValue):
(WebCore::ApplyPropertyImageResolution::applyValue):
(WebCore::ApplyPropertyTextIndent::applyValue):

  • css/MediaList.cpp:

(WebCore::reportMediaQueryWarningIfNeeded):

  • css/MediaQueryEvaluator.cpp:

(WebCore::compareAspectRatioValue):
(WebCore::numberValue):
(WebCore::orientationMediaFeatureEval):
(WebCore::evalResolution):
(WebCore::device_pixel_ratioMediaFeatureEval):
(WebCore::resolutionMediaFeatureEval):
(WebCore::computeLength):
(WebCore::view_modeMediaFeatureEval):
(WebCore::pointerMediaFeatureEval):

  • css/SVGCSSComputedStyleDeclaration.cpp:

(WebCore::strokeDashArrayToCSSValueList):
(WebCore::ComputedStyleExtractor::svgPropertyValue):

  • css/SVGCSSStyleSelector.cpp:

(WebCore::StyleResolver::applySVGProperty):

  • css/SourceSizeList.cpp:

(WebCore::computeLength):

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getLayeredShorthandValue):

  • css/StyleResolver.cpp:

(WebCore::extractDirectionAndWritingMode):
(WebCore::createGridTrackSize):
(WebCore::createGridTrackList):
(WebCore::createGridPosition):
(WebCore::StyleResolver::parseSnapCoordinate):
(WebCore::StyleResolver::parseSnapPoints):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::styleImage):
(WebCore::StyleResolver::generatedOrPendingFromValue):
(WebCore::StyleResolver::createFilterOperations):

  • css/TransformFunctions.cpp:

(WebCore::transformsForValue):

  • css/ViewportStyleResolver.cpp:

(WebCore::ViewportStyleResolver::getViewportArgumentValue):

  • css/WebKitCSSFilterValue.h:
  • css/WebKitCSSMatrix.cpp:

(WebCore::WebKitCSSMatrix::setMatrixValue):

  • css/WebKitCSSTransformValue.h:

(WebCore::toWebKitCSSTransformValue): Deleted.

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::computedFontSize):

  • editing/EditingStyle.cpp:

(WebCore::identifierForStyleProperty):
(WebCore::HTMLElementEquivalent::valueIsPresentInStyle):
(WebCore::HTMLTextDecorationEquivalent::valueIsPresentInStyle):
(WebCore::cssValueToRGBA):
(WebCore::EditingStyle::extractFontSizeDelta):
(WebCore::EditingStyle::textDirection):
(WebCore::EditingStyle::prepareToApplyAt):
(WebCore::EditingStyle::mergeStyle):
(WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
(WebCore::EditingStyle::legacyFontSize):
(WebCore::EditingStyle::textDirectionForSelection):
(WebCore::StyleChange::extractTextStyles):
(WebCore::diffTextDecorations):
(WebCore::fontWeightIsBold):
(WebCore::isTransparentColorValue):

  • editing/EditorCommand.cpp:

(WebCore::executeToggleStyleInList):

  • editing/cocoa/HTMLConverter.mm:

(stringFromCSSValue):
(HTMLConverterCaches::floatPropertyValueForNode):
(HTMLConverterCaches::colorPropertyValueForNode):

  • editing/markup.cpp:

(WebCore::propertyMissingOrEqualToNone):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::retrieveResourcesForProperties):

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):

  • rendering/RenderTextControl.cpp:

(WebCore::RenderTextControl::adjustInnerTextStyle):

  • rendering/style/StylePendingImage.h:

(WebCore::StylePendingImage::cssImageValue):
(WebCore::StylePendingImage::cssCursorImageValue):
(WebCore::StylePendingImage::cssImageSetValue):

  • svg/SVGColor.h:
  • svg/SVGFontFaceElement.cpp:

(WebCore::SVGFontFaceElement::rebuildFontFace):

  • svg/SVGPaint.h:
4:05 PM Changeset in webkit [174299] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Remove a workaround for a bug that's been fixed
https://bugs.webkit.org/show_bug.cgi?id=137411

Reviewed by Dan Bernstein.

  • mac/rewrite-availability-macros.sh:
3:19 PM Changeset in webkit [174298] by saambarati1@gmail.com
  • 2 edits in trunk/Source/JavaScriptCore

Implement op_profile_type in the 32-bit baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=137181

Reviewed by Michael Saboff.

Generate inline code to write to the TypeProfilerLog inside the 32-bit
baseline JIT instead of unconditionally bailing out to the slow path
for op_profile_type.

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_profile_type):

3:07 PM Changeset in webkit [174297] by mmaxfield@apple.com
  • 8 edits in trunk/Source/WebCore

Clean up interface to Font::expansionOpportunityCount()
https://bugs.webkit.org/show_bug.cgi?id=137355

Reviewed by Dean Jackson.

There are two overloads of Font::expansionOpportunityCount() which perform the same
operation. One overload takes a UChar*, the other takes an LChar*, and they both
take a length. This is the abstraction that StringView was designed to be. Instead
of forcing each caller to take a different overload based on if their data is
8 bit or not, allow the caller to construct a StringView and pass that into
Font::expansionOpportunityCount() instead of a raw pointer/length.

No new tests because there is no behavior change.

  • platform/graphics/Font.cpp:

(WebCore::Font::expansionOpportunityCountInternal): Original two functions,
renamed.
(WebCore::Font::expansionOpportunityCount): Takes a StringView, calls
expansionOpportunityCountInternal().

  • platform/graphics/Font.h: Update signatures.
  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::WidthIterator): Use new signature to
Font::expansionOpportunityCount().

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::ComplexTextController::ComplexTextController): Ditto.

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment): Ditto.

  • rendering/RenderText.cpp:

(WebCore::RenderText::stringView): Accessor to encapsulate character pointer
and length.

  • rendering/RenderText.h: Signature of new accessor.
3:05 PM Changeset in webkit [174296] by Beth Dakin
  • 23 edits
    6 deletes in trunk

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

Build failures on the internal bots. (Requested by dethbakin
on #webkit).

Reverted changeset:

"FTL should sink PutLocals"
https://bugs.webkit.org/show_bug.cgi?id=137168
http://trac.webkit.org/changeset/174275

Patch by Commit Queue <commit-queue@webkit.org> on 2014-10-03

3:03 PM Changeset in webkit [174295] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed build fix for MSVC 2013 SP 3.

The std::array initializer is not fully implemented in SP3 and causes a
build error.

  • platform/graphics/transforms/AffineTransform.cpp: Use old style assignment

initialization for MSVC builds until this bug is fixed.

2:46 PM Changeset in webkit [174294] by oliver@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

tearoff_arguments should always refer to the unmodified arguments register
https://bugs.webkit.org/show_bug.cgi?id=137406

Reviewed by Michael Saboff.

To simplify subsequent work, and remove unnecessary work from
actual execution this patch simply ensures that tear_off_arguments
refers to the actual unmodified arguments register.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitReturn):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_tear_off_arguments):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_tear_off_arguments):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
2:43 PM Changeset in webkit [174293] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Add TypeCasts.h to xcodeproject
https://bugs.webkit.org/show_bug.cgi?id=137403

Reviewed by Benjamin Poulain.

Add TypeCasts.h to xcodeproject.

  • WTF.xcodeproj/project.pbxproj:
2:35 PM Changeset in webkit [174292] by saambarati1@gmail.com
  • 9 edits in trunk/Source

Web Inspector: Move the computation that results in UI strings from JSC to the Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=137295

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Remove unnecessary functions and properties from JSC that are
now being computed inside the Web Inspector.

  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets):

  • inspector/protocol/Runtime.json:
  • runtime/TypeSet.cpp:

(JSC::TypeSet::allPrimitiveTypeNames): Deleted.

  • runtime/TypeSet.h:

Source/WebInspectorUI:

The inspector now computes a set of properties that was previously
computed inside JSC.

This patch also addresses the weird experience of the
type of an expression claiming to be both a Number and
an Integer. This could be a bit confusing because Number
is supposed to represent Double|Integer and the previous
UI implied that Number was equivalent to Double. The new UI only
ever shows either the type of Number or Integer when showing
the type information of an expression. It never shows both Number
and Integer simultaneously to describe a single expression.

  • UserInterface/Models/TypeSet.js:

(WebInspector.TypeSet):
(WebInspector.TypeSet.prototype.isContainedIn):
(WebInspector.TypeSet.prototype.get primitiveTypeNames):

  • UserInterface/Views/TypePropertiesSection.js:

(WebInspector.TypePropertiesSection):
(WebInspector.TypePropertiesSection.prototype.onpopulate):

  • UserInterface/Views/TypeTokenView.js:

(WebInspector.TypeTokenView):
(WebInspector.TypeTokenView.prototype.update):
(WebInspector.TypeTokenView.prototype._shouldShowPopover):
(WebInspector.TypeTokenView.prototype._displayTypeName):

2:35 PM Changeset in webkit [174291] by ap@apple.com
  • 6 edits in trunk/Tools

Record latest message in PatchLog for quick access
https://bugs.webkit.org/show_bug.cgi?id=137405

Reviewed by Ryosuke Niwa.

It's no SQL...

  • QueueStatusServer/handlers/releasepatch.py:
  • QueueStatusServer/handlers/updatestatus.py:
  • QueueStatusServer/loggers/recordpatchevent.py:
  • QueueStatusServer/model/patchlog.py:
2:18 PM Changeset in webkit [174290] by dfarler@apple.com
  • 2 edits in trunk/Tools

-asan-blacklist option also renamed to generic -fsanitize-blacklist
https://bugs.webkit.org/show_bug.cgi?id=137377

Reviewed by Daniel Bates.

  • asan/asan.xcconfig:

-asan-blacklist -> -fsanitize-blacklist

http://llvm.org/viewvc/llvm-project?view=revision&revision=212505

1:47 PM Changeset in webkit [174289] by betravis@adobe.com
  • 2 edits in trunk/LayoutTests

FTL should sink PutLocals
https://bugs.webkit.org/show_bug.cgi?id=137168

Patch by Filip Pizlo <fpizlo@apple.com> on 2014-10-02
Reviewed by Oliver Hunt.

  • js/regress/elidable-new-object-then-call-expected.txt: Added.
  • js/regress/elidable-new-object-then-call.html: Added.
  • js/regress/script-tests/elidable-new-object-then-call.js: Added.

(sumOfArithSeries):
(bar):
(foo):

1:45 PM Changeset in webkit [174288] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

Revert an accidental change introduced by r173318.

Rubber-stamped by Tim Horton.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::suspendPainting):
(WebKit::TiledCoreAnimationDrawingArea::resumePainting):

1:36 PM Changeset in webkit [174287] by timothy_horton@apple.com
  • 4 edits in trunk/Source

WKWebView snapshot of Daring Fireball has the wrong color in the obscured inset
https://bugs.webkit.org/show_bug.cgi?id=137383
<rdar://problem/18535439>

Reviewed by Sam Weinig.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::snapshotAtSize):
Use documentBackgroundColor instead of baseBackgroundColor if backgroundShouldExtendBeyondPage is set.

  • rendering/RenderView.cpp:

(WebCore::RenderView::paintBoxDecorations):
Use documentBackgroundColor instead of baseBackgroundColor if backgroundShouldExtendBeyondPage is set.

1:32 PM Changeset in webkit [174286] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Highlight clicked links in WKPDFView
https://bugs.webkit.org/show_bug.cgi?id=137400

Reviewed by Tim Horton.

Show a _UIHighlightView on top of clicked links for 200 ms before starting the navigation. This matches the behavior of UIWebPDFView.

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView _createHighlightViewWithFrame:]): Created a _UIHighlightView with a color and border radius matching the values used by UIWebPDFView.
(-[WKPDFView annotation:wasTouchedAtPoint:controller:]): Displayed the highlight, then removed it after the navigation began.

1:29 PM Changeset in webkit [174285] by roger_fong@apple.com
  • 2 edits in trunk/Tools

[Windows] Include batch size argument to layout tests on Windows.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(RunWebKitTests.start):
This is a speculative fix for the the inconsistent crashes we are seeing on Windows.
These crashes seem to happen on random tests though generally in a spread out fashion.
It seems possible that the DRT instance is being clobbered somehow after running too many
tests in a row so we will try to mitigate this by just forcing DRT to restart periodically.

1:28 PM Changeset in webkit [174284] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit/ios

REGRESSION (r165896): UIWebView PDFs have a forced black background
https://bugs.webkit.org/show_bug.cgi?id=137387
<rdar://problem/17948411>

Reviewed by David Kilzer.

  • WebView/WebPDFViewPlaceholder.h:
  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder layout]):
Remove an ill-advised attempt to force the PDF background color from WebKit.
The idea was that we would maintain Safari's black background except if there
were no pages in the PDF, in which case we would use white instead to avoid
having an all-black view. However, this broke clients who didn't want a black
background, because we were now forcing it to black. Also, we don't need to
maintain the black color in Safari because it doesn't use WebPDFViewPlaceholder anymore.
This wasn't an important part of the patch, in any case.

1:27 PM Changeset in webkit [174283] by dino@apple.com
  • 5 edits in trunk/Source/WebCore

webkit-appearance: default-button styling does not set the button font color to white
https://bugs.webkit.org/show_bug.cgi?id=137399
rdar://problem/17788616

Reviewed by Dave Hyatt.

When a button is styled with -webkit-appearance: default-button, it should
use the CSSValueActivebuttontext value for its text color when the window
is active, and the normal value when the window is inactive.

Since activating (focus/blur) windows doesn't cause a style recalculation, this
is applied as a paint-time operation. However, the render tree children that
paint the text don't know that they are contained within a RenderButton
and that the button is a default type. So I added an inherited flag, similar
to what we use for visited links, to remember if we're in a button. And then
computeTextPaintStyle chooses the correct value.

We can't test this because our LayoutTest system doesn't have
an active window, and thus the default button renders like a normal
button. This should cause no regressions though. Also, the appearance is
protected behind an SPI (or Setting), so this is not exposed to the Web.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle): Set the flag if we're inside a default button.

  • rendering/TextPaintStyle.cpp:

(WebCore::computeTextPaintStyle): If we're in a default button inside an active window,
use the CSSValueActivebuttontext color.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::RenderStyle): Add and expose the new inherited flag: ._insideDefaultButton.
(WebCore::RenderStyle::changeRequiresRepaint): Ditto.

  • rendering/style/RenderStyle.h: Ditto.
1:26 PM Changeset in webkit [174282] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit/ios

REGRESSION (r173265): UIWebView PDF loading is completely broken
https://bugs.webkit.org/show_bug.cgi?id=137386
<rdar://problem/18524717>

Reviewed by David Kilzer.

  • WebView/WebPDFViewPlaceholder.h:
  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder layout]):
(-[WebPDFViewPlaceholder finishedLoadingWithDataSource:]):
Restore important code that creates the CGDataProvider and sets _didFinishLoad
and calls _doPostLoadOrUnlockTasks after finishing a load, which was haphazardly
removed in the aforementioned revision.

1:20 PM Changeset in webkit [174281] by bshafiei@apple.com
  • 2 edits in branches/safari-600.1.4.11-branch/Source/WebCore

Merged r174277. <rdar://problem/18436044>

1:15 PM Changeset in webkit [174280] by bshafiei@apple.com
  • 4 edits in branches/safari-600.1.4.11-branch/Source/WebCore

Merged r174244. <rdar://problem/18507382>

1:10 PM Changeset in webkit [174279] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[SVG -> OTF Converter] Support non-BMP codepoints
https://bugs.webkit.org/show_bug.cgi?id=137097

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2014-09-28
Reviewed by Darin Adler.

This patch has two pieces:

1) Moves write16(), overwrite32() and overwrite16() inside SVGToOTFFontConverter. This
is so that we don't have to keep passing around references to m_result everywhere. Instead,
put the output vector inside the class as an instance member variable. In addition, rename
write32() and write16() to append32() and append16(), and provide a copy of append32 inside
SVGToOTFFontConverter.

2) Change the "Codepoint" typedef to be a String, and rename it to Codepoints. This is so that
we can implement ligatures later on. Update all the places that use this variable to work with
a String of multiple codepoints.

This patch updates the CMAP table to use format 12 instead of format 4. It currently only maps
single codepoints to glyph IDs and skips all multi-codepoint glyphs. We will implement
ligatures in another patch.

Test: svg/custom/glyph-selection-non-bmp.svg

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::append32): Append a result to a given vector. This is for the path transcoder.
(WebCore::SVGToOTFFontConverter::releaseResult): WTF::move()'s the result.
(WebCore::SVGToOTFFontConverter::GlyphData::GlyphData): Update to take Codepoints instead of Codepoint.
(WebCore::SVGToOTFFontConverter::append32): Piece 1 above.
(WebCore::SVGToOTFFontConverter::append16): Ditto.
(WebCore::SVGToOTFFontConverter::append4ByteCode): Convenience function.
(WebCore::SVGToOTFFontConverter::overwrite32): Piece 1 above.
(WebCore::SVGToOTFFontConverter::overwrite16): Ditto.
(WebCore::SVGToOTFFontConverter::appendCMAPTable): Update to format 12.
(WebCore::SVGToOTFFontConverter::appendHEADTable): Passing in a result vector is no longer necessary.
(WebCore::SVGToOTFFontConverter::appendHHEATable): Ditto.
(WebCore::SVGToOTFFontConverter::appendHMTXTable): Ditto.
(WebCore::SVGToOTFFontConverter::appendMAXPTable): Ditto.
(WebCore::SVGToOTFFontConverter::appendNAMETable): Ditto.
(WebCore::SVGToOTFFontConverter::appendOS2Table): Ditto.
(WebCore::SVGToOTFFontConverter::appendPOSTTable): Ditto.
(WebCore::isValidStringForCFF): Ditto.
(WebCore::SVGToOTFFontConverter::appendCFFValidString): Ditto.
(WebCore::SVGToOTFFontConverter::appendCFFTable): Ditto.
(WebCore::SVGToOTFFontConverter::appendVORGTable): Ditto.
(WebCore::SVGToOTFFontConverter::appendVHEATable): Ditto.
(WebCore::SVGToOTFFontConverter::appendVMTXTable): Ditto.
(WebCore::SVGToOTFFontConverter::addCodepointRanges): Update for Codepoints.
(WebCore::SVGToOTFFontConverter::addCodepoints): Ditto.
(WebCore::SVGToOTFFontConverter::addGlyphNames): Ditto.
(WebCore::SVGToOTFFontConverter::appendKERNSubtable): Ditto.
(WebCore::SVGToOTFFontConverter::appendKERNTable): Ditto.
(WebCore::writeCFFEncodedNumber): Passing in a result vector is no longer necessary.
(WebCore::SVGToOTFFontConverter::appendGlyphData): Update for Codepoints.
(WebCore::SVGToOTFFontConverter::processGlyphElement): Update for Codepoints.
(WebCore::SVGToOTFFontConverter::compareCodepointsLexicographically): Comparing Codepoints
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter): Update for Codepoints.
(WebCore::SVGToOTFFontConverter::calculateChecksum): Passing in a result vector is no longer necessary.
(WebCore::SVGToOTFFontConverter::appendTable): Ditto.
(WebCore::SVGToOTFFontConverter::convertSVGToOTFFont): Ditto.
(WebCore::convertSVGToOTFFont): Move out of the result vector.
(WebCore::write32): Deleted.
(WebCore::write16): Deleted.
(WebCore::overwrite32): Deleted.
(WebCore::appendCFFValidString): Deleted.
(WebCore::transcodeGlyphPaths): Deleted.
(WebCore::calculateChecksum): Deleted.

1:08 PM Changeset in webkit [174278] by Beth Dakin
  • 16 edits
    2 deletes in trunk/Source/WebCore

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

crashes on the bots (Requested by dethbakin on #webkit).

Reverted changeset:

"EventSender dispatches should be per-Document"
https://bugs.webkit.org/show_bug.cgi?id=136051
http://trac.webkit.org/changeset/174270

Patch by Commit Queue <commit-queue@webkit.org> on 2014-10-03

1:07 PM Changeset in webkit [174277] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Back-to-back fullscreen videos result in incorrectly sized videos
https://bugs.webkit.org/show_bug.cgi?id=137380

Reviewed by Eric Carlson.

During a normal workflow, a <video> element will create an AVPlayerLayer, then it will get a
fullscreen (hosted) parent layer, then it will be told an explicit fullscreen size. But when
a <video> element creates an AVPlayerLayer after the <video> element is already in
fullscreen mode, it sets that AVPlayerLayer's frame using the size of the hosted parent
layer, rather than the explicit fullscreen size. Instead, use the (already set) explicit
fullscreen size after creating the AVPlayerLayer.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::ensureAVPlayerLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformLayer):

12:58 PM Changeset in webkit [174276] by roger_fong@apple.com
  • 2 edits in trunk/Tools

[Windows] Settle for 2 chid processes running NRWT on Windows.

  • Scripts/webkitpy/port/win.py:

(WinPort.default_child_processes): 3 child processes reintroduces the sporadic crashing, will settle for 2.

12:38 PM Changeset in webkit [174275] by fpizlo@apple.com
  • 23 edits
    6 adds in trunk

FTL should sink PutLocals
https://bugs.webkit.org/show_bug.cgi?id=137168

Reviewed by Oliver Hunt.
Source/JavaScriptCore:


We've known for a while that our PutLocal situation was sub-optimal. We emit them anytime we
"pass" arguments to an inlined function call, because we need to enable the runtime to grab
those arguments when doing foo.arguments where foo is inlined: our engine doesn't deoptimize
in that case but rather just relies on the arguments being flushed (i.e. a copy of their
values is spilled) at a well-known place in a well-known format.

The PutLocals incur two costs: (1) they are store instructions and stores ain't free, and (2)
they look like escaping sites and so they inhibit object allocation sinking.

But in most cases, the PutLocals are unnecessary because the inlined code never performs any
side effect that could transitively lead to function.arguments. Even if the inlined code
could do such a side effect, it may be on a rare path so there is no need to penalize the
entire function.

This patch implements one solution to the PutLocal problem: it aggressively sinks PutLocals
to the latest possible point. This is even more aggressive than the object allocation
sinking. That sinking algorithm avoids creating situations where an object could be
materialized more than one along any path. PutLocal sinking, on the other hand, doesn't avoid
this at all - both to make the phase cheaper and simpler and to make it more aggressive.
Every PutLocal is sunk no matter what.

The upside of this patch is that it eliminates many PutLocals: many of them are sunk "past
their death", thus eliminating them completely. Others are sunk to rare paths. This enables a
lot of object allocation sinking and it removes a lot of pointless store instructions.

It also has downsites. Sinking PutLocals increases register pressure because it increases the
live ranges of things like inlined arguments.

This patch is a net performance win in its current form: 1% SunSpider regression, 2% OctaneV2
progression, 0.6% Kraken regression, 1% AsmBench progression, and 0.5% CompressionBench
regression. The biggest win is on Octane/raytrace, which improves by 27%.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/CodeBlock.h:
  • bytecode/Operands.h:

(JSC::Operands::dump): Deleted.

  • bytecode/OperandsInlines.h:

(JSC::Traits>::dump):

  • bytecode/VirtualRegister.h:

(JSC::VirtualRegister::isHeader):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):

  • dfg/DFGClobberSet.h:

(JSC::DFG::ClobberSetAdd::operator()):
(JSC::DFG::ClobberSetOverlaps::operator()):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):
(JSC::DFG::NoOpClobberize::operator()):
(JSC::DFG::CheckClobberize::operator()):
(JSC::DFG::AbstractHeapOverlaps::operator()):
(JSC::DFG::ReadMethodClobberize::operator()):
(JSC::DFG::WriteMethodClobberize::operator()):
(JSC::DFG::DefMethodClobberize::operator()):

  • dfg/DFGFlushFormat.h:

(JSC::DFG::merge):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::Graph):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::capturedVarsFor):

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::determineMaterializationPoints):
(JSC::DFG::ObjectAllocationSinkingPhase::placeMaterializationPoints):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

  • dfg/DFGPreciseLocalClobberize.h: Added.

(JSC::DFG::PreciseLocalClobberizeAdaptor::PreciseLocalClobberizeAdaptor):
(JSC::DFG::PreciseLocalClobberizeAdaptor::read):
(JSC::DFG::PreciseLocalClobberizeAdaptor::write):
(JSC::DFG::PreciseLocalClobberizeAdaptor::def):
(JSC::DFG::PreciseLocalClobberizeAdaptor::callIfAppropriate):
(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):
(JSC::DFG::PreciseLocalClobberizeAdaptor::writeTop):
(JSC::DFG::forEachLocalReadByUnwind):
(JSC::DFG::preciseLocalClobberize):

  • dfg/DFGPutLocalSinkingPhase.cpp: Added.

(JSC::DFG::performPutLocalSinking):

  • dfg/DFGPutLocalSinkingPhase.h: Added.
  • dfg/DFGSSACalculator.h:

(JSC::DFG::SSACalculator::computePhis):

  • dfg/DFGValidate.cpp:

Source/WTF:


Make the set bits of a BitVector iterable.

  • wtf/BitVector.h:

(WTF::BitVector::SetBitsIterable::SetBitsIterable):
(WTF::BitVector::SetBitsIterable::iterator::iterator):
(WTF::BitVector::SetBitsIterable::iterator::operator*):
(WTF::BitVector::SetBitsIterable::iterator::operator++):
(WTF::BitVector::SetBitsIterable::iterator::operator==):
(WTF::BitVector::SetBitsIterable::iterator::operator!=):
(WTF::BitVector::SetBitsIterable::begin):
(WTF::BitVector::SetBitsIterable::end):
(WTF::BitVector::setBits):

LayoutTests:

  • js/regress/elidable-new-object-then-call-expected.txt: Added.
  • js/regress/elidable-new-object-then-call.html: Added.
  • js/regress/script-tests/elidable-new-object-then-call.js: Added.

(sumOfArithSeries):
(bar):
(foo):

11:38 AM Changeset in webkit [174274] by commit-queue@webkit.org
  • 2 edits
    3 adds
    1 delete in trunk/Tools

[GTK] Bump up and patch dependencies to allow building for aarch64
https://bugs.webkit.org/show_bug.cgi?id=137147

Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-10-03
Reviewed by Martin Robinson.

The currently used versions of pixman, libffi, librsvg, glib,
glib-networking, fontconfig, libxml2, gst-plugins-base fail to configure
and/or build for aarch64, so they are bumped up and patched where
necessary. Wherever possible, the same versions and patches were used as
for the EFL port bump-up
(https://bugs.webkit.org/show_bug.cgi?id=135885).

After the bump-up, a hitherto hidden bug in gst-plugins-good caused a
regression by crashing http/tests/media/video-redirect.html . A patch
already in upstream fixes that bug.

This change does not touch xserver, which also needs bumping up, but
will be dealt with later.

  • gtk/jhbuild.modules:

Specified versions and patches necessary to correctly build for aarch64.

  • gtk/patches/gst-events-arent-gstobjects.patch:

Added. Patches gst-plugins-good to fix a bug in .mov file demuxing.

  • gtk/patches/gst-prevent-neon-check-in-configure-from-passing-under-aarch64.patch:

Added. Patches gst-plugins-base to configure correctly for aarch64.

  • gtk/patches/librsvg-2.36.1-bump-up-config.guess-to-support-aarch64.patch:

Added. Bumps up config.guess and config.sub in librsvg to recognize
aarch64.

  • gtk/patches/libxml2-2.9.0-dtd.patch:

Removed. Not necessary for libxml2 v2.9.1 anymore.

11:35 AM Changeset in webkit [174273] by betravis@adobe.com
  • 4 edits
    2 adds in trunk

REGRESSION (r173531): Use after free in WebCore::RenderStyle::fontMetrics /
WebCore::CSSPrimitiveValue::computeLengthDouble
https://bugs.webkit.org/show_bug.cgi?id=136864

Reviewed by Andreas Kling.

Source/WebCore:

FontLoader previously called updateDocumentStyleIfNeeded,
which would reset styles currently in use as part of
the tabIndex calculation. The FontLoader should instead
wait for pending stylesheets to load.

Tests: fast/css/fontloader-tab-index.html

  • css/FontLoader.cpp:

(WebCore::FontLoader::notifyWhenFontsReady): Do not immediately
call loadingDone().
(WebCore::FontLoader::loadingDone): Wait for stylesheets to
finish loading rather than updating document styles.

  • css/FontLoader.h:

(WebCore::FontLoader::loading): Include JS font loads when testing
for the loading state.

LayoutTests:

Test that getting the tab index on a body element with
font-relative measurements to a local @font-face do not
cause a crash.

  • fast/css/fontloader-tab-index-expected.html: Added.
  • fast/css/fontloader-tab-index.html: Added.
10:55 AM Changeset in webkit [174272] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix.

Fixing the Windows build after r174269.

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2014-10-03

  • platform/graphics/win/UniscribeController.cpp:

(WebCore::UniscribeController::shapeAndPlaceItem):

10:43 AM Changeset in webkit [174271] by mmaxfield@apple.com
  • 3 edits in trunk

Support modern for loops over StringViews
https://bugs.webkit.org/show_bug.cgi?id=137165

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2014-10-03
Reviewed by Darin Adler.

This patch adds two functions, codePoints() and codeUnits(), on StringView.
These two functions return small objects which have begin() and end() functions,
which means it can be used by the modern for loop style. This small class also
has an inner iterator class which can be incremented, dereferenced, and
compared.

Using these new objects looks like this:
for (UChar codeunit : stringView.codeUnits()) { } and
for (UChar32 codepoint : stringView.codePoints()) { }.

  • wtf/text/StringView.h:

(WTF::StringView::codepoints):
(WTF::StringView::codeunits):
(WTF::StringViewCodePointIterator::StringViewCodePointIterator):
(WTF::StringViewCodePointIterator::Iterator::Iterator):
(WTF::StringViewCodePointIterator::Iterator::operator*):
(WTF::StringViewCodePointIterator::Iterator::operator!=):
(WTF::StringViewCodeUnitIterator::StringViewCodeUnitIterator):
(WTF::StringViewCodeUnitIterator::Iterator::Iterator):
(WTF::StringViewCodeUnitIterator::Iterator::operator*):
(WTF::StringViewCodeUnitIterator::Iterator::operator!=):

10:15 AM Changeset in webkit [174270] by Brian Burg
  • 16 edits
    2 adds in trunk/Source/WebCore

EventSender dispatches should be per-Document
https://bugs.webkit.org/show_bug.cgi?id=136051

Reviewed by Andreas Kling.

EventSender uses a Timer to asynchronously dispatch the same event to multiple
elements of the same type on a future run loop. However, we previously dispatched events
to elements from any Document rather than the one that requested the event send.

This patch changes EventSender to be associated with a single Document. EventSenders
for each Document are lazily allocated. Further per-Document or global optimizations
are possible.

This change also lays the groundwork for making EventSender-related DOM events
deterministic during web replay, tracked at <https://webkit.org/b/137090>.

No new tests, covered by fast/text/svg-font-trigger-load-event.html.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/DOMAllInOne.cpp:
  • dom/Document.cpp:

(WebCore::Document::Document):
(WebCore::Document::implicitClose):
Dispatch pending events for this document only. Rename local variable f to frame.

  • dom/Document.h:

(WebCore::Document::sharedEventSenders):

  • dom/EventSender.h:

(WebCore::EventSender::EventSender):
(WebCore::EventSender::hasPendingEvents):
(WebCore::EventSender<T>::dispatchEventSoon):
(WebCore::EventSender<T>::cancelEvent):
(WebCore::EventSender<T>::dispatchPendingEvents):
(WebCore::EventSender<T>::EventSender): Deleted. The type argument was not necessary.

  • dom/SharedEventSenders.cpp: Added. Lazily creates event senders as they are requested.

(WebCore::SharedEventSenders::linkLoadEventSender):
(WebCore::SharedEventSenders::styleLoadEventSender):
(WebCore::SharedEventSenders::imageBeforeloadEventSender):
(WebCore::SharedEventSenders::imageLoadEventSender):
(WebCore::SharedEventSenders::imageErrorEventSender):

  • dom/SharedEventSenders.h: Added.

(WebCore::SharedEventSenders::SharedEventSenders):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::~HTMLLinkElement):
(WebCore::HTMLLinkElement::dispatchPendingEvent):
(WebCore::HTMLLinkElement::notifyLoadedSheetAndAllCriticalSubresources):
(WebCore::linkLoadEventSender): Deleted.
(WebCore::HTMLLinkElement::dispatchPendingLoadEvents): Deleted.

  • html/HTMLLinkElement.h:
  • html/HTMLStyleElement.cpp:

(WebCore::HTMLStyleElement::~HTMLStyleElement):
(WebCore::HTMLStyleElement::dispatchPendingEvent):
(WebCore::HTMLStyleElement::notifyLoadedSheetAndAllCriticalSubresources):
(WebCore::styleLoadEventSender): Deleted.
(WebCore::HTMLStyleElement::dispatchPendingLoadEvents): Deleted.

  • html/HTMLStyleElement.h:
  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::beforeLoadEventSender):
(WebCore::ImageLoader::loadEventSender):
(WebCore::ImageLoader::errorEventSender):
(WebCore::ImageLoader::dispatchPendingEvent):
(WebCore::beforeLoadEventSender): Deleted.
(WebCore::loadEventSender): Deleted.
(WebCore::errorEventSender): Deleted.
(WebCore::ImageLoader::dispatchPendingBeforeLoadEvents): Deleted.
(WebCore::ImageLoader::dispatchPendingLoadEvents): Deleted.
(WebCore::ImageLoader::dispatchPendingErrorEvents): Deleted.

  • loader/ImageLoader.h:
  • xml/parser/XMLDocumentParser.cpp:

(WebCore::XMLDocumentParser::append): Remove an early call to the EventSender for image
beforeload events. This was a performance optimization, but is no longer safe since the
document (and thus the event sender) may not be available in a synchronous document write.

9:57 AM Changeset in webkit [174269] by mmaxfield@apple.com
  • 9 edits in trunk/Source/WebCore

TextRun::length() should return an unsigned
https://bugs.webkit.org/show_bug.cgi?id=137354

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2014-10-03
Reviewed by Antti Koivisto.

Currently, the m_len instance variable that backs the TextRun::length() function is
an unsigned, but the length() function implicitly casts that to an int when
returning it. This patch makes the function return an unsigned, and makes the
do any casting if necessary.

No new tests because there is no behavior change.

  • platform/graphics/Font.cpp:

(WebCore::Font::drawText): Cast result to int.
(WebCore::Font::drawEmphasisMarks): Ditto.
(WebCore::Font::adjustSelectionRectForText): Ditto.
(WebCore::computeUnderlineType): Update internal type to be unsigned.

  • platform/graphics/GlyphBuffer.h:

(WebCore::GlyphBuffer::add): Update sentinel value to be unsigned.
(WebCore::GlyphBuffer::saveOffsetsInString): Ditto.

  • platform/graphics/GraphicsContext.cpp: Update internal type to be unsigned.
  • platform/graphics/TextRun.h:

(WebCore::TextRun::length): Update return type.
(WebCore::TextRun::charactersLength): Ditto.

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::advanceInternal): Cast result to int.

  • rendering/svg/SVGTextMetricsBuilder.cpp:

(WebCore::SVGTextMetricsBuilder::currentCharacterStartsSurrogatePair): Remove
unnecessary casts.
(WebCore::SVGTextMetricsBuilder::advance): Ditto.

  • svg/SVGFontData.cpp:

(WebCore::SVGFontData::applySVGGlyphSelection): Cast result to int.

9:51 AM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
9:47 AM Changeset in webkit [174268] by weinig@apple.com
  • 8 edits
    1 delete in trunk

Remove RefPtrHashMap
https://bugs.webkit.org/show_bug.cgi?id=137200

Reviewed by Darin Adler.

Source/WTF:

HashMap now has all the features of the RefPtr specialization of HashMap
(which lived in RefPtrHashMap.h) and is in fact more efficient when moving
items into it. For instance:

For HashMap<RefPtr<Foo>, Bar> map:

RefPtr<Foo> foo = ...;
map.add(WTF::move(foo), Bar());

will now not cause a ref() / deref(), but will successfully move the item in
without churn. The same is true if foo.release() was used.

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.vcxproj/WTF.vcxproj.filters:
  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:

Remove references to RefPtrHashMap.h.

  • wtf/RefPtrHashMap.h: Removed.
  • wtf/HashMap.h:

Remove #include of RefPtrHashMap.h and add inlineGet to match the interface
exposed by the RefPtrHashMap specialization.

Tools:

  • TestWebKitAPI/Tests/WTF/HashMap.cpp:

(TestWebKitAPI::TEST):
Add tests for using a HashMap with RefPtr keys, focusing on ensuring that
a minimum of refcount churn occurs.

9:43 AM Changeset in webkit [174267] by clopez@igalia.com
  • 35 edits
    1 add in trunk/LayoutTests

[GTK] Unreviewed GTK gardening.

  • platform/gtk/TestExpectations: Update test name for bug 136673 after r173418.
  • platform/gtk/css1/box_properties/clear_float-expected.txt: Rebaseline after r174233.
  • platform/gtk/css1/box_properties/float_on_text_elements-expected.txt: Rebaseline after r174233.
  • platform/gtk/css2.1/t0905-c5525-fltcont-00-d-g-expected.txt: Rebaseline after r174233.
  • platform/gtk/css2.1/t0905-c5525-fltwidth-00-c-g-expected.txt: Rebaseline after r174233.
  • platform/gtk/css2.1/t1602-c546-txt-align-00-b-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/multicol/float-avoidance-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/multicol/overflow-across-columns-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/multicol/overflow-across-columns-percent-height-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/multicol/overflow-unsplittable-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/multicol/positive-leading-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/multicol/vertical-lr/float-avoidance-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/multicol/vertical-rl/float-avoidance-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/regions/multiple-directionality-changes-in-variable-width-regions-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/regions/repaint/line-flow-with-floats-in-regions-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/repaint/line-flow-with-floats-1-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/repaint/line-flow-with-floats-10-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/repaint/line-flow-with-floats-2-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/repaint/line-flow-with-floats-3-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/repaint/line-flow-with-floats-4-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/repaint/line-flow-with-floats-5-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/repaint/line-flow-with-floats-6-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/repaint/line-flow-with-floats-7-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/repaint/line-flow-with-floats-8-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/repaint/line-flow-with-floats-9-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/text/justified-selection-at-edge-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/text/justify-ideograph-leading-expansion-expected.txt: Rebaseline after r174233.
  • platform/gtk/fast/text/justify-nbsp-expected.txt: Added. Rebaseline after r174233.
  • platform/gtk/fast/text/trailing-white-space-2-expected.txt: Rebaseline after r174233.
  • platform/gtk/tables/mozilla/marvin/x_tbody_align_justify-expected.txt: Rebaseline after r174233.
  • platform/gtk/tables/mozilla/marvin/x_td_align_justify-expected.txt: Rebaseline after r174233.
  • platform/gtk/tables/mozilla/marvin/x_tfoot_align_justify-expected.txt: Rebaseline after r174233.
  • platform/gtk/tables/mozilla/marvin/x_th_align_justify-expected.txt: Rebaseline after r174233.
  • platform/gtk/tables/mozilla/marvin/x_thead_align_justify-expected.txt: Rebaseline after r174233.
  • platform/gtk/tables/mozilla/marvin/x_tr_align_justify-expected.txt: Rebaseline after r174233.
8:03 AM Changeset in webkit [174266] by evab.u-szeged@partner.samsung.com
  • 6 edits in trunk/Tools

Remove workarounds for versions of Python before 2.7
https://bugs.webkit.org/show_bug.cgi?id=137338

Reviewed by Csaba Osztrogonác.

  • Scripts/webkitpy/common/system/autoinstall.py:

(AutoInstaller._extract_targz):
(AutoInstaller._unzip):
(AutoInstaller): Deleted.
(AutoInstaller._extract_all): Deleted.

  • Scripts/webkitpy/common/webkitunittest.py:

(TestCase.setUp): Deleted.

  • Scripts/webkitpy/layout_tests/models/test_configuration.py:

(TestConfigurationConverter.collapse_macros):
(TestConfigurationConverter.to_specifiers_list.try_collapsing):
(TestConfigurationConverter.to_specifiers_list.try_abbreviating):
(TestConfigurationConverter):
(TestConfigurationConverter.combinations): Deleted.

  • Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:
  • Scripts/webkitpy/port/base.py:
6:34 AM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
5:26 AM Changeset in webkit [174265] by evab.u-szeged@partner.samsung.com
  • 8 edits in trunk/Tools

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

It broke run-webkit-tests (Requested by ebalazsfalvi on
#webkit).

Reverted changeset:

"Remove workarounds for versions of Python before 2.7"
https://bugs.webkit.org/show_bug.cgi?id=137338
http://trac.webkit.org/changeset/174264

Patch by Commit Queue <commit-queue@webkit.org> on 2014-10-03

3:14 AM Changeset in webkit [174264] by evab.u-szeged@partner.samsung.com
  • 8 edits in trunk/Tools

Remove workarounds for versions of Python before 2.7
https://bugs.webkit.org/show_bug.cgi?id=137338

Reviewed by Csaba Osztrogonác.

  • Scripts/webkitpy/common/system/autoinstall.py:

(AutoInstaller._extract_targz):
(AutoInstaller._unzip):
(AutoInstaller): Deleted.
(AutoInstaller._extract_all): Deleted.

  • Scripts/webkitpy/common/webkitunittest.py:

(TestCase.setUp): Deleted.

  • Scripts/webkitpy/layout_tests/models/test_configuration.py:

(TestConfigurationConverter.collapse_macros):
(TestConfigurationConverter.to_specifiers_list.try_collapsing):
(TestConfigurationConverter.to_specifiers_list.try_abbreviating):
(TestConfigurationConverter):
(TestConfigurationConverter.combinations): Deleted.

  • Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:
  • Scripts/webkitpy/port/base.py:
  • Scripts/webkitpy/port/driver.py:

(ContentBlock.init):

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess._reset):

3:13 AM Changeset in webkit [174263] by evab.u-szeged@partner.samsung.com
  • 4 edits in trunk/Tools

Remove autoinstaller workaround for python 2.6
https://bugs.webkit.org/show_bug.cgi?id=137343

Reviewed by Daniel Bates.

Reverting <http://trac.webkit.org/changeset/124928>, neither Python
2.6, nor Snow Leopard is supported anymore, so the workaround is not
needed anymore.

  • Scripts/webkitpy/common/system/autoinstall.py:

(AutoInstaller.install):

  • Scripts/webkitpy/test/main.py:

(Tester._run_tests):

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._install_mechanize):
(AutoinstallImportHook._install_pep8):
(AutoinstallImportHook._install_pylint):
(AutoinstallImportHook._install_buildbot):
(AutoinstallImportHook._install_coverage):
(AutoinstallImportHook._install_eliza):
(AutoinstallImportHook._install_irc):
(AutoinstallImportHook._install):
(autoinstall_everything):

2:25 AM Changeset in webkit [174262] by Csaba Osztrogonác
  • 6 edits in trunk/Source/WebKit2

[GTK] URTBF after r174231.

  • WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:

(webkit_web_page_get_dom_document):

  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::didInstallPageOverlay): Deleted.
(WebKit::DrawingAreaImpl::didUninstallPageOverlay): Deleted.
(WebKit::DrawingAreaImpl::setPageOverlayNeedsDisplay): Deleted.
(WebKit::DrawingAreaImpl::setPageOverlayOpacity): Deleted.

  • WebProcess/WebPage/DrawingAreaImpl.h:
  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::createPageOverlayLayer):
(WebKit::LayerTreeHostGtk::destroyPageOverlayLayer):
(WebKit::LayerTreeHostGtk::didInstallPageOverlay): Deleted.
(WebKit::LayerTreeHostGtk::didUninstallPageOverlay): Deleted.
(WebKit::LayerTreeHostGtk::setPageOverlayNeedsDisplay): Deleted.

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
1:00 AM Changeset in webkit [174261] by gyuyoung.kim@samsung.com
  • 8 edits in trunk/Source

[EFL] Fix build break since r174231 and r174256
https://bugs.webkit.org/show_bug.cgi?id=137384

Unreviewed, EFL build fix.

r174231 and r174256 didn't consider EFL port and CoordinatedGraphics area.

Source/WebCore:

  • css/WebKitCSSViewportRule.cpp:

(WebCore::WebKitCSSViewportRule::WebKitCSSViewportRule):

  • css/WebKitCSSViewportRule.h:

Source/WebKit2:

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:

(WebKit::CoordinatedDrawingArea::mainFrameContentSizeChanged):

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::setRootCompositingLayer):
(WebKit::CoordinatedLayerTreeHost::didFlushRootLayer):
(WebKit::CoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):

  • WebProcess/WebPage/TapHighlightController.cpp:

(WebKit::TapHighlightController::highlight):
(WebKit::TapHighlightController::hideHighlight):

  • WebProcess/WebPage/TapHighlightController.h: Add WebCore:: namespace prefix to PageOverlay argument type.
12:53 AM Changeset in webkit [174260] by saambarati1@gmail.com
  • 2 edits in trunk/Source/JavaScriptCore

Change how 32-bit JSValues check if they are a Boolean

Rubber stamped by Filip Pizlo.

32-bit JSValue::isBoolean can simply check if its tag corresponds
to the boolean tag instead of checking if it's either true or false.

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::isBoolean):

12:13 AM Changeset in webkit [174259] by Yusuke Suzuki
  • 13 edits
    16 adds in trunk

CSS Selectors Level 4: Add parsing for :matches
https://bugs.webkit.org/show_bug.cgi?id=137348

Reviewed by Benjamin Poulain.

Source/WebCore:

Add initial parsing functionality of :matches pseudo class in Selectors Level 4.
It accepts selector list as a parameter. It can contain pseudo elements.
And now at the parsing phase, multiple pseudo elements are allowed.
Currently :not doesn't accept any functional pseudo classes, :not(:matches(...)) is rejected.
And currently, :matches(:visited, :link) is allowed in the parsing phase.

  • css/CSSGrammar.y.in:
  • css/CSSParser.cpp:

(WebCore::CSSParser::detectFunctionTypeToken):

  • css/CSSSelector.cpp:

(WebCore::appendSelectorList):
(WebCore::CSSSelector::selectorText):

  • css/CSSSelector.h:
  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne):

  • css/SelectorPseudoClassAndCompatibilityElementMap.in:
  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoClassType):

LayoutTests:

  • fast/css/css-selector-text-expected.txt:
  • fast/css/css-selector-text.html:
  • fast/css/css-set-selector-text-expected.txt:
  • fast/css/css-set-selector-text.html:

Cover CSSOM tests; canonicalizing :matches text representation.

  • fast/css/parsing-css-matches-1-expected.txt: Added.
  • fast/css/parsing-css-matches-1.html: Added.
  • fast/css/parsing-css-matches-2-expected.txt: Added.
  • fast/css/parsing-css-matches-2.html: Added.
  • fast/css/parsing-css-matches-3-expected.txt: Added.
  • fast/css/parsing-css-matches-3.html: Added.
  • fast/css/parsing-css-matches-4-expected.txt: Added.
  • fast/css/parsing-css-matches-4.html: Added.
  • fast/css/parsing-css-matches-5-expected.txt: Added.
  • fast/css/parsing-css-matches-5.html: Added.
  • fast/css/parsing-css-matches-6-expected.txt: Added.
  • fast/css/parsing-css-matches-6.html: Added.

Valid :matches are tested in the above tests. Selector lists with 1, 2, 3 elements are tested.

  • fast/css/parsing-css-matches-7-expected.txt: Added.
  • fast/css/parsing-css-matches-7.html: Added.
  • fast/css/parsing-css-matches-8-expected.txt: Added.
  • fast/css/parsing-css-matches-8.html: Added.

Invalid :matches are tested in the above tests. :matches() etc. are tested.

Oct 2, 2014:

11:15 PM Changeset in webkit [174258] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.2/Source/WebCore

Merged r174252. <rdar://problem/18531395>

10:39 PM Changeset in webkit [174257] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

URTBF after r174231 to fix non Apple builds.

  • WebProcess/WebPage/WebPage.h:
9:38 PM Changeset in webkit [174256] by akling@apple.com
  • 29 edits in trunk/Source/WebCore

CSSOM rule wrappers always have a corresponding internal style object.
<https://webkit.org/b/137379>

Make the CSSOM rule wrapper classes use references & Ref instead of
raw pointers and RefPtr for pointing to the internal style rule.

Also changed the signature of reattach() to take a StyleRuleBase&
since it's never called with a null pointer.

Finally marked the rule classes final.

Reviewed by Geoffrey Garen.

  • css/CSSCharsetRule.h:
  • css/CSSFontFaceRule.cpp:

(WebCore::CSSFontFaceRule::CSSFontFaceRule):
(WebCore::CSSFontFaceRule::reattach):

  • css/CSSFontFaceRule.h:

(WebCore::CSSFontFaceRule::create): Deleted.

  • css/CSSGroupingRule.cpp:

(WebCore::CSSGroupingRule::CSSGroupingRule):
(WebCore::CSSGroupingRule::reattach):

  • css/CSSGroupingRule.h:
  • css/CSSImportRule.cpp:

(WebCore::CSSImportRule::CSSImportRule):
(WebCore::CSSImportRule::href):
(WebCore::CSSImportRule::media):
(WebCore::CSSImportRule::cssText):
(WebCore::CSSImportRule::styleSheet):
(WebCore::CSSImportRule::reattach):

  • css/CSSImportRule.h:

(WebCore::CSSImportRule::create): Deleted.

  • css/CSSMediaRule.cpp:

(WebCore::CSSMediaRule::CSSMediaRule):
(WebCore::CSSMediaRule::mediaQueries):
(WebCore::CSSMediaRule::reattach):

  • css/CSSMediaRule.h:

(WebCore::CSSMediaRule::create): Deleted.

  • css/CSSPageRule.cpp:

(WebCore::CSSPageRule::CSSPageRule):
(WebCore::CSSPageRule::reattach):

  • css/CSSPageRule.h:

(WebCore::CSSPageRule::create): Deleted.

  • css/CSSRule.h:
  • css/CSSStyleRule.cpp:

(WebCore::CSSStyleRule::CSSStyleRule):
(WebCore::CSSStyleRule::reattach):

  • css/CSSStyleRule.h:

(WebCore::CSSStyleRule::create): Deleted.
(WebCore::CSSStyleRule::styleRule): Deleted.

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::reattachChildRuleCSSOMWrappers):

  • css/CSSSupportsRule.cpp:

(WebCore::CSSSupportsRule::CSSSupportsRule):
(WebCore::CSSSupportsRule::conditionText):

  • css/CSSSupportsRule.h:

(WebCore::CSSSupportsRule::create):

  • css/CSSUnknownRule.h:
  • css/StyleRule.cpp:

(WebCore::StyleRuleBase::createCSSOMWrapper):

  • css/StyleRuleImport.h:

(WebCore::StyleRuleImport::mediaQueries):

  • css/WebKitCSSKeyframeRule.cpp:

(WebCore::WebKitCSSKeyframeRule::WebKitCSSKeyframeRule):
(WebCore::WebKitCSSKeyframeRule::reattach):

  • css/WebKitCSSKeyframeRule.h:
  • css/WebKitCSSKeyframesRule.cpp:

(WebCore::WebKitCSSKeyframesRule::WebKitCSSKeyframesRule):
(WebCore::WebKitCSSKeyframesRule::item):
(WebCore::WebKitCSSKeyframesRule::reattach):

  • css/WebKitCSSKeyframesRule.h:

(WebCore::WebKitCSSKeyframesRule::create):

  • css/WebKitCSSRegionRule.cpp:

(WebCore::WebKitCSSRegionRule::WebKitCSSRegionRule):
(WebCore::WebKitCSSRegionRule::cssText):

  • css/WebKitCSSRegionRule.h:

(WebCore::WebKitCSSRegionRule::create):

  • css/WebKitCSSViewportRule.cpp:

(WebCore::WebKitCSSViewportRule::reattach):

  • css/WebKitCSSViewportRule.h:
7:49 PM Changeset in webkit [174255] by andersca@apple.com
  • 2 edits in trunk/Source/WTF

Add back debugging/testing code that I accidentally removed.

  • wtf/text/StringConcatenate.h:

(WTF::StringTypeAdapter<String>::writeTo):

7:07 PM Changeset in webkit [174254] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Cannot add a new CSS Rule to elements with 3 or more class names
https://bugs.webkit.org/show_bug.cgi?id=137375

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-10-02
Reviewed by Timothy Hatcher.

Correctly merge all class names with dots instead of just the first two.

  • UserInterface/Models/DOMNode.js:
6:40 PM Changeset in webkit [174253] by Chris Dumez
  • 14 edits in trunk/Source/WebCore

Use is<>() / downcast<>() for CSSRule subclasses
https://bugs.webkit.org/show_bug.cgi?id=137364

Reviewed by Benjamin Poulain.

Use is<>() / downcast<>() functions for CSSRule subclasses.

No new tests, no behavior change.

  • css/CSSFontFaceRule.h:
  • css/CSSImportRule.h:
  • css/CSSMediaRule.h:
  • css/CSSRule.h:
  • css/CSSStyleRule.h:
  • css/CSSSupportsRule.h:
  • css/InspectorCSSOMWrappers.cpp:

(WebCore::InspectorCSSOMWrappers::collect):

  • css/WebKitCSSKeyframesRule.h:
  • css/WebKitCSSRegionRule.h:
  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::asCSSStyleRule):
(WebCore::InspectorCSSAgent::collectStyleSheets):
(WebCore::InspectorCSSAgent::buildArrayForRuleList):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::asCSSRuleList):
(WebCore::fillMediaListChain):
(WebCore::InspectorStyleSheet::addRule):
(WebCore::InspectorStyleSheet::collectFlatRules):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::serializeCSSStyleSheet):

5:37 PM Changeset in webkit [174252] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

<rdar://problem/18531395> REGRESSION (r173272): Crash in ResourceResponse::platformSuggestedFilename() when called on the null response
https://bugs.webkit.org/show_bug.cgi?id=137239

Reviewed by Pratik Solanki.

  • platform/network/cf/ResourceResponseCFNet.cpp:

(WebCore::ResourceResponse::platformSuggestedFilename): Return the null String if
m_cfResponse is null.

5:30 PM Changeset in webkit [174251] by dbates@webkit.org
  • 4 edits in trunk

Use version number 101000 instead of 10100 for OS X Yosemite
https://bugs.webkit.org/show_bug.cgi?id=137372

Reviewed by Mark Rowe.

The version number for OS X Yosemite is 101000.

Source/WebKit/mac:

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Tools:

  • DumpRenderTree/mac/TextInputController.m:
4:56 PM Changeset in webkit [174250] by aestes@apple.com
  • 4 edits
    2 adds in trunk/Source

[iOS] Create an SPI wrapper for _UIHighlightView and use it in WKContentView
https://bugs.webkit.org/show_bug.cgi?id=137370

Reviewed by Tim Horton.

Source/WebCore:

Added _UIHighlightViewSPI.h. When building against the internal SDK it imports <UIKit/_UIHighlightView.h>. Otherwise, it redeclares the SPI we use in WebKit2.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/spi/ios/_UIHighlightViewSPI.h: Added.

Source/WebKit2:

  • UIProcess/ios/WKContentViewInteraction.mm: Included <WebCore/_UIHighlightViewSPI.h> instead of <UIKit/_UIHighlightView.h>.
4:50 PM Changeset in webkit [174249] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.11-branch/Source

Versioning.

4:49 PM Changeset in webkit [174248] by ap@apple.com
  • 12 edits in trunk/Tools

update-work-items should never delete items
https://bugs.webkit.org/show_bug.cgi?id=137366

Reviewed by Ryosuke Niwa.

As we don't just replace the whole list any more, indicate which items are high
priority, and which are not. Hight priority ones will be prepended to the queue,
others will be appended.

This creates a bit of unfairness in that high priority item queue becomes a LIFO.
But hopefully we will never have many rollouts competing like that.

  • QueueStatusServer/app.yaml: Update version.
  • QueueStatusServer/handlers/updateworkitems.py: Never remove items. Pass high

priority and regular items separately. Removed some error handling that used to
end up in returning status 500 - an uncaught exception does that automatically.

  • QueueStatusServer/main.py: Removed unnecessary regexps from URL matching code.
  • QueueStatusServer/model/workitems.py: Added a way to add high priority items.
  • QueueStatusServer/templates/updateworkitems.html: Added a field for high

priority items.

  • Scripts/webkitpy/common/net/bugzilla/bugzilla.py:

(BugzillaQueries._parse_attachment_ids_request_query): Removed an annoying log
line that complicated testing.

  • Scripts/webkitpy/common/net/statusserver.py: Pass high priority items separately.
  • Scripts/webkitpy/tool/bot/feeders.py: For commit queue, split high and regular

priority items into separate lists.

  • Scripts/webkitpy/common/net/statusserver_mock.py:
  • Scripts/webkitpy/tool/bot/feeders_unittest.py:
  • Scripts/webkitpy/tool/commands/queues_unittest.py:

Updated tests.

4:47 PM Changeset in webkit [174247] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.11.11

New tag.

4:41 PM Changeset in webkit [174246] by b.long@cablelabs.com
  • 2 edits in trunk/Tools

Annoying build warnings in WTFString API tests
https://bugs.webkit.org/show_bug.cgi?id=137360

Reviewed by Darin Adler.

  • TestWebKitAPI/Tests/WTF/WTFString.cpp:

(TestWebKitAPI::TEST): Change EXPECT_EQ(false, ok) to EXPECT_FALSE(ok) and EXPECT_EQ(true, ok) to EXPECT_TRUE(ok).

4:41 PM Changeset in webkit [174245] by benjamin@webkit.org
  • 3 edits
    20 adds in trunk

CSS JIT: add the initial implementation of :nth-child(An+B of selector)
https://bugs.webkit.org/show_bug.cgi?id=137285

Reviewed by Andreas Kling.

Source/WebCore:

This patch adds the baseline support for JIT compiling :nth-child(An+B of selector).

The simple optimizations from the classic :nth-child() are carried over to :nth-child(An+B of selector),
but the new code generation is pretty much left completely unoptimized.

The main challenge introduced with the new functional pseudo classes is the possibility of backtracking
while already inside a backtracking chain.

For example:

:nth-child(odd of a+a+a~a)+b+b~b

has to backtrack the chain a+a+a while already in the backtracking chain b+b+b.

The easiest way to solve this would have been to have each subselector generate a new function.
The generator for :nth-child() would simply call the function call for each sibling.

In the example, we would have:

functionA(): a+a+a~a
selectorChecker(): :nth-child(odd of functionA())+b+b~b

I decided against explicit functions because I believe the would be counterproductive for the common cases.
I expect most use of :nth-child(of) to be done with a light filter without combinators, things like:

:nth-child(odd of .class)
:nth-child(odd of type.class)
:nth-child(odd of type[attribute=value])
etc.

For simple cases, inlining the internal filter will greatly simplify the generated code.

In this particular patch, the selector checkers are inlined, but we do not attempt to have good code generation.
The optimizations will come later.

To implement backtracking in the subselectors, the backtracking implementation was abstracted into the structure
BacktrackingLevel. Every time the code generator starts a new subselector, a new BacktrackingLevel is pushed onto
the multilevel backtracking stack. The code generation always use the latest BacktrackingLevel for code generation
until the subselector is finished, and code generation can continue with the existing state.

Tests: fast/selectors/nth-child-of-backtracking-adjacent-2.html

fast/selectors/nth-child-of-backtracking-adjacent-optimized.html
fast/selectors/nth-child-of-backtracking-adjacent.html
fast/selectors/nth-child-of-boundaries-1.html
fast/selectors/nth-child-of-boundaries-2.html
fast/selectors/nth-child-of-boundaries-3.html
fast/selectors/nth-child-of-chained-2.html
fast/selectors/nth-child-of-has-parent.html
fast/selectors/nth-child-of-never-matching-selector.html
fast/selectors/nth-child-of-with-invalid-An+B.html

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::minimumRegisterRequirements):
(WebCore::SelectorCompiler::computeBacktrackingMemoryRequirements):
Previously, we only needed stack space for the adjacent backtracking entry.

Now we can have several backtracking level active at the same time. We compute how much stack we need
initially and each backtracking level take stack references as needed.

(WebCore::SelectorCompiler::computeBacktrackingInformation):
The entire backtracking infrastructure already works great for multilevel backtracking. It is actually
amazing how everything fits nicely together :)

The only addition here is logging facility in case we run into a bug.

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorCheckerExcludingPseudoElements):
generateSelectorChecker() has handling for pseudo elements, which should not be used
for :nth-child(of). The core generator was moved to generateSelectorCheckerExcludingPseudoElements()
to be used for code generation of subselectors.

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateParentElementTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateAncestorTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateAdjacentBacktrackingTail):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateDescendantBacktrackingTail):
The two main changes are:
1) Adopt the BacktrackingLevel to handle multilevel generation.
2) Descendant backtracking can use the stack if we have multi level descendant backtracking.

In that case, we just use the stack like for adjacent backtracking.

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChildOf):
This is very similar to generateElementIsNthChild(). The main difference is we cannot use
the cache in this case.

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::nthFilterIsAlwaysSatisified):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateNthFilterTest):

LayoutTests:

Those are new tests on top of the existing tests for :nth-child(An+B of selector).
They cover mostly areas related to the JIT optimizations.

The areas with the least test coverage for correctness is multilevel backtracking.
I expect we will create more of those tests while extending :not() and adding :matches().

  • fast/selectors/nth-child-of-backtracking-adjacent-expected.txt: Added.
  • fast/selectors/nth-child-of-backtracking-adjacent-optimized.html: Added.
  • fast/selectors/nth-child-of-backtracking-adjacent-expected.html: Added.
  • fast/selectors/nth-child-of-backtracking-adjacent.html: Added.
  • fast/selectors/nth-child-of-backtracking-adjacent-2-expected.txt: Added.
  • fast/selectors/nth-child-of-backtracking-adjacent-2.html: Added.

Those tests are based on Yusuke's backtracking test suite for adjacent combinators.

The tests in nth-child-of-backtracking-adjacent.html use :nth-child(of) inside a regular
backtracking chain.

The tests in nth-child-of-backtracking-adjacent-2.html test backtracking inside :nth-chlid(of).

  • fast/selectors/nth-child-of-boundaries-1-expected.txt: Added.
  • fast/selectors/nth-child-of-boundaries-1.html: Added.
  • fast/selectors/nth-child-of-boundaries-2-expected.txt: Added.
  • fast/selectors/nth-child-of-boundaries-2.html: Added.
  • fast/selectors/nth-child-of-boundaries-3-expected.txt: Added.
  • fast/selectors/nth-child-of-boundaries-3.html: Added.

Test various abuse of :nth-child(of).

  • fast/selectors/nth-child-of-chained-2-expected.txt: Added.
  • fast/selectors/nth-child-of-chained-2.html: Added.

Test that disjoint :nth-child(of) are not agregated, unlike the old :nth-child().

  • fast/selectors/nth-child-of-has-parent-expected.txt: Added.
  • fast/selectors/nth-child-of-has-parent.html: Added.

Make sure we don't optimize out the parent check when skipping filters that always match.

  • fast/selectors/nth-child-of-never-matching-selector-expected.txt: Added.
  • fast/selectors/nth-child-of-never-matching-selector.html: Added.

Test code generation for things that never match.

  • fast/selectors/nth-child-of-with-invalid-An+B-expected.txt: Added.
  • fast/selectors/nth-child-of-with-invalid-An+B.html: Added.

Test for useless variation of An+B that can never match anything.

4:39 PM Changeset in webkit [174244] by psolanki@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS] Networking process stops loading web pages while running Alexa test with random URL list
https://bugs.webkit.org/show_bug.cgi?id=137362
<rdar://problem/18507382>

Reviewed by Alexey Proskuryakov.

ResourceHandleCFURLConnectionDelegateWithOperationQueue needs to signal threads waiting on
its semaphore when the handle is being destroyed. Otherwise, we can leave dispatch threads
hanging around waiting for a response. This can happen when the Web Content process dies.
Any thread/queue waiting on a response from that web process will leak and stay around
forever. If we reach the dispatch queue limit of 64, then all networking will cease to
happen in the Networking process. Fix this by signalling waiting threads and clearing out
our state in much the same way that -[WebCoreResourceHandleAsOperationQueueDelegate
detachHandle] does for Mac.

  • platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::releaseHandle):

  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
4:36 PM Changeset in webkit [174243] by roger_fong@apple.com
  • 2 edits in trunk/Tools

[Windows] The number of processes did not affect the crash inconsistency, increase number of child processes again.

  • Scripts/webkitpy/port/win.py:

(WinPort.default_child_processes): Ambitiously try 3 processes the testers are too slow now.

4:32 PM Changeset in webkit [174242] by dfarler@apple.com
  • 2 edits in trunk/Tools

Move ASan arguments from LLVM (-mllvm) to the frontend
https://bugs.webkit.org/show_bug.cgi?id=137365

Reviewed by David Kilzer.

  • asan/asan.xcconfig:

Remove the -mllvm prefix to the asan-blacklist argument, moving it
to the clang frontend.

http://llvm.org/viewvc/llvm-project?view=revision&revision=212505

4:30 PM Changeset in webkit [174241] by roger_fong@apple.com
  • 2 edits in trunk/LayoutTests

[Windows] Skip a small handful of tests that fail consistently on Windows bots Part 2.

  • platform/win/TestExpectations: Typo, meant to skip the whole folder on Debug tests.
4:27 PM Changeset in webkit [174240] by Beth Dakin
  • 2 edits in trunk/LayoutTests

Marking flaky on Mavericks.

  • platform/mac/TestExpectations:
4:14 PM Changeset in webkit [174239] by roger_fong@apple.com
  • 2 edits in trunk/LayoutTests

[Windows] Skip a small handful of tests that fail consistently on Windows bots.

  • platform/win/TestExpectations:
4:03 PM Changeset in webkit [174238] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix the iOS build.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::blurAssistedNode):
(WebKit::WebPage::setAssistedNodeValue):
(WebKit::WebPage::setAssistedNodeValueAsNumber):
(WebKit::WebPage::setAssistedNodeSelectedIndex):

4:01 PM Changeset in webkit [174237] by roger_fong@apple.com
  • 2 edits in trunk/LayoutTests

[Windows] Unskip media tests now that audio devices are installed on the bots.

  • platform/win/TestExpectations: There will likely still be a handful of failures left, which we will then skip.
3:53 PM Changeset in webkit [174236] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Use is<>() / downcast<>() for CSSBasicShape objects
https://bugs.webkit.org/show_bug.cgi?id=137331

Reviewed by Andreas Kling.

Use is<>() / downcast<>() for CSSBasicShape objects.

No new tests, no behavior change.

  • css/BasicShapeFunctions.cpp:

(WebCore::basicShapeForValue):

  • css/CSSBasicShapes.cpp:

(WebCore::CSSBasicShapeCircle::equals):
(WebCore::CSSBasicShapeEllipse::equals):
(WebCore::CSSBasicShapePolygon::equals):
(WebCore::CSSBasicShapeInset::equals):

  • css/CSSBasicShapes.h:
3:49 PM Changeset in webkit [174235] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

XMLHttpRequestProgressEventThrottle shouldn't throttle / defer progress events if there are no listeners
https://bugs.webkit.org/show_bug.cgi?id=137346

Reviewed by Alexey Proskuryakov.

Previously XMLHttpRequestProgressEventThrottle would throttle / defer
progress events, which involves queueing events and starting timers,
even if there were no listeners for those events (which is fairly
common case).

This patch updates XMLHttpRequestProgressEventThrottle to make sure
there are actual progress event listeners *before* attempting to
throttle and do extra processing, to avoid doing unnecessary work.

This patch also makes XMLHttpRequestProgressEventThrottle::dispatchEvent()
private as this method is only called from other dispatch methods of
the class and never from the outside.

No new tests, no behavior change.

  • xml/XMLHttpRequestProgressEventThrottle.cpp:

(WebCore::XMLHttpRequestProgressEventThrottle::dispatchThrottledProgressEvent):
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchProgressEvent):

3:48 PM Changeset in webkit [174234] by andersca@apple.com
  • 3 edits in trunk/Source/WTF

Simplify StringTypeAdapter templates
https://bugs.webkit.org/show_bug.cgi?id=137356

Reviewed by Andreas Kling.

  • wtf/text/StringConcatenate.h:

Use StringView for copying characters. Use inheritance for char* vs const char* etc. Make all StringAdapter member functions const.

  • wtf/text/StringView.h:

Move enough functions out of line so we can include WTFString.h after the StringView class definition.

3:25 PM Changeset in webkit [174233] by mmaxfield@apple.com
  • 43 edits
    1 add in trunk

[Subpixel] Use floats instead of ints for text justification expansion
https://bugs.webkit.org/show_bug.cgi?id=137327

Reviewed by Zalan Bujtas.

Source/WebCore:

Use a float instead of an int for the expansion variable in InlineBox. The int was inside an inner class
that held a collection of bitfields, and this patch removes that inner-inner variable.

No new tests because there is plenty of existing coverage and existing tests are rebaselined.

  • rendering/InlineBox.cpp: Update static_assert for the size of InlineBox.
  • rendering/InlineBox.h: Use a float for the justification expansion amount instead of an int bitfield.

(WebCore::InlineBox::InlineBoxBitfields::InlineBoxBitfields): Remove int bitfield.
(WebCore::InlineBox::InlineBox): Initialize float expansion.
(WebCore::InlineBox::expansion): Return a float.
(WebCore::InlineBox::setExpansion): Take a float.
(WebCore::InlineBox::InlineBoxBitfields::expansion): Deleted. Moved to InlineBox.
(WebCore::InlineBox::InlineBoxBitfields::setExpansion): Deleted. Ditto.

  • rendering/InlineTextBox.h:

(WebCore::InlineTextBox::setExpansion): Take a float.

LayoutTests:

Rebaselining tests due to subpixel differences.

  • platform/mac/css1/box_properties/clear_float-expected.txt:
  • platform/mac/css1/box_properties/float_on_text_elements-expected.txt:
  • platform/mac/css2.1/t0905-c5525-fltcont-00-d-g-expected.txt:
  • platform/mac/css2.1/t0905-c5525-fltwidth-00-c-g-expected.txt:
  • platform/mac/css2.1/t1602-c546-txt-align-00-b-expected.txt:
  • platform/mac/fast/multicol/float-avoidance-expected.txt:
  • platform/mac/fast/multicol/overflow-across-columns-expected.txt:
  • platform/mac/fast/multicol/overflow-across-columns-percent-height-expected.txt:
  • platform/mac/fast/multicol/overflow-unsplittable-expected.txt:
  • platform/mac/fast/multicol/positive-leading-expected.txt:
  • platform/mac/fast/multicol/vertical-lr/float-avoidance-expected.txt:
  • platform/mac/fast/multicol/vertical-rl/float-avoidance-expected.txt:
  • platform/mac/fast/regions/multiple-directionality-changes-in-variable-width-regions-expected.txt:
  • platform/mac/fast/regions/repaint/line-flow-with-floats-in-regions-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-1-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-10-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-2-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-3-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-4-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-5-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-6-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-7-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-8-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-9-expected.txt:
  • platform/mac/fast/ruby/bopomofo-rl-expected.txt:
  • platform/mac/fast/text/hyphenate-character-expected.txt:
  • platform/mac/fast/text/hyphens-expected.txt:
  • platform/mac/fast/text/justified-selection-at-edge-expected.txt:
  • platform/mac/fast/text/justify-ideograph-leading-expansion-expected.txt:
  • platform/mac/fast/text/justify-nbsp-expected.txt: Added.
  • platform/mac/fast/text/trailing-white-space-2-expected.txt:
  • platform/mac/fast/text/trailing-white-space-expected.txt:
  • platform/mac/tables/mozilla/marvin/x_tbody_align_justify-expected.txt:
  • platform/mac/tables/mozilla/marvin/x_td_align_justify-expected.txt:
  • platform/mac/tables/mozilla/marvin/x_tfoot_align_justify-expected.txt:
  • platform/mac/tables/mozilla/marvin/x_th_align_justify-expected.txt:
  • platform/mac/tables/mozilla/marvin/x_thead_align_justify-expected.txt:
  • platform/mac/tables/mozilla/marvin/x_tr_align_justify-expected.txt:
2:51 PM Changeset in webkit [174232] by aestes@apple.com
  • 9 edits in trunk/Source/WebKit2

[iOS] Teach WKPDFView to navigate to pageNumber links
https://bugs.webkit.org/show_bug.cgi?id=137358

Reviewed by Tim Horton.

Treat PDF pageNumber annotations as if they were fragment navigations in an HTML document. For a given page
number N, create a fragment called "#pageN" and tell WebKit to navigate to it. By doing this we create history
entries for each pageNumber navigation and allow for proper back/forward. When navigating to a page, reset to
the initial scale factor and scroll to the beginning of the Nth page.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _zoomToPoint:atScale:animated:]): Added an animated parameter. If animated is NO, use a duration of 0.
(-[WKWebView _zoomToRect:atScale:origin:animated:]): Added an animated parameter and passed it to _zoomToPoint:atScale:animated:.
(-[WKWebView _zoomOutWithOrigin:animated:]): Ditto.
(-[WKWebView _zoomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]): Called _zoomToRect:atScale:origin:animated:,
setting animated to YES.
(-[WKWebView _didSameDocumentNavigationForMainFrame:]): Called web_didSameDocumentNavigation: on _customContentView.
(-[WKWebView _zoomToPoint:atScale:]): Deleted.
(-[WKWebView _zoomToRect:atScale:origin:]): Deleted.
(-[WKWebView _zoomOutWithOrigin:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/Cocoa/WKWebViewContentProvider.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::didSameDocumentNavigationForMainFrame): Called _didSameDocumentNavigationForMainFrame on m_webView.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _zoomOutWithOrigin:]): Called _zoomOutWithOrigin:animated: on m_webView, setting animated to YES.

  • UIProcess/ios/WKPDFPageNumberIndicator.h:
  • UIProcess/ios/WKPDFPageNumberIndicator.mm:

(-[WKPDFPageNumberIndicator hide]): Added a method to hide the page number indicator.

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView web_setContentProviderData:suggestedFilename:]): Added a FIXME for restoring scroll position and page scale when loading from the back/forward list.
(-[WKPDFView scrollViewDidScroll:]): Stopped showing the page number indicator if a same-document navigation is occurring (to match UIWebPDFView).
(-[WKPDFView _updatePageNumberIndicator]): Ditto.
(-[WKPDFView web_didSameDocumentNavigation:]):
(-[WKPDFView _resetZoomAnimated:]): For same-document navigations of type kWKSameDocumentNavigationSessionStatePop, extracted the page index from the URL fragment
identifier, hid the page number indicator, reset the zoom (without an animation to match UIWebPDFView), and scrolled to the beginning of the given page.
(-[WKPDFView resetZoom:]): Called _resetZoomAnimated:, setting animated to YES.
(-[WKPDFView annotation:wasTouchedAtPoint:controller:]): If there is a non-zero pageNumber in the link annotation, construct a "#pageN" fragment and navigate to it.

2:06 PM Changeset in webkit [174231] by timothy_horton@apple.com
  • 54 edits
    6 adds
    4 deletes in trunk/Source

Move PageOverlay[Controller] to WebCore
https://bugs.webkit.org/show_bug.cgi?id=137164
<rdar://problem/18508258>

Reviewed by Anders Carlsson.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:

Make the appropriate build system changes.

  • WebCore.exp.in:

Export the new PageOverlay[Controller] symbols from WebCore.

  • loader/EmptyClients.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::documentOverlayLayerForFrame): Deleted.
Add attachViewOverlayGraphicsLayer, which allows PageOverlayController
to push view-relative page overlay root layers down to WebKit to be
installed just inside the view.

Remove documentOverlayLayerForFrame because RenderLayerCompositor can now
talk directly to PageOverlayController.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::mouseMoved):
(WebCore::EventHandler::handleMouseReleaseEvent):
When the mouse is moved, pressed, or released, give PageOverlayController
the first shot at handling the event.

  • page/FrameView.cpp:

(WebCore::FrameView::setFrameRect):
Inform PageOverlayController that the main FrameView's size changed,
so it can update the size of view-relative overlays.

(WebCore::FrameView::setContentsSize):
Inform PageOverlayController that the main FrameView's contents size changed,
so it can update the size of document-relative overlays.

(WebCore::FrameView::setFixedVisibleContentRect):
(WebCore::FrameView::didChangeScrollOffset):
(WebCore::FrameView::scrollTo):
(WebCore::FrameView::wheelEvent):
Inform PageOverlayController that something scrolled.

(WebCore::FrameView::setExposedRect):
Inform PageOverlayController that the exposed rect changed, so it can push
the new exposed rect down to the overlays.

  • page/FrameView.h:

Add didChangeScrollOffset.

  • page/MainFrame.cpp:

(WebCore::MainFrame::MainFrame):

  • page/MainFrame.h:

Keep one PageOverlayController per MainFrame.

  • page/Page.cpp:

(WebCore::Page::setDeviceScaleFactor):
Inform PageOverlayController that the device scale factor changed.

(WebCore::Page::setSessionID):
Remove a blank line.

  • page/PageOverlay.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/PageOverlay.cpp.

Move PageOverlay from WebKit2 to WebCore.
A few overarching changes that I won't detail in each place:

  • references instead of pointers in many places
  • WebCore types instead of WebKit2 types everywhere

(WebCore::PageOverlay::bounds):
It is possible to install an overlay before we have a FrameView.
We will eventually get a view/contents size changed notification and try again.

(WebCore::PageOverlay::copyAccessibilityAttributeStringValueForPoint):
(WebCore::PageOverlay::copyAccessibilityAttributeBoolValueForPoint):
(WebCore::PageOverlay::copyAccessibilityAttributeNames):
Split copyAccessibilityAttribute into "StringValueForPoint" and "BoolValueForPoint"
variants, because we don't have anything like WKTypeRef here.

  • page/PageOverlay.h: Renamed from Source/WebKit2/WebProcess/WebPage/PageOverlay.h.

Make PageOverlay a normal RefCounted object instead of a WebKit2 API object.
Leave a comment noting that we should move the PageOverlay's GraphicsLayer
to PageOverlay instead of a map on PageOverlayController.

  • page/PageOverlayController.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/PageOverlayController.cpp.

Move PageOverlayController from WebKit2 to WebCore.
A few overarching changes that I won't detail in each place:

  • references instead of pointers in many places
  • WebCore types instead of WebKit2 types everywhere

Leave a FIXME that didChangeSettings is not currently called when settings change.
This is not a problem for normal use of overlays, only for dynamically changing
layer border/repaint counter settings.

(WebCore::PageOverlayController::PageOverlayController):
(WebCore::PageOverlayController::createRootLayersIfNeeded):
We will now lazily initialize the root layers when we first try to use them,
because otherwise we try to create them before the ChromeClient's GraphicsLayerFactory
is hooked up, in some cases, and that can cause us to create the wrong kind of GraphicsLayers.

(WebCore::PageOverlayController::installPageOverlay):
Enter compositing mode when installing a PageOverlay.
Avoid pushing the Page to the PageOverlay until after we've set up
its root layer, so that the installation process can make use of that layer;
clients may, for example, expect to be able to setNeedsDisplay() in the
didMoveToPage callback.
Avoid updateOverlayGeometry until the layer is created and we've pushed
the Page down, so that e.g. bounds() will use the right Page.

(WebCore::PageOverlayController::didChangeSettings):
Leave a FIXME about a future improvement to didChangeSettings.

(WebCore::PageOverlayController::deviceScaleFactor):
(WebCore::PageOverlayController::notifyFlushRequired):
Null-check Page; these can get called when tearing down the Frame.

  • page/PageOverlayController.h: Renamed from Source/WebKit2/WebProcess/WebPage/PageOverlayController.h.
  • platform/graphics/GraphicsLayerClient.h:

Add wtf/Forward.h, because GraphicsLayerClient.h uses String.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollTo):
Inform PageOverlayController that something scrolled.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::hasAnyAdditionalCompositedLayers):
Make hasAnyAdditionalCompositedLayers return true if there are any page overlays,
because we need to avoid falling out of compositing mode if we still have
page overlays.

(WebCore::RenderLayerCompositor::updateCompositingLayers):
Enter compositing mode if we have page overlays.

(WebCore::RenderLayerCompositor::appendOverlayLayers): Deleted.
(WebCore::RenderLayerCompositor::appendDocumentOverlayLayers):
Rename appendOverlayLayers -> appendDocumentOverlayLayers.

(WebCore::RenderLayerCompositor::attachRootLayer):
(WebCore::RenderLayerCompositor::detachRootLayer):
Attach/detach the view overlay root layer when attaching/detaching the
normal compositing root layer.

(WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):

  • rendering/RenderLayerCompositor.h:
  • CMakeLists.txt:
  • WebKit2.xcodeproj/project.pbxproj:

Make the appropriate build system changes.

  • WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:

Make WKBundlePageOverlayRef map to WebPageOverlay instead of PageOverlay.

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageInstallPageOverlay):
(WKBundlePageUninstallPageOverlay):
(WKBundlePageInstallPageOverlayWithAnimation):
(WKBundlePageUninstallPageOverlayWithAnimation):
Forward PageOverlay installation/uninstallation to WebCore.

  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:

(WKBundlePageOverlayGetTypeID):
(WKBundlePageOverlayCreate):
(WKBundlePageOverlaySetAccessibilityClient):
Use WebPageOverlay instead of PageOverlay, and references instead of pointers.
We forward client callbacks through from PageOverlay::Client to WebPageOverlay::Client.

(PageOverlayClientImpl::copyAccessibilityAttributeValue):
(PageOverlayClientImpl::copyAccessibilityAttributeNames):
Convert from wtf types to WebKit2 types.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::graphicsLayerFactory):
If we don't have a drawing area, don't dereference it!

(WebKit::WebChromeClient::attachViewOverlayGraphicsLayer):
Forward attachViewOverlayGraphicsLayer to the DrawingArea.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/WebInspectorClient.cpp:
  • WebProcess/WebCoreSupport/WebInspectorClient.h:
  • WebProcess/WebPage/FindController.cpp:
  • WebProcess/WebPage/FindController.h:
  • WebProcess/WebPage/ios/FindControllerIOS.mm:
  • WebProcess/WebPage/ios/FindIndicatorOverlayClientIOS.h:
  • WebProcess/WebPage/mac/ServicesOverlayController.mm:
  • WebProcess/WebPage/ServicesOverlayController.h:

Mechanical changes to adopt to the fact that PageOverlay is in WebCore now.

  • WebProcess/WebPage/LayerTreeHost.h:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/WebPage.h:

Remove support for WebKit2-based page overlays.
Return MainFrame instead of Frame from mainFrame().

  • WebProcess/WebPage/WebPageOverlay.cpp: Added.
  • WebProcess/WebPage/WebPageOverlay.h: Added.

(WebKit::WebPageOverlay::create):
(WebKit::WebPageOverlay::WebPageOverlay):
(WebKit::WebPageOverlay::~WebPageOverlay):
(WebKit::WebPageOverlay::setNeedsDisplay):
(WebKit::WebPageOverlay::clear):
(WebKit::WebPageOverlay::pageOverlayDestroyed):
(WebKit::WebPageOverlay::willMoveToPage):
(WebKit::WebPageOverlay::didMoveToPage):
(WebKit::WebPageOverlay::drawRect):
(WebKit::WebPageOverlay::mouseEvent):
(WebKit::WebPageOverlay::didScrollFrame):
(WebKit::WebPageOverlay::copyAccessibilityAttributeStringValueForPoint):
(WebKit::WebPageOverlay::copyAccessibilityAttributeBoolValueForPoint):
(WebKit::WebPageOverlay::copyAccessibilityAttributeNames):
WebPageOverlay exists to be our API object, but forwards everything
to its WebCore::PageOverlay, and implements WebCore::PageOverlay::Client, and
forwards client callbacks to its WebPageOverlay::Client (which
WKBundlePageOverlay implements).

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject accessibilityParameterizedAttributeNames]):
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]):
Forward the three AX properties that PageOverlays are ever queried for
to the appropriate PageOverlayController function.

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::updateRootLayers):
Factor updateRootLayers out of setRootCompositingLayer.

(WebKit::RemoteLayerTreeDrawingArea::attachViewOverlayGraphicsLayer):
If we attach/detach the view-relative page overlay root layer,
reattach the root compositing layer's children.

(WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):
Ditto for the root compositing layer.

(WebKit::RemoteLayerTreeDrawingArea::updateScrolledExposedRect):
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
(WebKit::RemoteLayerTreeDrawingArea::mainFrameContentSizeChanged):
Informing PageOverlayController of exposed rect/document size changes is now
WebCore's job.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::updateRootLayers):
Factor updateRootLayers out of setRootCompositingLayer.

(WebKit::TiledCoreAnimationDrawingArea::attachViewOverlayGraphicsLayer):
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
Make use of updateRootLayers when we attach/detach root compositing layer/view overlay layer.

(WebKit::TiledCoreAnimationDrawingArea::mainFrameContentSizeChanged):
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::updateScrolledExposedRect):
Informing PageOverlayController of exposed rect/document size changes is now
WebCore's job.

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::attachViewOverlayGraphicsLayer):

  • Shared/WebRenderLayer.cpp:
  • Shared/WebRenderObject.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
  • WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
  • WebProcess/WebProcess.cpp:

Include MainFrame.h because WebPage::mainFrame returns a MainFrame now.

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::attachViewOverlayGraphicsLayer):
Add an empty ChromeClient override.

  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::attachViewOverlayGraphicsLayer):

  • WebCoreSupport/WebChromeClient.h:

Add an empty ChromeClient override.

2:01 PM Changeset in webkit [174230] by jeffm@apple.com
  • 12 edits in trunk/Source/WebKit2

WKDownloadCopyRequest() returns 0 until the download starts
https://bugs.webkit.org/show_bug.cgi?id=137322

Reviewed by Anders Carlsson.

The m_request ivar in DownloadProxy was only being initialized when didStart() was called after the
download starts. Since clients have access to the ResourceRequest when the DownloadProxy is created,
there's no reason not to pass that along to DownloadProxy::create() so it can be returned if
WKDownloadCopyRequest() is called before didStart().

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::create):
Add ResourceRequest parameter, and pass it to DownloadProxy constructor.

(WebKit::DownloadProxy::DownloadProxy):
Initialize m_request.

  • UIProcess/Downloads/DownloadProxy.h:

Add ResourceRequest parameter to create() and constructor.

  • UIProcess/Downloads/DownloadProxyMap.cpp:

(WebKit::DownloadProxyMap::createDownloadProxy):
Add ResourceRequest parameter and pass it to DownloadProxy::create().

  • UIProcess/Downloads/DownloadProxyMap.h:

Add ResourceRequest parameter to createDownloadProxy().

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::createDownloadProxy):
Add ResourceRequest parameter and pass it to DownloadProxy::create().

  • UIProcess/Network/NetworkProcessProxy.h:

Add ResourceRequest parameter to createDownloadProxy().

  • UIProcess/WebContext.cpp:

(WebKit::WebContext::download):
Pass ResourceRequest to createDownloadProxy().

(WebKit::WebContext::createDownloadProxy):
Add ResourceRequest parameter and pass it to createDownloadProxy() functions.

  • UIProcess/WebContext.h:

Add ResourceRequest parameter to createDownloadProxy().

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedPolicyDecision):
Pass m_decidePolicyForResponseRequest to WebContext::createDownloadProxy().

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::createDownloadProxy):
Add ResourceRequest parameter and pass it to DownloadProxyMap::create().

  • UIProcess/WebProcessProxy.h:

Add ResourceRequest parameter to createDownloadProxy().

1:56 PM Changeset in webkit [174229] by bshafiei@apple.com
  • 2 edits in branches/safari-600.1.4.11-branch/Source/WebCore

Merged r174199. <rdar://problem/18459443>

1:54 PM Changeset in webkit [174228] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Back TextRun with a StringView
https://bugs.webkit.org/show_bug.cgi?id=137352

Reviewed by Antti Koivisto.

TextRun contains a union of a UChar* and an LChar* as well as a length, which is the abstraction
that StringView is intended to be. This patch cleans up TextRun by replacing the union and length
with a StringView instance member.

No new tests because there is no behavior change.

  • platform/graphics/TextRun.h:

(WebCore::TextRun::TextRun):
(WebCore::TextRun::subRun):
(WebCore::TextRun::operator[]):
(WebCore::TextRun::data8):
(WebCore::TextRun::data16):
(WebCore::TextRun::characters8):
(WebCore::TextRun::characters16):
(WebCore::TextRun::is8Bit):
(WebCore::TextRun::length):
(WebCore::TextRun::string):
(WebCore::TextRun::setText):
(WebCore::TextRun::stringView):

1:50 PM Changeset in webkit [174227] by Beth Dakin
  • 2 edits in trunk/LayoutTests

Marking test as flaky.

1:35 PM Changeset in webkit [174226] by oliver@apple.com
  • 44 edits in trunk/Source/JavaScriptCore

Do all closed variable access through the local lexical object
https://bugs.webkit.org/show_bug.cgi?id=136869

Reviewed by Filip Pizlo.

This patch makes all reads and writes from captured registers
go through the lexical record, and by doing so removes the
need for record tearoff.

To keep the patch simple we still number variables as though
they are local stack allocated registers, but ::local() will
fail. When local fails we perform a generic resolve, and in
that resolve we now use a ResolveScopeInfo struct to pass
around information about whether a lookup is a statically
known captured variable, and its location in the activation.
To ensure correct behaviour during codeblock linking we also
add a LocalClosureVariable resolution type.

To ensure correct semantics for the Arguments object, we now
have to eagerly create the Arguments object for any function
that uses both the Arguments object and requires a lexical
record.

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

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::finalizeUnconditionally):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeCapturedVariable):

During the entry to a function we are not yet in a position
to allocate temporaries so we directly use the lexical
environment register.

(JSC::BytecodeGenerator::resolveCallee):
(JSC::BytecodeGenerator::emitMove):
(JSC::BytecodeGenerator::local):
(JSC::BytecodeGenerator::constLocal):
(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitResolveConstantLocal):

The two resolve scope operations could technically skip
the op_resolve_scope, and simply perform

op_mov dst, recordRegister

but for now it seemed best to maintain the same basic
behaviour.

(JSC::BytecodeGenerator::emitGetFromScope):
(JSC::BytecodeGenerator::emitPutToScope):
(JSC::BytecodeGenerator::createArgumentsIfNecessary):

If we have an environment we've already created Arguments
so no need to check again.

(JSC::BytecodeGenerator::emitReturn):

Don't need to emit tearoff_environment

  • bytecompiler/BytecodeGenerator.h:

(JSC::Local::Local):
(JSC::Local::operator bool):
(JSC::Local::get):
(JSC::Local::isReadOnly):
(JSC::Local::isSpecial):
(JSC::ResolveScopeInfo::ResolveScopeInfo):
(JSC::ResolveScopeInfo::isLocal):
(JSC::ResolveScopeInfo::localIndex):
(JSC::BytecodeGenerator::shouldCreateArgumentsEagerly):
(JSC::Local::isCaptured): Deleted.
(JSC::Local::captureMode): Deleted.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ResolveNode::emitBytecode):
(JSC::EvalFunctionCallNode::emitBytecode):
(JSC::FunctionCallResolveNode::emitBytecode):
(JSC::PostfixNode::emitResolve):
(JSC::DeleteResolveNode::emitBytecode):
(JSC::TypeOfResolveNode::emitBytecode):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::ConstDeclNode::emitCodeSingle):
(JSC::EmptyVarExpression::emitBytecode):
(JSC::ForInNode::tryGetBoundLocal):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::BindingNode::bindValue):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::tryGetRegisters):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • interpreter/Interpreter.cpp:

(JSC::unwindCallFrame):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_captured_mov): Deleted.
(JSC::JIT::emit_op_tear_off_lexical_environment): Deleted.
(JSC::JIT::emitSlow_op_captured_mov): Deleted.

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_captured_mov): Deleted.
(JSC::JIT::emit_op_tear_off_lexical_environment): Deleted.

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

(JSC::JIT::emit_op_resolve_scope):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::emitPutClosureVar):
(JSC::JIT::emit_op_put_to_scope):
(JSC::JIT::emitSlow_op_put_to_scope):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_resolve_scope):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::emitPutClosureVar):
(JSC::JIT::emit_op_put_to_scope):
(JSC::JIT::emitSlow_op_put_to_scope):

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/Arguments.cpp:

(JSC::Arguments::tearOff):

  • runtime/Arguments.h:

(JSC::Arguments::argument):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL): Deleted.

  • runtime/CommonSlowPaths.h:
  • runtime/JSLexicalEnvironment.cpp:

(JSC::JSLexicalEnvironment::visitChildren):
(JSC::JSLexicalEnvironment::symbolTableGet):
(JSC::JSLexicalEnvironment::symbolTablePut):
(JSC::JSLexicalEnvironment::getOwnNonIndexPropertyNames):
(JSC::JSLexicalEnvironment::getOwnPropertySlot):
(JSC::JSLexicalEnvironment::argumentsGetter):

  • runtime/JSLexicalEnvironment.h:

(JSC::JSLexicalEnvironment::create):
(JSC::JSLexicalEnvironment::JSLexicalEnvironment):
(JSC::JSLexicalEnvironment::tearOff): Deleted.
(JSC::JSLexicalEnvironment::isTornOff): Deleted.

  • runtime/JSScope.cpp:

(JSC::resolveTypeName):

  • runtime/JSScope.h:

(JSC::makeType):
(JSC::needsVarInjectionChecks):

  • runtime/WriteBarrier.h:

(JSC::WriteBarrier<Unknown>::WriteBarrier):

12:39 PM Changeset in webkit [174225] by Chris Dumez
  • 251 edits in trunk/Source

Have is<>(T*) function do a null check on the pointer argument
https://bugs.webkit.org/show_bug.cgi?id=137333

Reviewed by Gavin Barraclough.

Have is<>(T*) function do a null check on the argument instead of a
simple assertion. This makes sense for 2 reasons:

  1. It is more consistent with downcast<>(T*), which will succeed even if the argument is a nullptr.
  2. It simplifies the code a bit as it gets rid of a lot of explicit null checks.

Source/WebCore:

No new tests, no behavior change.

  • Modules/indexeddb/IDBFactory.cpp:
  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::create):

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::create):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::clientHandshakeMessage):

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::focusedUIElementForPage):
(WebCore::createFromRenderer):
(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::handleLiveRegionCreated):
(WebCore::AXObjectCache::handleAttributeChanged):
(WebCore::AXObjectCache::labelChanged):
(WebCore::AXObjectCache::rootAXEditableElement):
(WebCore::isNodeAriaVisible):

  • accessibility/AccessibilityListBoxOption.cpp:

(WebCore::AccessibilityListBoxOption::isEnabled):
(WebCore::AccessibilityListBoxOption::isSelected):
(WebCore::AccessibilityListBoxOption::canSetSelectedAttribute):
(WebCore::AccessibilityListBoxOption::stringValue):
(WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):

  • accessibility/AccessibilityMediaControls.cpp:

(WebCore::AccessibilityMediaTimeline::valueDescription):

  • accessibility/AccessibilityMenuListPopup.cpp:

(WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::determineAccessibilityRole):
(WebCore::AccessibilityNodeObject::canvasHasFallbackContent):
(WebCore::AccessibilityNodeObject::isNativeTextControl):
(WebCore::AccessibilityNodeObject::isNativeImage):
(WebCore::AccessibilityNodeObject::isInputImage):
(WebCore::AccessibilityNodeObject::isEnabled):
(WebCore::AccessibilityNodeObject::isPressed):
(WebCore::AccessibilityNodeObject::isHovered):
(WebCore::AccessibilityNodeObject::isReadOnly):
(WebCore::AccessibilityNodeObject::isRequired):
(WebCore::AccessibilityNodeObject::valueForRange):
(WebCore::AccessibilityNodeObject::maxValueForRange):
(WebCore::AccessibilityNodeObject::minValueForRange):
(WebCore::AccessibilityNodeObject::isControl):
(WebCore::AccessibilityNodeObject::anchorElement):
(WebCore::isNodeActionElement):
(WebCore::AccessibilityNodeObject::mouseButtonListener):
(WebCore::AccessibilityNodeObject::labelForElement):
(WebCore::AccessibilityNodeObject::titleElementText):
(WebCore::AccessibilityNodeObject::alternativeText):
(WebCore::AccessibilityNodeObject::visibleText):
(WebCore::AccessibilityNodeObject::accessibilityDescription):
(WebCore::AccessibilityNodeObject::helpText):
(WebCore::AccessibilityNodeObject::hierarchicalLevel):
(WebCore::AccessibilityNodeObject::textUnderElement):
(WebCore::AccessibilityNodeObject::title):
(WebCore::AccessibilityNodeObject::colorValue):
(WebCore::accessibleNameForNode):
(WebCore::AccessibilityNodeObject::canSetFocusAttribute):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::press):
(WebCore::AccessibilityObject::hasTagName):
(WebCore::AccessibilityObject::hasAttribute):
(WebCore::AccessibilityObject::element):
(WebCore::AccessibilityObject::classList):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::isFileUploadButton):
(WebCore::AccessibilityRenderObject::anchorElement):
(WebCore::AccessibilityRenderObject::helpText):
(WebCore::AccessibilityRenderObject::labelElementContainer):
(WebCore::AccessibilityRenderObject::internalLinkElement):
(WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
(WebCore::AccessibilityRenderObject::titleUIElement):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::accessKey):
(WebCore::AccessibilityRenderObject::url):
(WebCore::AccessibilityRenderObject::setElementAttributeValue):
(WebCore::AccessibilityRenderObject::setFocused):
(WebCore::AccessibilityRenderObject::setValue):
(WebCore::AccessibilityRenderObject::getDocumentLinks):
(WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest):
(WebCore::AccessibilityRenderObject::accessibilityHitTest):
(WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
(WebCore::AccessibilityRenderObject::renderObjectIsObservable):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
(WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
(WebCore::AccessibilityRenderObject::addTextFieldChildren):
(WebCore::AccessibilityRenderObject::remoteSVGRootElement):
(WebCore::AccessibilityRenderObject::setAccessibleName):
(WebCore::AccessibilityRenderObject::stringValueForMSAA):
(WebCore::AccessibilityRenderObject::isLinked):
(WebCore::AccessibilityRenderObject::stringRoleForMSAA):
(WebCore::AccessibilityRenderObject::isMathElement):

  • accessibility/AccessibilitySearchFieldButtons.cpp:

(WebCore::AccessibilitySearchFieldCancelButton::press):

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::tableElement):
(WebCore::AccessibilityTable::isDataTable):
(WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
(WebCore::AccessibilityTable::title):

  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::notifyChildrenSelectionChange):

  • accessibility/atk/WebKitAccessibleInterfaceTable.cpp:

(webkitAccessibleTableGetCaption):

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(webkitAccessibleGetName):
(webkitAccessibleGetDescription):
(webkitAccessibleGetAttributes):

  • bindings/gobject/WebKitDOMPrivate.cpp:

(WebKit::wrap):

  • bindings/js/JSAudioContextCustom.cpp:

(WebCore::constructJSAudioContext):

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::toJSDOMGlobalObject):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::namedItemGetter):
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):

  • bindings/js/JSElementCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSErrorHandler.cpp:

(WebCore::JSErrorHandler::handleEvent):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSHTMLDocumentCustom.cpp:

(WebCore::JSHTMLDocument::nameGetter):

  • bindings/js/JSLazyEventListener.cpp:

(WebCore::JSLazyEventListener::initializeJSFunction):

  • bindings/js/JSNodeCustom.cpp:

(WebCore::isReachableFromDOM):
(WebCore::createWrapperInline):

  • bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::execute):

  • bindings/js/ScriptState.cpp:

(WebCore::frameFromExecState):

  • bindings/objc/DOM.mm:

(kitClass):

  • css/CSSCursorImageValue.cpp:

(WebCore::resourceReferencedByCursorElement):

  • css/CSSStyleSheet.cpp:

(WebCore::isAcceptableCSSStyleSheetParent):

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne):

  • css/SelectorCheckerTestFunctions.h:

(WebCore::isAutofilled):
(WebCore::isDisabled):
(WebCore::isEnabled):
(WebCore::isChecked):
(WebCore::matchesLangPseudoClass):
(WebCore::matchesFutureCuePseudoClass):
(WebCore::matchesPastCuePseudoClass):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::State::initElement):
(WebCore::StyleResolver::locateCousinList):
(WebCore::elementHasDirectionAuto):
(WebCore::StyleResolver::canShareStyleWithElement):
(WebCore::StyleResolver::findSiblingForStyleSharing):
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::StyleResolver::useSVGZoomRulesForLength):

  • css/StyleSheetList.cpp:

(WebCore::StyleSheetList::getNamedItem):

  • dom/Attr.cpp:

(WebCore::Attr::style):

  • dom/CharacterData.cpp:

(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::setDataAndUpdate):

  • dom/ContainerNode.cpp:

(WebCore::checkAcceptChild):
(WebCore::ContainerNode::notifyChildRemoved):

  • dom/ContainerNodeAlgorithms.cpp:

(WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoTree):
(WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromTree):

  • dom/CurrentScriptIncrementer.h:

(WebCore::CurrentScriptIncrementer::CurrentScriptIncrementer):

  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::setDragImage):

  • dom/Document.cpp:

(WebCore::Document::elementFromPoint):
(WebCore::Document::setTitle):
(WebCore::Document::iconURLs):
(WebCore::eventTargetElementForDocument):
(WebCore::Document::updateHoverActiveState):

  • dom/DocumentStyleSheetCollection.cpp:

(WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):

  • dom/Element.cpp:

(WebCore::Element::computeInheritedLanguage):

  • dom/Element.h:

(WebCore::Node::parentElement):

  • dom/ElementTraversal.h:

(WebCore::Traversal<Element>::nextTemplate):
(WebCore::ElementTraversal::previousIncludingPseudo):
(WebCore::ElementTraversal::nextIncludingPseudo):
(WebCore::ElementTraversal::nextIncludingPseudoSkippingChildren):
(WebCore::ElementTraversal::pseudoAwarePreviousSibling):

  • dom/EventDispatcher.cpp:

(WebCore::WindowEventContext::WindowEventContext):
(WebCore::EventDispatcher::dispatchEvent):
(WebCore::nodeOrHostIfPseudoElement):
(WebCore::EventPath::EventPath):

  • dom/EventTarget.cpp:

(WebCore::EventTarget::fireEventListeners):

  • dom/KeyboardEvent.cpp:

(WebCore::findKeyboardEvent):

  • dom/LiveNodeList.cpp:

(WebCore::LiveNodeList::namedItem):

  • dom/MessagePort.cpp:

(WebCore::MessagePort::dispatchMessages):

  • dom/MouseEvent.cpp:

(WebCore::SimulatedMouseEvent::SimulatedMouseEvent):

  • dom/NamedNodeMap.cpp:

(WebCore::NamedNodeMap::setNamedItem):

  • dom/Node.cpp:

(WebCore::Node::dumpStatistics):
(WebCore::Node::pseudoAwarePreviousSibling):
(WebCore::Node::pseudoAwareNextSibling):
(WebCore::Node::computedStyle):
(WebCore::Node::parentOrShadowHostElement):
(WebCore::Node::rootEditableElement):
(WebCore::Node::ancestorElement):
(WebCore::Node::compareDocumentPosition):
(WebCore::appendAttributeDesc):
(WebCore::Node::showNodePathForThis):
(WebCore::Node::enclosingLinkEventParentOrSelf):
(WebCore::Node::dispatchEvent):
(WebCore::Node::defaultEventHandler):

  • dom/NodeRenderingTraversal.cpp:

(WebCore::NodeRenderingTraversal::nodeCanBeDistributed):
(WebCore::NodeRenderingTraversal::traverseParent):

  • dom/NodeTraversal.cpp:

(WebCore::NodeTraversal::previousIncludingPseudo):
(WebCore::NodeTraversal::nextIncludingPseudo):
(WebCore::NodeTraversal::nextIncludingPseudoSkippingChildren):

  • dom/Position.cpp:

(WebCore::Position::element):
(WebCore::endsOfNodeAreVisuallyDistinctPositions):
(WebCore::Position::isRenderedCharacter):
(WebCore::Position::leadingWhitespacePosition):

  • dom/Range.cpp:

(WebCore::Range::insertNode):
(WebCore::Range::getBorderAndTextQuads):

  • dom/ScriptElement.cpp:

(WebCore::toScriptElementIfPossible):

  • dom/ShadowRoot.h:

(WebCore::Node::parentOrShadowHostNode):

  • dom/Text.cpp:

(WebCore::earliestLogicallyAdjacentTextNode):
(WebCore::latestLogicallyAdjacentTextNode):
(WebCore::isSVGShadowText):

  • dom/TextNodeTraversal.cpp:

(WebCore::TextNodeTraversal::contentsAsString):

  • dom/TextNodeTraversal.h:

(WebCore::TextNodeTraversal::firstTextChildTemplate):
(WebCore::TextNodeTraversal::firstTextWithinTemplate):
(WebCore::TextNodeTraversal::traverseNextTextTemplate):
(WebCore::TextNodeTraversal::nextSibling):

  • dom/TreeScopeAdopter.cpp:

(WebCore::TreeScopeAdopter::moveTreeToNewScope):
(WebCore::TreeScopeAdopter::moveNodeToNewDocument):

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::isNewLineAtPosition):
(WebCore::ApplyBlockElementCommand::endOfNextParagrahSplittingTextNodesIfNeeded):

  • editing/ApplyStyleCommand.cpp:

(WebCore::isLegacyAppleStyleSpan):
(WebCore::isStyleSpanOrSpanWithOnlyStyleAttribute):
(WebCore::isSpanWithoutAttributesOrUnstyledStyleSpan):
(WebCore::isEmptyFontTag):
(WebCore::ApplyStyleCommand::applyBlockStyle):
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
(WebCore::dummySpanAncestorForNode):
(WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
(WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
(WebCore::ApplyStyleCommand::highestAncestorWithConflictingInlineStyle):
(WebCore::ApplyStyleCommand::applyInlineStyleToPushDown):
(WebCore::ApplyStyleCommand::splitTextAtEnd):
(WebCore::ApplyStyleCommand::splitTextElementAtEnd):
(WebCore::ApplyStyleCommand::shouldSplitTextElement):
(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement):
(WebCore::ApplyStyleCommand::applyInlineStyleChange):
(WebCore::ApplyStyleCommand::joinChildTextNodes):

  • editing/BreakBlockquoteCommand.cpp:

(WebCore::BreakBlockquoteCommand::doApply):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::isRemovableBlock):
(WebCore::CompositeEditCommand::insertNodeAt):
(WebCore::CompositeEditCommand::canRebalance):
(WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit):
(WebCore::CompositeEditCommand::deleteInsignificantText):
(WebCore::CompositeEditCommand::removePlaceholderAt):
(WebCore::CompositeEditCommand::cleanupAfterDeletion):
(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/DeleteButtonController.cpp:

(WebCore::enclosingDeletableElement):

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::handleGeneralDelete):
(WebCore::DeleteSelectionCommand::fixupWhitespace):
(WebCore::DeleteSelectionCommand::doApply):

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::wrappingStyleForSerialization):

  • editing/Editor.cpp:

(WebCore::imageElementFromImageDocument):
(WebCore::Editor::shouldInsertFragment):
(WebCore::Editor::setBaseWritingDirection):
(WebCore::Editor::setComposition):
(WebCore::Editor::isSpellCheckingEnabledFor):
(WebCore::Editor::applyEditingStyleToElement):

  • editing/FormatBlockCommand.cpp:

(WebCore::isElementForFormatBlock):

  • editing/FrameSelection.cpp:

(WebCore::removingNodeRemovesPosition):
(WebCore::CaretBase::paintCaret):
(WebCore::FrameSelection::debugRenderer):
(WebCore::FrameSelection::selectAll):
(WebCore::scanForForm):

  • editing/InsertLineBreakCommand.cpp:

(WebCore::InsertLineBreakCommand::doApply):

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::mergeWithNeighboringLists):

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::doApply):

  • editing/InsertTextCommand.cpp:

(WebCore::InsertTextCommand::insertTab):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::haveSameTagName):
(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
(WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
(WebCore::ReplaceSelectionCommand::shouldPerformSmartReplace):
(WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace):
(WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
(WebCore::ReplaceSelectionCommand::insertAsListItems):
(WebCore::ReplaceSelectionCommand::performTrivialReplace):

  • editing/SpellChecker.cpp:

(WebCore::SpellChecker::isCheckable):

  • editing/SplitTextNodeContainingElementCommand.cpp:

(WebCore::SplitTextNodeContainingElementCommand::doApply):

  • editing/TextIterator.cpp:

(WebCore::isRendererReplacedElement):

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::isInPasswordField):

  • editing/VisibleUnits.cpp:

(WebCore::startPositionForLine):
(WebCore::endPositionForLine):
(WebCore::startOfParagraph):
(WebCore::endOfParagraph):

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverter::aggregatedAttributesForAncestors):
(HTMLConverter::aggregatedAttributesForElementAndItsAncestors):
(WebCore::editingAttributedStringFromRange):

  • editing/htmlediting.cpp:

(WebCore::enclosingBlock):
(WebCore::enclosingElementWithTag):
(WebCore::enclosingAnchorElement):
(WebCore::enclosingList):
(WebCore::lineBreakExistsAtPosition):
(WebCore::areIdenticalElements):
(WebCore::isNonTableCellHTMLBlockElement):
(WebCore::deprecatedEnclosingBlockFlowElement):

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::appendText):
(WebCore::ancestorToRetainStructureAndAppearanceForBlock):
(WebCore::isPlainTextMarkup):

  • fileapi/FileReader.cpp:

(WebCore::FileReader::readAsArrayBuffer):
(WebCore::FileReader::readAsBinaryString):
(WebCore::FileReader::readAsText):
(WebCore::FileReader::readAsDataURL):

  • html/BaseChooserOnlyDateAndTimeInputType.cpp:

(WebCore::BaseChooserOnlyDateAndTimeInputType::updateAppearance):

  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::findAssociatedForm):

  • html/HTMLAnchorElement.cpp:

(WebCore::appendServerMapMousePosition):
(WebCore::HTMLAnchorElement::defaultEventHandler):
(WebCore::HTMLAnchorElement::eventType):
(WebCore::isEnterKeyKeydownEvent):
(WebCore::isLinkClick):

  • html/HTMLAreaElement.cpp:

(WebCore::HTMLAreaElement::imageElement):

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::insertedInto):

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::defaultEventHandler):

  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::namedItem):
(WebCore::HTMLCollection::updateNamedElementCache):

  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::bgColor):
(WebCore::HTMLDocument::setBgColor):
(WebCore::HTMLDocument::fgColor):
(WebCore::HTMLDocument::setFgColor):
(WebCore::HTMLDocument::alinkColor):
(WebCore::HTMLDocument::setAlinkColor):
(WebCore::HTMLDocument::linkColor):
(WebCore::HTMLDocument::setLinkColor):
(WebCore::HTMLDocument::vlinkColor):
(WebCore::HTMLDocument::setVlinkColor):
(WebCore::HTMLDocument::isFrameSet):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::matchesReadWritePseudoClass):
(WebCore::mergeWithNextTextNode):
(WebCore::HTMLElement::setOuterHTML):
(WebCore::HTMLElement::setOuterText):
(WebCore::HTMLElement::insertAdjacentElement):
(WebCore::contextElementForInsertion):
(WebCore::HTMLElement::directionality):
(WebCore::HTMLElement::dirAttributeChanged):

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::rendererIsNeeded):

  • html/HTMLFieldSetElement.cpp:

(WebCore::updateFromControlElementsAncestorDisabledStateUnder):
(WebCore::HTMLFieldSetElement::disabledStateChanged):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::computeIsDisabledByFieldsetAncestor):
(WebCore::shouldAutofocus):
(WebCore::HTMLFormControlElement::enclosingFormControlElement):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::rendererIsNeeded):
(WebCore::HTMLFormElement::submitImplicitly):
(WebCore::submitElementFromEvent):
(WebCore::HTMLFormElement::validateInteractively):
(WebCore::HTMLFormElement::submit):
(WebCore::HTMLFormElement::reset):
(WebCore::HTMLFormElement::defaultButton):
(WebCore::HTMLFormElement::documentDidResumeFromPageCache):

  • html/HTMLFrameOwnerElement.cpp:

(WebCore::HTMLFrameOwnerElement::getSVGDocument):

  • html/HTMLFrameSetElement.cpp:

(WebCore::HTMLFrameSetElement::defaultEventHandler):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::defaultEventHandler):
(WebCore::HTMLInputElement::dataList):

  • html/HTMLLabelElement.cpp:

(WebCore::nodeAsSupportedLabelableElement):

  • html/HTMLLegendElement.cpp:

(WebCore::HTMLLegendElement::virtualForm):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::hasFallbackContent):
(WebCore::HTMLObjectElement::updateDocNamedItem):

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::recalcSelectOptions):
(WebCore::HTMLOptGroupElement::ownerSelectElement):

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::setText):
(WebCore::HTMLOptionElement::index):
(WebCore::HTMLOptionElement::ownerDataListElement):
(WebCore::HTMLOptionElement::ownerSelectElement):
(WebCore::HTMLOptionElement::textIndentedToRespectGroupLabel):
(WebCore::HTMLOptionElement::isDisabledFormControl):
(WebCore::HTMLOptionElement::collectOptionInnerText):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::addPlugInsFromNodeListMatchingPlugInOrigin):
(WebCore::HTMLPlugInImageElement::defaultEventHandler):

  • html/HTMLScriptElement.cpp:

(WebCore::HTMLScriptElement::setText):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::nextValidIndex):
(WebCore::HTMLSelectElement::saveLastSelection):
(WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
(WebCore::HTMLSelectElement::updateListBoxSelection):
(WebCore::HTMLSelectElement::listBoxOnChange):
(WebCore::HTMLSelectElement::recalcListItems):
(WebCore::HTMLSelectElement::selectedIndex):
(WebCore::HTMLSelectElement::selectOption):
(WebCore::HTMLSelectElement::optionToListIndex):
(WebCore::HTMLSelectElement::listToOptionIndex):
(WebCore::HTMLSelectElement::deselectItemsWithoutValidation):
(WebCore::HTMLSelectElement::saveFormControlState):
(WebCore::HTMLSelectElement::searchOptionsForValue):
(WebCore::HTMLSelectElement::restoreFormControlState):
(WebCore::HTMLSelectElement::appendFormData):
(WebCore::HTMLSelectElement::reset):
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::updateSelectedState):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
(WebCore::HTMLSelectElement::defaultEventHandler):
(WebCore::HTMLSelectElement::lastSelectedListIndex):
(WebCore::HTMLSelectElement::optionAtIndex):
(WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
(WebCore::HTMLSelectElement::length):

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):

  • html/HTMLSummaryElement.cpp:

(WebCore::isClickableControl):
(WebCore::HTMLSummaryElement::defaultEventHandler):

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::caption):

  • html/HTMLTablePartElement.cpp:

(WebCore::HTMLTablePartElement::findParentTable):

  • html/HTMLTableRowElement.cpp:

(WebCore::HTMLTableRowElement::rowIndex):

  • html/HTMLTableRowsCollection.cpp:

(WebCore::HTMLTableRowsCollection::rowAfter):
(WebCore::HTMLTableRowsCollection::lastRow):

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::defaultEventHandler):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::innerTextValue):
(WebCore::positionForIndex):
(WebCore::HTMLTextFormControlElement::indexForPosition):
(WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks):

  • html/HTMLTitleElement.cpp:

(WebCore::HTMLTitleElement::setText):

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::mediaElement):

  • html/ImageDocument.cpp:

(WebCore::ImageEventListener::handleEvent):

  • html/InputType.cpp:

(WebCore::InputType::shouldSubmitImplicitly):

  • html/MediaDocument.cpp:

(WebCore::ancestorVideoElement):
(WebCore::MediaDocument::defaultEventHandler):

  • html/RadioInputType.cpp:

(WebCore::RadioInputType::handleKeydownEvent):
(WebCore::RadioInputType::isKeyboardFocusable):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::shouldSubmitImplicitly):

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::hasImpliedEndTag):
(WebCore::HTMLConstructionSite::attachLater):
(WebCore::HTMLConstructionSite::insertHTMLFormElement):
(WebCore::HTMLConstructionSite::insertTextNode):
(WebCore::HTMLConstructionSite::ownerDocumentForCurrentNode):
(WebCore::HTMLConstructionSite::findFosterSite):

  • html/parser/HTMLElementStack.cpp:

(WebCore::HTMLNames::isScopeMarker):
(WebCore::HTMLNames::isTableScopeMarker):
(WebCore::HTMLNames::isSelectScopeMarker):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processCharacterBuffer):

  • html/shadow/InsertionPoint.h:

(WebCore::isActiveInsertionPoint):
(WebCore::parentNodeForDistribution):
(WebCore::parentElementForDistribution):

  • html/shadow/MediaControlElementTypes.cpp:

(WebCore::parentMediaElement):
(WebCore::mediaControlElementType):
(WebCore::MediaControlVolumeSliderElement::defaultEventHandler):

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlPanelElement::defaultEventHandler):
(WebCore::MediaControlVolumeSliderContainerElement::defaultEventHandler):
(WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler):
(WebCore::MediaControlTimelineElement::defaultEventHandler):

  • html/shadow/MediaControls.cpp:

(WebCore::MediaControls::containsRelatedTarget):

  • html/shadow/MediaControlsApple.cpp:

(WebCore::MediaControlsAppleEventListener::handleEvent):

  • html/shadow/SliderThumbElement.cpp:

(WebCore::SliderThumbElement::defaultEventHandler):

  • html/shadow/SpinButtonElement.cpp:

(WebCore::SpinButtonElement::defaultEventHandler):
(WebCore::SpinButtonElement::forwardEvent):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
(WebCore::SearchFieldCancelButtonElement::defaultEventHandler):

  • html/track/VTTCue.cpp:

(WebCore::VTTCue::copyWebVTTNodeToDOMTree):
(WebCore::VTTCue::markFutureAndPastNodes):

  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::elementForId):
(WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::unbind):
(WebCore::InspectorDOMAgent::assertDocument):
(WebCore::InspectorDOMAgent::assertElement):
(WebCore::InspectorDOMAgent::querySelector):
(WebCore::InspectorDOMAgent::querySelectorAll):
(WebCore::InspectorDOMAgent::setNodeName):
(WebCore::InspectorDOMAgent::buildObjectForNode):
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
(WebCore::InspectorDOMAgent::innerParentNode):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::dispatchEventAsContextMenuEvent):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::frameForScriptExecutionContext):
(WebCore::InspectorInstrumentation::instrumentingAgentsForNonDocumentContext):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::instrumentingAgentsForContext):

  • inspector/InspectorNodeFinder.cpp:

(WebCore::InspectorNodeFinder::searchUsingDOMTreeTraversal):
(WebCore::InspectorNodeFinder::searchUsingXPath):
(WebCore::InspectorNodeFinder::searchUsingCSSSelectors):

  • inspector/InspectorOverlay.cpp:

(WebCore::buildObjectForElementInfo):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheet::inlineStyleSheetText):

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::create):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::handleFallbackContent):

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::loadPlugin):

  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoader::create):
(WebCore::ThreadableLoader::loadResourceSynchronously):

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::removeRequestFromCache):
(WebCore::MemoryCache::removeRequestFromSessionCaches):

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::attributeChanged):

  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::getSelectedSemanticsChild):

  • page/Chrome.cpp:

(WebCore::Chrome::setToolTip):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::maybeCreateContextMenu):
(WebCore::ContextMenuController::populate):

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::install):
(WebCore::DOMTimer::fired):

  • page/DragController.cpp:

(WebCore::elementUnderMouse):
(WebCore::DragController::operationForLoad):
(WebCore::DragController::canProcessDrag):
(WebCore::DragController::draggableElement):

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEvent):
(WebCore::isSubmitImage):
(WebCore::targetIsFrame):
(WebCore::findDropZone):
(WebCore::EventHandler::updateDragAndDrop):
(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::handleTextInputEvent):

  • page/FocusController.cpp:

(WebCore::FocusNavigationScope::owner):
(WebCore::FocusController::findFocusableElementDescendingDownIntoFrameDocument):
(WebCore::FocusController::findFocusableElementAcrossFocusScope):
(WebCore::FocusController::findElementWithExactTabIndex):
(WebCore::nextElementWithGreaterTabIndex):
(WebCore::previousElementWithLowerTabIndex):
(WebCore::FocusController::nextFocusableElement):
(WebCore::FocusController::previousFocusableElement):
(WebCore::clearSelectionIfNeeded):
(WebCore::FocusController::advanceFocusDirectionally):

  • page/Frame.cpp:

(WebCore::Frame::searchForLabelsBeforeElement):
(WebCore::Frame::setPageAndTextZoomFactors):

  • page/FrameView.cpp:

(WebCore::FrameView::init):
(WebCore::FrameView::scrollToAnchor):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::serializeFrame):

  • page/SpatialNavigation.cpp:

(WebCore::FocusCandidate::FocusCandidate):
(WebCore::scrollInDirection):
(WebCore::scrollableEnclosingBoxOrParentFrameForNodeInDirection):
(WebCore::canScrollInDirection):
(WebCore::nodeRectInAbsoluteCoordinates):
(WebCore::areElementsOnSameLine):

  • page/ios/FrameIOS.mm:

(WebCore::ancestorRespondingToClickEvents):

  • platform/network/FormData.cpp:

(WebCore::FormData::appendKeyValuePairItems):

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::setInnerNode):
(WebCore::HitTestResult::setInnerNonSharedNode):
(WebCore::HitTestResult::title):
(WebCore::HitTestResult::innerTextIfTruncated):
(WebCore::HitTestResult::mediaSupportsFullscreen):
(WebCore::HitTestResult::enterFullscreenForVideo):
(WebCore::HitTestResult::mediaIsVideo):
(WebCore::HitTestResult::innerElement):
(WebCore::HitTestResult::innerNonSharedElement):

  • rendering/RenderBlockFlow.cpp:

(WebCore::resizeTextPermitted):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::sizesLogicalWidthToFitContent):

  • rendering/RenderCounter.cpp:

(WebCore::planCounter):

  • rendering/RenderDetailsMarker.cpp:

(WebCore::RenderDetailsMarker::isOpen):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):

  • rendering/RenderFileUploadControl.cpp:

(WebCore::RenderFileUploadControl::uploadButton):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintAreaElementFocusRing):
(WebCore::RenderImage::paintIntoRect):
(WebCore::RenderImage::imageMap):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::resize):
(WebCore::RenderLayer::updateSnapOffsets):

  • rendering/RenderLayerBacking.cpp:

(WebCore::isRestartedPlugin):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::updateFromElement):
(WebCore::RenderListBox::addFocusRingRects):
(WebCore::RenderListBox::paintItemForeground):
(WebCore::RenderListBox::paintItemBackground):

  • rendering/RenderMarquee.cpp:

(WebCore::RenderMarquee::marqueeSpeed):

  • rendering/RenderMenuList.cpp:

(WebCore::selectedOptionCount):
(RenderMenuList::updateOptionsWidth):
(RenderMenuList::setTextFromOption):
(RenderMenuList::itemText):
(RenderMenuList::itemIsEnabled):
(RenderMenuList::itemIsLabel):
(RenderMenuList::itemIsSelected):

  • rendering/RenderMeter.cpp:

(WebCore::RenderMeter::meterElement):

  • rendering/RenderNamedFlowThread.cpp:

(WebCore::RenderNamedFlowThread::isChildAllowed):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::addPDFURLRect):
(WebCore::RenderObject::shouldRespectImageOrientation):
(WebCore::RenderObject::updateDragState):
(WebCore::RenderObject::getUncachedPseudoStyle):
(WebCore::RenderObject::getTextDecorationColors):

  • rendering/RenderProgress.cpp:

(WebCore::RenderProgress::progressElement):

  • rendering/RenderSnapshottedPlugIn.cpp:

(WebCore::RenderSnapshottedPlugIn::handleEvent):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
(WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::parseColSpanFromDOM):
(WebCore::RenderTableCell::parseRowSpanFromDOM):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::isEnabled):
(WebCore::RenderTheme::isFocused):
(WebCore::RenderTheme::isPressed):
(WebCore::RenderTheme::isSpinUpButtonPartPressed):
(WebCore::RenderTheme::isReadOnlyControl):
(WebCore::RenderTheme::isHovered):
(WebCore::RenderTheme::isSpinUpButtonPartHovered):
(WebCore::RenderTheme::paintSliderTicks):

  • rendering/RenderThemeGtk.cpp:

(WebCore::getMediaElementFromRenderObject):
(WebCore::nodeHasClass):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::updatePressedState):
(WebCore::RenderThemeMac::paintSliderThumb):
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):

  • rendering/RenderTreeAsText.cpp:

(WebCore::isEmptyOrUnstyledAppleStyleSpan):
(WebCore::RenderTreeAsText::writeRenderObject):

  • rendering/TextAutosizer.cpp:

(WebCore::TextAutosizer::isAutosizingContainer):
(WebCore::TextAutosizer::containerContainsOneOfTags):

  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::RenderMathMLBlock::isChildAllowed):

  • rendering/svg/RenderSVGGradientStop.cpp:

(WebCore::RenderSVGGradientStop::gradientElement):

  • rendering/svg/RenderSVGTransformableContainer.cpp:

(WebCore::RenderSVGTransformableContainer::calculateLocalTransform):

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::prepareToRenderSVGContent):

  • style/StyleResolveTree.cpp:

(WebCore::Style::invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded):
(WebCore::Style::attachChildren):
(WebCore::Style::attachDistributedChildren):
(WebCore::Style::detachDistributedChildren):
(WebCore::Style::detachChildren):
(WebCore::Style::resolveShadowTree):
(WebCore::Style::resolveTree):

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::defaultEventHandler):

  • svg/SVGAltGlyphElement.cpp:

(WebCore::SVGAltGlyphElement::hasValidGlyphElements):

  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::hasValidAttributeType):

  • svg/SVGDocument.cpp:

(WebCore::SVGDocument::rootElement):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::isOutermostSVGSVGElement):
(WebCore::SVGElement::ownerSVGElement):
(WebCore::SVGElement::viewportElement):

  • svg/SVGFontData.cpp:

(WebCore::SVGFontData::applySVGGlyphSelection):

  • svg/SVGFontFaceElement.cpp:

(WebCore::SVGFontFaceElement::associatedFontElement):
(WebCore::SVGFontFaceElement::rebuildFontFace):

  • svg/SVGFontFaceSrcElement.cpp:

(WebCore::SVGFontFaceSrcElement::childrenChanged):

  • svg/SVGGlyphElement.cpp:

(WebCore::SVGGlyphElement::invalidateGlyphCache):

  • svg/SVGHKernElement.cpp:

(WebCore::SVGHKernElement::insertedInto):
(WebCore::SVGHKernElement::removedFrom):

  • svg/SVGLengthContext.cpp:

(WebCore::SVGLengthContext::determineViewport):

  • svg/SVGLinearGradientElement.cpp:

(WebCore::SVGLinearGradientElement::collectGradientAttributes):

  • svg/SVGLocatable.cpp:

(WebCore::isViewportElement):
(WebCore::SVGLocatable::getTransformToElement):

  • svg/SVGMPathElement.cpp:

(WebCore::SVGMPathElement::pathElement):
(WebCore::SVGMPathElement::notifyParentOfPathChange):

  • svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::invalidateMPathDependencies):

  • svg/SVGPatternElement.cpp:

(WebCore::SVGPatternElement::collectPatternAttributes):

  • svg/SVGRadialGradientElement.cpp:

(WebCore::SVGRadialGradientElement::collectGradientAttributes):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::setupInitialView):

  • svg/SVGTextContentElement.cpp:

(WebCore::SVGTextContentElement::elementFromRenderer):

  • svg/SVGUseElement.cpp:

(WebCore::dumpInstanceTree):
(WebCore::SVGUseElement::toClipPath):
(WebCore::SVGUseElement::expandUseElementsInShadowTree):
(WebCore::SVGUseElement::expandSymbolElementsInShadowTree):

  • svg/SVGVKernElement.cpp:

(WebCore::SVGVKernElement::insertedInto):
(WebCore::SVGVKernElement::removedFrom):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::buildPendingResource):

  • svg/graphics/SVGImageCache.cpp:

(WebCore::SVGImageCache::imageForRenderer):

  • testing/Internals.cpp:

(WebCore::Internals::shadowRootType):
(WebCore::Internals::visiblePlaceholder):
(WebCore::Internals::selectColorInColorChooser):
(WebCore::Internals::wasLastChangeUserEdit):
(WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):
(WebCore::Internals::isSelectPopupVisible):

  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::injectInternalsObject):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::open):

  • xml/XPathFunctions.cpp:

(WebCore::XPath::expandedNameLocalPart):
(WebCore::XPath::FunLang::evaluate):

  • xml/XPathNodeSet.cpp:

(WebCore::XPath::sortBlock):
(WebCore::XPath::NodeSet::sort):
(WebCore::XPath::findRootNode):
(WebCore::XPath::NodeSet::traversalSort):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::XMLDocumentParser):

Source/WebKit/ios:

  • WebCoreSupport/WebChromeClientIOS.mm:

(WebChromeClientIOS::focusedElementChanged):

Source/WebKit/mac:

  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::focusedElementChanged):

  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::textFieldDidBeginEditing):
(WebEditorClient::textFieldDidEndEditing):
(WebEditorClient::textDidChangeInTextField):
(WebEditorClient::doTextFieldCommandFromEvent):
(WebEditorClient::textWillBeDeletedInTextField):
(WebEditorClient::textDidChangeInTextArea):

  • WebView/WebHTMLRepresentation.mm:

(inputElementFromDOMElement):
(searchForLabelsBeforeElement):

  • WebView/WebRenderLayer.mm:

(+[WebRenderLayer nameForLayer:]):

Source/WebKit/win:

  • DOMCoreClasses.cpp:

(DOMElement::createInstance):

  • DOMHTMLClasses.cpp:

(DOMHTMLDocument::body):
(DOMHTMLDocument::forms):
(DOMHTMLElement::idName):
(DOMHTMLElement::innerText):
(DOMHTMLElement::setInnerText):
(DOMHTMLFormElement::action):
(DOMHTMLFormElement::method):
(DOMHTMLOptionElement::text):
(DOMHTMLOptionElement::label):
(DOMHTMLInputElement::form):
(DOMHTMLInputElement::disabled):
(DOMHTMLInputElement::readOnly):
(DOMHTMLInputElement::setType):
(DOMHTMLInputElement::value):
(DOMHTMLInputElement::setValue):
(DOMHTMLInputElement::setValueForUser):
(DOMHTMLInputElement::select):
(DOMHTMLInputElement::setSelectionStart):
(DOMHTMLInputElement::selectionStart):
(DOMHTMLInputElement::setSelectionEnd):
(DOMHTMLInputElement::selectionEnd):
(DOMHTMLInputElement::isTextField):
(DOMHTMLInputElement::rectOnScreen):
(DOMHTMLInputElement::replaceCharactersInRange):
(DOMHTMLInputElement::selectedRange):
(DOMHTMLInputElement::setAutofilled):
(DOMHTMLInputElement::isAutofilled):
(DOMHTMLInputElement::isUserEdited):
(DOMHTMLTextAreaElement::form):
(DOMHTMLTextAreaElement::value):
(DOMHTMLTextAreaElement::setValue):
(DOMHTMLTextAreaElement::select):
(DOMHTMLTextAreaElement::isUserEdited):

  • WebFrame.cpp:

(formElementFromDOMElement):
(inputElementFromDOMElement):
(WebFrame::elementWithName):

Source/WebKit2:

  • Shared/WebRenderObject.cpp:

(WebKit::WebRenderObject::WebRenderObject):

  • WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:

(WebKit::InjectedBundleHitTestResult::mediaType):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::handleEvent):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::focusedElementChanged):

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::textFieldDidBeginEditing):
(WebKit::WebEditorClient::textFieldDidEndEditing):
(WebKit::WebEditorClient::textDidChangeInTextField):
(WebKit::WebEditorClient::textDidChangeInTextArea):
(WebKit::WebEditorClient::doTextFieldCommandFromEvent):
(WebKit::WebEditorClient::textWillBeDeletedInTextField):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::containsAnyFormElements):
(WebKit::WebFrame::containsAnyFormControls):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::pdfDocumentForPrintingFrame):
(WebKit::WebPage::determinePrimarySnapshottedPlugIn):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::blurAssistedNode):
(WebKit::WebPage::setAssistedNodeValue):
(WebKit::WebPage::setAssistedNodeValueAsNumber):
(WebKit::WebPage::setAssistedNodeSelectedIndex):
(WebKit::WebPage::getPositionInformation):
(WebKit::WebPage::performActionOnElement):
(WebKit::isAssistableNode):
(WebKit::WebPage::getAssistedNodeInformation):

Source/WTF:

  • wtf/TypeCasts.h:

(WTF::is):

12:38 PM Changeset in webkit [174224] by fpizlo@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

Object allocation sinking should have a sound story for picking materialization points
https://bugs.webkit.org/show_bug.cgi?id=137315

Reviewed by Oliver Hunt.

The only missing piece was having the object allocation sinking phase locate materialization
points that were at CFG edges.

The logic for how and why this "just works" relies on some properties of critical edge
breaking, so I was fairly careful in how I did this. Also, this requires inserting things at
the "first origin node" of a block - that is the first node in a block that has a NodeOrigin
and therefore is allowed to exit. We basically had support for such a notion before, but
didn't close the loop on it; this patch does that.

Also I added the ability to provide a BasicBlock* as context for a DFG_ASSERT().

  • dfg/DFGBasicBlock.cpp:

(JSC::DFG::BasicBlock::firstOriginNode):
(JSC::DFG::BasicBlock::firstOrigin):

  • dfg/DFGBasicBlock.h:
  • dfg/DFGCriticalEdgeBreakingPhase.cpp:

(JSC::DFG::CriticalEdgeBreakingPhase::breakCriticalEdge):

  • dfg/DFGGraph.cpp:

(JSC::DFG::crash):
(JSC::DFG::Graph::handleAssertionFailure):

  • dfg/DFGGraph.h:
  • dfg/DFGLoopPreHeaderCreationPhase.cpp:

(JSC::DFG::createPreHeader):

  • dfg/DFGNodeOrigin.h:

(JSC::DFG::NodeOrigin::isSet):

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::determineMaterializationPoints):
(JSC::DFG::ObjectAllocationSinkingPhase::placeMaterializationPoints):
(JSC::DFG::ObjectAllocationSinkingPhase::promoteSunkenFields):
(JSC::DFG::ObjectAllocationSinkingPhase::createMaterialize):

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validate):

  • runtime/Options.h:
12:14 PM Changeset in webkit [174223] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

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

While number of failures is reasonable with 2 processes, test
results seem to be inconsistent between runs (Requested by
rfong on #webkit).

Reverted changeset:

"[Windows] Back to 2 child processes for NRWT on Windows."
http://trac.webkit.org/changeset/174120

11:35 AM Changeset in webkit [174222] by cabanier@adobe.com
  • 2 edits in trunk/Source/WebCore

Clean up loops in CSSGradientValue.cpp
https://bugs.webkit.org/show_bug.cgi?id=137332

Reviewed by Andreas Kling.

This patch cleans up a couple of for loops by using C++11 syntax and
fixes some grammar in a comment.

No new tests, no behavior change.

  • css/CSSGradientValue.cpp:

(WebCore::CSSGradientValue::gradientWithStylesResolved): Move for loops to C++11.
(WebCore::CSSGradientValue::addStops): Update grammar in comment for gradient midpoints.

10:39 AM Changeset in webkit [174221] by jeffm@apple.com
  • 3 edits in trunk/Tools

DumpRenderTree and WebKitTestRunner should use WebKitystemInterfaceYosemite when building on Yosemite
https://bugs.webkit.org/show_bug.cgi?id=137347

Reviewed by Dan Bernstein.

  • DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:

Use WebKitSystemInterfaceYosemite on OS X 10.10.

  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:

Ditto.

9:24 AM Changeset in webkit [174220] by dbates@webkit.org
  • 12 edits
    2 adds in trunk/Source

Clean up: Move XPC forward declarations in JavaScriptCore to WTF SPI wrapper header
https://bugs.webkit.org/show_bug.cgi?id=137277

Reviewed by Alexey Proskuryakov.

Source/JavaScriptCore:

Use wtf/spi/darwin/XPCSPI.h instead of including the corresponding XPC headers/
forward declaring XPC functions.

  • inspector/remote/RemoteInspector.mm:
  • inspector/remote/RemoteInspectorXPCConnection.h:
  • inspector/remote/RemoteInspectorXPCConnection.mm:

Source/WebKit2:

Use wtf/spi/darwin/XPCSPI.h instead of including the corresponding XPC headers/
forward declaring XPC functions.

  • Platform/IPC/Connection.h:
  • Platform/IPC/mac/ConnectionMac.mm:
  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

Source/WTF:

Towards centralizing the declarations of XPC functions used in JavaScriptCore
and WebKit2, add a header that wraps these function declarations called XPCSPI.h
and use it instead of including the corresponding XPC API/SPI headers/forward
declaring XPC functions. This will also aid in the effort to make WebKit2 build
for iOS with the public iOS SDK.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/spi/darwin/XPCSPI.h: Added.
9:14 AM Changeset in webkit [174219] by andersca@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Use variadic templates for jsMakeNontrivialString
https://bugs.webkit.org/show_bug.cgi?id=137325

Reviewed by Sam Weinig.

  • runtime/JSString.h:

(JSC::jsNontrivialString):
Add an overload that takes an rvalue reference to a String so we can transfer ownership easily.

  • runtime/JSStringBuilder.h:

(JSC::jsMakeNontrivialString):
Make this a variadic function template, with a single-parameter version that can steal the string if it's OK to do so.

8:57 AM Changeset in webkit [174218] by roger_fong@apple.com
  • 2 edits in trunk/LayoutTests

[ Windows ] More Windows test gardening to get bots green Part 4.

  • platform/win/TestExpectations: Hopefully the last batch of indiscriminate mass skipping.
8:32 AM Changeset in webkit [174217] by k.czech@samsung.com
  • 5 edits in trunk

AX: Default orientation for aria scrollbars should be vertical
https://bugs.webkit.org/show_bug.cgi?id=137341

Reviewed by Chris Fleizach.

Source/WebCore:

Default orientation for aria scrollbars regarding w3c spec should be vertical

No new tests, covering by existing one.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::orientation):

LayoutTests:

Update expectation and test for having new test case.

  • accessibility/aria-scrollbar-role-expected.txt:
  • accessibility/aria-scrollbar-role.html:
8:15 AM Changeset in webkit [174216] by mark.lam@apple.com
  • 26 edits in trunk/Source

Fixed the Inspector to be able to properly distinguish between scope types.
<https://webkit.org/b/137279>

Source/JavaScriptCore:

Reviewed by Geoffrey Garen.

The pre-existing code incorrectly labels Catch Scopes and Function Name Scopes
as With Scopes. This patch will fix this.

  • bytecode/BytecodeList.json:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitPushFunctionNameScope):
(JSC::BytecodeGenerator::emitPushCatchScope):

  • These now passes stores the desired JSNameScope::Type in a bytecode operand.
  • debugger/DebuggerScope.cpp:

(JSC::DebuggerScope::isCatchScope):
(JSC::DebuggerScope::isFunctionNameScope):

  • Added queries to be able to explicitly test if the scope is a CatchScope or FunctionNameScope. The FunctionNameScope is the case where the NameScope is used to capture the function name of a function expression.
  • debugger/DebuggerScope.h:
  • inspector/InjectedScriptSource.js:
  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::JSJavaScriptCallFrame::scopeType):

  • inspector/JSJavaScriptCallFrame.h:
  • inspector/JSJavaScriptCallFramePrototype.cpp:

(Inspector::JSJavaScriptCallFramePrototype::finishCreation):
(Inspector::jsJavaScriptCallFrameConstantFUNCTION_NAME_SCOPE):

  • inspector/protocol/Debugger.json:
  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

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

(JSC::JIT::callOperation):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_push_name_scope):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_push_name_scope):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter.asm:
  • runtime/JSFunction.cpp:

(JSC::JSFunction::addNameScopeIfNeeded):

  • runtime/JSNameScope.h:

(JSC::JSNameScope::create):
(JSC::JSNameScope::isFunctionNameScope):
(JSC::JSNameScope::isCatchScope):
(JSC::JSNameScope::JSNameScope):

  • Now stores the JSNameScope::Type in a field.

Source/WebInspectorUI:

Reviewed by Geoffrey Garen and Joseph Pecoraro.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Controllers/DebuggerManager.js:
  • UserInterface/Models/ScopeChainNode.js:
  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
  • Added handling of the FunctionNameScope case.
6:06 AM Changeset in webkit [174215] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.6/Source/WebKit2

Merge r174054 - REGRESSION(r172919): WebKitPluginProcess fails to scan GTK+2 plugins after r172919.
https://bugs.webkit.org/show_bug.cgi?id=137191

Reviewed by Philippe Normand.

In r172919 I moved the GTK+ symbols mix check earlier, before the
plugin is loaded and initialized. That made impossible to use the
GTK3 plugin process to scan gtk2 plugins, because we need to load
the plugin to get its metadata. But we don't need to initialize
the plugin to check if it requires GTK2, so we can do that check
in the UI process to decide which plugin process to use.

  • Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:

(WebKit::NetscapePluginModule::getPluginInfoForLoadedPlugin):
Remove the requires GTK2 check.
(WebKit::NetscapePluginModule::scanPlugin): Don't write
requires-gtk2 to stdout.

  • UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:

(WebKit::pluginRequiresGtk2): Helper function to check if the
given plugin path requires GTK2.
(WebKit::PluginProcessProxy::scanPlugin): Check if the plugin path
requires GTK2 and use WebKitPluginProcess2 in such case, or return
early if GTK2 plugins are not enabled. Log error messages when
something fails scanning the plugin to make it easiert to debug
problems in the future.

6:03 AM Changeset in webkit [174214] by Carlos Garcia Campos
  • 3 edits
    29 adds in releases/WebKitGTK/webkit-2.6/Source/WebInspectorUI

Merge r173952 - Unreviewed. Add more free icons for the Web Inspector in GTK+.

Patch by Andres Gomez <Andres Gomez> on 2014-09-25

  • UserInterface/Images/gtk/AUTHORS:
  • UserInterface/Images/gtk/ApplicationCacheManifest.png: Added.
  • UserInterface/Images/gtk/ApplicationCacheManifest@2x.png: Added.
  • UserInterface/Images/gtk/COPYING:
  • UserInterface/Images/gtk/COPYING_LGPL2: Added.
  • UserInterface/Images/gtk/Cookie.png: Added.
  • UserInterface/Images/gtk/Cookie@2x.png: Added.
  • UserInterface/Images/gtk/HoverMenuButton.png: Added.
  • UserInterface/Images/gtk/HoverMenuButton@2x.png: Added.
  • UserInterface/Images/gtk/InstructionPointer.png: Added.
  • UserInterface/Images/gtk/InstructionPointer@2x.png: Added.
  • UserInterface/Images/gtk/Log.png: Added.
  • UserInterface/Images/gtk/Log@2x.png: Added.
  • UserInterface/Images/gtk/Profile.png: Added.
  • UserInterface/Images/gtk/Profile@2x.png: Added.
  • UserInterface/Images/gtk/Recording.png: Added.
  • UserInterface/Images/gtk/Recording@2x.png: Added.
  • UserInterface/Images/gtk/RecordingHovered.png: Added.
  • UserInterface/Images/gtk/RecordingHovered@2x.png: Added.
  • UserInterface/Images/gtk/RecordingStopped.png: Added.
  • UserInterface/Images/gtk/RecordingStopped@2x.png: Added.
  • UserInterface/Images/gtk/Script.png: Added.
  • UserInterface/Images/gtk/Script@2x.png: Added.
  • UserInterface/Images/gtk/ScriptLarge.png: Added.
  • UserInterface/Images/gtk/ScriptLarge@2x.png: Added.
  • UserInterface/Images/gtk/SliderThumb.png: Added.
  • UserInterface/Images/gtk/SliderThumb@2x.png: Added.
  • UserInterface/Images/gtk/SliderThumbPressed.png: Added.
  • UserInterface/Images/gtk/SliderThumbPressed@2x.png: Added.
  • UserInterface/Images/gtk/Stopwatch.png: Added.
  • UserInterface/Images/gtk/Stopwatch@2x.png: Added.
5:55 AM Changeset in webkit [174213] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore/platform/gtk/po

Merge r174100 - Hindi translation updated
https://bugs.webkit.org/show_bug.cgi?id=137021

Patch by Rajesh Ranjan <rajeshkajha@yahoo.com> on 2014-09-30
Reviewed by Philippe Normand.

  • hi.po:
5:54 AM Changeset in webkit [174212] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore/platform/gtk/po

Merge r174099 - Updated Telugu Translation for WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=137027

Patch by Krishnababu Krothapalli <kkrothap@redhat.com> on 2014-09-30
Reviewed by Philippe Normand.

  • te.po:
5:54 AM WebKitGTK/2.6.x edited by Carlos Garcia Campos
(diff)
5:53 AM Changeset in webkit [174211] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebKit2

Merge r174008 - [GTK] Don't include full path names in WebKitEnumTypes.h
https://bugs.webkit.org/show_bug.cgi?id=137148

Reviewed by Carlos Garcia Campos.

Replace @filename@ with @basename@ in the template, since we don't
want to include the full path name in the generated header.

  • UIProcess/API/gtk/WebKitEnumTypes.h.template:
5:49 AM Changeset in webkit [174210] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebKit2

Merge r174104 - [GTK] The remote web inspector shows the HTML content as plain text
https://bugs.webkit.org/show_bug.cgi?id=137250

Reviewed by Gustavo Noronha Silva.

Use GResource API directly to get the resource data, instead of
using the GFile API, and use g_content_type_guess() to get the
MIME Type.

  • UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp:

(WebKit::WebInspectorServer::platformResourceForPath):

5:48 AM WebKitGTK/2.6.x edited by Carlos Garcia Campos
(diff)
5:30 AM Changeset in webkit [174209] by clopez@igalia.com
  • 2 edits in trunk/Tools

[GTK] [JHBuild] Switch sourceware.org mirror to http.

Unreviewed.

The ftp access is recently failing to work as expected, and the
bots fail to download the file.
The same mirror is available via http and seems to work better.

  • gtk/jhbuild.modules:
4:14 AM Changeset in webkit [174208] by ryuan.choi@gmail.com
  • 5 edits in trunk/Source/WebKit2

[EFL][WK2] test_ewk2_view is failed
https://bugs.webkit.org/show_bug.cgi?id=132983

Reviewed by Gyuyoung Kim.

Enable test_ewk2_view because test cases of test_ewk2_view are passed except
for few tests related to device_pixel_ratio.
This patch adds macro guard for ailed test case to CAIRO_SURFACE_SET_DEVICE_SCALE macro.
In addition, fixed some warnings while building with test_ewk2_view.

  • PlatformEfl.cmake: Enables test_ewk2_view.
  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp: Added const keyword for argument to fix the warnings.

(EWK2UnitTest::EWK2UnitTestBase::keyDown):
(EWK2UnitTest::EWK2UnitTestBase::keyUp):

  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
  • UIProcess/API/efl/tests/test_ewk2_view.cpp:

(TEST_F):

3:57 AM Changeset in webkit [174207] by Andres Gomez
  • 47 edits
    9 copies
    7 adds
    12 deletes in trunk/Source/WebInspectorUI

Web Inspector: [GTK] Missing icons and enhancing the proportion and visibility of some icons
https://bugs.webkit.org/show_bug.cgi?id=137248

Reviewed by Carlos Garcia Campos.

Add more free icons and removed some unused ones for the Web
Inspector in GTK+.
Also, enhanced the visibility and/or proportion of several of the
icons.

  • UserInterface/Images/gtk/AUTHORS:
  • UserInterface/Images/gtk/COPYING:
  • UserInterface/Images/gtk/Checkers.svg: Added.
  • UserInterface/Images/gtk/Circle.svg: Added.
  • UserInterface/Images/gtk/CloseLarge.svg: Added.
  • UserInterface/Images/gtk/CloseTimeline.png: Removed.
  • UserInterface/Images/gtk/CloseTimeline@2x.png: Removed.
  • UserInterface/Images/gtk/Crosshair.svg:
  • UserInterface/Images/gtk/DOMCharacterData.svg:
  • UserInterface/Images/gtk/DOMComment.svg:
  • UserInterface/Images/gtk/DOMDocument.svg:
  • UserInterface/Images/gtk/DOMDocumentType.svg:
  • UserInterface/Images/gtk/DOMElement.svg:
  • UserInterface/Images/gtk/DOMNode.svg:
  • UserInterface/Images/gtk/DOMTextNode.svg:
  • UserInterface/Images/gtk/DOMTree.svg:
  • UserInterface/Images/gtk/EventListener.svg:
  • UserInterface/Images/gtk/Exception.svg:
  • UserInterface/Images/gtk/Function.svg:
  • UserInterface/Images/gtk/GradientStop.png: Added.
  • UserInterface/Images/gtk/GradientStop@2x.png: Added.
  • UserInterface/Images/gtk/GradientStopSelected.png: Added.
  • UserInterface/Images/gtk/GradientStopSelected@2x.png: Added.
  • UserInterface/Images/gtk/Issues.svg:
  • UserInterface/Images/gtk/IssuesEnabled.svg:
  • UserInterface/Images/gtk/LessColumns.svg: Removed.
  • UserInterface/Images/gtk/Logs.svg:
  • UserInterface/Images/gtk/Memory.svg: Removed.
  • UserInterface/Images/gtk/MoreColumns.svg: Removed.
  • UserInterface/Images/gtk/Native.svg:
  • UserInterface/Images/gtk/NavigationItemAngleBrackets.svg:
  • UserInterface/Images/gtk/NavigationItemBrushAndRuler.svg:
  • UserInterface/Images/gtk/NavigationItemBug.svg:
  • UserInterface/Images/gtk/NavigationItemFile.svg:
  • UserInterface/Images/gtk/NavigationItemLayers.svg:
  • UserInterface/Images/gtk/NavigationItemMagnifyingGlass.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemProbes.pdf: Added.
  • UserInterface/Images/gtk/NavigationItemStopwatch.svg:
  • UserInterface/Images/gtk/NavigationItemTypes.svg: Added.
  • UserInterface/Images/gtk/PaintFlashing.svg: Added.
  • UserInterface/Images/gtk/PseudoElement.svg:
  • UserInterface/Images/gtk/Record.svg: Added.
  • UserInterface/Images/gtk/Recording.png: Removed.
  • UserInterface/Images/gtk/Recording@2x.png: Removed.
  • UserInterface/Images/gtk/RecordingHovered.png: Removed.
  • UserInterface/Images/gtk/RecordingHovered@2x.png: Removed.
  • UserInterface/Images/gtk/RecordingStopped.png: Removed.
  • UserInterface/Images/gtk/RecordingStopped@2x.png: Removed.
  • UserInterface/Images/gtk/Reflection.svg:
  • UserInterface/Images/gtk/ReplayPauseButton.svg: Added.
  • UserInterface/Images/gtk/ReplayPlayButton.svg: Added.
  • UserInterface/Images/gtk/ReplayRecordingButton.svg: Added.
  • UserInterface/Images/gtk/Request.svg:
  • UserInterface/Images/gtk/Resources.svg:
  • UserInterface/Images/gtk/Response.svg:
  • UserInterface/Images/gtk/ResultLine.svg:
  • UserInterface/Images/gtk/SourceCode.svg:
  • UserInterface/Images/gtk/Stop.svg: Added.
  • UserInterface/Images/gtk/StyleRuleAuthor.svg:
  • UserInterface/Images/gtk/StyleRuleInherited.svg:
  • UserInterface/Images/gtk/StyleRuleInheritedElement.svg:
  • UserInterface/Images/gtk/StyleRuleInspector.svg:
  • UserInterface/Images/gtk/StyleRuleUser.svg:
  • UserInterface/Images/gtk/StyleRuleUserAgent.svg:
  • UserInterface/Images/gtk/Time.svg:
  • UserInterface/Images/gtk/TimelineRecordAnimation.svg:
  • UserInterface/Images/gtk/TimelineRecordConsoleProfile.svg: Added.
  • UserInterface/Images/gtk/TimelineRecordEvent.svg:
  • UserInterface/Images/gtk/TimelineRecordLayout.svg:
  • UserInterface/Images/gtk/TimelineRecordPaint.svg:
  • UserInterface/Images/gtk/TimelineRecordProbeSampled.svg: Added.
  • UserInterface/Images/gtk/TimelineRecordScriptEvaluated.svg:
  • UserInterface/Images/gtk/TimelineRecordStyle.svg:
  • UserInterface/Images/gtk/TimelineRecordTimer.svg:
  • UserInterface/Images/gtk/Weight.svg:
2:47 AM Changeset in webkit [174206] by evab.u-szeged@partner.samsung.com
  • 6 edits in trunk/Source/WebCore

Fix minimal build warnings
https://bugs.webkit.org/show_bug.cgi?id=137066

Reviewed by Daniel Bates.

No new tests, no behavior change.

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):

  • page/Page.cpp:

(WebCore::Page::setPageScaleFactor):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::glyphDataForCharacter):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::prepareGraphicsContextForTextPainting):

2:05 AM Changeset in webkit [174205] by jinwoo7.song@samsung.com
  • 3 edits in trunk/LayoutTests

[EFL] Unreviewed EFL gardening. Rebaseline after r174160.

  • platform/efl/fast/borders/bidi-002-expected.txt:
  • platform/efl/fast/borders/bidi-009a-expected.txt:
1:01 AM Changeset in webkit [174204] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Minor bug in UIClient::exceededDatabaseQuota()
https://bugs.webkit.org/show_bug.cgi?id=137213

Patch by JinYoung Hur <hurims@gmail.com> on 2014-10-02
Reviewed by Anders Carlsson.

Make sure not to call the completion handler twice if exceededDatabaseQuota is null.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

12:58 AM Changeset in webkit [174203] by jinwoo7.song@samsung.com
  • 1 edit
    6 adds in trunk/LayoutTests

[EFL] Unreviewed EFL gardening. Add expected results after r174002 and r136484.

  • platform/efl/fast/css-generated-content/initial-letter-basic-expected.txt: Added.
  • platform/efl/fast/css-generated-content/initial-letter-border-padding-expected.txt: Added.
  • platform/efl/fast/css-generated-content/initial-letter-clearance-expected.txt: Added.
  • platform/efl/fast/css-generated-content/initial-letter-descender-expected.txt: Added.
  • platform/efl/fast/css-generated-content/initial-letter-raised-expected.txt: Added.
  • platform/efl/fast/css-generated-content/initial-letter-sunken-expected.txt: Added.

Oct 1, 2014:

11:25 PM Changeset in webkit [174202] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

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

Patch that adds logging causes webkitpy failures (Requested by
rfong on #webkit).

Reverted changeset:

"commitqueuetasks_unittest references a non-existent member
variable"
https://bugs.webkit.org/show_bug.cgi?id=137303
http://trac.webkit.org/changeset/174185

11:19 PM Changeset in webkit [174201] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

EWS and Commit Queue should know better than to spew 500 failed
results in the case of extremely red patches.
https://bugs.webkit.org/show_bug.cgi?id=137324

Patch by Jake Nielsen <jacob_nielsen@apple.com> on 2014-10-01
Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/tool/commands/earlywarningsystem.py:

Adds a check for did_exceed_test_failure_limit.
(AbstractEarlyWarningSystem._failing_tests_message):

  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:

Alters the task mock to respond properly to
results_from_patch_test_run(patch)
(AbstractEarlyWarningSystemTest.test_failing_tests_message):

  • Scripts/webkitpy/tool/commands/queues.py:

Adds a check for did_exceed_test_failure_limit.
(CommitQueue._failing_tests_message):

11:19 PM Changeset in webkit [174200] by commit-queue@webkit.org
  • 2 edits in trunk

Bump version to 2.7.0
https://bugs.webkit.org/show_bug.cgi?id=137301

Patch by Michael Catanzaro <Michael Catanzaro> on 2014-10-01
Rubber-stamped by Carlos Garcia Campos.

  • Source/cmake/OptionsGTK.cmake: Bump version numbers
11:10 PM Changeset in webkit [174199] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Click events offset in webkit-overflow-scrolling iframes
https://bugs.webkit.org/show_bug.cgi?id=134596

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-10-01
Reviewed by Sam Weinig.

  • platform/ScrollView.cpp:

(WebCore::ScrollView::visibleContentRectInternal):
When converting coordinates from the main frame to a subframe's document, the position
is first converted to the subframe's FrameView coordinate system, then offset by the scroll
offset of the subframe itself.

The bug in this case was that the scroll offset used was the global scroll offset of the frame
in the view instead of the scroll offset of the document in its own frameview.

The regression was introduced by the refactoring r162663. On iOS WebKit1, the coordinate system
is different depending on VisibleContentRectIncludesScrollbars. In r162663, the value was set
such that the rect returned is always in absolute coordinate.

The ideal solution would be to refactor ScrollView::platformVisibleContentRect() to always return
the offsets in scroll view coordinates and verify and update all the call sites to use explicit
conversion to the top frame. In this patch I only reverted the coordinate change of r162663 to avoid
large scale impact.

10:25 PM Changeset in webkit [174198] by dbates@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, rolling out r174192.

Revert the unit test fix in r174192 since we reverted r174187
in r174194 due to correctness issues. See
<http://webkit.org/b/137329> for more details.

Reverted changeset:

"Test fix after r174187"
http://trac.webkit.org/changeset/174192

9:10 PM Changeset in webkit [174197] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Use is<>() / downcast<>() for File
https://bugs.webkit.org/show_bug.cgi?id=137318

Reviewed by Gyuyoung Kim.

Use is<>() / downcast<>() for File instead of isFile() / toFile().

No new tests, no behavior change.

  • fileapi/Blob.h:
  • fileapi/File.h:

(isType):

  • fileapi/FileReader.cpp:

(WebCore::FileReader::readAsArrayBuffer):
(WebCore::FileReader::readAsBinaryString):
(WebCore::FileReader::readAsText):
(WebCore::FileReader::readAsDataURL):

  • platform/network/FormData.cpp:

(WebCore::FormData::appendKeyValuePairItems):

7:19 PM Changeset in webkit [174196] by mrowe@apple.com
  • 10 edits
    3 adds in trunk

<https://webkit.org/b/137308> WebKit should build on OS X Yosemite for external users

Source/WebKit/mac:

Reviewed by Dan Bernstein.

  • Configurations/DebugRelease.xcconfig: Use libWebKitSystemInterfaceYosemite.a on Yosemite.

Source/WebKit2:

Reviewed by Dan Bernstein.

  • Configurations/DebugRelease.xcconfig: Use libWebKitSystemInterfaceYosemite.a on Yosemite.

Tools:

Reviewed by Dan Bernstein.

  • Scripts/copy-webkitlibraries-to-product-directory: Copy libWebKitSystemInterfaceYosemite.a

into the build directory. Use LLVMIncludesYosemite.tar.bz2 and LLVMLibrariesYosemite.tar.bz2
for the LLVM components when on Yosemite.

WebKitLibraries:

Add versions of WebKitSystemInterface and LLVM for Yosemite. The LLVM build is from
LLVM SVN r206312, matching the Mavericks and Mountain Lion builds.

Reviewed by Dan Bernstein.

  • LLVMIncludesYosemite.tar.bz2: Added.
  • LLVMLibrariesYosemite.tar.bz2: Added.
  • WebKitSystemInterface.h:
  • libWebKitSystemInterfaceMavericks.a:
  • libWebKitSystemInterfaceMountainLion.a:
  • libWebKitSystemInterfaceYosemite.a: Added.
7:11 PM Changeset in webkit [174195] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed build fix after r174193.

Adding a return statement as that function is returning a boolean.

  • wtf/TypeCasts.h:

(WTF::TypeCastTraits::isOfType):

6:58 PM Changeset in webkit [174194] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

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

webkitpy failures, and thorton says the patch is wrong
(Requested by dethbakin on #webkit).

Reverted changeset:

"[Windows] Increase layout test timeout for Windows following
r174162."
http://trac.webkit.org/changeset/174187

6:18 PM Changeset in webkit [174193] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Fail better when is<>() / downcast<>() is used for an unsupported type
https://bugs.webkit.org/show_bug.cgi?id=137323

Reviewed by Benjamin Poulain.

We should fail better when is<>() / downcast<>() is used for an
unsupported type (i.e. a type that doesn't have the needed
TypeCastTraits template specialization). Previously, we would get an
obscure linking error, which was sub-optimal.

With this patch, you would now hit a static_assert() at build time if
you tried to use is<>() / downcast<>() for a type that did not have the
needed template specialization. There is also a helpful comment above
the assertion letting the developer know how to add the needed template
specialization.

  • wtf/TypeCasts.h:

(WTF::TypeCastTraits::isOfType):

5:58 PM Changeset in webkit [174192] by Brent Fulgham
  • 2 edits in trunk/Tools

Test fix after r174187

  • Scripts/webkitpy/port/win_unittest.py:

(WinPortTest.test_default_timeout_ms): Expect the new 50000 ms timeout for Windows tests.

5:49 PM Changeset in webkit [174191] by cabanier@adobe.com
  • 15 edits
    2 copies
    5 adds in trunk

Add support for midpoint to CSS gradients
https://bugs.webkit.org/show_bug.cgi?id=137171

Reviewed by Darin Adler.

Source/WebCore:

This patch adds support for gradient midpoints. It also updates the
gradient tests so they use the feature.
Spec: http://dev.w3.org/csswg/css-images-4/#color-interpolation-hint

Tests: fast/gradients/unprefixed-color-stops2.html

fast/gradients/unprefixed-gradient-parsing.html
fast/gradients/unprefixed-linear-angle-gradients2.html
fast/gradients/unprefixed-radial-gradients.html
fast/gradients/unprefixed-radial-gradients2.html
fast/gradients/unprefixed-repeating-linear-gradient.html
fast/gradients/unprefixed-repeating-radial-gradients.html

  • css/CSSGradientValue.cpp:

(WebCore::GradientStop::GradientStop): constructor initializes the midpoint variable
(WebCore::CSSGradientValue::gradientWithStylesResolved): this function checks for midpoint color stops
(WebCore::CSSGradientValue::addStops): this function processes midpoints and converts them to regular color stops
(WebCore::CSSLinearGradientValue::customCSSText): this routine was updated to do correct parsing for midpoints
(WebCore::CSSRadialGradientValue::customCSSText):

  • css/CSSGradientValue.h:

(WebCore::CSSGradientColorStop::CSSGradientColorStop): this function stores if a stop is a midpoint

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseGradientColorStops): this function now allows color stops with no color

LayoutTests:

Updated the CSS gradient test files so they test the
gradient midpoint feature.

  • fast/gradients/unprefixed-color-stops2.html:
  • fast/gradients/unprefixed-gradient-parsing.html:
  • fast/gradients/unprefixed-linear-angle-gradients2.html:
  • fast/gradients/unprefixed-radial-gradients.html:
  • fast/gradients/unprefixed-radial-gradients2.html:
  • fast/gradients/unprefixed-repeating-linear-gradient.html:
  • fast/gradients/unprefixed-repeating-radial-gradients.html:
5:22 PM Changeset in webkit [174190] by Chris Dumez
  • 8 edits
    2 adds in trunk

Add basic caching for Document.cookie API
https://bugs.webkit.org/show_bug.cgi?id=137225

Reviewed by Alexey Proskuryakov.

Source/WebCore:

While profiling the load of nytimes.com, I noticed that the site is
accessing ~250 times document.cookie, just during page load. Accessing
document.cookie is currently slow because we:

  • Call WebPlatformStrategies::cookiesForDOM() virtual function
  • Send a sync IPC message to the Network process to retrieve the cookies
    • The Network process gets the list of cookies from CFNetwork then serializes the result to send it back to the WebProcess
  • We unserialize the cookies into an NSList of cookies
  • We filter-out the cookies that are 'httpOnly' and construct a new NSList of cookies
  • We create a WTF String out of the cookies NSList

In the case of nytimes.com, it turns out that up to 100 calls to
document.cookie() are made in the same event loop iteration. This patch
thus caches / freezes the cookies until we return to the event
loop so that consecutive calls to document.cookie() are extremely fast.
Doing so seems to be sufficient to achieve a ~87% cache hit for
nytimes.com page load.

The cookies cache is invalidated whenever:

  • document.cookie is set
  • we return to the event loop
  • a network resource is loaded synchronously as it may cause cookies to be set before we return to the event loop

Test: http/tests/cookies/sync-xhr-set-cookie-invalidates-cache.html

  • dom/Document.cpp:

(WebCore::Document::Document):
(WebCore::Document::open):
(WebCore::Document::cookie):
(WebCore::Document::setCookie):
(WebCore::Document::setCookieURL):
(WebCore::Document::initSecurityContext):
(WebCore::Document::setDOMCookieCache):
(WebCore::Document::invalidateDOMCookieCache):
(WebCore::Document::domCookieCacheExpiryTimerFired):
(WebCore::Document::didLoadResourceSynchronously):

  • dom/Document.h:

(WebCore::Document::domCookieCache):
(WebCore::Document::isDOMCookieCacheValid):
(WebCore::Document::setCookieURL): Deleted.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::didLoadResourceSynchronously):

  • dom/ScriptExecutionContext.h:
  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoader::loadResourceSynchronously):

LayoutTests:

Add a layout test to make sure that document.cookie returns updated
results after cookies are set via a sync XHR.

  • http/tests/cookies/sync-xhr-set-cookie-invalidates-cache-expected.txt: Added.
  • http/tests/cookies/sync-xhr-set-cookie-invalidates-cache.html: Added.
5:20 PM Changeset in webkit [174189] by roger_fong@apple.com
  • 2 edits in trunk/LayoutTests

[Windows] Mass skip all media tests until bots have audio devices to run them with.

  • platform/win/TestExpectations:
4:54 PM Changeset in webkit [174188] by commit-queue@webkit.org
  • 12 edits
    1 delete in trunk/Source

Unreviewed, rolling out r174180, r174183, and r174186.
https://bugs.webkit.org/show_bug.cgi?id=137320

Broke the Mac MountainLion build. Will investigate offline.
(Requested by dydz on #webkit).

Reverted changesets:

"Clean up: Move XPC forward declarations in JavaScriptCore to
WTF SPI wrapper header"
https://bugs.webkit.org/show_bug.cgi?id=137277
http://trac.webkit.org/changeset/174180

"Attempt to fix the build after
<https://trac.webkit.org/changeset/174180>"
https://bugs.webkit.org/show_bug.cgi?id=137277
http://trac.webkit.org/changeset/174183

"Another attempt to fix the Mac build after
<https://trac.webkit.org/changeset/174180>"
https://bugs.webkit.org/show_bug.cgi?id=137277
http://trac.webkit.org/changeset/174186

4:29 PM Changeset in webkit [174187] by roger_fong@apple.com
  • 2 edits in trunk/Tools

[Windows] Increase layout test timeout for Windows following r174162.

  • Scripts/webkitpy/port/win.py:

(WinPort.default_timeout_ms):

4:17 PM Changeset in webkit [174186] by dbates@webkit.org
  • 2 edits in trunk/Source/WTF

Another attempt to fix the Mac build after <https://trac.webkit.org/changeset/174180>
(https://bugs.webkit.org/show_bug.cgi?id=137277)

Include header AvailabilityMacros.h instead of Availability.h, which actually defines the
macro MAC_OS_X_VERSION_MIN_REQUIRED.

  • wtf/spi/darwin/XPCSPI.h:
4:05 PM Changeset in webkit [174185] by roger_fong@apple.com
  • 3 edits in trunk/Tools

[Windows] Add some logging to webkitpy to debug timeout issues with running NRWT using multiple child processes.

  • Scripts/webkitpy/port/drdiver.py:

(Driver.stop):

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess.stop):

4:00 PM Changeset in webkit [174184] by roger_fong@apple.com
  • 2 edits in trunk/LayoutTests

[ Windows ] More Windows test gardening to get bots green Part 3.

  • platform/win/TestExpectations: More indiscriminate mass skipping.
3:59 PM Changeset in webkit [174183] by dbates@webkit.org
  • 2 edits in trunk/Source/WTF

Attempt to fix the build after <https://trac.webkit.org/changeset/174180>
(https://bugs.webkit.org/show_bug.cgi?id=137277)

Include header <Availability.h> for the definition of MAC_OS_X_VERSION_MIN_REQUIRED.
Also, we want to define CONST_ON_OR_AFTER_MAC_OS_X_VERSION_1090 to be const when building
on iOS.

  • wtf/spi/darwin/XPCSPI.h:
3:46 PM Changeset in webkit [174182] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

commitqueuetasks_unittest references a non-existent member variable
when mock-reporting flaky tests.
https://bugs.webkit.org/show_bug.cgi?id=137303

Patch by Jake Nielsen <jacob_nielsen@apple.com> on 2014-10-01
Reviewed by Daniel Bates.

  • Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:

(MockCommitQueue.report_flaky_tests):
Makes the appropriate name change.
(test_simple_flaky_test_failure):
Adds a unit test to make sure that the code is excercised.

3:43 PM Changeset in webkit [174181] by Beth Dakin
  • 2 edits in trunk/LayoutTests

This expectation should be MoutainLion-only until we find evidence otherwise.

  • platform/mac/TestExpectations:
3:38 PM Changeset in webkit [174180] by dbates@webkit.org
  • 12 edits
    2 adds in trunk/Source

Clean up: Move XPC forward declarations in JavaScriptCore to WTF SPI wrapper header
https://bugs.webkit.org/show_bug.cgi?id=137277

Reviewed by Alexey Proskuryakov.

Source/JavaScriptCore:

Use wtf/spi/darwin/XPCSPI.h instead of including the corresponding XPC headers/
forward declaring XPC functions.

  • inspector/remote/RemoteInspector.mm:
  • inspector/remote/RemoteInspectorXPCConnection.h:
  • inspector/remote/RemoteInspectorXPCConnection.mm:

Source/WebKit2:

Use wtf/spi/darwin/XPCSPI.h instead of including the corresponding XPC headers/
forward declaring XPC functions.

  • Platform/IPC/Connection.h:
  • Platform/IPC/mac/ConnectionMac.mm:
  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

Source/WTF:

Towards centralizing the declarations of XPC functions used in JavaScriptCore
and WebKit2, add a header that wraps these function declarations called XPCSPI.h
and use it instead of including the corresponding XPC API/SPI headers/forward
declaring XPC functions. This will also aid in the effort to make WebKit2 build
for iOS with the public iOS SDK.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/spi/darwin/XPCSPI.h: Added.
3:35 PM Changeset in webkit [174179] by Beth Dakin
  • 2 edits in trunk/LayoutTests

Another flaky-trashy test.

  • platform/mac/TestExpectations:
3:29 PM Changeset in webkit [174178] by Chris Dumez
  • 48 edits in trunk/Source

Use is<>() / downcast<>() for Event classes
https://bugs.webkit.org/show_bug.cgi?id=137284

Reviewed by Andreas Kling.

Use is<>() / downcast<>() for Event classes.

Source/WebCore:

No new tests, no behavior change.

  • bindings/js/JSErrorHandler.cpp:

(WebCore::JSErrorHandler::handleEvent):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • dom/BeforeTextInsertedEvent.h:
  • dom/BeforeUnloadEvent.h:
  • dom/ErrorEvent.h:
  • dom/Event.h:
  • dom/EventContext.cpp:

(WebCore::MouseOrFocusEventContext::handleLocalEvents):

  • dom/FocusEvent.h:
  • dom/KeyboardEvent.cpp:

(WebCore::findKeyboardEvent):

  • dom/KeyboardEvent.h:
  • dom/MouseEvent.cpp:

(WebCore::SimulatedMouseEvent::SimulatedMouseEvent):

  • dom/MouseEvent.h:
  • dom/Node.cpp:

(WebCore::Node::defaultEventHandler):

  • dom/TextEvent.h:
  • dom/UIEvent.h:
  • dom/WheelEvent.h:
  • html/HTMLAnchorElement.cpp:

(WebCore::appendServerMapMousePosition):
(WebCore::HTMLAnchorElement::defaultEventHandler):
(WebCore::HTMLAnchorElement::eventType):
(WebCore::isEnterKeyKeydownEvent):
(WebCore::isLinkClick):

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::defaultEventHandler):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::submitImplicitly):

  • html/HTMLFormElement.h:
  • html/HTMLFrameSetElement.cpp:

(WebCore::HTMLFrameSetElement::defaultEventHandler):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::willDispatchEvent):
(WebCore::HTMLInputElement::defaultEventHandler):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::defaultEventHandler):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
(WebCore::HTMLSelectElement::defaultEventHandler):

  • html/HTMLSummaryElement.cpp:

(WebCore::HTMLSummaryElement::defaultEventHandler):

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::defaultEventHandler):

  • html/ImageDocument.cpp:

(WebCore::ImageEventListener::handleEvent):

  • html/ImageInputType.cpp:

(WebCore::ImageInputType::handleDOMActivateEvent):

  • html/InputType.cpp:

(WebCore::InputType::shouldSubmitImplicitly):

  • html/InputType.h:
  • html/MediaDocument.cpp:

(WebCore::MediaDocument::defaultEventHandler):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::shouldSubmitImplicitly):

  • html/TextFieldInputType.h:
  • html/shadow/MediaControlElementTypes.cpp:

(WebCore::MediaControlVolumeSliderElement::defaultEventHandler):

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlPanelElement::defaultEventHandler):
(WebCore::MediaControlVolumeSliderContainerElement::defaultEventHandler):
(WebCore::MediaControlTimelineElement::defaultEventHandler):

  • html/shadow/MediaControls.cpp:

(WebCore::MediaControls::containsRelatedTarget):

  • html/shadow/MediaControlsApple.cpp:

(WebCore::MediaControlsAppleEventListener::handleEvent):

  • html/shadow/SliderThumbElement.cpp:

(WebCore::SliderThumbElement::defaultEventHandler):

  • html/shadow/SpinButtonElement.cpp:

(WebCore::SpinButtonElement::defaultEventHandler):
(WebCore::SpinButtonElement::forwardEvent):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
(WebCore::SearchFieldCancelButtonElement::defaultEventHandler):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::dispatchEventAsContextMenuEvent):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::maybeCreateContextMenu):

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleTextInputEvent):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
(WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):

  • rendering/RenderEmbeddedObject.h:
  • rendering/RenderSnapshottedPlugIn.cpp:

(WebCore::RenderSnapshottedPlugIn::handleEvent):

Source/WebKit2:

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::handleEvent):

3:18 PM AddingFiles edited by Brian Burg
[Win] Add reminder about *AllInOne.cpp files. (diff)
3:12 PM Changeset in webkit [174177] by Brent Fulgham
  • 2 edits in trunk/Source/JavaScriptCore

[Win] Unreviewed build gardening.

  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters: Show files in the appropriate

folders in Visual Studio.

3:00 PM Changeset in webkit [174176] by Beth Dakin
  • 2 edits in trunk/LayoutTests

Yet another crash-flaky test.

2:48 PM Changeset in webkit [174175] by Lucas Forschler
  • 5 edits in branches/safari-600.1.17-branch/Source

Versioning.

2:45 PM Changeset in webkit [174174] by Lucas Forschler
  • 1 copy in tags/Safari-600.1.17.3

New Tag.

2:34 PM Changeset in webkit [174173] by fpizlo@apple.com
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

Object allocation sinking is broken for escaping sites in loops
https://bugs.webkit.org/show_bug.cgi?id=137310

Reviewed by Michael Saboff.

I tried to do this clever forward-flow based materialization point placement, and I messed up loops. Disabling
the phase for now and landing a test to demonstrate what it going on.

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

  • runtime/Options.h:
  • tests/stress/object-escapes-in-loop.js: Added.

(foo):
(bar):

2:27 PM Changeset in webkit [174172] by Beth Dakin
  • 2 edits in trunk/LayoutTests

Marking this test as CRASHY-flaky since it is.

  • platform/mac-wk2/TestExpectations:
2:24 PM Changeset in webkit [174171] by Lucas Forschler
  • 4 edits in branches/safari-600.1.17-branch/Source

Merged r174162.

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

EWS is inconclusively spinning forever on a patch that breaks 500+
tests
https://bugs.webkit.org/show_bug.cgi?id=137223

Patch by Jake Nielsen <jacob_nielsen@apple.com> on 2014-10-01
Reviewed by Tim Horton.

  • Scripts/webkitpy/tool/bot/patchanalysistask.py:

Checks to see whether the tests have exceeded the failure limit, and
only spins off another test if they have not exceeded the limit.
(PatchAnalysisTask._test_patch):

2:02 PM Changeset in webkit [174169] by Beth Dakin
  • 2 edits in trunk/LayoutTests

Marking this test as trashy-flaky since it is.

  • platform/mac/TestExpectations:
1:52 PM Changeset in webkit [174168] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebCore

[TexMap] Sprinkle range-based for-loops in GraphicsLayerTextureMapper, TextureMapperLayer
https://bugs.webkit.org/show_bug.cgi?id=137271

Reviewed by Sergio Villar Senin.

Switch to using C++11 range-based for-loops in the
GraphicsLayerTextureMapper and TextureMapperLayer classes.

The for loops that remained unchanged either do further computation
with the loop index or must iterate over the container in reverse.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::toTextureMapperLayerVector):
(WebCore::GraphicsLayerTextureMapper::flushCompositingState):

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computeTransformsRecursive):
(WebCore::TextureMapperLayer::paintSelfAndChildren):
(WebCore::TextureMapperLayer::computeOverlapRegions):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):
(WebCore::TextureMapperLayer::~TextureMapperLayer):
(WebCore::TextureMapperLayer::setChildren):
(WebCore::TextureMapperLayer::descendantsOrSelfHaveRunningAnimations):
(WebCore::TextureMapperLayer::applyAnimationsRecursively):

1:47 PM Changeset in webkit [174167] by saambarati1@gmail.com
  • 20 edits
    1 add in trunk/Source/JavaScriptCore

Support the type profiler in the DFG
https://bugs.webkit.org/show_bug.cgi?id=136712

Reviewed by Filip Pizlo.

This patch implements op_profile_type inside the DFG as the node: ProfileType.
The DFG will convert the ProfileType node into a Check node in the cases where
passing a type check is equivalent to writing to the TypeProfilerLog. This
gives the DFG the potential to optimize out multiple ProfileType nodes into
a single Check node.

When the DFG doesn't convert ProfileType into a Check node, it will generate
the same inline code as the baseline JIT does for writing an entry to the
TypeProfilerLog.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::typeLocation):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • runtime/TypeProfiler.cpp:

(JSC::TypeProfiler::logTypesForTypeLocation):

  • runtime/TypeSet.cpp:

(JSC::TypeSet::dumpTypes):
(JSC::TypeSet::doesTypeConformTo):
Make this method public so others can reason about the types a TypeSet has seen.
(JSC::TypeSet::seenTypes): Deleted.
(JSC::TypeSet::dumpSeenTypes): Deleted.
Renamed to dumpTypes so the method seenTypes can be used as a public getter.

  • runtime/TypeSet.h:

(JSC::TypeSet::seenTypes):

  • tests/typeProfiler/dfg-jit-optimizations.js: Added.

(tierUpToDFG):
(funcs):
(.return):

1:39 PM Changeset in webkit [174166] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix 32-bit.

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

1:12 PM Changeset in webkit [174165] by fpizlo@apple.com
  • 17 edits in trunk/Source/JavaScriptCore

DFG SSA should use PutLocal/KillLocal instead of SetLocal to communicate what is flushed to the stack and when
https://bugs.webkit.org/show_bug.cgi?id=137242

Reviewed by Geoffrey Garen.

OSR availability has to do with telling you the various ways that you could go about getting
the value of a bytecode variable. It can give you two options: node availability means that
there is a node in the DFG IR that has the right value, and flush availability tells you
that the value was already stored to the stack. The clients of OSR availability would
typically prefer flush over node availability.

Previously OSR availability was affected thusly by the various local-related nodes: SetLocal
set both the node and flush availability, MovHint set node availability and cleared flush
availability, GetArgument set both, and ZombieHint cleared both.

A MovHint could be turned into a ZombieHint if its source value was DCEd.

The fact that each node affected both node and flush availability caused weirdness. For
example it meant that we could not insert MovHints in areas of the CFG where a SetLocal's
variable was still live, because then those parts of the code would forget that they had an
availability flush. This meant that if a flush was available, we wouldn't insert MovHints,
and so we would forget that a node was in fact available. This kind of "either-or" picking
was not only hackish but it led to interesting problems for IR transformation: for example
if you tried to do any kind of code motion on SetLocals, you had to be super careful because
you might violate the rule that "MovHints must exist for a live local if a flush is
unavailable".

The right thing to do is to have independent nodes for flushing and making nodes available.
They shouldn't interact with each other. This patch accomplishes this:

  • PutLocal means that that a value is to be stored to the stack. It makes a flush available.
  • KillLocal means that the value stored to the stack is no longer available for the purposes of OSR (i.e. it no longer accurately corresponds to what that actual bytecode variable would have been, so you have to fall back on node availability).
  • MovHint means that a node is available. It has no effect on flush availability.
  • ZombieHint means that a node is not available. It has no effect on flush availability.


This means that we will see a lot of KillLocals and MovHints right next to each other. It's
a bit verbose, but at least it's precise.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGAvailability.h:

(JSC::DFG::Availability::setFlush):
(JSC::DFG::Availability::setNode):
(JSC::DFG::Availability::setNodeUnavailable):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.cpp:

(JSC::DFG::Node::hasVariableAccessData):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasUnlinkedLocal):
(JSC::DFG::Node::willHaveCodeGenOrOSR):

  • dfg/DFGNodeType.h:
  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp:

(JSC::DFG::LocalOSRAvailabilityCalculator::executeNode):

  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStackLayoutPhase.cpp:

(JSC::DFG::StackLayoutPhase::run):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compilePutLocal):
(JSC::FTL::LowerDFGToLLVM::compileSetLocal): Deleted.

11:30 AM Changeset in webkit [174164] by Brian Burg
  • 2 edits in trunk/Tools

Unreviewed, add Katie Madonna as a contributor.

  • Scripts/webkitpy/common/config/contributors.json:
11:26 AM Changeset in webkit [174163] by roger_fong@apple.com
  • 2 edits in trunk/LayoutTests

[ Windows ] More Windows test gardening to get bots green Part 2.

  • platform/win/TestExpectations: More indiscriminate mass skipping.
11:22 AM Changeset in webkit [174162] by Brent Fulgham
  • 4 edits in trunk/Source

[Win] 32-bit JavaScriptCore should limit itself to the C loop
https://bugs.webkit.org/show_bug.cgi?id=137304
<rdar://problem/18375370>

Reviewed by Michael Saboff.

../JavaScriptCore:

Use the C loop for 32-bit builds.

../WTF:

  • wtf/Platform.h: Force the C loop when building for 32-bit Windows.
10:52 AM Changeset in webkit [174161] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

commitqueuetasks_unittest does not construct FailingTestCommitQueue
objects properly in its test cases.
https://bugs.webkit.org/show_bug.cgi?id=137281

Patch by Jake Nielsen <jacob_nielsen@apple.com> on 2014-10-01
Reviewed by Daniel Bates.

  • Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:

(FailingTestCommitQueue.test_results):
Adds an assert to make FailingTestCommitQueue harder to mis-use.
(test_double_flaky_test_failure):
Nests the intended test failure strings into one-length lists.
(test_red_test_failure):
Nests the intended test failure strings into one-length lists.

10:35 AM Changeset in webkit [174160] by ap@apple.com
  • 41 edits in trunk

REGRESSION (r172172): Multiple regression tests fail when primary system language is Russian
https://bugs.webkit.org/show_bug.cgi?id=136987

Reviewed by Daniel Bates.

Tools:

  • WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues):

Specify the default encoding for all WebKit developers to get consistent results.

LayoutTests:

These test changes are not strictly necessary to fix the issue, as I'm also adding
a default to WebKitTestRunner. But it's nice to have tests work identically in WKTR
and in a browser, for which it's necessary to have them specify charset.

  • accessibility/table-scope-expected.txt:
  • accessibility/table-scope.html:
  • fast/borders/bidi-002.html:
  • fast/borders/bidi-009a.html:
  • fast/frames/sandboxed-iframe-attribute-parsing-03-expected.txt:
  • fast/frames/sandboxed-iframe-attribute-parsing-03.html:
  • platform/mac/accessibility/table-headers-attribute-expected.txt:
  • platform/mac/accessibility/table-headers-attribute.html:
  • platform/mac/accessibility/table-with-zebra-rows-expected.txt:
  • platform/mac/accessibility/table-with-zebra-rows.html:
  • platform/mac/fast/borders/bidi-002-expected.png:
  • platform/mac/fast/borders/bidi-002-expected.txt:
  • platform/mac/fast/borders/bidi-009a-expected.png:
  • platform/mac/fast/borders/bidi-009a-expected.txt:
  • plugins/plugin-remove-subframe-expected.txt:
  • plugins/plugin-remove-subframe.html:

These tests were actually expected to use UTF-8, so we used to be running them in
an inconsequentially wrong way.

  • fast/css/text-transform-select.html:
  • fast/encoding/high-bit-latin1.html:
  • fast/encoding/parser-tests-10.html:
  • fast/encoding/parser-tests-100.html:
  • fast/encoding/parser-tests-110.html:
  • fast/encoding/parser-tests-120.html:
  • fast/encoding/parser-tests-20.html:
  • fast/encoding/parser-tests-30.html:
  • fast/encoding/parser-tests-50.html:
  • fast/encoding/parser-tests-60.html:
  • fast/encoding/parser-tests-70.html:
  • fast/encoding/parser-tests-80.html:
  • fast/encoding/parser-tests-90.html:
  • fast/encoding/parser-tests.html:
  • fast/url/anchor.html:
  • fast/url/file-http-base.html:
  • fast/url/file.html:
  • fast/url/query.html:
  • fast/url/standard-url.html:
  • http/tests/misc/char-encoding-in-hidden-charset-field-default.html:
  • js/dom/regexp-overflow.html:
  • tables/mozilla_expected_failures/bugs/bug47163.html:

Specified the encoding, windows-1252 is what we use for Latin1 and ISO-8859-1 alike.

10:30 AM Changeset in webkit [174159] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.6

Merge r173964 - [Gtk] build.sh needs a -- before make options when the build command is cmake --build
https://bugs.webkit.org/show_bug.cgi?id=136377

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2014-09-25
Reviewed by Philippe Normand.

.:

  • Source/cmake/OptionsGTK.cmake: Only create the build.sh script

for CMake versions less than 3.

Tools:

  • Scripts/webkitdirs.pm:

(buildCMakeGeneratedProject): Only use the build.sh script if it exists.

10:18 AM Changeset in webkit [174158] by ap@apple.com
  • 3 edits in trunk/Tools

EWS is too eager to say that a patch does not apply to trunk of repository
https://bugs.webkit.org/show_bug.cgi?id=137290

Reviewed by Ryosuke Niwa.

  • QueueStatusServer/app.yaml: Updated app version.
  • QueueStatusServer/handlers/statusbubble.py:

(StatusBubble._build_bubble):
(StatusBubble._build_bubbles_for_attachment):
Rewrote to make more sense.

9:17 AM Changeset in webkit [174157] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Windows build fix.

  • platform/network/cf/ResourceResponseCFNet.cpp:
7:54 AM WebKitGtkLayoutTests edited by Andres Gomez
Updated due to the removal of WebKit1 (diff)
7:50 AM WebKitGTK/StartHacking edited by Andres Gomez
Updating instructions due to migration to CMake and removal of WebKit1 code (diff)
7:31 AM Changeset in webkit [174156] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r173423): [iOS] Sites with EV certificates appear as normal HTTPS sites
https://bugs.webkit.org/show_bug.cgi?id=137262

Reviewed by Antti Koivisto.

No new tests, because the API test harness doesn’t run an HTTP server to test against.

  • platform/network/cf/ResourceResponseCFNet.cpp:

(WebCore::ResourceResponse::platformCertificateInfo): Return a CertificateInfo initialized
with the certificate array from the response.

4:19 AM Changeset in webkit [174155] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.2.8

WebKitGTK+ 2.2.8

3:41 AM Changeset in webkit [174154] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.2

Unreviewed. Update NEWS and Versions.m4 for 2.2.8 release.

.:

  • Source/autotools/Versions.m4: Bump version numbers.

Source/WebKit/gtk:

  • NEWS: Add release notes.
1:55 AM Changeset in webkit [174153] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.2/Source/WebKit2

Merge r173252 - [SOUP] Race condition when downloading a file due to the intermediate temporary file
https://bugs.webkit.org/show_bug.cgi?id=136423

Patch by Michael Catanzaro <Michael Catanzaro> on 2014-09-03
Reviewed by Carlos Garcia Campos.

  • Shared/Downloads/soup/DownloadSoup.cpp:

(WebKit::DownloadClient::DownloadClient): Replace m_destinationURI with
m_destinationFile and add m_createdDestination.
(WebKit::DownloadClient::deleteFilesIfNeeded): Added.
(WebKit::DownloadClient::downloadFailed): Call deleteFilesIfNeeded.
(WebKit::DownloadClient::didReceiveResponse): Attempt to create the
destination file before the intermediate file. Fail here if the file
exists and overwrite is not allowed, so we don't erroneously fire the
didCreateDestination event or waste time downloading the file when we
know the download will fail.
(WebKit::DownloadClient::didFinishLoading): Unconditionally overwrite
the empty destination file.
(WebKit::DownloadClient::cancel): Call deleteFilesIfNeeded.
(WebKit::DownloadClient::deleteIntermediateFileInNeeded): Deleted.

1:49 AM Changeset in webkit [174152] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.2/Source/WebKit2

Merge r173154 - [SOUP] WebKitDownload cannot overwrite existing file
https://bugs.webkit.org/show_bug.cgi?id=136322

Patch by Michael Catanzaro <Michael Catanzaro> on 2014-09-01
Reviewed by Carlos Garcia Campos.

  • Shared/Downloads/soup/DownloadSoup.cpp:

(WebKit::DownloadClient::didReceiveResponse): pass a member variable
to Download::decideDestinationWithSuggestedFilename instead of a
temporary bool, so we can use the result in didFinishLoading.
(WebKit::DownloadClient::didFinishLoading): overwrite the destination
if Download::decideDestinationWithSuggestedFilename determined we
should do so.

1:44 AM Changeset in webkit [174151] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.2/Source/WebCore

Merge r172896 - [GTK] Toggle buttons visually broken with GTK+ 3.13.7
https://bugs.webkit.org/show_bug.cgi?id=136130

Patch by Michael Catanzaro <Michael Catanzaro> on 2014-08-24
Reviewed by Martin Robinson.

No new tests. Hopefully covered by existing tests, and our tests only
run with GTK+ 3.6 anyway.

  • platform/gtk/RenderThemeGtk3.cpp:

(WebCore::paintToggle): use GTK_STATE_FLAG_CHECKED when compiling for
GTK+ 3.13.7 and above to ensure toggle buttons display as toggled.

1:39 AM Changeset in webkit [174150] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.2/Source/WebCore

Merge r172958 - [GTK] Selection background is rendered white when unfocused with recent GTK+
https://bugs.webkit.org/show_bug.cgi?id=136251

Reviewed by Martin Robinson.

This is due to a change in the GTK+ theme, but because we are not
using the right flags to get the selections colors. We should use
GTK_STATE_FLAG_SELECTED | GTK_STATE_FLAG_FOCUSED when focused and
GTK_STATE_FLAG_SELECTED when unfocused, instead of
GTK_STATE_FLAG_ACTIVE when unfocused.

  • platform/gtk/RenderThemeGtk3.cpp:

(WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor):
(WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor):
(WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor):
(WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor):
(WebCore::RenderThemeGtk::platformActiveListBoxSelectionBackgroundColor):
(WebCore::RenderThemeGtk::platformInactiveListBoxSelectionBackgroundColor):
(WebCore::RenderThemeGtk::platformActiveListBoxSelectionForegroundColor):
(WebCore::RenderThemeGtk::platformInactiveListBoxSelectionForegroundColor):

1:33 AM Changeset in webkit [174149] by Carlos Garcia Campos
  • 2 edits
    189 adds in releases/WebKitGTK/webkit-2.2/Source/WebInspectorUI

Merge r173753 - Webkitgtk 2.5.3: tarball contains APPLE LICENSE file - stating not distributable
https://bugs.webkit.org/show_bug.cgi?id=136632

Reviewed by Gustavo Noronha Silva.

Source/WebInspectorUI:

Add free icons for the GTK port. These icons are from the GNOME
project, some of them adapted by Andres Gomez for the inspector.

1:15 AM Changeset in webkit [174148] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS] <select> with <optgroup> may change initial selected option when assisted
https://bugs.webkit.org/show_bug.cgi?id=137261

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-10-01
Reviewed by Enrica Casucci.

The initial assignemnt of _singleSelectionIndex was calculating the
item index (ignoring groups) instead of the row index (affected by
groups!). Thus if there was N groups we would select the row N
before the real selection.

Also avoid this entirely if this is a multiple selection picker.
This logic is only needed for single selection with groups.

  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKMultipleSelectPicker initWithView:]):

12:57 AM Changeset in webkit [174147] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.2

Merge r173999 - [GTK] Enable CSS_IMAGE_SET in production builds
https://bugs.webkit.org/show_bug.cgi?id=137142

Reviewed by Alejandro G. Castro.

This is required by the inspector to show some of the icons that
has a HiDPI variant.

  • Source/cmake/OptionsGTK.cmake:
12:28 AM Changeset in webkit [174146] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.2/Source/WebKit2

Merge r172919 - [GTK] Should check if a plugin mixes GTK+ symbols earlier
https://bugs.webkit.org/show_bug.cgi?id=136214

Reviewed by Philippe Normand.

We are currently checking if the plugin module and the plugin
process mix GTK symbols after the plugin has been loaded and
initialized. This is too late in many cases, since plugins can use
GTK methods in the NP_Initialize implementation. This is causing
the apps using WebKitGTK+ 2.4 to freeze when the plugin process
scans the plugins and there's a plugin using GTK+3 installed. We
should move the check earlier, once the module is loaded but
before calling NP_Initialize.

  • Shared/Plugins/Netscape/NetscapePluginModule.cpp:

(WebKit::moduleMixesGtkSymbols):
(WebKit::NetscapePluginModule::tryLoad):

  • WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:

(WebKit::NetscapePlugin::platformPostInitialize):

12:20 AM Changeset in webkit [174145] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.2/Source/WebKit2

Merge r172920 - [GTK] Older versions of WebKit should use the plugins cache in read only mode
https://bugs.webkit.org/show_bug.cgi?id=136215

Reviewed by Philippe Normand.

Now that WebKitGTK+ 2.4 and 2.5 are parallel installable, since
they use different versions of the plugins cache, apps using 2.4
might override the plugins cache file. We should prevent this from
happening by making older versions use the plugin cache, but not
downgrade it.

  • UIProcess/Plugins/gtk/PluginInfoCache.cpp:

(WebKit::PluginInfoCache::PluginInfoCache):
(WebKit::PluginInfoCache::updatePluginInfo):

  • UIProcess/Plugins/gtk/PluginInfoCache.h:

Sep 30, 2014:

11:40 PM Changeset in webkit [174144] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

11:37 PM Changeset in webkit [174143] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.2

New tag.

11:20 PM Changeset in webkit [174142] by Yusuke Suzuki
  • 2 edits in trunk/Source/WebCore

CSS JIT: Enable multiple stack references allocation by allocateUninitialized
https://bugs.webkit.org/show_bug.cgi?id=135293

Reviewed by Benjamin Poulain.

  • cssjit/StackAllocator.h:

(WebCore::StackAllocator::stackTop):

Add stackTop method to check references are allocated easily.

(WebCore::StackAllocator::allocateUninitialized):

10:49 PM Changeset in webkit [174141] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Drop getPtr() overload taking a Document reference in argument
https://bugs.webkit.org/show_bug.cgi?id=137280

Reviewed by Daniel Bates.

Drop getPtr() overload taking a Document reference in argument. This is
no longer needed as the generic getPtr() function converts references
into pointers just fine after r173765.

No new tests, no behavior change.

  • dom/Document.h:

(WTF::getPtr): Deleted.

9:34 PM Changeset in webkit [174140] by Brian Burg
  • 72 edits in trunk/Source

Web Inspector: ErrorString should be passed by reference
https://bugs.webkit.org/show_bug.cgi?id=137257

Reviewed by Joseph Pecoraro.

Pass the leading ErrorString argument by reference, since it is always an out parameter.
Clean up callsites where the error message is written.

Source/JavaScriptCore:

  • inspector/InjectedScript.cpp:

(Inspector::InjectedScript::evaluate):
(Inspector::InjectedScript::callFunctionOn):
(Inspector::InjectedScript::evaluateOnCallFrame):
(Inspector::InjectedScript::getFunctionDetails):
(Inspector::InjectedScript::getProperties):
(Inspector::InjectedScript::getInternalProperties):

  • inspector/InjectedScript.h:
  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::makeEvalCall):

  • inspector/InjectedScriptBase.h:
  • inspector/agents/InspectorAgent.cpp:

(Inspector::InspectorAgent::willDestroyFrontendAndBackend):
(Inspector::InspectorAgent::enable):
(Inspector::InspectorAgent::disable):
(Inspector::InspectorAgent::initialized):

  • inspector/agents/InspectorAgent.h:
  • inspector/agents/InspectorConsoleAgent.cpp:

(Inspector::InspectorConsoleAgent::willDestroyFrontendAndBackend):
(Inspector::InspectorConsoleAgent::enable):
(Inspector::InspectorConsoleAgent::disable):
(Inspector::InspectorConsoleAgent::clearMessages):
(Inspector::InspectorConsoleAgent::reset):
(Inspector::InspectorConsoleAgent::addMessageToConsole):

  • inspector/agents/InspectorConsoleAgent.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::enable):
(Inspector::InspectorDebuggerAgent::disable):
(Inspector::InspectorDebuggerAgent::setBreakpointsActive):
(Inspector::InspectorDebuggerAgent::breakpointActionsFromProtocol):
(Inspector::InspectorDebuggerAgent::setBreakpointByUrl):
(Inspector::parseLocation):
(Inspector::InspectorDebuggerAgent::setBreakpoint):
(Inspector::InspectorDebuggerAgent::removeBreakpoint):
(Inspector::InspectorDebuggerAgent::continueToLocation):
(Inspector::InspectorDebuggerAgent::searchInContent):
(Inspector::InspectorDebuggerAgent::getScriptSource):
(Inspector::InspectorDebuggerAgent::getFunctionDetails):
(Inspector::InspectorDebuggerAgent::pause):
(Inspector::InspectorDebuggerAgent::resume):
(Inspector::InspectorDebuggerAgent::stepOver):
(Inspector::InspectorDebuggerAgent::stepInto):
(Inspector::InspectorDebuggerAgent::stepOut):
(Inspector::InspectorDebuggerAgent::setPauseOnExceptions):
(Inspector::InspectorDebuggerAgent::evaluateOnCallFrame):
(Inspector::InspectorDebuggerAgent::setOverlayMessage):
(Inspector::InspectorDebuggerAgent::didParseSource):
(Inspector::InspectorDebuggerAgent::clearInspectorBreakpointState):
(Inspector::InspectorDebuggerAgent::assertPaused):

  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::parse):
(Inspector::InspectorRuntimeAgent::evaluate):
(Inspector::InspectorRuntimeAgent::callFunctionOn):
(Inspector::InspectorRuntimeAgent::getProperties):
(Inspector::InspectorRuntimeAgent::releaseObject):
(Inspector::InspectorRuntimeAgent::releaseObjectGroup):
(Inspector::InspectorRuntimeAgent::run):
(Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets):
(Inspector::InspectorRuntimeAgent::enableTypeProfiler):
(Inspector::InspectorRuntimeAgent::disableTypeProfiler):

  • inspector/agents/InspectorRuntimeAgent.h:
  • inspector/agents/JSGlobalObjectConsoleAgent.cpp:

(Inspector::JSGlobalObjectConsoleAgent::setMonitoringXHREnabled):
(Inspector::JSGlobalObjectConsoleAgent::addInspectedNode):

  • inspector/agents/JSGlobalObjectConsoleAgent.h:
  • inspector/agents/JSGlobalObjectDebuggerAgent.cpp:

(Inspector::JSGlobalObjectDebuggerAgent::injectedScriptForEval):

  • inspector/agents/JSGlobalObjectDebuggerAgent.h:
  • inspector/agents/JSGlobalObjectRuntimeAgent.cpp:

(Inspector::JSGlobalObjectRuntimeAgent::injectedScriptForEval):

  • inspector/agents/JSGlobalObjectRuntimeAgent.h:
  • inspector/scripts/codegen/generate_backend_dispatcher_header.py:

(BackendDispatcherHeaderGenerator._generate_handler_declaration_for_command):
(BackendDispatcherHeaderGenerator._generate_async_handler_declaration_for_command):

  • inspector/scripts/codegen/generate_backend_dispatcher_implementation.py:

(BackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command):

  • inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result:
  • inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result:

Source/WebCore:

No new tests, no behavior changed.

  • inspector/CommandLineAPIHost.cpp:

(WebCore::CommandLineAPIHost::clearConsoleMessages):

  • inspector/DOMEditor.cpp:

(WebCore::populateErrorString):
(WebCore::DOMEditor::insertBefore):
(WebCore::DOMEditor::removeChild):
(WebCore::DOMEditor::setAttribute):
(WebCore::DOMEditor::removeAttribute):
(WebCore::DOMEditor::setOuterHTML):
(WebCore::DOMEditor::replaceWholeText):

  • inspector/DOMEditor.h:
  • inspector/InspectorApplicationCacheAgent.cpp:

(WebCore::InspectorApplicationCacheAgent::enable):
(WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):
(WebCore::InspectorApplicationCacheAgent::assertFrameWithDocumentLoader):
(WebCore::InspectorApplicationCacheAgent::getManifestForFrame):
(WebCore::InspectorApplicationCacheAgent::getApplicationCacheForFrame):

  • inspector/InspectorApplicationCacheAgent.h:
  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::enable):
(WebCore::InspectorCSSAgent::disable):
(WebCore::InspectorCSSAgent::didCreateNamedFlow):
(WebCore::InspectorCSSAgent::regionOversetChanged):
(WebCore::InspectorCSSAgent::didRegisterNamedFlowContentElement):
(WebCore::InspectorCSSAgent::didUnregisterNamedFlowContentElement):
(WebCore::InspectorCSSAgent::getMatchedStylesForNode):
(WebCore::InspectorCSSAgent::getInlineStylesForNode):
(WebCore::InspectorCSSAgent::getComputedStyleForNode):
(WebCore::InspectorCSSAgent::getAllStyleSheets):
(WebCore::InspectorCSSAgent::getStyleSheet):
(WebCore::InspectorCSSAgent::getStyleSheetText):
(WebCore::InspectorCSSAgent::setStyleSheetText):
(WebCore::InspectorCSSAgent::setStyleText):
(WebCore::InspectorCSSAgent::setPropertyText):
(WebCore::InspectorCSSAgent::toggleProperty):
(WebCore::InspectorCSSAgent::setRuleSelector):
(WebCore::InspectorCSSAgent::addRule):
(WebCore::InspectorCSSAgent::getSupportedCSSProperties):
(WebCore::InspectorCSSAgent::forcePseudoState):
(WebCore::InspectorCSSAgent::getNamedFlowCollection):
(WebCore::InspectorCSSAgent::elementForId):
(WebCore::InspectorCSSAgent::assertStyleSheetForId):
(WebCore::InspectorCSSAgent::buildArrayForRegions):
(WebCore::InspectorCSSAgent::buildObjectForNamedFlow):

  • inspector/InspectorCSSAgent.h:
  • inspector/InspectorController.cpp:

(WebCore::InspectorController::hideHighlight):
(WebCore::InspectorController::setProfilerEnabled):
(WebCore::InspectorController::resume):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorDOMAgent::assertNode):
(WebCore::InspectorDOMAgent::assertDocument):
(WebCore::InspectorDOMAgent::assertElement):
(WebCore::InspectorDOMAgent::assertEditableNode):
(WebCore::InspectorDOMAgent::assertEditableElement):
(WebCore::InspectorDOMAgent::getDocument):
(WebCore::InspectorDOMAgent::pushNodeToFrontend):
(WebCore::InspectorDOMAgent::requestChildNodes):
(WebCore::InspectorDOMAgent::querySelector):
(WebCore::InspectorDOMAgent::querySelectorAll):
(WebCore::InspectorDOMAgent::releaseBackendNodeIds):
(WebCore::InspectorDOMAgent::setAttributeValue):
(WebCore::InspectorDOMAgent::setAttributesAsText):
(WebCore::InspectorDOMAgent::removeAttribute):
(WebCore::InspectorDOMAgent::removeNode):
(WebCore::InspectorDOMAgent::setNodeName):
(WebCore::InspectorDOMAgent::getOuterHTML):
(WebCore::InspectorDOMAgent::setOuterHTML):
(WebCore::InspectorDOMAgent::setNodeValue):
(WebCore::InspectorDOMAgent::getEventListenersForNode):
(WebCore::InspectorDOMAgent::getAccessibilityPropertiesForNode):
(WebCore::InspectorDOMAgent::performSearch):
(WebCore::InspectorDOMAgent::getSearchResults):
(WebCore::InspectorDOMAgent::discardSearchResults):
(WebCore::InspectorDOMAgent::inspect):
(WebCore::InspectorDOMAgent::setSearchingForNode):
(WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject):
(WebCore::InspectorDOMAgent::setInspectModeEnabled):
(WebCore::InspectorDOMAgent::highlightRect):
(WebCore::InspectorDOMAgent::highlightQuad):
(WebCore::InspectorDOMAgent::highlightNode):
(WebCore::InspectorDOMAgent::highlightFrame):
(WebCore::InspectorDOMAgent::hideHighlight):
(WebCore::InspectorDOMAgent::moveTo):
(WebCore::InspectorDOMAgent::undo):
(WebCore::InspectorDOMAgent::redo):
(WebCore::InspectorDOMAgent::markUndoableState):
(WebCore::InspectorDOMAgent::focus):
(WebCore::InspectorDOMAgent::resolveNode):
(WebCore::InspectorDOMAgent::getAttributes):
(WebCore::InspectorDOMAgent::requestNode):
(WebCore::InspectorDOMAgent::pushNodeByPathToFrontend):
(WebCore::InspectorDOMAgent::pushNodeByBackendIdToFrontend):

  • inspector/InspectorDOMAgent.h:
  • inspector/InspectorDOMDebuggerAgent.cpp:

(WebCore::InspectorDOMDebuggerAgent::setEventListenerBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::setInstrumentationBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::setBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeEventListenerBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeInstrumentationBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeBreakpoint):
(WebCore::domTypeForName):
(WebCore::InspectorDOMDebuggerAgent::setDOMBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeDOMBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::setXHRBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeXHRBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):

  • inspector/InspectorDOMDebuggerAgent.h:
  • inspector/InspectorDOMStorageAgent.cpp:

(WebCore::InspectorDOMStorageAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorDOMStorageAgent::enable):
(WebCore::InspectorDOMStorageAgent::disable):
(WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
(WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::findStorageArea):

  • inspector/InspectorDOMStorageAgent.h:
  • inspector/InspectorDatabaseAgent.cpp:

(WebCore::InspectorDatabaseAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorDatabaseAgent::enable):
(WebCore::InspectorDatabaseAgent::disable):
(WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
(WebCore::InspectorDatabaseAgent::executeSQL):

  • inspector/InspectorDatabaseAgent.h:
  • inspector/InspectorIndexedDBAgent.cpp:

(WebCore::InspectorIndexedDBAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorIndexedDBAgent::enable):
(WebCore::InspectorIndexedDBAgent::disable):
(WebCore::assertDocument):
(WebCore::assertIDBFactory):
(WebCore::InspectorIndexedDBAgent::requestDatabaseNames):
(WebCore::InspectorIndexedDBAgent::requestDatabase):
(WebCore::InspectorIndexedDBAgent::requestData):
(WebCore::InspectorIndexedDBAgent::clearObjectStore):

  • inspector/InspectorIndexedDBAgent.h:
  • inspector/InspectorLayerTreeAgent.cpp:

(WebCore::InspectorLayerTreeAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorLayerTreeAgent::enable):
(WebCore::InspectorLayerTreeAgent::disable):
(WebCore::InspectorLayerTreeAgent::layersForNode):
(WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderObjectHierarchy):
(WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderLayerHierarchy):
(WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
(WebCore::InspectorLayerTreeAgent::idForNode):
(WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer):

  • inspector/InspectorLayerTreeAgent.h:
  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::cachedResourceContent):
(WebCore::InspectorPageAgent::resourceContent):
(WebCore::InspectorPageAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorPageAgent::enable):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::addScriptToEvaluateOnLoad):
(WebCore::InspectorPageAgent::removeScriptToEvaluateOnLoad):
(WebCore::InspectorPageAgent::reload):
(WebCore::InspectorPageAgent::navigate):
(WebCore::InspectorPageAgent::getCookies):
(WebCore::InspectorPageAgent::deleteCookie):
(WebCore::InspectorPageAgent::getResourceTree):
(WebCore::InspectorPageAgent::getResourceContent):
(WebCore::InspectorPageAgent::searchInResource):
(WebCore::InspectorPageAgent::searchInResources):
(WebCore::InspectorPageAgent::setDocumentContent):
(WebCore::InspectorPageAgent::setShowPaintRects):
(WebCore::InspectorPageAgent::canShowDebugBorders):
(WebCore::InspectorPageAgent::setShowDebugBorders):
(WebCore::InspectorPageAgent::canShowFPSCounter):
(WebCore::InspectorPageAgent::setShowFPSCounter):
(WebCore::InspectorPageAgent::canContinuouslyPaint):
(WebCore::InspectorPageAgent::setContinuousPaintingEnabled):
(WebCore::InspectorPageAgent::getScriptExecutionStatus):
(WebCore::InspectorPageAgent::setScriptExecutionDisabled):
(WebCore::InspectorPageAgent::assertFrame):
(WebCore::InspectorPageAgent::assertDocumentLoader):
(WebCore::InspectorPageAgent::setTouchEmulationEnabled):
(WebCore::InspectorPageAgent::setEmulatedMedia):
(WebCore::InspectorPageAgent::getCompositingBordersVisible):
(WebCore::InspectorPageAgent::setCompositingBordersVisible):
(WebCore::InspectorPageAgent::snapshotNode):
(WebCore::InspectorPageAgent::snapshotRect):
(WebCore::InspectorPageAgent::handleJavaScriptDialog):
(WebCore::InspectorPageAgent::archive):

  • inspector/InspectorPageAgent.h:
  • inspector/InspectorReplayAgent.cpp:

(WebCore::InspectorReplayAgent::startCapturing):
(WebCore::InspectorReplayAgent::stopCapturing):
(WebCore::InspectorReplayAgent::replayToPosition):
(WebCore::InspectorReplayAgent::replayToCompletion):
(WebCore::InspectorReplayAgent::pausePlayback):
(WebCore::InspectorReplayAgent::cancelPlayback):
(WebCore::InspectorReplayAgent::switchSession):
(WebCore::InspectorReplayAgent::insertSessionSegment):
(WebCore::InspectorReplayAgent::removeSessionSegment):
(WebCore::InspectorReplayAgent::findSession):
(WebCore::InspectorReplayAgent::findSegment):
(WebCore::InspectorReplayAgent::currentReplayState):
(WebCore::InspectorReplayAgent::getAvailableSessions):
(WebCore::InspectorReplayAgent::getSessionData):
(WebCore::InspectorReplayAgent::getSegmentData):

  • inspector/InspectorReplayAgent.h:
  • inspector/InspectorResourceAgent.cpp:

(WebCore::InspectorResourceAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorResourceAgent::~InspectorResourceAgent):
(WebCore::InspectorResourceAgent::enable):
(WebCore::InspectorResourceAgent::disable):
(WebCore::InspectorResourceAgent::setExtraHTTPHeaders):
(WebCore::InspectorResourceAgent::getResponseBody):
(WebCore::InspectorResourceAgent::replayXHR):
(WebCore::InspectorResourceAgent::canClearBrowserCache):
(WebCore::InspectorResourceAgent::clearBrowserCache):
(WebCore::InspectorResourceAgent::canClearBrowserCookies):
(WebCore::InspectorResourceAgent::clearBrowserCookies):
(WebCore::InspectorResourceAgent::setCacheDisabled):
(WebCore::InspectorResourceAgent::loadResource):

  • inspector/InspectorResourceAgent.h:
  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheet::resourceStyleSheetText):

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::stop):

  • inspector/InspectorTimelineAgent.h:
  • inspector/InspectorWorkerAgent.cpp:

(WebCore::InspectorWorkerAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorWorkerAgent::enable):
(WebCore::InspectorWorkerAgent::disable):
(WebCore::InspectorWorkerAgent::canInspectWorkers):
(WebCore::InspectorWorkerAgent::connectToWorker):
(WebCore::InspectorWorkerAgent::disconnectFromWorker):
(WebCore::InspectorWorkerAgent::sendMessageToWorker):
(WebCore::InspectorWorkerAgent::setAutoconnectToWorkers):

  • inspector/InspectorWorkerAgent.h:
  • inspector/PageConsoleAgent.cpp:

(WebCore::PageConsoleAgent::clearMessages):
(WebCore::PageConsoleAgent::addInspectedNode):

  • inspector/PageConsoleAgent.h:
  • inspector/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::injectedScriptForEval):
(WebCore::PageDebuggerAgent::setOverlayMessage):

  • inspector/PageDebuggerAgent.h:
  • inspector/PageRuntimeAgent.cpp:

(WebCore::PageRuntimeAgent::willDestroyFrontendAndBackend):
(WebCore::PageRuntimeAgent::enable):
(WebCore::PageRuntimeAgent::disable):
(WebCore::PageRuntimeAgent::injectedScriptForEval):

  • inspector/PageRuntimeAgent.h:
  • inspector/WebConsoleAgent.cpp:

(WebCore::WebConsoleAgent::setMonitoringXHREnabled):

  • inspector/WebConsoleAgent.h:
  • inspector/WorkerConsoleAgent.cpp:

(WebCore::WorkerConsoleAgent::addInspectedNode):

  • inspector/WorkerConsoleAgent.h:
  • inspector/WorkerDebuggerAgent.cpp:

(WebCore::WorkerDebuggerAgent::injectedScriptForEval):

  • inspector/WorkerDebuggerAgent.h:
  • inspector/WorkerInspectorController.cpp:

(WebCore::WorkerInspectorController::resume):

  • inspector/WorkerRuntimeAgent.cpp:

(WebCore::WorkerRuntimeAgent::injectedScriptForEval):
(WebCore::WorkerRuntimeAgent::run):

  • inspector/WorkerRuntimeAgent.h:
6:51 PM Changeset in webkit [174139] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Update Install.md for Mavericks and fix typos
https://bugs.webkit.org/show_bug.cgi?id=137276

Reviewed by Benjamin Poulain.

Add the instruction to copy php.ini to enable the Postgres extension in PHP.

Also use perf.webkit.org as the directory name instead of WebKitPerfMonitor.

Finally, init-database.sql is no longer located inside database directory.

  • Install.md:
5:17 PM Changeset in webkit [174138] by roger_fong@apple.com
  • 2 edits in trunk/LayoutTests

[ Windows ] More Windows test gardening to get bots green.

  • platform/win/TestExpectations: More indiscriminate mass skipping.
5:14 PM Changeset in webkit [174137] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Source/WebCore:
Stack overflow with enormous SVG filter
https://bugs.webkit.org/show_bug.cgi?id=63290

Prevent building an SVG filter if it has more than 200 FilterEffect nodes in its map
regardless whether they will be connected to its lastEffect or not. Also discard any
filter which has more 100 contributing FilterEffect nodes in its tree.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2014-09-30
Reviewed by Dean Jackson.

Tests: svg/filters/svg-deeply-nested-crash.html

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::collectEffects):
(WebCore::FilterEffect::totalNumberOfEffectInputs):

  • platform/graphics/filters/FilterEffect.h:

-- Add a method to return the total number of input FilterEffect's contributing to a FilterEffect.

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::buildPrimitives):
-- Do not build a filter if it has more than 200 FilterEffects in its map.
(WebCore::RenderSVGResourceFilter::applyResource):
-- Discard a filter after it was built if it has more than 100 FilterEffects in its tree.

LayoutTests:
Stack overflow with enormous SVG filter.
https://bugs.webkit.org/show_bug.cgi?id=63290.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2014-09-30
Reviewed by Dean Jackson.

Test if an SVG filter with deeply nested tree of FilterEffects can be loaded
with no crash. Make sure other valid filters can still be referenced by SVG
drawing elements. An SVG Filter will be ignored if the number of effects in
its map is greater than 200 or the total number of effects connected to its
last effect is greater than 100.

  • svg/filters/svg-deeply-nested-crash-expected.txt: Added.
  • svg/filters/svg-deeply-nested-crash.html: Added.
5:11 PM Changeset in webkit [174136] by evab.u-szeged@partner.samsung.com
  • 169 edits
    1 delete in trunk/Tools

Remove thirdparty/unittest2 from webkitpy
https://bugs.webkit.org/show_bug.cgi?id=137251

Reviewed by Brent Fulgham.

Additionally ordered imports in related webkitpy files and
removed unnecessary shebangs from unittest files.

  • BuildSlaveSupport/build.webkit.org-config/htdigestparser_unittest.py:
  • Scripts/webkitpy/common/checkout/changelog_unittest.py:
  • Scripts/webkitpy/common/checkout/checkout_unittest.py:
  • Scripts/webkitpy/common/checkout/commitinfo_unittest.py:
  • Scripts/webkitpy/common/checkout/diff_parser_unittest.py:
  • Scripts/webkitpy/common/checkout/scm/detection_unittest.py:
  • Scripts/webkitpy/common/checkout/scm/scm_unittest.py:
  • Scripts/webkitpy/common/config/committers_unittest.py:
  • Scripts/webkitpy/common/config/committervalidator_unittest.py:
  • Scripts/webkitpy/common/config/contributionareas_unittest.py:
  • Scripts/webkitpy/common/config/ports_unittest.py:
  • Scripts/webkitpy/common/config/urls_unittest.py:
  • Scripts/webkitpy/common/editdistance_unittest.py:
  • Scripts/webkitpy/common/find_files_unittest.py:
  • Scripts/webkitpy/common/lru_cache_unittest.py:
  • Scripts/webkitpy/common/memoized_unittest.py:
  • Scripts/webkitpy/common/net/bugzilla/bug_unittest.py:
  • Scripts/webkitpy/common/net/bugzilla/bugzilla_unittest.py:
  • Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py:
  • Scripts/webkitpy/common/net/credentials_unittest.py:
  • Scripts/webkitpy/common/net/failuremap_unittest.py:
  • Scripts/webkitpy/common/net/irc/ircproxy_unittest.py:
  • Scripts/webkitpy/common/net/layouttestresults_unittest.py:
  • Scripts/webkitpy/common/net/networktransaction_unittest.py:
  • Scripts/webkitpy/common/net/resultsjsonparser_unittest.py:
  • Scripts/webkitpy/common/net/statusserver_unittest.py:
  • Scripts/webkitpy/common/net/unittestresults_unittest.py:
  • Scripts/webkitpy/common/newstringio_unittest.py:
  • Scripts/webkitpy/common/prettypatch_unittest.py:
  • Scripts/webkitpy/common/read_checksum_from_png_unittest.py:
  • Scripts/webkitpy/common/system/crashlogs_unittest.py:
  • Scripts/webkitpy/common/system/environment_unittest.py:
  • Scripts/webkitpy/common/system/executive.py: Ordered imports.
  • Scripts/webkitpy/common/system/executive_mock.py: Ordered imports.
  • Scripts/webkitpy/common/system/executive_unittest.py:
  • Scripts/webkitpy/common/system/file_lock_integrationtest.py:
  • Scripts/webkitpy/common/system/filesystem_mock_unittest.py:
  • Scripts/webkitpy/common/system/filesystem_unittest.py:
  • Scripts/webkitpy/common/system/logtesting.py:
  • Scripts/webkitpy/common/system/logutils_unittest.py:
  • Scripts/webkitpy/common/system/outputcapture.py:
  • Scripts/webkitpy/common/system/outputcapture_unittest.py:
  • Scripts/webkitpy/common/system/outputtee_unittest.py:
  • Scripts/webkitpy/common/system/path_unittest.py:
  • Scripts/webkitpy/common/system/platforminfo_unittest.py:
  • Scripts/webkitpy/common/system/profiler_unittest.py:
  • Scripts/webkitpy/common/system/stack_utils_unittest.py:
  • Scripts/webkitpy/common/system/user_unittest.py:
  • Scripts/webkitpy/common/system/workspace_unittest.py:
  • Scripts/webkitpy/common/system/zipfileset_unittest.py:
  • Scripts/webkitpy/common/thread/messagepump_unittest.py:
  • Scripts/webkitpy/common/thread/threadedmessagequeue_unittest.py:
  • Scripts/webkitpy/common/watchlist/amountchangedpattern_unittest.py:
  • Scripts/webkitpy/common/watchlist/changedlinepattern_unittest.py:
  • Scripts/webkitpy/common/watchlist/filenamepattern_unittest.py:
  • Scripts/webkitpy/common/watchlist/watchlist_unittest.py:
  • Scripts/webkitpy/common/watchlist/watchlistrule_unittest.py:
  • Scripts/webkitpy/common/webkitunittest.py:
  • Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py:
  • Scripts/webkitpy/layout_tests/controllers/manager_unittest.py:
  • Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py:
  • Scripts/webkitpy/layout_tests/layout_package/json_results_generator_unittest.py:
  • Scripts/webkitpy/layout_tests/lint_test_expectations_unittest.py:
  • Scripts/webkitpy/layout_tests/models/test_configuration_unittest.py:
  • Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:
  • Scripts/webkitpy/layout_tests/models/test_failures_unittest.py:
  • Scripts/webkitpy/layout_tests/models/test_results_unittest.py:
  • Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py:
  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
  • Scripts/webkitpy/layout_tests/servers/apache_http_server_unittest.py:
  • Scripts/webkitpy/layout_tests/servers/http_server_base_unittest.py:
  • Scripts/webkitpy/layout_tests/servers/http_server_integrationtest.py:
  • Scripts/webkitpy/layout_tests/servers/http_server_unittest.py:
  • Scripts/webkitpy/layout_tests/views/buildbot_results_unittest.py:
  • Scripts/webkitpy/layout_tests/views/metered_stream_unittest.py:
  • Scripts/webkitpy/layout_tests/views/printing_unittest.py:
  • Scripts/webkitpy/performance_tests/perftest_unittest.py:
  • Scripts/webkitpy/performance_tests/perftestsrunner_integrationtest.py:
  • Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:
  • Scripts/webkitpy/port/base_unittest.py:
  • Scripts/webkitpy/port/builders_unittest.py:
  • Scripts/webkitpy/port/config_unittest.py:
  • Scripts/webkitpy/port/driver_unittest.py:
  • Scripts/webkitpy/port/efl_unittest.py:
  • Scripts/webkitpy/port/factory_unittest.py:
  • Scripts/webkitpy/port/gtk_unittest.py:
  • Scripts/webkitpy/port/http_lock_unittest.py:
  • Scripts/webkitpy/port/image_diff_unittest.py:
  • Scripts/webkitpy/port/leakdetector_unittest.py:
  • Scripts/webkitpy/port/leakdetector_valgrind_unittest.py:
  • Scripts/webkitpy/port/linux_get_crash_log_unittest.py:
  • Scripts/webkitpy/port/mock_drt_unittest.py:
  • Scripts/webkitpy/port/port_testcase.py:
  • Scripts/webkitpy/port/server_process_unittest.py:
  • Scripts/webkitpy/port/westondriver_unittest.py:
  • Scripts/webkitpy/port/win_unittest.py:
  • Scripts/webkitpy/port/xvfbdriver_unittest.py:
  • Scripts/webkitpy/style/checker_unittest.py:
  • Scripts/webkitpy/style/checkers/changelog_unittest.py:
  • Scripts/webkitpy/style/checkers/cmake_unittest.py:
  • Scripts/webkitpy/style/checkers/common_unittest.py:
  • Scripts/webkitpy/style/checkers/cpp_unittest.py:
  • Scripts/webkitpy/style/checkers/exportfile_unittest.py:
  • Scripts/webkitpy/style/checkers/js_unittest.py:
  • Scripts/webkitpy/style/checkers/jsonchecker_unittest.py:
  • Scripts/webkitpy/style/checkers/messagesin_unittest.py:
  • Scripts/webkitpy/style/checkers/png_unittest.py:
  • Scripts/webkitpy/style/checkers/python_unittest.py:
  • Scripts/webkitpy/style/checkers/test_expectations_unittest.py:
  • Scripts/webkitpy/style/checkers/text_unittest.py:
  • Scripts/webkitpy/style/checkers/watchlist_unittest.py:
  • Scripts/webkitpy/style/checkers/xcodeproj_unittest.py:
  • Scripts/webkitpy/style/checkers/xml_unittest.py:
  • Scripts/webkitpy/style/error_handlers_unittest.py:
  • Scripts/webkitpy/style/filereader_unittest.py:
  • Scripts/webkitpy/style/filter_unittest.py:
  • Scripts/webkitpy/style/main_unittest.py:
  • Scripts/webkitpy/style/optparser_unittest.py:
  • Scripts/webkitpy/style/patchreader_unittest.py:
  • Scripts/webkitpy/test/finder_unittest.py:
  • Scripts/webkitpy/test/main.py: Ordered imports.
  • Scripts/webkitpy/test/main_unittest.py:
  • Scripts/webkitpy/test/printer.py: Ordered imports.

(Printer.configure):

  • Scripts/webkitpy/test/runner_unittest.py:
  • Scripts/webkitpy/test/skip_unittest.py:
  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._install_irc):
(AutoinstallImportHook._install_unittest2): Deleted.

  • Scripts/webkitpy/thirdparty/init_unittest.py:
  • Scripts/webkitpy/thirdparty/ordered_dict.py: Removed.
  • Scripts/webkitpy/to_be_moved/update_webgl_conformance_tests_unittest.py:
  • Scripts/webkitpy/tool/bot/botinfo_unittest.py:
  • Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:
  • Scripts/webkitpy/tool/bot/expectedfailures_unittest.py:
  • Scripts/webkitpy/tool/bot/feeders_unittest.py:
  • Scripts/webkitpy/tool/bot/flakytestreporter_unittest.py:
  • Scripts/webkitpy/tool/bot/irc_command_unittest.py:
  • Scripts/webkitpy/tool/bot/ircbot_unittest.py:
  • Scripts/webkitpy/tool/bot/layouttestresultsreader_unittest.py:
  • Scripts/webkitpy/tool/bot/queueengine_unittest.py:
  • Scripts/webkitpy/tool/bot/sheriff_unittest.py:
  • Scripts/webkitpy/tool/commands/download_unittest.py:
  • Scripts/webkitpy/tool/commands/newcommitbot_unittest.py:
  • Scripts/webkitpy/tool/commands/perfalizer_unittest.py:
  • Scripts/webkitpy/tool/commands/queries_unittest.py:
  • Scripts/webkitpy/tool/commands/queuestest.py:
  • Scripts/webkitpy/tool/commands/rebaseline_unittest.py:
  • Scripts/webkitpy/tool/grammar_unittest.py:
  • Scripts/webkitpy/tool/mocktool_unittest.py:
  • Scripts/webkitpy/tool/multicommandtool_unittest.py:
  • Scripts/webkitpy/tool/servers/gardeningserver_unittest.py:
  • Scripts/webkitpy/tool/servers/rebaselineserver_unittest.py:
  • Scripts/webkitpy/tool/servers/reflectionhandler_unittest.py:
  • Scripts/webkitpy/tool/steps/addsvnmimetypeforpng_unittest.py:
  • Scripts/webkitpy/tool/steps/applywatchlist_unittest.py:
  • Scripts/webkitpy/tool/steps/cleanworkingdirectory_unittest.py:
  • Scripts/webkitpy/tool/steps/closebugforlanddiff_unittest.py:
  • Scripts/webkitpy/tool/steps/commit_unittest.py:
  • Scripts/webkitpy/tool/steps/discardlocalchanges_unittest.py:
  • Scripts/webkitpy/tool/steps/haslanded_unittest.py:
  • Scripts/webkitpy/tool/steps/preparechangelog_unittest.py:
  • Scripts/webkitpy/tool/steps/preparechangelogforrevert_unittest.py:
  • Scripts/webkitpy/tool/steps/runtests_unittest.py:
  • Scripts/webkitpy/tool/steps/steps_unittest.py:
  • Scripts/webkitpy/tool/steps/suggestreviewers_unittest.py:
  • Scripts/webkitpy/tool/steps/update_unittest.py:
  • Scripts/webkitpy/tool/steps/updatechangelogswithreview_unittest.py:
  • Scripts/webkitpy/tool/steps/validatechangelogs_unittest.py:
  • Scripts/webkitpy/w3c/test_converter_unittest.py:
  • Scripts/webkitpy/w3c/test_importer_unittest.py:
  • Scripts/webkitpy/w3c/test_parser_unittest.py:
4:42 PM Changeset in webkit [174135] by roger_fong@apple.com
  • 5 edits in trunk/LayoutTests

[ Windows ] More Windows test gardening to get bots green.

  • platform/win/TestExpectations:
  • platform/win/css3/unicode-bidi-isolate-basic-expected.txt:
  • platform/win/fast/multicol/vertical-rl/float-multicol-expected.txt:
  • platform/win/fast/multicol/vertical-rl/nested-columns-expected.txt:
4:32 PM Changeset in webkit [174134] by Beth Dakin
  • 2 edits in trunk/LayoutTests

According to the history, this test has been very flaky. Marking as such.

  • platform/mac/TestExpectations:
4:15 PM Changeset in webkit [174133] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.1.1/Source/JavaScriptCore

Merged r174108. <rdar://problem/18487528>

4:03 PM Changeset in webkit [174132] by Chris Dumez
  • 17 edits in trunk/Source/WebCore

Use is<>() / downcast<>() for ContainerNode
https://bugs.webkit.org/show_bug.cgi?id=137270

Reviewed by Andreas Kling.

Use is<>() / downcast<>() for ContainerNode instead of isContainerNode()
/ toContainerNode(). Also kill the NODE_TYPE_CASTS() macro as this was
its last user.

No new tests, no behavior change.

  • dom/ContainerNode.cpp:

(WebCore::collectChildrenAndRemoveFromOldParent):
(WebCore::ContainerNode::willRemoveChild):
(WebCore::cloneChildNodesAvoidingDeleteButton):

  • dom/ContainerNode.h:

(WebCore::Node::countChildNodes):
(WebCore::Node::traverseToChildAt):
(WebCore::Node::firstChild):
(WebCore::Node::lastChild):
(isType):
(WebCore::isContainerNode): Deleted.

  • dom/ContainerNodeAlgorithms.cpp:

(WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoTree):
(WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromTree):

  • dom/ContainerNodeAlgorithms.h:

(WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
(WebCore::ChildNodeInsertionNotifier::notify):
(WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromDocument):
(WebCore::ChildNodeRemovalNotifier::notify):

  • dom/Node.cpp:

(WebCore::Node::childNodes):
(WebCore::Node::insertBefore):
(WebCore::Node::replaceChild):
(WebCore::Node::removeChild):
(WebCore::Node::appendChild):
(WebCore::Node::setTextContent):

  • dom/Node.h:
  • dom/Range.cpp:

(WebCore::Range::surroundContents):

  • dom/TextNodeTraversal.cpp:

(WebCore::TextNodeTraversal::contentsAsString):

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyBlockStyle):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::insertNodeAt):

  • editing/Editor.cpp:

(WebCore::correctSpellcheckingPreservingTextCheckingParagraph):

  • html/MediaDocument.cpp:

(WebCore::MediaDocument::defaultEventHandler):

  • html/parser/HTMLConstructionSite.h:

(WebCore::HTMLConstructionSiteTask::oldParent):

  • html/track/VTTCue.cpp:

(WebCore::VTTCue::copyWebVTTNodeToDOMTree):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::querySelector):
(WebCore::InspectorDOMAgent::querySelectorAll):

  • inspector/InspectorNodeFinder.cpp:

(WebCore::InspectorNodeFinder::searchUsingCSSSelectors):

3:59 PM Changeset in webkit [174131] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.1.1/Source

Versioning.

3:58 PM Changeset in webkit [174130] by commit-queue@webkit.org
  • 12 edits in trunk/Tools

LayoutTestResults and ExpectedFailures should know about the
interrupted flag from the json results file
https://bugs.webkit.org/show_bug.cgi?id=137229

Patch by Jake Nielsen <jacob_nielsen@apple.com> on 2014-09-30
Reviewed by Daniel Bates.

Changes LayoutTestResults to use the interrupted flag instead of
counting failures.

  • Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py:

(BuilderTest._install_fetch_build._mock_fetch_build):
(BuilderTest.test_latest_layout_test_results):

  • Scripts/webkitpy/common/net/layouttestresults.py:

Removes notion of failure_limit_count, and adds
did_exceed_test_failure_limit.

(LayoutTestResults.results_from_string):
(LayoutTestResults.init):
(LayoutTestResults.did_exceed_test_failure_limit):
(LayoutTestResults): Deleted.
(LayoutTestResults.set_failure_limit_count): Deleted.
(LayoutTestResults.failure_limit_count): Deleted.

  • Scripts/webkitpy/common/net/layouttestresults_unittest.py:

Removes unit test for failure_limit_count logic.

(LayoutTestResultsTest.test_set_failure_limit_count): Deleted.

  • Scripts/webkitpy/common/net/resultsjsonparser.py:

Instead of providing a class method that returns a list of
TestResults objects, resultsjsonparser now provides a class
ParsedJSONResults that serves as an interface between the results.json
file and the rest of webkitpy.

(ParsedJSONResults):
(ParsedJSONResults.init):
(ParsedJSONResults.did_exceed_test_failure_limit):
(ParsedJSONResults.test_results):
(ResultsJSONParser): Deleted.
(ResultsJSONParser.parse_results_json): Deleted.

  • Scripts/webkitpy/common/net/resultsjsonparser_unittest.py:

Updates the unit test so that it can test the new ResultsJSONParser
class.

(ParsedJSONResultsTest):
(test_basic):
(ResultsJSONParserTest): Deleted.

  • Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:

Updates the unit test to instantiate ResultsJSONParser objects rather
than simple lists of TestResult objects.

(MockCommitQueue.test_results):
(FailingTestCommitQueue.test_results):
(test_flaky_test_failure):
(test_failed_archive):

  • Scripts/webkitpy/tool/bot/expectedfailures.py:

Updates ExpectedFailures to use the did_exceed_test_failure_limit
method rather than counting the number of failed tests.

(ExpectedFailures._should_trust):

  • Scripts/webkitpy/tool/bot/expectedfailures_unittest.py:

Updates MockResults to more closely resemble the updated
LayoutTestResults class.

(MockResults.init):
(MockResults.did_exceed_test_failure_limit):
(ExpectedFailuresTest.test_can_trust_results):
(ExpectedFailuresTest.test_unexpected_failures_observed):
(ExpectedFailuresTest.test_unexpected_failures_observed_when_tree_is_hosed):
(MockResults.failure_limit_count): Deleted.

  • Scripts/webkitpy/tool/bot/layouttestresultsreader.py:

Removes a FIXME regarding the use of the
NON_INTERACTIVE_FAILURE_LIMIT_COUNT value.

(LayoutTestResultsReader.results):

  • Scripts/webkitpy/tool/bot/layouttestresultsreader_unittest.py:

Updates test to not check the now-nonexistant failure_count_limit
method.

(test_missing_unit_test_results_path):
(test_layout_test_results):

  • Scripts/webkitpy/tool/servers/rebaselineserver_unittest.py:

Accounts for name change: ResultsJSONParserTest ->
ParsedJSONParserTest.

(RebaselineTestTest.test_gather_baselines):

3:56 PM Changeset in webkit [174129] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.1.1

New tag.

3:54 PM Changeset in webkit [174128] by gyuyoung.kim@samsung.com
  • 9 edits in trunk

[EFL] Rename TEST_THEME_DIR macro
https://bugs.webkit.org/show_bug.cgi?id=137244

Reviewed by Csaba Osztrogonác.

.:

  • Source/cmake/OptionsEfl.cmake: Rename TEST_THEME_DIR to DEFAULT_THEME_DIR.

Source/WebKit2:

TEST_THEME_DIR is to get a path for default theme though, it has used TEST_ prefix.
DEFAULT_THEME_DIR is better than it.

  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:

(EWK2UnitTest::EWK2UnitTestEnvironment::defaultTheme):
(EWK2UnitTest::EWK2UnitTestEnvironment::pathForTheme):

  • UIProcess/efl/WebInspectorProxyEfl.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

Tools:

TEST_THEME_DIR is to get a path for default theme though, it has used TEST_ prefix.
DEFAULT_THEME_DIR is better than it.

  • MiniBrowser/efl/main.c:

(window_create):

  • TestWebKitAPI/efl/PlatformWebView.cpp:

(TestWebKitAPI::PlatformWebView::PlatformWebView):

  • WebKitTestRunner/efl/PlatformWebViewEfl.cpp:

(WTR::PlatformWebView::PlatformWebView):

3:50 PM Changeset in webkit [174127] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

[Windows] Remove an errant WTFLogAlways that makes test output hard to read and generates stderr output.

  • platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:

(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didFinishLoading):

3:12 PM Changeset in webkit [174126] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

Remove a multicolumn ASSERT and replace with a guard.
https://bugs.webkit.org/show_bug.cgi?id=137272

Reviewed by Alexey Proskuryakov.

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::isValidColumnSpanner):
For now remove the assert that is tripping and replace it with a guard
until we can figure out why it's getting hit.

2:32 PM Changeset in webkit [174125] by Chris Dumez
  • 70 edits
    1 add in trunk/Source

Generalize is<>() / downcast<>() support to all types
https://bugs.webkit.org/show_bug.cgi?id=137243

Reviewed by Benjamin Poulain.

Generalize is<>() / downcast<>() support to all types, not just Nodes.
Source/WebCore:

To achieve this, the following changes were made:

  • Move is<> / downcast<>() and NodeTypeCastTraits from Node.h to a new wtf/TypeCasts.h header. Also move them to WTF namespace instead of WebCore namespace as they can be used for classes in other namespaces (e.g. WebKit namespace).
  • Rename NodeTypeCastsTraits to TypeCastTraits as it can be specialized for non-Nodes.
  • Since C++ does not allow template specializations in different namespaces, I had to move all the SPECIALIZE_TYPE_TRAITS_*() uses to
the global scope and use the WebCore
namespace explicitly in those. This is a bit unfortunate but I couldn't find a better way.

This patch also takes care of supporting is<>() / downcast<>() for
the WorkerGlobalScope class, which does not derive from Node.

No new tests, no behavior change.

  • Modules/indexeddb/IDBFactory.cpp:
  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:

(WebCore::WorkerGlobalScopeIndexedDatabase::from):

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::create):

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::toJSDOMGlobalObject):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::execute):

  • dom/Attr.h:

(isType):
(WebCore::isAttr): Deleted.

  • dom/CDATASection.h:

(isType):
(WebCore::isCDATASection): Deleted.

  • dom/CharacterData.h:

(isType):
(WebCore::isCharacterData): Deleted.

  • dom/Comment.h:

(isType):
(WebCore::isComment): Deleted.

  • dom/Document.h:

(isType):
(WebCore::isDocument): Deleted.

  • dom/DocumentFragment.h:

(isType):
(WebCore::isDocumentFragment): Deleted.

  • dom/DocumentType.h:

(isType):
(WebCore::isDocumentType): Deleted.

  • dom/Element.h:
  • dom/MessagePort.cpp:

(WebCore::MessagePort::dispatchMessages):

  • dom/Node.h:

(WebCore::is): Deleted.
(WebCore::downcast): Deleted.

  • dom/ProcessingInstruction.h:

(isType):
(WebCore::isProcessingInstruction): Deleted.

  • dom/PseudoElement.h:

(isType):
(WebCore::isPseudoElement): Deleted.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::createdMessagePort):
(WebCore::ScriptExecutionContext::destroyedMessagePort):
(WebCore::ScriptExecutionContext::vm):

  • dom/ScriptExecutionContext.h:
  • dom/ShadowRoot.h:

(isType):
(WebCore::isShadowRoot): Deleted.

  • dom/StyledElement.h:

(isType):
(WebCore::isStyledElement): Deleted.

  • dom/Text.h:

(isType):
(WebCore::isText): Deleted.

  • dom/make_names.pl:

(printTypeHelpers):
(printTypeHelpersHeaderFile):

  • html/HTMLDocument.h:

(isType):
(WebCore::isHTMLDocument): Deleted.

  • html/HTMLElement.h:

(isType):
(WebCore::isHTMLElement): Deleted.

  • html/HTMLFormControlElement.h:

(isType):
(WebCore::isHTMLFormControlElement): Deleted.

  • html/HTMLFrameElementBase.h:

(isType):
(WebCore::isHTMLFrameElementBase): Deleted.

  • html/HTMLFrameOwnerElement.h:

(isType):
(WebCore::isHTMLFrameOwnerElement): Deleted.

  • html/HTMLMediaElement.h:

(isType):
(WebCore::isHTMLMediaElement): Deleted.

  • html/HTMLPlugInElement.h:

(isType):
(WebCore::isHTMLPlugInElement): Deleted.

  • html/HTMLPlugInImageElement.h:

(isType):
(WebCore::isHTMLPlugInImageElement): Deleted.

  • html/HTMLTableCellElement.h:

(isType):
(WebCore::isHTMLTableCellElement): Deleted.

  • html/HTMLTableSectionElement.h:

(isType):
(WebCore::isHTMLTableSectionElement): Deleted.

  • html/HTMLTextFormControlElement.h:

(isType):
(WebCore::isHTMLTextFormControlElement): Deleted.

  • html/ImageDocument.h:

(isType):
(WebCore::isImageDocument): Deleted.

  • html/LabelableElement.h:

(isType):
(WebCore::isLabelableElement): Deleted.

  • html/MediaDocument.h:

(isType):
(WebCore::isMediaDocument): Deleted.

  • html/PluginDocument.h:

(isType):
(WebCore::isPluginDocument): Deleted.

  • html/shadow/InsertionPoint.h:

(isType):
(WebCore::isInsertionPoint): Deleted.

  • html/shadow/TextControlInnerElements.h:

(isType):
(WebCore::isTextControlInnerTextElement): Deleted.

  • html/track/WebVTTElement.h:

(isType):
(WebCore::isWebVTTElement): Deleted.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::instrumentingAgentsForNonDocumentContext):

  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoader::create):
(WebCore::ThreadableLoader::loadResourceSynchronously):

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::removeRequestFromCache):
(WebCore::MemoryCache::removeRequestFromSessionCaches):

  • mathml/MathMLElement.h:

(isType):
(WebCore::isMathMLElement): Deleted.

  • svg/SVGAnimateElementBase.h:

(isType):
(WebCore::isSVGAnimateElementBase): Deleted.

  • svg/SVGDocument.h:

(isType):
(WebCore::isSVGDocument): Deleted.

  • svg/SVGElement.h:

(isType):
(WebCore::isSVGElement): Deleted.

  • svg/SVGFilterPrimitiveStandardAttributes.h:

(isType):
(WebCore::isSVGFilterPrimitiveStandardAttributes): Deleted.

  • svg/SVGGradientElement.h:

(isType):
(WebCore::isSVGGradientElement): Deleted.

  • svg/SVGGraphicsElement.h:

(isType):
(WebCore::isSVGGraphicsElement): Deleted.

  • svg/SVGPolyElement.h:

(isType):
(WebCore::isSVGPolyElement): Deleted.

  • svg/SVGTextContentElement.h:

(isType):
(WebCore::isSVGTextContentElement): Deleted.

  • svg/animation/SVGSMILElement.h:

(isType):
(WebCore::isSVGSMILElement): Deleted.

  • workers/DefaultSharedWorkerRepository.cpp:

(WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::close):

  • workers/WorkerGlobalScope.h:

(isType):

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
(WebCore::WorkerMessagingProxy::~WorkerMessagingProxy):
(WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
(WebCore::WorkerMessagingProxy::connectToInspector):
(WebCore::WorkerMessagingProxy::disconnectFromInspector):
(WebCore::WorkerMessagingProxy::sendMessageToInspector):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::stop):

Source/WebKit/win:

  • DOMCoreClasses.cpp:

(DOMElement::createInstance):

Source/WebKit2:

  • WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:

(-[WKDOMDocument createElement:]):
(-[WKDOMDocument createTextNode:]):
(-[WKDOMDocument body]):

  • WebProcess/InjectedBundle/API/mac/WKDOMText.mm:

(-[WKDOMText data]):
(-[WKDOMText setData:]):

Source/WTF:

  • wtf/Assertions.h:
  • wtf/TypeCasts.h: Added.

(WTF::is):
(WTF::downcast):

2:30 PM Changeset in webkit [174124] by ap@apple.com
  • 3 edits in trunk/Tools

Windows EWS went purple when it failed to build
https://bugs.webkit.org/show_bug.cgi?id=137267

Reviewed by Ryosuke Niwa.

  • QueueStatusServer/app.yaml: Update the version.
  • QueueStatusServer/model/attachment.py: (Attachment._calculate_queue_positions):

Make it work for style and win-ews queues.

2:11 PM Changeset in webkit [174123] by fpizlo@apple.com
  • 2 edits
    1 move
    20 adds in trunk

It should be fun and easy to run every possible JavaScript benchmark from the command line
https://bugs.webkit.org/show_bug.cgi?id=137245

Reviewed by Oliver Hunt.

PerformanceTests:

This adds the scaffolding for running Octane version 2 inside run-jsc-benchmarks.
In the future we should just land Octane2 in this directory, and run-jsc-benchmarks
should be changed to point directly at this directory instead of requiring the
Octane path to be configured as part of the configuration file.

  • Octane: Added.
  • Octane/wrappers: Added.
  • Octane/wrappers/jsc-box2d.js: Added.

(jscSetUp):
(jscTearDown):
(jscRun):

  • Octane/wrappers/jsc-boyer.js: Added.

(jscSetUp):
(jscTearDown):
(jscRun):

  • Octane/wrappers/jsc-closure.js: Added.

(jscSetUp):
(jscTearDown):
(jscRun):

  • Octane/wrappers/jsc-decrypt.js: Added.

(jscSetUp):
(jscTearDown):
(jscRun):

  • Octane/wrappers/jsc-deltablue.js: Added.

(jscSetUp):
(jscTearDown):
(jscRun):

  • Octane/wrappers/jsc-earley.js: Added.

(jscSetUp):
(jscTearDown):
(jscRun):

  • Octane/wrappers/jsc-encrypt.js: Added.

(jscSetUp):
(jscTearDown):
(jscRun):

  • Octane/wrappers/jsc-gbemu.js: Added.

(jscSetUp):
(jscTearDown):
(jscRun):

  • Octane/wrappers/jsc-jquery.js: Added.

(jscSetUp):
(jscTearDown):
(jscRun):

  • Octane/wrappers/jsc-mandreel.js: Added.

(jscSetUp):
(jscTearDown):
(jscRun):

  • Octane/wrappers/jsc-navier-stokes.js: Added.

(jscSetUp):
(jscTearDown):
(jscRun):

  • Octane/wrappers/jsc-pdfjs.js: Added.

(jscSetUp.PdfJS_window.console.log):
(jscSetUp):
(jscTearDown):
(jscRun):

  • Octane/wrappers/jsc-raytrace.js: Added.

(jscSetUp):
(jscTearDown):
(jscRun):

  • Octane/wrappers/jsc-regexp.js: Added.

(jscSetUp):
(jscTearDown):
(jscRun):

  • Octane/wrappers/jsc-richards.js: Added.

(jscSetUp):
(jscTearDown):
(jscRun):

  • Octane/wrappers/jsc-splay.js: Added.

(jscSetUp):
(jscTearDown):
(jscRun):

  • Octane/wrappers/jsc-typescript.js: Added.

(jscSetUp):
(jscTearDown):
(jscRun):

  • Octane/wrappers/jsc-zlib.js: Added.

(jscSetUp):
(jscTearDown):
(jscRun):

Tools:

We previously had Tools/Scripts/bencher. Then we stopped adding things to it because we
weren't sure about the licensing of things like Kraken and Octane. Various people ended up
having their own private scripts for doing benchmark runs, and didn't share them in the open
source community, because of fears about the shady licensing of the benchmarks suites that
they were running. The dominant version of this was "run-jsc-benchmarks", which has a lot of
excellent power - it can run benchmarks through either jsc, DumpRenferTree, or
WebKitTestRunner; it can run tests on any number of remote machines; and it has inside
knowledge about how to run *a lot* of test suites. Many of those test suites are not public,
but some of them are. The non-public tests are exclusively those that were not made by any
WebKit contributor, but which JSC/WebKit devs found useful for testing.

This fixes this weirdness by releasing run-jsc-benchmarks. The paths to the test suites
whose licenses are incompatible with WebKit's (to the extent that they cannot be safely
checked into WebKit svn at all) can be run by passing the path to them via a configuration
file. The default configuration file is ~/.run-jsc-benchmarks. The most important benchmark
suites are Octane version 2 and Kraken version 1.1. We should probably check Octane 2 into
WebKit eventually because it seems that the license is fine. Kraken, on the other hand, will
probably never be checked in because there is no license text anywhere in that benchmark.
A valid ~/.run-jsc-benchmarks file will just be something like:

{

"OctanePath": "/path/to/Octane2",
"KrakenPath": "/path/to/Kraken-1.1/tests/kraken-1.1"

}


If your ~/.run-jsc-benchmarks file omits the directory for any particular test suite, then
run-jsc-benchmarks will just gracefully avoid running that test suite.

Finally, a word about policy: it is understood that different organizations that do
development on JSC may find themselves having internal benchmarks that they cannot share
because of weird licensing. It happens - usually because the organization doing JSC
development found some test in the wild that is owned by someone else and therefore cannot
be shared. So, we should consider it acceptable to write patches against run-jsc-benchmarks
that add support for some new kind of benchmark suite even if the suite is not made public
as part of the same patch - so long as the patch isn't too invasive. An example of
non-invasiveness is the DSPJS suite, which is implemented using some new classes (like
DSPJSAmmoJSRegularBenchmark) and some calls to otherwise reusable functions (like
emitSelfContainedBenchRunCode). It is obviously super helpful if a benchmark suite can be
completely open-sourced and committed to the WebKit repo - but the reality is that this
can't always be done safely.

  • Scripts/bencher: Removed.
  • Scripts/run-jsc-benchmarks: Added.
2:05 PM Changeset in webkit [174122] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Label some asserts as having security implications.
<https://webkit.org/b/137260>

Reviewed by Filip Pizlo.

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::handleAssertionFailure):

  • runtime/JSCell.h:

(JSC::jsCast):

  • runtime/StructureIDTable.h:

(JSC::StructureIDTable::get):

2:02 PM Changeset in webkit [174121] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION (r174025): Invalid cast in JSC::asString
https://bugs.webkit.org/show_bug.cgi?id=137224

Reviewed by Geoffrey Garen.

Store barrier elision in fixup depends on checking the type of the value being stored. It's very important that
when we speak of "the value being stored" we are really referring to the right value.

The bug here was that the PutClosureVar case was assuming that child2 is the value being stored. It's actually
child3. So we were incorrectly removing all barriers from PutClosureVar.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

1:36 PM Changeset in webkit [174120] by roger_fong@apple.com
  • 2 edits in trunk/Tools

[Windows] Back to 2 child processes for NRWT on Windows.

  • Scripts/webkitpy/port/win.py:

(WinPort.default_child_processes):
Changing the number of processes to 1 did not have an effect on the layout test results.
It does introduce an issue with one of the workers hanging indefinitely and causing the
layout tests to timeout as a whole occasionally, but we should just fix that.

1:32 PM Changeset in webkit [174119] by roger_fong@apple.com
  • 3 edits in trunk/LayoutTests

[ Windows ] More Windows test gardening to get bots green.

  • platform/win/TestExpectations:
  • platform/win/fast/dom/navigator-detached-no-crash-expected.txt:
12:59 PM Changeset in webkit [174118] by ap@apple.com
  • 2 edits in trunk/Tools

Remove an accidentally committed line..

  • QueueStatusServer/handlers/statusbubble.py:

(StatusBubble._build_bubble):

12:59 PM Changeset in webkit [174117] by Chris Dumez
  • 108 edits in trunk/Source

Use is<>() / downcast<>() for Element
https://bugs.webkit.org/show_bug.cgi?id=137241

Reviewed by Andreas Kling.

Use is<>() / downcast<>() for Element instead of isElementNode() /
toElement().

Source/WebCore:

No new tests, no behavior change.

  • accessibility/AXObjectCache.cpp:

(WebCore::nodeHasRole):
(WebCore::createFromRenderer):
(WebCore::AXObjectCache::handleLiveRegionCreated):
(WebCore::AXObjectCache::handleMenuItemSelected):
(WebCore::AXObjectCache::rootAXEditableElement):
(WebCore::isNodeAriaVisible):

  • accessibility/AccessibilityMenuList.cpp:

(WebCore::AccessibilityMenuList::canSetFocusAttribute):

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::determineAccessibilityRole):
(WebCore::AccessibilityNodeObject::canvasHasFallbackContent):
(WebCore::AccessibilityNodeObject::isEnabled):
(WebCore::AccessibilityNodeObject::isPressed):
(WebCore::AccessibilityNodeObject::isHovered):
(WebCore::AccessibilityNodeObject::anchorElement):
(WebCore::nativeActionElement):
(WebCore::AccessibilityNodeObject::actionElement):
(WebCore::AccessibilityNodeObject::mouseButtonListener):
(WebCore::AccessibilityNodeObject::titleElementText):
(WebCore::AccessibilityNodeObject::helpText):
(WebCore::AccessibilityNodeObject::hierarchicalLevel):
(WebCore::AccessibilityNodeObject::title):
(WebCore::AccessibilityNodeObject::text):
(WebCore::accessibleNameForNode):
(WebCore::AccessibilityNodeObject::canSetFocusAttribute):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::press):
(WebCore::AccessibilityObject::hasTagName):
(WebCore::AccessibilityObject::hasAttribute):
(WebCore::AccessibilityObject::element):
(WebCore::AccessibilityObject::classList):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::anchorElement):
(WebCore::AccessibilityRenderObject::helpText):
(WebCore::AccessibilityRenderObject::checkboxOrRadioRect):
(WebCore::AccessibilityRenderObject::titleUIElement):
(WebCore::AccessibilityRenderObject::accessKey):
(WebCore::AccessibilityRenderObject::setElementAttributeValue):
(WebCore::AccessibilityRenderObject::setFocused):
(WebCore::AccessibilityRenderObject::setValue):
(WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
(WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
(WebCore::AccessibilityRenderObject::renderObjectIsObservable):
(WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
(WebCore::AccessibilityRenderObject::setAccessibleName):
(WebCore::AccessibilityRenderObject::stringRoleForMSAA):

  • accessibility/AccessibilitySearchFieldButtons.cpp:

(WebCore::AccessibilitySearchFieldCancelButton::press):

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(webkitAccessibleGetAttributes):

  • bindings/gobject/WebKitDOMPrivate.cpp:

(WebKit::wrap):

  • bindings/js/JSNodeCustom.cpp:

(WebCore::isReachableFromDOM):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::styledNode):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::locateCousinList):

  • dom/ContainerNode.cpp:

(WebCore::destroyRenderTreeIfNeeded):
(WebCore::ContainerNode::notifyChildRemoved):

  • dom/ContainerNodeAlgorithms.cpp:

(WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
(WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
(WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromTree):
(WebCore::assertConnectedSubrameCountIsConsistent):

  • dom/Document.cpp:

(WebCore::Document::importNode):
(WebCore::Document::elementFromPoint):

  • dom/DocumentStyleSheetCollection.cpp:

(WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):

  • dom/Element.cpp:

(WebCore::Element::computeInheritedLanguage):

  • dom/Element.h:

(WebCore::isElement):
(WebCore::Node::hasAttributes):
(WebCore::Node::attributes):
(WebCore::Node::parentElement):

  • dom/ElementTraversal.h:

(WebCore::Traversal<Element>::nextTemplate):
(WebCore::ElementTraversal::previousIncludingPseudo):
(WebCore::ElementTraversal::nextIncludingPseudo):
(WebCore::ElementTraversal::nextIncludingPseudoSkippingChildren):
(WebCore::ElementTraversal::pseudoAwarePreviousSibling):

  • dom/LiveNodeList.cpp:

(WebCore::LiveNodeList::namedItem):

  • dom/Node.cpp:

(WebCore::Node::dumpStatistics):
(WebCore::Node::normalize):
(WebCore::Node::pseudoAwareFirstChild):
(WebCore::Node::pseudoAwareLastChild):
(WebCore::Node::computedStyle):
(WebCore::Node::parentOrShadowHostElement):
(WebCore::Node::rootEditableElement):
(WebCore::Node::isEqualNode):
(WebCore::Node::isDefaultNamespace):
(WebCore::Node::lookupNamespacePrefix):
(WebCore::Node::ancestorElement):
(WebCore::appendAttributeDesc):
(WebCore::Node::showNodePathForThis):
(WebCore::Node::enclosingLinkEventParentOrSelf):
(WebCore::Node::handleLocalEvents):
(WebCore::Node::willRespondToMouseMoveEvents):
(WebCore::Node::willRespondToMouseClickEvents):

  • dom/NodeRenderingTraversal.cpp:

(WebCore::NodeRenderingTraversal::nodeCanBeDistributed):

  • dom/Position.cpp:

(WebCore::Position::element):

  • dom/Range.cpp:

(WebCore::Range::getBorderAndTextQuads):

  • dom/ShadowRoot.h:

(WebCore::Node::shadowRoot):

  • dom/StaticNodeList.cpp:

(WebCore::StaticNodeList::namedItem):

  • dom/TreeScopeAdopter.cpp:

(WebCore::TreeScopeAdopter::moveTreeToNewScope):

  • editing/ApplyStyleCommand.cpp:

(WebCore::dummySpanAncestorForNode):
(WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
(WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
(WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
(WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement):

  • editing/BreakBlockquoteCommand.cpp:

(WebCore::BreakBlockquoteCommand::doApply):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::isRemovableBlock):
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):

  • editing/Editor.cpp:

(WebCore::Editor::isSpellCheckingEnabledFor):
(WebCore::Editor::applyEditingStyleToBodyElement):

  • editing/FormatBlockCommand.cpp:

(WebCore::isElementForFormatBlock):
(WebCore::FormatBlockCommand::elementForFormatBlockCommand):

  • editing/FrameSelection.cpp:

(WebCore::removingNodeRemovesPosition):
(WebCore::CaretBase::paintCaret):
(WebCore::FrameSelection::debugRenderer):

  • editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::outdentParagraph):

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::doApply):

  • editing/MarkupAccumulator.cpp:

(WebCore::MarkupAccumulator::serializeNodesWithNamespaces):
(WebCore::MarkupAccumulator::appendStartMarkup):

  • editing/MarkupAccumulator.h:

(WebCore::MarkupAccumulator::appendEndTag):

  • editing/ModifySelectionListLevel.cpp:

(WebCore::IncreaseSelectionListLevelCommand::doApply):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::isMailPasteAsQuotationNode):
(WebCore::haveSameTagName):
(WebCore::handleStyleSpansBeforeInsertion):
(WebCore::ReplaceSelectionCommand::doApply):

  • editing/SpellChecker.cpp:

(WebCore::SpellChecker::isCheckable):

  • editing/SplitTextNodeContainingElementCommand.cpp:

(WebCore::SplitTextNodeContainingElementCommand::doApply):

  • editing/TextIterator.cpp:

(WebCore::isRendererReplacedElement):

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverterCaches::propertyValueForNode):
(HTMLConverterCaches::floatPropertyValueForNode):
(HTMLConverterCaches::colorPropertyValueForNode):
(HTMLConverter::aggregatedAttributesForAncestors):
(HTMLConverter::aggregatedAttributesForElementAndItsAncestors):
(HTMLConverter::_traverseNode):
(WebCore::editingAttributedStringFromRange):

  • editing/htmlediting.cpp:

(WebCore::unsplittableElementForPosition):
(WebCore::enclosingBlock):
(WebCore::enclosingElementWithTag):
(WebCore::enclosingTableCell):
(WebCore::enclosingAnchorElement):
(WebCore::areIdenticalElements):
(WebCore::isNonTableCellHTMLBlockElement):
(WebCore::deprecatedEnclosingBlockFlowElement):
(WebCore::rendererForCaretPainting):

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::wrapWithNode):
(WebCore::createMarkupInternal):
(WebCore::createFragmentFromText):

  • html/HTMLDetailsElement.cpp:

(WebCore::DetailsSummaryElement::fallbackSummary):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::insertAdjacentElement):
(WebCore::contextElementForInsertion):
(WebCore::HTMLElement::directionality):

  • html/HTMLFormControlElement.h:

(WebCore::isHTMLFormControlElement):

  • html/HTMLMediaElement.h:

(WebCore::isHTMLMediaElement):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::updateDocNamedItem):

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::collectOptionInnerText):

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::removedFrom):

  • html/HTMLSummaryElement.cpp:

(WebCore::isClickableControl):

  • html/HTMLTextFormControlElement.h:

(WebCore::isHTMLTextFormControlElement):

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::attachLater):

  • html/parser/HTMLElementStack.cpp:

(WebCore::HTMLElementStack::htmlElement):

  • html/parser/HTMLStackItem.h:

(WebCore::HTMLStackItem::element):

  • html/shadow/InsertionPoint.h:

(WebCore::parentElementForDistribution):
(WebCore::shadowRootOfParentForDistribution):

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler):

  • html/track/VTTCue.cpp:

(WebCore::VTTCue::markFutureAndPastNodes):

  • inspector/DOMPatchSupport.cpp:

(WebCore::DOMPatchSupport::innerPatchNode):
(WebCore::DOMPatchSupport::createDigest):

  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::elementForId):
(WebCore::InspectorCSSAgent::buildArrayForRegions):
(WebCore::InspectorCSSAgent::resetPseudoStates):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::unbind):
(WebCore::InspectorDOMAgent::assertElement):
(WebCore::InspectorDOMAgent::setAttributesAsText):
(WebCore::InspectorDOMAgent::setNodeName):
(WebCore::InspectorDOMAgent::buildObjectForNode):
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
(WebCore::InspectorDOMAgent::didInvalidateStyleAttr):

  • inspector/InspectorNodeFinder.cpp:

(WebCore::InspectorNodeFinder::searchUsingDOMTreeTraversal):

  • inspector/InspectorOverlay.cpp:

(WebCore::buildObjectForElementInfo):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheet::inlineStyleSheetText):

  • page/DragController.cpp:

(WebCore::elementUnderMouse):

  • page/EventHandler.cpp:

(WebCore::findDropZone):
(WebCore::EventHandler::updateDragAndDrop):
(WebCore::EventHandler::updateMouseEventTargetNode):

  • page/FocusController.cpp:

(WebCore::FocusNavigationScope::focusNavigationScopeOwnedByShadowHost):
(WebCore::isFocusableShadowHost):
(WebCore::adjustedTabIndex):
(WebCore::FocusController::findFocusableElementAcrossFocusScope):
(WebCore::FocusController::findElementWithExactTabIndex):
(WebCore::nextElementWithGreaterTabIndex):
(WebCore::previousElementWithLowerTabIndex):
(WebCore::FocusController::nextFocusableElement):
(WebCore::FocusController::previousFocusableElement):
(WebCore::FocusController::advanceFocusDirectionallyInContainer):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::serializeFrame):

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::title):
(WebCore::HitTestResult::innerTextIfTruncated):
(WebCore::HitTestResult::absoluteImageURL):
(WebCore::HitTestResult::innerElement):
(WebCore::HitTestResult::innerNonSharedElement):

  • rendering/RenderDeprecatedFlexibleBox.h:
  • rendering/RenderDetailsMarker.cpp:

(WebCore::RenderDetailsMarker::isOpen):

  • rendering/RenderElement.h:

(WebCore::RenderElement::element):
(WebCore::RenderElement::nonPseudoElement):
(WebCore::RenderElement::generatingElement):

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

(WebCore::isRestartedPlugin):

  • rendering/RenderListItem.h:
  • rendering/RenderNamedFlowThread.cpp:

(WebCore::RenderNamedFlowThread::isChildAllowed):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::addPDFURLRect):
(WebCore::RenderObject::updateDragState):
(WebCore::RenderObject::getUncachedPseudoStyle):

  • rendering/RenderRuby.h:
  • rendering/RenderRubyText.h:
  • rendering/RenderTableCaption.h:
  • rendering/RenderTableCol.h:
  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::isEnabled):
(WebCore::RenderTheme::isFocused):
(WebCore::RenderTheme::isPressed):
(WebCore::RenderTheme::isSpinUpButtonPartPressed):
(WebCore::RenderTheme::isReadOnlyControl):
(WebCore::RenderTheme::isHovered):
(WebCore::RenderTheme::isSpinUpButtonPartHovered):

  • rendering/RenderThemeGtk.cpp:

(WebCore::nodeHasClass):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::updatePressedState):
(WebCore::RenderThemeMac::paintSliderThumb):
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):

  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject):

  • rendering/TextAutosizer.cpp:

(WebCore::TextAutosizer::isAutosizingContainer):
(WebCore::TextAutosizer::containerContainsOneOfTags):

  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::RenderMathMLBlock::isChildAllowed):

  • style/StyleResolveTree.cpp:

(WebCore::Style::attachChildren):
(WebCore::Style::attachDistributedChildren):
(WebCore::Style::detachDistributedChildren):
(WebCore::Style::detachChildren):
(WebCore::Style::resolveShadowTree):
(WebCore::Style::resolveTree):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::expandSymbolElementsInShadowTree):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::buildPendingResource):

  • xml/XPathFunctions.cpp:

(WebCore::XPath::FunLang::evaluate):

  • xml/XPathNodeSet.cpp:

(WebCore::XPath::NodeSet::traversalSort):

  • xml/XPathStep.cpp:

(WebCore::XPath::nodeMatchesBasicTest):
(WebCore::XPath::Step::nodesInAxis):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::XMLDocumentParser::endElementNs):

Source/WebKit/mac:

  • WebView/WebRenderLayer.mm:

(+[WebRenderLayer nameForLayer:]):

Source/WebKit/win:

  • DOMEventsClasses.cpp:

(DOMMouseEvent::toElement):

  • DOMEventsClasses.h:

Source/WebKit2:

  • Shared/WebRenderObject.cpp:

(WebKit::WebRenderObject::WebRenderObject):

  • WebProcess/InjectedBundle/API/mac/WKDOMElement.mm:

(-[WKDOMElement hasAttribute:]):
(-[WKDOMElement getAttribute:]):
(-[WKDOMElement setAttribute:value:]):
(-[WKDOMElement tagName]):

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::InjectedBundleNodeHandle::elementBounds):

  • WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:

(WebKit::InjectedBundleHitTestResult::mediaType):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::sendTapHighlightForNodeIfNecessary):
(WebKit::WebPage::blurAssistedNode):
(WebKit::WebPage::getPositionInformation):
(WebKit::nextFocusableElement):
(WebKit::WebPage::elementDidFocus):

12:50 PM Changeset in webkit [174116] by andersca@apple.com
  • 3 edits in trunk/Source/WTF

Get the STRING_STATS codepath compiling again, and add calls to ref/deref
https://bugs.webkit.org/show_bug.cgi?id=137259

Reviewed by Andreas Kling.

  • wtf/text/StringImpl.cpp:

(WTF::StringStats::removeString):
(WTF::StringStats::printStats):
(WTF::StringImpl::~StringImpl):

  • wtf/text/StringImpl.h:

(WTF::StringImpl::StringImpl):
(WTF::StringImpl::isSubString):
(WTF::StringImpl::ref):
(WTF::StringImpl::deref):
(WTF::StringStats::addUpconvertedString): Deleted.

12:48 PM Changeset in webkit [174115] by ap@apple.com
  • 6 edits in trunk/Tools

build.webkit.org/dashboard: Switch EWS view to using actual retry count
https://bugs.webkit.org/show_bug.cgi?id=137240

Reviewed by Ryosuke Niwa.

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

(EWSQueue.prototype.loadDetailedStatus):

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

(EWSQueueView.prototype._popoverContentForEWSQueue):
Use the new retry_count data member from JSON.

  • QueueStatusServer/app.yaml: Updating the version.
  • QueueStatusServer/handlers/queuestatusjson.py: (QueueStatusJSON._rows_for_work_items):

Instead of message_count, produce retry_count.

12:43 PM Changeset in webkit [174114] by ap@apple.com
  • 4 edits in trunk/Tools

EWS doesn't need to show all the bubbles when a patch fails to apply
https://bugs.webkit.org/show_bug.cgi?id=137256

Reviewed by Ryosuke Niwa.

  • QueueStatusServer/app.yaml: Updated app version.
  • QueueStatusServer/handlers/statusbubble.py:

(StatusBubble._build_bubble):
(StatusBubble._build_bubbles_for_attachment):
(StatusBubble.get):

  • QueueStatusServer/templates/statusbubble.html:

When some queues fail to apply, and no queues had meaningful output (meaning that
they will almost certainly fail to apply later), we can show a single bubble
telling the user just that.

12:21 PM Changeset in webkit [174113] by Brian Burg
  • 34 edits
    2 deletes in trunk/Source

Web Replay: use static Strings instead of AtomicStrings for replay input type tags
https://bugs.webkit.org/show_bug.cgi?id=137086

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

This pattern doesn't work when we want to define some inputs in WebKit2.
The ReplayInputTypes class was generated from WebCore inputs only. This
patch moves all input traits to use static local Strings as type tags.

  • replay/scripts/CodeGeneratorReplayInputs.py: Remove configuration of how

type tags are generated, since all framework targets now generate the same code.

  • replay/NondeterministicInput.h:
  • replay/scripts/CodeGeneratorReplayInputs.py: Simplify and rebase test results.

(Generator.generate_input_trait_implementation):

  • replay/scripts/CodeGeneratorReplayInputsTemplates.py: Simplify templates.
  • replay/scripts/tests/expected/generate-enum-encoding-helpers-with-guarded-values.json-TestReplayInputs.cpp:

(JSC::InputTraits<Test::SavedMouseButton>::type):

  • replay/scripts/tests/expected/generate-enum-encoding-helpers-with-guarded-values.json-TestReplayInputs.h:
  • replay/scripts/tests/expected/generate-enum-encoding-helpers.json-TestReplayInputs.cpp:

(JSC::InputTraits<Test::SavedMouseButton>::type):

  • replay/scripts/tests/expected/generate-enum-encoding-helpers.json-TestReplayInputs.h:
  • replay/scripts/tests/expected/generate-enum-with-guard.json-TestReplayInputs.cpp:

(JSC::InputTraits<Test::HandleWheelEvent>::type):

  • replay/scripts/tests/expected/generate-enum-with-guard.json-TestReplayInputs.h:
  • replay/scripts/tests/expected/generate-enums-with-same-base-name.json-TestReplayInputs.cpp:

(JSC::InputTraits<Test::FormCombo>::type):

  • replay/scripts/tests/expected/generate-enums-with-same-base-name.json-TestReplayInputs.h:
  • replay/scripts/tests/expected/generate-input-with-guard.json-TestReplayInputs.cpp:

(JSC::InputTraits<Test::GetCurrentTime>::type):
(JSC::InputTraits<Test::SetRandomSeed>::type):

  • replay/scripts/tests/expected/generate-input-with-guard.json-TestReplayInputs.h:
  • replay/scripts/tests/expected/generate-input-with-vector-members.json-TestReplayInputs.cpp:

(JSC::InputTraits<Test::ArrayOfThings>::type):
(JSC::InputTraits<Test::SavedHistory>::type):

  • replay/scripts/tests/expected/generate-input-with-vector-members.json-TestReplayInputs.h:
  • replay/scripts/tests/expected/generate-inputs-with-flags.json-TestReplayInputs.cpp:

(JSC::InputTraits<Test::ScalarInput1>::type):
(JSC::InputTraits<Test::ScalarInput2>::type):

  • replay/scripts/tests/expected/generate-inputs-with-flags.json-TestReplayInputs.h:
  • replay/scripts/tests/expected/generate-memoized-type-modes.json-TestReplayInputs.cpp:

(JSC::InputTraits<Test::ScalarInput>::type):
(JSC::InputTraits<Test::MapInput>::type):

  • replay/scripts/tests/expected/generate-memoized-type-modes.json-TestReplayInputs.h:

Source/WebCore:

This pattern doesn't work when we want to define some inputs in WebKit2,
since the ReplayInputTypes class is generated from WebCore inputs only.

Replace tag-checking uses of ReplayInputTypes with InputTraits<T>::type().
Remove thread-local input types, and switch to using a plain const String instead
of const AtomicString.

No new tests, no behavior changed.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/InspectorReplayAgent.cpp:

(WebCore::SerializeInputToJSONFunctor::operator()):

  • platform/ThreadGlobalData.cpp:

(WebCore::ThreadGlobalData::ThreadGlobalData):
(WebCore::ThreadGlobalData::destroy):

  • platform/ThreadGlobalData.h:

(WebCore::ThreadGlobalData::inputTypes): Deleted.

  • replay/AllReplayInputs.h:
  • replay/EventLoopInput.h:
  • replay/EventLoopInputDispatcher.cpp:

(WebCore::EventLoopInputDispatcher::dispatchInput):

  • replay/MemoizedDOMResult.cpp:

(WebCore::MemoizedDOMResultBase::type):
(JSC::InputTraits<MemoizedDOMResultBase>::type):

  • replay/MemoizedDOMResult.h:
  • replay/ReplayInputTypes.cpp: Removed.
  • replay/ReplayInputTypes.h: Removed.
  • replay/ReplayingInputCursor.cpp:

(WebCore::ReplayingInputCursor::loadInput):

  • replay/SegmentedInputStorage.cpp:

(WebCore::SegmentedInputStorage::load):
(WebCore::SegmentedInputStorage::store):

  • replay/SerializationMethods.cpp:

(JSC::EncodingTraits<NondeterministicInputBase>::encodeValue):
(JSC::EncodingTraits<NondeterministicInputBase>::decodeValue):

12:11 PM Changeset in webkit [174112] by roger_fong@apple.com
  • 2 edits in trunk/LayoutTests

[Mac] Flaky test marked as failing in r174111 also needs to be marked as passing.

  • platform/mac/TestExpectations:
12:05 PM Changeset in webkit [174111] by roger_fong@apple.com
  • 2 edits in trunk/LayoutTests

[Mac] Mark a flaky webgl conformance test as failing.

  • platform/mac/TestExpectations:
11:40 AM Changeset in webkit [174110] by dbates@webkit.org
  • 9 edits
    1 copy
    2 adds in trunk/Source

REGRESSION (r172532): JSBase.h declares NSMapTable functions that are SPI
https://bugs.webkit.org/show_bug.cgi?id=137170
<rdar://problem/18477384>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Move conditional include of header Foundation/NSMapTablePriv.h and forward declarations
of NSMapTable SPI from file JavaScriptCore/API/JSBase.h to WTF/wtf/spi/cocoa/NSMapTableSPI.h.

  • API/JSBase.h:
  • API/JSManagedValue.mm: Include header WTF/wtf/spi/cocoa/NSMapTableSPI.h.
  • API/JSVirtualMachine.mm: Ditto.
  • API/JSVirtualMachineInternal.h: Forward declare class NSMapTable.
  • API/JSWrapperMap.mm: Include header WTF/wtf/spi/cocoa/NSMapTableSPI.h. Also, order

#include directives such that they are sorted in alphabetical order.

Source/WTF:

Add SPI wrapper header, NSMapTableSPI.h.

Additionally, define convenience macro EXTERN_C that can be used to specify the C linkage
convention for a declaration. For example, the declaration "EXTERN_C const int x;" will
expand to:

extern const int x;

and

extern "C" const int x;

when used in a C and C++ file, respectively.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Compiler.h:
  • wtf/spi/cocoa/NSMapTableSPI.h: Added.
11:37 AM Changeset in webkit [174109] by ggaren@apple.com
  • 10 edits in trunk/Source/bmalloc

bmalloc: cleaned up fast path vs slow path
https://bugs.webkit.org/show_bug.cgi?id=137081

Reviewed by Sam Weinig.

Might be a 1% speedup on MallocBench. Also cleans up the code a bit.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::Allocator): Merged the small and medium range
caches, just like the small and medium allocators. Ranges are abstract
objects that don't really care whether they hold small or medium objects,
so they don't need to be segregated.

(bmalloc::Allocator::scavenge): Ditto.

(bmalloc::Allocator::allocateBumpRangeSlowCase):
(bmalloc::Allocator::allocateBumpRange): Same thing here, except that
we do care a tiny bit, because we need to specify small vs medium when
allocating new ranges from the heap, to ensure that the heap allocates
from the right segment of VM.

(bmalloc::Allocator::allocateLarge):
(bmalloc::Allocator::allocateXLarge): NO_INLINE because this was clouding
up the fast path. Large allocation performance is dominated by allocation
logic and initialization, so inlining it doesn't help.

(bmalloc::Allocator::allocateSlowCase): Slow path got a bit cleaner since
it doesn't need to distinguish small vs medium objects.

(bmalloc::Allocator::allocateSmallBumpRange): Deleted.
(bmalloc::Allocator::allocateMediumBumpRange): Deleted.

  • bmalloc/Allocator.h:
  • bmalloc/BumpRange.h:
  • bmalloc/Cache.cpp:

(bmalloc::Cache::allocateSlowCase): Deleted.
(bmalloc::Cache::deallocateSlowCase): Deleted.

  • bmalloc/Cache.h:

(bmalloc::Cache::allocate):
(bmalloc::Cache::deallocate):
(bmalloc::Cache::allocateFastCase): Deleted.
(bmalloc::Cache::deallocateFastCase): Deleted. Removed the Cache slow
paths. The downside to this change is that the fast path branches to two
distinct failure cases instead of one. The upside is that the slow path
doesn't need to re-read the segment register, which is not as cheap as a
normal register, and it doesn't need to do an extra level of function
call. Seems to be worth it.

  • bmalloc/Deallocator.h:
  • bmalloc/Heap.cpp:

(bmalloc::Heap::refillSmallBumpRangeCache):
(bmalloc::Heap::refillMediumBumpRangeCache):

  • bmalloc/Heap.h: Updated for interface changes.
  • bmalloc/Sizes.h: The most ranges a cache will hold is the number of

small lines in a page / 2, since any other free lines will coalesce
with their neighbors.

10:27 AM Changeset in webkit [174108] by oliver@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix C API header
https://bugs.webkit.org/show_bug.cgi?id=137254
<rdar://problem/18487528>

Build fix

Guard extern "C" behind cplusplus ifdef

  • API/JSBase.h:
8:19 AM Changeset in webkit [174107] by commit-queue@webkit.org
  • 2 edits
    1 delete in trunk/Tools

[EFL] Bump EFL version to 1.11.2
https://bugs.webkit.org/show_bug.cgi?id=137118

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-09-30
Reviewed by Gyuyoung Kim.

Disable NEON for EFL build because the build system doesn't pass the necessary -mfpu=neon flag to the compiler.
Tools/efl/patches/ecore.patch: Removed, because this fix is already in EFL.

  • efl/jhbuild.modules:
  • efl/patches/ecore.patch: Removed.
7:30 AM Changeset in webkit [174106] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[Mac] MediaPlayerPrivateQTKit should not use FrameView
https://bugs.webkit.org/show_bug.cgi?id=137119

Reviewed by Carlos Garcia Campos.

Remove obsolete QTKit code that would fall back to rendering into an NSView.
Aside from being dead code, it was only used when accelerated compositing
was not enabled and tha hasn't been possible for a long time, it required a
layering violation to get the FrameView.

  • platform/graphics/mac/MediaPlayerPrivateQTKit.h:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

(WebCore::MediaPlayerPrivateQTKit::currentRenderingMode):
(WebCore::MediaPlayerPrivateQTKit::preferredRenderingMode):
(WebCore::MediaPlayerPrivateQTKit::setUpVideoRendering):
(WebCore::MediaPlayerPrivateQTKit::tearDownVideoRendering):
(WebCore::MediaPlayerPrivateQTKit::hasSetUpVideoRendering):
(WebCore::MediaPlayerPrivateQTKit::setSize):
(WebCore::MediaPlayerPrivateQTKit::paint):
(WebCore::mainThreadSetNeedsDisplay): Deleted.
(WebCore::MediaPlayerPrivateQTKit::createQTMovieView): Deleted.
(WebCore::MediaPlayerPrivateQTKit::detachQTMovieView): Deleted.
(-[WebCoreMovieObserver menuForEventDelegate:]): Deleted.
(-[WebCoreMovieObserver setView:]): Deleted.

6:38 AM Changeset in webkit [174105] by Carlos Garcia Campos
  • 11 edits in trunk

REGRESSION(r173929): [GTK] TestInspector fails after r173929
https://bugs.webkit.org/show_bug.cgi?id=137247

Reviewed by Philippe Normand.

Source/WebKit2:

Add WebKitWebInspector:can-attach property to notify when the
inspector attach availability changes.

  • UIProcess/API/C/gtk/WKInspectorClientGtk.h:
  • UIProcess/API/gtk/WebKitWebInspector.cpp:

(webkit_web_inspector_class_init): Add WebKitWebInspector:can-attach property.
(didChangeAttachAvailability): Emit notify::can-attach.
(webkitWebInspectorCreate): Add implementation for didChangeAttachAvailability.
(webkit_web_inspector_get_can_attach): Return whether the inspector can be attached.

  • UIProcess/API/gtk/WebKitWebInspector.h:
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add index of new symbols in 2.8.
  • UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
  • UIProcess/gtk/WebInspectorClientGtk.cpp:

(WebKit::WebInspectorClientGtk::didChangeAttachAvailability):

  • UIProcess/gtk/WebInspectorClientGtk.h:
  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformAttachAvailabilityChanged): Notify the client.

Tools:

Wait until can-attach property changes before trying to attach the
inspector after resizing the view.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestInspector.cpp:

(testInspectorDefault):

6:33 AM Changeset in webkit [174104] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] The remote web inspector shows the HTML content as plain text
https://bugs.webkit.org/show_bug.cgi?id=137250

Reviewed by Gustavo Noronha Silva.

Use GResource API directly to get the resource data, instead of
using the GFile API, and use g_content_type_guess() to get the
MIME Type.

  • UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp:

(WebKit::WebInspectorServer::platformResourceForPath):

6:28 AM Changeset in webkit [174103] by Carlos Garcia Campos
  • 5 edits
    2 deletes in trunk/Source

[GTK] Move GtkPopupMenu implementation to WebPopupMenuProxyGtk
https://bugs.webkit.org/show_bug.cgi?id=137193

Reviewed by Gustavo Noronha Silva.

Source/WebCore:

Remove GtkPopupMenu from platform.

  • PlatformGTK.cmake:
  • platform/gtk/GtkPopupMenu.cpp: Removed.
  • platform/gtk/GtkPopupMenu.h: Removed.

Source/WebKit2:

GtkPopupMenu was in platform only to have a common implementation to
be shared with WebKit1. Now that it's only used by
WebPopupMenuProxyGtk in WebKit2, we can simplify the code by
merging the implementation directly into WebPopupMenuProxyGtk.

  • UIProcess/gtk/WebPopupMenuProxyGtk.cpp:

(WebKit::WebPopupMenuProxyGtk::WebPopupMenuProxyGtk):
(WebKit::WebPopupMenuProxyGtk::~WebPopupMenuProxyGtk):
(WebKit::WebPopupMenuProxyGtk::populatePopupMenu):
(WebKit::WebPopupMenuProxyGtk::showPopupMenu):
(WebKit::WebPopupMenuProxyGtk::hidePopupMenu):
(WebKit::WebPopupMenuProxyGtk::typeAheadFind):
(WebKit::WebPopupMenuProxyGtk::resetTypeAheadFindState):
(WebKit::WebPopupMenuProxyGtk::selectItemCallback):
(WebKit::WebPopupMenuProxyGtk::keyPressEventCallback):

  • UIProcess/gtk/WebPopupMenuProxyGtk.h:

(WebKit::WebPopupMenuProxyGtk::setCurrentlySelectedMenuItem):

5:50 AM Changeset in webkit [174102] by evab.u-szeged@partner.samsung.com
  • 3 edits in trunk/Tools

Require Python 2.7 version
https://bugs.webkit.org/show_bug.cgi?id=137112

Reviewed by Csaba Osztrogonác.

  • Scripts/ensure-valid-python:

(checkPythonVersion):

  • Scripts/webkitpy/common/version_check.py:
5:48 AM Changeset in webkit [174101] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Avoid copying the iterated-over items in range-based for-loops in RenderGrid
https://bugs.webkit.org/show_bug.cgi?id=137246

Reviewed by Sergio Villar Senin.

Adjust the range-based for-loops in RenderGrid to avoid the unnecessary copying
of the items that are being iterated.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeNormalizedFractionBreadth):
(WebCore::RenderGrid::insertItemIntoGrid):
(WebCore::RenderGrid::gridAreaBreadthForChild):

5:17 AM Changeset in webkit [174100] by berto@igalia.com
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

Hindi translation updated
https://bugs.webkit.org/show_bug.cgi?id=137021

Patch by Rajesh Ranjan <rajeshkajha@yahoo.com> on 2014-09-30
Reviewed by Philippe Normand.

  • hi.po:
5:15 AM Changeset in webkit [174099] by berto@igalia.com
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

Updated Telugu Translation for WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=137027

Patch by Krishnababu Krothapalli <kkrothap@redhat.com> on 2014-09-30
Reviewed by Philippe Normand.

  • te.po:
3:30 AM Changeset in webkit [174098] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

[CSS Grid Layout] Use modern for-loops in RenderGrid
https://bugs.webkit.org/show_bug.cgi?id=137214

Reviewed by Darin Adler.

New code is already using modern range based for loops. We had some
"old" code pending to be migrated.

No new tests as there is no change in functionality.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::computeNormalizedFractionBreadth):
(WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
(WebCore::RenderGrid::layoutGridItems):

3:17 AM Changeset in webkit [174097] by svillar@igalia.com
  • 5 edits
    4 adds in trunk

Caret not shown at the end of line in overtype mode
https://bugs.webkit.org/show_bug.cgi?id=135508

Reviewed by Ryosuke Niwa.

Source/WebCore:

When overtype mode is enabled we usually replace the 'normal'
blinking caret shown in contenteditable elements by a block cursor
that covers the next character to be replaced. The exception is the
end of line where we fallback to the blinking caret even in overtype
mode (as there is no next character to replace).

We were not showing anything at the end of lines in overtype mode
because the detection of the end of line was incorrect and not very
understandable. Replaced the old code with a proper and clean end of
line detection mechanism compatible with bidi text.

Tests: editing/selection/block-cursor-overtype-mode-end-of-line-rtl.html

editing/selection/block-cursor-overtype-mode-end-of-line.html

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::updateAppearance):

  • editing/VisibleUnits.cpp:

(WebCore::isLogicalEndOfLine):

  • editing/VisibleUnits.h:

LayoutTests:

  • editing/selection/block-cursor-overtype-mode-end-of-line-expected.html: Added.
  • editing/selection/block-cursor-overtype-mode-end-of-line-rtl-expected.html: Added.
  • editing/selection/block-cursor-overtype-mode-end-of-line-rtl.html: Added.
  • editing/selection/block-cursor-overtype-mode-end-of-line.html: Added.
2:45 AM Changeset in webkit [174096] by mhock@apple.com
  • 2 edits in trunk/Tools

Skip a JSC test after r174036.
https://bugs.webkit.org/show_bug.cgi?id=137236

Reviewed by Csaba Osztrogonác.

  • Scripts/run-javascriptcore-tests:
Note: See TracTimeline for information about the timeline view.