Timeline
Jul 28, 2016:
- 11:45 PM Changeset in webkit [203858] by
-
- 21 edits in trunk
Binding generator should expose the visible interface name in error messages
https://bugs.webkit.org/show_bug.cgi?id=160192
Source/WebCore:
Patch by Youenn Fablet <youenn@apple.com> on 2016-07-28
Reviewed by Darin Adler.
Covered by updated layout and binding tests.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation): Using visibleInterfaceName instead of interfaceName.
(GenerateFunctionCastedThis): Ditto.
(GenerateParametersCheck): Ditto.
(GenerateConstructorDefinition): Ditto.
- bindings/scripts/test/JS/JSTestObj.cpp: Rebased.
- bindings/scripts/test/TestObj.idl: Adding ConstructorCallWith to exercice change in GenerateConstructorDefinition.
LayoutTests:
Patch by Youenn Fablet <youennf@gmail.com> on 2016-07-28
Reviewed by Darin Adler.
- editing/selection/extend-expected.txt:
- fast/dom/Window/getComputedStyle-missing-parameter-expected.txt:
- fast/dom/Window/getComputedStyle-missing-parameter.html:
- fetch/fetch-error-messages-expected.txt:
- fetch/fetch-error-messages.html: Adding test for Request.
- js/dom/toString-and-valueOf-override-expected.txt:
- js/getOwnPropertyDescriptor-unforgeable-attributes-expected.txt:
- js/getOwnPropertyDescriptor-window-attributes-expected.txt:
- media/encrypted-media/encrypted-media-v2-syntax-expected.txt:
- media/encrypted-media/encrypted-media-v2-syntax.html:
- webaudio/createMediaStreamSource-null-expected.txt:
- webaudio/createMediaStreamSource-null.html:
- webaudio/decode-audio-data-basic-expected.txt:
- webaudio/decode-audio-data-basic.html:
- webaudio/mediaelementaudiosourcenode-expected.txt:
- webaudio/mediaelementaudiosourcenode.html:
- 10:22 PM Changeset in webkit [203857] by
-
- 17 edits in trunk/Source
Split calculateCacheSizes in two methods
https://bugs.webkit.org/show_bug.cgi?id=160237
Reviewed by Darin Adler.
Source/WebCore:
Rename getVolumeFreeSizeForPath as volumeFreeSizeForPath and make it available to all platforms adding an
implementation for mac.
- platform/FileSystem.h:
- platform/efl/FileSystemEfl.cpp:
(WebCore::volumeFreeSizeForPath):
(WebCore::getVolumeFreeSizeForPath): Deleted.
- platform/glib/FileSystemGlib.cpp:
(WebCore::volumeFreeSizeForPath):
(WebCore::getVolumeFreeSizeForPath): Deleted.
- platform/mac/FileSystemMac.mm:
(WebCore::volumeFreeSizeForPath):
- platform/win/FileSystemWin.cpp:
(WebCore::volumeFreeSizeForPath):
Source/WebKit2:
It's used to calculate memory and disk cache sizes, but only the web process is interested in memory caches, and
the network process in disk cache. We can also avoid a lot of duplicated code between ports to set the cache model.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setCacheModel): Use calculateURLCacheSizes to set the disk cache size and call
platformSetURLCacheSize if not set to allow ports to setup platform specific cache.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformSetURLCacheSize): Remove common code that is now in cross-platform file.
(WebKit::volumeFreeSize): Deleted.
(WebKit::NetworkProcess::platformSetCacheModel): Renamed to platformSetURLCacheSize().
- NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::platformSetURLCacheSize): Remove common code that is now in cross-platform file.
(WebKit::getCacheDiskFreeSize): Deleted.
(WebKit::NetworkProcess::platformSetCacheModel): Renamed to platformSetURLCacheSize().
- Shared/CacheModel.cpp:
(WebKit::calculateMemoryCacheSizes): Calculate the memory and page cache sizes.
(WebKit::calculateURLCacheSizes): Calculate the disk cache size.
(WebKit::calculateCacheSizes): Deleted.
- Shared/CacheModel.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess): Tell the page cache to clear backing stores for GTK+ port too. This was done before when
setting the cache model.
(WebKit::WebProcess::setCacheModel): Use calculateMemoryCacheSizes to setup memory caches and call
platformSetCacheModel to allow ports do more setup according to the cache model.
(WebKit::WebProcess::clearResourceCaches): Deleted.
- WebProcess/WebProcess.h:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformSetCacheModel): Remove common code that is now in cross-platform file.
(WebKit::volumeFreeSize): Deleted.
(WebKit::WebProcess::platformClearResourceCaches): Deleted.
- WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformSetCacheModel): Remove common code that is now in cross-platform file.
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformClearResourceCaches): Deleted.
- 10:16 PM Changeset in webkit [203856] by
-
- 5 edits in trunk/Source/WebKit2
Database Process: ASSERTION FAILED: paths.size() == handles.size() with SANDBOX_EXTENSIONS disabled
https://bugs.webkit.org/show_bug.cgi?id=160188
Reviewed by Sergio Villar Senin.
This happens in ports with sandbox extensions disabled, and it's making several tests to crash in debug
builds. The SandboxExtension implementation is empty in case of building with sandbox extensions disabled, so
that we are actually allocating no extensions at all in
NetworkProcessProxy::grantSandboxExtensionsToDatabaseProcessForBlobs(). When the message arrives to database
process, we have a list of paths, but an empty list of hanldes which causes the assertion. We can just avoid
that message entirely in case of building without sandbox extensions.
- DatabaseProcess/DatabaseProcess.cpp:
- DatabaseProcess/DatabaseProcess.h:
- DatabaseProcess/DatabaseProcess.messages.in:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::grantSandboxExtensionsToDatabaseProcessForBlobs):
- 10:14 PM UpdatingANGLE edited by
- (diff)
- 8:03 PM Changeset in webkit [203855] by
-
- 24 edits in trunk
Remove deprecated SPI for video inline / fullscreen controls
https://bugs.webkit.org/show_bug.cgi?id=160318
Reviewed by Tim Horton.
Source/WebCore:
r203752 deprecated the SPI allowsInlineMediaPlaybackWithPlaysInlineAttribute
and allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute (in favor of
inlineMediaPlaybackRequiresPlaysInlineAttribute). This patch removes the
deprecated SPI symbols.
No new tests because there is no behavior change.
- page/Settings.cpp:
- page/Settings.in:
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): Deleted.
(WebCore::InternalSettings::Backup::restoreTo): Deleted.
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithPlaysInlineAttribute): Deleted.
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute): Deleted.
- testing/InternalSettings.h:
- testing/InternalSettings.idl:
Source/WebKit/mac:
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]): Deleted.
(-[WebPreferences allowsInlineMediaPlaybackWithPlaysInlineAttribute]): Deleted.
(-[WebPreferences setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]): Deleted.
(-[WebPreferences allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]): Deleted.
(-[WebPreferences setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]): Deleted.
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]): Deleted.
Source/WebKit2:
- Shared/WebPreferencesDefinitions.h:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAllowsInlineMediaPlaybackWithPlaysInlineAttribute): Deleted.
(WKPreferencesGetAllowsInlineMediaPlaybackWithPlaysInlineAttribute): Deleted.
(WKPreferencesSetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute): Deleted.
(WKPreferencesGetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute): Deleted.
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]): Deleted.
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]): Deleted.
(-[WKWebViewConfiguration copyWithZone:]): Deleted.
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithPlaysInlineAttribute]): Deleted.
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]): Deleted.
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]): Deleted.
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]): Deleted.
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Deleted.
Tools:
- DumpRenderTree/mac/DumpRenderTree.mm:
(setDefaultsToConsistentValuesForTesting): Deleted.
- TestWebKitAPI/Tests/WebKit2Cocoa/RequiresUserActionForPlayback.mm:
(RequiresUserActionForPlaybackTest::SetUp): Deleted.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues): Deleted.
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::initializeWebViewConfiguration): Deleted.
- 7:09 PM Changeset in webkit [203854] by
-
- 2 edits in trunk/Tools
[iOS] TestWebKitAPI bundle targets are not code signed
https://bugs.webkit.org/show_bug.cgi?id=160328
<rdar://problem/27409246>
Patch by Daniel Bates <dabates@apple.com> on 2016-07-28
Reviewed by Andy Estes.
Workaround <rdar://problem/27459890> by explicitly defining Xcode build settings
CODE_SIGNING_ALLOWED and AD_HOC_CODE_SIGNING_ALLOWED to be YES so as to allow the
the TestWebKitAPI bundle targets to be code signed when building for the iOS simulator.
- TestWebKitAPI/Configurations/Base.xcconfig:
- 6:23 PM Changeset in webkit [203853] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
ASSERTION FAILED in errorProtoFuncToString() when Error name is a single char string.
https://bugs.webkit.org/show_bug.cgi?id=160324
<rdar://problem/27389572>
Reviewed by Keith Miller.
The issue is that errorProtoFuncToString() was using jsNontrivialString() to
generate the error string even when the name string can be a single character
string. This is incorrect. We should be using jsString() instead.
- runtime/ErrorPrototype.cpp:
(JSC::errorProtoFuncToString):
- tests/stress/errors-with-simple-names-or-messages-should-not-crash-toString.js: Added.
- 6:19 PM Changeset in webkit [203852] by
-
- 9 edits2 adds in trunk
Add support for Element.getAttributeNames()
https://bugs.webkit.org/show_bug.cgi?id=160327
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Rebaseline several W3C tests now that more checks are passing.
- web-platform-tests/dom/interfaces-expected.txt:
- web-platform-tests/dom/nodes/attributes-expected.txt:
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
Add support for Element.getAttributeNames():
Firefox already supports this, Chrome 52 does not yet.
Test: fast/dom/Element/getAttributeNames.html
- bindings/js/JSDOMBinding.h:
(WebCore::JSValueTraits<AtomicString>::arrayJSValue):
- dom/Element.cpp:
(WebCore::Element::getAttributeNames):
- dom/Element.h:
- dom/Element.idl:
LayoutTests:
Add layout test coverage. I have verified that this test is passing in
Firefox 47.
- fast/dom/Element/getAttributeNames-expected.txt: Added.
- fast/dom/Element/getAttributeNames.html: Added.
- 5:30 PM Changeset in webkit [203851] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
ARM64: Fused left shift with a right shift can create NaNs from integers
https://bugs.webkit.org/show_bug.cgi?id=160329
Reviewed by Geoffrey Garen.
When we fuse a left shift and a right shift of integers where the shift amounts
are the same and the size of the quantity being shifted is 8 bits, we rightly
generate a sign extend byte instruction. On ARM64, we were sign extending
to a 64 bit quantity, when we really wanted to sign extend to a 32 bit quantity.
Checking the ARM64 marco assembler and we were extending to 64 bits for all
four combinations of zero / sign and 8 / 16 bits.
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::zeroExtend16To32):
(JSC::MacroAssemblerARM64::signExtend16To32):
(JSC::MacroAssemblerARM64::zeroExtend8To32):
(JSC::MacroAssemblerARM64::signExtend8To32):
- tests/stress/regress-160329.js: New test added.
(narrow):
- 4:52 PM Changeset in webkit [203850] by
-
- 2 edits in trunk/Tools
Disable WebKit2.ResizeWithHiddenContentDoesNotHang for now
- TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm:
(animatedResizeWebView):
(TEST):
This test times out only when run in the WebKit Testing simulator environment,
but not in a fresh simulator. Disabling to keep the bots green while under investigation.
- 4:29 PM Changeset in webkit [203849] by
-
- 8 edits in trunk
window.open.length should be 0
https://bugs.webkit.org/show_bug.cgi?id=160323
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline W3C test now that one more check is passing.
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
window.open.length should be 0 as all its parameters are optional:
It is 2 in WebKit. Firefox and Chrome agree with the specification and return 0.
No new tests, rebaselined existing test.
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::open):
Minor code optimization.
- page/DOMWindow.idl:
Update IDL to match the specification and our custom implementation.
This makes us return the right "length" value.
LayoutTests:
Update existing test to reflect behavior change.
- js/dom/function-length-expected.txt:
- js/dom/function-length.html:
- 4:15 PM Changeset in webkit [203848] by
-
- 11 edits in trunk
Parameters to Event.initEvent() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160320
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline W3C tests now that more checks are passing.
- web-platform-tests/dom/interfaces-expected.txt:
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
Parameters to Event.initEvent() should be mandatory:
Firefox agrees with the specification. Chrome does not.
No new tests, rebaselined existing tests.
- dom/Event.idl:
Source/WebInspectorUI:
Update WebInspector accordingly.
- UserInterface/Models/NativeFunctionParameters.js:
LayoutTests:
Update existing tests to make sure they call initEvent() will all 3
parameters.
- fast/dom/HTMLObjectElement/beforeload-set-text-crash.xhtml:
- fast/forms/form-submission-create-crash.xhtml:
- js/arity-mismatch-at-vmentry.html:
- 3:21 PM Changeset in webkit [203847] by
-
- 8 edits in trunk/Source
Move a Mail.app workaround closer to where it's actually needed
https://bugs.webkit.org/show_bug.cgi?id=160317
Reviewed by Tim Horton.
Source/WebCore:
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadArchive):
- platform/network/cf/ResourceRequest.h:
- platform/network/cocoa/ResourceRequestCocoa.mm:
(WebCore::ResourceRequest::applyWebArchiveHackForMail): Deleted.
- platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::applyWebArchiveHackForMail): Deleted.
Source/WebKit/mac:
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::dispatchWillSendRequest):
- WebView/WebFrame.mm:
(-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]): Deleted.
- 3:17 PM Changeset in webkit [203846] by
-
- 4 edits in trunk
2 first parameters to window.postMessage() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160319
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline W3C test now that more checks are passing.
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
2 first parameters to window.postMessage() should be mandatory:
Firefox and Chrome agree with the specification.
No new tests, rebaselined existing test.
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::handlePostMessage):
- 3:05 PM Changeset in webkit [203845] by
-
- 11 edits in trunk
First parameter to canvas.getContext() / probablySupportsContext() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160312
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline several W3C tests now that more checks are passing.
- web-platform-tests/html/dom/interfaces-expected.txt:
- web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.arguments.missing-expected.txt:
Source/WebCore:
First parameter to canvas.getContext() / probablySupportsContext()
should be mandatory:
Firefox and Chrome agree with the specification for getContext().
Neither of them supports probablySupportsContext().
No new tests, rebaselined existing tests.
- bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::getContext):
(WebCore::JSHTMLCanvasElement::probablySupportsContext):
- html/HTMLCanvasElement.idl:
Source/WebInspectorUI:
Update WebInspector accordingly.
- UserInterface/Models/NativeFunctionParameters.js:
LayoutTests:
Update existing test to reflect behavior change.
- fast/canvas/webgl/canvas-supports-context-expected.txt:
- fast/canvas/webgl/canvas-supports-context.html:
- 2:51 PM Changeset in webkit [203844] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Hiding a column which contains a TimelineRuler as the headerview, doesn't hide the headerView
https://bugs.webkit.org/show_bug.cgi?id=160093
<rdar://problem/27499300>
Reviewed by Joseph Pecoraro.
- UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype._positionHeaderViews):
Remove early return so that a header view in a hidden column will have
its width resized to zero, matching the column.
- 2:38 PM Changeset in webkit [203843] by
-
- 5 edits in trunk/Source/WebInspectorUI
Web Inspector: Waterfall view should be visible in Network tab and Network Timeline
https://bugs.webkit.org/show_bug.cgi?id=160061
Patch by Johan K. Jensen <johan_jensen@apple.com> on 2016-07-28
Reviewed by Joseph Pecoraro.
Adds a Timeline-column (waterfall) to the Network tab and Network Timeline.
- Localizations/en.lproj/localizedStrings.js:
Add "Timeline" localized string.
- UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
Add the Timeline-column with a TimelineRuler as the headerview,
and properties for updating current time.
(WebInspector.NetworkGridContentView.prototype.get secondsPerPixel):
(WebInspector.NetworkGridContentView.prototype.get startTime):
(WebInspector.NetworkGridContentView.prototype.get currentTime):
(WebInspector.NetworkGridContentView.prototype.get endTime):
Acting as a graphDataSource used by TimelineDataGridNode.
(WebInspector.NetworkGridContentView.prototype.shown):
(WebInspector.NetworkGridContentView.prototype.reset):
(WebInspector.NetworkGridContentView.prototype.layout):
Refresh graphs and update the TimelineRuler on layout changes.
(WebInspector.NetworkGridContentView.prototype._networkTimelineRecordAdded):
Add listeners for when resources are finished to stop the timer.
(WebInspector.NetworkGridContentView.prototype._update):
(WebInspector.NetworkGridContentView.prototype._startUpdatingCurrentTime):
(WebInspector.NetworkGridContentView.prototype._stopUpdatingCurrentTime):
Adding a timer which updates the TimelineRuler and the layout
if any non-finished requests are running.
- UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView):
Add the Timeline-column with a TimelineRuler as the headerview.
(WebInspector.NetworkTimelineView.prototype.get secondsPerPixel):
(WebInspector.NetworkTimelineView.prototype.layout):
Refresh graphs on layout changes.
- UserInterface/Views/TimelineDataGrid.css:
(.tree-outline.timeline-data-grid .item:hover .subtitle):
(.data-grid.timeline th):
(.data-grid.timeline th.graph-column > .timeline-ruler):
(.data-grid.timeline td.graph-column):
(.data-grid.timeline td.graph-column > .cell-content):
(.data-grid.timeline td.graph-column .timeline-record-bar):
- 2:19 PM Changeset in webkit [203842] by
-
- 13 edits2 adds in trunk
Frequent animation lags when interacting with Safari (sidebar, tab switching, etc.)
https://bugs.webkit.org/show_bug.cgi?id=160289
<rdar://problem/27553464>
Reviewed by Simon Fraser.
API Tests: WebKit2.AnimatedResizeDoesNotHang, WebKit2.ResizeWithHiddenContentDoesNotHang
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:]):
Avoid calling _endAnimatedResize when a commit comes in when we haven't yet received
a dynamic viewport update reply (and thus don't have a transaction ID to wait on).
Previously, in this case, _resizeAnimationTransformTransactionID would be 0,
and *any* commit would cause _endAnimatedResize to be called, causing us to always
fall into the worst-case sync wait.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::synchronizeDynamicViewportUpdate):
Make use of waitForDidUpdateViewState instead of having a separate waitForAndDispatchImmediately
here, because it knows to do things like dispatch the didUpdate message if it's still
pending. This also shortens the sync wait timeout from 1s to 500ms, which makes it
consistent with e.g. the newly-parented-view timeout duration, and should be nothing
but positive.
- Platform/IPC/Connection.cpp:
(IPC::Connection::timeoutRespectingIgnoreTimeoutsForTesting):
(IPC::Connection::waitForMessage):
(IPC::Connection::sendSyncMessageFromSecondaryThread):
(IPC::Connection::waitForSyncReply):
- Platform/IPC/Connection.h:
(IPC::Connection::ignoreTimeoutsForTesting):
- UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
- UIProcess/API/APIProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration ignoreSynchronousMessagingTimeoutsForTesting]):
(-[_WKProcessPoolConfiguration setIgnoreSynchronousMessagingTimeoutsForTesting:]):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processDidFinishLaunching):
Add a mechanism for clients to cause all synchronous message timeouts to be effectively infinite.
The new API tests use this to ensure that the test will time out if they ever enter
the bad state (otherwise, the shorter sync wait timeout could make the test still pass).
- TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm: Added.
(-[AnimatedResizeNavigationDelegate _webView:renderingProgressDidChange:]):
(-[AnimatedResizeWebView _endAnimatedResize]):
(animatedResizeWebView):
(TEST):
- TestWebKitAPI/Tests/WebKit2Cocoa/blinking-div.html: Added.
Add two tests that ensure that hidden-content and animated resizes
don't cause unnecessary synchronous waits. Only the hidden-content
one fails before my patch, but it seemed reasonable to add both anyway.
- 2:17 PM Changeset in webkit [203841] by
-
- 2 edits in trunk/Source/WebKit/mac
Use a RetainPtr in WebFrameLoaderClient::assignIdentifierToInitialRequest
https://bugs.webkit.org/show_bug.cgi?id=160315
Reviewed by Tim Horton.
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::assignIdentifierToInitialRequest):
- 2:07 PM Changeset in webkit [203840] by
-
- 10 edits in trunk
Parameter to table.deleteRow() / body.deleteRow() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160307
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline W3C test now that more checks are passing.
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
Parameter to table.deleteRow() / body.deleteRow() should be mandatory:
- https://html.spec.whatwg.org/multipage/tables.html#the-table-element
- https://html.spec.whatwg.org/multipage/tables.html#htmltablesectionelement
Firefox and Chrome agree with the specification.
No new tests, rebaselined existing test.
- html/HTMLTableElement.idl:
- html/HTMLTableSectionElement.idl:
Source/WebInspectorUI:
Update WebInspector accordingly.
- UserInterface/Models/NativeFunctionParameters.js:
LayoutTests:
Update existing test to reflect behavior change.
- fast/dom/non-numeric-values-numeric-parameters-expected.txt:
- fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
- 2:02 PM Changeset in webkit [203839] by
-
- 4 edits4 deletes in trunk
Unreviewed, rolling out r203826.
https://bugs.webkit.org/show_bug.cgi?id=160314
The test added with this change fails on El Capitan WK2.
(Requested by ryanhaddad on #webkit).
Reverted changeset:
"HTMLVideoElement with MediaStream src shows paused image when
all video tracks are disabled"
https://bugs.webkit.org/show_bug.cgi?id=160222
http://trac.webkit.org/changeset/203826
Patch by Commit Queue <commit-queue@webkit.org> on 2016-07-28
- 1:56 PM Changeset in webkit [203838] by
-
- 3 edits in branches/safari-602-branch/LayoutTests
2016-07-28 Alexey Proskuryakov <ap@apple.com>
macOS Sierra test result gardening.
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- 1:55 PM Changeset in webkit [203837] by
-
- 3 edits in trunk/LayoutTests
macOS Sierra test result gardening.
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- 1:54 PM Changeset in webkit [203836] by
-
- 10 edits in trunk
2 first parameters to input.setSelectionRange() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160310
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Rebaseline W3C test now that more checks are passing.
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
2 first parameters to input.setSelectionRange() should be mandatory:
Calling this method without the 2 first parameters makes little
sense.
Firefox agrees with the specification, Chrome does not.
No new tests, rebaselined existing test.
- bindings/js/JSHTMLInputElementCustom.cpp:
(WebCore::JSHTMLInputElement::setSelectionRange):
- html/HTMLInputElement.idl:
Source/WebInspectorUI:
Update WebInspector accordingly.
- UserInterface/Models/NativeFunctionParameters.js:
LayoutTests:
Update existing test to reflect behavior change.
- fast/dom/non-numeric-values-numeric-parameters-expected.txt:
- fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
- 1:40 PM Changeset in webkit [203835] by
-
- 2 edits in trunk/Source/WebCore
Remove an unnecessary comment from UUID.h
https://bugs.webkit.org/show_bug.cgi?id=160313
Reviewed by Simon Fraser.
- platform/UUID.h:
- 1:28 PM Changeset in webkit [203834] by
-
- 3 edits1 add in trunk/Source
StringView should have an explicit m_is8Bit field.
https://bugs.webkit.org/show_bug.cgi?id=160282
<rdar://problem/27327943>
Reviewed by Benjamin Poulain.
Source/JavaScriptCore:
- tests/stress/string-joining-long-strings-should-not-crash.js: Added.
(catch):
Source/WTF:
The current implementation reserves 1 bit in the 32-bit m_length field as an
is16Bit flag. As a result, a StringView is incapable of handling strings that
have a length of 32-bit in size. This results in a mismatch with the
expectations of String, StringImpl, and JavaScriptCore's JSString which all
support a 32-bit unsigned length.
This patch fixes this issue by introducing an explicit m_is8Bit field, thereby
allowing m_length to be a full 32-bit again.
We also introduced a clear() convenience method to set the fields of StringView
to empty values. Previously, we were duplicating the code for clearing those
fields. We now call clear() in all those places instead.
Note: in clear(), we set m_is8Bit to true because we want an empty StringView
to be 8-bit rather than 16-bit. This is consistent with what the empty() method
returns.
- wtf/text/StringView.h:
(WTF::StringView::setUnderlyingString):
(WTF::StringView::StringView):
(WTF::StringView::operator=):
(WTF::StringView::initialize):
(WTF::StringView::clear):
(WTF::StringView::empty):
(WTF::StringView::length):
(WTF::StringView::operator bool):
(WTF::StringView::is8Bit):
(WTF::StringView::substring):
(WTF::StringView::getCharactersWithUpconvert):
(WTF::StringView::toString):
(WTF::StringView::toAtomicString):
(WTF::StringView::toFloat):
(WTF::StringView::toInt):
(WTF::StringView::toIntStrict):
(WTF::StringView::toStringWithoutCopying):
(WTF::StringView::find):
- 1:21 PM Changeset in webkit [203833] by
-
- 9 edits in trunk
Parameter to tr.deleteCell() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160308
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline W3C test now that more checks are passing.
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
Parameter to tr.deleteCell() should be mandatory:
Firefox and Chrome agree with the specification.
No new tests, rebaselined existing tests.
- html/HTMLTableRowElement.idl:
Source/WebInspectorUI:
Report tr.deleteCell() parameter as mandatory.
- UserInterface/Models/NativeFunctionParameters.js:
LayoutTests:
Update existing test to reflect behavior change.
- fast/dom/non-numeric-values-numeric-parameters-expected.txt:
- fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
- 1:21 PM Changeset in webkit [203832] by
-
- 4 edits in trunk/Tools
webkit-patch upload --suggest-reviewers shouldn't break in the presence of deleted or moved files
<https://webkit.org/b/83342>
Reviewed by Ryosuke Niwa.
- Scripts/webkitpy/common/checkout/scm/git.py:
(Git.revisions_changing_file): Remove code to raise an exception
when the file doesn't exist. If a file was moved or renamed,
then this caused the script to terminate, which was very
frustrating when you wanted a list of reviewers.
- Scripts/webkitpy/common/checkout/scm/scm_unittest.py:
(SCMTest._shared_test_revisions_changing_file): Update test
expectation to return an empty list of revisions.
(test_create_patch_is_full_patch): Drive-by fix when running all
webkitpy tests (including scm tests).
- Scripts/webkitpy/common/checkout/scm/svn.py:
(SVN.revisions_changing_file): Catch ScriptError exceptions and
return an empty array of revisions if this occurs.
- 1:18 PM Changeset in webkit [203831] by
-
- 5 edits in trunk
[Bindings] "length" value of overloaded operations may be wrong
https://bugs.webkit.org/show_bug.cgi?id=160303
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline W3C test now that more checks are passing.
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
"length" value of overloaded operations may be wrong because we fail to
account for overloads when computing the length of a function:
No new tests, rebaselined existing test.
- bindings/scripts/CodeGeneratorJS.pm:
(GetFunctionLength):
- bindings/scripts/test/JS/JSTestObj.cpp:
- 1:12 PM Changeset in webkit [203830] by
-
- 9 edits in trunk/Tools
EWS error message "Error: * did not process patch" should include explanation
https://bugs.webkit.org/show_bug.cgi?id=159903
<rdar://problem/27410788>
Reviewed by Alexey Proskuryakov.
- QueueStatusServer/handlers/statusbubble.py:
(StatusBubble._build_bubble): Display more detailed error message on bubbles when patch
is not processed.
- QueueStatusServer/handlers/processingtimesjson.py:
(ProcessingTimesJSON._resultFromFinalStatus): Updated error message to match with rest
of the code.
- Scripts/webkitpy/tool/bot/commitqueuetask.py:
(CommitQueueTask.validate): Add more information about validation failure.
(CommitQueueTask.run): Pass the error details in the PatchIsNotValid exception.
- Scripts/webkitpy/tool/bot/earlywarningsystemtask.py:
(EarlyWarningSystemTask.validate): Add more information about validation failure.
(EarlyWarningSystemTask.run): Pass the error details in the PatchIsNotValid exception.
- Scripts/webkitpy/tool/bot/patchanalysistask.py:
(PatchIsNotValid.init): Add the failure_message argument.
- Scripts/webkitpy/tool/commands/earlywarningsystem.py:
(AbstractEarlyWarningSystem.review_patch): Re-word the error message and include
failure details.
- Scripts/webkitpy/tool/commands/queues.py:
(CommitQueue.process_work_item): Same.
(StyleQueue.review_patch): Same.
- Scripts/webkitpy/tool/commands/queues_unittest.py:
(test_non_valid_patch): Updated test-cases messages to match the above changes.
- 12:53 PM Changeset in webkit [203829] by
-
- 5 edits in tags/Safari-602.1.43.0.1/Source
Versioning.
- 12:50 PM Changeset in webkit [203828] by
-
- 2 edits in trunk/LayoutTests
Marking fast/dom/Window/child-window-focus.html as flaky on mac-wk2
https://bugs.webkit.org/show_bug.cgi?id=160309
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 12:50 PM Changeset in webkit [203827] by
-
- 1 copy in tags/Safari-602.1.43.0.1
New tag.
- 11:26 AM Changeset in webkit [203826] by
-
- 4 edits4 adds in trunk
HTMLVideoElement with MediaStream src shows paused image when all video tracks are disabled
https://bugs.webkit.org/show_bug.cgi?id=160222
<rdar://problem/27557313>
Patch by George Ruan <gruan@apple.com> on 2016-07-28
Reviewed by Eric Carlson.
Source/WebCore:
Tests: fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html
fast/mediastream/MediaStream-video-element-video-tracks-disabled.html
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSampleBufferFromTrack): Change criteria to enqueue a
Sample Buffer to the AVSampleBufferDisplayLayer to allow an initial frame to be shown.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::shouldEnqueueVideoSampleBuffer): Allow an initial frame to be shown.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::flushAndRemoveVideoSampleBuffers): Removes all buffers from the
AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayer): Make the AVSampleBufferDisplayLayer's background black.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayMode): Remove all buffers from the AVSampleBufferDisplayLayer
when state of MediaPlayerPrivateMediaStreamAVFObjC is changed to None of PaintItBlack.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updatePausedImage): Updates paused image.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pause): Calls updatePausedImage.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext): Allow an initial frame to be painted to canvas.
LayoutTests:
- fast/mediastream/MediaStream-video-element-video-tracks-disabled-expected.html: Added.
- fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled-expected.txt: Added.
- fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html: Added. Checks
that the video frames display captured media if all video tracks were disabled and then a single
video track is re-enabled. This test also checks that an initial frame is painted to
canvas if the video has not yet been played.
- fast/mediastream/MediaStream-video-element-video-tracks-disabled.html: Added. Reference tests the
frames of the video to be black, since the canvas is painted black regardless of the state of the video frames
if displayMode of MediaPlayerPrivateMediaStreamAVFObjC is PaintItBlack.
- 11:19 AM Changeset in webkit [203825] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r202880): Default controls pip glyph inverted
https://bugs.webkit.org/show_bug.cgi?id=160304
<rdar://problem/27578447>
Reviewed by Eric Carlson.
I accidentally committed the "Exit Picture-in-picture" glyph
for the "Enter Picture-in-picture" buttons :(
- Modules/mediacontrols/mediaControlsApple.css:
(video::-webkit-media-controls-panel .picture-in-picture-button):
Use the correct artwork.
- 11:17 AM Changeset in webkit [203824] by
-
- 5 edits in trunk/Source
Versioning.
- 11:17 AM Changeset in webkit [203823] by
-
- 2 edits in trunk/LayoutTests
Unskip some CSS tests that previously timed out on ios-simulator.
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- 11:16 AM Changeset in webkit [203822] by
-
- 1 copy in tags/Safari-603.1.1
New tag.
- 11:14 AM Changeset in webkit [203821] by
-
- 3 edits2 adds in trunk
First parameter to SVGDocument.createEvent() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160296
Reviewed by Alex Christensen.
Source/WebCore:
First parameter to SVGDocument.createEvent() should be mandatory:
- https://www.w3.org/TR/SVG2/struct.html#InterfaceDocumentExtensions
- https://dom.spec.whatwg.org/#document
This patch drops createEvent() from SVGDocument so that the spec-compliant
Document.createEvent() is used instead. In the specification, SVGDocument
no longer exists and is a simple Document.
Firefox and Chrome agree with the specification.
Test: svg/dom/SVGDocument-createEvent.html
- svg/SVGDocument.idl:
LayoutTests:
Add test coverage.
- svg/dom/SVGDocument-createEvent-expected.txt: Added.
- svg/dom/SVGDocument-createEvent.html: Added.
- 11:04 AM Changeset in webkit [203820] by
-
- 6 edits in trunk
Parameters to CanvasGradient.addColorStop() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160297
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Rebaseline W3C test now that one more check is passing.
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
Parameters to CanvasGradient.addColorStop() should be mandatory:
Firefox and Chrome agree with the specification.
No new tests, rebaselined existing test.
- html/canvas/CanvasGradient.idl:
LayoutTests:
Rebaseline existing test due to behavior change.
- platform/mac/canvas/philip/tests/2d.missingargs-expected.txt:
- 11:01 AM Changeset in webkit [203819] by
-
- 4 edits2 adds in trunk/LayoutTests
Unskip some compositing tests on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=152131
Unreviewed test gardening.
- 8:43 AM Changeset in webkit [203818] by
-
- 18 edits6 moves in trunk
[Streams API] Replace ReadableStreamController by ReadableStreamDefaultController
https://bugs.webkit.org/show_bug.cgi?id=160242
Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-07-28
Reviewed by Youenn Fablet.
Replaced ReadableStreamController by ReadableStreamDefaultController to align
with updated Streams API specification.
No change in functionality.
Source/WebCore:
- CMakeLists.txt:
- DerivedSources.cpp:
- DerivedSources.make:
- Modules/streams/ReadableStream.js:
(initializeReadableStream):
- Modules/streams/ReadableStreamDefaultController.idl: Renamed from Source/WebCore/Modules/streams/ReadableStreamController.idl.
- Modules/streams/ReadableStreamDefaultController.js: Renamed from Source/WebCore/Modules/streams/ReadableStreamController.js.
(enqueue):
(error):
(close):
(desiredSize):
- Modules/streams/ReadableStreamInternals.js:
(privateInitializeReadableStreamDefaultController):
(isReadableStreamDefaultController):
- Modules/streams/ReadableStreamSource.h:
(WebCore::ReadableStreamSource::controller):
(WebCore::ReadableStreamSource::start):
- Modules/streams/ReadableStreamSource.idl:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
- bindings/js/JSReadableStreamPrivateConstructors.cpp:
(WebCore::constructJSReadableStreamDefaultController):
(WebCore::JSBuiltinReadableStreamDefaultControllerPrivateConstructor::initializeExecutable):
(WebCore::createReadableStreamDefaultControllerPrivateConstructor):
- bindings/js/JSReadableStreamPrivateConstructors.h:
- bindings/js/JSReadableStreamSourceCustom.cpp:
(WebCore::JSReadableStreamSource::start):
- bindings/js/ReadableStreamDefaultController.cpp: Renamed from Source/WebCore/bindings/js/ReadableStreamController.cpp.
(WebCore::callFunction):
(WebCore::ReadableStreamDefaultController::invoke):
(WebCore::ReadableStreamDefaultController::isControlledReadableStreamLocked):
- bindings/js/ReadableStreamDefaultController.h: Renamed from Source/WebCore/bindings/js/ReadableStreamController.h.
(WebCore::ReadableStreamDefaultController::ReadableStreamDefaultController):
(WebCore::ReadableStreamDefaultController::close):
(WebCore::ReadableStreamDefaultController::error):
(WebCore::ReadableStreamDefaultController::enqueue):
(WebCore::ReadableStreamDefaultController::globalObject):
(WebCore::ReadableStreamDefaultController::error<String>):
- bindings/js/WebCoreBuiltinNames.h:
LayoutTests:
- streams/readable-stream-default-controller-error-expected.txt: Renamed from LayoutTests/streams/readable-stream-controller-error-expected.txt.
- streams/readable-stream-default-controller-error.html: Renamed from LayoutTests/streams/readable-stream-controller-error.html.
- streams/readable-stream-error-messages-expected.txt:
- streams/readable-stream-error-messages.html:
- streams/reference-implementation/readable-stream-expected.txt:
- 5:07 AM Changeset in webkit [203817] by
-
- 2 edits in trunk/Source/JavaScriptCore
[ARM] Typo fix after r121885
https://bugs.webkit.org/show_bug.cgi?id=160288
Reviewed by Zoltan Herczeg.
- assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::maxJumpReplacementSize):
- 2:28 AM Changeset in webkit [203816] by
-
- 2 edits in trunk/Source/JavaScriptCore
64-bit alignment check isn't necessary in ARMAssembler::prepareExecutableCopy after r202214
https://bugs.webkit.org/show_bug.cgi?id=159711
Reviewed by Mark Lam.
- assembler/ARMAssembler.cpp:
(JSC::ARMAssembler::prepareExecutableCopy):
- 2:27 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 1:30 AM Changeset in webkit [203815] by
-
- 35 edits in trunk
Compute fetch response type in case of cross-origin requests
https://bugs.webkit.org/show_bug.cgi?id=158565
Patch by Youenn Fablet <youenn@apple.com> on 2016-07-28
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Rebasing fetch API tests as filtering is now done.
Rebasing XHR tests as console messages are no longer available when trying to access non-exposed headers.
- web-platform-tests/XMLHttpRequest/getresponseheader-cookies-and-more-expected.txt:
- web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt:
- web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt:
- web-platform-tests/fetch/api/cors/cors-basic-expected.txt:
- web-platform-tests/fetch/api/cors/cors-filtering-expected.txt:
- web-platform-tests/fetch/api/request/request-cache-expected.txt:
Source/WebCore:
Covered by rebased tests.
Implementing Response filtering based on Response tainting in ResourceResponse.
Refactoring code in FetchHeaders and CrossOriginAccessControl.cpp accordingly.
Computing response tainting in SubresourceLoader for all resources.
This is used by DocumentThreadableLoader which now filters responses accordingly for all its clients including fetch and XHR.
Response tainting notably allows computing the response type and filtering out headers in case of cross origin responses.
Removing the filtering implemented in XMLHttpRequest as this is done before it gets access to the headers.
This is triggering some rebasing in the XHR tests as error messages triggered by trying to access unsafe headers no longer happen.
This filtering currently requires creating a new ResourceResponse object from the one sent from CachedResource.
This is done so as the same ResourceResponse may be reused accross loads and may be filtered differently by given to two different DocumentThreadableLoader
This can be mitigated in the future by changing ThreadableLoaderClient API to pass a ResourceResponse&&.
- Modules/fetch/FetchHeaders.cpp: Moving header checking in HTTParsers.h/.cpp
(WebCore::isForbiddenHeaderName): Deleted.
(WebCore::isForbiddenResponseHeaderName): Deleted.
(WebCore::isSimpleHeader): Deleted.
- loader/CrossOriginAccessControl.cpp:
(WebCore::parseAccessControlExposeHeadersAllowList): Deleted.
- loader/CrossOriginAccessControl.h: Moving header checking in HTTParsers.h/.cpp
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::responseReceived):
(WebCore::DocumentThreadableLoader::didReceiveResponse): Doing response filtering. Since underlying loaders are
not yet aware that fetch mode may be cors (it is always no-cors currently), the tainting needs to be updated.
(WebCore::DocumentThreadableLoader::loadRequest): Computing response tainting in case of synchronous calls to ensure headers are filtered for synchronous XHR.
- loader/DocumentThreadableLoader.h:
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::init): Getting origin from its resource and setting response tainting accordingly
(WebCore::SubresourceLoader::willSendRequestInternal): Always calling checkRedirectionCrossOriginAccessControl
to ensure response tainting is computed, even for no-cors resources.
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl): Computing response tainting in case of redirection.
- loader/SubresourceLoader.h:
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load): Computing resource origin from the HTTP headers or from the document if none is
set in the HTTP headers.
(WebCore::CachedResource::setCrossOrigin): Helper routine to set response tainting.
(WebCore::CachedResource::isCrossOrigin): Helper routine to know whether resource is cross origin
(WebCore::CachedResource::isClean):
(WebCore::CachedResource::setResponse): Removing m_responseType
- loader/cache/CachedResource.h:
(WebCore::CachedResource::responseTainting):
(WebCore::CachedResource::origin):
(WebCore::CachedResource::setOpaqueRedirect): Deleted.
- platform/network/HTTPParsers.cpp: Implementing safe response header checking
(WebCore::parseAccessControlExposeHeadersAllowList):
(WebCore::isForbiddenHeaderName):
(WebCore::isForbiddenResponseHeaderName):
(WebCore::isSimpleHeader):
(WebCore::isCrossOriginSafeHeader):
- platform/network/HTTPParsers.h:
- platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::hasHTTPOrigin): Added.
(WebCore::ResourceRequestBase::clearHTTPOrigin):
- platform/network/ResourceRequestBase.h:
- platform/network/ResourceResponseBase.cpp: Implementation of response filtering.
(WebCore::ResourceResponseBase::filterResponse):
- platform/network/ResourceResponseBase.h:
- xml/XMLHttpRequest.cpp:
(WebCore::isSetCookieHeader): Deleted.
(WebCore::XMLHttpRequest::getAllResponseHeaders): Removing header filtering since DocumentThreadableLoader does it.
(WebCore::XMLHttpRequest::getResponseHeader): Ditto.
LayoutTests:
Rebasing fetch API tests as filtering is now done.
Rebasing XHR tests as console messages are no longer available when trying to access non-exposed headers.
- http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers-expected.txt:
- http/tests/xmlhttprequest/access-control-response-with-expose-headers-expected.txt:
- http/tests/xmlhttprequest/get-dangerous-headers-expected.txt:
- http/tests/xmlhttprequest/getResponseHeader-expected.txt:
- platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt:
- platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt:
- platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-expected.txt:
Jul 27, 2016:
- 11:37 PM Changeset in webkit [203814] by
-
- 2 edits in trunk/Source/WebCore
[Streams API] Use makeThisTypeError in ReadableStreamDefaultReader.js
https://bugs.webkit.org/show_bug.cgi?id=160254
Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-07-27
Reviewed by Darin Adler.
Use makeThisTypeError and makeGetterTypeError in ReadableStreamDefaultReader.js
No change in functionality.
- Modules/streams/ReadableStreamDefaultReader.js:
(cancel):
(read):
(releaseLock):
(closed):
- 11:28 PM Changeset in webkit [203813] by
-
- 3 edits in trunk/Source/WebCore
[soup] Incorrect usage of relaxAdoptionRequirement in the constructor of SocketStreamHandle
https://bugs.webkit.org/show_bug.cgi?id=160281
Patch by Fujii Hironori <Fujii Hironori> on 2016-07-27
Reviewed by Carlos Garcia Campos.
No new tests (No behavior change).
Incrementing refcount in a constructor causes an assertion failure
that it's not adopted yet. So, relaxAdoptionRequirement() was
used to avoid the problem in the constructors of
SocketStreamHandle. This is a incorrect solution. The correct
solution is to make SocketStreamHandle::create() increment the
refcount after calling the constructor.
- platform/network/soup/SocketStreamHandle.h: Removed the second
constructor of SocketStreamHandle which is not used anymore.
Uninlined create() because this is not trivial anymore.
- platform/network/soup/SocketStreamHandleSoup.cpp:
(WebCore::SocketStreamHandle::create): Do the rest of jobs which
was done by the constructors.
(WebCore::SocketStreamHandle::SocketStreamHandle): Move the jobs
after initialization to create().
Removed the second constructor.
- 10:59 PM Changeset in webkit [203812] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Remove some unused code from FTL
https://bugs.webkit.org/show_bug.cgi?id=160285
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-27
Reviewed by Mark Lam.
All the liveness and swapping is done inside B3,
this code is no longer needed.
- dfg/DFGEdge.h:
(JSC::DFG::Edge::doesNotKill): Deleted.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::doesKill): Deleted.
- 10:47 PM Changeset in webkit [203811] by
-
- 2 edits in trunk/Tools
LayoutTestRelay should wait for WebKitTestRunnerApp installation to complete
https://bugs.webkit.org/show_bug.cgi?id=160262
Reviewed by Daniel Bates.
- LayoutTestRelay/LayoutTestRelay/LTRelayController.m:
(-[LTRelayController installApp]):
- 9:45 PM Changeset in webkit [203810] by
-
- 3 edits in trunk/LayoutTests
Marking http/tests/loading/basic-credentials-sent-automatically.html as flaky on mac and ios-sim wk2
https://bugs.webkit.org/show_bug.cgi?id=159427
Unreivewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 6:59 PM Changeset in webkit [203809] by
-
- 4 edits in trunk/Source/WebKit2
[iOS] Add WKUIDelegate SPI for specifying that an attachment list is from a managed source
https://bugs.webkit.org/show_bug.cgi?id=160280
<rdar://problem/27471815>
Reviewed by Dan Bernstein.
- Platform/spi/ios/UIKitSPI.h: Declared
UIPreviewItemTypeAttachment, UIPreviewDataAttachmentList, and UIPreviewDataAttachmentIndex.
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Declared -_attachmentListForWebView:sourceIsManaged:.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _dataForPreviewItemController:atPosition:type:]): Used UIPreviewItemTypeAttachment,
UIPreviewDataAttachmentList, and UIPreviewDataAttachmentIndex. If uiDelegate responds to
-_attachmentListForWebView:sourceIsManaged:, called it instead of -_attachmentListForWebView:.
Set sourceIsManaged as the value for the UIPreviewDataAttachmentListSourceIsManaged key in dataForPreview.
- 6:36 PM Changeset in webkit [203808] by
-
- 23 edits4 deletes in trunk/Source/JavaScriptCore
[JSC] DFG::Node should not have its own allocator
https://bugs.webkit.org/show_bug.cgi?id=160098
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-27
Reviewed by Geoffrey Garen.
We need some design changes for DFG::Node:
-Accessing the index must be fast. B3 uses indices for sets
and maps, it is a lot faster than hashing pointers.
-We should be able to subclass DFG::Node to specialize it.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- dfg/DFGAllocator.h: Removed.
(JSC::DFG::Allocator::Region::size): Deleted.
(JSC::DFG::Allocator::Region::headerSize): Deleted.
(JSC::DFG::Allocator::Region::numberOfThingsPerRegion): Deleted.
(JSC::DFG::Allocator::Region::data): Deleted.
(JSC::DFG::Allocator::Region::isInThisRegion): Deleted.
(JSC::DFG::Allocator::Region::regionFor): Deleted.
(JSC::DFG::Allocator<T>::Allocator): Deleted.
(JSC::DFG::Allocator<T>::~Allocator): Deleted.
(JSC::DFG::Allocator<T>::allocate): Deleted.
(JSC::DFG::Allocator<T>::free): Deleted.
(JSC::DFG::Allocator<T>::freeAll): Deleted.
(JSC::DFG::Allocator<T>::reset): Deleted.
(JSC::DFG::Allocator<T>::indexOf): Deleted.
(JSC::DFG::Allocator<T>::allocatorOf): Deleted.
(JSC::DFG::Allocator<T>::bumpAllocate): Deleted.
(JSC::DFG::Allocator<T>::freeListAllocate): Deleted.
(JSC::DFG::Allocator<T>::allocateSlow): Deleted.
(JSC::DFG::Allocator<T>::freeRegionsStartingAt): Deleted.
(JSC::DFG::Allocator<T>::startBumpingIn): Deleted.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::addToGraph):
- dfg/DFGCPSRethreadingPhase.cpp:
(JSC::DFG::CPSRethreadingPhase::freeUnnecessaryNodes):
(JSC::DFG::CPSRethreadingPhase::addPhiSilently):
- dfg/DFGCleanUpPhase.cpp:
(JSC::DFG::CleanUpPhase::run):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::run):
- dfg/DFGConstantHoistingPhase.cpp:
- dfg/DFGDCEPhase.cpp:
(JSC::DFG::DCEPhase::fixupBlock):
- dfg/DFGDriver.cpp:
(JSC::DFG::compileImpl):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::deleteNode):
(JSC::DFG::Graph::killBlockAndItsContents):
(JSC::DFG::Graph::~Graph): Deleted.
- dfg/DFGGraph.h:
(JSC::DFG::Graph::addNode):
- dfg/DFGLICMPhase.cpp:
(JSC::DFG::LICMPhase::attemptHoist):
- dfg/DFGLongLivedState.cpp: Removed.
(JSC::DFG::LongLivedState::LongLivedState): Deleted.
(JSC::DFG::LongLivedState::~LongLivedState): Deleted.
(JSC::DFG::LongLivedState::shrinkToFit): Deleted.
- dfg/DFGLongLivedState.h: Removed.
- dfg/DFGNode.cpp:
(JSC::DFG::Node::index): Deleted.
- dfg/DFGNode.h:
(JSC::DFG::Node::index):
- dfg/DFGNodeAllocator.h: Removed.
(operator new ): Deleted.
- dfg/DFGObjectAllocationSinkingPhase.cpp:
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):
- dfg/DFGPlan.h:
- dfg/DFGSSAConversionPhase.cpp:
(JSC::DFG::SSAConversionPhase::run):
- dfg/DFGWorklist.cpp:
(JSC::DFG::Worklist::runThread):
- runtime/VM.cpp:
(JSC::VM::VM): Deleted.
- runtime/VM.h:
- 4:54 PM Changeset in webkit [203807] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Visual Styles Sidebar should have only one column when it's narrow
https://bugs.webkit.org/show_bug.cgi?id=159905
<rdar://problem/27413248>
Reviewed by Joseph Pecoraro.
Many CSS values often get clipped in the two colunm layout. Change the layout to one colunm
when visual style rows get too narrow.
- UserInterface/Views/VisualStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .metric-section-row):
Wrap all rows except for position/padding/margin controls.
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row > .visual-style-property-container:not(.layout-reversed):last-child): Deleted.
Margin between the first and the second column doesn't make sense one column layout.
Set the margin in .visual-style-property-container instead.
- UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype._generateMetricSectionRows):
- UserInterface/Views/VisualStylePropertyEditor.css:
(.visual-style-property-container):
- 4:50 PM Changeset in webkit [203806] by
-
- 9 edits in trunk
First parameter to HTMLMediaElement.canPlayType() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160275
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline w3c test now that more checks are passing.
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
First parameter to HTMLMediaElement.canPlayType() should be mandatory:
Firefox and Chrome agree with the specification.
No new tests, rebaselined existing tests.
- html/HTMLMediaElement.idl:
LayoutTests:
Update existing tests to reflect behavior change.
- media/encrypted-media/encrypted-media-can-play-type.html:
- media/media-can-play-type-expected.txt:
- media/media-can-play-type.html:
- platform/mac/media/encrypted-media/encrypted-media-can-play-type-expected.txt:
- 4:50 PM Changeset in webkit [203805] by
-
- 5 edits in trunk
First parameter to setTimeout() / setInterval() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160277
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline W3C test now that more checks are passing.
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
First parameter to setTimeout() / setInterval() should be mandatory:
Firefox and Chrome agree with the specification.
No new tests, rebaselined existing test.
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::setTimeout):
(WebCore::JSDOMWindow::setInterval):
- bindings/js/JSWorkerGlobalScopeCustom.cpp:
(WebCore::JSWorkerGlobalScope::setTimeout):
(WebCore::JSWorkerGlobalScope::setInterval):
- 4:36 PM Changeset in webkit [203804] by
-
- 2 edits in trunk/Source/WebInspectorUI
[Mac] Web Inspector: CodeMirror-based editor bindings for Home and End don't match system behavior
https://bugs.webkit.org/show_bug.cgi?id=160267
<rdar://problem/27575553>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-27
Reviewed by Brian Burg.
- UserInterface/Views/CodeMirrorEditor.js:
(WebInspector.CodeMirrorEditor.create):
(WebInspector.CodeMirrorEditor):
Add some key map overrides for Home and End to better match system Mac
behavior. This scrolls to the start or end of a document and does not
change the cursor position.
- 4:28 PM Changeset in webkit [203803] by
-
- 3 edits2 adds in trunk
Parameters to insertAdjacentText() / insertAdjacentHTML() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160274
Reviewed by Darin Adler.
Source/WebCore:
Parameters to insertAdjacentText() / insertAdjacentHTML() should be mandatory:
- https://dom.spec.whatwg.org/#element
- https://www.w3.org/TR/DOM-Parsing/#extensions-to-the-element-interface
Firefox and Chrome agree with the specification (although Firefox does not
have insertAdjacentText()).
Test: fast/dom/Element/insertAdjacentText-parameters.html
- html/HTMLElement.idl:
LayoutTests:
Add test coverage.
- fast/dom/Element/insertAdjacentText-parameters-expected.txt: Added.
- fast/dom/Element/insertAdjacentText-parameters.html: Added.
- 4:22 PM Changeset in webkit [203802] by
-
- 7 edits in trunk/Source/JavaScriptCore
[JSC] Fix a bunch of use-after-free of DFG::Node
https://bugs.webkit.org/show_bug.cgi?id=160228
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-27
Reviewed by Mark Lam.
FTL had a few places where we use a node after it has been
deleted. The dangling pointers come from the SSA liveness information
kept on the basic blocks.
This patch fixes the issues I could find and adds liveness invalidation
to help finding dependencies like these.
- dfg/DFGBasicBlock.h:
(JSC::DFG::BasicBlock::SSAData::invalidate):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::run):
Constant folding phase was deleting nodes in the loop over basic blocks.
The problem is the deleted nodes can be referenced by other blocks.
When the abstract interpreter was manipulating the abstract values of those
it was doing so on the dead nodes.
- dfg/DFGConstantHoistingPhase.cpp:
Just invalidation. Nothing wrong here since the useless nodes were
kept live while iterating the blocks.
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::killBlockAndItsContents):
(JSC::DFG::Graph::killUnreachableBlocks):
(JSC::DFG::Graph::invalidateNodeLiveness):
- dfg/DFGGraph.h:
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
We had a lot of use-after-free in LCIM because we were using the stale
live nodes deleted by previous phases.
- 3:34 PM Changeset in webkit [203801] by
-
- 4 edits in trunk/Source/WebCore
Add localizable strings for inserting list types
https://bugs.webkit.org/show_bug.cgi?id=160233
-and corresponding-
rdar://problem/26102954
Reviewed by Dan Bernstein.
- English.lproj/Localizable.strings:
- platform/LocalizedStrings.cpp:
(WebCore::insertListTypeNone):
(WebCore::insertListTypeNoneAccessibilityTitle):
(WebCore::insertListTypeBulleted):
(WebCore::insertListTypeBulletedAccessibilityTitle):
(WebCore::insertListTypeNumbered):
(WebCore::insertListTypeNumberedAccessibilityTitle):
- platform/LocalizedStrings.h:
- 3:15 PM Changeset in webkit [203800] by
-
- 3 edits2 adds in trunk
Parameters to DOMParser.parseFromString() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160268
Reviewed by Ryosuke Niwa.
Source/WebCore:
Parameters to DOMParser.parseFromString() should be mandatory:
Firefox and Chrome agree with the specification.
Test: fast/parser/DOMParser-parameters.html
- xml/DOMParser.idl:
LayoutTests:
Add test coverage.
- fast/parser/DOMParser-parameters-expected.txt: Added.
- fast/parser/DOMParser-parameters.html: Added.
- 3:06 PM Changeset in webkit [203799] by
-
- 4 edits in trunk/Source/WebCore
Captions do not render in PiP window when element is hidden
https://bugs.webkit.org/show_bug.cgi?id=160265
<rdar://problem/27556788>
Reviewed by Simon Fraser.
- html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage): Pass new flag so
caption layers are always rendered.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents): Paint non-visible layers when PaintLayerIgnoreVisibility
flag is set.
- rendering/RenderLayer.h: Define PaintLayerIgnoreVisibility.
- 2:59 PM Changeset in webkit [203798] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
concatAppendOne should allocate using the indexing type of the array if it cannot merge
https://bugs.webkit.org/show_bug.cgi?id=160261
<rdar://problem/27530122>
Reviewed by Mark Lam.
Before, if we could not merge the indexing types for copying, we would allocate the
the array as ArrayWithUndecided. Instead, we should allocate an array with the original
array's indexing type.
- runtime/ArrayPrototype.cpp:
(JSC::concatAppendOne):
- tests/stress/concat-append-one-with-sparse-array.js: Added.
- 2:51 PM Changeset in webkit [203797] by
-
- 11 edits in trunk
Parameter to named property getter should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160269
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline W3C test now that more checks are passing.
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
Parameter to named property getter should be mandatory:
No new tests, rebaselined existing test.
- Modules/mediastream/RTCStatsResponse.idl:
- bindings/scripts/test/TestOverrideBuiltins.idl:
- html/HTMLOptionsCollection.idl:
- html/HTMLSelectElement.idl:
- plugins/DOMMimeTypeArray.idl:
- plugins/DOMPlugin.idl:
- plugins/DOMPluginArray.idl:
- 2:36 PM Changeset in webkit [203796] by
-
- 4 edits in trunk
First parameter to Range.createContextualFragment() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160266
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline W3C test now that one more check is passing.
- web-platform-tests/domparsing/createContextualFragment-expected.txt:
Source/WebCore:
First parameter to Range.createContextualFragment() should be mandatory:
Firefox and Chrome agree with the specification.
No new tests, rebaselined existing test.
- dom/Range.idl:
- 2:33 PM Changeset in webkit [203795] by
-
- 5 edits4 adds in trunk
Align MediaList with the CSSOM specification
https://bugs.webkit.org/show_bug.cgi?id=160257
Reviewed by Ryosuke Niwa.
Source/WebCore:
Align MediaList with the CSSOM specification:
In particular, the parameter to item() / deleteMedium() and
appendMedium() is now mandatory.
Firefox and Chrome agree with the specification.
Test: fast/css/MediaList-mediaText-null.html
fast/css/MediaList-parameters.html
- css/MediaList.idl:
LayoutTests:
- fast/css/MediaList-mediaText-null-expected.txt: Added.
- fast/css/MediaList-mediaText-null.html: Added.
Add test coverage for MediaList.mediaText to make sure it is not nullable
and treats null as the empty string. Our IDL did not match the
specification here but our behavior was correct. Therefore, this test is
passing with and without my change. I just wanted to make sure we had
good coverage since I updated our IDL to match the specification.
- fast/css/MediaList-parameters-expected.txt: Added.
- fast/css/MediaList-parameters.html: Added.
Add test coverage for mandatory parameters.
- fast/dom/non-numeric-values-numeric-parameters-expected.txt:
- fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
Update existing test to reflect behavior change.
- 2:18 PM Changeset in webkit [203794] by
-
- 2 edits in trunk/LayoutTests
Correct the syntax used to skip js/regress/script-tests/bigswitch-indirect-symbol.js
Unreviewed test gardening.
- js/regress/script-tests/bigswitch-indirect-symbol.js:
- 2:11 PM Changeset in webkit [203793] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
We don't optimize for-in properly in baseline JIT (maybe other JITs too) with an object with symbols
https://bugs.webkit.org/show_bug.cgi?id=160211
<rdar://problem/27572612>
Reviewed by Geoffrey Garen.
The fast for-in iteration mode assumes all inline/out-of-line properties
can be iterated in linear order. This is not true if we have Symbols
because Symbols should not be iterated by for-in.
- runtime/Structure.cpp:
(JSC::Structure::add):
- tests/stress/symbol-should-not-break-for-in.js: Added.
(assert):
(foo):
- 2:10 PM Changeset in webkit [203792] by
-
- 2 edits in trunk/Source/WebCore
Fullscreen video zoom button does not work after rotating when aspect ratio matches display.
https://bugs.webkit.org/show_bug.cgi?id=160263
rdar://problem/27368872
Patch by Jeremy Jones <jeremyj@apple.com> on 2016-07-27
Reviewed by Eric Carlson.
When video and display aspect ratio match, and rotating from landscape to protrait, the transform used in layout
will be Identity. This means checking the transform for identity is an insufficient test to see if the bounds
need to be resolved.
Instead, always attempt to resolve the bounds and do a more accurate test while doing so.
- platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerLayer layoutSublayers]):
(-[WebAVPlayerLayer resolveBounds]):
- 2:00 PM Changeset in webkit [203791] by
-
- 3 edits in trunk/Source/WebKit2
[iOS] Remove unused textContentType SPI from _WKFormInputSession
https://bugs.webkit.org/show_bug.cgi?id=160260
Patch by Chelsea Pugh <cpugh@apple.com> on 2016-07-27
Reviewed by Dan Bernstein.
- UIProcess/API/Cocoa/_WKFormInputSession.h: Remove unused SPI.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView textInputTraits]): Set textContentType of _traits to whatever we classify it as based
on the assisted node info. The default textContentType is nil, and that is our fallback in our method
for determining textContentType.
(-[WKFormInputSession textContentType]): Deleted.
(-[WKFormInputSession setTextContentType:]): Deleted.
- 1:55 PM Changeset in webkit [203790] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
The second argument for Function.prototype.apply should be array-like or null/undefined.
https://bugs.webkit.org/show_bug.cgi?id=160212
<rdar://problem/27328525>
Reviewed by Filip Pizlo.
The spec for Function.prototype.apply says its second argument can only be null,
undefined, or must be array-like. See
https://tc39.github.io/ecma262/#sec-function.prototype.apply and
https://tc39.github.io/ecma262/#sec-createlistfromarraylike.
Our previous implementation was not handling this correctly for SymbolType.
This is now fixed.
- interpreter/Interpreter.cpp:
(JSC::sizeOfVarargs):
- tests/stress/apply-second-argument-must-be-array-like.js: Added.
- 1:52 PM Changeset in webkit [203789] by
-
- 2 edits in trunk/Source/WebCore
Stop accepting the deprecated "requiredShippingAddressFields" and "requiredBillingAddressFields" properties
https://bugs.webkit.org/show_bug.cgi?id=160264
rdar://problem/27574519
Reviewed by Simon Fraser.
- Modules/applepay/ApplePaySession.cpp:
(WebCore::createPaymentRequest):
(WebCore::isValidPaymentRequestPropertyName):
- 1:51 PM Changeset in webkit [203788] by
-
- 21 edits in trunk
First parameter to indexed property getters should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160259
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline W3C test now that more checks are passing.
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
First parameter to indexed property getters should be mandatory:
No new tests, rebaselined existing tests.
- Modules/gamepad/deprecated/GamepadList.idl:
- bindings/js/JSHTMLAllCollectionCustom.cpp:
(WebCore::JSHTMLAllCollection::item):
- css/CSSRuleList.idl:
- css/CSSValueList.idl:
- css/StyleSheetList.idl:
- css/WebKitCSSFilterValue.idl:
- css/WebKitCSSTransformValue.idl:
- dom/ClientRectList.idl:
- dom/DOMStringList.idl:
- dom/DataTransferItemList.idl:
- html/HTMLAllCollection.idl:
- plugins/DOMMimeTypeArray.idl:
- plugins/DOMPlugin.idl:
- plugins/DOMPluginArray.idl:
LayoutTests:
Update existing tests to reflect behavior change.
- fast/css/webkit-keyframes-crash.html:
- fast/dom/non-numeric-values-numeric-parameters-expected.txt:
- fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
- 1:05 PM Changeset in webkit [203787] by
-
- 2 edits in trunk/LayoutTests
Land test expectations for rdar://problem/27574303.
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 12:56 PM Changeset in webkit [203786] by
-
- 7 edits in trunk/Source/JavaScriptCore
MathICs should be able to emit only a jump along the inline path when they don't have any type data
https://bugs.webkit.org/show_bug.cgi?id=160110
Reviewed by Mark Lam.
This patch allows for MathIC fast-path generation to be delayed.
We delay when we don't see any observed type information for
the lhs/rhs operand, which implies that the MathIC has never
executed. This is profitable for two main reasons:
- If the math operation never executes, we emit much less code.
- Once we get type information for the lhs/rhs, we can emit better code.
To implement this, we just emit a jump to the slow path call
that will repatch on first execution.
New data for add:
| JetStream | Unity 3D |
------| ------------- Old | 148 bytes | 143 bytes |
------| ------------- New | 116 bytes | 113 bytes |
------------------------------------
New data for mul:
| JetStream | Unity 3D |
------| ------------- Old | 210 bytes | 185 bytes |
------| ------------- New | 170 bytes | 137 bytes |
------------------------------------
- jit/JITAddGenerator.cpp:
(JSC::JITAddGenerator::generateInline):
- jit/JITAddGenerator.h:
(JSC::JITAddGenerator::isLeftOperandValidConstant):
(JSC::JITAddGenerator::isRightOperandValidConstant):
(JSC::JITAddGenerator::arithProfile):
- jit/JITMathIC.h:
(JSC::JITMathIC::generateInline):
(JSC::JITMathIC::generateOutOfLine):
(JSC::JITMathIC::finalizeInlineCode):
- jit/JITMathICInlineResult.h:
- jit/JITMulGenerator.cpp:
(JSC::JITMulGenerator::generateInline):
- jit/JITMulGenerator.h:
(JSC::JITMulGenerator::isLeftOperandValidConstant):
(JSC::JITMulGenerator::isRightOperandValidConstant):
(JSC::JITMulGenerator::arithProfile):
- jit/JITOperations.cpp:
- 11:46 AM Changeset in webkit [203785] by
-
- 2 edits in trunk/Source/WebCore
[css-grid] The isValidTransition function must not alter the GridSizingData object
https://bugs.webkit.org/show_bug.cgi?id=160252
Reviewed by Darin Adler.
It's not correct that a function which purpose is to check out the
validity of a state modifies such state.
That code was there to allow the extra row track sizing iteration
in the case of a grid container with indefinite height. We need to
do that in order to figure out its intrinsic height, which will be
used then to properly sizing the row tracks.
Since the intrinsic height computation uses directly the
computeUsedBreadthOfGridTracks function, it does not alter the
algorithm state-machine, hence, we can safely remove this code,
which was incorrect in any case.
No new tests, it's just a refactoring with no functionality change.
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::GridSizingData::isValidTransition):
- 11:27 AM Changeset in webkit [203784] by
-
- 5 edits2 adds in trunk
First parameter to Document.execCommand() / queryCommand*() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160258
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline W3C test now that more checks are passing.
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
First parameter to Document.execCommand() / queryCommand*() should be mandatory:
Firefox and Chrome agree with the specification.
Test: fast/dom/Document/editing-parameters.html
- dom/Document.idl:
LayoutTests:
Add layout test coverage.
- fast/dom/Document/editing-parameters-expected.txt: Added.
- fast/dom/Document/editing-parameters.html: Added.
- 11:04 AM Changeset in webkit [203783] by
-
- 2 edits in trunk/LayoutTests
Fix a typo in TestExpectations.
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 11:04 AM Changeset in webkit [203782] by
-
- 8 edits2 adds in trunk
Align CSSSupportsRule with the specification
https://bugs.webkit.org/show_bug.cgi?id=160256
Reviewed by Darin Adler.
Source/WebCore:
Align CSSSupportsRule with the specification:
In particular:
- Make the parameters to insertRule() / deleteRule() mandatory
- Expose CSSSupportsRule on the global Window object
Both Firefox and Chrome agree with the specification here.
Test: fast/css/CSSSupportsRule-parameters.html
- css/CSSSupportsRule.idl:
LayoutTests:
- fast/css/CSSSupportsRule-parameters-expected.txt: Added.
- fast/css/CSSSupportsRule-parameters.html: Added.
Add layout test coverage for mandatory parameters.
- platform/efl/js/dom/global-constructors-attributes-expected.txt:
- platform/gtk/js/dom/global-constructors-attributes-expected.txt:
- platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
- platform/mac/js/dom/global-constructors-attributes-expected.txt:
- platform/win/js/dom/global-constructors-attributes-expected.txt:
Rebaseline existing test now that CSSSupportsRule is exposed on the
global Window object.
- 10:15 AM Changeset in webkit [203781] by
-
- 2 edits in trunk/Tools
Disable WebCoreNSURLSessionTest API tests on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=160225
Reviewed by Alexey Proskuryakov.
- TestWebKitAPI/Tests/WebCore/WebCoreNSURLSession.mm:
- 10:03 AM Changeset in webkit [203780] by
-
- 2 edits in trunk/Source/WebKit2
Fix m_isInBackground initialization for Safari View Services
https://bugs.webkit.org/show_bug.cgi?id=160255
<rdar://problem/27569255>
Reviewed by Tim Horton.
Fix m_isInBackground initialization for Safari View Services. The
code was using m_applicationStateMonitor without initializing it.
Instead, use the local applicationStateMonitor and make sure we
invalidate it before it gets released.
- UIProcess/ApplicationStateTracker.mm:
(WebKit::ApplicationStateTracker::ApplicationStateTracker):
- 9:18 AM Changeset in webkit [203779] by
-
- 2 edits in trunk/LayoutTests
[GTK] Unreviewed gardening: update expectations after r203770
https://bugs.webkit.org/show_bug.cgi?id=160253
Unreviewed gardening.
Patch by Miguel Gomez <magomez@igalia.com> on 2016-07-27
- platform/gtk/TestExpectations:
- 9:14 AM Changeset in webkit [203778] by
-
- 2 edits in trunk/Source/WebInspectorUI
Regression(r203535): Uncaught Exception: TypeError: Not enough arguments at LayerTreeDataGridNode.js:47
https://bugs.webkit.org/show_bug.cgi?id=160187
<rdar://problem/27540435>
Reviewed by Eric Carlson.
After r203535, document.createTextNode() requires an argument.
- UserInterface/Views/LayerTreeDataGridNode.js:
(WebInspector.LayerTreeDataGridNode.prototype.createCellContent):
Since this use-site is for creating a cell in an unknown column,
initialize it to '–'. Previously it would have been the string
"undefined" or empty.
- 9:00 AM Changeset in webkit [203777] by
-
- 7 edits5 adds in trunk
[GTK] Fix some video/canvas tests that should be passing
https://bugs.webkit.org/show_bug.cgi?id=160023
Patch by Miguel Gomez <magomez@igalia.com> on 2016-07-27
Reviewed by Carlos Garcia Campos.
Tools:
Add a platform identifier to the TestRunner's page user agent when the tests are run on the
EFL or GTK platforms.
- WebKitTestRunner/efl/TestControllerEfl.cpp:
(WTR::TestController::platformConfigureViewForTest):
- WebKitTestRunner/gtk/TestControllerGtk.cpp:
(WTR::TestController::platformConfigureViewForTest):
LayoutTests:
Modify the tests to use a tolerance of 6 when running on the GTK or EFL platforms. Also,
added new expectations for the tests that need them.
- fast/canvas/canvas-createPattern-video-loading.html:
- fast/canvas/canvas-createPattern-video-modify.html:
- media/video-canvas-createPattern.html:
- platform/efl/fast/canvas/canvas-createPattern-video-loading-expected.txt: Added.
- platform/efl/fast/canvas/canvas-createPattern-video-modify-expected.txt: Added.
- platform/gtk/fast/canvas/canvas-createPattern-video-loading-expected.txt: Added.
- platform/gtk/fast/canvas/canvas-createPattern-video-modify-expected.txt: Added.
- resources/platform-helper.js: Added.
(isGtk):
(isEfl):
(videoCanvasPixelComparisonTolerance):
- 8:58 AM Changeset in webkit [203776] by
-
- 13 edits in trunk/Source/WebKit2
[Coordinated Graphics] Improve scheduling of tasks between threads in CoordinatedGraphicsScene
https://bugs.webkit.org/show_bug.cgi?id=160238
Reviewed by Michael Catanzaro.
This patch makes the following improvements:
- Avoid scheduling tasks to the main thread if the scene is detached.
- Do not take references when not actually sending tasks to another threads.
- Use Function instead of std::function on dispatch methods.
- Remove purgeBackingStores that is actually never called. It's only scheduled from purgeGLResources() that is always called after detach.
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::dispatchOnMainThread):
(WebKit::CoordinatedGraphicsScene::dispatchOnClientRunLoop):
(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebKit::CoordinatedGraphicsScene::updateViewport):
(WebKit::CoordinatedGraphicsScene::onNewBufferAvailable):
(WebKit::CoordinatedGraphicsScene::commitSceneState):
(WebKit::CoordinatedGraphicsScene::renderNextFrame):
(WebKit::CoordinatedGraphicsScene::purgeGLResources):
(WebKit::CoordinatedGraphicsScene::commitScrollOffset):
(WebKit::CoordinatedGraphicsScene::detach):
(WebKit::CoordinatedGraphicsScene::setActive):
(WebKit::CoordinatedGraphicsScene::dispatchCommitScrollOffset): Deleted.
(WebKit::CoordinatedGraphicsScene::purgeBackingStores): Deleted.
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::purgeBackingStores): Deleted.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
- UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::purgeBackingStores): Deleted.
- UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
- WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::invalidate):
- WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
- WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::invalidate):
(WebKit::CoordinatedLayerTreeHost::purgeBackingStores): Deleted.
- WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
- WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.messages.in:
- WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
- 8:52 AM Changeset in webkit [203775] by
-
- 2 edits in trunk/Source/WebCore
[Soup] Test http/tests/xmlhttprequest/auth-reject-protection-space.html fails since added in r203743
https://bugs.webkit.org/show_bug.cgi?id=160235
Reviewed by Michael Catanzaro.
It times out in release and crashes in debug due to an ASSERT_NOT_REACHED(). The soup backend doesn't really
support rejecting the protection space and continuing with the next one, but we can at least continue with the
request without crendential to make the test pass.
- platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandle::receivedChallengeRejection):
- 8:50 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 8:49 AM Changeset in webkit [203774] by
-
- 2 edits in trunk/Source/WebKit2
[GTK] Remove network setup from web process
https://bugs.webkit.org/show_bug.cgi?id=160236
Reviewed by Michael Catanzaro.
We are still doing network init and finish in th web process. It's useless since we switched to mandatory
network process.
- WebProcess/gtk/WebProcessMainGtk.cpp:
- 8:49 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 8:30 AM Changeset in webkit [203773] by
-
- 2 edits in trunk/Tools
[Tools] The built product doesn't contains the dwo files when DEBUG_FISSION is enabled.
https://bugs.webkit.org/show_bug.cgi?id=160247
Reviewed by Michael Catanzaro.
- BuildSlaveSupport/built-product-archive:
(createZip):
(dirContainsdwo):
(archiveBuiltProduct):
- 3:40 AM Changeset in webkit [203772] by
-
- 23 edits4 moves in trunk
[Streams API] Replace ReadableStreamReader by ReadableStreamDefaultReader
https://bugs.webkit.org/show_bug.cgi?id=160194
Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-07-27
Reviewed by Youenn Fablet.
Replaced ReadableStreamReader by ReadableStreamDefaultReader to align
with updated Streams API specification.
No change in functionality.
Source/WebCore:
- CMakeLists.txt:
- DerivedSources.cpp:
- DerivedSources.make:
- Modules/fetch/FetchInternals.js:
(consumeStream):
- Modules/fetch/FetchResponse.js:
(body):
- Modules/streams/ReadableStream.js:
(getReader):
- Modules/streams/ReadableStreamDefaultReader.idl: Renamed from Source/WebCore/Modules/streams/ReadableStreamReader.idl.
- Modules/streams/ReadableStreamDefaultReader.js: Renamed from Source/WebCore/Modules/streams/ReadableStreamReader.js.
(cancel):
(read):
(releaseLock):
(closed):
- Modules/streams/ReadableStreamInternals.js:
(privateInitializeReadableStreamDefaultReader):
(teeReadableStream):
(teeReadableStreamPullFunction):
(isReadableStreamDefaultReader):
(closeReadableStream):
(readFromReadableStreamDefaultReader):
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
(WebCore::JSDOMGlobalObject::finishCreation):
- bindings/js/JSReadableStreamPrivateConstructors.cpp:
(WebCore::constructJSReadableStreamDefaultReader):
(WebCore::JSBuiltinReadableStreamDefaultReaderPrivateConstructor::initializeExecutable):
(WebCore::createReadableStreamDefaultReaderPrivateConstructor):
- bindings/js/JSReadableStreamPrivateConstructors.h:
- bindings/js/WebCoreBuiltinNames.h:
- features.json:
LayoutTests:
- streams/brand-checks.html:
- streams/readable-stream-controller-error-expected.txt:
- streams/readable-stream-controller-error.html:
- streams/readable-stream-default-reader-read-expected.txt: Renamed from LayoutTests/streams/readable-stream-reader-read-expected.txt.
- streams/readable-stream-default-reader-read.html: Renamed from LayoutTests/streams/readable-stream-reader-read.html.
- streams/readable-stream-error-messages-expected.txt:
- streams/readable-stream-error-messages.html:
- streams/reference-implementation/readable-stream-reader-expected.txt:
- streams/shadowing-Promise-expected.txt:
- streams/shadowing-Promise.html:
- 3:07 AM Changeset in webkit [203771] by
-
- 4 edits6 adds in trunk
[css-grid] Handle alignment with orthogonal flows
https://bugs.webkit.org/show_bug.cgi?id=159295
Reviewed by Darin Adler.
Now that grid sizing and positioning issues wrt orthogonal flows have
been clarified in the last spec draft, we can adapt now our alignment
logic to work with orthogonal flows.
Source/WebCore:
Even though basic alignment would work with orthogonal flows with
this patch, we still doesn't allow stretching in that case. I'll provide a
patch for that feature since it's a complex logic and better have an
isolated change.
Tests: fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-lr.html
fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-rl.html
fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows.html
- rendering/RenderGrid.cpp:
(WebCore::computeOverflowAlignmentOffset): Using 'size' instead of 'breadth' as concept.
(WebCore::RenderGrid::columnAxisPositionForChild): Dealing with orthogonal flow cases.
(WebCore::RenderGrid::rowAxisPositionForChild): Dealing with orthogonal flow cases.
(WebCore::RenderGrid::columnAxisOffsetForChild): Using 'size' instead of 'breadth' as concept.
(WebCore::RenderGrid::rowAxisOffsetForChild): Using 'size' instead of 'breadth' as concept.
(WebCore::RenderGrid::findChildLogicalPosition): Dealing with orthogonal flow cases.
LayoutTests:
These tests ensure that alignment works as expected in the cases where
grid and its children are orthogonal.
- fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-expected.txt: Added.
- fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-lr-expected.txt: Added.
- fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-lr.html: Added.
- fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-rl-expected.txt: Added.
- fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-rl.html: Added.
- fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows.html: Added.
- fast/css-grid-layout/resources/grid-alignment.css:
(.alignContentSpaceBetween):
(.alignContentSpaceAround):
(.alignContentSpaceEvenly):
(.alignContentStretch):
(.selfStart):
(.selfEnd):
(.selfCenter):
(.selfRight):
(.selfLeft):
(.selfSelfStart):
(.selfSelfEnd):
(.itemsSelfEnd): Deleted.
- 12:42 AM Changeset in webkit [203770] by
-
- 2 edits in trunk/Source/WebKit/win
Fix Win debug build after r203749.
- WebView.cpp:
- 12:06 AM Changeset in webkit [203769] by
-
- 1 copy in releases/WebKitGTK/webkit-2.13.4
WebKitGTK+ 2.13.4
- 12:03 AM Changeset in webkit [203768] by
-
- 4 edits in trunk
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.13.4 release.
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit2:
- gtk/NEWS: Add release notes for 2.13.4.
Jul 26, 2016:
- 11:38 PM Changeset in webkit [203767] by
-
- 21 edits1 copy1 add in trunk
[Fetch API] Response constructor should be able to take a ReadableStream as body
https://bugs.webkit.org/show_bug.cgi?id=159804
Patch by Youenn Fablet <youenn@apple.com> on 2016-07-26
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/fetch/api/response/response-consume-empty-expected.txt:
- web-platform-tests/fetch/api/response/response-consume-expected.txt:
- web-platform-tests/fetch/api/response/response-consume.html: Updating test to exercice Response coonstructor with a ReadableStream.
Source/WebCore:
Covered by existing and updated tests.
Introduced FetchBodyConsumer to encapsulate the code responsible to adapt FetchBody internal data to the requests made by user scripts.
This refactoring eases the handling of internal data coming from ReadableStream.
FetchLoader is now delegating conversion from the data to its m_consumer field.
If m_consumer is null, FetchLoader calls FetchLoaderClient::didReceiveData (streaming reception mode).
Clients of FetchLoader needs to pass a FetchBodyConsumer to the FetchLoader to do the data adaptation at loader creation time.
Added support for body data passed as a ReadableStream to Response.
This requires to set @body internal slot of the Response object in the constructor initialization JS built-in.
To actually use that data, Body accessors are also implemented as JS built-in for Response.
Since there is no need to do so for Request, FetchResponse is no longer marked as implementing FetchBody but all
FetchBody IDL description is inlined in FetchResponse.idl.
For each body accessor (arrayBuffer, blob, json, text), the corresponding JS built-in checks whether @body internal slot is set.
If that is not the case, regular handling is done through a new private method called @consume.
If @body internal slot is set, chunks are pumped from the ReadableStream using ReadableStream internal built-ins functions.
Data handling is done in C++ through the private methods @startConsumingStream, @consumeChunk and @finishConsumingStream.
To support cloning of Response with bodies, clone method is also implemented as a JS built-in.
Main clone is done through @cloneFoJS private method implemented in C++.
JS built-in clone code does the teeing of the ReadableStream using ReadableStream JS built-in internal functions.
Introducing a new ReadableStream type for FetchBody to cope with body being stored in a ReadableStream.
Introducing a new Loaded type for FetchBody to cope with body being stored in the FetchBodyConsumer owned by FetchBody.
This allows removing the conversion of data to JSC::ArrayBuffer which was done by defaut at the end of Fetch loading if user script did not request data before.
At the end of a load, the data remains in FetchBodyConsumer and the body is marked as Loaded.
If the user wants to get the data after data finished being loaded, FetchBodyConsumer will do the required conversions.
Introducing DeferredWrapper::resolveWithNewValue to handle the case of resolving promises with new objects.
This allows directly using toJSNewlyCreated instead of toJS.
- CMakeLists.txt: Adding FetchBodyConsumer.cpp. Removing WebCoreJSBuiltins.cpp from CMake list as it is not needed.
- Modules/fetch/FetchBody.cpp: Moving data adaptation code to FetchBodyConsumer.
(WebCore::FetchBody::extract):
(WebCore::FetchBody::arrayBuffer):
(WebCore::FetchBody::blob): Setting contentType in FetchBodyConsumer to handle proper creation of blob.
(WebCore::FetchBody::json):
(WebCore::FetchBody::text):
(WebCore::FetchBody::consume): Refactoring and added case of Loaded bodies.
(WebCore::FetchBody::consumeAsStream): Ditto.
(WebCore::FetchBody::consumeArrayBuffer):
(WebCore::FetchBody::consumeText):
(WebCore::FetchBody::consumeBlob):
(WebCore::FetchBody::loadingFailed):
(WebCore::FetchBody::loadingSucceeded):
(WebCore::FetchBody::loadingType): Deleted.
(WebCore::blobFromArrayBuffer): Deleted.
(WebCore::FetchBody::fulfillTextPromise): Deleted.
(WebCore::FetchBody::loadedAsArrayBuffer): Deleted.
(WebCore::FetchBody::loadedAsText): Deleted.
- Modules/fetch/FetchBody.h:
(WebCore::FetchBody::consumer):
- Modules/fetch/FetchBodyConsumer.cpp: Added, responsible of data adaptation.
(WebCore::blobFromData):
(WebCore::FetchBodyConsumer::resolveWithData):
(WebCore::FetchBodyConsumer::resolve):
(WebCore::FetchBodyConsumer::append):
(WebCore::FetchBodyConsumer::takeData):
(WebCore::FetchBodyConsumer::takeAsArrayBuffer):
(WebCore::FetchBodyConsumer::takeAsBlob):
(WebCore::FetchBodyConsumer::takeAsText):
- Modules/fetch/FetchBodyConsumer.h: Added.
(WebCore::FetchBodyConsumer::FetchBodyConsumer):
(WebCore::FetchBodyConsumer::setContentType):
(WebCore::FetchBodyConsumer::setType):
(WebCore::FetchBodyConsumer::type):
(WebCore::FetchBodyConsumer::clean):
(WebCore::FetchBodyConsumer::hasData):
- Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::loadBlob):
(WebCore::FetchBodyOwner::blobLoadingSucceeded):
(WebCore::FetchBodyOwner::loadedBlobAsText): Deleted.
- Modules/fetch/FetchBodyOwner.h:
(WebCore::FetchBodyOwner::loadedBlobAsArrayBuffer): Deleted.
- Modules/fetch/FetchInternals.js:
(consumeStream): Pump ReadableStream data and send it to FetchResponse to be converted according user need.
- Modules/fetch/FetchLoader.cpp:
(WebCore::FetchLoader::FetchLoader): FetchLoader is simplified as it has two nodes: consumer mode in which case
data is sent to the consumer and no-consumer mode in which case data is passed to loader client. The second mode
is used to conveyy data to ReadableStream source.
(WebCore::FetchLoader::stop):
(WebCore::FetchLoader::startStreaming):
(WebCore::FetchLoader::didReceiveData):
(WebCore::FetchLoader::didFinishLoading): Deleted.
- Modules/fetch/FetchLoader.h:
- Modules/fetch/FetchLoaderClient.h:
(WebCore::FetchLoaderClient::didFinishLoadingAsText): Deleted.
(WebCore::FetchLoaderClient::didFinishLoadingAsArrayBuffer): Deleted.
- Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::cloneForJS):
(WebCore::FetchResponse::BodyLoader::didSucceed):
(WebCore::FetchResponse::BodyLoader::start):
(WebCore::FetchResponse::consume): Introduced to consume data stored in body and not in ReadableStream.
(WebCore::FetchResponse::startConsumingStream): Introduced to start process of consuming data stored in the ReadableStream.
(WebCore::FetchResponse::consumeChunk): Reception of ReadableStream data.
(WebCore::FetchResponse::finishConsumingStream): Doing the final conversion.
(WebCore::FetchResponse::clone): Deleted.
(WebCore::FetchResponse::BodyLoader::didFinishLoadingAsArrayBuffer): Deleted.
- Modules/fetch/FetchResponse.h:
- Modules/fetch/FetchResponse.idl: Inlining of FetchBody methods/attributes and adding private methods.
- Modules/fetch/FetchResponse.js:
(initializeFetchResponse):
(clone):
(arrayBuffer):
(blob):
(formData):
(json):
(text):
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMPromise.h:
(WebCore::DeferredWrapper::resolveWithNewValue):
- bindings/js/WebCoreBuiltinNames.h:
- 11:37 PM Changeset in webkit [203766] by
-
- 10 edits4 adds in trunk
JS Built-ins should throw this-error messages consistently with binding generated code
https://bugs.webkit.org/show_bug.cgi?id=160191
Patch by Youenn Fablet <youennf@gmail.com> on 2016-07-26
Reviewed by Darin Adler.
Source/WebCore:
Introducing @makeThisTypeError and @makeGetterTypeError to create TypeError objects with a consistent error message.
Making use of these functions in streams API and fetch API related built-in code.
Refactored JSDOMBinding.cpp code by adding makeThisTypeErrorMessage and makeGetterTypeErrorMessage helper routines
These routines are used by both new built-in functions as well as binding generated code helper routine.
Tests: fetch/fetch-error-messages.html
streams/readable-stream-error-messages.html
- Modules/fetch/FetchResponse.js:
(body): Adding an explicit check so that the error message is right. The previous error message was related to the call of Response.@isDisturbed.
- Modules/streams/ReadableStream.js:
(cancel):
(getReader):
(pipeTo):
(tee):
(locked):
- Modules/streams/ReadableStreamController.js:
(enqueue):
(error):
(close):
(desiredSize):
- Modules/streams/ReadableStreamReader.js:
(cancel):
(read):
(releaseLock):
(closed):
- bindings/js/JSDOMBinding.cpp:
(WebCore::makeGetterTypeErrorMessage):
(WebCore::throwGetterTypeError):
(WebCore::makeThisTypeErrorMessage):
(WebCore::throwThisTypeError):
(WebCore::throwSequenceTypeError): Deleted.
(WebCore::throwSetterTypeError): Deleted.
- bindings/js/JSDOMBinding.h:
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::makeThisTypeErrorForBuiltins):
(WebCore::makeGetterTypeErrorForBuiltins):
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
- bindings/js/WebCoreBuiltinNames.h:
LayoutTests:
- fetch/fetch-error-messages-expected.txt: Added.
- fetch/fetch-error-messages.html: Added.
- streams/readable-stream-error-messages-expected.txt: Added.
- streams/readable-stream-error-messages.html: Added.
- 11:35 PM Changeset in webkit [203765] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed. Fix GTK+ distcheck build.
wtf/spi/darwin/dyldSPI.h is not included in GTK+ release tarballs.
- html/HTMLObjectElement.cpp: Include wtf/spi/darwin/dyldSPI.h only for iOS.
- html/MediaElementSession.cpp: Ditto.
- 11:20 PM Changeset in webkit [203764] by
-
- 5 edits4 adds in trunk
[iOS] SF-Heavy is inaccessible by web content
https://bugs.webkit.org/show_bug.cgi?id=160186
<rdar://problem/27434423>
Reviewed by Dean Jackson.
Source/WebCore:
Once we create the system font, we need to modify it with the appropriate weight.
This is because the CoreText API we use to get the system font on iOS does not
let us choose the exact weight we want.
Test: fast/text/system-font-weight.html
- platform/graphics/ios/FontCacheIOS.mm:
(WebCore::baseSystemFontDescriptor):
(WebCore::systemFontModificationAttributes):
(WebCore::systemFontDescriptor):
(WebCore::platformFontWithFamilySpecialCase):
- platform/spi/cocoa/CoreTextSPI.h:
LayoutTests:
- platform/ios-simulator/TestExpectations: system-font-weight-italic.html
is expected to fail on iOS 9.
- fast/text/system-font-weight-italic-expected.txt: Added.
- fast/text/system-font-weight-italic.html: Added.
- fast/text/system-font-weight-expected.txt: Added.
- fast/text/system-font-weight.html: Added.
- 10:31 PM Changeset in webkit [203763] by
-
- 2 edits in trunk/LayoutTests
Skip failing JSC test regress/script-tests/bigswitch-indirect-symbol.js
https://bugs.webkit.org/show_bug.cgi?id=160035
Unreviewed test gardening.
- js/regress/script-tests/bigswitch-indirect-symbol.js:
- 10:20 PM Changeset in webkit [203762] by
-
- 2 edits in trunk/Source/WebCore
[GTK] ASSERTION FAILED: !m_adoptionIsRequired when Inspector Server is connected
https://bugs.webkit.org/show_bug.cgi?id=160229
Patch by Fujii Hironori <Fujii Hironori> on 2016-07-26
Reviewed by Carlos Garcia Campos.
An assertion fails because refcount of SocketStreamHandle is
incremented before adoptRef, in the constructor of
SocketStreamHandle. The constructor of SocketStreamHandle needs
to increment recount because it passes this pointer to libsoup.
- platform/network/soup/SocketStreamHandleSoup.cpp:
(WebCore::SocketStreamHandle::SocketStreamHandle): Do
relaxAdoptionRequirement() as well as the another constructor.
- 9:27 PM Changeset in webkit [203761] by
-
- 9 edits in trunk
Move 'dir' attribute from HTMLDocument to Document
https://bugs.webkit.org/show_bug.cgi?id=160231
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Rebaseline W3C test now that more checks are passing.
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
Move 'dir' attribute from HTMLDocument to Document to match the
specification:
Both Firefox and Chrome have 'dir' on Document already.
No new tests, rebaselined existing test.
- dom/Document.cpp:
(WebCore::Document::dir):
(WebCore::Document::setDir):
- dom/Document.h:
- dom/Document.idl:
- html/HTMLDocument.cpp:
(WebCore::HTMLDocument::dir): Deleted.
(WebCore::HTMLDocument::setDir): Deleted.
- html/HTMLDocument.h:
- html/HTMLDocument.idl:
- 9:12 PM Changeset in webkit [203760] by
-
- 8 edits2 adds in trunk
Second parameter to History.pushState() / replaceState() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160230
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Rebaseline W3C test now that more checks are passing.
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
Second parameter to History.pushState() / replaceState() should be mandatory:
Firefox and Chrome agree with the specification.
No new tests, rebaselined existing test.
- bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):
- page/History.idl:
LayoutTests:
- fast/history/state-api-parameters.html: Added.
- fast/history/state-api-parameters-expected.txt: Added.
Add layout test coverage.
- fast/history/replacestate-nocrash.html:
- fast/loader/stateobjects/popstate-fires-with-page-cache.html:
Update existing tests to reflect behavior change.
- 8:42 PM Changeset in webkit [203759] by
-
- 4 edits in trunk
Align Node.isEqualNode() with the specification
https://bugs.webkit.org/show_bug.cgi?id=160224
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Rebaseline W3C test now that one more check is passing. We are now
passing all the checks in this test like Firefox and Chrome.
- web-platform-tests/dom/nodes/Node-isEqualNode-expected.txt:
Source/WebCore:
Align our implementation for Node.isEqualNode() to match more closely
the text of the specification:
- https://dom.spec.whatwg.org/#dom-node-isequalnode
- https://dom.spec.whatwg.org/#concept-node-equals
This also fixes a bug where isEqualNode() would sometimes return false
wrongly for elements because we were comparing the value returned by
nodeName() which returns the tagName of elements. The issue was that
the tagName's case may differ depending on the element being in an
HTMLDocument or not. We now compare Element::tagQName() instead which
ends up comparing namespace / namespace prefix and localName, as per
the specification. The new behavior matches Firefox and Chrome and
helps us pass an extra W3C test.
No new tests, rebaselined existing test.
- dom/Node.cpp:
(WebCore::Node::isEqualNode):
- 6:23 PM Changeset in webkit [203758] by
-
- 10 edits in trunk/Source/JavaScriptCore
rollout r203666
https://bugs.webkit.org/show_bug.cgi?id=160226
Unreviewed rollout.
- b3/B3BasicBlock.h:
(JSC::B3::BasicBlock::successorBlock):
- b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::createGenericCompare):
- b3/B3LowerToAir.h:
- b3/air/AirArg.cpp:
(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::usesTmp):
- b3/air/AirArg.h:
(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::asNumber):
(JSC::B3::Air::Arg::castToType): Deleted.
- b3/air/AirCode.h:
(JSC::B3::Air::Code::size):
(JSC::B3::Air::Code::at):
- b3/air/AirOpcode.opcodes:
- b3/air/AirValidate.h:
- b3/air/opcode_generator.rb:
- b3/testb3.cpp:
(JSC::B3::compileAndRun):
(JSC::B3::testSomeEarlyRegister):
(JSC::B3::zero):
(JSC::B3::run):
(JSC::B3::lowerToAirForTesting): Deleted.
(JSC::B3::testBranchBitAndImmFusion): Deleted.
- 5:45 PM Changeset in webkit [203757] by
-
- 2 edits in trunk/LayoutTests
Marking inspector/memory/tracking.html as flaky on El Capitan Debug WK1
https://bugs.webkit.org/show_bug.cgi?id=160227
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 5:44 PM Changeset in webkit [203756] by
-
- 4 edits in trunk/Source/WebKit
Fix the Windows debug build.
WebResourceLoadScheduler's logging was a holdover from it being in WebCore,
and prior to r203749 WebKit was actually using a WebCore log channel.
For some reason this doesn't build on Windows debug, so just remove
this logging for now.
Source/WebKit:
- WebCoreSupport/WebResourceLoadScheduler.cpp:
(WebResourceLoadScheduler::scheduleLoad): Deleted.
(WebResourceLoadScheduler::servePendingRequests): Deleted.
(WebResourceLoadScheduler::scheduleServePendingRequests): Deleted.
(WebResourceLoadScheduler::requestTimerFired): Deleted.
(WebResourceLoadScheduler::HostInformation::addLoadInProgress): Deleted.
Source/WebKit/mac:
- Misc/WebKitLogging.h:
- 4:40 PM Changeset in webkit [203755] by
-
- 2 edits in trunk/Tools
Fix tests after r203743.
https://bugs.webkit.org/show_bug.cgi?id=156947
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetStateToConsistentValues):
Reset the new boolean m_rejectsProtectionSpaceAndContinueForAuthenticationChallenges.
- 4:39 PM Changeset in webkit [203754] by
-
- 6 edits in trunk/Source
Sort the project files.
Source/WebCore:
- WebCore.xcodeproj/project.pbxproj:
Source/WebKit:
- WebKit.xcodeproj/project.pbxproj:
Source/WebKit2:
- WebKit2.xcodeproj/project.pbxproj:
- 4:37 PM Changeset in webkit [203753] by
-
- 4 edits4 adds in trunk
Align CSSKeyframesRule with the specification
https://bugs.webkit.org/show_bug.cgi?id=160219
Reviewed by Darin Adler.
Source/WebCore:
Align CSSKeyframesRule with the specification:
In particular, the parameter to insertRule() / appendRule() /
deleteRule() / findRule() should be mandatory. Both Firefox and Chrome
agree with the specification here.
Also, the CSSKeyframesRule.name attribute should not be nullable.
Chrome agrees with the specification. However, Firefox, has the
attribute nullable. This patch aligns our behavior with Chrome and
the specification.
Tests: animations/CSSKeyframesRule-name-null.html
animations/CSSKeyframesRule-parameters.html
- css/CSSKeyframesRule.h:
(WebCore::StyleRuleKeyframes::name):
(WebCore::StyleRuleKeyframes::setName):
- css/CSSKeyframesRule.idl:
LayoutTests:
Add layout test coverage.
- animations/CSSKeyframesRule-name-null-expected.txt: Added.
- animations/CSSKeyframesRule-name-null.html: Added.
- animations/CSSKeyframesRule-parameters-expected.txt: Added.
- animations/CSSKeyframesRule-parameters.html: Added.
- 4:36 PM Changeset in webkit [203752] by
-
- 28 edits2 adds in trunk
[iPhone] Playing a video on tudou.com plays only sound, no video
https://bugs.webkit.org/show_bug.cgi?id=160178
<rdar://problem/27535468>
Source/WebCore:
Reviewed by Eric Carlson and Dan Bernstein.
This patch re-implements r203520 in a much simpler way which doesn't involve a new SPI.
The biggest problem with r203520 is that it make it impossible for a WKWebView to match
MobileSafari's behavior. Instead of adding this new SPI, a simple version check should
be used to keep old apps working.
The new behavior is characterized by the following table:
| iOS | Non-iOS
=============================================================================================
requiresPlayInlineAttribute == true | Old app: honor -webkit-playsinline | honor playsinline
| New app: honor playsinline | honor playsinline
requiresPlayInlineAttribute == false | Always inline | Always inline
Specifically, this patch reverts r203545 which is the commit which actually removes
the old SPI. As soon as Safari is migrated back to this old SPI, I'll remove the two
new SPIs added in r203520.
Tests: media/video-playsinline.html
media/video-webkit-playsinline.html
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):
- page/Settings.cpp:
- page/Settings.in:
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setInlineMediaPlaybackRequiresPlaysInlineAttribute):
- testing/InternalSettings.h:
- testing/InternalSettings.idl:
Source/WebKit/mac:
Reviewed by Eric Carlson and Dan Bernstein.
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences inlineMediaPlaybackRequiresPlaysInlineAttribute]):
(-[WebPreferences setInlineMediaPlaybackRequiresPlaysInlineAttribute:]):
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Source/WebKit2:
Reviewed by Eric Carlson and Dan Bernstein.
- Shared/WebPreferencesDefinitions.h:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetInlineMediaPlaybackRequiresPlaysInlineAttribute):
(WKPreferencesGetInlineMediaPlaybackRequiresPlaysInlineAttribute):
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _inlineMediaPlaybackRequiresPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setInlineMediaPlaybackRequiresPlaysInlineAttribute:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Tools:
Reviewed by Dan Bernstein.
- DumpRenderTree/mac/DumpRenderTree.mm:
(setDefaultsToConsistentValuesForTesting):
- TestWebKitAPI/Tests/WebKit2Cocoa/RequiresUserActionForPlayback.mm:
(RequiresUserActionForPlaybackTest::SetUp):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::initializeWebViewConfiguration):
LayoutTests:
Reviewed by Eric Carlson and Dan Bernstein.
- media/video-playsinline-expected.txt:
- media/video-playsinline.html:
- media/video-webkit-playsinline-expected.txt: Added.
- media/video-webkit-playsinline.html: Added.
- 4:33 PM Changeset in webkit [203751] by
-
- 4 edits in trunk/Source/WebCore
Move RenderView::shouldDisableLayoutStateForSubtree to SubtreeLayoutStateMaintainer.
https://bugs.webkit.org/show_bug.cgi?id=160215
Reviewed by Darin Adler and Simon Fraser.
No change in functionality.
- page/FrameView.cpp:
(WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer):
- rendering/RenderView.cpp:
(WebCore::RenderView::shouldDisableLayoutStateForSubtree):
- rendering/RenderView.h:
- 4:31 PM Changeset in webkit [203750] by
-
- 5 edits2 deletes in trunk/Source/WebKit2
Remove unused DownloadAuthenticationClient
https://bugs.webkit.org/show_bug.cgi?id=160220
Patch by Alex Christensen <achristensen@webkit.org> on 2016-07-26
Reviewed by Darin Adler.
- CMakeLists.txt:
- NetworkProcess/Downloads/Download.cpp:
- NetworkProcess/Downloads/Download.h:
- NetworkProcess/Downloads/DownloadAuthenticationClient.cpp: Removed.
- NetworkProcess/Downloads/DownloadAuthenticationClient.h: Removed.
- WebKit2.xcodeproj/project.pbxproj:
- 4:30 PM Changeset in webkit [203749] by
-
- 28 edits1 copy2 adds in trunk
Allow LOG macros to be used outside the namespace, and other logging cleanup
https://bugs.webkit.org/show_bug.cgi?id=160216
Reviewed by Anders Carlsson.
Source/WebCore:
Fix some issues with the LOG macros.
First, they were not usable outside the WebKit namespace in WebKit2 code. Fix by moving
its log channels outside of the namespace (they are protected by a unique prefix anyway).
Second, allow LOG_WITH_STREAM to be used in WebKit2 by moving that and a helper macro
into LogMacros.h, which is exported from WebCore as a private header.
Third, split the Logging.h header into two. Logging.h remains for framework-internal
log channels and log macros. Add LogInitialization.h which is external, and used to
initialize the channels.
Finally unify "initializeLogChannels" and "initializeLoggingChannels" terminology everywhere.
- WebCore.xcodeproj/project.pbxproj:
- platform/LogInitialization.h: Added.
- platform/LogMacros.h: Added.
- platform/Logging.cpp:
(WebCore::initializeLogChannelsIfNecessary):
(WebCore::initializeLoggingChannelsIfNecessary): Deleted.
- platform/Logging.h:
- testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::initializeLogChannelsIfNecessary):
(WebCoreTestSupport::initializeLoggingChannelsIfNecessary): Deleted.
- testing/js/WebCoreTestSupport.h:
Source/WebKit:
Fix some issues with the LOG macros.
First, they were not usable outside the WebKit namespace in WebKit2 code. Fix by moving
its log channels outside of the namespace (they are protected by a unique prefix anyway).
Second, allow LOG_WITH_STREAM to be used in WebKit2 by moving that and a helper macro
into LogMacros.h, which is exported from WebCore as a private header.
Third, split the Logging.h header into two. Logging.h remains for framework-internal
log channels and log macros. Add LogInitialization.h which is external, and used to
initialize the channels.
Finally unify "initializeLogChannels" and "initializeLoggingChannels" terminology everywhere.
- WebCoreSupport/WebResourceLoadScheduler.cpp:
Source/WebKit/mac:
Fix some issues with the LOG macros.
First, they were not usable outside the WebKit namespace in WebKit2 code. Fix by moving
its log channels outside of the namespace (they are protected by a unique prefix anyway).
Second, allow LOG_WITH_STREAM to be used in WebKit2 by moving that and a helper macro
into LogMacros.h, which is exported from WebCore as a private header.
Third, split the Logging.h header into two. Logging.h remains for framework-internal
log channels and log macros. Add LogInitialization.h which is external, and used to
initialize the channels.
Finally unify "initializeLogChannels" and "initializeLoggingChannels" terminology everywhere.
- Misc/WebKitLogging.h:
- Misc/WebKitLogging.m:
- WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
Source/WebKit/win:
Fix some issues with the LOG macros.
First, they were not usable outside the WebKit namespace in WebKit2 code. Fix by moving
its log channels outside of the namespace (they are protected by a unique prefix anyway).
Second, allow LOG_WITH_STREAM to be used in WebKit2 by moving that and a helper macro
into LogMacros.h, which is exported from WebCore as a private header.
Third, split the Logging.h header into two. Logging.h remains for framework-internal
log channels and log macros. Add LogInitialization.h which is external, and used to
initialize the channels.
Finally unify "initializeLogChannels" and "initializeLoggingChannels" terminology everywhere.
- WebKitLogging.cpp:
- WebKitLogging.h:
- WebView.cpp:
(WebView::initWithFrame):
Source/WebKit2:
Fix some issues with the LOG macros.
First, they were not usable outside the WebKit namespace in WebKit2 code. Fix by moving
its log channels outside of the namespace (they are protected by a unique prefix anyway).
Second, allow LOG_WITH_STREAM to be used in WebKit2 by moving that and a helper macro
into LogMacros.h, which is exported from WebCore as a private header.
Third, split the Logging.h header into two. Logging.h remains for framework-internal
log channels and log macros. Add LogInitialization.h which is external, and used to
initialize the channels.
Finally unify "initializeLogChannels" and "initializeLoggingChannels" terminology everywhere.
- NetworkProcess/NetworkProcess.cpp:
- Platform/LogInitialization.h: Copied from Source/WebKit2/Platform/foundation/LoggingFoundation.mm.
- Platform/Logging.cpp:
(WebKit::initializeLogChannelsIfNecessary):
- Platform/Logging.h:
- Platform/foundation/LoggingFoundation.mm:
- Shared/WebKit2Initialize.cpp:
(WebKit::InitializeWebKit2):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _updateContentRectsWithState:]):
(-[WKWebView _navigationGestureDidBegin]):
- UIProcess/WebProcessPool.cpp:
(WebKit::m_hiddenPageThrottlingTimer):
- WebKit2.xcodeproj/project.pbxproj:
Tools:
initializeLoggingChannelsIfNecessary -> initializeLogChannelsIfNecessary
- DumpRenderTree/TestRunner.cpp:
- DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebViewToConsistentStateBeforeTesting):
- 4:15 PM Changeset in webkit [203748] by
-
- 2 edits in trunk/Websites/perf.webkit.org
REGRESSION: Tooltip for analysis tasks doesn't show up on charts
https://bugs.webkit.org/show_bug.cgi?id=160221
Rubber-stamped by Chris Dumez.
The bug was caused by ChartPaneBase resetting annotation bars every time the current point has moved.
Avoid doing this in ChartPaneBase's _renderAnnotations().
- public/v3/components/chart-pane-base.js:
(ChartPaneBase):
(ChartPaneBase.prototype.fetchAnalysisTasks):
(ChartPaneBase.prototype._renderAnnotations):
- 4:06 PM Changeset in webkit [203747] by
-
- 3 edits2 moves in trunk/Source/JavaScriptCore
[JSC] Object.getOwnPropertyDescriptors should not add undefined props to result
https://bugs.webkit.org/show_bug.cgi?id=159409
Reviewed by Geoffrey Garen.
- runtime/ObjectConstructor.cpp:
(JSC::objectConstructorGetOwnPropertyDescriptors):
- tests/es6.yaml:
- tests/es6/Object_static_methods_Object.getOwnPropertyDescriptors-proxy.js:
(testPropertiesIndexedSetterOnPrototypeThrows.set get var): Deleted.
(testPropertiesIndexedSetterOnPrototypeThrows): Deleted.
- tests/stress/Object_static_methods_Object.getOwnPropertyDescriptors-proxy.js: Renamed from Source/JavaScriptCore/tests/es6/Object_static_methods_Object.getOwnPropertyDescriptors-proxy.js.
- tests/stress/Object_static_methods_Object.getOwnPropertyDescriptors.js: Renamed from Source/JavaScriptCore/tests/es6/Object_static_methods_Object.getOwnPropertyDescriptors.js.
- 3:56 PM Changeset in webkit [203746] by
-
- 2 edits in trunk/Source/WebCore
onpaymentauthorized callback not received when authorizing for a second time
https://bugs.webkit.org/show_bug.cgi?id=160218
rdar://problem/27527151
Reviewed by Tim Horton.
Only null out the active session if the status is a final state status.
- Modules/applepay/PaymentCoordinator.cpp:
(WebCore::PaymentCoordinator::completePaymentSession):
- 3:42 PM Changeset in webkit [203745] by
-
- 4 edits in trunk
Range.prototype.compareBoundaryPoints.length should be 2
https://bugs.webkit.org/show_bug.cgi?id=160217
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Rebaseline W3C test now that one more check is passing.
- web-platform-tests/dom/interfaces-expected.txt:
Source/WebCore:
Range.prototype.compareBoundaryPoints.length:
We had a bug in our IDL which caused length to be 0 even though
both parameters were effectively mandatory.
No new tests, rebaselined existing test.
- dom/Range.idl:
- 3:38 PM Changeset in webkit [203744] by
-
- 6 edits4 adds in trunk
Align CSSStyleDeclaration with the specification
https://bugs.webkit.org/show_bug.cgi?id=160214
Reviewed by Darin Adler.
Source/WebCore:
Align CSSStyleDeclaration with the specification:
In particular, the parameters to removeProperty() / item() and
getPropertyPriority() should be mandatory.
Firefox and Chrome match the specification.
Tests: fast/css/CSSStyleDeclaration-cssText-null.html
fast/css/CSSStyleDeclaration-parameters.html
- bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::getPropertyCSSValue):
- css/CSSStyleDeclaration.idl:
LayoutTests:
- fast/css/CSSStyleDeclaration-cssText-null-expected.txt: Added.
- fast/css/CSSStyleDeclaration-cssText-null.html: Added.
Add layout test coverage for setting cssText to null. This test
passes in WebKit, Firefox and Chrome, with or without my change.
Our IDL wrongly reported the cssText attribute as nullable but
WebKit was already behaving correctly.
- fast/css/CSSStyleDeclaration-parameters-expected.txt: Added.
- fast/css/CSSStyleDeclaration-parameters.html: Added.
Add testing for omitting CSSStyleDeclaration API parameters, to
make sure they are mandatory. This test passes in Firefox and
Chrome.
- fast/dom/non-numeric-values-numeric-parameters-expected.txt:
- fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
Update existing test to reflect behavior change.
- 3:31 PM Changeset in webkit [203743] by
-
- 16 edits2 adds in trunk
Networking process crash due to missing -[WebCoreAuthenticationClientAsChallengeSender performDefaultHandlingForAuthenticationChallenge:] implementation
https://bugs.webkit.org/show_bug.cgi?id=156947
<rdar://problem/23325160>
Reviewed by Alex Christensen.
Source/WebCore:
Test: http/tests/xmlhttprequest/auth-reject-protection-space.html
- platform/network/mac/AuthenticationMac.mm:
(-[WebCoreAuthenticationClientAsChallengeSender performDefaultHandlingForAuthenticationChallenge:]): Added.
(-[WebCoreAuthenticationClientAsChallengeSender rejectProtectionSpaceAndContinueWithChallenge:]): Added.
Source/WebKit2:
- UIProcess/API/C/WKAuthenticationDecisionListener.cpp:
(WKAuthenticationDecisionListenerRejectProtectionSpaceAndContinue):
- UIProcess/API/C/WKAuthenticationDecisionListener.h:
Added new SPI for testing corresponding to calling the completion handler of
WKWebView.didReceiveAuthenticationChallenge with NSURLSessionAuthChallengeRejectProtectionSpace.
Tools:
- DumpRenderTree/TestRunner.cpp:
(TestRunner::TestRunner):
(setRejectsProtectionSpaceAndContinueForAuthenticationChallengesCallback):
- DumpRenderTree/TestRunner.h:
(TestRunner::rejectsProtectionSpaceAndContinueForAuthenticationChallenges):
(TestRunner::setRejectsProtectionSpaceAndContinueForAuthenticationChallenges):
- DumpRenderTree/mac/ResourceLoadDelegate.mm:
(-[ResourceLoadDelegate webView:resource:didReceiveAuthenticationChallenge:fromDataSource:]):
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::queueNonLoadingScript):
(WTR::TestRunner::setRejectsProtectionSpaceAndContinueForAuthenticationChallenges):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::didReceiveAuthenticationChallenge):
- WebKitTestRunner/TestController.h:
(WTR::TestController::setRejectsProtectionSpaceAndContinueForAuthenticationChallenges):
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
Add TestRunner.setRejectsProtectionSpaceAndContinueForAuthenticationChallenges to use for testing.
LayoutTests:
- http/tests/xmlhttprequest/auth-reject-protection-space-expected.txt: Added.
- http/tests/xmlhttprequest/auth-reject-protection-space.html: Added.
- 3:04 PM Changeset in webkit [203742] by
-
- 2 edits in trunk/Tools
check-for-exit-time-destructors should be usable outside Xcode
<https://webkit.org/b/160195>
Reviewed by Darin Adler.
- Scripts/check-for-exit-time-destructors: Update to parse
-hhelp switch, or to take one argument to a binary to check for exit time destructors on the command-line. The clang
compiler will find these at compile-time with the
-Wexit-time-destructors switch, but this script will check for
them after-the-fact.
- 3:03 PM Changeset in webkit [203741] by
-
- 3 edits in trunk/Source/WebKit2
Payment session does not end if user closes all Safari windows
https://bugs.webkit.org/show_bug.cgi?id=160213
rdar://problem/27480873
Reviewed by Tim Horton.
Listen for the NSWindowWillCloseNotification of the sheet window and hide the payment UI when
the sheet window is going to be closed.
- UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
- UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:
(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):
(WebKit::WebPaymentCoordinatorProxy::hidePaymentUI):
- 3:00 PM Changeset in webkit [203740] by
-
- 11 edits2 adds in trunk
Parameters to CSSStyleSheet.insertRule() / deleteRule() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160210
Reviewed by Darin Adler.
Source/WebCore:
Parameters to CSSStyleSheet.insertRule() / deleteRule() should be mandatory:
They are mandatory in Firefox.
They are mandatory in Chrome except for the second parameter of insertRule()
which merely logs a deprecation warning.
This patch aligns our behavior with Chrome to move towards to specification
while limiting the risk of breakage.
Test: fast/css/stylesheet-parameters.html
- css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::deprecatedInsertRule):
- css/CSSStyleSheet.h:
- css/CSSStyleSheet.idl:
LayoutTests:
- fast/css/stylesheet-parameters-expected.txt: Added.
- fast/css/stylesheet-parameters.html: Added.
Add layout test coverage.
- editing/selection/first-letter-selection-crash.html:
- fast/css/counters/asterisk-counter-update-after-layout-crash.html:
- fast/dom/HTMLElement/dynamic-editability-change.html:
- fast/dom/non-numeric-values-numeric-parameters-expected.txt:
- fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
Update existing tests to reflect the behavior change.
- 2:52 PM Changeset in webkit [203739] by
-
- 21 edits2 adds in trunk
HTMLVideoElement frames do not update on iOS when src is a MediaStream blob
https://bugs.webkit.org/show_bug.cgi?id=159833
<rdar://problem/27379487>
Patch by George Ruan <gruan@apple.com> on 2016-07-26
Reviewed by Eric Carlson.
Source/WebCore:
Test: fast/mediastream/MediaStream-video-element-displays-buffer.html
- WebCore.xcodeproj/project.pbxproj:
- platform/cf/CoreMediaSoftLink.cpp: Add CMSampleBufferCreateReadyWithImageBuffer and CMVideoFormatDescriptionCreateForImageBuffer
softlink.
- platform/cf/CoreMediaSoftLink.h: Ditto.
- platform/cocoa/CoreVideoSoftLink.cpp: Add CVPixelBufferCreate, kCVPixelBufferCGBitmapContextCompatibilityKey, and
kCVPixelBufferCGImageCompatibilityKey.
- platform/cocoa/CoreVideoSoftLink.h: Ditto.
- platform/graphics/avfoundation/MediaSampleAVFObjC.h: Change create to return a Ref<T> instead
of RefPtr<T>.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: Make observer of
MediaStreamTrackPrivate and make MediaPlayer use an AVSampleBufferDisplayLayer instead of CALayer.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC): Clean up
observers and AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::isAvailable): Ensures AVSampleBufferDisplayLayer
is available.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueAudioSampleBufferFromTrack): Placeholder.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSampleBufferFromTrack): Responsible
for enqueuing sample buffers to the active video track.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayer): Ensures that an AVSampleBufferDisplayLayer
exists.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyLayer): Destroys the AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformLayer): Replace CALayer with AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentDisplayMode): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::play): Call updateReadyState as a deferred task.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentReadyState): readyState is bumped to HAVE_ENOUGH_DATA
only when the MediaPlayerPrivateMediaStreamAVFObjC has received a media sample.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::sampleBufferUpdated): Called from MediaStreamTrackPrivate when a
new SampleBuffer is available.
(WebCore::updateTracksOfType): Manage adding and removing self as observer from tracks.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks): Replace CALayer with AVSampleBufferDisplayLayer
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::acceleratedRenderingStateChanged): Copied from
MediaPlayerPrivateMediaSourceAVFObjC.mm
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load): Deleted CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayMode): Deleted process of updating CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateIntrinsicSize): Deleted CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createPreviewLayers): Deleted.
- platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::updateActiveVideoTrack): Remove redundant check.
- platform/mediastream/MediaStreamTrackPrivate.cpp:
(WebCore::MediaStreamTrackPrivate::sourceHasMoreMediaData): Called from RealtimeMediaSource when a new SampleBuffer
is available.
- platform/mediastream/MediaStreamTrackPrivate.h:
(WebCore::MediaStreamTrackPrivate::Observer::sampleBufferUpdated): Relays to MediaPlayerPrivateMediaStreamAVFObjC that
a new SampleBuffer is available to enqueue to the AVSampleBufferDisplayLayer.
- platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::settingsDidChange): Fix grammatical mistake in function name settingsDidChanged().
(WebCore::RealtimeMediaSource::mediaDataUpdated): Relays to all observers that a new SampleBuffer is available.
(WebCore::RealtimeMediaSource::settingsDidChanged): Deleted.
- platform/mediastream/RealtimeMediaSource.h:
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::processNewFrame): Calls mediaDataUpdated when a new SampleBuffer is captured.
- platform/mediastream/mac/MockRealtimeVideoSourceMac.h:
- platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
(WebCore::MockRealtimeVideoSourceMac::CMSampleBufferFromPixelBuffer): Convert CVPixelBuffer to CMSampleBuffer.
(WebCore::MockRealtimeVideoSourceMac::pixelBufferFromCGImage): Convert CGImage to CVPixelBuffer.
(WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer): Creates a CMSampleBuffer from current imageBuffer and
sends the CMSampleBuffer to MediaPlayerPrivateMediaStreamAVFObjC
- platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::setFrameRate): Fix grammar of settingsDidChanged() to settingsDidChange().
(WebCore::MockRealtimeVideoSource::setSize): Ditto.
(WebCore::MockRealtimeVideoSource::generateFrame): Call updateSampleBuffer().
- platform/mock/MockRealtimeVideoSource.h: Change elapsedTime() from private to protected.
(WebCore::MockRealtimeVideoSource::updateSampleBuffer): Overriden by MockRealtimeVideoSourceMac.
LayoutTests:
- fast/mediastream/MediaStream-video-element-displays-buffer-expected.txt: Added.
- fast/mediastream/MediaStream-video-element-displays-buffer.html: Added. Checks that
a video element with a mediastream source displays frames that are neither black or transparent.
- fast/mediastream/resources/getUserMedia-helper.js:
(setupVideoElementWithStream): Sets up video element with global variable mediastream.
- 2:49 PM Changeset in webkit [203738] by
-
- 5 edits in trunk/Source/WebCore
Move ControlStates HashMap to RenderBox.
https://bugs.webkit.org/show_bug.cgi?id=160206
Reviewed by Simon Fraser.
Move and modernize it.
No change in functionality.
- platform/ControlStates.h:
(WebCore::ControlStates::ControlStates): Deleted.
- rendering/RenderBox.cpp:
(WebCore::controlStatesRendererMap):
(WebCore::controlStatesForRenderer):
(WebCore::removeControlStatesForRenderer):
(WebCore::RenderBox::~RenderBox):
(WebCore::RenderBox::paintBoxDecorations):
- rendering/RenderElement.cpp:
(WebCore::controlStatesRendererMap): Deleted.
(WebCore::RenderElement::hasControlStatesForRenderer): Deleted.
(WebCore::RenderElement::controlStatesForRenderer): Deleted.
(WebCore::RenderElement::removeControlStatesForRenderer): Deleted.
(WebCore::RenderElement::addControlStatesForRenderer): Deleted.
- rendering/RenderElement.h:
- 2:35 PM Changeset in webkit [203737] by
-
- 2 edits in trunk/Source/WebCore
Occasional crash in WebCore::RenderVTTCue::initializeLayoutParameters
https://bugs.webkit.org/show_bug.cgi?id=160208
Reviewed by Darin Adler.
- rendering/RenderVTTCue.cpp:
(WebCore::RenderVTTCue::initializeLayoutParameters): Return when firstChild is NULL so a
release build will not crash.
- 2:01 PM Changeset in webkit [203736] by
-
- 2 edits in trunk/Websites/perf.webkit.org
REGRESSION: The arrow indicating the current page doesn't get updated
https://bugs.webkit.org/show_bug.cgi?id=160185
Reviewed by Chris Dumez.
The bug was caused by Heading's render() function not updating the DOM more than once. I don't understand
how this has ever worked. Fixed the bug by rendering DOM whenever the current page has changed.
- public/v3/pages/heading.js:
(Heading):
(Heading.prototype.render):
- 1:59 PM Changeset in webkit [203735] by
-
- 6 edits1 delete in trunk/LayoutTests
Remove the tests for legacy custom elements API
https://bugs.webkit.org/show_bug.cgi?id=160209
Reviewed by Chris Dumez.
Removed the tests for legacy custom elements v0 API. The tests for the new v1 API is at fast/custom-elements.
- fast/dom/custom: Removed.
- fast/dom/custom/document-register-basic-expected.txt: Removed.
- fast/dom/custom/document-register-basic.html: Removed.
- fast/dom/custom/document-register-namespace-expected.txt: Removed.
- fast/dom/custom/document-register-namespace.html: Removed.
- fast/dom/custom/document-register-reentrant-null-constructor-expected.txt: Removed.
- fast/dom/custom/document-register-reentrant-null-constructor.html: Removed.
- fast/dom/custom/document-register-reentrant-returning-fake-expected.txt: Removed.
- fast/dom/custom/document-register-reentrant-returning-fake.html: Removed.
- fast/dom/custom/document-register-reentrant-throwing-constructor-expected.txt: Removed.
- fast/dom/custom/document-register-reentrant-throwing-constructor.html: Removed.
- fast/dom/custom/document-register-type-extensions-expected.txt: Removed.
- fast/dom/custom/document-register-type-extensions.html: Removed.
- fast/dom/custom/lifecycle-ready-createElement-recursion-expected.txt: Removed.
- fast/dom/custom/lifecycle-ready-createElement-recursion.html: Removed.
- fast/dom/custom/lifecycle-ready-createElement-reentrancy-expected.txt: Removed.
- fast/dom/custom/lifecycle-ready-createElement-reentrancy.html: Removed.
- fast/dom/custom/lifecycle-ready-creation-api-expected.txt: Removed.
- fast/dom/custom/lifecycle-ready-creation-api.html: Removed.
- fast/dom/custom/lifecycle-ready-innerHTML-expected.txt: Removed.
- fast/dom/custom/lifecycle-ready-innerHTML.html: Removed.
- fast/dom/custom/lifecycle-ready-parser-only-expected.html: Removed.
- fast/dom/custom/lifecycle-ready-parser-only.html: Removed.
- fast/dom/custom/lifecycle-ready-parser-script-expected.txt: Removed.
- fast/dom/custom/lifecycle-ready-parser-script.html: Removed.
- fast/dom/custom/lifecycle-ready-paste-expected.txt: Removed.
- fast/dom/custom/lifecycle-ready-paste.html: Removed.
- fast/dom/custom/resources: Removed.
- fast/dom/custom/resources/document-register-fuzz.js: Removed.
- platform/efl/TestExpectations:
- platform/gtk/TestExpectations:
- platform/ios-simulator/TestExpectations:
- platform/mac/TestExpectations:
- platform/win/TestExpectations:
- 1:57 PM Changeset in webkit [203734] by
-
- 4 edits in trunk
Parameters to CustomEvent.initCustomEvent() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160205
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline W3C test now that more checks are passing.
- web-platform-tests/dom/interfaces-expected.txt:
Source/WebCore:
Parameters to CustomEvent.initCustomEvent() should be mandatory:
Firefox and Chrome agree with the specification.
No new tests, rebaselined existing test.
- dom/CustomEvent.idl:
- 1:54 PM Changeset in webkit [203733] by
-
- 13 edits in trunk
Second parameter to Range.isPointInRange() / comparePoint() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160202
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline W3C test now that more checks are passing.
- web-platform-tests/dom/interfaces-expected.txt:
Source/WebCore:
Second parameter to Range.isPointInRange() / comparePoint() should be mandatory
and be of type "unsigned long":
Firefox and Chrome agree with the specification.
No new tests, rebaselined existing tests.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::traverseToOffsetInRange):
- dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::removeMarkers):
(WebCore::DocumentMarkerController::markersInRange):
(DocumentMarkerController::setMarkersActive):
- dom/Range.cpp:
(WebCore::Range::isPointInRange):
(WebCore::Range::comparePoint):
(WebCore::Range::compareBoundaryPoints):
(WebCore::Range::toString):
(WebCore::Range::absoluteTextRects):
(WebCore::Range::absoluteTextQuads):
(WebCore::boundaryTextNodesMerged):
(WebCore::Range::getBorderAndTextQuads):
- dom/Range.h:
(WebCore::Range::startOffset):
(WebCore::Range::endOffset):
- dom/Range.idl:
- dom/RangeBoundaryPoint.h:
(WebCore::RangeBoundaryPoint::ensureOffsetIsValid):
(WebCore::RangeBoundaryPoint::toPosition):
(WebCore::RangeBoundaryPoint::offset):
(WebCore::RangeBoundaryPoint::setOffset):
(WebCore::RangeBoundaryPoint::setToBeforeChild):
(WebCore::RangeBoundaryPoint::setToAfterChild):
(WebCore::RangeBoundaryPoint::setToEndOfNode):
(WebCore::RangeBoundaryPoint::childBeforeWillBeRemoved):
(WebCore::RangeBoundaryPoint::invalidateOffset):
LayoutTests:
Update existing test to reflect behavior change.
- fast/dom/non-numeric-values-numeric-parameters-expected.txt:
- fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
- 1:18 PM Changeset in webkit [203732] by
-
- 23 edits8 copies11 adds in trunk
[Fetch API] Add support for fetch mode, in particular cors
https://bugs.webkit.org/show_bug.cgi?id=156753
Patch by Youenn Fablet <youenn@apple.com> on 2016-07-26
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebasing tests.
- web-platform-tests/fetch/api/basic/integrity-expected.txt:
- web-platform-tests/fetch/api/basic/integrity-worker-expected.txt:
- web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt:
- web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt:
- web-platform-tests/fetch/api/cors/cors-basic-expected.txt:
- web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt:
- web-platform-tests/fetch/api/cors/cors-cookies-expected.txt:
- web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt:
- web-platform-tests/fetch/api/cors/cors-filtering-expected.txt:
- web-platform-tests/fetch/api/cors/cors-filtering-worker-expected.txt:
- web-platform-tests/fetch/api/cors/cors-multiple-origins-expected.txt:
- web-platform-tests/fetch/api/cors/cors-multiple-origins-worker-expected.txt:
- web-platform-tests/fetch/api/cors/cors-preflight-expected.txt:
- web-platform-tests/fetch/api/cors/cors-preflight-referrer-worker-expected.txt:
- web-platform-tests/fetch/api/cors/cors-preflight-worker-expected.txt:
- web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt:
- web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt:
- web-platform-tests/fetch/api/credentials/authentication-basic-worker-expected.txt:
- web-platform-tests/fetch/api/request/request-cache-expected.txt:
Source/WebCore:
Covered by rebased tests.
- Modules/fetch/FetchLoader.cpp:
(WebCore::FetchLoader::start): Passing fetch mode to ThreadableLoader.
Disabling as a temp fix credentials in case of CORS mode as credential options is not yet supported and would make several tests fail.
LayoutTests:
Rebasing specific expectations as Maci/iOS WK2 does not like https tests.
- platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt: Added.
- platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt: Added.
- platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-expected.txt: Added.
- platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt: Added.
- platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt: Added.
- platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt: Added.
- platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-expected.txt: Added.
- platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt: Added.
- 12:09 PM Changeset in webkit [203731] by
-
- 10 edits2 adds4 deletes in trunk
Align NamedNodeMap with the specification
https://bugs.webkit.org/show_bug.cgi?id=160204
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline W3C test now that more checks are passing.
- web-platform-tests/dom/interfaces-expected.txt:
Source/WebCore:
Align NamedNodeMap with the specification:
In particular, mark parameters as mandatory when they should be, and
use tighter "Attr" typing instead of Node.
Chrome and Firefox agree with the specification.
Test: fast/dom/NamedNodeMap-parameters.html
- dom/NamedNodeMap.cpp:
(WebCore::NamedNodeMap::getNamedItem):
(WebCore::NamedNodeMap::getNamedItemNS):
(WebCore::NamedNodeMap::removeNamedItem):
(WebCore::NamedNodeMap::removeNamedItemNS):
(WebCore::NamedNodeMap::setNamedItem):
(WebCore::NamedNodeMap::item):
- dom/NamedNodeMap.h:
- dom/NamedNodeMap.idl:
LayoutTests:
- dom/html/level2/core/hc_namednodemapinvalidtype1-expected.txt: Removed.
- dom/html/level2/core/hc_namednodemapinvalidtype1.html: Removed.
- dom/xhtml/level2/core/hc_namednodemapinvalidtype1-expected.txt: Removed.
- dom/xhtml/level2/core/hc_namednodemapinvalidtype1.xhtml: Removed.
Drop outdated DOM level 2 tests that expect the wrong exception type to
be thrown when passing a non-Attr node in.
- fast/dom/NamedNodeMap-parameters-expected.txt: Added.
- fast/dom/NamedNodeMap-parameters.html: Added.
Add layout test coverage. I have verified that this test is passing in
both Firefox and Chrome.
- fast/dom/NamedNodeMap-setNamedItem-crash-expected.txt:
- fast/dom/non-numeric-values-numeric-parameters-expected.txt:
- fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
Update / rebaseline existing tests to reflect behavior change.
- 11:58 AM Changeset in webkit [203730] by
-
- 2 edits in trunk/Source/JavaScriptCore
Remove unused DEBUG_WITH_BREAKPOINT configuration.
https://bugs.webkit.org/show_bug.cgi?id=160203
Reviewed by Keith Miller.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitDebugHook):
- 11:58 AM Changeset in webkit [203729] by
-
- 4 edits2 adds in trunk
Infinite Canvas context save() causes WebKit to crash
https://bugs.webkit.org/show_bug.cgi?id=159586
<rdar://problem/26759984>
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-07-26
Reviewed by Simon Fraser.
Source/WebCore:
Limit the size of the canvas context state stack to 1024 * 16 saves. All
the saves which come after that limit will stay unrealized. The restore()
should not have any effect till there is no unrealized saves.
Test: fast/canvas/canvas-context-save-limit.html
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::realizeSaves):
(WebCore::CanvasRenderingContext2D::realizeSavesLoop):
- html/canvas/CanvasRenderingContext2D.h:
LayoutTests:
- fast/canvas/canvas-context-save-limit-expected.txt: Added.
- fast/canvas/canvas-context-save-limit.html: Added.
- 11:00 AM Changeset in webkit [203728] by
-
- 5 edits3 adds in trunk
DOMTokenList should be iterable
https://bugs.webkit.org/show_bug.cgi?id=160183
Patch by Youenn Fablet <youenn@apple.com> on 2016-07-26
Reviewed by Chris Dumez.
Source/WebCore:
DOMTokenList should be iterable as per https://dom.spec.whatwg.org/#interface-domtokenlist
Test: fast/dom/domTokenListIterator.html
- html/DOMTokenList.idl: Added iterable to the interface description.
LayoutTests:
- fast/dom/domTokenListIterator-expected.txt: Added.
- fast/dom/domTokenListIterator.html: Added.
- fast/dom/iterable-tests.js: Added.
- fast/dom/nodeListIterator-expected.txt:
- fast/dom/nodeListIterator.html: Making use of iterable-tests.js
- 10:26 AM Changeset in webkit [203727] by
-
- 2 edits in trunk/Source/WebKit2
[Threaded Compositor] ASSERTION FAILED: canAccessThreadLocalDataForThread(m_thread) after r203718
https://bugs.webkit.org/show_bug.cgi?id=160201
Reviewed by Michael Catanzaro.
I forgot to call purgeGLResources() before invalidating the scene in the compositing thread.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::invalidate):
- 10:13 AM Changeset in webkit [203726] by
-
- 21 edits2 deletes in trunk
Unreviewed, rolling out r203719.
https://bugs.webkit.org/show_bug.cgi?id=160200
It is breaking win build (Requested by youenn on #webkit).
Reverted changeset:
"[Fetch API] Response constructor should be able to take a
ReadableStream as body"
https://bugs.webkit.org/show_bug.cgi?id=159804
http://trac.webkit.org/changeset/203719
- 9:57 AM Changeset in webkit [203725] by
-
- 3 edits6 adds in trunk
Stop supporting compressed character sets BOCU-1 and SCSU
https://bugs.webkit.org/show_bug.cgi?id=159581
Reviewed by Brent Fulgham.
WebKit should not support the compressed character sets BOCU-1 and SCSU.
Chrome and Firefox don't and these old formats may pass server-side character
filters while still rendering in WebKit.
The HTML specification says "The above prohibits supporting, for example,
CESU-8, UTF-7, BOCU-1, SCSU, EBCDIC, and UTF-32."
https://html.spec.whatwg.org/#character-encodings
Source/WebCore:
Tests: http/tests/misc/char-encoding-bocu-1-blacklisted.html
http/tests/misc/char-encoding-scsu-blacklisted.html
- platform/text/TextEncodingRegistry.cpp:
Blacklisted BOCU-1 and SCSU character sets.
LayoutTests:
- http/tests/misc/char-encoding-bocu-1-blacklisted-expected.txt: Added.
- http/tests/misc/char-encoding-bocu-1-blacklisted.html: Added.
- http/tests/misc/char-encoding-scsu-blacklisted-expected.txt: Added.
- http/tests/misc/char-encoding-scsu-blacklisted.html: Added.
- http/tests/misc/resources/bocu-1-cyrillic.php: Added.
- http/tests/misc/resources/scsu-cyrillic.php: Added.
- 9:32 AM Changeset in webkit [203724] by
-
- 2 edits in trunk/Source/WebKit2
Support configurable autocapitalization.
https://bugs.webkit.org/show_bug.cgi?id=158860
rdar://problem/27536113
Reviewed by Tim Horton.
Autocapitalization should be enabled/disabled regardless of whether
we are using advance spelling feature.
- UIProcess/mac/TextCheckerMac.mm:
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::getGuessesForWord):
- 9:29 AM Changeset in webkit [203723] by
-
- 2 edits in trunk/Source/WebCore
ASSERTION FAILED: !m_frame->page()->defersLoading() InspectorInstrumentation::isDebuggerPaused(m_frame) https://bugs.webkit.org/show_bug.cgi?id=160193
Reviewed by Michael Catanzaro.
This is happening in the GTK+ Debug bot when running test loader/load-defer.html (note that the assert is inside
a !USE(CF) block).
The test is creating an iframe with load deferred, then in a timeout it disables the deferred load and checks
that the load actually happens. What happens is that the initial empty document is what calls
DocumentLoader::finishedLoading() when load is still deferred. The onload handler is not called because load
events are disabled for the initial empty document in SubframeLoader::loadSubframe(), but
DocumentLoader::finishedLoading() is called unconditionally from maybeLoadEmpty(). I think it's fine to call
DocumentLoader::finishedLoading() for the initial empty document even when load is deferred, so we can simply
update the assert to handle that case.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::finishedLoading): Do not assert if called for the initial empty document when load is
deferred.
- 9:26 AM Changeset in webkit [203722] by
-
- 3 edits in trunk/Source/WebKit2
[Coordinated Graphics] Test fast/fixed-layout/fixed-layout.html crashes in debug
https://bugs.webkit.org/show_bug.cgi?id=160117
Reviewed by Michael Catanzaro.
The problem is that WebPage has its own m_useFixedLayout that is only updated when changed from the UI
process. However, layout tests doing internals.setUseFixedLayout() change the frame view directly, and the
WebPage doesn't notice it.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setFixedVisibleContentRect): Deleted.
(WebKit::WebPage::sendViewportAttributesChanged): Change the assert to check the main FrameView is in fixed
layout mode.
- WebProcess/WebPage/WebPage.h:
- 9:25 AM Changeset in webkit [203721] by
-
- 5 edits in trunk/Source/WebKit2
[Threaded Compositor] ASSERTION FAILED: isMainThread() when ThreadedCompositor is destroyed since r203718
https://bugs.webkit.org/show_bug.cgi?id=160197
Reviewed by Žan Doberšek.
ThreadedCompositor can be destroyed from a secondary thread, for example, when a task takes a reference and the
main threads derefs it, when the task finishes in the secondary thread the lambda ends up deleting the threaded
compositor. This is ok for the Threaded compositor but not for the CompositingRunLoop class. this was not a
problem before r203718 because the CompositingRunLoop object was created and destroyed in the same thread
always, but now it's part of the ThreadedCompositor class. This patch uses std:unique_ptr again to explicitly
create the CompositingRunLoop in the ThreadedCompositor constructor and delete in the invalidate() method to
make sure it happens in the main thread in both cases.
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::WorkQueuePool::invalidate):
(WebKit::WorkQueuePool::getOrCreateWorkQueueForContext):
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::ThreadedCompositor):
(WebKit::ThreadedCompositor::invalidate):
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing):
(WebKit::ThreadedCompositor::setDeviceScaleFactor):
(WebKit::ThreadedCompositor::setDrawsBackground):
(WebKit::ThreadedCompositor::didChangeViewportSize):
(WebKit::ThreadedCompositor::didChangeViewportAttribute):
(WebKit::ThreadedCompositor::didChangeContentsSize):
(WebKit::ThreadedCompositor::scrollTo):
(WebKit::ThreadedCompositor::scrollBy):
(WebKit::ThreadedCompositor::updateViewport):
(WebKit::ThreadedCompositor::scheduleDisplayImmediately):
(WebKit::ThreadedCompositor::forceRepaint):
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
- 9:23 AM Changeset in webkit [203720] by
-
- 25 edits in trunk
Remove ClientCredentialPolicy cross-origin option from ResourceLoaderOptions
https://bugs.webkit.org/show_bug.cgi?id=159413
Patch by Youenn Fablet <youenn@apple.com> on 2016-07-26
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Below test changes as ResourceLoader is now computing whether to request credentials to clients if:
- request is authorized to request credentials (DocumentThreadableLoader only allows same-origin to make such thing)
- credential policy is Include or Same-Origin and request is same-origin.
This test changes as current fetch loader sets the credential mode to Omit, thus disabling credential request.
To be noted that only fetch API is allowing to disable credentials sending for same-origin request using "Omit"
credential mode.
- web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Rebasing test.
Source/WebCore:
ClientCredentialPolicy had three values (not ask, ask, ask only for same origin).
The distinction between allowing cross-origin or same-origin credentials is misleading as it is not supported
for synchronous loads and not supported by Network process.
It is best replaced by a boolean option (ask or not ask).
Same-origin ClientCredentialPolicy option was only used by DocumentThreadableLoader for asynchronous loads.
Since DocumentThreadableLoader is already computing whether the request is cross-origin, it can also compute
whether credentials may be requested or not. In case of cross-origin redirections, credentials are omitted, thus
disabling any possibility for requesting credentials for cross-origin resources after redirections.
Moving ClientCredentialPolicy to ResourceLoaderOptions since it is not used by platform code except for some
mac-specific code that is already using ResourceLoaderOptions.
Covered by existing tests.
- loader/CrossOriginPreflightChecker.cpp:
(WebCore::CrossOriginPreflightChecker::startPreflight): Setting clearly credential mode to Omit credentials.
(WebCore::CrossOriginPreflightChecker::doPreflight): Ditto.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::startLoadingMainResource): AskClientForAllCredentials ->
ClientCredentialPolicy::MayAskClientForCredentials.
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadRequest): Disabling requesting credentials for any cross-origin request.
- loader/FrameLoader.h:
- loader/MediaResourceLoader.cpp:
(WebCore::MediaResourceLoader::requestResource): AskClientForAllCredentials -> ClientCredentialPolicy::MayAskClientForCredentials.
- loader/NetscapePlugInStreamLoader.cpp:
(WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader): Ditto.
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::isAllowedToAskUserForCredentials): Disabling client credential request if ClientCredentialPolicy is CannotAskClientForCredentials.
Otherwise, returns true if fetch credentials mode allows it.
- loader/ResourceLoaderOptions.h:
(WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
(WebCore::ResourceLoaderOptions::clientCredentialPolicy): Deleted.
(WebCore::ResourceLoaderOptions::setClientCredentialPolicy): Deleted.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestUserCSSStyleSheet): AskClientForAllCredentials -> ClientCredentialPolicy::MayAskClientForCredentials.
(WebCore::CachedResourceLoader::defaultCachedResourceOptions): AskClientForAllCredentials -> ClientCredentialPolicy::MayAskClientForCredentials.
- loader/icon/IconLoader.cpp:
(WebCore::IconLoader::startLoading): DoNotAskClientForAnyCredentials -> ClientCredentialPolicy::CannotAskClientForCredentials.
- platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:
(WebCore::WebCoreAVCFResourceLoader::startLoading): DoNotAskClientForCrossOriginCredentials -> ClientCredentialPolicy::CannotAskClientForCredentials.
This is ok as credentials mode is omit and stored credentials are not allowed.
- platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
(WebCore::WebCoreAVFResourceLoader::startLoading): Ditto.
- platform/network/ResourceHandleTypes.h:
- xml/XSLTProcessorLibxslt.cpp: DoNotAskClientForCrossOriginCredentials -> ClientCredentialPolicy::MayAskClientForCredentials.
This is ok as this is a synchronous load.
(WebCore::docLoaderFunc):
- xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::openFunc): DoNotAskClientForCrossOriginCredentials -> ClientCredentialPolicy::MayAskClientForCredentials.
This is ok as this is a synchronous load.
Source/WebKit2:
Renaming of ClientCredentialPolicy values.
- NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::startDownload):
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
(WebKit::NetworkLoad::didReceiveAuthenticationChallenge):
- NetworkProcess/NetworkLoadParameters.h:
- NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::NetworkResourceLoader):
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoad):
- WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::willSendRequest):
LayoutTests:
- platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Removed.
- 9:03 AM Changeset in webkit [203719] by
-
- 21 edits1 copy1 add in trunk
[Fetch API] Response constructor should be able to take a ReadableStream as body
https://bugs.webkit.org/show_bug.cgi?id=159804
Patch by Youenn Fablet <youenn@apple.com> on 2016-07-26
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/fetch/api/response/response-consume-empty-expected.txt:
- web-platform-tests/fetch/api/response/response-consume-expected.txt:
- web-platform-tests/fetch/api/response/response-consume.html: Updating test to exercice Response coonstructor with a ReadableStream.
Source/WebCore:
Covered by existing and updated tests.
Introduced FetchBodyConsumer to encapsulate the code responsible to adapt FetchBody internal data to the requests made by user scripts.
This refactoring eases the handling of internal data coming from ReadableStream.
FetchLoader is now delegating conversion from the data to its m_consumer field.
If m_consumer is null, FetchLoader calls FetchLoaderClient::didReceiveData (streaming reception mode).
Clients of FetchLoader needs to pass a FetchBodyConsumer to the FetchLoader to do the data adaptation at loader creation time.
Added support for body data passed as a ReadableStream to Response.
This requires to set @body internal slot of the Response object in the constructor initialization JS built-in.
To actually use that data, Body accessors are also implemented as JS built-in for Response.
Since there is no need to do so for Request, FetchResponse is no longer marked as implementing FetchBody but all
FetchBody IDL description is inlined in FetchResponse.idl.
For each body accessor (arrayBuffer, blob, json, text), the corresponding JS built-in checks whether @body internal slot is set.
If that is not the case, regular handling is done through a new private method called @consume.
If @body internal slot is set, chunks are pumped from the ReadableStream using ReadableStream internal built-ins functions.
Data handling is done in C++ through the private methods @startConsumingStream, @consumeChunk and @finishConsumingStream.
To support cloning of Response with bodies, clone method is also implemented as a JS built-in.
Main clone is done through @cloneFoJS private method implemented in C++.
JS built-in clone code does the teeing of the ReadableStream using ReadableStream JS built-in internal functions.
Introducing a new ReadableStream type for FetchBody to cope with body being stored in a ReadableStream.
Introducing a new Loaded type for FetchBody to cope with body being stored in the FetchBodyConsumer owned by FetchBody.
This allows removing the conversion of data to JSC::ArrayBuffer which was done by defaut at the end of Fetch loading if user script did not request data before.
At the end of a load, the data remains in FetchBodyConsumer and the body is marked as Loaded.
If the user wants to get the data after data finished being loaded, FetchBodyConsumer will do the required conversions.
Introducing DeferredWrapper::resolveWithNewValue to handle the case of resolving promises with new objects.
This allows directly using toJSNewlyCreated instead of toJS.
- CMakeLists.txt: Adding FetchBodyConsumer.
- Modules/fetch/FetchBody.cpp: Moving data adaptation code to FetchBodyConsumer.
(WebCore::FetchBody::extract):
(WebCore::FetchBody::arrayBuffer):
(WebCore::FetchBody::blob): Setting contentType in FetchBodyConsumer to handle proper creation of blob.
(WebCore::FetchBody::json):
(WebCore::FetchBody::text):
(WebCore::FetchBody::consume): Refactoring and added case of Loaded bodies.
(WebCore::FetchBody::consumeAsStream): Ditto.
(WebCore::FetchBody::consumeArrayBuffer):
(WebCore::FetchBody::consumeText):
(WebCore::FetchBody::consumeBlob):
(WebCore::FetchBody::loadingFailed):
(WebCore::FetchBody::loadingSucceeded):
(WebCore::FetchBody::loadingType): Deleted.
(WebCore::blobFromArrayBuffer): Deleted.
(WebCore::FetchBody::fulfillTextPromise): Deleted.
(WebCore::FetchBody::loadedAsArrayBuffer): Deleted.
(WebCore::FetchBody::loadedAsText): Deleted.
- Modules/fetch/FetchBody.h:
(WebCore::FetchBody::consumer):
- Modules/fetch/FetchBodyConsumer.cpp: Added, responsible of data adaptation.
(WebCore::blobFromData):
(WebCore::FetchBodyConsumer::resolveWithData):
(WebCore::FetchBodyConsumer::resolve):
(WebCore::FetchBodyConsumer::append):
(WebCore::FetchBodyConsumer::takeData):
(WebCore::FetchBodyConsumer::takeAsArrayBuffer):
(WebCore::FetchBodyConsumer::takeAsBlob):
(WebCore::FetchBodyConsumer::takeAsText):
- Modules/fetch/FetchBodyConsumer.h: Added.
(WebCore::FetchBodyConsumer::FetchBodyConsumer):
(WebCore::FetchBodyConsumer::setContentType):
(WebCore::FetchBodyConsumer::setType):
(WebCore::FetchBodyConsumer::type):
(WebCore::FetchBodyConsumer::clean):
(WebCore::FetchBodyConsumer::hasData):
- Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::loadBlob):
(WebCore::FetchBodyOwner::blobLoadingSucceeded):
(WebCore::FetchBodyOwner::loadedBlobAsText): Deleted.
- Modules/fetch/FetchBodyOwner.h:
(WebCore::FetchBodyOwner::loadedBlobAsArrayBuffer): Deleted.
- Modules/fetch/FetchInternals.js:
(consumeStream): Pump ReadableStream data and send it to FetchResponse to be converted according user need.
- Modules/fetch/FetchLoader.cpp:
(WebCore::FetchLoader::FetchLoader): FetchLoader is simplified as it has two nodes: consumer mode in which case
data is sent to the consumer and no-consumer mode in which case data is passed to loader client. The second mode
is used to conveyy data to ReadableStream source.
(WebCore::FetchLoader::stop):
(WebCore::FetchLoader::startStreaming):
(WebCore::FetchLoader::didReceiveData):
(WebCore::FetchLoader::didFinishLoading): Deleted.
- Modules/fetch/FetchLoader.h:
- Modules/fetch/FetchLoaderClient.h:
(WebCore::FetchLoaderClient::didFinishLoadingAsText): Deleted.
(WebCore::FetchLoaderClient::didFinishLoadingAsArrayBuffer): Deleted.
- Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::cloneForJS):
(WebCore::FetchResponse::BodyLoader::didSucceed):
(WebCore::FetchResponse::BodyLoader::start):
(WebCore::FetchResponse::consume): Introduced to consume data stored in body and not in ReadableStream.
(WebCore::FetchResponse::startConsumingStream): Introduced to start process of consuming data stored in the ReadableStream.
(WebCore::FetchResponse::consumeChunk): Reception of ReadableStream data.
(WebCore::FetchResponse::finishConsumingStream): Doing the final conversion.
(WebCore::FetchResponse::clone): Deleted.
(WebCore::FetchResponse::BodyLoader::didFinishLoadingAsArrayBuffer): Deleted.
- Modules/fetch/FetchResponse.h:
- Modules/fetch/FetchResponse.idl: Inlining of FetchBody methods/attributes and adding private methods.
- Modules/fetch/FetchResponse.js:
(initializeFetchResponse):
(clone):
(arrayBuffer):
(blob):
(formData):
(json):
(text):
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMPromise.h:
(WebCore::DeferredWrapper::resolveWithNewValue):
- bindings/js/WebCoreBuiltinNames.h:
- 6:26 AM Changeset in webkit [203718] by
-
- 5 edits in trunk/Source/WebKit2
[Threaded Compositor] Crashes and deadlocks in single web process mode
https://bugs.webkit.org/show_bug.cgi?id=160160
Reviewed by Žan Doberšek.
Every WebPage has its own threaded compositor that runs its own compositing thread. That means that when there's
more than one WebPage in the same process, we are running OpenGL stuff in different secondary threads. That's
causing crashes and deadlocks in X and graphics drivers. We should ensure there's a single compositing thread
per process when multiple threads is not supported. This is causing unit test
WebKit2.WKPageGetScaleFactorNotZero to time out since we switched to the threaded compositor. That test is
creating two pages in the same web process, and most of the times the web process crashes or deadlocks causing
the test to never finish and time out.
This patch makes CompositingRunLoop use a thread pool that spawns the compositing threads and schedules the tasks
there.
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::WorkQueuePool::singleton):
(WebKit::WorkQueuePool::dispatch):
(WebKit::WorkQueuePool::runLoop):
(WebKit::WorkQueuePool::invalidate):
(WebKit::WorkQueuePool::WorkQueuePool):
(WebKit::WorkQueuePool::getOrCreateWorkQueueForContext):
(WebKit::CompositingRunLoop::CompositingRunLoop):
(WebKit::CompositingRunLoop::~CompositingRunLoop):
(WebKit::CompositingRunLoop::performTask):
(WebKit::CompositingRunLoop::performTaskSync):
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::ThreadedCompositor):
(WebKit::ThreadedCompositor::invalidate):
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing):
(WebKit::ThreadedCompositor::setDeviceScaleFactor):
(WebKit::ThreadedCompositor::setDrawsBackground):
(WebKit::ThreadedCompositor::didChangeViewportSize):
(WebKit::ThreadedCompositor::didChangeViewportAttribute):
(WebKit::ThreadedCompositor::didChangeContentsSize):
(WebKit::ThreadedCompositor::scrollTo):
(WebKit::ThreadedCompositor::scrollBy):
(WebKit::ThreadedCompositor::purgeBackingStores):
(WebKit::ThreadedCompositor::renderNextFrame):
(WebKit::ThreadedCompositor::commitScrollOffset):
(WebKit::ThreadedCompositor::updateViewport):
(WebKit::ThreadedCompositor::scheduleDisplayImmediately):
(WebKit::ThreadedCompositor::forceRepaint):
(WebKit::ThreadedCompositor::tryEnsureGLContext): Deleted.
(WebKit::ThreadedCompositor::glContext): Deleted.
(WebKit::ThreadedCompositor::updateSceneState): Deleted.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
- 4:08 AM Changeset in webkit [203717] by
-
- 19 edits in trunk
[css-grid] repeat() syntax should take a <track-list> argument
https://bugs.webkit.org/show_bug.cgi?id=160162
Reviewed by Darin Adler.
Source/WebCore:
The repeat() notation used to allow just 1 <track-size> as second argument. Specs have been
recently modified so that a <track-list> is now supported, meaning that we can pass an
arbitrary number of track sizes and line numbers.
It has been working for some time for repeat() if the first argument was a positive integer,
but it requires some changes for the auto repeat cases (auto-fill and auto-fit).
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::OrderedNamedLinesCollector::OrderedNamedLinesCollector): Store the total number of
auto repeat tracks and the length of a single repetition instead of the number of
repetitions.
(WebCore::OrderedNamedLinesCollector::collectLineNamesForIndex): Do not assume that there is
only 1 repeat track.
(WebCore::valueForGridTrackList):
- css/CSSParser.cpp:
(WebCore::CSSParser::parseGridTrackRepeatFunction): Allow multiple tracks in repeat().
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::rawGridTrackSize): Renamed repetitions -> autoRepeatTracksCount.
(WebCore::RenderGrid::computeAutoRepeatTracksCount): Use all the repeat tracks to compute
the total track size of a single repetition.
(WebCore::RenderGrid::computeEmptyTracksForAutoRepeat):
- rendering/style/GridPositionsResolver.cpp:
(WebCore::NamedLineCollection::NamedLineCollection): Renamed m_repetitions ->
m_autoRepeatTotalTracks. Added m_autoRepeatTrackListLength (it was always 1 before).
(WebCore::NamedLineCollection::find): Resolve lines inside multiple repeat tracks.
(WebCore::NamedLineCollection::firstPosition): Ditto.
- rendering/style/GridPositionsResolver.h:
LayoutTests:
Added new test cases with multiple tracks inside repeat() notation, both for fixed an
automatic (auto-fill & auto-fit) repetitions.
- fast/css-grid-layout/grid-auto-fill-columns-expected.txt:
- fast/css-grid-layout/grid-auto-fill-columns.html:
- fast/css-grid-layout/grid-auto-fill-rows-expected.txt:
- fast/css-grid-layout/grid-auto-fill-rows.html:
- fast/css-grid-layout/grid-auto-fit-columns-expected.txt:
- fast/css-grid-layout/grid-auto-fit-columns.html:
- fast/css-grid-layout/grid-auto-fit-rows-expected.txt:
- fast/css-grid-layout/grid-auto-fit-rows.html:
- fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
- fast/css-grid-layout/grid-element-auto-repeat-get-set.html:
- fast/css-grid-layout/grid-element-repeat-get-set-expected.txt:
- fast/css-grid-layout/grid-element-repeat-get-set.html:
- 2:37 AM Changeset in webkit [203716] by
-
- 15 edits in trunk
[css-grid] grid-auto-flow|row should take a <track-size>+
https://bugs.webkit.org/show_bug.cgi?id=160158
Reviewed by Darin Adler.
Source/WebCore:
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackSizeList):
(WebCore::ComputedStyleExtractor::propertyValue): Return a list of <track-size> instead of
just one.
- css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Use the new values of TrackListType;
(WebCore::CSSParser::parseGridTemplateRowsAndAreasAndColumns): Ditto.
(WebCore::CSSParser::parseGridTemplateShorthand): Ditto.
(WebCore::CSSParser::parseGridShorthand): Ditto.
(WebCore::CSSParser::parseGridTrackList): Changed behavior depending on the value of
TrackSizeList.
- css/CSSParser.h: TrackListType has now 3 different values which determine the behavior of
parseGridTrackList.
- css/CSSPropertyNames.in: Use a new converter for lists.
- css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertGridTrackSizeList):
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::rawGridTrackSize): Resolve the size of the auto track.
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::gridAutoColumns): Return a Vector.
(WebCore::RenderStyle::gridAutoRows): Ditto.
(WebCore::RenderStyle::setGridAutoColumns): Store a Vector.
(WebCore::RenderStyle::setGridAutoRows): Ditto.
(WebCore::RenderStyle::initialGridAutoColumns): Return a Vector with one auto track.
(WebCore::RenderStyle::initialGridAutoRows): Ditto.
- rendering/style/StyleGridData.h: Store a Vector of GridTrackSize instead of just one.
LayoutTests:
- fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt:
- fast/css-grid-layout/grid-auto-columns-rows-get-set.html:
- fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
- fast/css-grid-layout/grid-shorthand-get-set.html:
- svg/css/getComputedStyle-basic-expected.txt: CSSPrimitiveValue -> CSSValueList.
- 1:06 AM Changeset in webkit [203715] by
-
- 1 edit in trunk/Tools/ChangeLog
Test svn.webkit.org functionality after maintenance.
- 12:51 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 12:46 AM Changeset in webkit [203714] by
-
- 6 edits3 adds in trunk
MathOperator: Add a mapping from combining to non-combining equivalents
https://bugs.webkit.org/show_bug.cgi?id=159513
Patch by Frederic Wang <fwang@igalia.com> on 2016-07-25
Reviewed by Darin Adler.
Source/WebCore:
Many math fonts provide stretch variants and assemblies for combining characters but not for
their non-combining equivalent. In the MathML recommendation, it is suggested to use
non-combining charaters, so we allow the operator stretching code to look for constructions
associated to these non-combining characters in order to still be able to stretch the
combining ones.
Test: mathml/presentation/bug159513.html
- rendering/mathml/MathOperator.cpp:
(WebCore::MathOperator::getGlyph): New function extending getBaseGlyph to retrieve the glyph
data for an arbitrary character.
(WebCore::MathOperator::getMathVariantsWithFallback): This helper function calls
getMathVariants for the base glyph. If no constructions are available, it calls
getMathVariants for the glyph associated to equivalent fallback characters as listed in the
small characterFallback table.
(WebCore::MathOperator::calculateStretchyData): Call getMathVariantsWithFallback instead of
getMathVariants. Note that we do not need to do that for calculateDisplayStyleLargeOperator
as we do not use fallback for large operators.
- rendering/mathml/MathOperator.h:
(WebCore::MathOperator::getBaseGlyph): Use getGlyph to implement this function.
LayoutTests:
- mathml/presentation/bug159513.html: Added.
- platform/gtk/mathml/presentation/bug159513-expected.png: Added.
- platform/gtk/mathml/presentation/bug159513-expected.txt: Added.
- platform/ios-simulator/TestExpectations: Skip this test on iOS.
- platform/mac/TestExpectations: Skip this test on Mac.
Jul 25, 2016:
- 10:46 PM Changeset in webkit [203713] by
-
- 12 edits in trunk
Second parameter to Range.setStart() / setEnd() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160184
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline W3C test now that more checks are passing.
- web-platform-tests/dom/interfaces-expected.txt:
Source/WebCore:
Second parameter to Range.setStart() / setEnd() should be mandatory:
Also use "unsigned long" instead of "long" type for the parameter,
as per the specification.
Firefox and Chrome agree with the specification.
No new tests, rebaselined existing test.
- dom/Range.cpp:
(WebCore::Range::setStart):
(WebCore::Range::setEnd):
(WebCore::Range::checkNodeWOffset):
- dom/Range.h:
- dom/Range.idl:
- dom/RangeBoundaryPoint.h:
(WebCore::RangeBoundaryPoint::set):
LayoutTests:
Update tests to reflect behavior change.
- editing/deleting/delete-uneditable-style.html:
- fast/dom/non-numeric-values-numeric-parameters-expected.txt:
- fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
- fast/regions/simplified-layout-no-regions.html:
- 10:27 PM Changeset in webkit [203712] by
-
- 4 edits in trunk
DOMTokenList.prototype.toString should be enumerable
https://bugs.webkit.org/show_bug.cgi?id=160182
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline W3C test now that one more check is passing.
- web-platform-tests/dom/interfaces-expected.txt:
Source/WebCore:
DOMTokenList.prototype.toString should be enumerable:
- https://dom.spec.whatwg.org/#interface-domtokenlist
- http://heycam.github.io/webidl/#es-stringifier
Firefox and Chrome agree with the specification.
No new tests, rebaselined existing test.
- html/DOMTokenList.idl:
- 10:27 PM Changeset in webkit [203711] by
-
- 7 edits in trunk
AX: Expose autoFillButtonType to accessibility
https://bugs.webkit.org/show_bug.cgi?id=160179
Reviewed by Chris Fleizach.
Source/WebCore:
Added a new attribute on Mac to expose the auto-fill button type.
Changes are covered in modified test.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isValueAutofillAvailable):
(WebCore::AccessibilityObject::valueAutofillButtonType):
(WebCore::AccessibilityObject::isValueAutofilled):
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::passwordFieldValue):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
LayoutTests:
- accessibility/auto-fill-types-expected.txt:
- accessibility/auto-fill-types.html:
- 8:04 PM Changeset in webkit [203710] by
-
- 2 edits in trunk/Websites/perf.webkit.org
Build fix for Safari 9.
- public/v3/models/build-request.js:
(BuildRequest.prototype.waitingTime): Don't use "const" in strict mode.
- 7:45 PM Changeset in webkit [203709] by
-
- 15 edits2 adds in trunk/Websites/perf.webkit.org
Perf dashboard should show the list of a pending A/B testing jobs
https://bugs.webkit.org/show_bug.cgi?id=160138
Rubber-stamped by Chris Dumez.
Add a page to show the list of A/B testing build requests per triggerable. Ideally, we would like to
see a queue per builder but that would require changes to database tables and syncing scripts.
Because this page is most useful when the analysis task with which each build request is associated,
JSON API at /api/build-requests/ has been modified to return the analysis task ID for each request.
Also streamlined the page that shows the list of analysis tasks per Chris' feedback by consolidating
"Bisecting" and "Identified" into "Investigated" and moving the toolbar from the upper left corner
inside the heading to right beneath the heading above the table. Also made the category page serialize
the filter an user had typed in so that reloading the page doesn't clear it.
- public/api/analysis-tasks.php:
(fetch_associated_data_for_tasks): Removed 'category' from the list of columns returned as the notion
of 'category' is only relevant in UI, and it's better computed in the front-end.
(format_task): Ditto.
(determine_category): Deleted.
- public/api/test-groups.php:
(main):
- public/include/build-requests-fetcher.php:
(BuildRequestsFetcher::fetch_for_task): Include the analysis task ID in the rows.
(BuildRequestsFetcher::fetch_for_group): Ditto. Ditto.
(BuildRequestsFetcher::fetch_incomplete_requests_for_triggerable): Ditto.
(BuildRequestsFetcher::results_internal): Ditto.
- public/v3/index.html:
- public/v3/main.js:
(main): Create a newly introduced BuildRequestQueuePage as a subpage of AnalysisCategoryPage.
- public/v3/components/ratio-bar-graph.js:
(RatioBarGraph.prototype.update): Fixed a bogus assertion here. ratio can be any number. The coercion
into [-1, 1] is done inside RatioBarGraph's render() function.
- public/v3/models/analysis-task.js:
(AnalysisTask.prototype.category): Moved the code to compute the analysis task's category from
determine_category in analysis-tasks.php. Also merged "bisecting" and "identified" into "investigated".
(AnalysisTask.categories): Merged "bisecting" and "identified" into "investigated".
- public/v3/models/build-request.js:
(BuildRequest): Remember the triggerable and the analysis task associated with this request as well as
the time at when this request was created.
(BuildRequest.prototype.analysisTaskId): Added.
(BuildRequest.prototype.statusLabel): Use a shorter label: "Waiting" for "pending" status.
(BuildRequest.prototype.createdAt): Added.
(BuildRequest.prototype.waitingTime): Added. Returns a human readable time duration since the creation
of this build request such as "2 hours 21 minutes" against a reference time.
(BuildRequest.fetchTriggerables): Added.
(BuildRequest.cachedRequestsForTriggerableID): Added. Used when navigating back to
- public/v3/pages/analysis-category-page.js:
(AnalysisCategoryPage): Construct AnalysisCategoryToolbar and store it in this._categoryToolbar since it
no longer inherits from Toolbar class, which PageWithHeading recognizes and stores.
(AnalysisCategoryPage.prototype.title):
(AnalysisCategoryPage.prototype.serializeState): Added.
(AnalysisCategoryPage.prototype.stateForCategory): Added. Include the filter in the serialization.
(AnalysisCategoryPage.prototype.updateFromSerializedState): Restore the filter from the URL state.
(AnalysisCategoryPage.prototype.filterDidChange): Added. Called by AnalysisCategoryToolbar to update
the URL state in addition to calling render() as done previously via setFilterCallback.
(AnalysisCategoryPage.prototype.render): Always call _categoryToolbar.render() since the hyperlinks for
the category pages now include the filter, which can be updated in each call.
(AnalysisCategoryPage.cssTemplate):
- public/v3/pages/analysis-category-toolbar.js:
(AnalysisCategoryToolbar): Inherits from ComponentBase instead of Toolbar since AnalysisCategoryToolbar
no longer works with Heading class unlike other subclasses of Toolbar class.
(AnalysisCategoryToolbar.prototype.setCategoryPage): Added.
(AnalysisCategoryToolbar.prototype.setFilterCallback): Deleted.
(AnalysisCategoryToolbar.prototype.setFilter): Added. Used to restore from a serialized URL state.
(AnalysisCategoryToolbar.prototype.render): Don't recreate the input element as it clears the value as
well as the selection of the element. Also use AnalysisCategoryPage's stateForCategory to serialize the
category name and the current filter for each hyperlink.
(AnalysisCategoryToolbar.prototype._filterMayHaveChanged): Now takes an boolean argument specifying
whether the URL state should be updated or not. We update the URL only when a change event is fired to
avoid constantly updating it while an user is still typing.
(AnalysisCategoryToolbar.cssTemplate): Added.
(AnalysisCategoryToolbar.htmlTemplate): Added a button to open the newly added queue page.
- public/v3/pages/build-request-queue-page.js:
(BuildRequestQueuePage): Added.
(BuildRequestQueuePage.prototype.routeName): Added.
(BuildRequestQueuePage.prototype.pageTitle): Added.
(BuildRequestQueuePage.prototype.open): Added. Fetch open build requests for every triggerables using
the same API as the syncing scripts.
(BuildRequestQueuePage.prototype.render): Added.
(BuildRequestQueuePage.prototype._constructBuildRequestTable): Added. Construct a table for the list of
pending, scheduled or running build requests in the order syncing scripts would see. Note that the list
of build requests returned by /api/build-requests/* can contain completed, canceled, or failed requests
since the JSON returns all build requests associated with each test group if one of the requests of the
group have not finished. This helps syncing scripts picking the right builder for A/B testing when it
had previously been unloaded or crashed in the middle of processing a test group. This characteristics
of the API actually helps us here because we can reliably compute the total number of build requests in
the group. The first half of this function does this counting as well as collapses all but the first
unfinished build requests into a "contraction" row, which just shows the number of build requests that
are remaining in the group.
(BuildRequestQueuePage.cssTemplate): Added.
(BuildRequestQueuePage.htmlTemplate): Added.
- public/v3/pages/summary-page.js:
(SummaryPage.prototype.open): Use one-day median instead of seven-day median to compute the status.
(SummaryPageConfigurationGroup): Initialize _ratio to NaN. This was causing assertion failures in
RatioBarGraph's update() while measurement sets are being fetched.
- server-tests/api-build-requests-tests.js: Updated the tests per change in BuildRequest's statusLabel.
- unit-tests/analysis-task-tests.js: Ditto.
- unit-tests/test-groups-tests.js: Ditto.
- unit-tests/build-request-tests.js: Added tests for BuildRequest's waitingTime.
- 7:40 PM Changeset in webkit [203708] by
-
- 15 edits in trunk/Source/WebCore
Cleanup RenderTable*::createAnonymous*
https://bugs.webkit.org/show_bug.cgi?id=160175
Reviewed by Simon Fraser.
This patch
- tightens the type on createAnonymousBoxWithSameTypeAs, createAnonymousWithParentRendererAndDisplay and
createAnonymousWithParentRenderer from RenderObject to the appropriate type.
- changes the return type of create* function from raw pointer to std::unique_ptr<>
- decouples createAnonymousBoxWithSameTypeAs and createAnonymousWithParentRenderer.
createAnonymousBoxWithSameTypeAs misleadingly calls createAnonymousWithParentRenderer
while it is never the parent in case of table items.
(std::unique_ptr::release() vs. WTFMove() will be addressed in a separate patch)
No change in functionality.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::createAnonymousBoxWithSameTypeAs):
(WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
- rendering/RenderBlock.h:
(WebCore::RenderBlock::createAnonymousBlock):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::layoutOverflowRectForPropagation):
- rendering/RenderBox.h:
(WebCore::RenderBox::createAnonymousBoxWithSameTypeAs):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::addChild):
- rendering/RenderInline.cpp:
(WebCore::RenderInline::splitFlow):
- rendering/RenderTable.cpp:
(WebCore::RenderTable::addChild):
(WebCore::RenderTable::createTableWithStyle):
(WebCore::RenderTable::createAnonymousWithParentRenderer):
- rendering/RenderTable.h:
(WebCore::RenderTable::createAnonymousBoxWithSameTypeAs):
- rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::createTableCellWithStyle):
(WebCore::RenderTableCell::createAnonymousWithParentRenderer):
- rendering/RenderTableCell.h:
(WebCore::RenderTableCell::createAnonymousBoxWithSameTypeAs):
- rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::addChild):
(WebCore::RenderTableRow::createTableRowWithStyle):
(WebCore::RenderTableRow::createAnonymousWithParentRenderer):
- rendering/RenderTableRow.h:
(WebCore::RenderTableRow::createAnonymousBoxWithSameTypeAs):
- rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::addChild):
(WebCore::RenderTableSection::createTableSectionWithStyle):
(WebCore::RenderTableSection::createAnonymousWithParentRenderer):
- rendering/RenderTableSection.h:
(WebCore::RenderTableSection::createAnonymousBoxWithSameTypeAs):
- 7:24 PM Changeset in webkit [203707] by
-
- 3 edits2 adds in trunk
Touch properties should be on the prototype
https://bugs.webkit.org/show_bug.cgi?id=160174
Reviewed by Ryosuke Niwa.
Source/WebCore:
Touch properties should be on the prototype:
Chrome agrees with the specification.
Test: platform/ios-simulator/ios/touch/Touch-attributes-prototype.html
- bindings/scripts/CodeGeneratorJS.pm:
(InterfaceRequiresAttributesOnInstanceForCompatibility): Deleted.
LayoutTests:
Add layout test coverage.
- platform/ios-simulator/ios/touch/Touch-attributes-prototype-expected.txt: Added.
- platform/ios-simulator/ios/touch/Touch-attributes-prototype.html: Added.
- 7:18 PM Changeset in webkit [203706] by
-
- 2 edits in trunk/Source/WebCore
Set MediaRemote playback state based on MediaSession playback state.
https://bugs.webkit.org/show_bug.cgi?id=160177
Patch by Jeremy Jones <jeremyj@apple.com> on 2016-07-25
Reviewed by Eric Carlson.
Use playback session state to update media remote playback state instead of
unconditionally setting it to playing.
- platform/audio/mac/MediaSessionManagerMac.mm:
(WebCore::MediaSessionManagerMac::updateNowPlayingInfo):
- 7:15 PM Changeset in webkit [203705] by
-
- 9 edits in trunk/Source/WebCore
RenderBox::haveSameDirection is used only by table items.
https://bugs.webkit.org/show_bug.cgi?id=160141
Reviewed by Simon Fraser.
Remove RenderBox::haveSameDirection() since it's used only by RenderTable*
classes. The new stand alone function (with 2 arguments) now checks if both of
the objects are valid.
No change in functionality.
- rendering/RenderBox.h:
(WebCore::RenderBox::hasSameDirectionAs): Deleted.
- rendering/RenderTable.cpp:
(WebCore::RenderTable::tableStartBorderAdjoiningCell):
(WebCore::RenderTable::tableEndBorderAdjoiningCell):
- rendering/RenderTable.h:
(WebCore::haveSameDirection):
- rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::hasStartBorderAdjoiningTable):
(WebCore::RenderTableCell::hasEndBorderAdjoiningTable):
- rendering/RenderTableCell.h:
(WebCore::RenderTableCell::borderAdjoiningTableStart):
(WebCore::RenderTableCell::borderAdjoiningTableEnd):
- rendering/RenderTableRow.h:
(WebCore::RenderTableRow::borderAdjoiningTableStart):
(WebCore::RenderTableRow::borderAdjoiningTableEnd):
- rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::borderAdjoiningStartCell):
(WebCore::RenderTableSection::borderAdjoiningEndCell):
(WebCore::RenderTableSection::firstRowCellAdjoiningTableStart):
(WebCore::RenderTableSection::firstRowCellAdjoiningTableEnd):
- rendering/RenderTableSection.h:
(WebCore::RenderTableSection::borderAdjoiningTableStart):
(WebCore::RenderTableSection::borderAdjoiningTableEnd):
- 6:05 PM Changeset in webkit [203704] by
-
- 23 edits4 copies in trunk/Source/JavaScriptCore
Unreviewed, rolling out r203703.
It breaks some internal tests
Reverted changeset:
"[JSC] DFG::Node should not have its own allocator"
https://bugs.webkit.org/show_bug.cgi?id=160098
http://trac.webkit.org/changeset/203703
- 5:27 PM Changeset in webkit [203703] by
-
- 23 edits4 deletes in trunk/Source/JavaScriptCore
[JSC] DFG::Node should not have its own allocator
https://bugs.webkit.org/show_bug.cgi?id=160098
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-25
Reviewed by Geoffrey Garen.
We need some design changes for DFG::Node:
-Accessing the index must be fast. B3 uses indices for sets
and maps, it is a lot faster than hashing pointers.
-We should be able to subclass DFG::Node to specialize it.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- dfg/DFGAllocator.h: Removed.
(JSC::DFG::Allocator::Region::size): Deleted.
(JSC::DFG::Allocator::Region::headerSize): Deleted.
(JSC::DFG::Allocator::Region::numberOfThingsPerRegion): Deleted.
(JSC::DFG::Allocator::Region::data): Deleted.
(JSC::DFG::Allocator::Region::isInThisRegion): Deleted.
(JSC::DFG::Allocator::Region::regionFor): Deleted.
(JSC::DFG::Allocator<T>::Allocator): Deleted.
(JSC::DFG::Allocator<T>::~Allocator): Deleted.
(JSC::DFG::Allocator<T>::allocate): Deleted.
(JSC::DFG::Allocator<T>::free): Deleted.
(JSC::DFG::Allocator<T>::freeAll): Deleted.
(JSC::DFG::Allocator<T>::reset): Deleted.
(JSC::DFG::Allocator<T>::indexOf): Deleted.
(JSC::DFG::Allocator<T>::allocatorOf): Deleted.
(JSC::DFG::Allocator<T>::bumpAllocate): Deleted.
(JSC::DFG::Allocator<T>::freeListAllocate): Deleted.
(JSC::DFG::Allocator<T>::allocateSlow): Deleted.
(JSC::DFG::Allocator<T>::freeRegionsStartingAt): Deleted.
(JSC::DFG::Allocator<T>::startBumpingIn): Deleted.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::addToGraph):
- dfg/DFGCPSRethreadingPhase.cpp:
(JSC::DFG::CPSRethreadingPhase::freeUnnecessaryNodes):
(JSC::DFG::CPSRethreadingPhase::addPhiSilently):
- dfg/DFGCleanUpPhase.cpp:
(JSC::DFG::CleanUpPhase::run):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::run):
- dfg/DFGConstantHoistingPhase.cpp:
- dfg/DFGDCEPhase.cpp:
(JSC::DFG::DCEPhase::fixupBlock):
- dfg/DFGDriver.cpp:
(JSC::DFG::compileImpl):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::deleteNode):
(JSC::DFG::Graph::killBlockAndItsContents):
(JSC::DFG::Graph::~Graph): Deleted.
- dfg/DFGGraph.h:
(JSC::DFG::Graph::addNode):
- dfg/DFGLICMPhase.cpp:
(JSC::DFG::LICMPhase::attemptHoist):
- dfg/DFGLongLivedState.cpp: Removed.
(JSC::DFG::LongLivedState::LongLivedState): Deleted.
(JSC::DFG::LongLivedState::~LongLivedState): Deleted.
(JSC::DFG::LongLivedState::shrinkToFit): Deleted.
- dfg/DFGLongLivedState.h: Removed.
- dfg/DFGNode.cpp:
(JSC::DFG::Node::index): Deleted.
- dfg/DFGNode.h:
(JSC::DFG::Node::index):
- dfg/DFGNodeAllocator.h: Removed.
(operator new ): Deleted.
- dfg/DFGObjectAllocationSinkingPhase.cpp:
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):
- dfg/DFGPlan.h:
- dfg/DFGSSAConversionPhase.cpp:
(JSC::DFG::SSAConversionPhase::run):
- dfg/DFGWorklist.cpp:
(JSC::DFG::Worklist::runThread):
- runtime/VM.cpp:
(JSC::VM::VM): Deleted.
- runtime/VM.h:
- 5:21 PM Changeset in webkit [203702] by
-
- 8 edits5 adds in trunk
ClientRect properties should be on the prototype
https://bugs.webkit.org/show_bug.cgi?id=160165
Reviewed by Geoffrey Garen.
Source/WebCore:
Move ClientRect properties from the instance to the prototype. This
matches the specification, Firefox and Chrome.
Also add a serializer to ClientRect in order to match the specification:
- https://drafts.fxtf.org/geometry/Overview.html#domrectreadonly
- https://heycam.github.io/webidl/#es-serializer
This avoids breaking content that relies on JSON.stringify() to
serialize ClientRect objects.
Tests: fast/css/ClientRect-attributes-prototype.html
fast/css/ClientRect-serialization.html
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSBindingsAllInOne.cpp:
- bindings/js/JSClientRectCustom.cpp: Added.
(WebCore::JSClientRect::toJSON):
- bindings/scripts/CodeGeneratorJS.pm:
- dom/ClientRect.idl:
LayoutTests:
- fast/css/ClientRect-attributes-prototype-expected.txt: Added.
- fast/css/ClientRect-attributes-prototype.html: Added.
Add layout test to check that ClientRect's properties are on the
prototype.
- fast/css/ClientRect-serialization-expected.txt: Added.
- fast/css/ClientRect-serialization.html: Added.
Add layout test to check that ClientRect has a serializer.
- 2:53 PM Changeset in webkit [203701] by
-
- 8 edits2 adds in trunk
Parameters to DOMImplementation.createDocumentType() should be mandatory and non-nullable
https://bugs.webkit.org/show_bug.cgi?id=160167
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline a W3C test now that more checks are passing.
- web-platform-tests/dom/interfaces-expected.txt:
Source/WebCore:
Parameters to DOMImplementation.createDocumentType() should be mandatory
and non-nullable:
Firefox and Chrome both agree with the specification. However, those
parameters were nullable and optional in WebKit.
Test: fast/dom/DOMImplementation/createDocumentType-parameters.html
- dom/DOMImplementation.idl:
LayoutTests:
- editing/selection/script-tests/DOMSelection-DocumentType.js:
- fast/dom/DOMImplementation/createDocumentType-err-expected.txt:
- fast/dom/DOMImplementation/script-tests/createDocumentType-err.js:
Update existing tests to reflect the behavior change.
- fast/dom/DOMImplementation/createDocumentType-parameters-expected.txt: Added.
- fast/dom/DOMImplementation/createDocumentType-parameters.html: Added.
Add layout test coverage. I have verified that this test passes on both
Firefox and Chrome.
- 2:38 PM Changeset in webkit [203700] by
-
- 7 edits in trunk/Tools
Modern IDB: Make sure IndexedDB works from file:// url documents by default
https://bugs.webkit.org/show_bug.cgi?id=153783
Reviewed by Alex Christensen.
Previously, to grant IndexedDB access to file:// urls for testing purposes,
we had to call the SPI [WKWebViewConfiguration _setAllowUniversalAccessFromFileURLs:].
As of https://trac.webkit.org/changeset/203695 this is no longer required.
Change the relevant API tests to make sure this continues to be no longer required.
- TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.mm:
- TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBDatabaseProcessKill.mm:
- TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess.mm:
- TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBPersistence.mm:
- TestWebKitAPI/Tests/WebKit2Cocoa/StoreBlobThenDelete.mm:
- TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup.mm:
- 2:03 PM Changeset in webkit [203699] by
-
- 7 edits in trunk/Source/JavaScriptCore
AssemblyHelpers should own all of the cell allocation methods
https://bugs.webkit.org/show_bug.cgi?id=160171
Reviewed by Saam Barati.
Prior to this change we had some code in DFGSpeculativeJIT.h and some code in JIT.h that
did cell allocation.
This change moves all of that code into AssemblyHelpers.h.
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::emitAllocateJSCell):
(JSC::DFG::SpeculativeJIT::emitAllocateJSObject):
(JSC::DFG::SpeculativeJIT::emitAllocateJSObjectWithKnownSize):
(JSC::DFG::SpeculativeJIT::emitAllocateVariableSizedJSObject):
(JSC::DFG::SpeculativeJIT::emitAllocateDestructibleObject):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitAllocate):
(JSC::AssemblyHelpers::emitAllocateJSCell):
(JSC::AssemblyHelpers::emitAllocateJSObject):
(JSC::AssemblyHelpers::emitAllocateJSObjectWithKnownSize):
(JSC::AssemblyHelpers::emitAllocateVariableSized):
(JSC::AssemblyHelpers::emitAllocateVariableSizedJSObject):
(JSC::AssemblyHelpers::emitAllocateDestructibleObject):
- jit/JIT.h:
- jit/JITInlines.h:
(JSC::JIT::isOperandConstantChar):
(JSC::JIT::emitValueProfilingSite):
(JSC::JIT::emitAllocateJSObject): Deleted.
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_new_object):
(JSC::JIT::emit_op_create_this):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_new_object):
(JSC::JIT::emit_op_create_this):
- 1:51 PM Changeset in webkit [203698] by
-
- 6 edits2 adds in trunk
Media controls should not be displayed for a video until it starts playing
https://bugs.webkit.org/show_bug.cgi?id=160092
<rdar://problem/26986673>
Reviewed by Beth Dakin.
Source/WebCore:
For videos that have never played back yet, we should not show media controls. To ensure this
behavior, we ensure that the playback behavior restriction is set upon creating the media
element. This restriction is then removed when the media element begins to play.
Added two new WebKit API tests.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
Tools:
Verify that multiple videos do or don't show the media controller depending on whether videos
are playing. Also tweaks an existing API test (VideoControlsManagerSingleLargeVideo) that was
passing because we were always showing media controls for large videos with audio, even if they
had not played back yet. This change ensures that large videos with audio show media controls
only after they begin to play back, and not by virtue of being large enough for main content.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit2Cocoa/large-video-with-audio.html:
- TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-with-audio-autoplay.html: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-with-audio.html: Added.
- 1:40 PM Changeset in webkit [203697] by
-
- 8 edits in trunk/Source/JavaScriptCore
MathICs should be able to take and dump stats about code size
https://bugs.webkit.org/show_bug.cgi?id=160148
Reviewed by Filip Pizlo.
This will make testing changes on MathIC going forward much easier.
We will be able to easily see if modifications to MathIC will lead
to us generating smaller code. We now only dump average size when we
regenerate any MathIC. This works out for large tests/pages, but is not
great for testing small programs. We can add more dump points later if
we find that we want to dump stats while running small small programs.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::jitSoon):
(JSC::CodeBlock::dumpMathICStats):
- bytecode/CodeBlock.h:
(JSC::CodeBlock::isStrictMode):
(JSC::CodeBlock::ecmaMode):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileMathIC):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileMathIC):
- jit/JITArithmetic.cpp:
(JSC::JIT::emitMathICFast):
(JSC::JIT::emitMathICSlow):
- jit/JITMathIC.h:
(JSC::JITMathIC::finalizeInlineCode):
(JSC::JITMathIC::codeSize):
- jit/JITOperations.cpp:
- 1:35 PM Changeset in webkit [203696] by
-
- 16 edits10 moves1 add in trunk
Rename SubtleCrypto to WebKitSubtleCrypto
https://bugs.webkit.org/show_bug.cgi?id=160067
<rdar://problem/27483617>
Reviewed by Brent Fulgham.
Source/WebCore:
Tests: crypto/webkitSubtle/gc-2.html
crypto/webkitSubtle/gc-3.html
crypto/webkitSubtle/gc.html
Rename Class SubtleCrypto to WebKitSubtleCrypto, and Crypto.subtle to Crypto.webkitSubtle in order
to let the new implementation to reuse the name SubtleCrypto. This renaming should match what our
current JSBindings use, and therefore should not introduce any change of behavoir.
- CMakeLists.txt:
Revise project files for for new file names.
- DerivedSources.cpp:
- DerivedSources.make:
- PlatformEfl.cmake:
- PlatformGTK.cmake:
- PlatformMac.cmake:
- WebCore.xcodeproj/project.pbxproj:
Revise project files for for new file names.
- bindings/js/JSWebKitSubtleCryptoCustom.cpp: Renamed from Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp.
- crypto/WebKitSubtleCrypto.cpp: Renamed from Source/WebCore/crypto/SubtleCrypto.cpp.
- crypto/WebKitSubtleCrypto.h: Renamed from Source/WebCore/crypto/SubtleCrypto.h.
- crypto/WebKitSubtleCrypto.idl: Renamed from Source/WebCore/crypto/SubtleCrypto.idl.
- page/Crypto.cpp:
(WebCore::Crypto::webkitSubtle):
(WebCore::Crypto::subtle): Deleted.
- page/Crypto.h:
- page/Crypto.idl:
LayoutTests:
Move tests involving crypto.webkitSubtle from crypto/subtle to crypto/webkitSubtle.
- crypto/webkitSubtle/gc-2-expected.txt: Renamed from LayoutTests/crypto/subtle/gc-2-expected.txt.
- crypto/webkitSubtle/gc-2.html: Renamed from LayoutTests/crypto/subtle/gc-2.html.
- crypto/webkitSubtle/gc-3-expected.txt: Renamed from LayoutTests/crypto/subtle/gc-3-expected.txt.
- crypto/webkitSubtle/gc-3.html: Renamed from LayoutTests/crypto/subtle/gc-3.html.
- crypto/webkitSubtle/gc-expected.txt: Renamed from LayoutTests/crypto/subtle/gc-expected.txt.
- crypto/webkitSubtle/gc.html: Renamed from LayoutTests/crypto/subtle/gc.html.
- platform/efl/TestExpectations:
- platform/gtk/TestExpectations:
- platform/ios-simulator-wk1/TestExpectations:
- platform/win/TestExpectations:
- 12:57 PM Changeset in webkit [203695] by
-
- 3 edits2 moves1 add1 delete in trunk
Allow LocalStorage by default for file URLs.
https://bugs.webkit.org/show_bug.cgi?id=160169
Reviewed by Brent Fulgham.
Source/WebCore:
Test: storage/domstorage/localstorage/file-can-access.html
- page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::canAccessStorage): Remove the m_universalAccess check for local URLs.
LayoutTests:
- storage/domstorage/localstorage/blocked-file-access-expected.txt: Removed.
- storage/domstorage/localstorage/file-can-access-expected.txt: Added.
- storage/domstorage/localstorage/file-can-access.html: Renamed from LayoutTests/storage/domstorage/localstorage/blocked-file-access.html.
- storage/domstorage/localstorage/resources/unblocked-example.html: Renamed from LayoutTests/storage/domstorage/localstorage/resources/blocked-example.html.
- 12:15 PM Changeset in webkit [203694] by
-
- 3 edits2 adds in trunk
AX: AccessibilityRenderObject is adding duplicated children when CSS first-letter is being used.
https://bugs.webkit.org/show_bug.cgi?id=160155
Reviewed by Chris Fleizach.
Source/WebCore:
We were adding the same text node twice if CSS first-letter selector was being used. Added a
check for the inline continuation so that we only add it once.
Test: accessibility/mac/css-first-letter-children.html
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::firstChildConsideringContinuation):
LayoutTests:
- accessibility/mac/css-first-letter-children-expected.txt: Added.
- accessibility/mac/css-first-letter-children.html: Added.
- 12:04 PM Changeset in webkit [203693] by
-
- 17 edits in trunk/Source/JavaScriptCore
op_mul/ArithMul(Untyped,Untyped) should be an IC
https://bugs.webkit.org/show_bug.cgi?id=160108
Reviewed by Mark Lam.
This patch makes Mul a type based IC in much the same way that we made
Add a type-based IC. I implemented Mul in the same way. I abstracted the
implementation of the Add IC in the various JITs to allow for it to
work over arbitrary IC snippets. This will make adding Div/Sub/Pow in the
future easy. This patch also adds a new boolean argument to the various
snippet generateFastPath() methods to indicate if we should emit result profiling.
I added this because we want this profiling to be emitted for Mul in
the baseline, but not in the DFG. We used to indicate this through passing
in a nullptr for the ArithProfile, but we no longer do that in the upper
JIT tiers. So we are passing an explicit request from the JIT tier about
whether or not it's worth it for the IC to emit profiling.
We now emit much less code for Mul. Here is some data on the average
Mul snippet/IC size:
| JetStream | Unity 3D |
------| ------------- Old | ~280 bytes | ~280 bytes |
------| ------------- New | 210 bytes | 185 bytes |
------------------------------------
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::addJITAddIC):
(JSC::CodeBlock::addJITMulIC):
(JSC::CodeBlock::findStubInfo):
- bytecode/CodeBlock.h:
(JSC::CodeBlock::stubInfoBegin):
(JSC::CodeBlock::stubInfoEnd):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::GPRTemporary::adopt):
(JSC::DFG::FPRTemporary::FPRTemporary):
(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileMathIC):
(JSC::DFG::SpeculativeJIT::compileArithMul):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::GPRTemporary::GPRTemporary):
(JSC::DFG::GPRTemporary::operator=):
(JSC::DFG::FPRTemporary::~FPRTemporary):
(JSC::DFG::FPRTemporary::fpr):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileToThis):
(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileArithMul):
- jit/JIT.h:
(JSC::JIT::getSlowCase):
- jit/JITAddGenerator.cpp:
(JSC::JITAddGenerator::generateInline):
(JSC::JITAddGenerator::generateFastPath):
- jit/JITAddGenerator.h:
(JSC::JITAddGenerator::JITAddGenerator):
(JSC::JITAddGenerator::isLeftOperandValidConstant):
(JSC::JITAddGenerator::isRightOperandValidConstant):
- jit/JITArithmetic.cpp:
(JSC::JIT::emit_op_add):
(JSC::JIT::emitSlow_op_add):
(JSC::JIT::emitMathICFast):
(JSC::JIT::emitMathICSlow):
(JSC::JIT::emit_op_mul):
(JSC::JIT::emitSlow_op_mul):
(JSC::JIT::emit_op_sub):
- jit/JITInlines.h:
(JSC::JIT::callOperation):
- jit/JITMathIC.h:
(JSC::JITMathIC::slowPathStartLocation):
(JSC::JITMathIC::slowPathCallLocation):
(JSC::JITMathIC::isLeftOperandValidConstant):
(JSC::JITMathIC::isRightOperandValidConstant):
(JSC::JITMathIC::generateInline):
(JSC::JITMathIC::generateOutOfLine):
- jit/JITMathICForwards.h:
- jit/JITMulGenerator.cpp:
(JSC::JITMulGenerator::generateInline):
(JSC::JITMulGenerator::generateFastPath):
- jit/JITMulGenerator.h:
(JSC::JITMulGenerator::JITMulGenerator):
(JSC::JITMulGenerator::isLeftOperandValidConstant):
(JSC::JITMulGenerator::isRightOperandValidConstant):
(JSC::JITMulGenerator::didEmitFastPath): Deleted.
(JSC::JITMulGenerator::endJumpList): Deleted.
(JSC::JITMulGenerator::slowPathJumpList): Deleted.
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- 11:45 AM Changeset in webkit [203692] by
-
- 2 edits in trunk/Source/WebKit2
Fix assertion.
- NetworkProcess/cache/NetworkCacheCodersCocoa.cpp:
(WebKit::NetworkCache::encodeCertificateChain):
- 11:01 AM Changeset in webkit [203691] by
-
- 5 edits2 adds in trunk/Source/WebKit2
Split platform specific parts of NetworkCacheCoders.cpp into separate files
https://bugs.webkit.org/show_bug.cgi?id=160151
Patch by Sam Weinig <sam@webkit.org> on 2016-07-25
Reviewed by Alex Christensen.
- NetworkProcess/cache/NetworkCacheCoders.cpp:
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode): Deleted.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode): Deleted.
- NetworkProcess/cache/NetworkCacheCodersCocoa.cpp: Copied from Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.cpp.
(WebKit::NetworkCache::encodeCFData): Moved.
(WebKit::NetworkCache::decodeCFData): Moved.
(WebKit::NetworkCache::encodeSecTrustRef): Moved.
(WebKit::NetworkCache::decodeSecTrustRef): Moved.
(WebKit::NetworkCache::encodeCertificateChain): Moved.
(WebKit::NetworkCache::decodeCertificateChain): Moved.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode): Moved.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode): Moved.
- NetworkProcess/cache/NetworkCacheCodersSoup.cpp: Copied from Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.cpp.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode): Moved.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode): Moved.
- PlatformGTK.cmake:
- PlatformMac.cmake:
- WebKit2.xcodeproj/project.pbxproj:
Add new files.
- 10:49 AM Changeset in webkit [203690] by
-
- 7 edits3 adds in trunk
Media controls on apple.com don't disappear when movie finishes playing
https://bugs.webkit.org/show_bug.cgi?id=160068
<rdar://problem/26668526>
Reviewed by Darin Adler.
Source/WebCore:
When a video ends, it should cause media controls to hide. While current logic
mostly accounts for this, it does not account for programmatic seeks causing
the video to lose its 'ended' status before querying for whether or not to
show media controls.
Three new API tests: large-video-seek-after-ending.html
large-video-hides-controls-after-seek-to-end.html
large-video-seek-to-beginning-and-play-after-ending.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
(WebCore::HTMLMediaElement::setPlaying):
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::canControlControlsManager):
- html/MediaElementSession.h:
Tools:
Adds new API tests. Please see WebCore ChangeLog for more details.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:
(-[MediaPlaybackMessageHandler initWithWKWebView:finalMessageString:]):
(-[MediaPlaybackMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):
(-[DidPlayMessageHandler initWithWKWebView:]): Deleted.
(-[DidPlayMessageHandler userContentController:didReceiveScriptMessage:]): Deleted.
- TestWebKitAPI/Tests/WebKit2Cocoa/large-video-hides-controls-after-seek-to-end.html: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/large-video-seek-after-ending.html: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/large-video-seek-to-beginning-and-play-after-ending.html: Added.
- 10:21 AM Changeset in webkit [203689] by
-
- 5 edits in branches/safari-602-branch/Source
Versioning.
- 10:13 AM Changeset in webkit [203688] by
-
- 9 edits2 copies in trunk/Source/WebCore
Introduce a MathMLOperatorElement class
https://bugs.webkit.org/show_bug.cgi?id=160034
Patch by Frederic Wang <fwang@igalia.com> on 2016-07-25
Reviewed by Darin Adler.
No new tests, rendering is unchaned.
- CMakeLists.txt: Add MathMLOperatorElement to the build file.
- WebCore.xcodeproj/project.pbxproj: Ditto.
- mathml/MathMLAllInOne.cpp: Ditto.
- mathml/MathMLOperatorElement.cpp: New DOM class for <mo> element.
(WebCore::MathMLOperatorElement::MathMLOperatorElement):
(WebCore::MathMLOperatorElement::create):
(WebCore::MathMLOperatorElement::parseAttribute): Handle mo attributes.
(WebCore::MathMLOperatorElement::createElementRenderer): Create RenderMathMLOperator.
- mathml/MathMLOperatorElement.h: Declare a class deriving from MathMLTextElement.
- mathml/MathMLTextElement.cpp: Remove all the RenderMathMLOperator parts.
(WebCore::MathMLTextElement::MathMLTextElement): Remove inline keyword so that the class can
be overriden.
(WebCore::MathMLTextElement::parseAttribute): Remove code handled in MathMLOperatorElement.
(WebCore::MathMLTextElement::createElementRenderer): Ditto.
- mathml/MathMLTextElement.h: Make class and members overridable.
- mathml/mathtags.in: Map mo to MathMLOperatorElement.
- rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::RenderMathMLOperator): Make the constructor take a
MathMLOperatorElement.
- rendering/mathml/RenderMathMLOperator.h: Ditto.
- 9:57 AM Changeset in webkit [203687] by
-
- 4 edits in trunk/Source/WebKit2
[iOS] Make sure we call the ProcessAssertion invalidation handler on the main thread
https://bugs.webkit.org/show_bug.cgi?id=160140
<rdar://problem/27399998>
Reviewed by Darin Adler.
Based on crash traces, it appears BKSProcessAssertion is calling our
invalidation handler on a background thread. This was not anticipated
and therefore, this would lead to thread safety issues and crashes.
We now make sure to call our invalidation handler on the main thread.
We also use a WeakPtr to ensure that the ProcessAssertion is still
alive once on the main thread and before calling the invalidation
handler.
- UIProcess/ProcessAssertion.cpp:
(WebKit::ProcessAssertion::ProcessAssertion):
- UIProcess/ProcessAssertion.h:
(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::createWeakPtr):
- UIProcess/ios/ProcessAssertionIOS.mm:
(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::markAsInvalidated):
- 9:37 AM Changeset in webkit [203686] by
-
- 4 edits in trunk/Source
Speed up make process slightly by improving "list of files" idiom
https://bugs.webkit.org/show_bug.cgi?id=160164
Reviewed by Mark Lam.
- DerivedSources.make: Change rules that build lists of files to only run when
DerivedSources.make has been modified since the last time they were run. Since the
list of files are inside this file, this is safe, and this is faster than always
comparing and regenerating the file containing the list of files each time.
- 9:30 AM Changeset in webkit [203685] by
-
- 2 edits in trunk/Tools
Unreviewed, fix test-webkitpy after r203674.
- Scripts/webkitpy/port/linux_get_crash_log_unittest.py:
(GDBCrashLogGeneratorTest.test_generate_crash_log):
- 9:03 AM Changeset in webkit [203684] by
-
- 4 edits2 adds in trunk
The web process hangs when computing elements-based snap points for a container with large max scroll offset
https://bugs.webkit.org/show_bug.cgi?id=152605
<rdar://problem/25353661>
Reviewed by Simon Fraser.
Source/WebCore:
Fixes a bug in the computation of axis snap points. The ScrollSnapPoints object, which tracks
snap points along a particular axis, has two flags, hasRepeat and usesElements. For elements-
based snapping, both flags would be turned on, since StyleBuilderConverter::convertScrollSnapPoints
short-circuits for elements-based snapping and does not default usesRepeat to false. To address this,
we make ScrollSnapPoints not repeat(100%) by default.
Test: css3/scroll-snap/scroll-snap-elements-container-larger-than-children.html
- css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertScrollSnapPoints): Deleted.
- rendering/style/StyleScrollSnapPoints.cpp:
(WebCore::ScrollSnapPoints::ScrollSnapPoints):
LayoutTests:
Adds a scroll snap offset computation test case that would have previously
caused the web process to hang before this patch.
- css3/scroll-snap/scroll-snap-elements-container-larger-than-children-expected.txt: Added.
- css3/scroll-snap/scroll-snap-elements-container-larger-than-children.html: Added.
- 8:02 AM Changeset in webkit [203683] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r200931): Invalid cast in highestAncestorToWrapMarkup()
https://bugs.webkit.org/show_bug.cgi?id=160163
Reviewed by Michael Catanzaro.
Since r200931 the result of enclosingNodeOfType() in highestAncestorToWrapMarkup() is downcasted to Element, but
the result of enclosingNodeOfType() can be a Node that is not an Element, in this case is Text. The cast is not
needed at all since that node is passed to editingIgnoresContent() and selectionFromContentsOfNode() and both
receive a Node not an Element.
- editing/markup.cpp:
(WebCore::highestAncestorToWrapMarkup): Remove invalid cast.
- 8:01 AM Changeset in webkit [203682] by
-
- 2 edits in trunk/Source/WebCore
[Coordinated Graphics] ASSERTION FAILED: m_coordinator->isFlushingLayerChanges() in fast/repaint/animation-after-layer-scroll.html
https://bugs.webkit.org/show_bug.cgi?id=160156
Reviewed by Michael Catanzaro.
So, we fixed an assertion in r203663, but now is hitting the next one. As explained in bug #160142, flush
compositing state can be triggered in tests by RenderLayerCompositor::layerTreeAsText(), without the coordinator
even noticing it, so the assert can be just removed.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly): Remove incorrect assert.
- 7:33 AM Changeset in webkit [203681] by
-
- 3 edits in trunk/Source/WebCore
EllipsisBox ctor's isVertical parameter should read isHorizontal.
https://bugs.webkit.org/show_bug.cgi?id=160153
Reviewed by Andreas Kling.
It indicates whether the ellipsis box is horizontal. (both the callsites
and the parent class use isHorizontal)
No change in functionality.
- rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::EllipsisBox):
- rendering/EllipsisBox.h:
- 5:25 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 1:57 AM Changeset in webkit [203680] by
-
- 21 edits1 copy2 moves5 adds in trunk
[css-grid] Implement repeat(auto-fit)
https://bugs.webkit.org/show_bug.cgi?id=159771
Reviewed by Darin Adler.
Source/WebCore:
The auto-fit keyword works exactly as the already implemented auto-fill except that all
empty tracks collapse (became 0px). Absolutely positioned items do not participate on the
layout of the grid so they are not considered (a grid with only absolutely positioned items
is considered an empty grid).
Whenever a track collapses the gutters on either side do also collapse. When a collapsed
track's gutters collapse, they coincide exactly. If one side of a collapsed track does not
have a gutter then collapsing its gutters results in no gutter on either "side" of the
collapsed track.
In practice this means that is not possible to know the gap between 2 consecutive auto
repeat tracks without examining some others whenever there are collapsed tracks.
Uncommented the auto-fit cases from Mozilla tests. They have to be adapted as the reftest
machinery requires all the content to be rendered in the original 800x600 viewport.
Tests: fast/css-grid-layout/grid-auto-fit-columns.html
fast/css-grid-layout/grid-auto-fit-rows.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-1.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-2.html
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackList): Use the newly added trackSizesForComputedStyle().
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeTrackBasedLogicalHeight):
(WebCore::RenderGrid::computeTrackSizesForDirection):
(WebCore::RenderGrid::isEmptyAutoRepeatTrack):
(WebCore::RenderGrid::gridGapForDirection): Returns the gap directly from the style.
(WebCore::RenderGrid::guttersSize): Computes the gap between a startLine and an
endLine. This method may need to inspect some other surrounding tracks to compute the gap.
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeIntrinsicLogicalHeight):
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::gridTrackSize):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
(WebCore::RenderGrid::computeAutoRepeatTracksCount):
(WebCore::RenderGrid::computeEmptyTracksForAutoRepeat): Returns a Vector with the auto
repeat tracks that are going to be collapsed because they're empty.
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::trackSizesForComputedStyle): Used by ComputedStyle logic to print the
size of tracks. Added in order to hide the actual contents of m_columnPositions and
m_rowPositions to the outter world.
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
(WebCore::RenderGrid::gridAreaBreadthForChild):
(WebCore::RenderGrid::populateGridPositionsForDirection): Added some extra code to compute
gaps as they cannot be directly added between tracks in case of having collapsed tracks.
(WebCore::RenderGrid::columnAxisOffsetForChild):
(WebCore::RenderGrid::rowAxisOffsetForChild):
(WebCore::RenderGrid::offsetBetweenTracks): Deleted.
- rendering/RenderGrid.h: Made some API private. Added new required methods/attributes.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackList):
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeTrackBasedLogicalHeight):
(WebCore::RenderGrid::computeTrackSizesForDirection):
(WebCore::RenderGrid::hasAutoRepeatEmptyTracks):
(WebCore::RenderGrid::isEmptyAutoRepeatTrack):
(WebCore::RenderGrid::gridGapForDirection):
(WebCore::RenderGrid::guttersSize):
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeIntrinsicLogicalHeight):
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::gridTrackSize):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
(WebCore::RenderGrid::computeAutoRepeatTracksCount):
(WebCore::RenderGrid::computeEmptyTracksForAutoRepeat):
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::trackSizesForComputedStyle):
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
(WebCore::RenderGrid::assumedRowsSizeForOrthogonalChild):
(WebCore::RenderGrid::gridAreaBreadthForChild):
(WebCore::RenderGrid::populateGridPositionsForDirection):
(WebCore::RenderGrid::columnAxisOffsetForChild):
(WebCore::RenderGrid::rowAxisOffsetForChild):
(WebCore::RenderGrid::offsetBetweenTracks): Deleted.
- rendering/RenderGrid.h:
LayoutTests:
Uncommented the auto-fit cases. Split the Mozilla's 005 test in two because it was not
possible to fit all the content in a viewport without scrollbars.
- fast/css-grid-layout/grid-auto-fit-columns-expected.txt: Added.
- fast/css-grid-layout/grid-auto-fit-columns.html: Added.
- fast/css-grid-layout/grid-auto-fit-rows-expected.txt: Added.
- fast/css-grid-layout/grid-auto-fit-rows.html: Added.
- fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
- fast/css-grid-layout/grid-element-auto-repeat-get-set.html:
- fast/css-grid-layout/grid-only-abspos-item-computed-style-crash-expected.txt:
- fast/css-grid-layout/grid-only-abspos-item-computed-style-crash.html:
- fast/css-grid-layout/grid-positioned-items-padding-expected.txt:
- fast/css-grid-layout/grid-positioned-items-padding.html:
- fast/css-grid-layout/grid-template-columns-rows-computed-style-gaps-content-alignment-expected.txt:
- fast/css-grid-layout/grid-template-columns-rows-computed-style-gaps-content-alignment.html:
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001-expected.html:
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001.html:
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002-expected.html:
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002.html:
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003-expected.html:
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003.html:
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-004-expected.html:
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-004.html:
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-1-expected.html: Renamed from LayoutTests/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-expected.html.
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-1.html: Copied from LayoutTests/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005.html.
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-2-expected.html: Added.
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-2.html: Renamed from LayoutTests/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005.html.
- 12:21 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 12:18 AM Changeset in webkit [203679] by
-
- 12 edits in trunk/Source/WebCore
Move parsing of display, displaystyle and mathvariant attributes into MathML element classes
https://bugs.webkit.org/show_bug.cgi?id=159623
Patch by Frederic Wang <fwang@igalia.com> on 2016-07-24
Reviewed by Brent Fulgham.
No new tests, already covered by existing tests.
- mathml/MathMLElement.cpp:
(WebCore::MathMLElement::parseMathVariantAttribute): Move helper function to parse the
mathvariant attribute.
(WebCore::MathMLElement::getSpecifiedDisplayStyle): Helper function to set the displaystyle
value from the attribute specified on the MathML element.
(WebCore::MathMLElement::getSpecifiedMathVariant): Helper function to set the mathvariant
value from the attribute specified on the MathML element.
- mathml/MathMLElement.h: Move the enum for mathvariant values and declare new members.
(WebCore::MathMLElement::acceptsDisplayStyleAttribute): Indicate whether the element accepts
displaystyle attribute (false for most of them).
(WebCore::MathMLElement::acceptsMathVariantAttribute): Indicate whether the element accepts
mathvariant attribute (false for most of them).
- mathml/MathMLInlineContainerElement.cpp:
(WebCore::MathMLInlineContainerElement::acceptsDisplayStyleAttribute): Add mstyle and mtable
to the list of elements accepting the displaystyle attribute.
(WebCore::MathMLInlineContainerElement::acceptsMathVariantAttribute): Add mstyle to the list
of elements accepting the mathvariant attribute.
(WebCore::MathMLInlineContainerElement::parseAttribute): Mark displaystyle and mathvariant
dirty if necessary. Also use the new accepts*Attribute function.
- mathml/MathMLInlineContainerElement.h: Declare overridden accepts*Attribute members.
- mathml/MathMLMathElement.cpp:
(WebCore::MathMLMathElement::getSpecifiedDisplayStyle): Override acceptsDisplayStyleAttribute
so that the display attribute is also used to set the default value if the displaystyle
attribute is absent.
(WebCore::MathMLMathElement::parseAttribute): Mark displaystyle and mathvariant dirty if
necessary. We directly MathMLElement::parseAttribute to avoid duplicate work.
- mathml/MathMLMathElement.h: Add the math tag to the list of elements accepting the
displaystyle and mathvariant attributes. Declare overridden getSpecifiedDisplayStyle.
- mathml/MathMLTextElement.cpp:
(WebCore::MathMLTextElement::parseAttribute): Mark mathvariant as dirty.
- mathml/MathMLTextElement.h: Add token elements to the list of elements accepting the
mathvariant attribute.
- rendering/mathml/MathMLStyle.cpp:
(WebCore::MathMLStyle::updateStyleIfNeeded): Use the new MathMLElement::MathVariant enum.
(WebCore::MathMLStyle::resolveMathMLStyle): We no longer parse the display value to
initialize the default value on the math tag, because this is handled in
getSpecifiedDisplayStyle. In general, we also just call getSpecifiedDisplayStyle and
getSpecifiedMathVariant on the MathML elements instead of parsing the displaystyle and
mathvariant attributes here.
(WebCore::MathMLStyle::parseMathVariant): Deleted. This is moved into MathMLElement.
- rendering/mathml/MathMLStyle.h: Use the new MathMLElement::MathVariant enum.
- rendering/mathml/RenderMathMLToken.cpp: Ditto.
(WebCore::mathVariant): Ditto.
(WebCore::RenderMathMLToken::updateMathVariantGlyph): Ditto.
- 12:10 AM Changeset in webkit [203678] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed. Remove unneeded header includes from CoordinatedGraphicsLayer.
Not only thjey are not needed, they are a layer violation, CoordinatedGraphicsLayer shouldn't know anything
about Page, Frame and FrameView.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
Jul 24, 2016:
- 11:34 PM Changeset in webkit [203677] by
-
- 1 edit1 add in trunk/Tools
Unreviewed, forgot to commit this file in r203674.
- Scripts/process-linux-coredump: Added.
(main):
- 11:33 PM Changeset in webkit [203676] by
-
- 3 edits in trunk/Source/WebKit2
[GTK][Threaded Compositor] ASSERTION FAILED: !!handle !!m_nativeSurfaceHandle with several layout tests
https://bugs.webkit.org/show_bug.cgi?id=160143
Reviewed by Michael Catanzaro.
We have a message to set the native surface handle and another one for destroying it, the former is a normal
message while the latter is sync. This assertion happens if the web view is realized before the web process is
launched. This is the sequence:
1.- DrawingAreaProxyImpl sends SetNativeSurfaceHandleForCompositing message to the web process, since the
process hasn't been launched yet, the message is queued.
2.- Web process is launched and queued messages are now sent to the web process.
3.- The page is closed right after the web process is launched, and DrawingAreaProxyImpl sends
DestroyNativeSurfaceHandleForCompositing to the web process.
4.- The web process processes incoming messages, and DestroyNativeSurfaceHandleForCompositing is processed before
SetNativeSurfaceHandleForCompositing because it's sync.
5.- The web process processes SetNativeSurfaceHandleForCompositing message.
This is not only producing the assertion, it's also setting a handle for a X window already destroyed in the UI
process, so this could be producing the X errors we have seen in other tests. So, we need to make sure
SetNativeSurfaceHandleForCompositing and DestroyNativeSurfaceHandleForCompositing are handled in order by the
web process. We could make SetNativeSurfaceHandleForCompositing sync as well, but sync messages are just ignored
when sent before the web process has been launched (only normal messages are queued for obvious reasons). The
other option is sending the SetNativeSurfaceHandleForCompositing message with the
IPC::DispatchMessageEvenWhenWaitingForSyncReply flag. In this case the message is queued and dispatched on
process launch, but it's dispatched before other messages also queued without that flag, like
CreateWebPage. Since there's no WebPage the web process doesn't find a valid message receiver for it and
it's discarded. We need to ensure the DrawinArea object has been created before sending the
SetNativeSurfaceHandleForCompositing with the PC::DispatchMessageEvenWhenWaitingForSyncReply flag.
- UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState): If we have received the first update and there's a
SetNativeSurfaceHandleForCompositing message pending, send it.
(WebKit::DrawingAreaProxyImpl::setNativeSurfaceHandleForCompositing): Do not send the message before the first
update is received.
(WebKit::DrawingAreaProxyImpl::destroyNativeSurfaceHandleForCompositing): If there was a
SetNativeSurfaceHandleForCompositing message pending, just ignore this destroy since the web process never
received the handle.
- UIProcess/DrawingAreaProxyImpl.h:
- 11:28 PM Changeset in webkit [203675] by
-
- 27 edits3 copies1 delete in trunk
[Fetch API] Request should be created with any HeadersInit data
https://bugs.webkit.org/show_bug.cgi?id=159672
Patch by Youenn Fablet <youenn@apple.com> on 2016-07-24
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- imported/w3c/web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Test was previously
failing due to lack of support for HeadersInit data in Request constructor.
- platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Removed.
- web-platform-tests/fetch/api/request/request-headers-expected.txt:
- web-platform-tests/fetch/api/request/request-headers.html: Adding new test.
Source/JavaScriptCore:
- Scripts/builtins/builtins_generator.py:
(WK_lcfirst): Synchronized with CodeGenerator.pm version.
Source/WebCore:
Made Request use JSBuiltinConstructor.
This allows initializing newly created Request with a JS built-in function, initializeFetchRequest.
initializeFetchRequest can call @fillFetchHeaders internal built-in to handle any HeadersInit data.
Future effort should be made to migrate more initialization code in initializeFetchRequest.
Made window and worker fetch function as a JS built-in.
This becomes more handy as these new functions can construct the Request object.
They can then call a single private function that takes a Request object as input.
Updated DOMWindowFetch and WorkerGlobalScopeFetch code accordingly.
To enable this, the binding generator is updated to support runtime-enabled JS built-in functions and
private functions atttached to global objects.
Covered by existing and modified tests.
Binding generator test covered by updated binding tests.
- CMakeLists.txt: Adding DOMWindowFetch.js, FetchRequest.js and WorkerGlobalScopeFetch.js built-in files.
- DerivedSources.make: Ditto.
- Modules/fetch/DOMWindowFetch.cpp: Removed overloaded fetch and updated according new signature.
(WebCore::DOMWindowFetch::fetch):
- Modules/fetch/DOMWindowFetch.h: Ditto.
- Modules/fetch/DOMWindowFetch.idl: Making fetch a JS built-in and adding a @fetchRequest private function.
- Modules/fetch/DOMWindowFetch.js: Added.
(fetch):
- Modules/fetch/FetchHeaders.h:
(WebCore::FetchHeaders::setGuard): Used by FetchRequest when initializing headers.
- Modules/fetch/FetchRequest.cpp:
(WebCore::buildHeaders): Removed as implemented in JS.
(WebCore::FetchRequest::initializeOptions): Added to handle most of the dictionary initialization.
(WebCore::FetchRequest::initializeWith): Method called from built-in constructor function.
(WebCore::FetchRequest::setBody): Corresponding to @setBody private method.
(WebCore::buildBody): Deleted.
- Modules/fetch/FetchRequest.h:
- Modules/fetch/FetchRequest.idl:
- Modules/fetch/FetchRequest.js: Added.
(initializeFetchRequest): Implements fetch Request(input, init) constructor.
- Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::fetch): Removed the construction of FetchRequest in fetch method since it is done by JS built-in code.
- Modules/fetch/FetchResponse.h:
- Modules/fetch/WorkerGlobalScopeFetch.cpp: Removed overloaded fetch and updated according new signature.
(WebCore::WorkerGlobalScopeFetch::fetch):
- Modules/fetch/WorkerGlobalScopeFetch.h: Ditto.
- Modules/fetch/WorkerGlobalScopeFetch.idl: Making fetch a JS built-in and adding a @fetchRequest private function.
- Modules/fetch/WorkerGlobalScopeFetch.js: Added.
(fetch):
- bindings/js/WebCoreBuiltinNames.h: Adding fetchRequest, setBody and Request private identifiers.
- bindings/scripts/CodeGenerator.pm:
(WK_lcfirst): Replacing dOM by dom.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation): Adding support for runtime-enabled built-in methods and private methods.
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::JSTestGlobalObject::finishCreation):
(WebCore::jsTestGlobalObjectInstanceFunctionTestPrivateFunction):
- bindings/scripts/test/ObjC/DOMTestGlobalObject.mm:
(-[DOMTestGlobalObject testJSBuiltinFunction]):
- bindings/scripts/test/TestGlobalObject.idl: Adding tests for runtime-enabled global built-in methods and private methods.
- 11:07 PM Changeset in webkit [203674] by
-
- 16 edits in trunk
Improve GDB backtrace generation for GTK/EFL
https://bugs.webkit.org/show_bug.cgi?id=128928
Reviewed by Carlos Garcia Campos.
Source/WebKit2:
Move the Web, Database and Network ProcessIdentifier functions to
the cross-platform WKContext and WKPage implementations.
- UIProcess/API/C/WKContext.cpp:
(WKContextGetNetworkProcessIdentifier):
(WKContextGetDatabaseProcessIdentifier):
- UIProcess/API/C/WKContextPrivate.h:
- UIProcess/API/C/WKPage.cpp:
(WKPageGetProcessIdentifier):
- UIProcess/API/C/WKPagePrivate.h:
- UIProcess/API/C/mac/WKContextPrivateMac.h:
- UIProcess/API/C/mac/WKContextPrivateMac.mm:
- UIProcess/API/C/mac/WKPagePrivateMac.h:
- UIProcess/API/C/mac/WKPagePrivateMac.mm:
Tools:
The PID of the crashed process is now correctly supplied to the
crash log reporter. The kernel core_pattern needs to be updated
after this change to something like:
echo "|/home/phil/WebKit/Tools/Scripts/process-linux-coredump /tmp/core-pid_%p.dump" > /proc/sys/kernel/core_pattern
- Scripts/process-linux-coredump: Added.
(main): Minimal python script reading coredump data on stdin and writing it to a file in /tmp/.
- Scripts/webkitpy/port/efl.py:
(EflPort._get_crash_log): Supply path of the process-linux-coredump script.
- Scripts/webkitpy/port/gtk.py:
(GtkPort._get_crash_log): Ditto.
- Scripts/webkitpy/port/linux_get_crash_log.py:
(GDBCrashLogGenerator.init): New argument for supplying the path of a coredump processor script.
(GDBCrashLogGenerator.generate_crash_log): Update error message, the core_pattern should now be set to pipe coredumps to a script.
(GDBCrashLogGenerator): Deleted.
- Scripts/webkitpy/port/linux_get_crash_log_unittest.py:
(GDBCrashLogGeneratorTest.test_generate_crash_log): Update test expectations.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::networkProcessDidCrash): Supply PID of crash process.
(WTR::TestController::databaseProcessDidCrash): Ditto.
(WTR::TestController::processDidCrash): Ditto.
- 8:42 PM Changeset in webkit [203673] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Filtering is broken in the Overview timeline view
https://bugs.webkit.org/show_bug.cgi?id=160152
<rdar://problem/27517481>
Reviewed by Joseph Pecoraro.
- UserInterface/Views/SourceCodeTimelineTimelineDataGridNode.js:
(WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype.filterableDataForColumn):
Non-resource nodes should be filtered based on their display name.
- 6:14 PM Changeset in webkit [203672] by
-
- 3 edits in branches/safari-602-branch/LayoutTests
Merge r203665. rdar://problem/27453479
- 5:48 PM Changeset in webkit [203671] by
-
- 3 edits in trunk/Source/WebKit2
Add specialization for encoding/decoding WebCore::CertificateInfos in the Network Cache
<rdar://problem/27409315>
https://bugs.webkit.org/show_bug.cgi?id=160144
Reviewed by Chris Dumez.
- NetworkProcess/cache/NetworkCacheCoders.cpp:
(WebKit::NetworkCache::encodeCFData):
(WebKit::NetworkCache::decodeCFData):
(WebKit::NetworkCache::encodeSecTrustRef):
(WebKit::NetworkCache::decodeSecTrustRef):
(WebKit::NetworkCache::encodeCertificateChain):
(WebKit::NetworkCache::decodeCertificateChain):
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode):
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode):
- NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::NetworkCache::Storage::version):
Bump the version and lastStableVersion to account for the format change.
- 1:33 PM Changeset in webkit [203670] by
-
- 33 edits2 adds in trunk
B3 should support multiple entrypoints
https://bugs.webkit.org/show_bug.cgi?id=159391
Reviewed by Saam Barati.
Source/JavaScriptCore:
This teaches B3 how to compile procedures with multiple entrypoints in the best way ever.
Multiple entrypoints are useful. We could use them to reduce the cost of compiling OSR
entrypoints. We could use them to implement better try/catch.
Multiple entrypoints are hard to support. All of the code that assumed that the root block
is the entrypoint would have to be changed. Transformations like moveConstants() would have
to do crazy things if the existence of multiple entrypoints prevented it from finding a
single common dominator.
Therefore, we want to add multiple entrypoints without actually teaching the compiler that
there is such a thing. That's sort of what this change does.
This adds a new opcode to both B3 and Air called EntrySwitch. It's a terminal that takes
one or more successors and no value children. The number of successors must match
Procedure::numEntrypoints(), which could be arbitrarily large. The semantics of EntrySwitch
are:
- Each of the entrypoints sets a hidden Entry variable to that entrypoint's index and jumps to the procedure's root block.
- An EntrySwitch is a switch statement over this hidden Entry variable.
The way that we actually implement this is that Air has a very late phase - after all
register and stack layout - that clones all code where the Entry variable is live; i.e all
code in the closure over predecessors of all blocks that do EntrySwitch.
Usually, you would use this by creating an EntrySwitch in the root block, but you don't
have to do that. Just remember that the code before EntrySwitch gets cloned for each
entrypoint. We allow cloning of an arbitrarily large amount of code because restricting it,
and so restricing the placement of EntrySwitches, would be unelegant. It would be hard to
preserve this invariant. For example we wouldn't be able to lower any value before an
EntrySwitch to a control flow diamond.
This patch gives us an easy-to-use way to use B3 to compile code with multiple entrypoints.
Inside the compiler, only code that runs very late in Air has to know about this feature.
We get the best of both worlds!
Also, I finally got rid of the requirement that you explicitly cast BasicBlock* to
FrequentedBlock. I can no longer remember why I thought that was a good idea. Removing it
doesn't cause any problems and it makes code easier to write.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- b3/B3BasicBlockUtils.h:
(JSC::B3::updatePredecessorsAfter):
(JSC::B3::clearPredecessors):
(JSC::B3::recomputePredecessors):
- b3/B3FrequencyClass.h:
(JSC::B3::maxFrequency):
- b3/B3Generate.h:
- b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::lower):
- b3/B3MoveConstants.cpp:
- b3/B3Opcode.cpp:
(WTF::printInternal):
- b3/B3Opcode.h:
- b3/B3Procedure.cpp:
(JSC::B3::Procedure::isFastConstant):
(JSC::B3::Procedure::entrypointLabel):
(JSC::B3::Procedure::addDataSection):
- b3/B3Procedure.h:
(JSC::B3::Procedure::numEntrypoints):
(JSC::B3::Procedure::setNumEntrypoints):
(JSC::B3::Procedure::setLastPhaseName):
- b3/B3Validate.cpp:
- b3/B3Value.cpp:
(JSC::B3::Value::effects):
(JSC::B3::Value::typeFor):
- b3/B3Value.h:
- b3/air/AirCode.cpp:
(JSC::B3::Air::Code::cCallSpecial):
(JSC::B3::Air::Code::isEntrypoint):
(JSC::B3::Air::Code::resetReachability):
(JSC::B3::Air::Code::dump):
- b3/air/AirCode.h:
(JSC::B3::Air::Code::setFrameSize):
(JSC::B3::Air::Code::numEntrypoints):
(JSC::B3::Air::Code::entrypoints):
(JSC::B3::Air::Code::entrypoint):
(JSC::B3::Air::Code::setEntrypoints):
(JSC::B3::Air::Code::entrypointLabel):
(JSC::B3::Air::Code::setEntrypointLabels):
(JSC::B3::Air::Code::calleeSaveRegisters):
- b3/air/AirCustom.h:
(JSC::B3::Air::PatchCustom::isTerminal):
(JSC::B3::Air::PatchCustom::hasNonArgEffects):
(JSC::B3::Air::PatchCustom::hasNonArgNonControlEffects):
(JSC::B3::Air::PatchCustom::generate):
(JSC::B3::Air::CommonCustomBase::hasNonArgEffects):
(JSC::B3::Air::CCallCustom::forEachArg):
(JSC::B3::Air::ColdCCallCustom::forEachArg):
(JSC::B3::Air::ShuffleCustom::forEachArg):
(JSC::B3::Air::EntrySwitchCustom::forEachArg):
(JSC::B3::Air::EntrySwitchCustom::isValidFormStatic):
(JSC::B3::Air::EntrySwitchCustom::isValidForm):
(JSC::B3::Air::EntrySwitchCustom::admitsStack):
(JSC::B3::Air::EntrySwitchCustom::isTerminal):
(JSC::B3::Air::EntrySwitchCustom::hasNonArgNonControlEffects):
(JSC::B3::Air::EntrySwitchCustom::generate):
- b3/air/AirGenerate.cpp:
(JSC::B3::Air::prepareForGeneration):
(JSC::B3::Air::generate):
- b3/air/AirLowerEntrySwitch.cpp: Added.
(JSC::B3::Air::lowerEntrySwitch):
- b3/air/AirLowerEntrySwitch.h: Added.
- b3/air/AirOpcode.opcodes:
- b3/air/AirOptimizeBlockOrder.cpp:
(JSC::B3::Air::blocksInOptimizedOrder):
- b3/air/AirSpecial.cpp:
(JSC::B3::Air::Special::isTerminal):
(JSC::B3::Air::Special::hasNonArgEffects):
(JSC::B3::Air::Special::hasNonArgNonControlEffects):
- b3/air/AirSpecial.h:
- b3/air/AirValidate.cpp:
- b3/air/opcode_generator.rb:
- b3/testb3.cpp:
Source/WTF:
- wtf/GraphNodeWorklist.h: Expose some handy functionality.
(WTF::GraphNodeWorklist::pop):
(WTF::GraphNodeWorklist::saw):
(WTF::GraphNodeWorklist::seen):
- wtf/VectorTraits.h: Fix a bug! Otherwise filling a vector of byte-sized enum classes doesn't work.
Websites/webkit.org:
Update some statements about ControlValue (which doesn't exist anymore) and add a blurb
about EntrySwitch.
- docs/b3/index.html:
- docs/b3/intermediate-representation.html:
- 12:53 PM Changeset in webkit [203669] by
-
- 3 edits2 adds in trunk
AX: Video Controls: Volume cannot be adjusted using VO.
https://bugs.webkit.org/show_bug.cgi?id=160107
Reviewed by Dean Jackson.
Source/WebCore:
The volume slider in video tag had 0.01 step which caused the screen reader adjusting it slowly.
Changed the step to 0.05 and added the aria-valuetext attribute to the slider, so that the value
is spoken in percentage.
Test: accessibility/mac/video-volume-slider-accessibility.html
- Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.createControls):
(Controller.prototype.handleVolumeSliderInput):
(Controller.prototype.updateVolume):
LayoutTests:
- accessibility/mac/video-volume-slider-accessibility-expected.txt: Added.
- accessibility/mac/video-volume-slider-accessibility.html: Added.
- 11:59 AM Changeset in webkit [203668] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, fix broken test. I don't know why I goofed this up without seeing it before landing.
- b3/air/AirOpcode.opcodes:
- b3/testb3.cpp:
(JSC::B3::run):
- 10:47 AM Changeset in webkit [203667] by
-
- 3 edits2 adds in trunk
REGRESSION (r203106): Crash in WebCore::MathMLElement::parseMathMLLength()
<https://webkit.org/b/160111>
<rdar://problem/27506489>
Reviewed by Chris Dumez.
Source/WebCore:
Test: mathml/mpadded-crash.html
- mathml/MathMLElement.cpp:
(WebCore::skipLeadingAndTrailingWhitespace): Change to take
StringView parameter instead of String to avoid creating a
temporary String that's released on return.
LayoutTests:
- mathml/mpadded-crash-expected.txt: Added.
- mathml/mpadded-crash.html: Added.
- 10:36 AM Changeset in webkit [203666] by
-
- 11 edits in trunk/Source/JavaScriptCore
[B3] Fusing immediates into test instructions should work again
https://bugs.webkit.org/show_bug.cgi?id=160073
Reviewed by Sam Weinig.
When we introduced BitImm, we forgot to change the Branch(BitAnd(value, constant))
fusion. This emits test instructions, so it should use BitImm for the constant. But it
was still using Imm! This meant that isValidForm() always returned false.
This fixes the code path to use BitImm, and turns off our use of BitImm64 on x86 since
it provides no benefit on x86 and has some risk (the code appears to play fast and loose
with the scratch register).
This is not an obvious progression on anything, so I added comprehensive tests to
testb3, which check that we selected the optimal instruction in a variety of situations.
We should add more tests like this!
- b3/B3BasicBlock.h:
(JSC::B3::BasicBlock::successorBlock):
- b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::createGenericCompare):
- b3/B3LowerToAir.h:
- b3/air/AirArg.cpp:
(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::usesTmp):
- b3/air/AirArg.h:
(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::castToType):
(JSC::B3::Air::Arg::asNumber):
- b3/air/AirCode.h:
(JSC::B3::Air::Code::size):
(JSC::B3::Air::Code::at):
- b3/air/AirOpcode.opcodes:
- b3/air/AirValidate.h:
- b3/air/opcode_generator.rb:
- b3/testb3.cpp:
(JSC::B3::compile):
(JSC::B3::compileAndRun):
(JSC::B3::lowerToAirForTesting):
(JSC::B3::testSomeEarlyRegister):
(JSC::B3::testBranchBitAndImmFusion):
(JSC::B3::zero):
(JSC::B3::run):
- 10:25 AM Changeset in webkit [203665] by
-
- 3 edits in trunk/LayoutTests
Test gardening after r203626.
https://bugs.webkit.org/show_bug.cgi?id=160102
<rdar://problem/27453479>
Unreviewed.
- platform/ios-simulator/editing/deleting/delete-emoji-expected.txt:
- platform/mac-yosemite/editing/deleting/delete-emoji-expected.txt:
- 8:53 AM Changeset in webkit [203664] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, update the exponentiation expression error message
https://bugs.webkit.org/show_bug.cgi?id=159969
Follow up patch for r203499.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseBinaryExpression):
- tests/stress/pow-expects-update-expression-on-lhs.js:
(throw.new.Error):
- 6:08 AM Changeset in webkit [203663] by
-
- 3 edits in trunk/Source/WebCore
[Coordinated Graphics] ASSERTION FAILED: !m_flushingLayers in fast/repaint/animation-after-layer-scroll.html
https://bugs.webkit.org/show_bug.cgi?id=160142
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2016-07-24
Reviewed by Michael Catanzaro.
This only happens in layout tests, because it happens when RenderLayerCompositor::layerTreeAsText() is
called. The thing is that CoordinatedGraphicsLayer::flushCompositingState() calls notifyFlushRequired() that
checks if the coordinator is flusing layers and if not it calls RenderLayerCompositor::notifyFlushRequired() and
returns early. This normally works because the coodinator is the one starting the layer flush, so that when
RenderLayerCompositor::flushPendingLayerChanges() is called the coordinator is always flusing layers. But
RenderLayerCompositor::layerTreeAsText() calls RenderLayerCompositor::flushPendingLayerChanges() directly, so at
that moment the coordinator is not flusing layers, what causes that
CoordinatedGraphicsLayer::flushCompositingState() ends up calling RenderLayerCompositor::notifyFlushRequired()
that schedules a new flush while flusing layers causing the
assertion. CoordinatedGraphicsLayer::flushCompositingState() is always called from
CompositingCoordinator::flushPendingLayerChanges() or RenderLayerCompositor::flushPendingLayerChanges() so we
never need to call RenderLayerCompositor::notifyFlushRequired() from there.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::notifyFlushRequired): This is void now since the return value is not checked anywhere.
(WebCore::CoordinatedGraphicsLayer::flushCompositingState): Remove the call to notifyFlushRequired().
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
- 6:04 AM Changeset in webkit [203662] by
-
- 3 edits in trunk/LayoutTests
[GTK] Layout test security/contentSecurityPolicy/plugins-types-allows-quicktime-plugin-replacement.html timing out
https://bugs.webkit.org/show_bug.cgi?id=160128
Unreviewed, skip the tests.
- platform/efl/TestExpectations:
- platform/gtk/TestExpectations:
- 4:10 AM Changeset in webkit [203661] by
-
- 3 edits2 deletes in trunk/Source
Adding a new WebCore JavaScript built-in source file does not trigger rebuild of WebCoreJSBuiltins*
https://bugs.webkit.org/show_bug.cgi?id=160115
Reviewed by Youenn Fablet.
Source/JavaScriptCore:
- make-generated-sources.sh: Removed. Was unused.
Source/WebCore:
- DerivedSources.make: Added a missing dependency so the rule that builds WebCore_BUILTINS_WRAPPERS
kicks in when the list of WebCore_BUILTINS_SOURCES is modified. Also added another missing dependency
so that changes to the JavaScript built-ins Python scripts will also trigger WebCore_BUILTINS_WRAPPERS.
- make-generated-sources.sh: Removed. Was unused.