⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Jun 5, 2017:

11:30 PM Changeset in webkit [217821] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Rebaseline fast/mediacapturefromelement/CanvasCaptureMediaStream-2d-events.html and update TestExpectations.

Unreviewed test gardening.

  • fast/mediacapturefromelement/CanvasCaptureMediaStream-2d-events-expected.txt:
10:44 PM Changeset in webkit [217820] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip storage/domstorage/sessionstorage/set-item-synchronous-keydown.html on iOS.
https://bugs.webkit.org/show_bug.cgi?id=172943

Unreviewed test gardening.

  • platform/ios/TestExpectations:
9:53 PM Changeset in webkit [217819] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Try to fix features.json by adding an ESNext section.

Unreviewed.

  • features.json:
9:47 PM Changeset in webkit [217818] by Wenson Hsieh
  • 6 edits in trunk

Refactor -[WebItemProviderPasteboard valuesForPasteboardType:inItemSet:] to check readable types
https://bugs.webkit.org/show_bug.cgi?id=172891
<rdar://problem/32204540>

Reviewed by Darin Adler.

Source/WebCore:

Tweaks some logic in PlatformPasteboardIOS and WebItemProviderPasteboard to correctly construct objects in
-valuesForPasteboardType:inItemSet:. Previously, we have a hard-coded map of UTI type to Class in the form of
static helpers titled is{RichText, String, URL, Image, Color}Type in WebItemProviderPasteboard. We would use
these functions to determine whether an NSAttributedString, NSString, NSURL, UIImage or UIColor should be
constructed using the loaded item provider data. This is incorrect for some UTIs, such as public.html, which
cannot actually be used to construct an NSAttributedString -- this caused -valuesForPasteboardType:inItemSet: to
always return nil when attempting to create an object corresponding to public.html.

To fix this, we refactor -valuesForPasteboardType:inItemSet: to instead iterate through UIItemProviderReading-
conformant classes in search for a class that can be created for the given UTI type. If no such class exists, we
then fall back to custom WebKit handling of the dropped UTI type, which so far only includes reading an NSString
with public.plain-text if the UTI is public.html (i.e. reading the HTML source from loaded item provider data).

Covered by 2 new API tests:
DataInteractionTests.ExternalSourceHTMLToContentEditable
DataInteractionTests.ExternalSourceAttributedStringToContentEditable

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::stringForType):
(WebCore::PlatformPasteboard::readString):

In some cases, -[WebItemProviderPasteboard valuesForPasteboardType:inItemSet:] may now return an
NSAttributedString when an NSString was previously created. This adjusts for that possibility by returning just
the plain text, -[NSAttributedString string], if the read object was an NSAttributedString.

  • platform/ios/WebItemProviderPasteboard.mm:

(allLoadableClasses):
(classForTypeIdentifier):
(-[WebItemProviderPasteboard valuesForPasteboardType:inItemSet:]):

See description above for more details.

(isRichTextType): Deleted.
(isStringType): Deleted.
(isURLType): Deleted.
(isColorType): Deleted.
(isImageType): Deleted.

Removes these heuristics that attempt to "guess" the best UIItemProviderReading class to try and load for a
given UTI type.

  • rendering/RenderText.cpp:

(WebCore::RenderText::draggedContentRangesBetweenOffsets):

Adds a nil check to fix a debug assertion hit when running DataInteractionTests.

Tools:

Adds 2 new API tests to exercise data interaction of HTML data and an attributed string into a rich
contenteditable. See WebCore ChangeLog for more details.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(TestWebKitAPI::TEST):

9:00 PM Changeset in webkit [217817] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed GTK expectations gardening

Mark a few tests as crashing.

  • platform/gtk/TestExpectations:
8:51 PM Changeset in webkit [217816] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Follow-up: Update JSC's features.json
https://bugs.webkit.org/show_bug.cgi?id=172942

Rubber-stamped by Jon Davis.

  • features.json: Change "Supported in preview" to

"Supported" to try to fix <https://webkit.org/status/>.

8:22 PM Changeset in webkit [217815] by ggaren@apple.com
  • 2 edits in trunk/Source/bmalloc

Try to fix the GTK build.

Unreviewed.

  • bmalloc/List.h:
7:59 PM Changeset in webkit [217814] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

We don't properly parse init_expr when the opcode is an unexpected opcode
https://bugs.webkit.org/show_bug.cgi?id=172945

Reviewed by JF Bastien.

The bug is a simple typo. It should use the constant
true instead of false when invoking the WASM_PARSER_FAIL_IF
macro. This failure is already caught by spec tests that fail
on arm64 devices.

  • wasm/WasmModuleParser.cpp:
7:59 PM Changeset in webkit [217813] by Chris Dumez
  • 2 edits in trunk/LayoutTests

ASSERTION FAILED: RunLoop::isMain() in com.apple.WebKit: IPC::Connection::sendSyncMessage + 128
https://bugs.webkit.org/show_bug.cgi?id=172943
<rdar://problem/31288058>

Reviewed by Alexey Proskuryakov.

Make test clean a little bit more robust.

  • storage/domstorage/sessionstorage/set-item-synchronous-keydown.html:
7:34 PM Changeset in webkit [217812] by keith_miller@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

OMG tier up checks should be a patchpoint
https://bugs.webkit.org/show_bug.cgi?id=172944

Reviewed by Saam Barati.

Tier up checks in BBQ should be done as a patchpoint rather than individual B3 opcodes.
In order to reduce code generated out of line in each function. We generate a single stub
that pushes all the callee-saves. This looks like a 5-10% compile time speedup.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::emitTierUpCheck):
(JSC::Wasm::B3IRGenerator::addLoop):

  • wasm/WasmThunks.cpp:

(JSC::Wasm::triggerOMGTierUpThunkGenerator):

  • wasm/WasmThunks.h:
7:21 PM Changeset in webkit [217811] by ggaren@apple.com
  • 12 edits in trunk/Source/bmalloc

bmalloc: Small and large objects should share memory
https://bugs.webkit.org/show_bug.cgi?id=172880
<rdar://problem/31494732>

Reviewed by Sam Weinig.

This reduces our high water mark memory usage on JetStream on macOS
by 10%-20%. It also has the nice side effect that we can free small
object metadata after returning from a high water mark.

No change in throughput.

Our old algorithm allocated small object chunks and large objects in
segregated virtual memory and never recycled addresses between them.
This provided a slight security benefit because we could apply guard
pages between the segregated ranges and we would never reuse the same
virtual address for object and metadata memory.

Our new algorithm allocates small object chunks from the large object
allocator. This naturally recycles memory between small chunks and large
objects, and between small chunks of different page classes. This allows
us to shift memory between allocation types as a program moves between
different phases of allocation, and to delete small object chunk metadata
when a program shrinks back from a high water mark.

Two intuitions I had about memory use turned out to be backwards in
this context:

(1) I thought that this optimization would work because it allowed you to
allocate and free a 4MB object and then reuse that large allocation to
service small allocations. In practice, the common benefit seems to be
the opposite: After you allocate and free many small objects, you can
stitch them together to allocate a large object without growing the heap.

(2) I thought that it would be more memory-efficient to allocate
fine-grained pages from the large object allocator. In practice, giving
the large object allocator too many arbitrarily-sized ranges to manage
leads to fragmentation. Meanwhile, segregated fit is a powerful memory
optimization. So, it's best to return small object memory to the large
allocator only when a whole small object chunk is free.

  • bmalloc/Chunk.h:

(bmalloc::Chunk::ref):
(bmalloc::Chunk::deref):
(bmalloc::Chunk::refCount):
(bmalloc::Chunk::freePages): We keep a free list per chunk and refcount
each chunk so we can notice when a chunk becomes empty, and return it
to the large allocator.

(bmalloc::forEachPage): A new helper function for iterating the pages
in a Chunk.

(bmalloc::Chunk::Chunk): Use forEachPage instead of manual iteration.
Use { } initialization because we don't get zero-initialized by the OS
anymore.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::Heap):
(bmalloc::Heap::concurrentScavenge):
(bmalloc::Heap::scavenge): Don't bother unlocking while scavenging. I
wasn't able to show it to be a consistent speedup. A more promising
approach, if we find a motivating example, is for the scavenger to give
up and return early if any other client is waiting on the lock.

(bmalloc::Heap::allocateSmallChunk): New helper function for allocating
a small chunk. It allocates through the large allocator to facilitate
sharing. We still allocate a chunk at a time instead of a page at a time.
Surprisingly, more precise page-at-a-time allocation is worse for memory
use because of fragmentation. Segregated fit is a powerful optimization.

(bmalloc::Heap::deallocateSmallChunk): New helper function for deallocating
a small chunk.

(bmalloc::Heap::allocateSmallPage): Updated for new APIs.

(bmalloc::Heap::deallocateSmallLine): Updated for new APIs. Note that
we cache one free chunk per page class. This avoids churn in the large
allocator when you free(malloc(X)).

(bmalloc::Heap::allocateSmallBumpRangesByMetadata):
(bmalloc::Heap::allocateSmallBumpRangesByObject):
(bmalloc::Heap::tryAllocateLarge):
(bmalloc::Heap::scavengeSmallPages): Deleted.
(bmalloc::Heap::scavengeLargeObjects): Deleted.

  • bmalloc/Heap.h:
  • bmalloc/LargeMap.h:

(bmalloc::LargeMap::begin):
(bmalloc::LargeMap::end): Added iteration helpers for scavenging.

  • bmalloc/LargeRange.h:

(bmalloc::LargeRange::physicalSize): Added a comment about something
that I confused myself about in this patch.

  • bmalloc/List.h:

(bmalloc::List::iterator::operator*):
(bmalloc::List::iterator::operator->):
(bmalloc::List::iterator::operator!=):
(bmalloc::List::iterator::operator++):
(bmalloc::List::begin):
(bmalloc::List::end):
(bmalloc::List::pushFront):
(bmalloc::List::remove):
(bmalloc::ListNode::ListNode): Deleted. Added iteration helpers for
scavenging. Changed the default state of a Node to null pointers instead
of self pointers to distinguish the null node from the empty node for
easier debugging.

  • bmalloc/Sizes.h: Changed the chunk size to 1MB to increase the chances

of a chunk becoming free and recyclable.

  • bmalloc/SmallPage.h:

(bmalloc::SmallPage::hasPhysicalPages):
(bmalloc::SmallPage::setHasPhysicalPages): Track physical state by page
instead of implicitly by which list a page is in. It's simpler not
to have to move chunks and pages between physical vs virtual lists.

(bmalloc::SmallPage::SmallPage): Deleted.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::tryAllocateLargeChunk):
(bmalloc::VMHeap::allocateSmallChunk): Deleted.

  • bmalloc/VMHeap.h:

(bmalloc::VMHeap::allocateSmallPage): Deleted.
(bmalloc::VMHeap::deallocateSmallPage): Deleted. Small chunk allocation
just forwards to the large allocator now.

  • bmalloc/bmalloc.h:

(bmalloc::api::scavenge):

7:03 PM Changeset in webkit [217810] by Chris Dumez
  • 3 edits
    2 adds in trunk

ASSERTION FAILED: RunLoop::isMain() in com.apple.WebKit: IPC::Connection::sendSyncMessage + 128
https://bugs.webkit.org/show_bug.cgi?id=172943
<rdar://problem/31288058>

Reviewed by Alexey Proskuryakov.

Source/WebKit2:

In Connection::sendMessage(), make sure we only ever transform asynchronous messages into synchronous
ones if sendMessage() is called on the main thread. This is necessary because we no longer support
sending synchronous messages from a background thread since r205125.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendMessage):
(IPC::Connection::sendSyncMessage):

LayoutTests:

Add better test coverage.

  • storage/domstorage/sessionstorage/set-item-synchronous-keydown-expected.txt: Added.
  • storage/domstorage/sessionstorage/set-item-synchronous-keydown.html: Added.
5:03 PM Changeset in webkit [217809] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebKit2

Revert r217405, this headerpad increase is no longer needed.

Rubber-stamped by Dan Bernstein.

  • Configurations/BaseXPCService.xcconfig:
5:03 PM Changeset in webkit [217808] by Joseph Pecoraro
  • 4 edits in trunk/Source/JavaScriptCore

Remove unused VM members
https://bugs.webkit.org/show_bug.cgi?id=172941

Reviewed by Mark Lam.

  • runtime/HashMapImpl.h:

(JSC::HashMapImpl::selectStructure): Deleted.

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
4:52 PM Changeset in webkit [217807] by commit-queue@webkit.org
  • 17 edits
    1 add in trunk

Web Inspector: Improve ES6 Class instances in Heap Snapshot instances view
https://bugs.webkit.org/show_bug.cgi?id=172848
<rdar://problem/25709212>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-06-05
Reviewed by Saam Barati.

JSTests:

  • typeProfiler/inheritance.js:

Rewrite the test slightly for clarity. The hoisting was confusing.

  • heapProfiler/class-names.js: Added.

(MyES5Class):
(MyES6Class):
(MyES6Subclass):
Test object types and improved class names.

  • heapProfiler/driver/driver.js:

(CheapHeapSnapshotNode):
(CheapHeapSnapshot):
(createCheapHeapSnapshot):
(HeapSnapshot):
(createHeapSnapshot):
Update snapshot parsing from version 1 to version 2.

Source/JavaScriptCore:

  • heap/HeapSnapshotBuilder.h:
  • heap/HeapSnapshotBuilder.cpp:

Update the snapshot version. Change the node's 0 | 1 internal value
to be a 32bit bit flag. This is nice in that it is both compatible
with the previous snapshot version and the same size. We can use more
flags in the future.

(JSC::HeapSnapshotBuilder::json):
In cases where the classInfo gives us "Object" check for a better
class name by checking (o).proto.constructor.name. We avoid this
check in cases where (o).hasOwnProperty("constructor") which is the
case for most Foo.prototype objects. Otherwise this would get the
name of the Foo superclass for the Foo.prototype object.

  • runtime/JSObject.cpp:

(JSC::JSObject::calculatedClassName):
Handle some possible edge cases that were not handled before. Such
as a JSObject without a GlobalObject, and an object which doesn't
have a default getPrototype. Try to make the code a little clearer.

Source/WebInspectorUI:

  • UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:

(HeapSnapshot):
Support the new snapshot version. The only thing that changes are the
node flags, and its actually completely compatible with version 1.

(HeapSnapshot.updateCategoriesAndMetadata):
List the count of object type instances in each class category.

(HeapSnapshot.prototype.serializeNode):
Include whether or not the node is an object type.

  • UserInterface/Proxies/HeapSnapshotNodeProxy.js:

(WebInspector.HeapSnapshotNodeProxy):
(WebInspector.HeapSnapshotNodeProxy.deserialize):
Add a new Node isObjectType property based on the new data.

  • UserInterface/Views/HeapSnapshotClassDataGridNode.js:

(WebInspector.HeapSnapshotClassDataGridNode.prototype.createCellContent):

  • UserInterface/Views/HeapSnapshotClusterContentView.js:

(WebInspector.HeapSnapshotClusterContentView.iconStyleClassNameForClassName):
If a class contains 50% or more object type instances then it as such
instead of defaulting to native.

  • UserInterface/Views/HeapSnapshotDataGridTree.js:

(WebInspector.HeapSnapshotInstancesDataGridTree.prototype.populateTopLevel):

  • UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:

(WebInspector.HeapSnapshotInstanceDataGridNode.prototype.createCellContent):
We can be more specific than the default if the individual instance is
known to be an object type.

LayoutTests:

  • inspector/unit-tests/heap-snapshot-expected.txt:
  • inspector/unit-tests/heap-snapshot.html:

Update for the new node flag.

4:51 PM Changeset in webkit [217806] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix for macOS 10.12

  • platform/spi/cocoa/AVKitSPI.h:
4:32 PM Changeset in webkit [217805] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Update JSC's features.json
https://bugs.webkit.org/show_bug.cgi?id=172942

Rubber stamped by Mark Lam.

  • features.json:
4:22 PM Changeset in webkit [217804] by jmarcell@apple.com
  • 5 edits in branches/safari-603-branch/Source

Versioning.

4:15 PM Changeset in webkit [217803] by mitz@apple.com
  • 6 edits in trunk/Source

Tried to fix the build when targrting macOS 10.12 using the macOS 10.13 developer beta SDK.

Source/WebCore:

  • platform/mac/WebPlaybackControlsManager.h:
  • platform/mac/WebPlaybackControlsManager.mm:

(-[WebPlaybackControlsManager togglePictureInPicture]):

Source/WebKit2:

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::mediaPlaybackControlsView):

4:04 PM Changeset in webkit [217802] by mitz@apple.com
  • 5 edits in trunk/Source

Tried to fix the build when targrting macOS 10.12 using the macOS 10.13 developer beta SDK.

Source/WebCore:

  • platform/spi/cocoa/AVKitSPI.h:

Source/WebKit/mac:

  • WebView/WebView.mm:

(-[WebView updateMediaTouchBar]):

  • WebView/WebViewData.h:
4:01 PM Changeset in webkit [217801] by dbates@webkit.org
  • 2 edits
    1 add in trunk/Tools

webkitpy: Abstract Executive class
https://bugs.webkit.org/show_bug.cgi?id=172928
<rdar://problem/32569531>

Reviewed by Ryosuke Niwa.

Adds an AbstractExecutive class and makes Executive extend AbstractExecutive.
This will make it straightforward to create additional derived classes that
adhere to the same interface, say for iOS on-device testing.

  • Scripts/webkitpy/common/system/abstractexecutive.py: Added.

(AbstractExecutive):
(AbstractExecutive.run_and_throw_if_fail):
(AbstractExecutive.cpu_count):
(AbstractExecutive.interpreter_for_script):
(AbstractExecutive.shell_command_for_script):
(AbstractExecutive.kill_process):
(AbstractExecutive.check_running_pid):
(AbstractExecutive.running_pids):
(AbstractExecutive.wait_newest):
(AbstractExecutive.wait_limited):
(AbstractExecutive.interrupt):
(AbstractExecutive.default_error_handler):
(AbstractExecutive.ignore_error):
(AbstractExecutive._stringify_args):
(AbstractExecutive.command_for_printing):
(AbstractExecutive.run_command):
(AbstractExecutive.popen):
(AbstractExecutive.run_in_parallel):

  • Scripts/webkitpy/common/system/executive.py:

(Executive):
(Executive.cpu_count):
(Executive.running_pids):
(Executive.kill_all):
(Executive._compute_stdin):
(Executive.interpreter_for_script): Deleted.
(Executive.shell_command_for_script): Deleted.
(Executive.wait_newest): Deleted.
(Executive.wait_limited): Deleted.
(Executive.default_error_handler): Deleted.
(Executive.ignore_error): Deleted.
(Executive.command_for_printing): Deleted.

3:41 PM Changeset in webkit [217800] by Konstantin Tokarev
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix missing semicolon in r217795

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::calculateNaturalSize):

3:40 PM Changeset in webkit [217799] by jer.noble@apple.com
  • 28 edits
    4 adds in trunk/Source

Allow clients to specify a list of codecs which should require hardware decode support.
https://bugs.webkit.org/show_bug.cgi?id=172787

Reviewed by Alex Christensen.

Source/WebCore:

Add a new setting, checked by HTMLMediaElement, which allows MediaPlayerPrivate implementation
to require that the specified codecs have hardware support. This requirement will be supported
in the normal media loading path and the MSE path on Cocoa ports.

  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaCodecsRequiringHardwareSupport):

  • html/HTMLMediaElement.h:
  • page/Settings.cpp:

(WebCore::Settings::setMediaCodecsRequiringHardwareSupport):

  • page/Settings.h:

(WebCore::Settings::mediaCodecsRequiringHardwareSupport):

  • platform/cocoa/VideoToolboxSoftLink.cpp:
  • platform/cocoa/VideoToolboxSoftLink.h:
  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaCodecsRequiringHardwareSupport):

  • platform/graphics/avfoundation/objc/AVAssetTrackUtilities.h: Added.
  • platform/graphics/avfoundation/objc/AVAssetTrackUtilities.mm: Added.

(WebCore::assetTrackMeetsHardwareDecodeRequirements):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::checkPlayability):
(WebCore::MediaPlayerPrivateAVFoundationObjC::assetStatus):

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset):

Source/WebKit2:

Add a WKWebPageConfiguration (and associated WebPreferences and WKPreferencesRef) properties
allowing clients to require specified codecs have hardware decode support. Also open up the
sandbox on Cocoa ports to services required to check for hardware decode availability.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetMediaCodecsRequiringHardwareSupport):
(WKPreferencesCopyMediaCodecsRequiringHardwareSupport):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _mediaCodecsRequiringHardwareSupport]):
(-[WKWebViewConfiguration _setMediaCodecsRequiringHardwareSupport:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

Add a couple of convenience methods:

  • a String::split() that returns a vector (rather than taking an out-reference to a vector).
  • A Vector::map() template which takes a Callable and returns a Vector of a different type.
  • wtf/Vector.h:

(WTF::Vector::map):

  • wtf/text/WTFString.h:

(WTF::String::split):

3:28 PM Changeset in webkit [217798] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Tried to fix the build when targrting macOS 10.12 using the macOS 10.13 developer beta SDK.

  • platform/mac/WebPlaybackControlsManager.mm:

(-[WebPlaybackControlsManager togglePictureInPicture]):

3:12 PM Changeset in webkit [217797] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Tried to fix the build when targrting macOS 10.12 using the macOS 10.13 developer beta SDK.

  • platform/spi/mac/AVFoundationSPI.h:
2:54 PM Changeset in webkit [217796] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Tried to fix the build when targrting macOS 10.12 using the macOS 10.13 developer beta SDK.

  • platform/spi/cocoa/IOSurfaceSPI.h:
2:45 PM Changeset in webkit [217795] by Konstantin Tokarev
  • 3 edits in trunk/Source/WebCore

Fix MediaPlayerPrivateMediaFoundation::naturalSize
https://bugs.webkit.org/show_bug.cgi?id=172908

Reviewed by Alex Christensen.

MediaPlayerPrivateMediaFoundation::naturalSize should return size of
video frame corrected by PAR, not size of video element.

No new tests needed.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::load):
(WebCore::MediaPlayerPrivateMediaFoundation::naturalSize):
(WebCore::MediaPlayerPrivateMediaFoundation::setNaturalSize):
(WebCore::calculateNaturalSize):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::setMediaType):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
2:04 PM Changeset in webkit [217794] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Destroy the associated renderer subtree when display: contents node is deleted.
https://bugs.webkit.org/show_bug.cgi?id=172920
<rdar://problem/32446045>

Reviewed by Antti Koivisto.

Since display: contents node does not create a renderer, we need to explicitly check
and distinguish it from the display: none case.

Covered by existing tests.

  • dom/ContainerNode.cpp:

(WebCore::destroyRenderTreeIfNeeded):

  • dom/Node.cpp:

(WebCore::Node::~Node): Promote ASSERT(!renderer()) to ASSERT_WITH_SECURITY_IMPLICATION.

  • dom/Text.cpp:

(WebCore::Text::~Text): Redundant assert. Text is a Node.

2:00 PM Changeset in webkit [217793] by Jonathan Bedard
  • 3 edits in trunk/Tools

webkitpy: Add iOS to platform
https://bugs.webkit.org/show_bug.cgi?id=172931

Reviewed by Daniel Bates.

  • Scripts/webkitpy/common/system/platforminfo.py:

PlatformInfo.init): Use platform_module.release() as the os_version for iOS device.
(PlatformInfo.is_ios): Added.
(PlatformInfo._determine_os_name): A platform name of 'ios' means that the os name is 'ios'.

  • Scripts/webkitpy/common/system/platforminfo_mock.py:

(MockPlatformInfo.is_ios): Added.

1:54 PM Changeset in webkit [217792] by clopez@igalia.com
  • 2 edits in trunk/Tools

[WPE][JHBuild] Switch github repository from git:// to https://
https://bugs.webkit.org/show_bug.cgi?id=172921

Reviewed by Alex Christensen.

  • wpe/jhbuild.modules:
1:29 PM Changeset in webkit [217791] by Beth Dakin
  • 16 edits in trunk/Source

Modify Netflix controlsManager quirk to prevent only scrubbing
https://bugs.webkit.org/show_bug.cgi?id=172881
-and corresponding-
rdar://problem/32228660

Reviewed by Andy Estes.

Source/WebCore:

Instead of preventing Netflix from getting a controlsManager at all, this patch
ONLY prevents touch bar scrubbing from working. This means that Netflix will now
get controls in the TouchBar, it means that the play/pause and PiP buttons will be
functional, and it means that the timeline will accurately represent the current
time, BUT users will not be able to use the timeline to scrub the video. This also
allows Netflix to work with other MediaRemote clients such as AirPods.

Remove the quirk code from here, since this is no longer the right place to test
if the MediaElement is hosted at Netflix.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::bestMediaElementForShowingPlaybackControlsManager):
(WebCore::needsPlaybackControlsManagerQuirk): Deleted.

Pass around a new bool allowsTouchBarScrubbing.

  • platform/cocoa/WebPlaybackSessionModel.h:

(WebCore::WebPlaybackSessionModelClient::allowsTouchBarScrubbingChanged):

  • platform/cocoa/WebPlaybackSessionModelMediaElement.h:

Here’s where we check if we need quirky behavior.

  • platform/cocoa/WebPlaybackSessionModelMediaElement.mm:

(WebCore::WebPlaybackSessionModelMediaElement::updateForEventName):
(WebCore::WebPlaybackSessionModelMediaElement::allowsTouchBarScrubbing):

Return the bool we have plumbed through tracking whether the current site
allowsTouchBarScrubbing from the existing delegate method
canBeginTouchBarScrubbing. We will always return NO for video elements on Netflix,
and this will prevent users from be able to scrub with the TouchBar on Netflix.

  • platform/mac/WebPlaybackControlsManager.h:
  • platform/mac/WebPlaybackControlsManager.mm:

(-[WebPlaybackControlsManager canBeginTouchBarScrubbing]):

More plumbing.

  • platform/mac/WebPlaybackSessionInterfaceMac.h:
  • platform/mac/WebPlaybackSessionInterfaceMac.mm:

(WebCore::WebPlaybackSessionInterfaceMac::allowsTouchBarScrubbingChanged):
(WebCore::WebPlaybackSessionInterfaceMac::setPlayBackControlsManager):

Source/WebKit2:

Plumbing for allowsTouchBarScrubbing. See WebCore ChangeLog for more details.

  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h:
  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.messages.in:
  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm:

(WebKit::WebPlaybackSessionModelContext::setAllowsTouchBarScrubbing):
(WebKit::WebPlaybackSessionManagerProxy::setAllowsTouchBarScrubbing):

  • WebProcess/cocoa/WebPlaybackSessionManager.h:
  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionInterfaceContext::allowsTouchBarScrubbingChanged):
(WebKit::WebPlaybackSessionManager::allowsTouchBarScrubbingChanged):

11:19 AM Changeset in webkit [217790] by jmarcell@apple.com
  • 1 copy in tags/Safari-603.3.4

Tag Safari-603.3.4.

10:49 AM Changeset in webkit [217789] by sbarati@apple.com
  • 2 edits in trunk/Websites/browserbench.org

Update index.html to include ARES-6.

Rubber stamped by Ryosuke Niwa.

  • index.html:
9:50 AM Changeset in webkit [217788] by Ryan Haddad
  • 6 edits
    8 adds in branches/safari-603-branch/LayoutTests

Merge r216126.

9:35 AM Changeset in webkit [217787] by Ryan Haddad
  • 41 edits
    2 adds in trunk/LayoutTests

Rebaseline tests for Windows after r217772.
https://bugs.webkit.org/show_bug.cgi?id=172866

Unreviewed test gardening.

  • platform/win/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
  • platform/win/svg/W3C-SVG-1.1/animate-elem-06-t-expected.txt:
  • platform/win/svg/W3C-SVG-1.1/animate-elem-07-t-expected.txt:
  • platform/win/svg/W3C-SVG-1.1/animate-elem-08-t-expected.txt:
  • platform/win/svg/W3C-SVG-1.1/animate-elem-83-t-expected.txt:
  • platform/win/svg/W3C-SVG-1.1/filters-example-01-b-expected.txt:
  • platform/win/svg/W3C-SVG-1.1/paths-data-01-t-expected.txt:
  • platform/win/svg/W3C-SVG-1.1/paths-data-02-t-expected.txt:
  • platform/win/svg/W3C-SVG-1.1/paths-data-12-t-expected.txt:
  • platform/win/svg/W3C-SVG-1.1/text-path-01-b-expected.txt:
  • platform/win/svg/batik/filters/feTile-expected.txt:
  • platform/win/svg/batik/filters/filterRegions-expected.txt:
  • platform/win/svg/batik/masking/maskRegions-expected.txt:
  • platform/win/svg/batik/paints/gradientLimit-expected.txt:
  • platform/win/svg/batik/paints/patternPreserveAspectRatioA-expected.txt:
  • platform/win/svg/batik/paints/patternRegionA-expected.txt:
  • platform/win/svg/batik/paints/patternRegions-expected.txt:
  • platform/win/svg/batik/paints/patternRegions-positioned-objects-expected.txt: Added.
  • platform/win/svg/batik/text/longTextOnPath-expected.txt: Added.
  • platform/win/svg/batik/text/smallFonts-expected.txt:
  • platform/win/svg/batik/text/textAnchor-expected.txt:
  • platform/win/svg/batik/text/textDecoration-expected.txt:
  • platform/win/svg/batik/text/textEffect-expected.txt:
  • platform/win/svg/batik/text/textEffect2-expected.txt:
  • platform/win/svg/batik/text/textEffect3-expected.txt:
  • platform/win/svg/batik/text/textFeatures-expected.txt:
  • platform/win/svg/batik/text/textGlyphOrientationHorizontal-expected.txt:
  • platform/win/svg/batik/text/textLayout-expected.txt:
  • platform/win/svg/batik/text/textLayout2-expected.txt:
  • platform/win/svg/batik/text/textLength-expected.txt:
  • platform/win/svg/batik/text/textOnPathSpaces-expected.txt:
  • platform/win/svg/batik/text/textPosition-expected.txt:
  • platform/win/svg/batik/text/textProperties-expected.txt:
  • platform/win/svg/batik/text/textProperties2-expected.txt:
  • platform/win/svg/batik/text/textStyles-expected.txt:
  • platform/win/svg/custom/broken-internal-references-expected.txt:
  • platform/win/svg/custom/path-textPath-simulation-expected.txt:
  • platform/win/svg/dom/SVGPathSegList-segment-modification-expected.txt:
  • platform/win/svg/hixie/perf/001-expected.txt:
  • platform/win/svg/hixie/perf/002-expected.txt:
  • platform/win/svg/text/text-path-01-b-expected.txt:
  • platform/win/svg/zoom/page/zoom-svg-through-object-with-override-size-expected.txt:
9:27 AM Changeset in webkit [217786] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

[GStreamer] Deadlock in MediaPlayerPrivateGStreamer::changePipelineState, web process often locks up on seeking in a youtube video that has already fully buffered
https://bugs.webkit.org/show_bug.cgi?id=170003

Reviewed by Michael Catanzaro.

When video sink is requested to render a frame, the GstBaseSink preroll mutex is taken. Then WebKit media player
schedules a repaint in the main thread, taking the draw mutex and waiting on draw condition. It can happen that
before the repaint is done in the main thread, a pause is requested in the main thread, causing a change state
from PLAYING to PAUSE. When the change state reaches the video sink gst_base_sink_change_state() tries to get
the preroll mutex. This causes a deadlock because the main thread is waiting to get the preroll mutex, but the
other thread is waiting for the main thread to do the repaint. GStreamer handles this case by calling unlock()
on the video sink before trying to get the preroll mutex, but the media player doesn't cancel the pending
repaint when using coordinated graphics. This patch adds a new signal to WebKitVideoSink "repaint-cancelled" to
notify the media player to cancel the pending prepaint.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::cancelRepaint): Release the draw mutex and notify the condition.
(WebCore::MediaPlayerPrivateGStreamerBase::repaintCancelledCallback): Call cancelRepaint().
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink): Connect to WebKitVideoSink::repaint-cancelled.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:

(webkitVideoSinkRepaintCancelled): Emit WebKitVideoSink::repaint-cancelled.
(webkitVideoSinkUnlock): Call webkitVideoSinkRepaintCancelled().
(webkitVideoSinkStop): Ditto.
(webkit_video_sink_class_init): Add WebKitVideoSink::repaint-cancelled signal.

9:25 AM Changeset in webkit [217785] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

[GStreamer] Cleanup ifdefs in MediaPlayerPrivateGStreamerBase
https://bugs.webkit.org/show_bug.cgi?id=172918

Reviewed by Michael Catanzaro.

The code in MediaPlayerPrivateGStreamerBase is quite difficult to follow with all the ifdefs for the
possibilities when rendering. Some of them are even dead code now that all ports using GStreamer are using also
coordinated graphics.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):
(WebCore::MediaPlayerPrivateGStreamerBase::repaint):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:

(VideoRenderRequestScheduler::VideoRenderRequestScheduler):
(VideoRenderRequestScheduler::stop):
(VideoRenderRequestScheduler::requestRender):
(webkitVideoSinkRequestRender):

9:05 AM Changeset in webkit [217784] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix compile warning when building GTK+ port without OpenGL.

  • platform/graphics/texmap/BitmapTexturePool.cpp:

(WebCore::BitmapTexturePool::createTexture):

9:03 AM Changeset in webkit [217783] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix GTK+ build with OpenGL disabled after r217779.

  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::mainFrameContentSizeChanged):

8:59 AM Changeset in webkit [217782] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Remove debug-only flag for flaky test http/tests/navigation/statistics.html.
https://bugs.webkit.org/show_bug.cgi?id=172454

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
8:42 AM Changeset in webkit [217781] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

ASSERTION FAILED: m_currentScriptCallbackID in UIScriptContext::requestUIScriptCompletion(JSStringRef) running fast/events/ios/autocorrect-with-range-selection.html
https://bugs.webkit.org/show_bug.cgi?id=172887
<rdar://problem/32546061>

Reviewed by Sam Weinig.

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::applyAutocorrection):
applyAutocorrection can call its completion handler synchronously,
which makes UIScriptController unhappy (see bug 172884).

5:33 AM Changeset in webkit [217780] by magomez@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Do not force video sample's buffer release when the platformLayerProxy is inactive
https://bugs.webkit.org/show_bug.cgi?id=172916

Reviewed by Carlos Garcia Campos.

When MediaPlayerPrivateGStreamerBase's plarformLayerProxy was inactive, a copy of the video sample
was being done (without the buffer) and set, causing the sample's buffer to get freed. This was done
to avoid stalling the gstreamer pipeline in situations where the video was set to display:none, as the
platformLayerProxy would keep all the available buffers. But this can't happen nowadays as setting
the video to display:none invalidates the proxy, causing it to release the references to the
gstreamer buffers it's using. Also, the current code is causing a crash when using gstreamer-gl and
the video is hidden but its contents are being painted through webgl or an accelerated canvas. So,
remove this sample copy as it's not necessary anymore.

Covered by existent tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):

5:01 AM Changeset in webkit [217779] by Carlos Garcia Campos
  • 9 edits
    4 deletes in trunk/Source/WebKit2

[WPE] Use AcceleratedDrawingArea instead of its fork
https://bugs.webkit.org/show_bug.cgi?id=172496

Reviewed by Žan Doberšek.

WPE uses its own drawing area implementation, which is actually a fork of AcceleratedDrawingArea, but simplified
for the case of compositing being always forced. AcceleratedDrawingArea already handles the case of compositing
being forced, so now that WPE is upstream we could simply use AcceleratedDrawingArea instead.

  • PlatformWPE.cmake:
  • Shared/DrawingAreaInfo.h: Remove DrawingAreaTypeWPE type.
  • UIProcess/API/wpe/DrawingAreaProxyWPE.cpp: Removed.
  • UIProcess/API/wpe/DrawingAreaProxyWPE.h: Removed.
  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::createDrawingAreaProxy): Create an AcceleratedDrawingAreaProxy.

  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::mainFrameContentSizeChanged): Moved from DrawingAreaImpl since it actually
belongs here.

  • WebProcess/WebPage/DrawingArea.cpp:

(WebKit::DrawingArea::create): Create an AcceleratedDrawingArea for WPE port.

  • WebProcess/WebPage/DrawingAreaImpl.cpp: Remove mainFrameContentSizeChanged() that doesn't belong here.
  • WebProcess/WebPage/DrawingAreaImpl.h:
  • WebProcess/WebPage/wpe/DrawingAreaWPE.cpp: Removed.
  • WebProcess/WebPage/wpe/DrawingAreaWPE.h: Removed.
2:11 AM Changeset in webkit [217778] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Rebaseline media/modern-media-controls/audio/audio-controls-metrics.html
https://bugs.webkit.org/show_bug.cgi?id=172915

Patch by Antoine Quint <Antoine Quint> on 2017-06-05
Reviewed by Antoine Quint.

The default height of <audio> elements is now 31pt.

  • media/modern-media-controls/audio/audio-controls-metrics-expected.txt:
  • media/modern-media-controls/audio/audio-controls-metrics.html:
12:45 AM Changeset in webkit [217777] by magomez@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Fix the condition to decide whether the MediaPlayer can be rendered accelerated
https://bugs.webkit.org/show_bug.cgi?id=172852

Reviewed by Michael Catanzaro.

Before this change, in order to determine whether the MediaPlayer rendering could be accelerated we
needed the player to have a renderer or it would return false. The renderer was needed in order to
access the RenderLayerCompositor and check whether the chrome would be overwriting the accelerated
compositing setting. But we don't have that option in WebKitGTK+ or WPE, so we can just check the
accelerated compositing setting directly.

Another problems with the approach before this change is that accelerated rendering was being disabled
when the video element was not visible, as there's no video renderer. Due to this, cases where the video
is painted through an accelerated canvas or webgl would not be using hardware accelerated copies.

Covered by existent tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::acceleratedRenderingStateChanged):

Jun 4, 2017:

11:09 PM Changeset in webkit [217776] by Simon Fraser
  • 5 edits
    2 adds in trunk

Percentages are calculated wrong in SVG transform CSS property
https://bugs.webkit.org/show_bug.cgi?id=172901

Reviewed by Zalan Bujtas.
Source/WebCore:

The code added in r217236 was just fetching viewBox(), but that can be empty.
SVGLengthContext::determineViewport() does the correct thing to get
the appropriate viewport.

Test: svg/transforms/percent-transform-values-viewbox.html

  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::animatedLocalTransform):

LayoutTests:

  • svg/transforms/percent-transform-values-viewbox-expected.html: Added.
  • svg/transforms/percent-transform-values-viewbox.html: Added.
  • svg/transforms/transform-origin-css-property-expected.xhtml:
  • svg/transforms/transform-origin-css-property.xhtml: Make this test a bit less

annoying to maintain by applying the transforms relative to the fill-box, which means all
the transform origins are no longer offset by the box position. Other tests exercise
view-box relative transform origins.

1:56 PM Changeset in webkit [217775] by eric.carlson@apple.com
  • 8 edits
    2 adds in trunk

[MediaStream] Page capture state not reported correctly
https://bugs.webkit.org/show_bug.cgi?id=172897
<rdar://problem/32493318>

Reviewed by Youenn Fablet.

Source/WebCore:

Test: fast/mediastream/media-stream-track-muted.html

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::mediaState): Test for audio and video mute on the tracks.
(WebCore::MediaStream::characteristicsChanged): Call statusDidChange when m_mediaState
changes instead of m_muted, so the page is informed when just audio or video mute state
changes.

  • Modules/mediastream/MediaStream.h:
  • testing/Internals.cpp:

(WebCore::Internals::setMediaStreamTrackMuted): New.

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • fast/mediastream/media-stream-track-muted-expected.txt: Added.
  • fast/mediastream/media-stream-track-muted.html: Added.
11:19 AM Changeset in webkit [217774] by Darin Adler
  • 26 edits in trunk/Source

Streamline handling of attributes, using references as much as possible
https://bugs.webkit.org/show_bug.cgi?id=172899

Reviewed by Chris Dumez.

Source/WebCore:

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::valueForRange): Use reference to value of
attribute instead of copy to avoid reference count churn.
(WebCore::AccessibilityNodeObject::maxValueForRange): Ditto.
(WebCore::AccessibilityNodeObject::minValueForRange): Ditto.

  • accessibility/AccessibilitySVGElement.cpp:

(WebCore::AccessibilitySVGElement::childElementWithMatchingLanguage): Ditto.
(WebCore::AccessibilitySVGElement::accessibilityDescription): Ditto.

  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::StyleAttributeMutationScope::StyleAttributeMutationScope): Ditto.

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::shouldCancelDefaultAction): Use the
equalLettersIgnoringASCIICase function instead of using
both equalIgnoringASCIICase and convertToASCIILowercase.

  • html/HTMLAudioElement.cpp:

(WebCore::HTMLAudioElement::HTMLAudioElement): Marked this inline since we
want it inlined the one place it's used.
(WebCore::HTMLAudioElement::create): Use auto and named the local variable
just element.
(WebCore::HTMLAudioElement::createForJSConstructor): Call create rather than
repeating the code from create. Use setAttributeWithoutSynchronization directly
rather than calling helper functions. Removed unneeded null check;
setAttributeWithoutSynchronization handles null by removing the attribute.

  • html/HTMLAudioElement.h: Changed src argument of createForJSConstructor to

take AtomicString since that is what we need for an attribute value.

  • html/HTMLAudioElement.idl: Use [AtomicString] for src argument.
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::directionality): Use reference to value of
attribute instead of copy to avoid reference count churn.
(WebCore::HTMLElement::shouldAutocorrect): Ditto.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement): Call the new
parsedMediaAttribute instead of the old mediaQuerySet function. Other than the
name, the only change is that the result is now a const pointer.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::updateType): Removed unnecessary local variable,
resulting in code that is slightly cleaner and possibly eliminating reference
count chrun.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setSrc): Deleted.
(WebCore::HTMLMediaElement::selectNextSourceChild): Use parsedMediaAttribute and
removed rendudant direct check of whether mediaAttr is present. Changed logging to
get the media attribute directly rather than with a helper function. Changed type
to get the type attribute directly rather than with a helper function.
(WebCore::HTMLMediaElement::sourceWasAdded): Take a reference rather than a pointer.
(WebCore::HTMLMediaElement::sourceWasRemoved): Ditto.
(WebCore::HTMLMediaElement::doesHaveAttribute): Use reference to value of
attribute instead of copy to avoid reference count churn.

  • html/HTMLMediaElement.h: Updated for the above.
  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto): Pass reference instead of pointer.
(WebCore::HTMLSourceElement::removedFrom): Ditto.
(WebCore::HTMLSourceElement::setSrc): Deleted.
(WebCore::HTMLSourceElement::media): Deleted.
(WebCore::HTMLSourceElement::setMedia): Deleted.
(WebCore::HTMLSourceElement::type): Deleted.
(WebCore::HTMLSourceElement::setType): Deleted.
(WebCore::HTMLSourceElement::parseAttribute): Clear out m_cachedParsedMediaAttribute.
This makes the parsing be lazy. The old code would parse the attribute value to make
a MediaQuerySet here, but we do it in parsedMediaAttribute now.
(WebCore::HTMLSourceElement::parsedMediaAttribute): Added. Creates a MediaQuerySet
if needed, and returns it or null.

  • html/HTMLSourceElement.h: Removed include of MediaList.h. Removed unneeded media,

type, setSrc, setMedia, and setType functions. Replaced the mediaQuerySet function
with the parsedMediaAttribute, which returns a const pointer rather than non-const,
and is also non-inline because it lazily creates the MediaQuerySet as needed. Replaced
m_mediaQuerySet with m_cachedParsedMediaAttribute.

  • html/HTMLSourceElement.idl: Use [Reflect] for both type and media.
  • html/MediaDocument.cpp: Modernize the MediaDocumentParser constructor.

(WebCore::MediaDocumentParser::createDocumentStructure): Instead of setSrc, use
setAttributeWithoutSynchronization for the src attribute just as we do for all the
other attributes of the newly created video element.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::wirelessVideoPlaybackDisabled): Use reference to
value of attribute instead of copy to avoid reference count churn.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::defaultSubstituteDataForURL): Ditto.

  • rendering/RenderThemeIOS.mm:

(WebCore::getAttachmentProgress): Ditto.

  • rendering/RenderThemeMac.mm:

(WebCore::AttachmentLayout::layOutSubtitle): Ditto.
(WebCore::RenderThemeMac::paintAttachment): Ditto.

  • svg/SVGHKernElement.cpp:

(WebCore::SVGHKernElement::buildHorizontalKerningPair): Ditto.

  • svg/SVGVKernElement.cpp:

(WebCore::SVGVKernElement::buildVerticalKerningPair): Ditto.

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::buildPendingResource): Ditto. Also use parentElement
instead of writing out code that does exactly what it does.

Source/WebKit/mac:

  • WebView/WebHTMLRepresentation.mm:

(matchLabelsAgainstElement): Added handling of nullptr since nothing guarantees the
passed in element can't be null. Removed unnecessary conversion from NSString to String
and then back to NSString.

11:00 AM Changeset in webkit [217773] by weinig@apple.com
  • 41 edits
    38 adds
    4 deletes in trunk

Can't use Object.defineProperty() to add an item to a DOMStringMap or Storage
https://bugs.webkit.org/show_bug.cgi?id=172687

Reviewed by Darin Adler.

Source/WebCore:

  • Adds support for generating the defineOwnProperty ClassInfo method table hook to add support for Object.defineProperty(). The implementation follows WebIDL section 3.9.3 DefineOwnProperty. (https://heycam.github.io/webidl/#legacy-platform-object-defineownproperty)
  • Adds support for generating named setters in addition to the already supported indexed setters as much of the required work was needed to make defineOwnProperty work for those properties. This patch does not aim to follow WebIDL faithfully, but rather to generate as close to the custom code as possible. A follow up change will attempt to match WebIDL more closely (which will also require changes to GetOwnPropertySlot).
  • Removes the need for custom bindings in DOMStringMap, HTMLOptionsCollection and HTMLSelectElement. Gets us one function away from supporting Storage.
  • Tidies up generated headers a bit by grouping all the ClassInfo method table hooks together.
  • Removes support for CustomIndexedSetter, which is no longer used.

Test: js/dom/legacy-platform-object-defineOwnProperty.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:

Removed now unneeded custom bindings.

  • bindings/js/JSDOMStringMapCustom.cpp: Removed.
  • bindings/js/JSHTMLOptionsCollectionCustom.cpp: Removed.
  • bindings/js/JSHTMLSelectElementCustom.cpp: Removed.
  • bindings/js/JSHTMLSelectElementCustom.h: Removed.
  • bindings/js/JSStorageCustom.cpp:

(WebCore::JSStorage::putDelegate): Deleted.
Remove more code that is now generated.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateIndexedGetter):

  • Add missing check for indexed setter operation when determining if the property should be ReadOnly.
  • Add support for custom implementation name, matching GenerateNamedGetter.
  • Convert to taking an outputArray and indent to allow more flexibility going forward.

(GenerateNamedGetter):

  • Add missing check for named setter operation when determining if the property should be ReadOnly.
  • Convert to taking an outputArray and indent to allow more flexibility going forward.

(GenerateGetOwnPropertySlotBody):

  • Convert to taking an outputArray and indent to allow more flexibility going forward.
  • Take over responsibility for checking and bailing if CustomGetOwnPropertySlot is set.

(GenerateGetOwnPropertySlotBodyByIndex):

  • Convert to taking an outputArray and indent to allow more flexibility going forward.
  • Take over responsibility for checking and bailing if CustomGetOwnPropertySlotByIndex is set.

(GenerateGetOwnPropertyNames):

  • Convert to taking an outputArray and indent to allow more flexibility going forward.
  • Take over responsibility for checking and bailing if CustomEnumerateProperty is set.

(GenerateInvokeIndexedPropertySetter):
Added. Implements the 'invoke an indexed property setter' algorithm (https://heycam.github.io/webidl/#invoke-indexed-setter)

(GenerateInvokeNamedPropertySetter):
Added. Implements the 'invoke a named property setter' algorithm (https://heycam.github.io/webidl/#invoke-named-setter)

(GeneratePut):
(GeneratePutByIndex):

  • Convert to taking an outputArray and indent to allow more flexibility going forward.
  • Take over responsibility for checking and bailing if CustomPut is set.
  • Adds support for CEReactions.
  • Adopts GenerateInvokeIndexedPropertySetter and GenerateInvokeNamedPropertySetter to simplify code.
  • Removes support for CustomIndexedSetter, which is no longer used.
  • Replaces use direct checking of OverrideBuiltins with check if any interface it inherits has it, which is how it is specified to work.

(GenerateIsUnforgeablePropertyName):
Added. Helper subroutine to generate a function that compares a property name
agains all the property names defined as Unforgeable on the interface. Used by
GenerateDefineOwnProperty.

(GenerateDefineOwnProperty):
Added. Implements section 3.9.3 DefineOwnProperty (https://heycam.github.io/webidl/#legacy-platform-object-defineownproperty)
Adds support for CEReactions.

(GenerateDeletePropertyCommon):
Switch from getting OverrideBuiltins directly off the interface to using InheritsExtendedAttribute.

(GenerateNamedDeleterDefinition):
Switch signature to match peer generators.

(InstanceOverridesGetOwnPropertySlot):
Update for rename of JSCustomGetOwnPropertySlotAndDescriptor to CustomGetOwnPropertySlotAndDescriptor.

(InstanceOverridesGetOwnPropertySlotByIndex):
Added. Like InstanceOverridesGetOwnPropertySlot, but checks for the new CustomGetOwnPropertySlotByIndex
rather than CustomGetOwnPropertySlot.

(InstanceOverridesGetOwnPropertyNames):
Added. Moves complex predicate out of line.

(InstanceOverridesPut):
Removes now unused CustomIndexedSetter, and adds CustomPutFunction, which used to be checked separately.

(InstanceOverridesDefineOwnProperty):
Added.

(GenerateHeader):

  • Moves more structure flags together.
  • Simplifies predicates and moves the ClassInfo method table hooks together.

(GenerateImplementation):

  • Moves the ClassInfo method table hooks together
  • Adds call to GenerateDefineOwnProperty.

(GenerateLegacyCallerDefinitions):
Simplify bail condition to match other generators.

(GeneratePrototypeDeclaration):
Update for new extended attribute names.

(InstanceOverridesCall):
Renamed from IsCallable for consistency.

(HasComplexGetOwnProperty):
Deleted. Unused.

(InstanceOverridesPutImplementation):
Deleted. Unused.

(InstanceOverridesPutDeclaration):
Deleted. Unused.

(IsCallable):
Renamed, for consistency, to InstanceOverridesCall .

  • bindings/scripts/IDLAttributes.json:

Renames a few of the extended attributes to remove the JS prefix. This time
around I only did the ones in the area I was working, but we should probably
remove most of the rest.

  • css/CSSStyleDeclaration.idl:

Update for JSCustomGetOwnPropertySlotAndDescriptor -> CustomGetOwnPropertySlotAndDescriptor rename.

  • dom/DOMStringMap.idl:

Remove CustomNamedSetter and add uncomment out the setter.

  • dom/DatasetDOMStringMap.cpp:

(WebCore::DatasetDOMStringMap::setNamedItem):
(WebCore::DatasetDOMStringMap::setItem): Deleted.

  • dom/DatasetDOMStringMap.h:

Rename setItem to setNamedItem, which is what the generator expects.

  • dom/Node.idl:

Update for JSCustomPushEventHandlerScope -> CustomPushEventHandlerScope rename.

  • html/HTMLAppletElement.idl:
  • html/HTMLEmbedElement.idl:
  • html/HTMLObjectElement.idl:

Update for JSCustomGetOwnPropertySlotAndDescriptor -> CustomGetOwnPropertySlotAndDescriptor rename.

  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::isSupportedPropertyName):

  • html/HTMLCollection.h:

Add isSupportedPropertyName function which is used by the bindings and is now needed.

  • html/HTMLElement.idl:

Update for JSCustomPushEventHandlerScope -> CustomPushEventHandlerScope rename.

  • html/HTMLOptionsCollection.h:

(WebCore::HTMLOptionsCollection::setItem):
Add setItem() implementation which just forwards to the select element. Also, add
a type alias to make the implementations of item and namedItem less verbose.

  • html/HTMLOptionsCollection.idl:

Remove CustomIndexedSetter and uncomment the setter.

  • html/HTMLSelectElement.idl:

Remove CustomIndexedSetter and uncomment the setter. Also, reformat
to match the WHATWG spec.

  • page/DOMWindow.idl:

Update for JSCustomDefineOwnProperty -> CustomDefineOwnProperty rename. Add
CustomGetOwnPropertySlotByIndex which is now needed to remove some unsound
assumptions the generator was making.

  • page/Location.idl:

Update for removal of JS prefix from a bunch of extended attributes.

  • page/UserMessageHandlersNamespace.idl:

Update for JSCustomGetOwnPropertySlotAndDescriptor -> CustomGetOwnPropertySlotAndDescriptor rename.

  • storage/Storage.idl:

Remove CustomNamedSetter and uncomment the setter.

  • bindings/scripts/test/JS/JSInterfaceName.h:
  • bindings/scripts/test/JS/JSTestEventTarget.h:
  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp: Added.
  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h: Added.
  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp: Added.
  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h: Added.
  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp: Added.
  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h: Added.
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp: Added.
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h: Added.
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp: Added.
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h: Added.
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp: Added.
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h: Added.
  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h:
  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp: Added.
  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h: Added.
  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp: Added.
  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h: Added.
  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp: Added.
  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h: Added.
  • bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp: Added.
  • bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.h: Added.
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp: Added.
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.h: Added.
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp: Added.
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.h: Added.
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.h:
  • bindings/scripts/test/TestIndexedSetterNoIdentifier.idl: Added.
  • bindings/scripts/test/TestIndexedSetterThrowingException.idl: Added.
  • bindings/scripts/test/TestIndexedSetterWithIdentifier.idl: Added.
  • bindings/scripts/test/TestNamedAndIndexedSetterNoIdentifier.idl: Added.
  • bindings/scripts/test/TestNamedAndIndexedSetterThrowingException.idl: Added.
  • bindings/scripts/test/TestNamedAndIndexedSetterWithIdentifier.idl: Added.
  • bindings/scripts/test/TestNamedDeleterWithIdentifier.idl:
  • bindings/scripts/test/TestNamedSetterNoIdentifier.idl: Added.
  • bindings/scripts/test/TestNamedSetterThrowingException.idl: Added.
  • bindings/scripts/test/TestNamedSetterWithIdentifier.idl: Added.
  • bindings/scripts/test/TestNamedSetterWithOverrideBuiltins.idl: Added.
  • bindings/scripts/test/TestNamedSetterWithUnforgableProperties.idl: Added.
  • bindings/scripts/test/TestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.idl: Added.

Added new tests and updated some results.

LayoutTests:

  • js/dom/legacy-platform-object-defineOwnProperty-expected.txt: Added.
  • js/dom/legacy-platform-object-defineOwnProperty.html: Added.

New tests for Object.defineProperty on Storage and DOMStringMap.

  • js/dom/named-property-deleter.html:

Fix test which was deleting the wrong property. This doesn't change the result,
but is now actually testing the thing it meant to.

  • storage/domstorage/localstorage/delete-defineproperty-removal-expected.txt:
  • storage/domstorage/localstorage/delete-defineproperty-removal.html:

Convert to testharness.js and show that the results are now correct.

10:57 AM Changeset in webkit [217772] by Simon Fraser
  • 83 edits in trunk

Object bounding box wrong for some paths
https://bugs.webkit.org/show_bug.cgi?id=172866

Reviewed by Tim Horton.
Source/WebCore:

RenderSVGShape::calculateObjectBoundingBox() should use boundingRect()
rather than fastBoundingRect(), because the latter includes control points.

Covered by existing tests.

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::calculateObjectBoundingBox):

LayoutTests:

So many new baselines.

  • platform/ios/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
  • platform/ios/svg/W3C-SVG-1.1/animate-elem-06-t-expected.txt:
  • platform/ios/svg/W3C-SVG-1.1/animate-elem-08-t-expected.txt:
  • platform/ios/svg/W3C-SVG-1.1/animate-elem-83-t-expected.txt:
  • platform/ios/svg/W3C-SVG-1.1/filters-example-01-b-expected.txt:
  • platform/ios/svg/W3C-SVG-1.1/metadata-example-01-b-expected.txt:
  • platform/ios/svg/W3C-SVG-1.1/paths-data-01-t-expected.txt:
  • platform/ios/svg/W3C-SVG-1.1/paths-data-02-t-expected.txt:
  • platform/ios/svg/W3C-SVG-1.1/paths-data-03-f-expected.txt:
  • platform/ios/svg/W3C-SVG-1.1/paths-data-12-t-expected.txt:
  • platform/ios/svg/W3C-SVG-1.1/text-path-01-b-expected.txt:
  • platform/ios/svg/batik/text/longTextOnPath-expected.txt:
  • platform/ios/svg/batik/text/smallFonts-expected.txt:
  • platform/ios/svg/batik/text/textAnchor-expected.txt:
  • platform/ios/svg/batik/text/textDecoration-expected.txt:
  • platform/ios/svg/batik/text/textEffect-expected.txt:
  • platform/ios/svg/batik/text/textEffect2-expected.txt:
  • platform/ios/svg/batik/text/textEffect3-expected.txt:
  • platform/ios/svg/batik/text/textFeatures-expected.txt:
  • platform/ios/svg/batik/text/textGlyphOrientationHorizontal-expected.txt:
  • platform/ios/svg/batik/text/textLayout-expected.txt:
  • platform/ios/svg/batik/text/textLayout2-expected.txt:
  • platform/ios/svg/batik/text/textLength-expected.txt:
  • platform/ios/svg/batik/text/textOnPath-expected.txt:
  • platform/ios/svg/batik/text/textOnPathSpaces-expected.txt:
  • platform/ios/svg/batik/text/textPosition-expected.txt:
  • platform/ios/svg/batik/text/textPosition2-expected.txt:
  • platform/ios/svg/batik/text/textProperties-expected.txt:
  • platform/ios/svg/batik/text/textProperties2-expected.txt:
  • platform/ios/svg/batik/text/textStyles-expected.txt:
  • platform/ios/svg/batik/text/verticalText-expected.txt:
  • platform/ios/svg/batik/text/verticalTextOnPath-expected.txt:
  • platform/ios/svg/custom/broken-internal-references-expected.txt:
  • platform/ios/svg/custom/path-textPath-simulation-expected.txt:
  • platform/ios/svg/custom/relative-sized-use-on-symbol-expected.txt:
  • platform/ios/svg/custom/relative-sized-use-without-attributes-on-symbol-expected.txt:
  • platform/ios/svg/custom/second-inline-text-expected.txt:
  • platform/ios/svg/text/text-path-01-b-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-06-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-07-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-08-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-83-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/metadata-example-01-b-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/paths-data-01-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/paths-data-02-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/paths-data-03-f-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/paths-data-12-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/text-path-01-b-expected.txt:
  • platform/mac/svg/batik/filters/filterRegions-expected.txt:
  • platform/mac/svg/batik/paints/patternPreserveAspectRatioA-expected.txt:
  • platform/mac/svg/batik/paints/patternRegionA-expected.txt:
  • platform/mac/svg/batik/paints/patternRegions-expected.txt:
  • platform/mac/svg/batik/text/smallFonts-expected.txt:
  • platform/mac/svg/batik/text/textAnchor-expected.txt:
  • platform/mac/svg/batik/text/textEffect2-expected.txt:
  • platform/mac/svg/batik/text/textEffect3-expected.txt:
  • platform/mac/svg/batik/text/textFeatures-expected.txt:
  • platform/mac/svg/batik/text/textGlyphOrientationHorizontal-expected.txt:
  • platform/mac/svg/batik/text/textLayout-expected.txt:
  • platform/mac/svg/batik/text/textLayout2-expected.txt:
  • platform/mac/svg/batik/text/textOnPathSpaces-expected.txt:
  • platform/mac/svg/batik/text/textPosition2-expected.txt:
  • platform/mac/svg/batik/text/textProperties-expected.txt:
  • platform/mac/svg/batik/text/textProperties2-expected.txt:
  • platform/mac/svg/batik/text/textStyles-expected.txt:
  • platform/mac/svg/custom/animate-path-morphing-expected.txt:
  • platform/mac/svg/custom/broken-internal-references-expected.txt:
  • platform/mac/svg/custom/path-textPath-simulation-expected.txt:
  • platform/mac/svg/custom/relative-sized-use-on-symbol-expected.txt:
  • platform/mac/svg/custom/relative-sized-use-without-attributes-on-symbol-expected.txt:
  • platform/mac/svg/custom/second-inline-text-expected.txt:
  • platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.txt:
  • platform/mac/svg/hixie/perf/001-expected.txt:
  • platform/mac/svg/hixie/perf/002-expected.txt:
  • platform/mac/svg/text/text-path-01-b-expected.txt:
  • platform/mac/svg/zoom/page/zoom-svg-through-object-with-override-size-expected.txt:
  • svg/custom/control-points-for-S-and-T-expected.txt:
  • svg/custom/use-nested-transform-expected.txt:
9:38 AM Changeset in webkit [217771] by Konstantin Tokarev
  • 10 edits
    1 add in trunk/Source

Fix build of Windows-specific code with ICU 59.1
https://bugs.webkit.org/show_bug.cgi?id=172729

Reviewed by Darin Adler.

Source/JavaScriptCore:

Fix conversions from WTF::String to wchar_t* and vice versa.

  • jsc.cpp:

(currentWorkingDirectory):
(fetchModuleFromLocalFileSystem):

  • runtime/DateConversion.cpp:

(JSC::formatDateTime):

Source/WebCore:

Fix conversions from WTF::String to wchar_t* and vice versa.
No new tests needed.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::mimeTypeCache):
(WebCore::MediaPlayerPrivateMediaFoundation::startCreateMediaSource):

Source/WebKit/win:

Fix conversions from WTF::String to wchar_t* and vice versa.

  • Plugins/PluginDatabaseWin.cpp:

(WebCore::addPluginPathsFromRegistry):
(WebCore::PluginDatabase::getPluginPathsInDirectories):
(WebCore::addMozillaPluginDirectories):
(WebCore::addWindowsMediaPlayerPluginDirectory):
(WebCore::addAdobeAcrobatPluginDirectory):
(WebCore::addJavaPluginDirectory):
(WebCore::safariPluginsDirectory):
(WebCore::addMacromediaPluginDirectories):

  • Plugins/PluginPackageWin.cpp:

(WebCore::getVersionInfo):
(WebCore::PluginPackage::fetchInfo):
(WebCore::PluginPackage::load):

  • Plugins/PluginViewWin.cpp:

(WebCore::PluginView::handlePostReadFile):

Source/WTF:

  • wtf/text/win/WCharStringExtras.h: Added new header file wuth helper

functions for conversion between WTF::String and wchart_t*.
(WTF::stringToNullTerminatedWChar):
(WTF::wcharToString):
(WTF::nullTerminatedWCharToString):

9:26 AM Changeset in webkit [217770] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Drop unnecessary USE(CF) guard for getenv
https://bugs.webkit.org/show_bug.cgi?id=172903

Reviewed by Sam Weinig.

getenv is not related to USE(CF) and OS(UNIX). It seems that this
ifdef only hits in WinCairo, but WinCairo can use getenv.
Moreover, in VM::VM, we already use getenv without any ifdef guard.

This patch just drops it.

  • runtime/VM.cpp:

(JSC::enableAssembler):

9:21 AM Changeset in webkit [217769] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Drop OS(DARWIN) for uintptr_t type conflict
https://bugs.webkit.org/show_bug.cgi?id=172904

Reviewed by Sam Weinig.

In non-Darwin environment, uintptr_t may have the same type
to uint64_t. We avoided the compile error by using OS(DARWIN).
But, since it depends on cstdint implementaion rather than OS, it is flaky.
Instead, we just use template parameter IntegralType.
And we describe the type constraint in a SFINAE manner.

  • dfg/DFGOpInfo.h:

(JSC::DFG::OpInfo::OpInfo):

8:51 AM Changeset in webkit [217768] by Jonathan Bedard
  • 7 edits in trunk/LayoutTests

Unreviewed test gardening

Gardening test expectations for layout tests on iOS device. Moving
expectations for tests which fail on Simulator but pass on device.

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
8:21 AM Changeset in webkit [217767] by Chris Dumez
  • 7 edits
    3 adds in trunk

Implement DOMMatrixReadOnly.transformPoint()
https://bugs.webkit.org/show_bug.cgi?id=172900

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/css/geometry-1/DOMMatrix-newobject-expected.txt:

Source/WebCore:

Implement DOMMatrixReadOnly.transformPoint():

Test: imported/blink/fast/dom/geometry-interfaces-dom-matrix-transformPoint.html

  • css/DOMMatrixReadOnly.cpp:

(WebCore::DOMMatrixReadOnly::transformPoint):

  • css/DOMMatrixReadOnly.h:
  • css/DOMMatrixReadOnly.idl:

LayoutTests:

  • imported/blink/fast/dom/geometry-interfaces-dom-matrix-transformPoint-expected.txt: Added.
  • imported/blink/fast/dom/geometry-interfaces-dom-matrix-transformPoint.html: Added.
  • imported/blink/fast/dom/resources/geometry-interfaces-test-helpers.js: Added.

Import test coverage from Blink.

4:26 AM Changeset in webkit [217766] by zandobersek@gmail.com
  • 3 edits
    2 adds in trunk/LayoutTests

Unreviewed GTK+ gardening. Add a few test failure expectations, linking them to
existing bugs. Update or add GTK+-specific baselines for three tests.

  • platform/gtk/TestExpectations:
  • platform/gtk/accessibility/disabled-controls-not-focusable-expected.txt: Added.
  • platform/gtk/compositing/backing-store-attachment-1-expected.txt: Added.
  • platform/gtk/css1/box_properties/acid_test-expected.txt:
3:24 AM Changeset in webkit [217765] by zandobersek@gmail.com
  • 6 edits in trunk/Source/WebCore

[GCrypt] Improve comments in AES, PBKDF2, RSA-SSA algorithm implementations
https://bugs.webkit.org/show_bug.cgi?id=172894

Reviewed by Michael Catanzaro.

Add or improve code comments in libgcrypt implementations for the AES_CBC,
AES_GCM, AES_KW, PBKDF2 and RSA-SSA algorithms.

  • crypto/gcrypt/CryptoAlgorithmAES_CBCGCrypt.cpp: Add generic comments that

describe each operation that's performed.
(WebCore::gcryptEncrypt):
(WebCore::gcryptDecrypt):

  • crypto/gcrypt/CryptoAlgorithmAES_GCMGCrypt.cpp: Ditto.

(WebCore::gcryptEncrypt):
(WebCore::gcryptDecrypt):

  • crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp: Ditto.

(WebCore::gcryptWrapKey):
(WebCore::gcryptUnwrapKey):

  • crypto/gcrypt/CryptoAlgorithmPBKDF2GCrypt.cpp: Ditto.

(WebCore::gcryptDeriveBits):

  • crypto/gcrypt/CryptoAlgorithmRSASSA_PKCS1_v1_5GCrypt.cpp:

(WebCore::gcryptVerify): Align the verification results comment with the
one that's used in the ECDSA implementation.

Note: See TracTimeline for information about the timeline view.