⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Jun 27, 2017:

11:42 PM Changeset in webkit [218868] by jfbastien@apple.com
  • 15 edits
    4 adds in trunk

WebAssembly: running out of executable memory should throw OoM
https://bugs.webkit.org/show_bug.cgi?id=171537
<rdar://problem/32963338>

Reviewed by Saam Barati.

JSTests:

  • wasm.yaml:
  • wasm/lowExecutableMemory/executable-memory-oom.js: Added.

(const.invoke):
(failCount.0.catch):
(failCount.0.module.undefined.catch):

  • wasm/lowExecutableMemory/exports-oom.js: Added.

(const.type):
(const.params):
(const.randomProgram):
(failCount.0.catch):
(failCount.0.module.undefined.catch):

  • wasm/lowExecutableMemory/imports-oom.js: Added.

(const.type):
(const.params):
(const.randomProgram):
(f.imports.push):
(failCount.0.catch):
(failCount.0.module.undefined.catch):

Source/JavaScriptCore:

Both on first compile with BBQ as well as on tier-up with OMG,
running out of X memory shouldn't cause the entire program to
terminate. An exception will do when compiling initial code (since
we don't have any other fallback at the moment), and refusal to
tier up will do as well (it'll just be slower).

This is useful because programs which generate huge amounts of
code simply look like crashes, which developers report to
us. Getting a JavaScript exception instead is much clearer.

  • jit/ExecutableAllocator.cpp:

(JSC::ExecutableAllocator::allocate):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::shouldJIT):

  • runtime/Options.h:
  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::prepare):
(JSC::Wasm::BBQPlan::complete):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToJs):
(JSC::Wasm::wasmToWasm):

  • wasm/WasmBinding.h:
  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):

  • wasm/js/JSWebAssemblyCodeBlock.cpp:

(JSC::JSWebAssemblyCodeBlock::JSWebAssemblyCodeBlock):

  • wasm/js/JSWebAssemblyCodeBlock.h:
  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::finalizeCreation):

Tools:

  • Scripts/run-jsc-stress-tests: add a configuration which runs the

tests under limited executable memory and avoids non-WebAssembly
code generation so that we more reliably run out of executable
memory in WebAssembly.

11:23 PM Changeset in webkit [218867] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

JITStubRoutine::passesFilter should use isJITPC
https://bugs.webkit.org/show_bug.cgi?id=173906

Reviewed by JF Bastien.

This patch makes JITStubRoutine use the isJITPC abstraction defined
inside ExecutableAllocator.h. Before, JITStubRoutine was using a
hardcoded platform size constant. This means it'd do the wrong thing
if Options::jitMemoryReservationSize() was larger than the defined
constant for that platform. This patch also removes a bunch of
dead code in that file.

  • jit/ExecutableAllocator.cpp:
  • jit/ExecutableAllocator.h:
  • jit/JITStubRoutine.h:

(JSC::JITStubRoutine::passesFilter):
(JSC::JITStubRoutine::canPerformRangeFilter): Deleted.
(JSC::JITStubRoutine::filteringStartAddress): Deleted.
(JSC::JITStubRoutine::filteringExtentSize): Deleted.

10:45 PM Changeset in webkit [218866] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Fix some stale comments in Wasm code base
https://bugs.webkit.org/show_bug.cgi?id=173814

Reviewed by Mark Lam.

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToJs):

  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::runOMGPlanForIndex):

10:14 PM Changeset in webkit [218865] by Chris Dumez
  • 12 edits in trunk/Source

[ResourceLoadStatistics] Update minimumTimeBetweeenDataRecordsRemoval to 1 hour instead of 1 minute
https://bugs.webkit.org/show_bug.cgi?id=173895
<rdar://problem/32984366>

Reviewed by Brent Fulgham.

Update minimumTimeBetweeenDataRecordsRemoval to 1 hour instead of 1 minute to save battery.
Also port code to modern time types.

Source/WebCore:

  • loader/ResourceLoadObserver.cpp:

(WebCore::reduceTimeResolution):
(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
(WebCore::ResourceLoadObserver::setTimeToLiveUserInteraction):
(WebCore::ResourceLoadObserver::setTimeToLiveCookiePartitionFree):
(WebCore::ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval):
(WebCore::ResourceLoadObserver::setReducedTimestampResolution):
(WebCore::ResourceLoadObserver::setGrandfatheringTime):

  • loader/ResourceLoadObserver.h:
  • loader/ResourceLoadStatistics.h:

(WebCore::ResourceLoadStatistics::mostRecentUserInteractionTime):

  • loader/ResourceLoadStatisticsStore.cpp:

(WebCore::ResourceLoadStatisticsStore::createEncoderFromData):
(WebCore::ResourceLoadStatisticsStore::readDataFromDecoder):
(WebCore::shouldPartitionCookies):
(WebCore::ResourceLoadStatisticsStore::setTimeToLiveUserInteraction):
(WebCore::ResourceLoadStatisticsStore::setTimeToLiveCookiePartitionFree):
(WebCore::ResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval):
(WebCore::ResourceLoadStatisticsStore::setGrandfatheringTime):
(WebCore::ResourceLoadStatisticsStore::hasHadRecentUserInteraction):
(WebCore::ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor):
(WebCore::ResourceLoadStatisticsStore::handleFreshStartWithEmptyOrNoStore):
(WebCore::ResourceLoadStatisticsStore::shouldRemoveDataRecords):
(WebCore::ResourceLoadStatisticsStore::dataRecordsBeingRemoved):

  • loader/ResourceLoadStatisticsStore.h:

Source/WebKit2:

  • UIProcess/API/C/WKResourceLoadStatisticsManager.cpp:

(WKResourceLoadStatisticsManagerSetTimeToLiveUserInteraction):
(WKResourceLoadStatisticsManagerSetTimeToLiveCookiePartitionFree):
(WKResourceLoadStatisticsManagerSetMinimumTimeBetweeenDataRecordsRemoval):
(WKResourceLoadStatisticsManagerSetGrandfatheringTime):

  • UIProcess/WebResourceLoadStatisticsManager.cpp:

(WebKit::WebResourceLoadStatisticsManager::setTimeToLiveUserInteraction):
(WebKit::WebResourceLoadStatisticsManager::setTimeToLiveCookiePartitionFree):
(WebKit::WebResourceLoadStatisticsManager::setMinimumTimeBetweeenDataRecordsRemoval):
(WebKit::WebResourceLoadStatisticsManager::setGrandfatheringTime):

  • UIProcess/WebResourceLoadStatisticsManager.h:
  • UIProcess/WebResourceLoadStatisticsStore.h:
10:06 PM Changeset in webkit [218864] by Chris Dumez
  • 5 edits in trunk/Source

Port HysteresisActivity to Seconds type
https://bugs.webkit.org/show_bug.cgi?id=173902

Reviewed by Simon Fraser.

Source/WebCore:

  • platform/HysteresisActivity.h:

(WebCore::HysteresisActivity::HysteresisActivity):
(WebCore::HysteresisActivity::stop):

  • platform/ios/WebSQLiteDatabaseTrackerClient.mm:

Source/WebKit2:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_pageScrolledHysteresis):

9:52 PM Changeset in webkit [218863] by Jonathan Bedard
  • 2 edits in trunk/Source/WebCore/PAL

Build fix for PAL
https://bugs.webkit.org/show_bug.cgi?id=173896

Reviewed by Myles C. Maxfield.

  • PAL.xcodeproj/project.pbxproj: Ensure that the SRCROOT is WebCore/PAL and not

just WebCore.

9:23 PM Changeset in webkit [218862] by Joseph Pecoraro
  • 4 edits
    2 adds
    1 delete in trunk/LayoutTests

Web Inspector: Cleanup RemoteObject tests
https://bugs.webkit.org/show_bug.cgi?id=173885

Reviewed by Matt Baker.

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

Split out DOM results (which differ across ports and features).

  • inspector/model/resources/remote-object-utilities.js:

(TestPage.registerInitializer.window.runSteps):
This should have been a continue not a return.

  • platform/mac/inspector/model/remote-object-dom-expected.txt: Added.
  • platform/mac/inspector/model/remote-object-expected.txt: Removed.

Platform expectations are now limited to just the DOM test.

8:05 PM Changeset in webkit [218861] by Caio Lima
  • 25 edits
    1 add in trunk

[ESnext] Implement Object Rest - Implementing Object Rest Destructuring
https://bugs.webkit.org/show_bug.cgi?id=167962

Reviewed by Saam Barati.

JSTests:

  • stress/object-rest-deconstruct.js: Added.

(let.assert):
(let.assertPropDescriptor):
(catch):
(get 3):
(foo):
(let.src.get y):
(let.src.set y):
(let.gen):

Source/JavaScriptCore:

Object Rest/Spread Destructing proposal is in stage 3[1] and this
Patch is a prototype implementation of it. A simple change over the
parser was necessary to support the new '...' token on Object Pattern
destruction rule. In the bytecode generator side, We changed the
bytecode generated on ObjectPatternNode::bindValue to store in an
set the identifiers of already destructured properties, following spec draft
section[2], and then pass it as excludedNames to CopyDataProperties.
The rest destructuring calls copyDataProperties to perform the
copy of rest properties in rhs.

We also implemented CopyDataProperties as private JS global operation
on builtins/GlobalOperations.js following it's specification on [3].
It is implemented using Set object to verify if a property is on
excludedNames to keep this algorithm with O(n + m) complexity, where n

number of source's own properties and m = excludedNames.length.

In this implementation we aren't using excludeList as constant if
destructuring pattern contains computed property, i.e. we can
just determine the key to be excluded at runtime. If we can define all
identifiers in the pattern in compile time, we then create a
constant JSSet. This approach gives a good performance improvement,
since we allocate the excludeSet just once, reducing GC pressure.

[1] - https://github.com/tc39/proposal-object-rest-spread
[2] - https://tc39.github.io/proposal-object-rest-spread/#Rest-RuntimeSemantics-PropertyDestructuringAssignmentEvaluation
[3] - https://tc39.github.io/proposal-object-rest-spread/#AbstractOperations-CopyDataProperties

  • builtins/BuiltinNames.h:
  • builtins/GlobalOperations.js:

(globalPrivate.copyDataProperties):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • bytecompiler/NodesCodegen.cpp:

(JSC::ObjectPatternNode::bindValue):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::appendObjectPatternEntry):
(JSC::ASTBuilder::appendObjectPatternRestEntry):
(JSC::ASTBuilder::setContainsObjectRestElement):

  • parser/Nodes.h:

(JSC::ObjectPatternNode::appendEntry):
(JSC::ObjectPatternNode::setContainsRestElement):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseProperty):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::operatorStackPop):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::asyncFunctionStructure):
(JSC::JSGlobalObject::setStructure): Deleted.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::privateToObject):

  • runtime/JSGlobalObjectFunctions.h:
  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::finishCreation):

  • runtime/SetPrototype.cpp:

(JSC::SetPrototype::finishCreation):

Source/WTF:

  • wtf/HashSet.h:

(WTF::=):

LayoutTests:

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:
6:47 PM Changeset in webkit [218860] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Move WebsiteDataRecord processing off-thread in WebsiteDataStore::fetchDataForTopPrivatelyControlledDomains()
https://bugs.webkit.org/show_bug.cgi?id=173882
<rdar://problem/32984366>

Reviewed by Darin Adler.

Move WebsiteDataRecord processing off-thread in WebsiteDataStore::fetchDataForTopPrivatelyControlledDomains()
as we have data showing it is slow and hangs the UIProcess' main thread.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataForTopPrivatelyControlledDomains):

6:09 PM Changeset in webkit [218859] by Yusuke Suzuki
  • 5 edits in trunk/LayoutTests

Unreviewed, unmark workers/bomb.html flakiness after r218856

  • platform/gtk-wayland/TestExpectations:
  • platform/ios-device/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
6:06 PM Changeset in webkit [218858] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

[WK2][macOS] Expand sandbox to allow access to the CoreMedia volume control endpoint
https://bugs.webkit.org/show_bug.cgi?id=173898
<rdar://problem/32930754>

Reviewed by Ryosuke Niwa.

  • WebProcess/com.apple.WebProcess.sb.in:
6:04 PM Changeset in webkit [218857] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

MediaPlayerPrivate m_private may not yet be created when setPrivateBrowsingMode is called.
https://bugs.webkit.org/show_bug.cgi?id=173893
rdar://problem/32986872

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-06-27
Reviewed by Ryosuke Niwa.

No new tests because no reproducable case.

setPrivateBrowsingMode can be called on MediaPlayer before the MediaPlayerPrivate is created.
The value should only be pushed down the m_private if it has been created.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::setPrivateBrowsingMode):

5:46 PM Changeset in webkit [218856] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Do not touch VM after notifying Ready in DFG::Worklist
https://bugs.webkit.org/show_bug.cgi?id=173888

Reviewed by Saam Barati.

After notifying Plan::Ready and releasing Worklist lock, VM can be destroyed.
Thus, Plan::vm() can return a destroyed VM. Do not touch it.
This causes occasional SEGV / assertion failures in workers/bomb test.

  • dfg/DFGWorklist.cpp:
5:36 PM Changeset in webkit [218855] by Wenson Hsieh
  • 12 edits
    1 add in trunk

[iOS DnD] Support dragging out of contenteditable areas without a prior selection
https://bugs.webkit.org/show_bug.cgi?id=173854
<rdar://problem/32236827>

Reviewed by Ryosuke Niwa and Tim Horton.

Source/WebCore:

Allows elements to be dragged from contenteditable areas for both WebKit1 and WebKit2 iOS. There are two main
changes in WebCore: move the touch point adjustment code into EventHandler::tryToBeginDataInteractionAtPoint, so
that the clientPosition specified will be adjusted to an appropriate clickable node if needed. This is necessary
because UIWebDocumentView and WKContentView no longer send adjusted points to WebCore when requesting drag
start. See <https://bugs.webkit.org/show_bug.cgi?id=173855> for a followup regarding the globalPosition and
clientPositions passed in to the MouseEvents when performing a drag or synthetic click.

Secondly, image elements in Mail's contenteditable area are not draggable unless the heuristic in
DragController::draggableElement is tweaked to not reject image dragging across the board if the
loadsImagesAutomatically setting is turned off. Instead, even if images are not automatically loaded, allow the
image drag to commence if the image renderer already has a cached image.

Test: DataInteractionTests.DragImageFromContentEditable

  • page/DragController.cpp:

(WebCore::imageElementIsDraggable):
(WebCore::DragController::draggableElement):

  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::tryToBeginDataInteractionAtPoint):

Source/WebKit/mac:

Vends some information from the DragItem passed into -[WebView _startDrag:] through the WebView as SPI for
WebKit1 clients. No behavior change with these changes alone -- see <rdar://problem/32991062> for more detail.

  • WebView/WebView.mm:

(-[WebView _startDrag:]):
(-[WebView _dragSourceAction]):
(-[WebView _draggedLinkTitle]):
(-[WebView _draggedLinkURL]):
(-[WebView _draggedElementBounds]):
(-[WebView _endedDataInteraction:global:]):

  • WebView/WebViewData.h:
  • WebView/WebViewPrivate.h:

Source/WebKit2:

Instead of allowing a drag to occur only if a position information request discovers a clickable node, remove
the position information request entirely and just call into WebCore to try and begin the drag. Currently, the
position information request serves two purposes:

  1. To adjust the hit-test location to account for nearby clickable nodes.
  2. To obtain information about the content being dragged.

The first requirement is fulfilled by performing the drag location adjustment in WebCore instead (see
ChangeLogs for more detail). The second requirement is fulfilled by refactoring in
https://bugs.webkit.org/show_bug.cgi?id=173832 to fold all information relevant to starting a drag into the
DragItem struct, and then propagating the DragItem struct. The relevant information from the position
information update is now populated when the UI process receives the drag start response.

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

(-[WKContentView _startDrag:item:]):
(-[WKContentView computeClientAndGlobalPointsForDropSession:outClientPoint:outGlobalPoint:]):
(-[WKContentView _dragInteraction:prepareForSession:completion:]):
(-[WKContentView _api_dropInteraction:sessionDidEnter:]):
(-[WKContentView _api_dropInteraction:sessionDidUpdate:]):
(positionInformationMayStartDataInteraction): Deleted.

Tools:

Adds a new test to check that an image can be dragged out of a contenteditable and dropped.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/contenteditable-and-target.html: Added.
  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(TestWebKitAPI::TEST):

4:55 PM Changeset in webkit [218854] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked http/tests/loading/resourceLoadStatistics/telemetry-generation.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=173499

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
4:48 PM Changeset in webkit [218853] by commit-queue@webkit.org
  • 14 edits in trunk

[Modern Media Controls] Accessibility labels should be formatted using NSDateComponentsFormatter
https://bugs.webkit.org/show_bug.cgi?id=173858
<rdar://problem/32643171>

Patch by Antoine Quint <Antoine Quint> on 2017-06-27
Reviewed by Dean Jackson.

Source/WebCore:

We shouldn't be manually trying to create a formatted string for media controls and instead rely
on NSDateComponentsFormatter to perform this task for us. So we remove the ad-hoc code in the JS
media controls code and instead add a new MediaControlsHost method to format durations which calls
into RenderTheme to provide a formatted duration string relevant to the current platform and locale.

  • English.lproj/modern-media-controls-localized-strings.js:
  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::formattedStringForDuration):

  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/modern-media-controls/controls/slider.js:

(Slider.prototype.set inputAccessibleLabel):

  • Modules/modern-media-controls/controls/time-label.js:

(TimeLabel.prototype.commitProperty):

  • Modules/modern-media-controls/main.js:

(createControls):
(formattedStringForDuration):
(formatTimeToString): Deleted.

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::mediaControlsFormattedStringForDuration):

  • rendering/RenderThemeCocoa.h:
  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::mediaControlsFormattedStringForDuration):

LayoutTests:

  • media/modern-media-controls/scrubber/scrubber-has-correct-ax-label-expected.txt:
  • media/modern-media-controls/scrubber/scrubber-has-correct-ax-label.html:
4:40 PM Changeset in webkit [218852] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

r218647 causes getUserMedia to fail on some machines
https://bugs.webkit.org/show_bug.cgi?id=173894

Reviewed by Youenn Fablet.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::isFrameRateSupported): Change frame rate epsilon from 0.00001
to 0.001.

4:29 PM Changeset in webkit [218851] by commit-queue@webkit.org
  • 5 edits in trunk

Placard icons act like buttons (can get keyboard focus and shows up in VoiceOver)
https://bugs.webkit.org/show_bug.cgi?id=173891
<rdar://problem/33011855>

Patch by Antoine Quint <Antoine Quint> on 2017-06-27
Reviewed by Dean Jackson.

Source/WebCore:

Ensure that we disable buttons inside placards as they're only decorative and should
not be interactive.

  • Modules/modern-media-controls/controls/placard.js:

(Placard.):

LayoutTests:

Update the Placard test to check that its <button> is disabled.

  • media/modern-media-controls/placard/placard-expected.txt:
  • media/modern-media-controls/placard/placard.html:
4:05 PM Changeset in webkit [218850] by achristensen@apple.com
  • 343 edits
    269 adds
    60 deletes in trunk/Source/ThirdParty/libwebrtc

Update boringssl to c8ff30cbe716c72279a6f6a9d7d7d0d4091220fa
https://bugs.webkit.org/show_bug.cgi?id=173676

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-27
Reviewed by Alex Christensen.

  • Configurations/boringssl.xcconfig: Enabling ASM.
  • Source/third_party/boringssl/BUILD.generated.gni:
  • Source/third_party/boringssl: Updated folder according new revision.
  • WebKit/patch-boringssl: Added, needed to fix some files to disable warnings.
  • libwebrtc.xcodeproj/project.pbxproj:
3:54 PM Changeset in webkit [218849] by achristensen@apple.com
  • 48 edits
    5 adds in trunk/Source/ThirdParty/libwebrtc

Refresh usrsctp to Source/ThirdParty/libwebrtc/WebKit/patch-usrsctp and libsrtp to ccf84786f8ef803cb9c75e919e5a3976b9f5a67
https://bugs.webkit.org/show_bug.cgi?id=173673

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-27
Reviewed by Sam Weinig.

  • Source/third_party/libsrtp/README.chromium:
  • Source/third_party/libsrtp/srtp/srtp.c:

(srtp_stream_init_keys):
(srtp_calc_aead_iv_srtcp):
(srtp_protect_rtcp_aead):
(srtp_unprotect_rtcp_aead):

  • Source/third_party/libsrtp/test/srtp_driver.c:

(srtp_validate_encrypted_extensions_headers_gcm):

  • Source/third_party/usrsctp/usrsctplib/.gitignore: Added.
  • Source/third_party/usrsctp/usrsctplib/CMakeLists.txt:
  • Source/third_party/usrsctp/usrsctplib/Makefile.am:
  • Source/third_party/usrsctp/usrsctplib/README.md:
  • Source/third_party/usrsctp/usrsctplib/configure.ac:
  • Source/third_party/usrsctp/usrsctplib/programs/CMakeLists.txt:
  • Source/third_party/usrsctp/usrsctplib/programs/Makefile.am:
  • Source/third_party/usrsctp/usrsctplib/programs/client.c:

(main):

  • Source/third_party/usrsctp/usrsctplib/programs/datachan_serv.c:

(main):

  • Source/third_party/usrsctp/usrsctplib/programs/ekr_loop_offload.c: Added.

(handle_packets):

  • Source/third_party/usrsctp/usrsctplib/programs/test_timer.c: Added.

(main):

  • Source/third_party/usrsctp/usrsctplib/usrsctp.pc.in: Added.
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/CMakeLists.txt:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_auth.c:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_auth.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_bsd_addr.c:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_bsd_addr.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_cc_functions.c:

(sctp_cwnd_update_after_fr):
(sctp_hs_cwnd_update_after_fr):
(sctp_htcp_cwnd_update_after_fr):

  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_constants.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_crc32.c:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_crc32.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_header.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c:

(sctp_build_readq_entry):
(sctp_place_control_in_stream):
(sctp_abort_in_reasm):
(sctp_queue_data_to_stream):
(sctp_build_readq_entry_from_ctl):
(sctp_handle_old_unordered_data):
(sctp_inject_old_unordered_data):
(sctp_deliver_reasm_check):
(sctp_add_chk_to_control):
(sctp_queue_data_for_reasm):
(sctp_find_reasm_entry):
(sctp_process_a_data_chunk):
(sctp_sack_check):
(sctp_process_segment_range):
(sctp_check_for_revoked):

  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:

(sctp_process_init):
(sctp_process_cookie_existing):

  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_peeloff.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_ss_functions.c:

(sctp_ss_rr_add):
(sctp_ss_fcfs_select):

  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_structs.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_sysctl.c:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c:

(sctp_recover_sent_list):

  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_uio.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:

(sctp_init):
(sctp_pathmtu_adjustment):

  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:

(sctp_log_strm_del):
(sctp_init_asoc):
(sctp_notify_send_failed):
(sctp_notify_send_failed2):

  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_var.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/user_mbuf.c:

(m_get):
(mbuf_initialize):

  • Source/third_party/usrsctp/usrsctplib/usrsctplib/user_mbuf.h:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/user_socket.c:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/usrsctp.h:
  • WebKit/patch-usrsctp: Added.
3:43 PM Changeset in webkit [218848] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove an inaccurate comment inside DFGClobberize.h
https://bugs.webkit.org/show_bug.cgi?id=163874

Reviewed by Filip Pizlo.

The comment said that Clobberize may or may not be sound if run prior to
doing type inference. This is not correct, though. Clobberize *must* be sound
prior do doing type inference since we use it inside the BytecodeParser, which
is the very first thing the DFG does.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

3:39 PM Changeset in webkit [218847] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Disable m_temporarilyAllowingInlinePlaybackAfterFullscreen on pause
https://bugs.webkit.org/show_bug.cgi?id=173843
rdar://problem/32982431

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-06-27
Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-fullscreen-pause-inline.html

Some pages may not have a fullscreen button, so disabled m_temporarilyAllowingInlinePlaybackAfterFullscreen on pause.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::pause):

LayoutTests:

Some pages may not have a fullscreen button, so disabled m_temporarilyAllowingInlinePlaybackAfterFullscreen on pause.

  • media/media-fullscreen-pause-inline-expected.txt: Added.
  • media/media-fullscreen-pause-inline.html: Added.
  • platform/mac-wk2/TestExpectations:
2:49 PM Changeset in webkit [218846] by Chris Dumez
  • 5 edits in trunk/Source

[iOS] Avoid taking / releasing process assertions too quickly due to database activity
https://bugs.webkit.org/show_bug.cgi?id=173879
<rdar://problem/32412701>

Reviewed by Antti Koivisto.

Source/WebCore:

Add HysteresisActivity to WebSQLiteDatabaseTrackerClient to avoid taking / releasing
process assertion too quickly due to database activity.

  • platform/ios/WebSQLiteDatabaseTrackerClient.h:
  • platform/ios/WebSQLiteDatabaseTrackerClient.mm:

(WebCore::WebSQLiteDatabaseTrackerClient::WebSQLiteDatabaseTrackerClient):
(WebCore::WebSQLiteDatabaseTrackerClient::willBeginFirstTransaction):
(WebCore::WebSQLiteDatabaseTrackerClient::didFinishLastTransaction):
(WebCore::WebSQLiteDatabaseTrackerClient::hysteresisUpdated):

Source/WebKit2:

Specify an activity name when taking the process assertion to facilitate
debugging in the future. It took me a while to figure out this assertion
was the one that was too aggressive because it was anonymous.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setUpSQLiteDatabaseTrackerClient]):

2:37 PM Changeset in webkit [218845] by sbarati@apple.com
  • 14 edits
    1 add in trunk

Function constructor needs to follow the spec and validate parameters and body independently
https://bugs.webkit.org/show_bug.cgi?id=173303
<rdar://problem/32732526>

Reviewed by Keith Miller.

JSTests:

  • ChakraCore/test/Function/FuncBodyES5.baseline-jsc:
  • stress/function-constructor-semantics.js: Added.

(assert):
(hasSyntaxError):
(foo):
(async.foo):
(testError):
(testOK.toString):
(toString):

LayoutTests/imported/w3c:

  • web-platform-tests/html/webappapis/scripting/events/inline-event-handler-ordering-expected.txt:
  • web-platform-tests/html/webappapis/scripting/events/invalid-uncompiled-raw-handler-compiled-late-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-attribute-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-body-onerror-expected.txt:

Source/JavaScriptCore:

The Function constructor must check the arguments and body strings
independently for syntax errors. People rely on this specified behavior
to verify that a particular string is a valid function body. We used
to check these things strings concatenated together, instead of
independently. For example, this used to be valid: Function("/*", "*/){").
However, we should throw a syntax error here since "(/*)" is not a valid
parameter list, and "*/){" is not a valid body.

To implement the specified behavior, we check the syntax independently of
both the body and the parameter list. To check that the parameter list has
valid syntax, we check that it is valid if in a function with an empty body.
To check that the body has valid syntax, we check it is valid in a function
with an empty parameter list.

  • runtime/FunctionConstructor.cpp:

(JSC::constructFunctionSkippingEvalEnabledCheck):

LayoutTests:

  • fast/dom/attribute-event-listener-errors-expected.txt:
  • fast/events/attribute-listener-deletion-crash-expected.txt:
  • fast/events/window-onerror-syntax-error-in-attr-expected.txt:
  • js/dom/invalid-syntax-for-function-expected.txt:
2:35 PM Changeset in webkit [218844] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Using public logging for WebRTC release logging
https://bugs.webkit.org/show_bug.cgi?id=173881

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-27
Reviewed by Eric Carlson.

No change of behavior.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::createOfferSucceeded):
(WebCore::PeerConnectionBackend::createOfferFailed):
(WebCore::PeerConnectionBackend::createAnswerSucceeded):
(WebCore::PeerConnectionBackend::createAnswerFailed):
(WebCore::PeerConnectionBackend::setLocalDescriptionFailed):
(WebCore::PeerConnectionBackend::setRemoteDescriptionFailed):
(WebCore::PeerConnectionBackend::addIceCandidateFailed):
(WebCore::PeerConnectionBackend::newICECandidate):

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::queuedSetLocalDescription):
(WebCore::RTCPeerConnection::queuedSetRemoteDescription):
(WebCore::RTCPeerConnection::queuedAddIceCandidate):
(WebCore::RTCPeerConnection::updateIceGatheringState):
(WebCore::RTCPeerConnection::updateIceConnectionState):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered):

2:30 PM Changeset in webkit [218843] by don.olmstead@sony.com
  • 16 edits
    1 copy
    1 add in trunk

[PAL] Add symbol export macros for PAL
https://bugs.webkit.org/show_bug.cgi?id=171519

Reviewed by Konstantin Tokarev.

Source/WebCore:

No new tests. No change in behavior.

  • CMakeLists.txt:
  • config.h:
  • platform/PlatformExportMacros.h:

Source/WebCore/PAL:

No new tests. No change in behavior.

  • Configurations/CopyPALHeaders.xcconfig: Added.
  • PAL.xcodeproj/project.pbxproj:
  • config.h:
  • pal/ExportMacros.h: Copied from Source/WebCore/platform/PlatformExportMacros.h.
  • pal/PlatformWin.cmake:
  • pal/crypto/CryptoDigest.h:

Source/WebKit2:

  • config.h:

Tools:

  • DumpRenderTree/config.h:
  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/config.h:
  • WebKitTestRunner/config.h:
2:23 PM Changeset in webkit [218842] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKit2

ProcessLauncherMac could leak a xpc connection when the process had failed to launch
https://bugs.webkit.org/show_bug.cgi?id=173865

Reviewed by Antti Koivisto.

Explicitly cancel the XPC connection even When the process launch had failed to avoid a leak.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):

2:10 PM Changeset in webkit [218841] by wilander@apple.com
  • 30 edits
    4 adds in trunk

Resource Load Statistics: Add telemetry
https://bugs.webkit.org/show_bug.cgi?id=173499
<rdar://problem/32826094>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/loading/resourceLoadStatistics/telemetry-generation.html

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::fireTelemetryHandler):

Test infrastructure.

  • loader/ResourceLoadObserver.h:
  • loader/ResourceLoadStatisticsStore.cpp:

(WebCore::ResourceLoadStatisticsStore::setFireTelemetryCallback):
(WebCore::ResourceLoadStatisticsStore::fireTelemetryHandler):

Test infrastructure.

(WebCore::ResourceLoadStatisticsStore::sortedPrevalentResourceTelemetry):

Convenience function for telemetry.

  • loader/ResourceLoadStatisticsStore.h:

Added struct WebCore::PrevalentResourceTelemetry.

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::resourceLoadStatisticsTelemetryKey):

Added.

  • page/DiagnosticLoggingKeys.h:

Source/WebKit2:

  • PlatformGTK.cmake:

Added UIProcess/WebResourceLoadStatisticsTelemetry.cpp

  • PlatformMac.cmake:

Added UIProcess/WebResourceLoadStatisticsTelemetry.cpp

  • PlatformWPE.cmake:

Added UIProcess/WebResourceLoadStatisticsTelemetry.cpp

  • UIProcess/API/C/WKResourceLoadStatisticsManager.cpp:

(WKResourceLoadStatisticsManagerFireTelemetryHandler):
(WKResourceLoadStatisticsManagerSetNotifyPagesWhenTelemetryWasCaptured):

Test infrastructure.

  • UIProcess/API/C/WKResourceLoadStatisticsManager.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::notifyPageStatisticsTelemetryFinished):

Test infrastructure.

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebResourceLoadStatisticsManager.cpp:

(WebKit::WebResourceLoadStatisticsManager::fireTelemetryHandler):
(WebKit::WebResourceLoadStatisticsManager::setNotifyPagesWhenTelemetryWasCaptured):
(WebKit::WebResourceLoadStatisticsManager::resetToConsistentState):

Test infrastructure.

  • UIProcess/WebResourceLoadStatisticsManager.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):

Configures a timer for telemetry capture. Fires 5 seconds after launch
and then every 24 hours.

(WebKit::WebResourceLoadStatisticsStore::setNotifyPagesWhenDataRecordsWereScanned):

Variable renamed notifyPages -> notifyPagesWhenDataRecordsWereScanned.

(WebKit::WebResourceLoadStatisticsStore::removeDataRecords):

Variable renamed notifyPages -> notifyPagesWhenDataRecordsWereScanned.

(WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords):

Variable renamed notifyPages -> notifyPagesWhenDataRecordsWereScanned.

(WebKit::WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver):

Variable renamed notifyPages -> notifyPagesWhenDataRecordsWereScanned.

(WebKit::WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData):

Variable renamed notifyPages -> notifyPagesWhenDataRecordsWereScanned.

(WebKit::WebResourceLoadStatisticsStore::telemetryTimerFired):

Calls WebResourceLoadStatisticsTelemetry::calculateAndSubmit().

  • UIProcess/WebResourceLoadStatisticsStore.h:
  • UIProcess/WebResourceLoadStatisticsTelemetry.cpp: Added.

(WebKit::numberOfResourcesWithUserInteraction):
(WebKit::median):
(WebKit::nonEphemeralWebPageProxy):
(WebKit::submitTopList):
(WebKit::submitTopLists):
(WebKit::notifyPages):
(WebKit::WebResourceLoadStatisticsTelemetry::calculateAndSubmit):
(WebKit::WebResourceLoadStatisticsTelemetry::setNotifyPagesWhenTelemetryWasCaptured):

  • UIProcess/WebResourceLoadStatisticsTelemetry.h: Added.
  • WebKit2.xcodeproj/project.pbxproj:

Tools:

Adds three new testRunner functions:

  • installStatisticsDidRunTelemetryCallback()
  • statisticsFireTelemetryHandler()
  • setStatisticsNotifyPagesWhenTelemetryWasCaptured()
  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::installStatisticsDidRunTelemetryCallback):
(WTR::TestRunner::statisticsDidRunTelemetryCallback):
(WTR::TestRunner::statisticsFireTelemetryHandler):
(WTR::TestRunner::setStatisticsNotifyPagesWhenTelemetryWasCaptured):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::statisticsFireTelemetryHandler):
(WTR::TestController::setStatisticsNotifyPagesWhenTelemetryWasCaptured):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/tests/loading/resourceLoadStatistics/telemetry-generation-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/telemetry-generation.html: Added.
  • platform/wk2/TestExpectations:

Enabled here since ResourceLoadStatistics is WK2-only.

2:06 PM Changeset in webkit [218840] by commit-queue@webkit.org
  • 13 edits in trunk

Add missing includes to fix compilation error on FreeBSD
https://bugs.webkit.org/show_bug.cgi?id=172919

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2017-06-27
Reviewed by Mark Lam.

Source/JavaScriptCore:

  • API/JSRemoteInspector.h:
  • API/tests/GlobalContextWithFinalizerTest.cpp:
  • API/tests/TypedArrayCTest.cpp:

Source/WebCore:

No new tests needed.

  • crypto/gcrypt/CryptoKeyECGCrypt.cpp:
  • platform/audio/ReverbAccumulationBuffer.cpp:

Source/WebKit2:

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/ProcessAssertion.h:

Tools:

  • ImageDiff/cairo/PlatformImageCairo.cpp:
2:01 PM Changeset in webkit [218839] by Matt Baker
  • 7 edits
    1 move
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: no discoverable way to dismiss the split console
https://bugs.webkit.org/show_bug.cgi?id=167034
<rdar://problem/30023436>

Reviewed by Devin Rousso.

This patch adds an Xcode-style toggle button to the left of the
split console navigation bar. Additionally, the split console code
has been broken out into it's own class to reduce the clutter in
Main.js/css, and simplify future console maintenance.

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

(WebInspector.loaded):
Replace the "split" ContentBrowser with a new ConsoleDrawer class,
which encapsulates the drawer height setting and resize behavior.
(WebInspector.contentLoaded):
The console drawer manages its own height.

  • UserInterface/Images/HideConsoleDrawer.svg: Added.
  • UserInterface/Images/ShowConsoleDrawer.svg: Added.

Console drawer toggle button images. Styled after corresponding Xcode button.

  • UserInterface/Main.html:
  • UserInterface/Views/ConsoleDrawer.css: Added.

Moved old #split-content-browser styles over from Main.css.
(.console-drawer):
(.console-drawer > .navigation-bar):
(.console-drawer > .navigation-bar > .item.button:not(.clear-log)):
Make button spacing less cramped.
(.console-drawer > .navigation-bar > .item:not(.flexible-space)):
(.console-drawer > .navigation-bar > :matches(.item.button, .log-scope-bar)):
(.console-drawer > .navigation-bar > .item > .glyph,):

  • UserInterface/Views/ConsoleDrawer.js: Added.

New class responsible for console drawer expand / collapse and resizer
dragging, which was previously part of Main.js. The console drawer toolbar
now has a toggle button, debugging controls, and a call frames path item.
The "Show Console Tab" button has been removed.

(WebInspector.ConsoleDrawer):
(WebInspector.ConsoleDrawer.prototype.get collapsed):
(WebInspector.ConsoleDrawer.prototype.set collapsed):
(WebInspector.ConsoleDrawer.prototype.get height):
(WebInspector.ConsoleDrawer.prototype.shown):
(WebInspector.ConsoleDrawer.prototype.layout):
(WebInspector.ConsoleDrawer.prototype._consoleResizerMouseDown.dockedResizerDrag):
(WebInspector.ConsoleDrawer.prototype._consoleResizerMouseDown.dockedResizerDragEnd):
(WebInspector.ConsoleDrawer.prototype._consoleResizerMouseDown):
(WebInspector.ConsoleDrawer.prototype._restoreDrawerHeight):
(WebInspector.ConsoleDrawer.prototype._updateDrawerHeight):
(WebInspector.ConsoleDrawer.prototype._selectedTabContentViewDidChange):
When switching to a tab that doesn't support showing the console drawer,
hide it without altering the collapsed state.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype.get navigationItems):

  • UserInterface/Views/Main.css:

Renamed #split-content-browser to #console-drawer, and moved related
styles to ConsoleDrawer.css.

(#split-content-browser): Deleted.
(#split-content-browser > .navigation-bar): Deleted.
(#split-content-browser > .navigation-bar :matches(.find-banner, .find-banner + .divider)): Deleted.
(#split-content-browser > .navigation-bar .item): Deleted.
(#split-content-browser > .navigation-bar .item:not(.flexible-space)): Deleted.
(#split-content-browser .hierarchical-path-component.log-icon .icon): Deleted.
(#split-content-browser .hierarchical-path-component.log-icon .title): Deleted.
(#split-content-browser .hierarchical-path-component.log-icon select): Deleted.
(#split-content-browser > .navigation-bar > :matches(.hierarchical-path, .log-scope-bar)): Deleted.
(#split-content-browser > .navigation-bar > .log-scope-bar > li): Deleted.

  • UserInterface/Views/QuickConsole.js:

(WebInspector.QuickConsole):
(WebInspector.QuickConsole.prototype._toggleOrFocus):
(WebInspector.QuickConsole.prototype._updateStyles):
Update top border style in response to change in selected TabBrowser
tab or the console drawer collapsed state.

(WebInspector.QuickConsole.prototype.consoleLogVisibilityChanged): Deleted.
(WebInspector.QuickConsole.prototype.set keyboardShortcutDisabled): Deleted.

12:52 PM Changeset in webkit [218838] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Add RenderEmbeddedObject::getReplacementTextGeometry helper.
https://bugs.webkit.org/show_bug.cgi?id=173847

Reviewed by Simon Fraser.

...and remove getReplacementTextGeometry's redundant return value.

No change in functionality.

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::paintReplaced):
(WebCore::RenderEmbeddedObject::getReplacementTextGeometry):
(WebCore::RenderEmbeddedObject::unavailablePluginIndicatorBounds):
(WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):

  • rendering/RenderEmbeddedObject.h:
12:11 PM Changeset in webkit [218837] by Wenson Hsieh
  • 31 edits in trunk/Source

Refactor drag start codepaths to plumb a DragItem to client layers
https://bugs.webkit.org/show_bug.cgi?id=173832
Work towards <rdar://problem/32236827>

Reviewed by Ryosuke Niwa and Tim Horton.

Source/WebCore:

Refactor drag start logic in WebCore to set up a DragItem and propagate it to WebDragClient. No change in behavior.

  • loader/EmptyClients.cpp:
  • page/DragClient.h:
  • page/DragController.cpp:

(WebCore::DragController::startDrag):
(WebCore::DragController::doImageDrag):
(WebCore::DragController::doSystemDrag):

Refactor to pass along a DragItem. Also, remove unused drag image anchor computation.

  • page/DragController.h:
  • platform/DragImage.h:
  • platform/DragItem.h:

Add additional information needed to begin a drag on iOS.

(WebCore::DragItem::encode):
(WebCore::DragItem::decode):

Add IPC serialization/deserialization support for DragItem.

  • platform/PasteboardWriterData.cpp:

(WebCore::PasteboardWriterData::isEmpty):

  • platform/PasteboardWriterData.h:

Source/WebKit/mac:

Refactor code used to start a drag in WebKit1 to plumb a single DragItem from DragController to the client layer
in WebDragClient that contains all the information needed to begin a drag. Also renames _setDataInteractionData:
to _startDrag: to match logic used to start a drag on other platforms.

No behavior change -- the same information should be propagated to AppKit and UIKit when beginning a drag, only
through the DragItem struct.

  • WebCoreSupport/WebDragClient.h:
  • WebCoreSupport/WebDragClient.mm:

(WebDragClient::startDrag):
(WebDragClient::dragSourceActionMaskForPoint):
(WebDragClient::willPerformDragSourceAction):
(WebDragClient::beginDrag):

  • WebView/WebView.mm:

(-[WebView _startDrag:]):
(-[WebView _setDataInteractionData:textIndicator:atClientPosition:anchorPoint:action:]): Deleted.

  • WebView/WebViewInternal.h:

Source/WebKit/win:

Adjust for changes to WebDragClient::startDrag by pulling information out of DragItem.

  • WebCoreSupport/WebDragClient.cpp:

(WebDragClient::startDrag):

  • WebCoreSupport/WebDragClient.h:

Source/WebKit2:

Add support for serializing a DragItem over IPC. This encodes and decodes all members of DragItem except for the
PasteboardWriterData and the DragImage's image. The DragItem is sent over to the UI process in
WebDragClient::startDrag via the WebPageProxy::startDrag IPC message (renamed from WebPageProxy::setDragImage)
which now takes a DragItem.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::startDrag):
(WebKit::WebPageProxy::setDragImage): Deleted.

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:

Rename SetDragImage to StartDrag and refactor to receive only a DragItem and shareable bitmap handle.

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

(WebKit::PageClientImpl::startDrag):
(WebKit::PageClientImpl::startDataInteractionWithImage): Deleted.

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

(-[WKContentView _startDrag:item:]):
(-[WKContentView _startDataInteractionWithImage:withIndicatorData:atClientPosition:anchorPoint:action:]): Deleted.

Rename startDataInteractionWithImage to startDrag.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::startDrag):
(WebKit::WebPageProxy::setDragImage): Deleted.

  • WebProcess/WebCoreSupport/WebDragClient.cpp:

(WebKit::WebDragClient::startDrag):

  • WebProcess/WebCoreSupport/WebDragClient.h:
  • WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:

(WebKit::WebDragClient::startDrag):

  • WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:

(WebKit::WebDragClient::startDrag):

10:43 AM Changeset in webkit [218836] by Joseph Pecoraro
  • 15 edits
    3 adds in trunk

Web Inspector: Crash generating object preview for ArrayIterator
https://bugs.webkit.org/show_bug.cgi?id=173754
<rdar://problem/32859012>

Reviewed by Saam Barati.

Source/JavaScriptCore:

When Inspector generates an object preview for an ArrayIterator instance it made
a "clone" of the original ArrayIterator instance by constructing a new object with
the instance's structure. However, user code could have modified that instance's
structure, such as adding / removing properties. The return property had special
meaning, and our clone did not fill that slot. This approach is brittle in that
we weren't satisfying the expectations of an object with a particular Structure,
and the original goal of having Web Inspector peek values of built-in Iterators
was to avoid observable behavior.

This tightens Web Inspector's Iterator preview to only peek values if the
Iterators would actually be non-observable. It also builds an ArrayIterator
clone like a regular object construction.

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::cloneArrayIteratorObject):
Build up the Object from scratch with a new ArrayIterator prototype.

(Inspector::JSInjectedScriptHost::iteratorEntries):
Only clone and peek iterators if it would not be observable.
Also update iteration to be more in line with IterationOperations, such as when
we call iteratorClose.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::stringIteratorProtocolWatchpoint):

  • runtime/JSGlobalObjectInlines.h:

(JSC::JSGlobalObject::isStringPrototypeIteratorProtocolFastAndNonObservable):
Add a StringIterator WatchPoint in line with the Array/Map/Set iterator watchpoints.

  • runtime/JSMap.cpp:

(JSC::JSMap::isIteratorProtocolFastAndNonObservable):
(JSC::JSMap::canCloneFastAndNonObservable):

  • runtime/JSMap.h:
  • runtime/JSSet.cpp:

(JSC::JSSet::isIteratorProtocolFastAndNonObservable):
(JSC::JSSet::canCloneFastAndNonObservable):

  • runtime/JSSet.h:

Promote isIteratorProtocolFastAndNonObservable to a method.

  • runtime/JSObject.cpp:

(JSC::canDoFastPutDirectIndex):

  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::isArgumentsType):
Helper to detect if an Object is an Arguments type.

LayoutTests:

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

Test generating a preview for an ArrayIterator that has had a return property added to it.

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

Test generating a preview for different iterators after the IteratorPrototypes have been mutated.

  • inspector/model/resources/remote-object-utilities.js: Added.

(runInBrowserTest):
(TestPage.registerInitializer):
(TestPage.registerInitializer.checkComplete):
(TestPage.registerInitializer.window.runSteps):
Share code for remote-object dump tests.

8:59 AM Changeset in webkit [218835] by fred.wang@free.fr
  • 14 edits in trunk

Some tests to verify forbidden frame navigation time out
https://bugs.webkit.org/show_bug.cgi?id=173657

Patch by Frederic Wang <fwang@igalia.com> on 2017-06-27
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2-expected.txt: Update the text expectation to PASS.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture-expected.txt: Ditto.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_ancestor-1-expected.txt: Ditto.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3-expected.txt: Add the security error until bug 173162 is fixed.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3-expected.txt: Ditto.

Source/WebCore:

Currently some tests try and perform a forbidden frame navigation and verify the
corresponding console error. However, WebKit does not raise any exception for such error so
the tests have to wait until the timeout limit to complete, which makes execution slow.
This patch modifies the setters of window.location for which such error may happen in order
to raise an exception so the tests behave as expected.

No new tests, already covered by existing tests.

  • page/Location.cpp: Adjust Location::setLocation to return a security exception and pass it

to the callers.
(WebCore::Location::setHref): Adjust function to possibly return an exception.
(WebCore::Location::setProtocol): Ditto.
(WebCore::Location::setHost): Ditto.
(WebCore::Location::setHostname): Ditto.
(WebCore::Location::setPort): Ditto.
(WebCore::Location::setPathname): Ditto.
(WebCore::Location::setSearch): Ditto.
(WebCore::Location::setHash): Ditto.
(WebCore::Location::assign): Ditto.
(WebCore::Location::setLocation): FrameLoader::findFrameForNavigation is really only used
to verify whether navigating m_frame is permitted so it is more simple and clearer to do it
directly. When navigation is not permitted, this function now raises a security exception.

  • page/Location.h: Modify some setters to return an ExceptionOr<void>.
  • page/Location.idl: Allow some setters to raise an exception.

LayoutTests:

  • fast/frames/sandboxed-iframe-navigation-top-denied-expected.txt: Add the security error.
  • http/tests/security/frameNavigation/inactive-function-in-popup-navigate-child.html: Adjust

the test to catch and dump the exception and complete immediately.

  • http/tests/security/frameNavigation/inactive-function-in-popup-navigate-child-expected.txt:

Add the dumped security error exception.

7:49 AM Changeset in webkit [218834] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit2

[iOS DnD] [WK2] WKWebView does not handle drag sessions that exit and re-enter
https://bugs.webkit.org/show_bug.cgi?id=173856
<rdar://problem/32957100>

Reviewed by Ryosuke Niwa.

Upon exiting a WKContentView, the dropSession tracked by _dataInteractionState is not cleared out. If the drag
session re-enters the WKWebView, a _different_ UIDropSession is sent to the drop delegate, causing us to bail
from handling the session altogether in -dropInteraction:canHandleSession:. To fix this, we need to clear out
the dropSession when the drag session exits the view.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView dropInteraction:sessionDidExit:]):

7:47 AM Changeset in webkit [218833] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

LayoutTest webrtc/datachannel/multiple-connections.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=173853

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-27
Reviewed by Eric Carlson.

  • webrtc/datachannel/multiple-connections.html:
4:13 AM WebKitGTK/2.16.x edited by clopez@igalia.com
(diff)

Jun 26, 2017:

11:41 PM Changeset in webkit [218832] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GTK] Layout Test webrtc/video.html issues "stack smashing detected"
https://bugs.webkit.org/show_bug.cgi?id=173862

Patch by Fujii Hironori <Fujii Hironori> on 2017-06-26
Reviewed by Carlos Garcia Campos.

Tests: webrtc/video.html

Passing a bool variable to g_object_get causes out-of-bound write.
gboolean should be used, which is 4 bytes while bool is one byte.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::muted): Use gboolean instead of bool.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp:

(WebCore::MediaPlayerPrivateGStreamerOwr::trackEnded): Ditto.

11:12 PM Changeset in webkit [218831] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.16.5

WebKitGTK+ 2.16.5

11:11 PM Changeset in webkit [218830] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.16

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

.:

  • Source/cmake/OptionsGTK.cmake:

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.16.5.
11:01 PM Changeset in webkit [218829] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.16

Merge r218798 - Unreviewed, rolling out r215190.

Broke product select element on GNOME Bugzilla

Reverted changeset:

"[GTK] Misplaced right click menu on web page due to
deprecated gtk_menu_popup()"
https://bugs.webkit.org/show_bug.cgi?id=170553
http://trac.webkit.org/changeset/215190

10:49 PM Changeset in webkit [218828] by sbarati@apple.com
  • 3 edits
    1 add in trunk

RegExpPrototype.js builtin uses for-of iteration which is almost certainly incorrect
https://bugs.webkit.org/show_bug.cgi?id=173740

Reviewed by Mark Lam.

JSTests:

  • stress/regexp-prototype-replace-builtin-should-not-use-for-of.js: Added.

(Array.prototype.Symbol.iterator):

Source/JavaScriptCore:

The builtin was using for-of iteration to iterate over an internal
list in its algorithm. For-of iteration is observable via user code
in the global object, so this approach was wrong as it would break if
a user changed the Array iteration protocol in some way.

  • builtins/RegExpPrototype.js:

(replace):

8:33 PM Changeset in webkit [218827] by Chris Dumez
  • 10 edits in trunk/Source

WebsiteDataStore::fetchDataForTopPrivatelyControlledDomains() is inefficient
https://bugs.webkit.org/show_bug.cgi?id=173850

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • loader/ResourceLoadStatisticsStore.cpp:

(WebCore::ResourceLoadStatisticsStore::updateStatisticsForRemovedDataRecords):

  • loader/ResourceLoadStatisticsStore.h:

Source/WebKit2:

Update WebsiteDataRecord::matchesTopPrivatelyControlledDomain() to rely on
SecurityOriginData::host rather than SecurityOriginData::securityOrigin()->host().
SecurityOriginData::securityOrigin() is expensive and it seems unnecessary to call
it here since we already have the host.

Also update WebsiteDataStore::fetchDataForTopPrivatelyControlledDomains() to return
domains as a HashSet rather than a Vector to avoid having duplicate domains.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::deleteWebsiteDataForTopPrivatelyControlledDomainsInAllPersistentDataStores):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::removeDataRecords):

  • UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(WebKit::WebsiteDataRecord::matchesTopPrivatelyControlledDomain):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataForTopPrivatelyControlledDomains):
(WebKit::WebsiteDataStore::removeDataForTopPrivatelyControlledDomains):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
8:28 PM Changeset in webkit [218826] by Antti Koivisto
  • 9 edits
    2 adds in trunk

REGRESSION (AsyncImageDecoding): A tab with the WWDC keynote paused is killed for using excessive power (Image thrashing)
https://bugs.webkit.org/show_bug.cgi?id=173804
<rdar://problem/32623745>

Reviewed by Simon Fraser.

Source/WebCore:

When under memory pressure MemoryCache::singleton().pruneLiveResources(true) is called inFrameView::didPaintContents()
after top level paint. We end up decoding and pruning bitmaps repeatedly for each tile, which is not great.

Situation gets worse with async decoding. Painting now doesn’t actually decode the image, it just starts the decoding.
When it completes we trigger another paint to get the bits to the tiles. The paint for the first tile then calls
pruneLiveResources and loses the bitmap and the second tile triggers another round of async decoding. We have code
that prevents pruning of visible images but non-visible images in tiling area can hit this bug easily.

Test: fast/images/low-memory-decode.html

  • page/FrameView.cpp:

(WebCore::FrameView::willPaintContents):
(WebCore::FrameView::didPaintContents):

Eliminate synchronous pruning during painting. This is an obsolete mechanism from early iOS times.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::imageFrameAvailableAtIndex):
(WebCore::BitmapImage::decodeCountForTesting):

Testing support.

  • platform/graphics/BitmapImage.h:
  • testing/Internals.cpp:

(WebCore::Internals::imageDecodeCount):

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

LayoutTests:

  • fast/images/low-memory-decode-expected.txt: Added.
  • fast/images/low-memory-decode.html: Added.
5:26 PM Changeset in webkit [218825] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked media/media-source/media-source-paint-to-canvas.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=173565

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:47 PM Changeset in webkit [218824] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked animations/play-state-suspend.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=173726

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:39 PM Changeset in webkit [218823] by sbarati@apple.com
  • 2 edits in trunk/JSTests

Skip a test on 32-bit platforms since we run out of address space.

Rubber stamped by Mark Lam.

  • stress/dont-reserve-huge-capacity-lexer.js:
3:36 PM Changeset in webkit [218822] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

Invalidate WebVideoFullscreenManager when WebPage is destroyed.
https://bugs.webkit.org/show_bug.cgi?id=173835
rdar://problem/32969161

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-06-26
Reviewed by Jer Noble.

WebVideoFullscreenManager has a pointer to WebPage, and even null checks it in a few places,
but the only place it is nulled out is in the destructor. This allows a dangling reference.

This changes invalidates that reference when WebPage is destructed and adds nullchecks
or asserts throughout WebVideoFullscreenManager as appropriate.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::~WebPage):

  • WebProcess/cocoa/WebVideoFullscreenManager.h:

(WebKit::WebVideoFullscreenManager::invalidate):

  • WebProcess/cocoa/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenManager::~WebVideoFullscreenManager):
(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::WebVideoFullscreenManager::exitVideoFullscreenForVideoElement):
(WebKit::WebVideoFullscreenManager::exitVideoFullscreenToModeWithoutAnimation):
(WebKit::WebVideoFullscreenManager::hasVideoChanged):
(WebKit::WebVideoFullscreenManager::videoDimensionsChanged):
(WebKit::WebVideoFullscreenManager::didSetupFullscreen):
(WebKit::WebVideoFullscreenManager::didEnterFullscreen):
(WebKit::WebVideoFullscreenManager::didCleanupFullscreen):
(WebKit::WebVideoFullscreenManager::fullscreenMayReturnToInline):

2:09 PM Changeset in webkit [218821] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Disable diagnostic logging in ephemeral sessions
https://bugs.webkit.org/show_bug.cgi?id=173849
<rdar://problem/32987341>

Reviewed by Geoffrey Garen.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setDiagnosticLoggingClient):
Construct a dummy logging client if the page's session is ephemeral.

(WebKit::WebPageProxy::logDiagnosticMessage):
(WebKit::WebPageProxy::logDiagnosticMessageWithResult):
(WebKit::WebPageProxy::logDiagnosticMessageWithValue):
(WebKit::WebPageProxy::logDiagnosticMessageWithEnhancedPrivacy):
Slight cleanup to make the code look a bit safer.

1:17 PM Changeset in webkit [218820] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Renamed DumpRegisterFunctor to DumpReturnVirtualPCFunctor.
https://bugs.webkit.org/show_bug.cgi?id=173848

Reviewed by JF Bastien.

This functor only dumps the return VirtualPC.

  • interpreter/Interpreter.cpp:

(JSC::DumpReturnVirtualPCFunctor::DumpReturnVirtualPCFunctor):
(JSC::Interpreter::dumpRegisters):
(JSC::DumpRegisterFunctor::DumpRegisterFunctor): Deleted.
(JSC::DumpRegisterFunctor::operator()): Deleted.

12:34 PM Changeset in webkit [218819] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Crash in JSC::Lexer<unsigned char>::setCode
https://bugs.webkit.org/show_bug.cgi?id=172754

Reviewed by Mark Lam.

JSTests:

  • stress/dont-reserve-huge-capacity-lexer.js: Added.

(catch):

Source/JavaScriptCore:

The lexer was asking one of its buffers to reserve initial space that
was O(text size in bytes). For large sources, this would end up causing
the vector to overflow and crash. This patch changes this code be like
the Lexer's other buffers and to only reserve a small starting buffer.

  • parser/Lexer.cpp:

(JSC::Lexer<T>::setCode):

12:13 PM Changeset in webkit [218818] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

ImageFrameCache::startAsyncDecodingQueue() unsafely passes Strings across threads
https://bugs.webkit.org/show_bug.cgi?id=173842

Reviewed by Simon Fraser.

The URL string was passed across thread without isolated copy.

  • platform/graphics/ImageFrameCache.cpp:

(WebCore::ImageFrameCache::startAsyncDecodingQueue):

11:51 AM Changeset in webkit [218817] by Jonathan Bedard
  • 8 edits
    2 deletes in trunk

Unreviewed, rolling out r218783.

Causing accessibility/mac/setting-attributes-is-
asynchronous.html to crash consistently on mac-wk2 Debug

Reverted changeset:

"AX: Cannot call setValue() on contenteditable or ARIA text
controls"
https://bugs.webkit.org/show_bug.cgi?id=173520
http://trac.webkit.org/changeset/218783

11:19 AM Changeset in webkit [218816] by Yusuke Suzuki
  • 39 edits in trunk

[WTF] Drop Thread::create(obsolete things) API since we can use lambda
https://bugs.webkit.org/show_bug.cgi?id=173825

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • jsc.cpp:

(startTimeoutThreadIfNeeded):
(timeoutThreadMain): Deleted.

Source/WebCore:

No behavior change.

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::IDBServer):
(WebCore::IDBServer::IDBServer::databaseThreadEntry): Deleted.

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/webaudio/AsyncAudioDecoder.cpp:

(WebCore::AsyncAudioDecoder::AsyncAudioDecoder):
(WebCore::AsyncAudioDecoder::threadEntry): Deleted.

  • Modules/webaudio/AsyncAudioDecoder.h:
  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::startRendering):
(WebCore::OfflineAudioDestinationNode::offlineRenderEntry): Deleted.

  • Modules/webaudio/OfflineAudioDestinationNode.h:
  • Modules/webdatabase/DatabaseThread.cpp:

(WebCore::DatabaseThread::start):
(WebCore::DatabaseThread::databaseThreadStart): Deleted.

  • Modules/webdatabase/DatabaseThread.h:
  • bindings/js/GCController.cpp:

(WebCore::collect):
(WebCore::GCController::gcTimerFired):
(WebCore::GCController::garbageCollectOnAlternateThreadForDebugging):

  • loader/icon/IconDatabase.cpp:

(WebCore::IconDatabase::open):
(WebCore::IconDatabase::iconDatabaseSyncThreadStart): Deleted.

  • loader/icon/IconDatabase.h:
  • page/ResourceUsageThread.cpp:

(WebCore::ResourceUsageThread::createThreadIfNeeded):
(WebCore::ResourceUsageThread::threadCallback): Deleted.

  • page/ResourceUsageThread.h:
  • page/scrolling/ScrollingThread.cpp:

(WebCore::ScrollingThread::createThreadIfNeeded):
(WebCore::ScrollingThread::threadCallback): Deleted.
(WebCore::ScrollingThread::threadBody): Deleted.

  • page/scrolling/ScrollingThread.h:
  • platform/audio/HRTFDatabaseLoader.cpp:

(WebCore::HRTFDatabaseLoader::loadAsynchronously):
(WebCore::databaseLoaderEntry): Deleted.

  • platform/audio/HRTFDatabaseLoader.h:
  • platform/audio/ReverbConvolver.cpp:

(WebCore::ReverbConvolver::ReverbConvolver):
(WebCore::backgroundThreadEntry): Deleted.

  • platform/audio/ReverbConvolver.h:

(WebCore::ReverbConvolver::useBackgroundThreads):

  • platform/network/cf/LoaderRunLoopCF.cpp:

(WebCore::loaderRunLoop):
(WebCore::runLoaderThread): Deleted.

  • platform/network/curl/CurlManager.cpp:

(WebCore::CurlManager::startThreadIfNeeded):
(WebCore::CurlManager::workerThread):

  • platform/network/curl/CurlManager.h:
  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::start):
(WebCore::WorkerThread::workerThreadStart): Deleted.

  • workers/WorkerThread.h:

Source/WebKit:

  • Storage/StorageThread.cpp:

(WebCore::StorageThread::start):
(WebCore::StorageThread::threadEntryPointCallback): Deleted.

  • Storage/StorageThread.h:

Source/WTF:

Thread::create(ThreadFunction, void* data, const char* name) is a bit old API.
Since we have C++ lambda, the above API is simply unnecessary. And C++ lambda
based one is better since the above API needs casting data to and from void*.

  • wtf/Function.h:

Avoid ambiguity.

  • wtf/ParallelJobsGeneric.cpp:

(WTF::ParallelEnvironment::ThreadPrivate::tryLockFor):
(WTF::ParallelEnvironment::ThreadPrivate::workerThread): Deleted.

  • wtf/ParallelJobsGeneric.h:
  • wtf/Threading.cpp:
  • wtf/ThreadingWin.cpp:

(WTF::createThread):

Tools:

  • DumpRenderTree/JavaScriptThreading.cpp:

(runJavaScriptThread):
(startJavaScriptThreads):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(runThread):
(runPthread):
(testThreadIdentifierMap):

11:02 AM Changeset in webkit [218815] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

[TestWebKitAPI] Fix false-positive bad release warnings found by clang static analyzer
<https://webkit.org/b/173837>

Reviewed by Geoffrey Garen.

The clang static analyzer can't reason about objects that are
assigned to a delegate as +1 retained, and then released
later in a different method when the delegate is cleared.

Instead, use a common idiom where the object setting the
delegate retains it as an instance variable on initialization.
Then the same object clears the delegate and releases its
instance variable during teardown.

Also add EXPECT_TRUE() tests to make sure the delegate objects
match before teardown.

  • TestWebKitAPI/Tests/mac/FullscreenZoomInitialFrame.mm:

(TestWebKitAPI::FullscreenZoomInitialFrame::initializeView):
(TestWebKitAPI::FullscreenZoomInitialFrame::teardownView):

  • TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:

(TestWebKitAPI::PageVisibilityStateWithWindowChanges::initializeView):
(TestWebKitAPI::PageVisibilityStateWithWindowChanges::teardownView):

11:01 AM Changeset in webkit [218814] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

[GCrypt] Properly initialize libgcrypt before using it
https://bugs.webkit.org/show_bug.cgi?id=173589

Reviewed by Michael Catanzaro.

Initialize libgcrypt in the Unix-specific main() entrypoint. This is early enough
to ensure no other libgcrypt API function is invoked and to also ensure this is
done in a thread-safe manner.

Initialization is initiated through the gcry_check_version() call. 16 kilobytes of
secure memory is pre-allocated before we mark the initialization as complete, as
recommended by the libgcrypt documentation.

  • WebProcess/EntryPoint/unix/WebProcessMain.cpp:

(main):

11:00 AM Changeset in webkit [218813] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

When Mission Control closes fullscreen window, allow media element to update its state.
https://bugs.webkit.org/show_bug.cgi?id=173671
rdar://problem/32892671

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-06-26
Reviewed by Eric Carlson.

When Mission Control closes element fullscreen without an animation, we need to notify the
media element that fullscreen has exited.

Without this change, the page still behaves like the element is in fullscreen.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):

10:54 AM Changeset in webkit [218812] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit2

[iOS DnD] [WK2] Beginning a drag session should prevent clicking via long press
https://bugs.webkit.org/show_bug.cgi?id=173838

Reviewed by Tim Horton.

After r218579, WebKit no longer attempts to replace out-of-the-box UIKit long-press/drag lift disambiguation by
firing events immediately. However, this means that dragging will defer the highlight long press gesture
recognizer until dragging ends rather than cancel it immediately, which causes WKContentView to dispatch a
synthetic click immediately upon lift. To fix this, we should bail out of the highlight long press gesture when
beginning a drag.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _dragInteraction:prepareForSession:completion:]):

10:52 AM Changeset in webkit [218811] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Make webrtc/video-replace-track-to-null.html more robust
https://bugs.webkit.org/show_bug.cgi?id=173834

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-26
Reviewed by Eric Carlson.

  • webrtc/video-replace-track-to-null.html:
10:48 AM Changeset in webkit [218810] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

[TestWebKitAPI] REGRESSION (r218750): Fix leak of NSURLResponse in WKURLSchemeHandler-1.mm
<https://webkit.org/b/173836>

Reviewed by Brady Eidson.

  • TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm:

(-[RedirectSchemeHandler webView:startURLSchemeTask:]): Use
adoptNS() to fix the leak. Also use auto/adoptNS() for other
objects in this test.

9:45 AM Changeset in webkit [218809] by jdiggs@igalia.com
  • 14 edits in trunk

[ATK] Add support for aria-details and aria-errormessage
https://bugs.webkit.org/show_bug.cgi?id=172588

Reviewed by Chris Fleizach.

Source/WebCore:

Add methods to retrieve elements referenced by or referencing the new
aria-details and aria-errormessage attributes. Include aria-details and
aria-errormessage in AccessibilityObject::supportsARIAAttributes() to ensure
elements with these attributes will be included in the accessibility tree.

New test cases added to accessibility/gtk/relation-types.html.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::supportsARIAAttributes):
(WebCore::AccessibilityObject::ariaDetailsElements):
(WebCore::AccessibilityObject::ariaDetailsReferencingElements):
(WebCore::AccessibilityObject::ariaErrorMessageElements):
(WebCore::AccessibilityObject::ariaErrorMessageReferencingElements):

  • accessibility/AccessibilityObject.h:
  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(setAtkRelationSetFromCoreObject):

  • html/HTMLAttributeNames.in:

Tools:

Add additional methods to test ARIA properties which are exposed via
AtkRelation. Also bump minimum versions of at-spi2-core and at-spi2-atk
to versions which support the details and error-message relation types.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:

(WTR::AccessibilityUIElement::ariaDetailsElementAtIndex):
(WTR::AccessibilityUIElement::ariaDetailsReferencingElementAtIndex):
(WTR::AccessibilityUIElement::ariaErrorMessageElementAtIndex):
(WTR::AccessibilityUIElement::ariaErrorMessageReferencingElementAtIndex):

  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::ariaDetailsElementAtIndex):
(WTR::AccessibilityUIElement::ariaDetailsReferencingElementAtIndex):
(WTR::AccessibilityUIElement::ariaErrorMessageElementAtIndex):
(WTR::AccessibilityUIElement::ariaErrorMessageReferencingElementAtIndex):

  • gtk/jhbuild.modules:

LayoutTests:

Add new test cases to relation-types.html.

  • accessibility/gtk/relation-types-expected.txt:
  • accessibility/gtk/relation-types.html:
7:12 AM Changeset in webkit [218808] by Claudio Saavedra
  • 1 edit
    5 adds in trunk/LayoutTests

[WPE][GCrypt] Unreviewed gardening

After r218744, land new expectations for AES-CFB tests.

  • platform/wpe/crypto/subtle/aes-cbc-cfb-decrypt-malformed-parameters-expected.txt: Added.
  • platform/wpe/crypto/subtle/aes-cbc-cfb-encrypt-malformed-parameters-expected.txt: Added.
  • platform/wpe/crypto/subtle/aes-export-key-malformed-parameters-expected.txt: Added.
  • platform/wpe/crypto/subtle/aes-generate-key-malformed-parameters-expected.txt: Added.
  • platform/wpe/crypto/subtle/aes-import-key-malformed-parameters-expected.txt: Added.
2:30 AM Changeset in webkit [218807] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Add libfii to GTK+ install dependencies script.

  • gtk/install-dependencies:
2:02 AM Changeset in webkit [218806] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] Update expectations for layout tests.
https://bugs.webkit.org/show_bug.cgi?id=172437

Unreviewed test gardening, update test expectations for failing tests.

  • platform/win/TestExpectations:
1:47 AM Changeset in webkit [218805] by Konstantin Tokarev
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, add missing header for CLoop

  • runtime/SymbolTable.cpp:
1:23 AM Changeset in webkit [218804] by Konstantin Tokarev
  • 4 edits in trunk/Source

Unreviewed, add missing header icncludes

Source/JavaScriptCore:

  • parser/Lexer.h:

Source/WebKit2:

  • WebProcess/soup/WebKitSoupRequestInputStream.cpp:
1:13 AM Changeset in webkit [218803] by Konstantin Tokarev
  • 50 edits in trunk/Source

Remove excessive headers from WebCore/{Modules,animation,crypto,domjit}
https://bugs.webkit.org/show_bug.cgi?id=173824

Reviewed by Darin Adler.

No new tests needed.

  • Modules/credentials/CredentialCreationOptions.h:
  • Modules/credentials/PasswordCredential.h:
  • Modules/fetch/FetchBody.h:
  • Modules/fetch/FetchBodyOwner.h:
  • Modules/gamepad/GamepadManager.h:
  • Modules/geolocation/Coordinates.h:
  • Modules/geolocation/Geoposition.h:
  • Modules/indexeddb/IDBActiveDOMObject.h:
  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBDatabase.h:
  • Modules/indexeddb/IDBDatabaseIdentifier.h:
  • Modules/indexeddb/IDBObjectStore.cpp:
  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:
  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/shared/InProcessIDBServer.h:
  • Modules/indexeddb/shared/IndexKey.h:
  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediasession/WebMediaSessionManager.h:
  • Modules/mediasource/SourceBufferList.h:
  • Modules/mediasource/VideoPlaybackQuality.h:
  • Modules/notifications/Notification.h:
  • Modules/quota/WorkerNavigatorStorageQuota.h:
  • Modules/webaudio/AudioBasicProcessorNode.h:
  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/AudioDestinationNode.h:
  • Modules/webaudio/AudioParamTimeline.h:
  • Modules/webaudio/ConvolverNode.cpp:
  • Modules/webaudio/MediaStreamAudioSource.h:
  • Modules/webaudio/MediaStreamAudioSourceNode.h:
  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/PeriodicWave.h:
  • Modules/webaudio/ScriptProcessorNode.h:
  • Modules/webdatabase/DatabaseManager.h:
  • Modules/webdatabase/DatabaseTask.h:
  • Modules/webdatabase/SQLTransaction.h:
  • Modules/webdatabase/SQLTransactionBackend.h:
  • Modules/webdatabase/SQLTransactionStateMachine.h:
  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
  • Modules/websockets/WebSocketDeflater.h:
  • Modules/websockets/WorkerThreadableWebSocketChannel.h:
  • animation/AnimationEffect.h:
  • crypto/CryptoKeyPair.h:
  • crypto/parameters/CryptoAlgorithmEcdhKeyDeriveParams.h:
  • dom/ScriptExecutionContext.h:
  • domjit/DOMJITHelpers.h:
  • domjit/DOMJITIDLConvert.h:
  • domjit/DOMJITIDLType.h:
12:57 AM Changeset in webkit [218802] by Konstantin Tokarev
  • 4 edits in trunk/Source

[GTK] Unreviewed, added missing includes to fix debug build

Source/WebCore:

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

Source/WebKit2:

  • NetworkProcess/NetworkSession.cpp:
Note: See TracTimeline for information about the timeline view.