Timeline
Mar 15, 2019:
- 10:44 PM Changeset in webkit [243034] by
-
- 16 edits in trunk/Source
[iOS] Block the accessibility server when accessibility is not enabled.
https://bugs.webkit.org/show_bug.cgi?id=195342
Reviewed by Brent Fulgham.
Source/WebKit:
By default, block the iOS accessibility server in the sandbox. If accessibility is enabled,
let the UI process issue a mach extension to the WebContent process. The UI process will
issue the mach extension the the WebContent process by its process identifier. The sandbox
extension handle is sent to the WebContent process to be consumed. The message will be sent
when the WebProcess has finished launching, and also when accessibility is turned on.
- Platform/spi/ios/AccessibilitySupportSPI.h:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- Shared/SandboxExtension.h:
- Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtensionImpl::create):
(WebKit::SandboxExtensionImpl::sandboxExtensionForType):
(WebKit::SandboxExtensionImpl::SandboxExtensionImpl):
(WebKit::SandboxExtension::createHandleForMachLookupByPid):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didFinishLaunching):
- UIProcess/WebProcessProxy.h:
- UIProcess/ios/WebProcessProxyIOS.mm:
(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::unblockAccessibilityServer):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
Source/WTF:
Add SPI to issue a mach extension to a process by pid. Also, add a macro for
the availability of this SPI.
- wtf/Platform.h:
- wtf/spi/darwin/SandboxSPI.h:
- 10:21 PM Changeset in webkit [243033] by
-
- 40 edits in trunk/Source
Add media stream release logging
https://bugs.webkit.org/show_bug.cgi?id=195823
Source/WebCore:
<rdar://problem/48939406>
Reviewed by Youenn Fablet.
No new tests, no behavioral change.
- Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::MediaStream):
(WebCore::MediaStream::clone):
(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::removeTrack):
(WebCore::MediaStream::addTrackFromPlatform):
(WebCore::MediaStream::setIsActive):
(WebCore::MediaStream::mediaCanStart):
(WebCore::MediaStream::startProducingData):
(WebCore::MediaStream::stopProducingData):
(WebCore::MediaStream::endCaptureTracks):
(WebCore::MediaStream::stop):
(WebCore::MediaStream::logChannel const):
- Modules/mediastream/MediaStream.h:
- Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::logChannel const):
- Modules/mediastream/MediaStreamTrack.h:
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::addTrack):
(WebCore::LibWebRTCMediaEndpoint::sourceFromNewReceiver):
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::AudioContext):
(WebCore::nextLogIdentifier): Deleted.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::nextLogIdentifier): Deleted.
- html/HTMLMediaElement.h:
- platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::PlatformMediaSession):
(WebCore::nextLogIdentifier): Deleted.
- platform/audio/PlatformMediaSession.h:
- platform/graphics/IntSize.cpp:
(WebCore::IntSize::toJSONObject const):
(WebCore::IntSize::toJSONString const):
- platform/graphics/IntSize.h:
(WTF::LogArgument<WebCore::IntSize>::toString):
- platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::addTrack):
(WebCore::MediaStreamPrivate::removeTrack):
(WebCore::MediaStreamPrivate::startProducingData):
(WebCore::MediaStreamPrivate::stopProducingData):
(WebCore::MediaStreamPrivate::setCaptureTracksMuted):
(WebCore::MediaStreamPrivate::trackMutedChanged):
(WebCore::MediaStreamPrivate::trackEnabledChanged):
(WebCore::MediaStreamPrivate::trackStarted):
(WebCore::MediaStreamPrivate::trackEnded):
(WebCore::MediaStreamPrivate::setLogger):
(WebCore::MediaStreamPrivate::logChannel const):
- platform/mediastream/MediaStreamPrivate.h:
- platform/mediastream/MediaStreamTrackPrivate.cpp:
(WebCore::MediaStreamTrackPrivate::setLogger):
(WebCore::MediaStreamTrackPrivate::logChannel const):
- platform/mediastream/MediaStreamTrackPrivate.h:
- platform/mediastream/RealtimeIncomingAudioSource.cpp:
(WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource):
(WebCore::RealtimeIncomingAudioSource::logChannel const): Deleted.
(WebCore::RealtimeIncomingAudioSource::logger const): Deleted.
- platform/mediastream/RealtimeIncomingAudioSource.h:
(WebCore::RealtimeIncomingAudioSource::setLogger): Deleted.
- platform/mediastream/RealtimeIncomingVideoSource.cpp:
(WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource):
(WebCore::RealtimeIncomingVideoSource::logChannel const): Deleted.
(WebCore::RealtimeIncomingVideoSource::logger const): Deleted.
- platform/mediastream/RealtimeIncomingVideoSource.h:
(WebCore::RealtimeIncomingVideoSource::setLogger): Deleted.
- platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::RealtimeMediaSource):
(WebCore::RealtimeMediaSource::setInterrupted):
(WebCore::RealtimeMediaSource::setMuted):
(WebCore::RealtimeMediaSource::notifyMutedChange):
(WebCore::RealtimeMediaSource::notifySettingsDidChangeObservers):
(WebCore::RealtimeMediaSource::videoSampleAvailable):
(WebCore::RealtimeMediaSource::start):
(WebCore::RealtimeMediaSource::stop):
(WebCore::RealtimeMediaSource::captureFailed):
(WebCore::RealtimeMediaSource::applyConstraint):
(WebCore::RealtimeMediaSource::supportsConstraints):
(WebCore::RealtimeMediaSource::applyConstraints):
(WebCore::RealtimeMediaSource::setSize):
(WebCore::RealtimeMediaSource::setIntrinsicSize):
(WebCore::RealtimeMediaSource::setFrameRate):
(WebCore::RealtimeMediaSource::setAspectRatio):
(WebCore::RealtimeMediaSource::setFacingMode):
(WebCore::RealtimeMediaSource::setVolume):
(WebCore::RealtimeMediaSource::setSampleRate):
(WebCore::RealtimeMediaSource::setSampleSize):
(WebCore::RealtimeMediaSource::setEchoCancellation):
(WebCore::RealtimeMediaSource::setLogger):
(WebCore::RealtimeMediaSource::logChannel const):
(WebCore::convertEnumerationToString):
- platform/mediastream/RealtimeMediaSource.h:
(WTF::LogArgument<WebCore::RealtimeMediaSource::Type>::toString):
- platform/mediastream/RealtimeMediaSourceSettings.cpp:
(WebCore::RealtimeMediaSourceSettings::convertFlagsToString):
(WebCore::convertEnumerationToString):
- platform/mediastream/RealtimeMediaSourceSettings.h:
(WTF::LogArgument<WebCore::RealtimeMediaSourceSettings::VideoFacingMode>::toString):
(WTF::LogArgument<OptionSet<WebCore::RealtimeMediaSourceSettings::Flag>>::toString):
- platform/mediastream/RealtimeOutgoingAudioSource.cpp:
(WebCore::RealtimeOutgoingAudioSource::RealtimeOutgoingAudioSource):
(WebCore::RealtimeOutgoingAudioSource::logChannel const):
(WebCore::RealtimeOutgoingAudioSource::logger const): Deleted.
- platform/mediastream/RealtimeOutgoingAudioSource.h:
(WebCore::RealtimeOutgoingAudioSource::setLogger): Deleted.
- platform/mediastream/RealtimeOutgoingVideoSource.cpp:
(WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource):
(WebCore::RealtimeOutgoingVideoSource::sendOneBlackFrame):
(WebCore::RealtimeOutgoingVideoSource::sendFrame):
(WebCore::RealtimeOutgoingVideoSource::logChannel const):
(WebCore::RealtimeOutgoingVideoSource::logger const): Deleted.
- platform/mediastream/RealtimeOutgoingVideoSource.h:
(WebCore::RealtimeOutgoingVideoSource::setLogger): Deleted.
- platform/mediastream/RealtimeVideoSource.cpp:
(WebCore::RealtimeVideoSource::setSizeAndFrameRate):
(WebCore::SizeAndFrameRate::toJSONObject const):
(WebCore::SizeAndFrameRate::toJSONString const):
- platform/mediastream/RealtimeVideoSource.h:
(WTF::LogArgument<WebCore::SizeAndFrameRate>::toString):
- platform/mediastream/mac/AVVideoCaptureSource.h:
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::clearSession):
(WebCore::AVVideoCaptureSource::startProducingData):
(WebCore::AVVideoCaptureSource::stopProducingData):
(WebCore::AVVideoCaptureSource::setSizeAndFrameRateWithPreset):
(WebCore::AVVideoCaptureSource::setupSession):
(WebCore::AVVideoCaptureSource::frameDurationForFrameRate):
(WebCore::AVVideoCaptureSource::setupCaptureSession):
(WebCore::AVVideoCaptureSource::captureSessionIsRunningDidChange):
(WebCore::AVVideoCaptureSource::captureDeviceSuspendedDidChange):
(WebCore::AVVideoCaptureSource::captureSessionRuntimeError):
(WebCore::AVVideoCaptureSource::captureSessionBeginInterruption):
(WebCore::AVVideoCaptureSource::captureSessionEndInterruption):
(WebCore::AVVideoCaptureSource::deviceDisconnected):
(-[WebCoreAVVideoCaptureSourceObserver observeValueForKeyPath:ofObject:change:context:]):
(-[WebCoreAVVideoCaptureSourceObserver deviceConnectedDidChange:]):
(-[WebCoreAVVideoCaptureSourceObserver sessionRuntimeError:]):
(-[WebCoreAVVideoCaptureSourceObserver beginSessionInterrupted:]):
(-[WebCoreAVVideoCaptureSourceObserver endSessionInterrupted:]):
(WebCore::AVVideoCaptureSource::initializeSession): Deleted.
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioSharedUnit::setupAudioUnit):
(WebCore::CoreAudioSharedUnit::verifyIsCapturing):
(WebCore::CoreAudioSharedUnit::captureFailed):
(WebCore::CoreAudioCaptureSource::initializeToStartProducingData):
(WebCore::CoreAudioCaptureSource::addEchoCancellationSource):
(WebCore::CoreAudioCaptureSource::removeEchoCancellationSource):
(WebCore::CoreAudioCaptureSource::startProducingData):
(WebCore::CoreAudioCaptureSource::stopProducingData):
(WebCore::CoreAudioCaptureSource::scheduleReconfiguration):
(WebCore::CoreAudioCaptureSource::beginInterruption):
(WebCore::CoreAudioCaptureSource::endInterruption):
- platform/mediastream/mac/CoreAudioCaptureSource.h:
- platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h:
- platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:
(WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream):
(WebCore::ScreenDisplayCaptureSourceMac::startProducingData):
(WebCore::ScreenDisplayCaptureSourceMac::stopProducingData):
(WebCore::ScreenDisplayCaptureSourceMac::startDisplayStream):
Source/WTF:
Reviewed by Youenn Fablet.
- wtf/LoggerHelper.h: Add LOG_IF variants that check a condition before logging.
- 9:44 PM Changeset in webkit [243032] by
-
- 8 edits1 add in trunk
Need to check ObjectPropertyCondition liveness before accessing it when firing watchpoints.
https://bugs.webkit.org/show_bug.cgi?id=195827
<rdar://problem/48845513>
Reviewed by Filip Pizlo.
JSTests:
- stress/check-object-property-condition-liveness-before-accessing-it-when-watchpoints-fire.js: Added.
Source/JavaScriptCore:
m_object in ObjectPropertyCondition may no longer be live by the time the watchpoint fires.
- bytecode/AdaptiveInferredPropertyValueWatchpointBase.cpp:
(JSC::AdaptiveInferredPropertyValueWatchpointBase::fire):
- bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.cpp:
(JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::fireInternal):
- bytecode/ObjectPropertyCondition.cpp:
(JSC::ObjectPropertyCondition::dumpInContext const):
- bytecode/StructureStubClearingWatchpoint.cpp:
(JSC::StructureStubClearingWatchpoint::fireInternal):
- dfg/DFGAdaptiveStructureWatchpoint.cpp:
(JSC::DFG::AdaptiveStructureWatchpoint::fireInternal):
- runtime/StructureRareData.cpp:
(JSC::ObjectToStringAdaptiveStructureWatchpoint::fireInternal):
- 8:14 PM Changeset in webkit [243031] by
-
- 6 edits in trunk
Web Inspector: HAR Extension for Resource Priority
https://bugs.webkit.org/show_bug.cgi?id=195693
Reviewed by Devin Rousso.
Source/WebInspectorUI:
- UserInterface/Controllers/HARBuilder.js:
(WI.HARBuilder.entry):
(WI.HARBuilder.priority):
(WI.HARBuilder.networkPriorityFromHARPriority):
Include priority custom extension.
- UserInterface/Models/LocalResource.js:
(WI.LocalResource.fromHAREntry):
Import priority.
LayoutTests:
- http/tests/inspector/network/har/har-basic-expected.txt:
- http/tests/inspector/network/har/har-page-expected.txt:
- 7:48 PM Changeset in webkit [243030] by
-
- 12 edits5 adds in trunk/Tools
webkitpy: Upload test results
https://bugs.webkit.org/show_bug.cgi?id=195755
<rdar://problem/48896182>
Reviewed by Aakash Jain.
Establish a new format for uploading results that is not tied to layout tests, apply
that format to webkitpy tests.
- Scripts/webkitpy/common/checkout/scm/git.py:
(Git.native_branch): Return what branch the current checkout is on.
- Scripts/webkitpy/common/checkout/scm/scm_mock.py:
- Scripts/webkitpy/common/checkout/scm/scm_unittest.py:
- Scripts/webkitpy/common/checkout/scm/svn.py:
(SVN.native_branch): Ditto.
- Scripts/webkitpy/common/system/platforminfo.py:
(PlatformInfo.build_version): Return a build version for Mac.
- Scripts/webkitpy/common/system/platforminfo_mock.py:
(MockPlatformInfo.init):
(MockPlatformInfo.build_version):
- Scripts/webkitpy/results: Added.
- Scripts/webkitpy/results/init.py: Added.
- Scripts/webkitpy/results/options.py: Added.
(upload_options): OptParse list for upload options.
- Scripts/webkitpy/results/upload.py: Added.
(Upload): Class which enforces the upload format expected by the results server.
(Upload.Expectations):
(Upload.create_configuration):
(Upload.create_commit):
(Upload.create_details):
(Upload.create_run_stats):
(Upload.create_test_result):
(Upload.init):
(Upload.Encoder): Encode Upload object as json.
(Upload.upload): Upload results to the results server, returning 'True' if the upload is successful.
- Scripts/webkitpy/results/upload_unittest.py: Added.
- Scripts/webkitpy/test/main.py:
(Tester._parse_args): Add upload arguments.
(Tester._run_tests): Allow results to be uploaded.
- Scripts/webkitpy/test/runner.py:
(Runner.init): Record which tests were run, rather than just counting them.
(Runner.handle):
- Scripts/webkitpy/test/runner_unittest.py:
(RunnerTest.test_run):
- Scripts/webkitpy/thirdparty/init.py:
(AutoinstallImportHook.find_module): Add requests auto-install.
(AutoinstallImportHook._install_requests):
- Scripts/webkitpy/tool/commands/queues_unittest.py:
(PatchProcessingQueueTest.test_upload_results_archive_for_patch): Update os name for testing.
- 7:21 PM Changeset in webkit [243029] by
-
- 2 edits in trunk/Source/WebCore
Web Inspector: Canvas: remove agent as observer when disabling
https://bugs.webkit.org/show_bug.cgi?id=195825
<rdar://problem/48940255>
Reviewed by Joseph Pecoraro.
No change in functionality.
- inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::disable):
- 4:50 PM Changeset in webkit [243028] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed speculative build fix for non-Cocoa ports after r243012.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getContentsAsAttributedString):
- UIProcess/WebPageProxy.h:
- 4:49 PM Changeset in webkit [243027] by
-
- 15 edits in trunk/Source
Unreviewed, rolling out r243008.
This revision broke High Sierra builders
Reverted changeset:
"[iOS] Block the accessibility server when accessibility is
not enabled."
https://bugs.webkit.org/show_bug.cgi?id=195342
https://trac.webkit.org/changeset/243008
- 4:45 PM Changeset in webkit [243026] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: CPU Usage Timeline - Give long thread names a tooltip if they could be ellipsized
https://bugs.webkit.org/show_bug.cgi?id=195314
Reviewed by Devin Rousso.
- UserInterface/Views/CPUUsageView.js:
(WI.CPUUsageView):
- 4:45 PM Changeset in webkit [243025] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: CPU Usage Timeline - Reduce the intensity of the orange overlay color in dark mode
https://bugs.webkit.org/show_bug.cgi?id=195772
Reviewed by Devin Rousso.
- UserInterface/Views/Variables.css:
(@media (prefers-color-scheme: dark)):
(:root):
- 4:45 PM Changeset in webkit [243024] by
-
- 42 edits2 copies2 adds in trunk
Web Inspector: Timelines - Import / Export Timeline Recordings
https://bugs.webkit.org/show_bug.cgi?id=195709
<rdar://problem/23188921>
Reviewed by Devin Rousso.
Source/WebInspectorUI:
Timeline exporting saves TimelineRecording and TimelineOverview state.
The TimelineRecording includes all kinds of model objects, such as
records, markers, memory pressure events, etc. It also includes raw
protocol data, such as script profiler samples. TimelineOverview
includes some of the view state to restore, such as the selected
time range, zoom level, and selected timeline.
Timeline importing constructs a new TimelineRecording by replaying
the records, markers, and other events, as well as re-initializing
more state. To finally display the imported recording, the content
view will immediately initialize start/current/end times and the
overview will restore the view state.
- Localizations/en.lproj/localizedStrings.js:
New strings.
- UserInterface/Controllers/TimelineManager.js:
(WI.TimelineManager.synthesizeImportError):
(WI.TimelineManager.prototype.importRecording):
Import API.
(WI.TimelineManager.prototype.scriptProfilerTrackingCompleted):
Initialize the samples on the recording via a different path
so that the data can be saved for exporting.
- UserInterface/Models/TimelineRecording.js:
(WI.TimelineRecording):
(WI.TimelineRecording.import):
(WI.TimelineRecording.prototype.exportData):
(WI.TimelineRecording.prototype.get capturing):
(WI.TimelineRecording.prototype.get imported):
(WI.TimelineRecording.prototype.unloaded):
(WI.TimelineRecording.prototype.reset):
(WI.TimelineRecording.prototype.addEventMarker):
(WI.TimelineRecording.prototype.addRecord):
(WI.TimelineRecording.prototype.addMemoryPressureEvent):
(WI.TimelineRecording.prototype.initializeCallingContextTrees):
(WI.TimelineRecording.prototype.canExport):
Save data at the TimelineRecording level that can be used for export.
We only allow exporting a TimelineRecording that has started/stopped
at least once and is not currently capturing.
- UserInterface/Views/TimelineRecordingContentView.js:
(WI.TimelineRecordingContentView):
(WI.TimelineRecordingContentView.prototype.get navigationItems):
(WI.TimelineRecordingContentView.prototype.get supportsSave):
(WI.TimelineRecordingContentView.prototype.get saveData):
(WI.TimelineRecordingContentView.prototype.shown):
(WI.TimelineRecordingContentView.prototype._capturingStarted):
(WI.TimelineRecordingContentView.prototype._capturingStopped):
(WI.TimelineRecordingContentView.prototype._initializeImportedRecording):
(WI.TimelineRecordingContentView.prototype._exportTimelineRecording):
(WI.TimelineRecordingContentView.prototype._importButtonNavigationItemClicked):
(WI.TimelineRecordingContentView.prototype._recordingReset):
Add Import and Export buttons in the Timeline navigation bar.
- UserInterface/Views/TimelineOverview.js:
(WI.TimelineOverview):
(WI.TimelineOverview.prototype.exportData):
(WI.TimelineOverview.prototype._instrumentAdded):
(WI.TimelineOverview.prototype._recordingImported):
When importing a recording update the TimelineOverview state
soon afterwards.
- UserInterface/Models/CPUTimelineRecord.js:
(WI.CPUTimelineRecord.fromJSON):
(WI.CPUTimelineRecord.prototype.toJSON):
- UserInterface/Models/GarbageCollection.js:
(WI.GarbageCollection.fromJSON):
(WI.GarbageCollection.prototype.toJSON):
- UserInterface/Models/Geometry.js:
(WI.Quad.fromJSON):
(WI.Quad.prototype.toJSON):
- UserInterface/Models/HeapAllocationsTimelineRecord.js:
(WI.HeapAllocationsTimelineRecord.fromJSON):
(WI.HeapAllocationsTimelineRecord.prototype.toJSON):
- UserInterface/Models/LayoutTimelineRecord.js:
(WI.LayoutTimelineRecord.fromJSON):
(WI.LayoutTimelineRecord.prototype.toJSON):
- UserInterface/Models/MediaTimelineRecord.js:
(WI.MediaTimelineRecord.fromJSON):
(WI.MediaTimelineRecord.prototype.toJSON):
- UserInterface/Models/MemoryPressureEvent.js:
(WI.MemoryPressureEvent.fromJSON):
(WI.MemoryPressureEvent.prototype.toJSON):
- UserInterface/Models/MemoryTimelineRecord.js:
(WI.MemoryTimelineRecord):
(WI.MemoryTimelineRecord.fromJSON):
(WI.MemoryTimelineRecord.prototype.toJSON):
- UserInterface/Models/RenderingFrameTimelineRecord.js:
(WI.RenderingFrameTimelineRecord.fromJSON):
(WI.RenderingFrameTimelineRecord.prototype.toJSON):
- UserInterface/Models/ResourceTimelineRecord.js:
(WI.ResourceTimelineRecord.fromJSON):
(WI.ResourceTimelineRecord.prototype.toJSON):
- UserInterface/Models/ScriptTimelineRecord.js:
(WI.ScriptTimelineRecord.fromJSON):
(WI.ScriptTimelineRecord.prototype.toJSON):
- UserInterface/Models/TimelineMarker.js:
(WI.TimelineMarker.fromJSON):
(WI.TimelineMarker.prototype.toJSON):
(WI.TimelineMarker.prototype.get type):
(WI.TimelineMarker.prototype.get details):
(WI.TimelineMarker.prototype.set time):
(WI.TimelineMarker):
- UserInterface/Models/TimelineRecord.js:
(WI.TimelineRecord.fromJSON):
(WI.TimelineRecord.prototype.toJSON):
Import / Export toJSON / fromJSON implementations.
- UserInterface/Views/CPUTimelineOverviewGraph.js:
(WI.CPUTimelineOverviewGraph):
(WI.CPUTimelineOverviewGraph.prototype._cpuTimelineRecordAdded):
(WI.CPUTimelineOverviewGraph.prototype._processRecord):
- UserInterface/Views/LayoutTimelineOverviewGraph.js:
(WI.LayoutTimelineOverviewGraph):
(WI.LayoutTimelineOverviewGraph.prototype._layoutTimelineRecordAdded):
(WI.LayoutTimelineOverviewGraph.prototype._processRecord):
- UserInterface/Views/LayoutTimelineView.js:
(WI.LayoutTimelineView):
(WI.LayoutTimelineView.prototype._layoutTimelineRecordAdded):
(WI.LayoutTimelineView.prototype._processRecord):
- UserInterface/Views/MediaTimelineView.js:
(WI.MediaTimelineView):
(WI.MediaTimelineView.prototype._handleRecordAdded):
(WI.MediaTimelineView.prototype._processRecord):
- UserInterface/Views/MemoryTimelineOverviewGraph.js:
(WI.MemoryTimelineOverviewGraph):
(WI.MemoryTimelineOverviewGraph.prototype._memoryTimelineRecordAdded):
(WI.MemoryTimelineOverviewGraph.prototype._processRecord):
- UserInterface/Views/MemoryTimelineView.js:
(WI.MemoryTimelineView):
(WI.MemoryTimelineView.prototype._memoryTimelineRecordAdded):
(WI.MemoryTimelineView.prototype._processRecord):
- UserInterface/Views/NetworkTimelineOverviewGraph.js:
(WI.NetworkTimelineOverviewGraph):
(WI.NetworkTimelineOverviewGraph.prototype.reset):
(WI.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded):
(WI.NetworkTimelineOverviewGraph.prototype._processRecord):
(WI.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded.compareByStartTime): Deleted.
- UserInterface/Views/NetworkTimelineView.js:
(WI.NetworkTimelineView):
(WI.NetworkTimelineView.prototype._networkTimelineRecordAdded):
(WI.NetworkTimelineView.prototype._processRecord):
- UserInterface/Views/RenderingFrameTimelineView.js:
(WI.RenderingFrameTimelineView):
(WI.RenderingFrameTimelineView.prototype._renderingFrameTimelineRecordAdded):
(WI.RenderingFrameTimelineView.prototype._processRecord):
- UserInterface/Views/ScriptDetailsTimelineView.js:
(WI.ScriptDetailsTimelineView):
(WI.ScriptDetailsTimelineView.prototype._scriptTimelineRecordAdded):
(WI.ScriptDetailsTimelineView.prototype._processRecord):
Add common _processRecord path to each timeline OverviewGraph and TimelineView.
By calling this in construction we populate graphs with TimelineRecords that
may have already existed. This is necessary for imports, but this also fixes
the case where you enable a timeline that had data and it didn't show data.
- UserInterface/Views/LayoutTimelineOverviewGraph.css:
(.timeline-overview-graph.layout-overview > .graph-row):
(.timeline-overview-graph.layout-overview > .graph-row > .timeline-record-bar):
(.timeline-overview-graph.layout-overview > .graph-row > .timeline-record-bar > .segment):
(.timeline-overview-graph.layout > .graph-row): Deleted.
(.timeline-overview-graph.layout > .graph-row > .timeline-record-bar): Deleted.
(.timeline-overview-graph.layout > .graph-row > .timeline-record-bar > .segment): Deleted.
- UserInterface/Views/TimelineRecordBar.css:
(.timeline-record-bar.timeline-record-type-layout.paint > .segment,):
(.timeline-record-bar.timeline-record-type-layout.layout-timeline-record-paint > .segment,): Deleted.
We simplified some of the sub-record type enum strings. To do this we needed to change
"layout" to "layout-overview" to avoid a conflict.
LayoutTests:
- inspector/timeline/timeline-recording-expected.txt: Added.
- inspector/timeline/timeline-recording.html: Added.
- 4:33 PM Changeset in webkit [243023] by
-
- 1 copy in tags/Safari-607.2.2
Tag Safari-607.2.2.
- 4:12 PM Changeset in webkit [243022] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION (r239814): Most classes that user Timer have 7 bytes of padding after the Timer
https://bugs.webkit.org/show_bug.cgi?id=194196
Reviewed by Simon Fraser.
Use std::nan as the value of m_unalignedNextFireTime to indicate the timer had been deleted
instead of having a dedicated boolean, which consumes 7 extra bytes for padding.
Note that some code in WebKit uses +Infinity as a fire time so we can't use that.
- platform/Timer.cpp:
(WebCore::TimerBase::TimerBase):
(WebCore::TimerBase::~TimerBase):
(WebCore::TimerBase::setNextFireTime):
(WebCore::TimerBase::nextUnalignedFireInterval const):
- platform/Timer.h:
- 4:09 PM Changeset in webkit [243021] by
-
- 4 edits in trunk/Tools
[iOS] Crash under -[TestRunnerWKWebView _didShowMenu] while running layout tests on iOS simulator
https://bugs.webkit.org/show_bug.cgi?id=195810
Reviewed by Tim Horton.
Ensure that the process of resetting web view state between tests doesn't also invoke testing callbacks
registered by the previous layout test. This fixes an occasional crash when hiding the callout menu after
ending certain layout tests.
- WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
(-[TestRunnerWKWebView dealloc]):
(-[TestRunnerWKWebView resetInteractionCallbacks]):
Pull logic to reset all of TestRunnerWKWebView's callback handler blocks into a separate helper method; use this
helper method when destroying the web view, and when resetting state between tests.
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):
Hide the callout menu *after* clearing out interaction callbacks registered on the web view.
- 3:37 PM Changeset in webkit [243020] by
-
- 3 edits in trunk/Source/WebKit
All networking from WebKit.Networking fails when Network Extension content filter is enabled
https://bugs.webkit.org/show_bug.cgi?id=195815
<rdar://problem/47598758>
Reviewed by Brent Fulgham.
The sandbox needs to allow an associated mach lookup.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- 3:32 PM Changeset in webkit [243019] by
-
- 24 edits3 adds in trunk
[ Mojave WK1 ] Layout Test storage/indexeddb/database-odd-names.html is failing
https://bugs.webkit.org/show_bug.cgi?id=190350
<rdar://problem/45089503>
Reviewed by Geoffrey Garen.
Source/WebCore:
Start to use hash for database file names so that the files can work on any filesystem.
We created v0 folder in IndexedDB directory to put the legacy databases, and v1 folder to put the upgraded
databases.
Tests: TestWebKitAPI.IndexedDB.IndexedDBFileName
TestWebKitAPI.IndexedDB.IndexedDBFileNameV0
TestWebKitAPI.IndexedDB.IndexedDBFileNameV1
TestWebKitAPI.IndexedDB.IndexedDBFileNameAPI
TestWebKitAPI.IndexedDB.HashCollision
- Modules/indexeddb/IDBDatabaseIdentifier.cpp:
(WebCore::IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot const):
(WebCore::IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot):
- Modules/indexeddb/IDBDatabaseIdentifier.h:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::m_quotaManagerGetter):
(WebCore::IDBServer::IDBServer::performGetAllDatabaseNames):
(WebCore::IDBServer::removeAllDatabasesForFullOriginPath):
(WebCore::IDBServer::removeAllDatabasesForOriginPath):
(WebCore::IDBServer::IDBServer::removeDatabasesModifiedSinceForVersion):
(WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesModifiedSince):
(WebCore::IDBServer::IDBServer::removeDatabasesWithOriginsForVersion):
(WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesForOrigins):
(WebCore::IDBServer::IDBServer::computeSpaceUsedForOrigin):
(WebCore::IDBServer::IDBServer::upgradeFilesIfNecessary):
- Modules/indexeddb/server/IDBServer.h:
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::SQLiteIDBBackingStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::fullDatabasePathForDirectory):
(WebCore::IDBServer::SQLiteIDBBackingStore::fullDatabasePath const):
(WebCore::IDBServer::SQLiteIDBBackingStore::databaseNameFromFile):
(WebCore::IDBServer::SQLiteIDBBackingStore::fullDatabaseDirectoryWithUpgrade):
(WebCore::IDBServer::SQLiteIDBBackingStore::getOrEstablishDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::quotaForOrigin const):
(WebCore::IDBServer::SQLiteIDBBackingStore::databasesSizeForOrigin const):
(WebCore::IDBServer::SQLiteIDBBackingStore::getBlobRecordsForObjectStoreRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::fullDatabaseDirectory const): Deleted.
- Modules/indexeddb/server/SQLiteIDBBackingStore.h:
(WebCore::IDBServer::SQLiteIDBBackingStore::databaseDirectory const):
- Modules/indexeddb/server/SQLiteIDBTransaction.cpp:
(WebCore::IDBServer::SQLiteIDBTransaction::moveBlobFilesIfNecessary):
(WebCore::IDBServer::SQLiteIDBTransaction::deleteBlobFilesIfNecessary):
- platform/sql/SQLiteFileSystem.cpp:
(WebCore::SQLiteFileSystem::computeHashForFileName):
- platform/sql/SQLiteFileSystem.h:
Source/WebKit:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::collectIndexedDatabaseOriginsForVersion):
(WebKit::NetworkProcess::indexedDatabaseOrigins):
- NetworkProcess/NetworkProcess.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::addSession):
(WebKit::NetworkProcessProxy::createSymLinkForFileUpgrade): For efficientcy and atomicity, we choose to use
symlink to create v0 folder. Because network process does not have the permission to create a symlink, we need
to do this in UI process. UI process would create v0 folder inside the IndexedDB directory if there isn't one.
Also if there is a v0 directory but it doesn't have content, it means it's not a correct symlink and we need to
delete it and create again.
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/IDBIndexUpgradeToV2.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDB.sqlite3:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDB.sqlite3-shm:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDB.sqlite3-wal:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBFileName-1.html: Added.
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBFileName-2.html: Added.
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBFileName.mm: Added.
(-[IndexedDBFileNameMessageHandler userContentController:didReceiveScriptMessage:]):
(runTest):
(createDirectories):
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBTempFileSize.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/StoreBlobThenDelete.mm:
(TEST):
- 3:27 PM Changeset in webkit [243018] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Restrict iokit-user-client-class "IOHIDLibUserClient" from WebKit
https://bugs.webkit.org/show_bug.cgi?id=195821
<rdar://problem/47606250>
Reviewed by Brent Fulgham.
This should be removed from the WebContent sandbox on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 3:18 PM Changeset in webkit [243017] by
-
- 4 edits2 adds in trunk
[ContentChangeObserver] HTMLImageElement::willRespondToMouseClickEvents returns quirk value.
https://bugs.webkit.org/show_bug.cgi?id=195657
<rdar://problem/48834987>
Reviewed by Simon Fraser.
Source/WebCore:
Images should not trigger hover by default (only when they actually respond to mouse events).
Test: fast/events/touch/ios/content-observation/visibility-change-with-image-content.html
- page/ios/ContentChangeObserver.cpp:
(WebCore::ContentChangeObserver::StyleChangeScope::isConsideredClickable const):
LayoutTests:
- fast/events/touch/ios/content-observation/visibility-change-with-image-content-expected.txt: Added.
- fast/events/touch/ios/content-observation/visibility-change-with-image-content.html: Added.
- 3:18 PM Changeset in webkit [243016] by
-
- 3 edits in trunk/Source/WebKit
_WKDownload should conform to NSCopying protocol
https://bugs.webkit.org/show_bug.cgi?id=195718
Reviewed by Tim Horton.
This will allow us to use it as keys in NSMutableDictionaries, which Safari already kind of does.
- UIProcess/API/Cocoa/_WKDownload.h:
- UIProcess/API/Cocoa/_WKDownload.mm:
(-[_WKDownload copyWithZone:]):
- 3:06 PM Changeset in webkit [243015] by
-
- 5 edits1 copy1 add in trunk
Provide an option for an always-on fast click mode in iOS
https://bugs.webkit.org/show_bug.cgi?id=195822
<rdar://problem/48939357>
Reviewed by Sam Weinig.
Source/WebKit:
Add an option that will always trigger a click and never
wait for a double tap to zoom. It is disabled by default.
- Shared/WebPreferences.yaml:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:]):
LayoutTests:
New test for "always fast click" mode.
- fast/events/ios/ipad/fast-click-always-expected.txt: Added.
- fast/events/ios/ipad/fast-click-always.html: Copied from LayoutTests/fast/events/ios/ipad/fast-click-double-tap-sends-click-on-insignificant-zoom.html.
- fast/events/ios/ipad/fast-click-double-tap-sends-click-on-insignificant-zoom.html:
- 3:02 PM Changeset in webkit [243014] by
-
- 22 edits4 copies2 adds in trunk
Add a "supportedConfiguration" dictionary to MediaCapabilitiesDecodingInfo and MediaCapabilitiesEncodingInfo
https://bugs.webkit.org/show_bug.cgi?id=195763
Reviewed by Jon Lee.
Source/WebCore:
Test: media/mediacapabilities/mock-decodingInfo-supportedConfiguration.html
Add support for a proposed addition to the Media Capabilities spec that would future-proof additional changes
to Media Capabilities by allowing sites to check exactly what properties were queried by the browser when
answering a decodeInfo() or enocdeInfo() query.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/mediacapabilities/AudioConfiguration.idl:
- Modules/mediacapabilities/MediaCapabilities.cpp:
(WebCore::MediaCapabilities::decodingInfo):
(WebCore::MediaCapabilities::encodingInfo):
- Modules/mediacapabilities/MediaCapabilities.idl:
- Modules/mediacapabilities/MediaCapabilitiesDecodingInfo.idl:
- Modules/mediacapabilities/MediaCapabilitiesEncodingInfo.idl:
- Modules/mediacapabilities/MediaCapabilitiesInfo.idl:
- Modules/mediacapabilities/MediaDecodingConfiguration.idl:
- Modules/mediacapabilities/MediaEncodingConfiguration.idl:
- Modules/mediacapabilities/VideoConfiguration.idl:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/MediaCapabilitiesDecodingInfo.h: Copied from Source/WebCore/platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.h.
(WebCore::MediaCapabilitiesDecodingInfo::MediaCapabilitiesDecodingInfo):
- platform/MediaCapabilitiesEncodingInfo.h: Copied from Source/WebCore/platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.h.
(WebCore::MediaCapabilitiesEncodingInfo::MediaCapabilitiesEncodingInfo):
- platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp:
(WebCore::createMediaPlayerDecodingConfigurationCocoa):
- platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.h:
- platform/graphics/gstreamer/MediaEngineConfigurationFactoryGStreamer.cpp:
(WebCore::createMediaPlayerDecodingConfigurationGStreamer):
- platform/graphics/gstreamer/MediaEngineConfigurationFactoryGStreamer.h:
- platform/mediacapabilities/MediaEngineConfigurationFactory.cpp:
(WebCore::MediaEngineConfigurationFactory::createDecodingConfiguration):
(WebCore::MediaEngineConfigurationFactory::createEncodingConfiguration):
- platform/mediacapabilities/MediaEngineConfigurationFactory.h:
- platform/mock/MediaEngineConfigurationFactoryMock.cpp:
(WebCore::MediaEngineConfigurationFactoryMock::createDecodingConfiguration):
(WebCore::MediaEngineConfigurationFactoryMock::createEncodingConfiguration):
- platform/mock/MediaEngineConfigurationFactoryMock.h:
LayoutTests:
- media/mediacapabilities/mock-decodingInfo-supportedConfiguration-expected.txt: Added.
- media/mediacapabilities/mock-decodingInfo-supportedConfiguration.html: Added.
- 2:45 PM Changeset in webkit [243013] by
-
- 2 edits in trunk/PerformanceTests
Fixed a bug preventing the overall sore to be displayed on JetStream2
https://bugs.webkit.org/show_bug.cgi?id=195817
Rubber-stamped by Saam Barati.
- JetStream2/JetStreamDriver.js:
(Driver.prototype.async.start):
- 2:36 PM Changeset in webkit [243012] by
-
- 12 edits in trunk
Add support to WebPage for getting the contents as an attributed string.
https://bugs.webkit.org/show_bug.cgi?id=195636
rdar://problem/45055697
Reviewed by Tim Horton.
Source/WebKit:
- Shared/mac/AttributedString.h:
(WebKit::AttributedString::AttributedString):
- Shared/mac/AttributedString.mm:
(IPC::ArgumentCoder<WebKit::AttributedString>::encode):
(IPC::ArgumentCoder<WebKit::AttributedString>::decode):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _getContentsAsAttributedStringWithCompletionHandler:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getContentsAsAttributedString):
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::getContentsAsAttributedString):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewGetContents.mm:
(TEST(WKWebView, GetContentsShouldReturnAttributedString): Added.
- 2:33 PM Changeset in webkit [243011] by
-
- 9 edits in trunk/Source/JavaScriptCore
[JSC] Make more properties lazily-allocated in JSGlobalObject, including properties only used in JIT mode
https://bugs.webkit.org/show_bug.cgi?id=195816
Reviewed by Michael Saboff.
This patch makes more properties lazily-allocated in JSGlobalObject. This patch makes the following lazily-allocated.
- iteratorResultObjectStructure
- WebAssembly related objects except for JSWebAssembly top-level object.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::iteratorResultObjectStructure const):
(JSC::JSGlobalObject::webAssemblyModuleRecordStructure const):
(JSC::JSGlobalObject::webAssemblyFunctionStructure const):
(JSC::JSGlobalObject::webAssemblyWrapperFunctionStructure const):
(JSC::JSGlobalObject::webAssemblyToJSCalleeStructure const):
- wasm/js/JSWebAssembly.cpp:
- wasm/js/JSWebAssembly.h:
- 2:30 PM Changeset in webkit [243010] by
-
- 3 edits in trunk/Source/WebKit
[iOS] Fix sandbox violation
https://bugs.webkit.org/show_bug.cgi?id=195387
<rdar://problem/48442387>
Reviewed by Brent Fulgham.
The sandbox on iOS and macOS needs to allow mach lookup to the "com.apple.nesessionmanager.content-filter"
mach service. Also, mach lookups to "com.apple.nehelper" should be allowed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
- 2:07 PM Changeset in webkit [243009] by
-
- 7 edits in trunk
[PSON] Make sure the WebProcessCache is leverage when relaunching a process after termination
https://bugs.webkit.org/show_bug.cgi?id=195747
Reviewed by Geoff Garen.
Source/WebKit:
Make sure the WebProcessCache and the prewarmed process are used when relaunching a process
after termination (e.g. crash).
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::reattachToWebProcessForReload):
(WebKit::WebPageProxy::reattachToWebProcessWithItem):
(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadAlternateHTML):
(WebKit::WebPageProxy::loadWebArchiveData):
(WebKit::WebPageProxy::navigateToPDFLinkWithSimulatedClick):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processForRegistrableDomain):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::processForNavigationInternal):
(WebKit::WebProcessPool::tryPrewarmWithDomainInformation):
- UIProcess/WebProcessPool.h:
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 1:27 PM Changeset in webkit [243008] by
-
- 15 edits in trunk/Source
[iOS] Block the accessibility server when accessibility is not enabled.
https://bugs.webkit.org/show_bug.cgi?id=195342
Reviewed by Brent Fulgham.
Source/WebKit:
By default, block the iOS accessibility server in the sandbox. If accessibility is enabled,
let the UI process issue a mach extension to the WebContent process. The UI process will
issue the mach extension the the WebContent process by its process identifier. The sandbox
extension handle is sent to the WebContent process to be consumed. The message will be sent
when the WebProcess has finished launching, and also when accessibility is turned on.
- Platform/spi/ios/AccessibilitySupportSPI.h:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- Shared/SandboxExtension.h:
- Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtensionImpl::create):
(WebKit::SandboxExtensionImpl::sandboxExtensionForType):
(WebKit::SandboxExtensionImpl::SandboxExtensionImpl):
(WebKit::SandboxExtension::createHandleForMachLookupByPid):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didFinishLaunching):
- UIProcess/WebProcessProxy.h:
- UIProcess/ios/WebProcessProxyIOS.mm:
(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::unblockAccessibilityServer):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
Source/WTF:
Add SPI to issue a mach extension to a process by pid.
- wtf/spi/darwin/SandboxSPI.h:
- 1:06 PM Changeset in webkit [243007] by
-
- 18 edits in trunk/Source
Use Region for event region even when it is a rectangle
https://bugs.webkit.org/show_bug.cgi?id=195803
Reviewed by Simon Fraser.
Source/WebCore:
Region type is now optimized for the common single-rectangle case so we can simplify code.
- platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::setEventRegion):
- platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::eventRegion const):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setEventRegion):
- platform/graphics/ca/GraphicsLayerCA.h:
- platform/graphics/ca/PlatformCALayer.h:
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintIntoLayer):
Source/WebKit:
- Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
- Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
- Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode const):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
- UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h:
(WebKit::RemoteLayerTreeNode::eventRegion const):
- UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:
(WebKit::RemoteLayerTreeNode::setEventRegion):
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:
(WebKit::collectDescendantViewsAtPoint):
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::setEventRegion):
(WebKit::PlatformCALayerRemote::eventRegion const): Deleted.
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h:
- 12:34 PM Changeset in webkit [243006] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed unified build fix: GPUBindGroup has a default public constructor and destructor, so all its member
variables must be fully defined.
- platform/graphics/gpu/GPUBindGroup.h:
- 12:14 PM Changeset in webkit [243005] by
-
- 2 edits in trunk/Source/JavaScriptCore
[CMake] Move test .js files into testapiScripts
https://bugs.webkit.org/show_bug.cgi?id=195565
Reviewed by Yusuke Suzuki.
testapi expect .js file in the testapiScripts-directory.
- shell/CMakeLists.txt:
- 11:44 AM Changeset in webkit [243004] by
-
- 4 edits2 adds in trunk/Source/WebInspectorUI
Web Inspector: Network - Toggle Between Live Activity and Imported HAR resource collections
https://bugs.webkit.org/show_bug.cgi?id=195734
Reviewed by Devin Rousso.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Images/NetworkHAR.svg: Added.
- UserInterface/Images/NetworkOverview.svg: Added.
- UserInterface/Views/NetworkTableContentView.css:
(.content-view.tab.network > .content-browser > .navigation-bar .hierarchical-path .icon):
(.network-overview-icon > .icon):
(.network-har-icon > .icon):
(@media (prefers-color-scheme: dark)):
- UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype.get navigationItems):
(WI.NetworkTableContentView.prototype.reset):
(WI.NetworkTableContentView.prototype.tableIndexForRepresentedObject):
(WI.NetworkTableContentView.prototype.tableRepresentedObjectForIndex):
(WI.NetworkTableContentView.prototype.tableNumberOfRows):
(WI.NetworkTableContentView.prototype.tableCellContextMenuClicked):
(WI.NetworkTableContentView.prototype.tableSelectionDidChange):
(WI.NetworkTableContentView.prototype.tablePopulateCell):
(WI.NetworkTableContentView.prototype._addCollection):
(WI.NetworkTableContentView.prototype._setActiveCollection):
(WI.NetworkTableContentView.prototype._addCollectionPathComponent):
(WI.NetworkTableContentView.prototype._collectionsHierarchicalPathComponentWasSelected):
(WI.NetworkTableContentView.prototype._changeCollection):
(WI.NetworkTableContentView.prototype.handleClearShortcut):
(WI.NetworkTableContentView.prototype._updateWaterfallTimeRange):
(WI.NetworkTableContentView.prototype._updateWaterfallTimelineRuler):
(WI.NetworkTableContentView.prototype._canExportHAR):
(WI.NetworkTableContentView.prototype._processPendingEntries):
(WI.NetworkTableContentView.prototype._populateWithInitialResourcesIfNeeded):
(WI.NetworkTableContentView.prototype._rowIndexForRepresentedObject):
(WI.NetworkTableContentView.prototype._updateEntryForResource):
(WI.NetworkTableContentView.prototype._updateEmptyFilterResultsMessage):
(WI.NetworkTableContentView.prototype._mainResourceDidChange):
(WI.NetworkTableContentView.prototype._mainFrameDidChange):
(WI.NetworkTableContentView.prototype._resourceLoadingDidFinish):
(WI.NetworkTableContentView.prototype._resourceLoadingDidFail):
(WI.NetworkTableContentView.prototype._resourceTransferSizeDidChange):
(WI.NetworkTableContentView.prototype._handleResourceAdded):
(WI.NetworkTableContentView.prototype._runForMainCollection):
(WI.NetworkTableContentView.prototype._isShowingMainCollection):
(WI.NetworkTableContentView.prototype._insertResourceAndReloadTable):
(WI.NetworkTableContentView.prototype._handleNodeDidFireEvent):
(WI.NetworkTableContentView.prototype._handleNodeLowPowerChanged):
(WI.NetworkTableContentView.prototype._updateSort):
(WI.NetworkTableContentView.prototype._updateFilteredEntries):
(WI.NetworkTableContentView.prototype._urlFilterDidChange):
(WI.NetworkTableContentView.prototype._HARResources):
(WI.NetworkTableContentView.prototype._importHAR):
Introduce the concept of collections that can be swapped in/out
to re-render the Network Table with different contents.
- 11:26 AM Changeset in webkit [243003] by
-
- 7 edits in trunk
Unreviewed, rolling out r242952.
Causing API failures on iOS Simulator
Reverted changeset:
"[PSON] Make sure the WebProcessCache is leverage when
relaunching a process after termination"
https://bugs.webkit.org/show_bug.cgi?id=195747
https://trac.webkit.org/changeset/242952
- 11:18 AM Changeset in webkit [243002] by
-
- 26 edits4 adds in trunk/Source
[macOS] Broker access to Speech Synthesis
https://bugs.webkit.org/show_bug.cgi?id=195645
<rdar://problem/35369026>
Reviewed by Brent Fulgham.
To be able to close the connection to the speech synthesis daemon in the WebContent process,
speech synthesis should be performed in the UI process. This patch forwards speech synthesis
requests to the UI process by sending messages. On the UI process side, the speech synthesis
is performed by simply using the existing platform speech synthesizer. Speech synthesis
events are sent back to the WebContent process. All messages are async, except for the
message to get the list of available voices.
Source/WebCore:
No new tests, covered by existing tests.
- Modules/speech/DOMWindowSpeechSynthesis.cpp:
(WebCore::DOMWindowSpeechSynthesis::speechSynthesis):
- Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::create):
(WebCore::SpeechSynthesis::SpeechSynthesis):
(WebCore::SpeechSynthesis::setPlatformSynthesizer):
(WebCore::SpeechSynthesis::getVoices):
(WebCore::SpeechSynthesis::startSpeakingImmediately):
(WebCore::SpeechSynthesis::cancel):
(WebCore::SpeechSynthesis::pause):
(WebCore::SpeechSynthesis::resume):
(WebCore::SpeechSynthesis::boundaryEventOccurred):
(WebCore::SpeechSynthesis::didStartSpeaking):
(WebCore::SpeechSynthesis::didFinishSpeaking):
(WebCore::SpeechSynthesis::didPauseSpeaking):
(WebCore::SpeechSynthesis::didResumeSpeaking):
(WebCore::SpeechSynthesis::speakingErrorOccurred):
(WebCore::SpeechSynthesis::voicesChanged):
- Modules/speech/SpeechSynthesis.h:
- WebCore.xcodeproj/project.pbxproj:
- page/Page.cpp:
(WebCore::Page::Page):
- page/Page.h:
(WebCore::Page::speechSynthesisClient const):
- page/PageConfiguration.cpp:
- page/PageConfiguration.h:
- page/SpeechSynthesisClient.h: Added.
- platform/PlatformSpeechSynthesisUtterance.h:
- platform/PlatformSpeechSynthesizer.h:
- platform/ios/PlatformSpeechSynthesizerIOS.mm:
(-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakRangeOfSpeechString:utterance:]):
- platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakWord:ofString:]):
- platform/mock/PlatformSpeechSynthesizerMock.cpp:
(WebCore::PlatformSpeechSynthesizerMock::speak):
Source/WebKit:
- Sources.txt:
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::didStartSpeaking):
(WebKit::WebPageProxy::didFinishSpeaking):
(WebKit::WebPageProxy::didPauseSpeaking):
(WebKit::WebPageProxy::didResumeSpeaking):
(WebKit::WebPageProxy::speakingErrorOccurred):
(WebKit::WebPageProxy::boundaryEventOccurred):
(WebKit::WebPageProxy::voicesDidChange):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::ensureSpeechSynthesisData):
(WebKit::WebPageProxy::speechSynthesisVoiceList):
(WebKit::WebPageProxy::speechSynthesisSpeak):
(WebKit::WebPageProxy::speechSynthesisCancel):
(WebKit::WebPageProxy::speechSynthesisPause):
(WebKit::WebPageProxy::speechSynthesisResume):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebCoreSupport/WebSpeechSynthesisClient.cpp: Added.
(WebKit::WebSpeechSynthesisClient::voiceList):
(WebKit::WebSpeechSynthesisClient::speak):
(WebKit::WebSpeechSynthesisClient::cancel):
(WebKit::WebSpeechSynthesisClient::pause):
(WebKit::WebSpeechSynthesisClient::resume):
- WebProcess/WebCoreSupport/WebSpeechSynthesisClient.h: Added.
(WebKit::WebSpeechSynthesisClient::WebSpeechSynthesisClient):
(WebKit::WebSpeechSynthesisClient::~WebSpeechSynthesisClient):
- WebProcess/WebCoreSupport/WebSpeechSynthesisVoice.h: Added.
(WebKit::WebSpeechSynthesisVoice::encode const):
(WebKit::WebSpeechSynthesisVoice::decode):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_hostFileDescriptor):
(WebKit::WebPage::speakingErrorOccurred):
(WebKit::WebPage::boundaryEventOccurred):
(WebKit::WebPage::voicesDidChange):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/com.apple.WebProcess.sb.in:
- WebProcess/glib/WebProcessGLib.cpp:
- 11:07 AM Changeset in webkit [243001] by
-
- 2 edits in branches/safari-607.1.40.0-branch/Source/WebCore
Revert r242781. rdar://problem/48795264
- 11:07 AM Changeset in webkit [243000] by
-
- 2 edits in branches/safari-607.1.40.0-branch/Source/WebCore
Revert r242822. rdar://problem/48795264
- 10:14 AM Changeset in webkit [242999] by
-
- 2 edits in trunk/Source/JavaScriptCore
Gardening: add a missing exception check after r242991.
https://bugs.webkit.org/show_bug.cgi?id=195791
Unreviewed.
- tools/JSDollarVM.cpp:
(JSC::functionGetGetterSetter):
- 9:50 AM Changeset in webkit [242998] by
-
- 2 edits in trunk/Source/WebCore
Try to fix watchOS build.
- platform/graphics/Region.h:
(WebCore::Region::Span::decode):
- 9:26 AM Changeset in webkit [242997] by
-
- 12 edits4 adds in trunk
[Async overflow Scrolling] Update positioned node layers when overflows are scrolled
https://bugs.webkit.org/show_bug.cgi?id=195733
rdar://problem/11642295
Reviewed by Antti Koivisto.
Source/WebCore:
Make ScrollingTree positioned nodes in the two cases where we need them, as
detected by RenderLayerCompositor::computeCoordinatedPositioningForLayer().
For "Moves" layers we know that the overflow is not in the z-order ancestor chain,
so ScrollingTree needs a map of overflow node -> affected positioned nodes which
notifyRelatedNodesAfterScrollPositionChange() uses to find nodes to update after
a scroll. Computing these dependent nodes in RenderLayerCompositor() would require
correct dependency analysis between an overflow layers and "positioned" layers which
is hard. It's easier to have "positioned" layers figure out which overflow nodes
affect them, then compute the inverse relationship when the scrolling tree is updated
which happens in ScrollingTreePositionedNode::commitStateBeforeChildren().
Tests: scrollingcoordinator/ios/absolute-layer-should-not-move-with-scroll.html
scrollingcoordinator/ios/relative-layer-should-move-with-scroll.html
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::commitTreeState):
(WebCore::ScrollingTree::applyLayerPositions):
(WebCore::ScrollingTree::notifyRelatedNodesAfterScrollPositionChange):
(WebCore::ScrollingTree::scrollingTreeAsText):
- page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::overflowRelatedNodes):
- page/scrolling/ScrollingTreeOverflowScrollingNode.cpp:
(WebCore::ScrollingTreeOverflowScrollingNode::dumpProperties const):
- page/scrolling/ScrollingTreeOverflowScrollingNode.h:
- page/scrolling/cocoa/ScrollingTreePositionedNode.mm:
(WebCore::ScrollingTreePositionedNode::commitStateBeforeChildren):
(WebCore::ScrollingTreePositionedNode::applyLayerPositions):
(WebCore::ScrollingTreePositionedNode::relatedNodeScrollPositionDidChange):
- rendering/RenderLayerCompositor.cpp:
(WebCore::layerContainingBlockCrossesCoordinatedScrollingBoundary):
(WebCore::layerParentedAcrossCoordinatedScrollingBoundary):
(WebCore::RenderLayerCompositor::computeCoordinatedPositioningForLayer const):
(WebCore::collectRelatedCoordinatedScrollingNodes):
(WebCore::RenderLayerCompositor::updateScrollingNodeForPositioningRole):
LayoutTests:
New tests that use uiController.scrollUpdatesDisabled, and are the two move/stationary
cases.
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/positioned-nodes-expected.txt:
- scrollingcoordinator/ios/absolute-layer-should-not-move-with-scroll-expected.html: Added.
- scrollingcoordinator/ios/absolute-layer-should-not-move-with-scroll.html: Added.
- scrollingcoordinator/ios/relative-layer-should-move-with-scroll-expected.html: Added.
- scrollingcoordinator/ios/relative-layer-should-move-with-scroll.html: Added.
- scrollingcoordinator/ios/ui-scrolling-tree-expected.txt: Fixed the last paren showing up.
- scrollingcoordinator/scrolling-tree/positioned-nodes-expected.txt: We make positioned nodes now.
- 9:20 AM Changeset in webkit [242996] by
-
- 7 edits in branches/safari-607-branch/Source
Versioning.
- 8:43 AM Changeset in webkit [242995] by
-
- 11 edits in trunk/Source
Optimize Region for single rectangle case
https://bugs.webkit.org/show_bug.cgi?id=195743
Reviewed by Simon Fraser.
Source/WebCore:
Instrumentation shows vast majority of Region objects consist of a single rectangle. However it always allocates
the large Shape data structure. This makes it unsuitable to use as a member in any popular objects.
This patch optimizes the single rectangle case by using only the bounds rectangle to describe it.
Shape is allocated on demand. This makes it safe to use Region as a data member where a rectangle is the common case.
The patch also modernizes Region encoding/decoding support.
- platform/graphics/Region.cpp:
(WebCore::Region::Region):
(WebCore::Region::~Region):
(WebCore::Region::operator=):
(WebCore::Region::rects const):
(WebCore::Region::contains const):
(WebCore::Region::intersects const):
(WebCore::Region::Shape::Shape):
(WebCore::Region::Shape::appendSpan):
(WebCore::Region::dump const):
(WebCore::Region::intersect):
(WebCore::Region::unite):
(WebCore::Region::subtract):
(WebCore::Region::translate):
(WebCore::Region::setShape):
(WebCore::Region::Shape::isValid const): Deleted.
(WebCore::Region::Shape::swap): Deleted.
(WebCore::Region::updateBoundsFromShape): Deleted.
Remove some now unused function.
- platform/graphics/Region.h:
(WebCore::Region::isRect const):
(WebCore::Region::gridSize const):
(WebCore::Region::copyShape const):
(WebCore::operator==):
(WebCore::Region::Span::encode const):
(WebCore::Region::Span::decode):
(WebCore::Region::Shape::encode const):
(WebCore::Region::Shape::decode):
(WebCore::Region::encode const):
(WebCore::Region::decode):
This is now part of type.
(WebCore::Region::isValid const): Deleted.
(WebCore::Region::Span::Span): Deleted.
(WebCore::Region::shapeSegments const): Deleted.
(WebCore::Region::shapeSpans const): Deleted.
(WebCore::Region::setShapeSegments): Deleted.
(WebCore::Region::setShapeSpans): Deleted.
(WebCore::Region::Shape::segments const): Deleted.
(WebCore::Region::Shape::spans const): Deleted.
(WebCore::Region::Shape::setSegments): Deleted.
(WebCore::Region::Shape::setSpans): Deleted.
No need to expose these for encoding anymore.
Source/WebKit:
- Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<EventTrackingRegions>::decode):
(IPC::ArgumentCoder<Region::Span>::encode): Deleted.
(IPC::ArgumentCoder<Region::Span>::decode): Deleted.
(IPC::ArgumentCoder<Region>::encode): Deleted.
(IPC::ArgumentCoder<Region>::decode): Deleted.
- Shared/WebCoreArgumentCoders.h:
- 4:25 AM Changeset in webkit [242994] by
-
- 2 edits in trunk/JSTests
[ARM,MIPS] Skip slow tests
https://bugs.webkit.org/show_bug.cgi?id=195799
Unreviewed, test does not finish on ARM and MIPS within the
timeout limit.
- stress/symbol-is-destructed-before-refing-underlying-symbol-impl.js:
- 2:32 AM Changeset in webkit [242993] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening for WinCairo port
- platform/wincairo/TestExpectations: Unskipped http/tests/ssl and Marked them the current results.
- 1:12 AM Changeset in webkit [242992] by
-
- 35 edits3 adds in trunk
Web Inspector: provide a way to capture a screenshot of a node from within the page
https://bugs.webkit.org/show_bug.cgi?id=194279
<rdar://problem/10731573>
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
Add
console.screenshotfunctionality, which displays a screenshot of a given object (if
able) within Web Inspector's Console tab. From there, it can be viewed and saved.
Currently,
console.screenshotwill
- capture an image of a
Node(if provided) - capture an image of the viewport if nothing is provided
- inspector/protocol/Console.json:
Add
Imageenum value toConsoleMessagetype.
- runtime/ConsoleTypes.h:
- inspector/ConsoleMessage.h:
- inspector/ConsoleMessage.cpp:
(Inspector::messageTypeValue):
- runtime/ConsoleClient.h:
- runtime/ConsoleObject.cpp:
(JSC::ConsoleObject::finishCreation):
(JSC::consoleProtoFuncScreenshot): Added.
- inspector/JSGlobalObjectConsoleClient.h:
- inspector/JSGlobalObjectConsoleClient.cpp:
(Inspector::JSGlobalObjectConsoleClient::screenshot): Added.
Source/WebCore:
Test: inspector/console/console-screenshot.html
Add
console.screenshotfunctionality, which displays a screenshot of a given object (if
able) within Web Inspector's Console tab. From there, it can be viewed and saved.
Currently,
console.screenshotwill
- capture an image of a
Node(if provided) - capture an image of the viewport if nothing is provided
- page/PageConsoleClient.h:
- page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::addMessage):
(WebCore::PageConsoleClient::screenshot): Added.
- workers/WorkerConsoleClient.h:
- workers/WorkerConsoleClient.cpp:
(WebCore::WorkerConsoleClient::screenshot): Added.
- worklets/WorkletConsoleClient.h:
- worklets/WorkletConsoleClient.cpp:
(WebCore::WorkletConsoleClient::screenshot): Added.
- inspector/CommandLineAPIModuleSource.js:
(CommandLineAPIImpl.prototype.screenshot): Added.
- inspector/InspectorInstrumentation.h:
Source/WebInspectorUI:
Add
console.screenshotfunctionality, which displays a screenshot of a given object (if
able) within Web Inspector's Console tab. From there, it can be viewed and saved.
Currently,
console.screenshotwill
- capture an image of a
Node(if provided) - capture an image of the viewport if nothing is provided
- UserInterface/Models/ConsoleMessage.js:
(WI.ConsoleMessage):
- UserInterface/Views/ConsoleCommandView.js:
(WI.ConsoleCommandView.prototype.render):
- UserInterface/Views/ConsoleMessageView.js:
(WI.ConsoleMessageView.prototype.render):
(WI.ConsoleMessageView.prototype.toClipboardString):
(WI.ConsoleMessageView.prototype._appendMessageTextAndArguments):
(WI.ConsoleMessageView.prototype._appendSavedResultIndex):
(WI.ConsoleMessageView.prototype._appendStackTrace):
(WI.ConsoleMessageView.prototype._makeExpandable):
(WI.ConsoleMessageView.prototype._handleContextMenu): Added.
- UserInterface/Views/ConsoleMessageView.css:
(.console-user-command.special-user-log > .console-message-body): Added.
(.console-message-body): Added.
(.console-message-body > span): Added.
(.console-message-body > span > :matches(.console-message-enclosed, .console-message-preview, .console-message-preview-divider)): Added.
(.console-message-body > .console-image): Added.
(.console-message-body > .show-grid): Added.
(.console-error-level .console-message-body): Added.
(.console-warning-level .console-message-body): Added.
(.console-log-level.console-image-container::before): Added.
(.console-user-command > .console-message-body): Added.
(.console-warning-level .console-message-body): Added.
(.console-error-level .console-message-body): Added.
(.console-user-command > .console-message-body): Added.
(.console-user-command.special-user-log > .console-message-text): Deleted.
(.console-message-text): Deleted.
(.console-message-text > span): Deleted.
(.console-message-text > span > :matches(.console-message-enclosed, .console-message-preview, .console-message-preview-divider)): Deleted.
(.console-error-level .console-message-text): Deleted.
(.console-warning-level .console-message-text): Deleted.
(.console-user-command > .console-message-text): Deleted.
(.console-warning-level .console-message-text): Deleted.
(.console-error-level .console-message-text): Deleted.
(.console-user-command > .console-message-text): Deleted.
- UserInterface/Views/LogContentView.css:
(.search-in-progress .console-item:not(.filtered-out-by-search).special-user-log .console-message-text .highlighted): Added.
(.search-in-progress .console-item:not(.filtered-out-by-search).special-user-log .console-message-body .highlighted): Deleted.
Renamed variables/classes to be more semantically correct when the content is an image.
_messageTextElementto_messageBodyElement(JS).console-message-textto.console-message-body(CSS)
- UserInterface/Controllers/JavaScriptLogViewController.js:
(WI.JavaScriptLogViewController.prototype.renderPendingMessages):
- UserInterface/Views/Main.css:
(:matches(img, canvas).show-grid):
(@media (prefers-color-scheme: dark) :matches(img, canvas).show-grid):
- UserInterface/Base/FileUtilities.js:
(WI.FileUtilities.screenshotString): Added.
- UserInterface/Models/NativeFunctionParameters.js:
- UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
- UserInterface/Images/ConsoleImage.svg: Copied from UserInterface/Images/Canvas.svg.
- Localizations/en.lproj/localizedStrings.js:
LayoutTests:
- js/console.html:
- js/console-expected.txt:
- inspector/console/console-screenshot.html: Added.
- inspector/console/console-screenshot-expected.txt: Added.
- http/tests/inspector/dom/cross-domain-inspected-node-access-expected.txt:
Mar 14, 2019:
- 10:56 PM Changeset in webkit [242991] by
-
- 13 edits1 add in trunk
[JSC] Retain PrivateName of Symbol before passing it to operations potentially incurring GC
https://bugs.webkit.org/show_bug.cgi?id=195791
<rdar://problem/48806130>
Reviewed by Mark Lam.
JSTests:
- stress/symbol-is-destructed-before-refing-underlying-symbol-impl.js: Added.
(foo):
Source/JavaScriptCore:
Consider the following example:
void putByVal(JSObject*, PropertyName propertyName, ...);
putByVal(object, symbol->privateName(), ...);
PropertyName does not retain the passed UniquedStringImpl*. It just holds the pointer to UniquedStringImpl*.
It means that sinceSymbol::privateName()returnsconst PrivateName&instead ofPrivateName, putByVal
and its caller does not retain UniquedStringImpl* held in PropertyName. The problem happens when the putByVal
incurs GC, and when thesymbolis missing in the conservative GC scan. The underlying UniquedStringImpl* of
PropertyName can be accidentally destroyed in the middle of the putByVal operation. We should retain PrivateName
before passing it to operations which takes it as PropertyName.
- We use the code pattern like this.
auto propertyName = symbol->privateName();
someOperation(..., propertyName);
This pattern is well aligned to existing
JSValue::toPropertyKey(exec)andJSString::toIdentifier(exec)code patterns.
auto propertyName = value.toPropertyKey(exec);
RETURN_IF_EXCEPTION(scope, { });
someOperation(..., propertyName);
- We change
Symbol::privateName()to returningPrivateNameinstead ofconst PrivateName&to avoid potential dangerous use cases. This is OK because the code usingSymbol::privateName()is not a critical path, and they typically need to retain PrivateName.
- We audit similar functions
toPropertyKey(exec)andtoIdentifier(exec)for needed but missing exception checks. BTW, these functions are safe to the problem fixed in this patch since they returnIdentifierinstead ofconst Identifier&.
Mark and Robin investigated and offered important data to understand what went wrong. And figured out the reason behind
the mysterious behavior shown in the data, and now, we confirm that this is the right fix for this bug.
- dfg/DFGOperations.cpp:
- jit/JITOperations.cpp:
(JSC::tryGetByValOptimize):
- runtime/JSFunction.cpp:
(JSC::JSFunction::setFunctionName):
- runtime/JSModuleLoader.cpp:
(JSC::printableModuleKey):
- runtime/JSONObject.cpp:
(JSC::Stringifier::Stringifier):
- runtime/Symbol.cpp:
(JSC::Symbol::descriptiveString const):
(JSC::Symbol::description const):
- runtime/Symbol.h:
- runtime/SymbolConstructor.cpp:
(JSC::symbolConstructorKeyFor):
- tools/JSDollarVM.cpp:
(JSC::functionGetGetterSetter):
Source/WebCore:
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::setupModuleScriptHandlers):
- 10:45 PM Changeset in webkit [242990] by
-
- 6 edits in trunk/Source/JavaScriptCore
REGRESSION(r242841): Fix conservative DFG OSR entry validation to accept values which will be stored in AnyInt / Double flush formats
https://bugs.webkit.org/show_bug.cgi?id=195752
Reviewed by Saam Barati.
We fixed the bug skipping AbstractValue validations when the flush format is Double or AnyInt. But it
was too conservative. While validating inputs with AbstractValue is mandatory (without it, whole CFA
falls into wrong condition), our validation does not care AnyInt and Double representations in lower
tiers. For example, if a value is stored in Double flush format in DFG, its AbstractValue becomes
SpecFullDouble. However, it does not include Int32 and OSR entry is rejected if Int32 comes for DoubleRep
OSR entry value. This is wrong since we later convert these numbers into DoubleRep representation
before entering DFG code.
This patch performs AbstractValue validation onto the correctly converted value with flush format hint.
And it still does not fix OSR entry failures in navier-stokes. This is because AbstractValue representation
in navier-stokes's lin_solve was too strict. Then, this patch reverts r242627. Instead of removing must handle
value handling in CFA, DFG OSR entry now correctly validates inputs with AbstractValues even if the flush format
is Double or AnyInt. As long as DFG OSR entry validates inputs, merging must handle values as proven constants is OK.
We can see that # of OSR entry failures in navier-stokes.js becomes the same to the previous count. And we can see
AnyInt OSR entry actually works in microbenchmarks/large-int.js. However, AnyInt effect is hard to observe because this
is super rare. Since we inject type prediction based on must handle value, the flush format tends to be SpecAnyIntAsDouble
and it accepts JSValues simply.
- bytecode/SpeculatedType.cpp:
(JSC::dumpSpeculation):
- dfg/DFGAbstractValue.cpp:
(JSC::DFG::AbstractValue::filterValueByType):
- dfg/DFGAbstractValue.h:
(JSC::DFG::AbstractValue::validateOSREntryValue const):
(JSC::DFG::AbstractValue::validateTypeAcceptingBoxedInt52 const):
(JSC::DFG::AbstractValue::validate const): Deleted.
(JSC::DFG::AbstractValue::validateType const): Deleted.
- dfg/DFGCFAPhase.cpp:
(JSC::DFG::CFAPhase::run):
(JSC::DFG::CFAPhase::injectOSR):
(JSC::DFG::CFAPhase::performBlockCFA):
- dfg/DFGOSREntry.cpp:
(JSC::DFG::prepareOSREntry):
- 9:31 PM Changeset in webkit [242989] by
-
- 3 edits2 adds in trunk
We can't remove code after ForceOSRExit until after FixupPhase
https://bugs.webkit.org/show_bug.cgi?id=186916
<rdar://problem/41396612>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/movhint-backwards-propagation-must-merge-use-as-value-add.js: Added.
(foo):
- stress/movhint-backwards-propagation-must-merge-use-as-value.js: Added.
(foo):
Source/JavaScriptCore:
There was an optimization in the bytecode parser I added in r232742 that converted blocks
with ForceOSRExit in them to remove all IR after the ForceOSRExit. However,
this is incorrect because it breaks backwards propagation. For example, it
could incorrectly lead us to think it's safe to not check for overflow in
an Add because such Add has no non-int uses. Backwards propagation relies on
having a view over bytecode uses, and this optimization broke that. This patch
rolls out that optimization, as initial perf data shows it may no longer be
needed.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::addToGraph):
(JSC::DFG::ByteCodeParser::parse):
- 8:31 PM Changeset in webkit [242988] by
-
- 5 edits1 copy in trunk/Source/WebCore
Move CoreCrypto SPI declarations to an appropriate PAL/spi header
https://bugs.webkit.org/show_bug.cgi?id=195754
<rdar://problem/48591957>
Reviewed by Jiewen Tan.
Move the forward declarations of various CoreCrypto SPI to an appropriate PAL/spi header.
Update the const correctness of one function call to match new SDK declaration.
No tests because there are no changes in behavior.
Source/WebCore:
- crypto/CommonCryptoUtilities.h:
- crypto/mac/CryptoAlgorithmHKDFMac.cpp:
(WebCore::CryptoAlgorithmHKDF::platformDeriveBits):
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/spi/cocoa/CommonCryptoSPI.h: Copied from Source/WebCore/crypto/CommonCryptoUtilities.h.
- 8:17 PM Changeset in webkit [242987] by
-
- 2 edits in trunk/Source/WebKit
[iOS] WebKit crashes when opening pages documents
https://bugs.webkit.org/show_bug.cgi?id=195784
<rdar://problem/48904334>
Reviewed by Brent Fulgham.
The sandbox needs to allow additional syscalls.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 7:24 PM Changeset in webkit [242986] by
-
- 19 edits in trunk
IndexedDB: re-enable some leak tests
https://bugs.webkit.org/show_bug.cgi?id=194806
Reviewed by Geoffrey Garen.
Source/WebCore:
Protected JSIDBCursor object when advance/continue request on IDBCursor is not finished, because after the
advance operation completes on success, we need to return the same JSIDBCursor object as before the advance,
and during the wait for advance operation to complete, we need to return error as the result.
Covered by existing tests.
- Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::setGetResult):
(WebCore::IDBCursor::clearWrappers):
- Modules/indexeddb/IDBCursor.h:
- Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::stop):
(WebCore::IDBRequest::setResult):
(WebCore::IDBRequest::setResultToStructuredClone):
(WebCore::IDBRequest::setResultToUndefined):
(WebCore::IDBRequest::willIterateCursor):
(WebCore::IDBRequest::didOpenOrIterateCursor):
(WebCore::IDBRequest::clearWrappers):
- Modules/indexeddb/IDBRequest.h:
(WebCore::IDBRequest::cursorWrapper):
- bindings/js/JSIDBRequestCustom.cpp:
(WebCore::JSIDBRequest::visitAdditionalChildren):
- bindings/js/JSValueInWrappedObject.h:
(WebCore::JSValueInWrappedObject::JSValueInWrappedObject):
(WebCore::JSValueInWrappedObject::operator=):
(WebCore::JSValueInWrappedObject::clear):
LayoutTests:
- TestExpectations:
- platform/win/TestExpectations:
- storage/indexeddb/connection-leak-expected.txt:
- storage/indexeddb/connection-leak-private-expected.txt:
- storage/indexeddb/cursor-leak-expected.txt:
- storage/indexeddb/cursor-leak-private-expected.txt:
- storage/indexeddb/cursor-request-cycle-expected.txt:
- storage/indexeddb/cursor-request-cycle-private-expected.txt:
- storage/indexeddb/request-leak-expected.txt:
- storage/indexeddb/request-leak-private-expected.txt:
- storage/indexeddb/resources/cursor-request-cycle.js:
- 7:24 PM Changeset in webkit [242985] by
-
- 5 edits1 delete in trunk/Source/WebCore
Unreviewed, rolling out r242981.
Causing internal build failures on watch/tv OS
Reverted changeset:
"Move CoreCrypto SPI declarations to an appropriate PAL/spi
header"
https://bugs.webkit.org/show_bug.cgi?id=195754
https://trac.webkit.org/changeset/242981
- 7:14 PM Changeset in webkit [242984] by
-
- 9 edits in trunk/Tools
[Win][MinBrowser][WK2] Implement createNewPage of WKPageUIClient to open a new window
https://bugs.webkit.org/show_bug.cgi?id=195740
Reviewed by Ross Kirsling.
window.open doesn't work for WebKitBrowserWindow because it is not
implemented yet.
- Implemented createNewPage callback of WKPageUIClient.
- Changed MainWindow to take a BrowserWindow factory function instead of BrowserWindowType to be flexible to create BrowserWindow with extra settings.
- Renamed MainWindow::BrowserWindowType to BrowserWindowType because it is not relevant with MainWindow anymore.
- MiniBrowser/win/Common.cpp:
(parseCommandLine):
- MiniBrowser/win/Common.h:
(CommandLineOptions::CommandLineOptions):
- MiniBrowser/win/MainWindow.cpp:
(MainWindow::MainWindow):
(MainWindow::create):
(MainWindow::init):
(MainWindow::WndProc):
- MiniBrowser/win/MainWindow.h:
- MiniBrowser/win/PrintWebUIDelegate.cpp:
(PrintWebUIDelegate::createWebViewWithRequest):
- MiniBrowser/win/WebKitBrowserWindow.cpp:
(WebKitBrowserWindow::create): Moved WKPageConfigurationRef related code from WebKitBrowserWindow::WebKitBrowserWindow.
(WebKitBrowserWindow::WebKitBrowserWindow): Added a WKPageConfigurationRef parameter.
(WebKitBrowserWindow::updateProxySettings):
(WebKitBrowserWindow::createNewPage):
- MiniBrowser/win/WebKitBrowserWindow.h:
- MiniBrowser/win/WinMain.cpp:
(wWinMain):
- 6:54 PM Changeset in webkit [242983] by
-
- 3 edits in trunk/Source/WebCore
Web process is put to suspended when holding locked WebSQL files
https://bugs.webkit.org/show_bug.cgi?id=195768
Reviewed by Geoffrey Garen.
We need to keep processes active during database close, because SQLite database may run a checkpoint operation
and lock database files.
- platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::useWALJournalMode):
(WebCore::SQLiteDatabase::close):
- platform/sql/SQLiteDatabase.h:
- 6:28 PM Changeset in webkit [242982] by
-
- 4 edits in trunk/Source/JavaScriptCore
JSScript should have an accessor saying if it's cached or not
https://bugs.webkit.org/show_bug.cgi?id=195783
Reviewed by Michael Saboff.
- API/JSScript.h:
- API/JSScript.mm:
(-[JSScript isUsingBytecodeCache]):
- API/tests/testapi.mm:
(testIsUsingBytecodeCacheAccessor):
(testObjectiveCAPI):
- 6:27 PM Changeset in webkit [242981] by
-
- 5 edits1 copy in trunk/Source/WebCore
Move CoreCrypto SPI declarations to an appropriate PAL/spi header
https://bugs.webkit.org/show_bug.cgi?id=195754
<rdar://problem/48591957>
Reviewed by Jiewen Tan.
Move the forward declarations of various CoreCrypto SPI to an appropriate PAL/spi header.
Update the const correctness of one function call to match new SDK declaration.
No tests because there are no changes in behavior.
Source/WebCore:
- crypto/CommonCryptoUtilities.h:
- crypto/mac/CryptoAlgorithmHKDFMac.cpp:
(WebCore::CryptoAlgorithmHKDF::platformDeriveBits):
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/spi/cocoa/CommonCryptoSPI.h: Copied from Source/WebCore/crypto/CommonCryptoUtilities.h.
- 6:10 PM Changeset in webkit [242980] by
-
- 6 edits in trunk/Source/JavaScriptCore
Remove retain cycle from JSScript and also don't keep the cache file descriptor open so many JSScripts can be cached in a loop
https://bugs.webkit.org/show_bug.cgi?id=195782
<rdar://problem/48880625>
Reviewed by Michael Saboff.
This patch fixes two issues with JSScript API:
- There was a retain cycle causing us to never destroy a JSScript once it
created a JSSourceCode. The reason for this is that JSScript had a
Strong<JSSourceCode> field. And JSSourceCode transitively had RetainPtr<JSScript>.
This patch fixes this issue by making the "jsSourceCode" accessor return a transient object.
- r242585 made it so that JSScript would keep the cache file descriptor open
(and locked) for the duration of the lifetime of the JSScript itself. Our
anticipation here is that it would make implementing iterative cache updates
easier. However, this made using the API super limiting in other ways. For
example, if a program had a loop that cached 3000 different JSScripts, it's
likely that such a program would exhaust the open file count limit. This patch
reverts to the behavior prior to r242585 where we just keep open the file descriptor
while we read or write it.
- API/JSAPIGlobalObject.mm:
(JSC::JSAPIGlobalObject::moduleLoaderFetch):
- API/JSContext.mm:
(-[JSContext evaluateJSScript:]):
- API/JSScript.mm:
(-[JSScript dealloc]):
(-[JSScript readCache]):
(-[JSScript init]):
(-[JSScript sourceCode]):
(-[JSScript jsSourceCode]):
(-[JSScript writeCache:]):
(-[JSScript forceRecreateJSSourceCode]): Deleted.
- API/JSScriptInternal.h:
- API/tests/testapi.mm:
(testCanCacheManyFilesWithTheSameVM):
(testObjectiveCAPI):
(testCacheFileIsExclusive): Deleted.
- 6:10 PM Changeset in webkit [242979] by
-
- 20 edits in trunk
Make it possible to test scrolling tree layer manipulation more easily
https://bugs.webkit.org/show_bug.cgi?id=195780
Reviewed by Tim Horton.
Source/WebKit:
Add a boolean attribute 'scrollUpdatesDisabled' on UIScriptController that
cuts off communication of scrolling tree scrolls back to the web process
(in RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll()). This
allows tests to trigger scrolls which run the scrolling tree layer positioning
logic, but never get another commit from the web process that might mask
scrolling tree bugs.
WKWebView's testing protocol get @property _scrollingUpdatesDisabledForTesting,
whose getters and setters are overridden by TestRunnerWKWebView. Plumbing
via PageClient and WebPageProxy makes this flag reachable by RemoteScrollingCoordinatorProxy.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _scrollingUpdatesDisabledForTesting]):
(-[WKWebView _setScrollingUpdatesDisabledForTesting:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/Cocoa/PageClientImplCocoa.h:
- UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::scrollingUpdatesDisabledForTesting):
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::scrollingUpdatesDisabledForTesting):
- UIProcess/PageClient.h:
(WebKit::PageClient::scrollingUpdatesDisabledForTesting):
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll):
- UIProcess/WebPageProxy.h:
Tools:
Add a boolean attribute 'scrollUpdatesDisabled' on UIScriptController that
cuts off communication of scrolling tree scrolls back to the web process
(in RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll()). This
allows tests to trigger scrolls which run the scrolling tree layer positioning
logic, but never get another commit from the web process that might mask
scrolling tree bugs.
WKWebView's testing protocol get @property _scrollingUpdatesDisabledForTesting,
whose getters and setters are overridden by TestRunnerWKWebView. Plumbing
via PageClient and WebPageProxy makes this flag reachable by RemoteScrollingCoordinatorProxy.
- DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::scrollUpdatesDisabled const):
(WTR::UIScriptController::setScrollUpdatesDisabled):
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::scrollUpdatesDisabled const):
(WTR::UIScriptController::setScrollUpdatesDisabled):
- TestRunnerShared/UIScriptContext/UIScriptController.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
(-[TestRunnerWKWebView _scrollingUpdatesDisabledForTesting]):
(-[TestRunnerWKWebView _setScrollingUpdatesDisabledForTesting:]):
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::scrollUpdatesDisabled const):
(WTR::UIScriptController::setScrollUpdatesDisabled):
LayoutTests:
Add a boolean attribute 'scrollUpdatesDisabled' on UIScriptController that
cuts off communication of scrolling tree scrolls back to the web process
(in RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll()). This
allows tests to trigger scrolls which run the scrolling tree layer positioning
logic, but never get another commit from the web process that might mask
scrolling tree bugs.
WKWebView's testing protocol get @property _scrollingUpdatesDisabledForTesting,
whose getters and setters are overridden by TestRunnerWKWebView. Plumbing
via PageClient and WebPageProxy makes this flag reachable by RemoteScrollingCoordinatorProxy.
- resources/ui-helper.js: Some 'async' functions that awaited promises should just return
the promise.
(window.UIHelper.immediateScrollTo):
(window.UIHelper.immediateUnstableScrollTo):
(window.UIHelper.async.delayFor): Deleted.
(window.UIHelper.async.immediateScrollTo): Deleted.
(window.UIHelper.async.immediateUnstableScrollTo): Deleted.
- 5:15 PM Changeset in webkit [242978] by
-
- 27 edits3 moves in trunk/Source/WebCore
Rename SVGProperty to SVGLegacyProperty and rename SVGAnimatedProperty to SVGLegacyAnimatedProperty
https://bugs.webkit.org/show_bug.cgi?id=195767
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-03-14
Reviewed by Tim Horton.
This is a step towards removing the SVG properties tear off objects.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- svg/SVGAngle.h:
(WebCore::SVGAngle::create):
(WebCore::SVGAngle::SVGAngle):
- svg/SVGAnimateElement.h:
- svg/SVGAnimatedTypeAnimator.h:
(WebCore::SVGAnimatedTypeAnimator::castAnimatedPropertyToActualType):
- svg/SVGElement.h:
(WebCore::SVGElement::lookupAnimatedProperty const):
(WebCore::SVGElement::lookupOrCreateAnimatedProperty):
(WebCore::SVGElement::lookupOrCreateAnimatedProperties):
- svg/SVGLength.h:
(WebCore::SVGLength::create):
(WebCore::SVGLength::SVGLength):
- svg/SVGMatrix.h:
(WebCore::SVGMatrix::create):
(WebCore::SVGMatrix::SVGMatrix):
- svg/SVGNumber.h:
(WebCore::SVGNumber::create):
(WebCore::SVGNumber::SVGNumber):
- svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::lookupOrCreateDWrapper):
- svg/SVGPathElement.h:
- svg/SVGPathSegList.cpp:
(WebCore::SVGPathSegList::processIncomingListItemValue):
- svg/SVGPathSegWithContext.h:
(WebCore::SVGPathSegWithContext::animatedProperty const):
- svg/SVGPoint.h:
(WebCore::SVGPoint::create):
(WebCore::SVGPoint::SVGPoint):
- svg/SVGPreserveAspectRatio.h:
(WebCore::SVGPreserveAspectRatio::create):
(WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio):
- svg/SVGRect.h:
(WebCore::SVGRect::create):
(WebCore::SVGRect::SVGRect):
- svg/SVGTransform.h:
(WebCore::SVGTransform::create):
(WebCore::SVGTransform::SVGTransform):
- svg/properties/SVGAnimatedListPropertyTearOff.h:
(WebCore::SVGAnimatedListPropertyTearOff::findItem):
(WebCore::SVGAnimatedListPropertyTearOff::SVGAnimatedListPropertyTearOff):
- svg/properties/SVGAnimatedProperty.cpp: Removed.
- svg/properties/SVGAnimatedProperty.h: Removed.
- svg/properties/SVGAnimatedPropertyTearOff.h:
- svg/properties/SVGAnimatedStaticPropertyTearOff.h:
(WebCore::SVGAnimatedStaticPropertyTearOff::SVGAnimatedStaticPropertyTearOff):
- svg/properties/SVGAttributeAccessor.h:
(WebCore::SVGAttributeAccessor::lookupOrCreateAnimatedProperty const):
(WebCore::SVGAttributeAccessor::lookupAnimatedProperty const):
(WebCore::SVGAttributeAccessor::lookupOrCreateAnimatedProperties const):
(WebCore::SVGAnimatedAttributeAccessor::lookupOrCreateAnimatedProperty):
(WebCore::SVGAnimatedAttributeAccessor::lookupAnimatedProperty):
- svg/properties/SVGAttributeOwnerProxy.h:
- svg/properties/SVGAttributeOwnerProxyImpl.h:
- svg/properties/SVGAttributeRegistry.h:
(WebCore::SVGAttributeRegistry::lookupOrCreateAnimatedProperty const):
(WebCore::SVGAttributeRegistry::lookupAnimatedProperty const):
(WebCore::SVGAttributeRegistry::lookupOrCreateAnimatedProperties const):
(WebCore::SVGAttributeRegistry::lookupOrCreateAnimatedPropertyBaseTypes):
(WebCore::SVGAttributeRegistry::lookupAnimatedPropertyBaseTypes):
(WebCore::SVGAttributeRegistry::lookupOrCreateAnimatedPropertiesBaseTypes):
- svg/properties/SVGLegacyAnimatedProperty.cpp: Copied from Source/WebCore/svg/properties/SVGAnimatedProperty.cpp.
(WebCore::SVGLegacyAnimatedProperty::SVGLegacyAnimatedProperty):
(WebCore::SVGLegacyAnimatedProperty::~SVGLegacyAnimatedProperty):
(WebCore::SVGLegacyAnimatedProperty::commitChange):
(WebCore::SVGAnimatedProperty::SVGAnimatedProperty): Deleted.
(WebCore::SVGAnimatedProperty::~SVGAnimatedProperty): Deleted.
(WebCore::SVGAnimatedProperty::commitChange): Deleted.
- svg/properties/SVGLegacyAnimatedProperty.h: Copied from Source/WebCore/svg/properties/SVGAnimatedProperty.h.
(WebCore::SVGLegacyAnimatedProperty::lookupOrCreateAnimatedProperty):
(WebCore::SVGLegacyAnimatedProperty::lookupAnimatedProperty):
(WebCore::SVGAnimatedProperty::isAnimating const): Deleted.
(WebCore::SVGAnimatedProperty::isAnimatedListTearOff const): Deleted.
(WebCore::SVGAnimatedProperty::contextElement const): Deleted.
(WebCore::SVGAnimatedProperty::attributeName const): Deleted.
(WebCore::SVGAnimatedProperty::animatedPropertyType const): Deleted.
(WebCore::SVGAnimatedProperty::isReadOnly const): Deleted.
(WebCore::SVGAnimatedProperty::setIsReadOnly): Deleted.
(WebCore::SVGAnimatedProperty::lookupOrCreateAnimatedProperty): Deleted.
(WebCore::SVGAnimatedProperty::lookupAnimatedProperty): Deleted.
(WebCore::SVGAnimatedProperty::animatedPropertyCache): Deleted.
- svg/properties/SVGLegacyProperty.h: Copied from Source/WebCore/svg/properties/SVGProperty.h.
- svg/properties/SVGListProperty.h:
- svg/properties/SVGProperty.h: Removed.
- svg/properties/SVGPropertyTearOff.h:
(WebCore::SVGPropertyTearOff::create):
(WebCore::SVGPropertyTearOff::animatedProperty const):
(WebCore::SVGPropertyTearOff::setAnimatedProperty):
(WebCore::SVGPropertyTearOff::SVGPropertyTearOff):
- 5:00 PM Changeset in webkit [242977] by
-
- 5 edits1 delete in trunk/Source/WebCore
Unreviewed, rolling out r242963.
Breaks watchOS build.
Reverted changeset:
"Move CommonCrypto SPI declarations to an appropriate PAL/spi
header"
https://bugs.webkit.org/show_bug.cgi?id=195754
https://trac.webkit.org/changeset/242963
- 4:35 PM Changeset in webkit [242976] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed, update xcfilelist files as they are out of sync.
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- 4:08 PM Changeset in webkit [242975] by
-
- 6 edits in trunk
Move IDB storage in private browsing mode to NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=195602
Reviewed by Brady Eidson.
Source/WebKit:
Covered by existing IDB tests and added API test.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::createIDBServer):
Make sure that path is empty for private sessions.
This will make IDB use a memory backing store.
- WebProcess/Databases/WebDatabaseProvider.cpp:
(WebKit::WebDatabaseProvider::idbConnectionToServerForSession):
Use NetworkProcess IDB server instead of InProcessIDBServer.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:
(TEST):
- 4:04 PM Changeset in webkit [242974] by
-
- 37 edits3 copies in trunk
[Web GPU] Updates to GPUCommandBuffer for new GPUCommandEncoder concept
https://bugs.webkit.org/show_bug.cgi?id=195083
<rdar://problem/48423591>
Reviewed by Dean Jackson.
Fixing build error and re-introducing rolled-out changes.
Source/WebCore:
WebGPUCommandBuffer now represents a completed GPUCommandBuffer that can only be used in queue submits. The previous WebGPUCommandBuffer
is now WebGPUCommandEncoder.
Affected Web GPU tests updated to match new API.
New files and symbols:
- CMakeLists.txt:
- DerivedSources.make:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/WebCoreBuiltinNames.h:
Implement new WebGPUCommandBuffer, now just a DOM object carrier for a finished GPUCommandBuffer:
- Modules/webgpu/WebGPUCommandBuffer.cpp:
(WebCore::WebGPUCommandBuffer::create):
(WebCore::WebGPUCommandBuffer::WebGPUCommandBuffer):
(WebCore::WebGPUBufferCopyView::tryCreateGPUBufferCopyView const): Deleted.
(WebCore::WebGPUTextureCopyView::tryCreateGPUTextureCopyView const): Deleted.
(WebCore::WebGPUCommandBuffer::beginRenderPass): Deleted.
(WebCore::WebGPUCommandBuffer::copyBufferToBuffer): Deleted.
(WebCore::WebGPUCommandBuffer::copyBufferToTexture): Deleted.
(WebCore::WebGPUCommandBuffer::copyTextureToBuffer): Deleted.
(WebCore::WebGPUCommandBuffer::copyTextureToTexture): Deleted.
- Modules/webgpu/WebGPUCommandBuffer.h:
(WebCore::WebGPUCommandBuffer::commandBuffer):
(WebCore::WebGPUCommandBuffer::commandBuffer const): Deleted.
- Modules/webgpu/WebGPUCommandBuffer.idl:
Rename old WebGPUCommandBuffer to WebGPUCommandEncoder:
- Modules/webgpu/WebGPUCommandEncoder.cpp: Copied from Source/WebCore/Modules/webgpu/WebGPUCommandBuffer.cpp.
(WebCore::WebGPUBufferCopyView::tryCreateGPUBufferCopyView const):
(WebCore::WebGPUTextureCopyView::tryCreateGPUTextureCopyView const):
(WebCore::WebGPUCommandEncoder::create):
(WebCore::WebGPUCommandEncoder::WebGPUCommandEncoder):
(WebCore::WebGPUCommandEncoder::beginRenderPass):
(WebCore::WebGPUCommandEncoder::copyBufferToBuffer):
(WebCore::WebGPUCommandEncoder::copyBufferToTexture):
(WebCore::WebGPUCommandEncoder::copyTextureToBuffer):
(WebCore::WebGPUCommandEncoder::copyTextureToTexture):
(WebCore::WebGPUCommandEncoder::finish): Added. "Completes" this and invalidates it. Returns its GPUCommandBuffer, ready for submission.
- Modules/webgpu/WebGPUCommandEncoder.h: Copied from Source/WebCore/Modules/webgpu/WebGPUCommandBuffer.h.
- Modules/webgpu/WebGPUCommandEncoder.idl: Copied from Source/WebCore/Modules/webgpu/WebGPUCommandBuffer.idl.
- Modules/webgpu/WebGPUDevice.cpp:
(WebCore::WebGPUDevice::createCommandEncoder const): Renamed fom createCommandBuffer. Now returns non-nullable.
(WebCore::WebGPUDevice::createCommandBuffer const): Deleted.
- Modules/webgpu/WebGPUDevice.h:
- Modules/webgpu/WebGPUDevice.idl:
- Modules/webgpu/WebGPUProgrammablePassEncoder.cpp:
(WebCore::WebGPUProgrammablePassEncoder::WebGPUProgrammablePassEncoder):
(WebCore::WebGPUProgrammablePassEncoder::endPass): No longer returns the original WebGPUCommandBuffer.
(WebCore::WebGPUProgrammablePassEncoder::setBindGroup const):
(WebCore::WebGPUProgrammablePassEncoder::setPipeline):
- Modules/webgpu/WebGPUProgrammablePassEncoder.h:
- Modules/webgpu/WebGPUProgrammablePassEncoder.idl:
- Modules/webgpu/WebGPUQueue.cpp:
(WebCore::WebGPUQueue::submit): Replace unnecessary rvalue reference parameter.
- Modules/webgpu/WebGPUQueue.h:
- Modules/webgpu/WebGPUQueue.idl:
- Modules/webgpu/WebGPURenderPassEncoder.cpp:
(WebCore::WebGPURenderPassEncoder::create):
(WebCore::WebGPURenderPassEncoder::WebGPURenderPassEncoder):
(WebCore::WebGPURenderPassEncoder::setVertexBuffers):
(WebCore::WebGPURenderPassEncoder::draw):
(WebCore::WebGPURenderPassEncoder::passEncoder const): Now returns a pointer since it is properly backed by a RefPtr.
- Modules/webgpu/WebGPURenderPassEncoder.h:
- Modules/webgpu/WebGPUSwapChain.cpp:
(WebCore::WebGPUSwapChain::getCurrentTexture): No longer invalidates m_currentTexture. Doh!
- platform/graphics/gpu/GPUCommandBuffer.h: Missing includes for the *CopyView structs.
- platform/graphics/gpu/GPUDevice.cpp:
(WebCore::GPUDevice::tryCreateCommandBuffer const): Renamed from createCommandBuffer.
(WebCore::GPUDevice::createCommandBuffer): Deleted.
- platform/graphics/gpu/GPUDevice.h:
- platform/graphics/gpu/cocoa/GPUCommandBufferMetal.mm:
(WebCore::GPUCommandBuffer::tryCreate): Renamed from create.
(WebCore::GPUCommandBuffer::create): Deleted.
LayoutTests:
Update existing Web GPU tests for GPUCommandEncoder and new GPUCommandBuffer.
- webgpu/blit-commands.html:
- webgpu/buffer-command-buffer-races.html:
- webgpu/buffer-resource-triangles.html:
- webgpu/command-buffers-expected.txt:
- webgpu/command-buffers.html:
- webgpu/depth-enabled-triangle-strip.html:
- webgpu/js/webgpu-functions.js:
(beginBasicRenderPass):
- webgpu/render-command-encoding.html:
- webgpu/simple-triangle-strip.html:
- webgpu/texture-triangle-strip.html:
- webgpu/vertex-buffer-triangle-strip.html:
- 3:42 PM Changeset in webkit [242973] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Styles: Jump to effective property button doesn't hide after overridden property become effective
https://bugs.webkit.org/show_bug.cgi?id=195770
<rdar://problem/48903634>
Reviewed by Matt Baker.
- UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
(.spreadsheet-style-declaration-editor .property .select-effective-property): Added.
(.spreadsheet-style-declaration-editor .property.overridden .select-effective-property): Deleted.
Hide.select-effective-propertyelement for properties that aren't overridden.
- 3:26 PM Changeset in webkit [242972] by
-
- 26 edits2 deletes in trunk/Source/WebCore
[Web GPU] Enum cleanup
https://bugs.webkit.org/show_bug.cgi?id=195766
Reviewed by Myles C. Maxfield.
Clean up enum implementations in Web GPU. Enums referenced by only one class now share implementation files with that class to reduce clutter.
No change in behavior.
- DerivedSources.make:
- Modules/webgpu/GPUBindGroupLayoutBinding.h:
- Modules/webgpu/GPUBindGroupLayoutBinding.idl:
- Modules/webgpu/GPUInputStateDescriptor.idl:
- Modules/webgpu/GPURequestAdapterOptions.idl:
- Modules/webgpu/GPUSamplerDescriptor.idl:
- Modules/webgpu/GPUTextureDescriptor.idl:
- Modules/webgpu/GPUTextureDimension.idl: Removed.
- Modules/webgpu/GPUVertexAttributeDescriptor.idl:
- Modules/webgpu/GPUVertexInputDescriptor.idl:
- Modules/webgpu/WebGPUBindGroupDescriptor.cpp:
(WebCore::validateBufferBindingType):
- Modules/webgpu/WebGPURenderPipelineDescriptor.h:
- Modules/webgpu/WebGPURenderPipelineDescriptor.idl:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/gpu/GPUInputStateDescriptor.h:
- platform/graphics/gpu/GPURequestAdapterOptions.h:
- platform/graphics/gpu/GPUSamplerDescriptor.h:
- platform/graphics/gpu/GPUTextureDescriptor.h:
- platform/graphics/gpu/GPUTextureDimension.h: Removed.
- platform/graphics/gpu/GPUVertexAttributeDescriptor.h:
- platform/graphics/gpu/GPUVertexInputDescriptor.h:
- platform/graphics/gpu/cocoa/GPUBindGroupLayoutMetal.mm:
(WebCore::MTLDataTypeForBindingType):
- platform/graphics/gpu/cocoa/GPUBindGroupMetal.mm:
(WebCore::GPUBindGroup::tryCreate):
- platform/graphics/gpu/cocoa/GPUDeviceMetal.mm:
(WebCore::GPUDevice::create):
- platform/graphics/gpu/cocoa/GPUSamplerMetal.mm:
(WebCore::mtlAddressModeForAddressMode):
(WebCore::mtlMinMagFilterForFilterMode):
(WebCore::mtlMipFilterForFilterMode):
- 3:18 PM Changeset in webkit [242971] by
-
- 2 edits in trunk/LayoutTests
[ iOS Sim WK2 ] Layout Test quicklook/numbers.html is failing
https://bugs.webkit.org/show_bug.cgi?id=191711
Unreviewed test gardening.
- platform/ios/TestExpectations: Mark test as failing.
- 3:11 PM Changeset in webkit [242970] by
-
- 22 edits in trunk/Source/WebCore
Use enum class for AnimationMode
https://bugs.webkit.org/show_bug.cgi?id=195762
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-03-14
Reviewed by Tim Horton.
Convert AnimationMode into an enum class.
- svg/SVGAnimateElementBase.cpp:
(WebCore::SVGAnimateElementBase::calculateFromAndByValues):
(WebCore::SVGAnimateElementBase::isAdditive const):
- svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::calculateFromAndByValues):
(WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
(WebCore::SVGAnimateMotionElement::updateAnimationMode):
- svg/SVGAnimatedAngle.cpp:
(WebCore::SVGAnimatedAngleAnimator::calculateAnimatedValue):
- svg/SVGAnimatedBoolean.cpp:
(WebCore::SVGAnimatedBooleanAnimator::calculateAnimatedValue):
- svg/SVGAnimatedColor.cpp:
(WebCore::SVGAnimatedColorAnimator::calculateAnimatedValue):
- svg/SVGAnimatedEnumeration.cpp:
(WebCore::SVGAnimatedEnumerationAnimator::calculateAnimatedValue):
- svg/SVGAnimatedInteger.cpp:
(WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedValue):
- svg/SVGAnimatedIntegerOptionalInteger.cpp:
(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateAnimatedValue):
- svg/SVGAnimatedLength.cpp:
(WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
- svg/SVGAnimatedLengthList.cpp:
(WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
- svg/SVGAnimatedNumber.cpp:
(WebCore::SVGAnimatedNumberAnimator::calculateAnimatedValue):
- svg/SVGAnimatedNumberList.cpp:
(WebCore::SVGAnimatedNumberListAnimator::calculateAnimatedValue):
- svg/SVGAnimatedNumberOptionalNumber.cpp:
(WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateAnimatedValue):
- svg/SVGAnimatedPath.cpp:
(WebCore::SVGAnimatedPathAnimator::calculateAnimatedValue):
- svg/SVGAnimatedPointList.cpp:
(WebCore::SVGAnimatedPointListAnimator::calculateAnimatedValue):
- svg/SVGAnimatedPreserveAspectRatio.cpp:
(WebCore::SVGAnimatedPreserveAspectRatioAnimator::calculateAnimatedValue):
- svg/SVGAnimatedRect.cpp:
(WebCore::SVGAnimatedRectAnimator::calculateAnimatedValue):
- svg/SVGAnimatedTransformList.cpp:
(WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):
- svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::updateAnimationMode):
(WebCore::SVGAnimationElement::isAdditive const):
(WebCore::SVGAnimationElement::isAccumulated const):
(WebCore::SVGAnimationElement::calculateKeyTimesForCalcModePaced):
(WebCore::SVGAnimationElement::startedActiveInterval):
(WebCore::SVGAnimationElement::updateAnimation):
- svg/SVGAnimationElement.h:
(WebCore::SVGAnimationElement::adjustFromToListValues):
(WebCore::SVGAnimationElement::animateDiscreteType):
(WebCore::SVGAnimationElement::animateAdditiveNumber):
- svg/SVGSetElement.cpp:
(WebCore::SVGSetElement::SVGSetElement):
(WebCore::SVGSetElement::updateAnimationMode):
- 3:08 PM Changeset in webkit [242969] by
-
- 3 edits in trunk/Tools
[ews-build] Make descriptionDone messages more readable
https://bugs.webkit.org/show_bug.cgi?id=195760
Reviewed by Lucas Forschler.
- BuildSlaveSupport/ews-build/steps.py:
- BuildSlaveSupport/ews-build/steps_unittest.py:
- 3:07 PM Changeset in webkit [242968] by
-
- 7 edits2 adds in trunk
REGRESSION (r242801): [iOS] preventDefault() on touchstart in a subframe does not prevent focusing the subframe
https://bugs.webkit.org/show_bug.cgi?id=195749
<rdar://problem/48892367>
Reviewed by Tim Horton.
Source/WebKit:
r242801 added logic to fetch interaction information at the touch location upon touch start. However this,
combined with an existing behavior where the process of computing InteractionInformationAtPosition in WebPage
moves focus into the frame of the hit-tested node below the touch location, means that we'll always trigger a
blur event on the window and move focus into the subframe when performing a touch inside a subframe, even if the
page prevents default on touchstart.
To fix this, add a "readonly" flag to InteractionInformationRequest, and only change focus when requesting
position information in the case where the request is not readonly. For now, this readonly flag is false by
default; in a future patch, we should identify the (hopefully few) places that rely on position information
requests to move focus, explicitly turn this bit off in those places, and otherwise send readonly position
information requests by default.
- Shared/ios/InteractionInformationRequest.cpp:
(WebKit::InteractionInformationRequest::encode const):
(WebKit::InteractionInformationRequest::decode):
(WebKit::InteractionInformationRequest::isValidForRequest):
(WebKit::InteractionInformationRequest::isApproximatelyValidForRequest):
Ensure that a readonly request is not valid for a non-readonly request.
- Shared/ios/InteractionInformationRequest.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _requestActivatedElementAtPosition:completionBlock:]):
Send a readonly position information request in the case where a WebKit SPI client is querying for element
information at the given location.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _webTouchEventsRecognized:]):
Send a readonly position information request on touchstart.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::positionInformation):
LayoutTests:
Add a test to verify that tapping a subframe doesn't move focus into it subframe if the page prevents default
on touchstart.
- fast/events/touch/ios/no-focus-change-when-preventing-default-on-touchstart-expected.txt: Added.
- fast/events/touch/ios/no-focus-change-when-preventing-default-on-touchstart.html: Added.
- 3:06 PM Changeset in webkit [242967] by
-
- 2 edits in trunk/Tools
[ews-build] Generate status-bubble hover-over messages
https://bugs.webkit.org/show_bug.cgi?id=195680
Reviewed by Lucas Forschler.
- BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
(StatusBubble):
(StatusBubble._build_bubble): Generate bubbledetails_message which would be displayed
on hover-over.
(StatusBubble._iso_time):
(StatusBubble._steps_messages): Returns status messages from steps to be displayed in
hover-over message.
(StatusBubble._most_recent_step_message): Returns status message from most recent step.
- 2:44 PM Changeset in webkit [242966] by
-
- 3 edits in trunk/Tools
[ews-app] Gracefully handle the case when state_string is None
https://bugs.webkit.org/show_bug.cgi?id=195753
Reviewed by Lucas Forschler.
- BuildSlaveSupport/ews-app/ews/models/build.py:
- BuildSlaveSupport/ews-app/ews/models/step.py:
- 2:33 PM Changeset in webkit [242965] by
-
- 2 edits in trunk/Tools
[ews-app] Status bubble display pending for currently running build step
https://bugs.webkit.org/show_bug.cgi?id=195744
Reviewed by Lucas Forschler.
- BuildSlaveSupport/ews-build/events.py:
(Events.stepStarted): If state_string is pending, replace it with step name.
- 2:09 PM Changeset in webkit [242964] by
-
- 4 edits in trunk/Source/WebCore
Storing a Node in Ref/RefPtr inside its destructor results in double delete
https://bugs.webkit.org/show_bug.cgi?id=195661
Reviewed by Brent Fulgham.
Set Node::m_refCount to 1 before calling its virtual destructor.
This is a security mitigation to prevent any code which ends up storing the node to Ref / RefPtr
inside the destructor, which is a programming error caught by debug assertions, from triggering
a double-delete on the same Node.
Such a code would hit the debug assertions in Node::deref() because m_inRemovedLastRefFunction
had been set to true by then.
- dom/Document.cpp:
(WebCore::Document::removedLastRef):
- dom/Document.h:
(WebCore::Document::decrementReferencingNodeCount):
- dom/Node.cpp:
(WebCore::Node::~Node):
(WebCore::Node::removedLastRef):
- 1:56 PM Changeset in webkit [242963] by
-
- 5 edits1 copy in trunk/Source/WebCore
Move CommonCrypto SPI declarations to an appropriate PAL/spi header
https://bugs.webkit.org/show_bug.cgi?id=195754
<rdar://problem/48591957>
Reviewed by Jiewen Tan.
Move the forward declarations of various CommonCrypto SPI to an appropriate PAL/spi header.
Update the const correctness of one function call to match new SDK declaration.
No tests because there are no changes in behavior.
Source/WebCore:
- crypto/CommonCryptoUtilities.h:
- crypto/mac/CryptoAlgorithmHKDFMac.cpp:
(WebCore::CryptoAlgorithmHKDF::platformDeriveBits):
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/spi/cocoa/CommonCryptoSPI.h: Copied from Source/WebCore/crypto/CommonCryptoUtilities.h.
- 1:48 PM Changeset in webkit [242962] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION: Canvas: the first processed action should be selected as soon as it's available if no previous selected action exists
https://bugs.webkit.org/show_bug.cgi?id=195732
<rdar://problem/48875214>
Reviewed by Matt Baker.
- UserInterface/Views/CanvasSidebarPanel.js:
(WI.CanvasSidebarPanel.prototype._handleRecordingProcessedAction):
Rather than wait until the entire recording is ready, set the selected action as soon as the
first action is ready (assuming there isn't already a selected action).
- 1:46 PM Changeset in webkit [242961] by
-
- 5 edits3 adds in trunk/PerformanceTests
Implement a new design for JetStream2
https://bugs.webkit.org/show_bug.cgi?id=195492
Reviewed by Saam Barati.
- JetStream2/JetStream.css:
(html):
(body):
(::selection):
(main):
(.logo):
(.logo .logo-image):
(#jetstreams):
(#jetstreams svg):
(.summary):
(.summary + .summary):
(.summary:empty):
(article, .summary):
(h1):
(h2, h3, h4, h5, h6):
(h4, h5, h6):
(p):
(h5, h6):
(h6):
(a:link,):
(a:hover,):
(#status):
(#status label,):
(a.button):
(#status.loading):
(#status.error):
(.error h2, .error p):
(.error h2):
(#result-summary):
(#result-summary label):
(#result-summary .score):
(#result-summary .score .interval):
(#results):
(.benchmark):
(.benchmark h3, .benchmark h4, .benchmark .result, .benchmark label):
(.benchmark-running h4, .benchmark-running .result, .benchmark-running label):
(.benchmark-done h3, .benchmark-done h4, .benchmark-done .result, .benchmark-done label):
(.benchmark h3):
(.benchmark-running h3):
(.benchmark-done h3):
(.benchmark h3 a,):
(.benchmark-done h3 a:hover):
(.benchmark h4):
(.benchmark-done h4):
(.benchmark p,):
(.benchmark .result):
(.benchmark-done .result):
(.benchmark label):
(.benchmark-done label):
(@keyframes fadein):
(to):
(@keyframes scaledown):
(@keyframes shine):
(100%):
(@keyframes swingin):
(@media (max-width: 415px)):
(#logo): Deleted.
(p.summary): Deleted.
(p.summary + p.summary): Deleted.
(p.summary:empty): Deleted.
(p:first-of-type): Deleted.
(#status a:link): Deleted.
(.interval): Deleted.
(a:link, a:visited): Deleted.
(a:link:hover): Deleted.
(table): Deleted.
(td, th): Deleted.
(th): Deleted.
(tr:first-child > th:nth-child(even)): Deleted.
(tr:nth-child(even):not(:first-child, .benchmark-running)): Deleted.
(.result): Deleted.
(.benchmark-running): Deleted.
(:not(.benchmark-running) .result): Deleted.
(.benchmark-running .result): Deleted.
(.benchmark-name): Deleted.
(.result.category,): Deleted.
(.benchmark-name:not(.category):not(.geometric-mean)): Deleted.
(.geometric-mean): Deleted.
(.benchmark-name:not(:first-child)): Deleted.
(.benchmark-name a:link,): Deleted.
(.highlighted-result): Deleted.
- JetStream2/JetStream2Logo.svg: Added.
- JetStream2/JetStreamDriver.js:
(updateUI):
(Driver.prototype.async.start):
(Driver.prototype.prepareToRun.text.div.id.string_appeared_here.h3):
(Driver.prototype.prepareToRun.text.span):
(Driver.prototype.prepareToRun.a.h3.h4):
(Driver.prototype.prepareToRun.text.div):
(Driver.prototype.async.initialize):
(Driver.prototype.async.fetchResources.prototype.statusElement.onclick):
(prototype.fetchResources):
(prototype.updateUIBeforeRun):
(prototype.updateUIAfterRun):
(Driver.prototype.async.fetchResources.statusElement.innerHTML.a.href.string_appeared_here):
(Driver.prototype.async.fetchResources):
(Driver.prototype.prepareToRun.text.tr.id.string_appeared_here.FIXME.link.to.benchmark.explanation.td): Deleted.
- JetStream2/clouds.svg: Added.
- JetStream2/in-depth.html:
- JetStream2/index.html:
- JetStream2/jetstreams.svg: Added.
- 1:40 PM Changeset in webkit [242960] by
-
- 14 edits in trunk
Add WebsitePolicy for the client to specify the device orientation & motion access policy
https://bugs.webkit.org/show_bug.cgi?id=195750
Reviewed by Geoffrey Garen.
Source/WebCore:
Add WebsitePolicy for the client to specify the device orientation & motion access policy. If
the client already knows access to the device motion & orientation API will be granted / denied,
it can let WebKit know via WebsitePolicies so that WebKit will not ask the client when the
permission is requested by JS.
- dom/DeviceOrientationAndMotionAccessController.cpp:
(WebCore::DeviceOrientationAndMotionAccessController::shouldAllowAccess):
(WebCore::DeviceOrientationAndMotionAccessController::setAccessState):
(WebCore::DeviceOrientationAndMotionAccessController::accessState const):
- dom/DeviceOrientationAndMotionAccessController.h:
- loader/DocumentLoader.h:
(WebCore::DocumentLoader::deviceOrientationAndMotionAccessState const):
(WebCore::DocumentLoader::setDeviceOrientationAndMotionAccessState):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::isAllowedToUseDeviceMotionOrientation const):
Source/WebKit:
Add WebsitePolicy for the client to specify the device orientation & motion access policy. If
the client already knows access to the device motion & orientation API will be granted / denied,
it can let WebKit know via WebsitePolicies so that WebKit will not ask the client when the
permission is requested by JS.
- Shared/WebsitePoliciesData.cpp:
(WebKit::WebsitePoliciesData::encode const):
(WebKit::WebsitePoliciesData::decode):
(WebKit::WebsitePoliciesData::applyToDocumentLoader):
- Shared/WebsitePoliciesData.h:
- UIProcess/API/APIWebsitePolicies.cpp:
(API::WebsitePolicies::data):
- UIProcess/API/APIWebsitePolicies.h:
- UIProcess/API/Cocoa/_WKWebsitePolicies.h:
- UIProcess/API/Cocoa/_WKWebsitePolicies.mm:
(-[_WKWebsitePolicies setDeviceOrientationAndMotionAccessPolicy:]):
(-[_WKWebsitePolicies deviceOrientationAndMotionAccessPolicy]):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
(-[WebsitePoliciesDeviceOrientationDelegate initWithDeviceOrientationAccessPolicy:]):
(-[WebsitePoliciesDeviceOrientationDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]):
(-[WebsitePoliciesDeviceOrientationUIDelegate _webView:shouldAllowDeviceOrientationAndMotionAccessRequestedByFrame:decisionHandler:]):
- 1:30 PM Changeset in webkit [242959] by
-
- 7 edits in tags/Safari-608.1.9.100/Source
Versioning.
- 1:19 PM Changeset in webkit [242958] by
-
- 1 copy in tags/Safari-608.1.9.100
Tag Safari-608.1.9.100.
- 12:56 PM Changeset in webkit [242957] by
-
- 1 copy in tags/Safari-608.1.9
Tag Safari-608.1.9.
- 12:46 PM Changeset in webkit [242956] by
-
- 37 edits3 deletes in trunk
Unreviewed, rolling out r242931.
Causing internal watch/tv OS build failures
Reverted changeset:
"[Web GPU] Updates to GPUCommandBuffer for new GPUCommandQueue
concept"
https://bugs.webkit.org/show_bug.cgi?id=195083
https://trac.webkit.org/changeset/242931
- 12:31 PM Changeset in webkit [242955] by
-
- 5 edits1 add in trunk
ASSERTION FAILED: regexp->isValid() or ASSERTION FAILED: !isCompilationThread()
https://bugs.webkit.org/show_bug.cgi?id=195735
Reviewed by Mark Lam.
JSTests:
New regression test.
- stress/dont-strength-reduce-regexp-with-compile-error.js: Added.
(foo):
(bar):
Source/JavaScriptCore:
There are two bug fixes here.
The first bug happens due to a race condition when we are compiling on a separate thread while the
main thread is compiling the RegExp at a place where it can run out of stack. When that happens,
the RegExp becomes invalid due to the out of stack error. If we check the ASSERT condition in the DFG
compilation thread, we crash. After the main thread throws an exception, it resets the RegExp as
it might compile successfully the next time we try to execute it on a shallower stack.
The main thread will see the regular expression as valid when it executes the JIT'ed code we are compiling
or any slow path we call out to. Therefore ASSERTs like this in compilation code can be eliminated.
The second bug is due to incorrect logic when we go to run the regexp in the Strength Reduction phase.
The current check for "do we have code to run the RegExp?" only checks that the RegExp's state
is != NotCompiled. We also can't run the RegExp if there the state is ParseError.
Changing hasCode() to take this into account fixes the second issue.
(JSC::FTL::DFG::LowerDFGToB3::compileNewRegexp):
- runtime/RegExp.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNewRegexp):
- runtime/RegExp.h:
- 12:27 PM Changeset in webkit [242954] by
-
- 6 edits1 add in trunk
Fixup uses KnownInt32 incorrectly in some nodes
https://bugs.webkit.org/show_bug.cgi?id=195279
<rdar://problem/47915654>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/known-int32-cant-be-used-across-bytecode-boundary.js: Added.
(foo):
Source/JavaScriptCore:
Fixup was sometimes using KnownInt32 edges when it knew some
incoming value is an Int32 based on what the bytecode would return.
However, because bytecode may result in Int32 for some node does
not mean we'll pick Int32 as the value format for that local. For example,
we may choose for a value to be represented as a double. This patch
corrects such uses of KnownInt32.
- dfg/DFGArgumentsEliminationPhase.cpp:
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileArrayPush):
(JSC::DFG::SpeculativeJIT::compileGetDirectPname):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileArrayPush):
- 12:22 PM Changeset in webkit [242953] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r242908): TestWebKitAPI.WebKit.AddAndRemoveDataDetectors Crashed
https://bugs.webkit.org/show_bug.cgi?id=195751
Reviewed by Wenson Hsieh.
- Shared/Cocoa/ArgumentCodersCocoa.mm:
(IPC::decodeArrayInternal): Added allowedClasses, pass to internal decodeObject for values.
(IPC::decodeDictionaryInternal): Ditto for keys and values.
(IPC::decodeObject): Pass allowedClasses to array and dictionary decoders.
- 12:11 PM Changeset in webkit [242952] by
-
- 7 edits in trunk
[PSON] Make sure the WebProcessCache is leverage when relaunching a process after termination
https://bugs.webkit.org/show_bug.cgi?id=195747
Reviewed by Geoff Garen.
Source/WebKit:
Make sure the WebProcessCache and the prewarmed process are used when relaunching a process
after termination (e.g. crash).
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::reattachToWebProcessForReload):
(WebKit::WebPageProxy::reattachToWebProcessWithItem):
(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadAlternateHTML):
(WebKit::WebPageProxy::loadWebArchiveData):
(WebKit::WebPageProxy::navigateToPDFLinkWithSimulatedClick):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processForRegistrableDomain):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::processForNavigationInternal):
(WebKit::WebProcessPool::tryPrewarmWithDomainInformation):
- UIProcess/WebProcessPool.h:
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 11:57 AM Changeset in webkit [242951] by
-
- 11 edits in trunk
Device orientation's permission should only require a user gesture to prompt the user
https://bugs.webkit.org/show_bug.cgi?id=195731
Reviewed by Geoffrey Garen.
Source/WebCore:
Device orientation's permission should only require a user gesture to prompt the user. If the
user already made a decision, we should resolve the promise with this decision, even without
user gesture.
This is useful for JS to figure out if they are access to device orientation or not because
showing UI for the user to give permission.
No new tests, updated existing tests.
- dom/DeviceOrientationAndMotionAccessController.cpp:
(WebCore::DeviceOrientationAndMotionAccessController::shouldAllowAccess):
- dom/DeviceOrientationAndMotionAccessController.h:
- dom/DeviceOrientationOrMotionEvent.cpp:
(WebCore::DeviceOrientationOrMotionEvent::requestPermission):
LayoutTests:
Update layout tests accordingly.
- fast/device-orientation/device-motion-request-permission-denied.html:
- fast/device-orientation/device-motion-request-permission-granted.html:
- fast/device-orientation/device-motion-request-permission-user-gesture-expected.txt:
- fast/device-orientation/device-orientation-request-permission-denied.html:
- fast/device-orientation/device-orientation-request-permission-granted.html:
- fast/device-orientation/device-orientation-request-permission-user-gesture-expected.txt:
- 11:40 AM Changeset in webkit [242950] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed speculative build fix for watchOS after r242908.
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
- 11:38 AM Changeset in webkit [242949] by
-
- 6 edits in trunk/LayoutTests
Block all plugins smaller than 5x5px
https://bugs.webkit.org/show_bug.cgi?id=195702
<rdar://problem/28435204>
Updating some tests to account for this change. Make the plugins
big enough to be created.
- compositing/plugins/small-to-large-composited-plugin.html:
- fast/frames/resources/sandboxed-iframe-about-blank.html:
- fast/frames/resources/sandboxed-iframe-plugins-frame-applet.html:
- fast/frames/resources/sandboxed-iframe-plugins-frame-embed.html:
- fast/frames/resources/sandboxed-iframe-plugins-frame-object.html:
- 11:27 AM Changeset in webkit [242948] by
-
- 8 edits8 adds in trunk
Web Inspector: Network - HAR Import
https://bugs.webkit.org/show_bug.cgi?id=195642
<rdar://problem/34820974>
Reviewed by Devin Rousso.
Source/WebInspectorUI:
- Localizations/en.lproj/localizedStrings.js
- UserInterface/Test.html:
- UserInterface/Test.html:
New strings and resources.
- UserInterface/Controllers/HARBuilder.js:
(WI.HARBuilder.dateFromHARDate):
(WI.HARBuilder.protocolFromHARProtocol):
(WI.HARBuilder.responseSourceFromHARFetchType):
Reverse parsers from HAR to WI.Resource types.
- UserInterface/Models/LocalResource.js: Added.
(WI.LocalResource):
(WI.LocalResource.headersArrayToHeadersObject):
(WI.LocalResource.fromHAREntry):
(WI.LocalResource.prototype.hasContent):
(WI.LocalResource.prototype.setContent):
(WI.LocalResource.prototype.requestContentFromBackend):
A Resource subclass with data fully supplied in the frontend.
- UserInterface/Controllers/NetworkManager.js:
(WI.NetworkManager):
(WI.NetworkManager.synthesizeImportError):
(WI.NetworkManager.prototype.localResourceForURL):
(WI.NetworkManager.prototype.processHAR):
Process a HAR and extract local resources.
- UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype.reset):
(WI.NetworkTableContentView.prototype._handleResourceAdded):
(WI.NetworkTableContentView.prototype._importHAR):
Add an import button. When an import succeeds reset the
table and only show imported resources (ignoring page
loaded resources).
LayoutTests:
- http/tests/inspector/network/har/har-import-expected.txt: Added.
- http/tests/inspector/network/har/har-import.html: Added.
HAR import tests.
- http/tests/inspector/network/har/resources/bad-version.har: Added.
- http/tests/inspector/network/har/resources/basic.har: Added.
- http/tests/inspector/network/har/resources/empty.har: Added.
- http/tests/inspector/network/har/resources/webkit.org.har: Added.
Sample HARs to test against.
- 11:25 AM Changeset in webkit [242947] by
-
- 6 edits in trunk/Source
Reset storage quota when clearing IDB/Cache API entries
https://bugs.webkit.org/show_bug.cgi?id=195716
Reviewed by Chris Dumez.
Source/WebCore:
On clearing of databases, reset all quota users.
This will ensure all layout test runs start with a clean state.
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::didPerformCloseAndDeleteDatabases):
- storage/StorageQuotaManager.h:
(WebCore::StorageQuotaManager::resetQuota):
Source/WebKit:
On clearing DOMCache or IDB data, reset quota value to the default value.
This ensures consistent layout test runs.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::clearStorageQuota):
- NetworkProcess/NetworkProcess.h:
- 11:22 AM Changeset in webkit [242946] by
-
- 2 edits in trunk/Source/WebCore
Certain videos are causing a crash when used as WebGL texture
https://bugs.webkit.org/show_bug.cgi?id=195700
<rdar://problem/48869347>
Reviewed by Eric Carlson.
CFEqual is not null-safe, so perform a null and type check before comparing.
- platform/graphics/cv/VideoTextureCopierCV.cpp:
(WebCore::transferFunctionFromString):
- 10:41 AM Changeset in webkit [242945] by
-
- 4 edits1 add in trunk
DFG liveness can't skip tail caller inline frames
https://bugs.webkit.org/show_bug.cgi?id=195715
JSTests:
Reviewed by Saam Barati.
- stress/dfg-scan-inlined-tail-caller-frames-liveness.js:
(i.foo):
Source/JavaScriptCore:
<rdar://problem/46221598>
Reviewed by Saam Barati.
In order to simplify OSR exit/DFG bytecode parsing our bytecode
generator always emits an op_ret after any tail call. However, the
DFG when computing the liveness of locals, would skip any tail
caller inline frames. This mean that if we ended up inserting a
Check that would OSR to the op_ret we wouldn't have kept
availability data around for it.
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::isLiveInBytecode):
- dfg/DFGGraph.h:
(JSC::DFG::Graph::forAllLocalsLiveInBytecode):
- 9:41 AM Changeset in webkit [242944] by
-
- 3 edits in trunk/Source/JavaScriptCore
DFG::Worklist can be shrunk by 16 bytes
https://bugs.webkit.org/show_bug.cgi?id=195490
Reviewed by Darin Adler.
- dfg/DFGWorklist.cpp:
(JSC::DFG::Worklist::Worklist):
- dfg/DFGWorklist.h:
- 9:21 AM Changeset in webkit [242943] by
-
- 3 edits2 adds in trunk
Cleanup inline boxes when list marker gets blockified
https://bugs.webkit.org/show_bug.cgi?id=195746
<rdar://problem/48049175>
Reviewed by Antti Koivisto.
Source/WebCore:
Normally when an element gets blockified (inline -> block) we destroy its renderer and construct a new one (RenderInline -> RenderBlock).
During this process the associated inline boxtree gets destroyed as well. Since RenderListMarker is just a generic RenderBox, the blockifying
change does not require a new renderer.
This patch takes care of destroying the inline boxtree when the marker gains block display type.
Test: fast/block/float/list-marker-is-float-crash.html
- rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::styleDidChange):
LayoutTests:
- fast/block/float/list-marker-is-float-crash-expected.txt: Added.
- fast/block/float/list-marker-is-float-crash.html: Added.
- 9:05 AM Changeset in webkit [242942] by
-
- 5 edits in trunk/LayoutTests
Unreviewed test gardening, rebaseline tests after r241934.
- fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-block-scrolling-state-expected.txt:
- fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-document-scrolling-state-expected.txt:
- fast/events/touch/ios/block-without-overflow-scroll-scrolling-state-expected.txt:
- fast/events/touch/ios/tap-with-active-touch-end-listener-expected.txt:
- 3:13 AM Changeset in webkit [242941] by
-
- 13 edits7 adds in trunk
Web Inspector: Audit: provide a way to get the contents of resources
https://bugs.webkit.org/show_bug.cgi?id=195266
<rdar://problem/48550911>
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
- inspector/InjectedScriptBase.cpp:
(Inspector::InjectedScriptBase::makeAsyncCall):
Drive-by: fix missingelse.
Source/WebCore:
Test: inspector/audit/run-resources.html
- inspector/InspectorAuditResourcesObject.idl: Added.
- inspector/InspectorAuditResourcesObject.h: Added.
(WebCore::InspectorAuditResourcesObject::create):
(WebCore::InspectorAuditResourcesObject::Resource):
(WebCore::InspectorAuditResourcesObject::ResourceContent):
(WebCore::InspectorAuditResourcesObject::InspectorAuditCachedResourceClient):
(WebCore::InspectorAuditResourcesObject::InspectorAuditCachedFontClient):
(WebCore::InspectorAuditResourcesObject::InspectorAuditCachedImageClient):
(WebCore::InspectorAuditResourcesObject::InspectorAuditCachedRawResourceClient):
(WebCore::InspectorAuditResourcesObject::InspectorAuditCachedStyleSheetClient):
(WebCore::InspectorAuditResourcesObject::InspectorAuditCachedSVGDocumentClient):
- inspector/InspectorAuditResourcesObject.cpp: Added.
(WebCore::InspectorAuditResourcesObject::InspectorAuditResourcesObject):
(WebCore::InspectorAuditResourcesObject::getResources):
(WebCore::InspectorAuditResourcesObject::getResourceContent):
(WebCore::InspectorAuditResourcesObject::clientForResource):
- inspector/agents/InspectorPageAgent.h:
- inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::cachedResourcesForFrame): Added.
(WebCore::allResourcesURLsForFrame):
Moved a file static function to be a class static function so it can be used elsewhere.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
LayoutTests:
- inspector/audit/resources/sample-resource.css: Added.
- inspector/audit/resources/sample-resource.js: Added.
- inspector/audit/run-resources.html: Added.
- inspector/audit/run-resources-expected.txt: Added.
- 2:46 AM Changeset in webkit [242940] by
-
- 14 edits in trunk
Web Inspector: Console: getEventListeners should work for any EventTarget
https://bugs.webkit.org/show_bug.cgi?id=195713
Reviewed by Joseph Pecoraro.
Source/WebCore:
Test: inspector/console/command-line-api-getEventListeners.html
- dom/EventTarget.h:
- dom/EventTarget.cpp:
(WebCore::EventTarget::eventTypes): Added.
- inspector/CommandLineAPIHost.idl:
- inspector/CommandLineAPIHost.h:
(WebCore::CommandLineAPIHost::init):
- inspector/CommandLineAPIHost.cpp:
(WebCore::CommandLineAPIHost::disconnect):
(WebCore::CommandLineAPIHost::getEventListeners):
(WebCore::listenerEntriesFromListenerInfo): Deleted.
- inspector/CommandLineAPIModuleSource.js:
(CommandLineAPIImpl.prototype.getEventListeners):
- inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
- inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
Source/WebInspectorUI:
- UserInterface/Models/NativeFunctionParameters.js:
LayoutTests:
- inspector/console/command-line-api-getEventListeners.html:
- inspector/console/command-line-api-getEventListeners-expected.txt:
- 2:33 AM Changeset in webkit [242939] by
-
- 10 edits2 adds in trunk
Web Inspector: Styles:
::-webkit-scrollbar*rules aren't shown
https://bugs.webkit.org/show_bug.cgi?id=195123
<rdar://problem/48450148>
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
- inspector/protocol/CSS.json:
Add
CSS.PseudoIdenum, rather than send a number, so that we have more knowledge about
which pseudo type the rule corresponds to (e.g. a string is more descriptive than a number).
Source/WebCore:
Test: inspector/css/getMatchedStylesForNode.html
- inspector/agents/InspectorCSSAgent.cpp:
(WebCore::protocolValueForPseudoId): Added.
(WebCore::InspectorCSSAgent::getMatchedStylesForNode):
Source/WebInspectorUI:
- UserInterface/Controllers/CSSManager.js:
(WI.CSSManager.displayNameForPseudoId): Added.
- UserInterface/Models/DOMNodeStyles.js:
(WI.DOMNodeStyles.static uniqueOrderedStyles): Added.
(WI.DOMNodeStyles.prototype.get uniqueOrderedStyles):
- UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype._handleSectionFilterApplied):
Rather than iterate over theWI.DOMNode's list of pseudo-elements (which is only ::before
and ::after), we iterate over theWI.DOMNodeStyle's list of pseudo-element rules. This is
an object where the key is aCSS.PseudoIdand the value is an object containing all the
matched rules and ordered styles for that pseudo-type. We can preserve the current
functionality by using the ::before/::afterWI.DOMNodewhen we encounter one of those
pseudo-ids.
An additional benefit of this change is that
::before/::afterstyles will still appear
in the Rules panel even if they don't have acontentproperty set (e.g. when the
::before/::afterpseudo-element doesn't exist). This is because the styles are no longer
fetched from those pseudo-element nodes directly, but rather as a matched style for the
parent node. As such, editing acontentproperty to become invalid/disablde in a
::before/::afterrule won't make the entire rule disappeaer.
LayoutTests:
- inspector/css/getMatchedStylesForNode.html: Added.
- inspector/css/getMatchedStylesForNode-expected.txt: Added.
- 1:02 AM Changeset in webkit [242938] by
-
- 29 edits1 add in trunk/Source/bmalloc
[bmalloc] Add StaticPerProcess for known types to save pages
https://bugs.webkit.org/show_bug.cgi?id=195691
Reviewed by Mark Lam.
As initial memory footprint of VM + JSGlobalObject becomes 488KB dirty size in fast malloc memory (w/ JSC_useJIT=0 and Malloc=1), pages for PerProcess is costly.
For example, under Malloc=1 mode, we still need to allocate PerProcess<DebugHeap> and PerProcess<Environment>. And sizeof(Environment) is only 1 (bool flag), and
sizeof(DebugHeap) is 120. But we are allocating 1 pages for them. Since page size in iOS is 16KB, this 121B consumes 16KB dirty memory, and it is not negligible
size if we keep in mind that the current fast malloc heap size is 488KB. Putting them into the DATA section, close to the other mutable data, we can avoid allocating
this page.
This patch revives the SafePerProcess concept in r228107. We add "StaticPerProcess<T>", which allocates underlying storage statically in the DATA section instead of
allocating it at runtime. And we use this StaticPerProcess<T> for types where (1) T is known a priori, and (2) sizeof(T) is not huge.
- bmalloc.xcodeproj/project.pbxproj:
- bmalloc/AllIsoHeaps.cpp:
- bmalloc/AllIsoHeaps.h:
- bmalloc/Allocator.cpp:
(bmalloc::Allocator::Allocator):
- bmalloc/Cache.cpp:
(bmalloc::Cache::Cache):
- bmalloc/CryptoRandom.cpp:
(bmalloc::cryptoRandom):
- bmalloc/Deallocator.cpp:
(bmalloc::Deallocator::Deallocator):
- bmalloc/DebugHeap.cpp:
- bmalloc/DebugHeap.h:
(bmalloc::DebugHeap::tryGet):
- bmalloc/Environment.cpp:
- bmalloc/Environment.h:
- bmalloc/Gigacage.cpp:
(Gigacage::Callback::Callback):
(Gigacage::Callback::function):
(bmalloc::PrimitiveDisableCallbacks::PrimitiveDisableCallbacks):
(Gigacage::disablePrimitiveGigacage):
(Gigacage::addPrimitiveDisableCallback):
(Gigacage::removePrimitiveDisableCallback):
(Gigacage::shouldBeEnabled):
(Gigacage::bmalloc::Callback::Callback): Deleted.
(Gigacage::bmalloc::Callback::function): Deleted.
(Gigacage::bmalloc::PrimitiveDisableCallbacks::PrimitiveDisableCallbacks): Deleted.
- bmalloc/Heap.cpp:
(bmalloc::Heap::Heap):
(bmalloc::Heap::tryAllocateLarge):
- bmalloc/IsoDirectoryInlines.h:
(bmalloc::passedNumPages>::takeFirstEligible):
(bmalloc::passedNumPages>::didBecome):
- bmalloc/IsoHeapImpl.cpp:
(bmalloc::IsoHeapImplBase::addToAllIsoHeaps):
- bmalloc/IsoPage.cpp:
(bmalloc::IsoPageBase::allocatePageMemory):
- bmalloc/IsoTLS.cpp:
(bmalloc::IsoTLS::IsoTLS):
(bmalloc::IsoTLS::ensureEntries):
(bmalloc::IsoTLS::forEachEntry):
- bmalloc/IsoTLSEntry.cpp:
(bmalloc::IsoTLSEntry::IsoTLSEntry):
- bmalloc/IsoTLSInlines.h:
(bmalloc::IsoTLS::allocateSlow):
(bmalloc::IsoTLS::deallocateSlow):
- bmalloc/IsoTLSLayout.cpp:
- bmalloc/IsoTLSLayout.h:
- bmalloc/Scavenger.cpp:
(bmalloc::Scavenger::Scavenger):
(bmalloc::dumpStats):
(bmalloc::Scavenger::scavenge):
(bmalloc::Scavenger::partialScavenge):
(bmalloc::Scavenger::freeableMemory):
(bmalloc::Scavenger::footprint):
- bmalloc/Scavenger.h:
- bmalloc/StaticPerProcess.h: Added.
- bmalloc/VMHeap.cpp:
- bmalloc/VMHeap.h:
- bmalloc/Zone.h:
- bmalloc/bmalloc.cpp:
(bmalloc::api::scavenge):
(bmalloc::api::isEnabled):
(bmalloc::api::setScavengerThreadQOSClass):
(bmalloc::api::enableMiniMode):
- test/testbmalloc.cpp:
(assertEmptyPointerSet):
(assertHasObjects):
(assertHasOnlyObjects):
(assertClean):
- 1:00 AM Changeset in webkit [242937] by
-
- 8 edits in trunk/Source/WebInspectorUI
Web Inspector: we should show artificial context menus on mousedown instead of click
https://bugs.webkit.org/show_bug.cgi?id=195494
Reviewed by Joseph Pecoraro.
- UserInterface/Views/ContextMenu.js:
(WI.ContextMenu):
(WI.ContextMenu.prototype.show):
(WI.ContextMenu.prototype.addBeforeShowCallback): Added.
(WI.ContextMenu.prototype.handleEvent):
Provide a way to register a callback that will be called right as the "contextmenu" event is
handled, but before the context menu is actually shown. Since "mousedown" events are also
fired when/before a "contextmenu" event is fired, each of the below callers has to maintain
some state indicating "we are about to show a context menu, so ignore all "mousedown" events
until that time". Without this, the below callers wouldn't be able to tell when the context
menu is finally shown.
- UserInterface/Base/SearchUtilities.js:
(WI.SearchUtilities.createSettingsButton):
- UserInterface/Views/CanvasContentView.js:
(WI.CanvasContentView):
(WI.CanvasContentView.prototype.initialLayout):
(WI.CanvasContentView.prototype._handleCanvasElementButtonMouseDown): Added.
(WI.CanvasContentView.prototype._handleViewShaderButtonMouseDown): Added.
(WI.CanvasContentView.prototype._handleViewRecordingButtonMouseDown): Added.
(WI.CanvasContentView.prototype._canvasElementButtonClicked): Deleted.
(WI.CanvasContentView.prototype._handleViewShaderButtonClicked): Deleted.
(WI.CanvasContentView.prototype._handleViewRecordingButtonClicked): Deleted.
- UserInterface/Views/DebuggerSidebarPanel.js:
(WI.DebuggerSidebarPanel):
(WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointMouseDown): Added.
(WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointClicked): Deleted.
- UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._handleCreateBreakpointMouseDown): Added.
(WI.SourcesNavigationSidebarPanel.prototype._handleCreateBreakpointClicked): Deleted.
- UserInterface/Views/TabBar.js:
(WI.TabBar.prototype._handleMouseDown):
- UserInterface/Views/LegacyTabBar.js:
(WI.LegacyTabBar.prototype._handleMouseDown):