Timeline
Oct 5, 2017:
- 11:52 PM Changeset in webkit [222963] by
-
- 3 edits in trunk
[WebGL] Safari performance is slow due to high MSAA usage
https://bugs.webkit.org/show_bug.cgi?id=177949
<rdar://problem/34835619>
Reviewed by Sam Weinig.
On some hardware, typically integrated GPUs, using MSAA with a sample
count above 4 produces bad performance. Limit the number of samples to
4 universally.
- platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::GraphicsContext3D::reshapeFBOs):
- 11:48 PM Changeset in webkit [222962] by
-
- 19 edits1 copy1 add in trunk
[GTK][WPE] All resource load statistics tests added in r212183 crash in GTK bots, timeout in GTK and WPE bots since r219049
https://bugs.webkit.org/show_bug.cgi?id=168171
Reviewed by Chris Dumez.
Source/WebCore:
Add an implementation of FileMonitor for GLib based ports.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- platform/FileMonitor.cpp:
- platform/FileMonitor.h:
- platform/glib/FileMonitorGLib.cpp: Added.
(WebCore::FileMonitor::FileMonitor):
(WebCore::FileMonitor::~FileMonitor):
(WebCore::FileMonitor::fileChangedCallback):
(WebCore::FileMonitor::didChange):
Source/WebKit:
Add C API to handle all resource load statistics requests made by the layout tests.
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreSetStatisticsLastSeen):
(WKWebsiteDataStoreSetStatisticsPrevalentResource):
(WKWebsiteDataStoreIsStatisticsPrevalentResource):
(WKWebsiteDataStoreSetStatisticsHasHadUserInteraction):
(WKWebsiteDataStoreIsStatisticsHasHadUserInteraction):
(WKWebsiteDataStoreSetStatisticsGrandfathered):
(WKWebsiteDataStoreIsStatisticsGrandfathered):
(WKWebsiteDataStoreSetStatisticsSubframeUnderTopFrameOrigin):
(WKWebsiteDataStoreSetStatisticsSubresourceUnderTopFrameOrigin):
(WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectTo):
(WKWebsiteDataStoreSetStatisticsTimeToLiveUserInteraction):
(WKWebsiteDataStoreSetStatisticsTimeToLiveCookiePartitionFree):
(WKWebsiteDataStoreStatisticsProcessStatisticsAndDataRecords):
(WKWebsiteDataStoreStatisticsUpdateCookiePartitioning):
(WKWebsiteDataStoreSetStatisticsShouldPartitionCookiesForHost):
(WKWebsiteDataStoreStatisticsSubmitTelemetry):
(WKWebsiteDataStoreSetStatisticsNotifyPagesWhenDataRecordsWereScanned):
(WKWebsiteDataStoreSetStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval):
(WKWebsiteDataStoreSetStatisticsNotifyPagesWhenTelemetryWasCaptured):
(WKWebsiteDataStoreSetStatisticsMinimumTimeBetweenDataRecordsRemoval):
(WKWebsiteDataStoreSetStatisticsGrandfatheringTime):
(WKWebsiteDataStoreSetStatisticsMaxStatisticsEntries):
(WKWebsiteDataStoreSetStatisticsPruneEntriesDownTo):
(WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStore):
(WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
(WKWebsiteDataStoreStatisticsClearThroughWebsiteDataRemoval):
(WKWebsiteDataStoreStatisticsResetToConsistentState):
- UIProcess/API/C/WKWebsiteDataStoreRef.h:
Tools:
Implement all resource load statistics functions in TestController using the C API. Also enable the FileMonitor
unit test. This test requires a platform implementation of Util::run(), so I've added UtilitiesGLib.cpp with an
iplementation common to glib based ports using WTF RunLoop abstraction.
- TestWebKitAPI/PlatformGTK.cmake:
- TestWebKitAPI/PlatformWPE.cmake:
- TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:
- TestWebKitAPI/glib/UtilitiesGLib.cpp: Copied from Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h.
(TestWebKitAPI::Util::run):
(TestWebKitAPI::Util::spinRunLoop):
(TestWebKitAPI::Util::sleep):
- TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp:
- TestWebKitAPI/wpe/PlatformUtilitiesWPE.cpp:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::platformAdjustContext):
(WTR::TestController::setStatisticsLastSeen):
(WTR::TestController::setStatisticsPrevalentResource):
(WTR::ResourceStatisticsCallbackContext::ResourceStatisticsCallbackContext):
(WTR::resourceStatisticsCallback):
(WTR::TestController::isStatisticsPrevalentResource):
(WTR::TestController::setStatisticsHasHadUserInteraction):
(WTR::TestController::isStatisticsHasHadUserInteraction):
(WTR::TestController::setStatisticsGrandfathered):
(WTR::TestController::isStatisticsGrandfathered):
(WTR::TestController::setStatisticsSubframeUnderTopFrameOrigin):
(WTR::TestController::setStatisticsSubresourceUnderTopFrameOrigin):
(WTR::TestController::setStatisticsSubresourceUniqueRedirectTo):
(WTR::TestController::setStatisticsTimeToLiveUserInteraction):
(WTR::TestController::setStatisticsTimeToLiveCookiePartitionFree):
(WTR::TestController::statisticsProcessStatisticsAndDataRecords):
(WTR::TestController::statisticsUpdateCookiePartitioning):
(WTR::TestController::statisticsSetShouldPartitionCookiesForHost):
(WTR::TestController::statisticsSubmitTelemetry):
(WTR::TestController::setStatisticsNotifyPagesWhenDataRecordsWereScanned):
(WTR::TestController::setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval):
(WTR::TestController::setStatisticsNotifyPagesWhenTelemetryWasCaptured):
(WTR::TestController::setStatisticsMinimumTimeBetweenDataRecordsRemoval):
(WTR::TestController::setStatisticsGrandfatheringTime):
(WTR::TestController::setStatisticsMaxStatisticsEntries):
(WTR::TestController::setStatisticsPruneEntriesDownTo):
(WTR::TestController::statisticsClearInMemoryAndPersistentStore):
(WTR::TestController::statisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
(WTR::TestController::statisticsClearThroughWebsiteDataRemovalCallback):
(WTR::TestController::statisticsClearThroughWebsiteDataRemoval):
(WTR::TestController::statisticsResetToConsistentState):
- WebKitTestRunner/TestController.h:
LayoutTests:
Unskip the tests.
- platform/wpe/TestExpectations:
- platform/wpe/TestExpectations:
- 11:37 PM Changeset in webkit [222961] by
-
- 11 edits in trunk
Lots of missing frames in YouTube360 when fullscreen on MacBook
https://bugs.webkit.org/show_bug.cgi?id=177903
<rdar://problem/33273300>
Reviewed by Sam Weinig.
Source/WebCore:
Our compositing path for WebGL on macOS was too slow, requiring a copy
of the framebuffer into another GL context. Replace this by having
WebGL render into a texture that is backed by an IOSurface, and then
set the WebGLLayer to use the IOSurface as contents.
Covered by the existing WebGL tests.
- platform/graphics/GraphicsContext3D.h:
(WebCore::GraphicsContext3D::platformTexture const): We no longer use the
framebuffer object outside the class, so change this to return the GL texture
that the framebuffer is rendering in to. It was kind-of strange that it was
named this way originally.
Also make endPaint available on macOS, and add the definitions for
createIOSurfaceBackingStore and updateFramebufferTextureBackingStoreFromLayer.
- platform/graphics/cocoa/GraphicsContext3DCocoa.mm:
(WebCore::GraphicsContext3D::GraphicsContext3D): Now that we're using an IOSurface,
we're binding to a new attachment point, GL_TEXTURE_RECTANGLE.
(WebCore::GraphicsContext3D::endPaint): This is now being called on macOS and iOS,
so add a comment that explains the extra work that iOS needs to do. At some future
point it would be nice to make this slightly cleaner, so that iOS and macOS are
more similar.
(WebCore::GraphicsContext3D::allocateIOSurfaceBackingStore): New function that calls
into the corresponding WebGLLayer function.
(WebCore::GraphicsContext3D::updateFramebufferTextureBackingStoreFromLayer): Ditto.
- platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::wipeAlphaChannelFromPixels): Both readPixels and drawing a WebGL context
into another buffer need to fill out the alpha channel if this context was
created without one, otherwise the IOSurface backing store will happily provide
what might be non-zero values.
(WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary): Call the helper above.
(WebCore::GraphicsContext3D::reshapeFBOs): Add more code to call into the macOS-specific
function to use an IOSurface as the framebuffer texture.
(WebCore::GraphicsContext3D::readPixels): Call the helper above.
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(PlatformCALayerCocoa::copyContentsFromLayer): Replace the use of the
deprecated setContentsChanged with reloadValueForKeyPath.
- platform/graphics/cocoa/WebGLLayer.h: The macOS implementation now
inherits from CALayer directly rather than CAOpenGLLayer. It also adds
a few member variables to handle the IOSurfaces used for triple buffering.
- platform/graphics/cocoa/WebGLLayer.mm:
(-[WebGLLayer initWithGraphicsContext3D:]): If we were created without an
alpha channel, tell CA that we're an opaque layer. Also set the layer's transform
to identity, so that it calls into the code below to flip the contents.
(-[WebGLLayer setTransform:]): Because an IOSurface is used for the layer contents,
we don't get a chance to flip the drawing the way we do via the drawInContext delegate.
Instead we have to apply a scale(1, -1) transform on top of the layer transform to
make sure the layer is rendered right-way up.
(-[WebGLLayer setAnchorPoint:]): Ditto, except we have to assume the anchor point is
at the bottom of the layer, so flip the Y value.
(-[WebGLLayer display]): Swap between the drawing buffer and the contents buffer, and
then get a new buffer ready for display.
(createAppropriateIOSurface): Helper.
(-[WebGLLayer allocateIOSurfaceBackingStoreWithSize:usingAlpha:]): Initializes the
IOSurfaces used for drawing buffers.
(-[WebGLLayer bindFramebufferToNextAvailableSurface]): Take the next available IOSurface and
make it the drawing buffer (binding in to WebGL at the same time).
(-[WebGLLayer copyCGLPixelFormatForDisplayMask:]): Deleted.
(-[WebGLLayer copyCGLContextForPixelFormat:]): Deleted.
(-[WebGLLayer drawInCGLContext:pixelFormat:forLayerTime:displayTime:]): Deleted.
- platform/graphics/mac/WebLayer.mm: Remove the definition of reloadValueForKeyPath.
Source/WebCore/PAL:
Add reloadValueForKeyPath to replace setContentsChanged on CALayer.
- pal/spi/cocoa/QuartzCoreSPI.h:
- 11:32 PM Changeset in webkit [222960] by
-
- 34 edits3 moves2 adds in trunk/Source
Update Source/ThirdParty/woff2 to 22c256bc457777744ba14b7325a6e8e0e7dec91c
https://bugs.webkit.org/show_bug.cgi?id=177994
Patch by Frederic Wang <fwang@igalia.com> on 2017-10-05
Reviewed by Michael Catanzaro.
Source/ThirdParty:
- woff2/CMakeLists.txt: Also consider the directory for public headers.
- woff2/README.webkit:
- woff2/include/woff2/decode.h: Renamed from Source/ThirdParty/woff2/src/woff2_dec.h.
- woff2/include/woff2/encode.h: Renamed from Source/ThirdParty/woff2/src/woff2_enc.h.
(woff2::WOFF2Params::WOFF2Params):
- woff2/include/woff2/output.h: Renamed from Source/ThirdParty/woff2/src/woff2_out.h.
(woff2::WOFF2Out::~WOFF2Out):
(woff2::WOFF2StringOut::MaxSize):
- woff2/src/buffer.h:
- woff2/src/convert_woff2ttf_*.cc:
- woff2/src/file.h:
- woff2/src/font.cc:
- woff2/src/font.h:
- woff2/src/glyph.cc:
- woff2/src/glyph.h:
- woff2/src/normalize.cc:
- woff2/src/normalize.h:
- woff2/src/port.h:
- woff2/src/round.h:
- woff2/src/store_bytes.h:
- woff2/src/table_tags.cc:
- woff2/src/table_tags.h:
- woff2/src/transform.cc:
- woff2/src/transform.h:
- woff2/src/variable_length.cc:
- woff2/src/variable_length.h:
- woff2/src/woff2_common.cc:
- woff2/src/woff2_common.h:
- woff2/src/woff2_compress.cc:
- woff2/src/woff2_dec.cc:
- woff2/src/woff2_decompress.cc:
- woff2/src/woff2_enc.cc:
- woff2/src/woff2_info.cc:
- woff2/src/woff2_out.cc:
- woff2/update.sh: Also consider directory for public headers.
Source/WebCore:
No new tests, already covered by existing tests.
- CMakeLists.txt: Include the directory for public headers instead.
- platform/graphics/WOFFFileFormat.cpp: Use the public header
woff2/decode.h and do not use the "wOF2" constant from private headers.
(WebCore::isWOFF):
(WebCore::convertWOFFToSfnt):
- 10:48 PM Changeset in webkit [222959] by
-
- 14 edits1 copy2 adds in trunk
Web Inspector: Styles Redesign: Add support for keyboard navigation (Tab, Shift-Tab, Enter, Esc)
https://bugs.webkit.org/show_bug.cgi?id=177711
Reviewed by Joseph Pecoraro.
Source/WebInspectorUI:
Enter, Tab, Shift-Tab should commit changes.
Escape should discard changes.
Tab and Enter should navigate forward (focus on the next field).
Shift-Tab should navigate backward (focus on the previous field).
Esc should not change the focus.
When navigating forward from:
- Selector: Focus on the first property name. If it doesn’t exist, create a blank property.
- Property name:
- If property name is blank, discard the property and focus on the next editable field (property name or selector of the next rule).
- If property is not blank, focus on the value.
- Property value:
- If the last value in the rule, create a blank property and focus on its name.
- If not the last value in the rule, focus on the next editable field (property name or selector of the next rule).
When navigating backward from:
- Selector: create a blank property on the previous editable rule and focus on its name.
- Property name:
- Focus on the rule's selector.
- Property value:
- Focus on the property name.
- UserInterface/Base/Utilities.js:
(Event.prototype.stop):
- UserInterface/Main.html:
Add new files. Keep one class per file.
- UserInterface/Models/CSSProperty.js:
(WI.CSSProperty.prototype.remove):
(WI.CSSProperty.prototype.set name):
(WI.CSSProperty.prototype.set rawValue):
(WI.CSSProperty.prototype.get editable):
(WI.CSSProperty.prototype._updateStyleText):
(WI.CSSProperty.prototype._updateOwnerStyleText):
Update indices and ranges of properties following the edited one to prevent data corruption.
- UserInterface/Models/CSSStyleDeclaration.js:
(WI.CSSStyleDeclaration.prototype.get selectorEditable):
(WI.CSSStyleDeclaration.prototype.set text):
(WI.CSSStyleDeclaration.prototype.newBlankProperty):
(WI.CSSStyleDeclaration.prototype.shiftPropertiesAfter):
(WI.CSSStyleDeclaration.prototype._rangeAfterPropertyAtIndex):
Implement adding new blank properties.
- UserInterface/Models/TextRange.js:
(WI.TextRange.prototype.cloneAndModify):
Add an assert to catch negative number errors.
(WI.TextRange.prototype.collapseToEnd):
Add a utility function akin Selection.prototype.collapseToEnd.
- UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WI.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey):
(WI.CSSStyleDeclarationTextEditor.prototype._handleTabKey):
(WI.CSSStyleDeclarationTextEditor.prototype._formattedContent):
Move PrefixWhitespace from a view to a model (WI.CSSStyleDeclaration.PrefixWhitespace),
since it's already used in the model.
- UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
(.spreadsheet-style-declaration-editor :matches(.name, .value).editing):
- UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
(WI.SpreadsheetCSSStyleDeclarationEditor):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingFirstProperty):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingLastProperty):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get _propertiesToRender):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._addBlankProperty):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._isFocused):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
Give SpreadsheetCSSStyleDeclarationEditor a delegate so that it can move focus to a CSS selector, or previous and next CSS rules.
- UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.get propertiesEditor):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.get editable):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.startEditingRuleSelector):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorStartEditingRuleSelector):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetSelectorFieldDidChange):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.cssStyleDeclarationEditorStartEditingAdjacentRule):
Give SpreadsheetCSSStyleDeclarationSection a delegate so that it can move focus to previous and next CSS rules.
- UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.refresh):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionStartEditingNextRule):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionStartEditingPreviousRule):
(WI.SpreadsheetRulesStyleDetailsPanel):
Implement focusing on the next and previous CSS rules.
- UserInterface/Views/SpreadsheetSelectorField.js: Added.
(WI.SpreadsheetSelectorField):
(WI.SpreadsheetSelectorField.prototype.get editing):
(WI.SpreadsheetSelectorField.prototype.startEditing):
(WI.SpreadsheetSelectorField.prototype.stopEditing):
(WI.SpreadsheetSelectorField.prototype._selectText):
(WI.SpreadsheetSelectorField.prototype._handleClick):
(WI.SpreadsheetSelectorField.prototype._handleFocus):
(WI.SpreadsheetSelectorField.prototype._handleBlur):
(WI.SpreadsheetSelectorField.prototype._handleKeyDown):
Move SpreadsheetSelectorField into its own file.
- UserInterface/Views/SpreadsheetStyleProperty.js: Added.
(WI.SpreadsheetStyleProperty):
(WI.SpreadsheetStyleProperty.prototype.get element):
(WI.SpreadsheetStyleProperty.prototype.get nameTextField):
(WI.SpreadsheetStyleProperty.prototype.get valueTextField):
(WI.SpreadsheetStyleProperty.prototype._remove):
(WI.SpreadsheetStyleProperty.prototype._update):
(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidChange):
(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit):
(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur):
(WI.SpreadsheetStyleProperty.prototype._handleNameChange):
(WI.SpreadsheetStyleProperty.prototype._handleValueChange):
Move SpreadsheetStyleProperty into its own file.
- UserInterface/Views/SpreadsheetTextField.js: Added.
(WI.SpreadsheetTextField):
(WI.SpreadsheetTextField.prototype.get element):
(WI.SpreadsheetTextField.prototype.get editing):
(WI.SpreadsheetTextField.prototype.get value):
(WI.SpreadsheetTextField.prototype.set value):
(WI.SpreadsheetTextField.prototype.startEditing):
(WI.SpreadsheetTextField.prototype.stopEditing):
(WI.SpreadsheetTextField.prototype._selectText):
(WI.SpreadsheetTextField.prototype._discardChange):
(WI.SpreadsheetTextField.prototype._handleFocus):
(WI.SpreadsheetTextField.prototype._handleBlur):
(WI.SpreadsheetTextField.prototype._handleKeyDown):
(WI.SpreadsheetTextField.prototype._handleInput):
Introduce SpreadsheetTextField that is used for editing CSS property names and values.
LayoutTests:
Add tests for WI.CSSProperty.prototype.remove.
- inspector/css/css-property-expected.txt:
- inspector/css/css-property.html:
- 10:04 PM Changeset in webkit [222958] by
-
- 3 edits in trunk/LayoutTests
Rebaseline fast/dom/navigator-detached-no-crash.html.
https://bugs.webkit.org/show_bug.cgi?id=177261
Unreviewed test gardening.
- fast/dom/navigator-detached-no-crash-expected.txt:
- platform/mac-elcapitan-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
- 10:00 PM Changeset in webkit [222957] by
-
- 10 edits in trunk/Source/WebCore
Unreviewed, rolling out r222951 and r222952.
https://bugs.webkit.org/show_bug.cgi?id=177992
"Broke the iOS build and introduced a webgl LayoutTest
failure." (Requested by ryanhaddad on #webkit).
Reverted changesets:
"Lots of missing frames in YouTube360 when fullscreen on
MacBook"
https://bugs.webkit.org/show_bug.cgi?id=177903
http://trac.webkit.org/changeset/222951
"Lots of missing frames in YouTube360 when fullscreen on
MacBook"
https://bugs.webkit.org/show_bug.cgi?id=177903
http://trac.webkit.org/changeset/222952
Patch by Commit Queue <commit-queue@webkit.org> on 2017-10-05
- 8:51 PM Changeset in webkit [222956] by
-
- 7 edits4 adds in trunk
DataTransfer shouldn't contain text/html when performing Paste and Match Style
https://bugs.webkit.org/show_bug.cgi?id=174165
<rdar://problem/33138027>
Reviewed by Wenson Hsieh.
Source/WebCore:
When performing Paste and Match Style, only expose the plain text by creating a StaticPasteboard with plain text content.
This patch introduces ClipboardEventKind enum class to differentiate regular paste and paste and match style (internally
called as pasteAsPlainText) since both operations use "paste" event.
Tests: editing/pasteboard/data-transfer-get-data-on-paste-as-plain-text-when-custom-pasteboard-data-disabled.html
editing/pasteboard/data-transfer-get-data-on-paste-as-plain-text.html
- dom/DataTransfer.cpp:
(WebCore::DataTransfer::createForCopyAndPaste): Made this function take Pasteboard as an argument.
- dom/DataTransfer.h:
- editing/Editor.cpp:
(WebCore::ClipboardEventKind): Added.
(WebCore::eventNameForClipboardEvent): Added.
(WebCore::createDataTransferForClipboardEvent): Added.
(WebCore::dispatchClipboardEvent):
(WebCore::Editor::canDHTMLCut):
(WebCore::Editor::canDHTMLCopy):
(WebCore::Editor::canDHTMLPaste):
(WebCore::Editor::tryDHTMLCopy):
(WebCore::Editor::tryDHTMLCut):
(WebCore::Editor::tryDHTMLPaste): Deleted.
(WebCore::Editor::paste):
(WebCore::Editor::pasteAsPlainText):
- platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::addHTMLClipboardTypesForCocoaType): Add "text/html" when public.html UTI is in the pasteboard
even when the custom pasteboard data is disabled. We continue to add public.html in the case some app dependent on
seeing "public.html" in dataTransfer.types.
LayoutTests:
Added regression tests for pasting as plain text.
- editing/pasteboard/data-transfer-get-data-on-paste-as-plain-text-expected.txt: Added.
- editing/pasteboard/data-transfer-get-data-on-paste-as-plain-text-when-custom-pasteboard-data-disabled-expected.txt: Added.
- editing/pasteboard/data-transfer-get-data-on-paste-as-plain-text-when-custom-pasteboard-data-disabled.html: Added.
- editing/pasteboard/data-transfer-get-data-on-paste-as-plain-text.html: Added.
- 8:06 PM Changeset in webkit [222955] by
-
- 3 edits in trunk/Source
Fix the Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=177985
Unreviewed build fix.
- CMakeLists.txt:
- PlatformMac.cmake:
After r222917, there's one more piece of WebKitSystemInterface left.
And some missing bits of PaymentRequest.
- 8:01 PM Changeset in webkit [222954] by
-
- 2 edits in trunk/Source/JavaScriptCore
JSC generate unified sources doesn't need to run during installhdrs.
https://bugs.webkit.org/show_bug.cgi?id=177640
Reviewed by Dan Bernstein.
generate unified sources doesn't need to have a xcconfig file
since we don't have any feature defines. Also, remove the plist
because there's no plist for this...
- JavaScriptCore.xcodeproj/project.pbxproj:
- 7:41 PM Changeset in webkit [222953] by
-
- 3 edits in trunk/Source/WebCore
RenderTable should not hold section raw pointers
https://bugs.webkit.org/show_bug.cgi?id=177977
<rdar://problem/34846034>
Reviewed by Simon Fraser.
This enables us to remove forced recalcSections calls.
Covered by existing tests.
- rendering/RenderTable.cpp:
(WebCore::RenderTable::RenderTable):
(WebCore::resetSectionPointerIfNotBefore):
(WebCore::RenderTable::addChild):
(WebCore::RenderTable::recalcSections const):
(WebCore::RenderTable::sectionAbove const):
- rendering/RenderTable.h:
(WebCore::RenderTable::header const):
(WebCore::RenderTable::footer const):
(WebCore::RenderTable::firstBody const):
(WebCore::RenderTable::topSection const):
- 7:36 PM Changeset in webkit [222952] by
-
- 2 edits in trunk/Source/WebCore
Lots of missing frames in YouTube360 when fullscreen on MacBook
https://bugs.webkit.org/show_bug.cgi?id=177903
<rdar://problem/33273300>
iOS build fix.
- platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
- 7:31 PM Changeset in webkit [222951] by
-
- 10 edits in trunk/Source/WebCore
Lots of missing frames in YouTube360 when fullscreen on MacBook
https://bugs.webkit.org/show_bug.cgi?id=177903
<rdar://problem/33273300>
Reviewed by Sam Weinig.
Our compositing path for WebGL on macOS was too slow, requiring a copy
of the framebuffer into another GL context. Replace this by having
WebGL render into a texture that is backed by an IOSurface, and then
set the WebGLLayer to use the IOSurface as contents.
Covered by the existing WebGL tests.
- platform/graphics/GraphicsContext3D.h:
(WebCore::GraphicsContext3D::platformTexture const): We no longer use the
framebuffer object outside the class, so change this to return the GL texture
that the framebuffer is rendering in to. It was kind-of strange that it was
named this way originally.
Also make endPaint available on macOS, and add the definitions for
createIOSurfaceBackingStore and updateFramebufferTextureBackingStoreFromLayer.
- platform/graphics/cocoa/GraphicsContext3DCocoa.mm:
(WebCore::GraphicsContext3D::GraphicsContext3D): Now that we're using an IOSurface,
we're binding to a new attachment point, GL_TEXTURE_RECTANGLE.
(WebCore::GraphicsContext3D::endPaint): This is now being called on macOS and iOS,
so add a comment that explains the extra work that iOS needs to do. At some future
point it would be nice to make this slightly cleaner, so that iOS and macOS are
more similar.
(WebCore::GraphicsContext3D::allocateIOSurfaceBackingStore): New function that calls
into the corresponding WebGLLayer function.
(WebCore::GraphicsContext3D::updateFramebufferTextureBackingStoreFromLayer): Ditto.
- platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::wipeAlphaChannelFromPixels): Both readPixels and drawing a WebGL context
into another buffer need to fill out the alpha channel if this context was
created without one, otherwise the IOSurface backing store will happily provide
what might be non-zero values.
(WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary): Call the helper above.
(WebCore::GraphicsContext3D::reshapeFBOs): Add more code to call into the macOS-specific
function to use an IOSurface as the framebuffer texture.
(WebCore::GraphicsContext3D::readPixels): Call the helper above.
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(PlatformCALayerCocoa::copyContentsFromLayer): Replace the use of the
deprecated setContentsChanged with reloadValueForKeyPath.
- platform/graphics/cocoa/WebGLLayer.h: The macOS implementation now
inherits from CALayer directly rather than CAOpenGLLayer. It also adds
a few member variables to handle the IOSurfaces used for triple buffering.
- platform/graphics/cocoa/WebGLLayer.mm:
(-[WebGLLayer initWithGraphicsContext3D:]): If we were created without an
alpha channel, tell CA that we're an opaque layer. Also set the layer's transform
to identity, so that it calls into the code below to flip the contents.
(-[WebGLLayer setTransform:]): Because an IOSurface is used for the layer contents,
we don't get a chance to flip the drawing the way we do via the drawInContext delegate.
Instead we have to apply a scale(1, -1) transform on top of the layer transform to
make sure the layer is rendered right-way up.
(-[WebGLLayer setAnchorPoint:]): Ditto, except we have to assume the anchor point is
at the bottom of the layer, so flip the Y value.
(-[WebGLLayer display]): Swap between the drawing buffer and the contents buffer, and
then get a new buffer ready for display.
(createAppropriateIOSurface): Helper.
(-[WebGLLayer allocateIOSurfaceBackingStoreWithSize:usingAlpha:]): Initializes the
IOSurfaces used for drawing buffers.
(-[WebGLLayer bindFramebufferToNextAvailableSurface]): Take the next available IOSurface and
make it the drawing buffer (binding in to WebGL at the same time).
(-[WebGLLayer copyCGLPixelFormatForDisplayMask:]): Deleted.
(-[WebGLLayer copyCGLContextForPixelFormat:]): Deleted.
(-[WebGLLayer drawInCGLContext:pixelFormat:forLayerTime:displayTime:]): Deleted.
- platform/graphics/mac/WebLayer.mm: Remove the definition of reloadValueForKeyPath.
- 6:30 PM Changeset in webkit [222950] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION(r222868): Web Inspector: Timeline ScopeBar Navigation Bar items too large
https://bugs.webkit.org/show_bug.cgi?id=177979
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-10-05
Reviewed by Matt Baker.
- UserInterface/Views/ButtonNavigationItem.css:
(.navigation-bar .item.button.text-only):
Make the height of text-only items the size of the text, not 100%.
- 6:25 PM Changeset in webkit [222949] by
-
- 7 edits2 adds in trunk
Add "display" to FontFace Javascript object
https://bugs.webkit.org/show_bug.cgi?id=175383
<rdar://problem/33813239>
Reviewed by Simon Fraser.
Source/WebCore:
We already have all the necessary infrastructure. Just hook it up to the .idl file!
Test: fast/text/font-loading-font-display.html
- css/CSSFontFace.h:
- css/CSSPrimitiveValueMappings.h:
- css/FontFace.cpp:
(WebCore::FontFace::create):
(WebCore::FontFace::setDisplay):
(WebCore::FontFace::display const):
- css/FontFace.h:
- css/FontFace.idl:
LayoutTests:
- fast/text/font-loading-font-display-expected.txt: Added.
- fast/text/font-loading-font-display.html: Added.
- 6:15 PM Changeset in webkit [222948] by
-
- 2 edits in trunk/PerformanceTests
Unreviewed, use std::vector instead of variable length array
https://bugs.webkit.org/show_bug.cgi?id=177856
This is OK because originally this code uses dispatch queue, which
should have allocation inside it too.
- MallocBench/MallocBench/message.cpp:
(benchmark_message_many):
- 5:36 PM Changeset in webkit [222947] by
-
- 4 edits in trunk/Source
Unreviewed, tapi builds without optimization so we should have TAPI passes -DRELEASE_WITHOUT_OPTIMIZATIONS.
Source/WebKit:
- Configurations/Base.xcconfig:
Source/WebKitLegacy/mac:
- Configurations/WebKitLegacy.xcconfig:
- 5:13 PM Changeset in webkit [222946] by
-
- 55 edits in trunk
[Cocoa] Enable ENABLE_ENCRYPTED_MEDIA build-time setting
https://bugs.webkit.org/show_bug.cgi?id=177261
Reviewed by Eric Carlson.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
Enable ENCRYPTED_MEDIA, and make the changes required for ENABLED_MEDIA and LEGACY_ENABLED_MEDIA
to co-exist while both enabled simultaneously.
- Configurations/FeatureDefines.xcconfig:
- Modules/encryptedmedia/legacy/LegacyCDM.cpp:
(WebCore::LegacyCDM::registerCDMFactory):
(WebCore::LegacyCDM::supportsKeySystem):
(WebCore::LegacyCDM::keySystemSupportsMimeType):
(WebCore::LegacyCDM::create):
(WebCore::LegacyCDM::LegacyCDM):
(WebCore::LegacyCDM::~LegacyCDM):
(WebCore::LegacyCDM::supportsMIMEType const):
(WebCore::LegacyCDM::createSession):
(WebCore::LegacyCDM::mediaPlayer const):
(WebCore::CDM::registerCDMFactory): Deleted.
(WebCore::CDM::supportsKeySystem): Deleted.
(WebCore::CDM::keySystemSupportsMimeType): Deleted.
(WebCore::CDM::create): Deleted.
(WebCore::CDM::CDM): Deleted.
(WebCore::CDM::~CDM): Deleted.
(WebCore::CDM::supportsMIMEType const): Deleted.
(WebCore::CDM::createSession): Deleted.
(WebCore::CDM::mediaPlayer const): Deleted.
- Modules/encryptedmedia/legacy/LegacyCDM.h:
(WebCore::LegacyCDMClient::~LegacyCDMClient):
(WebCore::LegacyCDM::client const):
(WebCore::LegacyCDM::setClient):
(WebCore::CDMClient::~CDMClient): Deleted.
(WebCore::CDM::keySystem const): Deleted.
(WebCore::CDM::client const): Deleted.
(WebCore::CDM::setClient): Deleted.
- Modules/encryptedmedia/legacy/LegacyCDMPrivate.h:
- Modules/encryptedmedia/legacy/LegacyCDMPrivateClearKey.cpp:
(WebCore::LegacyCDMPrivateClearKey::supportsKeySystem):
(WebCore::LegacyCDMPrivateClearKey::supportsKeySystemAndMimeType):
(WebCore::LegacyCDMPrivateClearKey::supportsMIMEType):
(WebCore::LegacyCDMPrivateClearKey::createSession):
(WebCore::CDMPrivateClearKey::supportsKeySystem): Deleted.
(WebCore::CDMPrivateClearKey::supportsKeySystemAndMimeType): Deleted.
(WebCore::CDMPrivateClearKey::supportsMIMEType): Deleted.
(WebCore::CDMPrivateClearKey::createSession): Deleted.
- Modules/encryptedmedia/legacy/LegacyCDMPrivateClearKey.h:
(WebCore::LegacyCDMPrivateClearKey::LegacyCDMPrivateClearKey):
(WebCore::LegacyCDMPrivateClearKey::~LegacyCDMPrivateClearKey):
(WebCore::CDMPrivateClearKey::CDMPrivateClearKey): Deleted.
(WebCore::CDMPrivateClearKey::~CDMPrivateClearKey): Deleted.
- Modules/encryptedmedia/legacy/LegacyCDMPrivateMediaPlayer.cpp:
(WebCore::CDMPrivateMediaPlayer::createSession):
- Modules/encryptedmedia/legacy/LegacyCDMPrivateMediaPlayer.h:
(WebCore::CDMPrivateMediaPlayer::CDMPrivateMediaPlayer):
(WebCore::CDMPrivateMediaPlayer::cdm const):
- Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp:
(WebCore::CDMSessionClearKey::CDMSessionClearKey):
- Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.h:
- Modules/encryptedmedia/legacy/WebKitMediaKeySession.h:
- Modules/encryptedmedia/legacy/WebKitMediaKeys.cpp:
(WebCore::WebKitMediaKeys::create):
(WebCore::WebKitMediaKeys::WebKitMediaKeys):
(WebCore::WebKitMediaKeys::isTypeSupported):
(WebCore::WebKitMediaKeys::cdmMediaPlayer const):
- Modules/encryptedmedia/legacy/WebKitMediaKeys.h:
- WebCore.xcodeproj/project.pbxproj:
- platform/encryptedmedia/CDMFactory.cpp:
(WebCore::CDMFactory::platformRegisterFactories):
- platform/encryptedmedia/clearkey/CDMClearKey.cpp:
(WebCore::ClearKeyState::singleton):
(WebCore::parseJSONObject):
(WebCore::parseLicenseFormat):
(WebCore::parseLicenseReleaseAcknowledgementFormat):
(WebCore::CDMFactoryClearKey::singleton):
(WebCore::containsPersistentLicenseType):
(WebCore::CDMInstanceClearKey::keySystem const):
- platform/encryptedmedia/clearkey/CDMClearKey.h:
- platform/graphics/LegacyCDMSession.h:
(WebCore::LegacyCDMSessionClient::~LegacyCDMSessionClient):
(WebCore::CDMSession::type):
(WebCore::CDMSessionClient::~CDMSessionClient): Deleted.
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::createSession):
- platform/graphics/MediaPlayer.h:
- platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::createSession):
- platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.h:
(WebCore::CDMPrivateMediaSourceAVFObjC::CDMPrivateMediaSourceAVFObjC):
(WebCore::CDMPrivateMediaSourceAVFObjC::cdm const):
- platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:
(WebCore::CDMPrivateMediaSourceAVFObjC::createSession):
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::createSession):
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
- platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.h:
- platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:
(WebCore::CDMSessionAVContentKeySession::CDMSessionAVContentKeySession):
(WebCore::CDMSessionAVContentKeySession::update):
- platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:
(WebCore::CDMSessionAVFoundationObjC::CDMSessionAVFoundationObjC):
(WebCore::CDMSessionAVFoundationObjC::generateKeyRequest):
(WebCore::CDMSessionAVFoundationObjC::playerDidReceiveError):
- platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.h:
- platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:
(WebCore::CDMSessionAVStreamSession::CDMSessionAVStreamSession):
- platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
(WebCore::CDMSessionMediaSourceAVFObjC::CDMSessionMediaSourceAVFObjC):
(WebCore::CDMSessionMediaSourceAVFObjC::layerDidReceiveError):
(WebCore::CDMSessionMediaSourceAVFObjC::rendererDidReceiveError):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::nativeImageForCurrentTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createSession):
- testing/Internals.cpp:
(WebCore::Internals::initializeMockCDM):
- testing/LegacyMockCDM.cpp:
(WebCore::LegacyMockCDM::supportsKeySystem):
(WebCore::LegacyMockCDM::supportsKeySystemAndMimeType):
(WebCore::LegacyMockCDM::supportsMIMEType):
(WebCore::LegacyMockCDM::createSession):
(WebCore::MockCDMSession::MockCDMSession):
(WebCore::MockCDM::supportsKeySystem): Deleted.
(WebCore::MockCDM::supportsKeySystemAndMimeType): Deleted.
(WebCore::MockCDM::supportsMIMEType): Deleted.
(WebCore::MockCDM::createSession): Deleted.
- testing/LegacyMockCDM.h:
(WebCore::LegacyMockCDM::LegacyMockCDM):
(WebCore::LegacyMockCDM::~LegacyMockCDM):
(WebCore::MockCDM::MockCDM): Deleted.
(WebCore::MockCDM::~MockCDM): Deleted.
- testing/MockCDMFactory.cpp:
(WebCore::MockCDMInstance::keySystem const):
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit:
- Configurations/FeatureDefines.xcconfig:
Source/WebKitLegacy/mac:
- Configurations/FeatureDefines.xcconfig:
Tools:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
- 4:48 PM Changeset in webkit [222945] by
-
- 8 edits in trunk/Source
bmalloc mutex should be adaptive
https://bugs.webkit.org/show_bug.cgi?id=177839
Reviewed by Michael Saboff.
Source/bmalloc:
This pulls the WordLock algorithm into bmalloc, mostly by copy-pasting the code. We need to
copy paste because sometimes we build WTF without bmalloc, so WTF cannot rely on bmalloc for
anything other than malloc.
Reland after fixing ancient WordLock bug: the notify_one has to happen with the lock held
to ensure it doesn't run after that thread has died.
- bmalloc/Algorithm.h:
(bmalloc::compareExchangeWeak):
(bmalloc::compareExchangeStrong):
- bmalloc/PerThread.h:
- bmalloc/StaticMutex.cpp:
(bmalloc::StaticMutex::lockSlow):
(bmalloc::StaticMutex::unlockSlow):
(bmalloc::StaticMutex::lockSlowCase): Deleted.
- bmalloc/StaticMutex.h:
(bmalloc::StaticMutex::try_lock):
(bmalloc::StaticMutex::isLocked const):
(bmalloc::StaticMutex::init):
(bmalloc::StaticMutex::tryLock):
(bmalloc::StaticMutex::lock):
(bmalloc::StaticMutex::unlock):
(bmalloc::sleep): Deleted.
(bmalloc::waitUntilFalse): Deleted.
Source/WTF:
Add some comments that I thought of while copy-pasting this code.
Reland after fixing ancient WordLock bug: the notify_one has to happen with the lock held
to ensure it doesn't run after that thread has died.
- wtf/LockAlgorithmInlines.h:
- wtf/WordLock.cpp:
- 4:18 PM Changeset in webkit [222944] by
-
- 8 edits in trunk
Add ObjC equivalent of WKPageNavigationClient.didChangeBackForwardList
https://bugs.webkit.org/show_bug.cgi?id=177966
<rdar://problem/22387135>
Reviewed by Tim Horton.
Source/WebKit:
- UIProcess/API/APINavigationClient.h:
(API::NavigationClient::didChangeBackForwardList):
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
- UIProcess/Cocoa/NavigationState.h:
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::didFailToInitializePlugIn):
(WebKit::NavigationState::NavigationClient::didChangeBackForwardList):
(WebKit::NavigationState::NavigationClient::willPerformClientRedirect):
(WebKit::NavigationState::NavigationClient::didCancelClientRedirect):
(WebKit::NavigationState::NavigationClient::renderingProgressDidChange):
(WebKit::NavigationState::NavigationClient::canAuthenticateAgainstProtectionSpace):
(WebKit::NavigationState::NavigationClient::processDidTerminate):
(WebKit::NavigationState::NavigationClient::processDidBecomeResponsive):
(WebKit::NavigationState::NavigationClient::processDidBecomeUnresponsive):
(WebKit::NavigationState::NavigationClient::webCryptoMasterKey):
(WebKit::NavigationState::NavigationClient::didFinishLoadForQuickLookDocumentInMainFrame):
(WebKit::NavigationState::HistoryClient::didNavigateWithNavigationData):
(WebKit::NavigationState::HistoryClient::didPerformClientRedirect):
(WebKit::NavigationState::HistoryClient::didPerformServerRedirect):
(WebKit::NavigationState::HistoryClient::didUpdateHistoryTitle):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didChangeBackForwardList):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
(-[ListItemDelegate _webView:backForwardListItemAdded:removed:]):
(-[ListItemDelegate webView:didFinishNavigation:]):
(TEST):
- 4:14 PM Changeset in webkit [222943] by
-
- 1 copy in tags/Safari-604.3.5
Tag Safari-604.3.5.
- 4:14 PM Changeset in webkit [222942] by
-
- 5 edits in trunk/Source/WebKit
Add ObjC SPI with userInfo corresponding to WKPageNavigationClient's decidePolicyForNavigationAction, didStartProvisionalNavigation, and didFailNavigation
https://bugs.webkit.org/show_bug.cgi?id=177974
<rdar://problem/22888802>
Reviewed by Tim Horton.
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
- UIProcess/Cocoa/NavigationState.h:
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
(WebKit::NavigationState::NavigationClient::didStartProvisionalNavigation):
(WebKit::NavigationState::NavigationClient::didFailNavigationWithError):
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu):
- 4:05 PM Changeset in webkit [222941] by
-
- 42 edits1 copy2 moves3 adds in trunk
Storage Access API: Web process should ask UI process for grant/deny
https://bugs.webkit.org/show_bug.cgi?id=176941
<rdar://problem/34440036>
Reviewed by Chris Dumez and Sam Weinig.
Source/WebCore:
Tests: http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe.html
http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction.html
http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction.html
This patch changes Document::requestStorageAccess() so that it
calls the ChromeClient instead of the ResourceLoadObserver to
request storage access on behalf of the iframe.
The patch also changes how the promise is used, from returning
a boolean to either resolving or rejecting to signal grant/deny
access respectively.
- dom/Document.cpp:
(WebCore::Document::requestStorageAccess):
- dom/Document.idl:
- loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::registerStorageAccess): Deleted.
- loader/ResourceLoadObserver.h:
- page/ChromeClient.h:
Source/WebKit:
This patch adds infrastructure to let WebCore::Document call
WebKit::WebResourceLoadStatisticsStore and ask for storage
access on behalf of an iframe. The communication goes through
the ChromeClient since we might want to add a native prompt.
From the ChromeClient it continues to the WebPage which
messages the WebPageProxy. The WebPageProxy calls the
WebsiteDataStore which owns the WebResourceLoadStatisticsStore.
A uint64_t is used to match the right callback with the boolean
result.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestStorageAccess):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess):
- UIProcess/WebResourceLoadStatisticsStore.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::requestStorageAccess):
- UIProcess/WebsiteData/WebsiteDataStore.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::requestStorageAccess):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::nextRequestStorageAccessContextId):
(WebKit::WebPage::requestStorageAccess):
(WebKit::WebPage::storageAccessResponse):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
LayoutTests:
The iframes now communicate the results back to the top frame through postMessage.
Also, denied access results in a rejected promise which is handled in these
changed test cases.
- http/tests/storageAccess/request-and-deny-storage-access-cross-origin-iframe-expected.txt:
- http/tests/storageAccess/request-and-deny-storage-access-cross-origin-iframe.html:
- http/tests/storageAccess/request-and-deny-storage-access-cross-origin-sandboxed-iframe-expected.txt:
- http/tests/storageAccess/request-and-deny-storage-access-cross-origin-sandboxed-iframe.html:
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-iframe-expected.txt: Removed.
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-iframe.html: Removed.
Renamed to request-and-grant-storage-access-cross-origin-non-sandboxed-iframe.html.
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-expected.txt: Added.
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe.html: Added.
See comment above on renaming.
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-expected.txt:
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-expected.txt: Added.
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction.html: Added.
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction-expected.txt: Added.
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction.html: Added.
Two new test cases added for the new logic in WebKit::WebResourceLoadStatisticsStore.
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe.html:
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-nested-iframe-expected.txt:
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-nested-iframe.html:
- http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin-expected.txt:
- http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin.html:
- http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token-expected.txt:
- http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token.html:
- http/tests/storageAccess/request-storage-access-same-origin-iframe-expected.txt:
- http/tests/storageAccess/request-storage-access-same-origin-iframe.html:
- http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-expected.txt:
- http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-without-allow-token-expected.txt:
- http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-without-allow-token.html:
- http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe.html:
- http/tests/storageAccess/request-storage-access-top-frame-expected.txt:
- http/tests/storageAccess/request-storage-access-top-frame.html:
- http/tests/storageAccess/resources/request-storage-access-iframe.html:
- platform/mac-wk2/TestExpectations:
Added the new tests as [ Pass ].
- 4:02 PM Changeset in webkit [222940] by
-
- 2 edits in trunk/Source/WebCore
Web Inspector: EventLoop::cycle() should not send nil NSEvents
https://bugs.webkit.org/show_bug.cgi?id=177971
<rdar://problem/20387399>
Reviewed by Joseph Pecoraro.
It is possible for the next matching event to be nil.
WebKit clients don't expect to be sent a nil NSEvent, so add a null check here.
- platform/mac/EventLoopMac.mm:
(WebCore::EventLoop::cycle):
- 3:52 PM Changeset in webkit [222939] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, rolling out r222929.
Caused assertion failures during LayoutTests.
Reverted changeset:
"Only add prototypes to the PrototypeMap if they're not
already present"
https://bugs.webkit.org/show_bug.cgi?id=177952
http://trac.webkit.org/changeset/222929
- 3:43 PM Changeset in webkit [222938] by
-
- 21 edits in trunk/Source
Drop unused parameters for CookiesStrategy::cookiesEnabled()
https://bugs.webkit.org/show_bug.cgi?id=177957
Reviewed by Alex Christensen.
Source/WebCore:
- loader/CookieJar.cpp:
(WebCore::cookiesEnabled):
- platform/CookiesStrategy.h:
- platform/network/PlatformCookieJar.h:
- platform/network/cf/CookieJarCFNet.cpp:
(WebCore::cookiesEnabled):
- platform/network/curl/CookieJarCurl.cpp:
(WebCore::CookieJarCurlFileSystem::cookiesEnabled):
(WebCore::cookiesEnabled):
- platform/network/curl/CookieJarCurl.h:
- platform/network/mac/CookieJarMac.mm:
(WebCore::cookiesEnabled):
- platform/network/soup/CookieJarSoup.cpp:
(WebCore::cookiesEnabled):
Source/WebKit:
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::cookiesEnabled):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::cookiesEnabled):
- WebProcess/WebCoreSupport/WebPlatformStrategies.h:
Source/WebKitLegacy/mac:
- WebCoreSupport/WebPlatformStrategies.h:
- WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::cookiesEnabled):
Source/WebKitLegacy/win:
- WebCoreSupport/WebPlatformStrategies.cpp:
(WebPlatformStrategies::cookiesEnabled):
- WebCoreSupport/WebPlatformStrategies.h:
- 3:41 PM Changeset in webkit [222937] by
-
- 3 edits in trunk/Tools
check-webkit-style erroneously requires a space between the carrot and brace in obj-c blocks.
https://bugs.webkit.org/show_bug.cgi?id=177897
Reviewed by Dan Bernstein and Jonathan Bedard.
Remove the check for a space between and {,
as this is valid and expected Obj-C. Now check to make sure there is
no space at all between and {, and also that there is a space between
the end of an argument list and the {.
- Scripts/webkitpy/style/checkers/cpp.py:
(regex_for_lambdas_and_blocks):
- 3:40 PM Changeset in webkit [222936] by
-
- 5 edits in trunk/Source/WebCore
RenderListItem should not hold raw pointers to RenderListMarker.
https://bugs.webkit.org/show_bug.cgi?id=177968
<rdar://problem/34842943>
Reviewed by Antti Koivisto.
Now we don't need to unregister the marker from the list item explicitly.
Covered by existing tests.
- rendering/RenderListItem.cpp:
(WebCore::RenderListItem::RenderListItem):
(WebCore::RenderListItem::willBeDestroyed):
(WebCore::RenderListItem::positionListMarker):
- rendering/RenderListItem.h:
- rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::willBeDestroyed):
- style/RenderTreeUpdaterListItem.cpp:
(WebCore::RenderTreeUpdater::ListItem::updateMarker):
- 3:32 PM Changeset in webkit [222935] by
-
- 2 edits in trunk/Websites/webkit.org
Update Webkit Style webpage to include Obj-C blocks
https://bugs.webkit.org/show_bug.cgi?id=177906
Reviewed by Tim Horton.
- code-style.md:
- 2:54 PM Changeset in webkit [222934] by
-
- 3 edits2 adds in trunk
RenderSVGRoot should check the renderers inside its visualOverflowRect for hit testing if the overflow is visible
https://bugs.webkit.org/show_bug.cgi?id=177953
<rdar://problem/34788389>
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-10-05
Reviewed by Simon Fraser.
Source/WebCore:
Test: svg/hittest/svg-visual-overflow-rect.html
If an SVGElement is positioned outside the rectangle of the root element,
it can still be drawn if the root element has "overflow: visible" applied.
But since SVGElement can be drawn in this case, it should be accessible
through nodeAtPoint() which is used for hit testing.
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::nodeAtPoint):
LayoutTests:
- svg/hittest/svg-visual-overflow-rect-expected.html: Added.
- svg/hittest/svg-visual-overflow-rect.html: Added.
- 2:31 PM Changeset in webkit [222933] by
-
- 2 edits in trunk/LayoutTests
Mark 4 fast/text layout tests as flaky on Windows.
https://bugs.webkit.org/show_bug.cgi?id=177964
Unreviewed test gardening.
- platform/win/TestExpectations:
- 2:14 PM Changeset in webkit [222932] by
-
- 3 edits in trunk/Source/WebCore
RenderButton should not hold raw pointers to its direct children.
https://bugs.webkit.org/show_bug.cgi?id=177960
<rdar://problem/34840807>
Reviewed by Antti Koivisto.
The correct way of destroying a renderer is to call ::removeFromParentAndDestroy().
Covered by existing tests.
- rendering/RenderButton.cpp:
(WebCore::RenderButton::RenderButton):
(WebCore::RenderButton::addChild):
(WebCore::RenderButton::takeChild):
(WebCore::RenderButton::updateAnonymousChildStyle const):
(WebCore::RenderButton::setText):
(WebCore::RenderButton::text const):
- rendering/RenderButton.h:
- 2:07 PM Changeset in webkit [222931] by
-
- 3 edits in trunk/LayoutTests
AX: [iOS] Layout Test accessibility/ios-simulator/video-elements-ios.html is failing
https://bugs.webkit.org/show_bug.cgi?id=177954
<rdar://problem/34838094>
We should do the isIgnored check instead of the null check.
Reviewed by Chris Fleizach.
- accessibility/ios-simulator/video-elements-ios-expected.txt:
- accessibility/ios-simulator/video-elements-ios.html:
- 1:39 PM Changeset in webkit [222930] by
-
- 6 edits in trunk
Generate a compile error if release is built without compiler optimizations
https://bugs.webkit.org/show_bug.cgi?id=177665
Reviewed by Brian Burg.
.:
Default to RelWithDebInfo if CMAKE_BUILD_TYPE is unset.
- CMakeLists.txt:
Source/JavaScriptCore:
Pass -DRELEASE_WITHOUT_OPTIMIZATIONS to testair.cpp and testb3.cpp because
this files are compiled with -O0 for build speed reasons after r195639.
- JavaScriptCore.xcodeproj/project.pbxproj:
Source/WTF:
For GCC and Clang, generate an error at build time that will alert
the developer that she is trying to build Release without any compiler
optimization. A build time error is much better than an unexpected
"oh, WebKit is really slow ..." situation later.
If this was intended, then we tell the developer that she can continue
by just setting -DRELEASE_WITHOUT_OPTIMIZATIONS in the list of build
flags.
The intention of this patch is to ensure that nobody builds Release
without enabling compiler optimization by mistake.
- wtf/Compiler.h:
- 12:58 PM Changeset in webkit [222929] by
-
- 3 edits in trunk/Source/JavaScriptCore
Only add prototypes to the PrototypeMap if they're not already present
https://bugs.webkit.org/show_bug.cgi?id=177952
Reviewed by Michael Saboff and JF Bastien.
With poly proto, we need to call PrototypeMap::add more frequently since we don't
know if the prototype is already in the map or not based solely on Structure.
PrototypeMap::add was calling WeakMap::set unconditionally, which would unconditionally
allocate a Weak handle. Allocating a Weak handle is expensive. It's at least 8x more
expensive than just checking if the prototype is in the map prior to adding it. This
patch makes the change to only add the prototype if it's not already in the map. To
do this, I've added a WeakMap::add API that just forwards into HashMap's add API.
This allows us to both only do a single hash table lookup and also to allocate only
a single Weak handle when necessary.
- runtime/PrototypeMapInlines.h:
(JSC::PrototypeMap::addPrototype):
- runtime/WeakGCMap.h:
(JSC::WeakGCMap::add):
- 12:12 PM Changeset in webkit [222928] by
-
- 4 edits in trunk/Source
Bug 177893: Disable -Wcast-qual for new clang compiler in Apple ports
<https://webkit.org/b/177893>
<rdar://problem/33667497>
Reviewed by Tim Horton.
Source/WebCore:
- Configurations/Base.xcconfig:
(WARNING_CFLAGS): Remvoe -Wcast-qual until we can provide a safe
cast function that lets us re-enable the warning.
Source/WTF:
- wtf/RetainPtr.h:
(WTF::RetainPtr::fromStorageType const): Disable warnings for
-Wcast-qual until we can provide a safe cast function that lets
us re-enable the warning.
- 12:09 PM Changeset in webkit [222927] by
-
- 5 edits in trunk
Make progress toward properly-formed XPC services in the Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=177918
Reviewed by Alex Christensen.
.:
- Source/cmake/WebKitMacros.cmake:
Add a macro wrapper around 'ln'.
Source/WebKit:
- CMakeLists.txt:
- PlatformMac.cmake:
Turn on the storage process on Mac, and fix its build.
Move XPC services to Versions/A/XPCServices and add the toplevel
XPCServices as a symlink of that.
Run the XPC services' Info.plists through configure_file, and substitute
the important variables (most critically the bundle identifier).
Factor out the service setup so we don't keep duplicating it as it
gets more complicated.
- 12:02 PM Changeset in webkit [222926] by
-
- 18 edits12 adds6 deletes in trunk
Implement font-display loading behaviors
https://bugs.webkit.org/show_bug.cgi?id=175384
<rdar://problem/33813243>
Reviewed by Darin Adler.
Source/WebCore:
The font-display descriptors works off of the following model of font loading:
- When a font loads, the @font-face enters the first phase, called the "block period." Here,
text using this @font-face is rendered as invisible using a fallback font for metrics. If the
file finishes loading during this period, it is swapped in (visibly).
- When the first phase is over, the @font-face enters the second phase, called the "swap
period." Here, text using this @font-face is rendered visibly using a fallback font. If the
file finishes loading during this period, it is swapped in.
- When the second phase is over, the @font-face enters the third phase, called the "failure
period." Here, text using this @font-face is rendered visibly using a fallback font. If the
file finishes loading during this period, it is not swapped in (but it does live in the
network cache for subsequent page loads). This phase lasts forever.
The font-display descriptor changes the duration of these phases. For example, our default
font loading behavior can be achieved by making the first phase 3 seconds long and making the
second phase infinitely long (so the third phase is never reached).
Luckily, our CSSFontFace class already has states which correspond to each phase listed above:
Loading, TimedOut, and Failure. This patch migrates our existing 3-second timer to have logic
to correctly set the timeout duration based on the value of the font-display descriptor and
the current status(). This occurs inside CSSFontFace::setStatus().
This has implications for testing. Previously, our tests for the font loading behavior had a
single boolean that describes whether or not font loads should immediately jump to the "swap
period". Clearly, this is insufficient for testing all aspects of the font-display descriptor.
Instead, this patch deletes this existing infrastructure and instead creates three more fake
values of font-display (achieved in tests by using window.internals). These fake values make
fonts immediately jump into a particular state and stay there forever (so the timeout values
are, for example, [0, infinity, infinity] to test the swap period). This works because
CSSFontFace is smart enough to synchronously move between states that have a 0 timeout, so
there is no race between these timers and font loads.
We also need to test the behavior when a file downloads and when a file hasn't been loaded
yet (and the @font-face is in a particular state). Therefore, this patch adds another bool
which indicates whether the font subsystem should totally ignore font load events. This means
that a font will successfully download (and DOMContentLoaded will be fired, because that
uses the loading subsystem), but the font subsystem will plug its ears and ignore the load.
This means we can test the invisibility of text during the "block period" because DRT will
see that the page load has completed, but the font subsystem will pretend like the font is
still loading and draw invisibly.
Therefore, there are 6 tests: a test to test each of the 3 states an @font-face block may be
in, times 2 for whether or not we are ignoring font loads. These are more comprehensive than
the existing font loading tests which used internals.settings.setWebFontsAlwaysFallBack(),
so I deleted those tests in favor of these new ones.
Tests: fast/text/loading-block-finish.html
fast/text/loading-block-nofinish.html
fast/text/loading-failure-finish.html
fast/text/loading-failure-nofinish.html
fast/text/loading-swap-finish.html
fast/text/loading-swap-nofinish.html
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::setLoadingBehavior):
(WebCore::CSSFontFace::fontLoadEventOccurred): Remove old testing infrastructure.
(WebCore::CSSFontFace::timeoutFired): Previously, the timer was only used for going
from Loading -> TimedOut. Now, we have to ask the status() to figure out which
state transition we should be performing.
(WebCore::CSSFontFace::allSourcesFailed const): A Failed state needs to return true
here, even if some of the sources successfully downloaded.
(WebCore::CSSFontFace::setStatus): The logic to figure out how long to set the timer
for. Also, if the timer value is 0, synchronously recurse to change the status instead
of setting a 0-delay timer.
(WebCore::CSSFontFace::fontLoaded): Remove old testing infrastructure.
(WebCore::CSSFontFace::fontTimeoutIndex const): Implement new testing infrastructure.
(WebCore::CSSFontFace::shouldIgnoreFontLoadCompletions const): Ditto.
(WebCore::CSSFontFace::pump): See comment. Also, we're allowed to be in the Failure
state in more scenarios now, so relax some of our ASSERT()s.
(WebCore::CSSFontFace::font): Ditto.
(WebCore::CSSFontFace::webFontsShouldAlwaysFallBack const): Deleted.
- css/CSSFontFace.h: Migrate to new testing infrastructure.
- css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::CSSFontFaceSource): Implement new testing infrastructure.
(WebCore::CSSFontFaceSource::shouldIgnoreFontLoadCompletions const): Ditto.
(WebCore::CSSFontFaceSource::fontLoaded): Ditto.
- css/CSSFontFaceSource.h:
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::beginLoadingFontSoon): Remove old testing infrastructure.
- css/CSSSegmentedFontFace.cpp: It's possible to get different values out of
CSSFontFace::font() in successive calls during the same runloop. FontRanges will
include a raw pointer to one of the values, so all the values need to be kept alive.
- page/Settings.cpp: Migrate to new testing infrastructure.
(WebCore::Settings::Settings):
(WebCore::Settings::setFontTimeoutIndex):
(WebCore::Settings::setShouldIgnoreFontLoadCompletions):
(WebCore::Settings::setWebFontsAlwaysFallBack): Deleted.
- page/Settings.h: Ditto.
(WebCore::Settings::fontTimeoutIndex const):
(WebCore::Settings::shouldIgnoreFontLoadCompletions const):
(WebCore::Settings::webFontsAlwaysFallBack const): Deleted.
- testing/InternalSettings.cpp: Ditto.
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setFontTimeoutIndex):
(WebCore::InternalSettings::setShouldIgnoreFontLoadCompletions):
(WebCore::InternalSettings::setWebFontsAlwaysFallBack): Deleted.
- testing/InternalSettings.h: Ditto.
- testing/InternalSettings.idl: Ditto.
LayoutTests:
Delete the tests using the old testing infrastructure and replace them
with tests that use the new testing infrastructure.
- fast/text/font-loading-system-fallback-expected.html: Removed.
- fast/text/font-loading-system-fallback.html: Removed.
- fast/text/loading-block-finish-expected.html: Added.
- fast/text/loading-block-finish.html: Added.
- fast/text/loading-block-nofinish-expected.html: Added.
- fast/text/loading-block-nofinish.html: Added.
- fast/text/loading-failure-finish-expected.html: Added.
- fast/text/loading-failure-finish.html: Added.
- fast/text/loading-failure-nofinish-expected.html: Added.
- fast/text/loading-failure-nofinish.html: Added.
- fast/text/loading-swap-finish-expected.html: Added.
- fast/text/loading-swap-finish.html: Added.
- fast/text/loading-swap-nofinish-expected.html: Added.
- fast/text/loading-swap-nofinish.html: Added.
- fast/text/web-font-load-fallback-during-loading-2-expected.html: Removed.
- fast/text/web-font-load-fallback-during-loading-2.html: Removed.
- fast/text/web-font-load-fallback-during-loading-expected.html: Removed.
- fast/text/web-font-load-fallback-during-loading.html: Removed.
- platform/gtk/TestExpectations:
- platform/ios-wk1/TestExpectations:
- platform/win/TestExpectations:
- 11:59 AM Changeset in webkit [222925] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed. Disable probe OSR exit on 32-bit until it's fixed.
- runtime/Options.cpp:
(JSC::recomputeDependentOptions):
- 11:57 AM Changeset in webkit [222924] by
-
- 3 edits in trunk/LayoutTests
Layout Test media/modern-media-controls/scrubber-support/scrubber-support-drag.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=174682
Patch by Antoine Quint <Antoine Quint> on 2017-10-05
Reviewed by Dean Jackson.
This test could fail since we would start it before the time control was fully sized and only
the scrubber had bounds, but not the elapsed time label. We have to wait on both being fully
sized before starting the test and only then it is reliable.
- media/modern-media-controls/scrubber-support/scrubber-support-drag.html:
- platform/mac/TestExpectations:
- 11:51 AM Changeset in webkit [222923] by
-
- 3 edits in trunk/LayoutTests
Layout Test media/modern-media-controls/scrubber-support/scrubber-support-click.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=177930
Patch by Antoine Quint <Antoine Quint> on 2017-10-05
Reviewed by Dean Jackson.
In cases where this test failed, it actually worked as expected but the "timeupdate" event would be fired
twice, most likely because it was registered twice. We now use an asynchronous expectation to run the test
which should only register the event listener once and make the test more reliable.
- media/modern-media-controls/scrubber-support/scrubber-support-click-expected.txt:
- media/modern-media-controls/scrubber-support/scrubber-support-click.html:
- 11:48 AM Changeset in webkit [222922] by
-
- 3 edits in trunk/Source/WebCore
RenderMathMLFenced should not hold a raw pointer to RenderMathMLFencedOperator
https://bugs.webkit.org/show_bug.cgi?id=177950
<rdar://problem/34837002>
Reviewed by Antti Koivisto.
Even though RenderMathMLFencedOperator is a child renderer, it's lifetime is not explicitly managed by
RenderMathMLFenced.
Covered by existing test cases.
- rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::RenderMathMLFenced):
(WebCore::RenderMathMLFenced::makeFences):
(WebCore::RenderMathMLFenced::addChild):
- rendering/mathml/RenderMathMLFenced.h:
- 11:47 AM Changeset in webkit [222921] by
-
- 19 edits13 copies1 move5 adds in trunk
[Payment Request] Add a payment method that supports Apple Pay
https://bugs.webkit.org/show_bug.cgi?id=177850
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- web-platform-tests/payment-request/payment-request-abort-method.https-expected.txt:
- web-platform-tests/payment-request/payment-request-show-method.https-expected.txt:
Source/WebCore:
This patch implements a payment method dictionary and a payment handler for Apple Pay.
It reuses existing Apple Pay code by:
- Moving shared properties from ApplePayPaymentRequest to ApplePayRequestBase and having ApplePayPaymentRequest inherit from ApplePayRequestBase.
- Creating an ApplePayRequest dictionary that inherits from ApplePayRequestBase and adds PaymentRequest-specific properties (right now that's just the version property).
- Moving validation logic from ApplePaySession into various places that can be reused by PaymentRequest and ApplePayPaymentHandler.
- Storing currency values for both ApplePaySession and PaymentRequest in Strings rather than integers representing whole cents, since PaymentRequest supports high-precision currency values.
This patch does not implement any event handling for merchant validation, payment method
changes, or shipping address/option changes. That will be handled in a follow-on.
Test: http/tests/ssl/applepay/PaymentRequest.html
- DerivedSources.make:
- Modules/applepay/ApplePayContactField.cpp: Added.
(WebCore::convertAndValidate): Moved from ApplePaySession.cpp.
- Modules/applepay/ApplePayContactField.h: Added.
- Modules/applepay/ApplePayContactField.idl: Added.
- Modules/applepay/ApplePayMerchantCapability.cpp: Added.
(WebCore::convertAndValidate): Moved from ApplePaySession.cpp.
- Modules/applepay/ApplePayMerchantCapability.h: Added.
- Modules/applepay/ApplePayMerchantCapability.idl: Added.
- Modules/applepay/ApplePayPaymentRequest.h: Moved fields shared with ApplePayRequest into ApplePayRequestBase.
- Modules/applepay/ApplePayPaymentRequest.idl: Ditto.
- Modules/applepay/ApplePayRequestBase.cpp: Added.
(WebCore::convertAndValidate): Moved from ApplePaySession.cpp.
- Modules/applepay/ApplePayRequestBase.h: Added.
- Modules/applepay/ApplePayRequestBase.idl: Added.
- Modules/applepay/ApplePaySession.cpp:
(WebCore::validateAmount): Renamed from parseAmount.
(WebCore::convertAndValidateTotal):
(WebCore::convertAndValidate):
(WebCore::parseDigit): Deleted.
(WebCore::parseAmount): Renamed to validateAmount.
- Modules/applepay/ApplePaySessionPaymentRequest.h: Changed amount from an int64_t to a String.
- Modules/applepay/ApplePayShippingMethodSelectedEvent.cpp:
(WebCore::convert):
- Modules/applepay/PaymentRequestValidator.mm: Renamed from Source/WebCore/Modules/applepay/PaymentRequestValidator.cpp.
(WebCore::PaymentRequestValidator::validateTotal): Used NSDecimalNumber to validate amounts.
(WebCore::validateShippingMethod): Ditto.
- Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp: Added.
(WebCore::ApplePayPaymentHandler::handlesIdentifier): Added. Returns true if identifier is a URL with host "apple.com" and path "/apple-pay".
(WebCore::ApplePayPaymentHandler::ApplePayPaymentHandler):
(WebCore::convert): Added. Converts PaymentRequest types to ApplePaySessionPaymentRequest types.
(WebCore::ApplePayPaymentHandler::convertData): Added. JSON-parses data into an ApplePayRequest,
then uses that along with the PaymentRequest to construct and validate an ApplePaySessionPaymentRequest.
(WebCore::ApplePayPaymentHandler::show): Added a FIXME.
- Modules/applepay/paymentrequest/ApplePayPaymentHandler.h: Added.
- Modules/applepay/paymentrequest/ApplePayRequest.h: Added.
- Modules/applepay/paymentrequest/ApplePayRequest.idl: Added. Inherits from ApplePayRequestBase and adds a required version property.
- Modules/paymentrequest/PaymentHandler.cpp: Added.
(WebCore::PaymentHandler::create): Returns a PaymentHandler subclass based on the payment method identifier.
(WebCore::PaymentHandler::~PaymentHandler):
- Modules/paymentrequest/PaymentHandler.h: Added.
- Modules/paymentrequest/PaymentRequest.cpp:
(WebCore::convertAndValidatePaymentMethodIdentifier): Added.
(WebCore::PaymentRequest::show): Removed an unnecessary call to RunLoop::dispatch().
Created a PaymentHandler for each payment method and called show() on the first available PaymentHandler.
(WebCore::PaymentRequest::abort): Removed an unnecessary call to RunLoop::dispatch().
(WebCore::PaymentRequest::canMakePayment): Ditto.
(WebCore::PaymentRequest::finishShowing): Deleted.
- Modules/paymentrequest/PaymentRequest.h:
- WebCore.xcodeproj/project.pbxproj:
Source/WebKit:
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(toShippingMethod): Converted the NSDecimalNumber amount to a string rather than an integer.
(WebKit::toDecimalNumber): used -decimalNumberWithString:locale: rather than
-initWithMantissa:exponent:isNegative: to create an NSDecimalNumber.
(WebKit::toPKPaymentSummaryItem):
(WebKit::toPKShippingMethod):
LayoutTests:
- http/tests/ssl/applepay/PaymentRequest.https-expected.txt: Added.
- http/tests/ssl/applepay/PaymentRequest.https.html: Added.
- platform/mac-wk2/TestExpectations:
- platform/ios-wk2/TestExpectations:
- 10:59 AM Changeset in webkit [222920] by
-
- 5 edits in trunk/Source/WebCore
Move more multicolumn render tree mutation code to RenderTreeUpdater::MultiColumn
https://bugs.webkit.org/show_bug.cgi?id=177942
Reviewed by Zalan Bujtas.
- rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::RenderMultiColumnFlow):
Use std::unique_ptr for the spanner map for safe owenership transfer.
(WebCore::RenderMultiColumnFlow::fragmentedFlowDescendantInserted):
(WebCore::RenderMultiColumnFlow::handleSpannerRemoval):
(WebCore::RenderMultiColumnFlow::fragmentedFlowRelativeWillBeRemoved):
(WebCore::RenderMultiColumnFlow::populate): Deleted.
(WebCore::RenderMultiColumnFlow::evacuateAndDestroy): Deleted.
This code moves to RenderTreeUpdater::MultiColumn.
- rendering/RenderMultiColumnFlow.h:
- style/RenderTreeUpdaterMultiColumn.cpp:
(WebCore::RenderTreeUpdater::MultiColumn::update):
(WebCore::RenderTreeUpdater::MultiColumn::createFragmentedFlow):
(WebCore::RenderTreeUpdater::MultiColumn::destroyFragmentedFlow):
Use Hyatt's preferred 'fragmented flow' terminology.
- style/RenderTreeUpdaterMultiColumn.h:
- 10:58 AM Changeset in webkit [222919] by
-
- 8 edits in trunk/Source
Unreviewed, rolling out r222893.
This caused multiple API failures.
Reverted changeset:
"bmalloc mutex should be adaptive"
https://bugs.webkit.org/show_bug.cgi?id=177839
http://trac.webkit.org/changeset/222893
- 10:50 AM Changeset in webkit [222918] by
-
- 2 edits in trunk/Tools
Unreviewed. Run WebKit2 C API tests in GTK+ bots again after the last WebKit2 -> WebKit rename.
- Scripts/run-gtk-tests:
(TestRunner):
(TestRunner._run_test):
- 10:43 AM Changeset in webkit [222917] by
-
- 13 edits7 deletes in trunk
Remove additional WebKitSystemInterface remnants
https://bugs.webkit.org/show_bug.cgi?id=177948
Reviewed by Andy Estes.
Source/WebCore:
- PlatformMac.cmake: Remove logic to select and link an appropriate
WebKitSystemInterface library.
- html/shadow/MediaControlElementTypes.h: Remove comment about matching
WebKitSystemInterface.h, now obsolete.
- rendering/RenderMediaControls.cpp: Wrap whole file in a single conditional
to make it clear that it's only used at all in this one particular case.
(wkHitTestMediaUIPart): Deleted.
(wkMeasureMediaUIPart): Deleted.
(wkDrawMediaUIPart): Deleted.
(wkDrawMediaSliderTrack): Deleted.
(WebCore::determineState): Deleted.
(WebCore::getUnzoomedRectAndAdjustCurrentContext): Deleted.
(WebCore::RenderMediaControls::adjustMediaSliderThumbSize): Call the
WKMeasureMediaUIPart instead of through an inline function to rename it.
(WebCore::RenderMediaControls::paintMediaControlsPart): Deleted.
- rendering/RenderMediaControls.h: Wrap whole file in a single conditional
to make it clear that it's only used at all in this one particular case.
Removed unneeded includes, forward declarations, and function declaration.
- rendering/RenderThemeMac.mm: Removed include of RenderMediaControls.h.
Source/WebKitLegacy:
- PlatformMac.cmake: Removed reference to deleted file WebSystemInterface.mm.
Tools:
- DumpRenderTree/PlatformMac.cmake: Removed code to link the
WebKitSystemInterface library. Left in code that points to
the WebKitLibraries directory, but maybe that can be removed by
someone who is more certain it's no longer needed.
- Scripts/copy-webkitlibraries-to-product-directory: Removed code
to copy and delete WebKitSystemInterface libraries and headers.
- WebKitTestRunner/PlatformMac.cmake: Removed code to link the
WebKitSystemInterface library. Left in code that points to
the WebKitLibraries directory, but maybe that can be removed by
someone who is more certain it's no longer needed.
WebKitLibraries:
- libWebKitSystemInterfaceElCapitan.a: Removed.
- libWebKitSystemInterfaceIOSDevice10.a: Removed.
- libWebKitSystemInterfaceIOSDevice11.a: Removed.
- libWebKitSystemInterfaceIOSSimulator10.a: Removed.
- libWebKitSystemInterfaceIOSSimulator11.a: Removed.
- libWebKitSystemInterfaceOSX10.12.a: Removed.
- libWebKitSystemInterfaceOSX10.13.a: Removed.
- 10:40 AM Changeset in webkit [222916] by
-
- 2 edits in trunk/Source/WebCore
Remove redundant LayoutStateDisabler from RenderTreeUpdaterFirstLetter
https://bugs.webkit.org/show_bug.cgi?id=177946
Reviewed by Simon Fraser.
First letter is updated prior to layout.
Covered by existing tests.
- style/RenderTreeUpdaterFirstLetter.cpp:
(WebCore::updateFirstLetterStyle):
- 10:31 AM Changeset in webkit [222915] by
-
- 5 edits1 add in trunk/Source/WebCore
[Payment Request] Factor out ApplePaySession's interface to PaymentCoordinator into a base class
https://bugs.webkit.org/show_bug.cgi?id=177904
Reviewed by Daniel Bates.
In a follow-on patch, something other than ApplePaySession will need to be the
PaymentCoordinator's active session during PaymentRequest sessions.
To support this, this patch factors out the ApplePaySession functions called by
PaymentCoordinator into a new base class called PaymentSession.
- Modules/applepay/ApplePaySession.h:
- Modules/applepay/PaymentCoordinator.cpp:
(WebCore::PaymentCoordinator::beginPaymentSession):
- Modules/applepay/PaymentCoordinator.h:
- Modules/applepay/PaymentSession.h: Added.
(WebCore::PaymentSession::~PaymentSession):
- WebCore.xcodeproj/project.pbxproj:
- 10:18 AM Changeset in webkit [222914] by
-
- 2 edits in trunk/Tools
Unreviewed. Try to make debug type profiler tests stop timing out.
- Scripts/run-jsc-stress-tests:
- 10:11 AM Changeset in webkit [222913] by
-
- 14 edits1 delete in branches/safari-604-branch
Revert r222431. rdar://problem/34826998
- 10:11 AM Changeset in webkit [222912] by
-
- 2 edits in branches/safari-604-branch/Tools
Revert r222453. rdar://problem/34826998
- 9:09 AM WebKitGTK/2.18.x edited by
- (diff)
- 7:04 AM Changeset in webkit [222911] by
-
- 5 edits in trunk/Source/WebCore
Move multicolumn flow clear to RenderTreeUpdater
https://bugs.webkit.org/show_bug.cgi?id=177898
<rdar://problem/34820157>
Reviewed by Antti Koivisto.
There are 2 cases when we need to clear the the multicolumn flow from its container.
- When the column renderer is not need anymore due to style change (evacuateAndDestroy).
During the subtree reparenting (moving back the descendants to the original position),
if we still had the multicolumn set on the RenderBlockFlow, RenderBlockFlow::addChild() would
put the children back under the column. -> Move the clear call to the RenderTreeUpdater.
- When the column is detached from the tree/destroyed (willBeRemoveFromTree).
Since it does not trigger reparenting, we don't need to clear the column immediately.
We call clear to avoid accessing state column renderer. -> Use WeakPtr to
manage lifetime instead.
Covered by existing tests.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::setMultiColumnFlow):
(WebCore::RenderBlockFlow::clearMultiColumnFlow):
- rendering/RenderBlockFlow.h:
- rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::evacuateAndDestroy):
(WebCore::RenderMultiColumnFlow::willBeRemovedFromTree):
- style/RenderTreeUpdaterMultiColumn.cpp:
(WebCore::RenderTreeUpdater::MultiColumn::update):
(WebCore::RenderTreeUpdater::MultiColumn::createFragmentedFlow):
- 7:00 AM Changeset in webkit [222910] by
-
- 5 edits in trunk/Source/WebCore
[GTK][WPE] GIFImageDecoder never clears decoded frames even when told to do so
https://bugs.webkit.org/show_bug.cgi?id=177864
Reviewed by Carlos Garcia Campos.
Fix GIFImageDecoder::clearFrameBufferCache() so it really deletes decoded buffers, and modify
GIFImageDecoder to be able to decode frames that are not requested in the expected order.
Covered by existent tests.
- platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::findFirstRequiredFrameToDecode):
(WebCore::GIFImageDecoder::frameBufferAtIndex):
(WebCore::GIFImageDecoder::clearFrameBufferCache):
- platform/image-decoders/gif/GIFImageDecoder.h:
- platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::decode):
- platform/image-decoders/gif/GIFImageReader.h:
(GIFImageReader::frameContext const):
- 6:31 AM Changeset in webkit [222909] by
-
- 3 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Update expectations and rebaseline tests failing at r222905.
- platform/gtk/TestExpectations:
- platform/gtk/js/dom/global-constructors-attributes-expected.txt:
- 3:49 AM Changeset in webkit [222908] by
-
- 2 edits in trunk/Source/WebCore
[WinCairo] Fix build after Bug 167956
https://bugs.webkit.org/show_bug.cgi?id=177921
Patch by Fujii Hironori <Fujii Hironori> on 2017-10-05
Reviewed by Carlos Garcia Campos.
FontCascade::fontForCombiningCharacterSequence wasn't defined for
WinCairo port. It should be defined if !USE(HARFBUZZ).
No new tests because there is no behavior change.
- platform/graphics/FontCascade.cpp: Use !USE(HARFBUZZ) instead of !USE(CAIRO).
- 2:32 AM Changeset in webkit [222907] by
-
- 8 edits1 add1 delete in trunk
Remove Brotli from Source/ThirdParty
https://bugs.webkit.org/show_bug.cgi?id=177804
Patch by Frederic Wang <fwang@igalia.com> on 2017-10-03
Reviewed by Michael Catanzaro.
.:
- Source/CMakeLists.txt: Do not build ThirdParty/brotli anymore.
- Source/cmake/FindBrotliDec.cmake: Added. New cmake module to find Brotli via PkgConfig.
- Source/cmake/OptionsGTK.cmake: Expose USE_WOFF2 as a public option and use find_package
to look for brotli.
Source/ThirdParty:
- brotli/CMakeLists.txt: Removed.
- brotli/LICENSE: Removed.
- brotli/README.webkit: Removed.
- brotli/common/constants.h: Removed.
- brotli/common/dictionary.bin: Removed.
- brotli/common/dictionary.c: Removed.
- brotli/common/dictionary.h: Removed.
- brotli/common/version.h: Removed.
- brotli/dec/bit_reader.c: Removed.
- brotli/dec/bit_reader.h: Removed.
- brotli/dec/context.h: Removed.
- brotli/dec/decode.c: Removed.
- brotli/dec/huffman.c: Removed.
- brotli/dec/huffman.h: Removed.
- brotli/dec/port.h: Removed.
- brotli/dec/prefix.h: Removed.
- brotli/dec/state.c: Removed.
- brotli/dec/state.h: Removed.
- brotli/dec/transform.h: Removed.
- brotli/include/brotli/decode.h: Removed.
- brotli/include/brotli/encode.h: Removed.
- brotli/include/brotli/port.h: Removed.
- brotli/include/brotli/types.h: Removed.
- brotli/update.sh: Removed.
- woff2/CMakeLists.txt: Use Brotli's include and library paths found by CMake.
Tools:
- gtk/jhbuild.modules: Build brotli 1.0.1 from the official github repository.
- Scripts/webkitpy/style/checker.py: Remove brotli.
- 2:28 AM Changeset in webkit [222906] by
-
- 2 edits in trunk/Source/WebCore
Align BitmapImage::LargeAnimationCutoff to a megabyte value
https://bugs.webkit.org/show_bug.cgi?id=177924
Reviewed by Carlos Garcia Campos.
- platform/graphics/BitmapImage.h: Fix the 1014 multiplier used to calculate
the LargeAnimationCutoff value. It was most likely a typo.
- 2:04 AM Changeset in webkit [222905] by
-
- 2 edits4 adds in trunk/LayoutTests
Unreviewed WPE gardening.
Enable the http/tests/ layout tests in general, but skip the directories
that contain failing tests that still have to be cataloged.
- platform/wpe/TestExpectations:
- platform/wpe/http: Added.
- platform/wpe/http/wpt: Added.
- platform/wpe/http/wpt/resource-timing: Added.
- platform/wpe/http/wpt/resource-timing/rt-initiatorType-media-expected.txt: Added.
- 1:28 AM WebKitGTK/TrackingMemoryErrors edited by
- Mention that Malloc=1 is needed to succeed with Valgrind (diff)
- 1:24 AM WebKitGTK/Debugging edited by
- (diff)
- 1:06 AM Changeset in webkit [222904] by
-
- 4 edits in trunk/Source/WebCore
Address post-review feedback following r222885
https://bugs.webkit.org/show_bug.cgi?id=177853
<rdar://problem/34807346>
Reviewed by Ryosuke Niwa and Dan Bates.
- dom/DataTransfer.cpp:
(WebCore::DataTransfer::updateFileList):
(WebCore::DataTransfer::types const):
(WebCore::DataTransfer::filesFromPasteboardAndItemList const):
- dom/DataTransferItem.h:
(WebCore::DataTransferItem::file):
(WebCore::DataTransferItem::file const): Deleted.
- dom/DataTransferItemList.cpp:
(WebCore::DataTransferItemList::add):
(WebCore::DataTransferItemList::remove):
When removing a data transfer item, capture it in a Ref for the scope of remove(), so that it won't be destroyed
immediately after removing from the item list.
- 12:55 AM WebKitGTK/2.18.x edited by
- (diff)
- 12:54 AM Changeset in webkit [222903] by
-
- 28 edits15 adds5 deletes in trunk/Source/ThirdParty
Upgrade Brotli to version 1.0.1 and WOFF2 to latest upstream
https://bugs.webkit.org/show_bug.cgi?id=177768
Patch by Frederic Wang <fwang@igalia.com> on 2017-10-05
Reviewed by Michael Catanzaro.
- brotli/CMakeLists.txt:
- brotli/README.webkit:
- brotli/common/constants.h: Added.
- brotli/common/dictionary.bin: Added.
- brotli/common/dictionary.c: Added.
- brotli/common/dictionary.h: Added.
- brotli/common/version.h: Added.
- brotli/dec/Makefile: Removed.
- brotli/dec/bit_reader.c:
- brotli/dec/bit_reader.h:
- brotli/dec/context.h:
- brotli/dec/decode.c:
- brotli/dec/decode.h: Removed.
- brotli/dec/dictionary.c: Removed.
- brotli/dec/dictionary.h: Removed.
- brotli/dec/huffman.c:
- brotli/dec/huffman.h:
- brotli/dec/port.h:
(BrotliDump):
(BrotliRBit):
- brotli/dec/prefix.h:
- brotli/dec/state.c:
- brotli/dec/state.h:
- brotli/dec/transform.h:
- brotli/dec/types.h: Removed.
- brotli/include/brotli/decode.h: Added.
- brotli/include/brotli/encode.h: Added.
- brotli/include/brotli/port.h: Added.
- brotli/include/brotli/types.h: Added.
- brotli/update.sh:
- woff2/CMakeLists.txt:
- woff2/README.webkit:
- woff2/src/buffer.h:
(woff2::Buffer::Buffer):
(woff2::Buffer::Read):
- woff2/src/convert_woff2ttf_*.cc: Added.
- woff2/src/font.cc:
- woff2/src/glyph.cc:
- woff2/src/normalize.cc:
- woff2/src/port.h:
- woff2/src/store_bytes.h:
(woff2::Store16):
- woff2/src/variable_length.cc:
- woff2/src/woff2_common.cc:
- woff2/src/woff2_dec.cc:
- woff2/src/woff2_decompress.cc:
- woff2/src/woff2_enc.cc:
- woff2/src/woff2_info.cc: Added.
- 12:44 AM Changeset in webkit [222902] by
-
- 10 edits2 copies in trunk/Source
Make LibWebRTCProvider port agnostic
https://bugs.webkit.org/show_bug.cgi?id=177747
Patch by Youenn Fablet <youenn@apple.com> on 2017-10-05
Reviewed by Alex Christensen & Alex Garcia.
Source/WebCore:
No change of behavior.
LibWebRTCProvider had some Mac/iOS specific members that are now
moved to LibWebRTCProviderCocoa.
This consists in the codec factories that are VideoToolBox specific.
Introducing LibWebRTCProvider::create to allow different port implementations of LibWebRTCProvider.
- WebCore.xcodeproj/project.pbxproj:
- inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::overlayPage):
- platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
(WebCore::LibWebRTCProvider::create):
(WebCore::LibWebRTCProvider::factory):
(WebCore::LibWebRTCProvider::createPeerConnectionFactory):
- platform/mediastream/libwebrtc/LibWebRTCProvider.h:
- platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
(WebCore::LibWebRTCProviderCocoa::createDecoderFactory):
(WebCore::LibWebRTCProviderCocoa::createEncoderFactory):
(WebCore::LibWebRTCProviderCocoa::setActive):
- platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.h:
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
Source/WebKit:
- WebProcess/Network/webrtc/LibWebRTCProvider.h: Making sure Mac/iOS provider creates the codec factories.
Source/WebKitLegacy/mac:
- WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
- 12:38 AM Changeset in webkit [222901] by
-
- 11 edits1 add in trunk
Make sure all prototypes under poly proto get added into the VM's prototype map
https://bugs.webkit.org/show_bug.cgi?id=177909
Reviewed by Keith Miller.
JSTests:
- stress/poly-proto-prototype-map-having-a-bad-time.js: Added.
(assert):
(foo.C):
(foo):
(set x):
Source/JavaScriptCore:
This is an invariant of prototypes that I broke when doing poly proto. This patch fixes it.
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/BytecodeList.json:
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGOperations.cpp:
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/JSCInlines.h:
- runtime/PrototypeMap.cpp:
(JSC::PrototypeMap::addPrototype): Deleted.
- runtime/PrototypeMap.h:
- runtime/PrototypeMapInlines.h:
(JSC::PrototypeMap::isPrototype const):
(JSC::PrototypeMap::addPrototype):
- 12:05 AM Changeset in webkit [222900] by
-
- 17 edits1 copy4 adds in trunk
[Linux] Port MallocBench
https://bugs.webkit.org/show_bug.cgi?id=177856
Reviewed by Filip Pizlo.
.:
- CMakeLists.txt:
PerformanceTests:
We would like to optimize locking in bmalloc in Linux by using futex APIs. So we should have
the way to ensure this actually improves / does not regress the performance.
This patch ports MallocBench to Linux to measure/ensure the effect of bmalloc patch in Linux.
While we replace the dispatch serial queue in message.cpp, we still use libdispatch in Benchmark.cpp
since we do not have priority mechanism in C++11 threading implementation.
We also extend run-malloc-benchmarks to accept cmake style layout of build product directory.
And we also support building MallocBench in CMake environment including CMake Mac ports.
Currently, we do not support Windows yet.
Based on the measurement, we can say the following observation. glibc's malloc performance is not
so bad. While bmalloc shows 3.8x (in geomean) performance improvement, bmalloc in Linux shows 2.0x
improvement. Since both numbers in bmalloc are similar, we can think that bmalloc's optimization is
actually working in Linux too. And even though glibc's malloc perofmrnace is not so bad, bmalloc
still offers performance improvement.
- CMakeLists.txt: Added.
- MallocBench/CMakeLists.txt: Added.
- MallocBench/MallocBench.xcodeproj/project.pbxproj:
- MallocBench/MallocBench/Benchmark.cpp:
(Benchmark::Benchmark):
(Benchmark::runOnce):
(Benchmark::currentMemoryBytes): Deleted.
- MallocBench/MallocBench/Benchmark.h:
(Benchmark::Memory::Memory): Deleted.
(Benchmark::Memory::operator-): Deleted.
- MallocBench/MallocBench/CMakeLists.txt: Added.
- MallocBench/MallocBench/CPUCount.cpp:
(cpuCount):
- MallocBench/MallocBench/Interpreter.cpp:
(Interpreter::doMallocOp):
- MallocBench/MallocBench/Memory.cpp: Added.
(currentMemoryBytes):
- MallocBench/MallocBench/Memory.h: Copied from PerformanceTests/MallocBench/MallocBench/CPUCount.cpp.
(Memory::Memory):
(Memory::operator-):
- MallocBench/MallocBench/balloon.cpp:
(benchmark_balloon):
- MallocBench/MallocBench/mbmalloc.cpp:
- MallocBench/MallocBench/message.cpp:
(WorkQueue::WorkQueue):
(WorkQueue::~WorkQueue):
(WorkQueue::dispatchAsync):
(WorkQueue::dispatchSync):
(benchmark_message_one):
(benchmark_message_many):
- MallocBench/MallocBench/nimlang.cpp:
(benchmark_nimlang):
- MallocBench/MallocBench/stress.cpp:
(SizeStream::next):
- MallocBench/MallocBench/stress_aligned.cpp:
- MallocBench/run-malloc-benchmarks:
Source/bmalloc:
- CMakeLists.txt:
Oct 4, 2017:
- 11:33 PM Changeset in webkit [222899] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: When scrolled Network Table reduces the number of rows it may appear as blank
https://bugs.webkit.org/show_bug.cgi?id=177914
<rdar://problem/34827613>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-10-04
Reviewed by Matt Baker.
- UserInterface/Views/Table.js:
(WI.Table.prototype._updateVisibleRows):
(WI.Table.prototype._updateFillerRowWithNewHeight):
Reduce the scrollTop when the table was scrolled and was then reloaded with a
smaller number of rows. This can happen in two ways. Either the number of rows
was reduced so much that we enter non-scrollable mode with a non-zero filler
row. This can always reset the scrollTop to 0. Or when a large number of rows
is reduced to a smaller number than our current scrollTop but still more than
fit on one screen. In that case we can reduce the scrollTop to whatever would
scroll the table to its max position.
- 11:13 PM Changeset in webkit [222898] by
-
- 65 edits3 deletes in trunk/Source
Remove WebCoreSystemInterface
https://bugs.webkit.org/show_bug.cgi?id=177916
Reviewed by Antti Koivisto.
Source/WebCore:
- Configurations/WebCore.xcconfig:
- PlatformMac.cmake:
- WebCore.xcodeproj/project.pbxproj:
- accessibility/mac/AXObjectCacheMac.mm:
- accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
- dom/Document.cpp:
- editing/mac/DictionaryLookup.mm:
- page/ios/FrameIOS.mm:
- page/ios/UserAgentIOS.mm:
- page/mac/EventHandlerMac.mm:
- platform/cocoa/LocalizedStringsCocoa.mm:
- platform/cocoa/ScrollController.mm:
- platform/graphics/Font.h:
- platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
- platform/graphics/ca/GraphicsLayerCA.cpp:
- platform/graphics/cg/GraphicsContextCG.cpp:
- platform/graphics/cg/ImageBufferCG.cpp:
- platform/graphics/cg/PathCG.cpp:
- platform/graphics/cg/PatternCG.cpp:
- platform/graphics/cocoa/FontCascadeCocoa.mm:
- platform/graphics/cocoa/FontCocoa.mm:
- platform/graphics/cocoa/FontPlatformDataCocoa.mm:
- platform/graphics/mac/ComplexTextControllerCoreText.mm:
- platform/graphics/mac/FontCacheMac.mm:
- platform/graphics/mac/GlyphPageMac.cpp:
- platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
- platform/ios/LegacyTileCache.mm:
- platform/ios/PlatformScreenIOS.mm:
- platform/ios/VideoFullscreenInterfaceAVKit.mm:
- platform/ios/WebCoreSystemInterfaceIOS.mm: Removed.
- platform/ios/wak/WAKWindow.mm:
- platform/mac/CursorMac.mm:
- platform/mac/FileSystemMac.mm:
- platform/mac/PlatformEventFactoryMac.mm:
- platform/mac/PlatformSpeechSynthesizerMac.mm:
- platform/mac/ScrollAnimatorMac.mm:
- platform/mac/ScrollbarThemeMac.mm:
- platform/mac/ThemeMac.mm:
- platform/mac/WebCoreNSURLExtras.mm:
- platform/mac/WebCoreSystemInterface.h: Removed.
- platform/mac/WebCoreSystemInterface.mm: Removed.
- platform/mac/WebVideoFullscreenHUDWindowController.mm:
- platform/mac/WebWindowAnimation.mm:
- platform/network/cf/CookieStorageCFNet.cpp:
- platform/network/cf/CredentialStorageCFNet.cpp:
- platform/network/cf/NetworkStorageSessionCFNet.cpp:
- platform/network/cf/ResourceHandleCFNet.cpp:
- platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
- platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
- platform/network/cf/ResourceRequestCFNet.cpp:
- platform/network/cf/ResourceResponseCFNet.cpp:
- platform/network/cf/SocketStreamHandleImplCFNet.cpp:
- platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
- platform/network/cocoa/ResourceRequestCocoa.mm:
- platform/network/ios/WebCoreURLResponseIOS.mm:
- platform/network/mac/CookieJarMac.mm:
- platform/network/mac/ResourceHandleMac.mm:
- platform/network/mac/WebCoreURLResponse.mm:
- platform/text/TextEncodingRegistry.cpp:
- rendering/RenderThemeMac.mm:
Source/WebKitLegacy/ios:
- Misc/WebUIKitSupport.mm:
- 10:46 PM Changeset in webkit [222897] by
-
- 18 edits in trunk
Stop linking with WebKitSystemInterface
https://bugs.webkit.org/show_bug.cgi?id=177915
Reviewed by Antti Koivisto.
Source/WebKit:
- Configurations/DebugRelease.xcconfig:
- WebKit.xcodeproj/project.pbxproj:
Source/WebKitLegacy:
- WebKitLegacy.xcodeproj/project.pbxproj:
Source/WebKitLegacy/mac:
- Configurations/DebugRelease.xcconfig:
- Configurations/WebKitLegacy.xcconfig:
Tools:
- DumpRenderTree/mac/Configurations/Base.xcconfig:
- DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
- DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig:
- DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig:
- WebKitTestRunner/Configurations/Base.xcconfig:
- WebKitTestRunner/Configurations/DebugRelease.xcconfig:
- WebKitTestRunner/Configurations/InjectedBundle.xcconfig:
- WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig:
- WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig:
- 9:30 PM Changeset in webkit [222896] by
-
- 83 edits4 deletes in trunk
Remove unnecessary includes of WebKitSystemInterface on Cocoa platforms
https://bugs.webkit.org/show_bug.cgi?id=177912
Reviewed by Saam Barati.
Source/WebCore:
- WebCore.xcodeproj/project.pbxproj:
Also stop compiling RenderMediaControls.cpp on Cocoa platforms. It's not used.
Source/WebKit:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
- NetworkProcess/mac/NetworkProcessMac.mm:
- NetworkProcess/mac/RemoteNetworkingContext.mm:
- Platform/IPC/mac/ConnectionMac.mm:
- Platform/mac/LayerHostingContext.mm:
- PluginProcess/mac/PluginProcessMac.mm:
- PluginProcess/mac/PluginProcessShim.mm:
- Shared/ios/ChildProcessIOS.mm:
- Shared/mac/ChildProcessMac.mm:
- Shared/mac/SandboxExtensionMac.mm:
- Shared/mac/WebCoreArgumentCodersMac.mm:
- Shared/mac/WebEventFactory.mm:
- StorageProcess/ios/StorageProcessIOS.mm:
- StorageProcess/mac/StorageProcessMac.mm:
- UIProcess/API/Cocoa/WKWebView.mm:
- UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
- UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
- UIProcess/Cocoa/WebViewImpl.mm:
- UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
- UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:
- UIProcess/mac/PageClientImplMac.mm:
- UIProcess/mac/WKTextInputWindowController.mm:
- UIProcess/mac/WebContextMenuProxyMac.mm:
- UIProcess/mac/WebPopupMenuProxyMac.mm:
- UIProcess/mac/WindowServerConnection.mm:
- WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
- WebProcess/Plugins/Netscape/mac/PluginProxyMac.mm:
- WebProcess/Plugins/PDF/PDFPlugin.mm:
- WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
- WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
- WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
- WebProcess/WebPage/ios/WebPageIOS.mm:
- WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:
- WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
- WebProcess/WebPage/mac/WebPageMac.mm:
- WebProcess/cocoa/WebProcessCocoa.mm:
Source/WebKitLegacy/ios:
- Misc/WebUIKitSupport.mm:
- WebCoreSupport/WebChromeClientIOS.mm:
Source/WebKitLegacy/mac:
- Carbon/CarbonUtils.m:
- Carbon/CarbonWindowAdapter.mm:
- Carbon/HIWebView.mm:
- DefaultDelegates/WebDefaultContextMenuDelegate.mm:
- Misc/WebNSFileManagerExtras.mm:
- Misc/WebNSPasteboardExtras.mm:
- Misc/WebNSURLExtras.mm:
- Plugins/Hosted/HostedNetscapePluginStream.mm:
- Plugins/Hosted/NetscapePluginHostManager.mm:
- Plugins/Hosted/NetscapePluginHostProxy.mm:
- Plugins/Hosted/NetscapePluginInstanceProxy.mm:
- Plugins/Hosted/WebHostedNetscapePluginView.h:
- Plugins/Hosted/WebTextInputWindowController.m:
- Plugins/WebBaseNetscapePluginView.mm:
- Plugins/WebNetscapePluginEventHandlerCarbon.mm:
- Plugins/WebNetscapePluginEventHandlerCocoa.mm:
- Plugins/WebNetscapePluginStream.mm:
- Plugins/WebNetscapePluginView.mm:
- Plugins/WebPluginDatabase.mm:
- WebCoreSupport/PopupMenuMac.mm:
- WebCoreSupport/WebChromeClient.mm:
- WebCoreSupport/WebFrameLoaderClient.mm:
- WebCoreSupport/WebInspectorClient.mm:
- WebCoreSupport/WebPlatformStrategies.mm:
- WebCoreSupport/WebSystemInterface.mm:
- WebView/WebDynamicScrollBarsView.mm:
- WebView/WebFrame.mm:
- WebView/WebFrameView.mm:
- WebView/WebFullScreenController.mm:
- WebView/WebHTMLView.mm:
- WebView/WebPreferences.mm:
- WebView/WebView.mm:
Tools:
- DumpRenderTree/mac/DumpRenderTree.mm:
- 8:57 PM Changeset in webkit [222895] by
-
- 19 edits4 adds in trunk
[JSC] Introduce import.meta
https://bugs.webkit.org/show_bug.cgi?id=177703
Reviewed by Filip Pizlo.
JSTests:
- modules/import-meta-syntax.js: Added.
(shouldThrow):
(shouldNotThrow):
- modules/import-meta.js: Added.
- modules/import-meta/cocoa.js: Added.
- modules/resources/assert.js:
(export.shouldNotThrow):
- stress/import-syntax.js:
Source/JavaScriptCore:
This patch adds stage 3
import.meta[1].
We add a new hook function moduleLoaderCreateImportMetaProperties, which creates
import meta properties object to this module. And we set this object as @meta
private variable in module environments. So module code can access this by accessing
@meta private variable.
[1]: https://github.com/tc39/proposal-import-meta
- builtins/BuiltinNames.h:
- builtins/ModuleLoaderPrototype.js:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
- jsc.cpp:
(GlobalObject::moduleLoaderCreateImportMetaProperties):
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseModuleSourceElements):
(JSC::Parser<LexerType>::parseMemberExpression):
- runtime/JSGlobalObject.cpp:
- runtime/JSGlobalObject.h:
- runtime/JSModuleLoader.cpp:
(JSC::JSModuleLoader::createImportMetaProperties):
- runtime/JSModuleLoader.h:
- runtime/JSModuleRecord.cpp:
(JSC::JSModuleRecord::link):
(JSC::JSModuleRecord::instantiateDeclarations):
- runtime/JSModuleRecord.h:
- runtime/ModuleLoaderPrototype.cpp:
(JSC::moduleLoaderPrototypeModuleDeclarationInstantiation):
Source/WebCore:
- bindings/js/JSDOMWindowBase.cpp:
- bindings/js/JSWorkerGlobalScopeBase.cpp:
- 8:54 PM Changeset in webkit [222894] by
-
- 10 edits1 copy1 add in trunk/Source/WebKit
rtc::PacketOptions should have its own IPC encoding/decoding routines
https://bugs.webkit.org/show_bug.cgi?id=177812
Patch by Youenn Fablet <youenn@apple.com> on 2017-10-04
Reviewed by Alex Christensen.
Replacing rtc::PacketOptions IPC encoding/decoding from passing the structure as individual parameters to the structure as a parameter.
Introducing WebKit::RTCPacketOptions as a wrapper around it for which encode/decode routines are added.
Updating code using rtc::PacketOptions accordingly.
- NetworkProcess/webrtc/NetworkRTCSocket.cpp:
(WebKit::NetworkRTCSocket::sendTo):
- NetworkProcess/webrtc/NetworkRTCSocket.h:
- NetworkProcess/webrtc/NetworkRTCSocket.messages.in:
- Platform/IPC/Decoder.cpp:
(IPC::Decoder::operator>>):
(IPC::Decoder::decode):
- Platform/IPC/Decoder.h:
- Platform/IPC/Encoder.cpp:
(IPC::Encoder::encode):
- Platform/IPC/Encoder.h:
- Shared/RTCPacketOptions.cpp: Added.
(WebKit::RTCPacketOptions::encode const):
(WebKit::RTCPacketOptions::decode):
- Shared/RTCPacketOptions.h: Added.
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/webrtc/LibWebRTCSocket.cpp:
(WebKit::LibWebRTCSocket::SendTo):
- 8:05 PM Changeset in webkit [222893] by
-
- 8 edits in trunk/Source
bmalloc mutex should be adaptive
https://bugs.webkit.org/show_bug.cgi?id=177839
Reviewed by Michael Saboff.
Source/bmalloc:
This pulls the WordLock algorithm into bmalloc, mostly by copy-pasting the code. We need to
copy paste because sometimes we build WTF without bmalloc, so WTF cannot rely on bmalloc for
anything other than malloc.
- bmalloc/Algorithm.h:
(bmalloc::compareExchangeWeak):
(bmalloc::compareExchangeStrong):
- bmalloc/PerThread.h:
- bmalloc/StaticMutex.cpp:
(bmalloc::StaticMutex::lockSlow):
(bmalloc::StaticMutex::unlockSlow):
(bmalloc::StaticMutex::lockSlowCase): Deleted.
- bmalloc/StaticMutex.h:
(bmalloc::StaticMutex::try_lock):
(bmalloc::StaticMutex::isLocked const):
(bmalloc::StaticMutex::init):
(bmalloc::StaticMutex::tryLock):
(bmalloc::StaticMutex::lock):
(bmalloc::StaticMutex::unlock):
(bmalloc::sleep): Deleted.
(bmalloc::waitUntilFalse): Deleted.
Source/WTF:
Add some comments that I thought of while copy-pasting this code.
- wtf/LockAlgorithmInlines.h:
- wtf/WordLock.cpp:
- 7:57 PM Changeset in webkit [222892] by
-
- 2 edits in trunk/Source/WebCore
Link WebCore against CFNetwork in the CMake build
https://bugs.webkit.org/show_bug.cgi?id=177910
Reviewed by Ryosuke Niwa.
- PlatformMac.cmake:
This is enough to get WebKit1 MiniBrowser running; otherwise, we
crash trying to access the public suffix list.
- 7:47 PM Changeset in webkit [222891] by
-
- 8 edits2 adds in trunk
Make pertinent AccessCases watch the poly proto watchpoint
https://bugs.webkit.org/show_bug.cgi?id=177765
Reviewed by Keith Miller.
JSTests:
- microbenchmarks/poly-proto-and-non-poly-proto-same-ic.js: Added.
(assert):
(foo.C):
(foo):
(validate):
- stress/poly-proto-clear-stub.js: Added.
(assert):
(foo.C):
(foo):
Source/JavaScriptCore:
This patch makes it so that stubs that encounter a structure with a
valid poly proto watchpoint will watch the poly proto watchpoint. This
ensures that if the watchpoint is fired, the stub will be cleared
and have a chance to regenerate. In an ideal world, this will lead
to the stub generating better code since it may never encounter the
non-poly proto structure again.
This patch also fixes a bug in the original poly proto code where
I accidentally had a condition inverted. The bad code caused a
stub that continually cached two structures which are structurally
equivalent but with different prototype objects to always clear itself.
The code should have been written differently. It should have only
cleared if the poly proto watchpoint *was not* fired. The code
accidentally cleared only if stub *was* fired.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::commit):
- bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::addCases):
(WTF::printInternal):
- bytecode/PolymorphicAccess.h:
(JSC::AccessGenerationResult::shouldResetStubAndFireWatchpoints const):
(JSC::AccessGenerationResult::addWatchpointToFire):
(JSC::AccessGenerationResult::fireWatchpoints):
(JSC::AccessGenerationResult::shouldResetStub const): Deleted.
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::reset):
- bytecode/Watchpoint.h:
(JSC::InlineWatchpointSet::inflate):
- jit/Repatch.cpp:
(JSC::fireWatchpointsAndClearStubIfNeeded):
(JSC::tryCacheGetByID):
(JSC::repatchGetByID):
(JSC::tryCachePutByID):
(JSC::repatchPutByID):
(JSC::tryCacheIn):
(JSC::repatchIn):
(JSC::tryRepatchIn): Deleted.
- 5:02 PM Changeset in webkit [222890] by
-
- 6 edits2 adds in trunk/Tools
Break out new touch debugging code into seperate file
https://bugs.webkit.org/show_bug.cgi?id=177796
Reviewed by Simon Fraser.
Encapsulate the new debug touch code into it's own file.
This allows for cleaner code and a better way to show the touches
in a completely separate window, which should also be in screen
coordinates, and not subject to any transforms that get put on the
WebViews.
- TestRunnerShared/spi/UIKitTestSPI.h:
- WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
- WebKitTestRunner/ios/HIDDebugTouchWindow.h: Added.
- WebKitTestRunner/ios/HIDDebugTouchWindow.mm: Added.
(+[HIDDebugTouchWindow sharedHIDDebugTouchWindow]):
(-[HIDDebugTouchWindow init]):
(-[HIDDebugTouchWindow dealloc]):
(-[HIDDebugTouchWindow updateDebugIndicatorForTouch:withPointInWindowCoordinates:isTouching:]):
(-[HIDDebugTouchWindow initDebugViewsIfNeeded]):
- WebKitTestRunner/ios/HIDEventGenerator.h:
- WebKitTestRunner/ios/HIDEventGenerator.mm:
(-[HIDEventGenerator init]):
(-[HIDEventGenerator _createIOHIDEventWithInfo:]):
(-[HIDEventGenerator _createIOHIDEventType:]):
(-[HIDEventGenerator _updateTouchPoints:count:]):
(-[HIDEventGenerator touchDownAtPoints:touchCount:]):
(-[HIDEventGenerator touchDown:touchCount:]):
(-[HIDEventGenerator liftUpAtPoints:touchCount:]):
(-[HIDEventGenerator liftUp:touchCount:]):
(-[HIDEventGenerator moveToPoints:touchCount:duration:]):
(-[HIDEventGenerator initDebugViewsIfNeeded]): Deleted.
(-[HIDEventGenerator updateDebugIndicatorForTouch:withPoint:isTouching:]): Deleted.
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::updatePlatformSpecificTestOptionsForTest const):
- 4:58 PM Changeset in webkit [222889] by
-
- 3 edits in trunk/Source/WebCore
Have TextDecorationPainter hold an OptionSet of decorations
https://bugs.webkit.org/show_bug.cgi?id=177889
Reviewed by Simon Fraser.
Currently TextDecorationPainter implicitly maintains the set of one or more TextDecoration
flags in a instance variable bitmask of type TextDecoration. Instead we should represent
this set explicitly as an OptionSet to improve readability of the code.
For now we have the TextDecorationPainter constructor and TextDecorationPainter::stylesForRenderer()
to take the set of decorations as an unsigned value to avoid the need to update callers.
We will look to apply a similar change throughout the code in <https://bugs.webkit.org/show_bug.cgi?id=176844>.
No functionality changed. So, no new tests.
- rendering/TextDecorationPainter.cpp:
(WebCore::TextDecorationPainter::TextDecorationPainter): For now, changed data type for passed
decorations from TextDecoration to unsigned to convey that it is a bitmask.
(WebCore::TextDecorationPainter::paintTextDecoration): Renamed linesAreOpaque to areLinesOpaque
while I am here. Fixed some minor style issues.
(WebCore::collectStylesForRenderer): Modified to take the remaining decorations as an OptionSet,
and removed an unnecessary copy of these decorations by taking advantage of the fact that they
are passed by value.
(WebCore::TextDecorationPainter::stylesForRenderer): Convert the passed decorations to an OptionSet as needed to
pass to collectStylesForRenderer().
- rendering/TextDecorationPainter.h: Change m_decoration from TextDecoration to OptionSet<TextDecoration>
and rename it to m_decorations to reflect that it is used as a set of one or more TextDecoration flags.
Also remove unnecessary initializer for m_isPrinting while I am here and group it with the other boolean,
m_isHorizontal. There is exactly one constructor for this class and it initializes m_isPrinting.
- 4:51 PM Changeset in webkit [222888] by
-
- 15 edits in trunk
Web Inspector: Improve CanvasManager recording events
https://bugs.webkit.org/show_bug.cgi?id=177762
Reviewed by Devin Rousso.
Source/JavaScriptCore:
- inspector/protocol/Canvas.json:
Renamed events for clarity and consistency; made recording data optional.
Source/WebCore:
Dispatch Canvas.recordingFinished regardless of whether any actions were
recorded. Without this extra guarantee, the frontend has to keep track
of additional state to determine whether a recording is in progress.
- inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::startRecording):
(WebCore::InspectorCanvasAgent::stopRecording):
(WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame):
(WebCore::InspectorCanvasAgent::requestRecording): Deleted.
(WebCore::InspectorCanvasAgent::cancelRecording): Deleted.
- inspector/InspectorCanvasAgent.h:
Source/WebInspectorUI:
- UserInterface/Controllers/CanvasManager.js:
(WI.CanvasManager.prototype.startRecording):
(WI.CanvasManager.prototype.stopRecording):
(WI.CanvasManager.prototype.recordingFinished):
Replace the RecordingFinished event with a pair of events. RecordingStarted
is sent when CanvasAgent.startRecording succeeds. RecordingStopped is
sent when a recordingFinished event is received from the backend, or
when a call to CanvasAgent.stopRecording fails.
- UserInterface/Views/CanvasContentView.js:
(WI.CanvasContentView.prototype.initialLayout):
(WI.CanvasContentView.prototype._toggleRecording):
(WI.CanvasContentView.prototype._recordingStarted):
(WI.CanvasContentView.prototype._recordingFinished): Deleted.
Update recording status when CanvasManager fires recording events,
instead of immediately after clicking the record button.
LayoutTests:
Update tests for renamed CanvasManager event.
- inspector/canvas/recording-2d.html:
- inspector/canvas/recording-expected.txt:
- inspector/canvas/recording-webgl-snapshots.html:
- inspector/canvas/recording-webgl.html:
- inspector/canvas/recording.html:
- inspector/canvas/resources/recording-utilities.js:
(TestPage.registerInitializer):
- 4:43 PM Changeset in webkit [222887] by
-
- 7 edits4 adds in trunk
AX: Make video objects accessible on iOS
https://bugs.webkit.org/show_bug.cgi?id=177788
<rdar://problem/34778028>
Reviewed by Chris Fleizach.
Source/WebCore:
Exposed certain <video> elements on iOS:
- If they have no controls attribute set and have playsinline attribute set, that means normally there are custom controls provided.
- Without autoplay attribute set. From iOS 10, with the motivation to improve performace by replacing GIF with <video>, elements will now honor the autoplay attribute if they have no audio. So normally those <video> elements are not interactive.
Also provided functions to let iOS users interact with the video elements:
- Play/Pause: accessibilityActivate
- Fast forward: accessibilityIncrement
- Rewind: accessibilityDecrement
Test: accessibility/ios-simulator/video-elements-ios.html
- WebCore.xcodeproj/project.pbxproj:
- accessibility/AXObjectCache.cpp:
(WebCore::createFromRenderer):
- accessibility/AccessibilityMediaObject.cpp: Added.
(WebCore::AccessibilityMediaObject::AccessibilityMediaObject):
(WebCore::AccessibilityMediaObject::~AccessibilityMediaObject):
(WebCore::AccessibilityMediaObject::create):
(WebCore::AccessibilityMediaObject::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityMediaObject::mediaElement const):
(WebCore::AccessibilityMediaObject::stringValue const):
(WebCore::AccessibilityMediaObject::interactiveVideoDuration const):
(WebCore::AccessibilityMediaObject::mediaSeek):
(WebCore::AccessibilityMediaObject::toggleMute):
(WebCore::AccessibilityMediaObject::increment):
(WebCore::AccessibilityMediaObject::decrement):
(WebCore::AccessibilityMediaObject::press):
(WebCore::AccessibilityMediaObject::hasControlsAttributeSet const):
(WebCore::AccessibilityMediaObject::isPlaying const):
(WebCore::AccessibilityMediaObject::isMuted const):
(WebCore::AccessibilityMediaObject::isAutoplayEnabled const):
(WebCore::AccessibilityMediaObject::isPlayingInline const):
(WebCore::AccessibilityMediaObject::enterFullscreen const):
- accessibility/AccessibilityMediaObject.h: Added.
- accessibility/AccessibilityObject.cpp:
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isMediaObject const):
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityIsWebInteractiveVideo]):
(-[WebAccessibilityObjectWrapper interactiveVideoDescription]):
(-[WebAccessibilityObjectWrapper accessibilityIsMediaPlaying]):
(-[WebAccessibilityObjectWrapper accessibilityIsMediaMuted]):
(-[WebAccessibilityObjectWrapper accessibilityToggleMuteForMedia]):
(-[WebAccessibilityObjectWrapper accessibilityVideoEnterFullscreen]):
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
(-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]):
(-[WebAccessibilityObjectWrapper accessibilityLabel]):
LayoutTests:
- accessibility/ios-simulator/video-elements-ios-expected.txt: Added.
- accessibility/ios-simulator/video-elements-ios.html: Added.
- 4:27 PM Changeset in webkit [222886] by
-
- 2 edits in trunk/Source/WebKit
Include Pasteboard.h for all in WebCoreArgumentCoders
https://bugs.webkit.org/show_bug.cgi?id=177902
Reviewed by Alex Christensen.
- Shared/WebCoreArgumentCoders.cpp:
- 3:28 PM Changeset in webkit [222885] by
-
- 10 edits6 adds in trunk
Add basic support for the version of DataTransferItemList.add that takes a File
https://bugs.webkit.org/show_bug.cgi?id=177853
<rdar://problem/34807346>
Reviewed by Ryosuke Niwa.
Source/WebCore:
Adds very basic support for DataTransferItemList.add(File). So far, a File added in this way can only be read
back from the same DataTransfer, during dragstart or copy. This File isn't written to the platform pasteboard
yet, so even dropping or pasting in the same page will not transfer the File, but this brings us closer to
parity with other browsers. See per-method comments for details.
Tests: editing/pasteboard/data-transfer-item-list-add-file-multiple-times.html
editing/pasteboard/data-transfer-item-list-add-file-on-copy.html
editing/pasteboard/data-transfer-item-list-add-file-on-drag.html
- dom/DataTransfer.cpp:
(WebCore::DataTransfer::updateFileList):
Recompute the DataTransfer's FileList. This behaves the same way as destroying the FileList altogether and
building it from scratch, but we avoid that approach because the FileList object needs to maintain the same DOM
wrapper after a File-backed item is removed.
(WebCore::DataTransfer::itemListDidAddFile):
Add the newly appended DataTransferItem's File to the DataTransfer's FileList.
(WebCore::DataTransfer::types const):
Return only the "Files" type if there are file-backed items in the DataTransfer's item list.
(WebCore::DataTransfer::updatedFilesForFileList const):
(WebCore::DataTransfer::files const):
- dom/DataTransfer.h:
- dom/DataTransferItem.h:
(WebCore::DataTransferItem::file const):
- dom/DataTransferItemList.cpp:
(WebCore::DataTransferItemList::add):
(WebCore::DataTransferItemList::remove):
(WebCore::DataTransferItemList::clear):
When removing a File, only clear from the DataTransfer's pasteboard if the removed item is not a File (otherwise,
clearing a File that shares the same type as some other item in the pasteboard will erroneously clear that other
item as well). Additionally, call out to the DataTransfer to update the FileList.
- dom/DataTransferItemList.h:
(WebCore::DataTransferItemList::hasItems const):
(WebCore::DataTransferItemList::items const):
Add helpers for directly accessing an item list's items. items() should be used in conjunction with hasItems().
This route is taken to (1) avoid having to copy the vector of Files, and (2) to avoid generating m_items if it
doesn't already exist.
LayoutTests:
Add tests to verify that Files can be added to and removed from the DataTransferItemList, and also read back via
both the item list and the DataTransfer's FileList when copying and dragging. Additionally, adds a test that adds
and removes the same File to the DataTransferItemList multiple times.
- TestExpectations:
- editing/pasteboard/data-transfer-item-list-add-file-multiple-times-expected.txt: Added.
- editing/pasteboard/data-transfer-item-list-add-file-multiple-times.html: Added.
- editing/pasteboard/data-transfer-item-list-add-file-on-copy-expected.txt: Added.
- editing/pasteboard/data-transfer-item-list-add-file-on-copy.html: Added.
- editing/pasteboard/data-transfer-item-list-add-file-on-drag-expected.txt: Added.
- editing/pasteboard/data-transfer-item-list-add-file-on-drag.html: Added.
- platform/ios-simulator-wk1/TestExpectations:
- platform/mac-wk1/TestExpectations:
- 3:13 PM Changeset in webkit [222884] by
-
- 1 copy in tags/Safari-605.1.9
Tag Safari-605.1.9.
- 3:07 PM Changeset in webkit [222883] by
-
- 6 edits in branches/safari-604-branch
Revert r222779. rdar://problem/34706688
- 3:07 PM Changeset in webkit [222882] by
-
- 2 edits in branches/safari-604-branch/Source/WebCore
Revert r222786. rdar://problem/34706688
- 2:29 PM Changeset in webkit [222881] by
-
- 2 edits in trunk/Source/WebCore
RenderMultiColumnFlow populate/evacuate should not disable layout state.
https://bugs.webkit.org/show_bug.cgi?id=177894
<rdar://problem/34818696>
Reviewed by Antti Koivisto.
Populate/evacuate methods are not called at layout time.
Covered by existing tests.
- rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::populate):
(WebCore::RenderMultiColumnFlow::evacuateAndDestroy):
- 2:15 PM Changeset in webkit [222880] by
-
- 3 edits in trunk/Source/WebKit
Remove unused variables in lambdas for network process cache
<https://webkit.org/b/177878>
<rdar://problem/34038482>
Reviewed by Tim Horton.
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::open):
(WebKit::CacheStorage::Engine::putRecords):
(WebKit::CacheStorage::Engine::deleteMatchingRecords):
- NetworkProcess/cache/CacheStorageEngineConnection.cpp:
(WebKit::CacheStorageEngineConnection::reference):
- Remove unused |this| from lambda captures.
- 1:55 PM Changeset in webkit [222879] by
-
- 9 copies1 add in releases/Apple/Safari Technology Preview 41
Added a tag for Safari Technology Preview release 41.
- 1:54 PM Changeset in webkit [222878] by
-
- 10 edits in trunk
WTF: Update std::expected to match current proposal
https://bugs.webkit.org/show_bug.cgi?id=177881
Reviewed by Mark Lam.
Source/JavaScriptCore:
Update API.
- wasm/WasmB3IRGenerator.cpp:
- wasm/WasmModule.cpp:
(JSC::Wasm::makeValidationResult):
- wasm/WasmParser.h:
- wasm/WasmValidate.cpp:
- wasm/generateWasmValidateInlinesHeader.py:
(loadMacro):
(storeMacro):
Source/WTF:
The proposal is likely to be in C++20 and I've been asked to help co-champion
it. I'm therefore updating our implementation to more closely match the current
proposal, and to make sure it'll work for us if standardized.
- Rename UnexpectedType to Unexpected to match the proposal.
- Remove relational operators, only equality / inequality remains.
- Fix minor type signatures.
- Add UnexpectedType typedef.
- Uncomment rebind implementation.
- Add in-place construction tag, as well as explicit error construction tag.
- Add template unexpected constructor.
- Note that make_unexpected isn't in the proposal anymore, but we keep it because we don't have C++17 deduction guides.
- Remove hashing, which isn't in the proposal anymore.
- wtf/Expected.h:
(WTF::Unexpected::Unexpected):
(WTF::Unexpected::value const):
(WTF::operator==):
(WTF::operator!=):
(WTF::makeUnexpected):
(WTF::Expected::Expected):
(WTF::Expected::operator=):
(WTF::Expected::getUnexpected const):
Tools:
The proposal is likely to be in C++20 and I've been asked to help co-champion
it. I'm therefore updating our implementation to more closely match the current
proposal, and to make sure it'll work for us if standardized.
- Rename UnexpectedType to Unexpected to match the proposal.
- Remove relational operators, only equality / inequality remains.
- Fix minor type signatures.
- Add UnexpectedType typedef.
- Uncomment rebind implementation.
- Add in-place construction tag, as well as explicit error construction tag.
- Add template unexpected constructor.
- Note that make_unexpected isn't in the proposal anymore, but we keep it because we don't have C++17 deduction guides.
- Remove hashing, which isn't in the proposal anymore.
- TestWebKitAPI/Tests/WTF/Expected.cpp:
(WTF::operator<<):
(TestWebKitAPI::TEST):
- 1:51 PM Changeset in webkit [222877] by
-
- 2 edits in trunk/JSTests
Remove failure expectation for async-func-decl-dstr-obj-id-put-unresolvable-no-strict.js.
Unreviewed test gardening.
- test262.yaml:
- 1:46 PM Changeset in webkit [222876] by
-
- 2 edits in trunk/Source/WebKit
[WinCairo] add PLATFORM(WIN) configurations to config.h
https://bugs.webkit.org/show_bug.cgi?id=177846
Patch by Stephan Szabo <stephan.szabo@sony.com> on 2017-10-04
Reviewed by Alex Christensen.
- config.h:
- 1:27 PM Changeset in webkit [222875] by
-
- 1 edit2 adds in trunk/Tools
https://bugs.webkit.org/show_bug.cgi?id=177888
WebKitArchiveSupport - add API Gateway to source control
This is a swagger configuration export via AWS API Gateway console.
Rubber-stamped by Alexey Proskuryakov.
- WebKitArchiveSupport/AWS-APIGateway: Added.
- WebKitArchiveSupport/AWS-APIGateway/stage-v2.json: Added.
- 1:23 PM Changeset in webkit [222874] by
-
- 3 edits in trunk/Source/WebCore
RenderMultiColumnFlow::m_beingEvacuated is redundant.
https://bugs.webkit.org/show_bug.cgi?id=177886
<rdar://problem/34815997>
Reviewed by Simon Fraser.
m_beingEvacuated was introduced to protect RenderMultiColumnFlow from triggering
remove/insert code while the column is being destroyed and the descendants are getting reparented.
However,
- the setMultiColumnFlow(nullptr) call already protects from triggering the remove callback
- When adding the children back to their original position, we should not be able to find
this column as the enclosing block anymore (simply because we are moving the children as siblings
to the multicol renderer)
Covered by existing tests.
- rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::RenderMultiColumnFlow):
(WebCore::RenderMultiColumnFlow::evacuateAndDestroy):
(WebCore::RenderMultiColumnFlow::fragmentedFlowDescendantInserted):
(WebCore::RenderMultiColumnFlow::fragmentedFlowRelativeWillBeRemoved):
- rendering/RenderMultiColumnFlow.h:
- 1:20 PM Changeset in webkit [222873] by
-
- 7 edits in trunk/Source/JavaScriptCore
WebAssembly: address no VM / JS follow-ups
https://bugs.webkit.org/show_bug.cgi?id=177887
Reviewed by Saam Barati.
All minor fixes, no functional changes.
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::addCurrentMemory):
(JSC::Wasm::B3IRGenerator::addCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):
- wasm/WasmContext.cpp:
(JSC::Wasm::Context::store):
- wasm/WasmMemoryMode.h:
- wasm/WasmTable.h:
- wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::JSWebAssemblyInstance):
- wasm/js/JSWebAssemblyTable.cpp:
(JSC::JSWebAssemblyTable::JSWebAssemblyTable):
(JSC::JSWebAssemblyTable::grow):
- 1:12 PM Changeset in webkit [222872] by
-
- 2 edits in trunk/LayoutTests
Mark http/wpt/cache-storage/cache-quota.any.html as flaky on Windows.
https://bugs.webkit.org/show_bug.cgi?id=177891
Unreviewed test gardening.
- platform/win/TestExpectations:
- 1:00 PM Changeset in webkit [222871] by
-
- 28 edits1 add in trunk
Add support for using Probe DFG OSR Exit behind a runtime flag.
https://bugs.webkit.org/show_bug.cgi?id=177844
<rdar://problem/34801425>
Reviewed by Saam Barati.
Source/JavaScriptCore:
This is based on the code originally posted in https://bugs.webkit.org/show_bug.cgi?id=175144
(in r221774 and r221832) with some optimizations and bug fixes added. The probe
based DFG OSR Exit is only enabled if Options::useProbeOSRExit() is true. We're
landing this behind an option switch to make it easier to tune performance using
the probe based OSR exit.
- JavaScriptCore.xcodeproj/project.pbxproj:
- assembler/MacroAssembler.cpp:
(JSC::stdFunctionCallback):
- assembler/MacroAssemblerPrinter.cpp:
(JSC::Printer::printCallback):
- assembler/ProbeContext.cpp:
(JSC::Probe::executeProbe):
(JSC::Probe::flushDirtyStackPages):
- assembler/ProbeContext.h:
(JSC::Probe::Context::Context):
(JSC::Probe::Context::arg):
- assembler/ProbeFrame.h: Added.
(JSC::Probe::Frame::Frame):
(JSC::Probe::Frame::argument):
(JSC::Probe::Frame::operand):
(JSC::Probe::Frame::setArgument):
(JSC::Probe::Frame::setOperand):
(JSC::Probe::Frame::get):
(JSC::Probe::Frame::set):
- assembler/ProbeStack.cpp:
(JSC::Probe::Page::lowWatermarkFromVisitingDirtyChunks):
(JSC::Probe::Stack::Stack):
(JSC::Probe::Stack::lowWatermarkFromVisitingDirtyPages):
- assembler/ProbeStack.h:
(JSC::Probe::Stack::Stack):
(JSC::Probe::Stack::lowWatermark):
(JSC::Probe::Stack::set):
(JSC::Probe::Stack::savedStackPointer const):
(JSC::Probe::Stack::setSavedStackPointer):
(JSC::Probe::Stack::newStackPointer const): Deleted.
(JSC::Probe::Stack::setNewStackPointer): Deleted.
- bytecode/ArrayProfile.h:
(JSC::ArrayProfile::observeArrayMode):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::updateOSRExitCounterAndCheckIfNeedToReoptimize):
- bytecode/CodeBlock.h:
(JSC::CodeBlock::addressOfOSRExitCounter): Deleted.
- bytecode/ExecutionCounter.h:
(JSC::ExecutionCounter::hasCrossedThreshold const):
(JSC::ExecutionCounter::setNewThresholdForOSRExit):
- bytecode/MethodOfGettingAValueProfile.cpp:
(JSC::MethodOfGettingAValueProfile::reportValue):
- bytecode/MethodOfGettingAValueProfile.h:
- dfg/DFGDriver.cpp:
(JSC::DFG::compileImpl):
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::linkOSRExits):
(JSC::DFG::JITCompiler::link):
- dfg/DFGOSRExit.cpp:
(JSC::DFG::jsValueFor):
(JSC::DFG::restoreCalleeSavesFor):
(JSC::DFG::saveCalleeSavesFor):
(JSC::DFG::restoreCalleeSavesFromVMEntryFrameCalleeSavesBuffer):
(JSC::DFG::copyCalleeSavesToVMEntryFrameCalleeSavesBuffer):
(JSC::DFG::saveOrCopyCalleeSavesFor):
(JSC::DFG::createDirectArgumentsDuringExit):
(JSC::DFG::createClonedArgumentsDuringExit):
(JSC::DFG::emitRestoreArguments):
(JSC::DFG::OSRExit::executeOSRExit):
(JSC::DFG::reifyInlinedCallFrames):
(JSC::DFG::adjustAndJumpToTarget):
(JSC::DFG::printOSRExit):
- dfg/DFGOSRExit.h:
(JSC::DFG::OSRExitState::OSRExitState):
- dfg/DFGThunks.cpp:
(JSC::DFG::osrExitThunkGenerator):
- dfg/DFGThunks.h:
- dfg/DFGVariableEventStream.cpp:
(JSC::DFG::tryToSetConstantRecovery):
(JSC::DFG::VariableEventStream::reconstruct const):
(JSC::DFG::VariableEventStream::tryToSetConstantRecovery const): Deleted.
- dfg/DFGVariableEventStream.h:
- profiler/ProfilerOSRExit.h:
(JSC::Profiler::OSRExit::incCount):
- runtime/JSCJSValue.h:
- runtime/JSCJSValueInlines.h:
- runtime/Options.h:
Tools:
Enable --useProbeOSrExit=true for dfg-eager and ftl-no-cjit-validate-sampling-profiler
test configurations.
- Scripts/run-jsc-stress-tests:
- 12:47 PM Changeset in webkit [222870] by
-
- 6 edits in trunk
Unreviewed, rolling out r222840.
This change breaks internal builds.
Reverted changeset:
"Generate a compile error if release is built without compiler
optimizations"
https://bugs.webkit.org/show_bug.cgi?id=177665
http://trac.webkit.org/changeset/222840
- 12:31 PM Changeset in webkit [222869] by
-
- 13 edits3 deletes in trunk
Unreviewed, rolling out r222775.
https://bugs.webkit.org/show_bug.cgi?id=177890
Significantly increased the WebKit build time (Requested by
rniwa on #webkit).
Reverted changeset:
"Build libwebrtc unit tests executables"
https://bugs.webkit.org/show_bug.cgi?id=177211
http://trac.webkit.org/changeset/222775
- 12:17 PM Changeset in webkit [222868] by
-
- 19 edits1 copy1 add in trunk/Source/WebInspectorUI
Web Inspector: Detail Views for resources in Network Tab
https://bugs.webkit.org/show_bug.cgi?id=177553
Reviewed by Devin Rousso.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Main.html:
New strings and resources.
- UserInterface/Base/Main.js:
(WI._focusedContentBrowser):
Detect nested content browsers instead of only top level tab content browsers.
- UserInterface/Base/Setting.js:
Add a new global setting for which Network Detail view is preferred.
- UserInterface/Views/ContentBrowser.css:
(.content-browser > .navigation-bar .item):
(.content-browser > .navigation-bar > .item): Deleted.
Generalize a navigation item style so it works on items nested inside a group.
- UserInterface/Views/ContentBrowser.js:
(WI.ContentBrowser.prototype._updateContentViewSelectionPathNavigationItem):
(WI.ContentBrowser.prototype._updateContentViewNavigationItems):
(WI.ContentBrowser.prototype._removeAllNavigationItems):
Give ContentBrowser a way to group all ContentView specific navigation items
inside a GroupNavigationItem. This lets the client decide what to do with
those navigation items, instead of default behavior in the navigation bar.
- UserInterface/Views/ContentViewContainer.js:
(WI.ContentViewContainer.prototype.showContentView):
Avoid a flash when showContentView is called with the current content view.
- UserInterface/Views/FlexibleSpaceNavigationItem.css:
(:matches(.navigation-bar, .toolbar) .item.flexible-space.align-start > .item):
(:matches(.navigation-bar, .toolbar) .item.flexible-space.align-end > .item):
When containing a navigation item decide where you want the items to align to.
- UserInterface/Views/FlexibleSpaceNavigationItem.js:
(WI.FlexibleSpaceNavigationItem):
(WI.FlexibleSpaceNavigationItem.prototype.updateLayout):
Provide an option to embed a NavigationItem within a FlexibleSpace. Its behavior right
now is rather simple. If the embedded Item fits in the current available space it is
shown. If it doesn't fit, it is hidden and we have just a flexible space. This is used
in the network detail view's navigation bar to keep the main navigation items centered
while allowing for buttons to show up on the side without affecting the centering.
- UserInterface/Views/NavigationBar.js:
(WI.NavigationBar):
(WI.NavigationBar.prototype._mouseDown):
(WI.NavigationBar.prototype._mouseUp):
Simplify event registration. This would also help avoid cases where we
might have registered multiple mousedown handlers.
- UserInterface/Views/GroupNavigationItem.js:
(WI.GroupNavigationItem):
(WI.GroupNavigationItem.prototype.get navigationItems):
(WI.GroupNavigationItem.prototype.set navigationItems):
(WI.GroupNavigationItem.prototype.get width):
(WI.GroupNavigationItem.prototype.get minimumWidth):
(WI.GroupNavigationItem.prototype._updateItems):
- UserInterface/Views/HierarchicalPathNavigationItem.js:
(WI.HierarchicalPathNavigationItem):
(WI.HierarchicalPathNavigationItem.prototype.set components):
(WI.HierarchicalPathNavigationItem.prototype.updateLayout):
(WI.HierarchicalPathNavigationItem.prototype._updateComponentsIfNeeded):
Defer DOM modifications until layout for NavigationItems container classes
that change items/components dynamically. This reduces UI flashing in the
bar when items/components change by coalescing all DOM updates at the same
time; when the NavigationBar does its next layout.
- UserInterface/Views/NetworkResourceDetailView.css:
(.network-resource-detail):
(.network-resource-detail .navigation-bar):
(.network-resource-detail .item.close > .glyph):
(.network-resource-detail .item.close > .glyph:hover):
(.network-resource-detail .item.close > .glyph:active):
(.network .network-resource-detail .navigation-bar .item.radio.button.text-only):
(.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected):
(.network-resource-detail > .content-browser):
Styles for the detail view's navigation bar.
- UserInterface/Views/NetworkResourceDetailView.js: Added.
(WI.NetworkResourceDetailView):
(WI.NetworkResourceDetailView.prototype.get resource):
(WI.NetworkResourceDetailView.prototype.shown):
(WI.NetworkResourceDetailView.prototype.hidden):
(WI.NetworkResourceDetailView.prototype.dispose):
(WI.NetworkResourceDetailView.prototype.initialLayout):
(WI.NetworkResourceDetailView.prototype._showPreferredContentView):
(WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem):
(WI.NetworkResourceDetailView.prototype._navigationItemSelected):
(WI.NetworkResourceDetailView.prototype._handleCloseButton):
ContentBrowser with customized navigation bar. This container has a fixed
list of ContentViews all relating to the Resource. The detail view has
a single delegate method for its close button. Since it maintains a
ContentBrowser it needs to expose shown/hidden/dispose logic to ensure
proper ContentView lifecycle events.
- UserInterface/Views/NetworkTableContentView.css:
(.showing-detail .table .cell:not(.name)):
(.showing-detail .table .resizer:not(:first-of-type)):
- UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype.shown):
(WI.NetworkTableContentView.prototype.hidden):
(WI.NetworkTableContentView.prototype.closed):
(WI.NetworkTableContentView.prototype.reset):
(WI.NetworkTableContentView.prototype.networkResourceDetailViewClose):
(WI.NetworkTableContentView.prototype.tableSortChanged):
(WI.NetworkTableContentView.prototype.tableCellClicked):
(WI.NetworkTableContentView.prototype.tableSelectedRowChanged):
(WI.NetworkTableContentView.prototype.layout):
(WI.NetworkTableContentView.prototype._hideResourceDetailView):
(WI.NetworkTableContentView.prototype._showResourceDetailView):
(WI.NetworkTableContentView.prototype._positionDetailView):
(WI.NetworkTableContentView.prototype._updateFilteredEntries):
(WI.NetworkTableContentView.prototype._typeFilterScopeBarSelectionChanged):
(WI.NetworkTableContentView.prototype._restoreSelectedRow):
(WI.NetworkTableContentView.prototype._tableNameColumnDidChangeWidth):
Behavior for selecting a row and showing / hiding the detail view.
The detail view is positioned beside the Network Table's "name" column
and resizes when that column resizes.
- UserInterface/Views/Resizer.css:
(.resizer):
- UserInterface/Views/Table.css:
(.table > .resizers):
- UserInterface/Views/Table.js:
(WI.Table):
(WI.Table.prototype.get scrollContainer):
(WI.Table.prototype._positionResizerElements):
To let clients customize the table a bit, put resizers into their own
container and expose the scroll container.
- UserInterface/Views/Variables.css:
(:root):
Add a new button hover color, slightly lighter than the existing button active color.
- 11:59 AM Changeset in webkit [222867] by
-
- 2 edits in trunk/Source/WebCore
Fix typo.
Unreviewed.
- rendering/RenderView.cpp:
(WebCore::RenderView::willBeDestroyed):
- 11:56 AM Changeset in webkit [222866] by
-
- 4 edits in trunk/JSTests
3 poly-proto JSC tests timing out on debug after r222827
https://bugs.webkit.org/show_bug.cgi?id=177880
Rubber stamped by Mark Lam.
- microbenchmarks/poly-proto-access.js:
- typeProfiler/deltablue-for-of.js:
- typeProfiler/getter-richards.js:
- 11:55 AM Changeset in webkit [222865] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Fix Beacon and Ping folderization issues
https://bugs.webkit.org/show_bug.cgi?id=177885
Reviewed by Matt Baker.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView.shortDisplayNameForResourceType):
Use common capitalized UIString "Ping". It gets lowercased later.
- UserInterface/Models/ResourceCollection.js:
Add missing verifier.
- 11:55 AM Changeset in webkit [222864] by
-
- 3 edits in trunk/Source/WebCore
Teach TextDecorationPainter about pseudo styles
https://bugs.webkit.org/show_bug.cgi?id=177882
Reviewed by Simon Fraser.
As a step towards implementing support for CSS pseudo elements ::spelling-error and ::grammar-error
(https://bugs.webkit.org/show_bug.cgi?id=175784) teach TextDecorationPainter about pseudo styles.
- rendering/TextDecorationPainter.cpp:
(WebCore::TextDecorationPainter::TextDecorationPainter): Modified to take an optional
pseudo style (defaults to NOPSEUDO - no pseudo style).
(WebCore::collectStylesForRenderer): Modified to take a pseudo style. Note that getCachedPseudoStyle()
is only defined on RenderText and RenderElement objects (i.e. it is not a virtual function on RenderObject).
So, we must explicitly type check the renderer and cast appropriately before calling it. We may want
to consider making it virtual in the future if we find there are more call sites that would benefit
from polymorphism.
(WebCore::TextDecorationPainter::stylesForRenderer): Modified to take an optional
pseudo style (defaults to NOPSEUDO - no pseudo style).
- rendering/TextDecorationPainter.h:
- 11:52 AM Changeset in webkit [222863] by
-
- 3 edits in trunk/Source/WebCore
Add assert verifying all renderers get destroyed
https://bugs.webkit.org/show_bug.cgi?id=177870
Reviewed by Zalan Bujtas.
- rendering/RenderView.cpp:
(WebCore::RenderView::willBeDestroyed):
Add assert to verify all renderers for this tree have been destroyed before the RenderView is.
- rendering/RenderView.h:
- 11:37 AM Changeset in webkit [222862] by
-
- 3 edits in trunk/Source/WebCore
TextDecorationPainter::m_wavyOffset should be a float
https://bugs.webkit.org/show_bug.cgi?id=177883
Reviewed by Simon Fraser.
In r194447 we extracted the text decoration painting code from InlineTextBox into
TextDecorationPainter and changed the data type of the wavy offset from float to int.
We use floating point numbers throughout the painting code and should store the wavy
offset as a float.
- rendering/TextDecorationPainter.cpp:
(WebCore::TextDecorationPainter::TextDecorationPainter): Use C++ uniform initializer
syntax to initialize member fields.
(WebCore::TextDecorationPainter::paintTextDecoration): Change int to float.
- rendering/TextDecorationPainter.h: Remove unnecessary equal initializer for m_wavyOffset
as this class has exactly one constructor and it always initializes it.
- 11:32 AM Changeset in webkit [222861] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Remove unused
representedObjectparameter from GeneralTreeElementPathComponent constructor
https://bugs.webkit.org/show_bug.cgi?id=177561
Reviewed by Joseph Pecoraro.
- UserInterface/Views/GeneralTreeElementPathComponent.js:
(WI.GeneralTreeElementPathComponent):
(WI.GeneralTreeElementPathComponent.prototype.get generalTreeElement):
(WI.GeneralTreeElementPathComponent.prototype.get previousSibling):
(WI.GeneralTreeElementPathComponent.prototype.get nextSibling):
- 11:30 AM Changeset in webkit [222860] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: After enabling the new Network Tab in experimental settings, the network tab disappears
https://bugs.webkit.org/show_bug.cgi?id=177774
<rdar://problem/34771647>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-10-04
Reviewed by Devin Rousso.
- UserInterface/Views/SettingsTabContentView.js:
When enabling the new network tab, ensure it gets added to the list of open tabs.
Place it where the old network tab was so the UI is as consistent as possible.
- 10:57 AM Changeset in webkit [222859] by
-
- 2 edits in trunk/JSTests
Unreviewed, marking tco-catch.js as a failure after test262 update
https://bugs.webkit.org/show_bug.cgi?id=177859
- test262.yaml:
- 10:50 AM Changeset in webkit [222858] by
-
- 17 edits16 deletes in trunk
Remove OpenWebRTC backend
https://bugs.webkit.org/show_bug.cgi?id=177868
Patch by Youenn Fablet <youenn@apple.com> on 2017-10-04
Reviewed by Alejandro G. Castro.
Source/WebCore:
- CMakeLists.txt:
- DerivedSources.make:
- Modules/mediastream/MediaEndpointPeerConnection.cpp: Removed.
- Modules/mediastream/MediaEndpointPeerConnection.h: Removed.
- Modules/mediastream/MediaEndpointSessionDescription.cpp: Removed.
- Modules/mediastream/MediaEndpointSessionDescription.h: Removed.
- Modules/mediastream/SDPProcessor.cpp: Removed.
- Modules/mediastream/SDPProcessor.h: Removed.
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
- WebCore.xcodeproj/project.pbxproj:
- platform/GStreamer.cmake:
- platform/graphics/MediaPlayer.cpp:
(WebCore::buildMediaEnginesVector):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::supportsType):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp: Removed.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.h: Removed.
- platform/mediastream/MediaEndpoint.cpp: Removed.
- platform/mediastream/MediaEndpoint.h: Removed.
- platform/mediastream/MediaEndpointSessionConfiguration.h: Removed.
- platform/mediastream/SDPProcessorScriptResource.cpp: Removed.
- platform/mediastream/SDPProcessorScriptResource.h: Removed.
- platform/mediastream/openwebrtc/MediaEndpointOwr.cpp: Removed.
- platform/mediastream/openwebrtc/MediaEndpointOwr.h: Removed.
- platform/mediastream/openwebrtc/OpenWebRTCUtilities.cpp: Removed.
- platform/mediastream/openwebrtc/OpenWebRTCUtilities.h: Removed.
- platform/mediastream/openwebrtc/RealtimeAudioSourceOwr.h: Removed.
- platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp: Removed.
- platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h: Removed.
- platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.cpp: Removed.
- platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h: Removed.
- platform/mediastream/openwebrtc/RealtimeVideoSourceOwr.h: Removed.
- platform/mock/MockMediaEndpoint.cpp: Removed.
- platform/mock/MockMediaEndpoint.h: Removed.
- platform/mock/MockRealtimeMediaSource.cpp:
(WebCore::MockRealtimeMediaSource::MockRealtimeMediaSource):
- platform/mock/MockRealtimeMediaSource.h:
- testing/Internals.cpp:
(WebCore::Internals::Internals):
(WebCore::Internals::enableMockMediaEndpoint): Deleted.
- testing/Internals.h:
LayoutTests:
- platform/gtk/TestExpectations:
- 10:48 AM Changeset in webkit [222857] by
-
- 5 edits in trunk/Source/WebCore
Remove RenderTreeInternalMutationScope
https://bugs.webkit.org/show_bug.cgi?id=177875
<rdar://problem/34813088>
Reviewed by Antti Koivisto.
RenderTree mutation is in the past now. -and we've got assertions in place.
Not testable.
- page/FrameView.cpp:
(WebCore::FrameView::layout):
- rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::populate):
(WebCore::RenderMultiColumnFlow::evacuateAndDestroy):
- rendering/RenderQuote.cpp:
(WebCore::RenderQuote::updateTextRenderer):
(WebCore::RenderQuote::updateRenderer):
- rendering/RenderView.h:
(WebCore::RenderTreeInternalMutationScope::RenderTreeInternalMutationScope): Deleted.
(WebCore::RenderTreeInternalMutationScope::~RenderTreeInternalMutationScope): Deleted.
- 10:34 AM Changeset in webkit [222856] by
-
- 2 edits in trunk/Tools
webkitpy.tool.steps.steps_unittest.StepsTest.test_runtests_api is flakey
https://bugs.webkit.org/show_bug.cgi?id=177751
<rdar://problem/34769470>
Reviewed by Daniel Bates.
Port._build_path() calls Tools/Scripts/webkit-build-directory and caches this
result. When capturing output from the MockExecutive, the first invocation of
Port._build_path() will log the running of Tools/Scripts/webkit-build-directory
but subsequent invocations will not.
- Scripts/webkitpy/tool/steps/steps_unittest.py:
(StepsTest):
(StepsTest.setUp): Cache the build path before running tests.
- 10:33 AM Changeset in webkit [222855] by
-
- 5 edits in trunk/Source/WebKit
[GTK] WebKit2GTK+ does not handle touchmove and touchend events correctly
https://bugs.webkit.org/show_bug.cgi?id=158531
Reviewed by Carlos Alberto Lopez Perez.
Do not bypass WebCore event handling when receiving touch events.
Based on a patch by Andre Moreira Magalhaes <Andre Moreira Magalhaes>.
Thanks to Carlos Garnacho <carlosg@gnome.org> for helping out reviewing the code.
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::doneWithTouchEvent): Make sure touchend reaches gesture controller if touchbegin evet got to it.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseTouchEvent): Do not invoke gesture controller directly by bypassing WebCore event handling.
- UIProcess/gtk/GestureController.cpp:
(WebKit::GestureController::reset): Added.
(WebKit::GestureController::handleEvent): Reset gesture controller when touchpadupdate/end is received without touchbegin.
(WebKit::GestureController::Gesture::reset): Added.
- UIProcess/gtk/GestureController.h:
- 10:14 AM Changeset in webkit [222854] by
-
- 2 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Remove tests from expectations passing since freetype upgrade in r221670.
- platform/gtk/TestExpectations:
- 10:04 AM Changeset in webkit [222853] by
-
- 2 edits in trunk/JSTests
Unreviewed, marking one async iterator test262 test failed
https://bugs.webkit.org/show_bug.cgi?id=177859
- test262.yaml:
- 9:56 AM Changeset in webkit [222852] by
-
- 3 edits in trunk/LayoutTests
Rebaseline fast/xmlhttprequest/set-dangerous-headers.html and http/tests/xmlhttprequest/set-dangerous-headers.html
https://bugs.webkit.org/show_bug.cgi?id=177829
Unreviewed test gardening.
- fast/xmlhttprequest/set-dangerous-headers-expected.txt:
- http/tests/xmlhttprequest/set-dangerous-headers-expected.txt:
- 9:54 AM October 2017 Meeting edited by
- (diff)
- 9:54 AM Changeset in webkit [222851] by
-
- 3 edits in trunk/Tools
[JHBuild][GTK][WKE] Circular dependency between harfbuzz and freetype6
https://bugs.webkit.org/show_bug.cgi?id=177865
Reviewed by Michael Catanzaro.
Build freetype6 without harfbuzz support.
This seems to be what distros like Fedora, Debian or OpenEmbedded do.
Also explicitly enable support for freetype and fontconfig on harfbuzz.
- gtk/jhbuild.modules: Enable also support for icu.
- wpe/jhbuild.modules:
- 8:18 AM Changeset in webkit [222850] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed: fix GTK debug build after r222841.
- platform/image-decoders/webp/WEBPImageDecoder.cpp:
(WebCore::WEBPImageDecoder::initFrameBuffer):
- 8:10 AM Changeset in webkit [222849] by
-
- 2 edits in trunk/LayoutTests
Unreviewed WPE gardening.
- platform/wpe/TestExpectations: Unskip tests under http/wpt/. Manage
expectations for failures that are currently present.
- 7:42 AM Changeset in webkit [222848] by
-
- 195 edits1 move33 adds in trunk
[Test262] Update Test262 to Oct 4 version
https://bugs.webkit.org/show_bug.cgi?id=177859
Reviewed by Sam Weinig.
JSTests:
Let's rebaseline test262. Since it includes the latest changes to ArrayIterator::next,
we no longer need to mark it skip/fail. Also this update includes bunch of BigInt tests.
- test262.yaml:
- test262/harness/promiseHelper.js: Renamed from JSTests/test262/harness/PromiseHelper.js.
(checkSequence):
- test262/harness/typeCoercion.js:
(testCoercibleToIndexZero):
(testCoercibleToIndexOne):
(testCoercibleToIndexFromIndex):
(testNotCoercibleToIndex.testPrimitiveValue):
(testNotCoercibleToInteger):
(testCoercibleToBigIntZero.testPrimitiveValue):
(testCoercibleToBigIntZero):
(testCoercibleToBigIntOne.testPrimitiveValue):
(testCoercibleToBigIntOne):
(testPrimitiveValue):
(testCoercibleToBigIntFromBigInt):
(testNotCoercibleToBigInt.testPrimitiveValue):
(testNotCoercibleToBigInt.testStringValue):
(testNotCoercibleToBigInt):
- test262/test/built-ins/Array/from/proto-from-ctor-realm.js:
- test262/test/built-ins/Array/length/define-own-prop-length-overflow-realm.js:
- test262/test/built-ins/Array/of/proto-from-ctor-realm.js:
- test262/test/built-ins/Array/proto-from-ctor-realm.js:
- test262/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-array.js:
- test262/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-non-array.js:
- test262/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-array.js:
- test262/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-non-array.js:
- test262/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-array.js:
- test262/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-non-array.js:
- test262/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-array.js:
- test262/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-non-array.js:
- test262/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-array.js:
- test262/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-non-array.js:
- test262/test/built-ins/ArrayBuffer/proto-from-ctor-realm.js:
- test262/test/built-ins/BigInt/asIntN/bigint-tobigint.js:
(testCoercibleToBigIntZero):
(testCoercibleToBigIntOne):
(testNotCoercibleToBigInt):
(MyError): Deleted.
(valueOf): Deleted.
(toString): Deleted.
(Symbol.toPrimitive): Deleted.
- test262/test/built-ins/BigInt/asIntN/bits-toindex.js:
(testCoercibleToIndexZero):
(testCoercibleToIndexOne):
(testNotCoercibleToIndex):
(MyError): Deleted.
(assert.sameValue.BigInt.asIntN.valueOf): Deleted.
(assert.sameValue.BigInt.asIntN.toString): Deleted.
(BigInt.asIntN.Symbol.toPrimitive): Deleted.
(BigInt.asIntN.valueOf): Deleted.
(BigInt.asIntN.toString): Deleted.
- test262/test/built-ins/BigInt/asUintN/arithmetic.js: Added.
- test262/test/built-ins/BigInt/asUintN/asUintN.js: Added.
- test262/test/built-ins/BigInt/asUintN/bigint-tobigint.js: Added.
(testCoercibleToBigIntZero):
(testCoercibleToBigIntOne):
(testNotCoercibleToBigInt):
- test262/test/built-ins/BigInt/asUintN/bits-toindex.js: Added.
(testCoercibleToIndexZero):
(testCoercibleToIndexOne):
(testNotCoercibleToIndex):
- test262/test/built-ins/BigInt/asUintN/length.js: Added.
- test262/test/built-ins/BigInt/asUintN/name.js: Added.
- test262/test/built-ins/BigInt/asUintN/order-of-steps.js: Added.
(bits.valueOf):
(bigint.valueOf):
- test262/test/built-ins/BigInt/prototype/valueOf/length.js: Added.
- test262/test/built-ins/BigInt/prototype/valueOf/name.js: Added.
- test262/test/built-ins/BigInt/prototype/valueOf/prop-desc.js: Added.
- test262/test/built-ins/BigInt/prototype/valueOf/return.js: Added.
- test262/test/built-ins/BigInt/prototype/valueOf/this-value-invalid-object-throws.js: Added.
- test262/test/built-ins/BigInt/prototype/valueOf/this-value-invalid-primitive-throws.js: Added.
- test262/test/built-ins/Boolean/proto-from-ctor-realm.js:
- test262/test/built-ins/DataView/proto-from-ctor-realm-sab.js:
- test262/test/built-ins/DataView/proto-from-ctor-realm.js:
- test262/test/built-ins/Date/proto-from-ctor-realm-one.js:
- test262/test/built-ins/Date/proto-from-ctor-realm-two.js:
- test262/test/built-ins/Date/proto-from-ctor-realm-zero.js:
- test262/test/built-ins/Error/proto-from-ctor-realm.js:
- test262/test/built-ins/Function/call-bind-this-realm-undef.js:
- test262/test/built-ins/Function/call-bind-this-realm-value.js:
- test262/test/built-ins/Function/internals/Call/class-ctor-realm.js:
- test262/test/built-ins/Function/internals/Construct/base-ctor-revoked-proxy-realm.js:
- test262/test/built-ins/Function/internals/Construct/derived-return-val-realm.js:
- test262/test/built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js:
- test262/test/built-ins/Function/proto-from-ctor-realm.js:
- test262/test/built-ins/Function/prototype/bind/get-fn-realm.js:
- test262/test/built-ins/Function/prototype/bind/proto-from-ctor-realm.js:
- test262/test/built-ins/GeneratorFunction/proto-from-ctor-realm.js:
- test262/test/built-ins/JSON/stringify/bigint-order.js: Added.
(replacer):
(BigInt.prototype.toJSON):
- test262/test/built-ins/JSON/stringify/bigint-replacer.js: Added.
(replacer):
- test262/test/built-ins/JSON/stringify/bigint-tojson.js: Added.
(BigInt.prototype.toJSON):
- test262/test/built-ins/JSON/stringify/bigint.js:
- test262/test/built-ins/Map/proto-from-ctor-realm.js:
- test262/test/built-ins/Number/S9.3.1_A2_U180E.js:
- test262/test/built-ins/Number/S9.3.1_A3_T1_U180E.js:
- test262/test/built-ins/Number/S9.3.1_A3_T2_U180E.js:
- test262/test/built-ins/Number/proto-from-ctor-realm.js:
- test262/test/built-ins/Object/proto-from-ctor.js:
- test262/test/built-ins/Promise/proto-from-ctor-realm.js:
- test262/test/built-ins/Proxy/apply/arguments-realm.js:
- test262/test/built-ins/Proxy/apply/trap-is-not-callable-realm.js:
- test262/test/built-ins/Proxy/construct/arguments-realm.js:
- test262/test/built-ins/Proxy/construct/trap-is-not-callable-realm.js:
- test262/test/built-ins/Proxy/construct/trap-is-undefined-proto-from-ctor-realm.js:
- test262/test/built-ins/Proxy/defineProperty/desc-realm.js:
- test262/test/built-ins/Proxy/defineProperty/null-handler-realm.js:
- test262/test/built-ins/Proxy/defineProperty/targetdesc-configurable-desc-not-configurable-realm.js:
- test262/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-not-configurable-target-realm.js:
- test262/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-realm.js:
- test262/test/built-ins/Proxy/defineProperty/targetdesc-undefined-not-configurable-descriptor-realm.js:
- test262/test/built-ins/Proxy/defineProperty/targetdesc-undefined-target-is-not-extensible-realm.js:
- test262/test/built-ins/Proxy/defineProperty/trap-is-not-callable-realm.js:
- test262/test/built-ins/Proxy/deleteProperty/trap-is-not-callable-realm.js:
- test262/test/built-ins/Proxy/get-fn-realm.js:
- test262/test/built-ins/Proxy/get/trap-is-not-callable-realm.js:
- test262/test/built-ins/Proxy/getOwnPropertyDescriptor/result-type-is-not-object-nor-undefined-realm.js:
- test262/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-not-callable-realm.js:
- test262/test/built-ins/Proxy/getPrototypeOf/trap-is-not-callable-realm.js:
- test262/test/built-ins/Proxy/has/trap-is-not-callable-realm.js:
- test262/test/built-ins/Proxy/isExtensible/trap-is-not-callable-realm.js:
- test262/test/built-ins/Proxy/ownKeys/return-not-list-object-throws-realm.js:
- test262/test/built-ins/Proxy/ownKeys/trap-is-not-callable-realm.js:
- test262/test/built-ins/Proxy/preventExtensions/trap-is-not-callable-realm.js:
- test262/test/built-ins/Proxy/set/trap-is-not-callable-realm.js:
- test262/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable-realm.js:
- test262/test/built-ins/RegExp/S15.10.2.12_A1_T1.js:
(i6.replace):
(i6b.replace):
- test262/test/built-ins/RegExp/dotall/with-dotall-unicode.js:
- test262/test/built-ins/RegExp/dotall/with-dotall.js:
- test262/test/built-ins/RegExp/dotall/without-dotall-unicode.js:
- test262/test/built-ins/RegExp/dotall/without-dotall.js:
- test262/test/built-ins/RegExp/proto-from-ctor-realm.js:
- test262/test/built-ins/RegExp/prototype/Symbol.split/splitter-proto-from-ctor-realm.js:
- test262/test/built-ins/RegExp/u180e.js: Added.
- test262/test/built-ins/Set/proto-from-ctor-realm.js:
- test262/test/built-ins/SharedArrayBuffer/proto-from-ctor-realm.js:
- test262/test/built-ins/String/proto-from-ctor-realm.js:
- test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail.js:
- test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail_2.js:
- test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success.js:
- test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_2.js:
- test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_3.js:
- test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_4.js:
- test262/test/built-ins/String/prototype/endsWith/coerced-values-of-position.js:
- test262/test/built-ins/String/prototype/endsWith/endsWith.js:
- test262/test/built-ins/String/prototype/endsWith/length.js:
- test262/test/built-ins/String/prototype/endsWith/name.js:
- test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-position-as-symbol.js:
- test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-position.js:
- test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-as-symbol.js:
- test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-regexp-test.js:
- test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring.js:
- test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-this-as-symbol.js:
- test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-this.js:
- test262/test/built-ins/String/prototype/endsWith/return-false-if-search-start-is-less-than-zero.js:
- test262/test/built-ins/String/prototype/endsWith/return-true-if-searchstring-is-empty.js:
- test262/test/built-ins/String/prototype/endsWith/searchstring-found-with-position.js:
- test262/test/built-ins/String/prototype/endsWith/searchstring-found-without-position.js:
- test262/test/built-ins/String/prototype/endsWith/searchstring-is-regexp-throws.js:
- test262/test/built-ins/String/prototype/endsWith/searchstring-not-found-with-position.js:
- test262/test/built-ins/String/prototype/endsWith/searchstring-not-found-without-position.js:
- test262/test/built-ins/String/prototype/endsWith/this-is-null-throws.js:
- test262/test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js:
- test262/test/built-ins/String/prototype/includes/String.prototype.includes_FailBadLocation.js:
- test262/test/built-ins/String/prototype/includes/String.prototype.includes_FailLocation.js:
- test262/test/built-ins/String/prototype/includes/String.prototype.includes_FailMissingLetter.js:
- test262/test/built-ins/String/prototype/includes/String.prototype.includes_Success.js:
- test262/test/built-ins/String/prototype/includes/String.prototype.includes_SuccessNoLocation.js:
- test262/test/built-ins/String/prototype/includes/String.prototype.includes_lengthProp.js:
- test262/test/built-ins/String/prototype/includes/coerced-values-of-position.js:
- test262/test/built-ins/String/prototype/includes/includes.js:
- test262/test/built-ins/String/prototype/includes/length.js:
- test262/test/built-ins/String/prototype/includes/name.js:
- test262/test/built-ins/String/prototype/includes/return-abrupt-from-position-as-symbol.js:
- test262/test/built-ins/String/prototype/includes/return-abrupt-from-position.js:
- test262/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-as-symbol.js:
- test262/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-regexp-test.js:
- test262/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring.js:
- test262/test/built-ins/String/prototype/includes/return-abrupt-from-this-as-symbol.js:
- test262/test/built-ins/String/prototype/includes/return-abrupt-from-this.js:
- test262/test/built-ins/String/prototype/includes/return-false-with-out-of-bounds-position.js:
- test262/test/built-ins/String/prototype/includes/return-true-if-searchstring-is-empty.js:
- test262/test/built-ins/String/prototype/includes/searchstring-found-with-position.js:
- test262/test/built-ins/String/prototype/includes/searchstring-found-without-position.js:
- test262/test/built-ins/String/prototype/includes/searchstring-is-regexp-throws.js:
- test262/test/built-ins/String/prototype/includes/searchstring-not-found-with-position.js:
- test262/test/built-ins/String/prototype/includes/searchstring-not-found-without-position.js:
- test262/test/built-ins/String/prototype/includes/this-is-null-throws.js:
- test262/test/built-ins/String/prototype/includes/this-is-undefined-throws.js:
- test262/test/built-ins/String/prototype/toLocaleLowerCase/Final_Sigma_U180E.js:
- test262/test/built-ins/String/prototype/toLowerCase/Final_Sigma_U180E.js:
- test262/test/built-ins/String/prototype/trim/u180e.js:
- test262/test/built-ins/Symbol/for/cross-realm.js:
- test262/test/built-ins/Symbol/hasInstance/cross-realm.js:
- test262/test/built-ins/Symbol/isConcatSpreadable/cross-realm.js:
- test262/test/built-ins/Symbol/iterator/cross-realm.js:
- test262/test/built-ins/Symbol/keyFor/cross-realm.js:
- test262/test/built-ins/Symbol/match/cross-realm.js:
- test262/test/built-ins/Symbol/replace/cross-realm.js:
- test262/test/built-ins/Symbol/search/cross-realm.js:
- test262/test/built-ins/Symbol/species/cross-realm.js:
- test262/test/built-ins/Symbol/split/cross-realm.js:
- test262/test/built-ins/Symbol/toPrimitive/cross-realm.js:
- test262/test/built-ins/Symbol/toStringTag/cross-realm.js:
- test262/test/built-ins/Symbol/unscopables/cross-realm.js:
- test262/test/built-ins/ThrowTypeError/distinct-cross-realm.js:
- test262/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm-sab.js:
- test262/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm.js:
- test262/test/built-ins/TypedArrays/internals/DefineOwnProperty/detached-buffer-realm.js:
- test262/test/built-ins/TypedArrays/internals/Get/detached-buffer-realm.js:
- test262/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-realm.js:
- test262/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer-realm.js:
- test262/test/built-ins/TypedArrays/internals/Set/detached-buffer-realm.js:
- test262/test/built-ins/TypedArrays/length-arg-proto-from-ctor-realm.js:
- test262/test/built-ins/TypedArrays/no-args-proto-from-ctor-realm.js:
- test262/test/built-ins/TypedArrays/object-arg-proto-from-ctor-realm.js:
- test262/test/built-ins/TypedArrays/typedarray-arg-other-ctor-buffer-ctor-custom-species-proto-from-ctor-realm.js:
- test262/test/built-ins/TypedArrays/typedarray-arg-proto-from-ctor-realm.js:
- test262/test/built-ins/TypedArrays/typedarray-arg-same-ctor-buffer-ctor-species-custom-proto-from-ctor-realm.js:
- test262/test/built-ins/WeakMap/proto-from-ctor-realm.js:
- test262/test/built-ins/WeakSet/proto-from-ctor-realm.js:
- test262/test/built-ins/parseFloat/S15.1.2.3_A2_T10_U180E.js:
- test262/test/built-ins/parseInt/S15.1.2.2_A2_T10_U180E.js:
- test262/test/intl402/NumberFormat/prototype/formatToParts/length.js:
- test262/test/language/comments/mongolian-vowel-separator-multi.js:
- test262/test/language/comments/mongolian-vowel-separator-single-eval.js:
- test262/test/language/comments/mongolian-vowel-separator-single.js:
- test262/test/language/eval-code/indirect/realm.js:
- test262/test/language/expressions/assignment/dstr-obj-rest-order.js: Added.
(o.get z):
(o.get a):
- test262/test/language/expressions/call/eval-realm-indirect.js:
- test262/test/language/expressions/generators/eval-body-proto-realm.js:
- test262/test/language/expressions/greater-than-or-equal/bigint-and-bigint.js: Added.
- test262/test/language/expressions/greater-than-or-equal/bigint-and-non-finite.js: Added.
- test262/test/language/expressions/greater-than-or-equal/bigint-and-number-extremes.js: Added.
- test262/test/language/expressions/greater-than-or-equal/bigint-and-number.js:
- test262/test/language/expressions/greater-than/bigint-and-bigint.js: Added.
- test262/test/language/expressions/greater-than/bigint-and-non-finite.js: Added.
- test262/test/language/expressions/greater-than/bigint-and-number-extremes.js: Added.
- test262/test/language/expressions/greater-than/bigint-and-number.js:
- test262/test/language/expressions/less-than-or-equal/bigint-and-bigint.js: Added.
- test262/test/language/expressions/less-than-or-equal/bigint-and-non-finite.js: Added.
- test262/test/language/expressions/less-than-or-equal/bigint-and-number-extremes.js: Added.
- test262/test/language/expressions/less-than-or-equal/bigint-and-number.js:
- test262/test/language/expressions/less-than/bigint-and-bigint.js: Added.
- test262/test/language/expressions/less-than/bigint-and-non-finite.js: Added.
- test262/test/language/expressions/less-than/bigint-and-number-extremes.js: Added.
- test262/test/language/expressions/less-than/bigint-and-number.js:
- test262/test/language/expressions/new/non-ctor-err-realm.js:
- test262/test/language/expressions/super/realm.js:
- test262/test/language/expressions/tagged-template/cache-realm.js:
- test262/test/language/expressions/template-literal/mongolian-vowel-separator-eval.js:
- test262/test/language/expressions/template-literal/mongolian-vowel-separator.js:
- test262/test/language/literals/regexp/mongolian-vowel-separator-eval.js:
- test262/test/language/literals/regexp/mongolian-vowel-separator.js:
- test262/test/language/literals/string/mongolian-vowel-separator-eval.js:
- test262/test/language/literals/string/mongolian-vowel-separator.js:
- test262/test/language/statements/for-of/dstr-obj-rest-order.js: Added.
(o.get z):
(o.get a):
- test262/test/language/statements/for-of/iterator-next-reference.js:
(next):
(iterator.next): Deleted.
(x.of.iterable.): Deleted.
(x.of.iterable.get return): Deleted.
(x.of.iterable.iterator.next): Deleted.
- test262/test/language/types/reference/get-value-prop-base-primitive-realm.js:
- test262/test/language/types/reference/put-value-prop-base-primitive-realm.js:
- test262/test/language/white-space/mongolian-vowel-separator-eval.js:
- test262/test/language/white-space/mongolian-vowel-separator.js:
- test262/test262-Revision.txt:
Tools:
- Scripts/import-test262-tests:
- 7:37 AM Changeset in webkit [222847] by
-
- 3 edits in trunk/Source/WebCore
RenderFragmentContainerRange should not hold raw pointers.
https://bugs.webkit.org/show_bug.cgi?id=177854
<rdar://problem/34805954>
Reviewed by Antti Koivisto.
m_startFragment and m_endFragment object's lifetimes are not tied to the lifetime of
RenderFragmentContainerRange.
Covered by existing tests.
- rendering/RenderFragmentedFlow.cpp:
(WebCore::RenderFragmentedFlow::setFragmentRangeForBox):
- rendering/RenderFragmentedFlow.h:
- 7:24 AM Changeset in webkit [222846] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed WPE build fix after r222837
https://bugs.webkit.org/show_bug.cgi?id=177449
- Shared/wpe/WebEventFactory.cpp:
(WebKit::wallTimeForEventTime):
- 7:14 AM Changeset in webkit [222845] by
-
- 4 edits in trunk/Source/WebCore
RenderMultiColumnSpannerPlaceholder should not hold raw pointers.
https://bugs.webkit.org/show_bug.cgi?id=177840
<rdar://problem/34800109>
Reviewed by Sam Weinig.
Though we should always have a spanner as long as there's a RenderMultiColumnSpannerPlaceholder,
the spanner inject/removal logic is complicated enough to protect them with WeakPtr.
Covered by existing tests.
- rendering/RenderMultiColumnSpannerPlaceholder.cpp:
(WebCore::RenderMultiColumnSpannerPlaceholder::RenderMultiColumnSpannerPlaceholder):
- rendering/RenderMultiColumnSpannerPlaceholder.h:
- 7:07 AM Changeset in webkit [222844] by
-
- 5 edits in trunk/Source/WebCore
[GTK] GtkUtilities.h should not be included in libs not linked to GTK
https://bugs.webkit.org/show_bug.cgi?id=177860
Reviewed by Carlos Garcia Campos.
- platform/FreeType.cmake:
- platform/gtk/GtkUtilities.cpp:
(WebCore::topLevelPath): Deleted.
(WebCore::webkitBuildDirectory): Deleted.
- platform/gtk/GtkUtilities.h:
(WebCore::wallTimeForEvent):
- platform/text/hyphen/HyphenationLibHyphen.cpp:
(WebCore::topLevelPath):
(WebCore::webkitBuildDirectory):
- 6:51 AM Changeset in webkit [222843] by
-
- 98 edits2 adds2 deletes in trunk
[Harfbuzz] Implement ComplexTextController on top of HarfBuzz
https://bugs.webkit.org/show_bug.cgi?id=167956
Source/WebCore:
Reviewed by Myles C. Maxfield.
Implement ComplexTextController using HarfBuzz and remove HarfBuzzShaper.
Covered by existing tests, a rebaseline will be neeed.
- platform/FreeType.cmake:
- platform/graphics/ComplexTextController.cpp:
(WebCore::TextLayoutDeleter::operator() const): Enable TextLayout when using HarfBuzz.
(WebCore::FontCascade::createLayout const): Ditto.
(WebCore::FontCascade::width): Ditto.
- platform/graphics/ComplexTextController.h:
(WebCore::ComplexTextController::ComplexTextRun::create): Add constructor that receives an hb_buffer_t.
- platform/graphics/Font.cpp:
(WebCore::Font::variantCapsSupportsCharacterForSynthesis const): Simple implementation for non-cocoa ports.
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::getGlyphsAndAdvancesForComplexText const): Moved from FontCascadeCocoa.mm.
(WebCore::FontCascade::floatWidthForComplexText const): Ditto.
(WebCore::FontCascade::adjustSelectionRectForComplexText const): Ditto.
(WebCore::FontCascade::offsetForPositionForComplexText const): Ditto.
- platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
(WebCore::FontCascade::fontForCombiningCharacterSequence const): Normalize the sequence and get the font of the
base character.
- platform/graphics/cocoa/FontCascadeCocoa.mm:
- platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:
(WebCore::harfBuzzPositionToFloat):
(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
(WebCore::fontFeatures):
(WebCore::characterScript):
(WebCore::scriptsAreCompatibleForCharacters):
(WebCore::findNextRun):
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
- platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:
(WebCore::harfBuzzGetGlyph): Check here if the character is a white space and use the space or zeroWidthSpace
to ensure we get a glyph.
- platform/graphics/harfbuzz/HarfBuzzShaper.cpp: Removed.
- platform/graphics/harfbuzz/HarfBuzzShaper.h: Removed.
- platform/graphics/harfbuzz/HbUniquePtr.h: Added.
(WebCore::HbPtrDeleter::operator() const):
(WebCore::HbPtrDeleter<hb_font_t>::operator() const):
(WebCore::HbPtrDeleter<hb_buffer_t>::operator() const):
- platform/graphics/opentype/OpenTypeMathData.h: Use HbUniquePtr.
LayoutTests:
Unreviewed GTK+ gardening. Rebaseline tests.
- platform/gtk/css1/font_properties/font-expected.png:
- platform/gtk/css1/font_properties/font-expected.txt:
- platform/gtk/css1/pseudo/firstline-expected.png:
- platform/gtk/css1/pseudo/firstline-expected.txt:
- platform/gtk/css1/pseudo/multiple_pseudo_elements-expected.png:
- platform/gtk/css1/pseudo/multiple_pseudo_elements-expected.txt:
- platform/gtk/css2.1/t051201-c23-first-line-00-b-expected.png:
- platform/gtk/css2.1/t051201-c23-first-line-00-b-expected.txt:
- platform/gtk/css2.1/t051202-c26-psudo-nest-00-c-expected.png:
- platform/gtk/css2.1/t051202-c26-psudo-nest-00-c-expected.txt:
- platform/gtk/css2.1/t0905-c5525-fltwidth-00-c-g-expected.png:
- platform/gtk/css2.1/t0905-c5525-fltwidth-00-c-g-expected.txt:
- platform/gtk/css2.1/t1508-c527-font-00-b-expected.png:
- platform/gtk/css2.1/t1508-c527-font-00-b-expected.txt:
- platform/gtk/css2.1/t1508-c527-font-06-b-expected.png:
- platform/gtk/css2.1/t1508-c527-font-06-b-expected.txt:
- platform/gtk/css2.1/t1508-c527-font-07-b-expected.png:
- platform/gtk/css2.1/t1508-c527-font-07-b-expected.txt:
- platform/gtk/css2.1/t1508-c527-font-10-c-expected.png:
- platform/gtk/css2.1/t1508-c527-font-10-c-expected.txt:
- platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-br-expected.png:
- platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-br-expected.txt:
- platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-p-expected.png:
- platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-p-expected.txt:
- platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-br-expected.png:
- platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-br-expected.txt:
- platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-p-expected.png:
- platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-p-expected.txt:
- platform/gtk/fast/css/text-overflow-ellipsis-text-align-center-expected.png:
- platform/gtk/fast/css/text-overflow-ellipsis-text-align-center-expected.txt:
- platform/gtk/fast/css/text-overflow-ellipsis-text-align-left-expected.png:
- platform/gtk/fast/css/text-overflow-ellipsis-text-align-left-expected.txt:
- platform/gtk/fast/text/atsui-negative-spacing-features-expected.png:
- platform/gtk/fast/text/atsui-negative-spacing-features-expected.txt:
- platform/gtk/fast/text/atsui-pointtooffset-calls-cg-expected.png:
- platform/gtk/fast/text/atsui-pointtooffset-calls-cg-expected.txt:
- platform/gtk/fast/text/atsui-rtl-override-selection-expected.png:
- platform/gtk/fast/text/atsui-rtl-override-selection-expected.txt:
- platform/gtk/fast/text/atsui-spacing-features-expected.png:
- platform/gtk/fast/text/atsui-spacing-features-expected.txt:
- platform/gtk/fast/text/emphasis-expected.png:
- platform/gtk/fast/text/emphasis-expected.txt:
- platform/gtk/fast/text/international/bold-bengali-expected.png:
- platform/gtk/fast/text/international/bold-bengali-expected.txt:
- platform/gtk/fast/text/international/hebrew-vowels-expected.png:
- platform/gtk/fast/text/international/hebrew-vowels-expected.txt:
- platform/gtk/fast/text/international/thai-baht-space-expected.png:
- platform/gtk/fast/text/international/thai-baht-space-expected.txt:
- platform/gtk/fast/text/international/thai-line-breaks-expected.png:
- platform/gtk/fast/text/international/thai-line-breaks-expected.txt:
- platform/gtk/fast/text/large-text-composed-char-dos-expected.txt: Added.
- platform/gtk/svg/W3C-I18N/g-dirLTR-ubNone-expected.png:
- platform/gtk/svg/W3C-I18N/g-dirLTR-ubNone-expected.txt:
- platform/gtk/svg/W3C-I18N/g-dirLTR-ubOverride-expected.png:
- platform/gtk/svg/W3C-I18N/g-dirLTR-ubOverride-expected.txt:
- platform/gtk/svg/W3C-I18N/g-dirRTL-ubNone-expected.png:
- platform/gtk/svg/W3C-I18N/g-dirRTL-ubNone-expected.txt:
- platform/gtk/svg/W3C-I18N/g-dirRTL-ubOverride-expected.png:
- platform/gtk/svg/W3C-I18N/g-dirRTL-ubOverride-expected.txt:
- platform/gtk/svg/W3C-I18N/text-dirLTR-ubNone-expected.png:
- platform/gtk/svg/W3C-I18N/text-dirLTR-ubNone-expected.txt:
- platform/gtk/svg/W3C-I18N/text-dirLTR-ubOverride-expected.png:
- platform/gtk/svg/W3C-I18N/text-dirLTR-ubOverride-expected.txt:
- platform/gtk/svg/W3C-I18N/text-dirRTL-ubNone-expected.png:
- platform/gtk/svg/W3C-I18N/text-dirRTL-ubNone-expected.txt:
- platform/gtk/svg/W3C-I18N/text-dirRTL-ubOverride-expected.png:
- platform/gtk/svg/W3C-I18N/text-dirRTL-ubOverride-expected.txt:
- platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubEmbed-in-rtl-context-expected.png:
- platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubEmbed-in-rtl-context-expected.txt:
- platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubNone-in-rtl-context-expected.png:
- platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubNone-in-rtl-context-expected.txt:
- platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-rtl-context-expected.png:
- platform/gtk/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-rtl-context-expected.txt:
- platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-rtl-context-expected.png:
- platform/gtk/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-rtl-context-expected.txt:
- platform/gtk/svg/W3C-I18N/tspan-direction-rtl-expected.png:
- platform/gtk/svg/W3C-I18N/tspan-direction-rtl-expected.txt:
- platform/gtk/svg/text/bidi-tspans-expected.png:
- platform/gtk/svg/text/bidi-tspans-expected.txt:
- platform/gtk/svg/text/select-textLength-spacing-squeeze-1-expected.png:
- platform/gtk/svg/text/select-textLength-spacing-squeeze-1-expected.txt:
- platform/gtk/svg/text/select-textLength-spacing-squeeze-2-expected.png:
- platform/gtk/svg/text/select-textLength-spacing-squeeze-2-expected.txt:
- platform/gtk/svg/text/select-textLength-spacing-stretch-2-expected.png:
- platform/gtk/svg/text/select-textLength-spacing-stretch-2-expected.txt:
- platform/gtk/svg/text/select-textLength-spacing-stretch-3-expected.png:
- platform/gtk/svg/text/select-textLength-spacing-stretch-3-expected.txt:
- 5:48 AM Changeset in webkit [222842] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix typo in function name scanDirectoryForDicionaries
https://bugs.webkit.org/show_bug.cgi?id=177866
- platform/text/hyphen/HyphenationLibHyphen.cpp:
(WebCore::scanDirectoryForDictionaries):
(WebCore::scanTestDictionariesDirectoryIfNecessary):
(WebCore::availableLocales):
(WebCore::scanDirectoryForDicionaries): Deleted.
- 5:36 AM Changeset in webkit [222841] by
-
- 11 edits22 adds in trunk
Add animation support for WebP images
https://bugs.webkit.org/show_bug.cgi?id=113124
Reviewed by Žan Doberšek.
.:
- Source/cmake/FindWebP.cmake:
Source/WebCore:
Implement decoding of WebP animations.
Test: fast/images/animated-webp.html
- platform/graphics/ImageBackingStore.h:
(WebCore::ImageBackingStore::blendPixel):
- platform/image-decoders/webp/WEBPImageDecoder.cpp:
(WebCore::WEBPImageDecoder::WEBPImageDecoder):
(WebCore::WEBPImageDecoder::~WEBPImageDecoder):
(WebCore::WEBPImageDecoder::setData):
(WebCore::WEBPImageDecoder::repetitionCount const):
(WebCore::WEBPImageDecoder::frameBufferAtIndex):
(WebCore::WEBPImageDecoder::findFirstRequiredFrameToDecode):
(WebCore::WEBPImageDecoder::decode):
(WebCore::WEBPImageDecoder::decodeFrame):
(WebCore::WEBPImageDecoder::initFrameBuffer):
(WebCore::WEBPImageDecoder::applyPostProcessing):
(WebCore::WEBPImageDecoder::parseHeader):
(WebCore::WEBPImageDecoder::clearFrameBufferCache):
- platform/image-decoders/webp/WEBPImageDecoder.h:
LayoutTests:
Add a new test for WebP animations and skip it on ios, mac and win. Also unskip some
webp tests that are passing on gtk.
- fast/images/animated-webp-expected.html: Added.
- fast/images/animated-webp.html: Added.
- fast/images/resources/awebp00-ref.webp: Added.
- fast/images/resources/awebp00.webp: Added.
- fast/images/resources/awebp01-ref.webp: Added.
- fast/images/resources/awebp01.webp: Added.
- fast/images/resources/awebp02-ref.webp: Added.
- fast/images/resources/awebp02.webp: Added.
- fast/images/resources/awebp03-ref.webp: Added.
- fast/images/resources/awebp03.webp: Added.
- fast/images/resources/awebp04-ref.webp: Added.
- fast/images/resources/awebp04.webp: Added.
- fast/images/resources/awebp05-ref.webp: Added.
- fast/images/resources/awebp05.webp: Added.
- fast/images/resources/awebp06-ref.webp: Added.
- fast/images/resources/awebp06.webp: Added.
- fast/images/resources/awebp07-ref.webp: Added.
- fast/images/resources/awebp07.webp: Added.
- fast/images/resources/awebp08-ref.webp: Added.
- fast/images/resources/awebp08.webp: Added.
- fast/images/resources/awebp09-ref.webp: Added.
- fast/images/resources/awebp09.webp: Added.
- platform/gtk/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- platform/win/TestExpectations:
- 5:08 AM Changeset in webkit [222840] by
-
- 6 edits in trunk
Generate a compile error if release is built without compiler optimizations
https://bugs.webkit.org/show_bug.cgi?id=177665
Reviewed by Michael Catanzaro.
.:
Default to RelWithDebInfo if CMAKE_BUILD_TYPE is unset.
- CMakeLists.txt:
Source/JavaScriptCore:
Pass -DRELEASE_WITHOUT_OPTIMIZATIONS to testair.cpp and testb3.cpp because
this files are compiled with -O0 for build speed reasons after r195639.
- JavaScriptCore.xcodeproj/project.pbxproj:
Source/WTF:
For GCC and Clang, generate an error at build time that will alert
the developer that she is trying to build Release without any compiler
optimization. A build time error is much better than an unexpected
"oh, WebKit is really slow ..." situation later.
If this was intended, then we tell the developer that she can continue
by just setting -DRELEASE_WITHOUT_OPTIMIZATIONS in the list of build
flags.
The intention of this patch is to ensure that nobody builds Release
without enabling compiler optimization by mistake.
- wtf/Compiler.h:
- 4:06 AM Changeset in webkit [222839] by
-
- 13 edits2 adds in trunk
Use blob URL when pasting RTFD instead of overriding DocumentLoader
https://bugs.webkit.org/show_bug.cgi?id=177801
<rdar://problem/34542270>
Reviewed by Wenson Hsieh.
Source/WebCore:
Before this patch, pasting RTFD resulted in images and other subresources in RTFD are being placed
into the document using WebKit fake URL, and DocumentLoader was overridden to return the appropriate
data upon resource requests. This is bad because there is no mechanism for websites to access its content.
Like r222119 and r208451, this patch fixes thie problem by using a blob URL instead of a WebKit fake URL.
This patch also adds a Blob::create variant which takes a SharedBuffer.
API Tests: PasteRTFD
- editing/WebCorePasteboardFileReader.cpp:
(WebCore::WebCorePasteboardFileReader::readBuffer):
- editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::DeferredLoadingScope): Extracted out of createFragmentAndAddResources for clarity.
(WebCore::DeferredLoadingScope::DeferredLoadingScope):
(WebCore::DeferredLoadingScope::~DeferredLoadingScope):
(WebCore::createFragmentAndAddResources): Instead of adding resources to document loader, replace each
URL in the document by a blob URL.
(WebCore::WebContentReader::readImage):
- editing/markup.cpp:
(WebCore::replaceSubresourceURLs): Added. A helper to replace each URL in the document fragment by a blob
URL created for each subresource. This won't work for iframes or srcset but that's okay for now since DOM
constructed from RTFD doesn't use either.
- editing/markup.h:
- fileapi/Blob.cpp:
(WebCore::Blob::Blob): Added a variant which takes a SharedBuffer.
- fileapi/Blob.h:
(WebCore::Blob::create): Ditto.
Source/WebKit:
Fixed the assertion failure when RTFD content is empty.
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
Tools:
Added a regression test for an assertion failure when pasting an empty RTFD as well as a test for pasting
RTFD with an image, which should result in an image element with a blob URL.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:
- TestWebKitAPI/Tests/WebKitCocoa/PasteRTFD.mm:
- TestWebKitAPI/Tests/WebKitCocoa/paste-rtfd.html:
- 3:09 AM WebKitGTK/2.18.x edited by
- (diff)
- 3:03 AM Changeset in webkit [222838] by
-
- 2 edits in trunk/Source/WTF
Allow building without WOFF enabled
Reviewed by Michael Catanzaro.
Don't force the WOFF to be turned on, but follow what is set in cmake.
- wtf/Platform.h:
- 2:49 AM Changeset in webkit [222837] by
-
- 5 edits in trunk/Source
REGRESSION(r222392): [WPE][GTK] Many forms tests are failing due to broken event timestamps
https://bugs.webkit.org/show_bug.cgi?id=177449
Reviewed by Chris Dumez.
Source/WebCore:
- platform/gtk/GtkUtilities.cpp:
(WebCore::wallTimeForEvent):
- platform/gtk/GtkUtilities.h:
(WebCore::wallTimeForEvent):
Source/WebKit:
- Shared/wpe/WebEventFactory.cpp:
(WebKit::wallTimeForEventTime):
- 2:09 AM Changeset in webkit [222836] by
-
- 4 edits in trunk/Source/WebCore
[GTK][WPE] Fix playback of GIFs
https://bugs.webkit.org/show_bug.cgi?id=176089
Reviewed by Carlos Garcia Campos.
Allow GIFImageReader to decode again already decoded frames. Thanks to this, we don't
need to delete the GIFImageReader when GIFImageDecoder::clearFrameBufferCache() is
called, and the we don't need the lock to avoid crashes in that situation.
Covered by existent tests.
- platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::clearFrameBufferCache):
(WebCore::GIFImageDecoder::decode):
- platform/image-decoders/gif/GIFImageDecoder.h:
- platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::decode):
- 1:38 AM Changeset in webkit [222835] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix.
Use different enum value for the check. UP_DEVICE_LEVEL_NORMAL is only available on newer
upower.
- platform/glib/LowPowerModeNotifierGLib.cpp:
(WebCore::LowPowerModeNotifier::updateState):
- 12:46 AM Changeset in webkit [222834] by
-
- 9 edits2 adds in trunk
[GLib] Let WebCore know of low power situations
https://bugs.webkit.org/show_bug.cgi?id=177810
Reviewed by Carlos Garcia Campos.
.:
WebCore can use knowledge of low power situations to throttle timers and avoid expensive
checks, lowering power usage. We can use upower's warning level to let WebCore know we are
in such a situation.
- Source/cmake/OptionsGTK.cmake: depend on upower-glib.
- Source/cmake/FindUPowerGLib.cmake: Added.
Source/WebCore:
WebCore can use knowledge of low power situations to throttle timers and avoid expensive
checks, lowering power usage. We can use upower's warning level to let WebCore know we are
in such a situation.
No tests as there is no way to mock upower.
- PlatformGTK.cmake: add new file.
- PlatformWPE.cmake: add new file.
- platform/LowPowerModeNotifier.cpp: use upower-glib to know about low power situations.
- platform/LowPowerModeNotifier.h: includes upower header as UpClient and UpDevice are not forward
declaration-friendly.
- platform/glib/LowPowerModeNotifierGLib.cpp: Added.
(WebCore::LowPowerModeNotifier::LowPowerModeNotifier):
(WebCore::LowPowerModeNotifier::updateState): update low power mode from warning-level.
(WebCore::LowPowerModeNotifier::warningLevelCallback): track upower's warning-level to know when
a low power situation occurs.
(WebCore::LowPowerModeNotifier::~LowPowerModeNotifier): stop tracking the warning-level signal.
(WebCore::LowPowerModeNotifier::isLowPowerModeEnabled const):
Tools:
- gtk/install-dependencies: add upower-glib dev packages for Debian, Arch and Fedora.
- 12:33 AM Changeset in webkit [222833] by
-
- 3 edits2 adds in trunk
AX: [ATK] aria-pressed="mixed" should be exposed via ATK_STATE_INDETERMINATE
https://bugs.webkit.org/show_bug.cgi?id=177807
Reviewed by Chris Fleizach.
Source/WebCore:
Include toggle buttons in the element types for which the mixed state is checked
and exposed via ATK_STATE_INDETERMINATE if found. Also only do the role checks when
AccessibilityObject::isIndeterminate() has returned false.
Test: accessibility/gtk/aria-pressed-mixed-value.html
- accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(setAtkStateSetFromCoreObject):
LayoutTests:
- accessibility/gtk/aria-pressed-mixed-value-expected.txt: Added.
- accessibility/gtk/aria-pressed-mixed-value.html: Added.
- 12:32 AM Changeset in webkit [222832] by
-
- 4 edits1 add in trunk
AX: [ATK] ARIA tabpanel role should be exposed as ATK_ROLE_SCROLL_PANE
https://bugs.webkit.org/show_bug.cgi?id=177815
Reviewed by Chris Fleizach.
Source/WebCore:
Change the mapping of TabPanelRole from ATK_ROLE_PANEL to ATK_ROLE_SCROLL_PANE.
No new tests because this mapping is already covered by aria-tab-roles.html and
roles-exposed.html. The platform expectations for each test have been updated.
- accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):
LayoutTests:
Updated expectations to reflect new mapping.
- platform/gtk/accessibility/aria-tab-roles-expected.txt: Added.
- platform/gtk/accessibility/roles-exposed-expected.txt: Updated.