Timeline
Feb 3, 2017:
- 10:03 PM Changeset in webkit [211668] by
-
- 2 edits in trunk/Source/WebCore
Simple line layout: Remove redundant codepath check.
https://bugs.webkit.org/show_bug.cgi?id=167827
<rdar://problem/30361850>
Reviewed by Myles C. Maxfield.
FontCascade::codePath() iterates through the entire text. It's rather wasteful to do twice.
No change in functionality.
- rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForFontAndText):
(WebCore::SimpleLineLayout::printReason):
- 9:53 PM Changeset in webkit [211667] by
-
- 3 edits2 adds in trunk
REGRESSION(r204858): Synthetic bold text in vertical writing mode is rotated away from original text
https://bugs.webkit.org/show_bug.cgi?id=167826
<rdar://problem/28193222>
Reviewed by Zalan Bujtas.
Source/WebCore:
When drawing vertical text, the rotation is not reset between successive paint calls. We implement
synthetic bold by drawing text twice, which means that the second draw call was getting rotated
twice. This was an oversight in r204858.
Test: fast/text/synthetic-bold-vertical-text.html
- platform/graphics/cocoa/FontCascadeCocoa.mm:
(WebCore::showGlyphsWithAdvances):
LayoutTests:
- fast/text/synthetic-bold-vertical-text-expected.html: Added.
- fast/text/synthetic-bold-vertical-text.html: Added.
- 9:18 PM Changeset in webkit [211666] by
-
- 5 edits in trunk/Source
Unreviewed rollout of r211486, r211629.
Original change is not ideal and is causing issues.
Source/JavaScriptCore:
- inspector/agents/InspectorHeapAgent.cpp:
(Inspector::SendGarbageCollectionEventsTask::SendGarbageCollectionEventsTask):
- runtime/InitializeThreading.cpp:
(JSC::initializeThreading):
Source/WebKit2:
- Shared/WebKit2Initialize.cpp:
(WebKit::InitializeWebKit2):
- 7:23 PM Changeset in webkit [211665] by
-
- 33 edits in trunk/Source
Performance Timing: Convert WTF::MonotonicTime and WTF::Seconds
https://bugs.webkit.org/show_bug.cgi?id=167768
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-03
Reviewed by Geoffrey Garen.
Source/WebCore:
The public APIs still return double (DOMHighResTimeStamp), which
is milliseconds since a time origin:
https://w3c.github.io/hr-time/#dom-domhighrestimestamp
- loader/LoadTiming.cpp:
(WebCore::LoadTiming::secondsSinceStartTime):
(WebCore::LoadTiming::monotonicTimeToPseudoWallTime):
(WebCore::LoadTiming::markStartTime):
(WebCore::LoadTiming::addRedirect):
(WebCore::LoadTiming::monotonicTimeToZeroBasedDocumentTime): Deleted.
- loader/LoadTiming.h:
(WebCore::LoadTiming::markUnloadEventStart):
(WebCore::LoadTiming::markUnloadEventEnd):
(WebCore::LoadTiming::markRedirectStart):
(WebCore::LoadTiming::markRedirectEnd):
(WebCore::LoadTiming::markFetchStart):
(WebCore::LoadTiming::setResponseEnd):
(WebCore::LoadTiming::markLoadEventStart):
(WebCore::LoadTiming::markLoadEventEnd):
(WebCore::LoadTiming::startTime):
(WebCore::LoadTiming::unloadEventStart):
(WebCore::LoadTiming::unloadEventEnd):
(WebCore::LoadTiming::redirectStart):
(WebCore::LoadTiming::redirectEnd):
(WebCore::LoadTiming::fetchStart):
(WebCore::LoadTiming::responseEnd):
(WebCore::LoadTiming::loadEventStart):
(WebCore::LoadTiming::loadEventEnd):
(WebCore::LoadTiming::redirectCount):
(WebCore::LoadTiming::referenceMonotonicTime):
(WebCore::LoadTiming::referenceWallTime):
Use MonotonicTime and WallTime for timestamps and references.
- dom/Document.cpp:
(WebCore::Document::setReadyState):
(WebCore::Document::finishedParsing):
(WebCore::Document::monotonicTimestamp):
- dom/DocumentTiming.h:
(WebCore::DocumentTiming::DocumentTiming): Deleted.
- dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::serviceScriptedAnimations):
- inspector/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::buildObjectForTiming):
(WebCore::InspectorNetworkAgent::didFinishLoading):
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::dataReceived):
- loader/DocumentLoader.h:
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didFinishLoading):
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::performance):
Use new types instead of raw doubles.
- page/Performance.cpp:
(WebCore::Performance::Performance):
(WebCore::Performance::now):
(WebCore::Performance::reduceTimeResolution):
(WebCore::Performance::addResourceTiming):
- page/Performance.h:
Do time arithmatic with WTF::Time classes.
This clarifies that we reduce our timestamps to 100us
resolution instead of the maximum 5us allowed by the spec.
- page/PerformanceResourceTiming.cpp:
(WebCore::monotonicTimeToDOMHighResTimeStamp):
(WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
(WebCore::PerformanceResourceTiming::networkLoadTimeToDOMHighResTimeStamp):
- page/PerformanceResourceTiming.h:
- page/PerformanceTiming.cpp:
(WebCore::PerformanceTiming::resourceLoadTimeRelativeToFetchStart):
(WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds):
(WebCore::toIntegerMilliseconds): Deleted.
- page/PerformanceTiming.h:
Do time arithmatic with WTF::Time classes.
- workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::create):
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):
- workers/DedicatedWorkerGlobalScope.h:
- workers/DedicatedWorkerThread.cpp:
(WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
(WebCore::DedicatedWorkerThread::createWorkerGlobalScope):
- workers/DedicatedWorkerThread.h:
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
- workers/WorkerGlobalScope.h:
- workers/WorkerGlobalScopeProxy.h:
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
- workers/WorkerMessagingProxy.h:
- workers/WorkerThread.cpp:
(WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
(WebCore::WorkerThread::WorkerThread):
- workers/WorkerThread.h:
Pass time origin as MonotonicTime.
- workers/Worker.cpp:
(WebCore::Worker::create):
(WebCore::Worker::notifyFinished):
- workers/Worker.h:
Rename creation timestamp member. This matches Document's m_documentCreationTime.
Source/WTF:
- wtf/Stopwatch.h:
(WTF::Stopwatch::elapsedTimeSince):
(WTF::Stopwatch::elapsedTimeSinceMonotonicTime): Deleted.
- 7:16 PM Changeset in webkit [211664] by
-
- 3 edits1 add in trunk/Source/ThirdParty/libwebrtc
[WebRTC] Add more files to libwebrtc build
https://bugs.webkit.org/show_bug.cgi?id=167824
Reviewed by Youenn Fablet.
- Configurations/libwebrtc.xcconfig:
- Configurations/usrsctp.xcconfig: Added.
- libwebrtc.xcodeproj/project.pbxproj:
- 7:03 PM Changeset in webkit [211663] by
-
- 8 edits in trunk
WK1 mouse events are missing movementX and movementY for pointerlock.
https://bugs.webkit.org/show_bug.cgi?id=167775
rdar://problem/30343810
Patch by Jeremy Jones <jeremyj@apple.com> on 2017-02-03
Reviewed by Alexey Proskuryakov.
Source/WebCore:
pointer-lock/mouse-event-delivery.html
Improve mouse-event-delivery.html test to mouse move and check for valid movementX and movementY.
- platform/mac/PlatformEventFactoryMac.mm:
(WebCore::PlatformMouseEventBuilder::PlatformMouseEventBuilder): WK1 plumb throuhg movementX and movementY
Tools:
Set kCGMouseEventDeltaX and kCGMouseEventDeltaY when synthesizing mouse move events.
- DumpRenderTree/mac/EventSendingController.mm:
(-[EventSendingController mouseMoveToX:Y:]):
- WebKitTestRunner/mac/EventSenderProxy.mm:
(WTR::EventSenderProxy::mouseMoveTo):
LayoutTests:
Enable pointer-lock/mouse-event-delivery.html for mac.
- platform/mac/TestExpectations:
- 5:53 PM Changeset in webkit [211662] by
-
- 83 edits2 adds in trunk
Correctly set the "inWindow" flag for TileControllers that aren't the page tiles, and clarify "usingTiledBacking" logic
https://bugs.webkit.org/show_bug.cgi?id=167774
Reviewed by Tim Horton.
Source/WebCore:
RenderLayerBacking had some very confusing "usingTiledCacheLayer" uses.
Its member variable, m_usingTiledCacheLayer, really meant "m_isMainFrameLayerWithTiledBacking" so make it so.
It had a usingTiledBacking(), which returned the same thing, which this patch replaces with isMainFrameLayerWithTiledBacking().
The fact that usingTiledBacking() was only true for the page tiled layer tripped up
RenderLayerCompositor::setIsInWindowForLayerIncludingDescendants(), which would only ever call setIsInWindow()
on the page tiled layer. These changes fix that.
Also make a way for tests to unparent the web view via UIScriptController, and dump out the "in window"
status of TileBackings when dumping tile caches.
Test: tiled-drawing/tiled-backing-in-window.html
- platform/graphics/TiledBacking.h:
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::dumpAdditionalProperties):
- platform/graphics/ca/TileController.h:
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
(WebCore::computePageTiledBackingCoverage):
(WebCore::RenderLayerBacking::adjustTiledBackingCoverage):
(WebCore::RenderLayerBacking::setTiledBackingHasMargins):
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
(WebCore::RenderLayerBacking::shouldClipCompositedBounds):
(WebCore::RenderLayerBacking::updateDescendantClippingLayer):
(WebCore::RenderLayerBacking::updateRootLayerConfiguration):
(WebCore::RenderLayerBacking::paintsIntoWindow):
(WebCore::computeTileCoverage): Deleted.
- rendering/RenderLayerBacking.h:
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::RenderLayerCompositor::rootFixedBackgroundsChanged):
(WebCore::RenderLayerCompositor::setIsInWindowForLayerIncludingDescendants):
(WebCore::RenderLayerCompositor::supportsFixedRootBackgroundCompositing):
(WebCore::RenderLayerCompositor::documentUsesTiledBacking):
Tools:
Implement UIScriptController removeViewFromWindow() and addViewToWindow(), and hook
up for Mac WK1 and WK2, and iOS WK2. It takes a callback because view state updates to the
web process are async, so the callback fires after the web process gets the new state.
- DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::removeViewFromWindow):
(WTR::UIScriptController::addViewToWindow):
- DumpRenderTree/mac/DumpRenderTree.mm:
(createWebViewAndOffscreenWindow):
(resetWebViewToConsistentStateBeforeTesting):
- DumpRenderTree/mac/DumpRenderTreeMac.h:
- DumpRenderTree/mac/UIScriptControllerMac.mm:
(WTR::UIScriptController::removeViewFromWindow):
(WTR::UIScriptController::addViewToWindow):
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::removeViewFromWindow):
(WTR::UIScriptController::addViewToWindow):
- TestRunnerShared/UIScriptContext/UIScriptController.h:
- WebKitTestRunner/PlatformWebView.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetStateToConsistentValues):
- WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::PlatformWebView::removeFromWindow):
(WTR::PlatformWebView::addToWindow):
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::removeViewFromWindow):
(WTR::UIScriptController::addViewToWindow):
- WebKitTestRunner/mac/PlatformWebViewMac.mm:
(WTR::PlatformWebView::removeFromWindow):
(WTR::PlatformWebView::addToWindow):
- WebKitTestRunner/mac/UIScriptControllerMac.mm:
(WTR::UIScriptController::removeViewFromWindow):
(WTR::UIScriptController::addViewToWindow):
LayoutTests:
Rebase to include the "in window" output.
tiled-drawing/background-transparency-toggle.html was sensitive to the length of the output, so give the body
a fixed size.
- compositing/tiling/offscreen-tiled-layer-expected.txt:
- compositing/tiling/transform-origin-tiled-expected.txt:
- platform/mac-wk1/compositing/tiling/offscreen-tiled-layer-expected.txt:
- platform/mac-wk1/compositing/tiling/transform-origin-tiled-expected.txt:
- platform/mac-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt:
- platform/mac-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
- platform/mac-wk2/compositing/tiling/tile-cache-zoomed-expected.txt:
- platform/mac-wk2/compositing/tiling/tiled-layer-resize-expected.txt:
- platform/mac/compositing/tiling/rotated-tiled-clamped-expected.txt:
- platform/mac/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
- platform/mac/compositing/tiling/tiled-layer-resize-expected.txt:
- tiled-drawing/background-transparency-toggle-expected.txt:
- tiled-drawing/background-transparency-toggle.html:
- tiled-drawing/scrolling/fast-scroll-div-latched-div-expected.txt:
- tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler-expected.txt:
- tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-expected.txt:
- tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler-expected.txt:
- tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt:
- tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt:
- tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt:
- tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt:
- tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-expected.txt:
- tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler-expected.txt:
- tiled-drawing/scrolling/fast-scroll-select-latched-select-expected.txt:
- tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt:
- tiled-drawing/scrolling/fixed-background/fixed-background-no-image-expected.txt:
- tiled-drawing/scrolling/fixed-background/fixed-body-background-body-layer-expected.txt:
- tiled-drawing/scrolling/fixed-background/fixed-body-background-expected.txt:
- tiled-drawing/scrolling/fixed-background/fixed-body-background-opacity-expected.txt:
- tiled-drawing/scrolling/fixed-background/fixed-body-background-positioned-expected.txt:
- tiled-drawing/scrolling/fixed-background/fixed-body-background-transformed-expected.txt:
- tiled-drawing/scrolling/fixed-background/fixed-body-background-zoomed-expected.txt:
- tiled-drawing/scrolling/fixed-background/fixed-html-background-expected.txt:
- tiled-drawing/scrolling/fixed-background/fixed-non-propagated-body-background-expected.txt:
- tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt:
- tiled-drawing/simple-document-with-margin-tiles-expected.txt:
- tiled-drawing/tile-coverage-after-scroll-expected.txt:
- tiled-drawing/tile-coverage-after-scroll-speculative-expected.txt:
- tiled-drawing/tile-coverage-scroll-to-bottom-expected.txt:
- tiled-drawing/tile-coverage-slow-scrolling-expected.txt:
- tiled-drawing/tile-coverage-speculative-expected.txt:
- tiled-drawing/tile-coverage-view-exposed-rect-expected.txt:
- tiled-drawing/tile-size-both-scrollable-expected.txt:
- tiled-drawing/tile-size-horizontally-scrollable-expected.txt:
- tiled-drawing/tile-size-slow-zoomed-expected.txt:
- tiled-drawing/tile-size-unscrollable-expected.txt:
- tiled-drawing/tile-size-vertically-scrollable-expected.txt:
- tiled-drawing/tile-size-view-exposed-rect-expected.txt:
- tiled-drawing/tiled-backing-in-window-expected.txt: Added.
- tiled-drawing/tiled-backing-in-window.html: Added.
- tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration-expected.txt:
- tiled-drawing/tiled-drawing-zoom-expected.txt:
- tiled-drawing/tiled-drawing-zoom-scrolled-expected.txt:
- tiled-drawing/use-tiled-drawing-expected.txt:
- tiled-drawing/visible-rect-content-inset-expected.txt:
- 5:42 PM Changeset in webkit [211661] by
-
- 3 edits2 adds in trunk
Simple line layout: Bail out from Simple Line Layout when the primary font is insufficient.
https://bugs.webkit.org/show_bug.cgi?id=167820
Source/WebCore:
<rdar://problem/30359685>
Reviewed by Myles C. Maxfield.
Currently simple line layout requires the primary font to have all the glyps for the content.
Test: fast/text/simple-line-layout-do-not-support-unicode-range.html
- rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForText):
(WebCore::SimpleLineLayout::canUseForFontAndText):
(WebCore::SimpleLineLayout::printReason):
LayoutTests:
Reviewed by Myles C. Maxfield.
- fast/text/simple-line-layout-do-not-support-unicode-range-expected.html: Added.
- fast/text/simple-line-layout-do-not-support-unicode-range.html: Added.
- 5:39 PM Changeset in webkit [211660] by
-
- 2 edits17 adds in trunk/LayoutTests/imported/w3c
Import web-platform-tests/hr-time tests
https://bugs.webkit.org/show_bug.cgi?id=167819
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-03
Reviewed by Youenn Fablet.
We pass all of these tests upstream.
- resources/ImportExpectations:
- web-platform-tests/hr-time/OWNERS: Added.
- web-platform-tests/hr-time/basic-expected.txt: Added.
- web-platform-tests/hr-time/basic.html: Added.
- web-platform-tests/hr-time/basic.worker-expected.txt: Added.
- web-platform-tests/hr-time/basic.worker.html: Added.
- web-platform-tests/hr-time/basic.worker.js: Added.
- web-platform-tests/hr-time/idlharness-expected.txt: Added.
- web-platform-tests/hr-time/idlharness.html: Added.
- web-platform-tests/hr-time/monotonic-clock-expected.txt: Added.
- web-platform-tests/hr-time/monotonic-clock.html: Added.
- web-platform-tests/hr-time/resources/now_frame.html: Added.
- web-platform-tests/hr-time/resources/w3c-import.log: Added.
- web-platform-tests/hr-time/test_cross_frame_start-expected.txt: Added.
- web-platform-tests/hr-time/test_cross_frame_start.html: Added.
- web-platform-tests/hr-time/w3c-import.log: Added.
- 5:20 PM Changeset in webkit [211659] by
-
- 3 edits2 adds in trunk
ASSERT in HTMLMediaElement::~HTMLMediaElement
https://bugs.webkit.org/show_bug.cgi?id=167818
Reviewed by Brent Fulgham.
Source/WebCore:
Test: media/audio-dealloc-crash.html
HTMLMediaElement's MediaElementSession can nominate the HTMLMediaElement itself
to become the playback controls session from inside the HTMLMediaElement destructor. Protect
against this by clearing out the session before calling updatePlaybackControlsManager().
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement):
LayoutTests:
- media/audio-dealloc-crash-expected.txt: Added.
- media/audio-dealloc-crash.html: Added.
- 5:17 PM Changeset in webkit [211658] by
-
- 7 edits in trunk/Source/JavaScriptCore
OSR entry: delay outer-loop compilation when at inner-loop
https://bugs.webkit.org/show_bug.cgi?id=167149
Reviewed by Filip Pizlo.
r211224 and r211461 were reverted because they caused massive
kraken/ai-astar regressions. This patch instead does the
minimally-disruptive change to fix the original bug as described
below, but omits extra tuning and refactoring which I had
before. I'll commit tuning and refactoring separately, if this
sticks. This patch is therefore very minimal, and layers carefully
on top of the complex spaghetti-logic. The only change it makes is
that it uses triggers to indicate to outer loops that they should
compile, which fixes the immediate bug and seems roughly perf
neutral (maybe a small gain on kraken sometimes, other times a
small regression as would be expected from slightly compiling
later). As opposed to r211461 this patch doesn't unconditionally
unset the trigger because it prevents further DFG executions from
entering. It therefore makes the trigger a tri-state enum class:
don't trigger, compilation done, start compilation. Only "start
compilation" gets reset to "don't trigger". "Compilation done"
does not (unless there's a problem compiling, then it gets set
back to "don't trigger").
As of https://bugs.webkit.org/show_bug.cgi?id=155217 OSR
compilation can be kicked off for an entry into an outer-loop,
while executing an inner-loop. This is desirable because often the
codegen from an inner-entry isn't as good as the codegen from an
outer-entry, but execution from an inner-loop is often pretty hot
and likely to kick off compilation. This approach provided nice
speedups on Kraken because we'd select to enter to the outer-loop
very reliably, which reduces variability (the inner-loop was
selected roughly 1/5 times from my unscientific measurements).
When compilation starts we take a snapshot of the JSValues at the
current execution state using OSR's recovery mechanism. These
values are passed to the compiler and are used as way to perform
type profiling, and could be used to observe cell types as well as
to perform predictions such as through constant propagation.
It's therefore desired to enter from the outer-loop when we can,
but we need to be executing from that location to capture the
right JSValues, otherwise we're confusing the compiler and giving
it inaccurate JSValues which can lead it to predict the wrong
things, leading to suboptimal code or recompilation due to
misprediction, or in super-corner-cases a crash.
DFG tier-up was added here:
https://bugs.webkit.org/show_bug.cgi?id=112838
- dfg/DFGJITCode.h:
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::JITCompiler):
- dfg/DFGOperations.cpp:
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp:
(JSC::DFG::ToFTLForOSREntryDeferredCompilationCallback::ToFTLForOSREntryDeferredCompilationCallback):
(JSC::DFG::Ref<ToFTLForOSREntryDeferredCompilationCallback>ToFTLForOSREntryDeferredCompilationCallback::create):
(JSC::DFG::ToFTLForOSREntryDeferredCompilationCallback::compilationDidBecomeReadyAsynchronously):
(JSC::DFG::ToFTLForOSREntryDeferredCompilationCallback::compilationDidComplete):
- dfg/DFGToFTLForOSREntryDeferredCompilationCallback.h:
- 4:05 PM Changeset in webkit [211657] by
-
- 2 edits in trunk/Tools
Remove check for SkipSafariExecutableEntitlementChecks
https://bugs.webkit.org/show_bug.cgi?id=167762
Reviewed by Dan Bernstein.
Follow-up fix: don't break internal behavior.
- Scripts/webkitdirs.pm:
(safariPath):
(executableHasEntitlements): Deleted.
(safariPathFromSafariBundle): Deleted.
(installedSafariPath): Deleted.
- 3:14 PM Changeset in webkit [211656] by
-
- 21 edits5 adds in trunk
[Mac][WK2] Add SPI to override the Content Security Policy of a page
https://bugs.webkit.org/show_bug.cgi?id=167810
<rdar://problem/30102568>
Reviewed by Anders Carlsson.
Source/WebCore:
- dom/Document.cpp:
(WebCore::Document::initSecurityContext): Apply the embedding client's override Content Security
Policy to the document if one exists.
- loader/FrameLoaderClient.h: Add function overrideContentSecurityPolicy() that a FrameLoaderClient
can override to provide a custom Content Security Policy for a document (defaults: null string - no policy).
As its name implies, the policy returned by overrideContentSecurityPolicy() will define the Content
Security Policy for the document, overriding any subsequently received Content Security Policy for
the document.
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::copyStateFrom): Only copy policies from the specified ContentSecurityPolicy
object if our policy was not specified by the embedding client.
(WebCore::ContentSecurityPolicy::didReceiveHeader): Set ContentSecurityPolicy::m_hasAPIPolicy to true
when we receive an API policy from the embedding client (ContentSecurityPolicy::PolicyFrom::API). An
API policy must be defined before a policy received from a document. Do not process a received header
if we already have an API policy as the API policy overrides all other policies.
- page/csp/ContentSecurityPolicy.h:
Source/WebKit2:
Add SPI to WKWebViewConfiguration so that an embedding client can define a custom Content Security
Policy that overrides the Content Security Policy of any page loaded in the web view.
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode): Encode instance variable overrideContentSecurityPolicy.
(WebKit::WebPageCreationParameters::decode): Decode instance variable overrideContentSecurityPolicy.
- Shared/WebPageCreationParameters.h:
- UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::copy): Copy instance variable overrideContentSecurityPolicy.
- UIProcess/API/APIPageConfiguration.h:
(API::PageConfiguration::overrideContentSecurityPolicy): Added.
(API::PageConfiguration::setOverrideContentSecurityPolicy): Added.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]): Copy overrideContentSecurityPolicy set on the WKWebViewConfiguration
object to the API::PageConfiguration object if non-nil.
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]): Copy the instance variable overrideContentSecurityPolicy.
(-[WKWebViewConfiguration _overrideContentSecurityPolicy]): Added.
(-[WKWebViewConfiguration _setOverrideContentSecurityPolicy:]): Added.
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: Define SPI property _overrideContentSecurityPolicy.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy): Initialize m_overrideContentSecurityPolicy from the passed
page configuration.
(WebKit::WebPageProxy::creationParameters): Set WebPageCreationParameters::overrideContentSecurityPolicy
so that the WebPage object (in the WebProcess) will know the overridden Content Security Policy
to apply to the document.
- UIProcess/WebPageProxy.h:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::overrideContentSecurityPolicy): Added. Returns the custom Content
Security Policy to apply to a new document.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- WebProcess/WebPage/WebPage.cpp:
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::overrideContentSecurityPolicy): Added.
Tools:
Add tests to ensure that we do not regress -[WKWebView _setOverrideContentSecurityPolicy:].
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/OverrideContentSecurityPolicy.mm: Added.
(TEST):
- TestWebKitAPI/Tests/WebKit2Cocoa/page-with-csp-iframe.html: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/page-with-csp.html: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/page-without-csp-iframe.html: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/page-without-csp.html: Added.
- 3:08 PM Changeset in webkit [211655] by
-
- 2 edits in trunk/Source/WebKit2
Revert toString behavior to what we had in the last version we shipped
https://bugs.webkit.org/show_bug.cgi?id=167814
rdar://problem/30344753
Reviewed by Tim Horton.
This is a speculative fix for a crash that we've seen on recent builds. It simply reverts the toString call back to
what we have in the last version of Safari we shipped.
- WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
- 2:40 PM Changeset in webkit [211654] by
-
- 7 edits in trunk
Drop Mac App Store workaround for window.getComputedStyle()
https://bugs.webkit.org/show_bug.cgi?id=166891
<rdar://problem/28282452>
Reviewed by Sam Weinig.
Drop Mac App Store workaround for window.getComputedStyle() now that
<rdar://problem/28020681> has been fixed.
- page/DOMWindow.cpp:
- page/DOMWindow.h:
- page/DOMWindow.idl:
- platform/RuntimeApplicationChecks.h:
- platform/RuntimeApplicationChecks.mm:
(WebCore::MacApplication::isAppStore): Deleted.
- 2:18 PM Changeset in webkit [211653] by
-
- 11 edits2 adds in trunk
Dismiss HTML form validation popover when pressing Escape key
https://bugs.webkit.org/show_bug.cgi?id=167716
<rdar://problem/29872943>
Reviewed by Simon Fraser.
Source/WebCore:
Dismiss any visible HTML form validation popover when pressing
the Escape key.
Test: fast/forms/validation-bubble-escape-key-dismiss.html
- page/EventHandler.cpp:
(WebCore::EventHandler::keyEvent):
- page/ValidationMessageClient.h:
Source/WebKit/mac:
Override ValidationMessageClient::hideAnyValidationMessage().
- WebCoreSupport/WebValidationMessageClient.h:
- WebCoreSupport/WebValidationMessageClient.mm:
(WebValidationMessageClient::hideAnyValidationMessage):
Source/WebKit2:
Override ValidationMessageClient::hideAnyValidationMessage().
- WebProcess/WebCoreSupport/WebValidationMessageClient.cpp:
(WebKit::WebValidationMessageClient::hideAnyValidationMessage):
- WebProcess/WebCoreSupport/WebValidationMessageClient.h:
LayoutTests:
Add layout test coverage.
- fast/forms/validation-bubble-escape-key-dismiss-expected.txt: Added.
- fast/forms/validation-bubble-escape-key-dismiss.html: Added.
- platform/ios-simulator/TestExpectations:
- 2:01 PM Changeset in webkit [211652] by
-
- 2 edits in trunk/Source/WebKit2
Require keyboard focus for pointer lock.
https://bugs.webkit.org/show_bug.cgi?id=167750
Patch by Jeremy Jones <jeremyj@apple.com> on 2017-02-03
Reviewed by Tim Horton.
When keyboard focus leaves the page, end pointer lock
Prevent pointer lock when the page doesn't have keyboard focus.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dispatchActivityStateChange):
(WebKit::WebPageProxy::requestPointerLock):
- 1:59 PM Changeset in webkit [211651] by
-
- 2 edits in trunk/Source/bmalloc
Include cstdlib before using ::malloc and posix_memalign
https://bugs.webkit.org/show_bug.cgi?id=167800
Patch by Ting-Wei Lan <Ting-Wei Lan> on 2017-02-03
Reviewed by Geoffrey Garen.
- bmalloc/DebugHeap.cpp:
- 1:56 PM Changeset in webkit [211650] by
-
- 8 edits in trunk
Pointer lock events should be delivered directly to the target element
https://bugs.webkit.org/show_bug.cgi?id=167134
rdar://problem/30268004
Patch by Jeremy Jones <jeremyj@apple.com> on 2017-02-03
Reviewed by Dean Jackson.
Source/WebCore:
pointer-lock/mouse-event-delivery.html: Enabled for mac, added wheel event tests.
When pointer is locked on an element, route mouse events directly to the target element, instead of
doing the normal event disptach.
- page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::handleMouseForceEvent):
(WebCore::EventHandler::handleWheelEvent):
- page/PointerLockController.cpp:
(WebCore::PointerLockController::isLocked): Added.
(WebCore::PointerLockController::dispatchLockedWheelEvent): Added.
- page/PointerLockController.h:
LayoutTests:
The pointer-lock/mouse-event-delivery.html test is modified to explicitly move the mouse pointer to a valid
location before sending mouse actions. Without this, the test infrastructure doesn't know that the pointer
is over the web view and doesn't deliver events.
The pointer-lock/mouse-event-delivery.html is also modified to explicitly wait for the delivery of the
wheel event before continuing with the test. This prevents flakeyness with the order the events are received.
Added code to test for wheel events.
- platform/mac/TestExpectations: enabled test.
- pointer-lock/mouse-event-delivery.html:
- pointer-lock/mouse-event-delivery-expected.txt:
- 1:52 PM Changeset in webkit [211649] by
-
- 13 edits2 adds in trunk
Avoid evicting link preload resources when parsing is done.
https://bugs.webkit.org/show_bug.cgi?id=167415
Reviewed by Ryosuke Niwa.
Source/WebCore:
Currently all preloads (speculative and link preload) are being cleared when the document has finished parsing.
When it comes to link preloads, it can result in resources being cleared before the page had a chance to use them. (e.g. resources
that are preloaded in order to be loaded through script after DOMContentLoaded)
This patch fixes that by marking link preload resources as such, so that they can be handled separately inside clearPreloads().
As this fix also exposed an issue with load cancelation with invalid hrefs (which tests were passing before due to the preloads
being cleared), said issue is also fixed by clearing previousely preloaded resources if an invalid link preload is later detected.
Test: http/tests/preload/not_evicting_preload_at_onload.html
- dom/Document.cpp:
(WebCore::Document::finishedParsing): Only clear speculative preloads when parsing is finished.
- loader/LinkLoader.cpp:
(WebCore::LinkLoader::preloadIfNeeded): Set request flag indicating link preload.
(WebCore::LinkLoader::loadLink): Clear previousely preloaded resource to cancel their load.
- loader/LinkPreloadResourceClients.h:
(WebCore::LinkPreloadResourceClient::clearResource): Call cancelLoad() when the client is cleared.
- loader/cache/CachedResource.h:
(WebCore::CachedResource::isLinkPreload):
(WebCore::CachedResource::setLinkPreload):
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::CachedResource): Initialize m_isLinkPreload with the request's value.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::~CachedResourceLoader):
(WebCore::CachedResourceLoader::requestResource): Mirror the request link preload flag to the resource if it's fetched from cache.
(WebCore::CachedResourceLoader::clearPreloads): Add a "speculative only" mode, which doesn't clear link preloads.
- loader/cache/CachedResourceLoader.h:
- loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::CachedResourceRequest):
- loader/cache/CachedResourceRequest.h:
(WebCore::CachedResourceRequest::isLinkPreload):
(WebCore::CachedResourceRequest::setIsLinkPreload):
LayoutTests:
- http/tests/preload/dynamic_remove_preload_href.html: Test passed before for the wrong reasons. Cache-busting in order for it to genuinely pass.
- http/tests/preload/not_delaying_window_onload_before_discovery.html: Test passed before for the wrong reasons. Cache-busting in order for it to genuinely pass.
- http/tests/preload/not_evicting_preload_at_onload-expected.txt: Added.
- http/tests/preload/not_evicting_preload_at_onload.html: Added.
- platform/mac/TestExpectations: Skipping http/tests/preload/dynamic_removing_preload.html due to https://bugs.webkit.org/show_bug.cgi?id=167792
- 1:48 PM Changeset in webkit [211648] by
-
- 2 edits in trunk/Source/WebKit2
Stash away the ports - they will be nulled out before the cancel handlers are called
https://bugs.webkit.org/show_bug.cgi?id=167812
Reviewed by Geoffrey Garen.
- Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::open):
- 1:17 PM Changeset in webkit [211647] by
-
- 3 edits2 adds in trunk
Simple line layout: Removing adjacent trailing whitespace runs should not crash.
https://bugs.webkit.org/show_bug.cgi?id=167803
<rdar://problem/30337368>
Reviewed by Antti Koivisto.
Source/WebCore:
In case of adjacent collapsed whitespace fragments, the length of these fragments (TextFragmentIterator::TextFragment)
do not necessarily equal the length of the final runs (SimpleLineLayout::Run).
This patch removes the dependency on the length and switches over to using the position information instead.
Test: fast/text/simple-line-layout-multiple-trailingwhitespace-crash.html
- rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::LineState::appendFragmentAndCreateRunIfNeeded):
(WebCore::SimpleLineLayout::LineState::removeTrailingWhitespace):
LayoutTests:
- fast/text/simple-line-layout-multiple-trailingwhitespace-crash-expected.txt: Added.
- fast/text/simple-line-layout-multiple-trailingwhitespace-crash.html: Added.
- 12:53 PM Changeset in webkit [211646] by
-
- 2 edits in trunk/Source/WebCore
Correct memory leak in MediaConstraints
https://bugs.webkit.org/show_bug.cgi?id=167744
<rdar://problem/30331444>
Reviewed by Anders Carlsson.
ConstraintHolder returns a reference to an object created by operator new. When the
returned value is assigned or stored in Vector or other containers we leak memory.
Instead, this value should just be returned as a regular object so that the return
value optimization can make sure memory is properly (and efficiently) used.
Tested by existing mediastream tests.
- platform/mediastream/MediaConstraints.h:
(WebCore::FlattenedConstraint::ConstraintHolder::create): Return by value.
(WebCore::FlattenedConstraint::ConstraintHolder::~ConstraintHolder): Don't attempt to
delete memory that was moved away.
(WebCore::FlattenedConstraint::ConstraintHolder::ConstraintHolder): Add Move constructor.
- 12:49 PM Changeset in webkit [211645] by
-
- 3 edits2 adds in trunk
Fix bad assertion under HTMLTreeBuilder::processStartTagForInBody()
https://bugs.webkit.org/show_bug.cgi?id=167799
<rdar://problem/30237241>
Reviewed by Brent Fulgham.
Source/WebCore:
Fix bad assertion under HTMLTreeBuilder::processStartTagForInBody() that was
expecting the root element to be an <html> element when parsing a <frameset>.
While this assertion is true in theory and as per the specification, it does
not hold in WebKit when parsing a DocumentFragment. This is because WebKit
has an optimization causing us to have a DocumentFragment as root element
when parsing a fragment. See the following constructor:
"HTMLTreeBuilder(HTMLDocumentParser&, DocumentFragment&, Element&, ParserContentPolicy, const HTMLParserOptions&)"
which has the following code:
"""
https://html.spec.whatwg.org/multipage/syntax.html#parsing-html-fragments
For efficiency, we skip step 5 ("Let root be a new html element with no attributes") and instead use the DocumentFragment as a root node.
m_tree.openElements().pushRootNode(HTMLStackItem::create(fragment));
"""
Update the assertion to expect a DocumentFragment as root element when parsing
a fragment, and keep expecting an <html> element otherwise.
Test: fast/parser/fragment-with-frameset-crash.html
- html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
LayoutTests:
Add layout test coverage. This test passes in all major browsers but used to hit
the bad assertion in WebKit debug builds.
- fast/parser/fragment-with-frameset-crash-expected.txt: Added.
- fast/parser/fragment-with-frameset-crash.html: Added.
- 12:28 PM Changeset in webkit [211644] by
-
- 2 edits in trunk/Source/WebKit2
Inline createReceiveSource in its two call sites
https://bugs.webkit.org/show_bug.cgi?id=167809
Reviewed by Alex Christensen.
- Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::open):
(IPC::createReceiveSource): Deleted.
- 12:07 PM Changeset in webkit [211643] by
-
- 3 edits in trunk/Source/WebKit2
WKActionSheet should dismiss with animation when done with the sheet
https://bugs.webkit.org/show_bug.cgi?id=167804
<rdar://problem/30334861>
Reviewed by Tim Horton.
Currently, we do not dismiss the action menu when -doneWithSheet is invoked. While this is okay when the menu is
dismissed via tap (since it will be dismissed as default behavior by the popover controller) we need to manually
dismiss it if we are trying to programmatically dismiss the action sheet/menu.
- UIProcess/ios/WKActionSheet.mm:
(-[WKActionSheet presentSheetFromRect:]):
(-[WKActionSheet doneWithSheet]):
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]):
(-[WKContentView resignFirstResponder]):
- 12:00 PM Changeset in webkit [211642] by
-
- 9 edits in trunk/Source/JavaScriptCore
When OSR entering to the baseline JIT from the LLInt for a ProgramCodeBlock we can skip compiling a lot of the program
https://bugs.webkit.org/show_bug.cgi?id=167725
<rdar://problem/30339082>
Reviewed by Michael Saboff.
We often want to baseline compile ProgramCode once we hit a loop in the LLInt.
However, some programs execute a non-trivial amount of code before the loop.
This code can never be executed again because ProgramCodeBlocks never run more
than once. We're wasting time and memory by compiling code that is unreachable
from the OSR entry destination. This patch fixes this by only compiling code
that is reachable from the OSR entry destination.
This is a speedup on Kraken/ai-astar for devices with limited CPUs (I've been
testing on devices with 2 CPUs). On ai-astar, we were spending 50-100ms compiling
a huge ProgramCodeBlock in the baseline JIT where the majority of the code
would never execute. If this compilation was kicked off on the main thread,
then we'd be stalled for a long time. If it were started on the baseline JITs
background compilation thread, we'd still waste 50-100ms in that thread, causing
all other baseline compilations to happen on the main thread.
- interpreter/Interpreter.cpp:
(JSC::Interpreter::executeProgram):
- interpreter/Interpreter.h:
- jit/JIT.cpp:
(JSC::JIT::JIT):
(JSC::JIT::privateCompileMainPass):
- jit/JIT.h:
(JSC::JIT::compile):
- jit/JITWorklist.cpp:
(JSC::JITWorklist::Plan::Plan):
(JSC::JITWorklist::Plan::compileNow):
(JSC::JITWorklist::compileLater):
(JSC::JITWorklist::compileNow):
- jit/JITWorklist.h:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::jitCompileAndSetHeuristics):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- runtime/Completion.cpp:
(JSC::evaluate):
- 11:53 AM Changeset in webkit [211641] by
-
- 3 edits2 adds in trunk
[Modern Media Controls] Skip back button is visible with a live broadcast video
https://bugs.webkit.org/show_bug.cgi?id=167793
Patch by Antoine Quint <Antoine Quint> on 2017-02-03
Reviewed by Eric Carlson.
Source/WebCore:
We shouldn't be showing the skip back button when a live broadcast video is playing.
We now listen to the "durationchange" event to determine when we have an inifinite-duration
video and disable the skip button in that case.
Test: http/tests/media/modern-media-controls/skip-back-support/skip-back-support-live-broadcast.html
- Modules/modern-media-controls/media/skip-back-support.js:
(SkipBackSupport.prototype.get mediaEvents):
(SkipBackSupport.prototype.syncControl):
(SkipBackSupport):
LayoutTests:
Add a new test to check that a live broadcast video doesn't show the skip back button.
- http/tests/media/modern-media-controls/skip-back-support/skip-back-support-live-broadcast-expected.txt: Added.
- http/tests/media/modern-media-controls/skip-back-support/skip-back-support-live-broadcast.html: Added.
- 11:08 AM Changeset in webkit [211640] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Add stroke-linecap property values to CSS autocompletion
https://bugs.webkit.org/show_bug.cgi?id=167778
Reviewed by Joseph Pecoraro.
- UserInterface/Models/CSSKeywordCompletions.js:
Add autocompletion values for fill-rule and stroke-linecap.
- 10:45 AM Changeset in webkit [211639] by
-
- 2 edits in trunk/Source/WebKit2
Doc generation failure in WebKitSecurityOrigin
https://bugs.webkit.org/show_bug.cgi?id=167796
Patch by Olivier Blin <Olivier Blin> on 2017-02-03
Reviewed by Michael Catanzaro.
- UIProcess/API/gtk/WebKitSecurityOrigin.cpp:
warning: Free-form return value description in webkit_security_origin_get_protocol. Use `Returns:' to avoid ambiguities.
- 9:44 AM Changeset in webkit [211638] by
-
- 7 edits in trunk
URLParser: implement forbidden host code points for non-special URLs
https://bugs.webkit.org/show_bug.cgi?id=167779
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/url/a-element-expected.txt:
- web-platform-tests/url/a-element-xhtml-expected.txt:
- web-platform-tests/url/url-constructor-expected.txt:
- web-platform-tests/url/url-setters-expected.txt:
Source/WebCore:
Covered by newly passing web platform tests.
- platform/URLParser.cpp:
(WebCore::isC0Control):
(WebCore::isForbiddenHostCodePoint):
(WebCore::URLParser::parseHostAndPort):
In non-special URL hosts such as customprotocol://strange%host
don't accept characters that are part of the URL grammar and would be forbidden
in a special URL host, like https://not[allowed
This was recently added to the spec in https://github.com/whatwg/url/issues/214
- 9:39 AM Changeset in webkit [211637] by
-
- 3 edits2 adds in trunk
The CSS property -webkit-text-stroke is not applied on captions.
https://bugs.webkit.org/show_bug.cgi?id=167687
Reviewed by Brent Fulgham.
Source/WebCore:
Add style to list of valid properties for cue.
Test: media/track/track-css-stroke-cues.html
- css/StyleResolver.cpp:
(WebCore::StyleResolver::isValidCueStyleProperty):
LayoutTests:
- media/track/track-css-stroke-cues-expected.txt: Added.
- media/track/track-css-stroke-cues.html: Added.
- 9:30 AM WebKitGTK/2.14.x edited by
- Remove last proposal, not ready for this yet (diff)
- 9:28 AM WebKitGTK/2.14.x edited by
- (diff)
- 9:21 AM Changeset in webkit [211636] by
-
- 6 edits in trunk
Align URL setters with spec for URLs that cannot be a base URL
https://bugs.webkit.org/show_bug.cgi?id=167783
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/url/url-setters-expected.txt:
Source/WebCore:
Setting things like credentials on mailto URLs doesn't make sense.
It's forbidden by the spec.
Covered by newly passing web platform tests.
- html/URLUtils.h:
(WebCore::URLUtils<T>::setUsername):
(WebCore::URLUtils<T>::setPassword):
(WebCore::URLUtils<T>::setHost):
(WebCore::URLUtils<T>::setHostname):
(WebCore::URLUtils<T>::setPort):
(WebCore::URLUtils<T>::setPathname):
- platform/URL.cpp:
(WebCore::URL::serialize):
- platform/URL.h:
(WebCore::URL::cannotBeABaseURL):
- 9:21 AM Changeset in webkit [211635] by
-
- 2 edits in trunk
[CMake] RelWithDebInfo builds are super broken at runtime
https://bugs.webkit.org/show_bug.cgi?id=163897
Reviewed by Michael Catanzaro.
- Source/cmake/OptionsCommon.cmake: Apply -fno-strict-aliasing,
-fno-exceptions, and -fno-rtti flags to all configurations,
instead of only "Release".
- 9:11 AM Changeset in webkit [211634] by
-
- 2 edits4 adds in trunk/Source/WebCore
[Mac] Add classes to manage audio samples
https://bugs.webkit.org/show_bug.cgi?id=167739
Reviewed by Jer Noble.
No new tests, this code isn't used yet.
- WebCore.xcodeproj/project.pbxproj:
- platform/audio/mac/AudioSampleBufferList.cpp: Added.
(WebCore::AudioSampleBufferList::create):
(WebCore::AudioSampleBufferList::AudioSampleBufferList):
(WebCore::AudioSampleBufferList::~AudioSampleBufferList):
(WebCore::AudioSampleBufferList::setSampleCount):
(WebCore::AudioSampleBufferList::applyGain):
(WebCore::AudioSampleBufferList::mixFrom):
(WebCore::AudioSampleBufferList::copyFrom):
(WebCore::AudioSampleBufferList::copyTo):
(WebCore::AudioSampleBufferList::reset):
(WebCore::AudioSampleBufferList::zero):
(WebCore::AudioSampleBufferList::zeroABL):
(WebCore::AudioSampleBufferList::convertInput):
(WebCore::AudioSampleBufferList::audioConverterCallback):
(WebCore::AudioSampleBufferList::configureBufferListForStream):
- platform/audio/mac/AudioSampleBufferList.h: Added.
(WebCore::AudioSampleBufferList::streamDescription):
(WebCore::AudioSampleBufferList::bufferList):
(WebCore::AudioSampleBufferList::sampleCapacity):
(WebCore::AudioSampleBufferList::sampleCount):
(WebCore::AudioSampleBufferList::timestamp):
(WebCore::AudioSampleBufferList::hostTime):
(WebCore::AudioSampleBufferList::setTimes):
(WebCore::AudioSampleBufferList::audioBufferListSizeForStream):
- platform/audio/mac/AudioSampleDataSource.cpp: Added.
(WebCore::AudioSampleDataSource::create):
(WebCore::AudioSampleDataSource::AudioSampleDataSource):
(WebCore::AudioSampleDataSource::~AudioSampleDataSource):
(WebCore::AudioSampleDataSource::setPaused):
(WebCore::AudioSampleDataSource::setupConverter):
(WebCore::AudioSampleDataSource::setInputFormat):
(WebCore::AudioSampleDataSource::setOutputFormat):
(WebCore::AudioSampleDataSource::hostTime):
(WebCore::AudioSampleDataSource::pushSamplesInternal):
(WebCore::AudioSampleDataSource::pushSamples):
(WebCore::AudioSampleDataSource::pullSamplesInternal):
(WebCore::AudioSampleDataSource::pullSamples):
- platform/audio/mac/AudioSampleDataSource.h: Added.
(WebCore::AudioSampleDataSource::setVolume):
(WebCore::AudioSampleDataSource::volume):
(WebCore::AudioSampleDataSource::setMuted):
(WebCore::AudioSampleDataSource::muted):
- 6:21 AM Changeset in webkit [211633] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed. Fix the buidl after r211631.
I added the OS(LINUX) ifdef to the wrong file by mistake.
- page/ResourceUsageThread.h:
- page/linux/ResourceUsageThreadLinux.cpp:
- 5:04 AM Changeset in webkit [211632] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed typo fix after r211630.
- CMakeLists.txt:
- 5:03 AM Changeset in webkit [211631] by
-
- 16 edits3 adds in trunk
[GTK] Add initial implementation of resource usage overlay
https://bugs.webkit.org/show_bug.cgi?id=167731
Reviewed by Michael Catanzaro.
.:
Enable RESOURCE_USAGE.
- Source/cmake/OptionsGTK.cmake:
Source/JavaScriptCore:
Also expose nextFireTime() for GTK+ port.
- heap/GCActivityCallback.cpp:
(JSC::GCActivityCallback::scheduleTimer):
(JSC::GCActivityCallback::cancelTimer):
- heap/GCActivityCallback.h:
Source/WebCore:
Add an implementation of ResourceUsageOverlay and ResourceUsageThread for Linux systems.
- PlatformGTK.cmake: Add new new files to compilation.
- page/Page.cpp:
(WebCore::Page::setResourceUsageOverlayVisible): Do not create the page overlay if accelerated compositing is
not enabled.
- page/ResourceUsageOverlay.h:
- page/linux/ResourceUsageOverlayLinux.cpp: Added.
(WebCore::cpuUsageString):
(WebCore::formatByteNumber):
(WebCore::gcTimerString):
(WebCore::ResourceUsageOverlay::platformInitialize):
(WebCore::ResourceUsageOverlay::platformDestroy):
- page/linux/ResourceUsageThreadLinux.cpp: Added.
(WebCore::cpuPeriod):
(WebCore::cpuUsage):
(WebCore::ResourceUsageThread::platformThreadBody):
Source/WebKit2:
Toggle the resource usage overlay visibility by pressing CTRL + Shift + G. Only available when building with
developer mode enabled.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseKeyPressEvent):
Source/WTF:
Enable RESOURCE_USAGE for GTK+ port too.
- wtf/Platform.h:
LayoutTests:
Unskip inpector tests depending on RESOURCE_USAGE.
- platform/gtk/TestExpectations:
- 4:56 AM Changeset in webkit [211630] by
-
- 2 edits in trunk/Source/JavaScriptCore
[cmake] Unreviewed AArch64 buildfix after r211603.
https://bugs.webkit.org/show_bug.cgi?id=167714
- CMakeLists.txt:
- 4:40 AM Changeset in webkit [211629] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION(r211486) [GTK] The MiniBrowser doesn't work anymore.
https://bugs.webkit.org/show_bug.cgi?id=167776
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2017-02-03
Reviewed by Yusuke Suzuki.
Since r211486 JSC::initializeThreading() also initializes the main run loop. It would be possible that RunLoop
need to know if it's the main one or not in its constructor, like the GLib impementation does, so we need to
ensure that WTF threading and MainThread are initialized before creating the main RunLoop. This is a quick fix
because the regression made impossible to load anything in a WebView, but I think we should review all the
initialize methods, what they do and how they are called in all the code.
- Shared/WebKit2Initialize.cpp:
(WebKit::InitializeWebKit2): Call WTF::initializeThreading() and WTF::initializeMainThread() before
JSC::initializeThreading() and do not call RunLoop::initializeMainRunLoop() because it's already called by JSC.
- 4:21 AM WebKitGTK/2.14.x edited by
- (diff)
- 4:21 AM Changeset in webkit [211628] by
-
- 2 edits in trunk/Source/WebKit2
[Mac][cmake] One more unreviewed speculative buildfix after r211403.
https://bugs.webkit.org/show_bug.cgi?id=165478
- UIProcess/API/Cocoa/WKWebView.mm: WebSQLiteDatabaseTrackerClient.h is an iOS specific
header in platform/ios directory which shouldn't and can't be included on non iOS build.
- 4:03 AM Changeset in webkit [211627] by
-
- 3 edits in trunk/Source/WebCore
[GStreamer] Store preloaded media in webkit's cache
https://bugs.webkit.org/show_bug.cgi?id=119477
Reviewed by Xabier Rodriguez-Calvar.
Files cached on disk by MediaPlayerPrivateGStreamer are deleted only when the player is closed. If the
WebProcess crashed, they're just left there in the cache directory. This patch changes the location
of those temporary files to a proper temporary directory (/var/tmp, as those files aren't actually
reusable, so they don't belong to a cache directory, and /tmp is a bad place because it's RAM-based on
some distros), unlinks (deletes) them right after creation and also deletes any other stalled temporary
file on the old legacy cache directory.
There's no API in GstPlaybin to control the temporary file location, so we do it manually by locating
the GstDownloadBuffer element in the pipeline as soon as it's created, reconfiguring it with the right
temporary file path and deleting the file as soon as it's created.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer): Stop listening to element-added.
(WebCore::MediaPlayerPrivateGStreamer::uriDecodeBinElementAddedCallback): Look for GstDownloadBuffer.
(WebCore::MediaPlayerPrivateGStreamer::downloadBufferFileCreatedCallback): Remove the file after creation.
(WebCore::MediaPlayerPrivateGStreamer::purgeOldDownloadFiles): Delete legacy files.
(WebCore::MediaPlayerPrivateGStreamer::sourceChanged): Listen to element-added signals on GstUriDecodeBin.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: New reference to GstDownloadBuffer.
- 3:53 AM Changeset in webkit [211626] by
-
- 2 edits in trunk/Source/WebKit2
[Mac][cmake] Unreviewed speculative buildfix after r211403.
https://bugs.webkit.org/show_bug.cgi?id=165478
- UIProcess/API/Cocoa/WKWebView.mm: WebBackgroundTaskController.h is an iOS specific
header in platform/ios directory which shouldn't and can't be included on non iOS build.
- 3:12 AM Changeset in webkit [211625] by
-
- 2 edits in trunk/Source/WebCore
WebContent crash when pasting into input fields at com.apple.WebCore: WebCore::ResourceRequestBase::url const + 9
https://bugs.webkit.org/show_bug.cgi?id=167787
rdar://problem/29168795
Reviewed by Andreas Kling.
No test, don't know how to get here.
- page/animation/CSSPropertyAnimation.cpp:
(WebCore::crossfadeBlend): Null check.
- 2:23 AM Changeset in webkit [211624] by
-
- 2 edits in trunk/Source/WebCore
JSDOMWindowBase.cpp doesn't build if the JIT is disabled
https://bugs.webkit.org/show_bug.cgi?id=167785
Reviewed by Carlos Garcia Campos.
r211403 moved GetCallerGlobalObjectFunctor from JSDOMBinding.cpp
to JSDOMWindowBase.cpp, but forgot to include bytecode/CodeBlock.h
in the latter file.
This breaks the build if the JIT is disabled because the headers
that would include ClodeBlock.h indirectly are guarded by
ENABLE(JIT).
- bindings/js/JSDOMWindowBase.cpp:
- 1:05 AM Changeset in webkit [211623] by
-
- 2 edits in trunk/LayoutTests
LayoutTest media/modern-media-controls/tracks-panel/tracks-panel-hide-click-outside.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=165290
Unreviewed test gardening.
Patch by Antoine Quint <Antoine Quint> on 2017-02-03
- platform/mac/TestExpectations:
Feb 2, 2017:
- 11:25 PM Changeset in webkit [211622] by
-
- 19 edits2 copies in trunk/Source
[Mac] In-process memory pressure monitor for WebContent processes AKA websam
<https://webkit.org/b/167491>
<rdar://problem/30116072>
Reviewed by Antti Koivisto.
Source/JavaScriptCore:
Remove the sloppy "max live heap size" mechanism from JSC in favor of the new
WebCore-side memory footprint monitor.
- heap/Heap.cpp:
(JSC::Heap::updateAllocationLimits):
(JSC::Heap::didExceedMaxLiveSize): Deleted.
- heap/Heap.h:
(JSC::Heap::setMaxLiveSize): Deleted.
Source/WebCore:
Add a new timer-based memory pressure monitor that checks the process memory
footprint every 30 seconds and reacts to changes by setting a MemoryUsagePolicy.
There are four MemoryUsagePolicy values:
- Unrestricted (below 1GB)
- Conservative (above 1GB)
- Strict (above 2GB)
- Panic (above 4GB, or 3GB if 32-bit)
For Strict and above, the old-style "isUnderMemoryPressure()" API will return true.
Transitioning to a higher policy will cause memory pressure handlers to run:
At Strict, we run the "non-critical" memory pressure handler, then carry on.
At Panic, we run the "critical" memory pressure handler. If that fails to recover
enough memory to bring us back below 4GB, we may kill the process:
A process is eligible to get killed for using too much memory if:
- It's not visible on screen (i.e it's a background tab.)
- It's not playing audio.
- It has not performed a main frame navigation in the last hour.
Before killing the process, an exit-time callback will run. This patch installs such
a callback that prints out some time-of-death statistics about C++ and JavaScript memory
usage to hopefully help understand what was soaking up all the memory.
- bindings/js/CommonVM.cpp:
(WebCore::commonVMSlow):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::setState):
- page/MainFrame.cpp:
(WebCore::MainFrame::didCompleteLoad):
- page/MainFrame.h:
- page/MemoryRelease.cpp:
(WebCore::pageCount):
(WebCore::logMemoryStatisticsAtTimeOfDeath):
(WebCore::didExceedMemoryLimitAndFailedToRecover):
(WebCore::processIsEligibleForMemoryKill):
- page/MemoryRelease.h:
- page/ResourceUsageThread.h:
- page/cocoa/ResourceUsageThreadCocoa.mm:
(WebCore::vmPageSize):
- platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::MemoryPressureHandler):
(WebCore::MemoryPressureHandler::setShouldUsePeriodicMemoryMonitor):
(WebCore::toString):
(WebCore::thresholdForPolicy):
(WebCore::policyForFootprint):
(WebCore::MemoryPressureHandler::measurementTimerFired):
- platform/MemoryPressureHandler.h:
(WebCore::MemoryPressureHandler::setMemoryKillCallback):
(WebCore::MemoryPressureHandler::setProcessIsEligibleForMemoryKillCallback):
(WebCore::MemoryPressureHandler::isUnderMemoryPressure):
Source/WebKit2:
Enable the in-process memory monitor for WebContent processes on macOS 10.12+
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
Source/WTF:
Add a WTF helper function for getting the current process's memory footprint.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/MemoryFootprint.cpp:
(WTF::memoryFootprint):
- wtf/MemoryFootprint.h:
- 10:30 PM Changeset in webkit [211621] by
-
- 5 edits in trunk
URLParser: Fix parsing invalid IPv4 addresses with non-ASCII characters
https://bugs.webkit.org/show_bug.cgi?id=167773
<rdar://problem/30221102>
Reviewed by Ryosuke Niwa.
Source/WebCore:
If an invalid IPv4 address contains the first syntaxViolation (difference between input and canonicalized URL),
an iterator is used to calculate how far we have parsed in the input string to copy all the syntax-violation-free
characters into a Vector. If a URL contains only ASCII that doesn't contain anything percent-encoded in the host,
there is a fast path to parse ASCII hosts. All my existing invalid IPv4 tests followed this path.
If there is a non-ASCII character, we need to use an iterator to the original string instead of an iterator
to the string after converting the input string's host to ASCII.
Covered by a new API test which used to RELEASE_ASSERT.
- platform/URLParser.cpp:
(WebCore::URLParser::parseIPv4Host):
(WebCore::URLParser::parseIPv6Host):
(WebCore::URLParser::parseHostAndPort):
- platform/URLParser.h:
Tools:
- TestWebKitAPI/Tests/WebCore/URLParser.cpp:
(TestWebKitAPI::TEST_F):
- 10:25 PM WebKitGTK/2.14.x edited by
- (diff)
- 10:20 PM Changeset in webkit [211620] by
-
- 18 edits2 adds in trunk/LayoutTests/imported/w3c
Update URL web platform tests
https://bugs.webkit.org/show_bug.cgi?id=167777
Reviewed by Ryosuke Niwa.
- web-platform-tests/url/a-element-expected.txt:
- web-platform-tests/url/a-element-origin-expected.txt:
- web-platform-tests/url/a-element-origin-xhtml-expected.txt:
- web-platform-tests/url/a-element-origin-xhtml.xhtml:
- web-platform-tests/url/a-element-origin.html:
- web-platform-tests/url/a-element-xhtml-expected.txt:
- web-platform-tests/url/a-element-xhtml.xhtml:
- web-platform-tests/url/a-element.html:
- web-platform-tests/url/setters_tests.json:
- web-platform-tests/url/url-constructor-expected.txt:
- web-platform-tests/url/url-origin-expected.txt:
- web-platform-tests/url/url-setters-expected.txt:
- web-platform-tests/url/urlencoded-parser-expected.txt: Added.
- web-platform-tests/url/urlencoded-parser.html: Added.
- web-platform-tests/url/urlsearchparams-constructor-expected.txt:
- web-platform-tests/url/urlsearchparams-constructor.html:
- web-platform-tests/url/urlsearchparams-sort-expected.txt:
- web-platform-tests/url/urlsearchparams-sort.html:
- web-platform-tests/url/urltestdata.json:
- 8:50 PM Changeset in webkit [211619] by
-
- 6 edits in tags/Safari-604.1.5.3.1/Source
Versioning.
- 8:46 PM Changeset in webkit [211618] by
-
- 1 copy in tags/Safari-604.1.5.3.1
New tag.
- 5:54 PM Changeset in webkit [211617] by
-
- 5 edits in branches/safari-603-branch/Source
Versioning.
- 5:46 PM Changeset in webkit [211616] by
-
- 16 edits2 moves2 adds2 deletes in trunk/LayoutTests
Multiple HTTP tests fail with Apache 2.4.25
https://bugs.webkit.org/show_bug.cgi?id=167678
<rdar://problem/30060142>
Reviewed by Sam Weinig.
Newer versions of Apache have a security fix where they generate an internal server
error upon seeing an invalid HTTP header field. There is an opt-out configuration
option which didn't quite work in my testing, but regardless, we should only use
"nph-" CGIs for invalid responses. This is how Apache knows that it shouldn't
attempt to parse the response.
This also uncovered a test bug.
- http/tests/cache/disk-cache/resources/cache-test.js: (generateTestURL):
Without escaping, we were getting a broken response in attachment tests:
Content-Disposition: attachment
filename: "f.txt"
Note how ";" turned into a newline.
- http/tests/misc/non-utf8-header-name-expected.txt: Removed.
- http/tests/misc/non-utf8-header-name.php: Removed.
- http/tests/misc/nph-non-utf8-header-name-expected.txt: Copied from LayoutTests/http/tests/misc/non-utf8-header-name-expected.txt.
- http/tests/misc/nph-non-utf8-header-name.pl: Copied from LayoutTests/http/tests/misc/non-utf8-header-name.php.
- http/tests/preload/download_resources_from_invalid_headers.html:
- http/tests/preload/resources/invalid_resources_from_header.php: Removed.
- http/tests/preload/resources/nph-invalid_resources_from_header.pl: Copied from LayoutTests/http/tests/preload/resources/invalid_resources_from_header.php.
- http/tests/security/contentSecurityPolicy/directive-parsing-01.html:
- http/tests/security/contentSecurityPolicy/directive-parsing-02.html:
- http/tests/security/contentSecurityPolicy/directive-parsing-03.html:
- http/tests/security/contentSecurityPolicy/directive-parsing-04.html:
- http/tests/security/contentSecurityPolicy/directive-parsing-05.html:
- http/tests/security/contentSecurityPolicy/resources/echo-script-src.pl: Removed.
- http/tests/security/contentSecurityPolicy/resources/multiple-iframe-test.js:
- http/tests/security/contentSecurityPolicy/resources/nph-echo-script-src.pl: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/resources/echo-script-src.pl.
- http/tests/security/contentSecurityPolicy/script-loads-with-img-src.html:
- http/tests/security/contentSecurityPolicy/script-src-none.html:
- http/tests/security/contentSecurityPolicy/script-src-self-blocked-01.html:
- http/tests/security/contentSecurityPolicy/script-src-self-blocked-02.html:
- http/tests/security/contentSecurityPolicy/script-src-self-blocked-03.html:
- http/tests/security/contentSecurityPolicy/script-src-self.html:
- http/tests/security/contentSecurityPolicy/script-src-star-cross-scheme.html:
Changed scripts that are used to generate invalid responses to "nph-" ones.
- 5:36 PM Changeset in webkit [211615] by
-
- 6 edits in branches/safari-604.1.5-branch/Source
Versioning.
- 5:15 PM Changeset in webkit [211614] by
-
- 1 copy in tags/Safari-604.1.5.3
Tag Safari-604.1.5.3.
- 5:01 PM Changeset in webkit [211613] by
-
- 2 edits in trunk/Source/WebCore
CrashTracer: [USER] com.apple.WebKit.WebContent at com.apple.WebCore: WebCore::URL::host const + 9
https://bugs.webkit.org/show_bug.cgi?id=167766
<rdar://problem/30132707>
Reviewed by Chris Dumez.
The mainframe's document pointer may be null when tearing down a page upon navigation to a page that is in the
page cache. If this triggers a GC sweep, we will attempt to reload touch bar media controls, which (as a part of
the media controller heuristic) checks the mainframe's document URL to see if quirks should be enabled. This
assumes that the mainframe's document exists, which is not a safe assumption if page navigation is occurring. As
such, we need a null check for the mainframe's document in needsPlaybackControlsManagerQuirk().
No test, as we were unable to reproduce this crash.
- html/HTMLMediaElement.cpp:
(WebCore::needsPlaybackControlsManagerQuirk):
- 5:00 PM Changeset in webkit [211612] by
-
- 9 edits2 adds in trunk
Suspend SVG animations in hidden pages
https://bugs.webkit.org/show_bug.cgi?id=167763
<rdar://problem/29986313>
Reviewed by Simon Fraser.
Source/WebCore:
Suspend SVG animations in hidden pages to save power, similarly to what
we already do for another types of animations.
Test: svg/animations/animations-paused-page-non-visible.html
- page/Page.cpp:
(WebCore::setSVGAnimationSuspended):
(WebCore::Page::setIsVisibleInternal):
- svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::pauseAnimations):
(WebCore::SVGDocumentExtensions::unpauseAnimations):
- svg/SVGDocumentExtensions.h:
(WebCore::SVGDocumentExtensions::areAnimationsPaused):
- testing/Internals.cpp:
(WebCore::Internals::areSVGAnimationsPaused):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
Add layout test coverage.
- svg/animations/animations-paused-page-non-visible-expected.txt: Added.
- svg/animations/animations-paused-page-non-visible.html: Added.
- 4:53 PM Changeset in webkit [211611] by
-
- 1 copy in tags/Safari-603.1.24
Tag Safari-603.1.24.
- 4:35 PM Changeset in webkit [211610] by
-
- 2 edits4 deletes in trunk/Source/WebCore
Unreviewed, rolling out r211596 and r211605.
https://bugs.webkit.org/show_bug.cgi?id=167767
This change broke certain build configurations (Requested by
ryanhaddad on #webkit).
Reverted changesets:
"[Mac] Add classes to manage audio samples"
https://bugs.webkit.org/show_bug.cgi?id=167739
http://trac.webkit.org/changeset/211596
"Unreviewed speculative build fix."
http://trac.webkit.org/changeset/211605
Patch by Commit Queue <commit-queue@webkit.org> on 2017-02-02
- 4:26 PM Changeset in webkit [211609] by
-
- 2 edits in trunk/Source/JavaScriptCore
Add a SIGILL crash analyzer to make debugging SIGILLs easier.
https://bugs.webkit.org/show_bug.cgi?id=167714
<rdar://problem/30318237>
Not reviewed.
Build fix for CLOOP build.
- tools/VMInspector.cpp:
- 4:22 PM Changeset in webkit [211608] by
-
- 7 edits in trunk/Source/WebInspectorUI
Web Inspector: can't jump from Search Tab result to see resource in other tabs (Resource, Debugger, Network)
https://bugs.webkit.org/show_bug.cgi?id=167072
Patch by Devin Rousso <Devin Rousso> on 2017-02-02
Reviewed by Timothy Hatcher.
- UserInterface/Base/Main.js:
(WebInspector.tabContentViewForRepresentedObject):
(WebInspector.showRepresentedObject):
(WebInspector.showMainFrameDOMTree):
(WebInspector.showSourceCodeForFrame):
(WebInspector.showSourceCode):
(WebInspector.showSourceCodeLocation):
(WebInspector.showOriginalUnformattedSourceCodeLocation):
(WebInspector.showOriginalOrFormattedSourceCodeLocation):
(WebInspector.showOriginalOrFormattedSourceCodeTextRange):
(WebInspector.showResourceRequest):
Rework parameters to add optionaloptionsdictionary that can be used to indicate
additional functionality.
- UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
Ignore instances of SearchTabContentView as it can display content views for all types of
searchable data. Determined by a newly added optionaloptionsparameter.
- UserInterface/Base/Utilities.js:
(Object.shallowMerge):
Merges the keys of two objects into a new one.
- UserInterface/Views/ComputedStyleDetailsPanel.js:
(WebInspector.ComputedStyleDetailsPanel.prototype._goToRegionFlowArrowWasClicked):
(WebInspector.ComputedStyleDetailsPanel.prototype._goToContentFlowArrowWasClicked):
- UserInterface/Views/SearchSidebarPanel.js:
(WebInspector.SearchSidebarPanel.prototype.performSearch.createTreeElementForMatchObject):
(WebInspector.SearchSidebarPanel.prototype.performSearch.resourceCallback):
(WebInspector.SearchSidebarPanel.prototype.performSearch.resourcesCallback):
(WebInspector.SearchSidebarPanel.prototype.performSearch.searchScripts.scriptCallback):
(WebInspector.SearchSidebarPanel.prototype.performSearch.searchScripts):
(WebInspector.SearchSidebarPanel.prototype.performSearch.domSearchResults):
(WebInspector.SearchSidebarPanel.prototype.performSearch.domCallback):
(WebInspector.SearchSidebarPanel.prototype.performSearch):
(WebInspector.SearchSidebarPanel.prototype._treeElementDoubleClick):
- UserInterface/Views/TreeElement.js:
(WebInspector.TreeElement.treeElementDoubleClicked):
Add an event dispatch whenever a TreeElement is double clicked via thedblclickevent.
- 4:15 PM Changeset in webkit [211607] by
-
- 2 edits in trunk
Build fix after r211602
https://bugs.webkit.org/show_bug.cgi?id=167758
- Source/Makefile:
Don't build libwebrtc by default. It's not used yet anyway.
- 4:09 PM Changeset in webkit [211606] by
-
- 2 edits in trunk/Tools
Remove check for SkipSafariExecutableEntitlementChecks
https://bugs.webkit.org/show_bug.cgi?id=167762
rdar://problem/22480673
Reviewed by Dan Bernstein.
- Scripts/webkitdirs.pm:
(safariPathFromSafariBundle):
(skipSafariExecutableEntitlementChecks): Deleted.
- 4:05 PM Changeset in webkit [211605] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed speculative build fix.
- platform/audio/mac/AudioSampleDataSource.cpp:
(WebCore::AudioSampleDataSource::setupConverter):
(WebCore::AudioSampleDataSource::pushSamples):
- 3:39 PM Changeset in webkit [211604] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed, rolling out r211535, r211566, and r211568.
https://bugs.webkit.org/show_bug.cgi?id=167765
Causing timeouts? (Requested by andersca_ on #webkit).
Reverted changesets:
"IPC::Connection receive ports should be guarded"
https://bugs.webkit.org/show_bug.cgi?id=167704
http://trac.webkit.org/changeset/211535
"<rdar://problem/30323148> Webkit Nightly on 10.10 broken"
http://trac.webkit.org/changeset/211566
"<rdar://problem/30323148> Webkit Nightly on 10.10 broken"
http://trac.webkit.org/changeset/211568
- 3:32 PM Changeset in webkit [211603] by
-
- 17 edits5 adds in trunk/Source
Add a SIGILL crash analyzer to make debugging SIGILLs easier.
https://bugs.webkit.org/show_bug.cgi?id=167714
<rdar://problem/30318237>
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
The current implementation is only for X86_64 and ARM64 on OS(DARWIN). The
analyzer is not enabled for all other ports.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- API/JSVirtualMachine.mm:
- assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::illegalInstruction):
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::illegalInstruction):
- assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::illegalInstruction):
- assembler/X86Assembler.h:
(JSC::X86Assembler::illegalInstruction):
- heap/Heap.cpp:
(JSC::Heap::forEachCodeBlockIgnoringJITPlansImpl):
- heap/Heap.h:
- heap/HeapInlines.h:
(JSC::Heap::forEachCodeBlockIgnoringJITPlans):
- runtime/Options.cpp:
(JSC::Options::isAvailable):
(JSC::recomputeDependentOptions):
- runtime/Options.h:
- runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::~VM):
- runtime/VM.h:
- tools/SigillCrashAnalyzer.cpp: Added.
(JSC::SignalContext::SignalContext):
(JSC::SignalContext::dump):
(JSC::handleCrash):
(JSC::initializeCrashHandler):
(JSC::ensureSigillCrashAnalyzer):
(JSC::SigillCrashAnalyzer::analyze):
(JSC::SigillCrashAnalyzer::dumpCodeBlock):
- tools/SigillCrashAnalyzer.h: Added.
- tools/VMInspector.cpp: Added.
(JSC::VMInspector::instance):
(JSC::VMInspector::add):
(JSC::VMInspector::remove):
(JSC::ensureIsSafeToLock):
- tools/VMInspector.h: Added.
(JSC::VMInspector::iterate):
Source/WTF:
- wtf/StdLibExtras.h:
- 3:31 PM Changeset in webkit [211602] by
-
- 5 edits6 adds in trunk/Source
Build libwebrtc and dependencies with Xcode
https://bugs.webkit.org/show_bug.cgi?id=167758
Reviewed by Dean Jackson.
Source/ThirdParty/libwebrtc:
- Configurations: Added.
- Configurations/Base.xcconfig: Added.
- Configurations/DebugRelease.xcconfig: Added.
- Configurations/boringssl.xcconfig: Added.
- Configurations/libwebrtc.xcconfig: Added.
- Configurations/opus.xcconfig: Added.
- libwebrtc.xcodeproj/project.pbxproj:
Source/WebCore:
- WebCore.xcodeproj/project.pbxproj:
- 3:21 PM Changeset in webkit [211601] by
-
- 3 edits in trunk/Source/WebKit2
Don't attempt wide gammut on older OSes
https://bugs.webkit.org/show_bug.cgi?id=167754
<rdar://problem/29931587>
Reviewed by Tim Horton.
We need to guard our extended color checks the same way throughout the code, or we will attempt to set up
support for wide gamut partially, which causes crashes when using sharable bitmap.
- WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::convertImageToBitmap):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation):
- 3:18 PM Changeset in webkit [211600] by
-
- 14 edits in trunk
{}.toString.call(crossOriginWindow) should return "[object Object]"
https://bugs.webkit.org/show_bug.cgi?id=167701
<rdar://problem/30330797>
Reviewed by Keith Miller.
LayoutTests/imported/w3c:
Rebaseline W3C test now that one more check is passing.
- web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:
Source/JavaScriptCore:
Have JSProxy forward toStringName calls to its target so Window
can override it.
- runtime/JSProxy.cpp:
(JSC::JSProxy::toStringName):
- runtime/JSProxy.h:
Source/WebCore:
{}.toString.call() to should "[object Object] for cross origin
Window / Location objects. This new behavior is consistent with
Firefox and Chrome.
No new tests, rebaselined existing tests.
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::toStringName):
- bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::toStringName):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
- bindings/scripts/IDLAttributes.txt:
- page/DOMWindow.idl:
- page/Location.idl:
LayoutTests:
Rebaselined existing test now that more checks are passing.
- http/tests/security/symbols-cross-origin-expected.txt:
- 3:15 PM Changeset in webkit [211599] by
-
- 2 edits in trunk/LayoutTests
Mark inspector/debugger/breakpoint-scope.html as flaky on macOS debug.
https://bugs.webkit.org/show_bug.cgi?id=164293
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 3:12 PM Changeset in webkit [211598] by
-
- 2 edits in trunk/Source/WebKit2
WK2: cannot tap on candidate view with hardware keyboard.
https://bugs.webkit.org/show_bug.cgi?id=167761
rdar://problem/28775395
Reviewed by Tim Horton.
The candidate view is a subview of the view returned by
automaticallySelectedOverlay and it should be the unscaled view
instead of the WKContentView.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView automaticallySelectedOverlay]):
- 3:03 PM Changeset in webkit [211597] by
-
- 26 edits in trunk/Source
Drag images should be anchored to the mouse location
https://bugs.webkit.org/show_bug.cgi?id=167690
<rdar://problem/30295261>
Reviewed by Enrica Casucci.
Source/WebCore:
Adds logic to compute the mouse anchor point. This is a point in the unit square indicating where the drag
origin is relative to the bounds of the drag image. There is no behavior change, since this anchor point is not
used by any client yet; this patch only computes and vends this information from WebCore.
- loader/EmptyClients.cpp:
- page/DragClient.h:
- page/DragController.cpp:
(WebCore::DragController::startDrag):
(WebCore::DragController::doImageDrag):
(WebCore::DragController::doSystemDrag):
- page/DragController.h:
- platform/DragImage.h:
Source/WebKit/mac:
Adds some plumbing for the anchor point in the WK1 client layer.
- WebCoreSupport/WebDragClient.h:
- WebCoreSupport/WebDragClient.mm:
(WebDragClient::startDrag):
Source/WebKit/win:
Adds some plumbing for the anchor point in the WK1 client layer.
- WebCoreSupport/WebDragClient.cpp:
(WebDragClient::startDrag):
- WebCoreSupport/WebDragClient.h:
Source/WebKit2:
Adds some plumbing for the mouse anchor point in the UI process. Additionally, refactors some unrelated code
for handling data interaction.
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::startDataInteractionWithImage):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/mac/PageClientImpl.h:
- UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::startDataInteractionWithImage):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::setDragImage):
- WebProcess/WebCoreSupport/WebDragClient.cpp:
(WebKit::WebDragClient::startDrag):
- WebProcess/WebCoreSupport/WebDragClient.h:
- WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::WebDragClient::startDrag):
- 3:01 PM Changeset in webkit [211596] by
-
- 2 edits4 adds in trunk/Source/WebCore
[Mac] Add classes to manage audio samples
https://bugs.webkit.org/show_bug.cgi?id=167739
Reviewed by Jer Noble.
No new tests, this code isn't used yet.
- WebCore.xcodeproj/project.pbxproj:
- platform/audio/mac/AudioSampleBufferList.cpp: Added.
(WebCore::AudioSampleBufferList::create):
(WebCore::AudioSampleBufferList::AudioSampleBufferList):
(WebCore::AudioSampleBufferList::~AudioSampleBufferList):
(WebCore::AudioSampleBufferList::setSampleCount):
(WebCore::AudioSampleBufferList::applyGain):
(WebCore::AudioSampleBufferList::mixFrom):
(WebCore::AudioSampleBufferList::copyFrom):
(WebCore::AudioSampleBufferList::copyTo):
(WebCore::AudioSampleBufferList::reset):
(WebCore::AudioSampleBufferList::zero):
(WebCore::AudioSampleBufferList::zeroABL):
(WebCore::AudioSampleBufferList::convertInput):
(WebCore::AudioSampleBufferList::audioConverterCallback):
(WebCore::AudioSampleBufferList::configureBufferListForStream):
- platform/audio/mac/AudioSampleBufferList.h: Added.
(WebCore::AudioSampleBufferList::streamDescription):
(WebCore::AudioSampleBufferList::bufferList):
(WebCore::AudioSampleBufferList::sampleCapacity):
(WebCore::AudioSampleBufferList::sampleCount):
(WebCore::AudioSampleBufferList::timestamp):
(WebCore::AudioSampleBufferList::hostTime):
(WebCore::AudioSampleBufferList::setTimes):
(WebCore::AudioSampleBufferList::audioBufferListSizeForStream):
- platform/audio/mac/AudioSampleDataSource.cpp: Added.
(WebCore::AudioSampleDataSource::create):
(WebCore::AudioSampleDataSource::AudioSampleDataSource):
(WebCore::AudioSampleDataSource::~AudioSampleDataSource):
(WebCore::AudioSampleDataSource::setPaused):
(WebCore::AudioSampleDataSource::setupConverter):
(WebCore::AudioSampleDataSource::setInputFormat):
(WebCore::AudioSampleDataSource::setOutputFormat):
(WebCore::AudioSampleDataSource::hostTime):
(WebCore::AudioSampleDataSource::pushSamplesInternal):
(WebCore::AudioSampleDataSource::pushSamples):
(WebCore::AudioSampleDataSource::pullSamplesInternal):
(WebCore::AudioSampleDataSource::pullSamples):
- platform/audio/mac/AudioSampleDataSource.h: Added.
(WebCore::AudioSampleDataSource::setVolume):
(WebCore::AudioSampleDataSource::volume):
(WebCore::AudioSampleDataSource::setMuted):
(WebCore::AudioSampleDataSource::muted):
- 2:45 PM Changeset in webkit [211595] by
-
- 2 edits in trunk/LayoutTests
Mark workesr/bomb/html as flaky on macOS.
https://bugs.webkit.org/show_bug.cgi?id=167757
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 2:07 PM Changeset in webkit [211594] by
-
- 37 edits4 copies13 adds in trunk
Support Performance API (performance.now(), UserTiming) in Workers
https://bugs.webkit.org/show_bug.cgi?id=167717
Reviewed by Ryosuke Niwa.
Source/WebCore:
Tests: performance-api/performance-mark-name.html
performance-api/performance-now-api.html
performance-api/performance-now-time-origin-in-worker.html
performance-api/user-timing-apis.html
- CMakeLists.txt:
- DerivedSources.make:
New files.
- page/DOMWindow.idl:
- page/GlobalPerformance.idl:
- workers/WorkerGlobalScope.idl:
Add partial interface for performance attribute.
- page/Performance.idl:
- page/PerformanceEntry.idl:
- page/PerformanceMark.idl:
- page/PerformanceMeasure.idl:
- page/PerformanceObserver.idl:
- page/PerformanceObserverEntryList.idl:
Expose these to Workers.
- page/Performance.cpp:
(WebCore::Performance::Performance):
(WebCore::Performance::contextDestroyed):
- page/Performance.h:
Use the EventQueue variant that works with any ScriptExectionContext.
- page/PerformanceObserver.cpp:
(WebCore::PerformanceObserver::PerformanceObserver):
Get the Performance base in a Worker context.
- page/PerformanceUserTiming.cpp:
(WebCore::UserTiming::mark):
Only reject legacy special mark names in a Window, not a Worker.
(WebCore::UserTiming::findExistingMarkStartTime):
Simple implementation returns 0 as the start time in Workers. The spec
is currently imprecise here, but it does not have the unusual
PerformanceTiming behavior in a Window which is part of User Timing 1.
- workers/Worker.cpp:
(WebCore::Worker::create):
(WebCore::Worker::notifyFinished):
- workers/Worker.h:
Record the moment of Worker creation.
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::performance):
- workers/WorkerGlobalScope.h:
Construct the Performance object with the moment of creation (timeOrigin).
- workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::create):
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):
- workers/DedicatedWorkerGlobalScope.h:
- workers/DedicatedWorkerThread.cpp:
(WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
(WebCore::DedicatedWorkerThread::createWorkerGlobalScope):
- workers/DedicatedWorkerThread.h:
- workers/WorkerGlobalScopeProxy.h:
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
- workers/WorkerMessagingProxy.h:
- workers/WorkerThread.cpp:
(WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::workerThread):
- workers/WorkerThread.h:
Pass the moment of creation (timeOrigin) through to WorkerGlobalScope creation.
LayoutTests:
- js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
Updated now that Performance classes are in Workers.
- performance-api/performance-now-api-expected.txt: Added.
- performance-api/performance-now-api.html: Added.
- performance-api/performance-now-time-origin-in-worker-expected.txt: Added.
- performance-api/performance-now-time-origin-in-worker.html: Added.
New tests to cover performance.now.
- performance-api/performance-mark-name-expected.txt: Added.
- performance-api/performance-mark-name.html: Added.
- performance-api/resources/mark-name.js: Added.
- performance-api/resources/user-timing-api.js: Added.
- performance-api/user-timing-apis-expected.txt: Added.
- performance-api/user-timing-apis.html: Added.
New tests to cover user-timing and performance.mark behavior.
- performance-api/performance-observer-api-expected.txt:
- performance-api/performance-observer-api.html:
- performance-api/performance-observer-basic-expected.txt:
- performance-api/performance-observer-basic.html:
- performance-api/performance-timeline-api-expected.txt:
- performance-api/performance-timeline-api.html:
- performance-api/resources/now-api.js: Added.
- performance-api/resources/observer-api.js: Copied from LayoutTests/performance-api/performance-observer-api.html.
- performance-api/resources/observer-basic.js: Copied from LayoutTests/performance-api/performance-observer-basic.html.
- performance-api/resources/time-origin-in-worker.js: Added.
- performance-api/resources/timeline-api.js: Copied from LayoutTests/performance-api/performance-timeline-api.html.
Update some of the existing tests to check in a Document and Worker.
- imported/w3c/web-platform-tests/user-timing/test_user_timing_mark_and_measure_exception_when_invoke_with_timing_attributes-expected.txt:
Minor progression.
- 1:36 PM Changeset in webkit [211593] by
-
- 2 edits in trunk/LayoutTests
Mark imported/w3c/web-platform-tests/shadow-dom/slotchange.html as flaky on macOS.
https://bugs.webkit.org/show_bug.cgi?id=167652
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 1:31 PM Changeset in webkit [211592] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, rolling out r211579.
https://bugs.webkit.org/show_bug.cgi?id=167753
Caused mediastream crashes. (Requested by bfulgham_ on
#webkit).
Reverted changeset:
"Correct memory leak in MediaConstraints"
https://bugs.webkit.org/show_bug.cgi?id=167744
http://trac.webkit.org/changeset/211579
- 1:29 PM Changeset in webkit [211591] by
-
- 93 edits in trunk/Source
Rename Node::inDocument() to isConnected()
https://bugs.webkit.org/show_bug.cgi?id=167743
Reviewed by Sam Weinig.
Rename Node::inDocument() to isConnected() to match the DOM specification more closely:
Source/WebKit/mac:
- DOM/DOMNode.mm:
(-[DOMNode isConnected]):
- WebView/WebFrame.mm:
(-[WebFrame selectNSRange:onElement:]):
- 1:25 PM Changeset in webkit [211590] by
-
- 26 edits4 copies21 adds in trunk
[Modern Media Controls] Provide a compact mode for when the controls are small
https://bugs.webkit.org/show_bug.cgi?id=167746
<rdar://problem/29565842>
Reviewed by Dean Jackson.
Source/WebCore:
When the macOS inline media controls become too narrow to display both the volume and fullscreen
buttons in their right container (width < 242), we switch to a compact mode where the controls bar
is shorter and the buttons smaller.
To facilitate this, we provide a new subclass of MacOSInlineMediaControls called MacOSCompactInlineMediaControls
which changes some of the layout properties of the buttons to have shorter margins around buttons.
We also added a new "Compact" LayoutTrait and improved IconService to provide specific icons
for this mode for the buttons that can exist in compact mode.
To correctly implement the design, we needed to add a way to provide different margins around the
left and right edges of the container, so the "padding" property is now split between "leftMargin"
and "rightMargin", and to make property naming cleaner, the "margin" property which specifies the
space between each button in a container is now called "buttonMargin". We also set the default
values for those properties to be 24 (instead of 0) which are the most widely used values, requiring
less customization.
Tests: media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-buttons-styles.html
media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-constructor.html
media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-controls-bar-styles.html
media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-layout.html
media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-volume-styles.html
media/modern-media-controls/media-controller/media-controller-toggle-compact-mode.html
- Modules/modern-media-controls/controls/buttons-container.js:
(ButtonsContainer.prototype.layout): Refactor the "margin" and "padding" properties into
"leftMargin", "rightMargin" and "buttonMargin".
- Modules/modern-media-controls/controls/icon-button.js:
(IconButton.prototype._updateImage): Fix a small bug that would prevent the image source
change to occur after changing the "iconName" property should the previous and new icons
share the same metrics, which is the case for the "play" and "pause" icons in compact mode.
- Modules/modern-media-controls/controls/icon-service.js: Add support for compact variants.
(const.iconService.new.IconService.prototype._fileNameAndPlatformForIconNameAndLayoutTraits):
(const.iconService.new.IconService):
- Modules/modern-media-controls/controls/ios-inline-media-controls.js: Adopt new margin defaults.
- Modules/modern-media-controls/controls/layout-item.js: Add the new "Compact" LayoutTrait.
- Modules/modern-media-controls/controls/macos-compact-inline-media-controls.css: Added.
(.media-controls.mac.inline.compact > .controls-bar):
(.media-controls.mac.inline.compact button.play-pause):
(.media-controls.mac.inline.compact button.skip-back):
(.media-controls.mac.inline.compact .scrubber.slider):
(.media-controls.mac.inline.compact button.mute):
(.media-controls.mac.inline.compact button.fullscreen):
(.media-controls.mac.inline.compact .time-label,):
(.media-controls.mac.inline.compact .volume-slider-container):
(.media-controls.mac.inline.compact .volume.slider):
(.media-controls.mac.inline.compact .scrubber.slider > input::-webkit-slider-thumb):
- Modules/modern-media-controls/controls/macos-compact-inline-media-controls.js: Added.
(MacOSCompactInlineMediaControls):
- Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js: Adopt new margin defaults.
(MacOSFullscreenMediaControls.prototype.layout):
- Modules/modern-media-controls/controls/macos-inline-media-controls.js: Adopt new margin defaults
and make the _leftContainer and _rightContainer properties public such that the MacOSCompactInlineMediaControls
subclass may customize them without accessing a private property.
(MacOSInlineMediaControls.prototype.layout):
(MacOSInlineMediaControls.prototype.showTracksPanel):
- Modules/modern-media-controls/images/macOS/enter-fullscreen-compact@1x.png: Added.
- Modules/modern-media-controls/images/macOS/enter-fullscreen-compact@2x.png: Added.
- Modules/modern-media-controls/images/macOS/interval-skip-back-compact@1x.png: Added.
- Modules/modern-media-controls/images/macOS/interval-skip-back-compact@2x.png: Added.
- Modules/modern-media-controls/images/macOS/pause-compact@1x.png: Added.
- Modules/modern-media-controls/images/macOS/pause-compact@2x.png: Added.
- Modules/modern-media-controls/images/macOS/play-compact@1x.png: Added.
- Modules/modern-media-controls/images/macOS/play-compact@2x.png: Added.
- Modules/modern-media-controls/images/macOS/volume-compact@1x.png: Added.
- Modules/modern-media-controls/images/macOS/volume-compact@2x.png: Added.
- Modules/modern-media-controls/js-files: Add the new files so they are concatenated by the build script.
- Modules/modern-media-controls/media/media-controller.js: Toggle compact mode if controls
are below the 242px width threshold.
(MediaController.prototype.get layoutTraits):
(MediaController.prototype.handleEvent):
(MediaController.prototype._updateControlsIfNeeded):
(MediaController.prototype._shouldFadeBetweenControls):
(MediaController.prototype._updateControlsSize):
(MediaController.prototype._controlsWidth):
(MediaController.prototype._controlsClass):
(MediaController):
- WebCore.xcodeproj/project.pbxproj: Add new files and perform some cleanup so that the
project accurately lists all the existing project files and remove some older ones.
LayoutTests:
Add some new tests for the compact mode and update some tests after the ButtonsContainer
"padding" and "margin" properties refactoring.
- media/modern-media-controls/buttons-container/buttons-container-buttons-property.html:
- media/modern-media-controls/buttons-container/buttons-container-constructor-expected.txt:
- media/modern-media-controls/buttons-container/buttons-container-constructor.html:
- media/modern-media-controls/buttons-container/buttons-container-layout.html:
- media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-constructor-expected.txt:
- media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-constructor.html:
- media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-buttons-styles-expected.txt: Added.
- media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-buttons-styles.html: Added.
- media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-constructor-expected.txt: Added.
- media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-constructor.html: Added.
- media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-controls-bar-styles-expected.txt: Added.
- media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-controls-bar-styles.html: Added.
- media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-layout-expected.txt: Added.
- media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-layout.html: Added.
- media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-volume-styles-expected.txt: Added.
- media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-volume-styles.html: Added.
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-right-container-margin-expected.txt:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-right-container-margin.html:
- media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-constructor-expected.txt:
- media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-constructor.html:
- media/modern-media-controls/media-controller/media-controller-toggle-compact-mode-expected.txt: Added.
- media/modern-media-controls/media-controller/media-controller-toggle-compact-mode.html: Added.
- media/modern-media-controls/resources/media-controls-loader.js:
- platform/ios-simulator/TestExpectations:
- 1:24 PM Changeset in webkit [211589] by
-
- 19 edits2 deletes in trunk/Source
Unreviewed, rolling out r211571 and r211582.
https://bugs.webkit.org/show_bug.cgi?id=167751
This change caused API test WebKit1.MemoryPressureHandler to
fail with an assertion. (Requested by ryanhaddad on #webkit).
Reverted changesets:
"[Mac] In-process memory pressure monitor for WebContent
processes."
https://bugs.webkit.org/show_bug.cgi?id=167491
http://trac.webkit.org/changeset/211571
"Unreviewed attempt to fix the Windows build after r211571."
http://trac.webkit.org/changeset/211582
- 1:05 PM Changeset in webkit [211588] by
-
- 2 edits in trunk/Source/WebKit2
The Make Frameworks Symbolic Link build phase can end up creating a symlink inside the Frameworks subdirectory
https://bugs.webkit.org/show_bug.cgi?id=167745
Reviewed by Tim Horton.
- WebKit2.xcodeproj/project.pbxproj: Pass the -h option to ln(1) so that it will replace, rather than follow, an existing symlink.
- 1:00 PM Changeset in webkit [211587] by
-
- 6 edits in trunk/Source
Versioning.
- 12:56 PM Changeset in webkit [211586] by
-
- 2 edits in trunk/LayoutTests
Mark imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-details-element/toggleEvent.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=164041
Unreviewed test gardening.
- 12:45 PM Changeset in webkit [211585] by
-
- 1 delete in tags/Safari-604.1.6
Deleting Tag.
- 12:42 PM Changeset in webkit [211584] by
-
- 2 edits in trunk/Source/WebKit/win
[Win][HiDPI] Scale factor is applied twice in accelerated compositing mode.
https://bugs.webkit.org/show_bug.cgi?id=167732
Reviewed by Brent Fulgham.
Backing layer should not be scaled when CACFLayerSetContentsScale is used for scaling.
- WebView.cpp:
(WebView::setAcceleratedCompositing):
- 12:24 PM Changeset in webkit [211583] by
-
- 3 edits in trunk/LayoutTests
Unreviewed ios-simulator test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- platform/ios-simulator/TestExpectations:
- 12:22 PM Changeset in webkit [211582] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed attempt to fix the Windows build after r211571.
- platform/MemoryPressureHandler.cpp:
(WebCore::thresholdForPolicy):
(WebCore::policyForFootprint):
- 12:21 PM Changeset in webkit [211581] by
-
- 3 edits in trunk/LayoutTests
Clean up css3/filters/backdrop/dynamic-with-clip-path.html
This test used a clip-path that was entirely outside the element, making it confusing.
Move the clipping circle to the center.
- css3/filters/backdrop/dynamic-with-clip-path-expected.html:
- css3/filters/backdrop/dynamic-with-clip-path.html:
- 11:34 AM Changeset in webkit [211580] by
-
- 2 edits in trunk
Make the Makefile great again after r211570, r211572
- Makefile: Restore tabs and ending newline.
- 11:33 AM Changeset in webkit [211579] by
-
- 2 edits in trunk/Source/WebCore
Correct memory leak in MediaConstraints
https://bugs.webkit.org/show_bug.cgi?id=167744
<rdar://problem/30331444>
Reviewed by Anders Carlsson.
ConstraintHolder returns a reference to an object created by operator new. When the
returned value is assigned or stored in Vector or other containers we leak memory.
Instead, this value should just be returned as a regular object so that the return
value optimization can make sure memory is properly (and efficiently) used.
- platform/mediastream/MediaConstraints.h:
(WebCore::FlattenedConstraint::ConstraintHolder::create): Return by value.
- 11:20 AM Changeset in webkit [211578] by
-
- 5 edits in branches/safari-604.1.5-branch
Merge r211502. rdar://problem/30319184
- 11:20 AM Changeset in webkit [211577] by
-
- 3 edits2 adds in branches/safari-604.1.5-branch
Merge r211495. rdar://problem/30106362
- 11:20 AM Changeset in webkit [211576] by
-
- 4 edits2 adds in branches/safari-604.1.5-branch
Merge r211339. rdar://problem/29601646
- 11:20 AM Changeset in webkit [211575] by
-
- 12 edits in branches/safari-604.1.5-branch/Source
Merge r211438.
- 11:12 AM Changeset in webkit [211574] by
-
- 2 edits in trunk/LayoutTests
Marking http/tests/inspector/worker/blob-script-with-cross-domain-imported-scripts.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=167607
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 10:55 AM Changeset in webkit [211573] by
-
- 29 edits1 copy in trunk/LayoutTests
Clean up accessibility & animations tests to stop calling testRunner.waitUntilDone() twice
<https://webkit.org/b/167598>
Reviewed by Alexey Proskuryakov.
- accessibility/frame-disconnect-textmarker-cache-crash.html:
- accessibility/loading-iframe-sends-notification.html:
- accessibility/mac/combobox-activedescendant-notifications.html:
- accessibility/mac/ordered-textmarker-crash.html:
- accessibility/mac/stale-textmarker-crash.html:
- accessibility/notification-listeners.html:
- accessibility/scroll-to-global-point-iframe-nested.html:
- accessibility/scroll-to-global-point-iframe.html:
- accessibility/scroll-to-make-visible-iframe.html:
- accessibility/svg-element-press.html:
- Remove call to testRunner.waitUntilDone() since window.jsTestIsAsync is set to true, and thus waitUntilDone() is called from either js-test.js or js-test-post.js.
- animations/animation-delay-changed.html:
- animations/change-keyframes-name.html:
- animations/font-variations/font-variation-settings-order.html:
- animations/font-variations/font-variation-settings-unlike.html:
- animations/font-variations/font-variation-settings.html:
- animations/longhand-timing-function.html:
- animations/transition-and-animation-3.html:
- animations/unanimated-style.html:
- Remove call to testRunner.waitUntilDone() since that's moved into animation-test-helpers.js.
- animations/resources/animation-test-helpers.js:
(runAnimationTest): Call testRunner.waitUntilDone() when this
script resource is included instead of when runAnimationTest()
is called since runAnimationTest() expects it to be set anyway.
- animations/animation-direction-reverse-fill-mode-hardware.html:
- animations/animation-direction-reverse-fill-mode.html:
- animations/animation-hit-test-transform.html:
- animations/animation-hit-test.html:
- animations/animation-internals-api-multiple-keyframes.html:
- animations/animation-internals-api.html:
- animations/change-transform-style-during-animation.html:
- animations/keyframes-iteration-count-non-integer.html:
- Remove call to testRunner.waitUntilDone() since that now happens when loading animation-test-helpers.js. These tests don't currently call runAnimationTest(), but they manage their own state by calling testRunner.notifyDone() themselves.
- animations/crash-on-removing-animation.html:
- animations/resources/crash-on-removing-animation-window.html: Copied from LayoutTests/animations/crash-on-removing-animation.html.
- Split this test into a main resource and a window resource. Previously testRunner.waitUntilDone() was being called twice when js-test-post.js was loaded in the main window and then loaded a second time when the window was opened. The new resource file doesn't load either js-test-pre.js or js-test-post.js, avoiding the duplicate call.
- 10:42 AM Changeset in webkit [211572] by
-
- 1 edit1 add in trunk
Unreviewed build fix after r211570
- Makefile: Placed back.
- 10:35 AM Changeset in webkit [211571] by
-
- 19 edits2 copies in trunk/Source
Source/JavaScriptCore:
[Mac] In-process memory pressure monitor for WebContent processes.
<https://webkit.org/b/167491>
<rdar://problem/30116072>
Reviewed by Antti Koivisto.
Remove the sloppy "max live heap size" mechanism from JSC in favor of the new
WebCore-side memory footprint monitor.
- heap/Heap.cpp:
(JSC::Heap::updateAllocationLimits):
(JSC::Heap::didExceedMaxLiveSize): Deleted.
- heap/Heap.h:
(JSC::Heap::setMaxLiveSize): Deleted.
Source/WebCore:
[Mac] In-process memory pressure monitor for WebContent processes AKA websam
<https://webkit.org/b/167491>
<rdar://problem/30116072>
Reviewed by Antti Koivisto.
Add a new timer-based memory pressure monitor that checks the process memory
footprint every 30 seconds and reacts to changes by setting a MemoryUsagePolicy.
There are four MemoryUsagePolicy values:
- Unrestricted (below 1GB)
- Conservative (above 1GB)
- Strict (above 2GB)
- Panic (above 4GB, or 3GB if 32-bit)
For Strict and above, the old-style "isUnderMemoryPressure()" API will return true.
Transitioning to a higher policy will cause memory pressure handlers to run:
At Strict, we run the "non-critical" memory pressure handler, then carry on.
At Panic, we run the "critical" memory pressure handler. If that fails to recover
enough memory to bring us back below 4GB, we may kill the process:
A process is eligible to get killed for using too much memory if:
- It's not visible on screen (i.e it's a background tab.)
- It's not playing audio.
- It has not performed a main frame navigation in the last hour.
Before killing the process, an exit-time callback will run. This patch installs such
a callback that prints out some time-of-death statistics about C++ and JavaScript memory
usage to hopefully help understand what was soaking up all the memory.
- bindings/js/CommonVM.cpp:
(WebCore::commonVMSlow):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::setState):
- page/MainFrame.cpp:
(WebCore::MainFrame::didCompleteLoad):
- page/MainFrame.h:
- page/MemoryRelease.cpp:
(WebCore::pageCount):
(WebCore::logMemoryStatisticsAtTimeOfDeath):
(WebCore::didExceedMemoryLimitAndFailedToRecover):
(WebCore::processIsEligibleForMemoryKill):
- page/MemoryRelease.h:
- page/ResourceUsageThread.h:
- page/cocoa/ResourceUsageThreadCocoa.mm:
(WebCore::vmPageSize):
- platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::MemoryPressureHandler):
(WebCore::MemoryPressureHandler::setShouldUsePeriodicMemoryMonitor):
(WebCore::toString):
(WebCore::thresholdForPolicy):
(WebCore::policyForFootprint):
(WebCore::MemoryPressureHandler::measurementTimerFired):
- platform/MemoryPressureHandler.h:
(WebCore::MemoryPressureHandler::setMemoryKillCallback):
(WebCore::MemoryPressureHandler::setProcessIsEligibleForMemoryKillCallback):
(WebCore::MemoryPressureHandler::isUnderMemoryPressure):
Source/WebKit2:
[Mac] In-process memory pressure monitor for WebContent processes.
<https://webkit.org/b/167491>
<rdar://problem/30116072>
Reviewed by Antti Koivisto.
Enable the in-process memory monitor for WebContent processes on macOS 10.12+
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
Source/WTF:
[Mac] In-process memory pressure monitor for WebContent processes.
<https://webkit.org/b/167491>
<rdar://problem/30116072>
Reviewed by Antti Koivisto.
Add a WTF helper function for getting the current process's memory footprint.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/MemoryFootprint.cpp:
(WTF::memoryFootprint):
- wtf/MemoryFootprint.h:
- 10:33 AM Changeset in webkit [211570] by
-
- 2 edits1 delete in trunk
Undefined subroutine in svn-create-patch
https://bugs.webkit.org/show_bug.cgi?id=167742
Unreviewed build-fix after r211543.
- Scripts/VCSUtils.pm: fixSVNPatchForAdditionWithHistory was not exported.
- 10:31 AM Changeset in webkit [211569] by
-
- 13 edits in trunk/Source
[Crash] com.apple.WebKit.WebContent at WebKit: WebKit::WebPage::fromCorePage()
https://bugs.webkit.org/show_bug.cgi?id=167738
<rdar://problem/30229990>
Reviewed by Andreas Kling.
Source/WebCore:
Upon destruction of a Page, we destroy the BackForwardClient, which is supposed
to keep track of HistoryItems associated to this particular page and remove them
from the PageCache. Given the crash trace, the issue seems to be that some
HistoryItems associated with the Page sometimes linger in the PageCache *after*
the Page has been destroyed, which leads to crashes later on when pruning the
PageCache.
In order to make the process more robust, this patch refactors the code so that
the Page is now in charge of removing all its associated HistoryItems from the
PageCache instead of relying on the BackForwardClient. Also, instead of having
the Page keep track of which HistoryItems are associated with it (which is
error prone), we now scan all PageCache entries instead to find which ones are
associated with the Page. While this is in theory slower, this is much safer
and in practice not an issue because the PageCache usually has 3-5 entries.
No new tests, could not reproduce.
- history/CachedPage.cpp:
(WebCore::CachedPage::CachedPage):
- history/CachedPage.h:
(WebCore::CachedPage::page):
- history/PageCache.cpp:
(WebCore::PageCache::removeAllItemsForPage):
- history/PageCache.h:
- page/Page.cpp:
(WebCore::Page::~Page):
Source/WebKit/mac:
The BackForwardClient no longer needs to worry about removing HistoryItems
from the PageCache now that WebCore takes care of it.
- History/BackForwardList.mm:
(BackForwardList::close):
Source/WebKit/win:
The BackForwardClient no longer needs to worry about removing HistoryItems
from the PageCache now that WebCore takes care of it.
- BackForwardList.cpp:
(BackForwardList::close):
Source/WebKit2:
The BackForwardClient no longer needs to worry about removing HistoryItems
from the PageCache now that WebCore takes care of it.
- WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::WebBackForwardListProxy::addItemFromUIProcess):
(WebKit::WebBackForwardListProxy::addItem):
(WebKit::WebBackForwardListProxy::close):
- WebProcess/WebPage/WebBackForwardListProxy.h:
- 9:52 AM Changeset in webkit [211568] by
-
- 2 edits in trunk/Source/WebKit2
<rdar://problem/30323148> Webkit Nightly on 10.10 broken
Follow-up fix.
- Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::open):
- 9:46 AM Changeset in webkit [211567] by
-
- 2 edits in trunk/Tools
Unreviewed. Fix jhbuild dependencies build.
- gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch:
Patch updated.
- 9:39 AM Changeset in webkit [211566] by
-
- 2 edits in trunk/Source/WebKit2
<rdar://problem/30323148> Webkit Nightly on 10.10 broken
Try to fix the 10.10 build.
- Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::open):
- 9:37 AM Changeset in webkit [211565] by
-
- 2 edits in trunk/Source/WebKit2
Handle m_processLauncher being null in ChildProcessProxy::processIdentifier()
https://bugs.webkit.org/show_bug.cgi?id=167713
rdar://problem/28896113
Reviewed by Dan Bernstein.
This can happen if the process has been explicitly terminated.
- UIProcess/ChildProcessProxy.h:
(WebKit::ChildProcessProxy::processIdentifier):
- 9:06 AM Changeset in webkit [211564] by
-
- 3 edits2 adds in trunk
Column progression wrong after enabling pagination on RTL document
https://bugs.webkit.org/show_bug.cgi?id=167733
<rdar://problem/29012252>
Reviewed by Zalan Bujtas.
Source/WebCore:
Column progression depends on document direction but was not updated when direction changed.
Test: fast/multicol/pagination/pagination-dynamic-rtl.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
Update column styles if document direction changes.
LayoutTests:
- fast/multicol/pagination/pagination-dynamic-rtl-expected.html: Added.
- fast/multicol/pagination/pagination-dynamic-rtl.html: Added.
- 9:04 AM Changeset in webkit [211563] by
-
- 2 edits in trunk/LayoutTests
Marking http/tests/contentextensions/block-everything-unless-domain.html as flaky on macOS.
https://bugs.webkit.org/show_bug.cgi?id=167653
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 8:54 AM Changeset in webkit [211562] by
-
- 13 edits2 adds in trunk
[EME][GStreamer] Fixed decryptor selection
https://bugs.webkit.org/show_bug.cgi?id=167588
Reviewed by Žan Doberšek.
Source/WebCore:
GStreamer selected a decryptor automatically but we need to be
able to tell it which decryptor we want because one file can be
encrypted with more than one system and the one we want to use can
depend on what the user tells us.
Now when the demuxer is about to select the demuxer, it runs a
GstContext query with the events, which are forwarded through the
EME api to the application, which will answer the the
generateKeyRequest and then we can instruct the demuxer to select
the one we tell it, not the one that is selected automatically. If
the demuxer has already a preferred decryptor, the codepath will
be similar to the older one.
Something that is also fixed is the report of the keyneeded event,
which will contain all pssh boxes as requested by the spec.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Intercept
the event and handle it.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
Initialize the CDM session.
(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
Unlock the protection condition just in case and set CDM to null.
(WebCore::extractEventsAndSystemsFromMessage): Access the events
and accepted key systems coming at the message from the demuxer.
(WebCore::MediaPlayerPrivateGStreamerBase::handleSyncMessage):
Handle the protection event not as an element event but as a
context request. It also concatenates all the initdatas in case
there is more than one. The event is sent in the main thread and
the current one blocks until a timeout is hit or the
generateKeyRequest is called.
(WebCore::MediaPlayerPrivateGStreamerBase::handleProtectionEvent):
Check if the event was already handled and if not, run the need
key event.
(WebCore::MediaPlayerPrivateGStreamerBase::receivedGenerateKeyRequest):
Notify the that the query arrived so that we can unlock the
demuxer thread.
(WebCore::keySystemIdToUuid): Translates ids to uuids, meaning
the ones coming from JS to the ones coming from the media engine.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
Attributes and methods.
- platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:
(webkit_media_clear_key_decrypt_class_init):
(webKitMediaClearKeyDecryptorRequestDecryptionKey): Deleted.
- platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.h:
Added the ui and uuid.
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
(webkitMediaCommonEncryptionDecryptSinkEventHandler): Do not rely
on the subclass, just forward the event to the pipeline inside a message.
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h:
Remove unused function signature.
- platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::appendPipelineNeedContextMessageCallback): Renamed from
appendPipelineElementMessageCallback.
(WebCore::AppendPipeline::AppendPipeline): Connect to the
need-context message instead of the element one.
(WebCore::AppendPipeline::dispatchPendingDecryptionKey):
Dispatches the drm-cypher message if there is one pending.
(WebCore::AppendPipeline::dispatchDecryptionKey): Dispatches the
drm-cypher.
(WebCore::AppendPipeline::handleNeedContextSyncMessage): Handles
the need-context event instead of the element one.
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread):
Dispatches the key to the pipeline if there's any pending.
(WebCore::appendPipelineElementMessageCallback): Deleted.
(WebCore::AppendPipeline::handleElementMessage): Deleted.
- platform/graphics/gstreamer/mse/AppendPipeline.h: New methods
and attributes.
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::dispatchDecryptionKey):
Use the dispatchDecryptionKey method of the AppendPipeline.
Tools:
This patches are pending at https://bugzilla.gnome.org/show_bug.cgi?id=770107
- gtk/jhbuild.modules: Added patches to gstreamer and
gst-plugins-good packages.
- gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch: Added.
- gtk/patches/gstreamer-0001-protection-added-function-to-filter-system-ids.patch: Added.
- 8:30 AM Changeset in webkit [211561] by
-
- 2 edits in trunk/LayoutTests
LayoutTest media/modern-media-controls/buttons-container/buttons-container-buttons-property.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=167371
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 8:08 AM Changeset in webkit [211560] by
-
- 2 edits in trunk/LayoutTests
Skip fast/visual-viewport/ios/bottom-bar-with-keyboard.html on ios-simulator.
Unreviewed test gardening.
- platform/ios-simulator/TestExpectations:
- 8:04 AM Changeset in webkit [211559] by
-
- 1 edit1 move2 adds in trunk/LayoutTests
Unreviewed, rolling out r211529.
This change caused the test to fail on macOS.
Reverted changeset:
"Clean up css3/filters/backdrop/backdrop-filter-with-clip-
path.html expected results."
http://trac.webkit.org/changeset/211529
- 6:59 AM Changeset in webkit [211558] by
-
- 2 edits in trunk/LayoutTests
LayoutTest media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=167372
Unreviewed test gardening.
Patch by Antoine Quint <Antoine Quint> on 2017-02-02
- platform/mac-wk1/TestExpectations:
- 6:26 AM Changeset in webkit [211557] by
-
- 2 edits in trunk/LayoutTests
LayoutTest media/modern-media-controls/media-controller/media-controller-resize.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=164571
Unreviewed test gardening.
Patch by Antoine Quint <Antoine Quint> on 2017-02-02
- platform/mac-wk1/TestExpectations:
- 6:22 AM Changeset in webkit [211556] by
-
- 2 edits in trunk/LayoutTests
LayoutTest media/modern-media-controls/rewind-button/rewind-button.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=167352
Unreviewed test gardening.
Patch by Antoine Quint <Antoine Quint> on 2017-02-02
- platform/mac-wk1/TestExpectations:
- 2:38 AM Changeset in webkit [211555] by
-
- 7 edits in trunk/Source/WebCore
Removed unused EventHandler members
https://bugs.webkit.org/show_bug.cgi?id=167723
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-02
Reviewed by Yusuke Suzuki.
- page/EventHandler.cpp:
(WebCore::EventHandler::clear):
(WebCore::EventHandler::handleWheelEvent):
- page/EventHandler.h:
Remove unused members.
- editing/FrameSelection.cpp:
- html/HTMLTextAreaElement.cpp:
- rendering/RenderObject.cpp:
- rendering/RenderSlider.cpp:
Remove unnecessary includes.
- 2:31 AM Changeset in webkit [211554] by
-
- 16 edits2 adds in trunk
Web Inspector: Upgrade Esprima to the latest one to support dynamic import
https://bugs.webkit.org/show_bug.cgi?id=167698
Reviewed by Joseph Pecoraro.
Source/WebInspectorUI:
- UserInterface/External/Esprima/esprima.js:
Update to Esprima@5307e30 (4.0.0-dev).
- UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration.gatherIdentifiers):
(WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration):
(WebInspector.ScriptSyntaxTree.prototype._recurse):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
(WebInspector.ScriptSyntaxTree):
- UserInterface/Workers/Formatter/ESTreeWalker.js:
(ESTreeWalker.prototype._walkChildren):
(ESTreeWalker):
Add new nodes, SpreadProperty, RestProperty, and Import.
SpreadProperty and RestProperty are the part of ES2018 rest and spread properties.
https://github.com/sebmarkbage/ecmascript-rest-spread
Import is dynamic import node. The syntax is similar to Super.
https://github.com/tc39/proposal-dynamic-import
- UserInterface/Workers/Formatter/EsprimaFormatter.js:
(EsprimaFormatter.prototype._handleTokenAtNode):
LayoutTests:
- inspector/formatting/formatting-javascript-expected.txt:
- inspector/formatting/formatting-javascript.html:
- inspector/formatting/resources/javascript-tests/import-expected.js: Added.
(async.load):
- inspector/formatting/resources/javascript-tests/import.js: Added.
(async.load):
- inspector/formatting/resources/javascript-tests/object-array-literal-expected.js:
- inspector/formatting/resources/javascript-tests/object-array-literal.js:
- inspector/formatting/resources/javascript-tests/variable-declaration-expected.js:
- inspector/formatting/resources/javascript-tests/variable-declaration.js:
- inspector/formatting/resources/utilities.js:
(TestPage.registerInitializer.):
(TestPage.registerInitializer):
Fix a bug which occurs when output is not expected one.
- inspector/model/parse-script-syntax-tree-expected.txt:
- inspector/model/parse-script-syntax-tree.html:
- 2:30 AM Changeset in webkit [211553] by
-
- 3 edits in trunk/Source/WebCore
Removed unused m_navigationStart from NavigatorGamepad
https://bugs.webkit.org/show_bug.cgi?id=167722
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-02
Reviewed by Yusuke Suzuki.
- Modules/gamepad/NavigatorGamepad.cpp:
(WebCore::NavigatorGamepad::NavigatorGamepad):
(WebCore::NavigatorGamepad::from):
- Modules/gamepad/NavigatorGamepad.h:
(WebCore::NavigatorGamepad::navigationStart): Deleted.
- 1:49 AM Changeset in webkit [211552] by
-
- 3 edits in trunk/Source/JavaScriptCore
Removed unused m_errorHandlingModeReentry from Interpreter
https://bugs.webkit.org/show_bug.cgi?id=167726
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-02
Reviewed by Yusuke Suzuki.
- interpreter/Interpreter.cpp:
(JSC::Interpreter::Interpreter):
- interpreter/Interpreter.h:
- 12:33 AM Changeset in webkit [211551] by
-
- 14 edits3 copies1 add1 delete in trunk/Source
In iOS, we should take background assertion when accessing localstorage databases.
https://bugs.webkit.org/show_bug.cgi?id=165478
Source/WebCore:
Move WebSQLiteDatabaseTrackerClient from WebKitLegacy to WebCore so that it can be accessible from
WebKit1 and WebKit2. Previously, to avoid dependencies on UIKit, WebKitLegacy introduced several
global methods for UIKit to setup the start/end background task blocks on runtime (WebKitSetStartBackgroundTaskBlock,
WebKitSetInvalidWebBackgroundTaskIdentifier and WebKitSetEndBackgroundTaskBlock). Since we have to
move the background task handling to WebCore, to avoid adding WebCore dependencies on UIKit, this
patch introdues a new WebCore class WebBackgroundTaskController which holds the start/end background
task blocks. The existing WebKitSetStartBackgroundTaskBlock and WebKitSetEndBackgroundTaskBlock methods
in WebKit1 will use WebBackgroundTaskController to store the blocks set by UIKit.
Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2017-02-02
Reviewed by Brady Eidson.
No new test since this is code refactoring.
- WebCore.xcodeproj/project.pbxproj: Add a new class WebBackgroundTaskController to the project. Also move
WebSQLiteDatabaseTrackerClient from WebKitLegacy to WebCore.
- platform/ios/WebBackgroundTaskController.h: Use properties to hold the blocks for starting or ending background tasks.
- platform/ios/WebBackgroundTaskController.mm:
(+[WebBackgroundTaskController sharedController]):
(-[WebBackgroundTaskController dealloc]):
(-[WebBackgroundTaskController startBackgroundTaskWithExpirationHandler:]): Start a background task with a expiration handler;
to start the background task, we will use backgroundTaskStartBlock set up by UIKit.
(-[WebBackgroundTaskController endBackgroundTaskWithIdentifier:]): Call backgroundTaskEndBlack to end a background task.
- platform/ios/WebSQLiteDatabaseTrackerClient.h: Copied from Source/WebKit/ios/Storage/WebSQLiteDatabaseTrackerClient.h.
- platform/ios/WebSQLiteDatabaseTrackerClient.mm: Copied from Source/WebKit/ios/Storage/WebSQLiteDatabaseTrackerClient.mm.
(WebCore::WebSQLiteDatabaseTrackerClient::sharedWebSQLiteDatabaseTrackerClient): Make WebSQLiteDatabaseTrackerClient a singleton.
(WebCore::WebSQLiteDatabaseTrackerClient::WebSQLiteDatabaseTrackerClient):
(WebCore::WebSQLiteDatabaseTrackerClient::~WebSQLiteDatabaseTrackerClient):
(WebCore::WebSQLiteDatabaseTrackerClient::willBeginFirstTransaction): Use a utility class WebDatabaseTransactionBackgroundTaskController
to schedule database transaction background task.
(WebCore::WebSQLiteDatabaseTrackerClient::didFinishLastTransaction): Use WebDatabaseTransactionBackgroundTaskController to stop
databas transaction background task.
(transactionBackgroundTaskIdentifierLock: Moved from Source/WebKit/mac/Storage/WebDatabaseManager.mm.
(setTransactionBackgroundTaskIdentifier): Ditto.
(getTransactionBackgroundTaskIdentifier): Ditto.
(+[WebDatabaseTransactionBackgroundTaskController startBackgroundTask]): Ditto.
(+[WebDatabaseTransactionBackgroundTaskController endBackgroundTask]): Ditto.
Source/WebKit:
Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2017-02-02
Reviewed by Brady Eidson.
- WebKit.xcodeproj/project.pbxproj: Moved WebSQLiteDatabaseTrackerClient to WebCore.
Source/WebKit/ios:
Move application background task handling code from WebKit to WebCore.
Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2017-02-02
Reviewed by Brady Eidson.
- Misc/WebUIKitSupport.h: Remove several methods that only used internally for background
task handling. They are not needed in WebKit any more since background task handling
is moved to WebCore and wrapped in WebBackgroundTaskController class.
- Misc/WebUIKitSupport.mm:
(WebKitSetInvalidWebBackgroundTaskIdentifier): Instead of storing the value in a static global
variable, save it in WebBackgroundTaskController.
(WebKitSetStartBackgroundTaskBlock): Ditto.
(WebKitSetEndBackgroundTaskBlock): Ditto.
Source/WebKit/mac:
Move database transaction background task handling code from WebDatabaseManager to
WebCore's WebSQLiteDatabaseTrackerClient.
Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2017-02-02
Reviewed by Brady Eidson.
- Storage/WebDatabaseManager.mm:
- Storage/WebDatabaseManagerInternal.h: Remove a category for background task handling.
- WebCoreSupport/WebApplicationCache.mm:
(+[WebApplicationCache initializeWithBundleIdentifier:]): Use WebCore::WebSQLiteDatabaseTrackerClient.
- WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]): Ditto.
Source/WebKit2:
Just like in WebKit1, when initializing a WKWebView, initialize the database transaction
tracker client. Also, we should set up the start and end background task blocks here. In
WebKit1, this is done inside UIKit.
Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2017-02-02
Reviewed by Brady Eidson.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setUpSQLiteDatabaseTrackerClient]): Set up the start/end background task blocks
and database transaction tracker client.