Timeline



May 12, 2018:

6:00 PM Changeset in webkit [231738] by bshafiei@apple.com
  • 1 copy in tags/Safari-606.1.17.4

Tag Safari-606.1.17.4.

5:03 PM Changeset in webkit [231737] by Wenson Hsieh
  • 2 edits in trunk/LayoutTests

Unreviewed, rebaseline a layout test after r231717

  • fast/events/extrazoom/change-focus-during-change-event-expected.txt:
4:55 PM Changeset in webkit [231736] by bshafiei@apple.com
  • 7 edits in branches/safari-606.1.17-branch/Source

Versioning.

10:10 AM Changeset in webkit [231735] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

Use WeakPtr for m_enclosingPaginationLayer in RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=185566
<rdar://problem/36486052>

Reviewed by Simon Fraser.

Since RenderLayer does not own the enclosing pagination layout, it should
construct a weak pointer instead of holding on to a raw pointer.

Unable to create a reliably reproducible test case.

  • page/mac/EventHandlerMac.mm:

(WebCore::scrollableAreaForEventTarget):
(WebCore::scrollableAreaForContainerNode):
(WebCore::EventHandler::platformPrepareForWheelEvents):

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::weakPtrFactory const):
(WebCore::ScrollableArea::createWeakPtr): Deleted.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updatePagination):

  • rendering/RenderLayer.h:

May 11, 2018:

9:36 PM Changeset in webkit [231734] by bshafiei@apple.com
  • 1 copy in tags/Safari-606.1.17.3

Tag Safari-606.1.17.3.

9:32 PM Changeset in webkit [231733] by Caio Lima
  • 11 edits
    7 adds in trunk

[ESNext][BigInt] Implement support for "*" operation
https://bugs.webkit.org/show_bug.cgi?id=183721

Reviewed by Yusuke Suzuki.

JSTests:

  • bigIntTests.yaml:
  • stress/big-int-mul-jit.js: Added.
  • stress/big-int-mul-to-primitive-precedence.js: Added.
  • stress/big-int-mul-to-primitive.js: Added.
  • stress/big-int-mul-type-error.js: Added.
  • stress/big-int-mul-wrapped-value.js: Added.
  • stress/big-int-multiplication.js: Added.
  • stress/big-int-multiply-memory-stress.js: Added.

Source/JavaScriptCore:

Added BigInt support into times binary operator into LLInt and on
JITOperations profiledMul and unprofiledMul. We are also replacing all
uses of int to unsigned when there is no negative values for
variables.

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • jit/JITOperations.cpp:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::JSBigInt):
(JSC::JSBigInt::allocationSize):
(JSC::JSBigInt::createWithLength):
(JSC::JSBigInt::toString):
(JSC::JSBigInt::multiply):
(JSC::JSBigInt::digitDiv):
(JSC::JSBigInt::internalMultiplyAdd):
(JSC::JSBigInt::multiplyAccumulate):
(JSC::JSBigInt::equals):
(JSC::JSBigInt::absoluteDivSmall):
(JSC::JSBigInt::calculateMaximumCharactersRequired):
(JSC::JSBigInt::toStringGeneric):
(JSC::JSBigInt::rightTrim):
(JSC::JSBigInt::allocateFor):
(JSC::JSBigInt::parseInt):
(JSC::JSBigInt::digit):
(JSC::JSBigInt::setDigit):

  • runtime/JSBigInt.h:
  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::toNumeric const):

  • runtime/Operations.h:

(JSC::jsMul):

9:25 PM Changeset in webkit [231732] by bshafiei@apple.com
  • 3 edits in branches/safari-606.1.17-branch/Source/WebCore/PAL

Cherry-pick r231731. rdar://problem/39806412

Follow-up build fix to r231721.

  • pal/cf/CoreMediaSoftLink.cpp:
  • pal/cf/CoreMediaSoftLink.h: Unify the conditions between the header and the implementation files, and have watchOS and tvOS keyed off iOS.

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

9:19 PM Changeset in webkit [231731] by mitz@apple.com
  • 3 edits in trunk/Source/WebCore/PAL

Follow-up build fix to r231721.

  • pal/cf/CoreMediaSoftLink.cpp:
  • pal/cf/CoreMediaSoftLink.h: Unify the conditions between the header and the implementation files, and have watchOS and tvOS keyed off iOS.
9:11 PM Changeset in webkit [231730] by dbates@webkit.org
  • 8 edits
    8 adds
    1 delete in trunk

X-Frame-Options: SAMEORIGIN needs to check all ancestor frames
https://bugs.webkit.org/show_bug.cgi?id=185567
<rdar://problem/40175008>

Reviewed by Brent Fulgham.

Source/WebCore:

Change the behavior of "X-Frame-Options: SAMEORIGIN" to ensure that all ancestors frames
are same-origin with the document that delivered this header. This prevents an intermediary
malicious frame from clickjacking a child frame whose document is same-origin with the top-
level frame. It also makes the behavior of X-Frame-Options in WebKit more closely match
the behavior of X-Frame-Options in other browsers, including Chrome and Firefox.

Currently a document delivered with "X-Frame-Options: SAMEORIGIN" must only be same-origin
with the top-level frame's document in order to be displayed. This prevents clickjacking by
a malicious page that embeds a page delivered with "X-Frame-Options: SAMEORIGIN". However,
it does not protect against clickjacking of the "X-Frame-Options: SAMEORIGIN" page (victim)
if embedded by an intermediate malicious iframe, say a "rogue ad", that was embedded in a
document same origin with the victim page. We should protect against such attacks.

Tests: http/tests/security/XFrameOptions/x-frame-options-ancestors-same-origin-allow.html

http/tests/security/XFrameOptions/x-frame-options-ancestors-same-origin-deny.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):

Source/WebKit:

Change the behavior of "X-Frame-Options: SAMEORIGIN" to ensure that all ancestors frames
are same-origin with the document that delivered this header. This prevents an intermediary
malicious frame from clickjacking a child frame whose document is same-origin with the top-
level frame. It also makes the behavior of X-Frame-Options in WebKit more closely match
the behavior of X-Frame-Options in other browsers, including Chrome and Firefox.

Currently a document delivered with "X-Frame-Options: SAMEORIGIN" must only be same-origin
with the top-level frame's document in order to be displayed. This prevents clickjacking by
a malicious page that embeds a page delivered with "X-Frame-Options: SAMEORIGIN". However,
it does not protect against clickjacking of the "X-Frame-Options: SAMEORIGIN" page (victim)
if embedded by an intermediate malicious iframe, say a "rogue ad", that was embedded in a
document same origin with the victim page. We should protect against such attacks.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::shouldInterruptLoadForXFrameOptions):

LayoutTests:

Add tests to ensure that "X-Frame-Options: SAMEORIGIN" checks ancestor frames.

  • http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page.html:
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.html:
  • http/tests/cookies/same-site/fetch-in-cross-origin-iframe.html:
  • http/tests/resources/echo-iframe-src.php: Copied from LayoutTests/http/tests/cookies/same-site/resources/echo-iframe-src.php.
  • http/tests/security/XFrameOptions/resources/x-frame-options-ancestors-same-origin-deny.html: Added.
  • http/tests/security/XFrameOptions/resources/x-frame-options-frame-ancestors-same-origin-allow.cgi: Added.
  • http/tests/security/XFrameOptions/resources/x-frame-options-frame-ancestors-same-origin-deny.cgi: Added.
  • http/tests/security/XFrameOptions/x-frame-options-ancestors-same-origin-allow-expected.txt: Added.
  • http/tests/security/XFrameOptions/x-frame-options-ancestors-same-origin-allow.html: Added.
  • http/tests/security/XFrameOptions/x-frame-options-ancestors-same-origin-deny-expected.txt: Added.
  • http/tests/security/XFrameOptions/x-frame-options-ancestors-same-origin-deny.html: Renamed from LayoutTests/http/tests/cookies/same-site/resources/echo-iframe-src.php.
7:11 PM Changeset in webkit [231729] by dino@apple.com
  • 6 edits in trunk/Source/WebKit

WKWebViewContentProvider should know what MIME type it was created to handle
https://bugs.webkit.org/show_bug.cgi?id=185574
<rdar://problem/40183049>

Reviewed by Tim Horton.

Pass the MIME type of the downloaded asset into the WKWebViewContentProvider's
init method, so it can choose to do something based on that information. The
PDF and LegacyPDF views don't care because they, clearly, only handle PDF. But
a WKSystemPreviewView can handle multiple types.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setHasCustomContentView:loadedMIMEType:]): Send the MIME type on
to the WKWebViewContentProvider.

  • UIProcess/Cocoa/WKWebViewContentProvider.h: Add a new parameter to web_initWithFrame.
  • UIProcess/ios/WKLegacyPDFView.mm:

(-[WKLegacyPDFView web_initWithFrame:webView:mimeType:]):
(-[WKLegacyPDFView web_initWithFrame:webView:]): Deleted.

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView web_initWithFrame:webView:mimeType:]):
(-[WKPDFView web_initWithFrame:webView:]): Deleted.

  • UIProcess/ios/WKSystemPreviewView.mm:

(-[WKSystemPreviewView web_initWithFrame:webView:mimeType:]):
(-[WKSystemPreviewView web_setContentProviderData:suggestedFilename:]): Actually use
the MIME type to tell QuickLook what it will be getting, rather than basing it on
the file extension.
(-[WKSystemPreviewView web_initWithFrame:webView:]): Deleted.

5:39 PM Changeset in webkit [231728] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Allow the WebContent process to read global ViewBridge preferences
https://bugs.webkit.org/show_bug.cgi?id=185569
<rdar://problem/40164339>

Reviewed by Eric Carlson.

Allow reads of the global /Library/Preferences/com.apple.ViewBridge.plist preference file.

  • WebProcess/com.apple.WebProcess.sb.in:
4:03 PM Changeset in webkit [231727] by BJ Burg
  • 34 edits
    1 copy
    117 adds in trunk/WebDriverTests

Unreviewed. Update W3C WebDriver imported tests.

This includes upstream PR #10968, which has a fix for XSSAuditor
blocking scripts loaded via inline.py. Test expectations for
webkitgtkdriver may need to be updated with progressions and new tests.

  • imported/w3c/importer.json:
  • imported/w3c/tools/webdriver/webdriver/client.py:
  • imported/w3c/tools/wptrunner/requirements_chrome.txt:
  • imported/w3c/tools/wptrunner/requirements_chrome_android.txt: Copied from WebDriverTests/imported/w3c/tools/wptrunner/requirements_opera.txt.
  • imported/w3c/tools/wptrunner/requirements_edge.txt:
  • imported/w3c/tools/wptrunner/requirements_firefox.txt:
  • imported/w3c/tools/wptrunner/requirements_ie.txt:
  • imported/w3c/tools/wptrunner/requirements_opera.txt:
  • imported/w3c/tools/wptrunner/requirements_safari.txt:
  • imported/w3c/tools/wptrunner/requirements_sauce.txt:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/firefox.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/sauce.py:
  • imported/w3c/tools/wptrunner/wptrunner/environment.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/base.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executormarionette.py:
  • imported/w3c/tools/wptrunner/wptrunner/formatters.py:
  • imported/w3c/tools/wptrunner/wptrunner/reduce.py:
  • imported/w3c/tools/wptrunner/wptrunner/testrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/browsers/test_sauce.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_products.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptcommandline.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/wpttest.py:
  • imported/w3c/webdriver/tests/accept_alert/init.py: Added.
  • imported/w3c/webdriver/tests/accept_alert/accept.py: Added.
  • imported/w3c/webdriver/tests/add_cookie/init.py: Added.
  • imported/w3c/webdriver/tests/add_cookie/add.py: Added.
  • imported/w3c/webdriver/tests/close_window/init.py: Added.
  • imported/w3c/webdriver/tests/close_window/close.py: Added.
  • imported/w3c/webdriver/tests/close_window/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/delete_cookie/init.py: Added.
  • imported/w3c/webdriver/tests/delete_cookie/delete.py: Added.
  • imported/w3c/webdriver/tests/delete_cookie/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/dismiss_alert/init.py: Added.
  • imported/w3c/webdriver/tests/dismiss_alert/dismiss.py: Added.
  • imported/w3c/webdriver/tests/element_clear/init.py: Added.
  • imported/w3c/webdriver/tests/element_clear/clear.py: Added.
  • imported/w3c/webdriver/tests/element_click/bubbling.py:
  • imported/w3c/webdriver/tests/element_click/stale.py:
  • imported/w3c/webdriver/tests/element_send_keys/content_editable.py: Added.
  • imported/w3c/webdriver/tests/element_send_keys/form_controls.py:
  • imported/w3c/webdriver/tests/element_send_keys/interactability.py:
  • imported/w3c/webdriver/tests/element_send_keys/scroll_into_view.py:
  • imported/w3c/webdriver/tests/execute_async_script/collections.py:
  • imported/w3c/webdriver/tests/execute_async_script/user_prompts.py:
  • imported/w3c/webdriver/tests/execute_script/collections.py:
  • imported/w3c/webdriver/tests/execute_script/cyclic.py:
  • imported/w3c/webdriver/tests/execute_script/json_serialize_windowproxy.py: Added.
  • imported/w3c/webdriver/tests/execute_script/user_prompts.py:
  • imported/w3c/webdriver/tests/find_element/init.py: Added.
  • imported/w3c/webdriver/tests/find_element/find.py: Added.
  • imported/w3c/webdriver/tests/find_element_from_element/init.py: Added.
  • imported/w3c/webdriver/tests/find_element_from_element/find.py: Added.
  • imported/w3c/webdriver/tests/find_elements/init.py: Added.
  • imported/w3c/webdriver/tests/find_elements/find.py: Added.
  • imported/w3c/webdriver/tests/find_elements_from_element/init.py: Added.
  • imported/w3c/webdriver/tests/find_elements_from_element/find.py: Added.
  • imported/w3c/webdriver/tests/fullscreen_window/init.py: Added.
  • imported/w3c/webdriver/tests/fullscreen_window/fullscreen.py: Added.
  • imported/w3c/webdriver/tests/fullscreen_window/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/get_active_element/init.py: Added.
  • imported/w3c/webdriver/tests/get_active_element/get.py: Added.
  • imported/w3c/webdriver/tests/get_alert_text/init.py: Added.
  • imported/w3c/webdriver/tests/get_alert_text/get.py: Added.
  • imported/w3c/webdriver/tests/get_current_url/init.py: Added.
  • imported/w3c/webdriver/tests/get_current_url/get.py: Added.
  • imported/w3c/webdriver/tests/get_current_url/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/get_element_attribute/get.py: Added.
  • imported/w3c/webdriver/tests/get_element_property/init.py: Added.
  • imported/w3c/webdriver/tests/get_element_property/get.py: Added.
  • imported/w3c/webdriver/tests/get_element_property/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/get_element_tag_name/init.py: Added.
  • imported/w3c/webdriver/tests/get_element_tag_name/get.py: Added.
  • imported/w3c/webdriver/tests/get_element_tag_name/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/get_element_text/init.py: Added.
  • imported/w3c/webdriver/tests/get_element_text/get.py: Added.
  • imported/w3c/webdriver/tests/get_named_cookie/init.py: Added.
  • imported/w3c/webdriver/tests/get_named_cookie/get.py: Added.
  • imported/w3c/webdriver/tests/get_timeouts/init.py: Added.
  • imported/w3c/webdriver/tests/get_timeouts/get.py: Added.
  • imported/w3c/webdriver/tests/get_title/init.py: Added.
  • imported/w3c/webdriver/tests/get_title/get.py: Added.
  • imported/w3c/webdriver/tests/get_title/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/get_window_rect/init.py: Added.
  • imported/w3c/webdriver/tests/get_window_rect/get.py: Added.
  • imported/w3c/webdriver/tests/get_window_rect/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/is_element_selected/init.py: Added.
  • imported/w3c/webdriver/tests/is_element_selected/selected.py: Added.
  • imported/w3c/webdriver/tests/is_element_selected/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/maximize_window/init.py: Added.
  • imported/w3c/webdriver/tests/maximize_window/maximize.py: Added.
  • imported/w3c/webdriver/tests/maximize_window/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/minimize_window/init.py: Added.
  • imported/w3c/webdriver/tests/minimize_window/minimize.py: Added.
  • imported/w3c/webdriver/tests/minimize_window/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/new_session/init.py: Added.
  • imported/w3c/webdriver/tests/new_session/conftest.py: Added.
  • imported/w3c/webdriver/tests/new_session/create_alwaysMatch.py: Added.
  • imported/w3c/webdriver/tests/new_session/create_firstMatch.py: Added.
  • imported/w3c/webdriver/tests/new_session/default_values.py: Added.
  • imported/w3c/webdriver/tests/new_session/invalid_capabilities.py: Added.
  • imported/w3c/webdriver/tests/new_session/merge.py: Added.
  • imported/w3c/webdriver/tests/new_session/response.py: Added.
  • imported/w3c/webdriver/tests/new_session/support/init.py: Added.
  • imported/w3c/webdriver/tests/new_session/support/create.py: Added.
  • imported/w3c/webdriver/tests/page_source/init.py: Added.
  • imported/w3c/webdriver/tests/page_source/source.py: Added.
  • imported/w3c/webdriver/tests/send_alert_text/init.py: Added.
  • imported/w3c/webdriver/tests/send_alert_text/send.py: Added.
  • imported/w3c/webdriver/tests/set_window_rect/init.py: Added.
  • imported/w3c/webdriver/tests/set_window_rect/resizing_and_positioning.py: Added.
  • imported/w3c/webdriver/tests/set_window_rect/set.py: Added.
  • imported/w3c/webdriver/tests/set_window_rect/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/status/init.py: Added.
  • imported/w3c/webdriver/tests/status/status.py: Added.
  • imported/w3c/webdriver/tests/support/fixtures.py:
  • imported/w3c/webdriver/tests/support/inline.py:
  • imported/w3c/webdriver/tests/switch_to_parent_frame/init.py: Added.
  • imported/w3c/webdriver/tests/switch_to_parent_frame/switch.py: Added.
4:03 PM Changeset in webkit [231726] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Cleanup canPerformActionForWebView in relation to the webSelectionAssistant being removed
https://bugs.webkit.org/show_bug.cgi?id=185536

Reviewed by Tim Horton.

The _webSelectionAssistant is now always nil, therefor many of these checks are unnecessary.
Remove the check for a webSelection and clean up the logic surrounding those checks.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView canPerformActionForWebView:withSender:]):

4:01 PM Changeset in webkit [231725] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] Text decoration of dragged content does not paint with opacity
https://bugs.webkit.org/show_bug.cgi?id=185551
<rdar://problem/40166867>

Reviewed by Wenson Hsieh.

Respect alpha when painting the text decoration for dragged content.

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::MarkedTextStyle::areDecorationMarkedTextStylesEqual): Consider alpha when
comparing decoration styles for equality so that we do not coalesce styles with differing alpha.
(WebCore::InlineTextBox::paintMarkedTextDecoration): Respect alpha when painting dragged content.

3:47 PM Changeset in webkit [231724] by jmarcell@apple.com
  • 2 edits in branches/safari-606.1.17-branch/Source/WebCore/PAL

Cherry-pick r231721. rdar://problem/39806412

Add CF_NOESCAPE decorators for tvOS and watchOS
https://bugs.webkit.org/show_bug.cgi?id=185560

Reviewed by Dan Bernstein.

  • pal/cf/CoreMediaSoftLink.h:

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

3:30 PM Changeset in webkit [231723] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

Followup to: Make sure history navigations reuse the existing process when necessary.
https://bugs.webkit.org/show_bug.cgi?id=185532

Reviewed by Andy Estes.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigationInternal): When re-using the same process,

don't change the policy action.

3:19 PM Changeset in webkit [231722] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Test262 Runner should search for the Debug JSC by default
https://bugs.webkit.org/show_bug.cgi?id=185562

Patch by Leo Balter <Leo Balter> on 2018-05-11
Reviewed by Michael Saboff.

The Test262 Runner is now searching for the Debug build of JSC by
default, not the Release build.

This fix allows a similar call from the previous runner, making
it compatible with the current build bot configuration parameters.

This patch also adds some minor improvements the verbose mode output.

  • Scripts/test262/Runner.pm:

(processCLI):
(main):
(getBuildPath):
(processResult):

3:03 PM Changeset in webkit [231721] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Add CF_NOESCAPE decorators for tvOS and watchOS
https://bugs.webkit.org/show_bug.cgi?id=185560

Reviewed by Dan Bernstein.

  • pal/cf/CoreMediaSoftLink.h:
2:58 PM Changeset in webkit [231720] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: In role=dialog elements with aria-modal=true VoiceOver iOS/macOS can't manually focus or read dialog paragraph description text inside the modal.
https://bugs.webkit.org/show_bug.cgi?id=185219
<rdar://problem/39920009>

Reviewed by Chris Fleizach.

Source/WebCore:

The text node descendants of a modal dialog are ignored. Fixed it by using AccessibilityObject's
node() to determine if it's the descendant of the modal dialog node.

Test: accessibility/aria-modal-text-descendants.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isModalDescendant const):

LayoutTests:

  • accessibility/aria-modal-text-descendants-expected.txt: Added.
  • accessibility/aria-modal-text-descendants.html: Added.
2:16 PM Changeset in webkit [231719] by commit-queue@webkit.org
  • 18 edits
    2 adds in trunk/Source/JavaScriptCore

Unreviewed, rolling out r231316 and r231332.
https://bugs.webkit.org/show_bug.cgi?id=185564

Appears to be a Speedometer2/MotionMark regression (Requested
by keith_miller on #webkit).

Reverted changesets:

"Remove the prototype caching for get_by_id in the LLInt"
https://bugs.webkit.org/show_bug.cgi?id=185226
https://trac.webkit.org/changeset/231316

"Unreviewed, fix 32-bit profile offset for change in bytecode"
https://trac.webkit.org/changeset/231332

1:59 PM Changeset in webkit [231718] by timothy@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

WebHTMLView is not setting aside subviews when drawing.

https://bugs.webkit.org/show_bug.cgi?id=185561
rdar://problem/40172894

Reviewed by Simon Fraser.

Use the new method signature for _recursive:displayRectIgnoringOpacity:shouldChangeFontReferenceColor:.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _recursive:displayRectIgnoringOpacity:inContext:shouldChangeFontReferenceColor:stopAtLayerBackedViews:]): Added.

1:39 PM Changeset in webkit [231717] by rniwa@webkit.org
  • 56 edits
    4 adds in trunk

Tapping after CSS-based table casues an infinite loop in wordRangeFromPosition
https://bugs.webkit.org/show_bug.cgi?id=185465
<rdar://problem/35263057>

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Rebaselined the tests. h2

  • web-platform-tests/dom/nodes/getElementsByClassName-30-expected.txt: table is generating a new line as expected.
  • web-platform-tests/html/syntax/parsing/html5lib_menuitem-element-expected.txt: h2 is generating an extra line

to emulate its margin as expected.

  • web-platform-tests/html/syntax/parsing/html5lib_tests11-expected.txt: Ditto.
  • web-platform-tests/html/syntax/parsing/html5lib_tests21-expected.txt: Ditto.
  • web-platform-tests/html/syntax/parsing/html5lib_tests25-expected.txt: Ditto.
  • web-platform-tests/html/syntax/parsing/html5lib_webkit02-expected.txt: Ditto.

Source/WebCore:

The bug was caused by TextIterator not emitting a line break when exiting a CSS-based table when an element
with display: table-row has an invisible text node. Specifically, TextIterator::exitNode is never called on
an element with table-cell: row when m_node is a text node with whitespaces which appears after an element
with display: table-cell.

For example, for a tree structure like:
table-row (R)

table-cell (C)

"text" (1)

" " (2)

Getting out of (C) would result in moving onto (2) without generating a line break for (R).

When this happens in nextBoundary as it tries to find the end of the last word in the table cell, we end up
finding the end of the document as the end of the word. As a result, nextWordBoundaryInDirection, the caller
of nextBoundary, ends up infinite looping between the positon at the end of the document and the position
immediately before the last word in the last table cell when it traverses words backwards.

This patch fixes the hang by addressing this root cause in TextIterator. Namely, TextIterator now generates
a line break when exiting a block while walking up ancestors in TextIterator::advance().

Tests: editing/selection/tapping-in-table-at-end-of-document.html

editing/text-iterator/table-at-end-of-document.html

  • editing/TextIterator.cpp:

(WebCore::TextIterator::advance): Fixed the bug.
(WebCore::shouldEmitNewlineAfterNode): Do generate a new line at the end of a document when we're trying to
generate every visible poitions even there are no renderers beyond this point. e.g. a position inside the
last cell of a table at the end of a document hits this condition.
(WebCore::shouldEmitExtraNewlineForNode): Don't emit a line break when the render box's height is 0px
to avoid generating many empty lines for empty paragraph and header elements (this function is used to generate
a blank line between p's and h1/h2/...'s).
(WebCore::TextIterator::exitNode):

LayoutTests:

Rebaselined the tests. Most of these are due to new extra line breaks being generated after table and
header elements as expected. See inline comments for some newly discovered bugs and rebaselines due to
other non-obvious reasons.

  • accessibility/internal-link-anchors2-expected.txt: This test now demonstrates a bug that WebKit doesn't

generate an extra line break before h3 when it has a large margin-top since an extra line break is only
generated after a node at the moment.

  • accessibility/mac/mathml-elements-expected.txt:
  • accessibility/table-headers-expected.txt:
  • compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt:
  • css3/flexbox/box-orient-button-expected.txt:
  • css3/flexbox/flexitem-expected.txt:
  • editing/execCommand/19087-expected.txt: The second blockquote which has the height of 0px no longer

generates an extra new line.

  • editing/inserting/insert-list-in-table-cell-08-expected.txt: Selection is now being restored properly

using TextIterator in InsertListCommand.

  • editing/selection/tapping-in-table-at-end-of-document-expected.txt: Added.
  • editing/selection/tapping-in-table-at-end-of-document.html: Added.
  • editing/text-iterator/table-at-end-of-document-expected.txt: Added.
  • editing/text-iterator/table-at-end-of-document.html: Added.
  • fast/block/positioning/insert-positioned-in-anonymous-crash-expected.txt:
  • fast/css/css3-ch-unit-expected.txt: Line breaks are generated between block & inline-block elements

as expected.

  • fast/css/percent-min-width-img-src-change-expected.txt:
  • fast/css/percent-width-img-src-change-expected.txt:
  • fast/css/pseudo-empty-display-none-expected.txt:
  • fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash-expected.txt:
  • fast/dom/HTMLDivElement/align/getset-expected.txt:
  • fast/dom/HTMLSelectElement/listbox-select-reset-expected.txt:
  • fast/dom/HTMLTableElement/table-with-invalid-border-expected.txt:
  • fast/forms/option-mouseevents-expected.txt:
  • fast/history/multiple-classes-visited-expected.txt:
  • fast/history/self-is-visited-expected.txt:
  • fast/html/marquee-reparent-check-expected.txt:
  • fast/inline-block/anonymous-block-crash-expected.txt: This test now demonstrates a bug that we're not

generating an empty line before a block in some cases.

  • fast/inline/inline-position-top-align-expected.txt:
  • fast/invalid/test-case-tr-th-td-should-not-close-dl-list-expected.txt:
  • fast/overflow/scrollbar-click-retains-focus-expected.txt:
  • fast/parser/comments-expected.txt:
  • fast/parser/fragment-parser-doctype-expected.txt:
  • fast/ruby/ruby-base-merge-block-children-crash-2-expected.txt:
  • fast/spatial-navigation/snav-radio-group-expected.txt: A line break is generated after a nested table.
  • fast/sub-pixel/table-cells-have-stable-width-expected.txt:
  • fast/table/table-row-oveflow-crash-expected.txt: A line break is generated after a table as expected,

which is followed by a BR which creates a blank line.

  • fast/table/table-with-borderattr-null-expected.txt:
  • fast/table/table-with-borderattr-set-to-null-expected.txt:
  • fast/text/international/dynamic-text-combine-crash-expected.txt:
  • fast/xsl/mozilla-tests-expected.txt:
  • http/tests/misc/large-js-program-expected.txt:
  • imported/blink/plugins/empty-per-context-data-expected.txt:
  • inspector/console/js-isLikelyStackTrace-expected.txt:
  • inspector/console/js-source-locations-expected.txt:
  • mathml/out-of-flow-in-token-crash-expected.txt:
  • mathml/presentation/stretchy-depth-height-expected.txt:
  • platform/mac/accessibility/table-cells-roles-expected.txt: Line breaks are generated after a block

followed by two two consecutive BRs.

  • platform/mac/accessibility/table-roles-hierarchy-expected.txt: Ditto.
  • svg/foreignObject/fO-fixed-position-crash-expected.txt:
  • tiled-drawing/scrolling/non-fast-region/wheel-handler-region-basic-expected.txt:
  • transforms/3d/hit-testing/coplanar-with-camera-expected.txt:
1:18 PM Changeset in webkit [231716] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

System preview badge doesn't show on <picture> elements
https://bugs.webkit.org/show_bug.cgi?id=185559
<rdar://problem/40150066>

Reviewed by Tim Horton.

We should also identify <img>s that are the child of a <picture>
contained inside the appropriate <a> element.

Tested internally, since the badge is platform specific.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::isSystemPreviewImage const): Add logic
to look for <picture> parents.

1:15 PM Changeset in webkit [231715] by Dewei Zhu
  • 3 edits in trunk/Websites/perf.webkit.org

CommitLogViewer._preceedingCommit should not always be null
https://bugs.webkit.org/show_bug.cgi?id=185540

Reviewed by Ryosuke Niwa.

Fix the bug introduced in r227746 that CommitLogViewer._preceedingCommit is always null.

  • browser-tests/index.html: Fix expected measurement-set url.
  • public/v3/components/commit-log-viewer.js:

(CommitLogViewer.prototype._fetchCommitLogs): CommitLogViewer._preceedingCommit should be set
when fetching for preceeding revision succeeds.

12:22 PM Changeset in webkit [231714] by Chris Dumez
  • 13 edits
    2 adds in trunk

REGRESSION (async policy delegate): Revoking an object URL immediately after triggering download breaks file download
https://bugs.webkit.org/show_bug.cgi?id=185531
<rdar://problem/39909589>

Reviewed by Geoffrey Garen.

Source/WebCore:

Whenever we start an asynchronous navigation policy decision for a blob URL, create a temporary
blob URL pointing to the same data, and update the request's URL. This way, if the page's JS revokes
the URL during the policy decision, the load will still succeed.

Test: fast/dom/HTMLAnchorElement/anchor-file-blob-download-then-revoke.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadPostRequest):

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::extendBlobURLLifetimeIfNecessary const):
(WebCore::PolicyChecker::checkNavigationPolicy):
(WebCore::PolicyChecker::checkNewWindowPolicy):

  • loader/PolicyChecker.h:

Source/WTF:

Add a default constructor for CompletionHandlerCallingScope, for convenience.

  • wtf/CompletionHandler.h:

LayoutTests:

  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-then-revoke-expected.txt: Added.
  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-then-revoke.html: Added.

Add layout test coverage.

  • platform/ios-wk1/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:

Skip new test on platforms that do not support the download attribute.

12:05 PM Changeset in webkit [231713] by Antti Koivisto
  • 3 edits
    2 adds in trunk

LinkLoader fails to remove CachedResourceClient in some cases
https://bugs.webkit.org/show_bug.cgi?id=185553
<rdar://problem/36879656>

Reviewed by Geoffrey Garen.

Source/WebCore:

Test: http/tests/preload/link-preload-client-remove.html

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLink):

If there is a link preload already in progress, we fail to clear the client for the ongoing load.
This may leave the CachedResource client map in a bad state.

LayoutTests:

  • http/tests/preload/link-preload-client-remove-expected.txt: Added.
  • http/tests/preload/link-preload-client-remove.html: Added.
11:59 AM Changeset in webkit [231712] by jmarcell@apple.com
  • 2 edits in branches/safari-606.1.17-branch/Source/WebKit

Cherry-pick r231689. rdar://problem/40131741

Fix the build after r231393
https://bugs.webkit.org/show_bug.cgi?id=185519
<rdar://problem/40131741>

  • Configurations/WebKit.xcconfig:

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

11:59 AM Changeset in webkit [231711] by jmarcell@apple.com
  • 4 edits in branches/safari-606.1.17-branch/Source

Cherry-pick r231651. rdar://problem/40131741

Fix the build after r231393
https://bugs.webkit.org/show_bug.cgi?id=185519
<rdar://problem/40131741>

Reviewed by Simon Fraser.

Source/WebCore:

  • Configurations/WebCore.xcconfig:

Source/WTF:

  • wtf/Platform.h:

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

11:39 AM Changeset in webkit [231710] by msaboff@apple.com
  • 3 edits
    1 add in trunk

[DFG] Compiler uses incorrect output register for NumberIsInteger operation
https://bugs.webkit.org/show_bug.cgi?id=185328

Reviewed by Keith Miller.

JSTests:

New regression test.

  • stress/isInteger-doesnt-overwrite-argument.js: Added.

(testIsInteger):

Source/JavaScriptCore:

Fixed a typo from when this code was added in r228968 where resultGPR
was assigned the input register instead of the result.gpr().

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

11:33 AM Changeset in webkit [231709] by commit-queue@webkit.org
  • 33 edits
    9 adds in trunk

Runtime feature flag for Server-Timing
https://bugs.webkit.org/show_bug.cgi?id=184758

Patch by Charles Vazac <cvazac@gmail.com> on 2018-05-11
Reviewed by Youenn Fablet.

Source/WebCore:

  • Source/WebCore/CMakeLists.txt: Added reference to PerformanceServerTiming.idl.
  • Source/WebCore/DerivedSources.make: Added reference to PerformanceServerTiming.idl.
  • Source/WebCore/Sources.txt: Added reference to PerformanceServerTiming.cpp and JSPerformanceServerTiming.cpp.
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj: Added references to PerformanceServerTiming.cpp, PerformanceServerTiming.h, and PerformanceServerTiming.idl.
  • Source/WebCore/bindings/js/WebCoreBuiltinNames.h: Added PerformanceServerTiming.
  • Source/WebCore/page/PerformanceResourceTiming.h: Added serverTiming member.
  • Source/WebCore/page/PerformanceResourceTiming.idl: Added serverTiming attribute.
  • Source/WebCore/page/PerformanceServerTiming.cpp: Added.
  • Source/WebCore/page/PerformanceServerTiming.h: Added.
  • Source/WebCore/page/PerformanceServerTiming.idl: Added.

Source/WebKit:

  • Shared/WebPreferences.yaml: Added ServerTimingEnabled.
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesGetServerTimingEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h: WK_EXPORT for WKPreferencesSetServerTimingEnabled.
  • WebProcess/Storage/WebSWContextManagerConnection.cpp: Call setServerTimingEnabled.

Source/WebKitLegacy:

  • mac/WebView/WebPreferenceKeysPrivate.h: Added server-timing preference.
  • mac/WebView/WebPreferences.mm:

(WebKit::WebPreferences::serverTimingEnabled):
(WebKit::WebPreferences::setServerTimingEnabled):

  • mac/WebView/WebPreferencesPrivate.h:

(WebKit::WebPreferences::setServerTimingEnabled):
(WebKit::WebPreferences::serverTimingEnabled):

  • mac/WebView/WebView.mm: Set runtime enabled feature based on preference.
  • win/Interfaces/IWebPreferencesPrivate.idl: define serverTimingEnabled and setServerTimingEnabled.
  • win/WebPreferenceKeysPrivate.h: Added server-timing preference.
  • win/WebPreferences.cpp: Initialize server-timing as false and define setter and getter.

(WebKit::WebPreferences::serverTimingEnabled):
(WebKit::WebPreferences::setServerTimingEnabled):

  • win/WebPreferences.h: Define serverTimingEnabled and setServerTimingEnabled.
  • win/WebView.cpp: Set runtime enabled feature based on preference.

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig: added ENABLE_SERVER_TIMING.
  • DumpRenderTree/win/DumpRenderTree.cpp: enable Server Timing

LayoutTests:

  • imported/w3c/resources/import-expectations.json: Import server-timing tests.
  • imported/w3c/web-platform-tests/server-timing/resource_timing_idl.html: Added.
  • imported/w3c/web-platform-tests/server-timing/resource_timing_idl-expected.txt: Added.
  • platform/ios-wk1/TestExpectations: Skip service-worker test.
  • platform/mac-wk1/TestExpectations: Skip service-worker test.
  • platform/win/TestExpectations: Skip service-worker test.
11:11 AM Changeset in webkit [231708] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit

Network process should not stat() all cache files on startup to find their sizes
https://bugs.webkit.org/show_bug.cgi?id=185542
<rdar://problem/40092953>

Reviewed by Chris Dumez.

This is done to compute how much disk space a cache is using. While the operation happens
in a background priority thread it is still quite a bit of work.

Large bodies are saved in separate blob files so record file sizes are capped. We can avoid work by
estimating their size instead of counting it exactly.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::estimateRecordsSize):
(WebKit::NetworkCache::Storage::synchronize):

Use size estimation if blob storage is in use.
Remove the code that would delete empty files. Normal cache shrinking handles this.

(WebKit::NetworkCache::Storage::shouldStoreBodyAsBlob):

10:37 AM Changeset in webkit [231707] by Fujii Hironori
  • 5 edits
    1 add in trunk/Tools

[Win][MiniBrowser] Move WK1 related code into MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=185418

Reviewed by Alex Christensen.

All WK1 related code should be moved into MiniBrowser for the preparation
of Bug 184770.

This change moves the initilization code of MiniBrowse into MiniBrowser::init().

  • MiniBrowser/win/Common.cpp:

(getAppDataFolder): Removed static keyword to be called from MiniBrowser.cpp.
(setCacheFolder): This is only for WK1. Moved into MiniBrowser.cpp.

  • MiniBrowser/win/Common.h: Added.
  • MiniBrowser/win/MiniBrowser.cpp:

(MiniBrowser::init): Moved the initilization code from wWinMain.
(MiniBrowser::setCacheFolder): Moved from Common.cpp and made it a method.

  • MiniBrowser/win/MiniBrowser.h:

(MiniBrowser::setCacheFolder): Changed to a private method.
(MiniBrowser::subclassForLayeredWindow): Changed to a private method.

  • MiniBrowser/win/WinMain.cpp:

(wWinMain): Moved MiniBrowse initilization code into MiniBrowser.cpp.

10:29 AM Changeset in webkit [231706] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test webrtc/addICECandidate-closed.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=185384
<rdar://problem/40035167>

Reviewed by Eric Carlson.

  • webrtc/addICECandidate-closed.html: Move more pc calls inside the try/catch.

This ensures that the test will be consistent as the pc might be closed sooner for some runs.

10:16 AM Changeset in webkit [231705] by jmarcell@apple.com
  • 7 edits in branches/safari-606.1.17-branch/Source

Versioning.

9:12 AM Changeset in webkit [231704] by beidson@apple.com
  • 17 edits in trunk

Make sure history navigations reuse the existing process when necessary.
<rdar://problem/39746516> and https://bugs.webkit.org/show_bug.cgi?id=185532

Reviewed by Ryosuke Niwa.

Source/WebCore:

Covered by new API tests.

In WebCore-land, make sure *all* NavigationActions to a back/forward item are tagged with
the item identifier.

  • history/HistoryItem.cpp:

(WebCore::HistoryItem::HistoryItem):
(WebCore::HistoryItem::logString const):

  • history/HistoryItem.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/NavigationAction.cpp:

(WebCore::NavigationAction::setTargetBackForwardItem):

  • loader/NavigationAction.h:

(WebCore::NavigationAction::targetBackForwardItemIdentifier const):

Source/WebKit:

If a view navigates to either a data: or blob: URL, it reuses the existing process.

In such cases we need to also ensure that history navigations back will also reuse the existing process.

  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::encode const):
(WebKit::NavigationActionData::decode):

  • Shared/NavigationActionData.h:
  • UIProcess/API/APINavigation.h:

(API::Navigation::setTargetItem):

  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration pageCacheEnabled]):
(-[_WKProcessPoolConfiguration setPageCacheEnabled:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigationInternal): If the current and target back/forward items both

came from the same process, then reuse the existing process.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
9:08 AM Changeset in webkit [231703] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Don't use inferred types when the JIT is disabled
https://bugs.webkit.org/show_bug.cgi?id=185539

Reviewed by Yusuke Suzuki.

There are many JSC API clients that run with the JIT disabled. They were
all allocating and tracking inferred types for no benefit. Inferred types
only benefit programs when they make it to the DFG/FTL. I was seeing cases
where the inferred type machinery used ~0.5MB. This patch makes is so we
don't allocate that machinery when the JIT is disabled.

  • runtime/Structure.cpp:

(JSC::Structure::willStoreValueSlow):

  • runtime/Structure.h:
9:01 AM Changeset in webkit [231702] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

REGRESSION(r231057): Encrypted media content playback failures
https://bugs.webkit.org/show_bug.cgi?id=185537
<rdar://problem/40038478>

Reviewed by Eric Carlson.

Put access to the SecurityServer back in the sandbox so we can validate the
signatures of media encoder/decoders.

  • WebProcess/com.apple.WebProcess.sb.in:
6:09 AM Changeset in webkit [231701] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[GTK][a11y] Newly added accessibility/scroll-to-make-visible-iframe-offscreen.html fails

Unreviewed gardening. Added the failure.

  • platform/gtk/TestExpectations:
4:38 AM Changeset in webkit [231700] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[GTK] media/video-playbackrate.html intermittently crashing
https://bugs.webkit.org/show_bug.cgi?id=185546

Mark thet test, unreviewed gardening.

  • platform/gtk/TestExpectations:
3:50 AM Changeset in webkit [231699] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[EME][GStreamer] Handle the protection event in MediaPlayerPrivate
https://bugs.webkit.org/show_bug.cgi?id=185535

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-05-11
Reviewed by Xabier Rodriguez-Calvar.

This patch is based on this calvaris's commit
https://github.com/WebPlatformForEmbedded/WPEWebKit/commit/d966168b0d2b65f9ca9415426e26d3752c78b03e

It adds a handler for the protection event in MediaPalyerPrivateGStreamerBase, it extracts the InitData from the event
and sends the encrypted event to JS via HTMLMediaElement.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::initializationDataEncountered):
(WebCore::MediaPlayerPrivateGStreamerBase::handleProtectionEvent):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h: Add a new type InitData.
3:15 AM Changeset in webkit [231698] by youenn@apple.com
  • 12 edits in trunk/LayoutTests

Rebase some fetch API tests
https://bugs.webkit.org/show_bug.cgi?id=185544

Unreviewed.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/basic/integrity-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-count-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location-worker-expected.txt:
  • web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt:
  • web-platform-tests/fetch/http-cache/partial-expected.txt:

LayoutTests:

  • http/tests/fetch/fetching-same-resource-with-different-options-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt:
1:55 AM Changeset in webkit [231697] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

Skip http/tests/appcache/load-from-appcache-defer-resume-crash.html for iOS sim WK2
https://bugs.webkit.org/show_bug.cgi?id=185430
<rdar://problem/40065118>

Unreviewed.

  • platform/ios-wk2/TestExpectations: Precising the WK1 testRunner API used by the test.
1:31 AM Changeset in webkit [231696] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

[Curl] Make the cipher suites, the signing algorithms and the curve lists configurable.
https://bugs.webkit.org/show_bug.cgi?id=185139

Add interface to configure the cipher suites, the signing algorithms and the curve lists
used by OpenSSL and libcurl to exchange, to sign or to verify keys.

Patch by Basuke Suzuki <Basuke Suzuki> on 2018-05-11
Reviewed by Youenn Fablet.

No new tests in public. Have tested internally.

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlHandle::setSslCipherList):

  • platform/network/curl/CurlContext.h:
  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::setupTransfer):
(WebCore::CurlRequest::willSetupSslCtx):

  • platform/network/curl/CurlSSLHandle.cpp:

(WebCore::CurlSSLHandle::getCACertPathEnv):

  • platform/network/curl/CurlSSLHandle.h:

(WebCore::CurlSSLHandle::getCipherList const):
(WebCore::CurlSSLHandle::getSignatureAlgorithmsList const):
(WebCore::CurlSSLHandle::getCurvesList const):
(WebCore::CurlSSLHandle::setCipherList):
(WebCore::CurlSSLHandle::setSignatureAlgorithmsList):
(WebCore::CurlSSLHandle::setCurvesList):
(WebCore::CurlSSLHandle::getCACertPath const):
(WebCore::CurlSSLHandle::setCACertPath):

  • platform/network/curl/CurlSSLVerifier.cpp:

(WebCore::CurlSSLVerifier::CurlSSLVerifier):

12:57 AM Changeset in webkit [231695] by sbarati@apple.com
  • 10 edits in trunk/Source

Don't allocate value profiles when the JIT is disabled
https://bugs.webkit.org/show_bug.cgi?id=185525

Reviewed by Michael Saboff.

Source/JavaScriptCore:

There are many JSC API clients that run with the JIT disabled. We were
still allocating a ton of value profiles in this use case even though
these clients get no benefit from doing value profiling. This patch makes
it so that we don't allocate value profiles or argument value profiles
when we're not using the JIT. We now just make all value profiles in
the instruction stream point to a global value profile that the VM owns.
And we make the argument value profile array have zero length and teach
the LLInt how to handle that. Heap clears the global value profile on each GC.

In an app that I'm testing this against, this saves ~1MB of memory.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::setNumParameters):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::numberOfArgumentValueProfiles):
(JSC::CodeBlock::valueProfileForArgument):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitProfiledOpcode):

  • heap/Heap.cpp:

(JSC::Heap::runEndPhase):

  • llint/LowLevelInterpreter.asm:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

Source/WTF:

  • wtf/RefCountedArray.h:

(WTF::RefCountedArray::RefCountedArray):

12:22 AM Changeset in webkit [231694] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

NetworkCORSPreflightChecker should proceed when having a ProtectionSpaceAuthenticationSchemeServerTrustEvaluationRequested challenge
https://bugs.webkit.org/show_bug.cgi?id=185522
<rdar://problem/39987152>

Reviewed by Brent Fulgham.

In case of such challenge, refuse to proceed with authentication since preflight is not using credentials.
Previously, we were failing right away which is not right in case preflight is the request triggering the connection.

Manually tested.

  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::didReceiveChallenge):

May 10, 2018:

11:56 PM Changeset in webkit [231693] by Carlos Garcia Campos
  • 8 edits in trunk

[JSC][GLIB] Add introspectable alternatives to functions using vargars
https://bugs.webkit.org/show_bug.cgi?id=185508

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

  • API/glib/JSCClass.cpp:

(jscClassCreateConstructor):
(jsc_class_add_constructor):
(jsc_class_add_constructorv):
(jscClassAddMethod):
(jsc_class_add_method):
(jsc_class_add_methodv):

  • API/glib/JSCClass.h:
  • API/glib/JSCValue.cpp:

(jsObjectCall):
(jscValueCallFunction):
(jsc_value_object_invoke_methodv):
(jscValueFunctionCreate):
(jsc_value_new_function):
(jsc_value_new_functionv):
(jsc_value_function_callv):
(jsc_value_constructor_callv):

  • API/glib/JSCValue.h:
  • API/glib/docs/jsc-glib-4.0-sections.txt:

Tools:

Add test cases for the new API.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(testJSCFunction):
(testJSCObject):

10:34 PM Changeset in webkit [231692] by dbates@webkit.org
  • 12 edits in trunk/Source

Use PlatformStrategies to switch between WebKit and WebKitLegacy checking of CSP frame-ancestors and X-Frame-Options
https://bugs.webkit.org/show_bug.cgi?id=185412

Reviewed by Ryosuke Niwa.

Source/WebCore:

Consolidate the knowledge on how to determine whether security checks were performed on a ResourceResponse
into LoaderStrategy::havePerformedSecurityChecks() (default implementation returns false) and query it
to determine whether CSP frame-ancestors and X-Frame-Options need to be checked for a ResourceResponse.

Additionally, rename LoaderStrategy::isDoingLoadingSecurityChecks() to shouldPerformSecurityChecks()
for consistency with havePerformedSecurityChecks(). Querying shouldPerformSecurityChecks() answers the
question of whether the loader strategy is responsible for performing security checks when building up
a ResourceRequest to have the loader strategy load. And LoaderStrategy::havePerformedSecurityChecks()
is used to determine whether the loader strategy performed these security checks for a given ResourceResponse.

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::didReceiveResponse):
(WebCore::InspectorNetworkAgent::didFinishLoading):
(WebCore::isResponseProbablyComingFromNetworkProcess): Deleted.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::shouldPerformSecurityChecks):
(WebCore::DocumentThreadableLoader::shouldSetHTTPHeadersToKeep const):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::redirectReceived):
(WebCore::DocumentThreadableLoader::didFail):
(WebCore::DocumentThreadableLoader::loadRequest):
(WebCore::isDoingSecurityChecksInNetworkProcess): Deleted.
(WebCore::isResponseComingFromNetworkProcess): Deleted.

  • loader/LoaderStrategy.cpp:
  • loader/LoaderStrategy.h:
  • page/Settings.yaml: Remove setting networkProcessCSPFrameAncestorsCheckingEnabled as we now make

use of the loader strategy to determine whether to perform CSP frame-ancestors and X-Frame-Options
checking in DocumentLoader.

  • platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::setSource): Added an ASSERT to catch the programming error of setting
source to ResourceResponse::Source::Unknown. This source type represents an uninitialized ResourceResponse.

Source/WebKit:

Update code for renaming and write in terms of WebLoaderStrategy::shouldPerformSecurityChecks()
instead of explicitly querying RuntimeEnabledFeatures::sharedFeatures().restrictedHTTPResponseAccess().

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::startPingLoad):
(WebKit::WebLoaderStrategy::preconnectTo):
(WebKit::WebLoaderStrategy::shouldPerformSecurityChecks const):
(WebKit::WebLoaderStrategy::havePerformedSecurityChecks const):
(WebKit::WebLoaderStrategy::isDoingLoadingSecurityChecks const): Deleted.

  • WebProcess/Network/WebLoaderStrategy.h:
  • WebProcess/WebPage/WebPage.cpp:
10:30 PM Changeset in webkit [231691] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Lookup sometimes shows a second yellow highlight on top of WebKit's TextIndicator
https://bugs.webkit.org/show_bug.cgi?id=185538
<rdar://problem/38817825>

Reviewed by Sam Weinig.

  • editing/mac/DictionaryLookup.mm:

(WebCore::showPopupOrCreateAnimationController):
Options can be nil, in which case we can't mutableCopy it and add
LUTermOptionDisableSearchTermIndicator. Instead, create a new dictionary,
and add the items from options, if it's not nil.

10:00 PM Changeset in webkit [231690] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

REGRESSION(r227983): fast/dom/adopt-node-crash-2.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=182589

Reviewed by Wenson Hsieh.

This is a speculative fix for the test since I can't reproduce the flakiness locally. Because r227983 makes
the layout update async, I suspect the focus change which occurs to the keygen having autofocus attribute
isn't updating the layout in time for notifyDone call. Manually update the layout before/after the test.

Also wait for the load event to figure before starting the test since layout, etc... may not be updated
immediately after DOMContentLoaded.

  • fast/dom/adopt-node-crash-2.html:
9:41 PM Changeset in webkit [231689] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Fix the build after r231393
https://bugs.webkit.org/show_bug.cgi?id=185519
<rdar://problem/40131741>

  • Configurations/WebKit.xcconfig:
9:38 PM Changeset in webkit [231688] by Yusuke Suzuki
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Make return types of construction functions tight
https://bugs.webkit.org/show_bug.cgi?id=185509

Reviewed by Saam Barati.

Array and Object construction functions should return strict types instead of returning JSObject*/JSValue.

  • runtime/ArrayConstructor.cpp:

(JSC::constructArrayWithSizeQuirk):

  • runtime/ArrayConstructor.h:
  • runtime/ObjectConstructor.h:

(JSC::constructEmptyObject):

8:38 PM Changeset in webkit [231687] by Yusuke Suzuki
  • 8 edits
    1 add in trunk

[JSC] Object.assign for final objects should be faster
https://bugs.webkit.org/show_bug.cgi?id=185348

Reviewed by Saam Barati.

JSTests:

  • stress/object-assign-fast-path.js: Added.

(shouldBe):
(checkProperty):

Source/JavaScriptCore:

Object.assign is so heavily used to clone an object. For example, speedometer react-redux can be significantly
improved if Object.assign becomes fast. It is worth adding a complex fast path to accelerate the major use cases.

If enumerating properties of source objects and putting properties to target object are non observable,
we can avoid hash table looking up of source object properties. We can enumerate object property entries,
and put them to target object. This patch adds this fast path to Object.assign implementation.

When enumerating properties, we need to ensure that the given |source| object does not include "proto"
property since we cannot perform fast Put? for the |target| object. We add a new flag
"HasUnderscoreProtoPropertyExcludingOriginalProto" to Structure to track this state.

This improves object-assign.es6 by 1.85x.

baseline patched

object-assign.es6 368.6132+-8.3508 198.8775+-4.9042 definitely 1.8535x faster

And Speedometer2.0 React-Redux-TodoMVC's total time is improved from 490ms to 431ms.

  • runtime/JSObject.h:
  • runtime/JSObjectInlines.h:

(JSC::JSObject::canPerformFastPutInlineExcludingProto):
(JSC::JSObject::canPerformFastPutInline):

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorAssign):

  • runtime/Structure.cpp:

(JSC::Structure::Structure):

  • runtime/Structure.h:
  • runtime/StructureInlines.h:

(JSC::Structure::forEachProperty):
(JSC::Structure::add):

7:07 PM Changeset in webkit [231686] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Build Bot] Restore configuration options to the Test262 Runner

During the switch from the previous Test262 runner to the new one,
a call for an extra configurations options got removed.

This call is important to inform the script to find the debug or
release build of JSC. It's being restored in this patch.

https://bugs.webkit.org/show_bug.cgi?id=185513

Patch by Leo Balter <Leo Balter> on 2018-05-10
Reviewed by Yusuke Suzuki.

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(RunTest262Tests):

7:00 PM Changeset in webkit [231685] by Michael Catanzaro
  • 1 copy in releases/WPE WebKit/webkit-2.19.93

WPE WebKit 2.19.93

6:59 PM Changeset in webkit [231684] by wilander@apple.com
  • 4 edits in trunk/Source/WebKit

Storage Access API: Extend lifetime of cookies on successful user approval
https://bugs.webkit.org/show_bug.cgi?id=185534
<rdar://problem/40064547>

Reviewed by Brent Fulgham.

  • UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm:

(WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded):

Picks up the experimental feature flag.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::grantStorageAccessInternal):

Now updates the domain's user interaction timestamp if the user was
prompted for this access.

  • UIProcess/WebResourceLoadStatisticsStore.h:
6:59 PM Changeset in webkit [231683] by Michael Catanzaro
  • 4 edits in releases/WebKitGTK/webkit-2.20

Unreviewed. Update OptionsWPE.cmake and NEWS for 2.19.93 release.

6:58 PM Changeset in webkit [231682] by Michael Catanzaro
  • 5 edits in releases/WebKitGTK/webkit-2.20

Merge r231661 - Fix some -Wstring-op-truncation warnings
https://bugs.webkit.org/show_bug.cgi?id=185496

Reviewed by Alex Christensen.

Source/ThirdParty:

Disable this warning when building gtest.

  • gtest/CMakeLists.txt:

Tools:

We have an off-by-one in the use of strncpy. The strings would not be null-terminated if
the input was too long. Ensure the buffers are zero-initialized so we don't need to manually
set the last bucket to NUL.

  • TestWebKitAPI/Tests/WTF/AtomicString.cpp:

(TestWebKitAPI::testAtomicStringNumber):

  • TestWebKitAPI/Tests/WTF/WTFString.cpp:

(TestWebKitAPI::testStringNumberFixedPrecision):
(TestWebKitAPI::testStringNumberFixedWidth):
(TestWebKitAPI::testStringNumber):

5:58 PM Changeset in webkit [231681] by jmarcell@apple.com
  • 7 edits in tags/Safari-605.3.1.1/Source

Versioning.

5:45 PM Changeset in webkit [231680] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.3.1.1

New tag.

5:42 PM Changeset in webkit [231679] by Jonathan Bedard
  • 5 edits in trunk/Tools

REGRESSION (r230998): Cannot stream API test output
https://bugs.webkit.org/show_bug.cgi?id=185090

Reviewed by Ryosuke Niwa.

Change run-api-tests so that the stdout and stderr of a test will be printed
before it's result. If -v is passed, the output of single test runs will be
streamed.

  • Scripts/webkitpy/api_tests/run_api_tests.py:

(run): Use print_timestamps flag.
(parse_args): Add timestamps option to print timestamps in the log.

  • Scripts/webkitpy/api_tests/runner.py:

(Runner): Add running status.
(Runner.init): Add number of workers and a flag to detect if a newline
is needed at the beginning of a log line.
(Runner.run): Turn off most logging coming from server process since it is
not constructive for API tests.
(Runner.handle): Add new log message to stream stdout and stderr instead of
caching values until the test run finished.
(_Worker._run_single_test): Log stdout and stderr in real time.
(_Worker._run_shard_with_binary): Log stderr and stdout buffer before ending
the test.
(_Worker.post): Provide a post with explicitly enumerated argument names.

  • Scripts/webkitpy/layout_tests/views/metered_stream.py:

(MeteredStream.init): Differentiate verbose logging and logging with timestamps.
(MeteredStream.write): Allow for verbose logging without timestamps.

  • Scripts/webkitpy/layout_tests/views/metered_stream_unittest.py:

(RegularTest): Add print_timestamps flag.
(RegularTest.setUp):
(RegularTest.test_logging_not_included):
(VerboseTest.test_log_args):
(VerboseWithOutTimestamp):
(VerboseWithOutTimestamp.test_basic): Add test for verbose logging without timestamps.

5:23 PM Changeset in webkit [231678] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.17.2

Tag Safari-606.1.17.2.

5:06 PM Changeset in webkit [231677] by rniwa@webkit.org
  • 2 edits in trunk/Tools

build-webkit can erroneously warn about Xcode being too old
https://bugs.webkit.org/show_bug.cgi?id=185533

Reviewed by Dan Bernstein.

Don't assume the version number is always a single digit.

  • Scripts/webkitdirs.pm:

(determineXcodeVersion):

4:35 PM Changeset in webkit [231676] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

[iOS] Release page load process assertion if the screen is locked
https://bugs.webkit.org/show_bug.cgi?id=185333

Reviewed by Geoff Garen.

We normally take a background process assertion during page loads to allow them to complete
even if the tab / app is backgrounded. We should however avoid doing so when the backgrounding
is caused by the screen locking. Keeping the process assertion in this case would prevent the
whole device from sleeping longer than it should, thus negatively impacting power.

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

(WebKit::NavigationState::NavigationState):
(WebKit::NavigationState::releaseNetworkActivityToken):
(WebKit::NavigationState::didChangeIsLoading):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidEnterBackground):

4:18 PM Changeset in webkit [231675] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.3.1

Tag Safari-605.3.1.

4:16 PM Changeset in webkit [231674] by jmarcell@apple.com
  • 1 delete in tags/Safari-605.3.1

Delete tag

4:14 PM Changeset in webkit [231673] by Ross Kirsling
  • 3 edits in trunk/Tools

[WinCairo][Buildbot] Test bots need to acquire WinCairoRequirements.
https://bugs.webkit.org/show_bug.cgi?id=185528

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/build.webkit.org-config/factories.py:

(TestFactory.init):

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(InstallWinCairoDependencies):

4:14 PM Changeset in webkit [231672] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.3.1

Tag Safari-605.3.1.

4:11 PM Changeset in webkit [231671] by jmarcell@apple.com
  • 1 delete in tags/Safari-605.3.1

Delete tag

4:10 PM Changeset in webkit [231670] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.3.1

Tag Safari-605.3.1.

4:10 PM Changeset in webkit [231669] by jmarcell@apple.com
  • 1 delete in tags/Safari-605.3.1

Delete tag

4:07 PM Changeset in webkit [231668] by jmarcell@apple.com
  • 7 edits in branches/safari-605-branch/Source

Versioning.

4:05 PM Changeset in webkit [231667] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.3.1

Tag Safari-605.3.1.

3:29 PM Changeset in webkit [231666] by commit-queue@webkit.org
  • 147 edits
    35 copies
    14 moves
    198 adds
    9 deletes in trunk/JSTests

Update Test262 tests through the new import script - 20180509
https://bugs.webkit.org/show_bug.cgi?id=185482

Patch by Leo Balter <Leo Balter> on 2018-05-10
Reviewed by Michael Saboff.

Also update the test262/expecatations.yaml with the recent imported files.

  • test262/expectations.yaml:
  • test262/harness/compareIterator.js: Added.

(assert.compareIterator):

  • test262/harness/nativeFunctionMatcher.js:

(const.assertToStringOrNativeFunction):
(const.assertNativeFunction):

  • test262/harness/regExpUtils.js:
  • test262/harness/testIntl.js:

(getInvalidLanguageTags):

  • test262/harness/testTypedArray.js:
  • test262/harness/wellKnownIntrinsicObjects.js: Added.

(WellKnownIntrinsicObjects.forEach.wkio.catch):

  • test262/latest-changes-summary.txt: Added.
  • test262/test/annexB/language/eval-code/direct/block-decl-nostrict.js: Copied from JSTests/test262/test/language/eval-code/direct/block-decl-strict-caller.js.

(catch):

  • test262/test/annexB/language/eval-code/direct/switch-case-decl-nostrict.js: Copied from JSTests/test262/test/language/eval-code/direct/switch-case-decl-strict-source.js.

(catch):

  • test262/test/annexB/language/eval-code/direct/switch-dflt-decl-nostrict.js: Copied from JSTests/test262/test/language/eval-code/direct/switch-dflt-decl-strict-caller.js.

(catch):

  • test262/test/annexB/language/function-code/block-decl-nested-blocks-with-fun-decl.js: Added.

(g.f):
(g):

  • test262/test/annexB/language/function-code/block-decl-nostrict.js: Copied from JSTests/test262/test/language/function-code/block-decl-strict.js.

(catch):
(f):

  • test262/test/annexB/language/function-code/switch-case-decl-nostrict.js: Copied from JSTests/test262/test/language/function-code/switch-case-decl-strict.js.

(catch):
(switch.case.1):
(switch):

  • test262/test/annexB/language/function-code/switch-dflt-decl-nostrict.js: Copied from JSTests/test262/test/language/function-code/switch-dflt-decl-strict.js.

(catch):
(switch.default):
(switch):

  • test262/test/built-ins/Array/prototype/filter/target-array-with-non-writable-property.js: Added.

(a.Symbol.species):
(r.a.filter):

  • test262/test/built-ins/Array/prototype/indexOf/calls-only-has-on-prototype-after-length-zeroed.js: Added.

(allowProxyTraps.has):
(fromIndex.valueOf):

  • test262/test/built-ins/Array/prototype/lastIndexOf/calls-only-has-on-prototype-after-length-zeroed.js: Added.

(allowProxyTraps.has):
(fromIndex.valueOf):

  • test262/test/built-ins/Array/prototype/map/target-array-with-non-writable-property.js: Added.

(a.Symbol.species):
(r.a.map):

  • test262/test/built-ins/Array/prototype/slice/target-array-with-non-writable-property.js: Added.

(a.Symbol.species):

  • test262/test/built-ins/Array/prototype/splice/property-traps-order-with-species.js: Added.

(a.Symbol.species):

  • test262/test/built-ins/Array/prototype/splice/target-array-with-non-writable-property.js: Added.

(a.Symbol.species):

  • test262/test/built-ins/Atomics/Symbol.toStringTag.js:
  • test262/test/built-ins/Atomics/add/bad-range.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/add/good-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/add/non-views.js:
  • test262/test/built-ins/Atomics/add/nonshared-int-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/add/shared-nonint-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/and/bad-range.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/and/good-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/and/non-views.js:
  • test262/test/built-ins/Atomics/and/nonshared-int-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/and/shared-nonint-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/compareExchange/bad-range.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/compareExchange/good-views.js:

(testWithTypedArrayConstructors):
(view): Deleted.

  • test262/test/built-ins/Atomics/compareExchange/non-views.js:
  • test262/test/built-ins/Atomics/compareExchange/nonshared-int-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/compareExchange/shared-nonint-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/exchange/bad-range.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/exchange/good-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/exchange/non-views.js:
  • test262/test/built-ins/Atomics/exchange/nonshared-int-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/exchange/shared-nonint-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/isLockFree/corner-cases.js:

(hide):

  • test262/test/built-ins/Atomics/isLockFree/value.js:

(testIsLockFree): Deleted.

  • test262/test/built-ins/Atomics/load/bad-range.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/load/good-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/load/non-views.js:
  • test262/test/built-ins/Atomics/load/nonshared-int-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/load/shared-nonint-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/or/bad-range.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/or/good-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/or/non-views.js:
  • test262/test/built-ins/Atomics/or/nonshared-int-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/or/shared-nonint-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/prop-desc.js:
  • test262/test/built-ins/Atomics/proto.js:
  • test262/test/built-ins/Atomics/store/bad-range.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/store/good-views.js:

(testWithTypedArrayConstructors):
(ToInteger):

  • test262/test/built-ins/Atomics/store/non-views.js:
  • test262/test/built-ins/Atomics/store/nonshared-int-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/store/shared-nonint-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/sub/bad-range.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/sub/good-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/sub/non-views.js:
  • test262/test/built-ins/Atomics/sub/nonshared-int-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/sub/shared-nonint-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/wait/bad-range.js: Copied from JSTests/test262/test/built-ins/Atomics/wake/bad-range.js.

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/wait/cannot-suspend-throws.js:
  • test262/test/built-ins/Atomics/wait/did-timeout.js:

(getReport):

  • test262/test/built-ins/Atomics/wait/false-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/false-for-timeout.js.

(getReport):
(262.agent.start.valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wait/false-for-timeout.js:

(valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.

  • test262/test/built-ins/Atomics/wait/good-views.js:

(r.getReport):
(getReport):

  • test262/test/built-ins/Atomics/wait/nan-for-timeout.js:

(getReport):

  • test262/test/built-ins/Atomics/wait/negative-index-throws.js:
  • test262/test/built-ins/Atomics/wait/negative-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/negative-timeout.js.

(getReport):
(262.agent.start.262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wait/negative-timeout.js:

(262.agent.start.262.agent.receiveBroadcast): Deleted.
(getReport): Deleted.

  • test262/test/built-ins/Atomics/wait/no-spurious-wakeup.js:

(getReport):

  • test262/test/built-ins/Atomics/wait/non-int32-typedarray-throws.js:
  • test262/test/built-ins/Atomics/wait/non-shared-bufferdata-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/nonshared-bufferdata-throws.js.
  • test262/test/built-ins/Atomics/wait/not-a-typedarray-throws.js:
  • test262/test/built-ins/Atomics/wait/not-an-object-throws.js:
  • test262/test/built-ins/Atomics/wait/null-bufferdata-throws.js:
  • test262/test/built-ins/Atomics/wait/null-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/false-for-timeout.js.

(getReport):
(262.agent.start.valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wait/null-for-timeout.js:

(valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.

  • test262/test/built-ins/Atomics/wait/object-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/false-for-timeout.js.

(getReport):
(262.agent.start.valueOf.valueOf):
(toString.toString):
(toPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wait/object-for-timeout.js:

(valueOf.valueOf):
(toString.toString):
(toPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.

  • test262/test/built-ins/Atomics/wait/out-of-range-index-throws.js:
  • test262/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws-agent.js: Added.

(getReport):
(262.agent.start.poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws.js:

(poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.

  • test262/test/built-ins/Atomics/wait/symbol-for-index-throws-agent.js: Added.

(getReport):
(262.agent.start.poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wait/symbol-for-index-throws.js:

(poisonedToPrimitive.Symbol.toPrimitive):
(poisoned.valueOf): Deleted.
(poisonedWithString.get valueOf): Deleted.
(poisonedToPrimitive.get Symbol): Deleted.

  • test262/test/built-ins/Atomics/wait/symbol-for-timeout-throws-agent.js: Added.

(getReport):
(262.agent.start.262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wait/symbol-for-timeout-throws.js:

(poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.

  • test262/test/built-ins/Atomics/wait/symbol-for-value-throws-agent.js: Added.

(getReport):
(262.agent.start.poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wait/symbol-for-value-throws.js: Added.

(poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):

  • test262/test/built-ins/Atomics/wait/true-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/null-for-timeout.js.

(getReport):
(262.agent.start.valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wait/true-for-timeout.js:

(valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.

  • test262/test/built-ins/Atomics/wait/undefined-for-timeout.js:

(getReport):

  • test262/test/built-ins/Atomics/wait/undefined-index-defaults-to-zero.js:

(262.agent.start.262.agent.receiveBroadcast):
(getReport):

  • test262/test/built-ins/Atomics/wait/value-not-equal.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/wait-index-value-not-equal.js.

(getReport):
(262.agent.start.262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wait/wait-index-value-not-equal.js:

(262.agent.start.262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wait/waiterlist-block-indexedposition-wake.js: Added.

(getReport):
(262.agent.start.262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wait/waiterlist-order-of-operations-is-fifo.js: Added.

(getReport):
(262.agent.start.262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wait/was-woken-before-timeout.js:

(getReport):
(262.agent.start.262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wait/was-woken.js:

(getReport):
(262.agent.start.262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wake/bad-range.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/wake/count-boundary-cases.js: Renamed from JSTests/test262/test/built-ins/Atomics/wake/counts.js.
  • test262/test/built-ins/Atomics/wake/count-defaults-to-infinity-missing.js: Added.

(getReport):
(262.agent.start.262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wake/count-defaults-to-infinity-undefined.js: Added.

(getReport):
(262.agent.start.262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wake/count-from-nans.js: Added.
  • test262/test/built-ins/Atomics/wake/count-symbol-throws.js: Added.
  • test262/test/built-ins/Atomics/wake/count-tointeger-throws-then-wake-throws.js: Added.

(poisoned.valueOf):

  • test262/test/built-ins/Atomics/wake/good-views.js:
  • test262/test/built-ins/Atomics/wake/negative-count.js: Renamed from JSTests/test262/test/built-ins/Atomics/wake/wake-negative.js.
  • test262/test/built-ins/Atomics/wake/negative-index-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/negative-index-throws.js.

(poisoned.valueOf):

  • test262/test/built-ins/Atomics/wake/non-int32-typedarray-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/non-int32-typedarray-throws.js.

(poisoned.valueOf):

  • test262/test/built-ins/Atomics/wake/non-shared-bufferdata-throws.js: Renamed from JSTests/test262/test/built-ins/Atomics/wait/nonshared-bufferdata-throws.js.

(poisoned.valueOf):

  • test262/test/built-ins/Atomics/wake/non-views.js:
  • test262/test/built-ins/Atomics/wake/nonshared-int-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/wake/not-a-typedarray-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/not-a-typedarray-throws.js.

(poisoned.valueOf):

  • test262/test/built-ins/Atomics/wake/not-an-object-throws.js: Added.

(poisoned.valueOf):

  • test262/test/built-ins/Atomics/wake/null-bufferdata-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/null-bufferdata-throws.js.

(poisoned.valueOf):

  • test262/test/built-ins/Atomics/wake/out-of-range-index-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/out-of-range-index-throws.js.

(poisoned.valueOf):

  • test262/test/built-ins/Atomics/wake/shared-nonint-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/wake/symbol-for-index-throws.js: Added.

(poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):

  • test262/test/built-ins/Atomics/wake/undefined-index-defaults-to-zero.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/undefined-index-defaults-to-zero.js.

(262.agent.start.262.agent.receiveBroadcast):
(getReport):

  • test262/test/built-ins/Atomics/wake/wake-all-on-loc.js:

(262.agent.start.262.agent.receiveBroadcast):
(getReport):
(waitUntil):

  • test262/test/built-ins/Atomics/wake/wake-all.js:

(262.agent.start.262.agent.receiveBroadcast):
(getReport):
(waitUntil):

  • test262/test/built-ins/Atomics/wake/wake-in-order.js:

(getReport):
(waitUntil):

  • test262/test/built-ins/Atomics/wake/wake-nan.js:

(getReport):

  • test262/test/built-ins/Atomics/wake/wake-one.js:

(getReport):
(waitUntil):

  • test262/test/built-ins/Atomics/wake/wake-rewake-noop.js: Added.

(getReport):
(waitUntil):
(262.agent.start.262.agent.receiveBroadcast):

  • test262/test/built-ins/Atomics/wake/wake-two.js:

(getReport):

  • test262/test/built-ins/Atomics/wake/wake-with-no-agents-waiting.js: Added.

(262.agent.start.262.agent.receiveBroadcast):
(waitUntil):

  • test262/test/built-ins/Atomics/wake/wake-with-no-matching-agents-waiting.js: Added.

(262.agent.start.262.agent.receiveBroadcast):
(waitUntil):

  • test262/test/built-ins/Atomics/wake/wake-zero.js:

(i.262.agent.start.262.agent.receiveBroadcast):
(getReport):
(waitUntil):

  • test262/test/built-ins/Atomics/xor/bad-range.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/xor/good-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/xor/non-views.js:
  • test262/test/built-ins/Atomics/xor/nonshared-int-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/Atomics/xor/shared-nonint-views.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/BigInt/asIntN/bigint-tobigint-errors.js:
  • test262/test/built-ins/BigInt/asIntN/bigint-tobigint-toprimitive.js:
  • test262/test/built-ins/BigInt/asIntN/bigint-tobigint-wrapped-values.js:
  • test262/test/built-ins/BigInt/asIntN/bits-toindex-errors.js:
  • test262/test/built-ins/BigInt/asIntN/bits-toindex-toprimitive.js:
  • test262/test/built-ins/BigInt/asIntN/bits-toindex-wrapped-values.js:
  • test262/test/built-ins/BigInt/asUintN/bigint-tobigint-errors.js:
  • test262/test/built-ins/BigInt/asUintN/bigint-tobigint-toprimitive.js:
  • test262/test/built-ins/BigInt/asUintN/bigint-tobigint-wrapped-values.js:
  • test262/test/built-ins/BigInt/asUintN/bits-toindex-errors.js:
  • test262/test/built-ins/BigInt/asUintN/bits-toindex-toprimitive.js:
  • test262/test/built-ins/BigInt/asUintN/bits-toindex-wrapped-values.js:
  • test262/test/built-ins/BigInt/constructor-empty-string.js:
  • test262/test/built-ins/BigInt/constructor-from-binary-string.js:
  • test262/test/built-ins/BigInt/constructor-from-decimal-string.js:
  • test262/test/built-ins/BigInt/constructor-from-hex-string.js:
  • test262/test/built-ins/BigInt/constructor-from-octal-string.js:
  • test262/test/built-ins/BigInt/constructor-from-string-syntax-errors.js:
  • test262/test/built-ins/BigInt/constructor-integer.js: Added.
  • test262/test/built-ins/BigInt/constructor-trailing-leading-spaces.js:
  • test262/test/built-ins/BigInt/issafeinteger-true.js: Removed.
  • test262/test/built-ins/BigInt/out-of-bounds-integer-rangeerror.js: Removed.
  • test262/test/built-ins/BigInt/prototype/Symbol.toStringTag.js:
  • test262/test/built-ins/BigInt/prototype/toString/default-radix.js: Added.
  • test262/test/built-ins/BigInt/prototype/toString/thisbigintvalue-not-valid-throws.js:
  • test262/test/built-ins/BigInt/prototype/valueOf/cross-realm.js: Added.
  • test262/test/built-ins/BigInt/tostring-throws.js: Copied from JSTests/test262/test/built-ins/BigInt/value-of-throws.js.
  • test262/test/built-ins/BigInt/valueof-throws.js: Renamed from JSTests/test262/test/built-ins/BigInt/value-of-throws.js.

(BigInt.valueOf):

  • test262/test/built-ins/DataView/prototype/setBigInt64/set-values-return-undefined.js:

(values.forEach):

  • test262/test/built-ins/Function/prototype/bind/length-exceeds-int32.js: Added.

(f):

  • test262/test/built-ins/Function/prototype/toString/anonymous-intrinsics.js: Removed.
  • test262/test/built-ins/Function/prototype/toString/bound-function.js:

(assertNativeFunction):
(let.f): Deleted.

  • test262/test/built-ins/Function/prototype/toString/built-in-function-object.js: Added.
  • test262/test/built-ins/Function/prototype/toString/intrinsics.js: Removed.
  • test262/test/built-ins/Function/prototype/toString/proxy-arrow-function.js: Added.

(assertNativeFunction.new.Proxy):

  • test262/test/built-ins/Function/prototype/toString/proxy-async-function.js: Added.

(assertNativeFunction.new.Proxy.async):

  • test262/test/built-ins/Function/prototype/toString/proxy-async-generator-function.js: Added.

(assertNativeFunction.new.Proxy.async):

  • test262/test/built-ins/Function/prototype/toString/proxy-async-generator-method-definition.js: Added.

(assertNativeFunction.new.Proxy.async.method):
(apply):

  • test262/test/built-ins/Function/prototype/toString/proxy-async-method-definition.js: Added.

(assertNativeFunction.new.Proxy.async.method):
(apply):

  • test262/test/built-ins/Function/prototype/toString/proxy-bound-function.js: Added.

(assertNativeFunction.new.Proxy):
(bind):

  • test262/test/built-ins/Function/prototype/toString/proxy-class.js: Added.

(assertNativeFunction):

  • test262/test/built-ins/Function/prototype/toString/proxy-function-expression.js: Added.

(assertNativeFunction.new.Proxy):

  • test262/test/built-ins/Function/prototype/toString/proxy-generator-function.js: Added.

(assertNativeFunction.new.Proxy):

  • test262/test/built-ins/Function/prototype/toString/proxy-method-definition.js: Added.

(assertNativeFunction.new.Proxy.method):
(apply):

  • test262/test/built-ins/Function/prototype/toString/proxy-non-callable-throws.js: Added.
  • test262/test/built-ins/Function/prototype/toString/proxy.js: Removed.
  • test262/test/built-ins/Function/prototype/toString/well-known-intrinsic-object-functions.js: Added.

(WellKnownIntrinsicObjects.forEach):

  • test262/test/built-ins/JSON/prop-desc.js: Added.
  • test262/test/built-ins/Math/acosh/nan-returns.js:
  • test262/test/built-ins/Math/asinh/asinh-specialVals.js:
  • test262/test/built-ins/Math/atanh/atanh-specialVals.js:
  • test262/test/built-ins/Math/cbrt/cbrt-specialValues.js:
  • test262/test/built-ins/Math/cbrt/prop-desc.js:
  • test262/test/built-ins/Math/cosh/cosh-specialVals.js:
  • test262/test/built-ins/Math/expm1/expm1-specialVals.js:
  • test262/test/built-ins/Math/log10/Log10-specialVals.js:
  • test262/test/built-ins/Math/log2/log2-basicTests.js:
  • test262/test/built-ins/Math/prop-desc.js:
  • test262/test/built-ins/Math/sign/sign-specialVals.js:
  • test262/test/built-ins/Math/sinh/sinh-specialVals.js:
  • test262/test/built-ins/Math/tanh/tanh-specialVals.js:
  • test262/test/built-ins/Math/trunc/trunc-sampleTests.js:
  • test262/test/built-ins/Math/trunc/trunc-specialVals.js:
  • test262/test/built-ins/Object/assign/strings-and-symbol-order.js: Added.
  • test262/test/built-ins/Object/keys/property-traps-order-with-proxied-array.js: Added.

(get t):

  • test262/test/built-ins/Reflect/Reflect.js: Removed.
  • test262/test/built-ins/Reflect/prop-desc.js: Added.
  • test262/test/built-ins/Reflect/properties.js: Removed.
  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/internal-regexp-lastindex-not-zero.js: Added.
  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-internal-regexp-is-false.js: Added.
  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-internal-regexp-throws.js: Added.
  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-this-throws.js: Added.

(obj.get Symbol):

  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/length.js: Added.
  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/name.js: Added.
  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/prop-desc.js: Added.
  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/regexpcreate-this-throws.js: Added.

(obj.toString):

  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-get-constructor-throws.js: Added.
  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-get-species-throws.js: Added.

(regexp.get Symbol):

  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-is-not-object-throws.js: Added.
  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-is-undefined.js: Added.
  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-species-is-not-constructor.js: Added.

(callMatchAll):

  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-species-is-null-or-undefined.js: Added.

(TestWithConstructor):

  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-species-throws.js: Added.

(regexp.Symbol.species):

  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor.js: Added.

(regexp.Symbol.species):

  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-regexp-get-global-throws.js: Added.

(regexp.Symbol.species):
(get assert):

  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-regexp-get-unicode-throws.js: Added.

(regexp.Symbol.species):
(get assert):

  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/string-tostring-throws.js: Added.

(obj.valueOf):
(obj.toString):

  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/string-tostring.js: Added.

(obj.toString):

  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-get-flags-throws.js: Added.
  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-get-flags.js: Added.
  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-lastindex-cached.js: Added.

(regexp.lastIndex.valueOf):

  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-not-object-throws.js: Added.

(callMatchAll):

  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-tolength-lastindex-throws.js: Added.

(regexp.lastIndex.valueOf):

  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-tostring-flags-throws.js: Added.

(value.valueOf):
(value.toString):

  • test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-tostring-flags.js: Added.

(value.toString):

  • test262/test/built-ins/RegExpStringIteratorPrototype/Symbol.toStringTag.js: Added.
  • test262/test/built-ins/RegExpStringIteratorPrototype/ancestry.js: Added.
  • test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-call-throws.js: Added.

(RegExp.prototype.exec):

  • test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-get-throws.js: Added.
  • test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-throws.js: Added.

(return.get string_appeared_here):
(RegExp.prototype.exec):

  • test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-tostring-throws.js: Added.

(return.toString):
(RegExp.prototype.exec):

  • test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-tostring.js: Added.

(execResult.get string_appeared_here):
(RegExp.prototype.exec):

  • test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-not-callable.js: Added.

(TestWithRegExpExec):

  • test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec.js: Added.

(callNextWithExecReturnValue.RegExp.prototype.exec):
(callNextWithExecReturnValue):

  • test262/test/built-ins/RegExpStringIteratorPrototype/next/length.js: Added.
  • test262/test/built-ins/RegExpStringIteratorPrototype/next/name.js: Added.
  • test262/test/built-ins/RegExpStringIteratorPrototype/next/next-iteration-global.js: Added.
  • test262/test/built-ins/RegExpStringIteratorPrototype/next/next-iteration.js: Added.
  • test262/test/built-ins/RegExpStringIteratorPrototype/next/next-missing-internal-slots.js: Added.
  • test262/test/built-ins/RegExpStringIteratorPrototype/next/prop-desc.js: Added.
  • test262/test/built-ins/RegExpStringIteratorPrototype/next/regexp-tolength-lastindex-throws.js: Added.

(RegExp.prototype.exec):

  • test262/test/built-ins/RegExpStringIteratorPrototype/next/this-is-not-object-throws.js: Added.

(callNext):

  • test262/test/built-ins/String/prototype/matchAll/length.js: Added.
  • test262/test/built-ins/String/prototype/matchAll/name.js: Added.
  • test262/test/built-ins/String/prototype/matchAll/prop-desc.js: Added.
  • test262/test/built-ins/String/prototype/matchAll/regexp-get-matchAll-throws.js: Added.
  • test262/test/built-ins/String/prototype/matchAll/regexp-is-null.js: Added.
  • test262/test/built-ins/String/prototype/matchAll/regexp-is-undefined.js: Added.
  • test262/test/built-ins/String/prototype/matchAll/regexp-matchAll-invocation.js: Added.

(obj.Symbol.matchAll):

  • test262/test/built-ins/String/prototype/matchAll/regexp-matchAll-throws.js: Added.

(regexp.Symbol.matchAll):

  • test262/test/built-ins/String/prototype/matchAll/regexp-prototype-get-matchAll-throws.js: Added.
  • test262/test/built-ins/String/prototype/matchAll/regexp-prototype-has-no-matchAll.js: Added.
  • test262/test/built-ins/String/prototype/matchAll/regexp-prototype-matchAll-invocation.js: Added.

(RegExp.prototype.Symbol.matchAll):

  • test262/test/built-ins/String/prototype/matchAll/regexp-prototype-matchAll-throws.js: Added.

(RegExp.prototype.Symbol.matchAll):

  • test262/test/built-ins/String/prototype/matchAll/this-val-non-obj-coercible.js: Added.
  • test262/test/built-ins/Symbol/matchAll/cross-realm.js: Added.
  • test262/test/built-ins/Symbol/matchAll/prop-desc.js: Added.
  • test262/test/harness/testTypedArray.js:
  • test262/test/intl402/Array/prototype/toLocaleString/calls-toLocaleString-number-elements.js: Added.
  • test262/test/intl402/Intl/getCanonicalLocales/invalid-tags.js:
  • test262/test/intl402/Locale/constructor-newtarget-undefined.js: Added.
  • test262/test/intl402/Locale/constructor-options-calendar-invalid.js: Added.

(const.invalidCalendarOption.of.invalidCalendarOptions.new.Intl.Locale):

  • test262/test/intl402/Locale/constructor-options-calendar-valid.js: Added.
  • test262/test/intl402/Locale/constructor-options-language-invalid.js: Added.

(const.invalidLanguageOption.of.invalidLanguageOptions.new.Intl.Locale):

  • test262/test/intl402/Locale/constructor-options-language-valid.js: Added.

(toString):

  • test262/test/intl402/Locale/constructor-options-region-invalid.js: Added.

(const.invalidRegionOption.of.invalidRegionOptions.new.Intl.Locale):

  • test262/test/intl402/Locale/constructor-options-region-valid.js: Added.
  • test262/test/intl402/Locale/constructor-options-script-invalid.js: Added.

(const.invalidScriptOption.of.invalidScriptOptions.new.Intl.Locale):

  • test262/test/intl402/Locale/constructor-options-script-valid.js: Added.

(toString):

  • test262/test/intl402/Locale/function-prototype.js: Added.
  • test262/test/intl402/Locale/instance-extensibility.js: Added.
  • test262/test/intl402/Locale/instance.js: Added.
  • test262/test/intl402/Locale/invalid-tag-throws-boolean.js: Added.
  • test262/test/intl402/Locale/invalid-tag-throws-null.js: Added.
  • test262/test/intl402/Locale/invalid-tag-throws-number.js: Added.
  • test262/test/intl402/Locale/invalid-tag-throws-symbol.js: Added.
  • test262/test/intl402/Locale/invalid-tag-throws-undefined.js: Added.
  • test262/test/intl402/Locale/invalid-tag-throws.js: Added.

(const.invalidTag.of.getInvalidLanguageTags):

  • test262/test/intl402/Locale/length.js: Added.
  • test262/test/intl402/Locale/name.js: Added.
  • test262/test/intl402/Locale/prop-desc.js: Added.
  • test262/test/intl402/Locale/prototype/constructor.js: Added.
  • test262/test/intl402/Locale/prototype/maximize/length.js: Added.
  • test262/test/intl402/Locale/prototype/maximize/name.js: Added.
  • test262/test/intl402/Locale/prototype/maximize/prop-desc.js: Added.
  • test262/test/intl402/Locale/prototype/prop-desc.js: Added.
  • test262/test/intl402/Locale/prototype/toStringTag.js: Added.
  • test262/test/intl402/TypedArray/prototype/toLocaleString/calls-toLocaleString-number-elements.js: Added.

(testWithTypedArrayConstructors):

  • test262/test/language/asi/S7.9_A11_T8.js:

(else.x.1): Deleted.

  • test262/test/language/asi/S7.9_A4.js:

(catch):

  • test262/test/language/asi/S7.9_A5.1_T1.js:
  • test262/test/language/asi/S7.9_A5.3_T1.js:
  • test262/test/language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration-nested-in-function.js: Added.

(g.f):
(g):

  • test262/test/language/destructuring/binding/initialization-requires-object-coercible-null.js:
  • test262/test/language/destructuring/binding/initialization-requires-object-coercible-undefined.js:
  • test262/test/language/destructuring/binding/initialization-returns-normal-completion-for-empty-objects.js:
  • test262/test/language/destructuring/binding/syntax/array-elements-with-initializer.js:
  • test262/test/language/destructuring/binding/syntax/array-elements-with-object-patterns.js:
  • test262/test/language/destructuring/binding/syntax/array-elements-without-initializer.js:
  • test262/test/language/destructuring/binding/syntax/array-pattern-with-elisions.js:
  • test262/test/language/destructuring/binding/syntax/array-pattern-with-no-elements.js:
  • test262/test/language/destructuring/binding/syntax/array-rest-elements.js:
  • test262/test/language/destructuring/binding/syntax/object-pattern-with-no-property-list.js:
  • test262/test/language/destructuring/binding/syntax/property-list-bindings-elements.js:
  • test262/test/language/destructuring/binding/syntax/property-list-followed-by-a-single-comma.js:
  • test262/test/language/destructuring/binding/syntax/property-list-single-name-bindings.js:
  • test262/test/language/destructuring/binding/syntax/property-list-with-property-list.js:
  • test262/test/language/destructuring/binding/syntax/recursive-array-and-object-patterns.js:
  • test262/test/language/eval-code/direct/block-decl-eval-source-is-strict-nostrict.js: Copied from JSTests/test262/test/language/eval-code/direct/block-decl-strict-source.js.
  • test262/test/language/eval-code/direct/block-decl-eval-source-is-strict-onlystrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/block-decl-strict-source.js.

(catch):

  • test262/test/language/eval-code/direct/block-decl-onlystrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/block-decl-strict-caller.js.
  • test262/test/language/eval-code/direct/switch-case-decl-eval-source-is-strict-nostrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/switch-case-decl-strict-source.js.
  • test262/test/language/eval-code/direct/switch-case-decl-eval-source-is-strict-onlystrict.js: Copied from JSTests/test262/test/language/eval-code/direct/switch-case-decl-strict-caller.js.

(catch):

  • test262/test/language/eval-code/direct/switch-case-decl-onlystrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/switch-case-decl-strict-caller.js.
  • test262/test/language/eval-code/direct/switch-dflt-decl-eval-source-is-strict-nostrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/switch-dflt-decl-strict-source.js.
  • test262/test/language/eval-code/direct/switch-dflt-decl-eval-source-is-strict-onlystrict.js: Copied from JSTests/test262/test/language/eval-code/direct/switch-dflt-decl-strict-caller.js.

(catch):

  • test262/test/language/eval-code/direct/switch-dflt-decl-onlystrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/switch-dflt-decl-strict-caller.js.
  • test262/test/language/expressions/async-arrow-function/await-as-param-ident-nested-arrow-parameter-position.js: Added.

(async):

  • test262/test/language/expressions/async-arrow-function/await-as-param-nested-arrow-body-position.js: Added.

(async):

  • test262/test/language/expressions/async-arrow-function/await-as-param-nested-arrow-parameter-position.js: Added.

(async.a):

  • test262/test/language/expressions/async-arrow-function/await-as-param-rest-nested-arrow-parameter-position.js: Added.

(async.a):

  • test262/test/language/expressions/async-arrow-function/escaped-async-line-terminator.js: Added.
  • test262/test/language/expressions/async-generator/generator-created-after-decl-inst.js: Added.

(g.async.a):

  • test262/test/language/expressions/class/class-name-ident-await-escaped-module.js: Added.

(C):

  • test262/test/language/expressions/class/class-name-ident-await-escaped.js: Added.

(C):

  • test262/test/language/expressions/class/class-name-ident-await-module.js: Added.

(C):

  • test262/test/language/expressions/class/class-name-ident-await.js: Added.

(C):

  • test262/test/language/expressions/class/class-name-ident-let-escaped.js: Added.

(C):

  • test262/test/language/expressions/class/class-name-ident-let.js: Added.

(C):

  • test262/test/language/expressions/class/class-name-ident-static-escaped.js: Added.

(C):

  • test262/test/language/expressions/class/class-name-ident-static.js: Added.
  • test262/test/language/expressions/class/class-name-ident-yield-escaped.js: Added.

(C):

  • test262/test/language/expressions/class/class-name-ident-yield.js: Added.

(C):

  • test262/test/language/expressions/class/constructor-this-tdz-during-initializers.js: Added.

(Base):
(C):

  • test262/test/language/expressions/class/fields-run-once-on-double-super.js: Added.

(Base):
(C):

  • test262/test/language/expressions/generators/generator-created-after-decl-inst.js: Added.

(g):

  • test262/test/language/expressions/greater-than-or-equal/bigint-and-incomparable-string.js: Added.
  • test262/test/language/expressions/greater-than-or-equal/bigint-and-string.js: Added.
  • test262/test/language/expressions/greater-than/bigint-and-boolean.js: Added.
  • test262/test/language/expressions/greater-than/bigint-and-incomparable-string.js: Added.
  • test262/test/language/expressions/greater-than/bigint-and-string.js: Added.
  • test262/test/language/expressions/less-than-or-equal/bigint-and-incomparable-string.js: Added.
  • test262/test/language/expressions/less-than-or-equal/bigint-and-string.js: Added.
  • test262/test/language/expressions/less-than/bigint-and-boolean.js: Added.
  • test262/test/language/expressions/less-than/bigint-and-incomparable-string.js: Added.
  • test262/test/language/expressions/less-than/bigint-and-string.js: Added.
  • test262/test/language/expressions/object/method-definition/generator-super-prop-param.js:
  • test262/test/language/function-code/block-decl-onlystrict.js: Renamed from JSTests/test262/test/language/function-code/block-decl-strict.js.
  • test262/test/language/function-code/switch-case-decl-onlystrict.js: Renamed from JSTests/test262/test/language/function-code/switch-case-decl-strict.js.
  • test262/test/language/function-code/switch-dflt-decl-onlystrict.js: Renamed from JSTests/test262/test/language/function-code/switch-dflt-decl-strict.js.
  • test262/test/language/line-terminators/S7.3_A2.3.js: Removed.
  • test262/test/language/line-terminators/S7.3_A2.4.js: Removed.
  • test262/test/language/literals/regexp/invalid-optional-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
  • test262/test/language/literals/regexp/invalid-optional-negative-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
  • test262/test/language/literals/regexp/invalid-range-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
  • test262/test/language/literals/regexp/invalid-range-negative-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
  • test262/test/language/literals/regexp/u-invalid-optional-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
  • test262/test/language/literals/regexp/u-invalid-optional-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
  • test262/test/language/literals/regexp/u-invalid-optional-negative-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
  • test262/test/language/literals/regexp/u-invalid-optional-negative-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
  • test262/test/language/literals/regexp/u-invalid-range-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
  • test262/test/language/literals/regexp/u-invalid-range-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
  • test262/test/language/literals/regexp/u-invalid-range-negative-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
  • test262/test/language/literals/regexp/u-invalid-range-negative-lookbehind.js: Renamed from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
  • test262/test/language/literals/string/line-separator-eval.js: Added.
  • test262/test/language/literals/string/line-separator.js: Added.
  • test262/test/language/literals/string/paragraph-separator-eval.js: Added.
  • test262/test/language/literals/string/paragraph-separator.js: Added.
  • test262/test/language/module-code/early-strict-mode.js:
  • test262/test/language/statements/async-generator/generator-created-after-decl-inst.js: Added.

(async.g):

  • test262/test/language/statements/break/S12.8_A8_T1.js:

(catch):

  • test262/test/language/statements/break/S12.8_A8_T2.js:

(catch):

  • test262/test/language/statements/class/class-name-ident-await-escaped-module.js: Added.

(aw):

  • test262/test/language/statements/class/class-name-ident-await-escaped.js: Added.

(aw):

  • test262/test/language/statements/class/class-name-ident-await-module.js: Added.

(await):

  • test262/test/language/statements/class/class-name-ident-await.js: Added.

(await):

  • test262/test/language/statements/class/class-name-ident-let-escaped.js: Added.

(l):

  • test262/test/language/statements/class/class-name-ident-let.js: Added.

(let):

  • test262/test/language/statements/class/class-name-ident-static-escaped.js: Added.

(st):

  • test262/test/language/statements/class/class-name-ident-static.js: Added.
  • test262/test/language/statements/class/class-name-ident-yield-escaped.js: Added.

(yi):

  • test262/test/language/statements/class/class-name-ident-yield.js: Added.

(yield):

  • test262/test/language/statements/continue/S12.7_A8_T1.js:

(catch):

  • test262/test/language/statements/continue/S12.7_A8_T2.js:

(catch):

  • test262/test/language/statements/generators/generator-created-after-decl-inst.js: Added.

(g):

  • test262/test/language/statements/try/early-catch-duplicates.js:
  • test262/test/language/statements/try/early-catch-function.js: Added.

(f.catch.e):
(f):

  • test262/test/language/statements/try/early-catch-lex.js:
  • test262/test/language/statements/try/early-catch-var.js:
  • test262/test262-Revision.txt:
3:23 PM Changeset in webkit [231665] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

DFG CFA should pick the right time to inject OSR entry data
https://bugs.webkit.org/show_bug.cgi?id=185530

Reviewed by Saam Barati.

Previously, we would do a bonus run of CFA to inject OSR entry data. This patch makes us inject
OSR entry data as part of the normal flow of CFA, which reduces the total number of CFA
reexecutions while minimizing the likelihood that we have CFA execute constants in paths that
would eventually LUB to non-constant.

This looks like almost a 1% speed-up on SunSpider-CompileTime. All of the logic for preventing
execution over constants is for V8Spider-CompileTime/regexp, which would otherwise do a lot of
useless regexp/string execution in the compiler.

  • dfg/DFGBlockSet.h:

(JSC::DFG::BlockSet::remove):

  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::run):
(JSC::DFG::CFAPhase::injectOSR):
(JSC::DFG::CFAPhase::performBlockCFA):

3:06 PM Changeset in webkit [231664] by Megan Gardner
  • 5 edits in trunk/Source/WebKit

Remove Unused Chinese/Japanese Reanalyze code
https://bugs.webkit.org/show_bug.cgi?id=185529

Reviewed by Wenson Hsieh.

The code for this has actually been completely removed from UIKit. This is unreachable
dead code that should be removed if just for cleanliness.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView canPerformActionForWebView:withSender:]):
(-[WKContentView _reanalyzeForWebView:]): Deleted.

3:02 PM Changeset in webkit [231663] by Chris Dumez
  • 3 edits in trunk

[iOS] Apps that are not visible may not get suspended if they trigger page loads while in the background
https://bugs.webkit.org/show_bug.cgi?id=185318

Reviewed by Geoffrey Garen.

Whenever there is a page load going on, we take a background process assertion to delay process
suspension until this load completes. However, there is also a 3 seconds grace period after
a load is complete to allow the app to trigger a new load shortly after. This grace period was
introduced to support use cases where a visible app does loads in an offscreen view. However,
it can be abused by apps running in the background as they could trigger new page loads while
in the background to delay process suspension. This patch tightens the policy so that only
apps that are currently visible get to use this grace period. Apps that are in the background
get to finish their current load and will then get suspended.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::didChangeIsLoading):

2:56 PM Changeset in webkit [231662] by Wenson Hsieh
  • 5 edits in trunk/LayoutTests

[Extra zoom mode] fast/visual-viewport/extrazoom/layout-viewport-after-scrolling-and-resizing.html sometimes fails
https://bugs.webkit.org/show_bug.cgi?id=185517
<rdar://problem/40112983>

Reviewed by Tim Horton.

Adjusts some existing layout tests — see below for more detail.

  • fast/css/extrazoom/viewport-units-shrink-to-fit.html:

Remove calls to wait for the next presentation update which are no longer necessary after r231606.

  • fast/viewport/extrazoom/viewport-change-min-device-width.html:

Wait for the next visible content rect update, when the unobscured content rect is guaranteed to be up to date.

  • fast/visual-viewport/extrazoom/layout-viewport-after-scrolling-and-resizing.html:

Wait for the next visible content rect update rather than the next presentation update (i.e. remote layer tree
commit). This is because the layout viewport's custom fixed position rect is propagated in the visible content
rect update flow, and ensuring a presentation update is insufficient to guarantee that the layout viewport is up
to date.

  • resources/ui-helper.js:

(window.UIHelper.ensureVisibleContentRectUpdate):

Add a new test helper to wait for the next presentation update.

2:46 PM Changeset in webkit [231661] by Michael Catanzaro
  • 5 edits in trunk

Fix some -Wstring-op-truncation warnings
https://bugs.webkit.org/show_bug.cgi?id=185496

Reviewed by Alex Christensen.

Source/ThirdParty:

Disable this warning when building gtest.

  • gtest/CMakeLists.txt:

Tools:

We have an off-by-one in the use of strncpy. The strings would not be null-terminated if
the input was too long. Ensure the buffers are zero-initialized so we don't need to manually
set the last bucket to NUL.

  • TestWebKitAPI/Tests/WTF/AtomicString.cpp:

(TestWebKitAPI::testAtomicStringNumber):

  • TestWebKitAPI/Tests/WTF/WTFString.cpp:

(TestWebKitAPI::testStringNumberFixedPrecision):
(TestWebKitAPI::testStringNumberFixedWidth):
(TestWebKitAPI::testStringNumber):

2:31 PM Changeset in webkit [231660] by fpizlo@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

InPlaceAbstractState::beginBasicBlock shouldn't copy all m_variables every time
https://bugs.webkit.org/show_bug.cgi?id=185452

Reviewed by Michael Saboff.

We were spending a lot of time in beginBasicBlock() just copying the state of all variables
from the block head to InPlaceAbstractState::m_variables. It is necessary for
InPlaceAbstractState to have its own copy since we need to mutate it separately from
block->valuesAtHead. But most variables are untouched by most basic blocks, so this was a lot
of superfluous work.

This change adds a bitvector called m_activeVariables that tracks which variables have been
copied. We lazily copy the variables on first use. Variables that were never copied also have
a simplified merging path, which just needs to consider if the variable got clobbered between
head and tail.

This is a 1.5% speed-up on SunSpider-CompileTime and a 1.7% speed-up on V8Spider-CompileTime.

  • bytecode/Operands.h:

(JSC::Operands::argumentIndex const):
(JSC::Operands::localIndex const):
(JSC::Operands::argument):
(JSC::Operands::argument const):
(JSC::Operands::local):
(JSC::Operands::local const):
(JSC::Operands::operandIndex const):

  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::fastForwardFromTo):

  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::performForwardCFA):

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::beginBasicBlock):
(JSC::DFG::InPlaceAbstractState::variablesForDebugging):
(JSC::DFG::InPlaceAbstractState::activateAllVariables):
(JSC::DFG::InPlaceAbstractState::endBasicBlock):
(JSC::DFG::InPlaceAbstractState::activateVariable):
(JSC::DFG::InPlaceAbstractState::mergeStateAtTail): Deleted.

  • dfg/DFGInPlaceAbstractState.h:

(JSC::DFG::InPlaceAbstractState::variableAt):
(JSC::DFG::InPlaceAbstractState::operand):
(JSC::DFG::InPlaceAbstractState::local):
(JSC::DFG::InPlaceAbstractState::argument):
(JSC::DFG::InPlaceAbstractState::activateVariableIfNecessary):
(JSC::DFG::InPlaceAbstractState::variablesForDebugging): Deleted.

1:59 PM Changeset in webkit [231659] by Matt Baker
  • 9 edits in trunk

Web Inspector: ASSERT_NOT_REACHED in PageDebuggerAgent::didAddEventListener when page adds attribute event listener
https://bugs.webkit.org/show_bug.cgi?id=181580
<rdar://problem/36461309>

Reviewed by Brian Burg.

Source/WebCore:

EventTarget should pass newly added EventListeners to InspectorInstrumentation,
instead of PageDebuggerAgent assuming the last item in the EventListenerVector
is the most recently added listener. This assumption does not hold when
the new listener replaces an existing listener.

  • dom/EventTarget.cpp:

(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::setAttributeEventListener):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didAddEventListenerImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::didAddEventListener):

  • inspector/agents/page/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::didAddEventListener):

  • inspector/agents/page/PageDebuggerAgent.h:

LayoutTests:

Add new test covering the case where adding an attribute event listener
causes an existing attribute event listener to be replaced.

  • inspector/debugger/async-stack-trace-expected.txt:
  • inspector/debugger/async-stack-trace.html:
1:54 PM Changeset in webkit [231658] by Fujii Hironori
  • 5 edits in trunk/Tools

[Win][MiniBrowser] Add a separate WndProc for the layered window
https://bugs.webkit.org/show_bug.cgi?id=185460

Reviewed by Brent Fulgham.

All WK1 related code should be moved into MiniBrowser for the
preparation of Bug 184770.

The layered window was using WndProc of the main window. The
layered window is specific only for WK1. the main window will be
shared among WK1 and WK2.

This change add a new WndProc for the layer window.

  • MiniBrowser/win/Common.cpp:

(WndProc): Removed code for the layered windows.
(subclassForLayeredWindow): Moved into MiniBrowser.cpp.

  • MiniBrowser/win/MiniBrowser.cpp:

(MiniBrowser::prepareViews): Removed the fourth argument viewHwnd.
(viewWndProc): New WndProc for the layered windows.
(MiniBrowser::subclassForLayeredWindow): Moved from Common.cpp.

  • MiniBrowser/win/MiniBrowser.h:

(MiniBrowser::hwnd):

  • MiniBrowser/win/WinMain.cpp:

(wWinMain): Added m_viewWnd.

1:43 PM Changeset in webkit [231657] by jmarcell@apple.com
  • 3 edits in branches/safari-606.1.17-branch/Source/WebKitLegacy/win

Cherry-pick r231635. rdar://problem/39664620

REGRESSION(r231622) [Win] Crashes for null dereference of prefsPrivate in WebView::notifyPreferencesChanged
https://bugs.webkit.org/show_bug.cgi?id=185505

Unreviewed serious crash fix

Windows port crashes soon since Bug 184996.

  • WebPreferences.cpp: (WebPreferences::QueryInterface): Added IID_IWebPreferencesPrivate7.
  • WebPreferences.h: Inherit IWebPreferencesPrivate7 instead of IWebPreferencesPrivate6.

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

1:43 PM Changeset in webkit [231656] by jmarcell@apple.com
  • 2 edits in branches/safari-606.1.17-branch/Tools

Cherry-pick r231625. rdar://problem/39664620

Unreviewed Windows build fix after r231622.

  • DumpRenderTree/win/DumpRenderTree.cpp: (enableExperimentalFeatures):

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

1:43 PM Changeset in webkit [231655] by jmarcell@apple.com
  • 37 edits
    13 adds in branches/safari-606.1.17-branch

Cherry-pick r231622. rdar://problem/39664620

Add initial support for 'Cross-Origin-Options' HTTP response header
https://bugs.webkit.org/show_bug.cgi?id=184996
<rdar://problem/39664620>

Reviewed by Geoff Garen.

Source/WebCore:

Add initial support for 'Cross-Origin-Options' HTTP response header behind an experimental
feature flag, on by default. When the HTTP server services this HTTP response header for a
main resource, we'll set these options on the corresponding Document. This will impact the
behavior of the Document's associated Window API when cross-origin.

The HTTP header has 3 possible values:

  • allow: This is the default. Regular cross-origin Window API is available.
  • allow-postmessage: Only postMessage() is available on a cross-origin window, trying to access anything else will throw a SecurityError.
  • deny: Trying to do anything with a cross-origin window will throw a SecurityError.

The header has no effect when accessing same origin windows.

Note that on cross-origin access from Window A to Window B, we check the cross-origin
options for both Window A and Window B and use the lowest common denominator as effective
cross-origin options for the access. So if Window A has 'Cross-Origin-Options: deny' and
tries to call postMessage() on Window B which has 'Cross-Origin-Options: allow-postmessage',
we will throw a SecurityError. This is because Window A's more restrictive options (deny)
apply.

Tests: http/wpt/cross-origin-options/allow-postmessage-from-deny.html

http/wpt/cross-origin-options/allow-postmessage.html
http/wpt/cross-origin-options/cross-origin-options-header.html

  • bindings/js/JSDOMBindingSecurity.cpp: (WebCore::BindingSecurity::shouldAllowAccessToDOMWindowGivenMinimumCrossOriginOptions):
  • bindings/js/JSDOMBindingSecurity.h:
  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::effectiveCrossOriginOptionsForAccess): (WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess): (WebCore::JSDOMWindow::getOwnPropertySlot): (WebCore::JSDOMWindow::getOwnPropertySlotByIndex): (WebCore::addCrossOriginWindowPropertyNames): (WebCore::addScopedChildrenIndexes): (WebCore::addCrossOriginWindowOwnPropertyNames): (WebCore::JSDOMWindow::getOwnPropertyNames):
  • bindings/js/JSDOMWindowCustom.h:
  • bindings/js/JSRemoteDOMWindowCustom.cpp: (WebCore::JSRemoteDOMWindow::getOwnPropertySlot): (WebCore::JSRemoteDOMWindow::getOwnPropertySlotByIndex): (WebCore::JSRemoteDOMWindow::getOwnPropertyNames):
  • bindings/scripts/CodeGeneratorJS.pm: (GenerateAttributeGetterBodyDefinition): (GetCrossOriginsOptionsFromExtendedAttributeValue): (GenerateAttributeSetterBodyDefinition): (GenerateOperationBodyDefinition):
  • bindings/scripts/IDLAttributes.json:
  • dom/Document.cpp: (WebCore::Document::setCrossOriginOptions):
  • dom/Document.h: (WebCore::Document::crossOriginOptions const):
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::didBeginDocument):
  • page/AbstractDOMWindow.cpp: (WebCore::AbstractDOMWindow::AbstractDOMWindow):
  • page/AbstractDOMWindow.h: (WebCore::AbstractDOMWindow::crossOriginOptions): (WebCore::AbstractDOMWindow::setCrossOriginOptions):
  • page/DOMWindow.cpp: (WebCore::DOMWindow::DOMWindow): (WebCore::DOMWindow::didSecureTransitionTo):
  • page/DOMWindow.idl:
  • page/Frame.h:
  • page/RemoteDOMWindow.cpp: (WebCore::RemoteDOMWindow::RemoteDOMWindow):
  • page/RemoteDOMWindow.h:
  • page/Settings.yaml:
  • platform/network/HTTPHeaderNames.in:
  • platform/network/HTTPParsers.cpp: (WebCore::parseCrossOriginOptionsHeader):
  • platform/network/HTTPParsers.h:

Source/WebKit:

  • Shared/WebPreferences.yaml: Add this as an experimental feature, on by default.
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::frameBecameRemote): Make sure we pass the cross-origin options from the local Window to the remote one when transitioning.

LayoutTests:

Add layout test coverage.

  • http/wpt/cross-origin-options/allow-postmessage-expected.txt: Added.
  • http/wpt/cross-origin-options/allow-postmessage-from-deny-expected.txt: Added.
  • http/wpt/cross-origin-options/allow-postmessage-from-deny.html: Added.
  • http/wpt/cross-origin-options/allow-postmessage-from-deny.html.headers: Added.
  • http/wpt/cross-origin-options/allow-postmessage.html: Added.
  • http/wpt/cross-origin-options/cross-origin-options-header-expected.txt: Added.
  • http/wpt/cross-origin-options/cross-origin-options-header.html: Added.
  • http/wpt/cross-origin-options/resources/cross-origin-options-allow-postmessage-pong.html: Added.
  • http/wpt/cross-origin-options/resources/cross-origin-options-allow-postmessage-pong.html.headers: Added.
  • http/wpt/cross-origin-options/resources/serve-cross-origin-options-header.py: Added.

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

1:42 PM Changeset in webkit [231654] by Chris Dumez
  • 15 edits in trunk

'Cross-Origin-Options header implementation follow-up
https://bugs.webkit.org/show_bug.cgi?id=185520

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • dom/Document.cpp:
  • dom/Document.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::didBeginDocument):
Using isNull() check is sufficient here as the header parsing
function will do the right thing when passed the empty string.
Also set the options directly on the window instead of the
document. The window is guaranteed to have been constructed
by then because didBeginDocument() is called DocumentWriter::begin()
which calls Document::createDOMWindow() or Document::takeDOMWindowFrom().

  • page/AbstractDOMWindow.cpp:

(WebCore::AbstractDOMWindow::AbstractDOMWindow):

  • page/AbstractDOMWindow.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::DOMWindow):
(WebCore::DOMWindow::didSecureTransitionTo):

  • page/RemoteDOMWindow.cpp:

(WebCore::RemoteDOMWindow::RemoteDOMWindow):

  • page/RemoteDOMWindow.h:

CrossOriginOptions are now stored only on the Window, not the Document.

  • platform/network/HTTPParsers.cpp:

(WebCore::parseCrossOriginOptionsHeader):
Drop strippedHeader local variable as it is not strictly needed.

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::frameBecameRemote):

LayoutTests:

Extend layout testing to cover mixed case, multiple values and no value.

  • http/wpt/cross-origin-options/cross-origin-options-header-expected.txt:
  • http/wpt/cross-origin-options/cross-origin-options-header.html:
12:38 PM Changeset in webkit [231653] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Drop-down Control borders missing.
https://bugs.webkit.org/show_bug.cgi?id=185500
<rdar://problem/40093461>

Reviewed by Brent Fulgham.

Open sandbox for reading of some files in temp folder.

  • WebProcess/com.apple.WebProcess.sb.in:
12:11 PM Changeset in webkit [231652] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Support --verbose in run-javascriptcore-tests
https://bugs.webkit.org/show_bug.cgi?id=185492

Patch by Stephan Szabo <stephan.szabo@sony.com> on 2018-05-10
Reviewed by Daniel Bates.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

11:54 AM Changeset in webkit [231651] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Fix the build after r231393
https://bugs.webkit.org/show_bug.cgi?id=185519
<rdar://problem/40131741>

Reviewed by Simon Fraser.

Source/WebCore:

  • Configurations/WebCore.xcconfig:

Source/WTF:

  • wtf/Platform.h:
11:48 AM Changeset in webkit [231650] by Michael Catanzaro
  • 14 edits in releases/WebKitGTK/webkit-2.20

[WPE][Stable] Remove unusable JavaScript APIs

There is no JSC API provided with WPE 2.20. We don't want to expose the old C API, because
that is going to be obsolete in 2.22. And backporting the new GObject API to this branch
would be inappropriate.

This means that we need to remove WebKitJavascriptResult.

Reviewed by Carlos Alberto Lopez Perez.

11:36 AM Changeset in webkit [231649] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebKit

[MediaStream, iOS] Don't check authorizationStatusForMediaType when using mock capture devices
https://bugs.webkit.org/show_bug.cgi?id=185516
<rdar://problem/36328191>

Reviewed by Youenn Fablet.

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): Don't check
+[AVCaptureDevice authorizationStatusForMediaType:] when using mock capture devices.

11:31 AM Changeset in webkit [231648] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

REGRESSION(r230323): UIProcess needs to notify WebContent process of Accessibility setting changes
https://bugs.webkit.org/show_bug.cgi?id=185515
<rdar://problem/39627764>

Reviewed by Chris Fleizach.

The UIProcess needs to register for relevant Accessibility preference updates so that it can notify the
WebContent processes that screen properties have changed.

This is represented by NSWorkspaceAccessibilityDisplayOptionsDidChangeNotification.

Tested manually with the Accessibility preferences pane.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::registerNotificationObservers): Add notification observer. When the notification
is received, call 'screenPropertiesStateChanged' to message the information to the WebContent processes.
(WebKit::WebProcessPool::unregisterNotificationObservers): Clean up observer.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::screenPropertiesStateChanged): Added helper function.

  • UIProcess/WebProcessPool.h:
10:58 AM Changeset in webkit [231647] by Ross Kirsling
  • 3 edits in trunk/LayoutTests

[WinCairo] Unreviewed gardening.

  • platform/wincairo/TestExpectations:
  • platform/wincairo/editing/deleting/delete-emoji-expected.txt:
10:43 AM Changeset in webkit [231646] by jmarcell@apple.com
  • 6 edits in branches/safari-605-branch

Cherry-pick r226610. rdar://problem/39987479

Add WKNavigationDelegate SPI exposing WebProcess crash reason
https://bugs.webkit.org/show_bug.cgi?id=181410
<rdar://problem/36167199>

Reviewed by Wenson Hsieh.

Source/WebKit:

We exposed it in the C SPI.

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::setNavigationDelegate): (WebKit::toWKProcessTerminationReason): (WebKit::NavigationState::NavigationClient::processDidTerminate):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm: (-[CrashReasonDelegate _webView:webContentProcessDidTerminateWithReason:]): (TEST):

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

10:43 AM Changeset in webkit [231645] by jmarcell@apple.com
  • 11 edits
    1 add in branches/safari-605-branch

Apply patch. rdar://problem/39987479

Load hangs if the WebProcess fails to launch https://bugs.webkit.org/show_bug.cgi?id=185225 <rdar://problem/38249058>

Reviewed by Geoff Garen.

Source/WebKit:

When a process fails to launch, ChildProcessProxy::didFinishLaunching() gets called with an
invalid connection identifier. While NetworkProcessProxy::didFinishLaunching() properly deals with
this situation, WebProcessProxy::didFinishLaunching() does not. As a result, we do not attempt to
relaunch the process, we do not notify the client and WebPageProxy::m_isValid stays true.

This patch thus updates WebProcessProxy::didFinishLaunching() to check if the connection identifier
is valid and treats it as a crash. As a result, the WebPageProxies properly reset their state and
the client gets notified of the crash so that it can attempt to reload.

  • UIProcess/API/Cocoa/WKProcessPool.mm: (-[WKProcessPool _makeNextWebProcessLaunchFailForTesting]):
  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::ProcessLauncher::launchProcess): Add SPI to make the next WebProcess launch fail, for the purpose of API testing.
  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::getLaunchOptions): (WebKit::WebProcessProxy::didClose): (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch): (WebKit::WebProcessProxy::didFinishLaunching):
  • UIProcess/WebProcessProxy.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm: Added. (-[CrashOnStartNavigationDelegate _webView:webContentProcessDidTerminateWithReason:]): (-[CrashOnStartNavigationDelegate webView:didFinishNavigation:]): (-[CrashRecoveryScriptMessageHandler userContentController:didReceiveScriptMessage:]): (TEST):

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

10:37 AM Changeset in webkit [231644] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

test262/Runner.pm: --failing-files uses results file not expectations
https://bugs.webkit.org/show_bug.cgi?id=185395

Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-10
Reviewed by Michael Saboff.

--failing-files arg now uses results file to find failing tests
to rerun. It will look in the test262-results directory from whereever
the script is run, or a results.yaml file can be supplied via command
line argument.
--expectations arg added for suppling expectation file.

  • Scripts/test262/Runner.pm:

(processCLI):
(main):
(loadImportFile):
(findAllFailing):

10:02 AM Changeset in webkit [231643] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

Log missing cues correctly
https://bugs.webkit.org/show_bug.cgi?id=185499
<rdar://problem/40113821>

Reviewed by Daniel Bates.

No new tests, tested manually.

  • html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::removeGenericCue): Log the cue we searched for, not
the NULL cue.

9:46 AM Changeset in webkit [231642] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LFC] Implement height computation for non-replaced inflow elements.
https://bugs.webkit.org/show_bug.cgi?id=185474

Reviewed by Antti Koivisto.

Initial implementation. Does not cover all the cases.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeHeight const):

  • layout/FormattingContext.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layout const):
(WebCore::Layout::BlockFormattingContext::computeInFlowHeight const):
(WebCore::Layout::BlockFormattingContext::computeInFlowNonReplacedHeight const):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::collapsedMarginBottomFromLastChild):
(WebCore::Layout::BlockMarginCollapse::isMarginBottomCollapsedWithParent):
(WebCore::Layout::BlockMarginCollapse::isMarginTopCollapsedWithParentMarginBottom):
(WebCore::Layout::isMarginBottomCollapsedWithParent): Deleted.

  • layout/blockformatting/BlockMarginCollapse.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeInFlowHeight const):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::isReplaced const):

  • layout/layouttree/LayoutBox.h:
9:16 AM Changeset in webkit [231641] by jmarcell@apple.com
  • 2 edits in branches/safari-606.1.17-branch/Source/WebKit

Apply patch. rdar://problem/40093461

8:21 AM Changeset in webkit [231640] by Michael Catanzaro
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Unreviewed, install WebKitHitTestResult.h

Not sure what I was thinking yesterday, but I removed this required
header. I did not notice because I validated the release using dyz,
which does not use our headers at all.

8:21 AM Changeset in webkit [231639] by Michael Catanzaro
  • 6 edits in releases/WebKitGTK/webkit-2.20/Source

Unreviewed, silence a couple more build warnings on the stable branch

7:50 AM Changeset in webkit [231638] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[GTK] Implement ImageBuffer::toBGRAData
https://bugs.webkit.org/show_bug.cgi?id=185511

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-10
Reviewed by Michael Catanzaro.

This was never implemented but will be required for the MediaStream API
tests.

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::toBGRAData const):

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::toBGRAData const):

  • platform/graphics/gtk/ImageBufferGtk.cpp:

(WebCore::ImageBuffer::toBGRAData const):

1:37 AM Changeset in webkit [231637] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] Add support for settings cookies policy and storage type in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=185506

Reviewed by Philippe Normand.

Useful for testing and debugging.

  • MiniBrowser/gtk/main.c:

(main):

12:41 AM Changeset in webkit [231636] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[EME][GStreamer] Add a handler for GStreamer protection event
https://bugs.webkit.org/show_bug.cgi?id=185245

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-05-10
Reviewed by Xabier Rodriguez-Calvar.

Qtdemux sends the protection event when encountered a new PSSH box (encrypted content).

The Decryptor is moved from AppendPipeline to PlaybackPipeline (see https://bugs.webkit.org/show_bug.cgi?id=181855),
thus the protection event is no longer handled because the Decryptor is not in the same pipeline as qtdemux.

AppendPipeline: httpsrc-->qtdemux-->appsink
PlaybackPipeline: appsrc-->parser--> decryptor-->decoder-->sink

This patch attaches a probe to the sink pad of the appsink in the appendPipeline in order to
catch and manage the protection event.

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
(WebCore::appendPipelineAppsinkPadEventProbe):

  • platform/graphics/gstreamer/mse/AppendPipeline.h:

(WebCore::AppendPipeline::playerPrivate):

12:15 AM Changeset in webkit [231635] by Fujii Hironori
  • 3 edits in trunk/Source/WebKitLegacy/win

REGRESSION(r231622) [Win] Crashes for null dereference of prefsPrivate in WebView::notifyPreferencesChanged
https://bugs.webkit.org/show_bug.cgi?id=185505

Unreviewed serious crash fix

Windows port crashes soon since Bug 184996.

  • WebPreferences.cpp:

(WebPreferences::QueryInterface): Added IID_IWebPreferencesPrivate7.

  • WebPreferences.h: Inherit IWebPreferencesPrivate7 instead of IWebPreferencesPrivate6.
12:11 AM Changeset in webkit [231634] by calvaris@igalia.com
  • 3 edits in trunk/LayoutTests

[wpe] update the TestExpectations for encrypted-media after some fixes
https://bugs.webkit.org/show_bug.cgi?id=185277

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-05-10
Reviewed by Xabier Rodriguez-Calvar.

Once the decryptor moved from AppendPipeline to Playbackpipeline and the patches 185242, 185244
are fixed, the encrypted-media WPT LayoutTests will no longer crash and some one will pass.

  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multisession.https-expected.txt:
12:11 AM Changeset in webkit [231633] by calvaris@igalia.com
  • 6 edits in trunk/Source/WebCore

[EME][GStreamer] Move the decryptor from AppendPipeline to PlaybackPipeline.
https://bugs.webkit.org/show_bug.cgi?id=181855

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-05-10
Reviewed by Xabier Rodriguez-Calvar.

The goal of this move is to handle the limitation of SVP (Secure Video Path) memory size.

When the decryptor is in the AppendPipeline and we use SVP, we buffer in MediaSource queue
the decrypted GstBuffers that are in SVP memory.
This behavior cause an out-of-memory error, because we are limited in SVP memory size.

By moving the decryptor in PlaybackPipeline, we avoid to buffer the decrypted GstBuffers
which use the SVP memory and we buffer the encrypted GstBuffers that are in system memory.

This new architecture also allows to start the buffering before obtaining the DRM license
and it makes easier to manage dynamic change of the license or Key.

The decryptor is auto plugged by GStreamer playbin in PlaybackPipeline.

SVP: Secure Video Path also named trusted or protected video path, it is a memory which is
protected by a hardware access control engine, it is not accessible to other unauthorised
software or hardware components.

Tests:

media/encrypted-media/clearKey/clearKey-cenc-audio-playback-mse.html
media/encrypted-media/clearKey/clearKey-cenc-video-playback-mse.html

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:

(webkitMediaCommonEncryptionDecryptSinkEventHandler):

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::dumpAppendState):
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::handleNeedContextSyncMessage):
(WebCore::AppendPipeline::handleAppsrcNeedDataReceived):
(WebCore::AppendPipeline::setAppendState):
(WebCore::AppendPipeline::parseDemuxerSrcPadCaps):
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread):
(WebCore::AppendPipeline::disconnectDemuxerSrcPadFromAppsinkFromAnyThread):
(WebCore::appendPipelineElementMessageCallback): Deleted.
(WebCore::AppendPipeline::handleElementMessage): Deleted.
(WebCore::AppendPipeline::dispatchPendingDecryptionStructure): Deleted.
(WebCore::AppendPipeline::dispatchDecryptionStructure): Deleted.

  • platform/graphics/gstreamer/mse/AppendPipeline.h:
  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::attemptToDecryptWithInstance):

  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:

May 9, 2018:

11:52 PM Changeset in webkit [231632] by Carlos Garcia Campos
  • 16 edits
    1 add in trunk

WebDriver: implement advance user interactions
https://bugs.webkit.org/show_bug.cgi?id=174616

Reviewed by Brian Burg.

Source/WebDriver:

Add initial implementation of action commands.

  • Actions.h: Added.

(WebDriver::Action::Action):

  • CommandResult.cpp:

(WebDriver::CommandResult::CommandResult): Handle MoveTargetOutOfBounds error.
(WebDriver::CommandResult::httpStatusCode const): Ditto.
(WebDriver::CommandResult::errorString const): Ditto.

  • CommandResult.h:
  • Session.cpp:

(WebDriver::Session::webElementIdentifier): Helper to return the web element id.
(WebDriver::Session::createElement): Use webElementIdentifier().
(WebDriver::Session::extractElementID): Ditto.
(WebDriver::Session::virtualKeyForKeySequence): Add more kay codes includes in the spec.
(WebDriver::mouseButtonForAutomation): Helper to get the mouse button string to pass to automation.
(WebDriver::Session::performMouseInteraction): Use mouseButtonForAutomation().
(WebDriver::Session::getOrCreateInputSource): Ensure an input source for given id and add it to the active input
sources.
(WebDriver::Session::inputSourceState): Return the current input source state for the given id.
(WebDriver::Session::computeInViewCenterPointOfElements): Get the in view center point for the list of elements given.
(WebDriver::automationSourceType): Helper to get the input source type to pass to automation.
(WebDriver::Session::performActions): Process the list of action by tick and generate a list of states to pass
to automation.
(WebDriver::Session::releaseActions): Reset input sources and state table and send a message to automation.

  • Session.h:
  • WebDriverService.cpp:

(WebDriver::processPauseAction):
(WebDriver::processNullAction):
(WebDriver::processKeyAction):
(WebDriver::actionMouseButton):
(WebDriver::processPointerAction):
(WebDriver::processPointerParameters):
(WebDriver::processInputActionSequence):
(WebDriver::WebDriverService::performActions):
(WebDriver::WebDriverService::releaseActions):

  • WebDriverService.h:

Source/WebKit:

Handle origin in case of mouse move transitions.

  • UIProcess/Automation/Automation.json: Add MouseMoveOrigin enum and pass it as parameter of InputSourceState

together with optional node handle. Also pass the frame handle to performInteractionSequence command to find the
node in the current browsing context.

  • UIProcess/Automation/SimulatedInputDispatcher.cpp:

(WebKit::SimulatedInputKeyFrame::keyFrameToResetInputSources): Ensure we reset the location.
(WebKit::SimulatedInputDispatcher::resolveLocation): Helper to resolve destination location based on current
location and mouse move origin.
(WebKit::SimulatedInputDispatcher::transitionInputSourceToState): Use resolveLocation() in mouse transitions.
(WebKit::SimulatedInputDispatcher::run): Receive and save the frame ID.
(WebKit::SimulatedInputDispatcher::finishDispatching): Reset the frame ID.

  • UIProcess/Automation/SimulatedInputDispatcher.h:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::computeElementLayout): Use even numbers for the callback ID to not conflict with
viewportInViewCenterPointOfElement() callbacks.
(WebKit::WebAutomationSession::didComputeElementLayout): Handle computeElementLayout() or
viewportInViewCenterPointOfElement() requests by calling the right callback depending on whether the ID is odd
or even number.
(WebKit::WebAutomationSession::viewportInViewCenterPointOfElement): Send ComputeElementLayout message to the
WebProcess using odd numbers for the callback ID to not conflict with computeElementLayout() callbacks.
(WebKit::WebAutomationSession::performInteractionSequence): Handle the mouse origin and element handle.
(WebKit::WebAutomationSession::cancelInteractionSequence): Pass the frame ID to the input dispatcher.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/WebAutomationSessionMacros.h:

WebDriverTests:

Update test expectations.

11:44 PM Changeset in webkit [231631] by commit-queue@webkit.org
  • 2 edits in trunk

[GTK] gtk-doc installation subdir duplicated
https://bugs.webkit.org/show_bug.cgi?id=185468

Patch by Jan Alexander Steffens <jan.steffens@gmail.com> on 2018-05-09
Reviewed by Carlos Garcia Campos.

The GTK docs are installed into a duplicated subdir,
e.g. /usr/share/doc/gtk-doc/html/webkit2gtk-4.0/webkit2gtk-4.0.

  • Source/PlatformGTK.cmake:
11:39 PM Changeset in webkit [231630] by rniwa@webkit.org
  • 66 edits in trunk/LayoutTests

Markup.dump should dump selection focus & anchor at the root node
https://bugs.webkit.org/show_bug.cgi?id=185497

Reviewed by Wenson Hsieh.

Added the support for logging selection end points (anchor & focus) for when they're
anchored against the root node passed to Markup.dump.

  • editing/deleting/delete-across-editable-content-boundaries-1-expected.txt:
  • editing/deleting/delete-image-followed-by-two-br-expected.txt:
  • editing/deleting/delete-start-block-expected.txt:
  • editing/deleting/delete-word-from-unstyled-div-expected.txt:
  • editing/deleting/deleting-relative-positioned-special-element-expected.txt:
  • editing/deleting/smart-delete-across-editable-boundaries-2-expected.txt:
  • editing/deleting/smart-delete-across-editable-boundaries-expected.txt:
  • editing/execCommand/break-non-editable-blockquote-expected.txt:
  • editing/execCommand/format-block-table-expected.txt:
  • editing/execCommand/indent-img-twice-expected.txt:
  • editing/execCommand/remove-format-textdecoration-in-iframe-expected.txt:
  • editing/inserting/5607069-2-expected.txt:
  • editing/inserting/5994480-2-expected.txt:
  • editing/inserting/insert-list-in-table-cell-03-expected.txt:
  • editing/inserting/insert-list-in-table-cell-04-expected.txt:
  • editing/inserting/insert-list-in-table-cell-07-expected.txt:
  • editing/inserting/insert-list-in-table-cell-08-expected.txt:
  • editing/inserting/insert-table-in-paragraph-crash-expected.txt:
  • editing/pasteboard/copy-null-characters-expected.txt:
  • editing/pasteboard/copy-paste-content-starting-and-ending-canvas-expected.txt:
  • editing/pasteboard/paste-blockquote-and-paragraph-break-expected.txt:
  • editing/pasteboard/paste-table-with-unrendered-text-nodes-expected.txt:
  • editing/pasteboard/pasting-into-h6-should-not-nest-h6-expected.txt:
  • editing/pasteboard/pasting-into-p-should-not-nest-p-expected.txt:
  • editing/style/apply-style-atomic-expected.txt:
  • fast/events/5056619-expected.txt:
  • platform/ios/editing/deleting/delete-emoji-1-expected.txt:
  • platform/ios/editing/deleting/delete-emoji-2-expected.txt:
  • platform/ios/editing/deleting/delete-emoji-3-expected.txt:
  • platform/ios/editing/deleting/delete-emoji-4-expected.txt:
  • platform/ios/editing/deleting/delete-emoji-5-expected.txt:
  • platform/ios/editing/deleting/delete-emoji-6-expected.txt:
  • platform/ios/editing/deleting/delete-emoji-7-expected.txt:
  • platform/ios/editing/deleting/delete-emoji-8-expected.txt:
  • platform/ios/editing/deleting/delete-emoji-9-expected.txt:
  • platform/ios/editing/deleting/delete-emoji-expected.txt:
  • platform/mac-sierra/editing/deleting/delete-emoji-1-expected.txt:
  • platform/mac-sierra/editing/deleting/delete-emoji-2-expected.txt:
  • platform/mac-sierra/editing/deleting/delete-emoji-3-expected.txt:
  • platform/mac-sierra/editing/deleting/delete-emoji-4-expected.txt:
  • platform/mac-sierra/editing/deleting/delete-emoji-5-expected.txt:
  • platform/mac-sierra/editing/deleting/delete-emoji-6-expected.txt:
  • platform/mac-sierra/editing/deleting/delete-emoji-7-expected.txt:
  • platform/mac-sierra/editing/deleting/delete-emoji-8-expected.txt:
  • platform/mac-sierra/editing/deleting/delete-emoji-9-expected.txt:
  • platform/mac/editing/deleting/delete-emoji-1-expected.txt:
  • platform/mac/editing/deleting/delete-emoji-2-expected.txt:
  • platform/mac/editing/deleting/delete-emoji-3-expected.txt:
  • platform/mac/editing/deleting/delete-emoji-4-expected.txt:
  • platform/mac/editing/deleting/delete-emoji-5-expected.txt:
  • platform/mac/editing/deleting/delete-emoji-6-expected.txt:
  • platform/mac/editing/deleting/delete-emoji-7-expected.txt:
  • platform/mac/editing/deleting/delete-emoji-8-expected.txt:
  • platform/mac/editing/deleting/delete-emoji-9-expected.txt:
  • platform/mac/editing/deleting/delete-emoji-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-1-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-2-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-3-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-4-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-5-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-6-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-7-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-8-expected.txt:
  • platform/wincairo/editing/deleting/delete-emoji-9-expected.txt:
  • resources/dump-as-markup.js:

(Markup): Added the logging of selection markers to the root node.ß∑
(Markup._get):
(Markup._getSelectionMarkerWithIdentation): Extracted out of Markup._get.

9:25 PM Changeset in webkit [231629] by Caio Lima
  • 5 edits
    3 adds in trunk

[ESNext][BigInt] Implement support for "==" operation
https://bugs.webkit.org/show_bug.cgi?id=184474

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/big-int-equals-basic.js: Added.
  • stress/big-int-equals-to-primitive-precedence.js: Added.
  • stress/big-int-equals-wrapped-value.js: Added.

Source/JavaScriptCore:

This patch is implementing support of BigInt for equals operator
following the spec semantics[1].

[1] - https://tc39.github.io/proposal-bigint/#sec-abstract-equality-comparison

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::parseInt):
(JSC::JSBigInt::stringToBigInt):
(JSC::JSBigInt::toString):
(JSC::JSBigInt::setDigit):
(JSC::JSBigInt::equalsToNumber):
(JSC::JSBigInt::compareToDouble):

  • runtime/JSBigInt.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::equalSlowCaseInline):

7:07 PM Changeset in webkit [231628] by n_wang@apple.com
  • 4 edits
    3 adds in trunk

AX: VoiceOver iframe scrolling focus jumping bug
https://bugs.webkit.org/show_bug.cgi?id=176615
<rdar://problem/34333067>

Reviewed by Chris Fleizach.

Source/WebCore:

Scrolling to make elements visible is not working correctly for elements inside an
offscreen iframe. Fixed it by using RenderLayer::scrollRectToVisible() to handle
scrolling more properly.

Test: accessibility/scroll-to-make-visible-iframe-offscreen.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::scrollToMakeVisible const):

LayoutTests:

  • accessibility/resources/iframe.html: Added.
  • accessibility/scroll-to-make-visible-iframe-offscreen-expected.txt: Added.
  • accessibility/scroll-to-make-visible-iframe-offscreen.html: Added.
  • platform/win/TestExpectations:
6:49 PM Changeset in webkit [231627] by jdiggs@igalia.com
  • 3 edits
    2 adds in trunk

AX: accessibleNameForNode should simplify whitespace when using innerText
https://bugs.webkit.org/show_bug.cgi?id=185498

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/text-alternative-calculation-from-unrendered-table.html

Call simplifyWhiteSpace() before returning the innerText value.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::accessibleNameForNode):

LayoutTests:

  • accessibility/text-alternative-calculation-from-unrendered-table-expected.txt: Added.
  • accessibility/text-alternative-calculation-from-unrendered-table.html: Added.
6:25 PM Changeset in webkit [231626] by Michael Catanzaro
  • 1 copy in releases/WPE WebKit/webkit-2.19.92

WPE WebKit 2.19.92

6:23 PM Changeset in webkit [231625] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed Windows build fix after r231622.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(enableExperimentalFeatures):

6:23 PM Changeset in webkit [231624] by Michael Catanzaro
  • 5 edits
    1 add in releases/WebKitGTK/webkit-2.20

Unreviewed. Update OptionsWPE and NEWS for 2.19.92 release.

6:10 PM Changeset in webkit [231623] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Remove the unused HAVE_OS_ACTIVITY
https://bugs.webkit.org/show_bug.cgi?id=185501

Reviewed by Wenson Hsieh.

  • config.h:
5:33 PM Changeset in webkit [231622] by Chris Dumez
  • 37 edits
    13 adds in trunk

Add initial support for 'Cross-Origin-Options' HTTP response header
https://bugs.webkit.org/show_bug.cgi?id=184996
<rdar://problem/39664620>

Reviewed by Geoff Garen.

Source/WebCore:

Add initial support for 'Cross-Origin-Options' HTTP response header behind an experimental
feature flag, on by default. When the HTTP server services this HTTP response header for a
main resource, we'll set these options on the corresponding Document. This will impact the
behavior of the Document's associated Window API when cross-origin.

The HTTP header has 3 possible values:

  • allow: This is the default. Regular cross-origin Window API is available.
  • allow-postmessage: Only postMessage() is available on a cross-origin window, trying to access anything else will throw a SecurityError.
  • deny: Trying to do anything with a cross-origin window will throw a SecurityError.

The header has no effect when accessing same origin windows.

Note that on cross-origin access from Window A to Window B, we check the cross-origin
options for both Window A and Window B and use the lowest common denominator as effective
cross-origin options for the access. So if Window A has 'Cross-Origin-Options: deny' and
tries to call postMessage() on Window B which has 'Cross-Origin-Options: allow-postmessage',
we will throw a SecurityError. This is because Window A's more restrictive options (deny)
apply.

Tests: http/wpt/cross-origin-options/allow-postmessage-from-deny.html

http/wpt/cross-origin-options/allow-postmessage.html
http/wpt/cross-origin-options/cross-origin-options-header.html

  • bindings/js/JSDOMBindingSecurity.cpp:

(WebCore::BindingSecurity::shouldAllowAccessToDOMWindowGivenMinimumCrossOriginOptions):

  • bindings/js/JSDOMBindingSecurity.h:
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::effectiveCrossOriginOptionsForAccess):
(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
(WebCore::addCrossOriginWindowPropertyNames):
(WebCore::addScopedChildrenIndexes):
(WebCore::addCrossOriginWindowOwnPropertyNames):
(WebCore::JSDOMWindow::getOwnPropertyNames):

  • bindings/js/JSDOMWindowCustom.h:
  • bindings/js/JSRemoteDOMWindowCustom.cpp:

(WebCore::JSRemoteDOMWindow::getOwnPropertySlot):
(WebCore::JSRemoteDOMWindow::getOwnPropertySlotByIndex):
(WebCore::JSRemoteDOMWindow::getOwnPropertyNames):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateAttributeGetterBodyDefinition):
(GetCrossOriginsOptionsFromExtendedAttributeValue):
(GenerateAttributeSetterBodyDefinition):
(GenerateOperationBodyDefinition):

  • bindings/scripts/IDLAttributes.json:
  • dom/Document.cpp:

(WebCore::Document::setCrossOriginOptions):

  • dom/Document.h:

(WebCore::Document::crossOriginOptions const):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::didBeginDocument):

  • page/AbstractDOMWindow.cpp:

(WebCore::AbstractDOMWindow::AbstractDOMWindow):

  • page/AbstractDOMWindow.h:

(WebCore::AbstractDOMWindow::crossOriginOptions):
(WebCore::AbstractDOMWindow::setCrossOriginOptions):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::DOMWindow):
(WebCore::DOMWindow::didSecureTransitionTo):

  • page/DOMWindow.idl:
  • page/Frame.h:
  • page/RemoteDOMWindow.cpp:

(WebCore::RemoteDOMWindow::RemoteDOMWindow):

  • page/RemoteDOMWindow.h:
  • page/Settings.yaml:
  • platform/network/HTTPHeaderNames.in:
  • platform/network/HTTPParsers.cpp:

(WebCore::parseCrossOriginOptionsHeader):

  • platform/network/HTTPParsers.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:

Add this as an experimental feature, on by default.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::frameBecameRemote):
Make sure we pass the cross-origin options from the local Window
to the remote one when transitioning.

LayoutTests:

Add layout test coverage.

  • http/wpt/cross-origin-options/allow-postmessage-expected.txt: Added.
  • http/wpt/cross-origin-options/allow-postmessage-from-deny-expected.txt: Added.
  • http/wpt/cross-origin-options/allow-postmessage-from-deny.html: Added.
  • http/wpt/cross-origin-options/allow-postmessage-from-deny.html.headers: Added.
  • http/wpt/cross-origin-options/allow-postmessage.html: Added.
  • http/wpt/cross-origin-options/cross-origin-options-header-expected.txt: Added.
  • http/wpt/cross-origin-options/cross-origin-options-header.html: Added.
  • http/wpt/cross-origin-options/resources/cross-origin-options-allow-postmessage-pong.html: Added.
  • http/wpt/cross-origin-options/resources/cross-origin-options-allow-postmessage-pong.html.headers: Added.
  • http/wpt/cross-origin-options/resources/serve-cross-origin-options-header.py: Added.
5:08 PM Changeset in webkit [231621] by rniwa@webkit.org
  • 4 edits
    2 adds in trunk

Release assert in TreeScopeOrderedMap::remove via HTMLImageElement::removedFromAncestor
https://bugs.webkit.org/show_bug.cgi?id=185493

Reviewed by Brent Fulgham.

Source/WebCore:

Fixed the bug that HTMLImageElement::removedFromAncestor and HTMLMapElement::removedFromAncestor
were calling removeImageElementByUsemap on the document instead of the shadow tree from which it was removed.

Test: fast/images/imagemap-in-shadow-tree-removed.html

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::removedFromAncestor):

  • html/HTMLMapElement.cpp:

(WebCore::HTMLMapElement::removedFromAncestor):

LayoutTests:

Added a regression test.

  • fast/images/imagemap-in-shadow-tree-removed-expected.txt: Added.
  • fast/images/imagemap-in-shadow-tree-removed.html: Added.
5:06 PM Changeset in webkit [231620] by jdiggs@igalia.com
  • 3 edits
    3 adds in trunk

AX: Hidden nodes which are not directly referenced should not participate name/description from content
https://bugs.webkit.org/show_bug.cgi?id=185478

Reviewed by Chris Fleizach.

Source/WebCore:

Add a check to AccessibilityNodeObject::textUnderElement() and return early
if the node is hidden, not referenced by aria-labelledby or aria-describedby,
not an HTMLLabelElement, and not fallback content for an HTMLCanvasElement.

Test: accessibility/text-alternative-calculation-hidden-nodes.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::textUnderElement const):

LayoutTests:

  • accessibility/text-alternative-calculation-hidden-nodes-expected.txt: Added.
  • accessibility/text-alternative-calculation-hidden-nodes.html: Added.
  • platform/gtk/accessibility/text-alternative-calculation-hidden-nodes-expected.txt: Added.
4:59 PM Changeset in webkit [231619] by Michael Catanzaro
  • 39 edits
    2 adds in releases/WebKitGTK/webkit-2.20

Merge r231565 - [WPE] Build cleanly with GCC 8 and ICU 60
https://bugs.webkit.org/show_bug.cgi?id=185462

Reviewed by Carlos Alberto Lopez Perez.

Source/JavaScriptCore:

  • API/glib/JSCClass.cpp: Silence many -Wcast-function-type warnings.

(jsc_class_add_constructor):
(jsc_class_add_method):

  • API/glib/JSCValue.cpp: Silence many -Wcast-function-type warnings.

(jsc_value_object_define_property_accessor):
(jsc_value_new_function):

  • CMakeLists.txt: Build BuiltinNames.cpp with -fno-var-tracking-assignments. This was a

problem with GCC 7 too, but might as well fix it now.

  • assembler/ProbeContext.h:

(JSC::Probe::CPUState::gpr const): Silence a -Wclass-memaccess warning.
(JSC::Probe::CPUState::spr const): Ditto. Assume std::remove_const is safe to clobber.

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::isRepresentableAs): Silence -Wfallthrough warning.

  • builtins/BuiltinNames.cpp:

(JSC::BuiltinNames::BuiltinNames): Moved from BuiltinNames.h so we can use a special flag.

  • builtins/BuiltinNames.h:

(JSC::BuiltinNames::BuiltinNames): Moved to BuiltinNames.cpp.

  • dfg/DFGDoubleFormatState.h:

(JSC::DFG::mergeDoubleFormatStates): Silence -Wfallthrough warnings.

  • heap/MarkedBlockInlines.h:

(JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType): Silence -Wfallthrough warnings.

  • runtime/ConfigFile.cpp:

(JSC::ConfigFile::canonicalizePaths): Here GCC found a genuine mistake, strncat is called
with the wrong length parameter and the result is not null-terminated. Also, silence a
-Wstringop-truncation warning as we intentionally truncate filenames that exceed PATH_MAX.

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::partTypeString): Avoid an ICU deprecation warning.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init): We were unconditionally running some BigInt code by accident.
(JSC::JSGlobalObject::visitChildren): Probably a serious bug? Fixed.

Source/ThirdParty:

  • xdgmime/CMakeLists.txt: Silence -Wno-cast-function-type. I'm not fighting xdg-mime.

Source/WebCore:

  • PlatformGTK.cmake: Include directories are in the wrong place.
  • accessibility/AXObjectCache.cpp: Silence -Wclass-memaccess problems and leave warnings.

(WebCore::AXObjectCache::startOrEndTextMarkerDataForRange):
(WebCore::AXObjectCache::textMarkerDataForCharacterOffset):
(WebCore::AXObjectCache::textMarkerDataForVisiblePosition):
(WebCore::AXObjectCache::textMarkerDataForFirstPositionInTextControl):

  • css/CSSFontFace.cpp: Silence -Wfallthrough

(WebCore::CSSFontFace::fontLoadTiming const):

  • css/CSSSelectorList.cpp: Silence -Wclass-memaccess, this one is intentional.

(WebCore::CSSSelectorList::adoptSelectorVector):

  • editing/TextIterator.cpp: Silence ICU deprecation warnings.
  • platform/Length.h:

(WebCore::Length::operator=): More -Wclass-memaccess, looks benign.

  • platform/graphics/Gradient.cpp:

(WebCore::Gradient::hash const): -Wclass-memaccess again. Leave a warning.

  • platform/graphics/SurrogatePairAwareTextIterator.cpp: Silence ICU deprecation warnings.
  • platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:

(WebCore::FontCascade::fontForCombiningCharacterSequence const): Silence ICU deprecation.

  • platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:

(WebCore::FontCustomPlatformData::FontCustomPlatformData): Silence -Wcast-function-type.

  • platform/graphics/freetype/SimpleFontDataFreeType.cpp:

(WebCore::Font::canRenderCombiningCharacterSequence const): Silence ICU deprecation.

  • platform/graphics/gstreamer/GstAllocatorFastMalloc.cpp:

(gstAllocatorFastMallocMemUnmap): Fix -Wcast-function-type.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::updateTracks): Fix bad printf.
(WebCore::MediaPlayerPrivateGStreamer::enableTrack): Another bad printf.
(WebCore::findHLSQueue): Fix -Wcast-function-type.

  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:

(webKitMediaClearKeyDecryptorDecrypt): Fix another bad printf.

  • platform/network/soup/SocketStreamHandleImplSoup.cpp: Silence -Wcast-function-type.

(WebCore::SocketStreamHandleImpl::beginWaitingForSocketWritability):

  • platform/text/TextEncoding.cpp: Silence ICU deprecration.

Source/WebKit:

  • Platform/IPC/glib/GSocketMonitor.cpp:

(IPC::GSocketMonitor::start): Silence -Wcast-function-type warning.

  • Shared/API/glib/WebKitContextMenu.cpp:

(webkit_context_menu_new_with_items): Ditto.

Source/WTF:

  • wtf/HashTable.h:

(WTF::HashTableBucketInitializer<true>::initialize): Since -Wclass-memaccess warning. This
is probably safe enough, since it's for an empty bucket.

  • wtf/StdLibExtras.h:

(WTF::bitwise_cast): Silence -Wclass-memaccess as we use type traits to ensure safety here.

  • wtf/Vector.h: Ditto, all uses are safe.
  • wtf/glib/WTFGType.h: Silence -Wcast-function-type.

Tools:

  • TestWebKitAPI/CMakeLists.txt: Fix weird build failure, we were missing a directory. Not

sure why this was never noticed until now or why the bots are OK.

  • gtk/jhbuild.modules: Add upstream patch to avoid warnings inside G_DEFINE_TYPE.
  • gtk/patches/glib-cast-function-type.patch: Added.
  • wpe/jhbuild.modules: Add upstream patch to avoid warnings inside G_DEFINE_TYPE.
  • wpe/patches/glib-cast-function-type.patch: Added.
4:59 PM Changeset in webkit [231618] by Michael Catanzaro
  • 28 edits in releases/WebKitGTK/webkit-2.20

Merge r231042 - [WPE] Build and link against latest WPEBackend and WPEBackend-fdo
https://bugs.webkit.org/show_bug.cgi?id=184643

Reviewed by Žan Doberšek.

.:

Update find modules to include the API versions.

  • Source/cmake/FindWPEBackend-fdo.cmake:
  • Source/cmake/FindWPEBackend.cmake:

Source/WebCore:

Adapt to single-header WPE includes.

  • platform/graphics/egl/GLContextEGLWPE.cpp:
  • platform/graphics/wpe/PlatformDisplayWPE.cpp:
  • platform/wpe/PlatformPasteboardWPE.cpp:

Source/WebKit:

Adapt to single-header WPE includes.

Null-initialize padding to silence -Wmissing-field-initializers. (Yuck.)

  • Shared/NativeWebTouchEvent.h:
  • Shared/wpe/WebEventFactory.cpp:
  • UIProcess/API/glib/WebKitPrivate.cpp:
  • UIProcess/API/wpe/CompositingManagerProxy.cpp:
  • UIProcess/API/wpe/ScrollGestureController.h:
  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::m_backend):

  • UIProcess/API/wpe/WebKitWebViewBackend.h:
  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:
  • WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.cpp:

(WebKit::AcceleratedSurfaceWPE::initialize):

Tools:

Add missing INCLUDE_DIRS in many places.

Adapt to single-header WPE includes.

Null-initialize padding to silence -Wmissing-field-initializers. (Yuck.)

  • TestWebKitAPI/PlatformWPE.cmake:
  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewWebBackend):

  • TestWebKitAPI/glib/PlatformWPE.cmake:
  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/PlatformWPE.cmake:
  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:
  • wpe/HeadlessViewBackend/CMakeLists.txt:
  • wpe/HeadlessViewBackend/HeadlessViewBackend.cpp:
  • wpe/HeadlessViewBackend/HeadlessViewBackend.h:
  • wpe/jhbuild.modules:
4:59 PM Changeset in webkit [231617] by Michael Catanzaro
  • 16 edits in releases/WebKitGTK/webkit-2.20

Merge r231004 - [WPE] Remove deprecated functions and properties from the API
https://bugs.webkit.org/show_bug.cgi?id=179295

Reviewed by Žan Doberšek.

Source/WebKit:

  • UIProcess/API/glib/WebKitCookieManager.cpp:
  • UIProcess/API/glib/WebKitFormSubmissionRequest.cpp:
  • UIProcess/API/glib/WebKitNavigationPolicyDecision.cpp:

(webkitNavigationPolicyDecisionGetProperty):
(webkit_navigation_policy_decision_class_init):

  • UIProcess/API/glib/WebKitSettings.cpp:

(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextGetProperty):
(webkitWebContextSetProperty):
(webkit_web_context_class_init):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_class_init):
(webkitWebViewHandleAuthenticationChallenge):
(webkitWebViewWebProcessTerminated):

  • UIProcess/API/wpe/WebKitCookieManager.h:
  • UIProcess/API/wpe/WebKitFormSubmissionRequest.h:
  • UIProcess/API/wpe/WebKitNavigationPolicyDecision.h:
  • UIProcess/API/wpe/WebKitSettings.h:
  • UIProcess/API/wpe/WebKitWebContext.h:

Tools:

  • TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:

(testWebViewAuthenticationStorage): Disable this test for now. It will require some effort
to rewrite LoadTrackingTest to not require the web view at construction time.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:

(testWebKitSettings): Don't test private browsing setting, which is gone.

  • TestWebKitAPI/glib/CMakeLists.txt: Disable TestCookieManager for now.
4:59 PM Changeset in webkit [231616] by Michael Catanzaro
  • 4 edits
    3 adds in releases/WebKitGTK/webkit-2.20

Merge r230661 - [WPE] Install files needed for WebKitWebExtensions
https://bugs.webkit.org/show_bug.cgi?id=179915

Reviewed by Žan Doberšek.

.:

  • Source/cmake/OptionsWPE.cmake:

Source/WebKit:

  • PlatformWPE.cmake: Install pkg-config file, injected bundle, and API headers.
  • UIProcess/API/glib/WebKitWebContext.cpp: Load the injected bundle when installed.
  • wpe/wpe-web-extension.pc.in: Added.
4:59 PM Changeset in webkit [231615] by Michael Catanzaro
  • 5 edits in releases/WebKitGTK/webkit-2.20/Source

Merge r230585 - [WPE] Move libWPEWebInspectorResources.so to pkglibdir
https://bugs.webkit.org/show_bug.cgi?id=184379

Reviewed by Žan Doberšek.

Source/JavaScriptCore:

Load the module from the new location.

  • PlatformWPE.cmake:
  • inspector/remote/glib/RemoteInspectorUtils.cpp:

(Inspector::backendCommands):

Source/WebKit:

This is important to allow parallel installation.

  • PlatformWPE.cmake:
4:59 PM Changeset in webkit [231614] by Michael Catanzaro
  • 5 edits in releases/WebKitGTK/webkit-2.20/Source

Merge r230576 - [WPE] Improve include hierarchy
https://bugs.webkit.org/show_bug.cgi?id=184376

Reviewed by Žan Doberšek.

Source/JavaScriptCore:

Install JSC headers under /usr/include/wpe-webkit-0.1/jsc instead of
/usr/include/wpe-0.1/WPE/jsc.

  • PlatformWPE.cmake:

Source/WebKit:

Install our headers under /usr/include/wpe-webkit-0.1/wpe instead of
/usr/include/wpe-0.1/WPE/wpe. Too much WPE, not enough WebKit!

  • PlatformWPE.cmake:
  • wpe/wpe-webkit.pc.in:
4:59 PM Changeset in webkit [231613] by Michael Catanzaro
  • 4 edits
    1 delete in releases/WebKitGTK/webkit-2.20

Merge r230949 - [WPE] Remove libgbm dependency
https://bugs.webkit.org/show_bug.cgi?id=184906

Reviewed by Carlos Garcia Campos.

.:

Remove the libgbm CMake search module. It's not necessary anymore
after r230562.

  • Source/cmake/FindLibGBM.cmake: Removed.

Tools:

Stop searching for libgbm, using its compiler flags for the
HeadlessViewBackend compilation and linking against the .so object.
This is not necessary anymore after r230562 switched to a different
backend implementation for testing.

  • wpe/HeadlessViewBackend/CMakeLists.txt:
  • wpe/install-dependencies:
4:59 PM Changeset in webkit [231612] by Michael Catanzaro
  • 13 edits
    1 move in releases/WebKitGTK/webkit-2.20

Merge r230562 - [WPE] Switch testing process to using WPEBackend-fdo
https://bugs.webkit.org/show_bug.cgi?id=184357

Reviewed by Carlos Alberto Lopez Perez.

.:

  • Source/cmake/FindWPEBackend-fdo.cmake: Renamed from Source/cmake/FindWPEBackend-mesa.cmake.

Tools:

Switch WPE testing to using the WPEBackend-fdo implementation that
depends on the WL_bind_wayland_display EGL extension, as defined under
the freedesktop.org project.
https://cgit.freedesktop.org/mesa/mesa/tree/docs/specs/WL_bind_wayland_display.spec

HeadlessViewBackend is refactored to use the WPEBackend-fdo API, but
otherwise is not changed in functionality.

Unit tests now have to unconditionally use HeadlessViewBackend as a
wpe_view_backend provider, since WPEBackend-fdo does not provide a
default wpe_view_backend implementation. Unit tests covering that are
adjusted to instead use a mock wpe_view_backend interface.

  • Scripts/webkitdirs.pm:

(builtDylibPathForName): Fix the libWPEWebKit.so name to also include
the API version that was added in r230449.

  • Scripts/webkitpy/port/waylanddriver.py:

(WaylandDriver._setup_environ_for_test): Export EGL_PLATFORM=wayland.

  • Scripts/webkitpy/port/wpe.py:

(WPEPort._driver_class): Use WaylandDriver by default.

  • TestWebKitAPI/PlatformWebView.h:

(): Deleted.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewWebBackend):

  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::createWebViewBackend):

  • TestWebKitAPI/wpe/PlatformWebViewWPE.cpp:

(TestWebKitAPI::PlatformWebView::~PlatformWebView):
(TestWebKitAPI::PlatformWebView::initialize):

  • wpe/HeadlessViewBackend/CMakeLists.txt:
  • wpe/HeadlessViewBackend/HeadlessViewBackend.cpp:

(getEGLDisplay):
(HeadlessViewBackend::HeadlessViewBackend):
(HeadlessViewBackend::~HeadlessViewBackend):
(HeadlessViewBackend::backend const):
(HeadlessViewBackend::createSnapshot):
(HeadlessViewBackend::performUpdate):
(HeadlessViewBackend::makeCurrent): Deleted.

  • wpe/HeadlessViewBackend/HeadlessViewBackend.h:
  • wpe/jhbuild.modules: Module name cleanup. Dyz version is bumped.
4:58 PM Changeset in webkit [231611] by Michael Catanzaro
  • 8 edits in releases/WebKitGTK/webkit-2.20

Merge r230557 - [WPE] Make WebKitWebViewBackend object mandatory for webkit_web_view_new*() constructors
https://bugs.webkit.org/show_bug.cgi?id=184513

Reviewed by Michael Catanzaro.

Source/WebKit:

webkit_web_view_new*() constructors should always expect a non-null
WebKitWebViewBackend object, forcing the user to specify how the
wpe_view_backend object is managed for the WebKitWebView that's being
created.

webkitWebViewBackendCreateDefault() and the default
_WebKitWebViewBackend() constructor are removed. WPE-specific
webkit_web_view_new*() entrypoints are updated to bail if the passed-in
WebKitWebViewBackend object is null. Documentation is updated
accordingly.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewConstructed):

  • UIProcess/API/wpe/WebKitWebViewBackend.cpp:

(webkitWebViewBackendCreateDefault): Deleted.

  • UIProcess/API/wpe/WebKitWebViewBackendPrivate.h:
  • UIProcess/API/wpe/WebKitWebViewWPE.cpp:

(webkit_web_view_new):
(webkit_web_view_new_with_context):
(webkit_web_view_new_with_related_view):
(webkit_web_view_new_with_settings):
(webkit_web_view_new_with_user_content_manager):

Tools:

Update the WPE-specific testWebViewWebBackend() test case, removing the
test that passes a null WebKitWebViewBackend object to the
webkit_web_view_new() call.

Helper createWebViewBackend() that's called via Test::createWebView()
variations is updated to, in case of not using the headless backend,
return a WebKitWebViewBackend instance that wraps around a
default wpe_view_backend object.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewWebBackend):

  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::createWebViewBackend):

4:58 PM Changeset in webkit [231610] by Michael Catanzaro
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore

Merge r230450 - [WPE] Don't install JSC C API headers
https://bugs.webkit.org/show_bug.cgi?id=184375

Reviewed by Žan Doberšek.

None of the functions declared in these headers are exported in WPE. Use the new jsc API
instead.

  • PlatformWPE.cmake:
4:58 PM Changeset in webkit [231609] by Michael Catanzaro
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r230449 - [WPE] Add API version to library soname and pkg-config files
https://bugs.webkit.org/show_bug.cgi?id=180608

Reviewed by Žan Doberšek.

  • PlatformWPE.cmake:
  • wpe/wpe-webkit.pc.in:
4:58 PM Changeset in webkit [231608] by Michael Catanzaro
  • 8 edits
    1 move
    1 delete in releases/WebKitGTK/webkit-2.20

Merge r230429 - [WPE] Use GNU install directories
https://bugs.webkit.org/show_bug.cgi?id=184377

Reviewed by Carlos Garcia Campos.

.:

Notably, this means all the CMake arguments that distributors use to customize install
directories (-DCMAKE_INSTALL_*DIR) will no longer be ignored.

  • Source/cmake/OptionsCommon.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebKit:

Merge ProcessExecutablePathGtk and ProcessExecutablePathWPE into ProcessExecutablePathGLib.
WPE will now load its secondary processes from PKGLIBEXECDIR, like WebKitGTK+.

  • PlatformWPE.cmake:
  • Shared/glib/ProcessExecutablePathGLib.cpp: Renamed from Source/WebKit/Shared/gtk/ProcessExecutablePathGtk.cpp.

(WebKit::getExecutablePath):
(WebKit::findWebKitProcess):
(WebKit::executablePathOfWebProcess):
(WebKit::executablePathOfPluginProcess):
(WebKit::executablePathOfNetworkProcess):
(WebKit::executablePathOfStorageProcess):

  • Shared/wpe/ProcessExecutablePathWPE.cpp: Removed.
  • SourcesGTK.txt:
  • SourcesWPE.txt:
4:31 PM Changeset in webkit [231607] by fpizlo@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

Speed up AbstractInterpreter::executeEdges
https://bugs.webkit.org/show_bug.cgi?id=185457

Reviewed by Saam Barati.

This patch started out with the desire to make executeEdges() faster by making filtering faster.
However, when I studied the disassembly, I found that there are many opportunities for
improvement and I implemented all of them:

  • Filtering itself now has an inline fast path for when the filtering didn't change the value or for non-cells.


  • Edge execution doesn't fast-forward anything if the filtering fast path would have succeeded, since fast-forwarding is only interesting for cells and only if we have a clobbered value.


  • Similarly, edge verification doesn't need to fast-forward in the common case.


  • A bunch of stuff related to Graph::doToChildren is now inlined properly.


  • The edge doesn't even have to be considered for execution if it's UntypedUse.


That last bit was the trickiest. We had gotten into a bad habit of using SpecFullNumber in the
abstract interpreter. It's not correct to use SpecFullNumber in the abstract interpreter, because
it means proving that the value could either be formatted as a double (with impure NaN values),
or as any JSValue, or as an Int52. There is no value that could possibly hold all of those
states. This "worked" before because UntypedUse would filter this down to SpecBytecodeNumber. To
make it work again, I needed to fix all of those uses of SpecFullNumber. In the future, we need
to be careful about picking either SpecFullDouble (if returning a DoubleRep) or
SpecBytecodeNumber (if returning a JSValueRep).

But that fix revealed an amazing timeout in
stress/keep-checks-when-converting-to-lazy-js-constant-in-strength-reduction.js. We were getting
stuck in an OSR loop (baseline->DFG->FTL->baseline), all involving the same bytecode, without
ever realizing that we should jettison something. The problem was with how
triggerReoptimizationNow was getting the optimizedCodeBlock. It was trying to guess it by using
baselineCodeBlock->replacement(), but that's wrong for FTL-for-OSR-entry code blocks.

This is a 1% improvement in V8Spider-CompileTime.

  • bytecode/ExitKind.cpp:

(JSC::exitKindMayJettison):

  • dfg/DFGAbstractInterpreter.h:

(JSC::DFG::AbstractInterpreter::filterEdgeByUse):
(JSC::DFG::AbstractInterpreter::filterByType): Deleted.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreterExecuteEdgesFunc::AbstractInterpreterExecuteEdgesFunc):
(JSC::DFG::AbstractInterpreterExecuteEdgesFunc::operator() const):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEdges):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::filterByType):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::verifyEdge):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeDoubleUnaryOpEffects):

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::filterSlow):
(JSC::DFG::AbstractValue::fastForwardToAndFilterSlow):

  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::filter):
(JSC::DFG::AbstractValue::fastForwardToAndFilter):
(JSC::DFG::AbstractValue::fastForwardToAndFilterUnproven):
(JSC::DFG::AbstractValue::makeTop):

  • dfg/DFGAtTailAbstractState.h:

(JSC::DFG::AtTailAbstractState::fastForward):
(JSC::DFG::AtTailAbstractState::forNodeWithoutFastForward):
(JSC::DFG::AtTailAbstractState::fastForwardAndFilterUnproven):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::doToChildren):

  • dfg/DFGInPlaceAbstractState.h:

(JSC::DFG::InPlaceAbstractState::fastForward):
(JSC::DFG::InPlaceAbstractState::fastForwardAndFilterUnproven):
(JSC::DFG::InPlaceAbstractState::forNodeWithoutFastForward):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::executeOSRExit):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::handleExitCounts):

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
4:15 PM Changeset in webkit [231606] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[Extra zoom mode] fast/viewport/extrazoom/viewport-change-min-device-width.html sometimes fails
https://bugs.webkit.org/show_bug.cgi?id=185490
<rdar://problem/40097629>

Reviewed by Tim Horton.

This test is currently flaky due to incorrect logic when computing the unobscured content rect, in the slice of
time after a frame load has been committed, and before the first visible content rect update from the UI process
after the frame load has been committed.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::viewportConfigurationChanged):

In the case where !m_hasReceivedVisibleContentRectsAfterDidCommitLoad, we try to set the unobscured content size
to be the view size divided by the initial scale. However, in extra zoom mode, ViewportConfiguration's
minimumLayoutSize() is the layout size, which is larger than the size of the view by default, so dividing this
by the initial scale yields a bogus value. Instead, use viewLayoutSize() instead.

(WebKit::WebPage::updateViewportSizeForCSSViewportUnits):

We also try to divide the view size by the initial scale when computing the effective viewport size for vw and
vh. Additionally, fix the misleading name of a variable (largestUnobscuredRect) that stores a size.

4:13 PM Changeset in webkit [231605] by youenn@apple.com
  • 3 edits in trunk/LayoutTests

LayoutTests/http/tests/appcache/abort-cache-onchecking-manifest-404.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=185494

Reviewed by Geoffrey Garen.

Return the 404 to the manifest request after a delay so that aborting is done first.

  • http/tests/appcache/abort-cache-onchecking-manifest-404-expected.txt:
  • http/tests/appcache/abort-cache-onchecking-manifest-404.html:
4:02 PM Changeset in webkit [231604] by eric.carlson@apple.com
  • 9 edits in trunk/Source/WebCore

Update MediaSession to use release logging
https://bugs.webkit.org/show_bug.cgi?id=185376
<rdar://problem/40022203>

Reviewed by Youenn Fablet.

No new tests, tested manually.

  • Modules/mediastream/MediaStream.h: hostingDocument() doesn't need to return a const Document.
  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::hostingDocument const): Ditto.

  • Modules/webaudio/AudioContext.h:
  • html/HTMLMediaElement.h: Ditto.
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::MediaElementSession):
(WebCore::MediaElementSession::addBehaviorRestriction):
(WebCore::MediaElementSession::removeBehaviorRestriction):
(WebCore::MediaElementSession::dataLoadingPermitted const):
(WebCore::MediaElementSession::fullscreenPermitted const):
(WebCore::MediaElementSession::pageAllowsDataLoading const):
(WebCore::MediaElementSession::pageAllowsPlaybackAfterResuming const):
(WebCore::MediaElementSession::canShowControlsManager const):
(WebCore::MediaElementSession::showPlaybackTargetPicker):
(WebCore::MediaElementSession::hasWirelessPlaybackTargets const):
(WebCore::MediaElementSession::wirelessVideoPlaybackDisabled const):
(WebCore::MediaElementSession::setWirelessVideoPlaybackDisabled):
(WebCore::MediaElementSession::setHasPlaybackTargetAvailabilityListeners):
(WebCore::MediaElementSession::externalOutputDeviceAvailableDidChange):
(WebCore::MediaElementSession::setShouldPlayToPlaybackTarget):
(WebCore::MediaElementSession::mediaEngineUpdated):
(WebCore::MediaElementSession::willLog const): Deleted.
(WebCore::MediaElementSession::logger const): Deleted.
(WebCore::MediaElementSession::logIdentifier const): Deleted.
(WebCore::MediaElementSession::logChannel const): Deleted.

  • html/MediaElementSession.h:
  • platform/audio/PlatformMediaSession.cpp:

(WebCore::nextLogIdentifier):
(WebCore::convertEnumerationToString):
(WebCore::PlatformMediaSession::PlatformMediaSession):
(WebCore::PlatformMediaSession::setState):
(WebCore::PlatformMediaSession::beginInterruption):
(WebCore::PlatformMediaSession::endInterruption):
(WebCore::PlatformMediaSession::clientWillBeginAutoplaying):
(WebCore::PlatformMediaSession::clientWillPausePlayback):
(WebCore::PlatformMediaSession::pauseSession):
(WebCore::PlatformMediaSession::stopSession):
(WebCore::PlatformMediaSession::clientDataBufferingTimerFired):
(WebCore::PlatformMediaSession::logChannel const):
(WebCore::stateName): Deleted.
(WebCore::interruptionName): Deleted.

  • platform/audio/PlatformMediaSession.h:

(WTF::LogArgument<WebCore::PlatformMediaSession::State>::toString):
(WTF::LogArgument<WebCore::PlatformMediaSession::InterruptionType>::toString):

3:35 PM Changeset in webkit [231603] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Update WebKit.WebsiteDataStoreCustomPaths after r231536
https://bugs.webkit.org/show_bug.cgi?id=185486
<rdar://problem/37214391>

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-05-09
Reviewed by Chris Dumez.

Update WebKit.WebsiteDataStoreCustomPaths as _syncNetworkProcessCookies is async now.

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

3:22 PM Changeset in webkit [231602] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Test262-Runner: Improve the verbose output
https://bugs.webkit.org/show_bug.cgi?id=185491

Patch by Leo Balter <Leo Balter> on 2018-05-09
Reviewed by Michael Saboff.

  • Scripts/test262/Import.pm:

(transferFiles):

  • Scripts/test262/Runner.pm:

(processResult):

3:18 PM Changeset in webkit [231601] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Fix Test262 Runner to have DYLD_FRAMEWORK_PATH always set
https://bugs.webkit.org/show_bug.cgi?id=185488

Patch by Leo Balter <Leo Balter> on 2018-05-09
Reviewed by Michael Saboff.

  • Scripts/test262/Runner.pm:

(processCLI):
(getBuildPath):
(runTest):

3:04 PM Changeset in webkit [231600] by commit-queue@webkit.org
  • 4 edits in trunk

[GStreamer] Never call updateTracks if running on legacy pipeline
https://bugs.webkit.org/show_bug.cgi?id=184581

Source/WebCore:

This makes sure failling code path is never reached in the conditions where it should not have been reached.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-09
Reviewed by Philippe Normand.

Re enables all tests that were disabled after fixing.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::handleMessage):

LayoutTests:

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-09
Reviewed by Philippe Normand.

https://bugs.webkit.org/show_bug.cgi?id=185252

  • platform/gtk/TestExpectations:
2:59 PM Changeset in webkit [231599] by Ross Kirsling
  • 8 edits in trunk/LayoutTests

Unreviewed gardening for WinCairo LayoutTests.

  • platform/wincairo/TestExpectations:
  • platform/wincairo/css3/filters/effect-brightness-clamping-expected.txt:
  • platform/wincairo/css3/filters/effect-brightness-expected.txt:
  • platform/wincairo/editing/deleting/5126166-expected.txt:
  • platform/wincairo/editing/deleting/5206311-1-expected.txt:
  • platform/wincairo/editing/deleting/5433862-2-expected.txt:
  • platform/wincairo/editing/deleting/5483370-expected.txt:
2:55 PM Changeset in webkit [231598] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Restrict unarchiving of bundle parameters to a set of known classes
https://bugs.webkit.org/show_bug.cgi?id=185489
<rdar://problem/21912401>

Reviewed by Ryosuke Niwa.

Stop accepting anything derived from NSObject, and instead only agree to unarchive objects
from a set of things we actually pass as InjectedBundle parameters.

  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::setBundleParameter):

2:48 PM Changeset in webkit [231597] by dbates@webkit.org
  • 4 edits in trunk

REGRESSION (r231479): http/tests/appcache/x-frame-options-prevents-framing.php is timing out
https://bugs.webkit.org/show_bug.cgi?id=185443
<rdar://problem/40100660>

Reviewed by Andy Estes.

Source/WebCore:

Following r231479 when using WebKit2 and Restricted HTTP Response Access is enabled (enabled in
WebKitTestRunner) we only check the CSP frame-ancestors directive and X-Frame-Options in
NetworkProcess. We need to check these security requirements in WebContent process whenever
we are performing a substitute data load, such as for app cache, as these loads do not go
through NetworkProcess.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived):

LayoutTests:

Unskip test now that it no longer times out.

  • platform/wk2/TestExpectations:
2:30 PM Changeset in webkit [231596] by Kocsen Chung
  • 6 edits
    1 add in branches/safari-606.1.17-branch/Source/JavaScriptCore

Cherry-pick r231589. rdar://problem/39999414

Add JSVirtualMachine SPI to shrink the memory footprint of the VM
https://bugs.webkit.org/show_bug.cgi?id=185441
<rdar://problem/39999414>

Reviewed by Keith Miller.

This patch adds JSVirtualMachine SPI to release as much memory as possible.
The SPI does:

  • Deletes all code caches.
  • Synchronous GC.
  • Run the scavenger.
  • API/JSVirtualMachine.mm: (-[JSVirtualMachine shrinkFootprint]):
  • API/JSVirtualMachinePrivate.h: Added.
  • API/tests/testapi.mm: (testObjectiveCAPIMain):
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • runtime/VM.cpp: (JSC::VM::shrinkFootprint):
  • runtime/VM.h:

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

2:12 PM Changeset in webkit [231595] by keith_miller@apple.com
  • 17 edits in branches/safari-605-branch/Source/JavaScriptCore

Cherry-pick r231316. rdar://problem/40050814

2:05 PM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
2:04 PM Changeset in webkit [231594] by Michael Catanzaro
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r231482 - Unreviewed. Add missing exit not included in r231298.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::ensureWebToStorageProcessConnection):

1:58 PM Changeset in webkit [231593] by Dewei Zhu
  • 3 edits in trunk/Websites/perf.webkit.org

Range bisector should check the commits for repositories without change in specified range.
https://bugs.webkit.org/show_bug.cgi?id=185269

Reviewed by Ryosuke Niwa.

For repositories without a change in the specified range, we still need to use them to filter commit
sets. Before this change, code does not apply filtering by those repositories against commit set. As
a result, commit sets with different commits for those repositories may be chosen as bisecting commit set.

  • public/v3/commit-set-range-bisector.js: Updated the logic to verify range for repositories without

change in range.
(CommitSetRangeBisector.async.commitSetClosestToMiddleOfAllCommits):

  • unit-tests/commit-set-range-bisector-tests.js: Added a unit test to guard against this change.
1:42 PM Changeset in webkit [231592] by jmarcell@apple.com
  • 19 edits in branches/safari-606.1.17-branch/Source/WebCore

Cherry-pick r231557. rdar://problem/39853798

Use StyleColor::Options in more places.

https://bugs.webkit.org/show_bug.cgi?id=185458
rdar://problem/39853798

Add UseDefaultAppearance to StyleColor::Options, to avoid passing yet another
boolean on some of these functions.

Reviewed by Tim Horton.

  • css/MediaQueryEvaluator.cpp:
  • css/StyleColor.h:
  • dom/Document.cpp: (WebCore::Document::useDefaultAppearance const): (WebCore::Document::styleColorOptions const):
  • dom/Document.h:
  • platform/Theme.cpp: (WebCore::Theme::paint):
  • platform/Theme.h:
  • platform/mac/LocalDefaultSystemAppearance.h:
  • platform/mac/LocalDefaultSystemAppearance.mm: (WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance): (WebCore::LocalDefaultSystemAppearance::~LocalDefaultSystemAppearance):
  • platform/mac/ThemeMac.h:
  • platform/mac/ThemeMac.mm: (WebCore::paintToggleButton): (WebCore::paintButton): (WebCore::ThemeMac::ensuredView): (WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext): (WebCore::ThemeMac::paint): (-[WebCoreThemeView initWithUseSystemAppearance:]): Deleted.
  • platform/wpe/ThemeWPE.cpp: (WebCore::ThemeWPE::paint):
  • platform/wpe/ThemeWPE.h:
  • rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintItemBackground):
  • rendering/RenderTheme.cpp: (WebCore::RenderTheme::paint): (WebCore::RenderTheme::inactiveListBoxSelectionBackgroundColor const): (WebCore::RenderTheme::platformInactiveListBoxSelectionBackgroundColor const):
  • rendering/RenderTheme.h:
  • rendering/RenderThemeGtk.cpp: (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionBackgroundColor const):
  • rendering/RenderThemeGtk.h:
  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::documentViewFor const): (WebCore::RenderThemeMac::platformInactiveListBoxSelectionBackgroundColor const): (WebCore::RenderThemeMac::systemColor const): (WebCore::RenderThemeMac::paintCellAndSetFocusedElementNeedsRepaintIfNecessary): (WebCore::RenderThemeMac::paintSliderThumb):

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

1:31 PM Changeset in webkit [231591] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk

[Cocoa] Some fields are not identified as [WKWebProcessPlugInNodeHandle isTextField]
https://bugs.webkit.org/show_bug.cgi?id=185260
<rdar://problem/39290394>

Source/WebKit:

INPUT element are not considered to be text fields when
calling -[WKWebProcessPlugInNodeHandle isTextField]
when they are of type number.

Patch by Richard Houle <rhoule@apple.com> on 2018-05-09
Reviewed by Tim Horton.

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::InjectedBundleNodeHandle::isTextField const):

Tools:

Patch by Richard Houle <rhoule@apple.com> on 2018-05-09
Reviewed by Tim Horton.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/InjectedBundleNodeHandleIsTextField.mm: Added.

(-[InjectedBundleNodeHandleIsTextField isTextFieldForHTMLInputType:document:jsContext:]):
(-[InjectedBundleNodeHandleIsTextField webProcessPlugIn:didCreateBrowserContextController:]):

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(-[InjectedBundleNodeHandleIsTextFieldDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):

1:24 PM Changeset in webkit [231590] by commit-queue@webkit.org
  • 13 edits
    9 adds in trunk

Source/WebCore:
Hooked up ASTC support in WebGL; requires OpenGL ES 3 context to work.
https://bugs.webkit.org/show_bug.cgi?id=185272
<rdar://problem/15745737>

Patch by Justin Fan <Justin Fan> on 2018-05-09
Reviewed by Dean Jackson.

Also added in Khronos' ASTC test from version 1.0.4 beta of their conformance test suite,
although again, this requires OpenGL ES 3 context for WebKit to detect proper support.

Test: fast/canvas/webgl/webgl-compressed-texture-astc.html

  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMConvertWebGL.cpp:

(WebCore::convertToJSValue):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getExtension):
(WebCore::WebGL2RenderingContext::getSupportedExtensions):

  • html/canvas/WebGLCompressedTextureASTC.cpp: Added.

(WebCore::WebGLCompressedTextureASTC::WebGLCompressedTextureASTC):
(WebCore::WebGLCompressedTextureASTC::getName const):
(WebCore::WebGLCompressedTextureASTC::supported):
(WebCore::WebGLCompressedTextureASTC::getSupportedProfiles):

  • html/canvas/WebGLCompressedTextureASTC.h: Added.
  • html/canvas/WebGLCompressedTextureASTC.idl: Added.
  • html/canvas/WebGLExtension.h:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getSupportedExtensions):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::validateCompressedTexFuncData):
(WebCore::WebGLRenderingContextBase::validateCompressedTexDimensions):

  • html/canvas/WebGLRenderingContextBase.h:
  • platform/graphics/Extensions3D.h:

LayoutTests:
Added Khronos conformance test for ASTC compressed texture support.
https://bugs.webkit.org/show_bug.cgi?id=185272
<rdar://problem/15745737>

Patch by Justin Fan <Justin Fan> on 2018-05-09
Reviewed by Dean Jackson.

This requires OpenGL ES 3 context for WebKit to detect proper support.

  • fast/canvas/webgl/resources/js-test-post.js: Added.
  • fast/canvas/webgl/resources/js-test-pre.js: Added.
  • fast/canvas/webgl/resources/js-test-style.css: Added.
  • fast/canvas/webgl/resources/webgl-test-utils-khr.js: Added.
  • fast/canvas/webgl/webgl-compressed-texture-astc-expected.txt: Added.
  • fast/canvas/webgl/webgl-compressed-texture-astc.html: Added.
1:11 PM Changeset in webkit [231589] by sbarati@apple.com
  • 6 edits
    1 add in trunk/Source/JavaScriptCore

Add JSVirtualMachine SPI to shrink the memory footprint of the VM
https://bugs.webkit.org/show_bug.cgi?id=185441
<rdar://problem/39999414>

Reviewed by Keith Miller.

This patch adds JSVirtualMachine SPI to release as much memory as possible.
The SPI does:

  • Deletes all code caches.
  • Synchronous GC.
  • Run the scavenger.
  • API/JSVirtualMachine.mm:

(-[JSVirtualMachine shrinkFootprint]):

  • API/JSVirtualMachinePrivate.h: Added.
  • API/tests/testapi.mm:

(testObjectiveCAPIMain):

(JSC::VM::shrinkFootprint):

  • runtime/VM.h:
12:59 PM Changeset in webkit [231588] by youenn@apple.com
  • 25 edits
    1 copy in trunk/Source

Allow WebResourceLoader to cancel a load served from a service worker
https://bugs.webkit.org/show_bug.cgi?id=185274

Reviewed by Chris Dumez.

Source/WebCore:

Add support for cancelling a fetch from WebProcess to service worker process.
Use FetchIdentifier instead of uint64_t.

  • Modules/fetch/FetchIdentifier.h: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • workers/service/context/ServiceWorkerFetch.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::startFetch):
(WebCore::ServiceWorkerThreadProxy::cancelFetch):

  • workers/service/context/ServiceWorkerThreadProxy.h:

Source/WebKit:

Use FetchIdentifier instead of uint64_t.
Add IPC support for cancelling a fetch from WebProcess to service worker process.
Ask service worker process to cancel the fetch when its corresponding WebResourceLoader is cancelled.
No change of behavior as once a WebResourceLoader is cancelled, any related IPC is not processed.
A follow-up patch should try to cancel the FetchResponse load, meaning to either cancel the network load
or to abort reading the readable stream.

  • Scripts/webkit/messages.py:
  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::cancelFetch):
(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::didReceiveFetchResponse):
(WebKit::WebSWServerConnection::didReceiveFetchData):
(WebKit::WebSWServerConnection::didReceiveFetchFormData):
(WebKit::WebSWServerConnection::didFinishFetch):
(WebKit::WebSWServerConnection::didFailFetch):
(WebKit::WebSWServerConnection::didNotHandleFetch):

  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • StorageProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::didFailFetch):
(WebKit::StorageProcess::didNotHandleFetch):
(WebKit::StorageProcess::didReceiveFetchResponse):
(WebKit::StorageProcess::didReceiveFetchData):
(WebKit::StorageProcess::didReceiveFetchFormData):
(WebKit::StorageProcess::didFinishFetch):

  • StorageProcess/StorageProcess.h:
  • StorageProcess/StorageProcess.messages.in:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::remove):

  • WebProcess/Storage/ServiceWorkerClientFetch.cpp:

(WebKit::ServiceWorkerClientFetch::create):
(WebKit::ServiceWorkerClientFetch::ServiceWorkerClientFetch):
(WebKit::ServiceWorkerClientFetch::start):
(WebKit::ServiceWorkerClientFetch::cancel):

  • WebProcess/Storage/ServiceWorkerClientFetch.h:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::startFetch):
(WebKit::WebSWClientConnection::cancelFetch):

  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::cancelFetch):
(WebKit::WebSWContextManagerConnection::startFetch):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:
  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::WebServiceWorkerFetchTaskClient):
(WebKit::WebServiceWorkerFetchTaskClient::cancel):

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:
  • WebProcess/Storage/WebServiceWorkerProvider.cpp:

(WebKit::WebServiceWorkerProvider::handleFetch):
(WebKit::WebServiceWorkerProvider::cancelFetch):
(WebKit::WebServiceWorkerProvider::fetchFinished):

  • WebProcess/Storage/WebServiceWorkerProvider.h:
12:56 PM Changeset in webkit [231587] by Michael Catanzaro
  • 1 copy in releases/WPE WebKit/webkit-2.21.1

WPE WebKit 2.21.1

12:56 PM Changeset in webkit [231586] by Michael Catanzaro
  • 1 add in releases/WPE WebKit

New directory for WPE release tags

12:46 PM Changeset in webkit [231585] by jmarcell@apple.com
  • 3 edits in branches/safari-605-branch/Source/WebKit

Apply patch. rdar://problem/39839226

12:14 PM Changeset in webkit [231584] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[tests][GStreamer]: Pass USE_PLAYBIN3 to the tests subprocess
https://bugs.webkit.org/show_bug.cgi?id=185481

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-09
Reviewed by Philippe Normand.

[tests][GStreamer]: Pass USE_PLAYBIN3 to the tests subprocess

  • Scripts/webkitpy/port/gtk.py:

(GtkPort.setup_environ_for_server):

12:08 PM Changeset in webkit [231583] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Consider the annotation bounds when positioning action sheets near long-pressed PDF links
https://bugs.webkit.org/show_bug.cgi?id=185472
<rdar://problem/39967092>

Reviewed by Daniel Bates.

Adopted new PDFHostViewControllerDelegate methods that include annotation rects
when URLs and page indices are long-pressed. This allows us to avoid obscuring
annotations when positioning action sheet popovers.

We also no longer need to convert the press location into host view coordinate
space, as PDFKit now does that for us.

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView _showActionSheetForURL:atLocation:withAnnotationRect:]):
(-[WKPDFView pdfHostViewController:didLongPressURL:atLocation:withAnnotationRect:]):
(-[WKPDFView pdfHostViewController:didLongPressPageIndex:atLocation:withAnnotationRect:]):
(-[WKPDFView _showActionSheetForURL:atLocation:]): Deleted.
(-[WKPDFView pdfHostViewController:didLongPressURL:atLocation:]): Deleted.
(-[WKPDFView pdfHostViewController:didLongPressPageIndex:atLocation:]): Deleted.

12:08 PM Changeset in webkit [231582] by jmarcell@apple.com
  • 7 edits in branches/safari-606.1.17-branch/Source

Versioning.

12:01 PM Changeset in webkit [231581] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Fix style issue in MediaPlayerPrivateGStreamer
https://bugs.webkit.org/show_bug.cgi?id=185479

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-09
Reviewed by Philippe Normand.

ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:114: Multi line control clauses should use braces. [whitespace/braces] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:194: Multi line control clauses should use braces. [whitespace/braces] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:398: One line control clauses should not use braces. [whitespace/braces] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:440: One line control clauses should not use braces. [whitespace/braces] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:806: More than one command on the same line [whitespace/newline] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:869: More than one command on the same line [whitespace/newline] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:880: More than one command on the same line [whitespace/newline] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:940: More than one command on the same line [whitespace/newline] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1102: Multi line control clauses should use braces. [whitespace/braces] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1109: Multi line control clauses should use braces. [whitespace/braces] [4]

Indentation and style issue fixed only.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::registerMediaEngine):
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
(WebCore::MediaPlayerPrivateGStreamer::play):
(WebCore::MediaPlayerPrivateGStreamer::videoChangedCallback):
(WebCore::MediaPlayerPrivateGStreamer::videoSinkCapsChangedCallback):
(WebCore::MediaPlayerPrivateGStreamer::audioChangedCallback):
(WebCore::MediaPlayerPrivateGStreamer::textChangedCallback):
(WebCore::MediaPlayerPrivateGStreamer::buffered const):
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation):

12:00 PM Changeset in webkit [231580] by jmarcell@apple.com
  • 2 edits
    1 add in branches/safari-605-branch

Apply patch. rdar://problem/40050713

11:42 AM Changeset in webkit [231579] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION (r231479): com.apple.WebCore crash in WebCore::DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied()
https://bugs.webkit.org/show_bug.cgi?id=185475
<rdar://problem/40093853>

Reviewed by Andy Estes.

DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied() must extends its lifetime
until completion as dispatching a DOM load event at the associated frame can cause JavaScript execution
that can do anything, including destroying the loader that dispatched the event.

Following r231479 DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied() is now
invoked by both DocumentLoader::responseReceived() and WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied().
The latter only can happen when using WebKit2 and the experimental feature Restricted HTTP Response Access
is enabled (RuntimeEnabledFeatures::sharedFeatures().restrictedHTTPResponseAccess()). Unlike DocumentLoader::responseReceived()
WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied() does not take out a ref
on the DocumentLoader before invoking DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied().
Therefore, DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied() can cause its
own destruction as a result of dispatching a DOM load event at the frame. We should take out a ref on
the DocumentLoader when executing DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied().

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied):

11:31 AM Changeset in webkit [231578] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the build by ignoring some deprecation warnings

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldDisableSleep):

11:21 AM Changeset in webkit [231577] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r231516. rdar://problem/40096750

Unreviewed build fix; add missing function definition.

  • html/HTMLMediaElement.h: (WebCore::HTMLMediaElement::didPassCORSAccessCheck const):

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

11:21 AM Changeset in webkit [231576] by jmarcell@apple.com
  • 6 edits
    5 adds in branches/safari-605-branch

Cherry-pick r231513. rdar://problem/40096750

Mute MediaElementSourceNode when tainted.
https://bugs.webkit.org/show_bug.cgi?id=184866

Reviewed by Eric Carlson.

Source/WebCore:

Test: http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin.html

  • Modules/webaudio/AudioContext.cpp: (WebCore::AudioContext::wouldTaintOrigin const):
  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/MediaElementAudioSourceNode.cpp: (WebCore::MediaElementAudioSourceNode::setFormat): (WebCore::MediaElementAudioSourceNode::wouldTaintOrigin): (WebCore::MediaElementAudioSourceNode::process):
  • Modules/webaudio/MediaElementAudioSourceNode.h:

LayoutTests:

  • http/tests/media/resources/1000Hz-sin.wav: Added.
  • http/tests/security/webaudio-render-remote-audio-allowed-crossorigin-expected.txt: Added.
  • http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html: Added.
  • http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin-expected.txt: Added.
  • http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin.html: Added.

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

11:04 AM Changeset in webkit [231575] by jmarcell@apple.com
  • 7 edits in branches/safari-605-branch/Source/JavaScriptCore

Cherry-pick r231518. rdar://problem/40096743

Deferred firing of structure transition watchpoints is racy
https://bugs.webkit.org/show_bug.cgi?id=185438

Reviewed by Saam Barati.

Changed DeferredStructureTransitionWatchpointFire to take the watchpoints to fire
and fire them in the destructor. When the watchpoints are taken from the
original WatchpointSet, that WatchpointSet if marked invalid.

  • bytecode/Watchpoint.cpp: (JSC::WatchpointSet::fireAllSlow): (JSC::WatchpointSet::take): (JSC::DeferredWatchpointFire::DeferredWatchpointFire): (JSC::DeferredWatchpointFire::~DeferredWatchpointFire): (JSC::DeferredWatchpointFire::fireAll): (JSC::DeferredWatchpointFire::takeWatchpointsToFire):
  • bytecode/Watchpoint.h: (JSC::WatchpointSet::fireAll): (JSC::InlineWatchpointSet::fireAll):
  • runtime/JSObject.cpp: (JSC::JSObject::setPrototypeDirect): (JSC::JSObject::convertToDictionary):
  • runtime/JSObjectInlines.h: (JSC::JSObject::putDirectInternal):
  • runtime/Structure.cpp: (JSC::Structure::Structure): (JSC::DeferredStructureTransitionWatchpointFire::DeferredStructureTransitionWatchpointFire): (JSC::DeferredStructureTransitionWatchpointFire::~DeferredStructureTransitionWatchpointFire): (JSC::DeferredStructureTransitionWatchpointFire::dump const): (JSC::Structure::didTransitionFromThisStructure const): (JSC::DeferredStructureTransitionWatchpointFire::add): Deleted.
  • runtime/Structure.h: (JSC::DeferredStructureTransitionWatchpointFire::structure const):

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

11:02 AM Changeset in webkit [231574] by youenn@apple.com
  • 6 edits in trunk/LayoutTests

Unflake some additional AppCache tests
https://bugs.webkit.org/show_bug.cgi?id=185467

Reviewed by Alex Christensen.

Remove JS console logging for two tests that are testing crash scenarios.
Increase the time it takes to load appcache entries so that aborting
is done prior entry loading completion for two other tests.

  • TestExpectations:
  • http/tests/appcache/deferred-events-delete-while-raising-expected.txt:
  • http/tests/appcache/deferred-events-delete-while-raising-timer-expected.txt:
  • http/tests/appcache/resources/abort-cache-onprogress.manifest:
  • http/tests/appcache/resources/not-exist.vob.php:
10:30 AM Changeset in webkit [231573] by aestes@apple.com
  • 4 edits in trunk/Source/WebKit

[iOS] Tell PDFHostViewController when animated resizes begin and end
https://bugs.webkit.org/show_bug.cgi?id=185477
<rdar://problem/39875372>

Reviewed by Anders Carlsson.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):

  • UIProcess/Cocoa/WKWebViewContentProvider.h:
  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView web_beginAnimatedResize]):
(-[WKPDFView web_endAnimatedResize]):

10:29 AM Changeset in webkit [231572] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix ArraySpeciesCreate to return a new Array when the given object is not an array
Error found in the following Test262 tests:

  • test/built-ins/Array/prototype/slice/create-non-array-invalid-len.js
  • test/built-ins/Array/prototype/slice/create-proxied-array-invalid-len.js
  • test/built-ins/Array/prototype/splice/create-species-undef-invalid-len.js

The ArraySpeciesCreate should throw a RangeError with non-Array custom objects
presenting a length > 232-1
https://bugs.webkit.org/show_bug.cgi?id=185476

Patch by Leo Balter <Leo Balter> on 2018-05-09
Reviewed by Yusuke Suzuki.

  • runtime/ArrayPrototype.cpp:
10:20 AM Changeset in webkit [231571] by jmarcell@apple.com
  • 7 edits in branches/safari-605-branch/Source

Versioning.

10:06 AM Changeset in webkit [231570] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Set build.webkit.org to use the new Test262-runner
https://bugs.webkit.org/show_bug.cgi?id=184933

Patch by Leo Balter <Leo Balter> on 2018-05-09
Reviewed by Aakash Jain.

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(RunTest262Tests):
(RunTest262Tests.countFailures):

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
10:02 AM Changeset in webkit [231569] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK][JHBuild] LLVM 3.7.0 build is broken with GCC 8.1
https://bugs.webkit.org/show_bug.cgi?id=185461

Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-05-09
Reviewed by Michael Catanzaro.

JHBuild now compiles LLVM 6 and Mesa 18.0.3.

  • gtk/jhbuild.modules:
9:43 AM Changeset in webkit [231568] by Michael Catanzaro
  • 2 edits in trunk

Unreviewed. Bump WPE soname for good measure.

  • Source/cmake/OptionsWPE.cmake:
9:29 AM Changeset in webkit [231567] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.17.1

Tag Safari-606.1.17.1.

9:26 AM Changeset in webkit [231566] by Michael Catanzaro
  • 5 edits
    1 add in trunk

Unreviewed. Update OptionsWPE.cmake and NEWS for 2.21.1 release.

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Added. Add release notes for 2.21.1.

Tools:

  • wpe/manifest.txt.in: Distribute the NEWS.
9:21 AM Changeset in webkit [231565] by Michael Catanzaro
  • 44 edits
    2 adds in trunk

[WPE] Build cleanly with GCC 8 and ICU 60
https://bugs.webkit.org/show_bug.cgi?id=185462

Reviewed by Carlos Alberto Lopez Perez.

Source/JavaScriptCore:

  • API/glib/JSCClass.cpp: Silence many -Wcast-function-type warnings.

(jsc_class_add_constructor):
(jsc_class_add_method):

  • API/glib/JSCValue.cpp: Silence many -Wcast-function-type warnings.

(jsc_value_object_define_property_accessor):
(jsc_value_new_function):

  • CMakeLists.txt: Build BuiltinNames.cpp with -fno-var-tracking-assignments. This was a

problem with GCC 7 too, but might as well fix it now.

  • assembler/ProbeContext.h:

(JSC::Probe::CPUState::gpr const): Silence a -Wclass-memaccess warning.
(JSC::Probe::CPUState::spr const): Ditto. Assume std::remove_const is safe to clobber.

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::isRepresentableAs): Silence -Wfallthrough warning.

  • builtins/BuiltinNames.cpp:

(JSC::BuiltinNames::BuiltinNames): Moved from BuiltinNames.h so we can use a special flag.

  • builtins/BuiltinNames.h:

(JSC::BuiltinNames::BuiltinNames): Moved to BuiltinNames.cpp.

  • dfg/DFGDoubleFormatState.h:

(JSC::DFG::mergeDoubleFormatStates): Silence -Wfallthrough warnings.

  • heap/MarkedBlockInlines.h:

(JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType): Silence -Wfallthrough warnings.

  • runtime/ConfigFile.cpp:

(JSC::ConfigFile::canonicalizePaths): Here GCC found a genuine mistake, strncat is called
with the wrong length parameter and the result is not null-terminated. Also, silence a
-Wstringop-truncation warning as we intentionally truncate filenames that exceed PATH_MAX.

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::partTypeString): Avoid an ICU deprecation warning.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init): We were unconditionally running some BigInt code by accident.
(JSC::JSGlobalObject::visitChildren): Probably a serious bug? Fixed.

Source/ThirdParty:

  • xdgmime/CMakeLists.txt: Silence -Wno-cast-function-type. I'm not fighting xdg-mime.

Source/WebCore:

  • PlatformGTK.cmake: Include directories are in the wrong place.
  • accessibility/AXObjectCache.cpp: Silence -Wclass-memaccess problems and leave warnings.

(WebCore::AXObjectCache::startOrEndTextMarkerDataForRange):
(WebCore::AXObjectCache::textMarkerDataForCharacterOffset):
(WebCore::AXObjectCache::textMarkerDataForVisiblePosition):
(WebCore::AXObjectCache::textMarkerDataForFirstPositionInTextControl):

  • css/CSSFontFace.cpp: Silence -Wfallthrough

(WebCore::CSSFontFace::fontLoadTiming const):

  • css/CSSSelectorList.cpp: Silence -Wclass-memaccess, this one is intentional.

(WebCore::CSSSelectorList::adoptSelectorVector):

  • editing/TextIterator.cpp: Silence ICU deprecation warnings.
  • platform/Length.h:

(WebCore::Length::operator=): More -Wclass-memaccess, looks benign.

  • platform/graphics/Gradient.cpp:

(WebCore::Gradient::hash const): -Wclass-memaccess again. Leave a warning.

  • platform/graphics/SurrogatePairAwareTextIterator.cpp: Silence ICU deprecation warnings.
  • platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:

(WebCore::FontCascade::fontForCombiningCharacterSequence const): Silence ICU deprecation.

  • platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:

(WebCore::FontCustomPlatformData::FontCustomPlatformData): Silence -Wcast-function-type.

  • platform/graphics/freetype/SimpleFontDataFreeType.cpp:

(WebCore::Font::canRenderCombiningCharacterSequence const): Silence ICU deprecation.

  • platform/graphics/gstreamer/GstAllocatorFastMalloc.cpp:

(gstAllocatorFastMallocMemUnmap): Fix -Wcast-function-type.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::updateTracks): Fix bad printf.
(WebCore::MediaPlayerPrivateGStreamer::enableTrack): Another bad printf.
(WebCore::findHLSQueue): Fix -Wcast-function-type.

  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:

(webKitMediaClearKeyDecryptorDecrypt): Fix another bad printf.

  • platform/network/soup/SocketStreamHandleImplSoup.cpp: Silence -Wcast-function-type.

(WebCore::SocketStreamHandleImpl::beginWaitingForSocketWritability):

  • platform/text/TextEncoding.cpp: Silence ICU deprecration.

Source/WebKit:

  • Platform/IPC/glib/GSocketMonitor.cpp:

(IPC::GSocketMonitor::start): Silence -Wcast-function-type warning.

  • Shared/API/glib/WebKitContextMenu.cpp:

(webkit_context_menu_new_with_items): Ditto.

Source/WTF:

  • wtf/HashTable.h:

(WTF::HashTableBucketInitializer<true>::initialize): Since -Wclass-memaccess warning. This
is probably safe enough, since it's for an empty bucket.

  • wtf/StdLibExtras.h:

(WTF::bitwise_cast): Silence -Wclass-memaccess as we use type traits to ensure safety here.

  • wtf/Vector.h: Ditto, all uses are safe.
  • wtf/glib/WTFGType.h: Silence -Wcast-function-type.

Tools:

  • TestWebKitAPI/CMakeLists.txt: Fix weird build failure, we were missing a directory. Not

sure why this was never noticed until now or why the bots are OK.

  • gtk/jhbuild.modules: Add upstream patch to avoid warnings inside G_DEFINE_TYPE.
  • gtk/patches/glib-cast-function-type.patch: Added.
  • wpe/jhbuild.modules: Add upstream patch to avoid warnings inside G_DEFINE_TYPE.
  • wpe/patches/glib-cast-function-type.patch: Added.
9:19 AM Changeset in webkit [231564] by jmarcell@apple.com
  • 7 edits in trunk/Source

Versioning.

9:10 AM Changeset in webkit [231563] by jmarcell@apple.com
  • 7 edits in branches/safari-606.1.17-branch/Source

Versioning.

8:57 AM Changeset in webkit [231562] by jmarcell@apple.com
  • 1 delete in branches/safari-606.1.17.1-branch

Delete branch.

8:55 AM Changeset in webkit [231561] by jmarcell@apple.com
  • 1 copy in branches/safari-606.1.17-branch

New branch.

8:43 AM Changeset in webkit [231560] by Yusuke Suzuki
  • 6 edits
    2 deletes in trunk/Source

[ARMv7] Drop ARMv7 disassembler in favor of capstone
https://bugs.webkit.org/show_bug.cgi?id=185423

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

This patch removes ARMv7Disassembler in our tree.
We already adopted Capstone, and it is already used in ARMv7 JIT environments.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • disassembler/ARMv7/ARMv7DOpcode.cpp: Removed.
  • disassembler/ARMv7/ARMv7DOpcode.h: Removed.
  • disassembler/ARMv7Disassembler.cpp: Removed.

Source/WTF:

Remove USE_ARMV7_DISASSEMBLER. Just use Capstone.

  • wtf/Platform.h:
8:21 AM Changeset in webkit [231559] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

SVG lighting colors need to be converted into linearSRGB
https://bugs.webkit.org/show_bug.cgi?id=181196

Reviewed by Darin Adler.

Address post-commit comments. Don't make a Color that contains linearRGB components,
but use FloatComponents instead. Since these FloatComponents are in the 0-1 range,
FELighting::setPixelInternal() needs to multiply by 255 since the output pixels are
8-bit 0-255.

Change linearToSRGBColorComponent() and sRGBToLinearColorComponent() to do math in
floats without promoting to doubles.

  • platform/graphics/ColorUtilities.cpp:

(WebCore::FloatComponents::FloatComponents):
(WebCore::linearToSRGBColorComponent):
(WebCore::sRGBToLinearColorComponent):
(WebCore::sRGBColorToLinearComponents):
(WebCore::linearToSRGBColor): Deleted.
(WebCore::sRGBToLinearColor): Deleted.

  • platform/graphics/ColorUtilities.h:
  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::setPixelInternal):
(WebCore::FELighting::drawLighting):

8:20 AM Changeset in webkit [231558] by jmarcell@apple.com
  • 1 copy in branches/safari-606.1.17.1-branch

New branch.

8:17 AM Changeset in webkit [231557] by timothy@apple.com
  • 19 edits in trunk/Source/WebCore

Use StyleColor::Options in more places.

https://bugs.webkit.org/show_bug.cgi?id=185458
rdar://problem/39853798

Add UseDefaultAppearance to StyleColor::Options, to avoid passing yet another
boolean on some of these functions.

Reviewed by Tim Horton.

  • css/MediaQueryEvaluator.cpp:
  • css/StyleColor.h:
  • dom/Document.cpp:

(WebCore::Document::useDefaultAppearance const):
(WebCore::Document::styleColorOptions const):

  • dom/Document.h:
  • platform/Theme.cpp:

(WebCore::Theme::paint):

  • platform/Theme.h:
  • platform/mac/LocalDefaultSystemAppearance.h:
  • platform/mac/LocalDefaultSystemAppearance.mm:

(WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance):
(WebCore::LocalDefaultSystemAppearance::~LocalDefaultSystemAppearance):

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

(WebCore::paintToggleButton):
(WebCore::paintButton):
(WebCore::ThemeMac::ensuredView):
(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):
(WebCore::ThemeMac::paint):
(-[WebCoreThemeView initWithUseSystemAppearance:]): Deleted.

  • platform/wpe/ThemeWPE.cpp:

(WebCore::ThemeWPE::paint):

  • platform/wpe/ThemeWPE.h:
  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::paintItemBackground):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::inactiveListBoxSelectionBackgroundColor const):
(WebCore::RenderTheme::platformInactiveListBoxSelectionBackgroundColor const):

  • rendering/RenderTheme.h:
  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::platformInactiveListBoxSelectionBackgroundColor const):

  • rendering/RenderThemeGtk.h:
  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::documentViewFor const):
(WebCore::RenderThemeMac::platformInactiveListBoxSelectionBackgroundColor const):
(WebCore::RenderThemeMac::systemColor const):
(WebCore::RenderThemeMac::paintCellAndSetFocusedElementNeedsRepaintIfNecessary):
(WebCore::RenderThemeMac::paintSliderThumb):

8:06 AM Changeset in webkit [231556] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.17

Tag Safari-606.1.17.

7:27 AM Changeset in webkit [231555] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] The test http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=185471

Unreviewed test gardening.

  • platform/win/TestExpectations:
7:17 AM Changeset in webkit [231554] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[MIPS] Optimize generated JIT code using r2
https://bugs.webkit.org/show_bug.cgi?id=184584

Patch by Srdjan Lazarevic <srdjan.lazarevic@rt-rk.com> on 2018-05-09
Reviewed by Yusuke Suzuki.

EXT and MFHC1 instructions from MIPSR2 implemented and used where it is possible.
Also, done some code size optimizations that were discovered in meantime.

  • assembler/MIPSAssembler.h:

(JSC::MIPSAssembler::ext):
(JSC::MIPSAssembler::mfhc1):

  • assembler/MacroAssemblerMIPS.cpp:
  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::isPowerOf2):
(JSC::MacroAssemblerMIPS::bitPosition):
(JSC::MacroAssemblerMIPS::loadAddress):
(JSC::MacroAssemblerMIPS::getEffectiveAddress):
(JSC::MacroAssemblerMIPS::load8):
(JSC::MacroAssemblerMIPS::load8SignedExtendTo32):
(JSC::MacroAssemblerMIPS::load32):
(JSC::MacroAssemblerMIPS::load16Unaligned):
(JSC::MacroAssemblerMIPS::load32WithUnalignedHalfWords):
(JSC::MacroAssemblerMIPS::load16):
(JSC::MacroAssemblerMIPS::load16SignedExtendTo32):
(JSC::MacroAssemblerMIPS::store8):
(JSC::MacroAssemblerMIPS::store16):
(JSC::MacroAssemblerMIPS::store32):
(JSC::MacroAssemblerMIPS::branchTest32):
(JSC::MacroAssemblerMIPS::loadFloat):
(JSC::MacroAssemblerMIPS::loadDouble):
(JSC::MacroAssemblerMIPS::storeFloat):
(JSC::MacroAssemblerMIPS::storeDouble):

4:42 AM Changeset in webkit [231553] by Yusuke Suzuki
  • 15 edits
    96 adds
    2 deletes in trunk

[JSC][GTK][JSCONLY] Use capstone disassembler
https://bugs.webkit.org/show_bug.cgi?id=185283

Reviewed by Michael Catanzaro.

.:

  • Source/CMakeLists.txt:
  • Source/cmake/FindLLVM.cmake: Removed.
  • Source/cmake/OptionsCommon.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsJSCOnly.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/JavaScriptCore:

Instead of adding MIPS disassembler baked by ourselves, we import capstone disassembler.
And use capstone disassembler for MIPS, ARM, and ARMv7 in GTK, WPE, WinCairo and JSCOnly ports.

And we remove ARM LLVM disassembler.

Capstone is licensed under 3-clause BSD, which is acceptable in WebKit tree.

  • CMakeLists.txt:
  • Sources.txt:
  • disassembler/ARMLLVMDisassembler.cpp: Removed.
  • disassembler/CapstoneDisassembler.cpp: Added.

(JSC::tryToDisassemble):

Source/ThirdParty:

Add capstone to ThirdParty. We build capstone as a static library,
and link it against JSC. We only build disassembler for target architecture.
So for MIPS target, we only enable MIPS part of capstone.

We also remove unnecessary architectures in capstone, XCore, PowerPC, SystemZ, etc.
This is simply done by deleting these architecture directories.

We pick "next" branch instead of "master" branch since "next" branch is actively
developed.

  • capstone/CMakeLists.txt: Added.
  • capstone/Source/.appveyor.yml: Added.
  • capstone/Source/.gitattributes: Added.
  • capstone/Source/.gitignore: Added.
  • capstone/Source/.travis.yml: Added.
  • capstone/Source/CMakeLists.txt: Added.
  • capstone/Source/COMPILE.TXT: Added.
  • capstone/Source/COMPILE_CMAKE.TXT: Added.
  • capstone/Source/COMPILE_MSVC.TXT: Added.
  • capstone/Source/CREDITS.TXT: Added.
  • capstone/Source/ChangeLog-capstone: Added.
  • capstone/Source/HACK.TXT: Added.
  • capstone/Source/LEB128.h: Added.

(decodeULEB128):

  • capstone/Source/LICENSE.TXT: Added.
  • capstone/Source/LICENSE_LLVM.TXT: Added.
  • capstone/Source/MCDisassembler.h: Added.
  • capstone/Source/MCFixedLenDisassembler.h: Added.
  • capstone/Source/MCInst.c: Added.

(MCInst_Init):
(MCInst_clear):
(MCInst_insert0):
(MCInst_setOpcode):
(MCInst_setOpcodePub):
(MCInst_getOpcode):
(MCInst_getOpcodePub):
(MCInst_getOperand):
(MCInst_getNumOperands):
(MCInst_addOperand2):
(MCOperand_Init):
(MCOperand_isValid):
(MCOperand_isReg):
(MCOperand_isImm):
(MCOperand_isFPImm):
(MCOperand_getReg):
(MCOperand_setReg):
(MCOperand_getImm):
(MCOperand_setImm):
(MCOperand_getFPImm):
(MCOperand_setFPImm):
(MCOperand_CreateReg1):
(MCOperand_CreateReg0):
(MCOperand_CreateImm1):
(MCOperand_CreateImm0):

  • capstone/Source/MCInst.h: Added.
  • capstone/Source/MCInstrDesc.c: Added.

(MCOperandInfo_isPredicate):
(MCOperandInfo_isOptionalDef):

  • capstone/Source/MCInstrDesc.h: Added.
  • capstone/Source/MCRegisterInfo.c: Added.

(MCRegisterInfo_InitMCRegisterInfo):
(DiffListIterator_init):
(DiffListIterator_getVal):
(DiffListIterator_next):
(DiffListIterator_isValid):
(MCRegisterInfo_getMatchingSuperReg):
(MCRegisterInfo_getSubReg):
(MCRegisterInfo_getRegClass):
(MCRegisterClass_contains):

  • capstone/Source/MCRegisterInfo.h: Added.
  • capstone/Source/Makefile: Added.
  • capstone/Source/MathExtras.h: Added.

(Hi_32):
(Lo_32):
(isUIntN):
(isMask_32):
(isMask_64):
(isShiftedMask_32):
(isShiftedMask_64):
(isPowerOf2_32):
(CountLeadingZeros_32):
(CountLeadingOnes_32):
(CountLeadingZeros_64):
(CountLeadingOnes_64):
(CountTrailingZeros_32):
(CountTrailingOnes_32):
(CountTrailingZeros_64):
(CountTrailingOnes_64):
(CountPopulation_32):
(CountPopulation_64):
(Log2_32):
(Log2_64):
(Log2_32_Ceil):
(Log2_64_Ceil):
(GreatestCommonDivisor64):
(BitsToDouble):
(BitsToFloat):
(DoubleToBits):
(FloatToBits):
(MinAlign):
(NextPowerOf2):
(RoundUpToAlignment):
(OffsetToAlignment):
(abs64):
(SignExtend32):
(SignExtend64):
(countLeadingZeros):

  • capstone/Source/README.md: Added.
  • capstone/Source/RELEASE_NOTES: Added.
  • capstone/Source/SStream.c: Added.

(SStream_Init):
(SStream_concat0):
(SStream_concat):
(printInt64Bang):
(printUInt64Bang):
(printInt64):
(printInt32BangDec):
(printInt32Bang):
(printInt32):
(printUInt32Bang):
(printUInt32):

  • capstone/Source/SStream.h: Added.
  • capstone/Source/TODO: Added.
  • capstone/Source/arch/ARM/ARMAddressingModes.h: Added.

(ARM_AM_getAddrOpcStr):
(ARM_AM_getShiftOpcStr):
(ARM_AM_getShiftOpcEncoding):
(ARM_AM_getAMSubModeStr):
(rotr32):
(rotl32):
(getSORegOpc):
(getSORegOffset):
(ARM_AM_getSORegShOp):
(getSOImmValImm):
(getSOImmValRot):
(getSOImmValRotate):
(getSOImmVal):
(isSOImmTwoPartVal):
(getSOImmTwoPartFirst):
(getSOImmTwoPartSecond):
(getThumbImmValShift):
(isThumbImmShiftedVal):
(getThumbImm16ValShift):
(isThumbImm16ShiftedVal):
(getThumbImmNonShiftedVal):
(getT2SOImmValSplatVal):
(getT2SOImmValRotateVal):
(getT2SOImmVal):
(getT2SOImmValRotate):
(isT2SOImmTwoPartVal):
(getT2SOImmTwoPartFirst):
(getT2SOImmTwoPartSecond):
(ARM_AM_getAM2Opc):
(getAM2Offset):
(getAM2Op):
(getAM2ShiftOpc):
(getAM2IdxMode):
(getAM3Opc):
(getAM3Offset):
(getAM3Op):
(getAM3IdxMode):
(getAM4SubMode):
(getAM4ModeImm):
(ARM_AM_getAM5Opc):
(ARM_AM_getAM5Offset):
(ARM_AM_getAM5Op):
(createNEONModImm):
(getNEONModImmOpCmode):
(getNEONModImmVal):
(ARM_AM_decodeNEONModImm):
(getFPImmFloat):

  • capstone/Source/arch/ARM/ARMBaseInfo.h: Added.

(ARMCC_getOppositeCondition):
(ARMCC_ARMCondCodeToString):
(ARM_PROC_IFlagsToString):
(ARM_PROC_IModToString):
(ARM_MB_MemBOptToString):
(ARM_ISB_InstSyncBOptToString):
(isARMLowRegister):
(ARMII_AddrModeToString):

  • capstone/Source/arch/ARM/ARMDisassembler.c: Added.

(ITStatus_push_back):
(ITStatus_instrInITBlock):
(ITStatus_instrLastInITBlock):
(ITStatus_getITCC):
(ITStatus_advanceITState):
(ITStatus_setITState):
(Check):
(ARM_getFeatureBits):
(DecodePredicateOperand):
(ARM_init):
(checkDecodedInstruction):
(_ARM_getInstruction):
(AddThumb1SBit):
(AddThumbPredicate):
(UpdateThumbVFPPredicate):
(_Thumb_getInstruction):
(Thumb_getInstruction):
(ARM_getInstruction):
(DecodeGPRnopcRegisterClass):
(DecodeGPRwithAPSRRegisterClass):
(DecodetGPRRegisterClass):
(DecodetcGPRRegisterClass):
(DecoderGPRRegisterClass):
(DecodeDPRRegisterClass):
(DecodeDPR_8RegisterClass):
(DecodeDPR_VFP2RegisterClass):
(DecodeDPairRegisterClass):
(DecodeCCOutOperand):
(DecodeSORegImmOperand):
(DecodeSORegRegOperand):
(DecodeRegListOperand):
(DecodeSPRRegListOperand):
(DecodeDPRRegListOperand):
(DecodeBitfieldMaskOperand):
(DecodeCopMemInstruction):
(DecodeAddrMode2IdxInstruction):
(DecodeSORegMemOperand):
(DecodeAddrMode3Instruction):
(DecodeRFEInstruction):
(DecodeQADDInstruction):
(DecodeMemMultipleWritebackInstruction):
(DecodeCPSInstruction):
(DecodeT2CPSInstruction):
(DecodeT2MOVTWInstruction):
(DecodeArmMOVTWInstruction):
(DecodeSMLAInstruction):
(DecodeAddrModeImm12Operand):
(DecodeAddrMode5Operand):
(DecodeAddrMode7Operand):
(DecodeT2BInstruction):
(DecodeBranchImmInstruction):
(DecodeAddrMode6Operand):
(DecodeVLDInstruction):
(DecodeVLDST1Instruction):
(DecodeVLDST2Instruction):
(DecodeVLDST3Instruction):
(DecodeVLDST4Instruction):
(DecodeVSTInstruction):
(DecodeVLD1DupInstruction):
(DecodeVLD2DupInstruction):
(DecodeVLD3DupInstruction):
(DecodeVLD4DupInstruction):
(DecodeNEONModImmInstruction):
(DecodeVSHLMaxInstruction):
(DecodeShiftRight8Imm):
(DecodeShiftRight16Imm):
(DecodeShiftRight32Imm):
(DecodeShiftRight64Imm):
(DecodeTBLInstruction):
(DecodeThumbAddSpecialReg):
(DecodeThumbBROperand):
(DecodeT2BROperand):
(DecodeThumbCmpBROperand):
(DecodeThumbAddrModeRR):
(DecodeThumbAddrModeIS):
(DecodeThumbAddrModePC):
(DecodeThumbAddrModeSP):
(DecodeT2AddrModeSOReg):
(DecodeT2LoadShift):
(DecodeT2LoadImm8):
(DecodeT2LoadImm12):
(DecodeT2LoadT):
(DecodeT2LoadLabel):
(DecodeT2Imm8S4):
(DecodeT2AddrModeImm8s4):
(DecodeT2AddrModeImm0_1020s4):
(DecodeT2Imm8):
(DecodeT2AddrModeImm8):
(DecodeT2LdStPre):
(DecodeT2AddrModeImm12):
(DecodeThumbAddSPImm):
(DecodeThumbAddSPReg):
(DecodeThumbCPS):
(DecodePostIdxReg):
(DecodeThumbBLXOffset):
(DecodeCoprocessor):
(DecodeThumbTableBranch):
(DecodeThumb2BCCInstruction):
(DecodeT2SOImm):
(DecodeThumbBCCTargetOperand):
(DecodeThumbBLTargetOperand):
(DecodeMemBarrierOption):
(DecodeInstSyncBarrierOption):
(DecodeMSRMask):
(DecodeBankedReg):
(DecodeDoubleRegLoad):
(DecodeDoubleRegStore):
(DecodeLDRPreImm):
(DecodeLDRPreReg):
(DecodeSTRPreImm):
(DecodeSTRPreReg):
(DecodeVLD1LN):
(DecodeVST1LN):
(DecodeVLD2LN):
(DecodeVST2LN):
(DecodeVLD3LN):
(DecodeVST3LN):
(DecodeVLD4LN):
(DecodeVST4LN):
(DecodeVMOVSRR):
(DecodeVMOVRRS):
(DecodeIT):
(DecodeT2LDRDPreInstruction):
(DecodeT2STRDPreInstruction):
(DecodeT2Adr):
(DecodeT2ShifterImmOperand):
(DecodeSwap):
(DecodeVCVTD):
(DecodeVCVTQ):
(DecodeLDR):
(DecodeMRRC2):

  • capstone/Source/arch/ARM/ARMDisassembler.h: Added.
  • capstone/Source/arch/ARM/ARMGenAsmWriter.inc: Added.
  • capstone/Source/arch/ARM/ARMGenDisassemblerTables.inc: Added.
  • capstone/Source/arch/ARM/ARMGenInstrInfo.inc: Added.
  • capstone/Source/arch/ARM/ARMGenRegisterInfo.inc: Added.
  • capstone/Source/arch/ARM/ARMGenSubtargetInfo.inc: Added.
  • capstone/Source/arch/ARM/ARMInstPrinter.c: Added.

(get_op_access):
(set_mem_access):
(op_addImm):
(ARM_getRegName):
(translateShiftImm):
(printRegImmShift):
(printRegName):
(ARM_printInst):
(printOperand):
(printThumbLdrLabelOperand):
(printSORegRegOperand):
(printSORegImmOperand):
(printAM2PreOrOffsetIndexOp):
(printAddrModeTBB):
(printAddrModeTBH):
(printAddrMode2Operand):
(printAddrMode2OffsetOperand):
(printAM3PreOrOffsetIndexOp):
(printAddrMode3Operand):
(printAddrMode3OffsetOperand):
(printPostIdxImm8Operand):
(printPostIdxRegOperand):
(printPostIdxImm8s4Operand):
(printAddrMode5Operand):
(printAddrMode6Operand):
(printAddrMode7Operand):
(printAddrMode6OffsetOperand):
(printBitfieldInvMaskImmOperand):
(printMemBOption):
(printInstSyncBOption):
(printShiftImmOperand):
(printPKHLSLShiftImm):
(printPKHASRShiftImm):
(printRegisterList):
(printGPRPairOperand):
(printSetendOperand):
(printCPSIMod):
(printCPSIFlag):
(printMSRMaskOperand):
(printBankedRegOperand):
(printPredicateOperand):
(printMandatoryPredicateOperand):
(printSBitModifierOperand):
(printNoHashImmediate):
(printPImmediate):
(printCImmediate):
(printCoprocOptionImm):
(printAdrLabelOperand):
(printThumbS4ImmOperand):
(printThumbSRImm):
(printThumbITMask):
(printThumbAddrModeRROperand):
(printThumbAddrModeImm5SOperand):
(printThumbAddrModeImm5S1Operand):
(printThumbAddrModeImm5S2Operand):
(printThumbAddrModeImm5S4Operand):
(printThumbAddrModeSPOperand):
(printT2SOOperand):
(printAddrModeImm12Operand):
(printT2AddrModeImm8Operand):
(printT2AddrModeImm8s4Operand):
(printT2AddrModeImm0_1020s4Operand):
(printT2AddrModeImm8OffsetOperand):
(printT2AddrModeImm8s4OffsetOperand):
(printT2AddrModeSoRegOperand):
(printFPImmOperand):
(printNEONModImmOperand):
(printImmPlusOneOperand):
(printRotImmOperand):
(printModImmOperand):
(printFBits16):
(printFBits32):
(printVectorIndex):
(printVectorListOne):
(printVectorListTwo):
(printVectorListTwoSpaced):
(printVectorListThree):
(printVectorListFour):
(printVectorListOneAllLanes):
(printVectorListTwoAllLanes):
(printVectorListThreeAllLanes):
(printVectorListFourAllLanes):
(printVectorListTwoSpacedAllLanes):
(printVectorListThreeSpacedAllLanes):
(printVectorListFourSpacedAllLanes):
(printVectorListThreeSpaced):
(printVectorListFourSpaced):
(ARM_addVectorDataType):
(ARM_addVectorDataSize):
(ARM_addReg):
(ARM_addUserMode):
(ARM_addSysReg):

  • capstone/Source/arch/ARM/ARMInstPrinter.h: Added.
  • capstone/Source/arch/ARM/ARMMapping.c: Added.

(ARM_reg_name2):
(ARM_insn_name):
(ARM_rel_branch):
(ARM_blx_to_arm_mode):
(ARM_reg_access):

  • capstone/Source/arch/ARM/ARMMapping.h: Added.
  • capstone/Source/arch/ARM/ARMMappingInsn.inc: Added.
  • capstone/Source/arch/ARM/ARMMappingInsnOp.inc: Added.
  • capstone/Source/arch/ARM/ARMModule.c: Added.

(init):
(option):
(ARM_enable):

  • capstone/Source/arch/Mips/MipsDisassembler.c: Added.

(getFeatureBits):
(Mips_init):
(readInstruction16):
(readInstruction32):
(MipsDisassembler_getInstruction):
(Mips_getInstruction):
(getReg):
(DecodeINSVE_DF_4):
(DecodeAddiGroupBranch_4):
(DecodeDaddiGroupBranch_4):
(DecodeBlezlGroupBranch_4):
(DecodeBgtzlGroupBranch_4):
(DecodeBgtzGroupBranch_4):
(DecodeBlezGroupBranch_4):
(DecodeCPU16RegsRegisterClass):
(DecodeGPR64RegisterClass):
(DecodeGPRMM16RegisterClass):
(DecodeGPRMM16ZeroRegisterClass):
(DecodeGPRMM16MovePRegisterClass):
(DecodeGPR32RegisterClass):
(DecodePtrRegisterClass):
(DecodeDSPRRegisterClass):
(DecodeFGR64RegisterClass):
(DecodeFGR32RegisterClass):
(DecodeCCRRegisterClass):
(DecodeFCCRegisterClass):
(DecodeCCRegisterClass):
(DecodeFGRCCRegisterClass):
(DecodeMem):
(DecodeCacheOp):
(DecodeCacheOpMM):
(DecodeCacheOpR6):
(DecodeSyncI):
(DecodeMSA128Mem):
(DecodeMemMMImm4):
(DecodeMemMMSPImm5Lsl2):
(DecodeMemMMGPImm7Lsl2):
(DecodeMemMMReglistImm4Lsl2):
(DecodeMemMMImm12):
(DecodeMemMMImm16):
(DecodeFMem):
(DecodeFMem2):
(DecodeFMem3):
(DecodeFMemCop2R6):
(DecodeSpecial3LlSc):
(DecodeHWRegsRegisterClass):
(DecodeAFGR64RegisterClass):
(DecodeACC64DSPRegisterClass):
(DecodeHI32DSPRegisterClass):
(DecodeLO32DSPRegisterClass):
(DecodeMSA128BRegisterClass):
(DecodeMSA128HRegisterClass):
(DecodeMSA128WRegisterClass):
(DecodeMSA128DRegisterClass):
(DecodeMSACtrlRegisterClass):
(DecodeCOP2RegisterClass):
(DecodeBranchTarget):
(DecodeJumpTarget):
(DecodeBranchTarget21):
(DecodeBranchTarget26):
(DecodeBranchTarget7MM):
(DecodeBranchTarget10MM):
(DecodeBranchTargetMM):
(DecodeJumpTargetMM):
(DecodeAddiur2Simm7):
(DecodeUImm6Lsl2):
(DecodeLiSimm7):
(DecodeSimm4):
(DecodeSimm16):
(DecodeLSAImm):
(DecodeInsSize):
(DecodeExtSize):
(DecodeSimm19Lsl2):
(DecodeSimm18Lsl3):
(DecodeSimm9SP):
(DecodeANDI16Imm):
(DecodeUImm5lsl2):
(DecodeRegListOperand):
(DecodeRegListOperand16):
(DecodeMovePRegPair):
(DecodeSimm23Lsl2):

  • capstone/Source/arch/Mips/MipsDisassembler.h: Added.
  • capstone/Source/arch/Mips/MipsGenAsmWriter.inc: Added.
  • capstone/Source/arch/Mips/MipsGenDisassemblerTables.inc: Added.
  • capstone/Source/arch/Mips/MipsGenInstrInfo.inc: Added.
  • capstone/Source/arch/Mips/MipsGenRegisterInfo.inc: Added.
  • capstone/Source/arch/Mips/MipsGenSubtargetInfo.inc: Added.
  • capstone/Source/arch/Mips/MipsInstPrinter.c: Added.

(set_mem_access):
(isReg):
(MipsFCCToString):
(printRegName):
(Mips_printInst):
(printOperand):
(printUnsignedImm):
(printUnsignedImm8):
(printMemOperand):
(printMemOperandEA):
(printFCCOperand):
(printRegisterPair):
(printAlias1):
(printAlias2):
(printAlias):
(printRegisterList):

  • capstone/Source/arch/Mips/MipsInstPrinter.h: Added.
  • capstone/Source/arch/Mips/MipsMapping.c: Added.

(Mips_get_insn_id):
(Mips_group_name):
(Mips_map_insn):
(Mips_map_register):

  • capstone/Source/arch/Mips/MipsMapping.h: Added.
  • capstone/Source/arch/Mips/MipsMappingInsn.inc: Added.
  • capstone/Source/arch/Mips/MipsModule.c: Added.

(init):
(option):
(Mips_enable):

  • capstone/Source/capstone.pc.in: Added.
  • capstone/Source/config.mk: Added.
  • capstone/Source/cs.c: Added.

(cs_kern_os_calloc):
(cs_version):
(cs_support):
(cs_errno):
(cs_strerror):
(cs_open):
(cs_close):
(fill_insn):
(skipdata_size):
(cs_option):
(skipdata_opstr):
(cs_disasm):
(cs_disasm_ex):
(cs_free):
(cs_malloc):
(cs_disasm_iter):
(cs_reg_name):
(cs_insn_name):
(cs_group_name):
(cs_insn_group):
(cs_reg_read):
(cs_reg_write):
(cs_op_count):
(cs_op_index):
(cs_regs_access):

  • capstone/Source/cs_priv.h: Added.
  • capstone/Source/functions.mk: Added.
  • capstone/Source/include/capstone/arm.h: Added.
  • capstone/Source/include/capstone/arm64.h: Added.
  • capstone/Source/include/capstone/capstone.h: Added.
  • capstone/Source/include/capstone/evm.h: Added.
  • capstone/Source/include/capstone/m680x.h: Added.
  • capstone/Source/include/capstone/m68k.h: Added.
  • capstone/Source/include/capstone/mips.h: Added.
  • capstone/Source/include/capstone/platform.h: Added.
  • capstone/Source/include/capstone/ppc.h: Added.
  • capstone/Source/include/capstone/sparc.h: Added.
  • capstone/Source/include/capstone/systemz.h: Added.
  • capstone/Source/include/capstone/tms320c64x.h: Added.
  • capstone/Source/include/capstone/x86.h: Added.
  • capstone/Source/include/capstone/xcore.h: Added.
  • capstone/Source/include/windowsce/intrin.h: Added.
  • capstone/Source/include/windowsce/stdint.h: Added.
  • capstone/Source/make.sh: Added.
  • capstone/Source/nmake-x86.bat: Added.
  • capstone/Source/nmake.bat: Added.
  • capstone/Source/pkgconfig.mk: Added.
  • capstone/Source/utils.c: Added.

(make_id2insn):
(insn_find):
(name2id):
(id2name):
(count_positive):
(count_positive8):
(cs_strdup):
(cs_snprintf):
(arr_exist8):
(arr_exist):

  • capstone/Source/utils.h: Added.
  • capstone/capstone-Revision.txt: Added.

Source/WTF:

Add USE_CAPSTONE used for MIPS and ARM.

  • wtf/Platform.h:

Tools:

  • gtk/manifest.txt.in:
  • wpe/manifest.txt.in:
1:53 AM Changeset in webkit [231552] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[MIPS] Use mfhc1 and mthc1 to fix assembler error
https://bugs.webkit.org/show_bug.cgi?id=185464

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-09
Reviewed by Yusuke Suzuki.

The binutils-assembler started to report failures for copying words between
GP and FP registers for odd FP register indices. Use mfhc1 and mthc1 instead
of mfc1 and mtc1 for conversion.

  • offlineasm/mips.rb:
12:38 AM Changeset in webkit [231551] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[EME][GStreamer] Crash when the mediaKeys are created before loading the media in debug conf
https://bugs.webkit.org/show_bug.cgi?id=185244

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-05-09
Reviewed by Xabier Rodriguez-Calvar.

The function "MediaPlayerPrivateGStreamerBase::cdmInstanceAttached" is expected to be called once,
so there is an ASSERT(!m_cdmInstance).
But when the MediaKeys are created before loading the media, the cdminstance is created and attached
to the MediaPlayerPrivate via "MediaPlayerPrivateGStreamerBase::cdmInstanceAttached" before loading
the media, then when the media is loading, the function "MediaPlayerPrivateGStreamerBase::cdmInstanceAttached"
will be called several times via the function "mediaEngineWasUpdated" wich is called for each change
in the MediaElement state, thus the WebProcess crashes in the ASSERT(!m_cdmInstance).

This commit avoid the crash by replacing the assert with a simple check.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::cdmInstanceAttached):
(WebCore::MediaPlayerPrivateGStreamerBase::cdmInstanceDetached):

12:38 AM Changeset in webkit [231550] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[ARM] Disable test on Linux due to lack of executable memory
https://bugs.webkit.org/show_bug.cgi?id=185466

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-09
Reviewed by Yusuke Suzuki.

Do not run tests with LLInt disabled, otherwise test runs out of executable memory.

  • js/script-tests/dfg-uint32array-overflow-values.js:
  • js/script-tests/dfg-uint8clampedarray.js:
12:35 AM Changeset in webkit [231549] by Ms2ger@igalia.com
  • 7 edits
    2 deletes in trunk/LayoutTests

Update fast/events/constructors/(mouse|wheel)-event-constructor.html and expectations.
https://bugs.webkit.org/show_bug.cgi?id=115025

Reviewed by Michael Catanzaro.

clientX/Y values are clamped to a signed 26 bit-integer by using LayoutPoint.
I updated the test to expect that. (Alternatively, we could keep the
current expectations in the test and leave FAIL lines in the test
expectation file.)

Expectation files are updated or removed to match the test change, as
well as a number of code changes since the last time they were accurate.

  • fast/events/constructors/mouse-event-constructor-expected.txt:
  • fast/events/constructors/mouse-event-constructor.html:
  • fast/events/constructors/wheel-event-constructor-expected.txt:
  • fast/events/constructors/wheel-event-constructor.html:
  • platform/gtk/TestExpectations:
  • platform/gtk/fast/events/constructors/mouse-event-constructor-expected.txt: Removed.
  • platform/gtk/fast/events/constructors/wheel-event-constructor-expected.txt: Removed.
  • platform/mac/fast/events/constructors/mouse-event-constructor-expected.txt: Removed.
  • platform/mac/fast/events/constructors/wheel-event-constructor-expected.txt: Removed.
  • platform/wpe/TestExpectations:
12:05 AM Changeset in webkit [231548] by Antti Koivisto
  • 7 edits in trunk

Add OptionSet::operator& and operator bool
https://bugs.webkit.org/show_bug.cgi?id=185306

Reviewed by Anders Carlsson.

Source/WebCore:

Use it in a few places.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::reload):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::logReasonsForCompositing):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):

Source/WTF:

This is primarily to allow writing

if (options & Option:A)

instead of

if (options.contains(Option:A))

This is consistent with other OptionSet operators.

  • wtf/OptionSet.h:

(WTF::OptionSet::operator bool):
(WTF::OptionSet::operator&):

Also remove T versions of operator| and operator-, they are not needed due to
implicit conversion from T to OptionSet<T>.

Tools:

  • TestWebKitAPI/Tests/WTF/OptionSet.cpp:

(TestWebKitAPI::TEST):

May 8, 2018:

11:29 PM Changeset in webkit [231547] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[MIPS] Collect callee-saved register using inline assembly
https://bugs.webkit.org/show_bug.cgi?id=185428

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-08
Reviewed by Yusuke Suzuki.

MIPS used setjmp instead of collecting registers with inline assembly like
other architectures.

  • heap/RegisterState.h:
11:01 PM Changeset in webkit [231546] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[BigInt] Simplifying JSBigInt by using bool addition
https://bugs.webkit.org/show_bug.cgi?id=185374

Reviewed by Alex Christensen.

Since using TWO_DIGIT does not produce good code, we remove this part from digitAdd and digitSub.
Just adding overflow flag to carry/borrow produces setb + add in x86.

Also we annotate small helper functions and accessors with inline not to call these functions
inside internalMultiplyAdd loop.

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::isZero):
(JSC::JSBigInt::inplaceMultiplyAdd):
(JSC::JSBigInt::digitAdd):
(JSC::JSBigInt::digitSub):
(JSC::JSBigInt::digitMul):
(JSC::JSBigInt::digitPow):
(JSC::JSBigInt::digitDiv):
(JSC::JSBigInt::offsetOfData):
(JSC::JSBigInt::dataStorage):
(JSC::JSBigInt::digit):
(JSC::JSBigInt::setDigit):

10:50 PM Changeset in webkit [231545] by jmarcell@apple.com
  • 5 edits
    2 adds in branches/safari-605-branch

Cherry-pick r231441. rdar://problem/40050720

WebGL: Reset simulated values after validation fails
https://bugs.webkit.org/show_bug.cgi?id=185363
<rdar://problem/39733417>

Reviewed by Anders Carlsson.

Source/WebCore:

While fixing a previous bug, I forgot to reset some values
when validation fails. This caused a bug where a subsequent
invalid call might use those values and escape detection.

Test: fast/canvas/webgl/index-validation-with-subsequent-draws.html

  • html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::simulateVertexAttrib0): Reset the sizes when validation fails.
  • html/canvas/WebGLRenderingContextBase.h:

LayoutTests:

  • fast/canvas/webgl/index-validation-with-subsequent-draws-expected.txt: Added.
  • fast/canvas/webgl/index-validation-with-subsequent-draws.html: Added.

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

10:50 PM Changeset in webkit [231544] by jmarcell@apple.com
  • 6 edits
    2 adds in branches/safari-605-branch

Cherry-pick r231236. rdar://problem/40050705

Source/WebCore:
Prevent Debug ASSERT when changing forms
https://bugs.webkit.org/show_bug.cgi?id=185173
<rdar://problem/39738669>

Reviewed by Ryosuke Niwa.

Form submission could trigger a debug assertion during validation when
a form is changed during an input submission. Fix this by cleaning up
the event handling logic and make it more consistent with modern WebKit
coding style.

Test: fast/forms/form-submission-crash-3.html

  • html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::defaultEventHandler): Make sure layout runs before attempting to perform event handling.
  • html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::reportValidity): Ditto. (WebCore::HTMLFormElement::validateInteractively): Remove call to perform layout here, since we expect this to happen earlier in the layout pass. Add an assertion that the tree is not dirty.
  • html/ImageInputType.cpp: (WebCore::ImageInputType::handleDOMActivateEvent): Make sure layout runs before attempting to perform event handling.
  • html/SubmitInputType.cpp: (WebCore::SubmitInputType::handleDOMActivateEvent): Ditto.

LayoutTests:
Prevent assertion when changing forms
https://bugs.webkit.org/show_bug.cgi?id=185173
<rdar://problem/39738669>

Reviewed by Ryosuke Niwa.

  • fast/forms/form-submission-crash-3-expected.txt: Added.
  • fast/forms/form-submission-crash-3.html: Added.

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

10:01 PM Changeset in webkit [231543] by jmarcell@apple.com
  • 3 edits in branches/safari-605-branch/JSTests

Cherry-pick r230972. rdar://problem/40050818

Gardening: test fix after r230863.
https://bugs.webkit.org/show_bug.cgi?id=184846
<rdar://problem/39390672>

Not reviewed.

  • stress/json-stringified-overflow-2.js: (catch):
  • stress/json-stringified-overflow.js: (catch):

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

10:01 PM Changeset in webkit [231542] by jmarcell@apple.com
  • 4 edits
    1 add in branches/safari-605-branch

Cherry-pick r230863. rdar://problem/40050818

Handle more JSON stringify OOM
https://bugs.webkit.org/show_bug.cgi?id=184846
<rdar://problem/39390672>

Reviewed by Mark Lam.

JSTests:

  • stress/json-stringified-overflow-2.js: Added. Same as the one below, but with a bigger input which will trigger a different code path. (catch):
  • stress/json-stringified-overflow.js: Modify the test to only catch OOM on stringification. not on string creation.

Source/WTF:

JSON stringification can OOM easily. Here's another case.

  • wtf/text/StringBuilderJSON.cpp: (WTF::StringBuilder::appendQuotedJSONString):

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

10:01 PM Changeset in webkit [231541] by jmarcell@apple.com
  • 4 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r231335. rdar://problem/40050807

Widgets should hold a WeakPtr to their parents
https://bugs.webkit.org/show_bug.cgi?id=185239
<rdar://problem/39741250>

Reviewed by Zalan Bujtas.

  • platform/ScrollView.h: (WebCore::ScrollView::weakPtrFactory): Added.
  • platform/Widget.cpp: (WebCore::Widget::init): Don't perform an unnecessary assignment. (WebCore::Widget::setParent): Grab a WeakPtr to the parent ScrollView.
  • platform/Widget.h: (WebCore::Widget::parent const): Change type to a WeakPtr.

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

10:01 PM Changeset in webkit [231540] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/JavaScriptCore

Cherry-pick r231332. rdar://problem/40050814

Unreviewed, fix 32-bit profile offset for change in bytecode
length of the get_by_id and get_array_length opcodes.

  • llint/LowLevelInterpreter32_64.asm:

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

10:01 PM Changeset in webkit [231539] by jmarcell@apple.com
  • 3 edits
    1 add in branches/safari-605-branch

Cherry-pick r230980. rdar://problem/40050820

fromCharCode is missing some exception checks
https://bugs.webkit.org/show_bug.cgi?id=184952

Reviewed by Saam Barati.

JSTests:

  • stress/fromCharCode-exception-check.js: Added. (get catch):

Source/JavaScriptCore:

I also removed the pointless slow path function and moved it into the
main function.

  • runtime/StringConstructor.cpp: (JSC::stringFromCharCode): (JSC::stringFromCharCodeSlowCase): Deleted.

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

9:32 PM Changeset in webkit [231538] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Disable system preview link fetching
https://bugs.webkit.org/show_bug.cgi?id=185463

Reviewed by Jon Lee.

Temporarily disable system preview detection when a link
is clicked.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick):

9:14 PM Changeset in webkit [231537] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the internal iOS build

Add a missing import statement in an implementation file.

  • editing/cocoa/WebContentReaderCocoa.mm:
6:48 PM Changeset in webkit [231536] by commit-queue@webkit.org
  • 11 edits in trunk/Source

Adopt new async _savecookies SPI for keeping networking process active during flushing cookies
https://bugs.webkit.org/show_bug.cgi?id=185261
<rdar://problem/37214391>

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-05-08
Reviewed by Chris Dumez.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

By adopting new async SPI _savecookies, we can keep networking process active(not suspended)
until cookies are fully synced to disk with process assertion.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didSyncAllCookies):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::syncAllCookies):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::syncAllCookies):
(WebKit::NetworkProcessProxy::didSyncAllCookies):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::syncNetworkProcessCookies):

6:34 PM Changeset in webkit [231535] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Set colorspace in the PDF plugin.
https://bugs.webkit.org/show_bug.cgi?id=185445
<rdar://problem/40030981>

Reviewed by Simon Fraser.

  • WebProcess/Plugins/PDF/PDFLayerControllerSPI.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::PDFPlugin):

6:11 PM Changeset in webkit [231534] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Replace multiple Watchpoint Set fireAll() methods with templates
https://bugs.webkit.org/show_bug.cgi?id=185456

Reviewed by Saam Barati.

Refactored to minimize duplicate code.

  • bytecode/Watchpoint.h:

(JSC::WatchpointSet::fireAll):
(JSC::InlineWatchpointSet::fireAll):

5:41 PM Changeset in webkit [231533] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Don't clear selection until we are actually interacting with a Node.
https://bugs.webkit.org/show_bug.cgi?id=185455

Reviewed by Wenson Hsieh.

The presence of TextInteractionAssistant should not be used as a proxy for it we are actually editing content.
We need to check to see if we have an active node, and then we should clear the selection.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setSelectedTextRange:]):

5:40 PM Changeset in webkit [231532] by Ryan Haddad
  • 25 edits
    1 delete in trunk/Source

Unreviewed, rolling out r231486.

Caused service worker LayoutTest failures on macOS Debug WK2.

Reverted changeset:

"Allow WebResourceLoader to cancel a load served from a
service worker"
https://bugs.webkit.org/show_bug.cgi?id=185274
https://trac.webkit.org/changeset/231486

5:37 PM Changeset in webkit [231531] by Wenson Hsieh
  • 6 edits
    2 deletes in trunk

Consolidate WebContentReaderIOS and WebContentReaderMac into WebContentReaderCocoa
https://bugs.webkit.org/show_bug.cgi?id=185340

Reviewed by Tim Horton.

Source/WebCore:

WebContentReader::readURL is currently the only method implemented separately in iOS and macOS platform
WebContentReader files. The implementation across macOS and iOS is nearly identical (with some exceptions with
the way iOS handles file URLs and plain text editing), so we can merge these into a single method
WebContentReaderCocoa and delete WebContentReaderIOS and WebContentReaderMac.

This also has the added bonus of fixing a latent bug in WebContentReaderMac, wherein URLs written to the
pasteboard using -[NSPasteboard writeObjects:] are currently pasted as empty anchor elements. In this case, the
link title isn't made explicit, so the title passed in to WebContentReader::readURL is empty. On iOS, we have
code to fall back to pasting the absolute string of the URL if the title is empty, but on macOS, we'll just use
this empty string as the title of the anchor.

Test: PasteMixedContent.PasteURLWrittenToPasteboardUsingWriteObjects

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::WebContentReader::readURL):

  • editing/ios/WebContentReaderIOS.mm: Removed.
  • editing/mac/WebContentReaderMac.mm: Removed.

Tools:

Adds a new API test to verify that URLs written using -[NSPasteboard writeObjects:] are pasted as anchors with
non-empty text in a contenteditable.

  • TestWebKitAPI/Tests/WebKitCocoa/PasteMixedContent.mm:

(TestWebKitAPI::TEST):

5:31 PM Changeset in webkit [231530] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] _WKWebViewPrintFormatter should return a page count of 0 for PDF documents that do not allow printing
https://bugs.webkit.org/show_bug.cgi?id=185133

Reviewed by Andreas Kling.

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView _ensureDocumentForPrinting]):
(-[WKPDFView _wk_pageCountForPrintFormatter:]):
(-[WKPDFView _wk_printedDocument]):

5:20 PM Changeset in webkit [231529] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[Simple line layout] Cache run resolver.
https://bugs.webkit.org/show_bug.cgi?id=185411

Reviewed by Antti Koivisto.

This patch caches the run resolver on the [SimpleLine]Layout object.
In certain cases, when the block container has thousands of elements (foobar1<br>foobar2<br>.....foobar9999<br>),
constructing the resolver (and its dependencies) in a repeating fashion could hang the WebProcess.

Covered by existing tests.

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::create):
(WebCore::SimpleLineLayout::Layout::create):
(WebCore::SimpleLineLayout::Layout::Layout):

  • rendering/SimpleLineLayout.h:

(WebCore::SimpleLineLayout::Layout::runResolver const):

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::paintFlow):
(WebCore::SimpleLineLayout::hitTestFlow):
(WebCore::SimpleLineLayout::collectFlowOverflow):
(WebCore::SimpleLineLayout::computeBoundingBox):
(WebCore::SimpleLineLayout::computeFirstRunLocation):
(WebCore::SimpleLineLayout::collectAbsoluteRects):
(WebCore::SimpleLineLayout::collectAbsoluteQuads):
(WebCore::SimpleLineLayout::textOffsetForPoint):
(WebCore::SimpleLineLayout::collectAbsoluteQuadsForRange):
(WebCore::SimpleLineLayout::generateLineBoxTree):

  • rendering/SimpleLineLayoutResolver.cpp:

(WebCore::SimpleLineLayout::LineResolver::LineResolver):

  • rendering/SimpleLineLayoutResolver.h:

(WebCore::SimpleLineLayout::lineResolver):

5:13 PM Changeset in webkit [231528] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] WKPDFView remains in the view hierarchy after navigating away
https://bugs.webkit.org/show_bug.cgi?id=185449
<rdar://problem/39693469>

Reviewed by Tim Horton.

WKPDFView removes the PDF host view from the view hierarchy in its -dealloc
method, and relies on WKWebView releasing its last reference in
-_setHasCustomContentView:loadedMIMEType: when the user navigates.

However, WKWPDFView was capturing a strong reference to self in the block passed
to +[PDFHostViewController createHostView:forExtensionIdentifier:], and PDFKit
(actually UIKit) is retaining this block beyond its being called. This results in
the PDF host view remaining as a child of the WKScrollView even after the user
navigates to another page.

Changed the aforementioned block to a lambda that captures a weak reference to
self to prevent WKPDFView from outliving the current navigation.

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView retain]):
(-[WKPDFView web_setContentProviderData:suggestedFilename:]):

5:09 PM Changeset in webkit [231527] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Console drawer resizing is broken when console prompt has >1 line of code
https://bugs.webkit.org/show_bug.cgi?id=185369
<rdar://problem/40013202>

Reviewed by Devin Rousso.

Mouse offset calculation should account for the height of the quick console.
The only reason resizing worked with the single-line quick console is that
the offset calculation included the resizer height, which is very close
to that of the single-line quick console (27px and 30px respectively).

  • UserInterface/Views/ConsoleDrawer.js:
5:04 PM Changeset in webkit [231526] by commit-queue@webkit.org
  • 4 edits in trunk

test262/Runner.pm: create results dir for results of test262 run
https://bugs.webkit.org/show_bug.cgi?id=185392

Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-08
Reviewed by Michael Saboff.

.:

Remove reference to no longer existing files.

  • .gitignore:

Tools:

New directory test262-results created from where ever script is
called.

  • Scripts/test262/Runner.pm:

(processCLI):

5:00 PM Changeset in webkit [231525] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

test262/Runner.pm: lower number of processes per core
https://bugs.webkit.org/show_bug.cgi?id=185426

Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-08
Reviewed by Michael Saboff.

  • Scripts/test262/Runner.pm:

(getProcesses):

4:59 PM Changeset in webkit [231524] by wilander@apple.com
  • 3 edits in trunk/Source/WebKit

Storage Access API: Make user opt-in sticky
https://bugs.webkit.org/show_bug.cgi?id=185454
<rdar://problem/40003946>

Reviewed by Alex Christensen.

This patch persists the user's choice to opt-in to access under specific domains.
Such storage access should age out with the accessing domain's cookies and website
data. The opt-in prompt is still an experimental feature.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::hasStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener):
(WebKit::WebResourceLoadStatisticsStore::grantStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::grantStorageAccessInternal):
(WebKit::WebResourceLoadStatisticsStore::hasUserGrantedStorageAccessThroughPrompt const):
(WebKit::WebResourceLoadStatisticsStore::hasHadUnexpiredRecentUserInteraction const):

  • UIProcess/WebResourceLoadStatisticsStore.h:
4:33 PM Changeset in webkit [231523] by commit-queue@webkit.org
  • 1 edit
    4 adds in trunk/Tools

Test262-Runner: Add base Perl UnicodeData
https://bugs.webkit.org/show_bug.cgi?id=185444

Patch by Leo Balter <Leo Balter> on 2018-05-08
Reviewed by Michael Saboff.

  • Scripts/test262/local/lib/perl5/unicore/lib/gc_sc/SpacePer.pl: Added.
  • Scripts/test262/local/lib/perl5/unicore/lib/gc_sc/Word.pl: Added.
4:30 PM Changeset in webkit [231522] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

DFG::FlowMap::resize() shouldn't resize the shadow map unless we're in SSA
https://bugs.webkit.org/show_bug.cgi?id=185453

Reviewed by Michael Saboff.

Tiny improvement for compile times.

  • dfg/DFGFlowMap.h:

(JSC::DFG::FlowMap::resize): Remove one Vector::resize() when we're not in SSA.

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::beginBasicBlock): Record some data about how long we spend in different parts of this and add a FIXME linking bug 185452.

4:28 PM Changeset in webkit [231521] by dbates@webkit.org
  • 4 edits in trunk

Do not apply X-Frame-Options and CSP frame-ancestors to Quick Look-applicable responses in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=185442
<rdar://problem/40067209>

Reviewed by Andy Estes.

Source/WebKit:

Just as we exempt responses in WebContent process that will be handled by Quick Look from the Content
Security Policy frame-ancestors directive and X-Frame-Options checking we need to do the same when
such checks are performed in NetworkProcess following r231479.

HTTP responses that will be previewed using Quick Look are not considered web pages and are subject
to the security model for Quick Look documents. That is, they are exempt from Content Security Policy
and X-Frame-Options processing.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::shouldInterruptLoadForCSPFrameAncestorsOrXFrameOptions):

LayoutTests:

Remove test http/tests/quicklook/csp-header-ignored.html from TestExpectations now that it passes.

  • platform/ios/TestExpectations:
4:26 PM Changeset in webkit [231520] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Switch some RELEASE_ASSERTS to plain debug ASSERTS in PlatformScreenMac.mm
https://bugs.webkit.org/show_bug.cgi?id=185451
<rdar://problem/39620348>

Reviewed by Zalan Bujtas.

Change a set of RELEASE_ASSERTS used to prevent accessing NSScreen related functions in the
PlatformScreenMac implementation to less expensive Debug ASSERTS.

No change in behavior.

  • platform/mac/PlatformScreenMac.mm:

(WebCore::screenHasInvertedColors):
(WebCore::screenDepth):
(WebCore::screenDepthPerComponent):
(WebCore::screenRectForDisplay):
(WebCore::screenRect):
(WebCore::screenAvailableRect):
(WebCore::screenColorSpace):
(WebCore::screenSupportsExtendedColor):

4:22 PM Changeset in webkit [231519] by dbates@webkit.org
  • 4 edits
    2 adds in trunk

Add tests to ensure that the Strong Password appearance is removed on form reset
https://bugs.webkit.org/show_bug.cgi?id=185440

Reviewed by Ryosuke Niwa.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/DidResignInputElementStrongPasswordAppearance.mm:

(-[DidResignInputElementStrongPasswordAppearance webProcessPlugIn:didCreateBrowserContextController:]):

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(TEST):

LayoutTests:

  • fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-form-is-reset-expected.html: Added.
  • fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-form-is-reset.html: Added.
4:20 PM Changeset in webkit [231518] by msaboff@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Deferred firing of structure transition watchpoints is racy
https://bugs.webkit.org/show_bug.cgi?id=185438

Reviewed by Saam Barati.

Changed DeferredStructureTransitionWatchpointFire to take the watchpoints to fire
and fire them in the destructor. When the watchpoints are taken from the
original WatchpointSet, that WatchpointSet if marked invalid.

  • bytecode/Watchpoint.cpp:

(JSC::WatchpointSet::fireAllSlow):
(JSC::WatchpointSet::take):
(JSC::DeferredWatchpointFire::DeferredWatchpointFire):
(JSC::DeferredWatchpointFire::~DeferredWatchpointFire):
(JSC::DeferredWatchpointFire::fireAll):
(JSC::DeferredWatchpointFire::takeWatchpointsToFire):

  • bytecode/Watchpoint.h:

(JSC::WatchpointSet::fireAll):
(JSC::InlineWatchpointSet::fireAll):

  • runtime/JSObject.cpp:

(JSC::JSObject::setPrototypeDirect):
(JSC::JSObject::convertToDictionary):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::putDirectInternal):

  • runtime/Structure.cpp:

(JSC::Structure::Structure):
(JSC::DeferredStructureTransitionWatchpointFire::DeferredStructureTransitionWatchpointFire):
(JSC::DeferredStructureTransitionWatchpointFire::~DeferredStructureTransitionWatchpointFire):
(JSC::DeferredStructureTransitionWatchpointFire::dump const):
(JSC::Structure::didTransitionFromThisStructure const):
(JSC::DeferredStructureTransitionWatchpointFire::add): Deleted.

  • runtime/Structure.h:

(JSC::DeferredStructureTransitionWatchpointFire::structure const):

4:16 PM Changeset in webkit [231517] by dbates@webkit.org
  • 7 edits
    6 adds in trunk

Resign Strong Password appearance when text field value changes
https://bugs.webkit.org/show_bug.cgi?id=185433
<rdar://problem/39958508>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Remove the Strong Password decoration when the text field's value changes to avoid interfering
with web sites that allow a person to clear the password field.

Tests: fast/forms/auto-fill-button/auto-fill-strong-password-button-when-maxlength-changes.html

fast/forms/auto-fill-button/auto-fill-strong-password-button-when-minlength-changes.html
fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-value-changes.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::resignStrongPasswordAppearance): Extracted from HTMLInputElement::updateType().
(WebCore::HTMLInputElement::updateType): Extract out logic to resign the Strong Password appearance
into a function that can be shared by this function and HTMLInputElement::setValue().
(WebCore::HTMLInputElement::setValue): Resign the Strong Password appearance if this field was
changed programmatically (i.e. no DOM change event was dispatched).

  • html/HTMLInputElement.h:

Tools:

Add a unit test to ensure the injected bundle API and WebKit UI delegate SPI is invoked
when the field has the Strong Password button and its value changes.

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(testDidResignInputElementStrongPasswordAppearanceAfterEvaluatingJavaScript):
(TEST):

LayoutTests:

Add a test to ensure we remove the Strong Password appearance when the value of the text field value changes.

  • fast/forms/auto-fill-button/auto-fill-strong-password-button-when-maxlength-changes-expected.html: Added.
  • fast/forms/auto-fill-button/auto-fill-strong-password-button-when-maxlength-changes.html: Added.
  • fast/forms/auto-fill-button/auto-fill-strong-password-button-when-minlength-changes-expected.html: Added.
  • fast/forms/auto-fill-button/auto-fill-strong-password-button-when-minlength-changes.html: Added.
  • fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-value-changes-expected.html: Added.
  • fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-value-changes.html: Added.
  • fast/forms/auto-fill-button/resources/process-auto-fill-button-type-and-invoke-runTest.js: Add support for

setting the autofilled state of a field.
(window.onload):

4:12 PM Changeset in webkit [231516] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix; add missing function definition.

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::didPassCORSAccessCheck const):

2:53 PM Changeset in webkit [231515] by eric.carlson@apple.com
  • 5 edits in trunk

Consecutive messages logged as JSON are coalesced
https://bugs.webkit.org/show_bug.cgi?id=185432

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/ConsoleMessage.cpp:

(Inspector::ConsoleMessage::isEqual const): Messages with JSON arguments are not equal.

LayoutTests:

  • inspector/console/webcore-logging-expected.txt:
  • inspector/console/webcore-logging.html:
2:49 PM Changeset in webkit [231514] by fpizlo@apple.com
  • 14 edits in trunk

InPlaceAbstractState::beginBasicBlock shouldn't have to clear any abstract values
https://bugs.webkit.org/show_bug.cgi?id=185365

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch does three things to improve compile times:

  • Fixes some inlining goofs.


  • Adds the ability to measure compile times with run-jsc-benchmarks.


  • Dramatically improves the performance of InPlaceAbstractState::beginBasicBlock by removing the code that clears abstract values. It turns out that on constant folding "needed" this, in the sense that this was the only thing protecting it from loading the abstract value of a no-result node and then concluding that because it had a non-empty m_value, it could be constant-folded. Any node that produces a result will explicitly set its abstract value, so this problem can also be guarded by just having constant folding check if the node it wants to fold returns any result.


Solid 0.96% compile time speed-up across SunSpider-CompileTime and V8Spider-CompileTime.

Rolling back in after fixing cloop build.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::set):

  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::merge):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::doToChildrenWithNode):
(JSC::DFG::Graph::doToChildren):

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::beginBasicBlock):

  • jit/JIT.cpp:

(JSC::JIT::totalCompileTime):

  • jit/JIT.h:
  • jsc.cpp:

(GlobalObject::finishCreation):
(functionTotalCompileTime):

Source/WTF:

Fix some inlining goof-ups.

Rolling back in after fixing cloop build.

  • wtf/TinyPtrSet.h:

(WTF::TinyPtrSet::add):
(WTF::TinyPtrSet::merge):
(WTF::TinyPtrSet::addOutOfLine):
(WTF::TinyPtrSet::mergeOtherOutOfLine):

Tools:

Make it possible to measure compile times.

Rolling back in after fixing cloop builds.

  • Scripts/run-jsc-benchmarks:
2:32 PM Changeset in webkit [231513] by jer.noble@apple.com
  • 6 edits
    5 adds in trunk

Mute MediaElementSourceNode when tainted.
https://bugs.webkit.org/show_bug.cgi?id=184866

Reviewed by Eric Carlson.

Source/WebCore:

Test: http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin.html

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::wouldTaintOrigin const):

  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::setFormat):
(WebCore::MediaElementAudioSourceNode::wouldTaintOrigin):
(WebCore::MediaElementAudioSourceNode::process):

  • Modules/webaudio/MediaElementAudioSourceNode.h:

LayoutTests:

  • http/tests/media/resources/1000Hz-sin.wav: Added.
  • http/tests/security/webaudio-render-remote-audio-allowed-crossorigin-expected.txt: Added.
  • http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html: Added.
  • http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin-expected.txt: Added.
  • http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin.html: Added.
2:22 PM Changeset in webkit [231512] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

Log rtcstats as JSON
https://bugs.webkit.org/show_bug.cgi?id=185437
<rdar://problem/40065332>

Reviewed by Youenn Fablet.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::RTCStatsLogger::RTCStatsLogger): Create a wrapper class so we don't have to add a
toJSONString method to libwebrtc.
(WebCore::RTCStatsLogger::toJSONString const): Log stats as JSON.
(WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered): Don't use the LOGIDENTIFIER macro because
it doesn't work well inside of a lambda.
(WTF::LogArgument<WebCore::RTCStatsLogger>::toString): Move into .cpp file because it is only
used here.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:

(WTF::LogArgument<webrtc::RTCStats>::toString): Deleted. Move to .cpp file.

2:19 PM Changeset in webkit [231511] by BJ Burg
  • 2 edits in trunk/Source/WebKit

REGRESSION(r230743): Mousemove events are not coalesced properly, mousemove/drag is very laggy
https://bugs.webkit.org/show_bug.cgi?id=185425
<rdar://problem/39323336>

Reviewed by Simon Fraser.

When mousemove events come in faster than they can be processed, we should coalesce
pending mousemoves that have not yet been sent to WebProcess. This has the effect of
processing the most recent mousemove location, which is the old behavior that regressed.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleMouseEvent):
If there is >1 event in the mouse queue, then the first one is being processed by WebProcess
and the second one is eligible for coalescing. Replace it if the last event and new event
are both mousemoves.

1:34 PM Changeset in webkit [231510] by pvollan@apple.com
  • 6 edits
    1 add in trunk/Source/WebKit

The PDF context menu should not be created in the WebContent process.
https://bugs.webkit.org/show_bug.cgi?id=185401

Reviewed by Tim Horton.

Send a sync IPC message from the WebContent process to the UI process with the necessary context
menu information when the menu is requested. The NSMenu will then be created and shown in the
UI process. The reply will contain the selected menu item index.

  • Shared/mac/PDFContextMenu.h: Added.

(WebKit::PDFContextMenuItem::encode const):
(WebKit::PDFContextMenuItem::decode):
(WebKit::PDFContextMenu::encode const):
(WebKit::PDFContextMenu::decode):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/WebPageProxyMac.mm:

(-[WKPDFMenuTarget menuItem]):
(-[WKPDFMenuTarget contextMenuAction:]):
(WebKit::WebPageProxy::showPDFContextMenu):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::handleContextMenuEvent):

1:29 PM Changeset in webkit [231509] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

Skip test http/tests/appcache/x-frame-options-prevents-framing.php for now in WebKit2.

Will address in <https://bugs.webkit.org/show_bug.cgi?id=185443>.

  • platform/wk2/TestExpectations:
1:16 PM Changeset in webkit [231508] by Wenson Hsieh
  • 2 edits in trunk/Tools

[iOS] WKAttachmentTestsIOS.InsertDroppedItemProvidersInOrder fails after r231396
https://bugs.webkit.org/show_bug.cgi?id=185414

Reviewed by Tim Horton.

Adjust a test expectation to check that the resulting DOM contains an attachment element,
anchor element, and another attachment element in that order. This ensures that the test
still passes, even after the anchor element is followed by a line break.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

1:12 PM Changeset in webkit [231507] by dino@apple.com
  • 11 edits in trunk/Source

System Preview links should trigger a download
https://bugs.webkit.org/show_bug.cgi?id=185439
<rdar://problem/40065545>

Reviewed by Jon Lee.

Source/WebCore:

Add a new field to FrameLoadRequest, which then is copied
into ResourceRequest, identifying if the link clicked
is a system preview.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick): Look for isSystemPreviewLink().

  • loader/FrameLoadRequest.cpp:

(WebCore::FrameLoadRequest::FrameLoadRequest):

  • loader/FrameLoadRequest.h: New property.

(WebCore::FrameLoadRequest::FrameLoadRequest):
(WebCore::FrameLoadRequest::isSystemPreview const):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::loadURL):

  • loader/FrameLoader.h:
  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::isSystemPreview const):
(WebCore::ResourceRequestBase::setSystemPreview):

  • platform/network/ResourceRequestBase.h:

Source/WebKit:

Encode the new field identifying a system preview. And
if you encounter such a resource request, trigger
a download.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ResourceRequest>::encode):
(IPC::ArgumentCoder<ResourceRequest>::decode):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

12:42 PM Changeset in webkit [231506] by jmarcell@apple.com
  • 6 edits
    2 adds in branches/safari-605-branch

Cherry-pick r231291. rdar://problem/40050729

Use RetainPtr for form input type
https://bugs.webkit.org/show_bug.cgi?id=185210
<rdar://problem/39734040>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Refactor our HTMLInputElement class to store its InputType member as a RefPtr.

Test: fast/forms/access-key-mutation-2.html.

  • html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::HTMLInputElement): (WebCore::HTMLInputElement::didAddUserAgentShadowRoot): (WebCore::HTMLInputElement::accessKeyAction): (WebCore::HTMLInputElement::parseAttribute): (WebCore::HTMLInputElement::appendFormData):
  • html/HTMLInputElement.h:
  • html/InputType.cpp: (WebCore::createInputType): (WebCore::InputType::create): (WebCore::InputType::createText):
  • html/InputType.h:

LayoutTests:

  • fast/forms/access-key-mutation-2-expected.txt: Added.
  • fast/forms/access-key-mutation-2.html: Added.

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

12:42 PM Changeset in webkit [231505] by jmarcell@apple.com
  • 3 edits
    1 add in branches/safari-605-branch

Cherry-pick r231196. rdar://problem/40050709

IntlObject.cpp::removeUnicodeLocaleExtension() should not touch locales that end in '-u'
https://bugs.webkit.org/show_bug.cgi?id=185162

Reviewed by Filip Pizlo.

JSTests:

  • stress/incomplete-unicode-locale.js: Added. (catch):

Source/JavaScriptCore:

  • runtime/IntlObject.cpp: (JSC::removeUnicodeLocaleExtension):

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

12:42 PM Changeset in webkit [231504] by jmarcell@apple.com
  • 3 edits
    1 add in branches/safari-605-branch

Cherry-pick r231187. rdar://problem/39987469

Improve the performance of FontCascadeDescription's effectiveFamilies
https://bugs.webkit.org/show_bug.cgi?id=184720
PerformanceTests:

Reviewed by Simon Fraser.

This performance test calls SystemFontDatabase::systemFontCascadeList() around 2,000,000 times (before
this patch is applied), which is roughly equivalent to the page we found the performance problem on.
The calling pattern is roughly equivalent in this test.

  • Layout/system-ui.html: Added.

Source/WebCore:

<rdar://problem/38970927>

Reviewed by Simon Fraser.

The page that had the performance problem renders many different Chinese characters in system-ui
with only a small number of individual fonts. It turns out we were calling into the system-ui
machinery for each character in order to opportunistically start loading data URLs (see also:
https://bugs.webkit.org/show_bug.cgi?id=175845). These data URLS will never represent the system
font, so we don't need to invoke the system-ui machinery at all.

This patch makes a 92x performance improvement on the associated performance test. This test is
designed to test Chinese text rendered with system-ui.

Performance test: Layout/system-ui.html

  • platform/graphics/FontCascadeFonts.cpp: (WebCore::opportunisticallyStartFontDataURLLoading):

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

12:42 PM Changeset in webkit [231503] by jmarcell@apple.com
  • 4 edits
    1 add in branches/safari-605-branch

Cherry-pick r231034. rdar://problem/40050717

In FTLLowerDFGToB3.cpp::compileCreateRest, always use a contiguous array as the indexing type when under isWatchingHavingABadTimeWatchpoint
https://bugs.webkit.org/show_bug.cgi?id=184773
<rdar://problem/37773612>

Reviewed by Filip Pizlo.

JSTests:

This bug requires a race between the thread doing FTL compilation and the main thread, but it triggers in 100% of cases (before the fix) on my machine
so I decided to add it to the stress tests nonetheless.

  • stress/create-rest-while-having-a-bad-time.js: Added. (f): (g): (h):

Source/JavaScriptCore:

We were calling restParameterStructure(), which returns arrayStructureForIndexingTypeDuringAllocation(ArrayWithContiguous).
arrayStructureForIndexingTypeDuringAllocation uses m_arrayStructureForIndexingShapeDuringAllocation, which is set to SlowPutArrayStorage when we are 'having a bad time'.
This is problematic, because the structure is then passed to allocateUninitializedContiguousJSArray, which ASSERTs that the indexing type is contiguous (or int32).
We solve the problem by using originalArrayStructureForIndexingType which always returns a structure with the right indexing type (contiguous), even if we are having a bad time.
This is safe, as we are under isWatchingHavingABadTimeWatchpoint, so if we have a bad time, the code we generate will never be installed.

  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCreateRest):

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

12:42 PM Changeset in webkit [231502] by jmarcell@apple.com
  • 3 edits
    4 adds in branches/safari-605-branch

Cherry-pick r230740. rdar://problem/40050731

A put is not an ExistingProperty put when we transition a structure because of an attributes change
https://bugs.webkit.org/show_bug.cgi?id=184706
<rdar://problem/38871451>

Reviewed by Saam Barati.

JSTests:

  • stress/put-by-id-direct-strict-transition.js: Added. (const.foo): (j.const.obj.set hello):
  • stress/put-by-id-direct-transition.js: Added. (const.foo): (j.const.obj.set hello):
  • stress/put-getter-setter-by-id-strict-transition.js: Added. (const.foo): (j.const.obj.set hello):
  • stress/put-getter-setter-by-id-transition.js: Added. (const.foo): (j.const.obj.set hello):

Source/JavaScriptCore:

When putting a property on a structure and the slot is a different
type, the slot can't be said to have already been existing.

  • runtime/JSObjectInlines.h: (JSC::JSObject::putDirectInternal):

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

12:36 PM Changeset in webkit [231501] by wilander@apple.com
  • 7 edits in trunk/Source/WebKit

Storage Access API: Add a request roundtrip to check whether prompting is needed
https://bugs.webkit.org/show_bug.cgi?id=185368
<rdar://problem/40011556>

Reviewed by Alex Christensen and Youenn Fablet.

This patch adds an enum WebKit::StorageAccessStatus to handle our three access
states:

  • WebKit::StorageAccessStatus::CannotRequestAccess.

This means the domain is blocked from cookie access.

  • WebKit::StorageAccessStatus::RequiresUserPrompt.

This means that access has not been granted yet and a prompt is required.

  • WebKit::StorageAccessStatus::HasAccess.

This either means that this domain does not need to ask for access,
access was already granted, or access was granted now.

If the call to WebResourceLoadStatisticsStore::requestStorageAccess() comes
back as WebKit::StorageAccessStatus::RequiresUserPrompt, the WebPageProxy
prompts the user and if the user said yes, calls a direct
WebResourceLoadStatisticsStore::grantStorageAccess().

Existing test cases pass because requestStorageAccessConfirm in WKPage.cpp
does not have m_client.requestStorageAccessConfirm and thus returns true.

  • UIProcess/Network/NetworkProcessProxy.messages.in:

Added a missing #endif.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestStorageAccess):

Here we now handle the various cases encoded in WebKit::StorageAccessStatus.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess):

Now covers the optional prompt case.

(WebKit::WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener):
(WebKit::WebResourceLoadStatisticsStore::grantStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::grantStorageAccessInternal):

Granting access is broken out to allow WebKit::WebPageProxy to call it
directly.

  • UIProcess/WebResourceLoadStatisticsStore.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::requestStorageAccess):
(WebKit::WebsiteDataStore::grantStorageAccess):

Piping through calls from from WebKit::WebResourceLoadStatisticsStore
to WebKit::WebPageProxy.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
12:34 PM Changeset in webkit [231500] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

Mark test http/tests/quicklook/csp-header-ignored.html as Failure.

Will fix in <https://bugs.webkit.org/show_bug.cgi?id=185442>.

  • platform/ios/TestExpectations:
12:23 PM Changeset in webkit [231499] by youenn@apple.com
  • 8 edits in trunk/LayoutTests

Some appcache crash tests are flaky due to console messages
https://bugs.webkit.org/show_bug.cgi?id=185431

Reviewed by Geoffrey Garen.

Mark 3 tests that were written to test crashes as DumpJSConsoleLogInStdErr.
It is better to mark them as such than to changing them since they might no longer cover the crash reasons.
Rebase two other tests that might need further work to stop being flaky.

  • TestExpectations:
  • http/tests/appcache/404-resource-with-slow-main-resource-expected.txt:
  • http/tests/appcache/abort-cache-onchecking-manifest-404-expected.txt:
  • http/tests/appcache/deferred-events-expected.txt:
  • http/tests/appcache/fail-on-update-2-expected.txt:
  • http/tests/appcache/fail-on-update-expected.txt:
  • platform/mac/TestExpectations:
11:58 AM Changeset in webkit [231498] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Unreviewed, rolling out r231376 and r231458.

Caused some API tests failures on iOS

Reverted changesets:

"[iOS] Apps that are not visible may not get suspended if they
trigger page loads while in the background"
https://bugs.webkit.org/show_bug.cgi?id=185318
https://trac.webkit.org/changeset/231376

"[iOS] Release page load process assertion if the screen is
locked"
https://bugs.webkit.org/show_bug.cgi?id=185333
https://trac.webkit.org/changeset/231458

11:57 AM Changeset in webkit [231497] by dino@apple.com
  • 8 edits
    1 copy in trunk/Source

Use thumbnails in System Previews
https://bugs.webkit.org/show_bug.cgi?id=185397
<rdar://problem/40039376>

Reviewed by Jon Lee.

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/ios/SystemPreviewSPI.h: New file holding the non-public parts of System Preview.

Source/WebKit:

A system preview that goes through the WKWebViewContentProvider will
show a static thumbnail/snapshot of the item, rather than jumping
directly to QuickLook.

This means we have to link to the AssetViewer framework. That provides
a ASVThumbnailView that will trigger QuickLook for us.

  • Configurations/WebKit.xcconfig: Link to AssetViewer.
  • UIProcess/ios/WKSystemPreviewView.h: Better macro use. Remove some unneeded protocols.
  • UIProcess/ios/WKSystemPreviewView.mm:

(-[WKSystemPreviewView web_setContentProviderData:suggestedFilename:]): Update this
to use an ASVThumbnailView, when on the internal SDK (because it is private).
(-[WKSystemPreviewView _layoutThumbnailView]): Use the content insets to put
the thumbnail in the right place.
(-[WKSystemPreviewView thumbnailView:wantsToPresentPreviewController:forItem:]):
Delegate method.
(-[WKSystemPreviewView web_contentView]):
(-[WKSystemPreviewView web_computedContentInsetDidChange]):
(-[WKSystemPreviewView numberOfPreviewItemsInPreviewController:]): Deleted.
(-[WKSystemPreviewView previewController:previewItemAtIndex:]): Deleted.
(-[WKSystemPreviewView previewControllerWillDismiss:]): Deleted.

Source/WTF:

SYSTEM_PREVIEW is only available on some platforms.

  • wtf/Platform.h:
11:32 AM Changeset in webkit [231496] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

Skip http/tests/appcache/load-from-appcache-defer-resume-crash.html for iOS sim WK2
https://bugs.webkit.org/show_bug.cgi?id=185430

Unreviewed.

Skip the test as it is using WK1-only test runner API.

  • platform/ios-wk2/TestExpectations:
11:27 AM Changeset in webkit [231495] by commit-queue@webkit.org
  • 4 edits in trunk

Unreviewed, rolling out r231491.
https://bugs.webkit.org/show_bug.cgi?id=185434

Setting the Created key on a cookie does not work yet, due a
bug in CFNetwork (Requested by ggaren on #webkit).

Reverted changeset:

"[WKHTTPCookieStore getAllCookies] returns inconsistent
creation time"
https://bugs.webkit.org/show_bug.cgi?id=185041
https://trac.webkit.org/changeset/231491

11:05 AM Changeset in webkit [231494] by commit-queue@webkit.org
  • 3 edits
    2 moves in trunk

test262/Runner.pm: move input files to JSTests/test262
https://bugs.webkit.org/show_bug.cgi?id=185389

Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-08
Reviewed by Michael Saboff.

JSTests:

  • test262/config.yaml: Renamed from Tools/Scripts/test262/config.yaml.
  • test262/expectations.yaml: Renamed from Tools/Scripts/test262/expectations.yaml.

Tools:

  • Scripts/test262/Runner.pm:

(processCLI):

10:56 AM Changeset in webkit [231493] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed, simplify Speedometer fixes landed in r231489, r231483 & r231474.

  • Scripts/webkitpy/performance_tests/perftest.py:

(PerfTest):

10:52 AM Changeset in webkit [231492] by Ryan Haddad
  • 14 edits in trunk

Unreviewed, rolling out r231468.

Broke the CLoop build

Reverted changeset:

"InPlaceAbstractState::beginBasicBlock shouldn't have to clear
any abstract values"
https://bugs.webkit.org/show_bug.cgi?id=185365
https://trac.webkit.org/changeset/231468

10:44 AM Changeset in webkit [231491] by commit-queue@webkit.org
  • 4 edits in trunk

[WKHTTPCookieStore getAllCookies] returns inconsistent creation time
https://bugs.webkit.org/show_bug.cgi?id=185041
<rdar://problem/34684214>

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-05-08
Reviewed by Geoffrey Garen.

Source/WebCore:

Set creationtime property when creating Cookie object to keep consistency after conversion.

New API test: WebKit.WKHTTPCookieStoreCreationTime.

  • platform/network/cocoa/CookieCocoa.mm:

(WebCore::Cookie::operator NSHTTPCookie * const):

Tools:

Add API test Coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

(TEST):

10:20 AM Changeset in webkit [231490] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

Text track cue logging should include cue text
https://bugs.webkit.org/show_bug.cgi?id=185353
<rdar://problem/40003565>

Reviewed by Brent Fulgham.

No new tests, tested manually.

  • html/track/VTTCue.cpp:

(WebCore::VTTCue::toJSON const):

  • platform/graphics/InbandTextTrackPrivateClient.h:

(WebCore::GenericCueData::toJSONString const):

  • platform/graphics/iso/ISOVTTCue.cpp:

(WebCore::ISOWebVTTCue::toJSONString const):

10:15 AM Changeset in webkit [231489] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed, fix issue with running Speedometer PerfTest after r231450.

  • Scripts/webkitpy/performance_tests/perftest.py:

(PerfTest):

9:34 AM Changeset in webkit [231488] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

More cleanup of XMLHttpRequestUpload
https://bugs.webkit.org/show_bug.cgi?id=185409

Patch by Sam Weinig <sam@webkit.org> on 2018-05-08
Reviewed by Alex Christensen.

  • Remove unneeded #includes
  • Rename m_xmlHttpRequest to m_request
  • Make some overloaded some methods private, and mark them as final rather than override.
  • xml/XMLHttpRequestUpload.cpp:

(WebCore::XMLHttpRequestUpload::XMLHttpRequestUpload):

  • xml/XMLHttpRequestUpload.h:
9:31 AM Changeset in webkit [231487] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Start using BlockMarginCollapse
https://bugs.webkit.org/show_bug.cgi?id=185424

Reviewed by Antti Koivisto.

BlockMarginCollapse could be all static.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::marginTop const):
(WebCore::Layout::BlockFormattingContext::marginBottom const):

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::isMarginTopCollapsedWithSibling):
(WebCore::Layout::isMarginBottomCollapsedWithSibling):
(WebCore::Layout::isMarginTopCollapsedWithParent):
(WebCore::Layout::isMarginBottomCollapsedWithParent):
(WebCore::Layout::collapsedMarginTopFromFirstChild):
(WebCore::Layout::collapsedMarginBottomFromLastChild):
(WebCore::Layout::nonCollapsedMarginTop):
(WebCore::Layout::nonCollapsedMarginBottom):
(WebCore::Layout::BlockMarginCollapse::marginTop):
(WebCore::Layout::BlockMarginCollapse::marginBottom):
(WebCore::Layout::BlockMarginCollapse::BlockMarginCollapse): Deleted.
(WebCore::Layout::BlockMarginCollapse::marginTop const): Deleted.
(WebCore::Layout::BlockMarginCollapse::marginBottom const): Deleted.
(WebCore::Layout::BlockMarginCollapse::isMarginTopCollapsedWithSibling const): Deleted.
(WebCore::Layout::BlockMarginCollapse::isMarginBottomCollapsedWithSibling const): Deleted.
(WebCore::Layout::BlockMarginCollapse::isMarginTopCollapsedWithParent const): Deleted.
(WebCore::Layout::BlockMarginCollapse::isMarginBottomCollapsedWithParent const): Deleted.
(WebCore::Layout::BlockMarginCollapse::nonCollapsedMarginTop const): Deleted.
(WebCore::Layout::BlockMarginCollapse::nonCollapsedMarginBottom const): Deleted.
(WebCore::Layout::BlockMarginCollapse::collapsedMarginTopFromFirstChild const): Deleted.
(WebCore::Layout::BlockMarginCollapse::collapsedMarginBottomFromLastChild const): Deleted.
(WebCore::Layout::BlockMarginCollapse::hasAdjoiningMarginTopAndBottom const): Deleted.

  • layout/blockformatting/BlockMarginCollapse.h:
9:26 AM Changeset in webkit [231486] by youenn@apple.com
  • 25 edits
    1 copy in trunk/Source

Allow WebResourceLoader to cancel a load served from a service worker
https://bugs.webkit.org/show_bug.cgi?id=185274

Reviewed by Chris Dumez.

Source/WebCore:

Add support for cancelling a fetch from WebProcess to service worker process.
Use FetchIdentifier instead of uint64_t.

  • Modules/fetch/FetchIdentifier.h: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • workers/service/context/ServiceWorkerFetch.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::startFetch):
(WebCore::ServiceWorkerThreadProxy::cancelFetch):

  • workers/service/context/ServiceWorkerThreadProxy.h:

Source/WebKit:

Use FetchIdentifier instead of uint64_t.
Add IPC support for cancelling a fetch from WebProcess to service worker process.
Ask service worker process to cancel the fetch when its corresponding WebResourceLoader is cancelled.
No change of behavior as once a WebResourceLoader is cancelled, any related IPC is not processed.
A follow-up patch should try to cancel the FetchResponse load, meaning to either cancel the network load
or to abort reading the readable stream.

  • Scripts/webkit/messages.py:
  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::cancelFetch):
(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::didReceiveFetchResponse):
(WebKit::WebSWServerConnection::didReceiveFetchData):
(WebKit::WebSWServerConnection::didReceiveFetchFormData):
(WebKit::WebSWServerConnection::didFinishFetch):
(WebKit::WebSWServerConnection::didFailFetch):
(WebKit::WebSWServerConnection::didNotHandleFetch):

  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • StorageProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::didFailFetch):
(WebKit::StorageProcess::didNotHandleFetch):
(WebKit::StorageProcess::didReceiveFetchResponse):
(WebKit::StorageProcess::didReceiveFetchData):
(WebKit::StorageProcess::didReceiveFetchFormData):
(WebKit::StorageProcess::didFinishFetch):

  • StorageProcess/StorageProcess.h:
  • StorageProcess/StorageProcess.messages.in:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::remove):

  • WebProcess/Storage/ServiceWorkerClientFetch.cpp:

(WebKit::ServiceWorkerClientFetch::create):
(WebKit::ServiceWorkerClientFetch::ServiceWorkerClientFetch):
(WebKit::ServiceWorkerClientFetch::start):
(WebKit::ServiceWorkerClientFetch::cancel):

  • WebProcess/Storage/ServiceWorkerClientFetch.h:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::startFetch):
(WebKit::WebSWClientConnection::cancelFetch):

  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::cancelFetch):
(WebKit::WebSWContextManagerConnection::startFetch):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:
  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::WebServiceWorkerFetchTaskClient):
(WebKit::WebServiceWorkerFetchTaskClient::cancel):

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:
  • WebProcess/Storage/WebServiceWorkerProvider.cpp:

(WebKit::WebServiceWorkerProvider::handleFetch):
(WebKit::WebServiceWorkerProvider::cancelFetch):
(WebKit::WebServiceWorkerProvider::fetchFinished):

  • WebProcess/Storage/WebServiceWorkerProvider.h:
9:20 AM Changeset in webkit [231485] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

feTurbulence is not rendered correctly on Retina display
https://bugs.webkit.org/show_bug.cgi?id=183798

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-05-08
Reviewed by Simon Fraser.

Source/WebCore:

On 2x display the feTurbulence filter creates a scaled ImageBuffer but
processes only the unscaled size. This is a remaining work of r168577 and
is very similar to what was done for the feMorphology filter in r188271.

Test: fast/hidpi/filters-turbulence.html

  • platform/graphics/filters/FETurbulence.cpp:

(WebCore::FETurbulence::fillRegion const):
(WebCore::FETurbulence::platformApplySoftware):

LayoutTests:

  • fast/hidpi/filters-turbulence-expected.html: Added.
  • fast/hidpi/filters-turbulence.html: Added.
9:15 AM Changeset in webkit [231484] by Antti Koivisto
  • 8 edits in trunk/Source/WebKit

Don't use mapped cache files in case of Class A/B protected app
https://bugs.webkit.org/show_bug.cgi?id=185422
<rdar://problem/34001688>

Reviewed by Chris Dumez.

Currently we don't use shared memory maps in these cases. This still leaves us open for crashes
in the network process when the device is locked.

This patch disables use of blob storage (mapped cache files) in apps that use class A/B protection.
Normally we use blobs for resources > 16KB. Since use of shared memory is already disabled,
the only optimization lost for these apps is body data deduplication.

Any existing cache entries with blobs are ignored and deleted. New entries are created with
body data inlined with the metadata.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::store):

  • NetworkProcess/cache/NetworkCache.h:

(WebKit::NetworkCache::Cache::canUseSharedMemoryForBodyData const): Deleted.

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord const):

Remove the code the prevented use of shared memory in these cases. Non-mapped Data objects
are never shareable.

(WebKit::NetworkCache::Entry::setNeedsValidation):

  • NetworkProcess/cache/NetworkCacheFileSystem.cpp:

(WebKit::NetworkCache::isSafeToUseMemoryMapForPath):
(WebKit::NetworkCache::canUseSharedMemoryForPath): Deleted.

  • NetworkProcess/cache/NetworkCacheFileSystem.h:
  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::Storage):
(WebKit::NetworkCache::Storage::mayContainBlob const):
(WebKit::NetworkCache::Storage::shouldStoreBodyAsBlob):
(WebKit::NetworkCache::shouldStoreBodyAsBlob): Deleted.

  • NetworkProcess/cache/NetworkCacheStorage.h:

(WebKit::NetworkCache::Storage::canUseSharedMemoryForBodyData const): Deleted.

7:57 AM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
7:02 AM Changeset in webkit [231483] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed, fix issue with running Speedometer PerfTest after r231450.

  • Scripts/webkitpy/performance_tests/perftest.py:

(PerfTest):

Note: See TracTimeline for information about the timeline view.