WebKit-https.git
2 years ago[GTK] PLATFORM(GTK) && !USE(COORDINATED_GRAPHICS_THREADED) is no longer possible
carlosgc@webkit.org [Tue, 4 Apr 2017 18:01:05 +0000 (18:01 +0000)]
[GTK] PLATFORM(GTK) && !USE(COORDINATED_GRAPHICS_THREADED) is no longer possible
https://bugs.webkit.org/show_bug.cgi?id=170458

Reviewed by Carlos Alberto Lopez Perez.

That is not supported anymore, so we can remove dead code from VideoSinkGStreamer.cpp

* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(VideoRenderRequestScheduler::VideoRenderRequestScheduler):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214885 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoMark fast/images/animated-gif-webkit-transform.html as flaky.
ryanhaddad@apple.com [Tue, 4 Apr 2017 17:38:58 +0000 (17:38 +0000)]
Mark fast/images/animated-gif-webkit-transform.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=170410

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214884 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoAir liveness should build constraints and solve them rather than repeatedly parsing IR
fpizlo@apple.com [Tue, 4 Apr 2017 17:20:43 +0000 (17:20 +0000)]
Air liveness should build constraints and solve them rather than repeatedly parsing IR
https://bugs.webkit.org/show_bug.cgi?id=170421

Reviewed by Saam Barati.
Source/JavaScriptCore:

Inst::forEach<> is expensive. The LivenessAdapter uses forEach with a particularly
gnarly lambda that has many extra checks. Therefore, a lot of the time spent in
liveness analysis is just recomputing forEach<> and that lambda to get uses and defs.

This introduces LivenessConstraints<>, which is a liveness constraint system based on
Adapter. It basically caches the results of doing forEach. It'll give you the uses and
defs at each instruction boundary.

This is a ~5% compile time progression at optLevel=1. It's also a ~3% compile time
progression at optLevel=2.

* JavaScriptCore.xcodeproj/project.pbxproj:
* b3/air/AirLivenessAdapter.h:
(JSC::B3::Air::LivenessAdapter::LivenessAdapter):
(JSC::B3::Air::LivenessAdapter::forEachUse):
(JSC::B3::Air::LivenessAdapter::forEachDef):
* b3/air/AirLivenessConstraints.h: Added.
(JSC::B3::Air::LivenessConstraints::Actions::Actions):
(JSC::B3::Air::LivenessConstraints::LivenessConstraints):
(JSC::B3::Air::LivenessConstraints::at):

Source/WTF:

* wtf/Vector.h:
(WTF::minCapacity>::appendIfNotContains): Because sometimes Vector<> is the best kind of set.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214883 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoUnreviewed Windows build fix.
pvollan@apple.com [Tue, 4 Apr 2017 07:20:14 +0000 (07:20 +0000)]
Unreviewed Windows build fix.

* bindings/js/JSDOMGuardedObject.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214868 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[WTF] Introduce WTF::RandomDevice which keeps /dev/urandom opened
utatane.tea@gmail.com [Tue, 4 Apr 2017 07:04:38 +0000 (07:04 +0000)]
[WTF] Introduce WTF::RandomDevice which keeps /dev/urandom opened
https://bugs.webkit.org/show_bug.cgi?id=170095

Reviewed by Michael Catanzaro.

In this patch, we introduce RandomDevice, which keeps /dev/urandom opened
to avoid repeatedly open and close urandom file descriptor in Linux.

The purpose is similar to std::random_device, but WTF::RandomDevice explicitly
avoids using ARC4, which is recently attempted to be removed from the WebKit
tree[1].

[1]: https://trac.webkit.org/r214329

* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
* wtf/OSRandomSource.cpp:
(WTF::cryptographicallyRandomValuesFromOS):
(WTF::crashUnableToOpenURandom): Deleted.
(WTF::crashUnableToReadFromURandom): Deleted.
* wtf/RandomDevice.cpp: Copied from Source/WTF/wtf/OSRandomSource.cpp.
(WTF::crashUnableToOpenURandom):
(WTF::crashUnableToReadFromURandom):
(WTF::RandomDevice::RandomDevice):
(WTF::RandomDevice::~RandomDevice):
(WTF::RandomDevice::cryptographicallyRandomValues):
* wtf/RandomDevice.h: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214867 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoAdd some new patterns to filter-build-webkit
commit-queue@webkit.org [Tue, 4 Apr 2017 06:52:31 +0000 (06:52 +0000)]
Add some new patterns to filter-build-webkit
https://bugs.webkit.org/show_bug.cgi?id=170429

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-04-03
Reviewed by Alexey Proskuryakov.

* Scripts/filter-build-webkit:
(setOutputFormatOption):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214866 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoData interaction should register type identifiers in order of priority
wenson_hsieh@apple.com [Tue, 4 Apr 2017 04:31:48 +0000 (04:31 +0000)]
Data interaction should register type identifiers in order of priority
https://bugs.webkit.org/show_bug.cgi?id=170428
<rdar://problem/30633296>

Reviewed by Tim Horton.

Source/WebCore:

Currently, due to the shared logic for writing to a UIPasteboard (in the case of copy/paste) and the shared
UIItemProvider-based pasteboard wrapper (in the case of data interaction), we don't enforce any particular
ordering in which type identifiers are registered in the generated item provider. This is because
-[UIPasteboard setItems:] only takes an unordered mapping of type identifiers to objects.

To fix this, we introduce a separate way to set pasteboard data that first writes a list of object
representations in order of priority (which is dependent on the content being interacted with) and then register
individual type-data mappings at the end.

Augmented existing API tests in DataInteractionTests to check for the existence and priority of type identifiers
in the UIItemProviders created upon starting data interaction. Also adds a new unit test:
DataInteractionTests.TextAreaToInput.

* WebCore.xcodeproj/project.pbxproj:
* editing/cocoa/EditorCocoa.mm:
(WebCore::archivedDataForAttributedString):
(WebCore::Editor::writeSelectionToPasteboard):
(WebCore::Editor::writeSelection):
* platform/Pasteboard.h:
* platform/PasteboardWriterData.h:
* platform/PlatformPasteboard.h:
* platform/ios/AbstractPasteboard.h:
* platform/ios/AbstractPasteboard.mm: Copied from Source/WebCore/platform/ios/AbstractPasteboard.h.

Introduce WebPasteboardItemData, a wrapper around a list of objects representating the pasteboard data in order
of priority, and a dictionary containing additional NSData blobs that contain data useful for private clients.

(+[WebPasteboardItemData itemWithRepresentingObjects:additionalData:]):
(-[WebPasteboardItemData initWithRepresentingObjects:additionalData:]):
(-[WebPasteboardItemData representingObjects]):
(-[WebPasteboardItemData additionalData]):
* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::richTextRepresentationsForPasteboardWebContent):
(WebCore::PlatformPasteboard::writeObjectRepresentations):
(WebCore::PlatformPasteboard::write):

Tweaked to check whether the pasteboard responds to -setItemsFromObjectRepresentations:. If so, uses the
PlatformPasteboard::writeObjectRepresentations codepath to write data to the pasteboard, respecting type
priority.

* platform/ios/WebItemProviderPasteboard.mm:
(-[WebItemProviderPasteboard pasteboardTypes]):
(-[WebItemProviderPasteboard setItemProviders:]):
(-[WebItemProviderPasteboard setItemsFromObjectRepresentations:]):

Replaces -setItems: with -setItemsFromObjectRepresentations:, which respects the priority of each object
representation of the data in the pasteboard.

(-[WebItemProviderPasteboard setItems:]): Deleted.

Source/WebKit2:

Serialize PasteboardWebContent.dataInAttributedStringFormat when sending over IPC. Refer to WebCore ChangeLog
for more details.

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<PasteboardWebContent>::encode):
(IPC::ArgumentCoder<PasteboardWebContent>::decode):
* UIProcess/API/Cocoa/WKWebView.mm:

Tools:

Augments existing unit tests to check for the existence and priority of type identifiers in the UIItemProviders
created upon starting data interaction. Also fixes a race condition in one of the unit tests and adds a new unit
test for data interaction from a textarea to an input.

* TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(checkTypeIdentifierPrecedesOtherTypeIdentifier):
(TestWebKitAPI::TEST):
* TestWebKitAPI/ios/DataInteractionSimulator.h:
* TestWebKitAPI/ios/DataInteractionSimulator.mm:
(-[DataInteractionSimulator _advanceProgress]):
(-[DataInteractionSimulator sourceItemProviders]):
(-[DataInteractionSimulator _webView:showCustomSheetForElement:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214865 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: RTL: results in Search navigation sidebar have misplaced highlights
bburg@apple.com [Tue, 4 Apr 2017 03:30:30 +0000 (03:30 +0000)]
Web Inspector: RTL: results in Search navigation sidebar have misplaced highlights
https://bugs.webkit.org/show_bug.cgi?id=170292

Reviewed by Timothy Hatcher.

* UserInterface/Models/SourceCodeSearchMatchObject.js:
(WebInspector.SourceCodeSearchMatchObject.prototype.get className):
* UserInterface/Views/SearchIcons.css:
(.source-code-match .icon):
(.source-code-match-icon .icon): Deleted.
Remove -icon suffix from the class name since the class is attached to a result
and is not specific to the icon displayed within the result <li>.

* UserInterface/Views/SearchResultTreeElement.js:
(WebInspector.SearchResultTreeElement.truncateAndHighlightTitle):
Flip the leading and trailing context in RTL so that the highlight is not overflowed
to the left when too much context is included on the right side. Less context must be
used in RTL because we must not overflow to the right, as it may hide the result. And,
we don't know the exact starting character either as it may be overflowed to the right
as the user resizes the expanded sidebar larger or smaller. So show less context to
be conservative about never overflowing the highlighted result string.

* UserInterface/Views/SearchSidebarPanel.css:
(.sidebar > .panel.navigation.search .item.source-code-match .title):
When in RTL, show source code matches as LTR with text-align to right.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214864 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: clicking on the body of a CSS rule after editing the selector causes...
webkit@devinrousso.com [Tue, 4 Apr 2017 03:28:03 +0000 (03:28 +0000)]
Web Inspector: clicking on the body of a CSS rule after editing the selector causes the section to disappear
https://bugs.webkit.org/show_bug.cgi?id=169803

Reviewed by Timothy Hatcher.

* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype._handleKeyDown):
(WebInspector.CSSStyleDeclarationSection.prototype._handleBlur):
Keep the section marked as `_editorActive` if the action taken would still place focus
within the section (selector or properties).  Doing so will prevent it from being removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214863 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: RTL: hierarchical path component labels should guess directionality...
bburg@apple.com [Tue, 4 Apr 2017 03:20:28 +0000 (03:20 +0000)]
Web Inspector: RTL: hierarchical path component labels should guess directionality based on content
https://bugs.webkit.org/show_bug.cgi?id=170298

Reviewed by Timothy Hatcher.

* UserInterface/Views/HierarchicalPathComponent.js:
(WebInspector.HierarchicalPathComponent):
Use dir="auto" since this will properly set 'unicode-bidi:isolate' for form elements too.
This is applied to the title label and to the <select> for the path component.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214862 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: Show additional pause reason details for DOM "subtree modified" breakpoint
mattbaker@apple.com [Tue, 4 Apr 2017 03:19:09 +0000 (03:19 +0000)]
Web Inspector: Show additional pause reason details for DOM "subtree modified" breakpoint
https://bugs.webkit.org/show_bug.cgi?id=169479

Reviewed by Timothy Hatcher.

* Localizations/en.lproj/localizedStrings.js:
New Pause Reason UI strings.

* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
Include a link for the target node when breaking for subtree modifications.
This is either the parent of a node being inserted, or a node that is
being removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214861 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRe-adding flaky timeout expectation for http/tests/loading/resourceLoadStatistics...
ap@apple.com [Tue, 4 Apr 2017 01:22:41 +0000 (01:22 +0000)]
Re-adding flaky timeout expectation for http/tests/loading/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html

This test still times out, most of the time.

* platform/wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214860 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[GTK][JHBuild] Update mesa repository url for tarballs
clopez@igalia.com [Tue, 4 Apr 2017 00:57:32 +0000 (00:57 +0000)]
[GTK][JHBuild] Update mesa repository url for tarballs
https://bugs.webkit.org/show_bug.cgi?id=170431

Reviewed by Michael Catanzaro.

* gtk/jhbuild.modules:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214859 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoTestWebKitAPI: Warning: Multiple build commands for Ahem.ttf
commit-queue@webkit.org [Tue, 4 Apr 2017 00:42:54 +0000 (00:42 +0000)]
TestWebKitAPI: Warning: Multiple build commands for Ahem.ttf
https://bugs.webkit.org/show_bug.cgi?id=170430

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-04-03
Reviewed by Alexey Proskuryakov.

* TestWebKitAPI/Tests/mac/Ahem.ttf: Removed.
Eliminate one of the copies of Ahem.ttf.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
Once eliminated, there is now only one Ahem.ttf that is copied
to the Resources bundle. Drive-by sort the project file.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214858 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoFix incorrect capacity delta calculation reported in SparseArrayValueMap::add().
mark.lam@apple.com [Tue, 4 Apr 2017 00:42:02 +0000 (00:42 +0000)]
Fix incorrect capacity delta calculation reported in SparseArrayValueMap::add().
https://bugs.webkit.org/show_bug.cgi?id=170412
<rdar://problem/29697336>

Reviewed by Filip Pizlo.

JSTests:

* stress/regress-170412.js: Added.

Source/JavaScriptCore:

Here's an example of code that will trigger underflow in the "deprecatedExtraMemory"
reported by SparseArrayValueMap::add() that is added to Heap::m_deprecatedExtraMemorySize:

    arr = new Array;
    Object.defineProperty(arr, 18, ({writable: true, configurable: true}));
    for (var i = 0; i < 3; ++i) {
        Array.prototype.push.apply(arr, ["", () => {}, {}]);
        Array.prototype.sort.apply(arr, [() => {}, []]);
    }

However, Heap::m_deprecatedExtraMemorySize is only 1 of 3 values that are added
up to form the result of Heap::extraMemorySize().  Heap::m_extraMemorySize and
Heap::m_arrayBuffers.size() are the other 2.

While Heap::m_arrayBuffers.size() is bounded by actual allocated memory, both
Heap::m_deprecatedExtraMemorySize and Heap::m_extraMemorySize are added to
without any bounds checks, and they are only reset to 0 at the start of a full
GC.  As a result, if we have a long sequence of eden GCs with a lot of additions
to Heap::m_extraMemorySize and/or Heap::m_deprecatedExtraMemorySize, then these
values could theoretically overflow.  Coupling this with the underflow from
SparseArrayValueMap::add(), the result for Heap::extraMemorySize() can easily
overflow.  Note: Heap::extraMemorySize() is used to compute the value
currentHeapSize.

If multiple conditions line up just right, the above overflows can result in this
debug assertion failure during an eden GC:

    ASSERT(currentHeapSize >= m_sizeAfterLastCollect);

Otherwise, the effects of the overflows will only result in the computed
currentHeapSize not being representative of actual memory usage, and therefore,
a full GC may be triggered earlier or later than is ideal.

This patch ensures that SparseArrayValueMap::add() cannot underflow
Heap::m_deprecatedExtraMemorySize.  It also adds overflows checks in the
calculations of Heap::m_deprecatedExtraMemorySize, Heap::m_extraMemorySize, and
Heap::extraMemorySize() so that their values are saturated appropriately to
ensure that GC collections are triggered based on representative memory usage.

* heap/Heap.cpp:
(JSC::Heap::deprecatedReportExtraMemorySlowCase):
(JSC::Heap::extraMemorySize):
(JSC::Heap::updateAllocationLimits):
(JSC::Heap::reportExtraMemoryVisited):
* runtime/SparseArrayValueMap.cpp:
(JSC::SparseArrayValueMap::add):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214857 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: showing the Find banner doesn't immediately focus it
webkit@devinrousso.com [Tue, 4 Apr 2017 00:41:19 +0000 (00:41 +0000)]
Web Inspector: showing the Find banner doesn't immediately focus it
https://bugs.webkit.org/show_bug.cgi?id=169804

Reviewed by Matt Baker.

* UserInterface/Base/Main.js:
(WebInspector._focusChanged):
Slightly change the logic from <https://webkit.org/b/168119> (r213689) to not prevent a new
selection if the focus change target is an element from WebInspector.startEditing.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214856 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoAllow MiniBrowser windows to receive local file drags again
simon.fraser@apple.com [Tue, 4 Apr 2017 00:10:33 +0000 (00:10 +0000)]
Allow MiniBrowser windows to receive local file drags again
https://bugs.webkit.org/show_bug.cgi?id=170422

Reviewed by Wenson Hsieh.

Adopt the new UIDelegate SPI to allow drops.

* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController _webView:dragDestinationActionMaskForDraggingInfo:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214855 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[GTK][JHBuild] Fetch libvpx from a release tarball instead of git
clopez@igalia.com [Mon, 3 Apr 2017 23:40:10 +0000 (23:40 +0000)]
[GTK][JHBuild] Fetch libvpx from a release tarball instead of git
https://bugs.webkit.org/show_bug.cgi?id=170426

Reviewed by Michael Catanzaro.

* gtk/jhbuild.modules:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214854 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: WebSockets: Don't store binary frames in memory since they are never...
nvasilyev@apple.com [Mon, 3 Apr 2017 23:11:25 +0000 (23:11 +0000)]
Web Inspector: WebSockets: Don't store binary frames in memory since they are never shown
https://bugs.webkit.org/show_bug.cgi?id=169649
<rdar://problem/31053069>

Reviewed by Brian Burg.

* UserInterface/Models/WebSocketResource.js:
(WebInspector.WebSocketResource.prototype.addFrame):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214853 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[css-align] Adapt place-content alignment shorthand to the new baseline syntax
jfernandez@igalia.com [Mon, 3 Apr 2017 23:08:42 +0000 (23:08 +0000)]
[css-align] Adapt place-content alignment shorthand to the new baseline syntax
https://bugs.webkit.org/show_bug.cgi?id=170340

Reviewed by David Hyatt.

Source/WebCore:

Now that the align-content and justify-content CSS properties are
adapted to the new baseline-position CSS values syntax we can adapt the
shorthand that controls such properties to the new syntax as well.

No new tests, just adding some additional cases to the tests we already have.

* css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue):
(WebCore::StyleProperties::placeContentPropertyValue):
* css/StyleProperties.h:
* css/parser/CSSPropertyParser.cpp:
(WebCore::isContentDistributionKeyword):
(WebCore::isContentPositionKeyword):
(WebCore::isOverflowKeyword):
(WebCore::getBaselineKeyword):
(WebCore::consumeContentDistributionOverflowPosition):
(WebCore::consumeSimplifiedContentPosition):

LayoutTests:

Added additional test cases to evaluate the new baseline-alignment syntax.

* css3/parse-place-content-expected.txt:
* css3/parse-place-content.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214852 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoAX: Expose link children when doing search predication on iOS
n_wang@apple.com [Mon, 3 Apr 2017 23:06:25 +0000 (23:06 +0000)]
AX: Expose link children when doing search predication on iOS
https://bugs.webkit.org/show_bug.cgi?id=170424
<rdar://problem/31413335>

Source/WebCore:

The children of links are accessible elements on iOS instead of the link itself,
so we should expose the children when doing predicated searches as well.

Reviewed by Chris Fleizach.

Test: accessibility/ios-simulator/ios-search-predicate-link-children.html

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):

Tools:

Reviewed by Chris Fleizach.

* DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::uiElementForSearchPredicate):
* WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::uiElementForSearchPredicate):

LayoutTests:

Reviewed by Chris Fleizach.

* accessibility/ios-simulator/ios-search-predicate-link-children-expected.txt: Added.
* accessibility/ios-simulator/ios-search-predicate-link-children.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214851 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoNo audio output for MediaStream-backed audio elements on iOS
jer.noble@apple.com [Mon, 3 Apr 2017 23:04:40 +0000 (23:04 +0000)]
No audio output for MediaStream-backed audio elements on iOS
https://bugs.webkit.org/show_bug.cgi?id=170427

Reviewed by Eric Carlson.

The logic for setting the output timestamp offset in AudioSampleDataSource was reversed; instead of
subtracting out the timestamp of the first pull request, it effectively doubled it.

* platform/audio/mac/AudioSampleDataSource.mm:
(WebCore::AudioSampleDataSource::pullSamplesInternal):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214850 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoUnreviewed. More WebGPU demos.
dino@apple.com [Mon, 3 Apr 2017 22:47:53 +0000 (22:47 +0000)]
Unreviewed. More WebGPU demos.

* demos/webgpu/2d.jpg: Added.
* demos/webgpu/2d.js:
* demos/webgpu/circle.svg: Added.
* demos/webgpu/cubes.jpg: Added.
* demos/webgpu/hello.html: Added.
* demos/webgpu/hello.jpg: Added.
* demos/webgpu/hello.js: Copied from Websites/webkit.org/demos/webgpu/2d.js.
(init):
(render):
* demos/webgpu/index.html: Added.
* demos/webgpu/simple.jpg: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214849 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoJapanese fonts in vertical text should support synthesized italics
hyatt@apple.com [Mon, 3 Apr 2017 22:28:45 +0000 (22:28 +0000)]
Japanese fonts in vertical text should support synthesized italics
https://bugs.webkit.org/show_bug.cgi?id=169301

Reviewed by Simon Fraser.

Source/WebCore:

Updated test in fast/text/international.

* platform/graphics/Font.cpp:
(WebCore::Font::nonSyntheticItalicFont): Deleted.
* platform/graphics/Font.h:
Removed the non-synthetic italic font member, since it's not used.

* platform/graphics/FontCascadeFonts.cpp:
(WebCore::glyphDataForNonCJKCharacterWithGlyphOrientation):
Patched to ensure that a text-orientation-fallback font data is always
returned in the synthetic oblique case, so that non-CJK and CJK are
guaranteed to be broken up so that their slants can be applied differently.

(WebCore::FontCascadeFonts::glyphDataForSystemFallback):
(WebCore::FontCascadeFonts::glyphDataForNormalVariant):
(WebCore::glyphDataForCJKCharacterWithoutSyntheticItalic): Deleted.
Patched to no longer turn off synthetic oblique for CJK.

* platform/graphics/cocoa/FontCascadeCocoa.mm:
(WebCore::FontCascade::drawGlyphs):
Apply the correct italic transform to CJK when in vertical text.

LayoutTests:

* fast/text/international/synthesized-italic-vertical-expected.html:
* fast/text/international/synthesized-italic-vertical.html:
* platform/mac/fast/text/international/synthesized-italic-vertical-latin-expected.png: Removed.
* platform/mac/fast/text/international/synthesized-italic-vertical-latin-expected.txt: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214848 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: Preference for Auto Showing Scope Chain sidebar on pause
webkit@devinrousso.com [Mon, 3 Apr 2017 22:10:52 +0000 (22:10 +0000)]
Web Inspector: Preference for Auto Showing Scope Chain sidebar on pause
https://bugs.webkit.org/show_bug.cgi?id=149487

Reviewed by Timothy Hatcher.

* Localizations/en.lproj/localizedStrings.js:

* UserInterface/Base/Setting.js:
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView.prototype.layout):
Add WebInspector.Setting for showing Scope Chain on pause.

* UserInterface/Base/Main.js:
(WebInspector.showDebuggerTab):
(WebInspector._debuggerDidPause):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
Modify parameters to use a dictionary of options instead of just a single value.  In doing
so, add support for a value that will show the Scope Chain sidebar.

* UserInterface/Views/SettingsTabContentView.css:
(.content-view.settings):
(.content-view.settings > .header):
Drive-by: add padding to bottom of Settings tab so that additional scroll space is mirrored.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214847 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: RTL: layout issues in call frame tree elements and async call stacks
bburg@apple.com [Mon, 3 Apr 2017 22:10:36 +0000 (22:10 +0000)]
Web Inspector: RTL: layout issues in call frame tree elements and async call stacks
https://bugs.webkit.org/show_bug.cgi?id=170419

Reviewed by Matt Baker.

* UserInterface/Views/CallFrameTreeElement.css:
(.tree-outline .item.call-frame .status):
(body[dir=ltr] .tree-outline .item.call-frame .status):
(body[dir=rtl] .tree-outline .item.call-frame .status):
Flip the current call frame indicator and make sure it sticks to the leading edge.

(.tree-outline .item.call-frame.async-boundary):
(body[dir=ltr] .tree-outline:not(.single-thread) > .children > .item.call-frame.async-boundary):
(body[dir=rtl] .tree-outline:not(.single-thread) > .children > .item.call-frame.async-boundary):
(.tree-outline .item.call-frame.async-boundary .icon):
(body[dir=ltr] .tree-outline .item.call-frame.async-boundary .icon):
(body[dir=rtl] .tree-outline .item.call-frame.async-boundary .icon):
Flip the icon's padding.

(.tree-outline .item.call-frame.async-boundary::after):
(body[dir=ltr] .tree-outline .item.call-frame.async-boundary::after):
(body[dir=rtl] .tree-outline .item.call-frame.async-boundary::after):
(.tree-outline .item.call-frame.async-boundary::before):
(body[dir=ltr] .tree-outline .item.call-frame.async-boundary::before):
(body[dir=rtl] .tree-outline .item.call-frame.async-boundary::before):
(.tree-outline:not(.single-thread) > .children > .item.call-frame.async-boundary): Deleted.
Fix the leading and trailing horizontal rules so they have correct spacing.

* UserInterface/Views/CallFrameView.css:
(.call-frame .icon): Remove redundant property.

* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger .tree-outline.single-thread):
(body[dir=ltr] .sidebar > .panel.navigation.debugger .tree-outline.single-thread):
(body[dir=rtl] .sidebar > .panel.navigation.debugger .tree-outline.single-thread):
Fix the leading unindent for call tree frame elements.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214846 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRemove no longer needed forward declarations
commit-queue@webkit.org [Mon, 3 Apr 2017 22:09:47 +0000 (22:09 +0000)]
Remove no longer needed forward declarations
https://bugs.webkit.org/show_bug.cgi?id=170415

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-04-03
Reviewed by Dan Bernstein.

* NetworkProcess/cocoa/NetworkSessionCocoa.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214845 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: Elements tab: show indicators for hidden DOM breakpoints
mattbaker@apple.com [Mon, 3 Apr 2017 22:09:23 +0000 (22:09 +0000)]
Web Inspector: Elements tab: show indicators for hidden DOM breakpoints
https://bugs.webkit.org/show_bug.cgi?id=168761

Reviewed by Timothy Hatcher.

* Localizations/en.lproj/localizedStrings.js:
New DOM breakpoint content menu item.

* UserInterface/Views/DOMTreeContentView.css:
(.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.subtree):
(.content-view.dom-tree .tree-outline.dom li.expanded .status-image.breakpoint.subtree):
New styles for collapsed breakpoint marker.

* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement):
(WebInspector.DOMTreeElement.prototype.set breakpointStatus):
If the status change indicates the only breakpoint was added or removed,
update subtree breakpoint counts on the element's parent chain.

(WebInspector.DOMTreeElement.prototype.revealAndHighlight):
Reveal the tree element, and add a highlighted line animation
identical to the one used used by TextEditor.

(WebInspector.DOMTreeElement.prototype.subtreeBreakpointCountDidChange):
(WebInspector.DOMTreeElement.prototype.updateSelectionArea):
Selection area should be updated when animating the element highlight.
(WebInspector.DOMTreeElement.prototype.onreveal):
Animate highlight if needed.
(WebInspector.DOMTreeElement.prototype._updateBreakpointStatus):
(WebInspector.DOMTreeElement.prototype._statusImageClicked):
Do nothing when clicking the collapsed breakpoint marker.
(WebInspector.DOMTreeElement.prototype._statusImageContextmenu):
Add "Reveal Breakpoint" menu item. Reveals the first descendant
with at least one breakpoint.

(WebInspector.DOMTreeElement.prototype._highlightAnimationEnd):

* UserInterface/Views/DOMTreeOutline.css:
(@keyframes dom-tree-outline-highlight-fadeout):
(.highlight .selection-area):
Styles for highlight fade animation.

* UserInterface/Views/TreeElement.js:
(WebInspector.TreeElement.prototype.selfOrDescendant):
* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeOutline.prototype.selfOrDescendant):
Find a node matching a predicate.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214844 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: DetailsSection should hide header "options" when collapsed
mattbaker@apple.com [Mon, 3 Apr 2017 22:07:46 +0000 (22:07 +0000)]
Web Inspector: DetailsSection should hide header "options" when collapsed
https://bugs.webkit.org/show_bug.cgi?id=170029

Reviewed by Timothy Hatcher.

* UserInterface/Views/DOMNodeDetailsSidebarPanel.css:
(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter):
(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners.collapsed > .header > .filter): Deleted.
DetailsSection is responsible for hiding options when collapsed.

* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger .details-section.paused-reason.collapsed > .header > .options):

* UserInterface/Views/DetailsSection.css:
(body[dir=ltr] .details-section > .header > .options,):
(body[dir=ltr] .details-section > .header::before,):
(.details-section.collapsed  > .header > .options):
(body[dir=ltr] .details-section > .header > :matches(label, .node-link, .go-to-arrow),): Deleted.
(.details-section.collapsed  > .header > label): Deleted.
Removed unnecessary rules. The "options" class covers these cases.

* UserInterface/Views/DetailsSection.js:
(WebInspector.DetailsSection.prototype.get titleElement):
(WebInspector.DetailsSection.prototype.set titleElement):
Added title element customization so that the hack used by ProbeSetDetailsSection
to get a link into the title can be removed. Yuck!

* UserInterface/Views/ProbeSetDetailsSection.js:
(WebInspector.ProbeSetDetailsSection):
(WebInspector.ProbeSetDetailsSection.prototype._updateLinkElement):
Use the new DetailsSection title element setter.

* UserInterface/Views/VisualStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .header > .options):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .header > .visual-style-section-clear): Deleted.
(.sidebar > .panel.details.css-style .visual > .details-section .details-section.collapsed > .header > .visual-style-section-clear,): Deleted.
Remove the "visual-style-section-clear" class, as it's no longer needed.

* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype._generateSection.createOptionsElement):
(WebInspector.VisualStyleDetailsPanel.prototype._generateSection):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214843 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoREGRESSION (r206744): CSS background-image in style attribute ignored when using...
cdumez@apple.com [Mon, 3 Apr 2017 22:06:51 +0000 (22:06 +0000)]
REGRESSION (r206744): CSS background-image in style attribute ignored when using createHTMLDocument method of DOM parsing
https://bugs.webkit.org/show_bug.cgi?id=170285
<rdar://problem/31378543>

Reviewed by Andy Estes.

Source/WebCore:

r206744 caused up to stop trying to resolve relative URLs when trying to load an image
referred to by CSS. We already try to resolve the relative URL when parsing the CSS
property so this will usually work fine. However, in the case when the CSS property
is parsed in detached document and then moved to another document, we will not have
the complete URL.

Test: fast/images/background-image-relative-url-changes-document.html

* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::loadImage):

LayoutTests:

Add layout test coverage.

* fast/images/background-image-relative-url-changes-document-expected.html: Added.
* fast/images/background-image-relative-url-changes-document.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214842 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: "Space" is not localizable in Timelines record button tooltips
commit-queue@webkit.org [Mon, 3 Apr 2017 22:06:24 +0000 (22:06 +0000)]
Web Inspector: "Space" is not localizable in Timelines record button tooltips
https://bugs.webkit.org/show_bug.cgi?id=170420
<rdar://problem/30871371>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-04-03
Reviewed by Timothy Hatcher.

* UserInterface/Base/LoadLocalizedStrings.js:
(WebInspector.unlocalizedString):
(WebInspector.UIString):
* UserInterface/Base/Main.js:
Move UIString / unlocalizedString to LoadLocalizedString.js.
They may be needed before Main.js has introduced it.

* UserInterface/Test/Test.js:
Provide a default implementaiton of unlocalizedString.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/KeyboardShortcut.js:
Most keys use a symbol to represent the key. "Space" was the one
exception, so use a localized string.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214841 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWeb Inspector: Tooltip for close tab button should match Safari
commit-queue@webkit.org [Mon, 3 Apr 2017 22:05:04 +0000 (22:05 +0000)]
Web Inspector: Tooltip for close tab button should match Safari
https://bugs.webkit.org/show_bug.cgi?id=170417
<rdar://problem/31378423>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-04-03
Reviewed by Matt Baker.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/GeneralTabBarItem.js:
(WebInspector.GeneralTabBarItem):
Updated tooltip to match Safari's most descriptive tooltip.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214840 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoREGRESSION (r214354): Web Inspector: WebSocket connection icon obscures close content...
webkit@devinrousso.com [Mon, 3 Apr 2017 21:26:10 +0000 (21:26 +0000)]
REGRESSION (r214354): Web Inspector: WebSocket connection icon obscures close content view icon
https://bugs.webkit.org/show_bug.cgi?id=170104

Reviewed by Joseph Pecoraro.

* UserInterface/Views/ResourceTreeElement.css:
(.item.resource.resource-type-websocket .status > .ready-state):
(.item.resource.resource-type-websocket:not(.selected) .status .ready-state.open):
(.tree-outline:not(:focus, .force-focus) .item.resource.resource-type-websocket.selected .status .ready-state.open):
(body:matches(.window-inactive, .window-docked-inactive) .item.resource.resource-type-websocket.selected .status .ready-state.open):
(.item.resource.resource-type-websocket:not(.selected) .status .ready-state.connecting):
(.tree-outline:not(:focus, .force-focus) .item.resource.resource-type-websocket.selected .status .ready-state.connecting):
(body:matches(.window-inactive, .window-docked-inactive) .item.resource.resource-type-websocket.selected .status .ready-state.connecting):
(.item.resource.resource-type-websocket .status > div): Deleted.
(.item.resource.resource-type-websocket:not(.selected) .status .open): Deleted.
(.tree-outline:not(:focus, .force-focus) .item.resource.resource-type-websocket.selected .status .open): Deleted.
(body:matches(.window-inactive, .window-docked-inactive) .item.resource.resource-type-websocket.selected .status .open): Deleted.
(.item.resource.resource-type-websocket:not(.selected) .status .connecting): Deleted.
(.tree-outline:not(:focus, .force-focus) .item.resource.resource-type-websocket.selected .status .connecting): Deleted.
(body:matches(.window-inactive, .window-docked-inactive) .item.resource.resource-type-websocket.selected .status .connecting): Deleted.

* UserInterface/Views/WebSocketResourceTreeElement.js:
(WebInspector.WebSocketResourceTreeElement.prototype._updateConnectionStatus):
Apply an additional CSS class to the connection indicator element so that the styles can be
applied more specifically to just that element.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214839 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoMove the Liveness<> adapters from AirLiveness.h to AirLivenessAdapter.h.
fpizlo@apple.com [Mon, 3 Apr 2017 21:07:01 +0000 (21:07 +0000)]
Move the Liveness<> adapters from AirLiveness.h to AirLivenessAdapter.h.

Rubber stamped by Keith Miller.

This will make it easier to write other code that uses those adapters.

* JavaScriptCore.xcodeproj/project.pbxproj:
* b3/air/AirLiveness.h:
(JSC::B3::Air::LivenessAdapter::LivenessAdapter): Deleted.
(JSC::B3::Air::LivenessAdapter::blockSize): Deleted.
(JSC::B3::Air::LivenessAdapter::forEachUse): Deleted.
(JSC::B3::Air::LivenessAdapter::forEachDef): Deleted.
(JSC::B3::Air::TmpLivenessAdapter::TmpLivenessAdapter): Deleted.
(JSC::B3::Air::TmpLivenessAdapter::numIndices): Deleted.
(JSC::B3::Air::TmpLivenessAdapter::acceptsBank): Deleted.
(JSC::B3::Air::TmpLivenessAdapter::acceptsRole): Deleted.
(JSC::B3::Air::TmpLivenessAdapter::valueToIndex): Deleted.
(JSC::B3::Air::TmpLivenessAdapter::indexToValue): Deleted.
(JSC::B3::Air::StackSlotLivenessAdapter::StackSlotLivenessAdapter): Deleted.
(JSC::B3::Air::StackSlotLivenessAdapter::numIndices): Deleted.
(JSC::B3::Air::StackSlotLivenessAdapter::acceptsBank): Deleted.
(JSC::B3::Air::StackSlotLivenessAdapter::acceptsRole): Deleted.
(JSC::B3::Air::StackSlotLivenessAdapter::valueToIndex): Deleted.
(JSC::B3::Air::StackSlotLivenessAdapter::indexToValue): Deleted.
* b3/air/AirLivenessAdapter.h: Added.
(JSC::B3::Air::LivenessAdapter::LivenessAdapter):
(JSC::B3::Air::LivenessAdapter::blockSize):
(JSC::B3::Air::LivenessAdapter::forEachUse):
(JSC::B3::Air::LivenessAdapter::forEachDef):
(JSC::B3::Air::TmpLivenessAdapter::TmpLivenessAdapter):
(JSC::B3::Air::TmpLivenessAdapter::numIndices):
(JSC::B3::Air::TmpLivenessAdapter::acceptsBank):
(JSC::B3::Air::TmpLivenessAdapter::acceptsRole):
(JSC::B3::Air::TmpLivenessAdapter::valueToIndex):
(JSC::B3::Air::TmpLivenessAdapter::indexToValue):
(JSC::B3::Air::StackSlotLivenessAdapter::StackSlotLivenessAdapter):
(JSC::B3::Air::StackSlotLivenessAdapter::numIndices):
(JSC::B3::Air::StackSlotLivenessAdapter::acceptsBank):
(JSC::B3::Air::StackSlotLivenessAdapter::acceptsRole):
(JSC::B3::Air::StackSlotLivenessAdapter::valueToIndex):
(JSC::B3::Air::StackSlotLivenessAdapter::indexToValue):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214838 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoUnreviewed, attempt to fix build with libgcrypt < 1.7.0
mcatanzaro@igalia.com [Mon, 3 Apr 2017 21:03:52 +0000 (21:03 +0000)]
Unreviewed, attempt to fix build with libgcrypt < 1.7.0

* pal/crypto/gcrypt/Utilities.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214837 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWTF::Liveness should have an API that focuses on actions at instruction boundaries
fpizlo@apple.com [Mon, 3 Apr 2017 20:50:33 +0000 (20:50 +0000)]
WTF::Liveness should have an API that focuses on actions at instruction boundaries
https://bugs.webkit.org/show_bug.cgi?id=170407

Reviewed by Keith Miller.

Source/JavaScriptCore:

Adopt changes to the WTF::Liveness<> API. Instead of having separate functions for the
early/late versions of uses and defs, we now have just a use/def API. Those
automatically take care of eary/late issues as needed.

This reduces the API surface between WTF::Liveness<> and its clients, which makes it
easier to implement some other optimizations I'm thinking about.

* b3/B3VariableLiveness.h:
(JSC::B3::VariableLivenessAdapter::forEachUse):
(JSC::B3::VariableLivenessAdapter::forEachDef):
(JSC::B3::VariableLivenessAdapter::forEachEarlyUse): Deleted.
(JSC::B3::VariableLivenessAdapter::forEachLateUse): Deleted.
(JSC::B3::VariableLivenessAdapter::forEachEarlyDef): Deleted.
(JSC::B3::VariableLivenessAdapter::forEachLateDef): Deleted.
* b3/air/AirLiveness.h:
(JSC::B3::Air::LivenessAdapter::blockSize):
(JSC::B3::Air::LivenessAdapter::forEachUse):
(JSC::B3::Air::LivenessAdapter::forEachDef):
(JSC::B3::Air::LivenessAdapter::forEachEarlyUse): Deleted.
(JSC::B3::Air::LivenessAdapter::forEachLateUse): Deleted.
(JSC::B3::Air::LivenessAdapter::forEachEarlyDef): Deleted.
(JSC::B3::Air::LivenessAdapter::forEachLateDef): Deleted.

Source/WTF:

Change the Liveness<> API to handle early and late things in one lump inside forEachUse
and forEachDef functions. This reduces the amount of different functions that Liveness<>
expects from its adaptor. This makes it easier to implement optimizations that cache the
use/def behavior of each instruction boundary.

* wtf/Liveness.h:
(WTF::Liveness::Liveness):
(WTF::Liveness::LocalCalc::execute):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214836 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agorun-safari should support launching with custom language and locale
bburg@apple.com [Mon, 3 Apr 2017 20:44:54 +0000 (20:44 +0000)]
run-safari should support launching with custom language and locale
https://bugs.webkit.org/show_bug.cgi?id=170397

Reviewed by Alexey Proskuryakov.

Hook up -AppleLanguages and -AppleLocale to command line options.

* Scripts/webkitdirs.pm:
(printHelpAndExitForRunAndDebugWebKitAppIfNeeded):
(argumentsForRunAndDebugMacWebKitApp):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214835 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRemove timeout expectations after bug fix
wilander@apple.com [Mon, 3 Apr 2017 20:18:44 +0000 (20:18 +0000)]
Remove timeout expectations after bug fix
https://bugs.webkit.org/show_bug.cgi?id=168262

Unreviewed test gardening.

Remove timeout expectations after bug fix in
https://bugs.webkit.org/show_bug.cgi?id=170400

* platform/wk2/TestExpectations:
    Remove expected timeout for the first five test cases
    under http/tests/loading/resourceLoadStatistics/.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214834 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agowebkitpy: Provide option to skip install
jbedard@apple.com [Mon, 3 Apr 2017 19:39:29 +0000 (19:39 +0000)]
webkitpy: Provide option to skip install
https://bugs.webkit.org/show_bug.cgi?id=170344

Reviewed by Alexey Proskuryakov.

Installing can take time for on device testing.  Provide an option to skip install
and use whatever driver is currently installed on the device or simulator.

* Scripts/webkitpy/port/base.py:
(Port.check_build): Do not check driver if skipping install.
* Scripts/webkitpy/port/factory.py:
(platform_options): Add '--no-install' option.
* Scripts/webkitpy/port/ios.py:
(IOSPort.setup_test_run): Check install option before installing.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214832 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoDo not set WebAVPlayerLayerView background to black in fullscreen.
commit-queue@webkit.org [Mon, 3 Apr 2017 19:35:26 +0000 (19:35 +0000)]
Do not set WebAVPlayerLayerView background to black in fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=170132
rdar://problem/30839278

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-04-03
Reviewed by Tim Horton.

No new tests because no behavior change.

The black background on WebAVPlayerLayerView interferes with the fullscreen animation
and has been removed.

* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::enterFullscreen):
(WebVideoFullscreenInterfaceAVKit::enterFullscreenStandard):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214831 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoREGRESSION (r207669): FileMaker Pro Help pages do not render correctly
antti@apple.com [Mon, 3 Apr 2017 19:08:07 +0000 (19:08 +0000)]
REGRESSION (r207669): FileMaker Pro Help pages do not render correctly
https://bugs.webkit.org/show_bug.cgi?id=170402
<rdar://problem/31004344>

Reviewed by Simon Fraser.

Source/WebCore:

If a new stylesheet load is started from the load event the document.styleSheets does not
always reflect the already loaded stylesheets.

Test: fast/css/document-stylesheets-dynamic.html

* style/StyleScope.cpp:
(WebCore::Style::Scope::updateActiveStyleSheets):

    Remove an old optimization where we would not update active stylesheets if there were pending
    (head) stylesheet loads and they had not been updated already.
    This is probably not a valuable optimization anymore with the new lazy stylesheet update strategy.

* style/StyleScope.h:

LayoutTests:

* fast/css/document-stylesheets-dynamic-expected.html: Added.
* fast/css/document-stylesheets-dynamic.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214830 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoTweak ApplePaySession API
andersca@apple.com [Mon, 3 Apr 2017 19:07:50 +0000 (19:07 +0000)]
Tweak ApplePaySession API
https://bugs.webkit.org/show_bug.cgi?id=170409
rdar://problem/31405459

Reviewed by Tim Horton.

Source/WebCore:

Rename "address" to "addressLines". Add "postalAddress". Reorder the ApplePayError constructor parameters.

* Modules/applepay/ApplePayError.cpp:
(WebCore::ApplePayError::create):
(WebCore::ApplePayError::ApplePayError):
* Modules/applepay/ApplePayError.h:
* Modules/applepay/ApplePayError.idl:
* Modules/applepay/PaymentRequest.h:

Source/WebKit2:

Update for WebCore changes.

* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::toNSError):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214829 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoAdd a new test to ARES6
sbarati@apple.com [Mon, 3 Apr 2017 19:04:16 +0000 (19:04 +0000)]
Add a new test to ARES6
https://bugs.webkit.org/show_bug.cgi?id=170077

Rubber stamped by Filip Pizlo.

This patch adds a new test to ARES6. The test is called Babylon. Babylon is
the JavaScript parser that is part of the Babel transpiler. The test runs
the parser on 4 different JS scripts.

* ARES-6/Babylon: Added.
* ARES-6/Babylon/AUTHORS: Added.
* ARES-6/Babylon/air-blob.js: Added.
(Reg):
(Reg.fromReg):
(Reg.prototype.get index):
(Reg.prototype.get type):
(Reg.prototype.get name):
(Reg.prototype.get isCalleeSave):
(Reg.prototype.get isReg):
(Reg.prototype.hash):
(Reg.prototype.toString):
(Reg.extract):
(Reg.forEachFast):
(Reg.forEach):
(newGPR):
(Reg.gprs.Reg.fprs.Reg.calleeSaveGPRs.Reg.calleeSaveFPRs.Reg.calleeSaves):
* ARES-6/Babylon/babylon-blob.js: Added.
(export.default.Parser):
(export.default.Parser.prototype.isReservedWord):
(export.default.Parser.prototype.hasPlugin):
(export.default.Parser.prototype.extend):
(export.default.Parser.prototype.loadPlugins):
(export.default.Parser.prototype.parse):
* ARES-6/Babylon/basic-blob.js: Added.
(Basic.NumberApply):
(Basic.Variable):
(Basic.Const):
(Basic.NumberPow):
(Basic.NumberMul):
(Basic.NumberDiv):
(Basic.NumberNeg):
(Basic.NumberAdd):
(Basic.NumberSub):
(Basic.StringVar):
(Basic.Equals):
(Basic.NotEquals):
(Basic.LessThan):
(Basic.GreaterThan):
(Basic.LessEqual):
(Basic.GreaterEqual):
(Basic.GoTo):
(Basic.GoSub):
(Basic.Def):
(Basic.Let):
(Basic.If):
(Basic.Return):
(Basic.Stop):
(Basic.On):
(sideState.shouldStop):
(Basic.For):
(Basic.Next):
(Basic.Print):
(Basic.Input):
(Basic.Read):
(Basic.Restore):
(Basic.Dim):
(Basic.Randomize):
(Basic.End):
(Basic.Program):
* ARES-6/Babylon/benchmark.js: Added.
(this.performance.performance.now.currentTime):
(else.this.preciseTime.currentTime):
(else.currentTime):
(BabylonBenchmark.appendSource):
(BabylonBenchmark):
(BabylonBenchmark.prototype.runIteration.parse):
(BabylonBenchmark.prototype.runIteration.parseExpression):
(BabylonBenchmark.prototype.runIteration):
(runBenchmark):
* ARES-6/Babylon/index.js: Added.
(isIdentifierStart):
(isIdentifierChar):
(isNewLine):
(Position):
(SourceLocation):
(getLineInfo):
(TokenType):
(KeywordTokenType):
(BinopTokenType):
(TokContext):
(tt.parenR.updateContext.tt.braceR.updateContext):
(tt.name.updateContext):
(tt.braceL.updateContext):
(tt.dollarBraceL.updateContext):
(tt.parenL.updateContext):
(tt.incDec.updateContext):
(tt._function.updateContext):
(tt.backQuote.updateContext):
(State.prototype.init):
(State.prototype.curPosition):
(State.prototype.clone):
(State):
(Token):
(codePointToString):
(Tokenizer):
(Tokenizer.prototype.next):
(Tokenizer.prototype.eat):
(Tokenizer.prototype.match):
(Tokenizer.prototype.isKeyword):
(Tokenizer.prototype.lookahead):
(Tokenizer.prototype.setStrict):
(Tokenizer.prototype.curContext):
(Tokenizer.prototype.nextToken):
(Tokenizer.prototype.readToken):
(Tokenizer.prototype.fullCharCodeAtPos):
(Tokenizer.prototype.pushComment):
(Tokenizer.prototype.skipBlockComment):
(Tokenizer.prototype.skipLineComment):
(Tokenizer.prototype.skipSpace):
(Tokenizer.prototype.finishToken):
(Tokenizer.prototype.readToken_dot):
(Tokenizer.prototype.readToken_slash):
(Tokenizer.prototype.readToken_mult_modulo):
(Tokenizer.prototype.readToken_pipe_amp):
(Tokenizer.prototype.readToken_caret):
(Tokenizer.prototype.readToken_plus_min):
(Tokenizer.prototype.readToken_lt_gt):
(Tokenizer.prototype.readToken_eq_excl):
(Tokenizer.prototype.getTokenFromCode):
(Tokenizer.prototype.finishOp):
(Tokenizer.prototype.readRegexp):
(Tokenizer.prototype.readInt):
(Tokenizer.prototype.readRadixNumber):
(Tokenizer.prototype.readNumber):
(Tokenizer.prototype.readCodePoint):
(Tokenizer.prototype.readString):
(Tokenizer.prototype.readTmplToken):
(Tokenizer.prototype.readEscapedChar):
(Tokenizer.prototype.readHexChar):
(Tokenizer.prototype.readWord1):
(Tokenizer.prototype.readWord):
(Tokenizer.prototype.braceIsBlock):
(Tokenizer.prototype.updateContext):
(getOptions):
(prototype.isReservedWord):
(prototype.hasPlugin):
(prototype.extend):
(prototype.loadPlugins):
(prototype.parse):
(last):
(pp.addComment):
(pp.processComment):
(pp.checkPropClash):
(pp.getExpression):
(pp.parseExpression):
(pp.parseMaybeAssign):
(pos.set i):
* ARES-6/Babylon/inspector-blob.js: Added.
(WebInspector.ScriptSyntaxTree):
(WebInspector.ScriptSyntaxTree.prototype.get parsedSuccessfully):
(WebInspector.ScriptSyntaxTree.prototype.forEachNode):
(WebInspector.ScriptSyntaxTree.prototype.filter):
(WebInspector.ScriptSyntaxTree.prototype.containersOfOffset):
(WebInspector.ScriptSyntaxTree.prototype.filterByRange.filterForNodesInRange):
(WebInspector.ScriptSyntaxTree.prototype.filterByRange):
(WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement.removeFunctionsFilter):
(WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
(WebInspector.ScriptSyntaxTree.functionReturnDivot):
(WebInspector.ScriptSyntaxTree.prototype.updateTypes):
(WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration.gatherIdentifiers):
(WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration):
(WebInspector.ScriptSyntaxTree.prototype._defaultParserState):
(WebInspector.ScriptSyntaxTree.prototype._recurse):
(WebInspector.ScriptSyntaxTree.prototype._recurseArray):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
* ARES-6/about.html:
* ARES-6/babylon_benchmark.js: Added.
* ARES-6/cli.js:
* ARES-6/glue.js:
* ARES-6/index.html:
* ARES-6/results.js:
(Results.prototype.reportResult):
(Results.prototype.reportResult.averageAbovePercentile): Deleted.
* ARES-6/styles.css:
(.test):
(@media only screen and (max-width: 784px)):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214828 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoInst::forEachArg could compile to more compact code
fpizlo@apple.com [Mon, 3 Apr 2017 18:55:34 +0000 (18:55 +0000)]
Inst::forEachArg could compile to more compact code
https://bugs.webkit.org/show_bug.cgi?id=170406

Reviewed by Sam Weinig.

Prior to this change, Inst::forEachArg compiled to a ginormous ALWAYS_INLINE switch statement.
It had one case for each opcode, and then each of those cases would have a switch statement over
the number of operands. Then the cases of that switch statement would have a sequence of calls to
the passed lambda. This meant that every user of forEachArg would generate an insane amount of
code. It also meant that the inlining achieved nothing, since the lambda would surely then not
be inlined - and if it was, then the icache pressure due to code bloat would surely negate any
benefits.

This replaces that code with a loop over a compact look-up table. We use the opcode and number of
operands as keys into that look-up table. The table only takes about 20KB. It has one byte for
each argument in each overload of each opcode.

I can't measure any reproducible change in performance, but the JavaScriptCore framework binary
shrinks by 2.7 MB. This is a 15% reduction in JavaScriptCore binary size.

* JavaScriptCore.xcodeproj/project.pbxproj:
* b3/B3Width.h:
* b3/air/AirCustom.h:
(JSC::B3::Air::PatchCustom::forEachArg):
* b3/air/AirFormTable.h: Added.
(JSC::B3::Air::decodeFormRole):
(JSC::B3::Air::decodeFormBank):
(JSC::B3::Air::decodeFormWidth):
* b3/air/AirInst.h:
* b3/air/opcode_generator.rb:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214827 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWebAssembly: remove lastAllocatedMode from Memory
keith_miller@apple.com [Mon, 3 Apr 2017 18:44:05 +0000 (18:44 +0000)]
WebAssembly: remove lastAllocatedMode from Memory
https://bugs.webkit.org/show_bug.cgi?id=170405

Reviewed by Mark Lam.

It's not used anymore so there isn't any point in keeping it around.

* wasm/WasmMemory.cpp:
(JSC::Wasm::Memory::createImpl):
(JSC::Wasm::Memory::lastAllocatedMode): Deleted.
* wasm/WasmMemory.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214826 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[GCrypt] Implement CryptoKeyEC::keySizeInBits(), ::platformGeneratePair()
zandobersek@gmail.com [Mon, 3 Apr 2017 18:40:54 +0000 (18:40 +0000)]
[GCrypt] Implement CryptoKeyEC::keySizeInBits(), ::platformGeneratePair()
https://bugs.webkit.org/show_bug.cgi?id=170345

Reviewed by Michael Catanzaro.

Source/WebCore:

Start implementing the libgcrypt-based platform bits of CryptoKeyEC.

Implement keySizeInBits() by returning the appropriate size for this
object's curve type. An assertion is added to ensure that this size
matches the one that's returned by gcry_pk_get_nbits() for this
object's EC key as represented by the m_platformKey gcry_sexp_t object.

Implement platformGeneratePair() by constructing a genkey s-expression
that requests a generation of an EC key for the specified curve type.
The s-expression is then passed to gcry_pk_genkey(), and the public
and private key data is then retrieved from the returned s-expression
upon success and used to create the public and private CryptoKeyEC
objects.

The PlatformECKey type alias is changed to match gcry_sexp_t. The
CryptoKeyEC destructor releases the gcry_sexp_t object through
a PAL::GCrypt::HandleDeleter<gcry_sexp_t> instance.

The method definitions in the CryptoKeyECGCrypt.cpp file are also
sorted to match the declaration order in the header.

No new tests -- current ones cover this sufficiently, but are not yet
enabled due to other missing platform-specific SUBTLE_CRYPTO
implementations.

* crypto/gcrypt/CryptoKeyECGCrypt.cpp:
(WebCore::curveSize):
(WebCore::curveName):
(WebCore::CryptoKeyEC::~CryptoKeyEC):
(WebCore::CryptoKeyEC::keySizeInBits):
(WebCore::CryptoKeyEC::platformGeneratePair):
(WebCore::CryptoKeyEC::platformImportSpki):
(WebCore::CryptoKeyEC::platformImportPkcs8):
(WebCore::CryptoKeyEC::platformExportRaw):
(WebCore::CryptoKeyEC::platformAddFieldElements):
(WebCore::CryptoKeyEC::platformExportSpki):
* crypto/keys/CryptoKeyEC.h:

Source/WebCore/PAL:

* pal/crypto/gcrypt/Handle.h:
(PAL::GCrypt::HandleDeleter<gcry_sexp_t>::operator()): Add a HandleDeleter
specialization for the gcry_sexp_t type.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214825 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWebAssembly: Update spec tests
keith_miller@apple.com [Mon, 3 Apr 2017 18:38:37 +0000 (18:38 +0000)]
WebAssembly: Update spec tests
https://bugs.webkit.org/show_bug.cgi?id=170361

Rubber-stamped by Saam Barati.

JSTests:

Update the spec tests to run tests generated by the newer spec
test builder wasm-spec/test/builder.py. This patch also adds the
necessary harness code in spec-harness.js so we can run the tests.

* wasm.yaml:
* wasm/import-spec-tests.rb:
* wasm/spec-harness.js: Added.
(import.string_appeared_here.then):
(test):
(promise_test):
(let.assert_unreached):
* wasm/spec-harness/index.js: Added.
(let.testNum):
(assertThrows):
(_assert):
(ValueResult):
(ErrorResult):
(Result.prototype.isError):
(binary):
(module):
(uniqueTest):
(assert_invalid):
(assert_soft_invalid):
(register):
(call):
(get instance):
(exports):
(run):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(try.f):
(catch):
(assert_exhaustion):
(assert_return):
(assert_return_nan):
* wasm/spec-harness/testharness.css: Added.
(html):
(#log .warning,):
(#log .error,):
(section#summary):
(table#results):
(table#results th:first-child,):
(table#results th:last-child,):
(table#results.assertions th:last-child,):
(table#results th):
(table#results td):
(tr.pass > td:first-child):
(tr.fail > td:first-child):
(tr.timeout > td:first-child):
(tr.notrun > td:first-child):
(.pass > td:first-child, .fail > td:first-child, .timeout > td:first-child, .notrun > td:first-child):
(table#results span):
(table#results span.expected):
(table#results span.actual):
(span.ok):
(tr.error):
(span.timeout):
(span.ok, span.timeout, span.error):
* wasm/spec-harness/testharness.js: Added.
(WindowTestEnvironment):
(WindowTestEnvironment.prototype._dispatch):
(WindowTestEnvironment.prototype._forEach_windows):
(WindowTestEnvironment.prototype.on_tests_ready):
(WindowTestEnvironment.prototype.setup_messages):
(WindowTestEnvironment.prototype.next_default_test_name):
(WindowTestEnvironment.prototype.on_new_harness_properties):
(WindowTestEnvironment.prototype.add_on_loaded_callback):
(WindowTestEnvironment.prototype.test_timeout):
(WindowTestEnvironment.prototype.global_scope):
(WorkerTestEnvironment):
(WorkerTestEnvironment.prototype._dispatch):
(WorkerTestEnvironment.prototype._add_message_port):
(WorkerTestEnvironment.prototype.next_default_test_name):
(WorkerTestEnvironment.prototype.on_new_harness_properties):
(WorkerTestEnvironment.prototype.on_tests_ready):
(WorkerTestEnvironment.prototype.add_on_loaded_callback):
(WorkerTestEnvironment.prototype.test_timeout):
(WorkerTestEnvironment.prototype.global_scope):
(DedicatedWorkerTestEnvironment):
(DedicatedWorkerTestEnvironment.prototype.on_tests_ready):
(SharedWorkerTestEnvironment):
(SharedWorkerTestEnvironment.prototype.on_tests_ready):
(ServiceWorkerTestEnvironment):
(ServiceWorkerTestEnvironment.prototype.add_on_loaded_callback):
(create_test_environment):
(is_shared_worker):
(is_service_worker):
(test):
(async_test):
(promise_test):
(this.wait_for):
(EventWatcher):
(setup):
(done):
(generate_tests):
(step_timeout):
(truncate):
(is_node):
(format_value):
* wasm/spec-harness/testharnessreport.js: Added.
* wasm/spec-harness/wasm-constants.js: Added.
(bytes):
(bytesWithHeader):
(makeSig):
(makeSig_v_x):
(makeSig_v_xx):
(makeSig_r_v):
(makeSig_r_x):
(makeSig_r_xx):
(assertTraps):
(assertWasmThrows):
* wasm/spec-harness/wasm-module-builder.js: Added.
(Binary.prototype.emit_u8):
(Binary.prototype.emit_u16):
(Binary.prototype.emit_u32):
(Binary.prototype.emit_u32v):
(Binary.prototype.emit_bytes):
(Binary.prototype.emit_string):
(Binary.prototype.emit_header):
(Binary.prototype.emit_section):
(Binary):
(WasmFunctionBuilder):
(WasmFunctionBuilder.prototype.exportAs):
(WasmFunctionBuilder.prototype.exportFunc):
(WasmFunctionBuilder.prototype.addBody):
(WasmFunctionBuilder.prototype.addLocals):
(WasmFunctionBuilder.prototype.end):
(WasmGlobalBuilder):
(WasmGlobalBuilder.prototype.exportAs):
(WasmModuleBuilder):
(WasmModuleBuilder.prototype.addStart):
(WasmModuleBuilder.prototype.addMemory):
(WasmModuleBuilder.prototype.addExplicitSection):
(WasmModuleBuilder.prototype.addType):
(WasmModuleBuilder.prototype.addGlobal):
(WasmModuleBuilder.prototype.addFunction):
(WasmModuleBuilder.prototype.addImport):
(WasmModuleBuilder.prototype.addImportedGlobal):
(WasmModuleBuilder.prototype.addImportedMemory):
(WasmModuleBuilder.prototype.addImportedTable):
(WasmModuleBuilder.prototype.addExport):
(WasmModuleBuilder.prototype.addExportOfKind):
(WasmModuleBuilder.prototype.addDataSegment):
(WasmModuleBuilder.prototype.exportMemoryAs):
(WasmModuleBuilder.prototype.addFunctionTableInit):
(WasmModuleBuilder.prototype.appendToTable):
(WasmModuleBuilder.prototype.setFunctionTableLength):
(WasmModuleBuilder.prototype.toArray):
(WasmModuleBuilder.prototype.toBuffer):
(WasmModuleBuilder.prototype.instantiate):
* wasm/spec-harness/wast.js: Added.
(normalize):
(require.else._registry.name):
(require):
(add_hex_char):
(add_char):
(string_with):
(list_of_opt):
(break_bytes.f):
(break_bytes):
(f):
(decls):
(func_type):
(limits):
(global_type):
(testop):
(relop):
(unop):
(binop):
(cvtop):
(oper):
(mem_size):
(extension):
(memop):
(storeop):
(var):
(constop):
(instr.else.switch.case.0.f):
(instr.else.switch.case.1.f.1):
(instr.else.switch.case.2.f.2):
(instr):
(func_with_name):
(func):
(start):
(table):
(memory):
(segment):
(elems):
(data):
(typedef):
(import_kind):
(import):
(export_kind):
(export):
(var_opt):
(is_func_import):
(is_table_import):
(is_memory_import):
(is_global_import):
(f.1):
(f.2):
(f.3):
(module_with_var_opt):
(module_):
(literal):
(definition):
(access):
(action):
(script):
(_registry.string_appeared_here):
(init):
(make_matrix):
(copy):
(append):
(sub):
(fill):
(blit):
(iter):
(map):
(iteri):
(mapi):
(to_list):
(list_length):
(of_list):
(fold_left):
(fold_right):
(maxson):
(trickle):
(bubble):
(trickleup):
(sort):
(merge):
(isortto):
(sortto):
(stable_sort):
(import_type):
(export_type):
(dims.n):
(dims.d.i):
(dims):
(map_file):
(create):
(of_array):
(slice_left):
(slice_right):
(slice_left_1):
(slice_right_1):
(slice_left_2):
(slice_right_2):
(array1_of_genarray):
(array2_of_genarray):
(array3_of_genarray):
(reshape_1):
(reshape_2):
(reshape_3):
(reshape):
(__):
(contents):
(to_bytes):
(nth):
(length):
(clear):
(reset):
(resize):
(add_substring):
(add_subbytes):
(add_string):
(add_bytes):
(add_buffer):
(add_channel):
(output_buffer):
(closing):
(advance_to_closing):
(advance_to_non_alpha):
(find_ident):
(add_substitute):
(make):
(to_string):
(of_string):
(sub_string):
(extend):
(blit_string):
(concat):
(cat):
(is_space):
(trim):
(escaped):
(uppercase):
(lowercase):
(apply1):
(capitalize):
(uncapitalize):
(index_rec):
(index):
(index_from):
(rindex_rec):
(rindex):
(rindex_from):
(contains_from):
(contains):
(rcontains_from):
(caml_array_sub):
(len):
(caml_array_concat):
(caml_make_vect):
(caml_array_blit):
(get if):
(caml_set_oo_id):
(get_id):
(caml_int32_float_of_bits):
(caml_int32_bits_of_float):
(caml_classify_float):
(caml_modf_float):
(caml_ldexp_float):
(caml_frexp_float):
(caml_copysign_float):
(caml_expm1_float):
(caml_hypot_float):
(caml_log10_float):
(caml_failwith):
(parse_digit):
(int_of_string_base):
(parse_sign_and_base):
(caml_int_of_string.aux):
(caml_int_of_string):
(caml_int64_of_string.aux):
(caml_int64_of_string):
(int_of_base):
(parse_format):
(finish_formatting):
(caml_format_int):
(caml_int64_format):
(caml_format_float):
(float_of_string):
(div):
(mod_):
(caml_bswap16):
(caml_int32_bswap):
(imul):
(neg_signed):
(not):
(eq):
(neg):
(lsl_):
(lsr_):
(asr_):
(is_zero):
(mul):
(swap):
(xor):
(or_):
(and_):
(ge):
(lt):
(gt):
(le):
(to_float):
(of_float):
(div_mod):
(compare):
(of_int32):
(to_int32):
(to_hex.aux):
(to_hex):
(discard_sign):
(float_of_bits):
(bits_of_float.to_nat):
(bits_of_float):
(get64):
(erase_rel):
(concat_fmtty):
(concat_fmt):
(create_char_set):
(add_in_char_set):
(rev_char_set):
(is_in_char_set):
(prec_of_prec_opt):
(param_format_of_ignored_format):
(buffer_check_size):
(buffer_add_char):
(buffer_add_string):
(buffer_contents):
(char_of_iconv):
(char_of_fconv):
(char_of_counter):
(print_char):
(set while.set var):
(set while.set else):
(set var):
(set else):
(set print_char):
(set if):
(bprint_padty):
(bprint_ignored_flag):
(bprint_pad_opt):
(bprint_padding):
(bprint_precision):
(bprint_iconv_flag):
(bprint_int_fmt):
(bprint_altint_fmt):
(bprint_fconv_flag):
(bprint_float_fmt):
(string_of_formatting_lit):
(string_of_formatting_gen):
(bprint_char_literal):
(bprint_string_literal):
(bprint_fmtty):
(int_of_custom_arity):
(bprint_fmt):
(string_of_fmt):
(symm):
(fmtty_rel_det):
(trans):
(fmtty_of_formatting_gen):
(fmtty_of_fmt):
(fmtty_of_custom):
(fmtty_of_padding_fmtty):
(fmtty_of_precision_fmtty):
(type_padding):
(type_padprec):
(type_ignored_param_one):
(type_format_gen):
(type_ignored_format_substitution):
(type_format):
(recast):
(fix_padding):
(fix_int_precision):
(string_to_caml_string):
(format_of_iconv):
(format_of_aconv):
(format_of_fconv):
(convert_int):
(convert_int32):
(convert_nativeint):
(convert_int64):
(else.is_valid):
(convert_float):
(format_caml_char):
(string_of_fmtty):
(else.switch.):
(else.switch.k.prime):
(else.switch.else.):
(else.switch.else.k.prime.1):
(make_printf):
(make_from_fmtty):
(make_invalid_arg):
(make_string_padding):
(make_int_padding_precision):
(make_custom):
(output_acc):
(bufput_acc):
(strput_acc):
(failwith_message.k):
(failwith_message):
(open_box_of_string.else.invalid_box):
(open_box_of_string.else.parse_spaces):
(open_box_of_string.else.parse_lword):
(open_box_of_string.else.parse_int):
(open_box_of_string):
(make_padding_fmt_ebb):
(make_precision_fmt_ebb):
(make_padprec_fmt_ebb):
(invalid_format_message):
(invalid_format_without):
(expected_character):
(compute_int_conv):
(incompatible_flag):
(parse_positive):
(parse_conv):
(parse_after_precision):
(else.parse_literal):
(parse_after_padding):
(parse_literal):
(parse_after_at):
(add_literal):
(parse_spaces):
(parse_integer):
(compute_float_conv):
(search_subformat_end):
(check_no_0):
(opt_of_pad):
(get_prec_opt):
(else.switch.case.99.char_format):
(else.switch.scan_format):
(parse_conversion):
(set_flag):
(parse_flags):
(is_int_base):
(counter_of_char):
(add_range):
(fail_single_percent):
(parse_char_set_after_char):
(parse_char_set_content):
(parse_char_set_start):
(parse_char_set):
(check_open_box):
(parse_tag):
(fmt_ebb_of_string):
(format_of_string_fmtty):
(format_of_string_format):
(caret):
(caml_ml_open_descriptor_in):
(caml_ml_open_descriptor_out):
(caml_ml_flush):
(node_std_output):
(caml_ml_output_char):
(caml_ml_input):
(caml_ml_input_char):
(caml_ml_out_channels_list):
(fail):
(caml_lex_array):
(caml_lex_engine):
(caml_lex_run_mem):
(caml_lex_run_tag):
(caml_new_lex_engine):
(caml_obj_dup):
(caml_obj_truncate):
(caml_lazy_make_forward):
(caml_update_dummy):
(caml_int_compare):
(caml_compare):
(caml_equal):
(caml_notequal):
(caml_greaterequal):
(caml_lessequal):
(else.aux):
(caml_get_public_method):
(caml_parse_engine):
(caml_set_parser_trace):
(js_string_of_char):
(caml_string_get):
(caml_create_string):
(caml_string_compare):
(caml_fill_string):
(caml_blit_string):
(caml_blit_bytes):
(bytes_of_string):
(bytes_to_string):
(caml_string_of_char_array):
(caml_is_printable):
(caml_string_get16):
(caml_string_get32):
(repeat):
(chr):
(app):
(js):
(curry_1):
(_1):
(js1):
(__1):
(curry_2):
(_2):
(js2):
(__2):
(curry_3):
(_3):
(js3):
(__3):
(curry_4):
(_4):
(js4):
(__4):
(curry_5):
(_5):
(js5):
(__5):
(curry_6):
(_6):
(js6):
(__6):
(curry_7):
(_7):
(js7):
(__7):
(curry_8):
(_8):
(js8):
(__8):
(stream):
(eos):
(skip):
(read):
(peek):
(string_of_byte):
(position):
(region):
(error):
(guard):
(get 1):
(get expect):
(get illegal):
(at):
(u32):
(u64):
(get require):
(vuN):
(get var):
(vsN):
(vu32):
(vs32):
(vs64):
(f32):
(f64):
(len32):
(string):
(opt):
(vec):
(sized):
(value_type):
(elem_type):
(stack_type):
(table_type):
(memory_type):
(mutability.get if):
(mutability):
(instr.get if):
(instr_block):
(const):
(id):
(section):
(type_section):
(import_kind.get if):
(import_section):
(func_section):
(table_section):
(memory_section):
(global):
(global_section):
(export_kind.get if):
(export_section):
(start_section):
(local):
(code):
(code_section):
(table_segment):
(elem_section):
(memory_segment):
(data_section):
(partial_arg.1):
(custom):
(custom_section):
(iterate):
(decode):
(patch):
(encode.u8):
(encode.u16):
(encode.u32):
(encode.vu64):
(encode.vs64):
(encode.vu32):
(encode.len):
(encode.bool):
(encode.string):
(encode.vec):
(encode.gap32):
(encode.patch_gap32):
(encode.value_type):
(encode.stack_type):
(encode.func_type):
(encode.limits):
(encode.table_type):
(encode.memory_type):
(encode.global_type):
(encode.memop):
(encode):
(encode.instr):
(encode.const):
(encode.section):
(encode.type_section):
(encode.import):
(encode.import_section):
(encode.func):
(encode.func_section):
(encode.table):
(encode.table_section):
(encode.memory):
(encode.memory_section):
(encode.global):
(encode.global_section):
(encode.export_kind):
(encode.export):
(encode.export_section):
(encode.start_section):
(encode.combine):
(encode.compress):
(encode.local):
(encode.code):
(encode.code_section):
(encode.segment):
(encode.table_segment):
(encode.elem_section):
(encode.memory_segment):
(encode.module_):
(Make.warn):
(Make.error):
(Make):
(print_nan_significand_digits):
(Make.of_bits):
(Make.to_bits):
(Make.is_nan):
(Make.canonicalize_nan):
(Make.determine_binary_nan):
(Make.determine_unary_nan):
(Make.binary):
(Make.unary):
(Make.add):
(Make.sub):
(Make.mul):
(Make.div):
(Make.sqrt):
(Make.ceil):
(Make.floor):
(Make.trunc):
(Make.nearest):
(Make.min):
(Make.max):
(Make.abs):
(Make.neg):
(Make.copysign):
(Make.eq):
(Make.ne):
(Make.lt):
(Make.gt):
(Make.le):
(Make.ge):
(Make.of_signless_string):
(Make.of_string):
(Make.to_string):
(add_queue):
(peek_queue):
(take_queue):
(pp_enqueue):
(pp_clear_queue):
(pp_output_string):
(break_new_line):
(break_same_line):
(pp_force_break_line):
(switch.add_tab):
(else.switch.find):
(format_pp_token):
(advance_left):
(enqueue_advance):
(enqueue_string_as):
(set_size):
(scan_push):
(pp_open_box_gen):
(pp_close_box):
(pp_open_tag):
(pp_close_tag):
(pp_set_print_tags):
(pp_set_mark_tags):
(pp_get_print_tags):
(pp_get_mark_tags):
(pp_set_tags):
(pp_get_formatter_tag_functions):
(pp_set_formatter_tag_functions):
(pp_rinit):
(pp_flush_queue):
(pp_print_as_size):
(pp_print_string):
(pp_print_int):
(pp_print_float):
(pp_print_bool):
(pp_open_hbox):
(pp_open_vbox):
(pp_open_hvbox):
(pp_open_hovbox):
(pp_open_box):
(pp_print_newline):
(pp_print_flush):
(pp_force_newline):
(pp_print_if_newline):
(pp_print_break):
(pp_print_space):
(pp_print_cut):
(pp_open_tbox):
(pp_close_tbox):
(pp_print_tbreak):
(pp_print_tab):
(pp_set_tab):
(pp_print_list):
(flush):
(pp_print_text):
(pp_set_max_boxes):
(pp_get_max_boxes):
(pp_over_max_boxes):
(pp_get_ellipsis_text):
(pp_limit):
(pp_set_max_indent):
(pp_get_max_indent):
(pp_set_margin):
(pp_get_margin):
(pp_set_formatter_out_functions):
(pp_get_formatter_out_functions):
(pp_set_formatter_output_functions):
(pp_get_formatter_output_functions):
(pp_set_all_formatter_output_functions):
(pp_get_all_formatter_output_functions):
(display_newline):
(display_blanks):
(state.16):
(state.17):
(state.18):
(state.19):
(pp_set_formatter_out_channel):
(default_pp_mark_open_tag):
(default_pp_mark_close_tag):
(default_pp_print_open_tag):
(default_pp_print_close_tag):
(pp_make_formatter):
(ppf.18):
(ppf.19):
(make_formatter):
(formatter_of_out_channel):
(formatter_of_buffer):
(flush_str_formatter):
(flush_buf_formatter):
(open_hbox):
(open_vbox):
(open_hvbox):
(open_hovbox):
(open_box):
(close_box):
(open_tag):
(close_tag):
(print_as):
(print_string):
(print_int):
(print_float):
(print_bool):
(print_cut):
(print_space):
(force_newline):
(print_flush):
(print_newline):
(print_if_newline):
(open_tbox):
(close_tbox):
(print_tbreak):
(set_tab):
(print_tab):
(set_margin):
(get_margin):
(set_max_indent):
(get_max_indent):
(set_max_boxes):
(get_max_boxes):
(over_max_boxes):
(set_ellipsis_text):
(get_ellipsis_text):
(set_formatter_out_channel):
(set_formatter_out_functions):
(get_formatter_out_functions):
(set_formatter_output_functions):
(get_formatter_output_functions):
(set_all_formatter_output_functions):
(get_all_formatter_output_functions):
(set_formatter_tag_functions):
(get_formatter_tag_functions):
(set_print_tags):
(get_print_tags):
(set_mark_tags):
(get_mark_tags):
(set_tags):
(compute_tag):
(output_formatting_lit):
(kfprintf):
(ikfprintf):
(fprintf):
(ifprintf):
(printf):
(eprintf):
(k.prime):
(ksprintf):
(sprintf):
(asprintf.k.prime):
(asprintf):
(k):
(bprintf):
(succ):
(pred):
(abs):
(lognot):
(Make.cmp_u):
(Make.divrem_u):
(Make.div_s):
(Make.div_u):
(Make.rem_s):
(Make.rem_u):
(Make.shift):
(Make.shl):
(Make.shr_s):
(Make.shr_u):
(Make.clamp_rotate_count):
(Make.rotl):
(Make.rotr):
(Make.loop):
(Make.clz):
(Make.ctz):
(Make.popcnt):
(Make.eqz):
(Make.lt_u):
(Make.le_u):
(Make.gt_u):
(Make.ge_u):
(Make.of_int_u):
(Make.to_string_u):
(Make.require):
(Make.dec_digit):
(Make.hex_digit):
(Make.parse_int):
(Make.of_string_s):
(Make.of_string_u):
(convert_pos):
(error_nest):
(text):
(intop):
(floatop):
(numop):
(memsz):
(ext):
(token.else.switch):
(token.else.switch.):
(token):
(__ocaml_lex_comment_rec):
(engine):
(new_engine):
(from_function):
(from_channel):
(from_string):
(lexeme):
(sub_lexeme):
(sub_lexeme_opt):
(sub_lexeme_char):
(sub_lexeme_char_opt):
(lexeme_char):
(lexeme_start):
(lexeme_end):
(lexeme_start_p):
(lexeme_end_p):
(new_line):
(flush_input):
(take):
(drop):
(last):
(split_last):
(index_of):
(index_of_int32):
(dim):
(set 1):
(get 2):
(log2):
(is_power_of_two):
(loop):
(breakup):
(hd):
(tl):
(rev_append):
(rev):
(flatten):
(rev_map):
(map2):
(rev_map2):
(iter2):
(fold_left2):
(fold_right2):
(for_all):
(exists):
(for_all2):
(exists2):
(mem):
(memq):
(assoc):
(assq):
(mem_assoc):
(mem_assq):
(remove_assoc):
(remove_assq):
(find):
(find_all):
(partition):
(split):
(combine):
(chop):
(rev_sort):
(sort_uniq):
(Make.height):
(Make.create):
(Make.singleton):
(Make.bal):
(Make.is_empty):
(Make.find):
(Make.mem):
(Make.min_binding):
(Make.max_binding):
(Make.remove_min_binding):
(Make.remove):
(Make.iter):
(Make.map):
(Make.mapi):
(Make.fold):
(Make.for_all):
(Make.exists):
(Make.add_min_binding):
(Make.add_max_binding):
(Make.join):
(Make.concat):
(Make.concat_or_join):
(Make.split):
(Make.merge):
(Make.filter):
(Make.partition):
(Make.cons_enum):
(Make.compare):
(Make.equal):
(Make.cardinal):
(Make.bindings_aux):
(Make.bindings):
(double_field):
(set_double_field):
(marshal):
(unmarshal):
(extension_slot):
(extension_name):
(extension_id):
(i32_const):
(i64_const):
(f32_const):
(f64_const):
(block):
(br):
(br_if):
(br_table):
(if_):
(call):
(call_indirect):
(get_local):
(set_local):
(tee_local):
(get_global):
(set_global):
(i32_load):
(i64_load):
(f32_load):
(f64_load):
(i32_load8_s):
(i32_load8_u):
(i32_load16_s):
(i32_load16_u):
(i64_load8_s):
(i64_load8_u):
(i64_load16_s):
(i64_load16_u):
(i64_load32_s):
(i64_load32_u):
(i32_store):
(i64_store):
(f32_store):
(f64_store):
(i32_store8):
(i32_store16):
(i64_store8):
(i64_store16):
(i64_store32):
(parse):
(string_to):
(string_to_script):
(string_to_module):
(parse_error):
(position_to_pos):
(positions_to_region):
(ati):
(nat):
(nat32):
(empty_context):
(enter_func):
(type_):
(lookup):
(label):
(anon_type):
(bind):
(bind_func):
(bind_local):
(bind_global):
(bind_table):
(bind_memory):
(anon):
(anon_func):
(anon_locals):
(anon_global):
(anon_table):
(anon_memory):
(anon_label):
(explicit_sig):
(inline_type):
(yyact):
(script1):
(module1):
(grow_stacks):
(clear_parser):
(current_lookahead_fun):
(catch.else.current_lookahead_fun.0):
(yyparse):
(peek_val):
(symbol_start_pos):
(symbol_end_pos):
(rhs_start_pos):
(rhs_end_pos):
(symbol_start):
(symbol_end):
(rhs_start):
(rhs_end):
(is_current_lookahead):
(failwith):
(invalid_arg):
(min):
(max):
(lnot):
(char_of_int):
(string_of_bool):
(bool_of_string):
(string_of_int):
(valid_float_lexem):
(string_of_float):
(open_out_gen):
(open_out):
(open_out_bin):
(flush_all):
(output_bytes):
(output_string):
(output):
(output_substring):
(output_value):
(close_out):
(close_out_noerr):
(open_in_gen):
(open_in):
(open_in_bin):
(input):
(else.r):
(unsafe_really_input):
(really_input):
(really_input_string):
(input_line.build_result):
(input_line.n):
(input_line.scan):
(input_line):
(close_in_noerr):
(print_bytes):
(print_endline):
(prerr_char):
(prerr_string):
(prerr_bytes):
(prerr_int):
(prerr_float):
(prerr_endline):
(prerr_newline):
(read_line):
(read_int):
(read_float):
(string_of_format):
(at_exit.exit_function.0):
(at_exit):
(do_at_exit):
(exit):
(output_binary_int):
(seek_out):
(pos_out):
(out_channel_length):
(set_binary_mode_out):
(input_binary_int):
(input_value):
(seek_in):
(pos_in):
(in_channel_length):
(close_in):
(set_binary_mode_in):
(LargeFile_000):
(LargeFile_001):
(LargeFile_002):
(LargeFile_003):
(LargeFile_004):
(LargeFile_005):
(kbprintf):
(plus):
(pp):
(print):
(string_of_pos):
(string_of_region):
(escaped.needs_escape):
(set_signal):
(catch_break):
(size):
(string_of_value_type):
(string_of_value_types):
(string_of_elem_type):
(string_of_limits):
(string_of_table_type):
(string_of_global_type):
(string_of_stack_type):
(string_of_func_type):
(type_of):
(default_value):
(value_of_bool):
(string_of_values):
(to_value):
(of_value):
(g):
(binary):
(bytes):
* wasm/spec-tests/address.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/binary.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/block.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/br.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/br_if.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/br_table.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/break-drop.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/call.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/call_indirect.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/comments.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/conversions.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/custom_section.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/endianness.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/exports.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/f32.wast.js: Removed.
* wasm/spec-tests/f32_cmp.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/f64.wast.js: Removed.
* wasm/spec-tests/f64_cmp.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/fac.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/float_exprs.wast.js: Removed.
* wasm/spec-tests/float_literals.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/float_memory.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/float_misc.wast.js: Removed.
* wasm/spec-tests/forward.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/func.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/func_ptrs.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/get_local.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/globals.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/i32.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/i64.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/if.wast.js: Added.
* wasm/spec-tests/imports.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/int_exprs.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/int_literals.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/jsapi.js: Added.
(testJSAPI.get test):
(testJSAPI.test):
(testJSAPI.set test):
(testJSAPI.assertCompileError):
(testJSAPI.assertCompileSuccess):
(testJSAPI):
* wasm/spec-tests/labels.wast.js: Added.
* wasm/spec-tests/left-to-right.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/linking.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/loop.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/memory.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/memory_redundancy.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/memory_trap.wast.js: Removed.
* wasm/spec-tests/names.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/nop.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/resizing.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/return.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/select.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/set_local.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/skip-stack-guard-page.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/stack.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/start.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/store_retval.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/switch.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/tee_local.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/traps.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/typecheck.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/unreachable.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/unreached-invalid.wast.js: Added.
* wasm/spec-tests/unwind.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.

Tools:

Update the runner to know the new wasm spec test harness code.

* Scripts/run-jsc-stress-tests:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214824 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[GCrypt] Implement AES_KW support
zandobersek@gmail.com [Mon, 3 Apr 2017 18:36:03 +0000 (18:36 +0000)]
[GCrypt] Implement AES_KW support
https://bugs.webkit.org/show_bug.cgi?id=170274

Reviewed by Michael Catanzaro.

Implement the CryptoAlgorithmAES_KW::platform{Wrap,Unwrap}Key()
functionality for configurations that use libgcrypt. This is done
by leveraging the gcry_cipher_* APIs for the AES algorithm that's
deducted appropriately from the key size and the AESWRAP cipher mode.

No new tests -- current ones cover this sufficiently, but are not yet
enabled due to other missing platform-specific SUBTLE_CRYPTO
implementations.

* crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp:
(WebCore::gcryptWrapKey):
(WebCore::gcryptUnwrapKey):
(WebCore::CryptoAlgorithmAES_KW::platformWrapKey):
(WebCore::CryptoAlgorithmAES_KW::platformUnwrapKey):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214823 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[GCrypt] Implement AES_GCM support
zandobersek@gmail.com [Mon, 3 Apr 2017 18:12:38 +0000 (18:12 +0000)]
[GCrypt] Implement AES_GCM support
https://bugs.webkit.org/show_bug.cgi?id=170271

Reviewed by Michael Catanzaro.

Source/WebCore:

Implement the CryptoAlgorithmAES_GCM::platform{Encrypt,Decrypt}
functionality for configurations that use libgcrypt. This is done
by leveraging the gcry_cipher_* APIs for the AES algorithm that's
deducted appropriately from the key size and the GCM cipher mode.

No new tests -- current ones cover this sufficiently, but are not yet
enabled due to other missing platform-specific SUBTLE_CRYPTO
implementations.

* crypto/gcrypt/CryptoAlgorithmAES_GCMGCrypt.cpp:
(WebCore::gcryptEncrypt):
(WebCore::gcryptDecrypt):
(WebCore::CryptoAlgorithmAES_GCM::platformEncrypt):
(WebCore::CryptoAlgorithmAES_GCM::platformDecrypt):

Source/WebCore/PAL:

* pal/crypto/gcrypt/Handle.h:
(PAL::GCrypt::HandleDeleter<gcry_cipher_hd_t>::operator()): Specialize
the HandleDeleter<> template for the gcry_cipher_hd_t type.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214822 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[GCrypt] Implement PBKDF2 support
zandobersek@gmail.com [Mon, 3 Apr 2017 18:10:29 +0000 (18:10 +0000)]
[GCrypt] Implement PBKDF2 support
https://bugs.webkit.org/show_bug.cgi?id=170270

Reviewed by Michael Catanzaro.

Implement the CryptoAlgorithmPBKDF2::platformDeriveBits() functionality
for configurations that use libgcrypt. This is done by leveraging the
gcry_kdf_derive() API, using GCRY_KDF_PBKDF2 as the preferred KDF
along with the properly deducted SHA algorithm.

No new tests -- current ones cover this sufficiently, but are not yet
enabled due to other missing platform-specific SUBTLE_CRYPTO
implementations.

* crypto/gcrypt/CryptoAlgorithmPBKDF2GCrypt.cpp:
(WebCore::gcryptDeriveBits):
(WebCore::CryptoAlgorithmPBKDF2::platformDeriveBits):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214821 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoLayoutTest pointer-lock/mouse-event-delivery.html is a flaky failure
commit-queue@webkit.org [Mon, 3 Apr 2017 18:00:06 +0000 (18:00 +0000)]
LayoutTest pointer-lock/mouse-event-delivery.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=167965

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-04-03
Reviewed by Jon Lee.

Wait for wheel event before doing next step of test. The wheel event is delivered asynchronously and
can therefore be delivered later than expected by the test. This is already done for the first one,
do this for the second one also.

* platform/mac-wk2/TestExpectations:
* pointer-lock/mouse-event-delivery.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214820 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoClean up touch event handler registration when moving nodes between documents
simon.fraser@apple.com [Mon, 3 Apr 2017 17:51:29 +0000 (17:51 +0000)]
Clean up touch event handler registration when moving nodes between documents
https://bugs.webkit.org/show_bug.cgi?id=170384
rdar://problem/30816694

Reviewed by Chris Dumez.

Source/WebCore:

Make sure that Node::didMoveToNewDocument() does the correct unregistration on the
old document, and registration on the new document for nodes with touch event listeners,
and gesture event listeners. Touch "handler" nodes (those for overflow and sliders) are
already correctly moved via renderer-related teardown.

Add assertions that fire when removal was not complete.

Use references in more places.

Tests: fast/events/touch/ios/gesture-node-move-between-documents.html
       fast/events/touch/ios/overflow-node-move-between-documents.html
       fast/events/touch/ios/slider-node-move-between-documents.html
       fast/events/touch/ios/touch-node-move-between-documents.html

* dom/EventNames.h:
(WebCore::EventNames::gestureEventNames):
* dom/Node.cpp:
(WebCore::Node::willBeDeletedFrom):
(WebCore::Node::didMoveToNewDocument):
(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::registerForTouchEvents):
(WebCore::SliderThumbElement::unregisterForTouchEvents):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::registerAsTouchEventListenerForScrolling):
(WebCore::RenderLayer::unregisterAsTouchEventListenerForScrolling):

LayoutTests:

Tests for moving nodes with various listener/handler combinations between documents.

* fast/events/touch/ios/gesture-node-move-between-documents-expected.txt: Added.
* fast/events/touch/ios/gesture-node-move-between-documents.html: Added.
* fast/events/touch/ios/overflow-node-move-between-documents-expected.txt: Added.
* fast/events/touch/ios/overflow-node-move-between-documents.html: Added.
* fast/events/touch/ios/slider-node-move-between-documents-expected.txt: Added.
* fast/events/touch/ios/slider-node-move-between-documents.html: Added.
* fast/events/touch/ios/touch-node-move-between-documents-expected.txt: Added.
* fast/events/touch/ios/touch-node-move-between-documents.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214819 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[SOUP] URI Fragment is lost after redirect
carlosgc@webkit.org [Mon, 3 Apr 2017 17:08:12 +0000 (17:08 +0000)]
[SOUP] URI Fragment is lost after redirect
https://bugs.webkit.org/show_bug.cgi?id=170058

Reviewed by Michael Catanzaro.

Source/WebKit2:

In case of redirection check if the current request has a fragment identifier and apply it to the redirection
only when it doesn't have a fragment identifier yet.

* NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::NetworkDataTaskSoup):
(WebKit::NetworkDataTaskSoup::createRequest):
(WebKit::NetworkDataTaskSoup::continueHTTPRedirection):
* NetworkProcess/soup/NetworkDataTaskSoup.h:

LayoutTests:

Add tests to check we correctly handle fragment identifiers on server redirections.

* http/tests/navigation/redirect-preserves-fragment-expected.txt: Added.
* http/tests/navigation/redirect-preserves-fragment.html: Added.
* http/tests/navigation/redirect-to-fragment-expected.txt: Added.
* http/tests/navigation/redirect-to-fragment.html: Added.
* http/tests/navigation/redirect-to-fragment2-expected.txt: Added.
* http/tests/navigation/redirect-to-fragment2.html: Added.
* http/tests/navigation/resources/redirect-preserves-fragment.php: Added.
* http/tests/navigation/resources/redirect-to-fragment.php: Added.
* http/tests/navigation/resources/redirect-to-fragment2.php: Added.
* platform/ios/TestExpectations:
* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214807 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agocaptureStream is getting black frames with webgl canvas
commit-queue@webkit.org [Mon, 3 Apr 2017 16:59:41 +0000 (16:59 +0000)]
captureStream is getting black frames with webgl canvas
https://bugs.webkit.org/show_bug.cgi?id=170325

Patch by Youenn Fablet <youenn@apple.com> on 2017-04-03
Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/mediastream/captureStream/canvas3d.html

Changing the webgl context to save buffers in case the canvas is captured.
Adding a canvas changed notification in case of clear.
In the future, we might want to change this notification and do it when endPaint or similar is called.

Adding an Internals API to grab the RGBA equivalent of the next track frame.
For that purpose, adding a bunch of WEBCORE_EXPORT.

* Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
(WebCore::CanvasCaptureMediaStreamTrack::Source::Source): Adding constraints support so that track settings
getter actually transmits the width and height of the source.
(WebCore::CanvasCaptureMediaStreamTrack::Source::canvasChanged): ensuring webgl canvas context keep their drawing buffer.
* Modules/mediastream/MediaStreamTrack.h:
* bindings/js/JSDOMGuardedObject.h:
* bindings/js/JSDOMPromise.h:
(WebCore::DeferredPromise::resolve):
(WebCore::DeferredPromise::reject):
* dom/ActiveDOMCallback.h:
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::captureStream):
* html/ImageData.h:
* html/ImageData.idl:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::clear): ensuring canvas observers get notified in case of clear calls.
* html/canvas/WebGLRenderingContextBase.h:
(WebCore::WebGLRenderingContextBase::preserveDrawingBuffer): Added to allow canvas capture to update this property.
* platform/MediaSample.h:
(WebCore::MediaSample::getRGBAImageData): Added for internals API.
* platform/graphics/avfoundation/MediaSampleAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WebCore::MediaSampleAVFObjC::getRGBAImageData):
* platform/graphics/cv/PixelBufferConformerCV.cpp:
(WebCore::PixelBufferConformerCV::convert): Helper routine for getRGBAImageData.
* platform/graphics/cv/PixelBufferConformerCV.h:
* platform/mediastream/RealtimeMediaSourceSettings.h:
(WebCore::RealtimeMediaSourceSettings::setSupportedConstraints):
(WebCore::RealtimeMediaSourceSettings::setSupportedConstraits): Deleted.
* platform/mediastream/mac/AVMediaCaptureSource.mm:
(WebCore::AVMediaCaptureSource::initializeSettings):
* platform/mediastream/openwebrtc/RealtimeAudioSourceOwr.h:
* platform/mediastream/openwebrtc/RealtimeVideoSourceOwr.h:
* platform/mock/MockRealtimeMediaSource.cpp:
(WebCore::MockRealtimeMediaSource::initializeSettings):
* testing/Internals.cpp:
(WebCore::Internals::grabNextMediaStreamTrackFrame):
(WebCore::Internals::videoSampleAvailable):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

* fast/mediastream/captureStream/canvas3d-expected.txt: Added.
* fast/mediastream/captureStream/canvas3d.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214806 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoImplement stroke-miterlimit.
pvollan@apple.com [Mon, 3 Apr 2017 13:17:11 +0000 (13:17 +0000)]
Implement stroke-miterlimit.
https://bugs.webkit.org/show_bug.cgi?id=169078

Reviewed by Dean Jackson.

Source/WebCore:

Support stroke-miterlimit for text rendering, see https://drafts.fxtf.org/paint/.

Tests: fast/css/stroke-miterlimit-default.html
       fast/css/stroke-miterlimit-large.html
       fast/css/stroke-miterlimit-zero.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSProperties.json:
* css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::svgPropertyValue):
* rendering/TextPaintStyle.cpp:
(WebCore::computeTextPaintStyle):
(WebCore::updateGraphicsContext):
* rendering/TextPaintStyle.h:
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff):
* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::strokeMiterLimit):
(WebCore::RenderStyle::setStrokeMiterLimit):
(WebCore::RenderStyle::initialStrokeMiterLimit):
(WebCore::RenderStyle::setStrokeDashOffset):
* rendering/style/RenderStyleConstants.cpp:
* rendering/style/RenderStyleConstants.h:
* rendering/style/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::diff):
* rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::initialStrokeDashArray):
(WebCore::SVGRenderStyle::strokeDashArray):
(WebCore::SVGRenderStyle::initialStrokeMiterLimit): Deleted.
(WebCore::SVGRenderStyle::strokeMiterLimit): Deleted.
(WebCore::SVGRenderStyle::setStrokeMiterLimit): Deleted.
* rendering/style/SVGRenderStyleDefs.cpp:
(WebCore::StyleStrokeData::StyleStrokeData):
(WebCore::StyleStrokeData::operator==):
* rendering/style/SVGRenderStyleDefs.h:
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
* rendering/style/StyleRareInheritedData.h:
* rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::hasSmoothStroke):
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::applyStrokeStyleToContext):
* rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeStyle):

LayoutTests:

* fast/css/stroke-miterlimit-default-expected.html: Added.
* fast/css/stroke-miterlimit-default.html: Added.
* fast/css/stroke-miterlimit-large-expected-mismatch.html: Added.
* fast/css/stroke-miterlimit-large.html: Added.
* fast/css/stroke-miterlimit-zero-expected-mismatch.html: Added.
* fast/css/stroke-miterlimit-zero.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214787 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoMutex may be freed too late in NetworkCache::Storage::traverse
antti@apple.com [Mon, 3 Apr 2017 13:08:46 +0000 (13:08 +0000)]
Mutex may be freed too late in NetworkCache::Storage::traverse
https://bugs.webkit.org/show_bug.cgi?id=170400
<rdar://problem/30515865>

Reviewed by Carlos Garcia Campos and Andreas Kling.

Fix a race.

* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::traverse):

    Ensure the mutex is not accessed after we dispatch to the main thread.
    The main thread call deletes the owning TraverseOperation.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214786 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[OWR] Fix class structure for the OWR mock classes after last modifications
commit-queue@webkit.org [Mon, 3 Apr 2017 12:24:23 +0000 (12:24 +0000)]
[OWR] Fix class structure for the OWR mock classes after last modifications
https://bugs.webkit.org/show_bug.cgi?id=170173

Patch by Alejandro G. Castro <alex@igalia.com> on 2017-04-03
Reviewed by Youenn Fablet.

In case of OWR MockRealtimeMediaSource inherits from
RealtimeMediaSourceOwr, so we have to change some of the function
interfaces.

* platform/mock/MockRealtimeMediaSource.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214772 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[jsc] Add patchableJumpSize() for MIPS
commit-queue@webkit.org [Mon, 3 Apr 2017 07:58:53 +0000 (07:58 +0000)]
[jsc] Add patchableJumpSize() for MIPS
https://bugs.webkit.org/show_bug.cgi?id=169716

Patch by Zan Dobersek <zdobersek@igalia.com> on 2017-04-03
Reviewed by Yusuke Suzuki.

* assembler/MIPSAssembler.h:
(JSC::MIPSAssembler::patchableJumpSize): Added.
* assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::patchableJumpSize): Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214750 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[jsc] implement MIPSAssembler::relinkJumpToNop()
commit-queue@webkit.org [Mon, 3 Apr 2017 07:43:16 +0000 (07:43 +0000)]
[jsc] implement MIPSAssembler::relinkJumpToNop()
https://bugs.webkit.org/show_bug.cgi?id=169720

Patch by Guillaume Emont <guijemont@igalia.com> on 2017-04-03
Reviewed by Yusuke Suzuki.

* assembler/MIPSAssembler.h:
(JSC::MIPSAssembler::relinkJumpToNop): Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214745 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoShare implementation of JSRunLoopTimer::timerDidFire
carlosgc@webkit.org [Mon, 3 Apr 2017 05:41:30 +0000 (05:41 +0000)]
Share implementation of JSRunLoopTimer::timerDidFire
https://bugs.webkit.org/show_bug.cgi?id=170392

Reviewed by Michael Catanzaro.

The code is cross-platform but it's duplicated in CF and GLib implementations, it could be shared instead.

* runtime/JSRunLoopTimer.cpp:
(JSC::JSRunLoopTimer::timerDidFire): Move common implementation here.
(JSC::JSRunLoopTimer::setRunLoop): Use timerDidFireCallback.
(JSC::JSRunLoopTimer::timerDidFireCallback): Call JSRunLoopTimer::timerDidFire().
* runtime/JSRunLoopTimer.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214732 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRemove accidentally added DumpJSConsoleLogInStdErr from http/tests/fetch/fetch-in...
ap@apple.com [Mon, 3 Apr 2017 03:30:14 +0000 (03:30 +0000)]
Remove accidentally added DumpJSConsoleLogInStdErr from http/tests/fetch/fetch-in-worker-crash.html expectation.

* TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214731 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoBuild fix for
ap@apple.com [Mon, 3 Apr 2017 03:13:42 +0000 (03:13 +0000)]
Build fix for
Add missing text styles
https://bugs.webkit.org/show_bug.cgi?id=170295

Source/WebCore:

* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::cachedSystemFontDescription):
(WebCore::RenderThemeIOS::updateCachedSystemFontDescription):

LayoutTests:

* platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214730 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoFix lint errors.
ap@apple.com [Mon, 3 Apr 2017 01:26:31 +0000 (01:26 +0000)]
Fix lint errors.

* TestExpectations:
* platform/ios-wk1/TestExpectations:
* platform/ios-wk2/TestExpectations:
* platform/ios/TestExpectations:
* platform/mac-wk1/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214728 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoMark http/tests/fetch/fetch-in-worker-crash.html and imported/w3c/web-platform-tests...
ap@apple.com [Sun, 2 Apr 2017 18:55:45 +0000 (18:55 +0000)]
Mark http/tests/fetch/fetch-in-worker-crash.html and imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-status.html as flaky.

For https://bugs.webkit.org/show_bug.cgi?id=170395
rdar://problem/30975761, rdar://problem/31394017

* TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214727 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoLong Arabic text in ContentEditable with css white-space=pre hangs Safari
zalan@apple.com [Sun, 2 Apr 2017 05:39:29 +0000 (05:39 +0000)]
Long Arabic text in ContentEditable with css white-space=pre hangs Safari
https://bugs.webkit.org/show_bug.cgi?id=170245

Reviewed by Myles C. Maxfield.

While searching for mid-word break, we measure the text by codepoints in a loop until the accumulated width > available width.
When we see that the accumulated width for the individual codepoints overflows, we join the codepoints and re-measure them.
These 2 widths could be considerably different for number of reasons (ligatures is a prime example). When we figure that
the run still fits, we go back to the main loop (since we are not supposed to wrap the line here) and take the next codepoint.
However this time we start the measurement from the last whitespace, so we end up remeasuring a potentially long chuck of text
until we hit the wrapping point. This is way too expensive.
This patch changes the logic so that we just go back to measuring individual codepoints until we hit the constrain again.

Covered by existing tests.

* rendering/line/BreakingContext.h:
(WebCore::BreakingContext::handleText): canUseSimpleFontCodePath() is just to mitigate the potential risk of regression and
complex text is more likely to fall into this category.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214726 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoAdd test for expected fallback behavior between stroke-width and -webkit-text-stroke...
pvollan@apple.com [Sun, 2 Apr 2017 05:28:53 +0000 (05:28 +0000)]
Add test for expected fallback behavior between stroke-width and -webkit-text-stroke-width.
https://bugs.webkit.org/show_bug.cgi?id=169466

Reviewed by Jon Lee.

Now that we have added support for stroke-width, we should have a test for expected fallback behavior between
stroke-width and -webkit-text-stroke-width. Currently, stroke-width is always preferred, also when inherited,
and when -webkit-text-stroke-width is declared inline. When stroke-width is not specified, we fall back to
-webkit-text-stroke-width.

* fast/css/stroke-width-fallback-expected.html: Added.
* fast/css/stroke-width-fallback.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214725 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoAdd missing text styles
jonlee@apple.com [Sun, 2 Apr 2017 05:28:10 +0000 (05:28 +0000)]
Add missing text styles
https://bugs.webkit.org/show_bug.cgi?id=170295
rdar://problem/30219503

Reviewed by Dean Jackson.

Source/WebCore:

Updated existing test to include new text styles.

* css/CSSValueKeywords.in: Add title0 and title4.
* platform/spi/cocoa/CoreTextSPI.h:
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::cachedSystemFontDescription):
(WebCore::RenderThemeIOS::updateCachedSystemFontDescription):

Source/WebInspectorUI:

* UserInterface/Models/CSSKeywordCompletions.js: Update keyword completions

LayoutTests:

* platform/ios/ios/fast/text/opticalFontWithTextStyle.html: Update test to include title0 and title4.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214724 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[iOS] <input type=file> label should be specified using plural rules
mitz@apple.com [Sun, 2 Apr 2017 04:53:39 +0000 (04:53 +0000)]
[iOS] <input type=file> label should be specified using plural rules
https://bugs.webkit.org/show_bug.cgi?id=170388

Reviewed by Alexey Proskuryakov.

Source/WebCore:

* English.lproj/Localizable.strings: Updated using update-webkit-localizable-strings.

* English.lproj/Localizable.stringsdict: Added an entry for the new key "%lu photo(s) and
  %lu video(s)", with plural rules covering all the different combinations in English.
  Other localizations may specify additional combinations as needed.

Source/WebKit2:

* UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[WKFileUploadPanel _processMediaInfoDictionaries:atIndex:processedResults:processedImageCount:processedVideoCount:successBlock:failureBlock:]):
  Instead of calling -_displayStringForPhotos:videos:, use
  +[NSString localizedStringWithFormat:] with the new format string "%lu photo(s) and
  %lu video(s)" for which there are plural rules.
(-[WKFileUploadPanel _displayStringForPhotos:videos:]): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214723 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRolling back <https://trac.webkit.org/r214697>, as it made WebKit2.DataDetectionRefer...
ap@apple.com [Sun, 2 Apr 2017 01:56:34 +0000 (01:56 +0000)]
Rolling back <https://trac.webkit.org/r214697>, as it made WebKit2.DataDetectionReferenceDate time out.

Was REGRESSION (r202472): Data Detection overwrites existing links in detected ranges
https://bugs.webkit.org/show_bug.cgi?id=170365

Source/WebCore:

* editing/cocoa/DataDetection.mm:
(WebCore::searchForLinkRemovingExistingDDLinks):

Tools:

* TestWebKitAPI/Tests/WebKit2Cocoa/DataDetection.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214722 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWe should pause silent WebAudio rendering in background tabs
cdumez@apple.com [Sun, 2 Apr 2017 00:55:20 +0000 (00:55 +0000)]
We should pause silent WebAudio rendering in background tabs
https://bugs.webkit.org/show_bug.cgi?id=170299
<rdar://problem/31289132>

Reviewed by Eric Carlson.

Source/WebCore:

We should pause silent WebAudio rendering in background tabs since it uses CPU and is
not observable by the user. Such silent WebAudio rendering seems to be used by
doubleclick ads.

Test: webaudio/silent-audio-interrupted-in-background.html

* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::lazyInitialize):
(WebCore::AudioContext::uninitialize):
Have AudioContext register / unregister itself with the Document to get
visibility change notifications, similarly to what HTMLMediaElement was
already doing.

(WebCore::AudioContext::visibilityStateChanged):
Begin / End session interruption whenever the page visiblity changes.

* Modules/webaudio/AudioContext.h:
* WebCore.xcodeproj/project.pbxproj:

* dom/Document.cpp:
(WebCore::Document::registerForVisibilityStateChangedCallbacks):
(WebCore::Document::unregisterForVisibilityStateChangedCallbacks):
(WebCore::Document::visibilityStateChanged):
* dom/Document.h:
* dom/Element.h:
* dom/VisibilityChangeClient.h: Added.
(WebCore::VisibilityChangeClient::~VisibilityChangeClient):
* html/HTMLMediaElement.h:
Introduce a new VisibilityChangeClient interface and have both AudioContext
and HTMLMediaElement subclass it. Previously, the visibilityStateChanged()
function was on Element but this prevented AudioContext from registering
itself since AudioContext is not an Element.

LayoutTests:

Add layout test coverage.

* webaudio/silent-audio-interrupted-in-background-expected.txt: Added.
* webaudio/silent-audio-interrupted-in-background.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214721 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[Cocoa] A couple of UI strings use three periods instead of an ellipsis
mitz@apple.com [Sun, 2 Apr 2017 00:17:55 +0000 (00:17 +0000)]
[Cocoa] A couple of UI strings use three periods instead of an ellipsis
https://bugs.webkit.org/show_bug.cgi?id=170386

Reviewed by Tim Horton.

* English.lproj/Localizable.strings: Updated using update-webkit-localizable-strings.

* platform/LocalizedStrings.cpp:
(WebCore::mediaElementLoadingStateText): Changed "Loading..." to "Loading…".

* platform/cocoa/LocalizedStringsCocoa.mm:
(WebCore::contextMenuItemTagStyles): Changed "Styles..." to "Styles…".

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214720 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoLocalizable strings files are out of date
mitz@apple.com [Sun, 2 Apr 2017 00:03:51 +0000 (00:03 +0000)]
Localizable strings files are out of date
https://bugs.webkit.org/show_bug.cgi?id=170383

Reviewed by Tim Horton.

Ran update-webkit-localizable-strings.

Source/WebCore:

* English.lproj/Localizable.strings:

Source/WebInspectorUI:

* Localizations/en.lproj/localizedStrings.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214719 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[Xcode] In engineering builds, linker warns about libwebrtc.dylib’s install name...
mitz@apple.com [Sat, 1 Apr 2017 22:57:47 +0000 (22:57 +0000)]
[Xcode] In engineering builds, linker warns about libwebrtc.dylib’s install name being invalid
https://bugs.webkit.org/show_bug.cgi?id=170385

Reviewed by Tim Horton.

Source/WebCore:

* Configurations/DebugRelease.xcconfig: Set WK_RELOCATABLE_FRAMEWORKS to YES like we do
  in some other projects’ DebugRelease.xcconfig. Engineering builds are always relocatable.
* Configurations/WebCore.xcconfig: When WebCore is relocatable, tell the linker that it’s
  not going to be in the shared cache, even if its install name implies that it might be.

Source/WebKit2:

* Configurations/WebKit.xcconfig: When WebKit is relocatable, tell the linker that it’s
  not going to be in the shared cache, even if its install name implies that it might be.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214718 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoMac cmake buildfix after 214586.
ossy@webkit.org [Sat, 1 Apr 2017 12:48:30 +0000 (12:48 +0000)]
Mac cmake buildfix after 214586.
https://bugs.webkit.org/show_bug.cgi?id=170381

Unreviewed speculative buildfix.

* WebKitTestRunner/PlatformMac.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214717 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoMac cmake buildfix after 214586.
ossy@webkit.org [Sat, 1 Apr 2017 12:35:20 +0000 (12:35 +0000)]
Mac cmake buildfix after 214586.
https://bugs.webkit.org/show_bug.cgi?id=170381

Unreviewed.

* wtf/BlockPtr.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214716 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoUnreviewed speculative Mac cmake buildfix after r214586, just for fun.
ossy@webkit.org [Sat, 1 Apr 2017 10:25:11 +0000 (10:25 +0000)]
Unreviewed speculative Mac cmake buildfix after r214586, just for fun.
https://bugs.webkit.org/show_bug.cgi?id=161675

* WebKitTestRunner/PlatformMac.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214715 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoObject with numerical keys with gaps gets filled by NaN values
gskachkov@gmail.com [Sat, 1 Apr 2017 08:14:15 +0000 (08:14 +0000)]
Object with numerical keys with gaps gets filled by NaN values
https://bugs.webkit.org/show_bug.cgi?id=164412

Reviewed by Mark Lam.

This patch fixes issue when object have two properties
with name as number. The issue appears when during invoking
convertDoubleToArrayStorage, array is filled by pNaN and
method converting it to real NaN. This happeneds because a
pNaN in a Double array is a hole, and Double arrays cannot
have NaN values. To fix issue we need to check value and
clear it if it pNaN.

Source/JavaScriptCore:
* runtime/JSObject.cpp:
(JSC::JSObject::convertDoubleToArrayStorage):

JSTests:
* stress/object-number-properties.js: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214714 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRolling back http://trac.webkit.org/r214663 - memory corruption
ap@apple.com [Sat, 1 Apr 2017 07:47:17 +0000 (07:47 +0000)]
Rolling back trac.webkit.org/r214663 - memory corruption

Source/WebCore:

* Modules/streams/ReadableByteStreamInternals.js:
(cloneArrayBuffer):
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
* bindings/js/StructuredClone.cpp:
(WebCore::structuredCloneArrayBuffer):
(WebCore::cloneArrayBufferImpl): Deleted.
(WebCore::cloneArrayBuffer): Deleted.
* bindings/js/StructuredClone.h:
* bindings/js/WebCoreBuiltinNames.h:
* testing/Internals.cpp:
(WebCore::markerTypeFrom):
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::isLoadingFromMemoryCache):
(WebCore::Internals::setImageFrameDecodingDuration):
(WebCore::deferredStyleRulesCountForList):
(WebCore::deferredGroupRulesCountForList):
(WebCore::deferredKeyframesRulesCountForList):
(WebCore::Internals::eventThrottlingBehaviorOverride):
(WebCore::Internals::enableMockSpeechSynthesizer):
(WebCore::Internals::rangeForDictionaryLookupAtLocation):
(WebCore::Internals::nodesFromRect):
(WebCore::Internals::layerIDForElement):
(WebCore::Internals::setElementUsesDisplayListDrawing):
(WebCore::Internals::setElementTracksDisplayListReplay):
(WebCore::Internals::styleRecalcCount):
(WebCore::Internals::compositingUpdateCount):
(WebCore::Internals::setCaptionDisplayMode):
(WebCore::Internals::endMediaSessionInterruption):
(WebCore::Internals::postRemoteControlCommand):
(WebCore::appendOffsets):
(WebCore::Internals::scrollSnapOffsets):
(WebCore::Internals::setShowAllPlugins):
(WebCore::Internals::cloneArrayBuffer): Deleted.
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

* streams/readable-stream-byob-request-expected.txt:
* streams/readable-stream-byob-request.js:
(self.importScripts.test): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214713 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago<table>: Including <caption>, <thead> or <tbody> causes clipping across page breaks
zalan@apple.com [Sat, 1 Apr 2017 06:30:00 +0000 (06:30 +0000)]
<table>: Including <caption>, <thead> or <tbody> causes clipping across page breaks
https://bugs.webkit.org/show_bug.cgi?id=170348
<rdar://problem/24727151>

Reviewed by David Hyatt.

Source/WebCore:

1. In RenderFlowThread::offsetFromLogicalTopOfFirstRegion() we need to take table section offset into account (they are skipped
during the containing block traversal).
2. Trigger paginated relayout when body is moved vertically due to caption/thead etc.

Test: fast/multicol/table-section-page-break.html

* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::offsetFromLogicalTopOfFirstRegion):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):

LayoutTests:

* fast/multicol/table-section-page-break-expected.html: Added.
* fast/multicol/table-section-page-break.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214712 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWebAssembly: Make our calls out to JS PIC friendly
sbarati@apple.com [Sat, 1 Apr 2017 02:09:51 +0000 (02:09 +0000)]
WebAssembly: Make our calls out to JS PIC friendly
https://bugs.webkit.org/show_bug.cgi?id=170261

Reviewed by Keith Miller.

This patch removes a direct call from the module to the Wasm to JS stub.
Instead, we do an indirect call to the stub by loading the stub's executable
address off of the CodeBlock. This is to make the code we emit for comply with
requirements needed for PIC.

Adding this indirection is not ideal. Although this patch is neutral on
WasmBench, we really want to get back to a world where we have an IC
call infrastructure. This patch is obviously a regression on some
types of programs. I've filed this bug to make sure we implement a
PIC compliant Wasm to JS call IC:
https://bugs.webkit.org/show_bug.cgi?id=170375

* wasm/WasmB3IRGenerator.cpp:
* wasm/WasmFormat.h:
* wasm/WasmPlan.cpp:
(JSC::Wasm::Plan::complete):
* wasm/js/JSWebAssemblyCodeBlock.cpp:
(JSC::JSWebAssemblyCodeBlock::initialize):
* wasm/js/JSWebAssemblyCodeBlock.h:
(JSC::JSWebAssemblyCodeBlock::create):
(JSC::JSWebAssemblyCodeBlock::offsetOfImportWasmToJSStub):
(JSC::JSWebAssemblyCodeBlock::offsetOfCallees):
(JSC::JSWebAssemblyCodeBlock::allocationSize):
(JSC::JSWebAssemblyCodeBlock::importWasmToJSStub):
* wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::addUnitializedCodeBlock):
* wasm/js/JSWebAssemblyInstance.h:
(JSC::JSWebAssemblyInstance::offsetOfCodeBlock):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214711 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoUnreviewed. Add some WebGPU examples.
dino@apple.com [Sat, 1 Apr 2017 02:05:01 +0000 (02:05 +0000)]
Unreviewed. Add some WebGPU examples.

* demos/webgpu/2d.html: Added.
* demos/webgpu/2d.js: Added.
* demos/webgpu/cubes.html: Added.
* demos/webgpu/cubes.js: Added.
* demos/webgpu/shared.css: Added.
* demos/webgpu/shared.js: Added.
* demos/webgpu/simple.html: Added.
* demos/webgpu/simple.js: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214710 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWebAssembly: webAssemblyB3OptimizationLevel should use defaultB3OptLevel by default
keith_miller@apple.com [Sat, 1 Apr 2017 01:54:53 +0000 (01:54 +0000)]
WebAssembly: webAssemblyB3OptimizationLevel should use defaultB3OptLevel by default
https://bugs.webkit.org/show_bug.cgi?id=170378

Reviewed by Saam Barati.

* runtime/Options.h:
* wasm/WasmB3IRGenerator.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214709 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWebAssembly: Add compilation level option
keith_miller@apple.com [Sat, 1 Apr 2017 00:47:38 +0000 (00:47 +0000)]
WebAssembly: Add compilation level option
https://bugs.webkit.org/show_bug.cgi?id=170374

Reviewed by Mark Lam.

This patch adds an option, webAssemblyB3OptimizationLevel, which
changes the optimization mode wasm passes to B3.

* runtime/Options.h:
* wasm/WasmPlan.cpp:
(JSC::Wasm::Plan::compileFunctions):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214708 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoBuild fix. For OS versions, we can end up with non-alphanumeric revision.
rniwa@webkit.org [Sat, 1 Apr 2017 00:45:51 +0000 (00:45 +0000)]
Build fix. For OS versions, we can end up with non-alphanumeric revision.
Delete the code path only used by the v2 UI since nobody uses that now.

* public/api/commits.php:
(main):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214707 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoLayoutTest fast/images/animated-gif-restored-from-bfcache.html is a flaky failure
cdumez@apple.com [Sat, 1 Apr 2017 00:31:34 +0000 (00:31 +0000)]
LayoutTest fast/images/animated-gif-restored-from-bfcache.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=162510
<rdar://problem/31380650>

Reviewed by Alexey Proskuryakov.

The test restores a page from PageCache and wants to check that an animated
GIF is properly animating. To do so, it store the data of the current image
frame, and then checks in a 100ms timer that the current image frame is
different. This is flaky by nature since the image only has 10 frames and
you therefore have a 1/10 chance that the new frame will be the same as the
previous one, even if the image is properly animating.

To address the problem, do a setInterval instead of a setTimeout and check
until the frame becomes different.

* fast/images/animated-gif-restored-from-bfcache.html:
* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214706 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agowebkitpy: Add target host concept
jbedard@apple.com [Sat, 1 Apr 2017 00:24:48 +0000 (00:24 +0000)]
webkitpy: Add target host concept
https://bugs.webkit.org/show_bug.cgi?id=170186
<rdar://problem/31301797>

Reviewed by Alexey Proskuryakov.

Adding the idea of a target host. Target hosts are objects conforming to the
structure of the SystemHost object in Scripts/webkitpy/common/system/systemhost.py
Target hosts are the hosts associated with a worker process.

* Scripts/webkitpy/common/system/filesystem.py:
(FileSystem.map_base_host_path): Convert a path from an absolute path on the base
host to an absolute path on this host.
(FileSystem.move_to_base_host): Move file from this host to the base host.
(FileSystem.move_from_base_host): Move file from the base host to this host.
(FileSystem.copy_to_base_host): Copy file from this host to the base host.
(FileSystem.copy_from_base_host): Copy file from the base host to this host.
* Scripts/webkitpy/common/system/filesystem_mock.py:
(MockFileSystem.map_base_host_path): Convert a path from an absolute path on the base
host to an absolute path on this host.
(MockFileSystem.move_to_base_host): Move file from this host to the base host.
(MockFileSystem.move_from_base_host): Move file from the base host to this host.
(MockFileSystem.copy_to_base_host): Copy file from this host to the base host.
(MockFileSystem.copy_from_base_host): Copy file from the base host to this host.
* Scripts/webkitpy/port/base.py:
(Port.target_host): Return host determined by worker number.
(Port.abspath_for_test): Accept optional target_host argument to return location
of test on a target host.
(Port._driver_tempdir): Accept optional target_host argument to return a temporary
directory on a target host.
(Port.sample_process): Accept optional target_host argument to sample process on
a target host.
* Scripts/webkitpy/port/darwin.py:
(DarwinPort.sample_process): Run sample process on target host.
(DarwinPort.sample_file_path): Accept directory for file.
(DarwinPort.spindump_file_path): Ditto.
* Scripts/webkitpy/port/darwin_testcase.py:
(DarwinTest.test_spindump): Check file movement.
(DarwinTest.test_sample_process): Ditto.
(DarwinTest.test_sample_process_exception):
* Scripts/webkitpy/port/driver.py:
(Driver.__init__): Add and set self._target_host variable.
(Driver._start): Pass target host to _driver_tempdir().
(Driver.stop): Call the target host's rmtree.
(Driver._check_for_driver_timeout): Pass target host to sample_process.
(Driver._check_for_driver_crash_or_unresponsiveness): Ditto.
(Driver._command_from_driver_input): Pass target host to abspath_for_test and map
layout test directory to target host.
* Scripts/webkitpy/port/ios.py:
(IOSPort):
(IOSPort.target_host): Replaced device_for_worker_number.
(IOSPort.setup_test_run): Replace device_for_worker_number with target_host.
(IOSPort.device_for_worker_number): Replaced with target_host.
* Scripts/webkitpy/port/server_process.py:
(ServerProcess.__init__): Accept target_host instead of worker_number.
(ServerProcess._start): Replace _host with _target_host.
(ServerProcess._handle_timeout): Ditto.
(ServerProcess._kill): Ditto.
* Scripts/webkitpy/port/simulator_process.py:
(SimulatorProcess.__init__): Accept target_host instead of worker_number.
(SimulatorProcess._start): Replace _device with _target_host.
(SimulatorProcess.stop): Ditto.
(SimulatorProcess._kill): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214705 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRename DOMWindow's m_touchEventListenerCount to m_touchAndGestureEventListenerCount
simon.fraser@apple.com [Sat, 1 Apr 2017 00:11:08 +0000 (00:11 +0000)]
Rename DOMWindow's m_touchEventListenerCount to m_touchAndGestureEventListenerCount
https://bugs.webkit.org/show_bug.cgi?id=170371

Reviewed by Tim Horton.

This count tracks touch and gesture event listeners, so name it appropriately.

* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
(WebCore::DOMWindow::removeAllEventListeners):
* page/DOMWindow.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214703 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWhen destroying a Node, assert that it's been removed from all the touch handler...
simon.fraser@apple.com [Sat, 1 Apr 2017 00:10:59 +0000 (00:10 +0000)]
When destroying a Node, assert that it's been removed from all the touch handler maps
https://bugs.webkit.org/show_bug.cgi?id=170363
rdar://problem/31377469

Reviewed by Tim Horton.

Assert that the Node has been removed from the touch handler maps in all documents on destruction.

* dom/Document.h:
(WebCore::Document::hasTouchEventHandlers):
(WebCore::Document::touchEventTargetsContain):
* dom/Node.cpp:
(WebCore::Node::~Node):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214702 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRemove a logging statement left in by mistake.
simon.fraser@apple.com [Sat, 1 Apr 2017 00:00:52 +0000 (00:00 +0000)]
Remove a logging statement left in by mistake.

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::restoreViewState):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214701 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoRolling back https://trac.webkit.org/r214689, as it caused many crashes.
ap@apple.com [Fri, 31 Mar 2017 23:59:20 +0000 (23:59 +0000)]
Rolling back https://trac.webkit.org/r214689, as it caused many crashes.

Was:
Fix memory leak in CreateSessionDescriptionObserver::OnSuccess
https://bugs.webkit.org/show_bug.cgi?id=170357

* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::createSessionDescriptionSucceeded):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214700 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoFix memory leak in RealtimeVideoIncomingSource
commit-queue@webkit.org [Fri, 31 Mar 2017 23:55:07 +0000 (23:55 +0000)]
Fix memory leak in RealtimeVideoIncomingSource
https://bugs.webkit.org/show_bug.cgi?id=170356

Patch by Youenn Fablet <youenn@apple.com> on 2017-03-31
Reviewed by Eric Carlson.

No change of behavior.

* platform/mediastream/mac/RealtimeIncomingVideoSource.cpp:
(WebCore::RealtimeIncomingVideoSource::OnFrame): Adopting the newly created pointer.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214699 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoUnreviewed fix after r214569
jbedard@apple.com [Fri, 31 Mar 2017 23:38:17 +0000 (23:38 +0000)]
Unreviewed fix after r214569
https://bugs.webkit.org/show_bug.cgi?id=170255

Unreviewed infrastructure fix.

* Scripts/webkitpy/port/ios.py:
(IOSPort.clean_up_test_run): Check if the device is defined before teardown.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214698 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoREGRESSION (r202472): Data Detection overwrites existing links in detected ranges
aestes@apple.com [Fri, 31 Mar 2017 23:33:24 +0000 (23:33 +0000)]
REGRESSION (r202472): Data Detection overwrites existing links in detected ranges
https://bugs.webkit.org/show_bug.cgi?id=170365
<rdar://problem/29205721>

Reviewed by Tim Horton.

Source/WebCore:

r202472 changed the node traversal in searchForLinkRemovingExistingDDLinks() to only
consider nodes that are descendants of startNode, but we need to traverse all nodes between
startNode and endNode to find existing non-DD links.

As a result, we'd add a Data Detector link to the following snippet and make the original
links un-clickable:

    <a href='#'>tomorrow</a> <a href='#'>night</a>

Fix this by not specifying a stayWithin node when calling NodeTraversal::next(). The loop
will terminate when we reach endNode.

Updated WebKit2.DataDetectionReferenceDate API test.

* editing/cocoa/DataDetection.mm:
(WebCore::searchForLinkRemovingExistingDDLinks):

Tools:

* TestWebKitAPI/Tests/WebKit2Cocoa/DataDetection.mm:
(expectLinkCount): Changed to only query links with the x-apple-data-detectors attribute.
(TEST): Re-enabled the test, which now passes.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214697 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoAddress post-review feedback after r214692
wenson_hsieh@apple.com [Fri, 31 Mar 2017 23:19:11 +0000 (23:19 +0000)]
Address post-review feedback after r214692
https://bugs.webkit.org/show_bug.cgi?id=170328

Reviewed by Dan Bernstein.

Clearing the selection when UIKit calls into WKContentView to set its selected text range to nil is a rule
that should be applied when using a text interaction assistant, not just when using character granularity
for selecting text.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setSelectedTextRange:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214696 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWebAssembly: Strip WasmParser and WasmFunctionParser from knowing about VM
sbarati@apple.com [Fri, 31 Mar 2017 23:06:20 +0000 (23:06 +0000)]
WebAssembly: Strip WasmParser and WasmFunctionParser from knowing about VM
https://bugs.webkit.org/show_bug.cgi?id=170312

Reviewed by Mark Lam.

This is another step towards PIC-ifying Wasm. This patch removes
the VM field that is no longer used.

* wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::parseAndCompile):
* wasm/WasmB3IRGenerator.h:
* wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::FunctionParser):
* wasm/WasmModuleParser.h:
(JSC::Wasm::ModuleParser::ModuleParser):
* wasm/WasmParser.h:
(JSC::Wasm::Parser<SuccessType>::Parser):
* wasm/WasmPlan.cpp:
(JSC::Wasm::Plan::parseAndValidateModule):
(JSC::Wasm::Plan::compileFunctions):
* wasm/WasmValidate.cpp:
(JSC::Wasm::validateFunction):
* wasm/WasmValidate.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214695 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoIncoming video source doesn't propogate frame rotation
eric.carlson@apple.com [Fri, 31 Mar 2017 22:50:47 +0000 (22:50 +0000)]
Incoming video source doesn't propogate frame rotation
https://bugs.webkit.org/show_bug.cgi?id=170364

Reviewed by Youenn Fablet.

No new tests, the mock video source doesn't support rotation. Test will be added when
this is fixed in https://bugs.webkit.org/show_bug.cgi?id=169822. The changes were
verified manually.

* platform/mediastream/mac/RealtimeIncomingVideoSource.cpp:
(WebCore::RealtimeIncomingVideoSource::OnFrame): Convert frame rotation to sample
orientation and swap width and height when necessary.
(WebCore::RealtimeIncomingVideoSource::processNewSample):
* platform/mediastream/mac/RealtimeIncomingVideoSource.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214694 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoPossible null dereference under SourceBuffer::sourceBufferPrivateDidReceiveSample()
cdumez@apple.com [Fri, 31 Mar 2017 22:48:50 +0000 (22:48 +0000)]
Possible null dereference under SourceBuffer::sourceBufferPrivateDidReceiveSample()
https://bugs.webkit.org/show_bug.cgi?id=159639

Reviewed by Eric Carlson.

Add a null check for trackBuffer.description before dereferencing as it seems
it can be null.

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214693 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years ago[WK2] Tapping away to dismiss the selection does not update the selected DOM range...
wenson_hsieh@apple.com [Fri, 31 Mar 2017 22:36:00 +0000 (22:36 +0000)]
[WK2] Tapping away to dismiss the selection does not update the selected DOM range using character granularity
https://bugs.webkit.org/show_bug.cgi?id=170328
<rdar://problem/30904558>

Reviewed by Tim Horton.

Source/WebKit2:

When UIKit clears the selection while in text interaction mode, it notifies its document view (i.e., the
WKContentView) by setting its selected text range to nil. When character granularity selection is enabled, use
this as a cue to notify the web process that the selection is being cleared out.

-setSelectedTextRange: is a noop in the general case because the web process acts as the source of truth for what
the selection currently consists of, and notifies the UI process and UIKit via WKTextPosition and WKTextRange.
However, in the case of character granularity selections, tapping away to clear the selection is handled by
UIKit's text gesture recognizer cluster, which then informs the document (via -setSelectedTextRange:) that the
selection should be cleared out.

Adds a new Layout test: editing/selection/character-granularity-selected-range-after-dismissing-selection.html.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setSelectedTextRange:]):

LayoutTests:

Adds a new layout test verifying that when a user taps away to clear the current selection in character
granularity selection mode, the selected DOM range in the web process does not fall out of sync with UIKit's
selection views, which are dismissed.

* editing/selection/character-granularity-selected-range-after-dismissing-selection-expected.txt: Added.
* editing/selection/character-granularity-selected-range-after-dismissing-selection.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214692 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoWebAssembly: Ref count Signature and SignatureInformation should not care about VM
sbarati@apple.com [Fri, 31 Mar 2017 22:18:27 +0000 (22:18 +0000)]
WebAssembly: Ref count Signature and SignatureInformation should not care about VM
https://bugs.webkit.org/show_bug.cgi?id=170316

Reviewed by Keith Miller.

This is yet again another step towards PIC-ifying Wasm.
Signature should be ref counted so we can tell when
no code is holding onto a Signature. This makes it easy
to free unused Signatures. Also, this patch rids SignatureInfo
of any VM knowledge. Now, there is just a single SignatureInfo that
lives in a process.

* runtime/VM.h:
* wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::createJSToWasmWrapper):
(JSC::Wasm::parseAndCompile):
* wasm/WasmB3IRGenerator.h:
* wasm/WasmBinding.cpp:
(JSC::Wasm::wasmToJs):
* wasm/WasmCallingConvention.h:
(JSC::Wasm::CallingConvention::loadArguments):
* wasm/WasmFormat.h:
* wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::FunctionParser):
* wasm/WasmModuleParser.cpp:
* wasm/WasmPlan.cpp:
(JSC::Wasm::Plan::parseAndValidateModule):
(JSC::Wasm::Plan::compileFunctions):
(JSC::Wasm::Plan::complete):
* wasm/WasmSignature.cpp:
(JSC::Wasm::Signature::hash):
(JSC::Wasm::Signature::tryCreate):
(JSC::Wasm::SignatureInformation::SignatureInformation):
(JSC::Wasm::SignatureInformation::singleton):
(JSC::Wasm::SignatureInformation::adopt):
(JSC::Wasm::SignatureInformation::get):
(JSC::Wasm::SignatureInformation::tryCleanup):
(JSC::Wasm::Signature::create): Deleted.
(JSC::Wasm::Signature::createInvalid): Deleted.
(JSC::Wasm::Signature::destroy): Deleted.
(JSC::Wasm::SignatureInformation::~SignatureInformation): Deleted.
* wasm/WasmSignature.h:
(JSC::Wasm::Signature::allocatedSize):
(JSC::Wasm::Signature::operator==):
* wasm/WasmValidate.cpp:
(JSC::Wasm::validateFunction):
* wasm/WasmValidate.h:
* wasm/js/JSWebAssemblyModule.cpp:
(JSC::JSWebAssemblyModule::destroy):
* wasm/js/WebAssemblyFunction.cpp:
(JSC::callWebAssemblyFunction):
* wasm/js/WebAssemblyFunction.h:
* wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::link):
(JSC::WebAssemblyModuleRecord::evaluate):
* wasm/js/WebAssemblyWrapperFunction.cpp:
(JSC::WebAssemblyWrapperFunction::create):
* wasm/js/WebAssemblyWrapperFunction.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214691 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoAdd a test to ensure webrtc generated certificates and names are ephemeral
commit-queue@webkit.org [Fri, 31 Mar 2017 22:08:36 +0000 (22:08 +0000)]
Add a test to ensure webrtc generated certificates and names are ephemeral
https://bugs.webkit.org/show_bug.cgi?id=170225

Patch by Youenn Fablet <youenn@apple.com> on 2017-03-31
Reviewed by Jon Lee.

* webrtc/ephemeral-certificates-and-cnames-expected.txt: Added.
* webrtc/ephemeral-certificates-and-cnames.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@214690 268f45cc-cd09-0410-ab3c-d52691b4dbfc