Timeline
Sep 24, 2016:
- 11:37 PM Changeset in webkit [206359] by
-
- 6 edits2 adds in trunk
REGRESSION (r206221): [USER] com.apple.WebKit.WebContent.Development at com.apple.JavaScriptCore: vmEntryToJavaScript + 299
https://bugs.webkit.org/show_bug.cgi?id=162536
<rdar://problem/28415971>
Reviewed by Gavin Barraclough.
Source/JavaScriptCore:
Drop API on PropertySlot for setting a cacheable custom getter/setter
given that this is not supported yet and will lead to crashes if used.
- runtime/PropertySlot.h:
(JSC::PropertySlot::isCacheableCustom):
(JSC::PropertySlot::isCacheableCustomAccessor): Deleted.
(JSC::PropertySlot::setCacheableCustomGetterSetter): Deleted.
Source/WebCore:
Stop marking cross-origin Window/Location objects properties as cacheable
given that we do not support yet caching of such properties. This is because
they are using the new CustomAccesstor PropertySlot type, which is not handled
yet by Repatch.cpp. Performance is anyway not critical for cross-origin
Window / Location properties.
Test: http/tests/security/cross-origin-window-property-caching-crash.html
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
- bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::getOwnPropertySlotDelegate):
LayoutTests:
Add layout test coverage.
- http/tests/security/cross-origin-window-property-caching-crash-expected.txt: Added.
- http/tests/security/cross-origin-window-property-caching-crash.html: Added.
- 10:08 PM Changeset in webkit [206358] by
-
- 2 edits in trunk/Source/WebKit2
[WK2] Enable support for 'download' attribute on anchor elements
https://bugs.webkit.org/show_bug.cgi?id=162535
Reviewed by Darin Adler.
Enable support for 'download' attribute on anchor elements for WebKit2
now that:
- It works with our NETWORK_SESSION code path (Bug 162531)
- Supports Blob / Data URLs (Bug 156099)
- Requires user interaction / ignores synthetic clicks (Bug 156099)
- Shared/WebPreferencesDefinitions.h:
- 8:17 PM Changeset in webkit [206357] by
-
- 3 edits2 adds in trunk
REGRESSION (r205524): Crash under WTF::numGraphemeClusters()
https://bugs.webkit.org/show_bug.cgi?id=162534
<rdar://problem/28463828>
Reviewed by David Kilzer.
Source/WebCore:
We were constructing a StringView from a temporary String and then passing it to
WTF::numGraphemeClusters().
Test: fast/dom/HTMLInputElement/handleBeforeTextInsertedEvent-crash.html
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):
LayoutTests:
Add layout test coverage.
- fast/dom/HTMLInputElement/handleBeforeTextInsertedEvent-crash-expected.txt: Added.
- fast/dom/HTMLInputElement/handleBeforeTextInsertedEvent-crash.html: Added.
- 7:39 PM Changeset in webkit [206356] by
-
- 22 edits4 adds in trunk
<a download> does not support Blob URLs
https://bugs.webkit.org/show_bug.cgi?id=156099
<rdar://problem/25535520>
Reviewed by Darin Adler.
Source/WebCore:
Only allow trusted events to trigger downloads for <a download>, as per:
Without this, a script could download a file to the user's disk without
any user gesture or consent, simply by calling a.click(). I have confirmed
that Firefox also ignores the click for <a download> if it is synthetic.
Chrome allows synthetic clicks to trigger downloads but I filed a bug
about it.
Test: fast/dom/HTMLAnchorElement/anchor-download-synthetic-click.html
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::handleClick):
Source/WebKit2:
Add support for downloading Blob URLs to WebKit2. This should work for
all WebKit2 port. This also works in combination with the download
attribute on anchor elements. Note that the download attribute is only
enabled at runtime in the context of the layout tests for now. I'll
enable the download attribute on WK2 once I have fixed Bug 162531.
- CMakeLists.txt:
- NetworkProcess/Downloads/BlobDownloadClient.cpp: Added.
(WebKit::BlobDownloadClient::BlobDownloadClient):
(WebKit::BlobDownloadClient::didReceiveResponse):
(WebKit::BlobDownloadClient::didReceiveBuffer):
(WebKit::BlobDownloadClient::didFinishLoading):
(WebKit::BlobDownloadClient::didFail):
- NetworkProcess/Downloads/BlobDownloadClient.h: Added.
- NetworkProcess/Downloads/Download.cpp:
(WebKit::Download::Download):
(WebKit::Download::start):
(WebKit::Download::didStart):
(WebKit::Download::didReceiveResponse):
(WebKit::Download::decideDestinationWithSuggestedFilename):
(WebKit::Download::~Download): Deleted.
(WebKit::Download::didReceiveData): Deleted.
(WebKit::Download::shouldDecodeSourceDataOfMIMEType): Deleted.
- NetworkProcess/Downloads/Download.h:
(WebKit::Download::Download):
(WebKit::Download::suggestedName):
(WebKit::Download::request):
- NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::startDownload):
- NetworkProcess/Downloads/ios/DownloadIOS.mm:
(WebKit::Download::startNetworkLoad):
- NetworkProcess/Downloads/mac/DownloadMac.mm:
(WebKit::Download::startNetworkLoad):
- NetworkProcess/Downloads/soup/DownloadSoup.cpp:
(WebKit::Download::startNetworkLoad):
- UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):
- UIProcess/Downloads/DownloadProxy.h:
- UIProcess/Downloads/DownloadProxy.messages.in:
- WebKit2.xcodeproj/project.pbxproj:
LayoutTests:
Unskip / rebaseline existing tests now that <a download> supports Blob URLs.
- TestExpectations:
- fast/dom/HTMLAnchorElement/anchor-download-expected.txt:
- fast/dom/HTMLAnchorElement/anchor-download-synthetic-click-expected.txt: Added.
- fast/dom/HTMLAnchorElement/anchor-download-synthetic-click.html: Added.
- fast/dom/HTMLAnchorElement/anchor-nodownload-set-expected.txt:
- http/tests/security/anchor-download-allow-blob-expected.txt:
- platform/ios-simulator-wk1/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- 6:00 PM Changeset in webkit [206355] by
-
- 13 edits in trunk
[WK2] anchor.download attribute value is ignored by NETWORK_SESSION code path
https://bugs.webkit.org/show_bug.cgi?id=162531
Reviewed by Darin Adler.
Source/WebKit2:
Pipe the suggested filename through in the NETWORK_SESSION code path so
that it is used when deciding the destination path.
- NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::startDownload):
- NetworkProcess/Downloads/PendingDownload.cpp:
(WebKit::PendingDownload::PendingDownload):
- NetworkProcess/Downloads/PendingDownload.h:
- NetworkProcess/NetworkDataTask.h:
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::setSuggestedFilename):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::suggestedFilename):
(WebKit::NetworkDataTask::setSuggestedFilename):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):
Tools:
Update decideDestinationWithSuggestedFilename() to return a actual file path
instead of nullptr. The NETWORK_SESSION code path cancels the download when
decideDestinationWithSuggestedFilename() returns an empty file path, unlike
the !NETWORK_SESSION code path that just continue downloading without
explicitely setting a destination path. This lead to different test results
for NETWORK_SESSION and !NETWORK_SESSION code paths. Returns a valid
destination path makes more sense and leads to consistent results.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::decideDestinationWithSuggestedFilename):
LayoutTests:
Unskip tests that are now passing.
- platform/mac/TestExpectations:
- 5:43 PM Changeset in webkit [206354] by
-
- 4 edits in trunk/Source/WebCore
[Binding] setDOMException should be inlined and fall to the slow path if exception occurs
https://bugs.webkit.org/show_bug.cgi?id=162503
Reviewed by Saam Barati.
Binding code emits setDOMException in critical paths. However, it is not inlined.
Since exception less frequently occurs, we should have inlined setDOMException that
early returns if it does not need to raise an exception. And it should call the exception
raising code as slow path case. This tiny optimization can offer improvement if
the DOM function is tiny and DOM binding occupies large part of it. Combined with r206338,
it offers 5% improvement in Dromaeo dom-attr getAttribute / setAttribute tests.
- bindings/js/JSDOMBinding.cpp:
(WebCore::throwDOMException): Extract the actual exception raising code.
(WebCore::setDOMExceptionSlow): Call throwDOMException and keep it not inlined.
(WebCore::setDOMException):
- bindings/js/JSDOMBinding.h:
(WebCore::setDOMException): Use ThrowScope& to check
scope.exception().
And it has a path for normal case that allows early returning.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateImplementationFunctionCall):
(GenerateConstructorDefinition):
- 2:53 PM Changeset in webkit [206353] by
-
- 2 edits in trunk/JSTests
[JSTests] fix test262 expectations following r206333
https://bugs.webkit.org/show_bug.cgi?id=162533
Reviewed by Yusuke Suzuki.
- test262.yaml:
- 6:10 AM Changeset in webkit [206352] by
-
- 2 edits in trunk/Source/WebKit/mac
Move stylesheet change logic from Document to AuthorStyleSheets
https://bugs.webkit.org/show_bug.cgi?id=162488
Reviewed by Andreas Kling.
- WebView/WebHTMLView.mm:
(-[WebHTMLView reapplyStyles]):
(-[WebHTMLView _setPrinting:minimumPageLogicalWidth:logicalHeight:originalPageWidth:originalPageHeight:maximumShrinkRatio:adjustViewSize:paginateScreenContent:]):
- 5:28 AM Changeset in webkit [206351] by
-
- 22 edits in trunk/Source/WebCore
Move stylesheet change logic from Document to AuthorStyleSheets
https://bugs.webkit.org/show_bug.cgi?id=162488
Reviewed by Andreas Kling.
That's where it belongs.
- WebCore.xcodeproj/project.pbxproj:
- css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::didMutateRules):
(WebCore::CSSStyleSheet::didMutate):
(WebCore::CSSStyleSheet::clearOwnerNode):
- dom/AuthorStyleSheets.cpp:
(WebCore::AuthorStyleSheets::AuthorStyleSheets):
(WebCore::AuthorStyleSheets::flushPendingUpdates):
(WebCore::AuthorStyleSheets::scheduleOptimizedUpdate):
(WebCore::AuthorStyleSheets::didChange):
(WebCore::AuthorStyleSheets::optimizedUpdateTimerFired):
- dom/AuthorStyleSheets.h:
(WebCore::AuthorStyleSheets::hasPendingUpdate):
(WebCore::AuthorStyleSheets::pendingUpdateType): Deleted.
(WebCore::AuthorStyleSheets::setPendingUpdateType): Deleted.
(WebCore::AuthorStyleSheets::flushPendingUpdates): Deleted.
- dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::setContentLanguage):
(WebCore::Document::needsStyleRecalc):
(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::updateLayoutIgnorePendingStylesheets):
(WebCore::Document::didRemoveAllPendingStylesheet):
(WebCore::Document::processHttpEquiv):
(WebCore::Document::setSelectedStylesheetSet):
(WebCore::Document::updateHoverActiveState):
Remove StyleResolverUpdateFlag argument that was misused to indicate sync style recalc.
Clients can call updateStyleIfNeeded() directly though none of them appears to need it.
(WebCore::Document::optimizedStyleSheetUpdateTimerFired): Deleted.
(WebCore::Document::scheduleOptimizedStyleSheetUpdate): Deleted.
(WebCore::Document::styleResolverChanged): Deleted.
- dom/Document.h:
(WebCore::Document::needsStyleRecalc): Deleted.
- dom/ExtensionStyleSheets.cpp:
(WebCore::ExtensionStyleSheets::clearPageUserSheet):
(WebCore::ExtensionStyleSheets::updatePageUserSheet):
(WebCore::ExtensionStyleSheets::invalidateInjectedStyleSheetCache):
(WebCore::ExtensionStyleSheets::addUserStyleSheet):
(WebCore::ExtensionStyleSheets::addAuthorStyleSheetForTesting):
(WebCore::ExtensionStyleSheets::styleResolverChangedTimerFired):
- dom/InlineStyleSheetOwner.cpp:
(WebCore::InlineStyleSheetOwner::removedFromDocument):
- dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::removedFrom):
Also fix a bug that prevented document from rendering if a loading processing instruction was removed from the tree.
This is tested by fast/dom/StyleSheet/detached-style-pi-2.xhtml (after other changes in this patch).
- dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::updateStyle):
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::setDisabledState):
(WebCore::HTMLLinkElement::parseAttribute):
(WebCore::HTMLLinkElement::process):
(WebCore::HTMLLinkElement::removedFrom):
(WebCore::HTMLLinkElement::removePendingSheet):
- html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::parseAttribute):
- inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::forcePseudoState):
(WebCore::InspectorCSSAgent::resetPseudoStates):
- inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::setEmulatedMedia):
- page/Frame.cpp:
(WebCore::Frame::setPrinting):
- page/FrameView.cpp:
(WebCore::FrameView::layout):
(WebCore::FrameView::setPagination):
(WebCore::FrameView::setViewportSizeForCSSViewportUnits):
- page/Page.cpp:
(WebCore::Page::setViewMode):
(WebCore::Page::setNeedsRecalcStyleInAllFrames):
(WebCore::Page::invalidateInjectedStyleSheetCacheInAllFrames):
- svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::rebuildFontFace):
(WebCore::SVGFontFaceElement::removedFrom):
- xml/XMLTreeViewer.cpp:
(WebCore::XMLTreeViewer::transformDocumentToTreeView):
- xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::end):
- xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::doEnd):
Sep 23, 2016:
- 6:38 PM Changeset in webkit [206350] by
-
- 15 edits in trunk/Source
Media controls playhead does not animate smoothly while playing
https://bugs.webkit.org/show_bug.cgi?id=162399
<rdar://problem/28115680>
Reviewed by Beth Dakin.
Source/WebCore:
The media controls playhead currently does not animate smoothly during playback because we don't specify a
playback rate when updating the WebPlaybackControlsManager's timing value. However, simply setting this timing
value to the current playback rate (as known to the UI process) results in the UI process receiving multiple
updates from the web process where the current time is equal (or even less than) the time at which media began
to play, which results in the playhead seeking backwards to the start time multiple times when playing or
resuming media.
To address this, in WebCore, we inform the playback session model of the media time when playback begins (i.e.
aplayingorplayevent is fired). This message precedes both the "rate changed" and "current time changed"
messages.
Unit tests to be added in a future patch.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::notifyAboutPlaying):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::playInternal):
- html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::playbackStartedTime):
- platform/cocoa/WebPlaybackSessionModel.h:
(WebCore::WebPlaybackSessionModelClient::playbackStartedTimeChanged):
(WebCore::WebPlaybackSessionModelClient::bufferedTimeChanged): Deleted.
- platform/cocoa/WebPlaybackSessionModelMediaElement.h:
- platform/cocoa/WebPlaybackSessionModelMediaElement.mm:
(WebPlaybackSessionModelMediaElement::updateForEventName):
(WebPlaybackSessionModelMediaElement::playbackStartedTime):
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
- platform/mac/WebPlaybackSessionInterfaceMac.h:
- platform/mac/WebPlaybackSessionInterfaceMac.mm:
(WebCore::WebPlaybackSessionInterfaceMac::currentTimeChanged):
(WebCore::WebPlaybackSessionInterfaceMac::rateChanged):
(WebCore::WebPlaybackSessionInterfaceMac::beginScrubbing):
(WebCore::WebPlaybackSessionInterfaceMac::endScrubbing):
(WebCore::WebPlaybackSessionInterfaceMac::updatePlaybackControlsManagerTiming):
Source/WebKit2:
See WebCore ChangeLog for more details.
In the UI process, we update the WebPlaybackSessionManager's timing value when the rate or current time changes.
Each AVValueTiming is generated from the current time, system anchor time, and playback rate. The behavior of
the first two properties is unaffected. However, the rate used to update the timing value is the effective
playback rate, which is equal to the playback rate unless we are (1) not playing, (2) interacting with the media
controls in such a way that the media is essentially not playing, or (3) the current time precedes the playback
start time, accounting for playback direction. In these cases, our effective playback rate is 0, which means
that we do not animate the playhead.
- UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h:
- UIProcess/Cocoa/WebPlaybackSessionManagerProxy.messages.in:
- UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm:
(WebKit::WebPlaybackSessionModelContext::beginScrubbing):
(WebKit::WebPlaybackSessionModelContext::endScrubbing):
(WebKit::WebPlaybackSessionModelContext::setPlaybackStartedTime):
(WebKit::WebPlaybackSessionModelContext::setCurrentTime):
(WebKit::WebPlaybackSessionManagerProxy::setPlaybackStartedTime):
- WebProcess/cocoa/WebPlaybackSessionManager.h:
- WebProcess/cocoa/WebPlaybackSessionManager.mm:
(WebKit::WebPlaybackSessionInterfaceContext::playbackStartedTimeChanged):
(WebKit::WebPlaybackSessionManager::playbackStartedTimeChanged):
- 6:18 PM Changeset in webkit [206349] by
-
- 2 edits in branches/safari-602-branch/Source/WebCore
Merge r206322. rdar://problem/28435352
- 6:18 PM Changeset in webkit [206348] by
-
- 2 edits in branches/safari-602-branch/Source/WebCore
Merge r204082. rdar://problem/27547583
- 6:18 PM Changeset in webkit [206347] by
-
- 19 edits2 adds in branches/safari-602-branch
Merge r203982. rdar://problem/27547583
- 6:17 PM Changeset in webkit [206346] by
-
- 5 edits in branches/safari-602-branch/Source
Versioning.
- 5:51 PM Changeset in webkit [206345] by
-
- 1 copy in tags/Safari-602.2.13
New tag.
- 5:47 PM Changeset in webkit [206344] by
-
- 21 edits1 add in trunk/Source
Need a store-load fence between setting cell state and visiting the object in SlotVisitor
https://bugs.webkit.org/show_bug.cgi?id=162354
Reviewed by Mark Lam.
Source/JavaScriptCore:
This was meant to be a small change, but then it became bigger as I found small
opportunities for improving this code. This adds a store-load fence and is performance-
neutral. That's probably partly due to other optimizations that I did to visitChildren().
Initially, I found that adding an mfence as a store-load fence was terribly expensive. So,
I thought that I needed to buffer up a bunch of objects, set their states, do one mfence,
and then visit all of them. This seemed like a win, so I went with it. Unfortunately, this
made no sense for two reasons:
- I shouldn't use mfence. I should use ortop (lock orl $0, (%rsp)) instead. Ortop is basically free, and it's what WTF now uses for storeLoadFence().
- My data saying that buffering up objects was not a slow-down was wrong. That was actually almost as expensive as the mfence.
But in order to implement that, I made some other improvements that I think we should stick
with:
- SlotVisitor::visitChildren() now uses a switch on type. This replaces what used to be some nasty ClassInfo look-ups.
- We no longer save the object's old CellState. We would do that so that we would know what state the object had been before we blackened it. But I believe that the more logical solution is to have two kinds of black - one for black-for-the-first-time objects and one for repeat offenders. This is a lot easier to reason about, since you can now just figure this out by looking at the cell directly.
The latter change meant rewiring a bunch of barriers. It didn't make them any more
expensive.
Relanding after fixing a nasty build failure in cloop and elsewhere.
- JavaScriptCore.xcodeproj/project.pbxproj:
- assembler/AbstractMacroAssembler.h:
(JSC::isARMv7IDIVSupported): Deleted.
(JSC::isARM64): Deleted.
(JSC::isX86): Deleted.
(JSC::isX86_64): Deleted.
(JSC::optimizeForARMv7IDIVSupported): Deleted.
(JSC::optimizeForARM64): Deleted.
(JSC::optimizeForX86): Deleted.
(JSC::optimizeForX86_64): Deleted.
- assembler/CPU.h: Added.
(JSC::isARMv7IDIVSupported):
(JSC::isARM64):
(JSC::isX86):
(JSC::isX86_64):
(JSC::optimizeForARMv7IDIVSupported):
(JSC::optimizeForARM64):
(JSC::optimizeForX86):
(JSC::optimizeForX86_64):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::emitStoreBarrier):
- heap/CellState.h:
(JSC::isBlack):
(JSC::blacken):
- heap/Heap.cpp:
(JSC::Heap::addToRememberedSet):
- heap/Heap.h:
- heap/HeapInlines.h:
(JSC::Heap::writeBarrier):
(JSC::Heap::reportExtraMemoryVisited):
(JSC::Heap::reportExternalMemoryVisited):
- heap/MarkStack.cpp:
- heap/MarkStack.h:
- heap/SlotVisitor.cpp:
(JSC::SlotVisitor::visitChildren):
- heap/SlotVisitor.h:
- heap/SlotVisitorInlines.h:
(JSC::SlotVisitor::reportExtraMemoryVisited):
(JSC::SlotVisitor::reportExternalMemoryVisited):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::jumpIfIsRememberedOrInEden):
- llint/LLIntData.cpp:
(JSC::LLInt::Data::performAssertions):
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/JSObject.h:
(JSC::isJSFinalObject):
Source/WTF:
Fix this on x86-32.
- wtf/Atomics.h:
(WTF::x86_ortop):
- 5:45 PM Changeset in webkit [206343] by
-
- 3 edits2 adds in trunk
ASSERTION FAILED: !newRelayoutRoot.container() is<RenderView>(newRelayoutRoot.container()) !newRelayoutRoot.container()->needsLayout() while loading sohu.com https://bugs.webkit.org/show_bug.cgi?id=162466
Reviewed by Simon Fraser.
Source/WebCore:
When we come across a out-of-flow positioned renderer during layout, we add it to a tracker map with
its containing block (calling RenderBlock::insertPositionedObject).
It ensures that a containing block can easily access to the out-of-flow positioned descendants during layout/painting/hittesting.
We do it even when the containing block - positioned renderer pair is already in this tracker map.
RenderBlock::insertPositionedObject() eagerly sets the positioned-child-needs-layout flag on the containing block
assuming it needs to layout this descendant later in the layout phase.
This patch ensure that we only flag the containing block dirty when the descendant needs layout.
Test: fast/block/positioning/subtree-assert-when-positioned-element-dirties-containing-block.html
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::insertPositionedObject):
LayoutTests:
- fast/block/positioning/subtree-assert-when-positioned-element-dirties-containing-block-expected.txt: Added.
- fast/block/positioning/subtree-assert-when-positioned-element-dirties-containing-block.html: Added.
- 5:26 PM Changeset in webkit [206342] by
-
- 2 edits in trunk/LayoutTests
Remove debug flag for flaky test js/regress-139548.html.
https://bugs.webkit.org/show_bug.cgi?id=160017
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 5:21 PM Changeset in webkit [206341] by
-
- 2 edits in trunk/LayoutTests
Update TestExpectations to mark media/controls/inline-elements-dropoff-order.html as failing on Sierra.
https://bugs.webkit.org/show_bug.cgi?id=162494
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 5:17 PM Changeset in webkit [206340] by
-
- 2 edits in trunk/LayoutTests
Marking imported/w3c/web-platform-tests/media-source/mediasource-preload.html as flaky on Sierra.
https://bugs.webkit.org/show_bug.cgi?id=162523
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 5:07 PM Changeset in webkit [206339] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Fix typo in event name
https://bugs.webkit.org/show_bug.cgi?id=162519
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-09-23
Reviewed by Matt Baker.
- UserInterface/Views/CSSStyleDeclarationTextEditor.js:
- 4:57 PM Changeset in webkit [206338] by
-
- 14 edits in trunk/Source/WebCore
[Binding] Use unchekcedArgument if argumentCount is already checked
https://bugs.webkit.org/show_bug.cgi?id=162502
Reviewed by Geoffrey Garen.
It is not necessary to use
exec->argument(n)after checking the argument exists.
This patch changesargument(n)touncheckedArgument(n)if we already proved that
the argument exists. This change drops branches generated byexec->argument(n).
And it is good for small DOM operations in which DOM binding code occupies large
part of entire processing. This patch and another small patch[1] offer roughly 5%
improvement in Dromaeo dom-attr's getAttribute and setAttribute tests.
[1]: https://bugs.webkit.org/show_bug.cgi?id=162503
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck): GenerateParameterCheck requires GenerateArgumentsCountCheck.
As a result, existence of mandatory arguments are already checked. We can useuncheckedArgument(n)
for mandatory arguments.
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
- bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetPrototypeFunctionItem):
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::jsTestGlobalObjectInstanceFunctionRegularOperation):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation1):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation2):
- bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::construct):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorNamedConstructor::construct):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::construct):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation1):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation2):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithArgTreatingNullAsEmptyString):
(WebCore::jsTestObjPrototypeFunctionMethodWithXPathNSResolverParameter):
(WebCore::jsTestObjPrototypeFunctionNullableStringSpecialMethod):
(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableUSVStringArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgTreatingNullAsEmptyString):
(WebCore::jsTestObjPrototypeFunctionSerializedValue):
(WebCore::jsTestObjPrototypeFunctionOptionsObject):
(WebCore::jsTestObjPrototypeFunctionPrivateMethod):
(WebCore::jsTestObjPrototypeFunctionPublicAndPrivateMethod):
(WebCore::jsTestObjPrototypeFunctionAddEventListener):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArg):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod11):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRange):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
(WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequence):
(WebCore::jsTestObjPrototypeFunctionGetElementById):
(WebCore::jsTestObjPrototypeFunctionConvert1):
(WebCore::jsTestObjPrototypeFunctionConvert2):
(WebCore::jsTestObjPrototypeFunctionConvert3):
(WebCore::jsTestObjPrototypeFunctionConvert4):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
(WebCore::jsTestObjPrototypeFunctionAny):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Promise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Promise):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload1):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload2):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload1):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload2):
(WebCore::jsTestObjPrototypeFunctionAttachShadowRoot):
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):
(WebCore::constructJSTestOverloadedConstructors3):
(WebCore::constructJSTestOverloadedConstructors4):
- bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
(WebCore::constructJSTestOverloadedConstructorsWithSequence2):
- bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItem):
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsConstructor::construct):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceArg):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunction):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunction2):
(WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
- 4:40 PM Changeset in webkit [206337] by
-
- 3 edits in trunk/Source/WebCore
Refactor URLParser
https://bugs.webkit.org/show_bug.cgi?id=162518
Reviewed by Brady Eidson.
Use a helper function to determine the currentPosition instead of always determining position based on the
size of the buffer. Soon there will be nothing in the buffer in the common case where there are no syntax errors.
Also make more static functions into methods. Give IPv6Addresses and IPv4Addresses names. Start adding syntaxError stubs.
No change in behavior. Covered by API tests.
- platform/URLParser.cpp:
(WebCore::URLParser::incrementIteratorSkippingTabAndNewLine):
(WebCore::URLParser::isWindowsDriveLetter):
(WebCore::URLParser::appendToASCIIBuffer):
(WebCore::URLParser::syntaxError):
(WebCore::URLParser::currentPosition):
(WebCore::URLParser::URLParser):
(WebCore::URLParser::parse):
(WebCore::URLParser::parseAuthority):
(WebCore::URLParser::appendNumberToASCIIBuffer):
(WebCore::URLParser::serializeIPv4):
(WebCore::URLParser::serializeIPv6Piece):
(WebCore::URLParser::serializeIPv6):
(WebCore::URLParser::parseIPv4Host):
(WebCore::URLParser::parseIPv6Host):
(WebCore::URLParser::parsePort):
(WebCore::URLParser::parseHostAndPort):
(WebCore::append): Deleted.
(WebCore::serializeIPv4): Deleted.
(WebCore::serializeIPv6Piece): Deleted.
(WebCore::serializeIPv6): Deleted.
(WebCore::parseIPv4Host): Deleted.
(WebCore::parseIPv6Host): Deleted.
- platform/URLParser.h:
- 4:26 PM Changeset in webkit [206336] by
-
- 1 edit in trunk/JSTests/stress/async-await-syntax.js
[JSC] add @ skip line for JSTests/stress/async-await-syntax.js
http://bugs.webkit.org/show_bug.cgi?id=161409
- stress/async-await-syntax.js:
- 3:54 PM Changeset in webkit [206335] by
-
- 4 edits in trunk/Tools
[mac-sierra] 2 WKWebViewCandidateTests API test failures
https://bugs.webkit.org/show_bug.cgi?id=162470
Reviewed by Tim Horton.
VideoControlsManager, WKWebViewCandidateTests and CandidateTests should not be running on 10.12.0. Guard these
tests with an SDK check to prevent 10.12.0 bots from building them.
- TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:
- TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewCandidateTests.mm:
- TestWebKitAPI/Tests/mac/CandidateTests.mm:
- 3:32 PM Changeset in webkit [206334] by
-
- 5 edits in trunk
Refactor URLParser
https://bugs.webkit.org/show_bug.cgi?id=162516
Reviewed by Brady Eidson.
Source/WebCore:
Turn more static functions into methods, use a helper function to append characters to a buffer.
No change in behavior, but I added a new API test to cover an interesting
ipv6 address parsing case that had no coverage.
- platform/URLParser.cpp:
(WebCore::CodePointIterator::codeUnitsSince):
(WebCore::URLParser::isWindowsDriveLetter):
(WebCore::URLParser::appendToASCIIBuffer):
(WebCore::URLParser::checkWindowsDriveLetter):
(WebCore::URLParser::percentEncodeByte):
(WebCore::URLParser::utf8PercentEncode):
(WebCore::URLParser::utf8QueryEncode):
(WebCore::URLParser::encodeQuery):
(WebCore::URLParser::copyASCIIStringUntil):
(WebCore::URLParser::copyURLPartsUntil):
(WebCore::URLParser::URLParser):
(WebCore::URLParser::parse):
(WebCore::URLParser::parseAuthority):
(WebCore::URLParser::parsePort):
(WebCore::URLParser::parseHostAndPort):
(WebCore::utf8PercentEncode): Deleted.
(WebCore::utf8QueryEncode): Deleted.
(WebCore::encodeQuery): Deleted.
(WebCore::copyASCIIStringUntil): Deleted.
- platform/URLParser.h:
(WebCore::URLParser::appendToASCIIBuffer):
Tools:
- TestWebKitAPI/Tests/WebCore/URLParser.cpp:
(TestWebKitAPI::TEST_F):
- 3:24 PM Changeset in webkit [206333] by
-
- 47 edits1 add in trunk
[JSC] Implement parsing of Async Functions
https://bugs.webkit.org/show_bug.cgi?id=161409
Reviewed by Yusuke Suzuki.
.:
- Source/cmake/WebKitFeatures.cmake:
JSTests:
- stress/async-await-syntax.js: Added.
(testSyntax):
(testSyntaxError):
(testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
(testTopLevelAsyncAwaitSyntaxSloppyMode):
(testTopLevelAsyncAwaitSyntaxStrictMode):
(testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
(testNestedAsyncAwaitSyntax.async):
(testNestedAsyncAwaitSyntax.foo):
(testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
Source/JavaScriptCore:
Introduces frontend parsing for the async function proposal soon to be
ratified in ECMA262 (https://tc39.github.io/ecmascript-asyncawait/).
- API/JSScriptRef.cpp:
(parseScript):
- Configurations/FeatureDefines.xcconfig:
- builtins/BuiltinExecutables.cpp:
(JSC::BuiltinExecutables::createExecutable):
- bytecode/EvalCodeCache.h:
(JSC::EvalCodeCache::CacheKey::CacheKey):
- bytecode/ExecutableInfo.h:
(JSC::ExecutableInfo::ExecutableInfo):
(JSC::ExecutableInfo::scriptMode):
(JSC::ExecutableInfo::commentMode): Deleted.
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::scriptMode):
(JSC::UnlinkedCodeBlock::commentMode): Deleted.
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
- bytecode/UnlinkedFunctionExecutable.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitNewArrowFunctionExpression):
(JSC::BytecodeGenerator::emitNewMethodDefinition):
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::scriptMode):
(JSC::BytecodeGenerator::makeFunction):
(JSC::BytecodeGenerator::commentMode): Deleted.
- bytecompiler/NodesCodegen.cpp:
(JSC::AwaitExprNode::emitBytecode):
- parser/ASTBuilder.h:
(JSC::ASTBuilder::createAwait):
(JSC::ASTBuilder::createAsyncFunctionBody):
- parser/Keywords.table:
- parser/Lexer.cpp:
(JSC::Lexer<T>::Lexer):
(JSC::Lexer<T>::lex):
- parser/Lexer.h:
- parser/NodeConstructors.h:
(JSC::AwaitExprNode::AwaitExprNode):
- parser/Nodes.h:
- parser/Parser.cpp:
(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::isArrowFunctionParameters):
(JSC::Parser<LexerType>::parseAsyncFunctionSourceElements):
(JSC::Parser<LexerType>::parseStatementListItem):
(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseFunctionDeclarationStatement):
(JSC::Parser<LexerType>::maybeParseAsyncFunctionDeclarationStatement):
(JSC::Parser<LexerType>::parseFormalParameters):
(JSC::stringForFunctionMode):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseAsyncFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseExpressionOrLabelStatement):
(JSC::Parser<LexerType>::parseImportClauseItem):
(JSC::Parser<LexerType>::parseImportDeclaration):
(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseProperty): Deleted.
(JSC::Parser<LexerType>::parsePropertyMethod): Deleted.
(JSC::Parser<LexerType>::parsePrimaryExpression): Deleted.
(JSC::Parser<LexerType>::parseMemberExpression): Deleted.
(JSC::Parser<LexerType>::parseArrowFunctionExpression): Deleted.
(JSC::Parser<LexerType>::parseUnaryExpression): Deleted.
(JSC::Parser<LexerType>::printUnexpectedTokenText): Deleted.
- parser/Parser.h:
(JSC::Scope::Scope):
(JSC::Scope::setSourceParseMode):
(JSC::Scope::isAsyncFunction):
(JSC::Scope::isAsyncFunctionBoundary):
(JSC::Scope::setIsAsyncArrowFunction):
(JSC::Scope::setIsAsyncFunction):
(JSC::Scope::setIsAsyncFunctionBody):
(JSC::Scope::setIsAsyncArrowFunctionBody):
(JSC::Parser::ExpressionErrorClassifier::forceClassifyExpressionError):
(JSC::Parser::ExpressionErrorClassifier::propagateExpressionErrorClass):
(JSC::Parser::ExpressionErrorClassifier::indicatesPossibleAsyncArrowFunction):
(JSC::Parser::forceClassifyExpressionError):
(JSC::Parser::declarationTypeToVariableKind):
(JSC::Parser::upperScope):
(JSC::Parser::pushScope):
(JSC::Parser::matchSpecIdentifier):
(JSC::Parser::isDisallowedIdentifierAwait):
(JSC::Parser::disallowedIdentifierAwaitReason):
(JSC::parse):
(JSC::Scope::isGeneratorBoundary): Deleted.
(JSC::Parser::ExpressionErrorClassifier::indicatesPossiblePattern): Deleted.
- parser/ParserModes.h:
(JSC::SourceParseModeSet::SourceParseModeSet):
(JSC::SourceParseModeSet::contains):
(JSC::SourceParseModeSet::mergeSourceParseModes):
(JSC::isFunctionParseMode):
(JSC::isAsyncFunctionParseMode):
(JSC::isAsyncArrowFunctionParseMode):
(JSC::isAsyncFunctionWrapperParseMode):
(JSC::isAsyncFunctionBodyParseMode):
(JSC::isMethodParseMode):
(JSC::isModuleParseMode):
(JSC::isProgramParseMode):
(JSC::constructAbilityForParseMode):
- parser/ParserTokens.h:
- parser/SourceCodeKey.h:
(JSC::SourceCodeFlags::SourceCodeFlags):
(JSC::SourceCodeKey::SourceCodeKey):
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createAwait):
(JSC::SyntaxChecker::createAsyncFunctionBody):
(JSC::SyntaxChecker::createYield): Deleted.
(JSC::SyntaxChecker::createFunctionExpr): Deleted.
- runtime/CodeCache.cpp:
(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getModuleProgramCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):
- runtime/CodeCache.h:
- runtime/CommonIdentifiers.h:
- runtime/Completion.cpp:
(JSC::checkSyntax):
(JSC::checkModuleSyntax):
- runtime/Executable.cpp:
(JSC::ProgramExecutable::checkSyntax):
- runtime/Executable.h:
- runtime/ModuleLoaderPrototype.cpp:
(JSC::moduleLoaderPrototypeParseModule):
Source/WebCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
Source/WTF:
- wtf/FeatureDefines.h:
Tools:
- Scripts/build-jsc:
(cMakeArgsFromFeatures):
- Scripts/webkitperl/FeatureList.pm:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
- 2:46 PM Changeset in webkit [206332] by
-
- 13 edits in trunk
Align HTMLLabelElement.prototype.form with the HTML specification
https://bugs.webkit.org/show_bug.cgi?id=162369
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline several W3C tests now that more checks are passing.
- web-platform-tests/html/semantics/forms/form-control-infrastructure/form-expected.txt:
- web-platform-tests/html/semantics/forms/the-label-element/label-attributes-expected.txt:
Source/WebCore:
Align HTMLLabelElement.prototype.form with the HTML specification:
In particular, the following behavior changes:
- We now return null if the label element has no labeled control.
- We now return the form element instead of returning null if the label element is outside the form but its labeled control is inside the form.
Firefox and Chrome match the specification.
No new tests, rebaselined existing tests.
- html/HTMLLabelElement.cpp:
(WebCore::HTMLLabelElement::form):
- html/HTMLLabelElement.h:
LayoutTests:
Update existing tests to reflect behavior change. I have verified
that Firefox and Chrome were failing those tests.
- fast/dom/HTMLLabelElement/form/test1.html:
- fast/forms/form-attribute-expected.txt:
- fast/forms/form-attribute-nonexistence-form-id-expected.txt:
- fast/forms/form-attribute-nonexistence-form-id.html:
- fast/forms/form-attribute.html:
- 2:20 PM Changeset in webkit [206331] by
-
- 4 edits in trunk/Source/WebKit2
Fix Mac CMake build after r206261
https://bugs.webkit.org/show_bug.cgi?id=162493
Reviewed by Alex Christensen.
- CMakeLists.txt: Exclude WebTextChecker from Mac CMake builds.
- PlatformEfl.cmake: Ditto.
- PlatformGTK.cmake: Ditto.
- 2:01 PM Changeset in webkit [206330] by
-
- 2 edits in trunk/JSTests
Unreviewed, rolling out r206317.
This change caused timeouts on El Capitan Release JSC tests
Reverted changeset:
"Skip stress/string-joining-long-strings-should-not-crash.js
on memory limited devices"
https://bugs.webkit.org/show_bug.cgi?id=162386
http://trac.webkit.org/changeset/206317
- 1:58 PM Changeset in webkit [206329] by
-
- 8 edits in trunk
Refactor URLParser
https://bugs.webkit.org/show_bug.cgi?id=162511
Reviewed by Brady Eidson.
Source/WebCore:
Make the constructor take the parameters instead of URL::parse.
Now we don't need to copy the input string on failure.
Also, turn some static functions into methods so they will be able to access member variables.
Covered by existing and new API tests.
- platform/URL.cpp:
(WebCore::URL::URL):
(WebCore::URL::setProtocol):
(WebCore::URL::setHost):
(WebCore::URL::removePort):
(WebCore::URL::setPort):
(WebCore::URL::setHostAndPort):
(WebCore::URL::setUser):
(WebCore::URL::setPass):
(WebCore::URL::setFragmentIdentifier):
(WebCore::URL::removeFragmentIdentifier):
(WebCore::URL::setQuery):
(WebCore::URL::setPath):
- platform/URLParser.cpp:
(WebCore::URLParser::incrementIteratorSkippingTabAndNewLine):
(WebCore::URLParser::isWindowsDriveLetter):
(WebCore::URLParser::checkWindowsDriveLetter):
(WebCore::URLParser::shouldCopyFileURL):
(WebCore::URLParser::failure):
(WebCore::URLParser::URLParser):
(WebCore::URLParser::parse):
(WebCore::incrementIteratorSkippingTabAndNewLine): Deleted.
(WebCore::isWindowsDriveLetter): Deleted.
(WebCore::checkWindowsDriveLetter): Deleted.
(WebCore::shouldCopyFileURL): Deleted.
- platform/URLParser.h:
(WebCore::URLParser::URLParser):
(WebCore::URLParser::result):
(WebCore::URLParser::parse): Deleted.
- platform/cf/URLCF.cpp:
(WebCore::URL::URL):
Drive-by fix: Actually assign the URL to be the result of parsing.
- platform/mac/URLMac.mm:
(WebCore::URL::URL):
Tools:
- TestWebKitAPI/Tests/WebCore/URLParser.cpp:
(TestWebKitAPI::TEST_F):
(TestWebKitAPI::checkURL):
- 1:33 PM Changeset in webkit [206328] by
-
- 2 edits in tags/Safari-603.1.6.0.2/Source/WebCore
Merged r206306. rdar://problem/28436707
- 1:28 PM Changeset in webkit [206327] by
-
- 2 edits in tags/Safari-603.1.6.0.2/Source/WebCore
Merged r206301. rdar://problem/28436707
- 1:24 PM Changeset in webkit [206326] by
-
- 10 edits2 copies in tags/Safari-603.1.6.0.2
Merged r206300. rdar://problem/28436707
- 1:23 PM Changeset in webkit [206325] by
-
- 5 edits in trunk/Tools
iOS playback user action tests fail on some machines
https://bugs.webkit.org/show_bug.cgi?id=162504
rdar://problem/28013994
Reviewed by Jer Noble.
Avoid the need to have a timeout.
- TestWebKitAPI/Tests/WebKit/ios/audio-only.html:
- TestWebKitAPI/Tests/WebKit/ios/video-with-audio.html:
- TestWebKitAPI/Tests/WebKit/ios/video-without-audio.html:
- TestWebKitAPI/Tests/WebKit2Cocoa/large-video-without-audio.html:
- 1:16 PM Changeset in webkit [206324] by
-
- 20 edits in trunk/Source
Unreviewed, rolling out r206314, r206316, and r206319.
https://bugs.webkit.org/show_bug.cgi?id=162506
These changes broke various builds (Requested by ryanhaddad on
#webkit).
Reverted changesets:
"Need a store-load fence between setting cell state and
visiting the object in SlotVisitor"
https://bugs.webkit.org/show_bug.cgi?id=162354
http://trac.webkit.org/changeset/206314
"Unreviewed, fix cloop."
http://trac.webkit.org/changeset/206316
"Unreviewed, fix all other builds."
http://trac.webkit.org/changeset/206319
Patch by Commit Queue <commit-queue@webkit.org> on 2016-09-23
- 12:57 PM Changeset in webkit [206323] by
-
- 4 edits in trunk/Source/WebCore
Remove URLParser serialized template
https://bugs.webkit.org/show_bug.cgi?id=162501
Reviewed by Brady Eidson.
No change in behavior.
This optimization conflicts with another optimization I'm doing.
We currently have the ParsedURLString tag, where we tell the parser to assume this URL is valid and canonicalized.
I'm going to instead make URLParser assume all URLs are valid and canonicalized until it finds that it is not,
in which case it will canonicalize it if possible.
- platform/URL.cpp:
(WebCore::URL::URL):
- platform/URLParser.cpp:
(WebCore::incrementIteratorSkippingTabAndNewLine):
(WebCore::isWindowsDriveLetter):
(WebCore::checkWindowsDriveLetter):
(WebCore::shouldCopyFileURL):
(WebCore::utf8PercentEncode):
(WebCore::utf8QueryEncode):
(WebCore::URLParser::parse):
(WebCore::URLParser::parseAuthority):
(WebCore::URLParser::parsePort):
(WebCore::URLParser::parseHostAndPort):
(WebCore::URLParser::parseSerializedURL): Deleted.
- platform/URLParser.h:
(WebCore::URLParser::parse):
- 12:40 PM Changeset in webkit [206322] by
-
- 2 edits in trunk/Source/WebCore
Allow Seeking from the now playing controls
https://bugs.webkit.org/show_bug.cgi?id=162498
Reviewed by Beth Dakin.
We already have a handler for seek commands, we just need to register that handler
with MediaRemote.
- platform/mac/RemoteCommandListenerMac.mm:
(WebCore::RemoteCommandListenerMac::updateSupportedCommands):
- 12:33 PM Changeset in webkit [206321] by
-
- 10 edits in branches/safari-602-branch/Source/WebCore
Merge r206315. rdar://problem/28430615
- 12:33 PM Changeset in webkit [206320] by
-
- 2 edits in branches/safari-602-branch/Source/WebCore
Merge r206272. rdar://problem/28339129
- 12:31 PM Changeset in webkit [206319] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix all other builds.
- assembler/AbstractMacroAssembler.h:
- 12:02 PM Changeset in webkit [206318] by
-
- 2 edits in trunk/JSTests
Skip mozilla-tests.yaml/js1_5/Array/regress-157652 on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=162381
Reviewed by Mark Lam.
- mozilla/mozilla-tests.yaml:
- 12:00 PM Changeset in webkit [206317] by
-
- 2 edits in trunk/JSTests
Skip stress/string-joining-long-strings-should-not-crash.js on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=162386
Reviewed by Mark Lam.
- stress/string-joining-long-strings-should-not-crash.js:
- 11:47 AM Changeset in webkit [206316] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, fix cloop.
- assembler/AbstractMacroAssembler.h:
- heap/SlotVisitor.cpp:
- 11:45 AM Changeset in webkit [206315] by
-
- 10 edits in trunk/Source/WebCore
MediaSessionManagerMac::nowPlayingEligibleSession() needs to honor the main content heuristic
https://bugs.webkit.org/show_bug.cgi?id=162480
<rdar://problem/28430615>
Reviewed by Jer Noble.
Changes the implementation of nowPlayingEligibleSession to use bestMediaElementForShowingPlaybackControlsManager
and also early return nullptr if the current tab the web process is hosted in is the active tab, and the window
it is hosted in is the main window. This information is derived from the viewState flags in the Page of each
tab -- whenever the (visible && active) state changes, the Page tells the global media session manager to update
its Now Playing info. Then, when each MediaElementSession tries to determine whether it can show playback
controls for the purposes of Now Playing, each session consults its page's visible and active state. If a page
is both visible and active, no Now Playing controls are allowed for that media session.
Also adds some slight adjustments to MediaSessionManagerMac::updateNowPlayingInfo, so we reset the title, rate
and duration of the current active session when clearing out the now playing info. Likewise, when vending an
active video, if the video information matches that of the current session, we mark m_nowPlayingActive anyways.
These tweaks prevent us from getting in a bad state when switching between a tab with media and one without.
Unit tests to come in a future patch.
- html/HTMLMediaElement.cpp:
(WebCore::mediaElementSessionInfoForSession):
(WebCore::mediaSessionMayBeConfusedWithMainContent):
(WebCore::HTMLMediaElement::bestMediaElementForShowingPlaybackControlsManager):
(WebCore::HTMLMediaElement::updatePlaybackControlsManager):
(WebCore::bestMediaSessionForShowingPlaybackControlsManager): Deleted.
- html/HTMLMediaElement.h:
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::canShowControlsManager):
(WebCore::MediaElementSession::pageAllowsNowPlayingControls):
- html/MediaElementSession.h:
- page/Page.cpp:
(WebCore::Page::setViewState):
(WebCore::Page::isVisibleAndActive):
- page/Page.h:
- platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::updateNowPlayingInfoIfNecessary):
- platform/audio/PlatformMediaSessionManager.h:
- platform/audio/mac/MediaSessionManagerMac.mm:
(WebCore::PlatformMediaSessionManager::updateNowPlayingInfoIfNecessary):
(WebCore::MediaSessionManagerMac::nowPlayingEligibleSession):
(WebCore::MediaSessionManagerMac::updateNowPlayingInfo):
- 11:09 AM Changeset in webkit [206314] by
-
- 19 edits in trunk/Source
Source/JavaScriptCore:
Need a store-load fence between setting cell state and visiting the object in SlotVisitor
https://bugs.webkit.org/show_bug.cgi?id=162354
Reviewed by Mark Lam.
This was meant to be a small change, but then it became bigger as I found small
opportunities for improving this code. This adds a store-load fence and is performance-
neutral. That's probably partly due to other optimizations that I did to visitChildren().
Initially, I found that adding an mfence as a store-load fence was terribly expensive. So,
I thought that I needed to buffer up a bunch of objects, set their states, do one mfence,
and then visit all of them. This seemed like a win, so I went with it. Unfortunately, this
made no sense for two reasons:
- I shouldn't use mfence. I should use ortop (lock orl $0, (%rsp)) instead. Ortop is basically free, and it's what WTF now uses for storeLoadFence().
- My data saying that buffering up objects was not a slow-down was wrong. That was actually almost as expensive as the mfence.
But in order to implement that, I made some other improvements that I think we should stick
with:
- SlotVisitor::visitChildren() now uses a switch on type. This replaces what used to be some nasty ClassInfo look-ups.
- We no longer save the object's old CellState. We would do that so that we would know what state the object had been before we blackened it. But I believe that the more logical solution is to have two kinds of black - one for black-for-the-first-time objects and one for repeat offenders. This is a lot easier to reason about, since you can now just figure this out by looking at the cell directly.
The latter change meant rewiring a bunch of barriers. It didn't make them any more
expensive.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::emitStoreBarrier):
- heap/CellState.h:
(JSC::blacken):
- heap/Heap.cpp:
(JSC::Heap::addToRememberedSet):
- heap/Heap.h:
- heap/HeapInlines.h:
(JSC::Heap::writeBarrier):
(JSC::Heap::reportExtraMemoryVisited):
(JSC::Heap::reportExternalMemoryVisited):
- heap/MarkStack.cpp:
- heap/MarkStack.h:
- heap/SlotVisitor.cpp:
(JSC::SlotVisitor::visitChildren):
- heap/SlotVisitor.h:
- heap/SlotVisitorInlines.h:
(JSC::SlotVisitor::reportExtraMemoryVisited):
(JSC::SlotVisitor::reportExternalMemoryVisited):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::jumpIfIsRememberedOrInEden):
- llint/LLIntData.cpp:
(JSC::LLInt::Data::performAssertions):
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/JSObject.h:
(JSC::isJSFinalObject):
Source/WTF:
REGRESSION(r194387): Crash on github.com in IntlDateTimeFormat::resolvedOptions in C locale
https://bugs.webkit.org/show_bug.cgi?id=162139
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2016-09-23
Reviewed by Michael Catanzaro.
Handle the case of "C" or "POSIX" locale and use "en-US" as default. That matches what ICU and other ports do,
as well as what layout tests expect (some tests like js/intl-collator.html pass in the bots only because we use
en-US as system locale in those bots).
- wtf/PlatformUserPreferredLanguagesUnix.cpp:
(WTF::platformLanguage):
- 10:49 AM Changeset in webkit [206313] by
-
- 2 edits in trunk/LayoutTests
Temporarily skipping media/media-source/media-source-duplicate-seeked.html on mac.
https://bugs.webkit.org/show_bug.cgi?id=162496
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 10:15 AM Changeset in webkit [206312] by
-
- 24 edits in trunk/Source
Unreviewed, rolling out r206311.
https://bugs.webkit.org/show_bug.cgi?id=162495
Broke internal iOS build (Requested by anttik on #webkit).
Reverted changeset:
"Move stylesheet change logic from Document to
AuthorStyleSheets"
https://bugs.webkit.org/show_bug.cgi?id=162488
http://trac.webkit.org/changeset/206311
- 9:35 AM Changeset in webkit [206311] by
-
- 23 edits in trunk/Source
Move stylesheet change logic from Document to AuthorStyleSheets
https://bugs.webkit.org/show_bug.cgi?id=162488
Reviewed by Andreas Kling.
That's where it belongs.
- WebCore.xcodeproj/project.pbxproj:
- css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::didMutateRules):
(WebCore::CSSStyleSheet::didMutate):
(WebCore::CSSStyleSheet::clearOwnerNode):
- dom/AuthorStyleSheets.cpp:
(WebCore::AuthorStyleSheets::AuthorStyleSheets):
(WebCore::AuthorStyleSheets::flushPendingUpdates):
(WebCore::AuthorStyleSheets::scheduleOptimizedUpdate):
(WebCore::AuthorStyleSheets::didChange):
(WebCore::AuthorStyleSheets::optimizedUpdateTimerFired):
- dom/AuthorStyleSheets.h:
(WebCore::AuthorStyleSheets::hasPendingUpdate):
(WebCore::AuthorStyleSheets::pendingUpdateType): Deleted.
(WebCore::AuthorStyleSheets::setPendingUpdateType): Deleted.
(WebCore::AuthorStyleSheets::flushPendingUpdates): Deleted.
- dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::setContentLanguage):
(WebCore::Document::needsStyleRecalc):
(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::updateLayoutIgnorePendingStylesheets):
(WebCore::Document::didRemoveAllPendingStylesheet):
(WebCore::Document::processHttpEquiv):
(WebCore::Document::setSelectedStylesheetSet):
(WebCore::Document::updateHoverActiveState):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired): Deleted.
(WebCore::Document::scheduleOptimizedStyleSheetUpdate): Deleted.
(WebCore::Document::styleResolverChanged): Deleted.
- dom/Document.h:
(WebCore::Document::needsStyleRecalc): Deleted.
- dom/ExtensionStyleSheets.cpp:
(WebCore::ExtensionStyleSheets::clearPageUserSheet):
(WebCore::ExtensionStyleSheets::updatePageUserSheet):
(WebCore::ExtensionStyleSheets::invalidateInjectedStyleSheetCache):
(WebCore::ExtensionStyleSheets::addUserStyleSheet):
(WebCore::ExtensionStyleSheets::addAuthorStyleSheetForTesting):
(WebCore::ExtensionStyleSheets::styleResolverChangedTimerFired):
- dom/InlineStyleSheetOwner.cpp:
(WebCore::InlineStyleSheetOwner::removedFromDocument):
- dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::removedFrom):
Also fix a bug that prevented document from rendering if a loading processing instruction was removed from the tree.
This is tested by fast/dom/StyleSheet/detached-style-pi-2.xhtml (after other changes in this patch).
- dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::updateStyle):
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::setDisabledState):
(WebCore::HTMLLinkElement::parseAttribute):
(WebCore::HTMLLinkElement::process):
(WebCore::HTMLLinkElement::removedFrom):
(WebCore::HTMLLinkElement::removePendingSheet):
- html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::parseAttribute):
- inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::forcePseudoState):
(WebCore::InspectorCSSAgent::resetPseudoStates):
- inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::setEmulatedMedia):
- page/Frame.cpp:
(WebCore::Frame::setPrinting):
- page/FrameView.cpp:
(WebCore::FrameView::layout):
(WebCore::FrameView::setPagination):
(WebCore::FrameView::setViewportSizeForCSSViewportUnits):
- page/Page.cpp:
(WebCore::Page::setViewMode):
(WebCore::Page::setNeedsRecalcStyleInAllFrames):
(WebCore::Page::invalidateInjectedStyleSheetCacheInAllFrames):
- svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::rebuildFontFace):
(WebCore::SVGFontFaceElement::removedFrom):
- xml/XMLTreeViewer.cpp:
(WebCore::XMLTreeViewer::transformDocumentToTreeView):
- xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::end):
- xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::doEnd):
- 9:29 AM Changeset in webkit [206310] by
-
- 3 edits2 adds in trunk
[css-grid] ASSERT when sizing tracks with percentages inside calc
https://bugs.webkit.org/show_bug.cgi?id=162383
Reviewed by Darin Adler.
Source/WebCore:
There is an ASSERT to check that tracks are at least as wide as the initial base size. This
was added to verify that we never shrink tracks bellow that value. In order to compute the
value used for initialization we need a max size which is the value used to resolve
percentages to. The remaining free space was used to compute that value, that's totally
wrong because the free space decreases as the track sizing algorithm is run. The available
space should be used instead.
An extra ASSERT was removed too because it was redundant, we do always check the sizes of
the tracks after running the track sizing algorithm and that's precisely the unique point
were they could be modified.
Test: fast/css-grid-layout/tracks-wider-min-track-breadth-crash.html
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
LayoutTests:
- fast/css-grid-layout/tracks-wider-min-track-breadth-crash-expected.txt: Added.
- fast/css-grid-layout/tracks-wider-min-track-breadth-crash.html: Added.
- 9:25 AM Changeset in webkit [206309] by
-
- 6 edits in trunk
document.title getter does not strip / collapse the right whitespace characters
https://bugs.webkit.org/show_bug.cgi?id=162468
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline W3C test now that more checks are passing.
- web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-05-expected.txt:
Source/WebCore:
The document.title getter does not strip / collapse whitespace characters
as per:
This part of the specification provides more information about which
whitespace characters:
- https://html.spec.whatwg.org/#strip-and-collapse-whitespace
- https://html.spec.whatwg.org/#space-character
Firefox matches the specification. However, WebKit was stripping / collapsing
some characters it should not.
No new tests, rebaselined existing tests.
- dom/Document.cpp:
(WebCore::canonicalizedTitle):
LayoutTests:
Update existing test to reflect behavior change.
- fast/dom/Document/script-tests/document-title-get.js:
- 9:24 AM Changeset in webkit [206308] by
-
- 6 edits2 adds in trunk
Align Element.insertAdjacentHTML() with the specification
https://bugs.webkit.org/show_bug.cgi?id=162479
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Rebaseline W3C test now that one more check is passing.
- web-platform-tests/domparsing/insert_adjacent_html-expected.txt:
Source/WebCore:
Align Element.insertAdjacentHTML() with the specification:
In particular, the following changes issues are now fixed:
- Calling insertAdjacentHTML() on an element whose parent is a DocumentFragment now works insteas of throwing a NO_MODIFICATION_ALLOWED_ERR.
- Calling insertAdjacentHTML() on child of the <html> element no longer creates duplicate body / head elements.
Firefox agrees with the specification.
Test: fast/dom/insertAdjacentHTML-DocumentFragment-parent.html
- dom/Element.cpp:
(WebCore::contextNodeForInsertion):
(WebCore::Element::insertAdjacentHTML):
LayoutTests:
Add layout test coverage for calling insertAdjacentHTML on an element
whose parent is a DocumentFragment. I have verified that this test is
passing in Firefox.
- fast/dom/insertAdjacentHTML-DocumentFragment-crash-expected.txt:
- fast/dom/insertAdjacentHTML-DocumentFragment-parent-expected.txt: Added.
- fast/dom/insertAdjacentHTML-DocumentFragment-parent.html: Added.
- 9:21 AM Changeset in webkit [206307] by
-
- 9 edits in trunk
Unreviewed, rolling out r206165.
https://bugs.webkit.org/show_bug.cgi?id=162492
needs corresponding API change in bug 162475 (Requested by
alexchristensen on #webkit).
Reverted changeset:
"Non-special URLs should have an opaque origin"
https://bugs.webkit.org/show_bug.cgi?id=162254
http://trac.webkit.org/changeset/206165
Patch by Commit Queue <commit-queue@webkit.org> on 2016-09-23
- 9:09 AM Changeset in webkit [206306] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Fix the build after r206300.
- platform/mock/mediasource/MockSourceBufferPrivate.cpp: Add missing header include.
- 8:49 AM Changeset in webkit [206305] by
-
- 2 edits in trunk/Source/WebKit2
[GTK] BadDamage X error in /webkit2/WebKitWebView/preferred-size
https://bugs.webkit.org/show_bug.cgi?id=162489
Reviewed by Michael Catanzaro.
Do a XSync right after creating/destroying the XDamage used by the redirected window in X11.
- UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
(WebKit::AcceleratedBackingStoreX11::~AcceleratedBackingStoreX11):
(WebKit::AcceleratedBackingStoreX11::update):
- 8:48 AM Changeset in webkit [206304] by
-
- 3 edits in trunk/Tools
REGRESSION(r204163): [GTK] API test /webkit2/WebKitSecurityManager/file-xhr is failing
https://bugs.webkit.org/show_bug.cgi?id=161607
Reviewed by Michael Catanzaro.
Since r204163, in case of cross origin error when loading the XHR, the load fails and an error message is shown
in the console, but there isn't any js expcetion, which is what we were checking. Now, we check that there
aren't exceptions, and that the error message is sent to the console.
- Scripts/run-gtk-tests:
(TestRunner):
- TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp:
(consoleMessageReceivedCallback):
(testWebContextSecurityFileXHR):
- 8:46 AM Changeset in webkit [206303] by
-
- 2 edits in trunk/Tools
Use correct hardware for Sierra Debug WK2 testers.
https://bugs.webkit.org/show_bug.cgi?id=162474
Reviewed by Alexey Proskuryakov.
- BuildSlaveSupport/build.webkit.org-config/config.json:
- 8:45 AM Changeset in webkit [206302] by
-
- 7 edits in trunk/Tools
[GTK] Make all WebView tests have a WebKitUserContentManager
https://bugs.webkit.org/show_bug.cgi?id=162487
Reviewed by Michael Catanzaro.
It simplifies tests using the user content manager, and allows to use it without having to subclass WebViewTest.
- TestWebKitAPI/Tests/WebKit2Gtk/TestConsoleMessage.cpp:
(ConsoleMessageTest::ConsoleMessageTest):
(ConsoleMessageTest::~ConsoleMessageTest):
- TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp:
- TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp:
(testUserContentManagerInjectedStyleSheet):
(testUserContentManagerInjectedScript):
(UserScriptMessageTest::UserScriptMessageTest):
(beforeAll):
- TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:
(testWebViewIsPlayingAudio):
- TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:
(WebViewTest::WebViewTest):
- TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h:
- 8:43 AM Changeset in webkit [206301] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix; Missed a file in the last checkin.
- platform/graphics/SourceBufferPrivate.h:
(WebCore::SourceBufferPrivate::enqueuedSamplesForTrackID):
- 8:28 AM Changeset in webkit [206300] by
-
- 10 edits2 adds in trunk
REGRESSION (206001): Scrubbed video on Youtube stops playing
https://bugs.webkit.org/show_bug.cgi?id=162481
<rdar://problem/28436707>
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/media-source/media-source-seek-back.html
When re-enqueing samples after a seek, modified the algorithm for finding the first sample
to re-enqueue. Instead of finding a sample which contained the requested presentation time,
we searched for the first sample on-or-after the presentation time. This meant that if the
last buffered sample in that range started before the seek time, and ended after, it would
get skipped during re-enquing, and a far, far future sample would be enqueued instead. Now
revert to the old behavior (find the sample containing the requested time), and only adopt
the new behavior (find the next sample on-or-after the requested time) if the first failed.
In addition, bail out if the second check resulted in a sample whose presentation time was
greater than a "fudge factor" away from the requested time.
To test this behavior, add a new method onto Internals that returns a list of the enqueued
samples from a SourceBuffer.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::reenqueueMediaForTime):
(WebCore::SourceBuffer::enqueuedSamplesForTrackID):
- Modules/mediasource/SourceBuffer.h:
- platform/mock/mediasource/MockMediaSourcePrivate.cpp:
(WebCore::MockMediaSourcePrivate::seekToTime):
- platform/mock/mediasource/MockSourceBufferPrivate.cpp:
(WebCore::MockSourceBufferPrivate::enqueuedSamplesForTrackID):
(WebCore::MockSourceBufferPrivate::enqueueSample):
- platform/mock/mediasource/MockSourceBufferPrivate.h:
- testing/Internals.cpp:
(WebCore::Internals::enqueuedSamplesForTrackID):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- media/media-source/media-source-seek-back-expected.txt: Added.
- media/media-source/media-source-seek-back.html: Added.
- 7:16 AM Changeset in webkit [206299] by
-
- 2 edits in trunk/Source/WebCore
Replace redundant prepareForDestruction() call with RELEASE_ASSERT in Document::removedLastRef.
https://bugs.webkit.org/show_bug.cgi?id=162467
Reviewed by Chris Dumez.
Since r205786 fixed the root cause of webkit.org/b/159372, we no longer need the workaround.
Replace it with a RELEASE_ASSERT to ensure clean state.
No new tests, covered by existing test.
- dom/Document.cpp:
(WebCore::Document::removedLastRef):
- 5:05 AM Changeset in webkit [206298] by
-
- 2 edits in trunk/LayoutTests
Skip failing html/syntax web platform test on Windows.
https://bugs.webkit.org/show_bug.cgi?id=162415
Unreviewed test gardening.
- platform/win/TestExpectations:
- 2:56 AM Changeset in webkit [206297] by
-
- 2 edits in trunk/Source/JavaScriptCore
ARM EABI buildfix after r206289
https://bugs.webkit.org/show_bug.cgi?id=162486
Unreviewed buildfix.
- jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsWithExecState):
- 2:32 AM Changeset in webkit [206296] by
-
- 26 edits in trunk
Adding a new runtime flag for modern media controls.
- 1:20 AM Changeset in webkit [206295] by
-
- 11 edits2 adds in trunk
REGRESSION(r194387): Crash on github.com in IntlDateTimeFormat::resolvedOptions in C locale
https://bugs.webkit.org/show_bug.cgi?id=162139
Reviewed by Michael Catanzaro.
Source/JavaScriptCore:
The crash happens in unix ports because the resolved locale is empty when system locale is "C". IntlObject
considers any language tag with a size < 2 to be an invalid language, so "C" is not a valid language to resolve
the locale. We should ensure that WTF::platformUserPreferredLanguages() never returns invalid languages, but
that's not enough, because languages can be overriden from the public API, so we need to handle those cases and
throw exceptions instead of crashing.
- runtime/IntlCollator.cpp:
(JSC::IntlCollator::initializeCollator): Throw a exception when we fail to resolve the locale.
- runtime/IntlDateTimeFormat.cpp:
(JSC::IntlDateTimeFormat::initializeDateTimeFormat): Ditto.
- runtime/IntlNumberFormat.cpp:
(JSC::IntlNumberFormat::initializeNumberFormat): Ditto.
Source/WebKit2:
Handle the case of "C" locale passed by the user using "en-US" as default to match what
WTF::platformUserPreferredLanguages() does.
- UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_set_preferred_languages): Remove the call to languageDidChange() because
overrideUserPreferredLanguages() already calls it, so we were actually notifying the observers twice.
Source/WTF:
Handle the case of "C" or "POSIX" locale and use "en-US" as default. That matches what ICU and other ports do,
as well as what layout tests expect (some tests like js/intl-collator.html pass in the bots only because we use
en-US as system locale in those bots).
- wtf/PlatformUserPreferredLanguagesUnix.cpp:
(WTF::platformLanguage):
Tools:
Add test cases to check the behavior when using the C locale and an invalid locale.
- TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp:
(testWebContextLanguages):
LayoutTests:
- js/intl-invalid-locale-crash-expected.txt: Added.
- js/intl-invalid-locale-crash.html: Added.
- 1:02 AM Changeset in webkit [206294] by
-
- 4 edits in trunk/Source/WebKit2
[GTK] Improve performance when resizing a window with multiple web views in X11
https://bugs.webkit.org/show_bug.cgi?id=162413
Reviewed by Michael Catanzaro.
Resizing a window with a single way view performs good enough, but when adding more tabs, the performance
decreases a lot. This is because resize is a sync operation, and the UI process waits for the web process to
have a new update for the new size, while still draws the previous frame. This is needed for the visible web
view, to avoid flickering and artifacts while resizing, but for all other hidden web views, we don't really need
to block the UI process. This doesn't happen in Wayland, because in Wayland we never block the UI process while
waiting for web process update after a resize.
- UIProcess/AcceleratedDrawingAreaProxy.cpp:
(WebKit::AcceleratedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState): Return early if the web
view is not visible.
- UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
(WebKit::AcceleratedBackingStoreX11::update): Only schedule a redraw on a damage event when the view is visible.
- WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp:
(WebKit::AcceleratedSurfaceX11::AcceleratedSurfaceX11): Do a XSync right after creating the new pixmap.
(WebKit::AcceleratedSurfaceX11::resize): Ditto.