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

Timeline



Aug 24, 2018:

4:33 PM Changeset in webkit [235338] by mmaxfield@apple.com
  • 2 edits in trunk/Tools

Unreviewed test fix after r235249
https://bugs.webkit.org/show_bug.cgi?id=178981

  • WebGPUShadingLanguageRI/Test.js:
4:12 PM Changeset in webkit [235337] by rniwa@webkit.org
  • 4 edits in trunk

Click event from click() is not composed
https://bugs.webkit.org/show_bug.cgi?id=170211

Reviewed by Wenson Hsieh.

LayoutTests/imported/w3c:

Rebaselined the test now that all test cases pass.

  • web-platform-tests/shadow-dom/event-composed-expected.txt:

Source/WebCore:

Fixed the bug. All simulated clicks should be composed regardless of whether it's trusted or not.
See: https://html.spec.whatwg.org/multipage/interaction.html#dom-click

https://html.spec.whatwg.org/multipage/webappapis.html#fire-a-synthetic-mouse-event

  • dom/SimulatedClick.cpp:
3:54 PM Changeset in webkit [235336] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WTF

Improve unified source generator script logging and error messages
https://bugs.webkit.org/show_bug.cgi?id=188932

Reviewed by Simon Fraser.

  • Scripts/generate-unified-source-bundles.rb:

Add the ability to explain why you're getting usage() instead of just printing it.
Capitalize log messages, and improve the wording in a few places.

3:51 PM Changeset in webkit [235335] by rniwa@webkit.org
  • 13 edits in trunk/Source/WebCore

Avoid calling setUntrusted in SimulatedMouseEvent
https://bugs.webkit.org/show_bug.cgi?id=188929

Reviewed by Simon Fraser.

Added IsTrusted flag to Event constructors instead of creating a trusted event
and making it untrusted in the constructor of SimulatedMouseEvent.

This makes EventTarget::dispatchEventForBindings the only caller of setUntrusted().

  • dom/Event.cpp:

(WebCore::Event::Event):

  • dom/Event.h:
  • dom/KeyboardEvent.cpp:

(WebCore::KeyboardEvent::KeyboardEvent):

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):

  • dom/MouseEvent.h:
  • dom/MouseRelatedEvent.cpp:

(WebCore::MouseRelatedEvent::MouseRelatedEvent):

  • dom/MouseRelatedEvent.h:
  • dom/SimulatedClick.cpp:
  • dom/UIEvent.cpp:

(WebCore::UIEvent::UIEvent):

  • dom/UIEvent.h:
  • dom/UIEventWithKeyState.h:

(WebCore::UIEventWithKeyState::UIEventWithKeyState):

  • dom/WheelEvent.cpp:

(WebCore::WheelEvent::WheelEvent):

2:40 PM Changeset in webkit [235334] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

Using Touch Bar to scrub video on Youtube results in video playback freeze
https://bugs.webkit.org/show_bug.cgi?id=188926

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-seek-twice.html

When converting from a double-precision float to a MediaTime, a certain amount of precision is lost. If that
results in a round-trip between float in -> MediaTime -> float out where in != out, we will wait forever for
the time jump observer to fire. Break the cycle by comparing m_lastSeekTime to the synchronizerTime only after
m_lastSeekTime has been normalized into a rational-time value.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):

LayoutTests:

  • media/media-source/media-source-seek-twice-expected.txt: Added.
  • media/media-source/media-source-seek-twice.html: Added.
2:15 PM Changeset in webkit [235333] by msaboff@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

YARR: Update UCS canonicalization tables for Unicode 11
https://bugs.webkit.org/show_bug.cgi?id=188928

Reviewed by Mark Lam.

Generated YarrCanonicalizeUCS2.cpp from YarrCanonicalizeUCS2.js.

This passes JavaScriptCore and test262 tests.

  • yarr/YarrCanonicalizeUCS2.cpp:
  • yarr/YarrCanonicalizeUCS2.js:

(printHeader):

1:36 PM Changeset in webkit [235332] by jeffm@apple.com
  • 4 edits in trunk/Source/WebKit

Remove -[WKNavigationDelegate _webView:decidePolicyForPluginLoadWithCurrentPolicy:pluginInfo:unavailabilityDescription:]
https://bugs.webkit.org/show_bug.cgi?id=188889

Reviewed by Alex Christensen.

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:

Remove obsolete method.

  • UIProcess/Cocoa/NavigationState.h:

Remove obsolete flag.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate):
Remove obsolete flag.

(WebKit::NavigationState::NavigationClient::decidePolicyForPluginLoad):
Remove support for obsolete delegate method.

1:14 PM Changeset in webkit [235331] by rniwa@webkit.org
  • 34 edits in trunk/Source

Pass in IsComposed flag to Event constructors
https://bugs.webkit.org/show_bug.cgi?id=188720
<rdar://problem/43580387>

Reviewed by Simon Fraser.

Source/WebCore:

This patch replaces the logic in Event::isComposed to decide whether an event is composed or not by
explicitly passing IsComposed flag to Event constructor. This decouples being composed from whether
an event is trusted and of a partciular event type, paving our way to make synthetic click event
dispatched by an author script composable in webkit.org/b/170211.

This patch also removes IsTrusted from the argument list of event constructors and create functions
to systematically eliminate the possibility of this patch making an event uncomposed by not setting
IsComposed flag.

No new tests since there should be no behavioral change.

  • dom/ClipboardEvent.cpp:

(WebCore::ClipboardEvent::ClipboardEvent): A trusted ClipboardEvent is composed.

  • dom/ClipboardEvent.h:

(WebCore::ClipboardEvent::ClipboardEvent): Removed IsTrusted from the variant which takes Init object
to make sure this refactoring is correct.
(WebCore::ClipboardEvent::create): Ditto.

  • dom/CompositionEvent.cpp:

(WebCore::CompositionEvent::CompositionEvent): A trusted CompositionEvent is composed.

  • dom/CompositionEvent.h:
  • dom/Element.cpp:

(WebCore::Element::dispatchMouseEvent): A trusted dblclick event is composed (this is a non-standard
event but virtually every mouse event is composed so it makes sense to make this composed).

  • dom/Event.cpp:

(WebCore::Event::Event):
(WebCore::Event::create):
(WebCore::Event::composed const): Deleted. The trival implementation moved to the header file.

  • dom/Event.h:

(WebCore::Event::composed const):

  • dom/FocusEvent.cpp:

(WebCore::FocusEvent::FocusEvent): A trusted Focus event is composed.

  • dom/FocusEvent.h:

(WebCore::FocusEvent::create): Removed IsTrusted from Init variant for the correctness guarantee.
(WebCore::FocusEvent::FocusEvent): Ditto.

  • dom/InputEvent.cpp:

(WebCore::InputEvent::create): Removed IsTrusted from Init variant for the correctness guarantee.
(WebCore::InputEvent::InputEvent): A trsuted InputEvent is composed.

  • dom/InputEvent.h:
  • dom/KeyboardEvent.cpp:

(WebCore::KeyboardEvent::KeyboardEvent): A trsuted KeyboardEvent is composed.
(WebCore::KeyboardEvent::create): Removed IsTrusted from Init variant for the correctness guarantee.

  • dom/KeyboardEvent.h:
  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::create): Removed IsTrusted from Init variant for the correctness guarantee.
(WebCore::MouseEvent::MouseEvent): Explicitly take IsComposed flag from subclasses since simulated click
does not currently compose.

  • dom/MouseEvent.h:
  • dom/MouseRelatedEvent.cpp:

(WebCore::MouseRelatedEvent::MouseRelatedEvent): A trusted touch event is composed.

  • dom/MouseRelatedEvent.h:
  • dom/Node.cpp:

(WebCore::Node::dispatchDOMActivateEvent): A trusted DOMActivateEvent event is composed.
(WebCore::Node::dispatchInputEvent): A trusted input event is composed.

  • dom/SimulatedClick.cpp:

(SimulatedMouseEvent::SimulatedMouseEvent): A simulated click is composed if it's a trusted event for now.
This is the bug to be fixed in webkit.org/b/170211.

  • dom/TextEvent.cpp:

(WebCore::TextEvent::TextEvent): A trsuted textInput event is composed.

  • dom/UIEvent.cpp:

(WebCore::UIEvent::UIEvent): Added IsComposed as an argument to the variant which creates a trusted event,
and removed IsTrusted from Init variant for the correctness guarantee.

  • dom/UIEvent.h:

(WebCore::UIEvent::create): Ditto.

  • dom/UIEventWithKeyState.h:

(WebCore::UIEventWithKeyState::UIEventWithKeyState): Ditto.

  • dom/WheelEvent.cpp:

(WebCore::WheelEvent::WheelEvent): A trusted Wheel event, which is a subclass of MouseEvent, is composed.
(WebCore::WheelEvent::create): Removed IsTrusted from Init variant for the correctness guarantee.

  • dom/WheelEvent.h:
  • editing/Editor.cpp:

(WebCore::dispatchBeforeInputEvent):
(WebCore::dispatchInputEvent):
(WebCore::dispatchClipboardEvent): Call the newly added variant which takes DataTransfer directly so that
we can remove IsTrusted from the variant which takes Init for the correctness guarantee.

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchDragEvent): A trusted mouse event is composed.

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick): A trusted click event is composed regardless of
whether it's simulated or not.

Source/WebKitLegacy/ios:

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]): A trusted click event is composed regardless
of whether it's simulated or not.

Source/WebKitLegacy/mac:

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]): A trusted click event is composed regardless of
whether it's simulated or not.

1:12 PM Changeset in webkit [235330] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Remove the flaky test expectation now that the test isn't flaky on bots after r235274.

  • platform/wk2/TestExpectations:
1:07 PM Changeset in webkit [235329] by rniwa@webkit.org
  • 13 edits
    1 copy
    3 adds in trunk

Add getModifierState to MouseEvent
https://bugs.webkit.org/show_bug.cgi?id=188913
<rdar://problem/43668772>

Reviewed by Simon Fraser.

Source/WebCore:

Moved getModifierState from KeyboardEvent to UIEventWithKeyState and exposed it in MouseEvent.
See https://www.w3.org/TR/2016/WD-uievents-20160804/#mouseevent

This patch also fixes the bug that initMouseEvent was not clearing AltGraph and CapsLock states,
which was preserved in the refactoring done in r235158.

Tests: fast/events/constructors/mouse-event-getModifierState.html

fast/events/dblclick-event-getModifierState.html

  • dom/KeyboardEvent.cpp:

(WebCore::KeyboardEvent::getModifierState const): Moved to UIEventWithKeyState.

  • dom/KeyboardEvent.h:
  • dom/KeyboardEvent.idl: Insert a blank line to match the spec's IDL.
  • dom/MouseEvent.idl: Added getModifierState.
  • dom/UIEventWithKeyState.cpp:

(WebCore::UIEventWithKeyState::modifiersFromInitializer): Moved from the header file.
(WebCore::UIEventWithKeyState::getModifierState const):
(WebCore::UIEventWithKeyState::setModifierKeys): Moved from the header file.

  • dom/UIEventWithKeyState.h:

(WebCore::UIEventWithKeyState::modifierKeys const):
(WebCore::UIEventWithKeyState::setModifierKeys): Deleted the variant which didn't take altGraphKey
since that variant behaves same as the one which takes altGraphKey.

LayoutTests:

Added two tests for getModifierState: one manually setting modifier key states in MouseEvent's constructor,
and another one for dblclick inheriting modifier key states from the click event.

Also improved the test coverage for KeyboardEvent's getModifierState.

  • fast/events/constructors/keyboard-event-getModifierState-expected.txt:
  • fast/events/constructors/keyboard-event-getModifierState.html: Added more test cases.
  • fast/events/constructors/mouse-event-getModifierState-expected.txt: Added.
  • fast/events/constructors/mouse-event-getModifierState.html: Added.
  • fast/events/dblclick-event-getModifierState-expected.txt: Added.
  • fast/events/dblclick-event-getModifierState.html: Added.
  • fast/events/init-event-clears-capslock-expected.txt:
  • fast/events/init-event-clears-capslock.html: Added tests for MouseEvent. Note that initMouseEvent doesn't

take altGraphKey boolean unlike initKeyboardEvent.

  • platform/ios/TestExpectations: Skip the dblclick test in iOS since click event isn't supported on iOS.
12:43 PM Changeset in webkit [235328] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Add WKWebView._mainFrame SPI
https://bugs.webkit.org/show_bug.cgi?id=188925

Reviewed by Brian Burg.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _mainFrame]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
12:30 PM Changeset in webkit [235327] by youenn@apple.com
  • 11 edits in trunk

libwebrtc PeerConnection::AddTrack sometimes fail
https://bugs.webkit.org/show_bug.cgi?id=188914

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-addTrack.https-expected.txt:

Source/WebCore:

AddTrack may fail so test the result and if not successful, make JS addTrack to throw an exception.
This makes some tests to fail now.
These tests should pass again when unified plan will be enabled.
Covered by rebased tests.

  • Modules/mediastream/PeerConnectionBackend.h:

(WebCore::PeerConnectionBackend::notifyAddedTrack):

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::addTrack):
(WebCore::RTCPeerConnection::addTransceiver):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::addTrack):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::notifyAddedTrack):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:

LayoutTests:

  • fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt:
12:14 PM Changeset in webkit [235326] by Basuke Suzuki
  • 3 edits in trunk/Source/WebKit

[Curl] Match the interface used in NetworkDataTask and ResourceHandle.
https://bugs.webkit.org/show_bug.cgi?id=188922

Reviewed by Alex Christensen.

The interfaces for NetworkDataTask and ResourceHandle are diverged.
It should be same for the same purpose because they do same thing.

No change in behavior.

  • NetworkProcess/curl/NetworkDataTaskCurl.cpp:

(WebKit::NetworkDataTaskCurl::NetworkDataTaskCurl):
(WebKit::NetworkDataTaskCurl::createCurlRequest):
(WebKit::NetworkDataTaskCurl::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCurl::restartWithCredential):

  • NetworkProcess/curl/NetworkDataTaskCurl.h:
12:13 PM Changeset in webkit [235325] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

[FreeType] Do not cast through GLib types in FontCustomPlatformDataFreeType.cpp
https://bugs.webkit.org/show_bug.cgi?id=188919

Reviewed by Michael Catanzaro.

No new tests needed.

  • platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:

(WebCore::FontCustomPlatformData::FontCustomPlatformData): Cast
through "void (*)(void)" instead of GCallback to avoid the warning
produced by -Wcast-function-type.

12:10 PM Changeset in webkit [235324] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Follow up to r235323
https://bugs.webkit.org/show_bug.cgi?id=188923
<rdar://problem/34657861>

  • UIProcess/API/C/mac/WKInspectorPrivateMac.h:
  • UIProcess/mac/WebInspectorProxyMac.mm:

(-[WKWebInspectorProxyObjCAdapter inspector]):
A _WKInspector * accessor in the WKWebInspectorProxyObjCAdapter is nice, too.

11:41 AM Changeset in webkit [235323] by achristensen@apple.com
  • 7 edits
    3 adds in trunk

Introduce _WKInspector
https://bugs.webkit.org/show_bug.cgi?id=188923
<rdar://problem/34657861>

Reviewed by Brian Burg.

Source/WebKit:

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _inspector]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/_WKInspector.h: Added.
  • UIProcess/API/Cocoa/_WKInspector.mm: Added.

(-[_WKInspector webView]):
(-[_WKInspector isConnected]):
(-[_WKInspector isVisible]):
(-[_WKInspector isFront]):
(-[_WKInspector isProfilingPage]):
(-[_WKInspector isElementSelectionActive]):
(-[_WKInspector connect]):
(-[_WKInspector show]):
(-[_WKInspector hide]):
(-[_WKInspector close]):
(-[_WKInspector showConsole]):
(-[_WKInspector showResources]):
(-[_WKInspector showMainResourceForFrame:]):
(-[_WKInspector attach]):
(-[_WKInspector detach]):
(-[_WKInspector showTimelines]):
(-[_WKInspector togglePageProfiling]):
(-[_WKInspector toggleElementSelection]):
(-[_WKInspector printErrorToConsole:]):
(-[_WKInspector _apiObject]):

  • UIProcess/API/Cocoa/_WKInspectorInternal.h: Added.
  • WebKit.xcodeproj/project.pbxproj:

Tools:

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController validateMenuItem:]):
(-[WK2BrowserWindowController showHideWebInspector:]):

11:22 AM Changeset in webkit [235322] by msaboff@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

YARR: JIT RegExps with non-greedy parenthesized sub patterns
https://bugs.webkit.org/show_bug.cgi?id=180876

Reviewed by Filip Pizlo.

Implemented the non-greedy nested parenthesis based on the prior greedy nested parenthesis work.
For the matching code, the greedy path was correct except that we don't try matching for the
non-greedy case. Added a jump out to the term after the parenthesis and a label to perform the
first / next match when we backtrack. The backtracking code needs to check to see if we have
tried the first match or if we can do another match.

Updated the disassembly annotations to include parenthesis capturing info, quantifier type and
count. Did other minor cleanup as well.

Fixed function name typo, added missing 't' in "setUsesPaternContextBuffer()".

Updated the text in some comments, both for this change as well as accuracy for existing code.

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::generate):
(JSC::Yarr::YarrGenerator::backtrack):
(JSC::Yarr::YarrGenerator::opCompileParenthesesSubpattern):
(JSC::Yarr::YarrGenerator::compile):
(JSC::Yarr::dumpCompileFailure):
(JSC::Yarr::jitCompile):

  • yarr/YarrJIT.h:

(JSC::Yarr::YarrCodeBlock::setUsesPatternContextBuffer):
(JSC::Yarr::YarrCodeBlock::setUsesPaternContextBuffer): Deleted.

10:46 AM Changeset in webkit [235321] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Don't launch network process in WebCookieManagerProxy::setHTTPCookieAcceptPolicy
https://bugs.webkit.org/show_bug.cgi?id=188906
<rdar://problem/43539661>

Reviewed by Geoffrey Garen.

In WebCookieManagerProxy::setHTTPCookieAcceptPolicy, we persist the cookieAcceptPolicy of
sharedCookieStorage. When we launch the network process later, we pass the
identifier of sharedCookieStorage to network process, so network process has the correct
cookieAcceptPolicy. Therefore, we don't have to launch the network process and send the
setting message if the network process is not launched.

  • UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy):

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

Mark media/video-load-preload-metadata.html as flaky on iOS
https://bugs.webkit.org/show_bug.cgi?id=128312

Unreviewed test gardening.

  • platform/ios/TestExpectations:
8:56 AM Changeset in webkit [235319] by Ryan Haddad
  • 2 edits in branches/safari-606-branch/Tools

Cherry-pick r235317. rdar://problem/43646060

Fix handling of iOS minor versions in default_baseline_search_path
https://bugs.webkit.org/show_bug.cgi?id=188902

Reviewed by Aakash Jain.

  • Scripts/webkitpy/port/ios.py: (IOSPort.default_baseline_search_path): When the major version matches the major version of the CURRENT_VERSION, treat it as a the CURRENT_VERSION.

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

8:20 AM Changeset in webkit [235318] by aestes@apple.com
  • 11 edits in trunk

[Apple Pay] Allow $0 totals
https://bugs.webkit.org/show_bug.cgi?id=185150
<rdar://problem/39212331>

Reviewed by Dan Bernstein.

Source/WebCore:

Relaxed payment request validation to allow $0 totals. This matches PassKit behavior.

Updated test cases in http/tests/ssl/applepay/.

  • Modules/applepay/PaymentRequestValidator.mm:

(WebCore::PaymentRequestValidator::validateTotal):

LayoutTests:

  • http/tests/ssl/applepay/ApplePaySession-expected.txt:
  • http/tests/ssl/applepay/ApplePaySession.html:
  • http/tests/ssl/applepay/ApplePaySessionV3-expected.txt:
  • http/tests/ssl/applepay/ApplePaySessionV3.html:
  • http/tests/ssl/applepay/ApplePaySessionV4-expected.txt:
  • http/tests/ssl/applepay/ApplePaySessionV4.html:
  • http/tests/ssl/applepay/PaymentRequest.https-expected.txt:
  • http/tests/ssl/applepay/PaymentRequest.https.html:
7:03 AM Changeset in webkit [235317] by Jonathan Bedard
  • 2 edits in trunk/Tools

Fix handling of iOS minor versions in default_baseline_search_path
https://bugs.webkit.org/show_bug.cgi?id=188902

Reviewed by Aakash Jain.

  • Scripts/webkitpy/port/ios.py:

(IOSPort.default_baseline_search_path): When the major version matches the major version of the CURRENT_VERSION, treat
it as a the CURRENT_VERSION.

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

Remove ScrollByPrecisePixel granularity
https://bugs.webkit.org/show_bug.cgi?id=188915

Patch by Frederic Wang <fwang@igalia.com> on 2018-08-24
Reviewed by Carlos Garcia Campos.

ScrollByPrecisePixel was introduced in bug 87535 and bug 91020 for Chromium Linux/Windows but
it is no longer used.

No new tests, behavior unchanged.

  • platform/ScrollAnimatorSmooth.cpp:

(WebCore::ScrollAnimatorSmooth::scroll): Remove special handling for ScrollByPrecisePixel.

  • platform/ScrollTypes.h: Remove ScrollByPrecisePixel, it is never used.
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::scroll): Remove special handling for ScrollByPrecisePixel.

  • platform/gtk/ScrollAnimatorGtk.cpp:

(WebCore::ScrollAnimatorGtk::scroll): Remove special handling for ScrollByPrecisePixel.

2:30 AM Changeset in webkit [235315] by Antti Koivisto
  • 9 edits in trunk

Allow creating WeakPtrs to const objects
https://bugs.webkit.org/show_bug.cgi?id=188785

Reviewed by Geoff Garen.

Source/WebCore:

Remove some unneeded const_casts.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::MediaQueryEvaluator):
(WebCore::MediaQueryEvaluator::evaluate const):

  • css/MediaQueryEvaluator.h:
  • rendering/FloatingObjects.cpp:

(WebCore::ComputeFloatOffsetAdapter::ComputeFloatOffsetAdapter):
(WebCore::ComputeFloatOffsetForFloatLayoutAdapter::ComputeFloatOffsetForFloatLayoutAdapter):
(WebCore::ComputeFloatOffsetForLineLayoutAdapter::ComputeFloatOffsetForLineLayoutAdapter):
(WebCore::FindNextFloatLogicalBottomAdapter::FindNextFloatLogicalBottomAdapter):
(WebCore::FloatingObjects::FloatingObjects):

  • rendering/FloatingObjects.h:

(WebCore::FloatingObjects::renderer const):

Source/WTF:

const Foo foo;
WeakPtr<const Foo> weakConstFoo = makeWeakPtr(foo);

  • wtf/WeakPtr.h:

(WTF::WeakPtrFactory::createWeakPtr const):

Add a separate factory function for const T.
The underlying WeakReference is kept non-const in all cases.

Tools:

  • TestWebKitAPI/Tests/WTF/WeakPtr.cpp:

(TestWebKitAPI::Base::weakPtrFactory const):
(TestWebKitAPI::TEST):
(TestWebKitAPI::Base::weakPtrFactory): Deleted.

2:13 AM Changeset in webkit [235314] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebCore

[CoordGraphics] Move inline methods on CoordinatedGraphicsLayer out-of-line
https://bugs.webkit.org/show_bug.cgi?id=188916

Reviewed by Carlos Garcia Campos.

Style checker produced complaints that CoordinatedGraphicsLayer class is
using inline-defined methods despite the WEBCORE_EXPORT macro being used
for the whole class. Keep the macro where it is but instead move the
method definitions out-of-line.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::isCoordinatedGraphicsLayer const):
(WebCore::CoordinatedGraphicsLayer::id const):
(WebCore::CoordinatedGraphicsLayer::primaryLayerID const):
(WebCore::CoordinatedGraphicsLayer::usesContentsLayer const):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
2:03 AM Changeset in webkit [235313] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.21.92

WebKitGTK+ 2.21.92

2:03 AM Changeset in webkit [235312] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.22

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.21.92 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.21.92.
1:35 AM WebKitGTK/2.22.x edited by Carlos Garcia Campos
(diff)
1:12 AM Changeset in webkit [235311] by Carlos Garcia Campos
  • 1 edit in releases/WebKitGTK/webkit-2.22/Source/WebKit/gtk/NEWS

Unreviewed. Fix GTK+ NEWS file formatting

I broke it by mistake when releasing 2.21.91

1:10 AM Changeset in webkit [235310] by Carlos Garcia Campos
  • 12 edits in releases/WebKitGTK/webkit-2.22

Merge r235282 - [GTK][WPE] Add API to inject/register user content in isolated worlds
https://bugs.webkit.org/show_bug.cgi?id=188883

Reviewed by Michael Catanzaro.

Source/WebKit:

Add new API to create user scripts/stylesheets for a given script world and to register/unregister user script
messages in a given script world.

  • UIProcess/API/glib/WebKitUserContent.cpp:

(webkitUserContentWorld):
(_WebKitUserStyleSheet::_WebKitUserStyleSheet):
(webkit_user_style_sheet_new):
(webkit_user_style_sheet_new_for_world):
(_WebKitUserScript::_WebKitUserScript):
(webkit_user_script_new):
(webkit_user_script_new_for_world):

  • UIProcess/API/glib/WebKitUserContentManager.cpp:

(webkit_user_content_manager_register_script_message_handler_in_world):
(webkit_user_content_manager_unregister_script_message_handler_in_world):

  • UIProcess/API/glib/WebKitUserContentPrivate.h:
  • UIProcess/API/gtk/WebKitUserContent.h:
  • UIProcess/API/gtk/WebKitUserContentManager.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WebKitUserContent.h:
  • UIProcess/API/wpe/WebKitUserContentManager.h:
  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserContentController::addUserContentWorlds):

Tools:

Add test cases for the new API.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp:

(isStyleSheetInjectedForURLAtPath):
(isScriptInjectedForURLAtPath):
(testUserContentManagerInjectedStyleSheet):
(testUserContentManagerInjectedScript):
(UserScriptMessageTest::registerHandler):
(UserScriptMessageTest::unregisterHandler):
(UserScriptMessageTest::postMessageAndWaitUntilReceived):
(testUserContentManagerScriptMessageInWorldReceived):
(beforeAll):

1:10 AM Changeset in webkit [235309] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235162 - Do not try to update the compositing policy when not in accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=188787

Reviewed by Simon Fraser.

RenderLayerCompositor::updateCompositingPolicy() is called very often (called from
RenderLayerCompositor::cacheAcceleratedCompositingFlags()) and it uses WTF::memoryFootprint() to decide the
current compositing policy. Getting the memory footprint is an expensive operation in Linux (and I suspect other
non-cocoa ports too), causing an excessive CPU usage. This caused the WPE and GTK+ unit test
/webkit/WebKitWebContext/uri-scheme to start timing out in the bots, because the test expects things to happen
fast and that's no longer the case. We could reduce the CPU usage a lot by not trying to update the policy when
not in accelerated compositing mode. We will need a solution for the accelerated compositing mode, though.

Fixes WPE/GTK+ unit test /webkit/WebKitWebContext/uri-scheme.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateCompositingPolicy): Return early when not in accelerated compositing mode.

1:10 AM Changeset in webkit [235308] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235161 - [JSC] HeapUtil should care about pointer overflow
https://bugs.webkit.org/show_bug.cgi?id=188740

Reviewed by Saam Barati.

pointer - sizeof(IndexingHeader) - 1 causes an undefined behavior if a pointer overflows.
For example, if pointer is nullptr, it causes pointer overflow. Instead of calculating this
with char* pointer, we cast it to uintptr_t temporarily. This issue is found by UBSan.

  • heap/HeapUtil.h:

(JSC::HeapUtil::findGCObjectPointersForMarking):

1:10 AM Changeset in webkit [235307] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235160 - [JSC] Should not rotate constant with 64
https://bugs.webkit.org/show_bug.cgi?id=188556

Reviewed by Saam Barati.

To defend against JIT splaying, we rotate a constant with a randomly generated seed.
But if a seed becomes 64 or 0, the following code performs value << 64 or value >> 64
where value's type is uint64_t, and they cause undefined behaviors (UBs). This patch limits
the seed in the range of [1, 63] not to generate code causing UBs. This is found by UBSan.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::generateRotationSeed):
(JSC::MacroAssembler::rotationBlindConstant):

1:10 AM Changeset in webkit [235306] by Carlos Garcia Campos
  • 23 edits in releases/WebKitGTK/webkit-2.22/Source

Merge r235158 - Replace booleans for modifier keys in UIEventWithKeyState with OptionSet<Modifier>
https://bugs.webkit.org/show_bug.cgi?id=188777

Reviewed by Simon Fraser.

Source/WebCore:

Replaced boolean arguments and instance variables for modifier keys (ctrl, alt, shift, and meta keys) in
UIEventWithKeyState with OptionSet<Modifier> and isSimulated boolean in MouseRelatedEvent with IsSimulated
enum class.

Also made movementDelta always compiled instead of only when ENABLE(POINTER_LOCK) to simplify the code.

No new tests since there should be no observable behavioral change.

  • dom/Element.cpp:

(WebCore::Element::dispatchMouseEvent):

  • dom/KeyboardEvent.cpp:

(WebCore::KeyboardEvent::KeyboardEvent):
(WebCore::KeyboardEvent::initKeyboardEvent): Call setModifierKeys.

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):
(WebCore::MouseEvent::initMouseEvent): Ditto.

  • dom/MouseEvent.h:
  • dom/MouseRelatedEvent.cpp:

(WebCore::MouseRelatedEvent::MouseRelatedEvent): Added a new variant which takes the minimum arguments
for gesture & touch events. In those events, detail is always set to 0, movementDelta is always set to 0,0,
and they are never simulated.

  • dom/MouseRelatedEvent.h:

(WebCore::MouseRelatedEvent::IsSimulated): Added.

  • dom/SimulatedClick.cpp:

(WebCore::SimulatedMouseEvent::SimulatedMouseEvent): Get OptionSet<Modifier> out of the underlying event
instead of manually setting each key state. This code now preserves the state of caps lock and alt-graph
keys but this is not observable because we have yet to implement getModifierState on MouseEvent.
(WebCore::SimulatedMouseEvent::modifiersFromUnderlyingEvent): Added.

  • dom/TouchEvent.cpp:

(WebCore::TouchEvent::TouchEvent):

  • dom/TouchEvent.h:
  • dom/UIEventWithKeyState.h:

(WebCore::UIEventWithKeyState::Modifier): Alias to PlatformEvent::Modifier.
(WebCore::UIEventWithKeyState::ctrlKey const): Updated to use m_modifiers.
(WebCore::UIEventWithKeyState::shiftKey const): Ditto.
(WebCore::UIEventWithKeyState::altKey const): Ditto.
(WebCore::UIEventWithKeyState::metaKey const): Ditto.
(WebCore::UIEventWithKeyState::altGraphKey const): Ditto.
(WebCore::UIEventWithKeyState::capsLockKey const): Ditto.
(WebCore::UIEventWithKeyState::modifierKeys): Added.
(WebCore::UIEventWithKeyState::UIEventWithKeyState): Now takes OptionSet<Modifier>.
(WebCore::UIEventWithKeyState::setModifierKeys): Added. Used by init*Event functions in subclasses. Note that
these functions preseve the states of alt-graph and caps lock keys to match the existing behaviors in this
cleanup patch but they don't match behaviors of Chrome or Firefox.
(WebCore::UIEventWithKeyState::modifiersFromInitializer): Added.

  • dom/WheelEvent.cpp:

(WebCore::WheelEvent::WheelEvent): Simulated::No corresponds to the last boolean being false.

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchDragEvent):
(WebCore::EventHandler::handleTouchEvent):

  • platform/PlatformEvent.h:

(WebCore::PlatformEvent::Modifier): Added AltGraphKey.

  • platform/mac/PlatformEventFactoryMac.h:

(WebCore::modifiersForEvent): Exported to be used in [WebPDFView PDFViewWillClickOnLink:withURL:].

  • platform/mac/PlatformEventFactoryMac.mm:

(WebCore::modifiersForEvent):

  • testing/Internals.cpp:

(WebCore::Internals::accessKeyModifiers const):

Source/WebKit:

Added two FIXMEs.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):

Source/WebKitLegacy/ios:

Create MouseEvent::create with IsSimulated set to Yes; correspoding to the last argument
being "true" before the code change.

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKitLegacy/mac:

Create MouseEvent::create with IsSimulated set to Yes; correspoding to the last argument
being "true" before the code change.

Use modifiersForEvent to convert [nsEvent modifierFlags] to OptionSet<Modifier>.

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

1:10 AM Changeset in webkit [235305] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.22

Merge r235148 - Transition ResizeReversePaginatedWebView API test from WKPageLoaderClient to WKPageNavigationClient
https://bugs.webkit.org/show_bug.cgi?id=188821

Reviewed by Simon Fraser.

Source/WebKit:

Add some more values to WKPageRenderingProgressEvents which were already supported by _WKRenderingProgressEvents and WKLayoutMilestones.

  • UIProcess/API/C/WKPageRenderingProgressEvents.h:
  • UIProcess/API/C/WKPageRenderingProgressEventsInternal.h:

(pageRenderingProgressEvents):

Tools:

  • TestWebKitAPI/Tests/WebKit/ResizeReversePaginatedWebView.cpp:

(TestWebKitAPI::didLayout):
(TestWebKitAPI::TEST):

1:10 AM Changeset in webkit [235304] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.22/Tools

Merge r235138 - Transition more API tests from WKPageLoaderClient to WKPageNavigationClient
https://bugs.webkit.org/show_bug.cgi?id=188813

Reviewed by Andy Estes.

  • TestWebKitAPI/Tests/WebKit/NewFirstVisuallyNonEmptyLayout.cpp:

(TestWebKitAPI::didLayout):
(TestWebKitAPI::setPageLoaderClient):

  • TestWebKitAPI/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutFails.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::didLayout):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutForImages.cpp:

(TestWebKitAPI::didLayout):
(TestWebKitAPI::setPageLoaderClient):

1:10 AM Changeset in webkit [235303] by Carlos Garcia Campos
  • 1 edit
    1 add in releases/WebKitGTK/webkit-2.22/Source/WebInspectorUI

Merge r235134 - Web Inspector: Rulers.svg is missing
https://bugs.webkit.org/show_bug.cgi?id=188806
<rdar://problem/43574273>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-21
Reviewed by Devin Rousso.

  • UserInterface/Images/Rulers.svg: Added.
1:09 AM Changeset in webkit [235302] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r235133 - Increment NetworkCache::Storage::lastStableVersion after r233742
https://bugs.webkit.org/show_bug.cgi?id=188798
<rdar://43561761>

Reviewed by Geoffrey Garen.

  • NetworkProcess/cache/NetworkCacheStorage.h:
1:09 AM Changeset in webkit [235301] by Carlos Garcia Campos
  • 15 edits in releases/WebKitGTK/webkit-2.22/Tools

Merge r235123 - Transition more API tests from WKPageLoaderClient to WKPageNavigationClient
https://bugs.webkit.org/show_bug.cgi?id=188797

Reviewed by Tim Horton.

  • TestWebKitAPI/Tests/WebKit/AboutBlankLoad.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/EphemeralSessionPushStateNoHistoryCallback.cpp:

(TestWebKitAPI::didSameDocumentNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didSameDocumentNavigationForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/FailedLoad.cpp:

(TestWebKitAPI::didFailProvisionalNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFailProvisionalLoadWithErrorForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/FrameMIMETypeHTML.cpp:

(TestWebKitAPI::didStartProvisionalNavigation):
(TestWebKitAPI::didCommitNavigation):
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didStartProvisionalLoadForFrame): Deleted.
(TestWebKitAPI::didCommitLoadForFrame): Deleted.
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/FrameMIMETypePNG.cpp:

(TestWebKitAPI::didStartProvisionalNavigation):
(TestWebKitAPI::didCommitNavigation):
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didStartProvisionalLoadForFrame): Deleted.
(TestWebKitAPI::didCommitLoadForFrame): Deleted.
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/LayoutMilestonesWithAllContentInFrame.cpp:

(TestWebKitAPI::renderingProgressDidChange):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didLayout): Deleted.

  • TestWebKitAPI/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutFrames.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::renderingProgressDidChange):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
(TestWebKitAPI::didLayout): Deleted.

  • TestWebKitAPI/Tests/WebKit/PageLoadBasic.cpp:

(TestWebKitAPI::State::State):
(TestWebKitAPI::didStartProvisionalNavigation):
(TestWebKitAPI::didCommitNavigation):
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::decidePolicyForNavigationAction):
(TestWebKitAPI::decidePolicyForResponse):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didStartProvisionalLoadForFrame): Deleted.
(TestWebKitAPI::didCommitLoadForFrame): Deleted.
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
(TestWebKitAPI::decidePolicyForNewWindowAction): Deleted.

  • TestWebKitAPI/Tests/WebKit/PageLoadDidChangeLocationWithinPageForFrame.cpp:

(TestWebKitAPI::didSameDocumentNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
(TestWebKitAPI::didSameDocumentNavigationForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/PrivateBrowsingPushStateNoHistoryCallback.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::didSameDocumentNavigationForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/ReloadPageAfterCrash.cpp:

(TestWebKitAPI::didFinishLoad):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/WKBundleFileHandle.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/mac/RestoreStateAfterTermination.mm:

(TestWebKitAPI::didFinishLoad):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/CommandBackForward.mm:

(WebKit2_CommandBackForwardTestWKView::SetUp):
(WebKit2_CommandBackForwardTestWKView::didFinishLoadForFrame): Deleted.

1:09 AM Changeset in webkit [235300] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r235121 - Disallow navigations when page cache updates the current document of the frame
https://bugs.webkit.org/show_bug.cgi?id=188422

Reviewed by Ryosuke Niwa.

Source/WebCore:

Make use of NavigationDisabler to disallow navigations when associating the cached
document back with its frame (i.e. calling Frame::setDocument()).

When we associate a cached document with its frame we will construct its render tree
and run post style resolution callbacks that can do anything, including performing
a frame load. Until page restoration is comnplete the frame tree is in a transient
state that makes reasoning about it difficult and error prone. We should not allow
navigations in this state.

Test: fast/history/go-back-to-object-subframe.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::open):

LayoutTests:

Add a test case that ensures that we do not hit the assertion ASSERT(ownerFrame
m_frame.isMainFrame())

in FrameLoader::addExtraFieldsToRequest() when navigating back to a page that loads a nested
page, whose URL contains a fragment, via an HTML object element. This assertion fails if
navigations are allowed when restoring a page from the page cache.

This change does not prevent navigations initiated from a pageshow event handler.

  • fast/history/go-back-to-object-subframe-expected.txt: Added.
  • fast/history/go-back-to-object-subframe.html: Added.
1:09 AM Changeset in webkit [235299] by Carlos Garcia Campos
  • 35 edits
    1 add in releases/WebKitGTK/webkit-2.22/Source

Merge r235120 - Replace TextCheckingTypeMask with OptionSet
https://bugs.webkit.org/show_bug.cgi?id=188678

Reviewed by Antti Koivisto.

Source/WebCore:

Replaces TextCheckingTypeMask with an OptionSet to improve type safety and code clarity. Additionally
change the values of TextCheckingType such that all the enumerators fit within an uint8_t.

  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::hasMisspelling const):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(AXAttributeStringSetSpelling):

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::timerFired):
(WebCore::AlternativeTextController::processMarkersOnTextToBeReplacedByResult):

  • editing/Editor.cpp:

(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::markMisspellingsAfterTypingToWord):
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
(WebCore::isAutomaticTextReplacementType):
(WebCore::Editor::markAndReplaceFor): For now, change a local variable from const to non-const to work
around the following MSVC compiler bug: <https://developercommunity.visualstudio.com/content/problem/316713/msvc-cant-compile-webkits-optionsetcontainsany.html>.
(WebCore::Editor::markMisspellingsAndBadGrammar):
(WebCore::Editor::updateMarkersForWordsAffectedByEditing):
(WebCore::Editor::editorUIUpdateTimerFired):
(WebCore::Editor::resolveTextCheckingTypeMask):

  • editing/Editor.h:
  • editing/SpellChecker.cpp:

(WebCore::SpellCheckRequest::SpellCheckRequest):
(WebCore::SpellCheckRequest::create):
(WebCore::SpellChecker::didCheckSucceed):

  • editing/SpellChecker.h:
  • editing/TextCheckingHelper.cpp:

(WebCore::findGrammaticalErrors):
(WebCore::findMisspellings):
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
(WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange const):
(WebCore::checkTextOfParagraph):

  • editing/TextCheckingHelper.h:
  • loader/EmptyClients.cpp:
  • platform/text/TextCheckerClient.h:
  • platform/text/TextChecking.h: Remove TextCheckingTypeMask. Reorganized the fields of TextCheckingRequestData

to coallesce padding and move it to the end of class. Also used default initializer syntax and defaulted (= default)
the default constructor of TextCheckingRequestData, removing the need for a user-defined default constructor.
(WebCore::TextCheckingRequestData::TextCheckingRequestData):
(WebCore::TextCheckingRequestData::text const): Changed return type from String to const String&
to avoid unnecessary ref-count churn for callers that do not need to take a shared ownership in
this string.
(WebCore::TextCheckingRequestData::checkingTypes const): Renamed; formerly named mask.
(WebCore::TextCheckingRequestData::mask const): Deleted.

  • platform/text/mac/TextCheckingMac.mm: Added.

(WebCore::nsTextCheckingTypes):

  • testing/Internals.cpp:

(WebCore::Internals::handleAcceptedCandidate):

Source/WebKit:

  • Scripts/webkit/messages.py: Add WebCore::TextCheckingType to the special case map so that

the generator knows what header has the definition for this type.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<TextCheckingRequestData>::encode):
(IPC::ArgumentCoder<TextCheckingRequestData>::decode):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::coreTextCheckingType):
(WebKit::textCheckingResultFromNSTextCheckingResult):

  • UIProcess/TextChecker.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::checkTextOfParagraph):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/gtk/TextCheckerGtk.cpp:

(WebKit::TextChecker::requestCheckingOfString):
(WebKit::TextChecker::checkTextOfParagraph): Also simplified return expressions.

  • UIProcess/ios/TextCheckerIOS.mm:

(WebKit::TextChecker::checkTextOfParagraph):

  • UIProcess/mac/TextCheckerMac.mm:

(WebKit::TextChecker::checkTextOfParagraph):

  • UIProcess/win/TextCheckerWin.cpp:

(WebKit::TextChecker::checkTextOfParagraph):

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::shouldEraseMarkersAfterChangeSelection const):
(WebKit::WebEditorClient::checkTextOfParagraph):

  • WebProcess/WebCoreSupport/WebEditorClient.h:

Source/WebKitLegacy/mac:

Currently we have code in WebEditorClient::checkTextOfParagraph() that incorrectly assumes
that the enumerators of TextCheckingType have a one-to-one correspondence with NSTextCheckingType.
(This is not the case because there is not corresponding NSTextCheckingType for TextCheckingTypeShowCorrectionPanel).
We now explicitly convert from OptionSet<TextCheckingType> to NSTextCheckingTypes.

  • WebCoreSupport/WebEditorClient.h:
  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::checkTextOfParagraph):
(WebEditorClient::shouldEraseMarkersAfterChangeSelection const):
(core): Fix up code style nits; compare resultType on the right-hand side instead of the
left as this is more readable and unncessary now that modern compilers like Clang have
diagnostics to catch accidental assignments when equality was intended.
(WebEditorClient::didCheckSucceed):

  • WebView/WebView.mm:

(coreTextCheckingType):
(textCheckingResultFromNSTextCheckingResult):

1:09 AM Changeset in webkit [235298] by Carlos Garcia Campos
  • 48 edits in releases/WebKitGTK/webkit-2.22/Tools

Merge r235117 - Replace WKPageLoaderClient with WKPageNavigationClient in many API tests
https://bugs.webkit.org/show_bug.cgi?id=188771

Reviewed by Tim Horton.

  • TestWebKitAPI/Tests/WebKit/CloseThenTerminate.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/CookieManager.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/DeferredViewInWindowStateChange.mm:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/DidNotHandleKeyDown.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/DidRemoveFrameFromHiearchyInPageCache.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/EventModifiers.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setClients):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/Find.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/FindMatches.mm:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/ForceRepaint.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/FrameHandle.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/Geolocation.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/HitTestResultNodeHandle.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/InjectedBundleBasic.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/LimitTitleSize.cpp:

(TestWebKitAPI::didFinishLoadForFrame):

  • TestWebKitAPI/Tests/WebKit/LoadAlternateHTMLStringWithNonDirectoryURL.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::loadAlternateHTMLString):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/LoadCanceledNoServerRedirectCallback.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/LoadPageOnCrash.cpp:

(TestWebKitAPI::WebKit2CrashLoader::WebKit2CrashLoader):
(TestWebKitAPI::didFinishLoad):

  • TestWebKitAPI/Tests/WebKit/MenuTypesForMouseEvents.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/MouseMoveAfterCrash.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutFails.cpp:

(TestWebKitAPI::didFinishLoadForFrame):

  • TestWebKitAPI/Tests/WebKit/PageLoadBasic.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/PendingAPIRequestURL.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/ResizeWindowAfterCrash.cpp:

(TestWebKitAPI::didFinishLoad):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/RestoreSessionState.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/RestoreSessionStateContainingFormData.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/ScrollPinningBehaviors.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishDocumentLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/SpacebarScrolling.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/StopLoadingDuringDidFailProvisionalLoad.cpp:

(TestWebKitAPI::didFailProvisionalNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFailProvisionalLoadWithErrorForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/TerminateTwice.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/TextFieldDidBeginAndEndEditing.cpp:

(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::didFinishNavigation):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::setPageLoaderClient):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/UserMessage.cpp:

(TestWebKitAPI::WebKit2UserMessageRoundTripTest::didFinishNavigation):
(TestWebKitAPI::WebKit2UserMessageRoundTripTest::setPageLoaderClient):
(TestWebKitAPI::WebKit2UserMessageRoundTripTest::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/WKPageConfiguration.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/WKPageCopySessionStateWithFiltering.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/WKPageGetScaleFactorNotZero.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/WKPageIsPlayingAudio.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setUpClients):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/WKThumbnailView.mm:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/WebArchive.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/mac/AttributedSubstringForProposedRangeWithImage.mm:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/mac/ContextMenuDownload.mm:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/mac/CustomBundleParameter.mm:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/mac/EditorCommands.mm:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/mac/GetPIDAfterAbortedProcessLaunch.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKit/mac/InjectedBundleAppleEvent.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/FullscreenDelegate.mm:

(didFinishNavigation):
(TestWebKitAPI::TEST):
(didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:

(didFinishNavigation):
(TestWebKitAPI::TEST):
(didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/Tests/mac/FirstResponderScrollingPosition.mm:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

  • TestWebKitAPI/mac/WebKitAgnosticTest.mm:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.

1:08 AM Changeset in webkit [235297] by Carlos Garcia Campos
  • 5 edits
    1 move in releases/WebKitGTK/webkit-2.22

Merge r235116 - [WPE] Update to use libwpe-1.0.0 and WPEBackend-fdo-1.0.0
https://bugs.webkit.org/show_bug.cgi?id=188782

Reviewed by Michael Catanzaro.

Make the build depend on wpe-0.2, and change the Flatpak and JHBuild development
environments to use version 1.0.0 of libwpe and WPEBackend-fdo.

.:

  • Source/cmake/FindWPE.cmake: Renamed from Source/cmake/FindWPEBackend.cmake and changed

to check for libwpe-0.2.

  • Source/cmake/OptionsWPE.cmake: Adapt to the rename to FindWPE.cmake.

Tools:

  • flatpak/org.webkit.WPE.yaml: Update to use libwpe and WPEBackend-fdo version 1.0.0 from

release tarballs, and removed the (now unneeded) Lua and LuaJIT modules.

  • wpe/jhbuild.modules: Ditto.
1:08 AM Changeset in webkit [235296] by Carlos Garcia Campos
  • 14 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235115 - Don't place "using namespace XXX;" in global space for unified source builds
https://bugs.webkit.org/show_bug.cgi?id=188739

Reviewed by Yusuke Suzuki.

No new tests (No behavior change).

  • html/track/AudioTrackList.cpp:
  • html/track/TextTrackList.cpp:
  • html/track/VideoTrackList.cpp:
  • page/SecurityOriginData.cpp:
  • page/TextIndicator.cpp:
  • platform/geoclue/GeolocationProviderGeoclue.cpp:
  • platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
  • platform/graphics/win/FullScreenController.cpp:
  • platform/mediastream/CaptureDeviceManager.cpp:
  • platform/mock/MediaPlaybackTargetPickerMock.cpp:
  • svg/animation/SMILTime.cpp:
  • testing/js/WebCoreTestSupport.cpp:
  • xml/XPathParser.cpp:
1:08 AM Changeset in webkit [235295] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WTF

Merge r235113 - [Linux] Cache the memory footprint and only update it after 1 second
https://bugs.webkit.org/show_bug.cgi?id=188791

Reviewed by Yusuke Suzuki.

Getting the memory footprint is an expensive operation in Linux. When called multiple times, the CPU usage is
too much (see bug #188787). We could cache the result for at least 1 second to ensure we don't call it more than
once per second.

  • wtf/linux/MemoryFootprintLinux.cpp:

(WTF::forEachLine):
(WTF::computeMemoryFootprint):
(WTF::memoryFootprint):

1:08 AM Changeset in webkit [235294] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235112 - [GStreamer] Warn early about incomplete MSE track switching support
https://bugs.webkit.org/show_bug.cgi?id=188653

Patch by Philippe Normand <philn@igalia.com> on 2018-08-21
Reviewed by Xabier Rodriguez-Calvar.

The proper track switching support shall be fixed at some point by:
https://bugs.webkit.org/show_bug.cgi?id=182531.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::updateTracks): Remove redundant test.
(WebCore::MediaPlayerPrivateGStreamer::enableTrack): Exit early if
this method is called by the MSE player.

1:08 AM Changeset in webkit [235293] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235110 - [GStreamer][MSE] Generic main thread notification support
https://bugs.webkit.org/show_bug.cgi?id=188647

Patch by Philippe Normand <philn@igalia.com> on 2018-08-21
Reviewed by Xabier Rodriguez-Calvar.

Using GstBus for main thread notifications has the side effect of "leaking" the
application messages to the media player, leading to CPU cycles wasting.

No new tests, existing MSE tests cover this change.

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

(webkit_media_src_init):
(webKitMediaSrcFinalize):
(webKitMediaSrcSetMediaPlayerPrivate):

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamerPrivate.h:
1:08 AM Changeset in webkit [235292] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235109 - [GStreamer][MSE] Remove parsers from playback pipeline
https://bugs.webkit.org/show_bug.cgi?id=188646

Patch by Philippe Normand <philn@igalia.com> on 2018-08-16
Reviewed by Xabier Rodriguez-Calvar.

Decodebin already includes parsers in front of the decoders.

No new tests, existing MSE tests cover this change.

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

(WebCore::PlaybackPipeline::addSourceBuffer):
(WebCore::PlaybackPipeline::attachTrack):

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

(webKitMediaSrcLinkSourcePad):

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamerPrivate.h:
1:08 AM Changeset in webkit [235291] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235108 - Unreviewed, rolling out r234979.
https://bugs.webkit.org/show_bug.cgi?id=188780

broke ubuntu LTS build (Requested by philn on #webkit).

Reverted changeset:

"[GTK] Never return an uninitialized ImageGStreamer object."
https://bugs.webkit.org/show_bug.cgi?id=188305
https://trac.webkit.org/changeset/234979

1:07 AM Changeset in webkit [235290] by Carlos Garcia Campos
  • 31 edits
    7 adds in releases/WebKitGTK/webkit-2.22

Merge r235106 - Inline DataView accesses into DFG/FTL
https://bugs.webkit.org/show_bug.cgi?id=188573
<rdar://problem/43286746>

Reviewed by Michael Saboff.

JSTests:

  • microbenchmarks/data-view-accesses-2.js: Added.

(assert):
(let.p.of.Object.keys.let.str):
(let.p.of.Object.keys):
(test):

  • microbenchmarks/data-view-accesses.js: Added.

(assert):
(let.p.of.Object.keys.let.str):
(let.p.of.Object.keys):

  • stress/dataview-jit-bounds-checks.js: Added.

(assert):
(let.p.of.Object.keys.let.str):
(let.p.of.Object.keys):

  • stress/dataview-jit-get.js: Added.

(assert):
(test1.bigEndian):
(test1.littleEndian):
(test1.biEndian):
(test1):
(test2.bigEndian):
(test2.littleEndian):
(test2.biEndian):
(test2):
(test3.bigEndian):
(test3.littleEndian):
(test3.biEndian):
(test3):
(test4.bigEndian):
(test4.littleEndian):
(test4.biEndian):
(test4):
(test5.bigEndian):
(test5.littleEndian):
(test5.biEndian):
(test5):
(test6.bigEndian):
(test6.littleEndian):
(test6.biEndian):
(test6):
(test7.load):
(test7):
(test8.load):
(test8):

  • stress/dataview-jit-neuter.js: Added.

(assert):
(test.load):
(test):
(test2.load):
(test2):

  • stress/dataview-jit-set.js: Added.

(assert):
(isLittleEndian):
(readByte):
(readHex):
(test.storeLittleEndian):
(test.storeBigEndian):
(test.store):
(test):
(test2.storeLittleEndian):
(test2.storeBigEndian):
(test2.store):
(test2):
(test3.storeLittleEndian):
(test3.storeBigEndian):
(test3.store):
(test3):
(test4.storeLittleEndian):
(test4.storeBigEndian):
(test4.store):
(test4):
(test5.storeLittleEndian):
(test5.storeBigEndian):
(test5.store):
(test5):
(test6.storeLittleEndian):
(test6.storeBigEndian):
(test6.store):
(test6):
(test7.store):
(test7):
(test8.store):
(test8):

  • stress/dataview-jit-unaligned-accesses.js: Added.

(assert):
(let.p.of.Object.keys.let.str):
(let.p.of.Object.keys):

Source/JavaScriptCore:

This patch teaches the DFG/FTL to inline DataView accesses. The approach is
straight forward. We inline the various get*/set* operations as intrinsics.

This patch takes the most obvious approach for now. We OSR exit when:

  • An isLittleEndian argument is provided, and is not a boolean.
  • The index isn't an integer.
  • The |this| isn't a DataView.
  • We do an OOB access (or see a neutered array)

To implement this change in a performant way, this patch teaches the macro
assembler how to emit byte swap operations. The semantics of the added functions
are byteSwap + zero extend. This means for the 16bit byte swaps, we need
to actually emit zero extend instructions. For the 32/64bit byte swaps,
the instructions already have these semantics.

This patch is just a lightweight initial implementation. There are some easy
extensions we can do in future changes:

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::byteSwap16):
(JSC::MacroAssemblerARM64::byteSwap32):
(JSC::MacroAssemblerARM64::byteSwap64):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::byteSwap32):
(JSC::MacroAssemblerX86Common::byteSwap16):
(JSC::MacroAssemblerX86Common::byteSwap64):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::bswapl_r):
(JSC::X86Assembler::bswapq_r):
(JSC::X86Assembler::shiftInstruction16):
(JSC::X86Assembler::rolw_i8r):
(JSC::X86Assembler::X86InstructionFormatter::SingleInstructionBufferWriter::memoryModRM):

  • assembler/testmasm.cpp:

(JSC::testByteSwap):
(JSC::run):

  • bytecode/DataFormat.h:
  • bytecode/SpeculatedType.cpp:

(JSC::dumpSpeculation):
(JSC::speculationFromClassInfo):
(JSC::speculationFromJSType):
(JSC::speculationFromString):

  • bytecode/SpeculatedType.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasHeapPrediction):
(JSC::DFG::Node::dataViewData):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):
(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::speculateDataViewObject):
(JSC::DFG::SpeculativeJIT::speculate):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGUseKind.cpp:

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):
(JSC::DFG::isCell):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::byteSwap32):
(JSC::FTL::DFG::LowerDFGToB3::byteSwap64):
(JSC::FTL::DFG::LowerDFGToB3::emitCodeBasedOnEndiannessBranch):
(JSC::FTL::DFG::LowerDFGToB3::compileDataViewGet):
(JSC::FTL::DFG::LowerDFGToB3::compileDataViewSet):
(JSC::FTL::DFG::LowerDFGToB3::lowDataViewObject):
(JSC::FTL::DFG::LowerDFGToB3::speculate):
(JSC::FTL::DFG::LowerDFGToB3::speculateDataViewObject):

  • runtime/Intrinsic.cpp:

(JSC::intrinsicName):

  • runtime/Intrinsic.h:
  • runtime/JSDataViewPrototype.cpp:

Source/WTF:

  • wtf/TriState.h:
1:07 AM Changeset in webkit [235289] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r235104 - [YARR] Extend size of fixed characters bulk matching in 64bit platform
https://bugs.webkit.org/show_bug.cgi?id=181989

Patch by Yusuke Suzuki <Yusuke Suzuki> on 2018-08-20
Reviewed by Michael Saboff.

JSTests:

  • stress/characters-regexp-ignore-case.js: Added.

(shouldBe):
(testH):
(testHe):
(testHel):
(testHell):
(testHello):
(testHelloW):
(testHelloWo):
(testHelloWor):
(testHelloWorl):
(testHelloWorld):

  • stress/characters-regexp.js: Added.

(shouldBe):
(testH):
(testHe):
(testHel):
(testHell):
(testHello):
(testHelloW):
(testHelloWo):
(testHelloWor):
(testHelloWorl):
(testHelloWorld):

Source/JavaScriptCore:

This patch extends bulk matching style for fixed-sized characters.
In 64bit environment, the GPR can hold up to 8 characters. This change
reduces the code size since we can fuse multiple mov operations into one.

  • assembler/LinkBuffer.h:
  • runtime/Options.h:
  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::generatePatternCharacterOnce):
(JSC::Yarr::YarrGenerator::compile):

1:07 AM Changeset in webkit [235288] by Carlos Garcia Campos
  • 19 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r235103 - Web Inspector: allow breakpoints to be set for specific event listeners
https://bugs.webkit.org/show_bug.cgi?id=183138

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/protocol/DOM.json:

Add setBreakpointForEventListener and removeBreakpointForEventListener, each of which
takes an eventListenerId and toggles whether that specific usage of that event listener
should have a breakpoint and pause before running.

Source/WebCore:

Test: inspector/dom/breakpoint-for-event-listener.html

  • inspector/agents/InspectorDOMAgent.h:
  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::getEventListenersForNode):
(WebCore::InspectorDOMAgent::setEventListenerDisabled):
(WebCore::InspectorDOMAgent::setBreakpointForEventListener): Added.
(WebCore::InspectorDOMAgent::removeBreakpointForEventListener): Added.
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
(WebCore::InspectorDOMAgent::willRemoveEventListener):
(WebCore::InspectorDOMAgent::isEventListenerDisabled):
(WebCore::InspectorDOMAgent::hasBreakpointForEventListener): Added.
(WebCore::InspectorDOMAgent::idForEventListener): Added.
Rework the event listener data structure to be based on ID instead of EventListener, since
it is possible to have the same EventListener be used for multiple events.

  • inspector/agents/InspectorDOMDebuggerAgent.h:
  • inspector/agents/InspectorDOMDebuggerAgent.cpp:

(WebCore::InspectorDOMDebuggerAgent::setEventListenerBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::setInstrumentationBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeEventListenerBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeInstrumentationBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::willHandleEvent): Added.
(WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
For DOM events, also check to see if there is a matching event listener specific breakpoint
set via the DOMAgent, and break on it if one is found.

  • inspector/InspectorInstrumentation.h:
  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didInstallTimerImpl):
(WebCore::InspectorInstrumentation::didRemoveTimerImpl):
(WebCore::InspectorInstrumentation::willHandleEventImpl):
(WebCore::InspectorInstrumentation::willFireTimerImpl):
(WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
(WebCore::InspectorInstrumentation::didRequestAnimationFrameImpl):
(WebCore::InspectorInstrumentation::didCancelAnimationFrameImpl):
(WebCore::InspectorInstrumentation::willFireAnimationFrameImpl):
Split off pauseOnNativeEventIfNeeded to only handle non-DOM events, since all DOM events
would already only go through willHandleEvent.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Models/EventBreakpoint.js:

(WI.EventBreakpoint):
(WI.EventBreakpoint.fromPayload): Added.
(WI.EventBreakpoint.prototype.get eventListener): Added.

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager):

  • UserInterface/Controllers/DOMTreeManager.js:

(WI.DOMTreeManager):
(WI.DOMTreeManager.prototype.get eventBreakpoints): Added.
(WI.DOMTreeManager.prototype._setDocument):
(WI.DOMTreeManager.prototype.setEventListenerDisabled):
(WI.DOMTreeManager.prototype.setBreakpointForEventListener): Added.
(WI.DOMTreeManager.prototype.removeBreakpointForEventListener): Added.
(WI.DOMTreeManager.prototype.breakpointForEventListenerId): Added.

  • UserInterface/Controllers/EventBreakpointTreeController.js:

(WI.EventBreakpointTreeController):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):

  • UserInterface/Views/EventListenerSectionGroup.js:

(WI.EventListenerSectionGroup):
(WI.EventListenerSectionGroup.prototype._createDisabledToggleRow):
(WI.EventListenerSectionGroup.prototype._createBreakpointToggleRow): Added.

  • UserInterface/Views/EventBreakpointTreeElement.js:

(WI.EventBreakpointTreeElement):
(WI.EventBreakpointTreeElement.prototype.ondelete):
(WI.EventBreakpointTreeElement.prototype.populateContextMenu):
(WI.EventBreakpointTreeElement.prototype._toggleBreakpoint):

LayoutTests:

  • inspector/dom/breakpoint-for-event-listener-expected.txt: Added.
  • inspector/dom/breakpoint-for-event-listener.html: Added.
1:07 AM Changeset in webkit [235287] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235102 - Fix the LLInt so that btjs shows vmEntryToJavaScript instead of llintPCRangeStart for the entry frame.
https://bugs.webkit.org/show_bug.cgi?id=188769

Reviewed by Michael Saboff.

  • llint/LowLevelInterpreter.asm:
  • Just put an unused instruction between llintPCRangeStart and vmEntryToJavaScript so that libunwind doesn't get confused by the 2 labels pointing to the same code address.
1:06 AM Changeset in webkit [235286] by Carlos Garcia Campos
  • 35 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r235101 - Use unified build for NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=185011

Reviewed by Alex Christensen.

  • NetworkProcess/Cookies/WebCookieManager.cpp:
  • NetworkProcess/Downloads/Download.cpp:
  • NetworkProcess/Downloads/DownloadManager.cpp:
  • NetworkProcess/Downloads/PendingDownload.cpp:
  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
  • NetworkProcess/NetworkCORSPreflightChecker.cpp:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:
  • NetworkProcess/NetworkContentRuleListManager.cpp:
  • NetworkProcess/NetworkDataTask.cpp:
  • NetworkProcess/NetworkDataTaskBlob.cpp:
  • NetworkProcess/NetworkLoadChecker.cpp:
  • NetworkProcess/NetworkProcess.cpp:
  • NetworkProcess/NetworkProcessPlatformStrategies.cpp:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:
  • NetworkProcess/NetworkResourceLoader.cpp:
  • NetworkProcess/NetworkSession.cpp:
  • NetworkProcess/NetworkSocketStream.cpp:
  • NetworkProcess/PingLoad.cpp:
  • NetworkProcess/cache/CacheStorageEngine.cpp:
  • NetworkProcess/cache/CacheStorageEngineCache.cpp:
  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:
  • NetworkProcess/cache/CacheStorageEngineConnection.cpp:
  • NetworkProcess/cache/NetworkCache.cpp:
  • NetworkProcess/capture/NetworkCaptureEvent.cpp:
  • NetworkProcess/capture/NetworkCaptureManager.cpp:
  • NetworkProcess/capture/NetworkCaptureRecorder.cpp:
  • NetworkProcess/capture/NetworkCaptureReplayer.cpp:
  • NetworkProcess/capture/NetworkDataTaskReplay.cpp:
  • NetworkProcess/webrtc/NetworkMDNSRegister.cpp:
  • NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:

(WebKit::Download::platformCancelNetworkLoad):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:didBecomeInvalidWithError:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:willCacheResponse:completionHandler:]):
Fix the build with unified sources.

  • Sources.txt: Un-@no-unify NetworkProcess/*.
  • SourcesCocoa.txt: Un-@no-unify NetworkProcess/*.
1:06 AM Changeset in webkit [235285] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.22/Source

Merge r235098 - [CMake] Sync unified build with Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=188732

Reviewed by Tim Horton.

Source/WebCore:

For iOS, disambiguate between ::WebEvent declared in PlatformKeyboardEvent.h and
WebCore::WebEvent declared in WebEvent.h. It's expected that we'll have to deal with random
issues like this when modifying unrelated source files in higher-level projects, since any
change to the sources list changes which files get bundled together, and headers from
lower-level projects that were not included before may now be included together.

  • platform/PlatformKeyboardEvent.h:

(WebCore::PlatformKeyboardEvent::event const):

Source/WebKit:

Sync unified build with Cocoa ports. This enables unified build for WebKit/Platform and
WebKit/Shared.

Lots of files need to be moved around since the existing Sources.txt was not copied from
CMakeLists.txt. This replaces the Sources.txt with the sources list from CMakeList.txt.
Files that are not built for Cocoa are moved to SourcesGTK.txt, SourcesWPE.txt, and
PlatformWin.cmake. Files that are built only on Cocoa are moved to SourcesCocoa.txt. There's
plenty of room to determine if many of these files really need to be platform-specific in
the future, but let's not change that now.

Unfortunately, several files under Shared and PluginProcess need to be un-unified to be
usable for GTK's WebKitPluginProcess2. I've never managed to understand why, but it won't
link otherwise. Fortunately, this only affects a few files (listed in
PluginProcessGTK2_SOURCES), only a couple dozen of which are cross-platform.

  • CMakeLists.txt:
  • PlatformWin.cmake:
  • Sources.txt:
  • SourcesCocoa.txt:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
1:06 AM Changeset in webkit [235284] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Tools

Merge r235080 - [GTK] Sort inspector GResource manifest to ensure reproducible builds
https://bugs.webkit.org/show_bug.cgi?id=188738

Patch by Bernhard M. Wiedemann <bwiedemann@suse.de> on 2018-08-20
Reviewed by Michael Catanzaro.

  • glib/generate-inspector-gresource-manifest.py:

(get_filenames): sort list of input files

1:06 AM Changeset in webkit [235283] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.22

Merge r235050 - Throw an exception if window.open() gets passed a URL that cannot be parsed
https://bugs.webkit.org/show_bug.cgi?id=171656

Patch by Rob Buis <rbuis@igalia.com> on 2018-08-20
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/url/failure-expected.txt:

Source/WebCore:

Throw a SyntaxError exception when an invalid url gets passed into window.open().

Tests: imported/w3c/web-platform-tests/url/failure.html

fast/dom/Window/open-invalid-url.html

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):
(WebCore::DOMWindow::open):
(WebCore::DOMWindow::showModalDialog):

  • page/DOMWindow.h:
  • page/DOMWindow.idl:
  • testing/Internals.cpp:

(WebCore::Internals::openDummyInspectorFrontend):

LayoutTests:

  • fast/dom/Window/open-invalid-url-expected.txt:
  • fast/dom/Window/open-invalid-url.html:
1:04 AM Changeset in webkit [235282] by Carlos Garcia Campos
  • 12 edits in trunk

[GTK][WPE] Add API to inject/register user content in isolated worlds
https://bugs.webkit.org/show_bug.cgi?id=188883

Reviewed by Michael Catanzaro.

Source/WebKit:

Add new API to create user scripts/stylesheets for a given script world and to register/unregister user script
messages in a given script world.

  • UIProcess/API/glib/WebKitUserContent.cpp:

(webkitUserContentWorld):
(_WebKitUserStyleSheet::_WebKitUserStyleSheet):
(webkit_user_style_sheet_new):
(webkit_user_style_sheet_new_for_world):
(_WebKitUserScript::_WebKitUserScript):
(webkit_user_script_new):
(webkit_user_script_new_for_world):

  • UIProcess/API/glib/WebKitUserContentManager.cpp:

(webkit_user_content_manager_register_script_message_handler_in_world):
(webkit_user_content_manager_unregister_script_message_handler_in_world):

  • UIProcess/API/glib/WebKitUserContentPrivate.h:
  • UIProcess/API/gtk/WebKitUserContent.h:
  • UIProcess/API/gtk/WebKitUserContentManager.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WebKitUserContent.h:
  • UIProcess/API/wpe/WebKitUserContentManager.h:
  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserContentController::addUserContentWorlds):

Tools:

Add test cases for the new API.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp:

(isStyleSheetInjectedForURLAtPath):
(isScriptInjectedForURLAtPath):
(testUserContentManagerInjectedStyleSheet):
(testUserContentManagerInjectedScript):
(UserScriptMessageTest::registerHandler):
(UserScriptMessageTest::unregisterHandler):
(UserScriptMessageTest::postMessageAndWaitUntilReceived):
(testUserContentManagerScriptMessageInWorldReceived):
(beforeAll):

12:43 AM Changeset in webkit [235281] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

Use OptionSet::containsAny and containsAll in some more places
https://bugs.webkit.org/show_bug.cgi?id=188885

Reviewed by Sam Weinig.

  • page/PerformanceMonitor.cpp:

(WebCore::PerformanceMonitor::activityStateChanged):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::~RenderLayerBacking):

12:32 AM Changeset in webkit [235280] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.3.1

Tag Safari-607.1.3.1.

12:27 AM Changeset in webkit [235279] by Kocsen Chung
  • 28 edits in tags/Safari-607.1.3/Source/WebKit

Revert r234941. rdar://problem/43667266

12:27 AM Changeset in webkit [235278] by Kocsen Chung
  • 5 edits in tags/Safari-607.1.3/Source/WebKit

Revert r234990. rdar://problem/43667266

12:27 AM Changeset in webkit [235277] by Kocsen Chung
  • 28 edits in tags/Safari-607.1.3/Source/WebKit

Revert r235266. rdar://problem/43667266

12:27 AM Changeset in webkit [235276] by Kocsen Chung
  • 5 edits in tags/Safari-607.1.3/Source/WebKit

Revert r235270. rdar://problem/43667266

Note: See TracTimeline for information about the timeline view.