Timeline



May 10, 2016:

11:03 PM Changeset in webkit [200676] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.32-branch/Source

Versioning.

10:40 PM Changeset in webkit [200675] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Don't update media duration at playback end while seeking.
https://bugs.webkit.org/show_bug.cgi?id=157557

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-05-10
Reviewed by Jer Noble.

If JavaScript initiates a media element seek just as the media playback ends, don't update duration
to the current time as the current time is now the new seek time, not the time when playback ended.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::didEnd):

10:10 PM Changeset in webkit [200674] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

Test gardening after r200646

Unreviewed.

10:03 PM Changeset in webkit [200673] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Fix typo CaptionUserPreferences::updateCaptionStyleSheetOveride
https://bugs.webkit.org/show_bug.cgi?id=157544

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-10
Reviewed by Darin Adler.

  • page/CaptionUserPreferences.cpp:

(WebCore::CaptionUserPreferences::setCaptionsStyleSheetOverride):
(WebCore::CaptionUserPreferences::updateCaptionStyleSheetOverride):
(WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride): Deleted.

  • page/CaptionUserPreferences.h:
  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::updateTimerFired):
(WebCore::CaptionUserPreferencesMediaAF::captionPreferencesChanged):

9:52 PM Changeset in webkit [200672] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/mac

[OS X] Compatible with gnu sed grammar due to compile error with gnu sed
https://bugs.webkit.org/show_bug.cgi?id=157526

Patch by Shaw rich <richshaw@126.com> on 2016-05-10
Reviewed by Darin Adler.

  • MigrateHeaders.make:
9:48 PM Changeset in webkit [200671] by Simon Fraser
  • 16 edits in trunk/Source/WebCore

Remove scrolledContentOffset() from rendering code
https://bugs.webkit.org/show_bug.cgi?id=157552

Reviewed by Zalan Bujtas.

scrolledContentOffset() is misleading because it returns a scrollPosition().
Just use the name scrollPosition(), returning a ScrollPosition (IntPoint),
and fix callers that need to convert to layout size.

  • editing/VisibleUnits.cpp:

(WebCore::absoluteLineDirectionPointToLocalPointInBlock):

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::selectionGapRectsForRepaint):
(WebCore::RenderBlock::paintSelection):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::offsetForContents):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlock):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::scrollPosition):
(WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint):
(WebCore::isCandidateForOpaquenessTest):
(WebCore::RenderBox::offsetFromContainer):
(WebCore::RenderBox::layoutOverflowRectForPropagation):
(WebCore::RenderBox::scrolledContentOffset): Deleted.

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::offsetFromContainer):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPosition):
(WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
(WebCore::RenderLayer::calculateClipRects):

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

(WebCore::RenderLayerBacking::updateGeometry):

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::offsetFromContainer):

  • rendering/RenderNamedFlowThread.cpp:

(WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::mapLocalToContainer):
(WebCore::RenderObject::pushMappingToContainer):
(WebCore::RenderObject::mapAbsoluteToLocalPoint):
(WebCore::RenderObject::offsetFromContainer):

  • rendering/RenderTextControl.cpp:

(WebCore::RenderTextControl::hitInnerTextElement):

9:26 PM Changeset in webkit [200670] by Ryan Haddad
  • 2 edits in trunk/Tools

Another attempt to fix the build after r200668.

Unreviewed build fix.

  • TestWebKitAPI/Tests/WebKit2Cocoa/Coding.mm:

(TEST):

8:57 PM Changeset in webkit [200669] by mitz@apple.com
  • 2 edits in trunk/Tools

Tried to fix the Mac build after r200668.

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformCreateWebView):

8:37 PM Changeset in webkit [200668] by weinig@apple.com
  • 4 edits in trunk/Source/WebKit2

Only expose WKDataDetectorTypes and -[WKWebViewConfiguration dataDetectorTypes] on iOS
for now, since we don't have it fully implemented on Mac.

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:

(fromWKDataDetectorTypes):
(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):

7:04 PM Changeset in webkit [200667] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

TypedArray.prototype.slice should use the byteLength of passed array for memmove
https://bugs.webkit.org/show_bug.cgi?id=157551
<rdar://problem/26179914>

Reviewed by Michael Saboff.

The TypedArray.prototype.slice function would use the byteLength of the passed array
to determine the amount of data to copy. It should have been using the passed length
times the size of each element. This fixes a crash on JavaPoly.com

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::set):

  • tests/stress/typedarray-slice.js:
6:56 PM Changeset in webkit [200666] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r200447): Unable to build C_LOOP with clang version 800.0.12 or higher
https://bugs.webkit.org/show_bug.cgi?id=157549

Reviewed by Keith Miller.

Disable debug annotations for C_LOOP builds. They are inline assembly directives,
unnecessary and they cause syntax errors.

  • offlineasm/asm.rb:
6:55 PM Changeset in webkit [200665] by Simon Fraser
  • 3 edits
    5 adds in trunk

Horizontally-scrollable items with a 3d transform are rendered incorrectly in RTL when container has -webkit-overflow-scroll: touch
https://bugs.webkit.org/show_bug.cgi?id=157482
rdar://problem/26204794

Reviewed by Zalan Bujtas.
Source/WebCore:

The compositing code was confused about scroll offsets vs. scroll positions, because
of the badly named scrolledContentOffset(); we used that in one place, and scrollOffset()
lower down. Change both to use scrollOffset().

Test: compositing/rtl/rtl-with-transformed-descendants.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):

LayoutTests:

This can't be a ref test because on iOS ref test snapshots are doing by drawing, not by snapshotting layers.

  • compositing/rtl/rtl-with-transformed-descendants-expected.txt: Added.
  • compositing/rtl/rtl-with-transformed-descendants.html: Added.
6:55 PM Changeset in webkit [200664] by Simon Fraser
  • 2 edits in trunk/Source/WebKit/mac

[iOS WK1] text autosizing was on for all layout tests
https://bugs.webkit.org/show_bug.cgi?id=157541

Reviewed by Tim Horton.

Make sure that we transfer the WK1 text autosizing preference to Settings.

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

6:49 PM Changeset in webkit [200663] by Hunseop Jeong
  • 2 edits
    5 adds in trunk/LayoutTests

Unreviewed EFL Gardening on 10th May.

Rebaseline missing results.

  • platform/efl/TestExpectations: Removed non existing tests.
  • platform/efl/accessibility/content-editable-as-textarea-expected.txt: Added.
  • platform/efl/accessibility/generated-content-with-display-table-crash-expected.txt: Added.
  • platform/efl/accessibility/w3c-svg-content-language-attribute-expected.txt: Added.
  • platform/efl/fast/text/hyphenate-avoid-orphaned-word-expected.txt: Added.
  • platform/efl/mathml/presentation/menclose-notation-values-expected.txt: Added.
6:11 PM Changeset in webkit [200662] by weinig@apple.com
  • 3 edits in trunk/Source/WebKit2

Add SPI for Data Detectors to get ranges of text around an existing range.
<rdar://problem/26009749>

Reviewed by Enrica Casucci.

  • WebProcess/InjectedBundle/API/mac/WKDOMRange.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:

(-[WKDOMRange rangeByExpandingToWordBoundaryByCharacters:inDirection:]):

5:56 PM Changeset in webkit [200661] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Avoid unnecessary timeout identifier churn in TimelineManager
https://bugs.webkit.org/show_bug.cgi?id=157535

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-10
Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.capturingStarted):
(WebInspector.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout):
Don't re-tickle if we tickled in the last 10ms.

5:20 PM Changeset in webkit [200660] by enrica@apple.com
  • 9 edits in trunk/Source

Numerous block selection issues on iOS.
https://bugs.webkit.org/show_bug.cgi?id=157490
rdar://problem/25717977
rdar://problem/23042215

Reviewed by Tim Horton.

Source/WebCore:

  • rendering/style/RenderStyle.h:

Exporting method.

Source/WebKit2:

This patch fixes a number of issues with block selection on iOS.
We no longer eagerly choose block selection vs text selection and we
make sure we are capable of switching back to text selection from block
under every circumstance. The patch also fixes the logic used to decide
when to switch to block selection. It now computes the rectangle for the
paragraph containing the initial text selection to decide when we are
actually dragging outside the boundaries of the paragraph block.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WKContentViewInteraction.mm:

(selectionChangedWithGesture):
(selectionChangedWithTouch):
(-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::gestureCallback):
(WebKit::WebPageProxy::touchesCallback):
(WebKit::WebPageProxy::autocorrectionDataCallback):
(WebKit::WebPageProxy::selectWithGesture):
(WebKit::WebPageProxy::updateSelectionWithTouches):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::selectionBoxForRange):
(WebKit::canShrinkToTextSelection):
(WebKit::hasCustomLineHeight):
(WebKit::WebPage::rangeForWebSelectionAtPosition):
(WebKit::WebPage::contractedRangeFromHandle):
(WebKit::WebPage::updateBlockSelectionWithTouch):
(WebKit::WebPage::clearSelection):
(WebKit::WebPage::switchToBlockSelectionAtPoint):
(WebKit::WebPage::shouldSwitchToBlockModeForHandle):
(WebKit::WebPage::updateSelectionWithTouches):
(WebKit::WebPage::selectWithTwoTouches):

5:16 PM Changeset in webkit [200659] by weinig@apple.com
  • 6 edits
    1 add in trunk

Tweak underline style for data detected links
https://bugs.webkit.org/show_bug.cgi?id=157546

Reviewed by Tim Horton.

Source/WebCore:

Added API Tests in Color.cpp.

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange):
Tweak the underline's opacity based on the text color. White-ish text gets
46% opacity, everything else gets 26% opacity.

  • platform/graphics/Color.cpp:

(WebCore::Color::getHSV):

  • platform/graphics/Color.h:

Add support for getting the HSV (also know as HSB) computation of the color
to help determine the "whiteness" of a color.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/Color.cpp: Added.

(TestWebKitAPI::TEST):
Add tests for the new Color::getHSV() function.

5:08 PM Changeset in webkit [200658] by fpizlo@apple.com
  • 27 edits
    4 adds in trunk

Internal JSC profiler should have a timestamped log of events for each code block
https://bugs.webkit.org/show_bug.cgi?id=157538

Reviewed by Benjamin Poulain.
Source/JavaScriptCore:


For example, in 3d-cube, I can query the events for MMulti and I get:

1462917476.17083 MMulti#DTZ7qc installCode
1462917476.179663 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline installCode
1462917476.179664 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline osrEntry at bc#49
1462917476.185651 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 1011.214233/1717.000000, -707
1462917476.187913 MMulti#DTZ7qc MMulti#DTZ7qc-2-DFG installCode
1462917476.187917 MMulti#DTZ7qc MMulti#DTZ7qc-2-DFG osrEntry at bc#49
1462917476.205365 MMulti#DTZ7qc MMulti#DTZ7qc-2-DFG jettison due to OSRExit, counting = true, detail = (null)
1462917476.205368 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline frequentExit bc#65: BadCache/FromDFG
1462917476.205369 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline installCode
1462917476.205482 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 1013.000000/3434.000000, -1000
1462917476.211547 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 2013.000000/3434.000000, -1000
1462917476.213721 MMulti#DTZ7qc MMulti#DTZ7qc-3-DFG installCode
1462917476.213726 MMulti#DTZ7qc MMulti#DTZ7qc-3-DFG osrEntry at bc#49
1462917476.223976 MMulti#DTZ7qc MMulti#DTZ7qc-3-DFG jettison due to OSRExit, counting = true, detail = (null)
1462917476.223981 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline frequentExit bc#77: BadCache/FromDFG
1462917476.223982 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline frequentExit bc#94: BadCache/FromDFG
1462917476.223982 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline installCode
1462917476.224064 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 1013.000000/6868.000000, -1000
1462917476.224151 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 2013.000000/6868.000000, -1000
1462917476.224258 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 3013.000000/6868.000000, -1000
1462917476.224337 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 4023.000000/6868.000000, -1000
1462917476.224425 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 5023.000000/6868.000000, -1000
1462917476.224785 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 6023.396484/6868.000000, -862
1462917476.227669 MMulti#DTZ7qc MMulti#DTZ7qc-4-DFG installCode
1462917476.227675 MMulti#DTZ7qc MMulti#DTZ7qc-4-DFG osrEntry at bc#0

The output is ugly but useful. We can make it less ugly later.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::jettison):

  • bytecode/CodeBlock.h:

(JSC::ScriptExecutable::forEachCodeBlock):

  • bytecode/DFGExitProfile.cpp:

(JSC::DFG::ExitProfile::add):

  • dfg/DFGJITFinalizer.cpp:

(JSC::DFG::JITFinalizer::finalizeCommon):

  • dfg/DFGOperations.cpp:
  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::finalizeFunction):

  • jit/JIT.cpp:

(JSC::JIT::privateCompile):

  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::jitCompileAndSetHeuristics):
(JSC::LLInt::entryOSR):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • profiler/ProfilerCompilation.cpp:

(JSC::Profiler::Compilation::Compilation):
(JSC::Profiler::Compilation::setJettisonReason):
(JSC::Profiler::Compilation::dump):
(JSC::Profiler::Compilation::toJS):

  • profiler/ProfilerCompilation.h:

(JSC::Profiler::Compilation::uid):

  • profiler/ProfilerDatabase.cpp:

(JSC::Profiler::Database::ensureBytecodesFor):
(JSC::Profiler::Database::notifyDestruction):
(JSC::Profiler::Database::addCompilation):
(JSC::Profiler::Database::toJS):
(JSC::Profiler::Database::registerToSaveAtExit):
(JSC::Profiler::Database::logEvent):
(JSC::Profiler::Database::addDatabaseToAtExit):

  • profiler/ProfilerDatabase.h:
  • profiler/ProfilerEvent.cpp: Added.

(JSC::Profiler::Event::dump):
(JSC::Profiler::Event::toJS):

  • profiler/ProfilerEvent.h: Added.

(JSC::Profiler::Event::Event):
(JSC::Profiler::Event::operator bool):
(JSC::Profiler::Event::time):
(JSC::Profiler::Event::bytecodes):
(JSC::Profiler::Event::compilation):
(JSC::Profiler::Event::summary):
(JSC::Profiler::Event::detail):

  • profiler/ProfilerUID.cpp: Added.

(JSC::Profiler::UID::create):
(JSC::Profiler::UID::dump):
(JSC::Profiler::UID::toJS):

  • profiler/ProfilerUID.h: Added.

(JSC::Profiler::UID::UID):
(JSC::Profiler::UID::fromInt):
(JSC::Profiler::UID::toInt):
(JSC::Profiler::UID::operator==):
(JSC::Profiler::UID::operator!=):
(JSC::Profiler::UID::operator bool):
(JSC::Profiler::UID::isHashTableDeletedValue):
(JSC::Profiler::UID::hash):
(JSC::Profiler::UIDHash::hash):
(JSC::Profiler::UIDHash::equal):

  • runtime/CommonIdentifiers.h:
  • runtime/Executable.cpp:

(JSC::ScriptExecutable::installCode):

  • runtime/VM.h:

(JSC::VM::bytecodeIntrinsicRegistry):
(JSC::VM::shadowChicken):

  • runtime/VMInlines.h:

(JSC::VM::shouldTriggerTermination):
(JSC::VM::logEvent):

Source/WTF:

  • wtf/PrintStream.h:

(WTF::PrintStream::print):

Tools:

  • Scripts/display-profiler-output:
5:02 PM Changeset in webkit [200657] by bshafiei@apple.com
  • 1 copy in branches/safari-602.1.32-branch

New Branch.

4:51 PM Changeset in webkit [200656] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Can't select record bar in Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=156963
<rdar://problem/25898256>

Reviewed by Timothy Hatcher.

Sync record selection between the Rendering Frames grid and overview graph.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGridNode.prototype.hasAncestor):
Add helper function needed by TimelineView.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:

(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._mouseClicked):
Don't deselect the selected record when clicked. Initially this seemed
like a good idea but it complicates the UI for no added value.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
Get path components from the current TimelineView instead of the
TimelineRecordingContentView, now that the selected record appears
in the bottom ContentBrowser's navigation bar.

4:49 PM Changeset in webkit [200655] by achristensen@apple.com
  • 7 edits in trunk/Source

Handle _schemeUpgraded delegate callbacks in NSURLSessionDataDelegate
https://bugs.webkit.org/show_bug.cgi?id=157354
rdar://problem/25842107

Reviewed by Darin Adler.

Source/WebCore:

No new tests. This cannot be tested with a self-signed certificate.
This needs to be tested once we use real ssl certificates for testing.

  • platform/network/mac/WebCoreResourceHandleAsDelegate.mm:

(-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):

  • platform/network/mac/WebCoreURLResponse.h:
  • platform/network/mac/WebCoreURLResponse.mm:

(WebCore::synthesizeRedirectResponseIfNecessary):
Take the NSURLRequest instead of the NSURLConnection as a parameter so we can share this code with the NSURLSession loader,
which has an NSURLSessionDataTask. Both have the currentRequest, which is all we need in this function anyway.

Source/WebKit2:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):
When we make a request to a http url and CFNetwork determines that that url would have redirected to an HSTS site
and it is going to change the request to an https request, this delegate callback is called. We need to call the
redirection code to have the same behavior as the NSURLConnection-based loader.

4:47 PM Changeset in webkit [200654] by ddkilzer@apple.com
  • 2 edits in trunk/Source/bmalloc

bmalloc should automatically disable itself when ThreadSanitizer is used
<https://webkit.org/b/157527>

Reviewed by Michael Catanzaro.

  • bmalloc/Environment.cpp:

(bmalloc::isASanEnabled): Rename to isSanitizerEnabled.
(bmalloc::isSanitizerEnabled): Rename from isASanEnabled. Add
support for detecting ThreadSanitizer.
(bmalloc::Environment::computeIsBmallocEnabled): Switch from
isASanEnabled to isSanitizerEnabled.

4:45 PM Changeset in webkit [200653] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.32

New tag.

4:38 PM Changeset in webkit [200652] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

iOS rebaseline after r200464.

  • fast/shadow-dom/touch-event-ios-expected.txt:
4:38 PM Changeset in webkit [200651] by commit-queue@webkit.org
  • 11 edits
    2 adds in trunk

Web Inspector: Backend should initiate timeline recordings on page navigations to ensure nothing is missed
https://bugs.webkit.org/show_bug.cgi?id=157504
<rdar://problem/26188642>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-10
Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/protocol/Timeline.json:

Add protocol commands to enable/disable auto capture and list the
instruments that should be enabled when auto capture starts.
Add protocol event for when the backend starts an auto capture.

Source/WebCore:

Test: inspector/timeline/setAutoCaptureInstruments-errors.html

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):
Pass other agents into the TimelineAgent constructor.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::frameStartedLoadingImpl):
Inform the TimelineAgent whenever the main frame starts a new load.

  • inspector/InspectorTimelineAgent.h:
  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
Initialize new members.

(WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
Cleanup auto capture state when tearing down.

(WebCore::InspectorTimelineAgent::setAutoCaptureEnabled):
(WebCore::InspectorTimelineAgent::setAutoCaptureInstruments):
Set and validate new auto capture state from the frontend.

(WebCore::InspectorTimelineAgent::mainFrameStartedLoading):
When page navigates start an auto capture if needed.

Source/WebInspectorUI:

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.set autoCaptureOnPageLoad):
(WebInspector.TimelineManager.prototype.set enabledTimelineTypes):
(WebInspector.TimelineManager.prototype._updateAutoCaptureInstruments):
For backends that support it, enable/disable auto capture and the instruments to use.

(WebInspector.TimelineManager.prototype.autoCaptureStarted):
New event, stop and start a new recording. Set a flag that we should
detect the auto capturing resource so we know when the stop the
auto capture.

(WebInspector.TimelineManager.prototype._loadNewRecording):
(WebInspector.TimelineManager.prototype._addRecord):
(WebInspector.TimelineManager.prototype._startAutoCapturing): Renamed.
(WebInspector.TimelineManager.prototype._attemptAutoCapturingForFrame):
(WebInspector.TimelineManager.prototype._legacyAttemptStartAutoCapturingForFrame):
(WebInspector.TimelineManager.prototype._stopAutoRecordingSoon):
(WebInspector.TimelineManager.prototype._resetAutoRecordingMaxTimeTimeout):
(WebInspector.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout):
(WebInspector.TimelineManager.prototype._mainResourceDidChange):
(WebInspector.TimelineManager.prototype._mergeScriptProfileRecords):
Factor out the new path, old path, and shared code for auto capturing.
Renamed _startAutoCapturing to _attemptAutoCapturingForFrame which
better matches what it tries to do.

  • UserInterface/Protocol/TimelineObserver.js:

(WebInspector.TimelineObserver.prototype.autoCaptureStarted):
Inform TimelineManager.

LayoutTests:

  • inspector/timeline/setAutoCaptureInstruments-errors-expected.txt: Added.
  • inspector/timeline/setAutoCaptureInstruments-errors.html: Added.
4:21 PM Changeset in webkit [200650] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

4:18 PM Changeset in webkit [200649] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Debugger sidebar should refresh when Debug UI enabled/disabled
https://bugs.webkit.org/show_bug.cgi?id=157540
<rdar://problem/26207064>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._scriptRemoved.removeScript):
(WebInspector.DebuggerSidebarPanel.prototype._scriptRemoved):
Remove element from both tree outlines, if it exists.

4:11 PM Changeset in webkit [200648] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

Make the different evaluateWithScopeExtension implementations more consistent
https://bugs.webkit.org/show_bug.cgi?id=157536

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-10
Reviewed by Timothy Hatcher.

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::evaluateWithScopeExtension):
Throw the exception consistent with JSJavaScriptCallFrame.

  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::JSJavaScriptCallFrame::evaluateWithScopeExtension):
Better error message consistent with InjectedScriptHost.

  • runtime/Completion.h:
  • runtime/Completion.cpp:

(JSC::evaluateWithScopeExtension):
Give this an Exception out parameter like other evaluations
so the caller can decide what to do with it.

3:08 PM Changeset in webkit [200647] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

2:43 PM Changeset in webkit [200646] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/text/unicode-range-download.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=42154

Unreviewed test gardening.

2:35 PM Changeset in webkit [200645] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] FTL can produce GetByVal nodes without proper bounds checking
https://bugs.webkit.org/show_bug.cgi?id=157502
rdar://problem/26027027

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-10
Reviewed by Filip Pizlo.

It was possible for FTL to generates GetByVal on arbitrary offsets
without any bounds checking.

The bug is caused by the order of optimization phases:
-First, the Integer Range Optimization proves that a CheckInBounds

test can never fail.
This proof is based on control flow or preceeding instructions
inside a loop.

-The Loop Invariant Code Motion phase finds that the GetByVal does not

depend on anything in the loop and hoist it out of the loop.

-> As a result, the conditions that were necessary to eliminate

the CheckInBounds are no longer met before the GetByVal.

This patch just moves the Integer Range Optimization phase after
Loop Invariant Code Motion to make sure no code is moved after
its integer ranges bounds proofs have been used.

  • dfg/DFGPlan.cpp:

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

  • tests/stress/bounds-check-not-eliminated-by-licm.js: Added.

(testInLoopTests):

2:30 PM Changeset in webkit [200644] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: TimelineOverview assertion failed: Missing overview graph for timeline type undefined
https://bugs.webkit.org/show_bug.cgi?id=157533
<rdar://problem/26204033>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._recordWasFiltered):
The OverviewTimelineView's represented object is the entire recording,
and TimelineOverview.recordWasFiltered expects a timeline. Return early
since no graph in the overview needs updating.

2:26 PM Changeset in webkit [200643] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Call Trees and Memory view blank
https://bugs.webkit.org/show_bug.cgi?id=157486
<rdar://problem/26178404>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
Setting current time now handled by _updateTimelineViewTimes.
(WebInspector.TimelineRecordingContentView.prototype._capturingStopped):
Update times for the current TimelineView when the recording ends.
This ensures that views that don't call TimelineView.setupDataGrid are
able to update state that depends on the ruler selection.

(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineRecordingContentView.prototype._updateTimelineViewTimes):
Renamed from _updateTimelineViewSelection. Sets start, end, and current times.

1:45 PM Changeset in webkit [200642] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(SHADOW_DOM) && !ENABLE(DETAILS_ELEMENT) build
https://bugs.webkit.org/show_bug.cgi?id=157514

Reviewed by Ryosuke Niwa.

  • dom/Element.cpp:

(WebCore::Element::insertedInto):
(WebCore::Element::removedFrom):

1:44 PM Changeset in webkit [200641] by Csaba Osztrogonác
  • 3 edits in trunk/Source/WebKit2

Fix the !ENABLE(VIDEO) build
https://bugs.webkit.org/show_bug.cgi?id=157518

Reviewed by Alex Christensen.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

1:42 PM Changeset in webkit [200640] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(WEB_TIMING) build
https://bugs.webkit.org/show_bug.cgi?id=157515

Reviewed by Alex Christensen.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::loadDone):

1:41 PM Changeset in webkit [200639] by Csaba Osztrogonác
  • 3 edits in trunk/Source/WebCore

Fix the !ENABLE(INDEXED_DATABASE) build
https://bugs.webkit.org/show_bug.cgi?id=157517

Reviewed by Alex Christensen.

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::WorkerThread):

1:32 PM Changeset in webkit [200638] by jer.noble@apple.com
  • 12 edits
    15 adds in trunk

Return a Promise from HTMLMediaElement.play()
https://bugs.webkit.org/show_bug.cgi?id=157400

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline web-platform-tests/html/dom/interfaces-expected.txt with new (failing) result.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Tests: media/media-play-promise-reject-error-notsupported.html

media/media-play-promise-reject-load-abort.html
media/media-play-promise-reject-pause-abort.html
media/media-play-promise-reject-play-notallowed.html
media/media-play-promise-reject-play-notsupported.html
media/media-play-promise-resolve-when-playing.html
media/media-play-promise-resolve.html

The HTML Living Standard Spec <https://html.spec.whatwg.org/multipage/embedded-content.html>
(5 May 2016) adds support for a Promise to be returned by the play() method, to be resolved
or rejected at defined points during loading and playback.

Add utility methods which encapsulate the definitions of the equivalent algorithms from the
HTML Spec. Add a new, overloaded play() method on HTMLMediaElement which takes a DeferredWrapper
reference.

After the change to use scheduleNotifyAboutPlaying() instead of enqueueing the "playing" event
directly, we must ensure that the notifyAboutPlaying() task does not get fired before the
"play" event preceeding it does. So re-implement GenericEventQueue (which previously used
a timer to dispatch events) to use a GenericTaskQueue instead. This ensures that all tasks and
events are interleaved in the order in which they were enqueued.

Additionally, the new pauseAfterDetachedTimerFired() event was firing out of microtask order, which
broke some W3C tests after the changes to GenericEventQueue. Move GenericEventQueue and
GenericTaskQueue to the same timing source (namely, a WebCore Timer) and interleave Events
and Tasks by having GenericEventQueue use GenericTaskQueue to issue its Events. Because
Document::postTask() cannot ensure ordering with Timer-based events, switch HTMLMediaElement
over to Timer-backed GenericTaskQueues.

Use a WeakPtr to track the destruction of TaskDispatcher<Timer> objects in pendingDispatchers().

  • dom/GenericEventQueue.cpp:

(WebCore::GenericEventQueue::GenericEventQueue):
(WebCore::GenericEventQueue::enqueueEvent):
(WebCore::GenericEventQueue::close):
(WebCore::GenericEventQueue::cancelAllEvents):
(WebCore::GenericEventQueue::suspend):
(WebCore::GenericEventQueue::resume):
(WebCore::GenericEventQueue::sharedTimer): Deleted.
(WebCore::GenericEventQueue::sharedTimerFired): Deleted.
(WebCore::GenericEventQueue::pendingQueues): Deleted.

  • dom/GenericEventQueue.h:
  • platform/GenericTaskQueue.cpp: Added.

(WebCore::TaskDispatcher<Timer>::~TaskDispatcher):
(WebCore::TaskDispatcher<Timer>::postTask):
(WebCore::TaskDispatcher<Timer>::sharedTimer):
(WebCore::TaskDispatcher<Timer>::sharedTimerFired):
(WebCore::TaskDispatcher<Timer>::pendingDispatchers):
(WebCore::TaskDispatcher<Timer>::dispatchOneTask):

  • platform/GenericTaskQueue.h:

(WebCore::TaskDispatcher<Timer>::TaskDispatcher): Deleted.
(WebCore::TaskDispatcher<Timer>::postTask): Deleted.
(WebCore::TaskDispatcher<Timer>::timerFired): Deleted.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::scheduleResolvePendingPlayPromises):
(WebCore::HTMLMediaElement::rejectPendingPlayPromises):
(WebCore::HTMLMediaElement::resolvePendingPlayPromises):
(WebCore::HTMLMediaElement::scheduleNotifyAboutPlaying):
(WebCore::HTMLMediaElement::notifyAboutPlaying):
(WebCore::HTMLMediaElement::noneSupported):
(WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::playInternal):
(WebCore::HTMLMediaElement::pauseInternal):
(WebCore::HTMLMediaElement::contextDestroyed):
(WebCore::HTMLMediaElement::stop):
(WebCore::HTMLMediaElement::pauseAfterDetachedTask): Renamed from pauseAfterDetachedTimerFired.
(WebCore::HTMLMediaElement::removedFrom):
(WebCore::HTMLMediaElement::contextDestroyed):

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElement.idl:
  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

  • media/media-play-promise-reject-error-notsupported-expected.txt: Added.
  • media/media-play-promise-reject-error-notsupported.html: Added.
  • media/media-play-promise-reject-load-abort-expected.txt: Added.
  • media/media-play-promise-reject-load-abort.html: Added.
  • media/media-play-promise-reject-pause-abort-expected.txt: Added.
  • media/media-play-promise-reject-pause-abort.html: Added.
  • media/media-play-promise-reject-play-notallowed-expected.txt: Added.
  • media/media-play-promise-reject-play-notallowed.html: Added.
  • media/media-play-promise-reject-play-notsupported-expected.txt: Added.
  • media/media-play-promise-reject-play-notsupported.html: Added.
  • media/media-play-promise-resolve-expected.txt: Added.
  • media/media-play-promise-resolve-when-playing-expected.txt: Added.
  • media/media-play-promise-resolve-when-playing.html: Added.
  • media/media-play-promise-resolve.html: Added.
1:21 PM Changeset in webkit [200637] by Ryan Haddad
  • 12 edits
    15 deletes in trunk

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

This change has caused crashes in existing LayoutTests
(Requested by ryanhaddad on #webkit).

Reverted changeset:

"Return a Promise from HTMLMediaElement.play()"
https://bugs.webkit.org/show_bug.cgi?id=157400
http://trac.webkit.org/changeset/200627

Patch by Commit Queue <commit-queue@webkit.org> on 2016-05-10

12:31 PM Changeset in webkit [200636] by Simon Fraser
  • 15 edits
    2 moves in trunk

Fix scrolling tree dumping
https://bugs.webkit.org/show_bug.cgi?id=157529

Reviewed by Tim Horton.

Source/WebCore:

Scrolling tree dumps cannot contain layerIDs because they are not stable between
runs. Fix by adding ScrollingStateTreeAsTextBehavior flags, and not dumping
the layerID for tests.

Sadly RemoteScrollingCoordinatorTransaction has a lot of duplicated code for dumping
the scrolling state tree, which should be converted to dumpProperties() at some point.

Fix the one test that suffered from this problem, and unskip it.

Test: fast/scrolling/ios/remove-scrolling-role.html

  • page/scrolling/ScrollingStateFixedNode.cpp:

(WebCore::ScrollingStateFixedNode::dumpProperties):

  • page/scrolling/ScrollingStateFixedNode.h:
  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::dumpProperties):

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::dump):
(WebCore::ScrollingStateNode::scrollingStateTreeAsText):

  • page/scrolling/ScrollingStateNode.h:
  • page/scrolling/ScrollingStateOverflowScrollingNode.cpp:

(WebCore::ScrollingStateOverflowScrollingNode::dumpProperties):

  • page/scrolling/ScrollingStateOverflowScrollingNode.h:
  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::dumpProperties):

  • page/scrolling/ScrollingStateScrollingNode.h:
  • page/scrolling/ScrollingStateStickyNode.cpp:

(WebCore::ScrollingStateStickyNode::dumpProperties):

  • page/scrolling/ScrollingStateStickyNode.h:

LayoutTests:

  • fast/scrolling/ios/remove-scrolling-role-expected.txt: Renamed from LayoutTests/platform/ios-simulator-wk2/scrolling/remove-scrolling-role-expected.txt.
  • fast/scrolling/ios/remove-scrolling-role.html: Renamed from LayoutTests/platform/ios-simulator-wk2/scrolling/remove-scrolling-role.html.
  • platform/ios-simulator-wk2/TestExpectations:
12:31 PM Changeset in webkit [200635] by Simon Fraser
  • 3 edits in trunk/LayoutTests

Mark fast/scrolling/ios/scroll-events-back-forward-after-pageshow.html as flakey.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
12:16 PM Changeset in webkit [200634] by Joseph Pecoraro
  • 11 edits
    2 adds in trunk

Web Inspector: Eliminate the crazy code for evaluateOnCallFrame
https://bugs.webkit.org/show_bug.cgi?id=157510
<rdar://problem/26191332>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::evaluateWithScopeExtension):
Set and clear an optional scope extension object.

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype.evaluate):
(InjectedScript.prototype._evaluateOn):
(InjectedScript.prototype.evaluateOnCallFrame):
Unify the code to use the passed in evaluate function and object.
When evaluating on a call frame the evaluate function ends up being
DebuggerCallFrame::evaluateWithScopeExtension. When evaluating globally
this ends up being JSInjectedScriptHost::evaluateWithScopeExtension.
In both cases "object" is the preferred this object to use.

  • debugger/DebuggerCallFrame.h:
  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::JSJavaScriptCallFrame::evaluateWithScopeExtension):
(Inspector::JSJavaScriptCallFrame::evaluate): Deleted.

  • inspector/JSJavaScriptCallFrame.h:
  • inspector/JSJavaScriptCallFramePrototype.cpp:

(Inspector::JSJavaScriptCallFramePrototype::finishCreation):
(Inspector::jsJavaScriptCallFramePrototypeFunctionEvaluateWithScopeExtension):

  • inspector/JavaScriptCallFrame.h:

(Inspector::JavaScriptCallFrame::evaluateWithScopeExtension):
(Inspector::JavaScriptCallFrame::evaluate): Deleted.
Pass through to DebuggerCallFrame with the proper arguments.

  • debugger/Debugger.cpp:

(JSC::Debugger::hasBreakpoint):

  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::evaluateBreakpointAction):
Use the new evaluate on call frame method name and no scope extension object.

LayoutTests:

  • inspector/debugger/evaluateOnCallFrame-CommandLineAPI-expected.txt: Added.
  • inspector/debugger/evaluateOnCallFrame-CommandLineAPI.html: Added.
12:08 PM Changeset in webkit [200633] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(CSS_REGIONS) build after r198990
https://bugs.webkit.org/show_bug.cgi?id=157516

Reviewed by Ryosuke Niwa.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::affectsRenderedSubtree):

11:56 AM Changeset in webkit [200632] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Make super-property-access.js test run for less time because it was timing out in debug builds.

Rubber stamped by Filip Pizlo.

  • tests/stress/super-property-access.js:

(test):
(test.value):
(test.foo):
(test.B.prototype.bar):
(test.B):

11:34 AM Changeset in webkit [200631] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Fix more deprecation warnings.

  • NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:

(NetworkServiceInitializer):

  • PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:

(PluginServiceInitializer):

  • WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:

(WebContentServiceInitializer):

10:45 AM Changeset in webkit [200630] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[SpeculativeValidation] Do not start a preload if there is already one pending
https://bugs.webkit.org/show_bug.cgi?id=157522
<rdar://problem/26156083>

Reviewed by Alex Christensen.

Do not start a preload if there is already one pending. We failed to check in
SpeculativeLoadManager::preloadEntry() if there was already a pending preload.
As a result, we would sometimes cancel an already pending preload and start
one from scratch which is inefficient. It would also sometimes lead to hitting
an assertion in the SpeculativeLoad destructor because we could destroy the
SpeculativeLoad without finishing or cancelling the load.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):

10:42 AM Changeset in webkit [200629] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Cleanup super getter/setter now that underlying issue is fixed
https://bugs.webkit.org/show_bug.cgi?id=157488
<rdar://problem/26179120>

Patch by Devin Rousso <Devin Rousso> on 2016-05-10
Reviewed by Brian Burg.

Addressed FIXMEs for bug 147064:
<https://webkit.org/b/147064> Getter and setter on super are called with wrong "this" object

  • UserInterface/Views/VisualStyleKeywordPicker.js:

(WebInspector.VisualStyleKeywordPicker.prototype.get value):
(WebInspector.VisualStyleKeywordPicker.prototype.set value):
(WebInspector.VisualStyleKeywordPicker.prototype.get synthesizedValue):
(WebInspector.VisualStyleKeywordPicker.prototype._getValue): Deleted.
(WebInspector.VisualStyleKeywordPicker.prototype._setValue): Deleted.
(WebInspector.VisualStyleKeywordPicker.prototype._generateSynthesizedValue): Deleted.

  • UserInterface/Views/VisualStyleNumberInputBox.js:

(WebInspector.VisualStyleNumberInputBox.prototype.set specialPropertyPlaceholderElementText):

  • UserInterface/Views/VisualStyleTimingEditor.js:

(WebInspector.VisualStyleTimingEditor.prototype.get value):
(WebInspector.VisualStyleTimingEditor.prototype.set value):
(WebInspector.VisualStyleTimingEditor.prototype.get synthesizedValue):
(WebInspector.VisualStyleTimingEditor.prototype._getValue): Deleted.
(WebInspector.VisualStyleTimingEditor.prototype._setValue): Deleted.
(WebInspector.VisualStyleTimingEditor.prototype._generateSynthesizedValue): Deleted.

10:32 AM Changeset in webkit [200628] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix a deprecation warning.

  • DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm:

(DatabaseServiceInitializer):

10:27 AM Changeset in webkit [200627] by jer.noble@apple.com
  • 12 edits
    15 adds in trunk

Return a Promise from HTMLMediaElement.play()
https://bugs.webkit.org/show_bug.cgi?id=157400

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline web-platform-tests/html/dom/interfaces-expected.txt with new (failing) result.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Tests: media/media-play-promise-reject-error-notsupported.html

media/media-play-promise-reject-load-abort.html
media/media-play-promise-reject-pause-abort.html
media/media-play-promise-reject-play-notallowed.html
media/media-play-promise-reject-play-notsupported.html
media/media-play-promise-resolve-when-playing.html
media/media-play-promise-resolve.html

The HTML Living Standard Spec <https://html.spec.whatwg.org/multipage/embedded-content.html>
(5 May 2016) adds support for a Promise to be returned by the play() method, to be resolved
or rejected at defined points during loading and playback.

Add utility methods which encapsulate the definitions of the equivalent algorithms from the
HTML Spec. Add a new, overloaded play() method on HTMLMediaElement which takes a DeferredWrapper
reference.

After the change to use scheduleNotifyAboutPlaying() instead of enqueueing the "playing" event
directly, we must ensure that the notifyAboutPlaying() task does not get fired before the
"play" event preceeding it does. So re-implement GenericEventQueue (which previously used
a timer to dispatch events) to use a GenericTaskQueue instead. This ensures that all tasks and
events are interleaved in the order in which they were enqueued.

Additionally, the new pauseAfterDetachedTimerFired() event was firing out of microtask order, which
broke some W3C tests after the changes to GenericEventQueue. Move GenericEventQueue and
GenericTaskQueue to the same timing source (namely, a WebCore Timer) and interleave Events
and Tasks by having GenericEventQueue use GenericTaskQueue to issue its Events. Because
Document::postTask() cannot ensure ordering with Timer-based events, switch HTMLMediaElement
over to Timer-backed GenericTaskQueues.

  • dom/GenericEventQueue.cpp:

(WebCore::GenericEventQueue::GenericEventQueue):
(WebCore::GenericEventQueue::enqueueEvent):
(WebCore::GenericEventQueue::close):
(WebCore::GenericEventQueue::cancelAllEvents):
(WebCore::GenericEventQueue::suspend):
(WebCore::GenericEventQueue::resume):
(WebCore::GenericEventQueue::sharedTimer): Deleted.
(WebCore::GenericEventQueue::sharedTimerFired): Deleted.
(WebCore::GenericEventQueue::pendingQueues): Deleted.

  • dom/GenericEventQueue.h:
  • platform/GenericTaskQueue.cpp: Added.

(WebCore::TaskDispatcher<Timer>::~TaskDispatcher):
(WebCore::TaskDispatcher<Timer>::postTask):
(WebCore::TaskDispatcher<Timer>::sharedTimer):
(WebCore::TaskDispatcher<Timer>::sharedTimerFired):
(WebCore::TaskDispatcher<Timer>::pendingDispatchers):
(WebCore::TaskDispatcher<Timer>::dispatchOneTask):

  • platform/GenericTaskQueue.h:

(WebCore::TaskDispatcher<Timer>::TaskDispatcher): Deleted.
(WebCore::TaskDispatcher<Timer>::postTask): Deleted.
(WebCore::TaskDispatcher<Timer>::timerFired): Deleted.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::scheduleResolvePendingPlayPromises):
(WebCore::HTMLMediaElement::rejectPendingPlayPromises):
(WebCore::HTMLMediaElement::resolvePendingPlayPromises):
(WebCore::HTMLMediaElement::scheduleNotifyAboutPlaying):
(WebCore::HTMLMediaElement::notifyAboutPlaying):
(WebCore::HTMLMediaElement::noneSupported):
(WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::playInternal):
(WebCore::HTMLMediaElement::pauseInternal):
(WebCore::HTMLMediaElement::contextDestroyed):
(WebCore::HTMLMediaElement::stop):
(WebCore::HTMLMediaElement::pauseAfterDetachedTask): Renamed from pauseAfterDetachedTimerFired.
(WebCore::HTMLMediaElement::removedFrom):
(WebCore::HTMLMediaElement::contextDestroyed):

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElement.idl:
  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

  • media/media-play-promise-reject-error-notsupported-expected.txt: Added.
  • media/media-play-promise-reject-error-notsupported.html: Added.
  • media/media-play-promise-reject-load-abort-expected.txt: Added.
  • media/media-play-promise-reject-load-abort.html: Added.
  • media/media-play-promise-reject-pause-abort-expected.txt: Added.
  • media/media-play-promise-reject-pause-abort.html: Added.
  • media/media-play-promise-reject-play-notallowed-expected.txt: Added.
  • media/media-play-promise-reject-play-notallowed.html: Added.
  • media/media-play-promise-reject-play-notsupported-expected.txt: Added.
  • media/media-play-promise-reject-play-notsupported.html: Added.
  • media/media-play-promise-resolve-expected.txt: Added.
  • media/media-play-promise-resolve-when-playing-expected.txt: Added.
  • media/media-play-promise-resolve-when-playing.html: Added.
  • media/media-play-promise-resolve.html: Added.
10:23 AM Changeset in webkit [200626] by Chris Dumez
  • 90 edits in trunk/Source

Get rid of a lot of calls to RefPtr::release()
https://bugs.webkit.org/show_bug.cgi?id=157505

Reviewed by Alex Christensen.

Get rid of a lot of calls to RefPtr::release() and use WTFMove() instead.

Source/WebCore:

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::addKeyTimerFired):
(WebCore::MediaKeySession::sendMessage):
(WebCore::MediaKeySession::sendError):

  • Modules/geolocation/Geolocation.cpp:

(WebCore::createGeoposition):

  • Modules/indexeddb/DOMWindowIndexedDatabase.cpp:

(WebCore::DOMWindowIndexedDatabase::disconnectFrameForDocumentSuspension):
(WebCore::DOMWindowIndexedDatabase::reconnectFrameFromDocumentSuspension):

  • Modules/indexeddb/IDBKey.h:

(WebCore::IDBKey::createMultiEntryArray):

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::scheduleEvent):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::scheduleEvent):

  • Modules/mediasource/SourceBufferList.cpp:

(WebCore::SourceBufferList::scheduleEvent):

  • Modules/notifications/DOMWindowNotifications.cpp:

(WebCore::DOMWindowNotifications::disconnectFrameForDocumentSuspension):
(WebCore::DOMWindowNotifications::reconnectFrameFromDocumentSuspension):

  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::openDatabaseBackend):

  • Modules/webdatabase/DatabaseManager.h:
  • Modules/webdatabase/SQLCallbackWrapper.h:

(WebCore::SQLCallbackWrapper::unwrap):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::enqueueTextFrame):
(WebCore::WebSocketChannel::enqueueRawFrame):
(WebCore::WebSocketChannel::enqueueBlobFrame):
(WebCore::WebSocketChannel::processOutgoingFrameQueue):

  • bindings/js/JSBlobCustom.cpp:

(WebCore::constructJSBlob):

  • bindings/js/JSGeolocationCustom.cpp:

(WebCore::createPositionOptions):
(WebCore::JSGeolocation::getCurrentPosition):
(WebCore::JSGeolocation::watchPosition):

  • bindings/js/JSMessagePortCustom.cpp:

(WebCore::fillMessagePortArray):

  • bindings/js/JSSQLTransactionCustom.cpp:

(WebCore::JSSQLTransaction::executeSql):

  • bindings/js/ScriptControllerMac.mm:

(WebCore::ScriptController::createScriptInstanceForWidget):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateCallWith):

  • crypto/mac/CryptoKeyRSAMac.cpp:

(WebCore::CryptoKeyRSA::generatePair):

  • css/CSSBasicShapes.cpp:

(WebCore::buildSerializablePositionOffset):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForNinePieceImageRepeat):
(WebCore::counterToCSSValue):
(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSContentDistributionValue.cpp:

(WebCore::CSSContentDistributionValue::customCSSText):

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::image):

  • css/CSSFilterImageValue.h:
  • css/CSSGrammar.y.in:
  • css/CSSNamedImageValue.cpp:

(WebCore::CSSNamedImageValue::image):

  • css/CSSNamedImageValue.h:
  • css/CSSParser.cpp:

(WebCore::CSSParser::parseFillProperty):
(WebCore::CSSParser::parseAnimationProperty):
(WebCore::CSSParser::parseInsetRoundedCorners):
(WebCore::ShadowParseContext::commitLength):
(WebCore::CSSParser::parseShadow):
(WebCore::BorderImageSliceParseContext::commitNumber):
(WebCore::BorderImageQuadParseContext::commitNumber):
(WebCore::CSSParser::parseBorderRadius):
(WebCore::CSSParser::parseCounter):
(WebCore::CSSParser::parseDeprecatedGradient):
(WebCore::CSSParser::parseDeprecatedLinearGradient):
(WebCore::CSSParser::parseDeprecatedRadialGradient):
(WebCore::CSSParser::parseLinearGradient):
(WebCore::CSSParser::parseRadialGradient):
(WebCore::CSSParser::parseTransformValue):
(WebCore::CSSParser::parseBuiltinFilterArguments):
(WebCore::CSSParser::parseTextIndent):
(WebCore::CSSParser::popRuleData):
(WebCore::CSSParser::markRuleHeaderStart):
(WebCore::CSSParser::createViewportRule):

  • css/CSSParser.h:
  • css/CSSParserValues.cpp:

(WebCore::CSSParserValue::createCSSValue):

  • css/CSSParserValues.h:
  • css/CSSValueList.cpp:

(WebCore::CSSValueList::copy):

  • css/CSSValueList.h:
  • css/SVGCSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::svgPropertyValue):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertClipPath):
(WebCore::StyleBuilderConverter::convertReflection):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::cachedOrPendingFromValue):
(WebCore::StyleResolver::setOrPendingFromValue):
(WebCore::StyleResolver::cursorOrPendingFromValue):

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

(WebCore::StyleRuleBase::createCSSOMWrapper):

  • css/StyleRule.h:
  • dom/Attr.cpp:

(WebCore::Attr::create):

  • dom/Attr.h:
  • dom/ContainerNode.h:

(WebCore::ChildNodesLazySnapshot::nextNode):

  • dom/Document.cpp:

(WebCore::Document::setFocusedElement):
(WebCore::Document::takeDOMWindowFrom):
(WebCore::Document::updateHoverActiveState):

  • dom/Element.cpp:

(WebCore::Element::detachAttribute):
(WebCore::Element::setAttributeNodeNS):
(WebCore::Element::ensureAttr):

  • dom/Element.h:
  • dom/MessagePort.cpp:

(WebCore::MessagePort::dispatchMessages):
(WebCore::MessagePort::entanglePorts):

  • dom/NodeIterator.cpp:

(WebCore::NodeIterator::nextNode):
(WebCore::NodeIterator::previousNode):

  • dom/Range.cpp:

(WebCore::Range::processContentsBetweenOffsets):

  • dom/StyledElement.cpp:

(WebCore::StyledElement::rebuildPresentationAttributeStyle):

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::ApplyBlockElementCommand::createBlockElement):

  • editing/ApplyBlockElementCommand.h:
  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::applyCommandToComposite):
(WebCore::CompositeEditCommand::appendBlockPlaceholder):
(WebCore::CompositeEditCommand::insertBlockPlaceholder):
(WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):
(WebCore::CompositeEditCommand::insertNewDefaultParagraphElementAt):
(WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/CompositeEditCommand.h:
  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::wrappingStyleForSerialization):
(WebCore::styleFromMatchedRulesForElement):
(WebCore::extractPropertiesNotIn):
(WebCore::backgroundColorInEffect):

  • editing/EditingStyle.h:
  • editing/Editor.cpp:

(WebCore::Editor::increaseSelectionListLevel):
(WebCore::Editor::increaseSelectionListLevelOrdered):
(WebCore::Editor::increaseSelectionListLevelUnordered):
(WebCore::Editor::findStringAndScrollToVisible):
(WebCore::Editor::rangeOfString):

  • editing/Editor.h:
  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::cloneHierarchyUnderNewBlock):

  • editing/InsertParagraphSeparatorCommand.h:
  • editing/MergeIdenticalElementsCommand.cpp:

(WebCore::MergeIdenticalElementsCommand::doUnapply):

  • editing/ModifySelectionListLevel.cpp:

(WebCore::IncreaseSelectionListLevelCommand::doApply):
(WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevel):

  • editing/ModifySelectionListLevel.h:
  • editing/RemoveNodeCommand.cpp:

(WebCore::RemoveNodeCommand::doUnapply):

  • editing/RemoveNodePreservingChildrenCommand.cpp:

(WebCore::RemoveNodePreservingChildrenCommand::doApply):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplacementFragment::insertFragmentForTestRendering):

  • editing/SpellingCorrectionCommand.cpp:

(WebCore::SpellingCorrectionCommand::doApply):

  • editing/mac/DictionaryLookup.h:
  • editing/mac/DictionaryLookup.mm:

(WebCore::DictionaryLookup::rangeForSelection):
(WebCore::DictionaryLookup::rangeAtHitTestResult):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::finishRequestAutocomplete):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::scheduleEvent):
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
(WebCore::HTMLMediaElement::addTextTrack):
(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent):

  • html/HTMLMediaElement.h:
  • html/canvas/OESVertexArrayObject.cpp:

(WebCore::OESVertexArrayObject::createVertexArrayOES):

  • html/canvas/OESVertexArrayObject.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::getContextAttributes):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/track/VTTCue.cpp:

(WebCore::VTTCue::getCueAsHTML):
(WebCore::VTTCue::createCueRenderingTree):

  • html/track/VTTCue.h:
  • html/track/WebVTTElement.cpp:

(WebCore::WebVTTElement::createEquivalentHTMLElement):

  • html/track/WebVTTElement.h:
  • html/track/WebVTTParser.cpp:

(WebCore::WebVTTTreeBuilder::buildFromString):
(WebCore::WebVTTParser::createDocumentFragmentFromCueText):

  • html/track/WebVTTParser.h:

Source/WTF:

  • wtf/text/AtomicStringImpl.cpp:

(WTF::HashAndUTF8CharactersTranslator::translate):

  • wtf/text/CString.cpp:

(WTF::CString::copyBufferIfNeeded):

  • wtf/text/StringBuilder.cpp:

(WTF::StringBuilder::allocateBuffer):
(WTF::StringBuilder::allocateBufferUpConvert):
(WTF::StringBuilder::shrinkToFit):

  • wtf/text/WTFString.cpp:

(WTF::String::append):
(WTF::String::insert):
(WTF::String::removeInternal):

  • wtf/text/WTFString.h:

(WTF::String::String):
(WTF::String::operator=):
(WTF::String::releaseImpl):
(WTF::String::isNull): Deleted.

10:05 AM Changeset in webkit [200625] by barraclough@apple.com
  • 3 edits in trunk/Source/WebCore

Allow some leeway after page load before throttling, to allow post load events to complete.
https://bugs.webkit.org/show_bug.cgi?id=157499

Reviewed by Ryosuke Niwa

  • page/PageThrottler.cpp:

(WebCore::PageThrottler::PageThrottler):

  • m_pageLoadActivityCounter now affects activity state indirecty, via m_pageLoadActivityHysteresis.

(WebCore::PageThrottler::pageLoadActivityCounterChanged):

  • counter updates hysteresis object, which in turn will affect activity state.
  • page/PageThrottler.h:
    • added m_pageLoadActivityHysteresis, pageLoadActivityCounterChanged.
10:05 AM Changeset in webkit [200624] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Clicks do not work in Safari after pressing the Track package button in Gmail
https://bugs.webkit.org/show_bug.cgi?id=157508
<rdar://problem/22646404>

Reviewed by Anders Carlsson.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::viewDidMoveToWindow):
Explicitly cancel the force-click animation when we're removing the gesture
recognizer due to the WK*View being unparented. This works around a bug
where we don't get the cancellation callback in this situation, causing
Safari to be left in an inconsistent and unexpected state.

9:34 AM Changeset in webkit [200623] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix the !ENABLE(DFG_JIT) build
https://bugs.webkit.org/show_bug.cgi?id=157512

Reviewed by Mark Lam.

  • jit/Repatch.cpp:
8:27 AM Changeset in webkit [200622] by Alan Bujtas
  • 6 edits
    2 adds in trunk

REGRESSION (r193610): Drop down menu doesn’t expand at allofbach.com
https://bugs.webkit.org/show_bug.cgi?id=157445

Reviewed by Simon Fraser.

When we don't run transitions (becasuse of to/from 'auto' values) we should also not
report the 'from' value and behave as if we finished the transition already.

Source/WebCore:

Test: fast/animation/height-auto-transition-computed-value.html

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty): This is a revert of
looping the 'to' value back to the first keyframe when reverse animation is at the start value (last keyframe).

  • platform/Length.cpp:

(WebCore::blend):

LayoutTests:

  • fast/animation/height-auto-transition-computed-value-expected.html: Added.
  • fast/animation/height-auto-transition-computed-value.html: Added.
  • imported/blink/transitions/transition-not-interpolable-expected.txt:
7:56 AM Changeset in webkit [200621] by Michael Catanzaro
  • 20 edits
    7 deletes in trunk

[Linux] Remove seccomp filters support
https://bugs.webkit.org/show_bug.cgi?id=157380

Reviewed by Darin Adler.

.:

  • Source/cmake/FindLibSeccomp.cmake: Removed.
  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/WebKit2:

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode): Deleted.
(WebKit::NetworkProcessCreationParameters::decode): Deleted.

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode): Deleted.
(WebKit::WebProcessCreationParameters::decode): Deleted.

  • Shared/WebProcessCreationParameters.h:
  • Shared/linux/SeccompFilters/OpenSyscall.cpp: Removed.
  • Shared/linux/SeccompFilters/OpenSyscall.h: Removed.
  • Shared/linux/SeccompFilters/SeccompBroker.cpp: Removed.
  • Shared/linux/SeccompFilters/SeccompBroker.h: Removed.
  • Shared/linux/SeccompFilters/SeccompFilters.cpp: Removed.
  • Shared/linux/SeccompFilters/SeccompFilters.h: Removed.
  • Shared/linux/SeccompFilters/SigactionSyscall.cpp: Removed.
  • Shared/linux/SeccompFilters/SigactionSyscall.h: Removed.
  • Shared/linux/SeccompFilters/SigprocmaskSyscall.cpp: Removed.
  • Shared/linux/SeccompFilters/SigprocmaskSyscall.h: Removed.
  • Shared/linux/SeccompFilters/Syscall.cpp: Removed.
  • Shared/linux/SeccompFilters/Syscall.h: Removed.
  • Shared/linux/SeccompFilters/SyscallPolicy.cpp: Removed.
  • Shared/linux/SeccompFilters/SyscallPolicy.h: Removed.
  • Shared/linux/SeccompFilters/XDGBaseDirectory.h: Removed.
  • Shared/linux/SeccompFilters/XDGBaseDirectoryGLib.cpp: Removed.
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess): Deleted.
(WebKit::WebProcessPool::createNewWebProcess): Deleted.
(WebKit::WebProcessPool::cookieStorageDirectory): Deleted.

  • UIProcess/WebProcessPool.h:
  • WebProcess/efl/SeccompFiltersWebProcessEfl.cpp: Removed.
  • WebProcess/efl/SeccompFiltersWebProcessEfl.h: Removed.
  • WebProcess/gtk/SeccompFiltersWebProcessGtk.cpp: Removed.
  • WebProcess/gtk/SeccompFiltersWebProcessGtk.h: Removed.
  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::WebProcess::platformInitializeWebProcess): Deleted.

Tools:

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/PlatformEfl.cmake:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/Tests/WebKit2/SeccompFilters.cpp: Removed.
  • efl/jhbuild.modules:
  • gtk/jhbuild.modules:
4:41 AM Changeset in webkit [200620] by dino@apple.com
  • 10 edits in trunk

[iOS] <select> elements should render right-aligned when in RTL mode
https://bugs.webkit.org/show_bug.cgi?id=157501
<rdar://problem/26187870>

Reviewed by Antoine Quint.

Source/WebCore:

This is the equivalent of http://webkit.org/b/157112 for iOS.
Handle <select> elements when we're in RTL mode. This means
drawing the button with the drop-down arrow on the left
side, and the button text right-aligned.

Test: fast/forms/select-non-native-rendering-direction.html
plus a bunch of other ones that needed rebaselining.

  • rendering/RenderThemeIOS.mm: Rename MenuListButtonPaddingRight to MenuListButtonPaddingAfter.

(WebCore::RenderThemeIOS::popupInternalPaddingBox): Handle both directions.
(WebCore::adjustInputElementButtonStyle):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorations): Handle drawing in
RTL mode.

LayoutTests:

Rebaseline now that iOS is doing the right thing.

  • platform/ios-simulator/fast/forms/select-non-native-rendering-direction-expected.txt:
  • platform/ios-simulator/fast/forms/listbox-bidi-align-expected.txt:
  • platform/ios-simulator/fast/forms/select-writing-direction-natural-expected.txt:
  • platform/ios-simulator/fast/text/international/bidi-listbox-atsui-expected.txt:
  • platform/ios-simulator/fast/text/international/bidi-listbox-expected.txt:
  • platform/ios-simulator/fast/text/international/bidi-menulist-expected.txt:
  • platform/ios-simulator/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
2:47 AM Changeset in webkit [200619] by youenn.fablet@crf.canon.fr
  • 17 edits
    2 adds in trunk

NodeList should be iterable
https://bugs.webkit.org/show_bug.cgi?id=131443
<rdar://problem/25731519>

Reviewed by Darin Adler.

Source/WebCore:

Test: fast/dom/nodeListIterator.html

Updating JSKeyValueIterator to support map and set iterators,
depending on the signature of the result type of DOMClass::Iterator::next method.
Symbol.iterator method is made the same as values method for set iterators.

Adding support for NodeList.
Updating FontFaceSet to take benefit of that.

  • bindings/js/JSDOMBinding.h:

(WebCore::jsPair):.

  • bindings/js/JSKeyValueIterator.h:

(WebCore::IteratorInspector::decltype): IteratorInspector detects whether the iterator is a set or map iterator.
(WebCore::IteratorInspector::test):
(WebCore::fillForEachArgumentsWithIteratorValue): Specializing according set/map iterator.
(WebCore::iteratorValueToJS): Ditto.
(WebCore::keyValueIteratorForEach):
(WebCore::JSKeyValueIterator<JSWrapper>::next):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementationIterableFunctions): Removed the line forbidding set iterators.
Making Symbol.iterator function equal to values for set iterators.

  • bindings/scripts/test/JS/JSTestNode.cpp: Rebasing with set iterator functions.
  • bindings/scripts/test/JS/JSTestObj.cpp: Rebasing according updated function names.
  • bindings/scripts/test/TestNode.idl: Making TestNode set iterable.
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::Iterator::next): Refactoring to make it a set iterator.

  • css/FontFaceSet.h:
  • css/FontFaceSet.idl:
  • dom/NodeList.h: Making NodeList iterable.

(WebCore::NodeList::Iterator::Iterator):
(WebCore::NodeList::Iterator::next):
(WebCore::NodeList::createIterator):

  • dom/NodeList.idl:

LayoutTests:

  • fast/dom/domListEnumeration-expected.txt:
  • fast/dom/nodeListIterator-expected.txt: Added.
  • fast/dom/nodeListIterator.html: Added.
  • fast/dom/script-tests/domListEnumeration.js:
  • fast/text/font-face-set-javascript-expected.txt:
  • fast/text/font-face-set-javascript.html:
12:46 AM Changeset in webkit [200618] by svillar@igalia.com
  • 8 edits
    17 adds in trunk

[css-grid] Implement auto-repeat computation
https://bugs.webkit.org/show_bug.cgi?id=157473

Reviewed by Darin Adler.

Source/WebCore:

We added support for parsing and style for the new auto-repeat syntax. This patch actually
implements the feature by computing the number of auto-repeat tracks that will be part of
the explicit grid depending on the available size on the corresponding axis.

Note that we still do not drop the empty tracks, i.e., auto-fit will work exactly as
auto-fill until the empty track removal is implemented.

Some test results are not totally correct yet because we need to add the line names to the
computed style. As that requires a rather large piece of code it will be done in a follow up
patch. Track sizes are correct though.

Tests: fast/css-grid-layout/grid-auto-fill-columns.html

fast/css-grid-layout/grid-auto-fill-rows.html
fast/css-grid-layout/grid-change-auto-repeat-tracks.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-004.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseGridTrackRepeatFunction): Add the CSSAutoRepeatValue directly
instead of adding the track size.

  • css/StyleBuilderCustom.h: Store the insertion point in style.
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::guttersSize): Replaced size_t by unsigned.
(WebCore::RenderGrid::rawGridTrackSize): New function which retrieves the track size from
either explicit (including auto-repeat tracks) or implicit tracks.
(WebCore::RenderGrid::gridTrackSize): Use rawGridTrackSize().
(WebCore::RenderGrid::computeAutoRepeatTracksCount): This is the core of the patch. This
method computes the number of auto-repeat tracks that fits on the available size for a given
axis (or 1 if that's indefinite).

  • rendering/RenderGrid.h:

LayoutTests:

Apart from some home made tests I'm importing 5 patches from Mozilla's test suite as they
perfectly test the behavior of auto-repeat with positioned items. I've commented auto-fit
tests as that feature isn't implemented yet.

  • fast/css-grid-layout/grid-auto-fill-columns-expected.txt: Added.
  • fast/css-grid-layout/grid-auto-fill-columns.html: Added.
  • fast/css-grid-layout/grid-auto-fill-rows-expected.txt: Added.
  • fast/css-grid-layout/grid-auto-fill-rows.html: Added.
  • fast/css-grid-layout/grid-change-auto-repeat-tracks-expected.txt: Added.
  • fast/css-grid-layout/grid-change-auto-repeat-tracks.html: Added.
  • fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
  • fast/css-grid-layout/grid-element-auto-repeat-get-set.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001-expected.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002-expected.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003-expected.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-004-expected.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-004.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-expected.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005.html: Added.

May 9, 2016:

11:36 PM Changeset in webkit [200617] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Web Inspector: CRASH under JSC::DebuggerCallFrame::thisValue when hitting breakpoint
https://bugs.webkit.org/show_bug.cgi?id=157442
<rdar://problem/24172015>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-09
Reviewed by Saam Barati.

Source/JavaScriptCore:

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::thisValueForCallFrame):
When the thisValue is JSValue() return undefined and avoid calling
toThisValue which would lead to a crash. Having this be an empty
JSValue could happen inside an ES6 class constructor, before
calling super.

LayoutTests:

  • inspector/debugger/break-in-constructor-before-super-expected.txt: Added.
  • inspector/debugger/break-in-constructor-before-super.html: Added.
11:07 PM Changeset in webkit [200616] by bshafiei@apple.com
  • 1 copy in branches/safari-601.6-branch

New Branch.

11:03 PM Changeset in webkit [200615] by bshafiei@apple.com
  • 1 copy in branches/safari-601.1.46.128-branch

New Branch.

10:04 PM Changeset in webkit [200614] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix GTK build after r200607

  • Modules/notifications/Notification.h:

dir and replaceId are used in WebNotificationManager with NOTIFICATIONS and with LEGACY_NOTIFICATIONS

9:58 PM Changeset in webkit [200613] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, fix cloop.

  • bytecode/ValueProfile.cpp:

(JSC::ResultProfile::emitDetectNumericness):
(JSC::ResultProfile::emitSetNonNumber):

  • bytecode/ValueProfile.h:

(JSC::ResultProfile::addressOfFlags):
(JSC::ResultProfile::addressOfSpecialFastPathCount):
(JSC::ResultProfile::detectNumericness):
(JSC::ResultProfile::hasBits):

9:52 PM Changeset in webkit [200612] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Fix the Windows build after r200602, and do some minor tidyup.

  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::contentsHidden):

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::contentsHidden):
(PlatformCALayerWin::setContentsHidden):

  • platform/graphics/ca/win/PlatformCALayerWin.h:
8:40 PM Changeset in webkit [200611] by timothy_horton@apple.com
  • 7 edits in trunk/Source/WebKit2

REGRESSION (r191922): Zoom in/Zoom Out is not working for PDFs
https://bugs.webkit.org/show_bug.cgi?id=157503
<rdar://problem/23736297>

Reviewed by Anders Carlsson.

  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.h:

Restore a requiresUnifiedScaleFactor that was lost in r191922.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::mainFramePluginHandlesPageScaleGestureDidChange):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::didInitializePlugin):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
Separate mainFramePluginHandlesPageScaleGesture changes out from didCommitLoadForFrame,
because the PluginView doesn't exist at this point, so it can't answer
the handlesPageScaleGesture question correctly (or at all).
Instead, we'll send the message when the main-frame PluginView is initialized.

8:22 PM Changeset in webkit [200610] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Crash beneath ObjCCallbackFunctionImpl::call
https://bugs.webkit.org/show_bug.cgi?id=157491

Reviewed by Saam Barati.

Clear any exceptions after the micro task runs.

Tried creating a test case, but I don't have source for the app.
I can't seem to find the right combination of Promises and ObjC code.

  • runtime/JSJob.cpp:

(JSC::JSJobMicrotask::run):

7:55 PM Changeset in webkit [200609] by Simon Fraser
  • 6 edits
    7 copies
    41 moves
    6 adds in trunk/LayoutTests

iOS-scrolling test cleanup.

Move iOS scrolling tests from platform/ios-simulator/fast/scrolling/ios to fast/scrolling/ios/.
Rebaseline those that need it. Enable some in iOS WK1 if they pass.

Try to make fast/scrolling/ios/touch-scroll-visibility-hidden.html not flakey

  • fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt.
  • fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/clipping-ancestor-with-accelerated-scrolling-ancestor.html.
  • fast/scrolling/ios/iframe-inside-overflow-clipping-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/iframe-inside-overflow-clipping-expected.txt.
  • fast/scrolling/ios/iframe-inside-overflow-clipping.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/iframe-inside-overflow-clipping.html.
  • fast/scrolling/ios/overflow-clip-with-accelerated-scrolling-ancestor-expected.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-clip-with-accelerated-scrolling-ancestor-expected.html.
  • fast/scrolling/ios/overflow-clip-with-accelerated-scrolling-ancestor.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-clip-with-accelerated-scrolling-ancestor.html.
  • fast/scrolling/ios/overflow-div-scrolling-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-div-scrolling-expected.txt.
  • fast/scrolling/ios/overflow-div-scrolling.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-div-scrolling.html.
  • fast/scrolling/ios/overflow-scroll-inherited-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scroll-inherited-expected.txt.
  • fast/scrolling/ios/overflow-scroll-inherited.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scroll-inherited.html.
  • fast/scrolling/ios/overflow-scroll-touch-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scroll-touch-expected.txt.
  • fast/scrolling/ios/overflow-scroll-touch.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scroll-touch.html.
  • fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip-expected.txt.
  • fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip-size-expected.txt.
  • fast/scrolling/ios/overflow-scrolling-ancestor-clip-size.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip-size.html.
  • fast/scrolling/ios/overflow-scrolling-ancestor-clip.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip.html.
  • fast/scrolling/ios/remove-overflow-crash-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/remove-overflow-crash-expected.txt.
  • fast/scrolling/ios/remove-overflow-crash.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/remove-overflow-crash.html.
  • fast/scrolling/ios/resources/jump-back.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/resources/jump-back.html.
  • fast/scrolling/ios/script-tests/TEMPLATE.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/script-tests/TEMPLATE.html.
  • fast/scrolling/ios/script-tests/overflow-div-scrolling.js: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/script-tests/overflow-div-scrolling.js.

(verifyScrollOffset):

  • fast/scrolling/ios/scroll-event-from-scrollTo-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-event-from-scrollTo-expected.txt.
  • fast/scrolling/ios/scroll-event-from-scrollTo.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-event-from-scrollTo.html.
  • fast/scrolling/ios/scroll-events-back-forward-after-pageshow-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-events-back-forward-after-pageshow-expected.txt.
  • fast/scrolling/ios/scroll-events-back-forward-after-pageshow.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-events-back-forward-after-pageshow.html.
  • fast/scrolling/ios/scroll-events-back-forward-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-events-back-forward-expected.txt.
  • fast/scrolling/ios/scroll-events-back-forward.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-events-back-forward.html.
  • fast/scrolling/ios/scrollTo-at-page-load-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrollTo-at-page-load-expected.txt.
  • fast/scrolling/ios/scrollTo-at-page-load.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrollTo-at-page-load.html.
  • fast/scrolling/ios/scrollbar-hiding-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/scrollbar-hiding-expected.txt.
  • fast/scrolling/ios/scrollbar-hiding.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrollbar-hiding.html.
  • fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/scrolling-content-clip-to-viewport-expected.txt.
  • fast/scrolling/ios/scrolling-content-clip-to-viewport.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrolling-content-clip-to-viewport.html.
  • fast/scrolling/ios/table-cell-touch-scrolling-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/table-cell-touch-scrolling-expected.txt.
  • fast/scrolling/ios/table-cell-touch-scrolling.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/table-cell-touch-scrolling.html.
  • fast/scrolling/ios/textarea-scroll-touch-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/textarea-scroll-touch-expected.txt.
  • fast/scrolling/ios/textarea-scroll-touch.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/textarea-scroll-touch.html.
  • fast/scrolling/ios/touch-scroll-back-forward-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/touch-scroll-back-forward-expected.txt.
  • fast/scrolling/ios/touch-scroll-back-forward.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/touch-scroll-back-forward.html.
  • fast/scrolling/ios/touch-scroll-visibility-hidden-expected.txt:
  • fast/scrolling/ios/touch-scroll-visibility-hidden.html:
  • fast/scrolling/ios/touch-stacking-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/touch-stacking-expected.txt.
  • fast/scrolling/ios/touch-stacking.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/touch-stacking.html.
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator/fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.png: Added.
  • platform/ios-simulator/fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt.
  • platform/ios-simulator/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip-expected.txt.
  • platform/ios-simulator/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip-size-expected.txt.
  • platform/ios-simulator/fast/scrolling/ios/scrollbar-hiding-expected.png: Added.
  • platform/ios-simulator/fast/scrolling/ios/scrollbar-hiding-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrollbar-hiding-expected.txt.
  • platform/ios-simulator/fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrolling-content-clip-to-viewport-expected.txt.
  • platform/ios-simulator/fast/scrolling/ios/textarea-scroll-touch-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/textarea-scroll-touch-expected.txt.
  • platform/ios-simulator/fast/scrolling/ios/touch-stacking-expected.png: Added.
  • platform/ios-simulator/fast/scrolling/ios/touch-stacking-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/touch-stacking-expected.txt.
7:45 PM Changeset in webkit [200608] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Filtering by Errors/Warnings should not filter Breakpoints list
https://bugs.webkit.org/show_bug.cgi?id=157481
<rdar://problem/26177346>

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:

New UI strings.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.showResourcesWithIssuesOnlyFilterFunction):
Only filter tree elements belonging to the scripts tree outline.
(WebInspector.DebuggerSidebarPanel):
Drive-by cleanup of Issues filter button tooltips.

7:31 PM Changeset in webkit [200607] by Darin Adler
  • 14 edits in trunk/Source/WebCore

Change Notification constructor to take an IDL dictionary instead of a WebCore::Dictionary
https://bugs.webkit.org/show_bug.cgi?id=157466

Reviewed by Alex Christensen.

  • Modules/notifications/Notification.cpp: Got rid of unneeded includes.

(WebCore::Notification::Notification): Deleted the unused default constructor. Changed
NotificationCenter argument to be reference rather than PassRefPtr. Changed one of the
ScriptExecutionContext arguments to be a Document since the code relies on that already.
Used the lambda form of timer creation instead of the class member form. Added a FIXME
about when m_notificationCenter can be null.
(WebCore::Notification::create): Changed NotificationCenter argument to be reference
rather than PassRefPtr. Changed options argument to be Options rather than Dictionary.
(WebCore::directionString): Added. Helper because the class still wants to store the
direction as a string, at least for now.
(WebCore::Notification::show): Streamlined the code a bit.
(WebCore::Notification::taskTimerFired): Deleted. Not needed now that we use a lambda
inside the constructor.
(WebCore::Notification::permission): Removed unneeded const from return type.
(WebCore::Notification::permissionString): Ditto.

  • Modules/notifications/Notification.h: Used pragma once, updated for changes above.

Removed a number of unused functions, including cancel, setIconURL, setLang,
stopLoadingIcon, detachPresenter, setBody, startLoadingIcon, finishLoadingIcon, and
taskTimerFired.

  • Modules/notifications/Notification.idl: Add NotificationOptions and pass it instead

of Dictionary to the constructor. Note that this is only a subset of what is
currently specified in the Notifications API document. The latest document specifies
a much more complex feature with lots more options.

  • Modules/notifications/NotificationCenter.cpp:

(WebCore::NotificationCenter::createNotification): Pass a reference rather than a
pointer to this.

  • Modules/notifications/NotificationClient.h: Use pragma once. Removed unneeded

includes and forward declarations. Fixed #if to be easier to read.

  • bindings/js/JSDOMConvert.h: Reworked the convert functions to use Converter and

DefaultConverter structs so we can do partial specialization in the future and so
we can get custom types for optional values. Used this to make an optional String
just be a null String, so it won't try to use Optional<String> instead. Might get
more complex latter when we add support for nullable.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateEnumerationImplementationContent): Generate a blank line to make the output
slightly clearer. Tweaked a comment.
(GenerateDefaultValue): Added. Converts the default syntax from IDL into the syntax
needed in C++ code.
(GenerateDefaultValueWithLeadingComma): Added. Helper for use below.
(GenerateDictionaryImplementationContent): Use GenerateDefaultValue and
GenerateDefaultValueWithLeadingComma to make default values.
(GenerateParametersCheck): Use GenerateDefaultValue here in the enumeration code
path. This is a step in the direction of being able to make the whole thing more
generic in the future.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:

Regenerated.

  • bindings/scripts/test/TestObj.idl: Simplified and extended some of the test cases

to cover more combinations of the dictionary and enumeration support.

7:01 PM Changeset in webkit [200606] by fpizlo@apple.com
  • 42 edits
    17 adds in trunk

Polymorphic operands in operators coerces downstream values to double.
https://bugs.webkit.org/show_bug.cgi?id=151793

Reviewed by Mark Lam.
Source/JavaScriptCore:


Previously if an object flowed into arithmetic, the prediction propagation phase would either
assume that the output of the arithmetic had to be double or sometimes it would assume that it
couldn't be double. We want it to only assume that the output is double if it actually had been.

The first part of this patch is to roll out http://trac.webkit.org/changeset/200502. That removed
some of the machinery that we had in place to detect whether the output of an operation is int or
double. That changeset claimed that the machinery was "fundamentally broken". It actually wasn't.
The reason why it didn't work was that ByteCodeParser was ignoring it if likelyToTakeSlowCase was
false. I think this was a complete goof-up: the code in ByteCodeParser::makeSafe was structured
in a way that made it non-obvious that the method is a no-op if !likelyToTakeSlowCase. So, this
change rolls out r200502 and makes ResultProfile do its job by reshaping how makeSafe processes
it.

This also makes two other changes to shore up ResultProfile:

  • OSR exit can now refine a ResultProfile the same way that it refines ValueProfile.
  • Baseline JIT slow paths now set bits in ResultProfile.


Based on this stuff, the DFG now predicts int/double/string in op_add/op_sub/op_mul based on
ResultProfiles. To be conservative, we still only use the ResultProfiles if the incoming
prediction is not number-or-boolean. This ensures that we exactly retain our old behavior in
those cases for which it was tuned. But I hope to remove this soon. I believe that ResultProfile
is already strictly better than what prediction propagation was doing before.

This can be an enormous win. This patch adds some simple microbenchmarks that demonstrate the
problem of assuming that arithmetic on objects returns double. The most extreme of these speeds
up 8x with this change (object-int-add-array).

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

(JSC::CodeBlock::addFrequentExitSite):
(JSC::CodeBlock::hasExitSite):

  • bytecode/DFGExitProfile.cpp:

(JSC::DFG::FrequentExitSite::dump):
(JSC::DFG::ExitProfile::ExitProfile):
(JSC::DFG::ExitProfile::~ExitProfile):
(JSC::DFG::ExitProfile::add):

  • bytecode/DFGExitProfile.h:

(JSC::DFG::FrequentExitSite::isHashTableDeletedValue):

  • bytecode/MethodOfGettingAValueProfile.cpp:

(JSC::MethodOfGettingAValueProfile::fromLazyOperand):
(JSC::MethodOfGettingAValueProfile::emitReportValue):
(JSC::MethodOfGettingAValueProfile::getSpecFailBucket): Deleted.

  • bytecode/MethodOfGettingAValueProfile.h:

(JSC::MethodOfGettingAValueProfile::MethodOfGettingAValueProfile):
(JSC::MethodOfGettingAValueProfile::operator bool):
(JSC::MethodOfGettingAValueProfile::operator!): Deleted.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/ValueProfile.cpp:

(JSC::ResultProfile::emitDetectBitsLight):
(JSC::ResultProfile::emitSetDouble):
(JSC::ResultProfile::emitSetNonNumber):
(WTF::printInternal):

  • bytecode/ValueProfile.h:

(JSC::ResultProfile::ResultProfile):
(JSC::ResultProfile::bytecodeOffset):
(JSC::ResultProfile::specialFastPathCount):
(JSC::ResultProfile::didObserveNonInt32):
(JSC::ResultProfile::didObserveDouble):
(JSC::ResultProfile::didObserveNonNegZeroDouble):
(JSC::ResultProfile::didObserveNegZeroDouble):
(JSC::ResultProfile::didObserveNonNumber):
(JSC::ResultProfile::didObserveInt32Overflow):
(JSC::ResultProfile::didObserveInt52Overflow):
(JSC::ResultProfile::setObservedNonNegZeroDouble):
(JSC::ResultProfile::setObservedNegZeroDouble):
(JSC::ResultProfile::setObservedNonNumber):
(JSC::ResultProfile::setObservedInt32Overflow):
(JSC::ResultProfile::addressOfFlags):
(JSC::ResultProfile::addressOfSpecialFastPathCount):
(JSC::ResultProfile::detectBitsLight):
(JSC::ResultProfile::hasBits):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::makeSafe):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::ensureNaturalLoops):
(JSC::DFG::Graph::methodOfGettingAValueProfileFor):
(JSC::DFG::Graph::valueProfileFor): Deleted.

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::hasExitSite):
(JSC::DFG::Graph::numBlocks):

  • dfg/DFGNode.h:

(JSC::DFG::Node::arithNodeFlags):
(JSC::DFG::Node::mayHaveNonIntResult):
(JSC::DFG::Node::mayHaveDoubleResult):
(JSC::DFG::Node::mayHaveNonNumberResult):
(JSC::DFG::Node::hasConstantBuffer):

  • dfg/DFGNodeFlags.cpp:

(JSC::DFG::dumpNodeFlags):

  • dfg/DFGNodeFlags.h:
  • dfg/DFGOSRExitCompiler32_64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOSRExitCompiler64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfEqual):
(JSC::AssemblyHelpers::branchIfNotCell):
(JSC::AssemblyHelpers::branchIfNotNumber):
(JSC::AssemblyHelpers::branchIfNotDoubleKnownNotInt32):
(JSC::AssemblyHelpers::branchIfBoolean):
(JSC::AssemblyHelpers::branchIfEmpty):
(JSC::AssemblyHelpers::branchStructure):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::CCallHelpers):
(JSC::CCallHelpers::setupArguments):
(JSC::CCallHelpers::setupArgumentsWithExecState):

  • jit/IntrinsicEmitter.cpp:

(JSC::AccessCase::emitIntrinsicGetter):

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

(JSC::JITAddGenerator::generateFastPath):

  • jit/JITAddGenerator.h:

(JSC::JITAddGenerator::JITAddGenerator):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_add):
(JSC::JIT::emitSlow_op_add):
(JSC::JIT::emit_op_div):
(JSC::JIT::emit_op_mul):
(JSC::JIT::emitSlow_op_mul):
(JSC::JIT::emit_op_sub):
(JSC::JIT::emitSlow_op_sub):

  • jit/JITInlines.h:

(JSC::JIT::callOperation):
(JSC::JIT::callOperationNoExceptionCheck):

  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateFastPath):

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

(JSC::JITSubGenerator::generateFastPath):

  • jit/JITSubGenerator.h:

(JSC::JITSubGenerator::JITSubGenerator):

  • jit/TagRegistersMode.cpp: Added.

(WTF::printInternal):

  • jit/TagRegistersMode.h: Added.
  • runtime/CommonSlowPaths.cpp:

(JSC::updateResultProfileForBinaryArithOp):

LayoutTests:

  • js/regress/object-int-add-array-expected.txt: Added.
  • js/regress/object-int-add-array.html: Added.
  • js/regress/object-int-add-expected.txt: Added.
  • js/regress/object-int-add.html: Added.
  • js/regress/object-int-mul-array-expected.txt: Added.
  • js/regress/object-int-mul-array.html: Added.
  • js/regress/object-int-sub-array-expected.txt: Added.
  • js/regress/object-int-sub-array.html: Added.
  • js/regress/object-int-sub-expected.txt: Added.
  • js/regress/object-int-sub.html: Added.
  • js/regress/script-tests/object-int-add-array.js: Added.

(i.o.valueOf):

  • js/regress/script-tests/object-int-add.js: Added.

(i.o.valueOf):

  • js/regress/script-tests/object-int-mul-array.js: Added.

(i.o.valueOf):

  • js/regress/script-tests/object-int-sub-array.js: Added.

(i.o.valueOf):

  • js/regress/script-tests/object-int-sub.js: Added.

(i.o.valueOf):

6:40 PM Changeset in webkit [200605] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

REGRESSION: Web Inspector: DOM path bar blinks when modifying inline styles
https://bugs.webkit.org/show_bug.cgi?id=149258
<rdar://problem/22737843>

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Utilities.js:

(Array.shallowEqual):

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser.prototype._updateContentViewNavigationItems):
(WebInspector.ContentBrowser.prototype._removeAllNavigationItems):
Don't re-render the navigation bar when all new navigation items match the previous ones.

  • UserInterface/Views/HierarchicalPathNavigationItem.js:

(WebInspector.HierarchicalPathNavigationItem.set components.let.componentsEqual):
(WebInspector.HierarchicalPathNavigationItem.prototype.set components):
Don't re-render HierarchicalPathComponent when all new path components match the previous ones.

6:35 PM Changeset in webkit [200604] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Land correct result for a recently added test.

  • fast/scrolling/ios/touch-scroll-visibility-hidden-expected.txt:
5:59 PM Changeset in webkit [200603] by beidson@apple.com
  • 4 edits in trunk/Source/WebCore

Modern IDB: Have server database connections remember the OpenDB request that spawned them.
https://bugs.webkit.org/show_bug.cgi?id=157498

Reviewed by Tim Horton.

No new tests (No testable change in behavior, debug only for now).

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation):

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::create):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFireVersionChangeEvent):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::createVersionChangeTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::establishTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didAbortTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didCommitTransaction):

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::openRequestIdentifier):

5:20 PM Changeset in webkit [200602] by Simon Fraser
  • 23 edits
    3 adds in trunk

[iOS] visibility:hidden -webkit-overflow-scrolling: touch divs can interfere with page scrolling
https://bugs.webkit.org/show_bug.cgi?id=157496
Source/WebCore:

Reviewed by Tim Horton.

UIScrollViews are constructed in the UI process for visibility:hidden scrollable elements
with -webkit-overflow-scrolling: touch, and these intercept user events when they should not.

Fix by propagating a "contentsHidden" flag from the web process which is used to turn off
user interaction on these views.

Test: fast/scrolling/ios/touch-scroll-visibility-hidden.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateContentsVisibility): We have to tell the scrolling layer
if we have visibility:hidden.

  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::contentsHidden):
(PlatformCALayerCocoa::setContentsHidden):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateAfterDescendants):

Source/WebKit2:

rdar://problem/22963278

Reviewed by Tim Horton.

UIScrollViews are constructed in the UI process for visibility:hidden scrollable elements
with -webkit-overflow-scrolling: touch, and these intercept user events when they should not.

Fix by propagating a "contentsHidden" flag from the web process which is used to turn off
user interaction on these views.

  • Shared/mac/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyProperties):

  • Shared/mac/RemoteLayerTreeTransaction.h:
  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpChangedLayers):

  • UIProcess/ios/RemoteLayerTreeHostIOS.mm:

(-[UIView _recursiveFindDescendantScrollViewAtPoint:withEvent:]): Our custom hit
test needs to take view.isUserInteractionEnabled into account.

  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::setHidden):
(WebKit::PlatformCALayerRemote::contentsHidden):
(WebKit::PlatformCALayerRemote::setContentsHidden):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:

Tools:

rdar://problem/22963278

Reviewed by Tim Horton.

Enhance UIScriptController to generate a drag, which is useful for scrolling.

  • WebKitTestRunner/UIScriptContext/Bindings/UIScriptController.idl:
  • WebKitTestRunner/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::dragFromPointToPoint):

  • WebKitTestRunner/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/ios/HIDEventGenerator.h:
  • WebKitTestRunner/ios/HIDEventGenerator.mm:

(-[HIDEventGenerator dragWithStartPoint:endPoint:duration:completionBlock:]):

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::dragFromPointToPoint):

LayoutTests:

rdar://problem/22963278

Reviewed by Tim Horton.

Add a fast/scrolling/ios directory, disable it everywhere except on iOS.

  • TestExpectations:
  • fast/scrolling/ios/touch-scroll-visibility-hidden-expected.txt: Added.
  • fast/scrolling/ios/touch-scroll-visibility-hidden.html: Added.
  • platform/ios-simulator-wk2/TestExpectations:
5:13 PM Changeset in webkit [200601] by mmaxfield@apple.com
  • 8 edits
    6 adds in trunk

Web Font is downloaded even when all the characters in the document are outside its unicode-range
https://bugs.webkit.org/show_bug.cgi?id=42154
<rdar://problem/17779042>

Reviewed by Darin Adler.

Source/WebCore:

Fonts are requested in two stages:

  • For a given font family, all the relevant @font-face rules are consulted. We build up a

mapping of unicode-range -> Font object. This result is cached.

  • Then, when we have the mapping, we look up the character we are trying to render to

find the appropriate Font object.

However, we are not supposed to create any Font objects (because that causes a download to
be triggered) until we consult with the character we're trying to render. Therefore, this
patch swaps out the Font objects with a FontAccessor. This FontAccessor is essentially a
lazily-created Font. When step 2 starts looking up the appropriate character, the
FontAccessor will be asked to start the download.

Test: fast/text/unicode-range-download.html

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::removeClient):
as a client from all its CSSFontFaces.

  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::clear): Clearing the CSSFontFaceSet needs to remove itself as a
client from all its CSSFontFaces.

  • css/CSSSegmentedFontFace.cpp:

(WebCore::CSSFontAccessor::create): The lazy Font object.
(WebCore::CSSFontAccessor::CSSFontAccessor): Ditto.
(WebCore::appendFontWithInvalidUnicodeRangeIfLoading): Appends a FontAccessor.
(WebCore::CSSSegmentedFontFace::fontRanges): Create the FontAccessor and use it instead.

  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::FontCascadeFonts::determinePitch): Use the fontForFirstRange() convenience
function.
(WebCore::glyphPageFromFontRanges): font() may now return nullptr. Update this function to
handle that.

  • platform/graphics/FontRanges.cpp:

(WebCore::FontRanges::Range::font): Trigger the lazy initialization.
(WebCore::TrivialFontAccessor::create): Used in the case where there is only one font in
the Ranges object and it has a full unicode-range.
(WebCore::TrivialFontAccessor::TrivialFontAccessor):
(WebCore::FontRanges::FontRanges): Use TrivialFontAccessor.
(WebCore::FontRanges::glyphDataForCharacter): font() may now return nullptr. Update this
function to handle that. This is where the magic happens: this is where we trigger
downloads only if the character falls within the unicode-range.
(WebCore::FontRanges::fontForFirstRange): Add ASSERT.
(WebCore::FontRanges::isLoading): Update to use the new FontAccessor.

  • platform/graphics/FontRanges.h: Ditto.

(WebCore::FontRanges::Range::Range):
(WebCore::FontRanges::Range::fontAccessor):
(WebCore::FontRanges::appendRange):
(WebCore::FontRanges::Range::font): Deleted.

  • platform/graphics/FontSelector.h: The virtual base class of FontAccessor. This is

necessary because it must be shared between platform code and non-platform code.
(WebCore::FontAccessor::~FontAccessor):

LayoutTests:

  • fast/text/unicode-range-download-expected.txt: Added.
  • fast/text/unicode-range-download.html: Added.
  • fast/text/resources/unicode-range-download-Ahem.otf: Added.
  • fast/text/resources/unicode-range-download-Ahem.ttf: Added.
  • fast/text/resources/unicode-range-download-Ahem.woff: Added.
  • imported/blink/svg/custom/resources/graffiti.svg: Added.

imported/blink/svg/custom/svg-fonts-unloaded-segment.html requires this font.

5:02 PM Changeset in webkit [200600] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove Global Breakpoints folder
https://bugs.webkit.org/show_bug.cgi?id=157478
<rdar://problem/26176524>

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:

Remove UI string.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineContextMenuTreeElement):
(WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
Remove references to folder tree element.

(WebInspector.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements.isSpecialBreakpoint):
(WebInspector.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements):
Top level comparison should check for "special" breakpoints.

5:00 PM Changeset in webkit [200599] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit/mac

[WebKit1] Invoking a link preview on a complex link (e.g. an image) results in an empty TextIndicator
https://bugs.webkit.org/show_bug.cgi?id=157497
<rdar://problem/25872773>

Reviewed by Anders Carlsson.

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _defaultAnimationController]):
r198578 fixed this for WebKit2, but forgot about WebKit1.

4:59 PM Changeset in webkit [200598] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

Modern IDB: Prevent the same transaction from being commited/aborted twice.
https://bugs.webkit.org/show_bug.cgi?id=157494

Reviewed by Tim Horton.

When a page navigates or a worker terminates, in rare cases with specific unfortunate timing, the IDBServer
might receive a request to commit/abort a transaction that is already in the process of committing/aborting.

By moving transactions that are finishing into their own map we can at least detect this situation and
return an error. This seems like an improvement over some mysterious ASSERTs/timeouts.

No new tests:
While apparent that this is at least partially to blame for some existing timeouts/ASSERTs, I could not nail
down a reliable way to reproduce this with a dedicated test.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::~UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentDeleteOperation):
(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::prepareToFinishTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformCommitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformAbortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::hasUnfinishedTransactions):
(WebCore::IDBServer::UniqueIDBDatabase::operationAndTransactionTimerFired):
(WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::transactionCompleted): Renamed from inProgressTransactionCompleted.
(WebCore::IDBServer::UniqueIDBDatabase::inProgressTransactionCompleted): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
4:51 PM Changeset in webkit [200597] by keith_miller@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

CallObjectConstructor should not call operationToThis in the FTL
https://bugs.webkit.org/show_bug.cgi?id=157492
<rdar://problem/26149904>

Reviewed by Mark Lam.

At some point when I was working on intrinsifying the Object
constructor, I realized that the Object constructor was different
from the ToObject operation. I fixed the DFG but I guess I didn't
fix the FTL.

This patch fixes an issue with www.wunderground.com not loading
the 10-day forecast and local map.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCallObjectConstructor):

  • tests/stress/call-object-constructor.js: Added.

(test):
(assert):

4:48 PM Changeset in webkit [200596] by timothy_horton@apple.com
  • 3 edits
    2 adds in trunk/Source/WebCore

Draw border and correct icon for placeholder attachments
https://bugs.webkit.org/show_bug.cgi?id=157495
rdar://problem/19982510

Reviewed by Anders Carlsson.

  • Resources/AttachmentPlaceholder.png: Added.
  • Resources/AttachmentPlaceholder@2x.png: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderThemeMac.mm:

(WebCore::attachmentPlaceholderBorderColor):
(WebCore::paintAttachmentIconPlaceholder):
(WebCore::paintAttachmentProgress):
(WebCore::paintAttachmentPlaceholderBorder):
(WebCore::RenderThemeMac::paintAttachment):
If progress is set, but set to 0, draw a dashed border around the attachment
and use the placeholder "download" artwork.

3:50 PM Changeset in webkit [200595] by adachan@apple.com
  • 5 edits in trunk/Source

Introduce WebVideoFullscreenInterfaceMac::isPlayingVideoInEnhancedFullscreen() and use it in WebVideoFullscreenManagerProxy::isPlayingVideoInEnhancedFullscreen()
https://bugs.webkit.org/show_bug.cgi?id=157493

Reviewed by Dan Bernstein.

Source/WebCore:

  • platform/mac/WebVideoFullscreenInterfaceMac.h:
  • platform/mac/WebVideoFullscreenInterfaceMac.mm:

(WebCore::WebVideoFullscreenInterfaceMac::isPlayingVideoInEnhancedFullscreen):

Source/WebKit2:

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::isPlayingVideoInEnhancedFullscreen):

3:01 PM Changeset in webkit [200594] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Heap Snapshot Timeline view can be live
https://bugs.webkit.org/show_bug.cgi?id=157487
<rdar://problem/26178439>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView.prototype.get showsLiveRecordingData): Deleted.
Don't override, should return true.

2:57 PM Changeset in webkit [200593] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Clean up iOS text autosizing code
https://bugs.webkit.org/show_bug.cgi?id=157489

Reviewed by Zalan Bujtas.

Change the TraverseNextInclusionFunction and HeightTypeTraverseNextInclusionFunction
to take references.

Use downcast<> more.

Whitespace cleanup.

  • rendering/RenderBlockFlow.cpp:

(WebCore::isNonBlocksOrNonFixedHeightListItems):

  • rendering/RenderElement.cpp:

(WebCore::includeNonFixedHeight):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::traverseNext):

  • rendering/RenderObject.h:
  • rendering/TextAutoSizing.cpp:

(WebCore::TextAutoSizingValue::adjustNodeSizes):
(WebCore::TextAutoSizingValue::reset):

2:53 PM Changeset in webkit [200592] by adachan@apple.com
  • 7 edits in trunk/Source/WebKit2

Add WKPageRef SPI to tell whether there's a video playing in enhanced fullscreen
https://bugs.webkit.org/show_bug.cgi?id=157434

Reviewed by Darin Adler.

  • UIProcess/API/C/mac/WKPagePrivateMac.h:
  • UIProcess/API/C/mac/WKPagePrivateMac.mm:

(WKPageIsPlayingVideoInEnhancedFullscreen):

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::isPlayingVideoInEnhancedFullscreen):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::isPlayingVideoInEnhancedFullscreen):

  • UIProcess/WebPageProxy.h:
1:41 PM Changeset in webkit [200591] by andersca@apple.com
  • 11 edits
    2 copies
    1 add in trunk/Source

Add injected bundle SPI for getting favicon and touch icon URLs
https://bugs.webkit.org/show_bug.cgi?id=157435

Reviewed by Darin Adler.

Source/WebCore:

  • CMakeLists.txt:

Add new files.

  • WebCore.xcodeproj/project.pbxproj:

Add new files.

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::iconType):

  • html/HTMLLinkElement.h:

Rename LinkRelAttribute::IconType to LinkIconType.

  • html/LinkIconCollector.cpp: Added.

(WebCore::iconSize):
New helper function that returns the icon size for an icon.

(WebCore::compareIcons):
Icon comparison function, to be used by for sorting.

(LinkIconCollector::iconsOfTypes):
Gather the right icons, sort them (descending by size) and return them.

  • html/LinkIconCollector.h:

Added.

  • html/LinkIconType.h:

Move icon type declarations here and arrange them so we can use them in an OptionSet.

  • html/LinkRelAttribute.cpp:

(WebCore::LinkRelAttribute::LinkRelAttribute):

  • html/LinkRelAttribute.h:
  • loader/icon/IconController.cpp:

(WebCore::iconFromLinkElements):
Rename IconType to LinkIconType.

Source/WebKit2:

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(collectIcons):
New helper function that calls into the WebCore LinkCollector.

(-[WKWebProcessPlugInFrame appleTouchIconURLs]):
Call collectIcons.

(-[WKWebProcessPlugInFrame faviconURLs]):
Ditto.

1:22 PM Changeset in webkit [200590] by Simon Fraser
  • 5 edits
    2 moves in trunk

Remove testRunner.setTextAutosizingEnabled and migrate the one test that uses it
https://bugs.webkit.org/show_bug.cgi?id=157480

Reviewed by Zalan Bujtas.

Migrate the one test that used testRunner.setTextAutosizingEnabled() to window.internals.settings.setTextAutosizingEnabled()
and move it next to the other iOS text autosizing tests.
Tools:

Remove testRunner.setTextAutosizingEnabled(), which was only implemented in DumpRenderTree.

  • DumpRenderTree/TestRunner.cpp:

(setTextAutosizingEnabledCallback): Deleted.
(TestRunner::staticFunctions): Deleted.

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setTextAutosizingEnabled): Deleted.

LayoutTests:

  • fast/text-autosizing/ios/textarea-auto-sizing-disable-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/fast/html/textarea-auto-sizing-disable-expected.txt.
  • fast/text-autosizing/ios/textarea-auto-sizing-disable.html: Renamed from LayoutTests/platform/ios-simulator/ios/fast/html/textarea-auto-sizing-disable.html.
  • platform/ios-simulator/TestExpectations:
1:22 PM Changeset in webkit [200589] by Simon Fraser
  • 1 edit
    25 adds in trunk/LayoutTests

Upstream some iOS text autosizing tests.

  • fast/text-autosizing/ios/anonymous-block.html: Added.
  • fast/text-autosizing/ios/contenteditable.html: Added.
  • fast/text-autosizing/ios/first-letter.html: Added.
  • fast/text-autosizing/ios/font-family-case-insensitive-expected.txt: Added.
  • fast/text-autosizing/ios/font-family-case-insensitive.html: Added.
  • fast/text-autosizing/ios/lists.html: Added.
  • fast/text-autosizing/ios/overflow.html: Added.
  • fast/text-autosizing/ios/percent-adjust-length-line-height-expected.txt: Added.
  • fast/text-autosizing/ios/percent-adjust-length-line-height.html: Added.
  • fast/text-autosizing/ios/percent-adjust-number-line-height-expected.txt: Added.
  • fast/text-autosizing/ios/percent-adjust-number-line-height.html: Added.
  • fast/text-autosizing/ios/percent-adjust-percent-line-height-expected.txt: Added.
  • fast/text-autosizing/ios/percent-adjust-percent-line-height.html: Added.
  • platform/ios-simulator/fast/text-autosizing/ios/anonymous-block-expected.txt: Added.
  • platform/ios-simulator/fast/text-autosizing/ios/contenteditable-expected.txt: Added.
  • platform/ios-simulator/fast/text-autosizing/ios/first-letter-expected.txt: Added.
  • platform/ios-simulator/fast/text-autosizing/ios/lists-expected.txt: Added.
  • platform/ios-simulator/fast/text-autosizing/ios/overflow-expected.txt: Added.
  • platform/mac/fast/text-autosizing/ios/anonymous-block-expected.txt: Added.
  • platform/mac/fast/text-autosizing/ios/contenteditable-expected.txt: Added.
  • platform/mac/fast/text-autosizing/ios/first-letter-expected.txt: Added.
  • platform/mac/fast/text-autosizing/ios/lists-expected.txt: Added.
  • platform/mac/fast/text-autosizing/ios/overflow-expected.txt: Added.
1:22 PM Changeset in webkit [200588] by Simon Fraser
  • 8 edits
    2 adds in trunk

[iOS WK2] Font size increases on some pages after navigating then going back
https://bugs.webkit.org/show_bug.cgi?id=157441
rdar://problem/22873240

Reviewed by Darin Adler.

Source/WebCore:

Sometimes I want to dump ViewportConfigurations from WebKit2 so export dump().

Test: fast/text-autosizing/ios/text-autosizing-after-back.html

  • page/ViewportConfiguration.h:

Source/WebKit2:

There's an ordering dependency between setting the viewport configuration and doing
layouts when going back to a page from the page cache that is incorrectly handled.

In FrameLoader::commitProvisionalLoad(), CachedPage::restore() triggers a layout under
updateContentsSize(), but this happens before dispatchDidCommitLoad() which updates
the viewport arguments via ViewportConfiguration::setViewportArguments().

This issue is not addressed by the current commit. But a second problem is:
if the inputs to text autosizing change, we need to invalidate the autosizing state.
The relevant input here is the fixed layout width (which is determined from the viewport
configuration).

The current code invalidated text autosizing when m_viewportConfiguration.minimumLayoutSize()
changed, but the correct behavior is to invalidate based on fixed layout size changing.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::sendViewportAttributesChanged):
(WebKit::WebPage::setFixedLayoutSize):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::resetTextAutosizing):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::viewportConfigurationChanged):
(WebKit::WebPage::setViewportConfigurationMinimumLayoutSize): Deleted.
(WebKit::WebPage::resetTextAutosizingBeforeLayoutIfNeeded): Deleted.

LayoutTests:

  • fast/text-autosizing/ios/text-autosizing-after-back-expected.html: Added.
  • fast/text-autosizing/ios/text-autosizing-after-back.html: Added.
1:18 PM Changeset in webkit [200587] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

"Main content" restrictions should not apply to media documents
https://bugs.webkit.org/show_bug.cgi?id=157479
<rdar://problem/25840861>

Reviewed by Jer Noble.

No new tests, this change only applies to media documents in a top level document so it
isn't possible to have a layout test.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement): Don't apply restrictions to a media document.

1:17 PM Changeset in webkit [200586] by sbarati@apple.com
  • 35 edits
    3 adds in trunk/Source/JavaScriptCore

Getter and setter on super are called with wrong "this" object
https://bugs.webkit.org/show_bug.cgi?id=147064
<rdar://problem/21885916>

Reviewed by Filip Pizlo.

This patch implements calls to 'super' getters and setters.
The problem before is we were passing the 'super' (i.e, the prototype
object) as the this value to these getters/setters, which is wrong.
We should be passing the caller's this value.

To implement this behavior, I've introduced four new opcodes and their corresponding DFG nodes:

  • op_get_by_id_with_this | GetByIdWithThis
  • op_put_by_id_with_this | PutByIdWithThis
  • op_get_by_val_with_this | GetByValWithThis
  • op_put_by_val_with_this | PutByValWithThis

These are implemented with no optimizations. The future plan is
to unite them with the *by_id and *by_val opcodes and nodes:
https://bugs.webkit.org/show_bug.cgi?id=157215

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

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

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitGetById):
(JSC::BytecodeGenerator::emitPutById):
(JSC::BytecodeGenerator::emitDirectPutById):
(JSC::BytecodeGenerator::emitGetByVal):
(JSC::BytecodeGenerator::emitPutByVal):
(JSC::BytecodeGenerator::emitDirectPutByVal):
(JSC::BytecodeGenerator::emitLoadDerivedConstructorFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::ensureThis):
(JSC::BytecodeGenerator::isThisUsedInInnerArrowFunction):

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

(JSC::ThisNode::emitBytecode):
(JSC::emitHomeObjectForCallee):
(JSC::emitSuperBaseForCallee):
(JSC::emitGetSuperFunctionForConstruct):
(JSC::SuperNode::emitBytecode):
(JSC::NewTargetNode::emitBytecode):
(JSC::TaggedTemplateNode::emitBytecode):
(JSC::BracketAccessorNode::emitBytecode):
(JSC::DotAccessorNode::emitBytecode):
(JSC::FunctionCallValueNode::emitBytecode):
(JSC::FunctionCallBracketNode::emitBytecode):
(JSC::FunctionCallDotNode::emitBytecode):
(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
(JSC::PostfixNode::emitBracket):
(JSC::PostfixNode::emitDot):
(JSC::PrefixNode::emitBracket):
(JSC::PrefixNode::emitDot):
(JSC::AssignDotNode::emitBytecode):
(JSC::ReadModifyDotNode::emitBytecode):
(JSC::AssignBracketNode::emitBytecode):
(JSC::ReadModifyBracketNode::emitBytecode):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::AssignmentElementNode::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/DFGNode.h:

(JSC::DFG::Node::hasIdentifier):

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

(JSC::DFG::newTypedArrayWithSize):
(JSC::DFG::putWithThis):

  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • 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):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByValWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByValWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutById):

  • jit/CCallHelpers.cpp:

(JSC::CCallHelpers::setupShadowChickenPacket):
(JSC::CCallHelpers::setupFourStubArgsGPR):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):
(JSC::CCallHelpers::setupThreeStubArgsGPR):
(JSC::CCallHelpers::setupTwoStubArgsFPR):
(JSC::CCallHelpers::setupStubArguments134):

  • jit/GPRInfo.h:

(JSC::argumentRegisterFor): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

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

(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_put_by_val_with_this):
(JSC::JIT::emitGenericContiguousPutByVal):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_get_by_val_with_this):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emit_op_put_by_id_with_this):
(JSC::JIT::emitSlow_op_put_by_id):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_put_to_arguments):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_get_by_val_with_this):
(JSC::JIT::emit_op_put_by_id_with_this):
(JSC::JIT::emit_op_put_by_val_with_this):

  • llint/LowLevelInterpreter.asm:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • tests/stress/super-property-access-exceptions.js: Added.

(assert):
(test):
(test.fooProp):
(test.A.prototype.get foo):
(test.A.prototype.get x):
(test.A):
(test.B):
(test.B.prototype.bar):
(test.B.prototype.baz):
(test.foo):
(test.func):
(test.A.prototype.set foo):

  • tests/stress/super-property-access-tdz.js: Added.

(assert):
(test):
(shouldThrowTDZ):
(test.A.prototype.get foo):
(test.A.prototype.set foo):
(test.A):
(test.fooProp):
(test.B):
(test.C):
(test.D):
(test.E):
(test.F):

  • tests/stress/super-property-access.js: Added.

(assert):
(test):
(func):
(test.A):
(test.A.prototype.set value):
(test.A.prototype.get value):
(test.B.prototype.set value):
(test.B.prototype.get value):
(test.B):
(test.value):
(test.A.prototype.get func):
(test.B.prototype.inc):
(test.B.prototype.dec):
(test.B.prototype.preInc):
(test.B.prototype.preDec):
(test.B.prototype.plusEq):
(test.B.prototype.minusEq):
(test.B.prototype.timesEq):
(test.B.prototype.divEq):
(test.B.prototype.funcDot):
(test.B.prototype.funcBracket):
(test.foo):
(test.B.prototype.baz):
(test.B.prototype.jaz):
(test.B.prototype.bar):
(test.B.prototype.index):
(test.):
(test.prototype.bar):
(test.A.prototype.set foo):
(test.A.prototype.get array):
(test.A.prototype.get foo):
(test.obj):
(test.A.prototype.get call):
(test.A.prototype.get apply):
(test.B.prototype.foo):
(test.A.prototype.get i):

1:10 PM Changeset in webkit [200585] by Ryan Haddad
  • 4 edits in trunk/LayoutTests

Rebaseline failing LayoutTests after r200580

Unreviewed test gardening.

  • fast/xmlhttprequest/xmlhttprequest-get-expected.txt:
  • http/tests/workers/worker-importScriptsOnError-expected.txt:
  • inspector/model/remote-object-get-properties-expected.txt:
1:07 PM Changeset in webkit [200584] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Update Picture-in-picture artwork
https://bugs.webkit.org/show_bug.cgi?id=157484
<rdar://problem/26177784>

Reviewed by Eric Carlson.

We have new artwork for the picture-in-picture presentation mode. I
also converted it to use SVG (and moved the button style to a
more consistent part of the file).

  • Modules/mediacontrols/mediaControlsApple.css:

(video::-webkit-media-controls-panel .picture-in-picture-button):
(video::-webkit-media-controls-panel .picture-in-picture-button.return-from-picture-in-picture):
(video::-webkit-media-controls-panel .picture-in-picture-button:active):
(video::-webkit-media-controls-panel .picture-in-picture-button.return-from-picture-in-picture:active):

12:46 PM Changeset in webkit [200583] by Chris Dumez
  • 36 edits in trunk

Optimize [StrictTypeChecking] on IDL operations
https://bugs.webkit.org/show_bug.cgi?id=157467

Reviewed by Darin Adler.

Source/WebCore:

Optimize [StrictTypeChecking] on IDL operations so that:

  • Only generate extra code for nullable parameters because for non-nullable parameters, JSXXX::toWrapped() will return null in case of a bad input type. We will then throw a TypeError when null-checking it already.
  • After the JSValue::isNullOrUndefined() check, avoid calling JSXXX::toWrapped() and set nativeValue to nullptr directly.
  • Drop the check for JSValue::inherits(JSXXX::info()) and just do a null check on the value returned by JSXXX::toWrapped(). toWrapped() already does a JSValue::inherits(JSXXX::info() check. Since we only call toWrapped() if the JSValue is not null/undefined, a null return value always indicates a bad input type.

Also update the TypeError message to be more useful when passing null
for non-nullable parameters or assigning null to a non-nullable
attribute. The message is now consistent with the one used for strict
type checking.

No new tests, rebaselined existing tests.

  • bindings/js/JSDOMBinding.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateParametersCheck):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::setJSTestInterfaceImplementsNode):
(WebCore::setJSTestInterfaceSupplementalNode):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::setJSTestObjTestObjAttr):
(WebCore::setJSTestObjLenientTestObjAttr):
(WebCore::setJSTestObjXMLObjAttr):
(WebCore::setJSTestObjTypedArrayAttr):
(WebCore::setJSTestObjWithScriptExecutionContextAttribute):
(WebCore::setJSTestObjWithScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithXPathNSResolverParameter):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
(WebCore::jsTestObjPrototypeFunctionConvert1):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Promise):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):
(WebCore::constructJSTestOverloadedConstructors3):

  • bindings/scripts/test/TestObj.idl:

LayoutTests:

Rebaseline existing tests now that we provide a more useful exception
message when passing null for a non-nullable parameter and assigning
null to a non-nullable attribute.

  • editing/selection/extend-expected.txt:
  • fast/dom/Document/adoptNode-null-expected.txt:
  • fast/dom/Document/adoptNode-null.html:
  • fast/dom/Document/importNode-null-expected.txt:
  • fast/dom/Document/importNode-null.html:
  • fast/dom/Element/attr-param-typechecking-expected.txt:
  • fast/dom/MutationObserver/observe-exceptions-expected.txt:
  • fast/dom/NamedNodeMap-setNamedItem-crash-expected.txt:
  • fast/dom/Range/range-intersectsNode-expected.txt:
  • fast/dom/createNodeIterator-parameters-expected.txt:
  • fast/dom/createNodeIterator-parameters.html:
  • fast/dom/createTreeWalker-parameters-expected.txt:
  • fast/dom/createTreeWalker-parameters.html:
  • fast/dom/xmlserializer-serialize-to-string-exception-expected.txt:
  • fast/dynamic/insertAdjacentElement-expected.txt:
  • fast/mediastream/MediaStream-add-remove-null-undefined-tracks-expected.txt:
  • fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt:
  • fast/text/font-face-set-javascript-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • media/encrypted-media/encrypted-media-v2-syntax-expected.txt:
  • media/encrypted-media/encrypted-media-v2-syntax.html:
  • webaudio/createMediaStreamSource-null-expected.txt:
  • webaudio/createMediaStreamSource-null.html:
  • webaudio/decode-audio-data-basic-expected.txt:
  • webaudio/decode-audio-data-basic.html:
  • webaudio/mediaelementaudiosourcenode-expected.txt:
  • webaudio/mediaelementaudiosourcenode.html:
11:05 AM Changeset in webkit [200582] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Download progress on attachment elements sometimes exceeds element bounds
https://bugs.webkit.org/show_bug.cgi?id=157440
<rdar://problem/25245440>

Reviewed by Darin Adler.

In the case of very large dynamic type sizes, we can overflow the
bounds of the attachment. It turns out that we used to limit to one
line in many cases anyway, so only wrap if we have only a title and/or icon.
This looks better when you have many of the other elements even in
non-large-type modes.

  • rendering/RenderThemeIOS.mm:

(WebCore::AttachmentInfo::buildTitleLines):
(WebCore::AttachmentInfo::AttachmentInfo):
Limit the title to a single line if we have anything
other than a title and icon.

(WebCore::attachmentBorderPath):
(WebCore::paintAttachmentBorder):
(WebCore::RenderThemeIOS::paintAttachment):
Clip to the border, so that even if somehow we paint outside of
the bounds, we don't paint over other parts of the page.

10:48 AM Changeset in webkit [200581] by rniwa@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Focusing a shadow host places the slot content after the shadow DOM content
https://bugs.webkit.org/show_bug.cgi?id=154770
<rdar://problem/24873102>

Reviewed by Antti Koivisto.

Add a regression test now that the bug has been fixed.

  • fast/shadow-dom/shadow-layout-after-focus-expected.html: Added.
  • fast/shadow-dom/shadow-layout-after-focus.html: Added.
10:47 AM Changeset in webkit [200580] by rniwa@webkit.org
  • 8 edits in trunk

REGRESSION (198056): Unable to use edit buttons on WordPress
https://bugs.webkit.org/show_bug.cgi?id=157475

Reviewed by Antti Koivisto.

Source/WebCore:

Renamed Event.prototype.deepPath() to composedPath() per discussions on
https://github.com/whatwg/dom/issues/242 as the old name was not Web compatible.

Test: fast/shadow-dom/Extensions-to-Event-Interface.html

  • dom/Event.cpp:

(WebCore::Event::composedPath): Renamed from deepPath.

  • dom/Event.h:
  • dom/Event.idl:

LayoutTests:

Updated the tests.

  • fast/shadow-dom/Extensions-to-Event-Interface-expected.txt:
  • fast/shadow-dom/Extensions-to-Event-Interface.html:
  • fast/shadow-dom/resources/event-path-test-helpers.js:

(dispatchEventWithLog):

10:32 AM Changeset in webkit [200579] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Removing timeout and adding failure expectation for storage/indexeddb/intversion-open-in-upgradeneeded.html
https://bugs.webkit.org/show_bug.cgi?id=155050

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:54 AM Changeset in webkit [200578] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Don't use DiskCache for media resource loads
https://bugs.webkit.org/show_bug.cgi?id=157405

Patch by Alex Christensen <achristensen@webkit.org> on 2016-05-09
Reviewed by Darin Adler.

Source/WebCore:

http/tests/security/video-cross-origin-caching.html was loading from the disk cache.
This patch adds an assertion that fires in that test without this fix.

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::requestResource):

  • platform/graphics/PlatformMediaResourceLoader.h:
  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::hiddenFromInspector):
(WebCore::ResourceRequestBase::setHiddenFromInspector):
(WebCore::ResourceRequestBase::requester):
(WebCore::ResourceRequestBase::setRequester):

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionDataTask _restart]):
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:]):

Source/WebKit2:

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::makeRetrieveDecision):
(WebKit::NetworkCache::makeStoreDecision):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStatistics.cpp:

(WebKit::NetworkCache::retrieveDecisionToDiagnosticKey):

9:28 AM Changeset in webkit [200577] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/win

[wincairo] web inspector failed to launch in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=156184
<rdar://problem/25539297>

Patch by Fujii Hironori <Fujii Hironori> on 2016-05-09
Reviewed by Alex Christensen.

  • WebCoreSupport/WebInspectorClient.cpp:

(WebInspectorClient::openLocalFrontend): Enable
AllowFileAccessFromFileURLs and AllowUniversalAccessFromFileURLs
of WebPreferences for Web Inspector.

9:20 AM Changeset in webkit [200576] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Refactor FocusController::findFocusableElementRecursively
https://bugs.webkit.org/show_bug.cgi?id=157415

Reviewed by Darin Adler.

Refactor FocusController::findFocusableElementRecursively and related functions. Extracted two functions:
nextFocusableElementWithinScope and previousFocusableElementWithinScope out of it since they didn't really share
any code other than calling findFocusableElement at the beginning.

Also renamed internal variant of nextFocusableElement and previousFocusableElement to nextFocusableElementOrScopeOwner
and previousFocusableElementOrScopeOwner. It was confusing to have these internal functions in addition to public
member functions that are used in Objective-C DOM API.

No new tests are added since there should be no behavioral change.

  • page/FocusController.cpp:

(WebCore::FocusController::findFocusableElementDescendingDownIntoFrameDocument): Added a FIXME.
(WebCore::FocusController::advanceFocusInDocumentOrder): Use findFocusableElementAcrossFocusScope instead of manually
calling findFocusableElementRecursively and findFocusableElementDescendingDownIntoFrameDocument separately.
(WebCore::FocusController::findFocusableElementAcrossFocusScope): Now that findFocusableElementWithinScope calls
findFocusableElementDescendingDownIntoFrameDocument internally, there is no need to keep around "found" local variable.
Introduce a few early exists for a better clarity.
(WebCore::FocusController::findFocusableElementWithinScope): Renamed from findFocusableElementRecursively. Also call
findFocusableElementDescendingDownIntoFrameDocument here instead of findFocusableElementAcrossFocusScope.
(WebCore::FocusController::nextFocusableElementWithinScope): Extracted from findFocusableElementRecursively.
(WebCore::FocusController::previousFocusableElementWithinScope): Ditto.
(WebCore::FocusController::findFocusableElement):
(WebCore::FocusController::nextFocusableElement): Added a FIXME.
(WebCore::FocusController::previousFocusableElement): Ditto.
(WebCore::FocusController::findFocusableElementOrScopeOwner): Renamed from findFocusableElement for clarity.
(WebCore::FocusController::nextFocusableElementOrScopeOwner): Ditto from nextFocusableElement.
(WebCore::FocusController::previousFocusableElementOrScopeOwner): Ditto from nextFocusableElement.

  • page/FocusController.h:
9:09 AM Changeset in webkit [200575] by Manuel Rego Casasnovas
  • 2 edits in trunk/Source/WebInspectorUI

[css-grid] Update Grid Layout properties in CSSKeywordCompletions.js
https://bugs.webkit.org/show_bug.cgi?id=157166

Reviewed by Timothy Hatcher.

The CSS Grid Layout properties have been changing on the spec,
however they haven't been updated in CSSKeywordCompletions for a long time.
Update them using the last spec draft:
https://drafts.csswg.org/css-grid/#property-index

  • UserInterface/Models/CSSKeywordCompletions.js:
8:16 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
7:59 AM Changeset in webkit [200574] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Cleanup issue tree elements in the Debugger sidebar
https://bugs.webkit.org/show_bug.cgi?id=157469
<rdar://problem/26162999>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._addIssue):
Don't add duplicate issue tree elements.
(WebInspector.DebuggerSidebarPanel.prototype._handleIssuesCleared):
Remove issues from the correct tree outline.

  • UserInterface/Views/IssueTreeElement.css:

(.issue .icon):
(.issue.warning .icon):
(.issue.error .icon):
Match dashboard icons.

7:52 AM Changeset in webkit [200573] by Matt Baker
  • 12 edits
    1 copy in trunk/Source/WebInspectorUI

Web Inspector: Show in progress message in Timeline views that do not show data until the recording finishes
https://bugs.webkit.org/show_bug.cgi?id=156761
<rdar://problem/25970771>

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:

New UI strings.

  • UserInterface/Main.html:

New view class.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView.prototype.get showsLiveRecordingData):

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView.prototype.get showsLiveRecordingData):

  • UserInterface/Views/ScriptDetailsTimelineView.js:

(WebInspector.ScriptDetailsTimelineView.prototype.get showsLiveRecordingData):

  • UserInterface/Views/ScriptProfileTimelineView.js:

(WebInspector.ScriptProfileTimelineView.prototype.get showsLiveRecordingData):
Don't show live recording data.

  • UserInterface/Views/ScriptClusterTimelineView.js:

(WebInspector.ScriptClusterTimelineView.prototype.get showsLiveRecordingData):
Forward property to current child TimelineView.

  • UserInterface/Views/TimelineRecordingContentView.css:

(.content-view.timeline-recording > .content-browser .recording-progress):
(.content-view.timeline-recording > .content-browser .recording-progress > .status):
(.content-view.timeline-recording > .content-browser .recording-progress > .status > .indeterminate-progress-spinner):
New progress view styles.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
(WebInspector.TimelineRecordingContentView.prototype._capturingStopped):
Refresh progress view visibility.

(WebInspector.TimelineRecordingContentView.prototype._updateProgressView):
Show the progress view if we're currently capturing, and showing a view
that doesn't support showing live data.

  • UserInterface/Views/TimelineRecordingProgressView.js:

(WebInspector.TimelineRecordingProgressView):
(WebInspector.TimelineRecordingProgressView.prototype.get visible):
(WebInspector.TimelineRecordingProgressView.prototype.set visible):
Show a status message, indeterminate progress spinner, and Stop Recording
button while timeline data is being recorded.

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView.prototype.get showsLiveRecordingData):
Implemented by TimelineViews that don't support showing data while recording.

  • UserInterface/Views/Variables.css:

(:root):
Add --panel-background-color-light for the progress view.

3:17 AM Changeset in webkit [200572] by Manuel Rego Casasnovas
  • 11 edits in trunk

[css-grid] Fix static position for positioned grid items
https://bugs.webkit.org/show_bug.cgi?id=157417

Reviewed by Darin Adler.

Source/WebCore:

The spec was updated to define properly the static position
for positioned grid items, but we didn't update the implementation yet:
https://drafts.csswg.org/css-grid-1/issues-wd-20150108#issue-1

We were only setting the static position when the start line
was not auto. Otherwise we were using the default one
which includes the padding.
With the spec change we need to set it always,
even if the start line is auto.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutPositionedObject):
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):

LayoutTests:

Updated several tests to follow the new expected behavior.

  • fast/css-grid-layout/absolute-positioning-grid-container-containing-block.html:
  • fast/css-grid-layout/absolute-positioning-grid-container-parent.html:
  • fast/css-grid-layout/grid-positioned-items-gaps-rtl.html:
  • fast/css-grid-layout/grid-positioned-items-gaps.html:
  • fast/css-grid-layout/grid-positioned-items-implicit-grid-line.html:
  • fast/css-grid-layout/grid-positioned-items-implicit-grid.html:
  • fast/css-grid-layout/grid-positioned-items-unknown-named-grid-line.html:
  • fast/css-grid-layout/grid-sizing-positioned-items.html:
1:55 AM Changeset in webkit [200571] by Gyuyoung Kim
  • 3 edits in trunk/LayoutTests

Fix wrong gardening in r200570

Unreviewed EFL gardening.

  • TestExpectations: Move selection gap tests to EFL's one.
  • platform/efl/TestExpectations:
1:51 AM Changeset in webkit [200570] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Skip tests of selection gap because EFL port disabled to paint the selection gap

Unreviewed EFL gardening.

May 8, 2016:

10:51 PM Changeset in webkit [200569] by fred.wang@free.fr
  • 3 edits in trunk/Source/WebCore

RenderMathMLOperator: refactor management of stretchy data and italic correction
https://bugs.webkit.org/show_bug.cgi?id=156913

Patch by Frederic Wang <fwang@igalia.com> on 2016-05-08
Reviewed by Darin Adler.

No new tests, behavior is not changed.

The stretchy data uses a shared space to describe horizontal / vertical directions and
unstretched / size variant / glyph assembly. We use a simple struct with some unions to
represent it instead of the current implementation with a class.
We also modify the signature of some functions to retrieve display operator and stretchy
data to use that new structure and prepare the move to a separate MathOperator class.
Finally, we introduce some helper functions to easily set the stretchy data.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Use the new data members and
function signatures.
(WebCore::RenderMathMLOperator::setSizeVariant): New helper function to set a size variant.
(WebCore::RenderMathMLOperator::setGlyphAssembly): New helper function to set a glyph
assembly.
(WebCore::RenderMathMLOperator::getGlyphAssemblyFallBack): We change the signature to use a
GlyphAssemblyData.
(WebCore::RenderMathMLOperator::findDisplayStyleLargeOperator): We rename the function and
change its signature to remove the return value. We now also set the italic correction when
a display operator is found.
(WebCore::RenderMathMLOperator::findStretchyData): We change the signature to introduce a
target size and remove the return value. This also does the early return when the base glyph
is large enough.
(WebCore::RenderMathMLOperator::updateStyle): We use the new data members and function
signatures. The check for the base glyph size is now done in findStretchyData, so we just
check whether m_stretchType is Unstretched to do an early return.
(WebCore::RenderMathMLOperator::firstLineBaseline): We use m_stretchType.
(WebCore::RenderMathMLOperator::computeLogicalHeight): Ditto.
(WebCore::RenderMathMLOperator::fillWithVerticalExtensionGlyph): Use the new class members.
(WebCore::RenderMathMLOperator::fillWithHorizontalExtensionGlyph): Ditto.
(WebCore::RenderMathMLOperator::paint): Ditto.
(WebCore::RenderMathMLOperator::paintVerticalGlyphAssembly): Ditto.
(WebCore::RenderMathMLOperator::paintHorizontalGlyphAssembly): Ditto.
(WebCore::RenderMathMLOperator::paintChildren): Ditto.
(WebCore::RenderMathMLOperator::trailingSpaceError): Ditto.
(WebCore::RenderMathMLOperator::italicCorrection): Moved to RenderMathMLOperator.h.
(WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator): Deleted.

  • rendering/mathml/RenderMathMLOperator.h:

(WebCore::RenderMathMLOperator::italicCorrection): We just return m_italicCorrection.
(WebCore::RenderMathMLOperator::GlyphAssemblyData::GlyphAssemblyData): New class to store an
assembly of GlyphData.
(WebCore::RenderMathMLOperator::StretchyData::mode): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::variant): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::top): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::extension): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::bottom): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::middle): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::left): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::right): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::setNormalMode): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::setSizeVariantMode): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::setGlyphAssemblyMode): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::StretchyData): Deleted.

10:51 PM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
9:55 PM Changeset in webkit [200568] by Chris Dumez
  • 9 edits
    2 deletes in trunk/Source

[COCOA] Disable HAVE_DTRACE at build time
https://bugs.webkit.org/show_bug.cgi?id=157433
<rdar://problem/26148841>

Reviewed by Mark Lam.

Source/JavaScriptCore:

Drop DTRACE-related code from JSC since it is very old and seems
unused.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • PlatformMac.cmake:
  • heap/Heap.cpp:

(JSC::Heap::collectImpl): Deleted.
(JSC::Heap::didFinishCollection): Deleted.

  • profiler/ProfileGenerator.cpp:

(JSC::ProfileGenerator::willExecute): Deleted.
(JSC::ProfileGenerator::didExecute): Deleted.

  • runtime/Tracing.d: Removed.
  • runtime/Tracing.h: Removed.

Source/WTF:

Disable HAVE_DTRACE on COCOA since it is mostly unused and has a performance
impact, at least on iOS.

  • wtf/Platform.h:
7:37 PM Changeset in webkit [200567] by Alan Bujtas
  • 3 edits
    2 adds in trunk

iOS selection: Use inflow containing block for positioned <br>.
https://bugs.webkit.org/show_bug.cgi?id=157115
<rdar://problem/25969295>

Reviewed by Ryosuke Niwa.

Similarly to RenderText, we should just use the inflow containing block for
selected <br> even when it is positioned out of flow. This visually matches Mac OS X
behaviour (selection painting does not get extended to the positioned <br>).

Source/WebCore:

Test: fast/text/fixed-positioned-br-crash.html

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::collectSelectionRects):

LayoutTests:

  • fast/text/fixed-positioned-br-crash-expected.txt: Added.
  • fast/text/fixed-positioned-br-crash.html: Added.
4:57 PM Changeset in webkit [200566] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Add Breakpoints and Scripts folders to Debugger sidebar
https://bugs.webkit.org/show_bug.cgi?id=151119
<rdar://problem/23488916>

Reviewed by Timothy Hatcher.

Add a collapsible Sources section to the Debugger beneath the existing
Breakpoints section.

  • UserInterface/Views/DebuggerSidebarPanel.css:

Remove unused CSS class names.

(.sidebar > .panel.navigation.debugger .details-section.scripts:not(.collapsed)):
Hide scripts section bottom border when expanded. As the last
section, a border only adds visual clutter.

(.sidebar > .panel.navigation.debugger .details-section.scripts): Deleted.
(.sidebar > .panel.navigation.debugger.paused .details-section.scripts): Deleted.
(.sidebar > .panel.navigation.debugger .details-section.scripts .header): Deleted.
(.sidebar > .panel.navigation.debugger.paused .details-section.scripts .header): Deleted.
(.sidebar > .panel.navigation.debugger .details-section.scripts.collapsed > .content): Deleted.
(.sidebar > .panel.navigation.debugger.paused .details-section.scripts.collapsed > .content): Deleted.
No longer needed.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel):
Create separate "Breakpoints" and "Sources" sections, and make filter
placeholder text generic. Remove unused class from breakpoints tree.

(WebInspector.DebuggerSidebarPanel.prototype.treeElementForRepresentedObject):
Check both breakpoint and scripts tree outlines.

(WebInspector.DebuggerSidebarPanel.prototype._addBreakpoint):
(WebInspector.DebuggerSidebarPanel.prototype._addTreeElementForSourceCodeToTreeOutline):
Make helper function generic.

(WebInspector.DebuggerSidebarPanel.prototype._addResource):
(WebInspector.DebuggerSidebarPanel.prototype._mainResourceDidChange):
(WebInspector.DebuggerSidebarPanel.prototype._addScript):
Add resources to the scripts tree.

(WebInspector.DebuggerSidebarPanel.prototype._scriptsCleared):
Clear the scripts tree.

(WebInspector.DebuggerSidebarPanel.prototype._removeDebuggerTreeElement):
Remove script element when last breakpoint is removed.

(WebInspector.DebuggerSidebarPanel.prototype._addIssue):
(WebInspector.DebuggerSidebarPanel.prototype._addTreeElementForSourceCodeToContentTreeOutline): Deleted.
Renamed _addTreeElementForSourceCodeToTreeOutline.

4:55 PM Changeset in webkit [200565] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: SourceCodeTextEditor issue widgets/line styles should reset when log is cleared
https://bugs.webkit.org/show_bug.cgi?id=157460
<rdar://problem/26159633>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype._logCleared):
Clear issue widgets and CodeMirror line class names when log cleared.

4:03 PM Changeset in webkit [200564] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Build fix after r200563

Unreviewed.

  • editing/cocoa/HTMLConverter.mm:

(_font):

3:54 PM Changeset in webkit [200563] by mmaxfield@apple.com
  • 16 edits in trunk/Source

[OS X] Migrate our Font classes entirely off of NSFont
https://bugs.webkit.org/show_bug.cgi?id=157464

Reviewed by Darin Adler.

Source/WebCore:

Because NSFont and CTFont are toll-free-bridged, we don't need NSFont at all anywhere.

No new tests because there is no behavior change.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(accessibilitySearchCriteriaForSearchPredicateParameterizedAttribute):
(textMarkerRangeFromRange):
(visiblePositionForStartOfTextMarkerRange):
(visiblePositionForEndOfTextMarkerRange):
(AXAttributedStringRangeIsValid):
(AXAttributeStringSetFont):
(CreateCGColorIfDifferent):
(AXAttributeStringSetStyle):
(textMarkerRangeFromVisiblePositions):

  • bindings/objc/DOM.mm:

(-[DOMElement _font]):

  • bindings/objc/DOMPrivate.h:
  • editing/cocoa/HTMLConverter.mm:

(_font):
(WebCore::editingAttributedStringFromRange):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::fontAttributesForSelectionStart):

  • platform/graphics/Font.h:

(WebCore::Font::getCTFont):
(WebCore::Font::getNSFont): Deleted.

  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::nsFont): Deleted.

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::determinePitch):
(WebCore::advanceForColorBitmapFont):
(WebCore::Font::platformWidthForGlyph):
(WebCore::renderingStyle): Deleted.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

Source/WebKit/mac:

  • WebCoreSupport/PopupMenuMac.mm:

(PopupMenuMac::populate):
(PopupMenuMac::show):

  • WebView/WebHTMLView.mm:

(fontNameForDescription):
(-[WebHTMLView _addToStyle:fontA:fontB:]):

Source/WebKit2:

  • WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm:

(WebKit::WebPopupMenu::setUpPlatformData):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::fontAtSelection):

2:56 PM Changeset in webkit [200562] by Chris Dumez
  • 8 edits in trunk/Source

[Bindings] Simplify [RequiresExistingAtomicString] IDL extended attribute handling
https://bugs.webkit.org/show_bug.cgi?id=157465

Reviewed by Darin Adler.

Source/WebCore:

Simplify [RequiresExistingAtomicString] IDL extended attribute handling
in the bindings generator.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
Drop code specific to [RequiresExistingAtomicString].

(JSValueToNative):
Deal with [RequiresExistingAtomicString] IDL extended attribute,
similarly to [AtomicString] and [TreatNullAs].

  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/TestObj.idl:

Add bindings test coverage.

  • dom/DocumentFragment.cpp:

(WebCore::DocumentFragment::getElementById):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::getElementById):
Add null check for the id parameter. The generated bindings used to do
this null check for us but it is no longer the case (to make the bindings
generator a bit simpler). This extended attribute is not commonly used
and is meant as a micro-optimization for getElementById().

Source/WTF:

Add an AtomicString(RefPtr<AtomicStringImpl>&&) constructor that is now
used by the bindings when [RequiresExistingAtomicString] is used. This
is more efficient than using AtomicString(AtomicStringImpl*) as the
caller has a RefPtr<AtomicStringImpl> and is consistent with the
pre-existing String(RefPtr<AtomicStringImpl>&&) constructor.

  • wtf/text/AtomicString.h:

(WTF::AtomicString::AtomicString):

12:11 PM Changeset in webkit [200561] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

Roll out: ThreadSanitizer: Data race and thread leak in WebCore::ScrollingThread::createThreadIfNeeded
<https://webkit.org/b/157462>

This reverts commit r200554.

This doesn't fix the data race, and the thread leak is a
separate issue.

  • page/scrolling/ScrollingThread.cpp:

(WebCore::ScrollingThread::createThreadIfNeeded): Roll out the
change.

12:05 PM Changeset in webkit [200560] by Darin Adler
  • 2 edits in trunk/Source/WTF
  • wtf/text/WTFString.h: Remove pragma once. Not working for some reason.
12:00 PM Changeset in webkit [200559] by Darin Adler
  • 4 edits in trunk/Source

WTF:

Follow-up to that last patch (missed review comments).

  • wtf/text/WTFString.h: Use nullptr instead of 0 as needed. Also use pragma once.

WebCore:

Follow-up to that last patch (missed review comments).

  • page/EventSource.cpp:

(WebCore::EventSource::parseEventStream): Pre-increment, not post-increment.
(WebCore::EventSource::dispatchMessageEvent): More elegant form without explicit StringView.

11:46 AM Changeset in webkit [200558] by Darin Adler
  • 8 edits in trunk/Source

Change EventSource constructor to take an IDL dictionary instead of a WebCore::Dictionary
https://bugs.webkit.org/show_bug.cgi?id=157459

Reviewed by Chris Dumez.

Source/WebCore:

Patch also includes some updating of EventSource class to modern idioms.

  • page/EventSource.cpp:

(WebCore::EventSource::EventSource): Initialize based on Init.
(WebCore::EventSource::create): Take/pass Init instead of Dictionary.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize): Take a StringView instead of a string
so callers don't have to allocate a String just to use this.
(WebCore::SerializedScriptValue::create): Ditto.

  • bindings/js/SerializedScriptValue.h: Ditto.
  • page/EventSource.cpp: Changed defaultReconnectDelay to be a uint64_t

instead of an unsigned long long.
(WebCore::EventSource::EventSource): Changed constructor to take a struct
instead of a Dictionary for eventSourceInit. Also moved initialization of
data members to the header and used ASCIILiteral.
(WebCore::EventSource::create): Changed type to Init and streamlined code
a little bit using auto.
(WebCore::EventSource::connect): Used a reference instead of a pointer.
Also added a FIXME since I noticed that m_requestInFlight is probably not
needed, since it's basically the same thing as "is m_loader null".
(WebCore::EventSource::url): Moved to the header and made it inline.
(WebCore::EventSource::networkRequestEnded): Removed unneeded check that
is already done by all callers and turned it into an assertion.
(WebCore::EventSource::withCredentials): Ditto.
(WebCore::EventSource::readyState): Ditto.
(WebCore::EventSource::responseIsValid): Added. Helper function to make
the logic in didReceiveResponse easier to read. Fixed logic to compare
MIME type ignoring ASCII case, since that's how MIME types work.
(WebCore::EventSource::didReceiveResponse): Use the helper above, and also
move the m_eventStreamOrigin set up code into the valid response case,
since there is no point doing it if the response is not valid. Also use
the early return idiom.
(WebCore::EventSource::didReceiveData): Removed the unneeded explicit
conversion to StringView here. Also removed a FIXME that I fixed.
(WebCore::EventSource::didFinishLoading): Added code to flush the decoder
as mentioned in didReceiveData. Added FIXME about peculiar clearing code
that exists only here. Removed check for empty receive buffer and data
that is not needed since parseEventStream does sufficient checking.
(WebCore::EventSource::didFail): Added FIXME because of things that
didFinishLoading does that seem equally valuable here.
(WebCore::EventSource::parseEventStream): Tweaked types and names of local
variables, and changed to use Optional instead of magic number -1. Also
added a FIXME about how the buffer type is probably not right since we
keep moving the characters in the buffer as we consume the start of it.
(WebCore::EventSource::parseEventStreamLine): Refactor and reorganize so
this doesn't do so much string allocation and is easier to read
(WebCore::EventSource::canSuspendForDocumentSuspension): Tweaked comment.
(WebCore::EventSource::dispatchMessageEvent): Renamed this from
createMessageEvent, and moved more code in here. We now don't have to
allocate a temporary string just to pass it to SerializedScriptValue.

  • page/EventSource.h: Updated for changes above. Use pragma once.

Define and use EventSource::Init struct. Other small cleanup.

  • page/EventSource.idl: Define EventSourceInit dictionary and use it.

Other small cleanup.

  • page/EventSource.idl: U

Source/WTF:

  • wtf/text/WTFString.h: Export a symbol now used in WebCore.
11:35 AM Changeset in webkit [200557] by Darin Adler
  • 4 edits in trunk/Source/WebCore

Change HTMLSlotElement::assignedNodes to take a IDL dictionary instead of a WebCore::Dictionary
https://bugs.webkit.org/show_bug.cgi?id=157457

Reviewed by Chris Dumez.

  • html/HTMLSlotElement.cpp:

(WebCore::HTMLSlotElement::removedFrom): Fixed typo in comment.
(WebCore::HTMLSlotElement::assignedNodes): Renamed assignedNodesForBindings back to this
and changed the argument type to Optional<AssignedNodesOptions> instead of Dictionary.
Also streamlined the logic a bit.
(WebCore::HTMLSlotElement::enqueueSlotChangeEvent): Changed to use a pointer to the
enqueued event instead of a boolean. With only a boolean, we could end up clearing the
flag in cases where we don't really want to.
(WebCore::HTMLSlotElement::dispatchEvent): Ditto.
(WebCore::HTMLSlotElement::assignedNodesForBindings): Deleted.

  • html/HTMLSlotElement.h: Use pragma once. Added AssignedNodeOptions. Changed for the

above, including changing the data member.

  • html/HTMLSlotElement.idl: Removed use of ImplementedAs. Fixed the type of the options

dictionary.

11:29 AM Changeset in webkit [200556] by Chris Dumez
  • 22 edits in trunk/Source/WebCore

[Bindings] Add convert<>() template specializations for integer types
https://bugs.webkit.org/show_bug.cgi?id=157458

Reviewed by Darin Adler.

Add convert<>() template specializations for integer types and use them
in the JS bindings. Also, treat non-32bit types the same way as the
32bit ones, allowing the compiler to optimize out branching based on
the IntegerConversionConfiguration.

  • bindings/js/JSCryptoAlgorithmDictionary.cpp:
  • bindings/js/JSDOMBinding.cpp:

(WebCore::enforceRange):
(WebCore::toSmallerInt):
(WebCore::toSmallerUInt):
(WebCore::toInt8EnforceRange):
(WebCore::toUInt8EnforceRange):
(WebCore::toInt8Clamp):
(WebCore::toUInt8Clamp):
(WebCore::toInt8):
(WebCore::toUInt8):
(WebCore::toInt16EnforceRange):
(WebCore::toUInt16EnforceRange):
(WebCore::toInt16Clamp):
(WebCore::toUInt16Clamp):
(WebCore::toInt16):
(WebCore::toUInt16):
(WebCore::toInt32EnforceRange):
(WebCore::toInt32Clamp):
(WebCore::toUInt32Clamp):
(WebCore::toUInt32EnforceRange):
(WebCore::toInt64EnforceRange):
(WebCore::toUInt64EnforceRange):
(WebCore::toInt64Clamp):
(WebCore::toUInt64Clamp):
(WebCore::toInt64):
(WebCore::toUInt64):

  • bindings/js/JSDOMBinding.h:
  • Splt some integer conversion functions into 3 Normal / Clamp / Enforce versions, similarly to what was done for 32bit types already. This is so that these can be called from the inline functions in JSDOMConvert.h, allowing the compiler to optimize out the branches.
  • Get rid of some unnecessary state.hadException() checks.
  • bindings/js/JSDOMConvert.h:

Add convert<> specializations for integer types.

  • bindings/js/JSNodeFilterCustom.cpp:

(WebCore::JSNodeFilter::acceptNode):

  • bindings/scripts/CodeGenerator.pm:
  • Add utility function to distinguish integer types.
  • Have IsNumericType() using the integerType / floatingPointType hashes to avoid duplication.
  • Stop int / unsigned int from integer types as those are not in Web IDL and they are not used.
  • bindings/scripts/CodeGeneratorJS.pm:

(GetIntegerConversionType):
(JSValueToNative):
Use convert<>() for converting JSValue to integer types.

  • bindings/scripts/IDLParser.pm:

Stop allowing int / unsigned int types as those are not in Web IDL.

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

Rebaseline bindings tests.

9:54 AM Changeset in webkit [200555] by Darin Adler
  • 9 edits in trunk

Correct dictionary bindings handling of optional, null, and undefined
https://bugs.webkit.org/show_bug.cgi?id=157463

Reviewed by Chris Dumez.

Source/WebCore:

  • bindings/js/JSDOMBinding.cpp:

(WebCore::propertyValue): Deleted.

  • bindings/js/JSDOMBinding.h: Deleted propertyValue, not all that helpful for now.
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDictionaryImplementationContent): Added a new early exit for convert to
a dictionary type when the value is undefined or null and all members are either
optional or have a default value. This returns the default values for everything
without raising an exception. Added checking that requires that the dictionary
argument is an object and not a regular expression, since that's also called for
in the latest draft of the Web IDL specification. This ends up speeding up the
code a bit since we now use JSObject::get for properties instead of JSValue::get.
(GenerateParametersCheck): Renamed some local variables. Taught the code that
optional dictionaries all have a default value; before it was doing that for the
type "Dictionary" but not the real dictionary types (IsDictionaryType).

  • bindings/scripts/test/JS/JSTestObj.cpp: Regenerated.
  • css/FontFace.cpp:

(WebCore::FontFace::create): Changed argument to be Descriptors instead of
Optional<Descriptors>. It would have compiled the other way, but there is now
no caller that will pass a null. Because the IDL dictionary support was new,
this was the only place that was doing it wrong. Good that we "nipped it in the bud"
before doing this in more places.

  • css/FontFace.h: Ditto.

LayoutTests:

  • fast/dom/MutationObserver/observe-exceptions-expected.txt: Reverted that

change to expect a more specific TypeError just as it was a day ago before
my last patch. The TypeError is back to being a problem with the specifics
of the arguments passed rather than a problem with null and undefined
themselves being invalid.

8:22 AM Changeset in webkit [200554] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

ThreadSanitizer: Data race and thread leak in WebCore::ScrollingThread::createThreadIfNeeded
<https://webkit.org/b/157462>

Reviewed by Darin Adler.

Reproduced with multiple existing tests.

  • page/scrolling/ScrollingThread.cpp:

(WebCore::ScrollingThread::createThreadIfNeeded): Use a
std::once_flag to initialize Scrolling Thread since this may be
called from background threads.

12:11 AM Changeset in webkit [200553] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Try to fix build without rolling out that last change.

  • bindings/js/JSDOMConvert.h:

(WebCore::convert<Vector<String>>): Make this an inline. Just call toNativeArray.

May 7, 2016:

11:39 PM Changeset in webkit [200552] by Darin Adler
  • 12 edits in trunk

Change MutationObserver::observe to take an IDL dictionary, rather than WebCore::Dictionary
https://bugs.webkit.org/show_bug.cgi?id=157456

Reviewed by Chris Dumez.

Source/WebCore:

  • bindings/js/JSDOMConvert.h:

(WebCore::convertOptional): Use a specific Optional null rather than Nullopt so we
can compile the ternary operator.
(WebCore::convert<bool>): Added.
(WebCore::convert<Vector<String>>): Added. Later we probably need to change convert to use
a member function of a class template rather than a function template so we can make partial
specialization work and do this just once for all Vector<T>.

  • bindings/js/JSMutationObserverCustom.cpp:

(WebCore::JSMutationObserverOwner::isReachableFromOpaqueRoots): Streamlined code and removed
some local variables. Changed to call the new observedNodes rather than getObservedNodes.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDictionaryImplementationContent): Fixed bug where we tried to call the version of
the convert function with a default value even when there was none.

  • bindings/scripts/test/TestObj.idl: Added a test case basically identical to what's needed

in MutationObserver.idl.

  • bindings/scripts/test/JS/JSTestObj.cpp: Regenerated.
  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::observe): Chagned function to take a MutationObserver::Init
instead of a Dictionary.
(WebCore::MutationObserver::observationStarted): Changed argument type to a reference.
(WebCore::MutationObserver::observationEnded): Ditto.
(WebCore::MutationObserverMicrotask): Removed unneeded explicit constructor and destructor.
(WebCore::queueMutationObserverCompoundMicrotask): Got rid of unnneeded local variable.
(WebCore::MutationObserver::observedNodes): Renamed to remove the "get" prefix.

  • dom/MutationObserver.h: Reduced includes. Added MutationObserver::Init struct and

used it for the type of the argument to the observe function. Changed a few argument
types and removed unused forward declarations.

  • dom/MutationObserver.idl: Added MutationObserverInit and used it instead of Dictionary.
  • dom/MutationObserverRegistration.cpp:

(WebCore::MutationObserverRegistration::MutationObserverRegistration): Pass a reference.
(WebCore::MutationObserverRegistration::~MutationObserverRegistration): Ditto.

LayoutTests:

  • fast/dom/MutationObserver/observe-exceptions-expected.txt: Updated to expect

the specific TypeError generated by the bindings code rather than the generic
TypeError we got before generated inside the C++ DOM.

9:57 PM Changeset in webkit [200551] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Add horizontal between categories of tests
https://bugs.webkit.org/show_bug.cgi?id=157386

Reviewed by Darin Adler.

Wrap tests in each category by tbody and add a horizontal bar between each category.

  • public/v3/pages/summary-page.js:

(SummaryPage.prototype._constructTable):
(SummaryPage.cssTemplate):

9:39 PM Changeset in webkit [200550] by Chris Dumez
  • 29 edits
    1 add in trunk/Source/WebCore

Reduce special handling of XPathNSResolver type in the bindings
https://bugs.webkit.org/show_bug.cgi?id=157454

Reviewed by Darin Adler.

Reduce special handling of XPathNSResolver type in the bindings.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:

Add new JSXPathNSResolverCustom.cpp file.

  • bindings/js/JSDOMStringListCustom.cpp:

(WebCore::JSDOMStringList::toWrapped):
Take the ExecState by reference instead of pointer.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::toWrapped):
Update to take an ExecState& parameter. The bindings now pass
an ExecState to all custom toWrapped() methods for consistency
and flexibility.

  • bindings/js/JSDictionary.cpp:

(WebCore::JSDictionary::convertValue):
Pass an ExecState now that those toWrapped() methods expect
it.

  • bindings/js/JSEventTargetCustom.cpp:

(WebCore::JSEventTarget::toWrapped):
Update to take an ExecState& parameter.

  • bindings/js/JSIDBDatabaseCustom.cpp:

(WebCore::JSIDBDatabase::transaction):
Pass ExecState by reference instead of pointer.

  • bindings/js/JSMessageEventCustom.cpp:

(WebCore::handleInitMessageEvent):
Pass ExecState to JSDOMWindow::toWrapped().

  • bindings/js/JSXPathNSResolverCustom.cpp: Added.

(WebCore::JSXPathNSResolver::toWrapped):
Provide a custom implementation of JSXPathNSResolver::toWrapped()
instead of having the custom code in the bindings generator.

  • bindings/scripts/CodeGeneratorJS.pm:

(AddIncludesForType):
Drop special includes for XPathNSResolver as they are no longer needed.

(GenerateHeader):
Drop special casing of certain types for generating the toWrapped()
declaration by:

  1. Relying on GetNativeType() for the return value as certain types return a RefPtr instead of a raw pointer.
  2. Adding an extra ExecState parameter when a custom implementation of toWrapped() is provided, given that some of them need it.

(GenerateParametersCheck):
Drop custom code for XPathNSResolver and use the normal code path for
this type now. The custom code now resides in the custom implementation
of JSXPathNSResolver::toWrapped(), in custom bindings.

(JSValueToNative):

  • Drop NodeFilter from the nativeType hash map as it was updated to be a callback interface a while back.
  • Add XPathNSResolver to nativeType hash map so that we now to use a RefPtr<> instead of a raw pointer in the bindings. We should probably add an IDL extended attribute for this at some point.
  • Drop special casing for DOMStringList which was outdated since there is no toDOMStringList() function. DOMStringList has a custom toWrapped() function instead nowadays so we now call this one instead. We apparently do not have any DOMStringList parameters outside our bindings tests at the moment, which is why no one noticed.
  • Pass an ExecState to toWrapped() if the interface has the JSCustomToNativeObject IDL extended attribute.
  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:
  • bindings/scripts/test/TestObj.idl:

Add bindings test coverage for having an operation with an
XPathNSResolver parameter.

  • dom/Document.idl:
  • xml/XPathEvaluator.idl:

Drop some unnecessary default parameter values.

  • xml/XPathNSResolver.idl:

Add JSCustomToNativeObject IDL extended attribute so that we can
provide our own custom implementation of JSXPathNSResolver::toWrapped(),
instead of having the custom code in the bindings generator.

  • dom/Document.cpp:

(WebCore::Document::createExpression):
(WebCore::Document::evaluate):

  • dom/Document.h:
  • inspector/InspectorNodeFinder.cpp:
  • xml/XPathEvaluator.cpp:

(WebCore::XPathEvaluator::createExpression):
(WebCore::XPathEvaluator::evaluate):

  • xml/XPathEvaluator.h:
  • xml/XPathExpression.cpp:

(WebCore::XPathExpression::createExpression):

  • xml/XPathExpression.h:
  • xml/XPathParser.cpp:

(WebCore::XPath::Parser::Parser):
(WebCore::XPath::Parser::parseStatement):

  • xml/XPathParser.h:

Take XPathNSResolver parameter as a Ref<XPathNSResolver>&& as this is
what the generated bindings now provide us, given that this sometimes
have to create a wrapper around a JSObject.

3:29 PM Changeset in webkit [200549] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Fix crash introduced by the last patch.

Fix suggested by Chris Dumez.

  • css/FontFace.cpp:

(WebCore::FontFace::FontFace): Roll out incorrect change. Things were getting
initialized in the wrong order in a change I had made to the FontFace constructor
that takes a CSSFontSelector.

2:36 PM Changeset in webkit [200548] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, rebaseline bindings tests after r200547.

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::convert<TestObj::FontFaceDescriptors>):

2:14 PM Changeset in webkit [200547] by Darin Adler
  • 18 edits
    1 move in trunk

Next step on dictionary bindings, along with other bindings refinements
https://bugs.webkit.org/show_bug.cgi?id=157451

Reviewed by Chris Dumez.

Source/WebCore:

Converted one dictionary, the one passed to the constructor in FontFace.

  • WebCore.xcodeproj/project.pbxproj: Updated for name change of JSDOMBuild.h to

JSDOMConvert.h and also let Xcode update a file type.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::propertyValue): Added.

  • bindings/js/JSDOMBinding.h: Use pragma once. Remove unnecessary forward declaration.

Move all declarations to the top of the file, separating them from definitions. This
is a small step toward better overview of what's in this file and paves the way for
future simplifications and improvements we can make after we observe patterns.
Also removed a couple unused functions.

  • bindings/js/JSDOMConvert.h: Renamed from JSDOMBuild.h.

Renamed function templates from build to convert. Added convertOptional.

  • bindings/js/ReadableStreamController.cpp:

(WebCore::callFunction): Use auto and remove some unneeded namespacing.
(WebCore::ReadableStreamController::invoke): Ditto. Also remove use of helper function
getPropertyFromObject, since this was the only call site and it was not very helpful.
(WebCore::ReadableStreamController::isControlledReadableStreamLocked): Ditto.
(WebCore::createReadableStream): Ditto.
(WebCore::getReadableStreamReader): Ditto.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateEnumerationImplementationContent): Updated for name change from build to
convert and JSDOMBuild.h to JSDOMConvert.h.
(GenerateDictionaryImplementationContent): Ditto. Also added code to handle optional
and added explicit exception checking, using local variables. Not clear longer term
if the local variable approach is OK since this will unnecessarily change types like
const String& to String.
(GenerateParametersCheck): Removed local variable $optional and use $parameter->isOptional
directly consistently. This is slightly clearer because the old code used a mix of the
two, and also is a better pattern for when we refactor this into smaller functions.
Note that this function name is not good any more--this is a lot more then parameter checks.
(GetNativeType): Return appropriate name for dictionary types.
(JSValueToNative): Updated for name change from build to convert and JSDOMBuild.h to
JSDOMConvert.h.

  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

Regenerated results.

  • bindings/scripts/test/TestObj.idl: Added another dictionary test case, just a copy

of the current state of the one in FontFace.idl.

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::setUnicodeRange): Update for simplified UnicodeRange struct.
(WebCore::CSSFontFace::setFeatureSettings): Fix to correctly handle being called
with "normal". Also fix so it doesn't call fontPropertyChanged if nothing changed.
Also got rid of return value, which had no real value: it was returning false for
some bad inputs, but others would just lead to assertions, and the real reason this
was OK is that this function is only passed known-valid values.

  • css/CSSFontFace.h: Used prama once. Tweaked formatting. Removed return value from

the setFeatureSettings function. Changed UnicodeRange to be struct with public data
members instead a struct with a constructor and getter functions.

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::addFontFaceRule): Updated since setFeatureSettings no
longer has a boolean return value.

  • css/CSSSegmentedFontFace.cpp:

(WebCore::appendFontWithInvalidUnicodeRangeIfLoading): Updated for simplified
UnicodeRange struct.

  • css/FontFace.cpp:

(WebCore::valueFromDictionary): Deleted.
(WebCore::FontFace::create): Updated to take the descriptors as a struct instead of
a WebCore::Dictionary. Also made that argument optional as specified in the current
specification draft.
(WebCore::FontFace::setFeatureSettings): Updated since setFeatureSettings no longer
has a boolean return value.
(WebCore::FontFace::unicodeRange): Updated for simplified UnicodeRange struct.

  • css/FontFace.h: Used pragma once. Removed unneeded includes and forward declarations.

Derived privately from CSSFontFace::Client. Added a FontFace::Descriptors struct and
used it as an argument to the create function as described above.

  • css/FontFace.idl: Added FontFaceDescriptors and changed the argument to the

constructor to be an optional FontFaceDescriptors instead of a Dictionary.

Tools:

  • Scripts/do-webcore-rename: Use this to rename JSDOMBuild.h to JSDOMConvert.h.

Also skip test expectations in a directory that this was modifying unnecessarily.

1:04 PM Changeset in webkit [200546] by youenn.fablet@crf.canon.fr
  • 15 edits in trunk/Source/WebCore

Rework FontFace promise attribute handling
https://bugs.webkit.org/show_bug.cgi?id=157310

Reviewed by Myles C. Maxfield.

Making promise attributes cached attributes, so that they are created only once.
They are created in the custom binding code and passed to DOM class as needed.

Removed usage of ExecState& from DOM iterators.

No change should be visible from user scripts.

  • Modules/fetch/FetchHeaders.cpp:

(WebCore::FetchHeaders::Iterator::next): Removing ExecState parameter.

  • Modules/fetch/FetchHeaders.h:
  • bindings/js/JSDOMIterator.h:

(WebCore::keyValueIteratorForEach):
(WebCore::JSDOMIterator<JSWrapper>::next): Ditto.

  • bindings/js/JSDOMPromise.cpp:

(WebCore::DeferredWrapper::promise): Removed deferred() and added access to promise directly.

  • bindings/js/JSDOMPromise.h:
  • bindings/js/JSFontFaceCustom.cpp:

(WebCore::JSFontFace::loaded): Using cached attribute to call FontFace::loaded only once.

  • bindings/js/JSFontFaceSetCustom.cpp:

(WebCore::JSFontFaceSet::ready): Using cached attribute to call FontFaceSet::ready only once.

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::wrapper): Removing ExecState parameter.

  • css/CSSFontFace.h:
  • css/FontFace.cpp:

(WebCore::FontFace::create): Ditto.
(WebCore::FontFace::FontFace): Ditto.
(WebCore::FontFace::fontStateChanged): Updating promise handling.
(WebCore::FontFace::registerLoaded): Resolving/rejecting promise if backing CSSFontFace loading is ended.
(WebCore::FontFace::load): Calling backing load.

  • css/FontFace.h:
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::Iterator::next): Removing ExecState parameter.
(WebCore::FontFaceSet::load): Removing ExecState and ExceptionCode parameter.
(WebCore::FontFaceSet::registerReady): Resolving promise if ready otherwise storing it for resolving it later.
(WebCore::FontFaceSet::completedLoading): Resolving promise if any is stored.
(WebCore::FontFaceSet::create): Deleted.

  • css/FontFaceSet.h:
  • css/FontFaceSet.idl:
1:02 PM Changeset in webkit [200545] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix an incorrect usage of OS(DARWIN) with PLATFORM(COCOA)
https://bugs.webkit.org/show_bug.cgi?id=157167

Patch by Jeremy Huddleston Sequoia <jeremyhu@apple.com> on 2016-05-07
Reviewed by Myles C. Maxfield.

  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::hash):

9:51 AM Changeset in webkit [200544] by timothy@apple.com
  • 7 edits
    3 adds in trunk/PerformanceTests

Update Animometer design
https://bugs.webkit.org/show_bug.cgi?id=157449

Reviewed by Darin Adler.

  • Animometer/developer.html: Stop including runner/animometer.css.
  • Animometer/index.html: Udpated elements to fit new styles.
  • Animometer/resources/debug-runner/animometer.css:

Copy the old runner/animometer.css to here so the debug runner is unaffected.

  • Animometer/resources/runner/animometer.css:

New styles for the design. Drop flex box for broad browser support.

  • Animometer/resources/runner/animometer.js:

(ResultsTable.clear): Use textContent.
(window.sectionsManager.showSection): Add class to the body.
(window.sectionsManager.setSectionScore): Use textContent, not innerHTML.

  • Animometer/resources/runner/crystal.svg: Added.
  • Animometer/resources/runner/lines.svg: Added.
  • Animometer/resources/runner/logo.svg: Added.
  • Animometer/resources/runner/tests.js: Shorten test name and title case them.
9:20 AM Changeset in webkit [200543] by mark.lam@apple.com
  • 6 edits
    2 moves in trunk/Source/JavaScriptCore

Add JSC options bytecodeRangeToJITCompile and jitWhitelist.
https://bugs.webkit.org/show_bug.cgi?id=157428

Reviewed by Michael Saboff.

  1. Added Options::bytecodeRangeToJITCompile and Options::jitWhitelist options.
  1. Moved DFGFunctionWhitelist* to FunctionWhitelist* and made it generic so that it can be used for more than one whitelist instance. In this case, we now have two: the dfgWhitelist and the jitWhitelist.
  1. Added "can compile" checks in LLInt::shouldJIT() to check Options::bytecodeRangeToJITCompile and Options::jitWhitelist.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGDriver.cpp:

(JSC::DFG::getNumCompilations):
(JSC::DFG::ensureGlobalDFGWhitelist):
(JSC::DFG::compileImpl):

  • dfg/DFGFunctionWhitelist.cpp: Removed.
  • dfg/DFGFunctionWhitelist.h: Removed.
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::ensureGlobalJITWhitelist):
(JSC::LLInt::shouldJIT):

  • runtime/Options.h:
  • tools/FunctionWhitelist.cpp: Copied from Source/JavaScriptCore/dfg/DFGFunctionWhitelist.cpp.

(JSC::FunctionWhitelist::FunctionWhitelist):
(JSC::FunctionWhitelist::contains):
(JSC::DFG::FunctionWhitelist::ensureGlobalWhitelist): Deleted.
(JSC::DFG::FunctionWhitelist::FunctionWhitelist): Deleted.
(JSC::DFG::FunctionWhitelist::parseFunctionNamesInFile): Deleted.
(JSC::DFG::FunctionWhitelist::contains): Deleted.

  • tools/FunctionWhitelist.h: Copied from Source/JavaScriptCore/dfg/DFGFunctionWhitelist.h.
6:03 AM Changeset in webkit [200542] by jdiggs@igalia.com
  • 6 edits in trunk

REGRESSION(r196222): [AX][GTK] accessibility/gtk/caret-offsets.html failing
https://bugs.webkit.org/show_bug.cgi?id=153956

Reviewed by Chris Fleizach.

Source/WebCore:

The reason the test began failing is that it was checking the new caret offset
synchronously. For most of the test cases, this was not a problem. But when the
caret was moved out of a focused link, the focus change (and associated repainting)
delayed the caret-moved event long enough to cause the associated test case to fail.
The test now uses shouldBecomeEqualToString() instead of shouldBeEqualToString().

The test also had a supposedly-correct expectation which was wrong: When moving the
caret to a valid accessible offset, the caret-moved event should be for that offset.
This was not the case for the list item test case because emitTextSelectionChange()
was not adjusting the offset for the RenderListMarker, the text of which is exposed
as part of the ATK_ROLE_LIST_ITEM object. This bug was also fixed and the test case
updated accordingly.

No new tests are needed. The previously-failing test is now passing.

  • editing/atk/FrameSelectionAtk.cpp:

(WebCore::emitTextSelectionChange):

LayoutTests:

Change the test to run asynchronously and update the expectations.

  • accessibility/gtk/caret-offsets-expected.txt: Updated.
  • accessibility/gtk/caret-offsets.html: Updated.
  • platform/gtk/TestExpectations: Unskipped the previously-failing test.
1:19 AM Changeset in webkit [200541] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC][32bit] stress/tagged-templates-template-object.js fails in debug
https://bugs.webkit.org/show_bug.cgi?id=157436

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-07
Reviewed by Filip Pizlo.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
The node OverridesHasInstance had a speculation after a jump.

May 6, 2016:

11:03 PM Changeset in webkit [200540] by Joseph Pecoraro
  • 22 edits in trunk/Source

Rename HitTestRequest DisallowShadowContent to DisallowUserAgentShadowContent
https://bugs.webkit.org/show_bug.cgi?id=157447

Reviewed by Ryosuke Niwa.

Source/WebCore:

HitTesting is intended to reach nodes inside shadow content. This property
on the HitTestRequest is intended to avoid hit testing in UserAgent shadow
content. Rename the enum value, and cascading methods for clarity.

  • html/MediaElementSession.cpp:

(WebCore::isMainContent):

  • page/EventHandler.cpp:

(WebCore::EventHandler::eventMayStartDrag):
(WebCore::EventHandler::updateSelectionForMouseDrag):
(WebCore::EventHandler::hitTestResultAtPoint):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::mouseMoved):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::handleMouseForceEvent):
(WebCore::EventHandler::updateDragAndDrop):
(WebCore::EventHandler::isInsideScrollbar):
(WebCore::EventHandler::sendContextMenuEvent):
(WebCore::EventHandler::sendContextMenuEventForKey):
(WebCore::EventHandler::hoverTimerFired):
(WebCore::EventHandler::dragSourceEndedAt):
(WebCore::EventHandler::handleDrag):
(WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):

  • page/EventHandler.h:
  • page/FocusController.cpp:

(WebCore::updateFocusCandidateIfNeeded):

  • rendering/HitTestRequest.h:

(WebCore::HitTestRequest::HitTestRequest):
(WebCore::HitTestRequest::disallowsUserAgentShadowContent):
(WebCore::HitTestRequest::disallowsShadowContent): Deleted.

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::setToNonUserAgentShadowAncestor):
(WebCore::HitTestResult::addNodeToRectBasedTestResult):
(WebCore::HitTestResult::setToNonShadowAncestor): Deleted.

  • rendering/HitTestResult.h:
  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::isReplacementObscured):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::hitTestClipContent):

  • testing/Internals.cpp:

(WebCore::Internals::nodesFromRect):

Source/WebKit/mac:

  • WebView/WebFrame.mm:

(-[WebFrame elementAtPoint:]):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView elementAtPoint:allowShadowContent:]):

Source/WebKit/win:

  • WebView.cpp:

(WebView::gestureNotify):

Source/WebKit2:

  • WebProcess/WebPage/CoordinatedGraphics/WebPageCoordinatedGraphics.cpp:

(WebKit::WebPage::findZoomableAreaForPoint):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::hitTest):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::determinePrimarySnapshottedPlugIn):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::rangeForWebSelectionAtPosition):
(WebKit::WebPage::rangeForBlockAtPoint):
(WebKit::WebPage::getPositionInformation):

10:52 PM Changeset in webkit [200539] by Joseph Pecoraro
  • 6 edits in trunk/Source

Web Inspector: Inspect Element and Element Selection searching should work with Shadow DOM Nodes
https://bugs.webkit.org/show_bug.cgi?id=157446
<rdar://problem/24688447>

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::innerParentNode):
The Inspector backend was informing the frontend that all ShadowRoots
were floating and had no parent. Get the host element for ShadowRoots.

  • rendering/HitTestResult.cpp:

(WebCore::moveOutOfUserAgentShadowTree):
(WebCore::HitTestResult::setToNonShadowAncestor):
EventHandler::mouseMoved is calling setToNonShadowAncestor before
notifying Page::chrome / Inspector about the moused over element.
This should be the deepest non-user-agent-shadow node.

Source/WebInspectorUI:

  • UserInterface/Models/DOMNode.js:

(WebInspector.DOMNode):
Shadow DOM nodes did not have a parent, and so when attempting
to create DOM Tree elements up the chain, we were failing at
shadow boundaries. Create the parent relationship, the parent
already treats it as a child.

  • UserInterface/Views/DOMTreeOutline.js:

(WebInspector.DOMTreeOutline.prototype._revealAndSelectNode):
Whenever we try to reveal and select an element in a shadow tree
but the setting to show shadow DOM is disabled, walk up until
we are out of the shadow tree.

10:44 PM Changeset in webkit [200538] by Joseph Pecoraro
  • 4 edits in trunk/Source

Web Inspector: Misc CommandLineAPI cleanup
https://bugs.webkit.org/show_bug.cgi?id=157450

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(BasicCommandLineAPI):
Fix mistake in r200533, and modernize related code.

Source/WebCore:

  • inspector/CommandLineAPIModuleSource.js:

(bind):

9:25 PM Changeset in webkit [200537] by peavo@outlook.com
  • 3 edits in trunk/LayoutTests

[Win] Skip failing INTL test.
https://bugs.webkit.org/show_bug.cgi?id=157418

Reviewed by Alex Christensen.

Temporarily skip string-localeCompare.js, because AppleWin currently does not have INTL enabled.

  • js/script-tests/string-localeCompare.js:
  • platform/win/TestExpectations:
8:51 PM Changeset in webkit [200536] by rniwa@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

MouseEvent's offsetX and offsetY should be based on relative target
https://bugs.webkit.org/show_bug.cgi?id=157444
<rdar://problem/24396408>

Reviewed by Darin Adler.

Add a W3C style testharness.js test for adjusting offsetX and offsetY to the adjusted target
since our existing behavior matches the spec as well as Chrome's behavior:
http://w3c.github.io/webcomponents/spec/shadow/#event-dispatch

  • fast/shadow-dom/MouseEvent-prototype-offsetX-offsetY-expected.txt: Added.
  • fast/shadow-dom/MouseEvent-prototype-offsetX-offsetY.html: Added.
8:08 PM Changeset in webkit [200535] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Web Inspector: Improve console.count()
https://bugs.webkit.org/show_bug.cgi?id=157439
<rdar://problem/26152654>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-06
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • make console.count() increment an unnamed global counter.
  • make console.count(label) increment a counter with that label name.
  • inspector/agents/InspectorConsoleAgent.cpp:

(Inspector::InspectorConsoleAgent::count):

LayoutTests:

  • inspector/console/console-api-expected.txt:
  • inspector/console/console-count-expected.txt: Added.
  • inspector/console/console-count.html: Added.
  • inspector/console/console-time.html:
5:38 PM WebKitGTK/2.10.x edited by jdiggs@igalia.com
(diff)
5:25 PM WebKitGTK/2.12.x edited by jdiggs@igalia.com
(diff)
5:05 PM Changeset in webkit [200534] by Simon Fraser
  • 43 edits
    1 copy
    2 moves
    6 adds in trunk

Enable IOS_TEXT_AUTOSIZING on Mac and make it testable
https://bugs.webkit.org/show_bug.cgi?id=157432
rdar://problem/16406720

Reviewed by Dean Jackson.

Source/JavaScriptCore:

Enable IOS_TEXT_AUTOSIZING on Mac so it can be tested.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Enable IOS_TEXT_AUTOSIZING on Mac so it can be tested.

Make the setTextAutosizingEnabled() Setting work, and plumb it through WK1 and WK2
preferences for WTR and DRT. Make textAutosizingWindowSizeOverride() work, for layout tests.
These two settings are shared with TEXT_AUTOSIZING.

Add a TextAutosizing log channel, which is useful for generated -expected.html results.

Move adjustComputedFontSizesOnBlocks() and related code from RenderObject to RenderElement
without changes.

An implication of this set of changes is that the way clients enable text autosizing
has changed. Previously, they set the "MinimumZoomFontSize" preference to 0.
Settings::defaultMinimumZoomFontSize() used to do this in order to enable text autosizing
on iPhone only, not iPad.

Now the preferred technique is to leave minimumZoomFontSize alone, and to use textAutosizingEnabled()
instead. Settings::defaultTextAutosizingEnabled() now does the check for iPhone.

UIWebView calls WebKitGetMinimumZoomFontSize() to setup the default minimum font zoom size,
which will now always return 15, but had no other code that toggled this. So it's safe to just rely
on Settings::defaultTextAutosizingEnabled() doing the right thing for iPhone/iPad.

Test: fast/text-autosizing/ios/autosize-width.html

  • Configurations/FeatureDefines.xcconfig:
  • dom/Document.cpp:

(WebCore::Document::addAutoSizingNode):

  • page/FrameView.cpp:

(WebCore::FrameView::layout):

  • page/Settings.cpp:

(WebCore::Settings::Settings): Deleted.
(WebCore::Settings::setTextAutosizingEnabled): Deleted.
(WebCore::Settings::setTextAutosizingWindowSizeOverride): Deleted.

  • page/Settings.h:

(WebCore::Settings::textAutosizingEnabled): Deleted.
(WebCore::Settings::textAutosizingWindowSizeOverride): Deleted.

  • page/Settings.in:
  • page/cocoa/SettingsCocoa.mm:

(WebCore::Settings::defaultMinimumZoomFontSize):
(WebCore::Settings::defaultTextAutosizingEnabled):

  • platform/Logging.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::adjustComputedFontSizes):

  • rendering/RenderElement.cpp:

(WebCore::includeNonFixedHeight):
(WebCore::RenderElement::adjustComputedFontSizesOnBlocks):
(WebCore::RenderElement::resetTextAutosizing):

  • rendering/RenderElement.h:
  • rendering/RenderObject.cpp:

(WebCore::includeNonFixedHeight): Deleted.
(WebCore::RenderObject::adjustComputedFontSizesOnBlocks): Deleted.
(WebCore::RenderObject::resetTextAutosizing): Deleted.

  • rendering/RenderObject.h:
  • rendering/TextAutoSizing.cpp:

(WebCore::TextAutoSizingValue::adjustNodeSizes):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setTextAutosizingEnabled):
(WebCore::InternalSettings::setTextAutosizingWindowSizeOverride):

  • testing/InternalSettings.h:

Source/WebKit/ios:

Enable IOS_TEXT_AUTOSIZING on Mac so it can be tested.

Make the setTextAutosizingEnabled() Setting work, and plumb it through WK1 and WK2
preferences for WTR and DRT. Make textAutosizingWindowSizeOverride() work, for layout tests.
These two settings are shared with TEXT_AUTOSIZING.

Add a TextAutosizing log channel, which is useful for generated -expected.html results.

Move adjustComputedFontSizesOnBlocks() and related code from RenderObject to RenderElement
without changes.

An implication of this set of changes is that the way clients enable text autosizing
has changed. Previously, they set the "MinimumZoomFontSize" preference to 0.
Settings::defaultMinimumZoomFontSize() used to do this in order to enable text autosizing
on iPhone only, not iPad.

Now the preferred technique is to leave minimumZoomFontSize alone, and to use textAutosizingEnabled()
instead. Settings::defaultTextAutosizingEnabled() now does the check for iPhone.

UIWebView calls WebKitGetMinimumZoomFontSize() to setup the default minimum font zoom size,
which will now always return 15, but had no other code that toggled this. So it's safe to just rely
on Settings::defaultTextAutosizingEnabled() doing the right thing for iPhone/iPad.

  • Misc/WebUIKitSupport.mm:

(WebKitGetMinimumZoomFontSize):

Source/WebKit/mac:

Enable IOS_TEXT_AUTOSIZING on Mac so it can be tested.

Make the setTextAutosizingEnabled() Setting work, and plumb it through WK1 and WK2
preferences for WTR and DRT. Make textAutosizingWindowSizeOverride() work, for layout tests.
These two settings are shared with TEXT_AUTOSIZING.

Add a TextAutosizing log channel, which is useful for generated -expected.html results.

Move adjustComputedFontSizesOnBlocks() and related code from RenderObject to RenderElement
without changes.

An implication of this set of changes is that the way clients enable text autosizing
has changed. Previously, they set the "MinimumZoomFontSize" preference to 0.
Settings::defaultMinimumZoomFontSize() used to do this in order to enable text autosizing
on iPhone only, not iPad.

Now the preferred technique is to leave minimumZoomFontSize alone, and to use textAutosizingEnabled()
instead. Settings::defaultTextAutosizingEnabled() now does the check for iPhone.

UIWebView calls WebKitGetMinimumZoomFontSize() to setup the default minimum font zoom size,
which will now always return 15, but had no other code that toggled this. So it's safe to just rely
on Settings::defaultTextAutosizingEnabled() doing the right thing for iPhone/iPad.

  • Configurations/FeatureDefines.xcconfig:
  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences _setTextAutosizingEnabled:]):
(-[WebPreferences _textAutosizingEnabled]):

  • WebView/WebPreferencesPrivate.h:

Source/WebKit2:

Enable IOS_TEXT_AUTOSIZING on Mac so it can be tested.

Make the setTextAutosizingEnabled() Setting work, and plumb it through WK1 and WK2
preferences for WTR and DRT. Make textAutosizingWindowSizeOverride() work, for layout tests.
These two settings are shared with TEXT_AUTOSIZING.

Add a TextAutosizing log channel, which is useful for generated -expected.html results.

Move adjustComputedFontSizesOnBlocks() and related code from RenderObject to RenderElement
without changes.

An implication of this set of changes is that the way clients enable text autosizing
has changed. Previously, they set the "MinimumZoomFontSize" preference to 0.
Settings::defaultMinimumZoomFontSize() used to do this in order to enable text autosizing
on iPhone only, not iPad.

Now the preferred technique is to leave minimumZoomFontSize alone, and to use textAutosizingEnabled()
instead. Settings::defaultTextAutosizingEnabled() now does the check for iPhone.

UIWebView calls WebKitGetMinimumZoomFontSize() to setup the default minimum font zoom size,
which will now always return 15, but had no other code that toggled this. So it's safe to just rely
on Settings::defaultTextAutosizingEnabled() doing the right thing for iPhone/iPad.

  • Configurations/FeatureDefines.xcconfig:
  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _textAutosizingEnabled]):
(-[WKPreferences _setTextAutosizingEnabled:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

Enable IOS_TEXT_AUTOSIZING on Mac so it can be tested.

Make the setTextAutosizingEnabled() Setting work, and plumb it through WK1 and WK2
preferences for WTR and DRT. Make textAutosizingWindowSizeOverride() work, for layout tests.
These two settings are shared with TEXT_AUTOSIZING.

Add a TextAutosizing log channel, which is useful for generated -expected.html results.

Move adjustComputedFontSizesOnBlocks() and related code from RenderObject to RenderElement
without changes.

An implication of this set of changes is that the way clients enable text autosizing
has changed. Previously, they set the "MinimumZoomFontSize" preference to 0.
Settings::defaultMinimumZoomFontSize() used to do this in order to enable text autosizing
on iPhone only, not iPad.

Now the preferred technique is to leave minimumZoomFontSize alone, and to use textAutosizingEnabled()
instead. Settings::defaultTextAutosizingEnabled() now does the check for iPhone.

UIWebView calls WebKitGetMinimumZoomFontSize() to setup the default minimum font zoom size,
which will now always return 15, but had no other code that toggled this. So it's safe to just rely
on Settings::defaultTextAutosizingEnabled() doing the right thing for iPhone/iPad.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setTextAutosizingEnabled):

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetPreferencesToConsistentValues):

LayoutTests:

Enable fast/text-autosizing/ios/ on Mac and iOS

  • fast/text-autosizing/ios/autosize-width-expected.html: Added.
  • fast/text-autosizing/ios/autosize-width.html: Added.
  • platform/ios-simulator/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
4:32 PM Changeset in webkit [200533] by commit-queue@webkit.org
  • 19 edits
    2 adds in trunk

Web Inspector: Console: Variables defined with let/const aren't accessible outside of console's scope
https://bugs.webkit.org/show_bug.cgi?id=150752
<rdar://problem/23343385>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-06
Reviewed by Mark Lam.

Source/JavaScriptCore:

This approach allows Web Inspector to hang a "Scope Extension", a
WithObjectScope, off the GlobalObject. When resolving identifiers
in fails to resolve anything in the normal scope chain, consult
the scope extension.

This allows us to eliminate the with (commandLineAPI) { ... }
block in global console evaluations, and instead makes it a full
program evaluation, with the commandLineAPI available and safely
shadowed by actual variables as expected.

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype._evaluateOn):
Use the new evaluateWithScopeExtension and provide the CommandLineAPI
object as the scope extension object.

(BasicCommandLineAPI):
(BasicCommandLineAPI.inScopeVariables): Deleted.
Simplify now that we don't need to check for variable shadowing ourselves.

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::evaluateWithScopeExtension):

  • inspector/JSInjectedScriptHost.h:
  • inspector/JSInjectedScriptHostPrototype.cpp:

(Inspector::JSInjectedScriptHostPrototype::finishCreation):
(Inspector::jsInjectedScriptHostPrototypeFunctionEvaluateWithScopeExtension):
Provide a new InjectedScriptHost method to evaluate a program
with a scope extension.

  • runtime/Completion.cpp:

(JSC::evaluateWithScopeExtension):

  • runtime/Completion.h:

General JSC::evaluate function to evaluate a program with a scope extension.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::setGlobalScopeExtension):
(JSC::JSGlobalObject::clearGlobalScopeExtension):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::globalScopeExtension):
Hang a scope extension off the global object.

  • runtime/JSScope.cpp:

(JSC::JSScope::resolve):
Consult the scope extension when resolve fails to find anything normally.

Source/WebCore:

Test: inspector/runtime/evaluate-CommandLineAPI.html

  • inspector/CommandLineAPIModuleSource.js:

(bind):
(this.member.toString):
(CommandLineAPI):
(CommandLineAPIImpl.prototype):
(slice): Deleted.
(bound): Deleted.
(bound.toString): Deleted.
(inScopeVariables): Deleted.
(customToStringMethod): Deleted.
Simplify now that we don't need to do our own variable shadow checking.

LayoutTests:

  • inspector/runtime/evaluate-CommandLineAPI-expected.txt: Added.
  • inspector/runtime/evaluate-CommandLineAPI.html: Added.

New test covering the different cases of global evaluation with the
CommandLineAPI as a scope extension.

  • http/tests/inspector/console/cross-domain-inspected-node-access-expected.txt:
  • inspector/console/command-line-api-expected.txt:
  • inspector/debugger/js-stacktrace-expected.txt:
  • inspector/debugger/js-stacktrace.html:
  • inspector/model/stack-trace-expected.txt:
  • platform/mac/inspector/model/remote-object-expected.txt:

Update expectations now that global evaluations are treated as
program's [global code] and not evals [eval code]. Also some
line number changes.

4:21 PM Changeset in webkit [200532] by beidson@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed IDB test gardening.

  • TestExpectations:
  • storage/indexeddb/pending-activity-workers-expected.txt: Updated expectations.
3:57 PM Changeset in webkit [200531] by mark.lam@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Add JSC options reportBaselineCompileTimes and reportDFGCompileTimes.
https://bugs.webkit.org/show_bug.cgi?id=157427

Reviewed by Filip Pizlo and Keith Miller.

The compile times reporting options are now:

reportCompileTimes -> report compile times in all tiers.
reportBaselineCompileTimes -> report compile times in baseline JIT.
reportDFGCompileTimes -> report compile times in DFG and FTL.
reportFTLCompileTimes -> report compile times in FTL.

Also updated reportTotalCompileTimes() to collect stats that include the baseline
JIT. compileTimeStats() is now moved into JIT.cpp (from DFGPlan.cpp).

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::reportCompileTimes):
(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):
(JSC::DFG::Plan::cancel):
(JSC::DFG::Plan::compileTimeStats): Deleted.

  • dfg/DFGPlan.h:

(JSC::DFG::Plan::compileTimeStats): Deleted.

  • jit/JIT.cpp:

(JSC::ctiPatchCallByReturnAddress):
(JSC::JIT::privateCompile):
(JSC::JIT::stackPointerOffsetFor):
(JSC::JIT::reportCompileTimes):
(JSC::JIT::computeCompileTimes):
(JSC::JIT::compileTimeStats):

  • jit/JIT.h:

(JSC::JIT::shouldEmitProfiling):

  • jsc.cpp:

(runJSC):

  • runtime/Options.h:
3:47 PM Changeset in webkit [200530] by timothy_horton@apple.com
  • 8 edits
    2 adds in trunk

<attachment> element should understand UTIs
https://bugs.webkit.org/show_bug.cgi?id=157425
<rdar://problem/25585401>

Reviewed by Anders Carlsson.

UTIs are often much more specific than MIME types, so we should allow
clients of <attachment> to use them to get more accurate icons.

Test: fast/attachment/attachment-uti.html

  • platform/graphics/Icon.h:
  • platform/graphics/mac/IconMac.mm:

(WebCore::Icon::createIconForMIMEType): Deleted.
Remove the now-unused createIconForMIMEType.

  • platform/network/mac/UTIUtilities.h:
  • platform/network/mac/UTIUtilities.mm:

(WebCore::isDeclaredUTI):
Expose UTTypeIsDeclared as isDeclaredUTI.

  • rendering/RenderThemeIOS.mm:

(WebCore::iconForAttachment):

  • rendering/RenderThemeMac.mm:

(WebCore::iconForAttachment):
If the attachment's type is a UTI, request the icon for it directly.
If it's a MIME type, convert to a UTI before requesting.

  • fast/attachment/attachment-uti-expected.html: Added.
  • fast/attachment/attachment-uti.html: Added.

Add a test that UTIs render the same as their corresponding MIME types.

3:39 PM Changeset in webkit [200529] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Unexpected white border at the bottom of Debugger filter bar
https://bugs.webkit.org/show_bug.cgi?id=157430
<rdar://problem/26146602>

Reviewed by Timothy Hatcher.

Remove the semi-transparent white borders.

  • UserInterface/Views/NavigationBar.css:

(.navigation-bar): Deleted.

  • UserInterface/Views/SearchSidebarPanel.css:

(.sidebar > .panel.navigation.search > .search-bar): Deleted.

3:23 PM Changeset in webkit [200528] by Chris Dumez
  • 19 edits in trunk

Clean up converting from JSValue to float / double in the bindings generator
https://bugs.webkit.org/show_bug.cgi?id=157407

Reviewed by Darin Adler.

Source/WebCore:

Clean up converting from JSValue to float / double in the bindings generator:

  • Handle all aspects of converting to float / double inside JSValueToNative() instead of relying partly on the call sites.
  • Add a build<>() template function to JSDOMBuild.h that is now called from the bindings to convert to float / double and deal with non-finite values.
  • Provide a better message with the TypeError that is thrown for non-finite values.

No new tests, rebaselined existing tests.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::throwSequenceTypeError):
(WebCore::throwNonFiniteTypeError):

  • bindings/js/JSDOMBinding.h:
  • bindings/js/JSDOMBuild.h:

(WebCore::build):

  • bindings/scripts/CodeGenerator.pm:

(IsFloatingPointType):

  • bindings/scripts/CodeGeneratorJS.pm:

(JSValueToNative):
(GenerateImplementation): Deleted.
(GenerateParametersCheck): Deleted.
(GenerateReturnParameters): Deleted.

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::setJSTestObjStrictFloat):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalDoubleIsNaN):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalFloatIsNaN):
(WebCore::jsTestObjPrototypeFunctionStrictFunction):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
(WebCore::jsTestObjPrototypeFunctionAny):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Promise):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::jsTestTypedefsPrototypeFunctionSetShadow):

LayoutTests:

Rebaseline the tests now that we provide a more useful exception message.

  • fast/canvas/canvas-2d-imageData-create-nonfinite-expected.txt:
  • fast/canvas/canvas-getImageData-invalid-expected.txt:
  • fast/canvas/canvas-putImageData-expected.txt:
  • fast/canvas/canvas-putImageData.js:
  • fast/canvas/linearGradient-infinite-values-expected.txt:
  • fast/canvas/radialGradient-infinite-values-expected.txt:
  • fast/canvas/resources/canvas-2d-imageData-create-nonfinite.js:
  • fast/canvas/script-tests/canvas-getImageData-invalid.js:
  • fast/canvas/script-tests/linearGradient-infinite-values.js:
  • fast/canvas/script-tests/radialGradient-infinite-values.js:
3:06 PM Changeset in webkit [200527] by beidson@apple.com
  • 4 edits in trunk/LayoutTests

Unreviewed IDB test gardening.

Fix a failing test, and add better classification/comments to a different failing test.

  • TestExpectations:
  • storage/indexeddb/dont-commit-on-blocked-expected.txt:
  • storage/indexeddb/dont-commit-on-blocked.html:
2:38 PM Changeset in webkit [200526] by beidson@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed IDB test gardening.

Update the workers variant of "deletedatabase-delayed-by-open-and-versionchange" to the modern expected results.

  • TestExpectations:
  • storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-workers-expected.txt:
2:22 PM Changeset in webkit [200525] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed IDB test gardening.

Finish removing unsupported lines from the "unprefix" test.

  • storage/indexeddb/unprefix-private-expected.txt:
2:21 PM Changeset in webkit [200524] by dino@apple.com
  • 31 edits
    4 deletes in trunk

Regions, Shapes and Tracks don't need runtime features
https://bugs.webkit.org/show_bug.cgi?id=157426
<rdar://problem/26146262>

Reviewed by Simon Fraser.

Source/WebCore:

The following RuntimeEnabledFeatures can be removed since
we have no need to disable them (they are stable and have
shipped for a while):

  • CSS Regions
  • CSS Shapes
  • Media tracks
  • bindings/generic/RuntimeEnabledFeatures.cpp:

(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures): Deleted.

  • bindings/generic/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setCSSShapesEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::cssShapesEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setCSSRegionsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::cssRegionsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setCSSCompositingEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::cssCompositingEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webkitVideoTrackEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setWebkitVideoTrackEnabled): Deleted.

  • css/CSSParser.cpp:

(WebCore::isSimpleLengthPropertyID):
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseFillProperty):
(WebCore::CSSParser::createRegionRule):
(WebCore::CSSParserContext::CSSParserContext): Deleted.
(WebCore::operator==): Deleted.
(WebCore::CSSParser::parseShapeProperty): Deleted.
(WebCore::CSSParser::cssRegionsEnabled): Deleted.
(WebCore::CSSParser::cssCompositingEnabled): Deleted.
(WebCore::CSSParser::parseFlowThread): Deleted.
(WebCore::CSSParser::parseRegionThread): Deleted.

  • css/CSSParser.h:
  • css/CSSParserMode.h:
  • dom/Document.cpp:

(WebCore::Document::webkitGetNamedFlows):
(WebCore::Document::cssRegionsEnabled): Deleted.
(WebCore::Document::cssCompositingEnabled): Deleted.

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

(WebCore::Element::unregisterNamedFlowContentElement):
(WebCore::Element::webkitRegionOverset):
(WebCore::Element::webkitGetRegionFlowRanges): Deleted.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::scheduleDelayedAction):
(WebCore::HTMLMediaElement::pendingActionTimerFired):
(WebCore::HTMLMediaElement::prepareForLoad):
(WebCore::HTMLMediaElement::loadInternal):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::playbackProgressTimerFired):
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
(WebCore::HTMLMediaElement::userCancelledLoad):
(WebCore::HTMLMediaElement::setVideoFullscreenLayer):
(WebCore::HTMLMediaElement::hasClosedCaptions):
(WebCore::HTMLMediaElement::setClosedCaptionsVisible):
(WebCore::HTMLMediaElement::configureTextTrackDisplay):
(WebCore::HTMLMediaElement::finishParsingChildren): Deleted.
(WebCore::HTMLMediaElement::audioTrackEnabledChanged): Deleted.
(WebCore::HTMLMediaElement::videoTrackSelectedChanged): Deleted.
(WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack): Deleted.
(WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack): Deleted.
(WebCore::HTMLMediaElement::mediaPlayerDidAddVideoTrack): Deleted.
(WebCore::HTMLMediaElement::addAudioTrack): Deleted.
(WebCore::HTMLMediaElement::addTextTrack): Deleted.
(WebCore::HTMLMediaElement::addVideoTrack): Deleted.
(WebCore::HTMLMediaElement::removeAudioTrack): Deleted.
(WebCore::HTMLMediaElement::removeTextTrack): Deleted.
(WebCore::HTMLMediaElement::removeVideoTrack): Deleted.
(WebCore::HTMLMediaElement::audioTracks): Deleted.
(WebCore::HTMLMediaElement::textTracks): Deleted.
(WebCore::HTMLMediaElement::videoTracks): Deleted.
(WebCore::HTMLMediaElement::didAddTextTrack): Deleted.
(WebCore::HTMLMediaElement::didRemoveTextTrack): Deleted.

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::parseAttribute):
(WebCore::HTMLTrackElement::scheduleLoad): Deleted.
(WebCore::HTMLTrackElement::canLoadURL): Deleted.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo): Deleted.
(WebCore::InternalSettings::setCSSShapesEnabled): Deleted.

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebKit/mac:

The following RuntimeEnabledFeatures can be removed since
we have no need to disable them (they are stable and have
shipped for a while):

  • CSS Regions
  • CSS Shapes
  • Media tracks
  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]): Deleted.
(-[WebPreferences cssRegionsEnabled]): Deleted.
(-[WebPreferences setCSSRegionsEnabled:]): Deleted.
(-[WebPreferences cssCompositingEnabled]): Deleted.
(-[WebPreferences setCSSCompositingEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]): Deleted.

Source/WebKit2:

The following RuntimeEnabledFeatures can be removed since
we have no need to disable them (they are stable and have
shipped for a while):

  • CSS Regions
  • CSS Shapes
  • Media tracks
  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetCSSRegionsEnabled): Deleted.
(WKPreferencesGetCSSRegionsEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Deleted.
(WebKit::InjectedBundle::setCSSRegionsEnabled): Deleted.
(WebKit::InjectedBundle::setCSSCompositingEnabled): Deleted.

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

(WebKit::WebPage::updatePreferences): Deleted.

Tools:

The following RuntimeEnabledFeatures can be removed since
we have no need to disable them (they are stable and have
shipped for a while):

  • CSS Regions
  • CSS Shapes
  • Media tracks
  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues): Deleted.

LayoutTests:

Remove these tests since their runtime flags no longer exist.

  • fast/regions/css-regions-disabled-expected.txt: Removed.
  • fast/regions/css-regions-disabled.html: Removed.
  • fast/shapes/css-shapes-disabled-expected.txt: Removed.
  • fast/shapes/css-shapes-disabled.html: Removed.
2:16 PM Changeset in webkit [200523] by beidson@apple.com
  • 5 edits in trunk/LayoutTests

Unreviewed IDB test gardening.

Remove unsupported lines from the "unprefix" test.

  • TestExpectations:
  • storage/indexeddb/resources/unprefix.js:
  • storage/indexeddb/unprefix-expected.txt:
  • storage/indexeddb/unprefix-workers-expected.txt:
2:11 PM Changeset in webkit [200522] by beidson@apple.com
  • 2 edits
    2 deletes in trunk/LayoutTests

Unreviewed IDB test gardening.

Remove the Workers variant of a test that had been removed for being irrelevant.

  • TestExpectations:
  • storage/indexeddb/factory-basics-workers-expected.txt: Removed.
  • storage/indexeddb/factory-basics-workers.html: Removed.
2:04 PM Changeset in webkit [200521] by beidson@apple.com
  • 43 edits in trunk

Modern IDB (Workers): Start running a lot of the workers tests.
https://bugs.webkit.org/show_bug.cgi?id=157424

Reviewed by Sam Weinig.

Source/WebCore:

No new tests (Covered by enabling a whole bunch of existing tests).

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::stop): Call removeAllEventListeners() to clean up the Worker VM

before it shuts down.

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::stop): Call removeAllEventListeners()

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::IDBTransaction): Initialize with the correct VM.
(WebCore::IDBTransaction::stop): Call removeAllEventListeners()
(WebCore::IDBTransaction::operationDidComplete):

  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::takeIDBOpenDBRequest):
(WebCore::IDBClient::IDBConnectionProxy::completeOpenDBRequest): Don't take the request from

the map, but rather let the request take itself from its appropriate thread.

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/TransactionOperation.h:

(WebCore::IDBClient::TransactionOperation::completed): Rework clearing out the completion

handler, as the handler itself might hold the last reference to this.

  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::hasUniversalAccess):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope): If the parent context's SecurityOrigin had

universal access, grant it to this one.

LayoutTests:

Many tests that obviously pass need updated expectations for the details of error messages.

Others just work right out of the box.

  • http/tests/security/cross-origin-worker-indexeddb-allowed-expected.txt:
  • http/tests/security/cross-origin-worker-indexeddb-allowed.html:
  • http/tests/security/cross-origin-worker-indexeddb-expected.txt:
  • http/tests/security/cross-origin-worker-indexeddb.html:
  • http/tests/security/resources/cross-origin-iframe-for-worker-indexeddb.html:
  • http/tests/security/resources/document-for-cross-origin-worker-indexeddb.html:
  • http/tests/security/resources/worker-for-indexeddb.js:
  • storage/indexeddb/basics-workers.html:
  • storage/indexeddb/cursor-advance-workers-expected.txt:
  • storage/indexeddb/cursor-advance-workers.html:
  • storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-workers.html:
  • storage/indexeddb/dont-commit-on-blocked-private.html:
  • storage/indexeddb/dont-commit-on-blocked.html:
  • storage/indexeddb/factory-basics-workers.html:
  • storage/indexeddb/index-basics-workers-expected.txt:
  • storage/indexeddb/index-basics-workers.html:
  • storage/indexeddb/modern/workers-disabled.html:
  • storage/indexeddb/objectstore-basics-workers-expected.txt:
  • storage/indexeddb/objectstore-basics-workers.html:
  • storage/indexeddb/open-twice-workers.html:
  • storage/indexeddb/pending-activity-workers.html:
  • storage/indexeddb/pending-version-change-on-exit-private.html:
  • storage/indexeddb/pending-version-change-on-exit.html:
  • storage/indexeddb/pending-version-change-stuck-private.html:
  • storage/indexeddb/pending-version-change-stuck-works-with-terminate-private.html:
  • storage/indexeddb/pending-version-change-stuck-works-with-terminate.html:
  • storage/indexeddb/pending-version-change-stuck.html:
  • storage/indexeddb/transaction-complete-workers-expected.txt:
  • storage/indexeddb/transaction-complete-workers-private-expected.txt:
  • storage/indexeddb/transaction-complete-workers-private.html:
  • storage/indexeddb/transaction-complete-workers.html:
  • storage/indexeddb/unprefix-workers.html:
2:01 PM Changeset in webkit [200520] by rniwa@webkit.org
  • 4 edits
    2 adds in trunk

FKA: No way to get focus from DOM to shadow DOM components (Was: HTML5 media controls not keyboard accessible)
https://bugs.webkit.org/show_bug.cgi?id=117857

Reviewed by Jer Noble.

Source/WebCore:

The bug was caused by hasCustomFocusLogic returning true on media elements.

Fix the bug by removing this function so that FocusController will walk into the shadow tree of media elements
to look for focusable elements. This will allow AT such as Voice Over to iterate through controls.

We don't seem to draw focus rings inside the media elements but that could be tweaked in a separate patch.

Test: media/tab-focus-inside-media-elements.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::hasCustomFocusLogic): Deleted.

  • html/HTMLMediaElement.h:

LayoutTests:

Added a regression test for moving focus into media elements by pressing tab key.

  • media/tab-focus-inside-media-elements-expected.txt: Added.
  • media/tab-focus-inside-media-elements.html: Added.
1:38 PM Changeset in webkit [200519] by andersca@apple.com
  • 10 edits
    1 delete in trunk/Source/WebCore

Tidy up the LinkRelAttribute code
https://bugs.webkit.org/show_bug.cgi?id=157429

Reviewed by Sam Weinig.

Get rid of IconURL.h and move the IconType enumeration inside LinkRelAttribute.
Remove the InvalidIcon enum declaration and use WTF::Optional instead.

  • WebCore.xcodeproj/project.pbxproj:
  • dom/IconURL.h: Removed.
  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::iconType):
(WebCore::HTMLLinkElement::addSubresourceAttributeURLs):

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

(WebCore::LinkRelAttribute::LinkRelAttribute):

  • html/LinkRelAttribute.h:
  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::relAttributeIsStyleSheet):

  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:
  • loader/icon/IconController.cpp:

(WebCore::iconFromLinkElements):

1:37 PM Changeset in webkit [200518] by fpizlo@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

JS Function removed after parsing
https://bugs.webkit.org/show_bug.cgi?id=149175

Reviewed by Mark Lam.

This bug doesn't happen anymore, but the test case is still useful. This test will fail 1/5 of
the time if we regress.

  • js/dom/function-removed-after-parsing-expected.txt: Added.
  • js/dom/function-removed-after-parsing.html: Added.
12:54 PM Changeset in webkit [200517] by commit-queue@webkit.org
  • 5 edits
    2 deletes in trunk/Source/WebInspectorUI

Web Inspector: Remove HeapSnapshot Summary View
https://bugs.webkit.org/show_bug.cgi?id=157385

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-06
Reviewed by Timothy Hatcher.

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

(WebInspector.HeapSnapshotClusterContentView):
(WebInspector.HeapSnapshotClusterContentView.prototype.get summaryContentView): Deleted.
(WebInspector.HeapSnapshotClusterContentView.prototype.showSummary): Deleted.
(WebInspector.HeapSnapshotClusterContentView.prototype._pathComponentForContentView):
(WebInspector.HeapSnapshotClusterContentView.prototype._identifierForContentView):
(WebInspector.HeapSnapshotClusterContentView.prototype._showContentViewForIdentifier):

  • UserInterface/Views/HeapSnapshotSummaryContentView.css: Removed.
  • UserInterface/Views/HeapSnapshotSummaryContentView.js: Removed.
  • UserInterface/Views/Variables.css:

(:root):

12:54 PM Changeset in webkit [200516] by jer.noble@apple.com
  • 4 edits
    2 adds in trunk

Muted media elements should be allowed to autoplay, even if RequireUserGestureForAudioRateChange is set.
https://bugs.webkit.org/show_bug.cgi?id=157404
<rdar://problem/26016802>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/audio-playback-restriction-play-muted.html

Add element.muted() as a critera of whether playback is permitted when
RequireUserGestureForAudioRateChange is set. Also, make sure to re-evaluate whether the
element should be playing when muted is changed without a user gesture.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setMuted):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::playbackPermitted):

LayoutTests:

  • media/audio-playback-restriction-play-muted-expected.txt: Added.
  • media/audio-playback-restriction-play-muted.html: Added.
12:25 PM Changeset in webkit [200515] by Ryan Haddad
  • 2 edits in trunk/Tools

Increase delay when launching multiple ios-simulators in parallel
https://bugs.webkit.org/show_bug.cgi?id=157422

Reviewed by Alexey Proskuryakov.

Tests are intermittently failing when launching multiple simulators in parallel due to "You are opening
this application for the first time" confirmation dialogs. Increasing the delay to alleviate this issue.

  • Scripts/webkitpy/port/ios.py:

(IOSSimulatorPort.setup_test_run):

11:17 AM Changeset in webkit [200514] by adachan@apple.com
  • 6 edits in trunk/Source/WebKit2

Create a fence in WebVideoFullscreenManagerProxy::setVideoLayerFrame() to pass to the web process
https://bugs.webkit.org/show_bug.cgi?id=157409

Reviewed by Tim Horton.

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame):
Create a fence by calling DrawingAreaProxy::createFence() and pass it when sending the
WebVideoFullscreenManager::SetVideoLayerFrameFenced message.

  • UIProcess/DrawingAreaProxy.cpp:

(WebKit::DrawingAreaProxy::createFence):
Stub implementation. Assert not to be reached here since it's only implemented on Mac so far.

  • UIProcess/DrawingAreaProxy.h:
  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::createFence):
Renamed from createFenceForGeometryUpdate() since we are using it for more than just updating geometry.
(WebKit::TiledCoreAnimationDrawingAreaProxy::sendUpdateGeometry):
Update due to method rename.

9:57 AM Changeset in webkit [200513] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit/mac

Remove workaround for Apple Internal bots
<rdar://problem/25989808>

Reverts the workaround added in r200211 as it is no longer needed.

  • WebView/WebPDFView.h:
9:18 AM Changeset in webkit [200512] by peavo@outlook.com
  • 2 edits in trunk/Tools

[Win] Remove WinXP support.
https://bugs.webkit.org/show_bug.cgi?id=157416

Reviewed by Brent Fulgham.

  • win/DLLLauncher/DLLLauncherMain.cpp:

(enableTerminationOnHeapCorruption):

8:53 AM Changeset in webkit [200511] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

Don't use invalidated ResourceLoadStatistics iterators
https://bugs.webkit.org/show_bug.cgi?id=157412
<rdar://problem/26133153>

Reviewed by Chris Dumez.

ResourceLoadObserver::logFrameNavigation was using references bound to the 'value'
member of iterators from the ResourceLoadStatistics HashMap. When new entries were
added, these iterators were invalidated causing the references to refer to invalid
memory.

Renamed 'resourceStatisticsForPrimaryDomain' to 'ensureResourceStatisticsForPrimaryDomain'
to clarify that it may mutate the underlying HashMap, thereby invalidating any
existing iterators.

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::logFrameNavigation): Protect against HashMap
elements being copied/moved when new intries are added.

  • loader/ResourceLoadStatisticsStore.cpp:

(WebCore::ResourceLoadStatisticsStore::setResourceStatisticsForPrimaryDomain): Added.

  • loader/ResourceLoadStatisticsStore.h:
1:17 AM Changeset in webkit [200510] by Manuel Rego Casasnovas
  • 329 edits in trunk

[css-grid] Unprefix CSS Grid Layout properties
https://bugs.webkit.org/show_bug.cgi?id=157137

Reviewed by Simon Fraser.

Remove "-webkit" prefix from all the grid layout properties,
including the display value.
Update the source code to remove the prefix where it was used too.

.:

  • ManualTests/css-grid-layout-item-with-huge-span-crash.html:

PerformanceTests:

  • Layout/auto-grid-lots-of-data.html:
  • Layout/fixed-grid-lots-of-data.html:
  • Layout/fixed-grid-lots-of-stretched-data.html:

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::isLayoutDependent):
(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSParser.cpp:

(WebCore::isSimpleLengthPropertyID):
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseGridGapShorthand):
(WebCore::CSSParser::parseGridTemplateRowsAndAreasAndColumns):
(WebCore::CSSParser::parseGridTemplateShorthand):
(WebCore::CSSParser::parseGridShorthand):
(WebCore::CSSParser::parseGridAreaShorthand):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSPropertyNames.in:
  • css/CSSValueKeywords.in:
  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyInitialGridTemplateAreas):
(WebCore::StyleBuilderCustom::applyInheritGridTemplateAreas):
(WebCore::StyleBuilderCustom::applyValueGridTemplateAreas):
(WebCore::StyleBuilderCustom::applyInitialGridTemplateColumns):
(WebCore::StyleBuilderCustom::applyInheritGridTemplateColumns):
(WebCore::StyleBuilderCustom::applyValueGridTemplateColumns):
(WebCore::StyleBuilderCustom::applyInitialGridTemplateRows):
(WebCore::StyleBuilderCustom::applyInheritGridTemplateRows):
(WebCore::StyleBuilderCustom::applyValueGridTemplateRows):

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue):

Source/WebInspectorUI:

  • UserInterface/Models/CSSKeywordCompletions.js:

Tools:

  • TestWebKitAPI/Tests/WebCore/CSSParser.cpp:

(TestWebKitAPI::TEST):

LayoutTests:

  • css3/parse-align-content.html:
  • css3/parse-align-items.html:
  • css3/parse-align-self.html:
  • css3/parse-justify-content.html:
  • fast/css-grid-layout/absolute-positioning-definite-sizes.html:
  • fast/css-grid-layout/absolute-positioning-grid-container-containing-block.html:
  • fast/css-grid-layout/absolute-positioning-grid-container-parent.html:
  • fast/css-grid-layout/anonymous-grid-items-expected.html:
  • fast/css-grid-layout/anonymous-grid-items.html:
  • fast/css-grid-layout/auto-content-resolution-columns.html:
  • fast/css-grid-layout/auto-content-resolution-rows.html:
  • fast/css-grid-layout/breadth-size-resolution-grid.html:
  • fast/css-grid-layout/calc-resolution-grid-item.html:
  • fast/css-grid-layout/compute-intrinsic-widths-scrollbar.html:
  • fast/css-grid-layout/display-grid-set-get-expected.txt:
  • fast/css-grid-layout/explicit-grid-size.html:
  • fast/css-grid-layout/flex-and-content-sized-resolution-columns-expected.txt:
  • fast/css-grid-layout/flex-and-content-sized-resolution-columns.html:
  • fast/css-grid-layout/flex-and-intrinsic-sizes.html:
  • fast/css-grid-layout/flex-and-minmax-content-resolution-columns.html:
  • fast/css-grid-layout/flex-and-minmax-content-resolution-rows.html:
  • fast/css-grid-layout/flex-content-distribution.html:
  • fast/css-grid-layout/flex-content-resolution-columns.html:
  • fast/css-grid-layout/flex-content-resolution-rows.html:
  • fast/css-grid-layout/flex-content-sized-column-use-available-width.html:
  • fast/css-grid-layout/flex-content-sized-columns-resize.html:
  • fast/css-grid-layout/flex-factor-sum-less-than-1.html:
  • fast/css-grid-layout/float-not-protruding-into-next-grid-item.html:
  • fast/css-grid-layout/floating-empty-grids.html:
  • fast/css-grid-layout/grid-align-content-distribution-vertical-lr.html:
  • fast/css-grid-layout/grid-align-content-distribution-vertical-rl.html:
  • fast/css-grid-layout/grid-align-content-distribution.html:
  • fast/css-grid-layout/grid-align-content-vertical-lr.html:
  • fast/css-grid-layout/grid-align-content-vertical-rl.html:
  • fast/css-grid-layout/grid-align-content.html:
  • fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-lr.html:
  • fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-rl.html:
  • fast/css-grid-layout/grid-align-justify-margin-border-padding.html:
  • fast/css-grid-layout/grid-align-justify-overflow.html:
  • fast/css-grid-layout/grid-align-justify-stretch.html:
  • fast/css-grid-layout/grid-align-stretching-replaced-items.html:
  • fast/css-grid-layout/grid-align.html:
  • fast/css-grid-layout/grid-auto-columns-rows-auto-flow-resolution.html:
  • fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt:
  • fast/css-grid-layout/grid-auto-columns-rows-get-set.html:
  • fast/css-grid-layout/grid-auto-columns-rows-resolution.html:
  • fast/css-grid-layout/grid-auto-columns-rows-update.html:
  • fast/css-grid-layout/grid-auto-flow-get-set-expected.txt:
  • fast/css-grid-layout/grid-auto-flow-get-set.html:
  • fast/css-grid-layout/grid-auto-flow-resolution.html:
  • fast/css-grid-layout/grid-auto-flow-sparse.html:
  • fast/css-grid-layout/grid-auto-flow-update.html:
  • fast/css-grid-layout/grid-automatic-minimum-for-auto-columns-expected.txt:
  • fast/css-grid-layout/grid-automatic-minimum-for-auto-columns.html:
  • fast/css-grid-layout/grid-automatic-minimum-for-auto-rows-expected.txt:
  • fast/css-grid-layout/grid-automatic-minimum-for-auto-rows.html:
  • fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:
  • fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt:
  • fast/css-grid-layout/grid-columns-rows-get-set-multiple.html:
  • fast/css-grid-layout/grid-columns-rows-get-set.html:
  • fast/css-grid-layout/grid-container-change-named-grid-lines-recompute-child.html:
  • fast/css-grid-layout/grid-container-ignore-first-letter.html:
  • fast/css-grid-layout/grid-content-alignment-and-self-alignment-spanning.html:
  • fast/css-grid-layout/grid-content-alignment-and-self-alignment.html:
  • fast/css-grid-layout/grid-content-alignment-overflow.html:
  • fast/css-grid-layout/grid-content-alignment-stretch-only-valid-for-auto-sized-tracks.html:
  • fast/css-grid-layout/grid-content-alignment-stretch-with-different-sized-tracks.html:
  • fast/css-grid-layout/grid-content-alignment-with-span-vertical-lr.html:
  • fast/css-grid-layout/grid-content-alignment-with-span-vertical-rl.html:
  • fast/css-grid-layout/grid-content-alignment-with-span.html:
  • fast/css-grid-layout/grid-content-sized-columns-resolution-expected.txt:
  • fast/css-grid-layout/grid-content-sized-columns-resolution.html:
  • fast/css-grid-layout/grid-disable.html:
  • fast/css-grid-layout/grid-dynamic-updates-relayout.html:
  • fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
  • fast/css-grid-layout/grid-element-auto-repeat-get-set.html:
  • fast/css-grid-layout/grid-element-border-grid-item.html:
  • fast/css-grid-layout/grid-element-border-padding-grid-item.html:
  • fast/css-grid-layout/grid-element-change-columns-repaint.html:
  • fast/css-grid-layout/grid-element-change-rows-repaint.html:
  • fast/css-grid-layout/grid-element-empty-row-column.html:
  • fast/css-grid-layout/grid-element-min-max-height.html:
  • fast/css-grid-layout/grid-element-min-max-width.html:
  • fast/css-grid-layout/grid-element-padding-grid-item.html:
  • fast/css-grid-layout/grid-element-padding-margin.html:
  • fast/css-grid-layout/grid-element-repeat-get-set-expected.txt:
  • fast/css-grid-layout/grid-element-repeat-get-set.html:
  • fast/css-grid-layout/grid-element-shrink-to-fit.html:
  • fast/css-grid-layout/grid-grow-tracks-to-their-max-expected.txt:
  • fast/css-grid-layout/grid-grow-tracks-to-their-max.html:
  • fast/css-grid-layout/grid-gutters-and-alignment.html:
  • fast/css-grid-layout/grid-gutters-and-flex-content.html:
  • fast/css-grid-layout/grid-gutters-and-tracks.html:
  • fast/css-grid-layout/grid-gutters-get-set-expected.txt:
  • fast/css-grid-layout/grid-gutters-get-set.html:
  • fast/css-grid-layout/grid-indefinite-calculated-height-crash-expected.txt:
  • fast/css-grid-layout/grid-indefinite-calculated-height-crash.html:
  • fast/css-grid-layout/grid-initialize-span-one-items-expected.txt:
  • fast/css-grid-layout/grid-initialize-span-one-items.html:
  • fast/css-grid-layout/grid-item-addition-auto-placement-update.html:
  • fast/css-grid-layout/grid-item-addition-track-breadth-update.html:
  • fast/css-grid-layout/grid-item-area-get-set-expected.txt:
  • fast/css-grid-layout/grid-item-area-get-set.html:
  • fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-lr.html:
  • fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-rl.html:
  • fast/css-grid-layout/grid-item-auto-margins-alignment.html:
  • fast/css-grid-layout/grid-item-auto-margins-and-stretch.html:
  • fast/css-grid-layout/grid-item-auto-margins-must-respect-specified-margins.html:
  • fast/css-grid-layout/grid-item-auto-placement-automatic-span.html:
  • fast/css-grid-layout/grid-item-auto-placement-definite-span.html:
  • fast/css-grid-layout/grid-item-auto-placement-fixed-row-column.html:
  • fast/css-grid-layout/grid-item-auto-sized-align-justify-margin-border-padding.html:
  • fast/css-grid-layout/grid-item-bad-named-area-auto-placement.html:
  • fast/css-grid-layout/grid-item-bad-resolution-double-span.html:
  • fast/css-grid-layout/grid-item-change-column-repaint.html:
  • fast/css-grid-layout/grid-item-change-row-repaint.html:
  • fast/css-grid-layout/grid-item-column-row-get-set-expected.txt:
  • fast/css-grid-layout/grid-item-column-row-get-set.html:
  • fast/css-grid-layout/grid-item-display.html:
  • fast/css-grid-layout/grid-item-end-after-get-set-expected.txt:
  • fast/css-grid-layout/grid-item-end-after-get-set.html:
  • fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-ltr.html:
  • fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-rtl.html:
  • fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-ltr.html:
  • fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-rtl.html:
  • fast/css-grid-layout/grid-item-margin-resolution.html:
  • fast/css-grid-layout/grid-item-margins-not-collapse.html:
  • fast/css-grid-layout/grid-item-multiple-minmax-content-resolution.html:
  • fast/css-grid-layout/grid-item-named-grid-area-resolution.html:
  • fast/css-grid-layout/grid-item-named-grid-line-resolution.html:
  • fast/css-grid-layout/grid-item-negative-indexes.html:
  • fast/css-grid-layout/grid-item-negative-integer-explicit-grid-resolution.html:
  • fast/css-grid-layout/grid-item-negative-position-resolution.html:
  • fast/css-grid-layout/grid-item-order-auto-flow-resolution.html:
  • fast/css-grid-layout/grid-item-order-in-content-sized-columns-resolution.html:
  • fast/css-grid-layout/grid-item-order-paint-order.html:
  • fast/css-grid-layout/grid-item-position-changed-dynamic.html:
  • fast/css-grid-layout/grid-item-removal-auto-placement-update.html:
  • fast/css-grid-layout/grid-item-removal-track-breadth-update.html:
  • fast/css-grid-layout/grid-item-spanning-resolution.html:
  • fast/css-grid-layout/grid-item-start-before-get-set-expected.txt:
  • fast/css-grid-layout/grid-item-start-before-get-set.html:
  • fast/css-grid-layout/grid-item-stretch-with-margins-borders-padding-vertical-lr.html:
  • fast/css-grid-layout/grid-item-stretch-with-margins-borders-padding-vertical-rl.html:
  • fast/css-grid-layout/grid-item-stretch-with-margins-borders-padding.html:
  • fast/css-grid-layout/grid-item-text-background-not-interleaved.html:
  • fast/css-grid-layout/grid-item-unknown-named-grid-line-resolution.html:
  • fast/css-grid-layout/grid-item-with-border-in-fr.html:
  • fast/css-grid-layout/grid-item-with-border-in-intrinsic.html:
  • fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-resolution.html:
  • fast/css-grid-layout/grid-item-with-percent-min-max-height-dynamic.html:
  • fast/css-grid-layout/grid-item-z-index-change-repaint-expected.html:
  • fast/css-grid-layout/grid-item-z-index-change-repaint.html:
  • fast/css-grid-layout/grid-item-z-index-stacking-context-expected.html:
  • fast/css-grid-layout/grid-item-z-index-stacking-context.html:
  • fast/css-grid-layout/grid-item-z-index-support.html:
  • fast/css-grid-layout/grid-items-should-not-be-stretched-when-height-or-width-or-margin-change.html:
  • fast/css-grid-layout/grid-justify-content-distribution-vertical-lr.html:
  • fast/css-grid-layout/grid-justify-content-distribution-vertical-rl.html:
  • fast/css-grid-layout/grid-justify-content-distribution.html:
  • fast/css-grid-layout/grid-justify-content-vertical-lr.html:
  • fast/css-grid-layout/grid-justify-content-vertical-rl.html:
  • fast/css-grid-layout/grid-justify-content.html:
  • fast/css-grid-layout/grid-percent-track-margin-border-padding.html:
  • fast/css-grid-layout/grid-percent-track-scrollbar.html:
  • fast/css-grid-layout/grid-positioned-children-writing-modes.html:
  • fast/css-grid-layout/grid-positioned-items-background-rtl.html:
  • fast/css-grid-layout/grid-positioned-items-background.html:
  • fast/css-grid-layout/grid-positioned-items-content-alignment-rtl.html:
  • fast/css-grid-layout/grid-positioned-items-content-alignment.html:
  • fast/css-grid-layout/grid-positioned-items-gaps-rtl.html:
  • fast/css-grid-layout/grid-positioned-items-gaps.html:
  • fast/css-grid-layout/grid-positioned-items-implicit-grid-line.html:
  • fast/css-grid-layout/grid-positioned-items-implicit-grid.html:
  • fast/css-grid-layout/grid-positioned-items-padding.html:
  • fast/css-grid-layout/grid-positioned-items-unknown-named-grid-line.html:
  • fast/css-grid-layout/grid-positioned-items-within-grid-implicit-track.html:
  • fast/css-grid-layout/grid-preferred-logical-widths.html:
  • fast/css-grid-layout/grid-repeat-calc-expected.txt:
  • fast/css-grid-layout/grid-repeat-calc.html:
  • fast/css-grid-layout/grid-shorthand-computed-style-crash.html:
  • fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-shorthand-get-set.html:
  • fast/css-grid-layout/grid-sizing-positioned-items.html:
  • fast/css-grid-layout/grid-strict-ordering-crash.html:
  • fast/css-grid-layout/grid-template-areas-empty-string-crash.html:
  • fast/css-grid-layout/grid-template-areas-get-set-expected.txt:
  • fast/css-grid-layout/grid-template-areas-get-set.html:
  • fast/css-grid-layout/grid-template-areas-infinite-loop.html:
  • fast/css-grid-layout/grid-template-columns-rows-computed-style-gaps-content-alignment-expected.txt:
  • fast/css-grid-layout/grid-template-columns-rows-computed-style-gaps-content-alignment.html:
  • fast/css-grid-layout/grid-template-shorthand-computed-style-crash.html:
  • fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-template-shorthand-get-set.html:
  • fast/css-grid-layout/grid-update-sizes-after-distributing-all-expected.txt:
  • fast/css-grid-layout/grid-update-sizes-after-distributing-all.html:
  • fast/css-grid-layout/grid-was-populated-assert.html:
  • fast/css-grid-layout/grid-with-relative-font-length-crash.html:
  • fast/css-grid-layout/implicit-columns-auto-resolution.html:
  • fast/css-grid-layout/implicit-position-dynamic-change-expected.txt:
  • fast/css-grid-layout/implicit-position-dynamic-change.html:
  • fast/css-grid-layout/implicit-rows-auto-resolution.html:
  • fast/css-grid-layout/implicit-tracks-before-explicit.html:
  • fast/css-grid-layout/justify-self-cell.html:
  • fast/css-grid-layout/mark-as-infinitely-growable-expected.txt:
  • fast/css-grid-layout/mark-as-infinitely-growable.html:
  • fast/css-grid-layout/maximize-tracks-definite-indefinite-height.html:
  • fast/css-grid-layout/min-content-row-must-shrink-when-column-grows.html:
  • fast/css-grid-layout/min-height-border-box.html:
  • fast/css-grid-layout/min-width-height-auto-and-margins.html:
  • fast/css-grid-layout/min-width-height-auto-overflow.html:
  • fast/css-grid-layout/min-width-height-auto.html:
  • fast/css-grid-layout/min-width-margin-box.html:
  • fast/css-grid-layout/minmax-fixed-logical-height-only.html:
  • fast/css-grid-layout/minmax-fixed-logical-width-only.html:
  • fast/css-grid-layout/minmax-max-content-resolution-columns.html:
  • fast/css-grid-layout/minmax-max-content-resolution-rows.html:
  • fast/css-grid-layout/minmax-min-content-column-resolution-columns.html:
  • fast/css-grid-layout/minmax-min-content-column-resolution-rows.html:
  • fast/css-grid-layout/minmax-spanning-resolution-columns.html:
  • fast/css-grid-layout/minmax-spanning-resolution-rows.html:
  • fast/css-grid-layout/named-grid-line-get-set-expected.txt:
  • fast/css-grid-layout/named-grid-line-get-set.html:
  • fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks-expected.txt:
  • fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html:
  • fast/css-grid-layout/named-grid-lines-with-named-grid-areas-dynamic-get-set.html:
  • fast/css-grid-layout/named-grid-lines-with-named-grid-areas-get-set-expected.txt:
  • fast/css-grid-layout/named-grid-lines-with-named-grid-areas-get-set.html:
  • fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html:
  • fast/css-grid-layout/non-grid-columns-rows-get-set-expected.txt:
  • fast/css-grid-layout/non-grid-columns-rows-get-set-multiple-expected.txt:
  • fast/css-grid-layout/non-grid-columns-rows-get-set-multiple.html:
  • fast/css-grid-layout/non-grid-columns-rows-get-set.html:
  • fast/css-grid-layout/non-grid-element-repeat-get-set-expected.txt:
  • fast/css-grid-layout/non-grid-element-repeat-get-set.html:
  • fast/css-grid-layout/non-named-grid-line-get-set-expected.txt:
  • fast/css-grid-layout/non-named-grid-line-get-set.html:
  • fast/css-grid-layout/percent-grid-item-in-percent-grid-track-in-percent-grid.html:
  • fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update.html:
  • fast/css-grid-layout/percent-grid-item-in-percent-grid-track.html:
  • fast/css-grid-layout/percent-intrinsic-track-breadth.html:
  • fast/css-grid-layout/percent-of-indefinite-track-size-in-auto.html:
  • fast/css-grid-layout/percent-of-indefinite-track-size-in-minmax-crash.html:
  • fast/css-grid-layout/percent-of-indefinite-track-size.html:
  • fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update.html:
  • fast/css-grid-layout/percent-padding-margin-resolution-grid-item.html:
  • fast/css-grid-layout/percent-resolution-grid-item.html:
  • fast/css-grid-layout/percent-track-breadths-regarding-container-size.html:
  • fast/css-grid-layout/place-cell-by-index.html:
  • fast/css-grid-layout/positioned-grid-items-should-not-create-implicit-tracks.html:
  • fast/css-grid-layout/positioned-grid-items-should-not-take-up-space.html:
  • fast/css-grid-layout/relayout-align-items-changed.html:
  • fast/css-grid-layout/relayout-align-self-changed.html:
  • fast/css-grid-layout/relayout-indefinite-heights.html:
  • fast/css-grid-layout/relayout-justify-items-changed.html:
  • fast/css-grid-layout/relayout-justify-self-changed.html:
  • fast/css-grid-layout/resources/display-grid-set-get.js:
  • fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js:

(testInherit):
(testInitial):

  • fast/css-grid-layout/resources/grid-columns-rows-get-set.js:

(testInherit):
(testInitial):

  • fast/css-grid-layout/resources/grid-definitions-parsing-utils.js:

(testGridTemplatesValues):
(checkGridTemplatesSetJSValues):
(testGridTemplatesSetBadJSValues):
(checkGridAutoFlowSetCSSValue):
(checkGridAutoFlowSetJSValue):
(testGridAutoDefinitionsValues):
(testGridGapDefinitionsValues):

  • fast/css-grid-layout/resources/grid-item-column-row-parsing-utils.js:

(checkColumnRowValues):
(window.testColumnRowJSParsing):
(window.testColumnRowInvalidJSParsing):
(window.testColumnStartRowStartJSParsing):
(window.testColumnEndRowEndJSParsing):
(setupInheritTest):
(setupInitialTest):
(window.testColumnRowInheritJSParsing):
(window.testStartBeforeInheritJSParsing):
(window.testEndAfterInheritJSParsing):
(window.testColumnRowInitialJSParsing):
(window.testStartBeforeInitialJSParsing):
(window.testEndAfterInitialJSParsing):

  • fast/css-grid-layout/resources/grid-shorthand-parsing-utils.js:

(testGridDefinitionsValues):
(checkGridDefinitionsSetJSValues):
(testGridDefinitionsSetBadJSValues):

  • fast/css-grid-layout/resources/grid-template-shorthand-parsing-utils.js:

(testGridDefinitionsValues):
(checkGridDefinitionsSetJSValues):
(testGridDefinitionsSetBadJSValues):

  • fast/css-grid-layout/resources/grid.css:

(.grid):
(.inline-grid):
(.firstRowFirstColumn):
(.onlyFirstRowOnlyFirstColumn):
(.firstRowSecondColumn):
(.onlyFirstRowOnlySecondColumn):
(.firstRowThirdColumn):
(.firstRowFourthColumn):
(.secondRowFirstColumn):
(.onlySecondRowOnlyFirstColumn):
(.secondRowSecondColumn):
(.onlySecondRowOnlySecondColumn):
(.endSecondRowEndSecondColumn):
(.secondRowThirdColumn):
(.secondRowFourthColumn):
(.thirdRowFirstColumn):
(.thirdRowSecondColumn):
(.thirdRowThirdColumn):
(.fourthRowFirstColumn):
(.fourthRowSecondColumn):
(.firstAutoRowSecondAutoColumn):
(.autoLastRowAutoLastColumn):
(.autoSecondRowAutoFirstColumn):
(.firstRowBothColumn):
(.secondRowBothColumn):
(.bothRowFirstColumn):
(.bothRowSecondColumn):
(.bothRowBothColumn):
(.autoRowAutoColumn):
(.firstRowAutoColumn):
(.secondRowAutoColumn):
(.thirdRowAutoColumn):
(.autoRowFirstColumn):
(.autoRowSecondColumn):
(.autoRowThirdColumn):
(.autoRowAutoColumnSpanning2):
(.autoRowSpanning2AutoColumn):
(.autoRowSpanning2AutoColumnSpanning3):
(.autoRowSpanning3AutoColumnSpanning2):
(.autoRowFirstColumnSpanning2):
(.autoRowSecondColumnSpanning2):
(.firstRowSpanning2AutoColumn):
(.secondRowSpanning2AutoColumn):
(.gridAutoFlowColumnSparse):
(.gridAutoFlowColumnDense):
(.gridAutoFlowRowSparse):
(.gridAutoFlowRowDense):

  • fast/css-grid-layout/resources/non-grid-columns-rows-get-set-multiple.js:

(testInherit):
(testInitial):

  • fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js:

(testInherit):
(testInitial):

  • fast/css-grid-layout/should-not-collapse-anonymous-blocks.html:
  • fast/css-grid-layout/swap-lines-if-start-is-further-endward-than-end-line-expected.html:
  • fast/css-grid-layout/swap-lines-if-start-is-further-endward-than-end-line.html:
  • fast/css-grid-layout/tracks-number-greatly-exceeding-available-size-crash.html:
  • fast/css/auto-min-size.html:
  • fast/css/first-letter-ignores-display-property.html:
  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • fast/css/getComputedStyle/resources/property-names.js:
  • fast/css/parse-justify-items.html:
  • fast/events/key-events-in-editable-gridbox.html:
  • fast/repaint/align-items-overflow-change.html:
  • fast/repaint/align-self-change.html:
  • fast/repaint/align-self-overflow-change.html:
  • fast/repaint/justify-items-change.html:
  • fast/repaint/justify-items-legacy-change.html:
  • fast/repaint/justify-items-overflow-change.html:
  • fast/repaint/justify-self-change.html:
  • fast/repaint/justify-self-overflow-change.html:
  • fast/text-autosizing/cluster-inline-grid-flex-box-expected.html:
  • fast/text-autosizing/cluster-inline-grid-flex-box.html:
  • ietestcenter/css3/grid/display-grid-001-expected.htm:
  • ietestcenter/css3/grid/display-grid-001.htm:
  • ietestcenter/css3/grid/display-grid-002-expected.htm:
  • ietestcenter/css3/grid/display-grid-002.htm:
  • ietestcenter/css3/grid/grid-column-001-expected.htm:
  • ietestcenter/css3/grid/grid-column-001.htm:
  • ietestcenter/css3/grid/grid-column-002-expected.htm:
  • ietestcenter/css3/grid/grid-column-002.htm:
  • ietestcenter/css3/grid/grid-column-003-expected.htm:
  • ietestcenter/css3/grid/grid-column-003.htm:
  • ietestcenter/css3/grid/grid-columns-001-expected.htm:
  • ietestcenter/css3/grid/grid-columns-001.htm:
  • ietestcenter/css3/grid/grid-items-001-expected.htm:
  • ietestcenter/css3/grid/grid-items-001.htm:
  • ietestcenter/css3/grid/grid-items-002-expected.htm:
  • ietestcenter/css3/grid/grid-items-002.htm:
  • ietestcenter/css3/grid/grid-items-003-expected.htm:
  • ietestcenter/css3/grid/grid-items-003.htm:
  • ietestcenter/css3/grid/grid-items-004-expected.htm:
  • ietestcenter/css3/grid/grid-items-004.htm:
  • ietestcenter/css3/grid/grid-items-005-expected.htm:
  • ietestcenter/css3/grid/grid-items-005.htm:
  • svg/css/getComputedStyle-basic-expected.txt:
12:45 AM Changeset in webkit [200509] by n_wang@apple.com
  • 5 edits
    2 adds in trunk

AX: <attachment> element should have a replacement character
https://bugs.webkit.org/show_bug.cgi?id=157406

Reviewed by Chris Fleizach.

Source/WebCore:

Make sure attachment element is considered as a replaced node.

Test: accessibility/mac/attachment-element-replacement-character.html

  • editing/TextIterator.cpp:

(WebCore::isRendererReplacedElement):

LayoutTests:

  • accessibility/attachment-element-expected.txt:
  • accessibility/mac/attachment-element-replacement-character-expected.txt: Added.
  • accessibility/mac/attachment-element-replacement-character.html: Added.
  • editing/pasteboard/drag-and-drop-attachment-contenteditable-expected.txt:
12:27 AM Changeset in webkit [200508] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: String for document range is empty if end visible position anchors to a ignored replaced node
https://bugs.webkit.org/show_bug.cgi?id=157403

Reviewed by Chris Fleizach.

Source/WebCore:

The CharacterOffset that is converted from VisiblePositon is wrong when the VisiblePostion anchors
to an ignored replaced node. Fixed it by adjusting the offset of the CharacterOffset correctly in
such case.

Test: accessibility/mac/text-marker-string-for-document-end-replaced-node.html

  • accessibility/AXObjectCache.cpp:

(WebCore::characterOffsetsInOrder):
(WebCore::AXObjectCache::characterOffsetFromVisiblePosition):
(WebCore::AXObjectCache::accessibilityObjectForTextMarkerData):

LayoutTests:

  • accessibility/mac/text-marker-string-for-document-end-replaced-node-expected.txt: Added.
  • accessibility/mac/text-marker-string-for-document-end-replaced-node.html: Added.
Note: See TracTimeline for information about the timeline view.