Timeline
Aug 16, 2018:
- 9:58 PM Changeset in webkit [234976] by
-
- 8 edits1 copy2 adds in trunk/Tools
[macOS] [WK2] Add infrastructure to test receiving file promises on drop
https://bugs.webkit.org/show_bug.cgi?id=188583
Reviewed by Andy Estes.
Enable testing file promise drop handling on the WebKit2 port of macOS by introducing a subclass of
NSFilePromiseReceiver and implementing-enumerateDraggingItemsWithOptions:forView:…
on TestDraggingInfo (the
concrete NSDraggingInfo implementation used by DragAndDropSimulator) using the mock file receiver. Also
introduces 3 new macOS tests. See below for more details.
A large portion of this logic is ported over from DumpRenderTree testing infrastructure added in r229297. In a
future patch, we should introduce a way to write code common to both API tests, WebKitTestRunner and
DumpRenderTree, and make this code shared among all three testing harnesses.
Tests: DragAndDropTests.DragImageElementIntoFileUpload
DragAndDropTests.DragPromisedImageFileIntoFileUpload
DragAndDropTests.DragImageFileIntoFileUpload
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:
(TEST):
Drive-by fix: Replace NSMakePoint with CGPointMake.
- TestWebKitAPI/Tests/WebKitCocoa/image-and-file-upload.html:
Add a new test page consisting of an image and a "file upload" area that updates exercises DataTransfer API to
load the dropped image.
- TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:
(waitForConditionWithLogging):
Add a helper function to wait for a condition to evaluate to true. To make failures more informative,
additionally add a mechanism to log a warning message after a given timeout, if the condition has yet to be met.
(TEST):
Add new tests to exercise a few cases of file upload in WebKit, including: (1) dragging from an image element,
(2) dragging files written to the pasteboard as promises, and (3) files written to the pasteboard as file URLs.
- TestWebKitAPI/cocoa/DragAndDropSimulator.h:
Surface the new functionality provided by the file promise receiver mock via two new methods on
DragAndDropSimulator to (1) write files as file promises to the pasteboard, and (2) write files as file paths
directly to the pasteboard.
- TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:
(-[DragAndDropSimulator performDragInWebView:atLocation:withImage:pasteboard:source:]):
(-[DragAndDropSimulator externalPromisedFiles]):
(getFilePathsAndTypeIdentifiers):
(-[DragAndDropSimulator writePromisedFiles:]):
(-[DragAndDropSimulator writeFiles:]):
- TestWebKitAPI/mac/TestDraggingInfo.h:
- TestWebKitAPI/mac/TestDraggingInfo.mm:
(-[TestDraggingInfo initWithDragAndDropSimulator:]):
(-[TestDraggingInfo filePromiseReceivers]):
(-[TestDraggingInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]):
Implement this by invoking the given block with a TestFilePromiseReceiver. While all other classes are
unhandled by this testing code, WebKit only calls into this with [NSFilePromiseReceiver class], this is
currently sufficient for testing purposes.
- TestWebKitAPI/mac/TestFilePromiseReceiver.h: Copied from Tools/TestWebKitAPI/mac/TestDraggingInfo.h.
- TestWebKitAPI/mac/TestFilePromiseReceiver.mm: Added.
(-[TestFilePromiseReceiver initWithPromisedTypeIdentifiers:dragAndDropSimulator:]):
(-[TestFilePromiseReceiver fileTypes]):
(-[TestFilePromiseReceiver fileNames]):
(-[TestFilePromiseReceiver dealloc]):
(-[TestFilePromiseReceiver draggingSource]):
(-[TestFilePromiseReceiver setDraggingSource:]):
(fileNameWithNumericSuffix):
(copyFile):
Add a helper to copy a file into a destination directory. Used to implement the main functionality of our
NSFilePromiseReceiver subclass, which copies the files specified by test code into the directory determined by
WebKit.
(-[TestFilePromiseReceiver receivePromisedFilesAtDestination:options:operationQueue:reader:]):
- 8:06 PM Changeset in webkit [234975] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] alignas for RegisterState should respect alignof(RegisterState) too
https://bugs.webkit.org/show_bug.cgi?id=188686
Reviewed by Saam Barati.
RegisterState would have larger alignment than
alignof(void*)
. We use the larger alignment value
foralignof
for RegisterState.
- heap/RegisterState.h:
- 7:37 PM Changeset in webkit [234974] by
-
- 11 edits11 adds in trunk
Web Inspector: support breakpoints for arbitrary event names
https://bugs.webkit.org/show_bug.cgi?id=183118
Reviewed by Joseph Pecoraro.
Source/WebCore:
Tests: inspector/dom-debugger/event-breakpoints.html
inspector/dom-debugger/event-breakpoints-with-navigation.html
- inspector/agents/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
Source/WebInspectorUI:
Create UI for setting breakpoints on event names. Ties into renamed DOMDebugger commands,
specificallysetEventBreakpoint
andremoveEventBreakpoint
, that will pause execution if
any DOM event is fired that matches any previously registered breakpoints.
Event breakpoints are distinguished by name, and they currently apply globally, meaning
that only one breakpoint per event name can be registered.
Event breakpoints are created in the Debugger tab in a new "Event Breakpoints" section in
the Navigation sidebar. A new type of popover, EventBreakpointPopover, is used, but right
now all it contains is a basic text input for the event name. Similarly, a new TreeElement
subclass, EventBreakpointTreeElement, is used when showing the list of event listener
breakpoints, but all it shows now is the event name.
The majority of the logic in this patch was derived from XHR breakpoints.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Main.html:
- UserInterface/Test.html:
- UserInterface/Images/EventBreakpoint.svg: Added.
- UserInterface/Models/EventBreakpoint.js: Added.
(WI.EventBreakpoint):
(WI.EventBreakpoint.prototype.get eventName):
(WI.EventBreakpoint.prototype.get disabled):
(WI.EventBreakpoint.prototype.set disabled):
(WI.EventBreakpoint.prototype.get serializableInfo):
(WI.EventBreakpoint.prototype.saveIdentityToCookie):
- UserInterface/Controllers/DOMDebuggerManager.js:
(WI.DOMDebuggerManager):
(WI.DOMDebuggerManager.prototype.get eventBreakpoints): Added.
(WI.DOMDebuggerManager.prototype.eventBreakpointForEventName): Added.
(WI.DOMDebuggerManager.prototype.addEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype.removeEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
(WI.DOMDebuggerManager.prototype._updateEventBreakpoint.breakpointUpdated): Added.
(WI.DOMDebuggerManager.prototype._updateEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._resolveEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._saveEventBreakpoints): Added.
(WI.DOMDebuggerManager.prototype._eventBreakpointDisabledStateDidChange): Added.
- UserInterface/Controllers/DebuggerManager.js:
(WI.DebuggerManager.prototype._pauseReasonFromPayload):
- UserInterface/Controllers/EventBreakpointTreeController.js: Added.
(WI.EventBreakpointTreeController):
(WI.EventBreakpointTreeController.prototype.revealAndSelect):
(WI.EventBreakpointTreeController.prototype._eventBreakpointAdded):
(WI.EventBreakpointTreeController.prototype._eventBreakpointRemoved):
(WI.EventBreakpointTreeController.prototype._addTreeElement):
- UserInterface/Views/DebuggerSidebarPanel.js:
(WI.DebuggerSidebarPanel):
(WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
(WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved): Added.
(WI.DebuggerSidebarPanel.prototype._addEventBreakpointButtonClicked): Added.
(WI.DebuggerSidebarPanel.prototype.willDismissPopover):
- UserInterface/Views/EventBreakpointTreeElement.js: Added.
(WI.EventBreakpointTreeElement):
(WI.EventBreakpointTreeElement.prototype.onattach):
(WI.EventBreakpointTreeElement.prototype.ondetach):
(WI.EventBreakpointTreeElement.prototype.ondelete):
(WI.EventBreakpointTreeElement.prototype.onenter):
(WI.EventBreakpointTreeElement.prototype.onspace):
(WI.EventBreakpointTreeElement.prototype.populateContextMenu):
(WI.EventBreakpointTreeElement.prototype._statusImageElementClicked):
(WI.EventBreakpointTreeElement.prototype._statusImageElementFocused):
(WI.EventBreakpointTreeElement.prototype._statusImageElementMouseDown):
(WI.EventBreakpointTreeElement.prototype._toggleBreakpoint):
(WI.EventBreakpointTreeElement.prototype._updateStatus):
- UserInterface/Views/EventBreakpointTreeElement.css: Added.
(.breakpoint.event-listener:not(.breakpoint-paused-icon) .icon):
- UserInterface/Views/EventBreakpointPopover.js: Added.
(WI.EventBreakpointPopover):
(WI.EventBreakpointPopover.prototype.get result):
(WI.EventBreakpointPopover.prototype.get value):
(WI.EventBreakpointPopover.prototype.show):
(WI.EventBreakpointPopover.prototype._presentOverTargetElement):
- UserInterface/Views/EventBreakpointPopover.css: Added.
(.popover .event-listener-breakpoint-content):
(.popover .event-listener-breakpoint-content > input):
- UserInterface/Views/NavigationSidebarPanel.js:
(WI.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
LayoutTests:
- inspector/dom-debugger/event-breakpoints-expected.txt: Added.
- inspector/dom-debugger/event-breakpoints.html: Added.
- inspector/dom-debugger/event-breakpoints-with-navigation-expected.txt: Added.
- inspector/dom-debugger/event-breakpoints-with-navigation.html: Added.
- 5:50 PM Changeset in webkit [234973] by
-
- 4 edits in trunk
[Curl] Bug fix on deleting cookies when Max-Age is set to zero.
https://bugs.webkit.org/show_bug.cgi?id=188617
Reviewed by Alex Christensen.
Source/WebCore:
Delete cookie if Max-Age is set to zero in Set-Cookie. Original implementation was
compared using "less than", but it must be "less than or equal" to zero.
Tests: http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html
- platform/network/curl/CookieJarDB.cpp:
(WebCore::CookieJarDB::setCookie):
LayoutTests:
- platform/wincairo/TestExpectations:
- http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html [ Pass ]
- 4:55 PM Changeset in webkit [234972] by
-
- 2 edits1 delete in trunk/Source/WebKit
Unreviewed, rolling out r234958.
https://bugs.webkit.org/show_bug.cgi?id=188683
Breaking builds due to copy failure (Requested by brichards on
#webkit).
Reverted changeset:
"Add script to generate WebContent service resource files"
https://bugs.webkit.org/show_bug.cgi?id=188601
https://trac.webkit.org/changeset/234958
- 4:50 PM Changeset in webkit [234971] by
-
- 4 edits in trunk
[Curl] Implement deleteAllCookies()
https://bugs.webkit.org/show_bug.cgi?id=188612
Reviewed by Alex Christensen.
Source/WebCore:
deleteAllCookies() was not implemented. Connect the interface to the implementation.
Tests: http/tests/cookies/simple-cookies-expired.html
http/tests/cookies/simple-cookies-max-age.html
- platform/network/curl/CookieJarCurlDatabase.cpp:
(WebCore::CookieJarCurlDatabase::deleteAllCookies const):
LayoutTests:
- platform/wincairo/TestExpectations:
- http/tests/cookies/simple-cookies-expired.html [ Pass ]
- http/tests/cookies/simple-cookies-max-age.html [ Pass ]
- 4:31 PM Changeset in webkit [234970] by
-
- 4 edits in trunk/Source/WebKit
Remove unused parentProcessName from NetworkProcessCreationParameters
https://bugs.webkit.org/show_bug.cgi?id=188618
Reviewed by Alex Christensen.
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
- 4:30 PM Changeset in webkit [234969] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r234930): Don't embed a #if in an ASSERT
https://bugs.webkit.org/show_bug.cgi?id=188680
Reviewed by Tim Horton.
- page/EventHandler.cpp:
(WebCore::EventHandler::handleDrag):
Simplify the ASSERT -- it seems we just want to know that DragSourceActionSelection and exactly one other DragSourceAction is set.
- 4:20 PM Changeset in webkit [234968] by
-
- 20 edits5 adds2 deletes in trunk/Source
[watchOS] Upstream Proximity Networking (nee Wi-Fi Assertions)
https://bugs.webkit.org/show_bug.cgi?id=188664
Reviewed by Tim Horton.
Source/WebKit:
Proximity Networking provides two features for speeding up page loads on watchOS:
- Binding requests to the Apple Watch's Wi-Fi interface even when the iPhone is in proximity.
- When Wi-Fi isn't available, preemptively upgrading the Bluetooth link to its fastest data
rate prior to starting page loads.
- Configurations/WebKit.xcconfig:
Added LDFLAGS for Proximity Networking.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::NetworkProcess):
(WebKit::NetworkProcess::proximityManager):
- NetworkProcess/NetworkProcess.h:
Added NetworkProximityManager as a supplement.
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
Renamed ENABLE(WIFI_ASSERTIONS) to ENABLE(PROXIMITY_NETWORKING).
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
Renamed m_wiFiAssertionHolder to m_proximityAssertionToken and changed its type from an
optional WiFiAssertionHolder to an optional NetworkProximityAssertion::Token.
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
(WebKit::NetworkProcess::platformPrepareToSuspend):
(WebKit::NetworkProcess::platformProcessDidResume):
(WebKit::NetworkProcess::platformProcessDidTransitionToBackground):
(WebKit::NetworkProcess::platformProcessDidTransitionToForeground):
Changed to use NetworkProximityManager.
- NetworkProcess/cocoa/WiFiAssertionHolder.h: Removed.
- NetworkProcess/cocoa/WiFiAssertionHolder.mm: Removed.
- NetworkProcess/watchos/NetworkProximityAssertion.h: Added.
(WebKit::NetworkProximityAssertion::Token::Token):
(WebKit::NetworkProximityAssertion::Token::~Token):
Added. NetworkDataTasks hold these tokens to keep Bluetooth or Wi-Fi assertions active
during loading. When the last token is destroyed, its associated assertion will be
deactivated.
- NetworkProcess/watchos/NetworkProximityAssertion.mm: Added.
(WebKit::NetworkProximityAssertion::NetworkProximityAssertion):
(WebKit::NetworkProximityAssertion::hold):
(WebKit::NetworkProximityAssertion::release):
(WebKit::NetworkProximityAssertion::resume):
(WebKit::NetworkProximityAssertion::suspend):
(WebKit::NetworkProximityAssertion::suspendNow):
(WebKit::NetworkProximityAssertion::releaseTimerFired):
(WebKit::NetworkProximityAssertion::suspendAfterBackgroundingTimerFired):
Added. NetworkProximityAssertion is the base class for Bluetooth and Wi-Fi assertions. It
manages the logic for holding and releasing assertions as well as responding to network
process backgrounding and suspension.
(WebKit::BluetoothProximityAssertion::BluetoothProximityAssertion):
(WebKit::BluetoothProximityAssertion::suspend):
(WebKit::BluetoothProximityAssertion::holdNow):
(WebKit::BluetoothProximityAssertion::releaseNow):
Added. Holds a Bluetooth assertion by calling -[IDSService setLinkPreferences:].
(WebKit::WiFiProximityAssertion::WiFiProximityAssertion):
(WebKit::WiFiProximityAssertion::holdNow):
(WebKit::WiFiProximityAssertion::releaseNow):
Added. Holds a Wi-Fi assertion by using WiFiManagerClient.
- NetworkProcess/watchos/NetworkProximityManager.h: Added.
- NetworkProcess/watchos/NetworkProximityManager.mm: Added.
(-[WKProximityServiceDelegate setClient:]):
(-[WKProximityServiceDelegate service:devicesChanged:]):
(-[WKProximityServiceDelegate service:nearbyDevicesChanged:]):
(WebKit::NetworkProximityManager::NetworkProximityManager):
(WebKit::NetworkProximityManager::~NetworkProximityManager):
(WebKit::NetworkProximityManager::supplementName):
(WebKit::bindRequestToWiFi):
(WebKit::NetworkProximityManager::applyProperties):
(WebKit::NetworkProximityManager::resume):
(WebKit::NetworkProximityManager::suspend):
(WebKit::NetworkProximityManager::recommendation const):
(WebKit::NetworkProximityManager::processRecommendations):
(WebKit::toProcessID):
(WebKit::NetworkProximityManager::resumeRecommendations):
(WebKit::NetworkProximityManager::suspendRecommendations):
(WebKit::NetworkProximityManager::updateCompanionProximity):
(WebKit::NetworkProximityManager::updateRecommendation):
(WebKit::NetworkProximityManager::initialize):
(WebKit::NetworkProximityManager::devicesChanged):
Added. NetworkProximityManager is a network process supplement that can bind
NetworkDataTasks to Wi-Fi, associate assertions with NetworkDataTasks, check for companion
proximity, ask for proximity network recommendations, and respond to network process
backgrounding and suspending.
- Platform/Logging.h:
Renamed the WiFiAssertions log channel to ProximityNetworking.
- Platform/spi/ios/MobileWiFiSPI.h:
- UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
- UIProcess/API/APIProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
Renamed ENABLE(WIFI_ASSERTIONS) to ENABLE(PROXIMITY_NETWORKING).
- WebKit.xcodeproj/project.pbxproj:
- config.h:
Removed unused definition of HAVE_MOBILE_WIFI.
Source/WTF:
- wtf/FeatureDefines.h: Defined ENABLE_PROXIMITY_NETWORKING to 1 on watchOS.
- 4:05 PM Changeset in webkit [234967] by
-
- 3 edits in trunk/Source/WebCore
Remove unused allowScriptsToCloseWindows setting
https://bugs.webkit.org/show_bug.cgi?id=188602
Reviewed by Simon Fraser.
No change in behaviour. It was always false.
- page/DOMWindow.cpp:
(WebCore::DOMWindow::close):
- page/Settings.yaml:
- 4:03 PM Changeset in webkit [234966] by
-
- 2 edits in trunk/Tools
Add entitlement to MiniBrowser to allow it to communicate with com.apple.Safari.SafeBrowsing.Service
https://bugs.webkit.org/show_bug.cgi?id=188677
Reviewed by Tim Horton.
- MiniBrowser/MiniBrowser.entitlements:
SSBLookupContext lookUpURL:completionHandler: fails to communicate with its service without this entitlement
on released operating systems. See <rdar://problem/42749777>
- 4:01 PM Changeset in webkit [234965] by
-
- 3 edits in trunk/Source/WebKit
Remove unused and deprecated _WKProcessPoolConfiguration.allowsCellularAccess
https://bugs.webkit.org/show_bug.cgi?id=188681
Reviewed by Tim Horton.
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration allowsCellularAccess]): Deleted.
(-[_WKProcessPoolConfiguration setAllowsCellularAccess:]): Deleted.
- 4:00 PM Changeset in webkit [234964] by
-
- 5 edits in trunk/Source/WebKit
Deprecate SPI that is or ought to be unused
https://bugs.webkit.org/show_bug.cgi?id=188616
Reviewed by Tim Horton.
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu):
- 3:49 PM Changeset in webkit [234963] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Show Initiator information in Network Table
https://bugs.webkit.org/show_bug.cgi?id=188590
<rdar://problem/43305488>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-16
Reviewed by Matt Baker.
- UserInterface/Views/NetworkResourceDetailView.js:
(WI.NetworkResourceDetailView):
(WI.NetworkResourceDetailView.prototype.shown):
(WI.NetworkResourceDetailView.prototype.willShowWithCookie):
(WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem):
When a ResourceDetailView gets shown, it may also want to show its initial content view
with a cookie as the cookie may contain position highlight information.
- UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype._showResourceDetailView):
(WI.NetworkTableContentView.prototype.showRepresentedObject):
When showing a represented object, pass the cookie information on to the detail
view's so that it may include the cookie when showing the final content view.
(WI.NetworkTableContentView.prototype.tablePopulateCell):
(WI.NetworkTableContentView.prototype._populateInitiatorCell):
(WI.NetworkTableContentView.prototype.initialLayout):
New initiator column contains a source code link to the call site.
(WI.NetworkTableContentView.prototype._generateSortComparator):
(WI.NetworkTableContentView.prototype._entryForResource):
Entry data for the initiator is a display string that can be sorted easily.
- 3:37 PM Changeset in webkit [234962] by
-
- 3 edits in trunk/Tools
Add option to run-api-tests to force running of DISABLED tests.
https://bugs.webkit.org/show_bug.cgi?id=188674
Reviewed by Joseph Pecoraro.
- Scripts/webkitpy/api_tests/run_api_tests.py:
(parse_args):
- Scripts/webkitpy/api_tests/runner.py:
(Runner.command_for_port):
(_Worker._run_single_test):
- 3:11 PM Changeset in webkit [234961] by
-
- 2 edits in trunk/Tools
[ews-build] Separate queues for Builders and Testers - macOS High Sierra
https://bugs.webkit.org/show_bug.cgi?id=188540
Reviewed by Lucas Forschler.
- BuildSlaveSupport/ews-build/config.json: Splitted few macOS queues into builders and testers.
- 3:10 PM Changeset in webkit [234960] by
-
- 3 edits in trunk/Source/WebKit
Add temporary SPI WKContextHandlesSafeBrowsing
https://bugs.webkit.org/show_bug.cgi?id=188676
Reviewed by Joseph Pecoraro.
WebKit showing the safe browsing warning doesn't play well with Safari showing the safe browsing warning.
I plan to adopt this SPI in Safari to disable Safari's safe browsing check if it's true.
Then when I implement safe browsing in WebKit, I can switch this value to true in the same change and
not have a broken Safari.
- UIProcess/API/C/mac/WKContextPrivateMac.h:
- UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextHandlesSafeBrowsing):
- 3:08 PM Changeset in webkit [234959] by
-
- 1 copy in tags/Safari-606.1.36.1.6
Tag Safari-606.1.36.1.6.
- 2:59 PM Changeset in webkit [234958] by
-
- 2 edits1 add in trunk/Source/WebKit
Add script to generate WebContent service resource files
https://bugs.webkit.org/show_bug.cgi?id=188601
Patch by Ben Richards <benton_richards@apple.com> on 2018-08-16
Reviewed by Dan Bernstein.
Added new build phase to WebContent service to copy resource files to WebKit.framework/PrivateHeaders/CustomWebContentResource.
These resources are intended to be used by a client to create a custom WebContent service.
- Scripts/copy-webcontent-resources-to-private-headers.sh: Added.
- WebKit.xcodeproj/project.pbxproj:
- 2:18 PM Changeset in webkit [234957] by
-
- 4 edits in trunk
Custom element constructor doesn't use HTMLElement in new.target's realm
https://bugs.webkit.org/show_bug.cgi?id=188634
Reviewed by Keith Miller.
LayoutTests/imported/w3c:
Rebaselined the test now that all relevant test cases pass. All remaining test failures are
for customized builtin, which we do not and shall not implement.
- web-platform-tests/custom-elements/htmlconstructor/newtarget-expected.txt:
Source/WebCore:
Fixed the bug that HTMLElement's constructor was constructing an element of its own realm
instead of the realm of new.target. This results in the JS wrapper created for the element
belonging to the global object of the HTMLElement constructor which was invoked instead of
the global object of new.target as specified in:
https://html.spec.whatwg.org/multipage/dom.html#html-element-constructors
In particular, step 9.2. specifies that we "perform element.SetPrototypeOf(prototype)."
where prototype is the result of Get(NewTarget, "prototype") in step 7.
WebKit's new behavior matches that of Chrome and Firefox.
Test: imported/w3c/web-platform-tests/custom-elements/htmlconstructor/newtarget.html
- bindings/js/JSHTMLElementCustom.cpp:
(WebCore::constructJSHTMLElement):
- 2:10 PM Changeset in webkit [234956] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix the watchOS build after r188464.
- platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::setColor):
- 2:09 PM Changeset in webkit [234955] by
-
- 3 edits3 copies1 add in trunk/LayoutTests
[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188675
Unreviewed test gardening.
Fix expectations to match after r234892 landed.
- platform/wincairo/TestExpectations:
- platform/wincairo/http/tests/xmlhttprequest/methods-async-expected.txt: Added
- platform/wincairo/http/tests/xmlhttprequest/methods-expected.txt:
- platform/wincairo/http/tests/xmlhttprequest/workers/methods-async-expected.txt: Added
- platform/wincairo/http/tests/xmlhttprequest/workers/methods-expected.txt: Added
- 1:52 PM Changeset in webkit [234954] by
-
- 10 edits in trunk/Source/WebKit
Consolidate data/string API loading paths
https://bugs.webkit.org/show_bug.cgi?id=188417
Reviewed by Michael Catanzaro.
loadHTMLString and loadData are basically duplicate code.
loadPlainTextString was also basically the same except it didn't set up a navigation, which
was almost certainly a bug, but nobody uses it in all of Apple and Debian. We should probably deprecate
and remove it, but for now I make it use the same data loading path.
- UIProcess/API/C/WKPage.cpp:
(WKPageLoadData):
(WKPageLoadDataWithUserData):
(loadString):
(WKPageLoadHTMLString):
(WKPageLoadHTMLStringWithUserData):
(WKPageLoadPlainTextString):
(WKPageLoadPlainTextStringWithUserData):
- UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(-[WKBrowsingContextController loadHTMLString:baseURL:userData:]):
(-[WKBrowsingContextController loadData:MIMEType:textEncodingName:baseURL:userData:]):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView loadData:MIMEType:characterEncodingName:baseURL:]):
(-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]):
- UIProcess/API/glib/WebKitWebView.cpp:
(webkit_web_view_load_html):
(webkit_web_view_load_plain_text):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadHTMLString): Deleted.
(WebKit::WebPageProxy::loadPlainTextString): Deleted.
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadData):
(WebKit::WebPage::loadString): Deleted.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- 1:50 PM Changeset in webkit [234953] by
-
- 5 edits2 adds in trunk
Custom element doesn't invalidate its style when :defined rule starts to apply
https://bugs.webkit.org/show_bug.cgi?id=188637
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Rebaselined the test now that all relevant test cases pass. The only remaining test failures
are for customized builtins which we do not and shall not implement.
- web-platform-tests/custom-elements/pseudo-class-defined-expected.txt:
Source/WebCore:
Fixed the bug by invalidating the subtree when a custom element gets defined.
Test: fast/custom-elements/defined-update-style.html
- dom/Element.cpp:
(WebCore::Element::setIsDefinedCustomElement):
LayoutTests:
Added a regression test.
- fast/custom-elements/defined-update-style-expected.html: Added.
- fast/custom-elements/defined-update-style.html: Added.
- 1:41 PM Changeset in webkit [234952] by
-
- 3 edits in trunk/Tools
[ews-build] Add build steps ArchiveTestResults, UploadTestResults and ExtractTestResults
https://bugs.webkit.org/show_bug.cgi?id=188666
Reviewed by Lucas Forschler.
- BuildSlaveSupport/ews-build/steps.py:
(ArchiveTestResults): Build step to Archive the test results.
(UploadTestResults): Build step to upload the archive.
(ExtractTestResults): Build step to unzip the archive on server and generate a link.
- BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
(ExpectMasterShellCommand): Copied from other similar internal code.
- 1:40 PM Changeset in webkit [234951] by
-
- 3 edits in trunk/Tools
[ews-build] Separate queues for Builders and Testers - macOS Sierra
https://bugs.webkit.org/show_bug.cgi?id=188516
Reviewed by Lucas Forschler.
- BuildSlaveSupport/ews-build/config.json: Splitted macOS Sierra Release queues into builders and testers.
- BuildSlaveSupport/ews-build/factories.py: Used appropriate base classes for builders and testers.
- 1:15 PM Changeset in webkit [234950] by
-
- 2 edits in trunk/LayoutTests
[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188668
Unreviewed test gardening.
After r234863 landed, the information in the
LayoutTests/tests-options.json
is effective on WinCairo tests.
Remove [ Slow ] keywords. Also maintain xmlhttprequest results.
- platform/wincairo/TestExpectations:
- 12:50 PM Changeset in webkit [234949] by
-
- 2 edits in trunk/Source/WebCore
Change the input camera in the sources & outputs example on Safari (11) with M.Way camera
https://bugs.webkit.org/show_bug.cgi?id=187756
<rdar://problem/42332178>
Reviewed by Eric Carlson.
Covered by manual testing.
640x480x30fps is added as ideal constraints to getUserMedia if none other is added to provide consistent behavior.
Some cameras do not support 30fps as they have discrete frame rate ranges.
Before the patch, we were rejecting getUserMedia promise if the 'ideal' frameRate was not supported.
After the patch, we do not check whether frame rate is supported if it is not mandatory.
At capture time, we will still try to apply frame rate change and if not supported, the frame rate will not be set to 30 fps.
While we could surface discrete width/height/frame rate ranges, it seems best to fix the issue this way.
In the future, we might implement video interpolation for width/height/framerate at WebCore level.
- platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::supportsSizeAndFrameRate):
(WebCore::RealtimeMediaSource::supportsConstraint const):
(WebCore::RealtimeMediaSource::supportsConstraints):
- 12:38 PM Changeset in webkit [234948] by
-
- 2 edits in trunk/Tools
[Win][DumpRenderTree] Remove error message for duplicated tests.
https://bugs.webkit.org/show_bug.cgi?id=188662
Reviewed by Per Arne Vollan.
This was added to track down an issue where the same tests appeared
to be run multiple times. This turned out to not be the case.
See https://bugs.webkit.org/show_bug.cgi?id=166760 .
- DumpRenderTree/win/DumpRenderTree.cpp:
(runTest):
- 12:02 PM Changeset in webkit [234947] by
-
- 2 edits in trunk/LayoutTests
[Win] The layout test editing/pasteboard/drag-and-drop-color-input-events.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=188667
Unreviewed test gardening.
- platform/win/TestExpectations:
- 11:49 AM Changeset in webkit [234946] by
-
- 5 edits in trunk/Source/WebKit
Transition more WKWebViewConfiguration ivars to API::PageConfiguration values
https://bugs.webkit.org/show_bug.cgi?id=188665
Reviewed by Joseph Pecoraro.
APPLICATION_MANIFEST is enabled on all Cocoa platforms, so I removed some guards, too!
- UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::applicationManifest const):
- UIProcess/API/APIPageConfiguration.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _applicationManifest]):
(-[WKWebViewConfiguration _setApplicationManifest:]):
(-[WKWebViewConfiguration _setCPULimit:]):
(-[WKWebViewConfiguration _cpuLimit]):
- 11:41 AM Changeset in webkit [234945] by
-
- 4 edits1 add in trunk
LayoutTest inspector/worker/debugger-pause.html sometimes times out
https://bugs.webkit.org/show_bug.cgi?id=188580
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-16
Reviewed by Matt Baker.
Source/WebInspectorUI:
- UserInterface/Protocol/Target.js:
(WI.Target.prototype.get mainResource):
(WI.Target.prototype.set mainResource):
Dispatch an event when the Main Resource is set.
LayoutTests:
- inspector/worker/debugger-pause.html:
- inspector/worker/resources/worker-utilities.js: Added.
(TestPage.registerInitializer.window.awaitTargetMainResource):
(TestPage.registerInitializer):
Use a more deterministic wait for the main resource.
- 11:25 AM Changeset in webkit [234944] by
-
- 5 edits2 adds in trunk
Perform a microtask checkpoint before creating a custom element
https://bugs.webkit.org/show_bug.cgi?id=188189
<rdar://problem/42843022>
Reviewed by Geoffrey Garen.
Source/WebCore:
Fixed the bug that the HTML parser was not performing a microtask checkpoint prior to synchronously constructing
a custom element in the concept to create an element for a token:
https://html.spec.whatwg.org/multipage/parsing.html#creating-and-inserting-nodes:perform-a-microtask-checkpoint
Also added a microtask checkpoint before dispatching DOMContentLoaded to work around webkit.org/b/82931 since
scheduling a task to fire a DOMContentLoaded event in Document::finishedParsing as the HTML5 spec mandates
is a long standing bug with a lot of implications, which is completely outside the scope of this bug fix:
https://html.spec.whatwg.org/multipage/parsing.html#stop-parsing
Test: fast/custom-elements/perform-microtask-checkpoint-before-construction.html
- dom/Document.cpp:
(WebCore::Document::finishedParsing): Perform a microtask checkpoint before dispatching DOMContentLoaded here as
a workaround for webkit.org/b/82931.
- html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder): Perform a microtask checkpoint here to fix the bug.
LayoutTests:
Added a W3C style testharness.js test for perfoming microtask checkpoint before constructing
a custom element synchronously.
- fast/custom-elements/perform-microtask-checkpoint-before-construction-expected.txt: Added.
- fast/custom-elements/perform-microtask-checkpoint-before-construction.html: Added.
- fast/dom/MutationObserver/parser-mutations.html: Fixed the test per new behavior in Document::finishParsing.
Because iframe loads synchronously and fires DOMContentLoaded, mutation records are now delivered twice after
iframe element is encountered in this test and before script element executes. Concatenate the mutation records
arrays to account for this behavioral change. New WebKit behavior matches that of Chrome; namely this test
fails both on Chrome Canary 70 and trunk WebKit with this patch without this fix.
- 11:21 AM Changeset in webkit [234943] by
-
- 6 edits in trunk
Re-introduce assertion removed in r234890
https://bugs.webkit.org/show_bug.cgi?id=188611
Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-16
Reviewed by Geoffrey Garen.
Source/WebCore:
The assertion was failing because Vector<String>::operator== was using memcmp,
which failed to consider different instances of equal Strings equal. Added an
API test and this assertion, which now succeeds.
- contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
Source/WTF:
- wtf/text/WTFString.h:
Tools:
- TestWebKitAPI/Tests/WTF/Vector.cpp:
(TestWebKitAPI::TEST):
- 11:19 AM Changeset in webkit [234942] by
-
- 3 edits in trunk/Source/WebKit
Transition more WKWebViewConfiguration ivars to API::PageConfiguration values
https://bugs.webkit.org/show_bug.cgi?id=188663
Reviewed by Tim Horton.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _drawsBackground]):
(-[WKWebViewConfiguration _setDrawsBackground:]):
(-[WKWebViewConfiguration _waitsForPaintAfterViewDidMoveToWindow]):
(-[WKWebViewConfiguration _setWaitsForPaintAfterViewDidMoveToWindow:]):
(-[WKWebViewConfiguration _isControlledByAutomation]):
(-[WKWebViewConfiguration _setControlledByAutomation:]):
- 10:59 AM Changeset in webkit [234941] by
-
- 28 edits in trunk/Source/WebKit
Stop using canAuthenticateAgainstProtectionSpace in modern WebKit
https://bugs.webkit.org/show_bug.cgi?id=188639
Reviewed by Youenn Fablet.
canAuthenticateAgainstProtectionSpace is an unnecessary step in the authentication process.
It is leftover from when it was necessary when we used NSURLConnection, which is only used in WebKitLegacy now.
Now it's just an extra IPC roundtrip asking if we should use NSURLSessionAuthChallengeRejectProtectionSpace
or if we are going to ask the API client. We can move this step into the C API for compatibility
with the 1 client that still uses it (not for long, see rdar://problem/43358403) and simplify and optimize
authentication.
- NetworkProcess/Downloads/PendingDownload.cpp:
(WebKit::PendingDownload::canAuthenticateAgainstProtectionSpaceAsync): Deleted.
- NetworkProcess/Downloads/PendingDownload.h:
- NetworkProcess/NetworkCORSPreflightChecker.cpp:
(WebKit::NetworkCORSPreflightChecker::didReceiveChallenge):
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::~NetworkLoad):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::completeAuthenticationChallenge): Deleted.
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace): Deleted.
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/NetworkLoadClient.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::cancelDownload):
(WebKit::NetworkProcess::canAuthenticateAgainstProtectionSpace): Deleted.
(WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace): Deleted.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync): Deleted.
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/PreconnectTask.cpp:
(WebKit::PreconnectTask::canAuthenticateAgainstProtectionSpaceAsync): Deleted.
- NetworkProcess/PreconnectTask.h:
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::canAuthenticateAgainstProtectionSpaceAsync): Deleted.
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
- Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
- Shared/Authentication/AuthenticationManager.h:
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPageNavigationClient):
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
- UIProcess/Cocoa/NavigationState.h:
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge):
(WebKit::NavigationState::NavigationClient::canAuthenticateAgainstProtectionSpace): Deleted.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::canAuthenticateAgainstProtectionSpace): Deleted.
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::canAuthenticateAgainstProtectionSpace): Deleted.
- UIProcess/WebPageProxy.h:
- 10:57 AM Changeset in webkit [234940] by
-
- 27 edits10 adds in trunk
Add Experimental Feature support for SourceBuffer.changeType()
https://bugs.webkit.org/show_bug.cgi?id=188626
LayoutTests/imported/w3c:
Reviewed by Eric Carlson.
- resources/import-expectations.json:
- web-platform-tests/media-source/mediasource-changetype-expected.txt: Added.
- web-platform-tests/media-source/mediasource-changetype-play-expected.txt: Added.
- web-platform-tests/media-source/mediasource-changetype-play.html: Added.
- web-platform-tests/media-source/mediasource-changetype-util.js: Added.
(findSupportedChangeTypeTestTypes):
(appendBuffer):
(trimBuffered):
(trimDuration):
(runChangeTypeTest):
(mediaSourceChangeTypeTest):
- web-platform-tests/media-source/mediasource-changetype.html: Added.
- web-platform-tests/media-source/mp3/sound_5.mp3: Added.
- web-platform-tests/media-source/mp3/w3c-import.log: Added.
- web-platform-tests/media-source/w3c-import.log:
- web-platform-tests/media-source/webm/test-vp9.webm: Added.
- web-platform-tests/media-source/webm/w3c-import.log:
Source/WebCore:
Reviewed by Eric Carlson.
Tests: imported/w3c/web-platform-tests/media-source/mediasource-changetype-play.html
imported/w3c/web-platform-tests/media-source/mediasource-changetype.html
The WICG is incubating a new proposal to allow clients to switch between streams
with different codecs within the same SourceBuffer. The proposal is being tracked
by <https://github.com/w3c/media-source/issues/155> and the proposed spec change
is available at <https://rawgit.com/wicg/media-source/codec-switching/index.html>.
Drive-by fix: One of the wpt tests uses a .mp3 file to test SourceBuffer switching.
The AVStreamDataParser does not necessarily emit every frame appended, and after a
new init segment is appended, it's possible that frames from the previous media
segment will be emitted. This causes an error condition to occur, due to an added
check in the spec for a new flag. When the SourceBuffer asks its private implementation
to reset the parser state, since there's no API on AVStreamDataParser to actually
reset the parser state, just set a flag to drop all emitted buffers until the next
initialization segment is parsed.
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::contentTypeShouldGenerateTimestamps):
(WebCore::MediaSource::setDurationInternal):
(WebCore::MediaSource::addSourceBuffer):
- Modules/mediasource/MediaSource.h:
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::changeType):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
(WebCore::SourceBuffer::validateInitializationSegment):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
- Modules/mediasource/SourceBuffer.h:
- Modules/mediasource/SourceBuffer.idl:
- page/Settings.yaml:
- platform/graphics/SourceBufferPrivate.h:
(WebCore::SourceBufferPrivate::canSwitchToType):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset):
(WebCore::SourceBufferPrivateAVFObjC::processCodedFrame):
(WebCore::SourceBufferPrivateAVFObjC::resetParserState):
(WebCore::SourceBufferPrivateAVFObjC::canSwitchToType):
Source/WebKit:
Reviewed by Eric Carlson.
- Shared/WebPreferences.yaml:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetSourceBufferChangeTypeEnabled):
(WKPreferencesGetSourceBufferChangeTypeEnabled):
- UIProcess/API/C/WKPreferencesRefPrivate.h:
Source/WebKitLegacy/mac:
<rdar://problem/43356021>
Reviewed by Eric Carlson.
Add a new WebPreference property mapping to the WebCore SourceBufferChangeTypeEnabled setting.
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences sourceBufferChangeTypeEnabled]):
(-[WebPreferences setSourceBufferChangeTypeEnabled:]):
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Tools:
<rdar://problem/43356021>
Reviewed by Eric Carlson.
- DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures):
(resetWebPreferencesToConsistentValues):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
LayoutTests:
Reviewed by Eric Carlson.
- platform/mac/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-expected.txt: Added.
- 10:53 AM Changeset in webkit [234939] by
-
- 3 edits in trunk/Source/WebKit
Transition more WKWebViewConfiguration ivars to API::PageConfiguration values
https://bugs.webkit.org/show_bug.cgi?id=188661
Reviewed by Anders Carlsson.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _alwaysRunsAtForegroundPriority]):
(-[WKWebViewConfiguration _setAlwaysRunsAtForegroundPriority:]):
(-[WKWebViewConfiguration _initialCapitalizationEnabled]):
(-[WKWebViewConfiguration _setInitialCapitalizationEnabled:]):
(-[WKWebViewConfiguration _overrideContentSecurityPolicy]):
(-[WKWebViewConfiguration _setOverrideContentSecurityPolicy:]):
- 10:40 AM Changeset in webkit [234938] by
-
- 3 edits in trunk/Source/WebCore
[Curl] Not all Cookie database files are deleted on corruption
https://bugs.webkit.org/show_bug.cgi?id=185873
Reviewed by Fujii Hironori.
No new tests.
Delete the cookie database file and the corruption flag file when corruption is detected.
Adding a quick integrity check in case it can catch anything when opening the database.
Removing PRAGMA temp_store = MEMORY and PRAGMA journal_mode = WAL as they are set in SQLiteDatabase::open.
- platform/network/curl/CookieJarDB.cpp:
- 10:29 AM Changeset in webkit [234937] by
-
- 2 edits in branches/safari-606.1.36.1-branch/Source/WebKit
Cherry-pick r234908. rdar://problem/43385542
[WinCairo] Unreviewed build fix after r234896.
- NetworkProcess/curl/NetworkDataTaskCurl.cpp: (WebKit::NetworkDataTaskCurl::tryHttpAuthentication):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234908 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:29 AM Changeset in webkit [234936] by
-
- 19 edits in branches/safari-606.1.36.1-branch/Source/WebKit
Cherry-pick r234896. rdar://problem/43385542
NetworkCORSPreflightChecker should proceed in case of ProtectionSpaceAuthenticationSchemeServerTrustEvaluationRequested even though the WebKit app is not implementing the didReceiveAuthenticationChallenge/didReceiveAuthenticationChallengeInFrame callback
https://bugs.webkit.org/show_bug.cgi?id=188592
<rdar://problem/43210331>
Reviewed by Youenn Fablet.
Do a canAuthenticateAgainstProtectionSpace check in NetworkCORSPreflightChecker like we do in NetworkLoad.
Use CompletionHandlers to make the now 3 different canAuthenticateAgainstProtectionSpace checks look the same from the NetworkProcess.
- NetworkProcess/NetworkCORSPreflightChecker.cpp: (WebKit::NetworkCORSPreflightChecker::didReceiveChallenge):
- NetworkProcess/NetworkCORSPreflightChecker.h:
- NetworkProcess/NetworkDataTask.h:
- NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::didReceiveChallenge):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::canAuthenticateAgainstProtectionSpace): (WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync): (WebKit::NetworkResourceLoader::continueCanAuthenticateAgainstProtectionSpace): Deleted.
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/PingLoad.cpp: (WebKit::PingLoad::didReceiveChallenge):
- NetworkProcess/PingLoad.h:
- NetworkProcess/PreconnectTask.cpp: (WebKit::PreconnectTask::canAuthenticateAgainstProtectionSpaceAsync): (WebKit::PreconnectTask::continueCanAuthenticateAgainstProtectionSpace): Deleted.
- NetworkProcess/PreconnectTask.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::didReceiveChallenge):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234896 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:29 AM Changeset in webkit [234935] by
-
- 2 edits in branches/safari-606.1.36.1-branch/Source/WebCore
Cherry-pick r234890. rdar://problem/43385599
Remove failing assertion introduced in r234873
https://bugs.webkit.org/show_bug.cgi?id=188581
- contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList): The assertion is correct but failing because VectorTraits<String> is incorrect. I'll re-add it and fix VectorTraits<String> in a separate patch.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234890 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:29 AM Changeset in webkit [234934] by
-
- 15 edits in branches/safari-606.1.36.1-branch
Cherry-pick r234873. rdar://problem/43385599
isValidCSSSelector is unsafe to be called from a non-main thread
https://bugs.webkit.org/show_bug.cgi?id=188581
<rdar://problem/40517358>
Reviewed by Sam Weinig.
Source/WebCore:
Parsing and determining whether the css selectors are valid is fast enough to do before
hopping to the background thread for the slow NFA/DFA operations and writing to disk.
Doing it on the main thread avoids the thread safety issues in the CSSParser's use of strings.
- contentextensions/ContentExtensionCompiler.cpp: (WebCore::ContentExtensions::compileRuleList):
- contentextensions/ContentExtensionCompiler.h:
- contentextensions/ContentExtensionParser.cpp: (WebCore::ContentExtensions::isValidCSSSelector): (WebCore::ContentExtensions::loadEncodedRules): (WebCore::ContentExtensions::parseRuleList):
- contentextensions/ContentExtensionParser.h:
- contentextensions/ContentExtensionRule.cpp: (WebCore::ContentExtensions::Trigger::isolatedCopy const): (WebCore::ContentExtensions::Action::isolatedCopy const):
- contentextensions/ContentExtensionRule.h: (WebCore::ContentExtensions::Trigger::isEmpty const): (WebCore::ContentExtensions::Trigger::operator== const): (WebCore::ContentExtensions::Action::Action): (WebCore::ContentExtensions::ContentExtensionRule::isolatedCopy const): (WebCore::ContentExtensions::ContentExtensionRule::operator== const): (WebCore::ContentExtensions::vectorIsolatedCopy):
Source/WebKit:
- UIProcess/API/APIContentRuleListStore.cpp: (API::compiledToFile): (API::ContentRuleListStore::lookupContentRuleList): (API::ContentRuleListStore::getAvailableContentRuleListIdentifiers): (API::ContentRuleListStore::compileContentRuleList): (API::ContentRuleListStore::removeContentRuleList): (API::ContentRuleListStore::getContentRuleListSource):
- UIProcess/API/APIContentRuleListStore.h:
- UIProcess/API/Cocoa/WKContentRuleListStore.mm:
Source/WTF:
- wtf/Vector.h: (WTF::minCapacity>::isolatedCopy):
Tools:
- TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (TestWebKitAPI::InMemoryCompiledContentExtension::create): (TestWebKitAPI::checkCompilerError):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234873 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 AM Changeset in webkit [234933] by
-
- 2 edits in trunk/LayoutTests
[win-ews] No such file or directory: u'/cygdrive/C/cygwin/home/buildbot/WebKit/WebKitBuild/Release/bin32/layout-test-results/pywebsocket.ws.log-out.txt'
https://bugs.webkit.org/show_bug.cgi?id=188640
Unreviewed test gardening.
For now, skip websocket tests on Windows. Currently, run-webkit-tests is failing to start the websocket server because
port 8880 is already in use. Port 8880 is being used because the python websocket server process from the previous run
did not shutdown properly. We still need to understand why this is happening, but disable websocket tests now in order
for tests to run again.
- platform/win/TestExpectations:
- 9:57 AM Changeset in webkit [234932] by
-
- 2 edits2 adds in trunk/Source/WebCore
[Nicosia] Add Nicosia::ImageBackingTextureMapperImpl
https://bugs.webkit.org/show_bug.cgi?id=188550
Reviewed by Carlos Garcia Campos.
Add the Nicosia::ImageBackingTextureMapperImpl class, the
TextureMapper-specific implementation that will extend the ImageBacking
class.
This class will be used to contain and manage updates for layers that
are backed by image objects. The CoordinatedGraphicsLayer instance will
use the LayerState object to track the currently-presented image objects
and to store the latest update of these objects. The Update struct
contains information about the current visibility of the image in the
layer tree as well as the Nicosia::Buffer object containing the painted
image data that's to be presented on the screen.
During the layer flush the flushUpdate() method will move the current
update data into the pending position, from which this data will be
gathered by the composition component through the takeUpdate() method
and used to update the CoordinatedBackingStore object that's kept in
the CompositionState object on this impl class.
This will be deployed for use in the CoordinatedGraphicsLayer at a later
stage as it requires a larger rework in both CoordinatedGraphicsLayer as
well as the CoordinatedGraphicsScene classes.
The implementation itself differs from the current image backing support
in CoordinatedGraphicsLayer and CompositingCoordinator by abandoning the
idea of sharing single image backings between layers that might be
backed by identical Image objects. We thus end up trading any memory
consumption benefit in these scenarios for a much simplified
implementation. Overall this area needs more research both in figuring
out whether there's worthy improvements in grouping image backings, as
well as investigating whether it's possible to avoid additional image
rasterization by just leveraging direct pixel data via the
NativeImagePtr object.
- platform/TextureMapper.cmake:
- platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.cpp: Added.
(Nicosia::ImageBackingTextureMapperImpl::createFactory):
(Nicosia::ImageBackingTextureMapperImpl::flushUpdate):
(Nicosia::ImageBackingTextureMapperImpl::takeUpdate):
- platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.h: Added.
- 9:49 AM Changeset in webkit [234931] by
-
- 2 edits368 adds in trunk/LayoutTests
Unreviewed WPE gardening. Enable a few subdirectories under fast/ and
provide platform-specific baselines as well as failure expectations
where required.
- platform/wpe/TestExpectations:
- platform/wpe/fast/box-shadow: Added 10 baselines.
- platform/wpe/fast/box-sizing: Added 4 baselines.
- platform/wpe/fast/clip: Added 23 baselines.
- platform/wpe/fast/compact: Added 3 baselines.
- platform/wpe/fast/css-generated-content: Added 43 baselines.
- platform/wpe/fast/doctypes: Added 4 baselines.
- platform/wpe/fast/flexbox: Added 26 baselines.
- platform/wpe/fast/inline: Added 32 baselines.
- platform/wpe/fast/inline-block: Added 9 baselines.
- platform/wpe/fast/invalid: Added 29 baselines.
- platform/wpe/fast/line-grid: Added 8 baselines.
- platform/wpe/fast/lists: Added 27 baselines.
- platform/wpe/fast/loader: Added 1 baseline.
- platform/wpe/fast/preloader: Added 2 baselines.
- platform/wpe/fast/replaced: Added 57 baselines.
- platform/wpe/fast/ruby: Added 26 baselines.
- platform/wpe/fast/writing-mode: Added 37 baselines.
- 9:44 AM Changeset in webkit [234930] by
-
- 47 edits5 adds in trunk
Support drag-and-drop for input[type=color]
https://bugs.webkit.org/show_bug.cgi?id=188464
Reviewed by Wenson Hsieh.
Source/WebCore:
input[type=color] should support native drag and drop on both macOS and iOS.
Added methods to Pasteboard and PlatformPasteboard to enable colors to be read
from and written to the pasteboard. On macOS, colors are managed through the
NSColorPboardType, whereas on iOS, colors are managed through the
'com.apple.uikit.color' identifier.
DragSourceActionColor was added to the list of DragSourceActions to identify
when a color input is being dragged.
Tests: editing/pasteboard/drag-and-drop-color-input-events.html
editing/pasteboard/drag-and-drop-color-input.html
- page/DragActions.h:
- page/DragController.cpp:
(WebCore::DragController::dragEnteredOrUpdated):
(WebCore::isEnabledColorInput):
(WebCore::DragController::concludeEditDrag):
(WebCore::DragController::canProcessDrag):
(WebCore::DragController::draggableElement const):
(WebCore::DragController::startDrag):
- page/EventHandler.cpp:
(WebCore::EventHandler::dragHysteresisExceeded const):
(WebCore::EventHandler::handleDrag):
- page/EventHandler.h:
- page/mac/DragControllerMac.mm:
(WebCore::DragController::updateSupportedTypeIdentifiersForDragHandlingMethod const):
- platform/DragData.h:
- platform/DragImage.cpp:
(WebCore::DragImage::operator=):
- platform/DragImage.h: Added the visiblePath property to DragImage, in order for
us to be able to clip images in the UITargetedDragPreview on iOS.
- platform/DragItem.h:
(WebCore::DragItem::encode const):
(WebCore::DragItem::decode):
- platform/Pasteboard.h:
- platform/PasteboardStrategy.h:
- platform/PlatformPasteboard.h:
- platform/gtk/DragImageGtk.cpp:
(WebCore::createDragImageForColor):
- platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::write):
- platform/ios/DragImageIOS.mm:
(WebCore::createDragImageForColor):
- platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::write):
- platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::color):
(WebCore::PlatformPasteboard::setColor):
- platform/mac/DragDataMac.mm:
(WebCore::colorPasteboardType):
(WebCore::DragData::containsCompatibleContent const):
- platform/mac/DragImageMac.mm:
(WebCore::createDragImageForColor): Draw a rounded rectangle with a fill color
matching the value of the dragged color input. The rendered image is designed to
mimic the preview shown when dragging an NSColorWell.
- platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::write):
- platform/mac/PlatformPasteboardMac.mm:
(WebCore::PlatformPasteboard::setColor):
- platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::write):
- platform/wpe/PasteboardWPE.cpp:
(WebCore::Pasteboard::write):
Source/WebKit:
On iOS, the drag preview for the color input is a rounded rectangle. In order to
ensure that the corners appear transparent, the visiblePath property of the
UIDragPreviewParameters was set to match the preview's shape. This also required
the creation of an additional ArgumentCoder for Path.
When beginning the drag session, the preview should appear centered about the
color input. This is managed in createTargetedDragPreview. However, once the
preview is dragged, the preview should be at the center of the touch location.
Consequently, DragSourceActionColor was added to the list of sources that could
update the drag preview after lifting.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<Path>::decode):
- Shared/WebCoreArgumentCoders.h:
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::setPasteboardColor):
- UIProcess/WebPasteboardProxy.h:
- UIProcess/WebPasteboardProxy.messages.in:
- UIProcess/ios/DragDropInteractionState.h:
- UIProcess/ios/DragDropInteractionState.mm:
(WebKit::createTargetedDragPreview):
(WebKit::shouldUseDragImageToCreatePreviewForDragSource):
(WebKit::shouldUseVisiblePathToCreatePreviewForDragSource):
(WebKit::canUpdatePreviewForActiveDragSource):
(WebKit::DragDropInteractionState::previewForDragItem const):
(WebKit::DragDropInteractionState::stageDragItem):
(WebKit::DragDropInteractionState::updatePreviewsForActiveDragSources):
- UIProcess/ios/forms/WKFormColorPicker.mm:
(-[WKColorPicker initWithView:]):
- UIProcess/mac/WebColorPickerMac.h:
- WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::setColor):
- WebProcess/WebCoreSupport/WebPlatformStrategies.h:
Source/WebKitLegacy/mac:
- WebCoreSupport/WebPlatformStrategies.h:
- WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::setColor):
Tools:
Added five cross-platform API tests, to verify that dragging and dropping with
color inputs changes the value of the drop target if and only if both inputs are
enabled. Also tests that the change and input events are fired when changing the
value of a color input through drag and drop.
Additionally, added a macOS-specific test to verify that dropping an item with
NSColorPboardType changes the value of the color input.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/color-drop.html: Added.
- TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:
(TestWebKitAPI::TEST):
LayoutTests:
Added tests to verify that dragging from one color input to another behaves as
expected in WK1. The tests consider disabled and read-only inputs in addition to
default color inputs. The WK2 implementation is tested through API tests.
- editing/pasteboard/drag-and-drop-color-input-events-expected.txt: Added.
- editing/pasteboard/drag-and-drop-color-input-events.html: Added.
- editing/pasteboard/drag-and-drop-color-input-expected.txt: Added.
- editing/pasteboard/drag-and-drop-color-input.html: Added.
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- platform/wk2/TestExpectations:
- 8:53 AM Changeset in webkit [234929] by
-
- 2 edits in trunk/Source/WebKit
Assert that calling CGSSetDenyWindowServerConnections(true) succeeds
https://bugs.webkit.org/show_bug.cgi?id=188615
Reviewed by Brent Fulgham.
If the call to CGSSetDenyWindowServerConnections(true) fails, it means there are open WindowServer connections
at this point, and future WindowServer connections will not be denied. We should assert that this call succeeds.
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeProcess):
- 8:50 AM Changeset in webkit [234928] by
-
- 2 edits1 add in trunk/LayoutTests
Add fake layout test results JSON to exercise the functionality in results.html
https://bugs.webkit.org/show_bug.cgi?id=188636
Reviewed by Alexey Proskuryakov.
The results for results.html are mostly blank because the page runs without any JSON
data, so there's no testing of the functionality of the page. Add some fake JSON
data which supplies most of the different types of test result, so we're testing
at least some of the results.html script.
- fast/harness/full_results.json: Added.
- fast/harness/results-expected.txt:
- 8:43 AM Changeset in webkit [234927] by
-
- 6 edits in trunk/Source/WebCore
[lFC][Floating] Add estimated margin top computation.
https://bugs.webkit.org/show_bug.cgi?id=188619
Reviewed by Antti Koivisto.
In order to figure out whether a box should avoid a float, we need to know the final positions of both (ignore relative positioning for now).
In block formatting context the final position for a normal flow box includes
- the static position and
- the corresponding (non)collapsed margins.
Now the vertical margins are computed when all the descendants are finalized, because the margin values might be depending on the height of the box
(and the height might be based on the content).
So when we get to the point where we intersect the box with the float to decide if the box needs to move, we don't yet have the final vertical position.
The idea here is that as long as we don't cross the block formatting context boundary, we should be able to pre-compute the final top margin.
(if this holds true for all the cases, the estimated prefix could be removed and just use marginTop() instead.)
Covered by existing block-only tests.
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layout const):
(WebCore::Layout::BlockFormattingContext::computeEstimatedMarginTop const):
(WebCore::Layout::BlockFormattingContext::computeEstimatedMarginTopForAncestors const):
(WebCore::Layout::BlockFormattingContext::computeFloatingPosition const):
(WebCore::Layout::BlockFormattingContext::computeVerticalPositionForFloatClear const):
(WebCore::Layout::BlockFormattingContext::computeInFlowHeightAndMargin const):
- layout/blockformatting/BlockFormattingContext.h:
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::estimatedMarginTop):
- layout/displaytree/DisplayBox.cpp:
(WebCore::Display::Box::Box):
- layout/displaytree/DisplayBox.h:
(WebCore::Display::Box::setHasValidTop):
(WebCore::Display::Box::setHasValidLeft):
(WebCore::Display::Box::top const):
(WebCore::Display::Box::left const):
(WebCore::Display::Box::topLeft const):
(WebCore::Display::Box::setTopLeft):
(WebCore::Display::Box::setTop):
(WebCore::Display::Box::setLeft):
(WebCore::Display::Box::setVerticalMargin):
(WebCore::Display::Box::setEstimatedMarginTop):
(WebCore::Display::Box::estimatedMarginTop const):
- 8:36 AM WebKitGTK/2.22.x edited by
- (diff)
- 8:35 AM Changeset in webkit [234926] by
-
- 2 edits in trunk/Source/WebCore/platform/gtk/po
[l10n] Updated Polish translation of WebKitGTK+ for 2.22
https://bugs.webkit.org/show_bug.cgi?id=188652
Patch by Piotr Drąg <piotrdrag@gmail.com> on 2018-08-16
Rubber-stamped by Michael Catanzaro.
- pl.po:
- 7:40 AM Changeset in webkit [234925] by
-
- 5 edits in trunk/Source/WebCore
[LFC][BFC] Display::Box interface should reflect that padding is optional.
https://bugs.webkit.org/show_bug.cgi?id=188630
Reviewed by Antti Koivisto.
Certain type of boxes can't have paddings (see Layout::Box::isPaddingApplicable).
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeBorderAndPadding const):
(WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const):
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin):
- layout/displaytree/DisplayBox.h:
(WebCore::Display::Box::width const):
(WebCore::Display::Box::height const):
(WebCore::Display::Box::contentBoxTop const):
(WebCore::Display::Box::contentBoxLeft const):
(WebCore::Display::Box::setPadding):
(WebCore::Display::Box::paddingTop const):
(WebCore::Display::Box::paddingLeft const):
(WebCore::Display::Box::paddingBottom const):
(WebCore::Display::Box::paddingRight const):
- 7:35 AM Changeset in webkit [234924] by
-
- 6 edits in trunk/Source/WebCore
[LFC] Add showLayoutTree() that does not require LayoutContext.
https://bugs.webkit.org/show_bug.cgi?id=188631
Reviewed by Antti Koivisto.
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::formattingContextRoot const):
(WebCore::Layout::Box::initialContainingBlock const):
- layout/layouttree/LayoutBox.h:
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::outputLayoutTree):
(WebCore::Layout::showLayoutTree):
(WebCore::Layout::TreeBuilder::showLayoutTree): Deleted.
- layout/layouttree/LayoutTreeBuilder.h:
- 7:32 AM Changeset in webkit [234923] by
-
- 2 edits in trunk/Source/WebCore
[LFC] Tree builder should construct block and inline containers based on the display type.
https://bugs.webkit.org/show_bug.cgi?id=188632
Reviewed by Antti Koivisto.
Inline elements can also construct RenderBlock renderers (inline-bloc etc), so use the display type instead when deciding what type of container to construct.
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createSubTree):
- 7:28 AM Changeset in webkit [234922] by
-
- 2 edits in trunk/Source/WebCore
[LFC] Bail out of subtree verification when trees are out of sync.
https://bugs.webkit.org/show_bug.cgi?id=188633
Reviewed by Antti Koivisto.
There's no point of trying to match geometry when subtrees are out of sync.
They get out of sync when the render tree has unsupported boxes (see LayoutTreeBuilder).
- layout/Verification.cpp:
(WebCore::Layout::verifyAndOutputSubtree):
- 7:23 AM Changeset in webkit [234921] by
-
- 4 edits in trunk/Source/WebKit
Unreviewed, WPE build fix after r234920.
- UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::isViewWindowActive):
(WebKit::PageClientImpl::isViewFocused):
(WebKit::PageClientImpl::isViewVisible):
(WebKit::PageClientImpl::isViewInWindow):
- UIProcess/API/wpe/WPEView.cpp:
(WKWPE::View::setViewState):
- UIProcess/API/wpe/WPEView.h:
- 5:49 AM Changeset in webkit [234920] by
-
- 44 edits in trunk
Use OptionSet for ActivityState::Flags
https://bugs.webkit.org/show_bug.cgi?id=188554
Reviewed by Brent Fulgham.
Source/WebCore:
More typesafe flags.
- Modules/geolocation/GeolocationController.cpp:
(WebCore::GeolocationController::activityStateDidChange):
- Modules/geolocation/GeolocationController.h:
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::activityStateDidChange):
- html/canvas/WebGLRenderingContextBase.h:
- page/ActivityState.cpp:
(WebCore::operator<<):
(WebCore::activityStateFlagsToString): Deleted.
- page/ActivityState.h:
(WebCore::ActivityState::allFlags):
- page/ActivityStateChangeObserver.h:
- page/FocusController.cpp:
(WebCore::FocusController::FocusController):
(WebCore::FocusController::setFocused):
(WebCore::FocusController::setActivityState):
(WebCore::FocusController::setActive):
- page/FocusController.h:
(WebCore::FocusController::isActive const):
(WebCore::FocusController::isFocused const):
(WebCore::FocusController::contentIsVisible const):
- page/Page.cpp:
(WebCore::pageInitialActivityState):
(WebCore::Page::Page):
(WebCore::Page::setIsInWindow):
(WebCore::Page::updateTimerThrottlingState):
(WebCore::Page::setActivityState):
(WebCore::Page::isVisibleAndActive const):
(WebCore::Page::isWindowActive const):
(WebCore::Page::setIsVisible):
- page/Page.h:
(WebCore::Page::activityState const):
(WebCore::Page::isVisible const):
(WebCore::Page::isInWindow const):
- page/PerformanceMonitor.cpp:
(WebCore::activityStateForCPUSampling):
(WebCore::PerformanceMonitor::activityStateChanged):
- page/PerformanceMonitor.h:
- platform/text/cocoa: Added.
Source/WebKit:
- Shared/WebPageCreationParameters.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::windowDidOrderOffScreen):
(WebKit::WebViewImpl::windowDidOrderOnScreen):
(WebKit::WebViewImpl::viewDidMoveToWindow):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateActivityState):
(WebKit::WebPageProxy::activityStateDidChange):
(WebKit::WebPageProxy::dispatchActivityStateChange):
(WebKit::WebPageProxy::setMuted):
(WebKit::WebPageProxy::isPlayingMediaDidChange):
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::isInWindow const):
(WebKit::WebPageProxy::isViewVisible const):
(WebKit::WebPageProxy::isViewFocused const):
(WebKit::WebPageProxy::isViewWindowActive const):
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::activityStateDidChange):
- WebProcess/Plugins/PluginView.h:
- WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::activityStateDidChange):
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::activityStateDidChange):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updateThrottleState):
(WebKit::WebPage::updateIsInWindow):
(WebKit::WebPage::visibilityDidChange):
(WebKit::WebPage::setActivityState):
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::isVisible const):
(WebKit::WebPage::isVisibleOrOccluded const):
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::activityStateDidChange):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::pageActivityStateDidChange):
- WebProcess/WebProcess.h:
Source/WTF:
- wtf/OptionSet.h:
(WTF::OptionSet::operator):
Add xor operator, useful for finding changes between sets.
Tools:
- TestWebKitAPI/Tests/WTF/OptionSet.cpp:
(TestWebKitAPI::TEST):
- 4:48 AM Changeset in webkit [234919] by
-
- 1 copy in releases/WebKitGTK/webkit-2.21.91
WebKitGTK+ 2.21.91
- 4:47 AM Changeset in webkit [234918] by
-
- 4 edits in releases/WebKitGTK/webkit-2.22
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.21.91 release.
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.21.91.
- 3:44 AM WebKitGTK/2.22.x created by
- 2:54 AM Changeset in webkit [234917] by
-
- 1 copy in releases/WebKitGTK/webkit-2.22
Branch WebKitGTK+ for 2.22
- 2:41 AM Changeset in webkit [234916] by
-
- 2 edits in trunk/Source/JavaScriptCore
[YARR] Align allocation size in BumpPointerAllocator with sizeof(void*)
https://bugs.webkit.org/show_bug.cgi?id=188571
Reviewed by Saam Barati.
UBSan finds YarrInterpreter performs misaligned accesses. This is because YarrInterpreter
allocates DisjunctionContext and ParenthesesDisjunctionContext from BumpPointerAllocator
without considering alignment of them. This patch adds DisjunctionContext::allocationSize
and ParenthesesDisjunctionContext::allocationSize to calculate allocation sizes for them.
The size is always rounded tosizeof(void*)
so that these classes are always allocated
withsizeof(void*)
alignment. We also ensure the alignments of both classes are less
than or equal tosizeof(void*)
bystatic_assert
.
- yarr/YarrInterpreter.cpp:
(JSC::Yarr::Interpreter::DisjunctionContext::allocationSize):
(JSC::Yarr::Interpreter::allocDisjunctionContext):
(JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::ParenthesesDisjunctionContext):
(JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::getDisjunctionContext):
(JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::allocationSize):
(JSC::Yarr::Interpreter::allocParenthesesDisjunctionContext):
(JSC::Yarr::Interpreter::Interpreter):
(JSC::Yarr::Interpreter::DisjunctionContext::DisjunctionContext): Deleted.
- 1:15 AM Changeset in webkit [234915] by
-
- 4 edits in trunk
[GTK] MiniBrowser: web view doesn't get the focus when new window is created
https://bugs.webkit.org/show_bug.cgi?id=188546
Reviewed by Michael Catanzaro.
Tools:
When a new window is created, the first widget of the windo is getting the focus, the toolbar in this case. We
always want the WebView to grab the focus. In case of new empty tab, we want to the URL bar to be focused
instead. This was causing failures in WebDriver tests that create a popup window with an input element that is
filled with send keys command. The input element is marked as focused in the DOM, but the actual focused widget
is the toolbar, so key events are sent to the toolbar instead of the web view.
- MiniBrowser/gtk/BrowserWindow.c:
(webViewCreate):
(newTabCallback):
(openPrivateWindow):
(browser_window_get_or_create_web_view_for_automation):
WebDriverTests:
Remove expectations of the tests that pass now.
- TestExpectations.json:
- 1:14 AM Changeset in webkit [234914] by
-
- 2 edits in trunk/Tools
Unreviewed. Fix WebDriver tests after r234839.
New pytest requires to autoinstall attrs too.
- Scripts/webkitpy/thirdparty/init.py:
(AutoinstallImportHook._install_pytest):
- 12:41 AM Changeset in webkit [234913] by
-
- 4 edits in trunk/Source/bmalloc
bmalloc: Coverity scan issues
https://bugs.webkit.org/show_bug.cgi?id=186763
Reviewed by Saam Barati.
- bmalloc/DebugHeap.h: Initialize the m_pageSize variable.
- bmalloc/IsoTLS.cpp:
(bmalloc::IsoTLS::ensureEntries): Check the return value of
pthread_key_create return().
- bmalloc/VMAllocate.h:
(bmalloc::vmPageSize): Correctly check the return value of sysconf().
Aug 15, 2018:
- 10:38 PM Changeset in webkit [234912] by
-
- 37 edits4 adds in trunk
NSURLAuthenticationMethodOAuth challenges are surfaced to clients in -didReceiveAuthenticationChallenge as NSURLAuthenticationMethodDefault
https://bugs.webkit.org/show_bug.cgi?id=186870
Source/WebCore:
<rdar://problem/41314410>
Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-15
Reviewed by Alex Christensen.
Add the ProtectionSpaceAuthenticationSchemeOAuth type.
- platform/network/ProtectionSpaceBase.cpp:
(WebCore::ProtectionSpaceBase::isPasswordBased const): Return yes because the oauth challenge
expects a token in return.
- platform/network/ProtectionSpaceBase.h:
- platform/network/cocoa/ProtectionSpaceCocoa.mm:
(WebCore::scheme):
(WebCore::ProtectionSpace::nsSpace const):
Source/WebCore/PAL:
<rdar://problem/41314410>
Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-15
Reviewed by Alex Christensen.
- pal/spi/cf/CFNetworkSPI.h: Declare OAuth string when not building against the
internal SDK.
Source/WebKit:
<rdar://problem/41314410>
Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-15
Reviewed by Alex Christensen.
Correctly expose the OAuth protection space type in API.
- UIProcess/API/C/WKAPICast.h:
(WebKit::toAPI):
- UIProcess/API/C/WKProtectionSpaceTypes.h:
Tools:
<rdar://problem/41314410>
Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-15
Reviewed by Alex Christensen.
- WebKitTestRunner/TestController.cpp:
(WTR::toString):
(WTR::TestController::canAuthenticateAgainstProtectionSpace): Expose type of authentication challenge so we can test OAuth.
(WTR::TestController::didReceiveAuthenticationChallenge):
LayoutTests:
Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-15
Reviewed by Alex Christensen.
Ensure the exposed authentication type to clients is OAuth.
- http/tests/loading/oauth-expected.txt: Added.
- http/tests/loading/oauth.html: Added.
- http/tests/loading/resources/oauth-subresource.php: Added.
- 10:35 PM Changeset in webkit [234911] by
-
- 7 edits in branches/safari-606.1.36.0-branch/Source
Versioning.
- 8:34 PM Changeset in webkit [234910] by
-
- 23 edits5 adds in trunk
We should cache the compiled sandbox profile in a data vault
https://bugs.webkit.org/show_bug.cgi?id=184991
Patch by Ben Richards <benton_richards@apple.com> on 2018-08-15
Reviewed by Ryosuke Niwa.
Source/WebCore:
Added functionality to FileHandle so that it can lock a file while open.
Added a function to FileSystem to delete non empty directories.
- platform/FileHandle.cpp:
(WebCore::FileHandle::FileHandle):
(WebCore::FileHandle::open):
(WebCore::FileHandle::close):
- platform/FileHandle.h:
- platform/FileSystem.h:
- platform/cocoa/FileSystemCocoa.mm:
(WebCore::FileSystem::deleteNonEmptyDirectory):
Source/WebKit:
This patch changes a few things (note: data vaults and sandbox entitlements are only used in internal builds):
(1) Instead of compiling a sandbox every time a process is launched, processes now look for a cached sandbox
in a process specific data vault on macOS platforms. (ChildProcessMac.mm)
(2) If a valid cached sandbox is not found, a process will create the data vault (or ensure that it exists),
compile a sandbox, and cache it.
(3) In order to create process specific data vaults, each process now has their own <process name>-OSX-sandbox.entitlements
file which contains an entitlement with a process specific "storage class" which ensures that each process
can only ever access its own data vault. (See the article on confluence "Data Vaults and Restricted Files" for more info)
(4) The sandbox entitlements file for the Network and WebContent services are loaded dynamically
through Scripts/<process name>-process-entitlements.sh which is triggered in a new build phase for each service.
The Storage process sandbox entitlements are loaded directly in Configurations/StorageService.xcconfig.
The reason that the sandbox entitlements are applied dynamically is so that these sandbox entitlements
are only applied when WK_USE_RESTRICTED_ENTITLEMENTS is YES. This means that open source builds will still work.
- Configurations/Network-OSX-sandbox.entitlements: Added.
- Configurations/Storage-OSX-sandbox.entitlements: Added.
- Configurations/StorageService.xcconfig:
- Configurations/WebContent-OSX-sandbox.entitlements: Added.
- Configurations/WebKit.xcconfig:
- NetworkProcess/NetworkProcess.h:
- PluginProcess/PluginProcess.h:
- Scripts/process-network-sandbox-entitlements.sh: Added.
- Scripts/process-webcontent-sandbox-entitlements.sh: Added.
- Shared/ChildProcess.h:
- Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
- Shared/SandboxInitializationParameters.h:
(WebKit::SandboxInitializationParameters::setOverrideSandboxProfilePath):
(WebKit::SandboxInitializationParameters::overrideSandboxProfilePath const):
(WebKit::SandboxInitializationParameters::setSandboxProfile):
(WebKit::SandboxInitializationParameters::sandboxProfile const):
(): Deleted.
- Shared/mac/ChildProcessMac.mm:
(WebKit::SandboxProfileDeleter::operator()):
(WebKit::SandboxParametersDeleter::operator()):
(WebKit::SandboxInfo::SandboxInfo):
(WebKit::fileContents):
(WebKit::processStorageClass):
(WebKit::setAndSerializeSandboxParameters):
(WebKit::sandboxDataVaultParentDirectory):
(WebKit::sandboxDirectory):
(WebKit::sandboxFilePath):
(WebKit::ensureSandboxCacheDirectory):
(WebKit::writeSandboxDataToCacheFile):
(WebKit::compileAndCacheSandboxProfile):
(WebKit::tryApplyCachedSandbox):
(WebKit::webKit2Bundle):
(WebKit::getSandboxProfileOrProfilePath):
(WebKit::compileAndApplySandboxSlowCase):
(WebKit::applySandbox):
(WebKit::initializeSandboxParameters):
(WebKit::ChildProcess::initializeSandbox):
- Shared/mac/SandboxInitialiationParametersMac.mm:
(WebKit::SandboxInitializationParameters::SandboxInitializationParameters):
- StorageProcess/StorageProcess.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebProcess.h:
Source/WTF:
Added trace points for sandbox initialization and exposed functions needed for sandbox caching
- wtf/SystemTracing.h:
- wtf/spi/darwin/SandboxSPI.h:
Tools:
Added trace points for sandbox initialization
- Tracing/SystemTracePoints.plist:
- 6:21 PM Changeset in webkit [234909] by
-
- 1 copy in tags/Safari-606.1.36.0.3
Tag Safari-606.1.36.0.3.
- 5:04 PM Changeset in webkit [234908] by
-
- 2 edits in trunk/Source/WebKit
[WinCairo] Unreviewed build fix after r234896.
- NetworkProcess/curl/NetworkDataTaskCurl.cpp:
(WebKit::NetworkDataTaskCurl::tryHttpAuthentication):
- 4:46 PM Changeset in webkit [234907] by
-
- 3 edits in branches/safari-606.1.36.0-branch/Source
Apply patch. rdar://problem/43354873
- 4:46 PM Changeset in webkit [234906] by
-
- 5 edits in branches/safari-606.1.36.1-branch/Source
Cherry-pick r234905. rdar://problem/43347925
Can't share an app on AppStore to WeChat due to a release assert
https://bugs.webkit.org/show_bug.cgi?id=188621
<rdar://problem/43343976>
Reviewed by Geoffrey Garen.
Disable the thread safety check when the app is not linked on or after iOS 12 since this release assert
is getting hit by third party applications on iOS in UI process.
Source/WebCore:
- platform/Timer.cpp: (WebCore::shouldSuppressThreadSafetyCheck): Added a SDK check.
Source/WebKit:
- UIProcess/Cocoa/VersionChecks.h: (WebKit::SDKVersion::FirstWithMainThreadReleaseAssertionInWebPageProxy): Added. It's iOS 12 or macOS 10.14 Mojave.
- UIProcess/WebProcessProxy.cpp: (WebKit::isMainThreadOrCheckDisabled): Added. Returns true whether when we're in the main thread or if the app is not linked on or after iOS 12 or macOS 10.14 Mojave. (WebKit::globalPageMap): (WebKit::m_isInPrewarmedPool): (WebKit::WebProcessProxy::~WebProcessProxy): (WebKit::WebProcessProxy::shutDown): (WebKit::WebProcessProxy::deleteWebsiteDataForTopPrivatelyControlledDomainsInAllPersistentDataStores): (WebKit::WebProcessProxy::topPrivatelyControlledDomainsWithWebsiteData): (WebKit::WebProcessProxy::didFinishLaunching):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234905 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:37 PM Changeset in webkit [234905] by
-
- 5 edits in trunk/Source
Can't share an app on AppStore to WeChat due to a release assert
https://bugs.webkit.org/show_bug.cgi?id=188621
<rdar://problem/43343976>
Reviewed by Geoffrey Garen.
Disable the thread safety check when the app is not linked on or after iOS 12 since this release assert
is getting hit by third party applications on iOS in UI process.
Source/WebCore:
- platform/Timer.cpp:
(WebCore::shouldSuppressThreadSafetyCheck): Added a SDK check.
Source/WebKit:
- UIProcess/Cocoa/VersionChecks.h:
(WebKit::SDKVersion::FirstWithMainThreadReleaseAssertionInWebPageProxy): Added. It's iOS 12 or macOS 10.14 Mojave.
- UIProcess/WebProcessProxy.cpp:
(WebKit::isMainThreadOrCheckDisabled): Added. Returns true whether when we're in the main thread or if the app
is not linked on or after iOS 12 or macOS 10.14 Mojave.
(WebKit::globalPageMap):
(WebKit::m_isInPrewarmedPool):
(WebKit::WebProcessProxy::~WebProcessProxy):
(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::deleteWebsiteDataForTopPrivatelyControlledDomainsInAllPersistentDataStores):
(WebKit::WebProcessProxy::topPrivatelyControlledDomainsWithWebsiteData):
(WebKit::WebProcessProxy::didFinishLaunching):
- 4:11 PM Changeset in webkit [234904] by
-
- 7 edits in branches/safari-606.1.36.1-branch/Source
Versioning.
- 3:48 PM Changeset in webkit [234903] by
-
- 4 edits in trunk/Source/WebKit
Remove WKNavigationDelegatePrivate's canAuthenticateAgainstProtectionSpace
https://bugs.webkit.org/show_bug.cgi?id=188622
Reviewed by Timothy Hatcher.
It's been deprecated for a release now, nobody uses it, and it's a concept from NSURLConnection, which we don't use any more in WebKit2.
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
- UIProcess/Cocoa/NavigationState.h:
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::canAuthenticateAgainstProtectionSpace):
- 3:10 PM Changeset in webkit [234902] by
-
- 9 copies1 add in releases/Apple/Safari Technology Preview 63
Added a tag for Safari Technology Preview release 63.
- 3:03 PM Changeset in webkit [234901] by
-
- 6 edits in trunk
[Curl] Implement default cookie path handling correctly as outlined in RFC6265.
https://bugs.webkit.org/show_bug.cgi?id=188609
Reviewed by Alex Christensen.
Curl implementation of default cookie path was wrong so that some cookies cannot be accessible.
It should be generated as outlined in: https://tools.ietf.org/html/rfc6265#section-5.1.4
Source/WebCore:
Tests: http/tests/cookies/http-get-cookie-set-in-js.html
- platform/network/curl/CookieJarDB.cpp:
(WebCore::CookieJarDB::setCookie):
- platform/network/curl/CookieUtil.cpp:
(WebCore::CookieUtil::defaultPathForURL):
- platform/network/curl/CookieUtil.h:
LayoutTests:
- platform/wincairo/TestExpectations:
- http/tests/cookies/http-get-cookie-set-in-js.html [ Pass ]
- 1:59 PM Changeset in webkit [234900] by
-
- 4 edits in trunk/Source
Crashes in Quip under _dictionaryPopupInfoForRange, in setObject:forKey:
https://bugs.webkit.org/show_bug.cgi?id=188569
<rdar://problem/34201095>
Reviewed by Megan Gardner.
Source/WebKit:
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::dictionaryPopupInfoForRange):
Speculative fix; the crashes indicate font is null, but we just checked it,
so it must be getting made null by convertFont:toSize:. Check again!
Source/WebKitLegacy/mac:
- WebView/WebImmediateActionController.mm:
(+[WebImmediateActionController _dictionaryPopupInfoForRange:inFrame:withLookupOptions:indicatorOptions:transition:]):
Speculative fix; the crashes indicate font is null, but we just checked it,
so it must be getting made null by convertFont:toSize:. Check again!
- 1:45 PM Changeset in webkit [234899] by
-
- 3 edits in trunk/LayoutTests
Disable IntersectionObserver tests on Windows for now
https://bugs.webkit.org/show_bug.cgi?id=188613
Unreviewed test gardening.
The experimental feature for IntersectionObserver is off by default, and
Windows WebKit API would have to change to enable it, so just skip the
tests for now.
- platform/win/TestExpectations:
- platform/wincairo/TestExpectations:
- 1:42 PM Changeset in webkit [234898] by
-
- 23 edits1 copy10 adds in trunk
[Datalist] Add button to TextFieldInputs with a datalist
https://bugs.webkit.org/show_bug.cgi?id=187741
Reviewed by Tim Horton.
Source/WebCore:
TextFieldInputs that have an associated datalist element should be drawn as
combo boxes. However, we cannot use NSComboBox for this control, as NSComboBox
is not height-resizable. Furthermore, the input should also be able to contain
additional elements, such as the stepper for type=number and the cancel button
for type=search. For these reasons, we draw a button at the end of the input,
mimicking appearance of a combo box.
The list-button -webkit-appearance value was added to display the new button.
Tests: fast/forms/datalist/datalist-searchinput-appearance.html
fast/forms/datalist/datalist-textinput-appearance.html
- Resources/ListButtonArrow.png: Added.
- Resources/ListButtonArrow@2x.png: Added.
- WebCore.xcodeproj/project.pbxproj:
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
- css/CSSProperties.json:
- css/CSSValueKeywords.in:
- css/html.css:
(input::-webkit-list-button):
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::dataListButtonElement const):
- html/HTMLInputElement.h:
- html/InputType.h:
(WebCore::InputType::dataListButtonElement const):
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::needsContainer const):
(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::destroyShadowSubtree):
(WebCore::TextFieldInputType::listAttributeTargetChanged):
(WebCore::TextFieldInputType::dataListButtonElement const):
(WebCore::TextFieldInputType::dataListButtonElementWasClicked):
(WebCore::TextFieldInputType::didCloseSuggestions):
- html/TextFieldInputType.h:
- html/shadow/DataListButtonElement.cpp: Added.
(WebCore::DataListButtonElement::create):
(WebCore::DataListButtonElement::DataListButtonElement):
(WebCore::DataListButtonElement::~DataListButtonElement):
(WebCore::DataListButtonElement::defaultEventHandler):
- html/shadow/DataListButtonElement.h: Added.
- platform/ThemeTypes.h:
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::adjustListButtonStyle const):
- rendering/RenderTheme.h:
- rendering/RenderThemeMac.h:
- rendering/RenderThemeMac.mm:
(-[WebListButtonCell drawWithFrame:inView:]):
(WebCore::RenderThemeMac::paintListButtonForInput):
(WebCore::RenderThemeMac::adjustListButtonStyle const):
(WebCore::RenderThemeMac::paintTextField):
(WebCore::RenderThemeMac::paintSearchField):
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::listButton const):
Source/WebCore/PAL:
- pal/spi/cocoa/NSColorSPI.h: Added NSColorGetUserAccentColor().
Source/WebInspectorUI:
Add keyword completion for 'list-button'.
- UserInterface/External/CodeMirror/css.js:
- UserInterface/Models/CSSKeywordCompletions.js:
LayoutTests:
Added tests to verify appearance of TextFieldInputs with a datalist.
- fast/forms/datalist/datalist-searchinput-appearance.html: Added.
- fast/forms/datalist/datalist-textinput-appearance.html: Added.
- platform/ios/TestExpectations:
- platform/mac/fast/forms/datalist/datalist-searchinput-appearance-expected.png: Added.
- platform/mac/fast/forms/datalist/datalist-searchinput-appearance-expected.txt: Added.
- platform/mac/fast/forms/datalist/datalist-textinput-appearance-expected.png: Added.
- platform/mac/fast/forms/datalist/datalist-textinput-appearance-expected.txt: Added.
- 1:22 PM Changeset in webkit [234897] by
-
- 36 edits4 deletes in trunk
Unreviewed, rolling out r234870.
The test introduced with this change is a flaky failure.
Reverted changeset:
"NSURLAuthenticationMethodOAuth challenges are surfaced to
clients in -didReceiveAuthenticationChallenge as
NSURLAuthenticationMethodDefault"
https://bugs.webkit.org/show_bug.cgi?id=186870
https://trac.webkit.org/changeset/234870
- 1:15 PM Changeset in webkit [234896] by
-
- 19 edits in trunk/Source/WebKit
NetworkCORSPreflightChecker should proceed in case of ProtectionSpaceAuthenticationSchemeServerTrustEvaluationRequested even though the WebKit app is not implementing the didReceiveAuthenticationChallenge/didReceiveAuthenticationChallengeInFrame callback
https://bugs.webkit.org/show_bug.cgi?id=188592
<rdar://problem/43210331>
Reviewed by Youenn Fablet.
Do a canAuthenticateAgainstProtectionSpace check in NetworkCORSPreflightChecker like we do in NetworkLoad.
Use CompletionHandlers to make the now 3 different canAuthenticateAgainstProtectionSpace checks look the same from the NetworkProcess.
- NetworkProcess/NetworkCORSPreflightChecker.cpp:
(WebKit::NetworkCORSPreflightChecker::didReceiveChallenge):
- NetworkProcess/NetworkCORSPreflightChecker.h:
- NetworkProcess/NetworkDataTask.h:
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::didReceiveChallenge):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::canAuthenticateAgainstProtectionSpace):
(WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync):
(WebKit::NetworkResourceLoader::continueCanAuthenticateAgainstProtectionSpace): Deleted.
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::didReceiveChallenge):
- NetworkProcess/PingLoad.h:
- NetworkProcess/PreconnectTask.cpp:
(WebKit::PreconnectTask::canAuthenticateAgainstProtectionSpaceAsync):
(WebKit::PreconnectTask::continueCanAuthenticateAgainstProtectionSpace): Deleted.
- NetworkProcess/PreconnectTask.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::didReceiveChallenge):
- 12:44 PM Changeset in webkit [234895] by
-
- 2 edits in trunk/LayoutTests
[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188610
Unreviewed test gardening.
Unskip http/tests/cookies.
- platform/wincairo/TestExpectations:
- 12:33 PM Changeset in webkit [234894] by
-
- 2 edits in trunk/Source/JavaScriptCore
Remove evernote hacks
https://bugs.webkit.org/show_bug.cgi?id=188591
Reviewed by Joseph Pecoraro.
The hack was added in 2012 and the evernote app seems to work now.
It's probably not needed anymore.
- API/JSValueRef.cpp:
(JSValueUnprotect):
(evernoteHackNeeded): Deleted.
- 11:59 AM Changeset in webkit [234893] by
-
- 4 edits in trunk
connectedCallback is invoked by the HTML parser after child nodes had been inserted
https://bugs.webkit.org/show_bug.cgi?id=183931
<rdar://problem/38843548>
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Rebaselined the test now that all test cases pass.
- web-platform-tests/custom-elements/parser/parser-sets-attributes-and-children-expected.txt:
Source/WebCore:
Invoke the custom element reactions after constructing and inserting a custom element as specifed in step 3.3 of:
https://html.spec.whatwg.org/multipage/parsing.html#insert-a-foreign-element
The bug here was that HTMLConstructionSite::insertCustomElement uses attachLater so that even though the task
to insert the custom element was created, it didn't get executed until after CustomElementReactionStack in
HTMLDocumentParser::runScriptsForPausedTreeBuilder had been popped off of the stack.
Test: imported/w3c/web-platform-tests/custom-elements/parser/parser-sets-attributes-and-children.html
- html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertCustomElement): Fixed the bug by manually executing the scheduled tasks.
This will enqueue any custom element reactions while CustomElementReactionStack in runScriptsForPausedTreeBuilder
is still in the stack.
- 11:50 AM Changeset in webkit [234892] by
-
- 4 edits in trunk
[Curl] Don't send Content-Type header for POST request when body is null.
https://bugs.webkit.org/show_bug.cgi?id=188588
Reviewed by Youenn Fablet.
Source/WebCore:
The Content-Type header was sent by libcurl automatically. Suppress that behavior
when body is null.
Tests: http/tests/xmlhttprequest/methods.html
- platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::setupPOST):
LayoutTests:
- platform/wincairo/TestExpectations:
- 10:59 AM Changeset in webkit [234891] by
-
- 1 edit in trunk/Tools/Scripts/webkitpy/common/config/contributors.json
Unreviewed, change my status to be a WebKit reviewer
and added expertise.
- Scripts/webkitpy/common/config/contributors.json:
- 10:48 AM Changeset in webkit [234890] by
-
- 2 edits in trunk/Source/WebCore
Remove failing assertion introduced in r234873
https://bugs.webkit.org/show_bug.cgi?id=188581
- contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
The assertion is correct but failing because VectorTraits<String> is incorrect.
I'll re-add it and fix VectorTraits<String> in a separate patch.
- 10:29 AM Changeset in webkit [234889] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(r?): the probe sidebar doesn't show up when adding probes
https://bugs.webkit.org/show_bug.cgi?id=188594
Reviewed by Brian Burg.
- UserInterface/Views/ProbeDetailsSidebarPanel.js:
(WI.ProbeDetailsSidebarPanel.prototype.set inspectedProbeSets):
(WI.ProbeDetailsSidebarPanel.prototype.initialLayout):
Add checks to ensure that DOM elements for each probe section exist before trying to
add/remove them from the sidebar. This can happen if probes are inspected before the sidebar
is shown for the first time.
- UserInterface/Views/ProbeSetDataGrid.js:
(WI.ProbeSetDataGrid):
(WI.ProbeSetDataGrid.columnIdentifierForProbe): Added.
(WI.ProbeSetDataGrid.prototype._setupProbe):
(WI.ProbeSetDataGrid.prototype._teardownProbe):
(WI.ProbeSetDataGrid.prototype._probeExpressionChanged):
- UserInterface/Views/ProbeSetDataGridNode.js:
(WI.ProbeSetDataGridNode.prototype.set frame):
Provide better column identifiers for each probe'sWI.DataGrid
. It's possible for the
numeric probe ID value to be stringified when passing it into the constructor of
WI.DataGrid
, which will not match the original numeric value on later retrieval.
- 8:41 AM Changeset in webkit [234888] by
-
- 2 edits in trunk/Tools
WebKitTestRunner should support watch devices
https://bugs.webkit.org/show_bug.cgi?id=188570
Reviewed by Alex Christensen.
- WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig:
- 8:17 AM Changeset in webkit [234887] by
-
- 5 edits in trunk/Source
[WPE][GTK] WaylandCompositor fails to properly remove surface from its page map
https://bugs.webkit.org/show_bug.cgi?id=188520
Reviewed by Alex Christensen.
Source/WebKit:
willDestroySurface overwrites the surface pointer in the map's iterator in an attempt to
change the value of the surface pointer in the map, but it doesn't work because changing
the iterator does not change the map itself. There's no need to fix this function: it's
better to use WeakPtr instead.
- UIProcess/gtk/WaylandCompositor.cpp:
(WebKit::WaylandCompositor::getTexture):
(WebKit::WaylandCompositor::bindSurfaceToWebPage):
(WebKit::WaylandCompositor::unregisterWebPage):
(WebKit::WaylandCompositor::willDestroySurface): Deleted.
- UIProcess/gtk/WaylandCompositor.h:
Source/WTF:
Add a comment pointing to CanMakeWeakPtr, since it's useful and I very nearly missed it.
- wtf/WeakPtr.h:
- 7:32 AM Changeset in webkit [234886] by
-
- 2 edits in trunk/LayoutTests
Layout Test editing/input/press-tab-during-ime-composition.html is failing
https://bugs.webkit.org/show_bug.cgi?id=188600
Unreviewed test gardening.
- platform/win/TestExpectations:
- 7:26 AM Changeset in webkit [234885] by
-
- 15 edits2 deletes in trunk
[Attachment SPI] Remove attachment display mode options
https://bugs.webkit.org/show_bug.cgi?id=188596
Reviewed by Dan Bernstein.
Source/WebCore:
Remove the ability to specify an "in-place" or "icon" representation for attachment elements, as well as logic
needed to allow an attachment element to render image or video elements in a shadow root. The requirements that
initially drove this effort are obviated by r227068, which allows Mail to intercept and provide a custom scheme
for images inserted into the document via rich editing operations.
Removed some existing API tests in _WKAttachmentTests that exercised this functionality.
- editing/Editor.cpp:
(WebCore::Editor::insertAttachmentFromFile):
- editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::createFragmentForImageAttachment):
(WebCore::replaceRichContentWithAttachments):
- html/AttachmentTypes.h:
(WebCore::AttachmentDisplayOptions::encode const):
(WebCore::AttachmentDisplayOptions::decode):
Remove logic for encoding the attachment display mode. While this leaves AttachmentDisplayOptions completely
empty, I haven't removed AttachmentDisplayOptions as well in this patch, since it's not clear that we won't be
needing any mechanism for influencing the display of attachment elements inserted via native SPI.
(): Deleted.
- html/HTMLAttachmentElement.cpp:
(WebCore::HTMLAttachmentElement::createElementRenderer):
(WebCore::HTMLAttachmentElement::setFile):
(WebCore::HTMLAttachmentElement::parseAttribute):
(WebCore::HTMLAttachmentElement::invalidateShadowRootChildrenIfNecessary): Deleted.
(WebCore::HTMLAttachmentElement::attachmentRenderer const): Deleted.
(WebCore::HTMLAttachmentElement::updateDisplayMode): Deleted.
(WebCore::HTMLAttachmentElement::ensureInnerImage): Deleted.
(WebCore::HTMLAttachmentElement::ensureInnerVideo): Deleted.
(WebCore::HTMLAttachmentElement::innerImage const): Deleted.
(WebCore::HTMLAttachmentElement::innerVideo const): Deleted.
(WebCore::HTMLAttachmentElement::populateShadowRootIfNecessary): Deleted.
Remove logic for building the shadow root to house inline media elements.
- html/HTMLAttachmentElement.h:
The renderer of the attachment element is once again always a
RenderAttachment
, so we can remove
attachmentRenderer()
altogether and revert to overridingrenderer()
to return aRenderAttachment*
.
- page/DragController.cpp:
(WebCore::DragController::startDrag):
- rendering/RenderAttachment.h:
(WebCore::HTMLAttachmentElement::renderer const):
Source/WebKit:
Remove attachment display mode from WebKit. Note that _WKAttachmentDisplayOptions needs to remain in the private
header for source compatibility with Mail.
- UIProcess/API/Cocoa/_WKAttachment.mm:
(-[_WKAttachmentDisplayOptions coreDisplayOptions]): Deleted.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setAttachmentDisplayOptions):
Tools:
Remove API tests and API test helpers for verifying the behavior of in-place media attachment elements.
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(-[TestWKWebView synchronouslyInsertAttachmentWithFilename:contentType:data:]):
(TestWebKitAPI::TEST):
(testVideoData): Deleted.
(displayOptionsWithMode): Deleted.
(-[TestWKWebView synchronouslyInsertAttachmentWithFilename:contentType:data:options:]): Deleted.
LayoutTests:
Remove a layout test which verified that attachment elements with
-webkit-appearance: none
would render
child elements. This was only used to implement in-place attachment display modes.
- fast/attachment/attachment-without-appearance-expected.html: Removed.
- fast/attachment/attachment-without-appearance.html: Removed.
- platform/gtk/TestExpectations:
- 7:13 AM Changeset in webkit [234884] by
-
- 8 edits2 adds in trunk
[IntersectionObserver] Do not hold a strong reference to the root element
https://bugs.webkit.org/show_bug.cgi?id=188575
Reviewed by Simon Fraser.
Source/WebCore:
Make IntersectionObserver have only a raw pointer to its root element rather than
a reference, so that an otherwise-unreachable root isn't kept alive. Add logic to
to clear this pointer when the root element gets deleted.
Test: intersection-observer/root-element-deleted.html
- dom/Element.cpp:
(WebCore::Element::~Element):
(WebCore::Element::disconnectFromIntersectionObservers):
(WebCore::Element::ensureIntersectionObserverData):
(WebCore::Element::intersectionObserverData):
- dom/Element.h:
- dom/ElementRareData.cpp:
- dom/ElementRareData.h:
(WebCore::ElementRareData::intersectionObserverData):
(WebCore::ElementRareData::setIntersectionObserverData):
- page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::create):
(WebCore::IntersectionObserver::IntersectionObserver):
(WebCore::IntersectionObserver::~IntersectionObserver):
(WebCore::IntersectionObserver::rootDestroyed):
- page/IntersectionObserver.h:
(WebCore::IntersectionObserver::root const):
LayoutTests:
- intersection-observer/root-element-deleted-expected.txt: Added.
- intersection-observer/root-element-deleted.html: Added.
Aug 14, 2018:
- 11:15 PM Changeset in webkit [234883] by
-
- 2 edits2 adds in trunk/Source/WebCore
[Nicosia] Add Nicosia::BackingStoreTextureMapperImpl
https://bugs.webkit.org/show_bug.cgi?id=188548
Reviewed by Carlos Garcia Campos.
Add the Nicosia::BackingStoreTextureMapperImpl class, the
TextureMapper-specific implementation that will extend the BackingStore
class.
Purpose of this class is to manage content of painted layers. In the
LayerState object that will be exposed to the CoordinatedGraphicsLayer
owner we keep the current and previous TiledBackingStore objects that
will be used for painting. A TileUpdate object is used to store all tile
creation, removal and update changes that happen during the painting
that's performed during the CoordinatedGraphicsLayer flush.
At the point of synchronization under the Nicosia::Scene object, these
updates will be moved over to the pending TileUpdate object that will
then be accessed during the composition step. For that purpose we keep
in the CompositionState member object a reference to the
CoordinatedBackingStore object that will get updated with the tile
creation, removal and update changes (if there are any). The composition
step will use the takeUpdate() method to retrieve all these changes and
apply them outside of the point of synchronization (avoiding this sync
step to take too long).
This will be integrated into the CoordinatedGraphicsLayer class at a
later point, when the switch to the new infrastructure can be made in
one go.
- platform/TextureMapper.cmake:
- platform/graphics/nicosia/texmap/NicosiaBackingStoreTextureMapperImpl.cpp: Added.
(Nicosia::BackingStoreTextureMapperImpl::createFactory):
(Nicosia::BackingStoreTextureMapperImpl::tiledBackingStoreHasPendingTileCreation):
(Nicosia::BackingStoreTextureMapperImpl::createTile):
(Nicosia::BackingStoreTextureMapperImpl::updateTile):
(Nicosia::BackingStoreTextureMapperImpl::removeTile):
(Nicosia::BackingStoreTextureMapperImpl::flushUpdate):
(Nicosia::BackingStoreTextureMapperImpl::takeUpdate):
- platform/graphics/nicosia/texmap/NicosiaBackingStoreTextureMapperImpl.h: Added.
- 11:10 PM Changeset in webkit [234882] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Table should not center rows when scrolling them into view
https://bugs.webkit.org/show_bug.cgi?id=188593
<rdar://problem/43311660>
Reviewed by Devin Rousso.
- UserInterface/Views/Table.js:
(WI.Table.prototype._handleKeyDown):
- 9:47 PM Changeset in webkit [234881] by
-
- 3 edits in trunk/Tools
Unreviewed, change my emails.
- Scripts/webkitpy/common/config/contributors.json:
- Scripts/webkitpy/common/config/watchlist:
- 9:46 PM Changeset in webkit [234880] by
-
- 13 edits in trunk/Source
Unreviewed, rolling out r234874 and r234876.
WinCairo port can't compile
Reverted changesets:
"[JSC] Add GPRReg::InvalidGPRReg and FPRReg::InvalidFPRReg"
https://bugs.webkit.org/show_bug.cgi?id=188589
https://trac.webkit.org/changeset/234874
"Unreviewed, attempt to fix CLoop build"
https://bugs.webkit.org/show_bug.cgi?id=188589
https://trac.webkit.org/changeset/234876
- 9:08 PM Changeset in webkit [234879] by
-
- 7 edits in trunk
HashMap<Ref<P>, V> asserts when V is not zero for its empty value
https://bugs.webkit.org/show_bug.cgi?id=188582
Reviewed by Sam Weinig.
Source/JavaScriptCore:
- runtime/SparseArrayValueMap.h:
Source/WTF:
The issue happened when we'd fill the hash table buffer with empty values. We
would iterate the buffer and invoke placement new with the incoming value being the
empty value. For Ref, this means that, we'd call its move constructor, which calls
leakRef(), which asserts that the Ref's pointer is not null. We'd like to keep
this assert since it catches bugs where you leakRef() more than once or WTFMove
an already moved Ref.
This patch fixes this issue by adding a new trait for constructing an empty
value. We use that in HashTable instead of directly calling placement new.
- wtf/HashTable.h:
(WTF::HashTableBucketInitializer<false>::initialize):
- wtf/HashTraits.h:
(WTF::GenericHashTraits::constructEmptyValue):
(WTF::HashTraits<Ref<P>>::constructEmptyValue):
(WTF::KeyValuePairHashTraits::constructEmptyValue):
Tools:
- TestWebKitAPI/Tests/WTF/HashMap.cpp:
(TestWebKitAPI::TEST):
- 7:59 PM Changeset in webkit [234878] by
-
- 10 edits2 adds in trunk
[LFC][Floating] Add support for negative clearance.
https://bugs.webkit.org/show_bug.cgi?id=188555
Reviewed by Simon Fraser.
Source/WebCore:
- Compute clearance to avoid float(s) (border box needs to avoid floats)
- Reset vertical margins to non-collapsed values.
- Adjust clearance with the new margins.
- Take the adjusted clearance and move the box vertically if needed.
Test: fast/block/block-only/margin-collapse-with-clearance.html
- layout/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
- layout/FloatingState.cpp:
(WebCore::Layout::FloatingState::FloatItem::FloatItem):
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::mapBoxToAncestor):
(WebCore::Layout::FormattingContext::mapTopLeftToAncestor):
(WebCore::Layout::FormattingContext::mapCoordinateToAncestor):
(WebCore::Layout::FormattingContext::mapToAncestor): Deleted.
- layout/FormattingContext.h:
- layout/LayoutUnits.h:
(WebCore::Layout::Position::Position):
(WebCore::Layout::Position::moveBy):
- layout/displaytree/DisplayBox.h:
Tools:
- LayoutReloaded/misc/LFC-passing-tests.txt:
LayoutTests:
- fast/block/block-only/margin-collapse-with-clearance-expected.txt: Added.
- fast/block/block-only/margin-collapse-with-clearance.html: Added.
- 7:42 PM Changeset in webkit [234877] by
-
- 7 edits in trunk/Source
Unreviewed, rolling out r234859.
Windows ports can't compile
Reverted changeset:
"Use a Variant instead of a union in CSSSelector"
https://bugs.webkit.org/show_bug.cgi?id=188559
https://trac.webkit.org/changeset/234859
- 6:18 PM Changeset in webkit [234876] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, attempt to fix CLoop build
https://bugs.webkit.org/show_bug.cgi?id=188589
- assembler/MacroAssembler.h:
- 5:55 PM Changeset in webkit [234875] by
-
- 4 edits1 add in trunk
Crash in WebKit::filterPreloadHSTSEntry via NetworkProcess::getHostNamesWithHSTSCache
https://bugs.webkit.org/show_bug.cgi?id=188576
<rdar://problem/43148977>
Reviewed by Alex Christensen.
Source/WebKit:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::fetchWebsiteData):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm: Added.
(TEST):
- 5:50 PM Changeset in webkit [234874] by
-
- 12 edits in trunk/Source
[JSC] Add GPRReg::InvalidGPRReg and FPRReg::InvalidFPRReg
https://bugs.webkit.org/show_bug.cgi?id=188589
Reviewed by Mark Lam.
Source/JavaScriptCore:
Since GPRReg(RegisterID) and FPRReg(FPRegisterID) do not include -1 in their enum values,
UBSan dumps bunch of warnings "runtime error: load of value 4294967295, which is not a valid value for type 'RegisterID'".
- We add InvalidGPRReg and InvalidFPRReg to enum values of GPRReg and FPRReg to suppress the above warnings.
- We make GPRReg and FPRReg int8_t enums.
- We replace
#define InvalidGPRReg ((JSC::GPRReg)-1)
tostatic constexpr GPRReg InvalidGPRReg { GPRReg::InvalidGPRReg };
.
- assembler/ARM64Assembler.h:
- assembler/ARMAssembler.h:
- assembler/ARMv7Assembler.h:
- assembler/MIPSAssembler.h:
- assembler/X86Assembler.h:
- jit/FPRInfo.h:
- jit/GPRInfo.h:
(JSC::JSValueRegs::JSValueRegs):
(JSC::JSValueRegs::tagGPR const):
(JSC::JSValueRegs::payloadGPR const):
(JSC::JSValueSource::JSValueSource):
(JSC::JSValueSource::unboxedCell):
(JSC::JSValueSource::operator bool const):
(JSC::JSValueSource::base const):
(JSC::JSValueSource::tagGPR const):
(JSC::JSValueSource::payloadGPR const):
(JSC::JSValueSource::hasKnownTag const):
Source/WebCore:
No behavior change.
- cssjit/FunctionCall.h:
(WebCore::FunctionCall::FunctionCall):
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):
- 5:30 PM Changeset in webkit [234873] by
-
- 15 edits in trunk
isValidCSSSelector is unsafe to be called from a non-main thread
https://bugs.webkit.org/show_bug.cgi?id=188581
<rdar://problem/40517358>
Reviewed by Sam Weinig.
Source/WebCore:
Parsing and determining whether the css selectors are valid is fast enough to do before
hopping to the background thread for the slow NFA/DFA operations and writing to disk.
Doing it on the main thread avoids the thread safety issues in the CSSParser's use of strings.
- contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
- contentextensions/ContentExtensionCompiler.h:
- contentextensions/ContentExtensionParser.cpp:
(WebCore::ContentExtensions::isValidCSSSelector):
(WebCore::ContentExtensions::loadEncodedRules):
(WebCore::ContentExtensions::parseRuleList):
- contentextensions/ContentExtensionParser.h:
- contentextensions/ContentExtensionRule.cpp:
(WebCore::ContentExtensions::Trigger::isolatedCopy const):
(WebCore::ContentExtensions::Action::isolatedCopy const):
- contentextensions/ContentExtensionRule.h:
(WebCore::ContentExtensions::Trigger::isEmpty const):
(WebCore::ContentExtensions::Trigger::operator== const):
(WebCore::ContentExtensions::Action::Action):
(WebCore::ContentExtensions::ContentExtensionRule::isolatedCopy const):
(WebCore::ContentExtensions::ContentExtensionRule::operator== const):
(WebCore::ContentExtensions::vectorIsolatedCopy):
Source/WebKit:
- UIProcess/API/APIContentRuleListStore.cpp:
(API::compiledToFile):
(API::ContentRuleListStore::lookupContentRuleList):
(API::ContentRuleListStore::getAvailableContentRuleListIdentifiers):
(API::ContentRuleListStore::compileContentRuleList):
(API::ContentRuleListStore::removeContentRuleList):
(API::ContentRuleListStore::getContentRuleListSource):
- UIProcess/API/APIContentRuleListStore.h:
- UIProcess/API/Cocoa/WKContentRuleListStore.mm:
Source/WTF:
- wtf/Vector.h:
(WTF::minCapacity>::isolatedCopy):
Tools:
- TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::InMemoryCompiledContentExtension::create):
(TestWebKitAPI::checkCompilerError):
- 5:13 PM Changeset in webkit [234872] by
-
- 2 edits in branches/safari-606-branch/LayoutTests
Cherry-pick r234869. rdar://problem/42387347
Unreviewed test gardening for mac-wk1.
- platform/mac-wk1/TestExpectations:
- 5:11 PM Changeset in webkit [234871] by
-
- 2 edits in branches/safari-606.1.36.1-branch/LayoutTests
Cherry-pick r234869. rdar://problem/42387347
Unreviewed test gardening for mac-wk1.
- platform/mac-wk1/TestExpectations:
- 5:10 PM Changeset in webkit [234870] by
-
- 36 edits4 adds in trunk
NSURLAuthenticationMethodOAuth challenges are surfaced to clients in -didReceiveAuthenticationChallenge as NSURLAuthenticationMethodDefault
https://bugs.webkit.org/show_bug.cgi?id=186870
Source/WebCore:
<rdar://problem/41314410>
Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-14
Reviewed by Alex Christensen.
Add the ProtectionSpaceAuthenticationSchemeOAuth type.
- platform/network/ProtectionSpaceBase.cpp:
(WebCore::ProtectionSpaceBase::isPasswordBased const): Return yes because the oauth challenge
expects a token in return.
- platform/network/ProtectionSpaceBase.h:
- platform/network/cocoa/ProtectionSpaceCocoa.mm:
(WebCore::scheme):
(WebCore::ProtectionSpace::nsSpace const):
Source/WebCore/PAL:
<rdar://problem/41314410>
Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-14
Reviewed by Alex Christensen.
- pal/spi/cf/CFNetworkSPI.h: Declare OAuth string when not building against the
internal SDK.
Source/WebKit:
<rdar://problem/41314410>
Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-14
Reviewed by Alex Christensen.
Correctly expose the OAuth protection space type in API.
- UIProcess/API/C/WKAPICast.h:
(WebKit::toAPI):
- UIProcess/API/C/WKProtectionSpaceTypes.h:
Tools:
<rdar://problem/41314410>
Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-14
Reviewed by Alex Christensen.
- WebKitTestRunner/TestController.cpp:
(WTR::toString):
(WTR::TestController::canAuthenticateAgainstProtectionSpace): Expose type of authentication challenge so we can test OAuth.
(WTR::TestController::didReceiveAuthenticationChallenge):
LayoutTests:
Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-14
Reviewed by Alex Christensen.
Ensure the exposed authentication type to clients is OAuth.
- http/tests/loading/oauth-expected.txt: Added.
- http/tests/loading/oauth.html: Added.
- http/tests/loading/resources/oauth-subresource.php: Added.
- 4:56 PM Changeset in webkit [234869] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening for mac-wk1.
- platform/mac-wk1/TestExpectations:
- 4:56 PM Changeset in webkit [234868] by
-
- 2 edits in trunk/LayoutTests
Mark legacy-animation-engine/animations/combo-transform-translate+scale.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=185308
Unreviewed test gardening.
- 4:34 PM Changeset in webkit [234867] by
-
- 1 edit1 add in trunk/LayoutTests
[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188587
Unreviewed test gardening.
Added platform dependent expected result.
- platform/wincairo/http/tests/xmlhttprequest/methods-expected.txt: Added.
- 4:26 PM Changeset in webkit [234866] by
-
- 1 edit1 copy1 add in trunk/Websites/browserbench.org
Add MotionMark 1.1 to browserbench
https://bugs.webkit.org/show_bug.cgi?id=188585
<rdar://problem/43308076>
Patch by Jon Lee <jonlee@apple.com> on 2018-08-14
Rubber-stamped by Ryosuke Niwa.
- MotionMark1.1/: Added.
- 4:22 PM Changeset in webkit [234865] by
-
- 3 edits in trunk/Source/WebKit
Remove api misuse check so that custom webcontent service identifier can be set at runtime
https://bugs.webkit.org/show_bug.cgi?id=188579
Patch by Ben Richards <benton_richards@apple.com> on 2018-08-14
Reviewed by Ryosuke Niwa.
Changed API misuse check so that a custom bundle identifier can be set at runtime with a debug flag
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setCustomWebContentServiceBundleIdentifier):
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getLaunchOptions):
- 4:17 PM Changeset in webkit [234864] by
-
- 7 edits in trunk
[Curl] Implement platform default timeout interval.
https://bugs.webkit.org/show_bug.cgi?id=188565
Reviewed by Alex Christensen.
Source/WebCore:
Curl port didn't implement platform default timeout interval. It treated
zero value for timeout interval as no timeout.
Add platform dependent timeout interval into CurlContext and use that if
timeout and default timeout aren't supplied.
Tests: http/tests/xmlhttprequest/on-network-timeout-error-during-preflight.html
- platform/network/curl/CurlContext.cpp:
(WebCore::CurlHandle::setTimeout):
- platform/network/curl/CurlContext.h:
(WebCore::CurlContext::defaultTimeoutInterval const):
- platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::setupTransfer):
(WebCore::CurlRequest::timeoutInterval const):
(WebCore::CurlRequest::didCompleteTransfer):
- platform/network/curl/CurlRequest.h:
LayoutTests:
- platform/wincairo/TestExpectations:
- xmlhttprequest/on-network-timeout-error-during-preflight.html
- 3:43 PM Changeset in webkit [234863] by
-
- 5 edits in trunk/Tools
[webkitpy][Win] LayoutTests: test names should be Unix style, separated by slash not backslash
https://bugs.webkit.org/show_bug.cgi?id=187973
Patch by Fujii Hironori <Fujii Hironori> on 2018-08-14
Reviewed by Alex Christensen.
In LayoutTests, test names have been canonicalized in Unix style
since Bug 63597, for example 'fast/css/001.html'. But Bug 179219,
Bug 179572, Bug 180660, and Bug 181814 have changed to use
os.path.seq instead of slash if Windows Python is used.
Revert parts of those changes. Change relative_test_filename to
return a slash-separated test name as chromium_win.py used to do.
This change fixes all 41 test-webkitpy failures in WinCairo port.
- Scripts/webkitpy/layout_tests/models/test_expectations.py:
(TestExpectationParser._parse_line): Do not convert test names with normpath.
- Scripts/webkitpy/port/base.py:
(Port.normalize_test_name): Use TEST_PATH_SEPARATOR instead of os.path.sep.
(Port.relative_test_filename): Replace self.host.filesystem.sep with self.TEST_PATH_SEPARATOR.
(Port.abspath_for_test): Replace self.TEST_PATH_SEPARATOR with self.host.filesystem.sep.
- Scripts/webkitpy/port/driver.py:
(Driver): Use '/' instead of os.sep.
- Scripts/webkitpy/port/win.py:
(WinCairoPort): Do not override TEST_PATH_SEPARATOR.
- 2:15 PM Changeset in webkit [234862] by
-
- 2 edits in trunk/LayoutTests
Mark svg/custom/scrolling-embedded-svg-file-image-repaint-problem.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=188578
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 1:13 PM Changeset in webkit [234861] by
-
- 3 edits in trunk/Tools
[ews-build] Add build step to run WK1 layout-test
https://bugs.webkit.org/show_bug.cgi?id=188498
Reviewed by Lucas Forschler.
- BuildSlaveSupport/ews-build/steps.py:
(RunWebKit1Tests): Class to run WebKit1Tests.
- BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
- 12:04 PM Changeset in webkit [234860] by
-
- 2 edits in trunk/Tools
[Flatpak] Fix --cmakeargs
https://bugs.webkit.org/show_bug.cgi?id=188567
Patch by Patrick Griffis <Patrick Griffis> on 2018-08-14
Reviewed by Michael Catanzaro.
- flatpak/flatpakutils.py:
(WebkitFlatpak.setup_dev_env):
- 11:24 AM Changeset in webkit [234859] by
-
- 7 edits in trunk/Source
Use a Variant instead of a union in CSSSelector
https://bugs.webkit.org/show_bug.cgi?id=188559
Reviewed by Antti Koivisto.
Source/WebCore:
No change in behavior. This just makes some of the existing problems more obvious and easy to fix.
I moved m_caseInsensitiveAttributeValueMatching to RareData because it's only used with RareData.
I only have m_isForPage when assertions are enabled because it's only used for an assertion.
The rest is pretty straightforward translating union syntax to Variant syntax.
I use RefPtr for now where I could use Ref because it's never null to make copying easier, but that's temporary.
- css/CSSSelector.cpp:
(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::createRareData):
(WebCore::CSSSelector::setAttribute):
(WebCore::CSSSelector::setArgument):
(WebCore::CSSSelector::setLangArgumentList):
(WebCore::CSSSelector::setSelectorList):
(WebCore::CSSSelector::setNth):
(WebCore::CSSSelector::matchNth const):
(WebCore::CSSSelector::nthA const):
(WebCore::CSSSelector::nthB const):
(WebCore::CSSSelector::RareData::RareData):
- css/CSSSelector.h:
(WebCore::CSSSelector::argument const):
(WebCore::CSSSelector::langArgumentList const):
(WebCore::CSSSelector::selectorList const):
(WebCore::CSSSelector::attribute const):
(WebCore::CSSSelector::attributeCanonicalLocalName const):
(WebCore::CSSSelector::setValue):
(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::~CSSSelector):
(WebCore::CSSSelector::tagQName const):
(WebCore::CSSSelector::tagLowercaseLocalName const):
(WebCore::CSSSelector::value const):
(WebCore::CSSSelector::serializingValue const):
(WebCore::CSSSelector::attributeValueMatchingIsCaseInsensitive const):
(WebCore::CSSSelector::RareData::create): Deleted.
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::parsePageSelector):
- css/parser/CSSParserSelector.h:
Source/WTF:
- wtf/Variant.h:
Add packing macros to make it so Variant-containing structures don't always have 7 bytes of padding per Variant.
- 10:59 AM Changeset in webkit [234858] by
-
- 2 edits in trunk/Source/JavaScriptCore
Add missing availability macro.
https://bugs.webkit.org/show_bug.cgi?id=188563
Reviewed by Mark Lam.
- API/JSValueRef.h:
- 10:56 AM Changeset in webkit [234857] by
-
- 9 edits in trunk
Unhandled Promise Rejection logging in workers should not emit ErrorEvent to host Worker object
https://bugs.webkit.org/show_bug.cgi?id=188551
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker-expected.txt:
- web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker-expected.txt:
- web-platform-tests/streams/readable-streams/tee.dedicatedworker-expected.txt:
Source/WebCore:
Previously we dispatched ErrorEvent on the Worker object of the host side when the unhandled promise
rejection happens in the worker. But that was wrong. We should not dispatch such an event and we
should just log the error message.
- dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::reportUnhandledPromiseRejection):
LayoutTests:
- http/wpt/workers/promise-unhandled-rejection.any.worker-expected.txt:
- js/dom/unhandled-promise-rejection-bindings-type-error-in-workers-expected.txt:
- 10:54 AM Changeset in webkit [234856] by
-
- 11 edits in trunk/Tools
Enhancement request: Make export-w3c-test-changes add the PR to "See Also" links
https://bugs.webkit.org/show_bug.cgi?id=186140
Patch by Darshan Kadu <dkadu@igalia.com> on 2018-08-14
Reviewed by Youenn Fablet.
Added an optional parameter see_also to post_comment_to_bug function and used it for adding see_also variable's content in "See Also"
- Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
(Bugzilla.post_comment_to_bug):
Modified mock for see_also parameter
- Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py:
(MockBugzilla.post_comment_to_bug):
Made following unit tests to have see_also in bug comment
- Scripts/webkitpy/tool/bot/flakytestreporter_unittest.py:
- Scripts/webkitpy/tool/bot/sheriff_unittest.py:
(SheriffTest.test_post_blame_comment_on_bug):
- Scripts/webkitpy/tool/commands/applywatchlistlocal_unittest.py:
- Scripts/webkitpy/tool/commands/queues_unittest.py:
- Scripts/webkitpy/tool/commands/upload_unittest.py:
- Scripts/webkitpy/tool/steps/applywatchlist_unittest.py:
- Scripts/webkitpy/w3c/test_exporter.py:
(WebPlatformTestExporter.make_pull_request):
- Scripts/webkitpy/w3c/test_exporter_unittest.py:
(TestExporterTest.MockBugzilla.post_comment_to_bug):
(TestExporterTest.test_export):
- 10:46 AM Changeset in webkit [234855] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] GetByIdStatus::m_wasSeenInJIT is touched in GetByIdStatus::slowVersion
https://bugs.webkit.org/show_bug.cgi?id=188560
Reviewed by Keith Miller.
While GetByIdStatus() / GetByIdStatus(status) constructors do not set m_wasSeenInJIT,
it is loaded unconditionally in GetByIdStatus::slowVersion. This access to the
uninitialized member field is caught in UBSan. This patch fixes it by adding an initializer
m_wasSeenInJIT { false }
.
- bytecode/GetByIdStatus.h:
- 10:45 AM Changeset in webkit [234854] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed, follow-up patch for comments
https://bugs.webkit.org/show_bug.cgi?id=188265
- bindings/js/JSExecState.cpp:
(WebCore::JSExecState::didLeaveScriptContext):
Do nothing ifcontext
is nullptr. It is OK since we do not need to drain microtasks / rejected
promise events after ScriptExecutionContext is gone.
- dom/Microtasks.cpp:
(WebCore::MicrotaskQueue::contextQueue):
Drop unnecessary assertion since it is subsumed by downcast<>.
- 10:23 AM Changeset in webkit [234853] by
-
- 2 edits in trunk/Source/JavaScriptCore
[DFG] DFGPredictionPropagation should set PrimaryPass when processing invariants
https://bugs.webkit.org/show_bug.cgi?id=188557
Reviewed by Mark Lam.
DFGPredictionPropagationPhase should set PrimaryPass before processing invariants since
processing for ArithRound etc.'s invariants requiresm_pass
load. This issue is found
in UBSan's result.
- dfg/DFGPredictionPropagationPhase.cpp:
- 10:16 AM Changeset in webkit [234852] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Should not rotate constant with 64
https://bugs.webkit.org/show_bug.cgi?id=188556
Reviewed by Mark Lam.
To defend against JIT splaying, we rotate a constant with a randomly generated seed.
But if a seed becomes 64, the following code performsvalue << 64
where value's type
is uint64_t, and it causes undefined behaviors (UBs). This patch limits the seed in the
range of [0, 64) not to generate code causing UBs. This is found by UBSan.
- assembler/MacroAssembler.h:
(JSC::MacroAssembler::generateRotationSeed):
(JSC::MacroAssembler::rotationBlindConstant):
- 10:12 AM Changeset in webkit [234851] by
-
- 2 edits in trunk/Source/WebCore
Follow-up: [IntersectionObserver] Implement rootMargin parsing
https://bugs.webkit.org/show_bug.cgi?id=188469
Address review feedback from Darin Adler.
- page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::rootMargin const):
Use StringBuilder::appendLiteral instead of ::append to append a literal.
- 9:53 AM Changeset in webkit [234850] by
-
- 2 edits in trunk/Tools
[ews-build] Add support for max_builds parameter for workers
https://bugs.webkit.org/show_bug.cgi?id=188531
Reviewed by Lucas Forschler.
- BuildSlaveSupport/ews-build/loadConfig.py:
(loadBuilderConfig): Added support for max_builds.
- 9:48 AM Changeset in webkit [234849] by
-
- 6 edits in trunk/Source/WebKit
RemoteLayerTreeTransaction should use OptionSet for change flags
https://bugs.webkit.org/show_bug.cgi?id=188547
Reviewed by Simon Fraser.
- Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
- Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::notePropertiesChanged):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::resetChangedProperties):
Also remove unused everChangedProperties.
- Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode const):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
- 8:15 AM Changeset in webkit [234848] by
-
- 3 edits2 adds in trunk
[Web Animations] Crash under AnimationTimeline::cancelOrRemoveDeclarativeAnimation()
https://bugs.webkit.org/show_bug.cgi?id=188519
<rdar://problem/43237889>
Reviewed by Eric Carlson.
Source/WebCore:
Test: webanimations/css-animation-effect-target-change-and-animation-removal-crash.html
We would crash because we blindly assumed an animation that was found in the previous style must be in the list of running animations
but in fact it could have been removed already due to the element being removed from the DOM or its effect target changing, etc. So when
we iterate over names of animations that were found in the previous style but not in the new style, we must make a null check to ensure
that there is an animation to remove. Adding an ASSERT() in AnimationTimeline::cancelOrRemoveDeclarativeAnimation() will also clarify the
expectation here.
- animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::updateCSSAnimationsForElement):
(WebCore::AnimationTimeline::cancelOrRemoveDeclarativeAnimation):
LayoutTests:
Add a test where we clone the effect to be mutable and set a new target. At this stage the animation is no longer listed in the
m_elementToCSSAnimationByName map on AnimationTimeline. Then we remove the animation and force a style recalc for this element,
"anim" will be in the old style but not in the new style and we used to attempt to get an animation matching that name from
m_elementToCSSAnimationByName but it would be null, which would lead to a crash. Now we check that we indeed have such an animation
before proceeding.
- webanimations/css-animation-effect-target-change-and-animation-removal-crash-expected.html: Added.
- webanimations/css-animation-effect-target-change-and-animation-removal-crash.html: Added.
- 7:22 AM Changeset in webkit [234847] by
-
- 6 edits2 adds in trunk
Source/WebCore:
[LFC][Floating] Adjust vertical position with non-collapsed previous sibling margin.
https://bugs.webkit.org/show_bug.cgi?id=188543
Reviewed by Antti Koivisto.
This patch ensures that the inital vertical position for a float is adjusted with the non-collapsed sibling margin.
<div id=A style="margin-bottom: 20px;"></div>
<div id=B style='float: left'></div>
<div id=C style="margin-top: 10px;"></div>
While computing the static position for element "B", we simply call marginBottom() on A.
In the case above, A's margin bottom is collapsed with C's margin top and the value is 0 (C.marginTop() is 20px).
However CSS spec says that in block formatting context, the non-collapsed margin should be used instead to offset the float box.
(The reason why this should not be part of the BlockMarginCollapse::marginBottom() logic is because it can not differentiate the context of
sibling float/sibling inflow. When we margin collapse, we always do it in the context of inflow boxes.)
Test: fast/block/block-only/float-and-siblings-with-margins.html
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const):
(WebCore::Layout::BlockFormattingContext::computeFloatingPosition const):
- layout/blockformatting/BlockFormattingContext.h:
Tools:
[LFC][Floating] Adjust vertical position with non-collapsing previous sibling margin.
https://bugs.webkit.org/show_bug.cgi?id=188543
Reviewed by Antti Koivisto.
- LayoutReloaded/misc/LFC-passing-tests.txt:
LayoutTests:
[LFC][Floating] Adjust vertical position with non-collapsing previous sibling margin.
https://bugs.webkit.org/show_bug.cgi?id=188543
Reviewed by Antti Koivisto.
- fast/block/block-only/float-and-siblings-with-margins-expected.txt: Added.
- fast/block/block-only/float-and-siblings-with-margins.html: Added.
- 6:04 AM Changeset in webkit [234846] by
-
- 30 edits24 adds in trunk
Worker should support unhandled promise rejections
https://bugs.webkit.org/show_bug.cgi?id=188265
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker-expected.txt:
- web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker-expected.txt:
- web-platform-tests/streams/readable-streams/tee.dedicatedworker-expected.txt:
- web-platform-tests/streams/readable-streams/tee.serviceworker.https-expected.txt:
- web-platform-tests/workers/interfaces.worker-expected.txt:
- web-platform-tests/workers/semantics/interface-objects/001.worker-expected.txt:
Source/WebCore:
This patch adds PromiseRejectionEvent support in workers.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::promiseRejectionTracker):
Move promiseRejectionTracker handler from JSDOMWindowBase to JSDOMGlobalObject
to share it with WorkerGlobalScope.
- bindings/js/JSDOMGlobalObject.h:
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::promiseRejectionTracker): Deleted.
Moved to JSDOMGlobalObject.
- bindings/js/JSDOMWindowBase.h:
- bindings/js/JSExecState.cpp:
(WebCore::JSExecState::didLeaveScriptContext):
PromiseRejectionTracker is driven in workers too.
- bindings/js/JSPromiseRejectionEventCustom.cpp: Added.
(WebCore::JSPromiseRejectionEvent::visitAdditionalChildren):
Marking PromiseRejectionEvent::m_reason.
- bindings/js/JSWorkerGlobalScopeBase.cpp:
Configure promiseRejectionTracker.
- dom/Microtasks.cpp:
(WebCore::MicrotaskQueue::contextQueue):
- dom/Microtasks.h:
- dom/PromiseRejectionEvent.cpp:
(WebCore::PromiseRejectionEvent::PromiseRejectionEvent):
- dom/PromiseRejectionEvent.h:
- dom/PromiseRejectionEvent.idl:
Expose it to worker scope. The custom mark function is required since we start
using JSValueInWrappedObject. And the constructor no longer requires ExecState.
- dom/RejectedPromiseTracker.cpp:
(WebCore::RejectedPromiseTracker::reportUnhandledRejections):
(WebCore::RejectedPromiseTracker::reportRejectionHandled):
Remove state argument for PromiseRejectionEvent::create.
- dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::removeRejectedPromiseTracker):
- dom/ScriptExecutionContext.h:
In worker thread, we should delete PromiseRejectionTracker before destroying VM
because PromiseRejectionTracker's destruction requires VM. If we destroy VM first,
PromiseRejectionTracker's destruction causes crashing. In main thread, we do not
need to handle this case since we never destroy VM.
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::prepareForTermination):
(WebCore::WorkerGlobalScope::removeMicrotaskQueue): Deleted.
- workers/WorkerGlobalScope.h:
- workers/WorkerGlobalScope.idl:
Add onunhandledrejection and onrejectionhandled event handler attributes.
- workers/WorkerThread.cpp:
(WebCore::WorkerThread::stop):
We call WorkerGlobalScope::prepareForTermination, which cleans up Worker's objects touching VM.
LayoutTests:
- fast/dom/reference-cycle-leaks-expected.txt:
- http/wpt/workers/promise-unhandled-rejection.any-expected.txt: Added.
- http/wpt/workers/promise-unhandled-rejection.any.html: Added.
- http/wpt/workers/promise-unhandled-rejection.any.js: Added.
(promise_test):
- http/wpt/workers/promise-unhandled-rejection.any.worker-expected.txt: Added.
- http/wpt/workers/promise-unhandled-rejection.any.worker.html: Added.
- js/dom/unhandled-promise-rejection-basic-in-workers-expected.txt: Added.
- js/dom/unhandled-promise-rejection-basic-in-workers.html: Added.
- js/dom/unhandled-promise-rejection-bindings-type-error-in-workers-expected.txt: Added.
- js/dom/unhandled-promise-rejection-bindings-type-error-in-workers.html: Added.
- js/dom/unhandled-promise-rejection-handle-during-event-in-workers-expected.txt: Added.
- js/dom/unhandled-promise-rejection-handle-during-event-in-workers.html: Added.
- js/dom/unhandled-promise-rejection-handle-in-handler-in-workers-expected.txt: Added.
- js/dom/unhandled-promise-rejection-handle-in-handler-in-workers.html: Added.
- js/dom/unhandled-promise-rejection-handle-in-workers-expected.txt: Added.
- js/dom/unhandled-promise-rejection-handle-in-workers.html: Added.
- js/dom/unhandled-promise-rejection-order-in-workers-expected.txt: Added.
- js/dom/unhandled-promise-rejection-order-in-workers.html: Added.
- js/resources/unhandled-promise-rejection-basic-in-workers.js: Added.
(global.onunhandledrejection):
- js/resources/unhandled-promise-rejection-bindings-type-error-in-workers.js: Added.
(global.onunhandledrejection):
(catch):
(setTimeout):
- js/resources/unhandled-promise-rejection-handle-during-event-in-workers.js: Added.
(global.onunhandledrejection):
- js/resources/unhandled-promise-rejection-handle-in-handler-in-workers.js: Added.
(global.onunhandledrejection):
(global.onrejectionhandled):
- js/resources/unhandled-promise-rejection-handle-in-workers.js: Added.
(global.onunhandledrejection):
(global.onrejectionhandled):
- js/resources/unhandled-promise-rejection-order-in-workers.js: Added.
(global.onunhandledrejection):
- 5:41 AM Changeset in webkit [234845] by
-
- 2 edits in trunk/Tools
Unreviewed. Fix WebDriver tests after r234839.
New pytest requires to autoinstall more_itertools and six too.
- Scripts/webkitpy/thirdparty/init.py:
(AutoinstallImportHook._install_pytest):
- 5:40 AM Changeset in webkit [234844] by
-
- 2 edits in trunk/Tools
[GTK] Minibrowser: Add labels for buttons
https://bugs.webkit.org/show_bug.cgi?id=188549
Reviewed by Carlos Garcia Campos.
So they are accessible easier (i.e. while testing WebKitGTK+ through Minibrowser in Dogtail).
- MiniBrowser/gtk/BrowserWindow.c:
(webViewIsLoadingChanged):
(browserWindowSetupEditorToolbar):
(browser_window_init):
- 4:26 AM Changeset in webkit [234843] by
-
- 2 edits in trunk/Tools
Unreviewed. Fix WebDriver tests after r234839.
New pytest requires to autoinstall atomicwrites too.
- Scripts/webkitpy/thirdparty/init.py:
(AutoinstallImportHook._install_pytest):
- 2:57 AM Changeset in webkit [234842] by
-
- 2 edits in trunk/Tools
Unreviewed. Fix WebDriver tests after r234839.
New pytest requires to autoinstall pluggy and funcsigs too.
- Scripts/webkitpy/thirdparty/init.py:
(AutoinstallImportHook._install_pytest):
- 2:04 AM Changeset in webkit [234841] by
-
- 2 edits in trunk/WebDriverTests
Unreviewed gardening. Update several test expectations after r234839.
- TestExpectations.json:
- 1:29 AM Changeset in webkit [234840] by
-
- 6 edits in trunk
Fetch: content-length header is being added to the safe-list
https://bugs.webkit.org/show_bug.cgi?id=185473
Patch by Rob Buis <rbuis@igalia.com> on 2018-08-14
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Sync with wpt change:
https://github.com/web-platform-tests/wpt/commit/407ecdff87af8aeceaa07cbc71aac9ec355d4334
- web-platform-tests/fetch/api/cors/cors-filtering-expected.txt:
- web-platform-tests/fetch/api/cors/cors-filtering-worker-expected.txt:
- web-platform-tests/fetch/api/cors/cors-filtering.js:
Source/WebCore:
Content-Length is a CORS-safelisted reponse header:
https://fetch.spec.whatwg.org/#cors-safelisted-response-header-name
Tests: web-platform-tests/fetch/api/cors/cors-filtering.html
web-platform-tests/fetch/api/cors/cors-filtering-worker.html
- platform/network/HTTPParsers.cpp:
(WebCore::isCrossOriginSafeHeader):
- 12:08 AM Changeset in webkit [234839] by
-
- 145 edits9 copies47 adds2 deletes in trunk
Unreviewed. Update W3C WebDriver imported tests.
Tools:
Bump pytest version to 3.6.2.
- Scripts/webkitpy/thirdparty/init.py:
(AutoinstallImportHook._install_pytest):
WebDriverTests:
- imported/w3c/importer.json:
- imported/w3c/tools/webdriver/README.md:
- imported/w3c/tools/webdriver/webdriver/init.py:
- imported/w3c/tools/webdriver/webdriver/client.py:
- imported/w3c/tools/webdriver/webdriver/error.py:
- imported/w3c/tools/webdriver/webdriver/protocol.py:
- imported/w3c/tools/webdriver/webdriver/transport.py:
- imported/w3c/tools/wptrunner/README.rst:
- imported/w3c/tools/wptrunner/docs/conf.py:
- imported/w3c/tools/wptrunner/docs/usage.rst:
- imported/w3c/tools/wptrunner/requirements.txt:
- imported/w3c/tools/wptrunner/requirements_chrome.txt:
- imported/w3c/tools/wptrunner/requirements_chrome_android.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/tox.ini:
- imported/w3c/tools/wptrunner/wptrunner.default.ini:
- imported/w3c/tools/wptrunner/wptrunner/browsers/init.py:
- imported/w3c/tools/wptrunner/wptrunner/browsers/base.py:
- imported/w3c/tools/wptrunner/wptrunner/browsers/chrome.py:
- imported/w3c/tools/wptrunner/wptrunner/browsers/chrome_android.py:
- imported/w3c/tools/wptrunner/wptrunner/browsers/edge.py:
- imported/w3c/tools/wptrunner/wptrunner/browsers/fennec.py: Added.
- imported/w3c/tools/wptrunner/wptrunner/browsers/firefox.py:
- imported/w3c/tools/wptrunner/wptrunner/browsers/ie.py:
- imported/w3c/tools/wptrunner/wptrunner/browsers/opera.py:
- imported/w3c/tools/wptrunner/wptrunner/browsers/safari.py:
- imported/w3c/tools/wptrunner/wptrunner/browsers/sauce.py:
- imported/w3c/tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.bat:
- imported/w3c/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sh:
- imported/w3c/tools/wptrunner/wptrunner/browsers/servo.py:
- imported/w3c/tools/wptrunner/wptrunner/browsers/servodriver.py:
- imported/w3c/tools/wptrunner/wptrunner/browsers/webkit.py:
- imported/w3c/tools/wptrunner/wptrunner/environment.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/init.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/base.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/executormarionette.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/executorsafari.py: Added.
- imported/w3c/tools/wptrunner/wptrunner/executors/executorselenium.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/executorservo.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/executorservodriver.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/protocol.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/pytestrunner/init.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/reftest-wait_marionette.js:
- imported/w3c/tools/wptrunner/wptrunner/executors/testharness_webdriver.js:
- imported/w3c/tools/wptrunner/wptrunner/font.py:
- imported/w3c/tools/wptrunner/wptrunner/formatters.py:
- imported/w3c/tools/wptrunner/wptrunner/manifestexpected.py:
- imported/w3c/tools/wptrunner/wptrunner/manifestupdate.py:
- imported/w3c/tools/wptrunner/wptrunner/metadata.py:
- imported/w3c/tools/wptrunner/wptrunner/products.py:
- imported/w3c/tools/wptrunner/wptrunner/stability.py:
- imported/w3c/tools/wptrunner/wptrunner/testloader.py:
- imported/w3c/tools/wptrunner/wptrunner/testrunner.py:
- imported/w3c/tools/wptrunner/wptrunner/tests/browsers/test_sauce.py:
- imported/w3c/tools/wptrunner/wptrunner/tests/test_chunker.py:
- imported/w3c/tools/wptrunner/wptrunner/tests/test_formatters.py: Added.
- imported/w3c/tools/wptrunner/wptrunner/tests/test_products.py:
- imported/w3c/tools/wptrunner/wptrunner/tests/test_stability.py: Added.
- imported/w3c/tools/wptrunner/wptrunner/tests/test_update.py:
- imported/w3c/tools/wptrunner/wptrunner/tests/test_wpttest.py: Added.
- imported/w3c/tools/wptrunner/wptrunner/update/init.py:
- imported/w3c/tools/wptrunner/wptrunner/update/metadata.py:
- imported/w3c/tools/wptrunner/wptrunner/update/sync.py:
- imported/w3c/tools/wptrunner/wptrunner/update/tree.py:
- imported/w3c/tools/wptrunner/wptrunner/update/update.py:
- imported/w3c/tools/wptrunner/wptrunner/vcs.py:
- imported/w3c/tools/wptrunner/wptrunner/webdriver_server.py:
- imported/w3c/tools/wptrunner/wptrunner/wptcommandline.py:
- imported/w3c/tools/wptrunner/wptrunner/wptlogging.py:
- imported/w3c/tools/wptrunner/wptrunner/wptmanifest/init.py:
- imported/w3c/tools/wptrunner/wptrunner/wptmanifest/backends/conditional.py:
- imported/w3c/tools/wptrunner/wptrunner/wptmanifest/parser.py:
- imported/w3c/tools/wptrunner/wptrunner/wptmanifest/serializer.py:
- imported/w3c/tools/wptrunner/wptrunner/wptmanifest/tests/test_conditional.py:
- imported/w3c/tools/wptrunner/wptrunner/wptmanifest/tests/test_serializer.py:
- imported/w3c/tools/wptrunner/wptrunner/wptmanifest/tests/test_static.py:
- imported/w3c/tools/wptrunner/wptrunner/wptrunner.py:
- imported/w3c/tools/wptrunner/wptrunner/wpttest.py:
- imported/w3c/webdriver/META.yml: Added.
- imported/w3c/webdriver/OWNERS: Removed.
- imported/w3c/webdriver/tests/accept_alert/accept.py:
- imported/w3c/webdriver/tests/actions/control_click.py: Added.
- imported/w3c/webdriver/tests/actions/key.py:
- imported/w3c/webdriver/tests/actions/modifier_click.py:
- imported/w3c/webdriver/tests/actions/mouse.py:
- imported/w3c/webdriver/tests/actions/support/keys.py:
- imported/w3c/webdriver/tests/add_cookie/add.py:
- imported/w3c/webdriver/tests/back/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
- imported/w3c/webdriver/tests/back/back.py: Added.
- imported/w3c/webdriver/tests/back/conftest.py: Added.
- imported/w3c/webdriver/tests/close_window/close.py:
- imported/w3c/webdriver/tests/close_window/user_prompts.py:
- imported/w3c/webdriver/tests/conftest.py:
- imported/w3c/webdriver/tests/delete_all_cookies/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
- imported/w3c/webdriver/tests/delete_all_cookies/delete.py: Added.
- imported/w3c/webdriver/tests/delete_cookie/delete.py:
- imported/w3c/webdriver/tests/delete_cookie/user_prompts.py:
- imported/w3c/webdriver/tests/delete_session/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
- imported/w3c/webdriver/tests/delete_session/delete.py: Added.
- imported/w3c/webdriver/tests/dismiss_alert/dismiss.py:
- imported/w3c/webdriver/tests/element_clear/clear.py:
- imported/w3c/webdriver/tests/element_click/click.py: Added.
- imported/w3c/webdriver/tests/element_click/file_upload.py: Added.
- imported/w3c/webdriver/tests/element_click/interactability.py: Added.
- imported/w3c/webdriver/tests/element_click/navigate.py: Added.
- imported/w3c/webdriver/tests/element_click/scroll_into_view.py: Added.
- imported/w3c/webdriver/tests/element_click/support/close_window.html: Added.
- imported/w3c/webdriver/tests/element_click/support/input.html: Added.
- imported/w3c/webdriver/tests/element_send_keys/init.py:
- imported/w3c/webdriver/tests/element_send_keys/conftest.py: Added.
- imported/w3c/webdriver/tests/element_send_keys/events.py: Added.
- imported/w3c/webdriver/tests/element_send_keys/file_upload.py: Added.
- imported/w3c/webdriver/tests/element_send_keys/form_controls.py:
- imported/w3c/webdriver/tests/element_send_keys/send_keys.py: Added.
- imported/w3c/webdriver/tests/element_send_keys/user_prompts.py: Added.
- imported/w3c/webdriver/tests/execute_async_script/collections.py:
- imported/w3c/webdriver/tests/execute_async_script/execute_async.py: Added.
- imported/w3c/webdriver/tests/execute_async_script/user_prompts.py:
- imported/w3c/webdriver/tests/execute_script/cyclic.py:
- imported/w3c/webdriver/tests/execute_script/execute.py: Added.
- imported/w3c/webdriver/tests/execute_script/user_prompts.py:
- imported/w3c/webdriver/tests/find_element/find.py:
- imported/w3c/webdriver/tests/find_element_from_element/find.py:
- imported/w3c/webdriver/tests/find_elements/find.py:
- imported/w3c/webdriver/tests/find_elements_from_element/find.py:
- imported/w3c/webdriver/tests/forward/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
- imported/w3c/webdriver/tests/forward/conftest.py: Added.
- imported/w3c/webdriver/tests/forward/forward.py: Added.
- imported/w3c/webdriver/tests/forward/user_prompts.py: Added.
- imported/w3c/webdriver/tests/fullscreen_window/fullscreen.py:
- imported/w3c/webdriver/tests/fullscreen_window/user_prompts.py:
- imported/w3c/webdriver/tests/get_active_element/get.py:
- imported/w3c/webdriver/tests/get_alert_text/get.py:
- imported/w3c/webdriver/tests/get_current_url/get.py:
- imported/w3c/webdriver/tests/get_current_url/user_prompts.py:
- imported/w3c/webdriver/tests/get_element_attribute/get.py:
- imported/w3c/webdriver/tests/get_element_property/get.py:
- imported/w3c/webdriver/tests/get_element_property/user_prompts.py:
- imported/w3c/webdriver/tests/get_element_tag_name/get.py:
- imported/w3c/webdriver/tests/get_element_tag_name/user_prompts.py:
- imported/w3c/webdriver/tests/get_element_text/get.py:
- imported/w3c/webdriver/tests/get_named_cookie/get.py:
- imported/w3c/webdriver/tests/get_timeouts/get.py:
- imported/w3c/webdriver/tests/get_title/get.py:
- imported/w3c/webdriver/tests/get_title/user_prompts.py:
- imported/w3c/webdriver/tests/get_window_rect/get.py:
- imported/w3c/webdriver/tests/get_window_rect/user_prompts.py:
- imported/w3c/webdriver/tests/interface.html:
- imported/w3c/webdriver/tests/is_element_selected/selected.py:
- imported/w3c/webdriver/tests/is_element_selected/user_prompts.py:
- imported/w3c/webdriver/tests/maximize_window/maximize.py:
- imported/w3c/webdriver/tests/maximize_window/user_prompts.py:
- imported/w3c/webdriver/tests/minimize_window/minimize.py:
- imported/w3c/webdriver/tests/minimize_window/user_prompts.py:
- imported/w3c/webdriver/tests/navigate_to/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
- imported/w3c/webdriver/tests/navigate_to/navigate.py: Added.
- imported/w3c/webdriver/tests/new_session/conftest.py:
- imported/w3c/webdriver/tests/new_session/create_alwaysMatch.py:
- imported/w3c/webdriver/tests/new_session/create_firstMatch.py:
- imported/w3c/webdriver/tests/new_session/default_values.py:
- imported/w3c/webdriver/tests/new_session/invalid_capabilities.py:
- imported/w3c/webdriver/tests/new_session/merge.py:
- imported/w3c/webdriver/tests/new_session/page_load_strategy.py: Added.
- imported/w3c/webdriver/tests/new_session/platform_name.py: Added.
- imported/w3c/webdriver/tests/new_session/response.py:
- imported/w3c/webdriver/tests/new_session/timeouts.py: Added.
- imported/w3c/webdriver/tests/page_source/source.py:
- imported/w3c/webdriver/tests/refresh/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
- imported/w3c/webdriver/tests/refresh/refresh.py: Added.
- imported/w3c/webdriver/tests/refresh/user_prompts.py: Added.
- imported/w3c/webdriver/tests/send_alert_text/send.py:
- imported/w3c/webdriver/tests/set_timeouts/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
- imported/w3c/webdriver/tests/set_timeouts/set.py: Added.
- imported/w3c/webdriver/tests/set_window_rect/resizing_and_positioning.py: Removed.
- imported/w3c/webdriver/tests/set_window_rect/set.py:
- imported/w3c/webdriver/tests/set_window_rect/user_prompts.py:
- imported/w3c/webdriver/tests/status/status.py:
- imported/w3c/webdriver/tests/support/init.py:
- imported/w3c/webdriver/tests/support/asserts.py:
- imported/w3c/webdriver/tests/support/fixtures.py:
- imported/w3c/webdriver/tests/switch_to_frame/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
- imported/w3c/webdriver/tests/switch_to_frame/switch.py: Added.
- imported/w3c/webdriver/tests/switch_to_parent_frame/switch.py:
- imported/w3c/webdriver/tests/switch_to_window/init.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/init.py.
- imported/w3c/webdriver/tests/switch_to_window/switch.py: Added.
Aug 13, 2018:
- 11:53 PM Changeset in webkit [234838] by
-
- 2 edits in trunk/Source/WebDriver
WebDriver: do not try to set the caret when focusing non text element in send keys command
https://bugs.webkit.org/show_bug.cgi?id=188515
Reviewed by Brian Burg.
It causes a type error exception.
- Session.cpp:
(WebDriver::Session::elementSendKeys):
- 11:51 PM Changeset in webkit [234837] by
-
- 2 edits in trunk/Source/WebDriver
WebDriver: include all capabilities in the new session response
https://bugs.webkit.org/show_bug.cgi?id=188511
Reviewed by Brian Burg.
As expected by the tests, using the default values when the capability is not provided by the user.
- WebDriverService.cpp:
(WebDriver::WebDriverService::createSession):
- 11:49 PM Changeset in webkit [234836] by
-
- 6 edits in trunk
WebDriver: several element_send_keys tests are failing since added
https://bugs.webkit.org/show_bug.cgi?id=181644
Reviewed by Michael Catanzaro.
This is because we are implementing an old version of the spec that received a "value" parameter to send keys
command, instead of the "text" one.
14.3 Element Send Keys
https://w3c.github.io/webdriver/#element-send-keys
- Session.cpp:
(WebDriver::Session::virtualKeyForKey): Receive a single character instead of a sequence.
(WebDriver::Session::elementSendKeys): It now receives a String and passes every character to virtualKeyForKey.
(WebDriver::Session::performActions): Pass first character of sequence to virtualKeyForKey.
- Session.h:
- WebDriverService.cpp:
(WebDriver::WebDriverService::elementSendKeys): Get text as a String, instead of value as an array.
- 10:55 PM Changeset in webkit [234835] by
-
- 2 edits in trunk/Source/WTF
Meaning of OptionSet::contains is unclear when used with OptionSet argument
https://bugs.webkit.org/show_bug.cgi?id=188501
<rdar://problem/43246242>
Reviewed by Simon Fraser.
MSVC is unable to compile contains using an initializer_list within a lambda.
- wtf/OptionSet.h:
(WTF::OptionSet::contains const):
- 6:47 PM Changeset in webkit [234834] by
-
- 6 edits in trunk/Source/WebCore
[LFC][Floating] Do not confuse clear with clearance.
https://bugs.webkit.org/show_bug.cgi?id=188541
Reviewed by Simon Fraser.
clear -> CSS property.
clearance -> the offset required to avoid floats when clear is present.
- layout/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layout const):
(WebCore::Layout::BlockFormattingContext::computeVerticalPositionForClear const):
(WebCore::Layout::BlockFormattingContext::computeVerticalPositionWithClearance const): Deleted.
- layout/blockformatting/BlockFormattingContext.h:
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::hasClear const):
(WebCore::Layout::Box::hasClearance const): Deleted.
- layout/layouttree/LayoutBox.h:
- 5:59 PM Changeset in webkit [234833] by
-
- 2 edits in trunk/PerformanceTests
Update MotionMark version number
https://bugs.webkit.org/show_bug.cgi?id=188535
<rdar://problem/43254078>
Reviewed by Said Abou-Hallawa.
- MotionMark/resources/strings.js: To 1.1.
- 5:58 PM Changeset in webkit [234832] by
-
- 3 edits2 adds in trunk/PerformanceTests
[MotionMark] Update Multiply test
https://bugs.webkit.org/show_bug.cgi?id=188532
<rdar://problem/43252151>
Reviewed by Said Abou-Hallawa.
Update Multiply test to have a larger upper limit of number of particles. Cycle through three
different ways of hiding an element. Add new Multiple suite that isolates those components for
debugging purposes.
- MotionMark/resources/debug-runner/tests.js:
- MotionMark/tests/dom/multiply.html: Added.
- MotionMark/tests/dom/resources/multiply.js: Added.
- MotionMark/tests/master/resources/multiply.js:
- 5:39 PM Changeset in webkit [234831] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Crash at -[UIViewController _presentViewController:withAnimationController:completion:]
https://bugs.webkit.org/show_bug.cgi?id=188537
<rdar://problem/41400259>
Patch by James Savage <James Savage> on 2018-08-13
Reviewed by Tim Horton.
- platform/ios/ValidationBubbleIOS.mm:
(WebCore::ValidationBubble::show): Avoid hitting a UIKit exception for
presenting an already presented view controller by turning the scenario
into an early return.
- 5:02 PM Changeset in webkit [234830] by
-
- 7 edits in tags/Safari-607.1.2.1/Source
Versioning.
- 5:00 PM Changeset in webkit [234829] by
-
- 1 copy in tags/Safari-607.1.2.1
New tag.
- 4:56 PM Changeset in webkit [234828] by
-
- 1 copy in tags/Safari-606.1.36.2.2
Tag Safari-606.1.36.2.2.
- 4:45 PM Changeset in webkit [234827] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
[WPT] Ensure templated tests do set a Content-Type: text/html HTTP header
https://bugs.webkit.org/show_bug.cgi?id=188523
Reviewed by Alexey Proskuryakov.
Importing change made in https://github.com/web-platform-tests/wpt/pull/12450
This helps running WPT tests in more platforms.
- web-platform-tests/tools/serve/serve.py:
(HtmlWrapperHandler):
- 4:37 PM Changeset in webkit [234826] by
-
- 1 copy in tags/Safari-606.1.36.1.5
Tag Safari-606.1.36.1.5.
- 4:36 PM Changeset in webkit [234825] by
-
- 9 edits in trunk/Source/WebCore
Make CSSSelectorList a little more sane
https://bugs.webkit.org/show_bug.cgi?id=188539
Reviewed by Simon Fraser.
This patch does four things:
- Use a UniqueArray<CSSSelector> instead of a raw pointer and manually calling destructors.
- Use move semantics a little bit better.
- Add a CSSSelectorList&& to the StyleRule and StyleRulePage because every time we create either
one of those objects we call a setter to give it a CSSSelectorList. That's what constructor arguments are for.
- Don't use CSSSelectorList.componentCount(), which iterates all components, to determine if it's empty.
Use first() instead.
- css/CSSPageRule.cpp:
(WebCore::CSSPageRule::setSelectorText):
- css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::componentCount const):
(WebCore::CSSSelectorList::listSize const):
(WebCore::CSSSelectorList::operator=):
(WebCore::CSSSelectorList::deleteSelectors): Deleted.
- css/CSSSelectorList.h:
(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::first const):
(WebCore::CSSSelectorList::indexOfNextSelectorAfter const):
(WebCore::CSSSelectorList::~CSSSelectorList): Deleted.
(WebCore::CSSSelectorList::adoptSelectorArray): Deleted.
(WebCore::CSSSelectorList::hasOneSelector const): Deleted.
- css/CSSStyleRule.cpp:
(WebCore::CSSStyleRule::setSelectorText):
- css/StyleRule.cpp:
(WebCore::StyleRule::StyleRule):
(WebCore::StyleRule::createForSplitting):
(WebCore::StyleRulePage::StyleRulePage):
- css/StyleRule.h:
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumePageRule):
(WebCore::CSSParserImpl::consumeStyleRule):
- css/parser/CSSSelectorParser.cpp:
(WebCore::CSSSelectorParser::consumePseudo):
- 4:15 PM Changeset in webkit [234824] by
-
- 2 edits in trunk/Tools
Allow the substring 'me' in contributor names and email addresses
https://bugs.webkit.org/show_bug.cgi?id=188538
Patch by Thomas Denney <tdenney@apple.com> on 2018-08-13
Reviewed by Tim Horton.
A test didn't permit the string "me" in email addresses or names of contributors.
- Scripts/webkitpy/common/config/committers_unittest.py:
(CommittersTest.test_contributors_by_fuzzy_match):
- 4:02 PM Changeset in webkit [234823] by
-
- 5 edits in trunk/PerformanceTests
[MotionMark] Update Leaves test
https://bugs.webkit.org/show_bug.cgi?id=188530
<rdar://problem/43251862>
Reviewed by Said Abou-Hallawa.
Update Leaves test to include opacity and scale. Add new Leaves suite that isolate those components
for debugging purposes.
- MotionMark/resources/debug-runner/tests.js:
- MotionMark/tests/dom/leaves.html:
- MotionMark/tests/dom/resources/leaves.js:
- MotionMark/tests/master/resources/leaves.js:
- 3:44 PM Changeset in webkit [234822] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Table should handle row selection instead of the table delegate
https://bugs.webkit.org/show_bug.cgi?id=188534
<rdar://problem/43253335>
Reviewed by Joseph Pecoraro.
Row selection should be implemented by Table, rather than its delegate.
- UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView.prototype.tableShouldSelectRow):
(WI.NetworkTableContentView.prototype.tableCellMouseDown): Deleted.
Prevent selection unless the clicked cell belongs to the name column.
- UserInterface/Views/ResourceCookiesContentView.js:
(WI.ResourceCookiesContentView.prototype.tableShouldSelectRow):
Always prevent selection.
- UserInterface/Views/Table.js:
(WI.Table):
(WI.Table.prototype._handleMouseDown):
- 3:29 PM Changeset in webkit [234821] by
-
- 8 edits2 adds in trunk/LayoutTests
[macOS debug] LayoutTest inspector/worker/resources-in-worker.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=168091
Reviewed by Devin Rousso.
- inspector/worker/resources-in-worker-expected.txt:
- inspector/worker/resources-in-worker.html:
- inspector/worker/resources/resource-utilities.js:
- inspector/worker/resources/worker-resources.js:
Be a little more careful about proceeding with tests after starting the Worker.
Fix the resource load from the main target to actually load a real resource.
- inspector/dom-debugger/resources/dataXHR.json: Added.
- inspector/dom-debugger/xhr-breakpoints.html:
Load an actual resource.
- platform/gtk/TestExpectations:
- platform/mac/TestExpectations:
This test always passes for me in Release and Debug. Reset expectations.
- 3:17 PM Changeset in webkit [234820] by
-
- 2 edits in trunk/Tools
Unreviewed, rolling out r234812.
https://bugs.webkit.org/show_bug.cgi?id=188536
broke the build (Requested by ThomasDenney on #webkit).
Reverted changeset:
"Added Thomas Denney to contributors.json."
https://bugs.webkit.org/show_bug.cgi?id=188525
https://trac.webkit.org/changeset/234812
- 3:16 PM Changeset in webkit [234819] by
-
- 2 edits in trunk/Tools
Avoid timeout resulted from calling waitUntilDone when test is not running
https://bugs.webkit.org/show_bug.cgi?id=188389
Reviewed by Chris Dumez.
If test is not running, we should not set the waitUntilDone flag, or it may cause subsequent tests timeout.
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::waitUntilDone):
- 3:02 PM Changeset in webkit [234818] by
-
- 9 edits in trunk
[IntersectionObserver] Validate threshold values
https://bugs.webkit.org/show_bug.cgi?id=188475
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Update expectation for newly passing test case.
- web-platform-tests/intersection-observer/observer-exceptions-expected.txt:
- web-platform-tests/intersection-observer/observer-exceptions.html: Fix typo already fixed upstream.
Source/WebCore:
Throw an exception if any of an IntersectionObserver's thresholds are outside
the range [0, 1].
Tested by: imported/w3c/web-platform-tests/intersection-observer/observer-exceptions.html
intersection-observer/intersection-observer-interface.html
- page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::create):
(WebCore::IntersectionObserver::IntersectionObserver):
- page/IntersectionObserver.h:
LayoutTests:
Add test coverage for interesting floating point threshold values.
- intersection-observer/intersection-observer-interface-expected.txt:
- intersection-observer/intersection-observer-interface.html:
- 2:17 PM Changeset in webkit [234817] by
-
- 5 edits in trunk/Source/WebCore
Remove unused CSSSelector::parseNth
https://bugs.webkit.org/show_bug.cgi?id=188529
Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-13
Reviewed by Simon Fraser.
This was conceptually replaced by the call to setNth in CSSSelectorParser::consumePseudo.
- css/CSSSelector.cpp:
(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::setNth):
(WebCore::CSSSelector::nthA const):
(WebCore::CSSSelector::nthB const):
(WebCore::CSSSelector::parseNth const): Deleted.
(WebCore::CSSSelector::RareData::parseNth): Deleted.
- css/CSSSelector.h:
(WebCore::CSSSelector::CSSSelector):
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne const):
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addNthChildType):
- 2:07 PM Changeset in webkit [234816] by
-
- 21 edits2 copies1 move4 adds1 delete in trunk
[WK2] [macOS] Implement a mechanism to test drag and drop
https://bugs.webkit.org/show_bug.cgi?id=181898
<rdar://problem/39181698>
Reviewed by Simon Fraser.
Source/WebKit:
Adds a new SPI method,
-_doAfterProcessingAllPendingMouseEvents:
, to WKWebView. This invokes the given
callback after all queued mouse events have been handled by the web process. See Tools/ChangeLog for more
detail.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _doAfterProcessingAllPendingMouseEvents:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/gtk/PageClientImpl.h:
- UIProcess/API/wpe/PageClientImpl.h:
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::processDidExit):
Invoke any outstanding callbacks for processing pending mouse events when the web process is terminated.
(WebKit::WebViewImpl::doAfterProcessingAllPendingMouseEvents):
Either invoke the callback immediately if there are no mouse events to be processed, or insert the callback in
a queue that will be flushed once all mouse events have been handled.
(WebKit::WebViewImpl::didFinishProcessingAllPendingMouseEvents):
(WebKit::WebViewImpl::flushPendingMouseEventCallbacks):
- UIProcess/PageClient.h:
(WebKit::PageClient::pinnedStateWillChange):
(WebKit::PageClient::pinnedStateDidChange):
(WebKit::PageClient::videoControlsManagerDidChange):
Drive-by tweaks: remove unnecessary semicolons after empty implementation stubs.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveEvent):
Notify the page client when there are no remaining mouse events left in the queue.
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::didFinishProcessingAllPendingMouseEvents):
Add some plumbing through PageClient, so that WebPageProxy can tell WebViewImpl when it is finished processing
all mouse events.
- UIProcess/win/PageClientImpl.h:
Tools:
Implements the currently stubbed DragAndDropSimulator on macOS, and introduces a new API test for r227266. See
comments below for more detail.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm: Copied from Tools/TestWebKitAPI/mac/DragAndDropSimulatorMac.mm.
Introduce a file for cross-platform drag and drop tests, currently for iOS and macOS. Additionally add a test
for r227266, which was fixed earlier this year but could not be tested due to a lack of testing mechanism on
macOS in WebKit2.
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/full-page-dropzone.html: Added.
Minor tweaks to this test page to add "dragover" and "drop" event handlers.
- TestWebKitAPI/Tests/WebKitCocoa/image-in-link-and-input.html:
- TestWebKitAPI/Tests/WebKitCocoa/link-in-iframe-and-input.html: Added.
Add a new test page that includes a link embedded within an iframe below a plain text input.
- TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm: Added.
(TEST):
- TestWebKitAPI/Tests/mac/LegacyDragAndDropTests.mm: Renamed from Tools/TestWebKitAPI/Tests/mac/DragAndDropPasteboardTests.mm.
Move only existing WebKit2 macOS drag and drop test (DragAndDropPasteboardTests.NumberOfValidItemsForDrop) out
of DragAndDropPasteboardTests.mm and into a new file, DragAndDropTestsMac.mm. Additionally, rename
DragAndDropPasteboardTests to LegacyDragAndDropTests, since it now only contains two legacy WebView tests for
drag and drop.
(+[FrameLoadCompletionListener listenerWithCompletionBlock:]):
(-[FrameLoadCompletionListener initWithCompletionBlock:]):
(-[FrameLoadCompletionListener webView:didFinishLoadForFrame:]):
(-[DragSource draggingSourceOperationMaskForLocal:]):
(-[DragInfo initWithImage:offset:pasteboard:source:destinationWindow:]):
(-[DragInfo lastMousePosition]):
(-[DragInfo setLastMousePosition:]):
(-[DragInfo draggingDestinationWindow]):
(-[DragInfo draggingSourceOperationMask]):
(-[DragInfo draggingLocation]):
(-[DragInfo draggedImageLocation]):
(-[DragInfo draggedImage]):
(-[DragInfo draggingPasteboard]):
(-[DragInfo draggingSource]):
(-[DragInfo draggingSequenceNumber]):
(-[DragInfo slideDraggedImageTo:]):
(-[DragInfo namesOfPromisedFilesDroppedAtDestination:]):
(-[DragInfo draggingFormation]):
(-[DragInfo setDraggingFormation:]):
(-[DragInfo animatesToDestination]):
(-[DragInfo setAnimatesToDestination:]):
(-[DragInfo numberOfValidItemsForDrop]):
(-[DragInfo setNumberOfValidItemsForDrop:]):
(-[DragInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]):
(-[DragInfo springLoadingHighlight]):
(-[DragInfo resetSpringLoading]):
(TestWebKitAPI::getTestImage):
(TestWebKitAPI::webViewAfterPerformingDragOperation):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/mac/full-page-dropzone.html: Removed.
- TestWebKitAPI/cocoa/DragAndDropSimulator.h:
Flesh out some of the DragAndDropSimulator API for macOS, exposing (among other things) the drag pasteboard,
the current NSDraggingInfo, the initial location of the drag image, and the drag image itself.
- TestWebKitAPI/cocoa/TestWKWebView.h:
- TestWebKitAPI/cocoa/TestWKWebView.mm:
(-[TestWKWebView mouseDownAtPoint:simulatePressure:]):
(-[TestWKWebView mouseUpAtPoint:]):
(-[TestWKWebView mouseMoveToPoint:withFlags:]):
(-[TestWKWebView sendClicksAtPoint:numberOfClicks:]):
(-[TestWKWebView mouseEnterAtPoint:]):
(-[TestWKWebView mouseExitAtPoint:]):
(-[TestWKWebView mouseDragToPoint:]):
(-[TestWKWebView _mouseEventWithType:atLocation:]):
(-[TestWKWebView _mouseEventWithType:atLocation:flags:timestamp:clickCount:]):
Add TestWKWebView helpers to send MouseMove, MouseEnter and MouseDrag NSEvents to the web view. Additionally,
rename parameter names to these helpers to make it more obvious that these locations are all in NSWindow
coordinates.
(-[TestWKWebView typeCharacter:]):
Drive-by style fix: put this opening brace on the beginning of the next line.
- TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:
(-[DragAndDropSimulator initWithWebViewFrame:]):
(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
(-[DragAndDropSimulator webView]):
Small iOS DragAndDropSimulator adjustments for new DragAndDropSimulator interfaces.
- TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:
(-[DragAndDropTestWKWebView initWithFrame:configuration:simulator:]):
Introduce a WKWebView subclass for testing drag and drop that overrides
-dragImage:at:offset:…
, and instead
allows DragAndDropSimulator to take over the drag.
(-[DragAndDropTestWKWebView dragImage:at:offset:event:pasteboard:source:slideBack:]):
Override this entry point into drag and drop code, and instead call out to the DragAndDropSimulator to
coordinate the drag.
(-[DragAndDropTestWKWebView waitForPendingMouseEvents]):
Helper method to wait for the web process to finish handling all in-flight mouse events.
(defaultExternalDragImage):
Set this image as the default drag image when simulating an incoming drag session from outside of the web view.
(-[DragAndDropSimulator initWithWebViewFrame:]):
(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
(-[DragAndDropSimulator flipAboutXAxisInHostWindow:]):
Helper method to flip a given point about the X axis of the window.
(-[DragAndDropSimulator locationInViewForCurrentProgress]):
Map a progress value (between 0 and 1) to a drag location.
(-[DragAndDropSimulator initialProgressForMouseDrag]):
Determines the initial progress value when initiation a drag in web content. This is the initial progress
required to ensure that the first mouse drag event exceeds the drag distance hysteresis and causes any drag
(if applicable) to begin.
(-[DragAndDropSimulator runFrom:to:]):
(-[DragAndDropSimulator performDragInWebView:atLocation:withImage:pasteboard:source:]):
Helper to coordinate drag updates in both the cases where we're simulating a drag session entering from outside
of the web view, and in the case where we've initiated a drag from the web view itself.
(-[DragAndDropSimulator webView]):
(-[DragAndDropSimulator setExternalDragPasteboard:]):
(-[DragAndDropSimulator externalDragPasteboard]):
Just like its iOS counterpart (setExternalItemProviders:), setting an external drag pasteboard on macOS puts the
DragAndDropSimulator in a mode that simulates a drag coming in from outside the web view, using the given
pasteboard.
(-[DragAndDropSimulator setExternalDragImage:]):
(-[DragAndDropSimulator externalDragImage]):
May be optionally set when specifying an external drag pasteboard to specify the drag image used. If no external
drag image is specified, falls back to the default image returned bydefaultExternalDragImage()
.
(-[DragAndDropSimulator draggingInfo]):
(-[DragAndDropSimulator willEndDraggingHandler]):
(-[DragAndDropSimulator setWillEndDraggingHandler:]):
Hook to allow tests to run logic right before performing the drop (if the current drag operation is not none) or
ending the drag session without performing a drag operation.
(-[DragAndDropSimulator initWithWebView:]): Deleted.
(-[DragAndDropSimulator dealloc]): Deleted.
(-[DragAndDropSimulator phase]): Deleted.
- TestWebKitAPI/mac/TestDraggingInfo.h: Copied from Tools/TestWebKitAPI/mac/DragAndDropSimulatorMac.mm.
- TestWebKitAPI/mac/TestDraggingInfo.mm: Added.
Mock object conforming to NSDraggingInfo that is passed to WKWebView when invoking -draggingUpdated:,
-draggingEntered: and -draggingExited:.
(-[TestDraggingInfo draggingPasteboard]):
(-[TestDraggingInfo setDraggingPasteboard:]):
(-[TestDraggingInfo draggingSource]):
(-[TestDraggingInfo setDraggingSource:]):
(-[TestDraggingInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]):
(-[TestDraggingInfo draggingDestinationWindow]):
(-[TestDraggingInfo draggedImage]):
(-[TestDraggingInfo setDraggedImage:]):
(-[TestDraggingInfo slideDraggedImageTo:]):
(-[TestDraggingInfo namesOfPromisedFilesDroppedAtDestination:]):
(-[TestDraggingInfo resetSpringLoading]):
Empty method stubs, to be implemented in the future as needed.
- 1:18 PM Changeset in webkit [234815] by
-
- 4 edits in trunk/Source/WebCore
Remove unused code in CSSParserSelector/CSSSelector
https://bugs.webkit.org/show_bug.cgi?id=188528
Reviewed by Simon Fraser.
- css/CSSSelector.cpp:
- css/CSSSelector.h:
(WebCore::CSSSelector::serializingValue const):
(WebCore::CSSSelector::setAttributeValueMatchingIsCaseInsensitive): Deleted.
- css/parser/CSSParserSelector.h:
(WebCore::CSSParserSelector::setAttributeValueMatchingIsCaseInsensitive): Deleted.
- 1:17 PM Changeset in webkit [234814] by
-
- 8 edits in trunk/Source/WebCore
Modernize CSSSelectorList a little
https://bugs.webkit.org/show_bug.cgi?id=188527
Reviewed by Simon Fraser.
No change in behavior. Just use make_unique and move semantics a little more.
- css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::adoptSelectorVector): Deleted.
- css/CSSSelectorList.h:
- css/StyleRule.h:
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::parsePageSelector):
- css/parser/CSSParserSelector.cpp:
(WebCore::CSSParserSelector::adoptSelectorVector):
- css/parser/CSSParserSelector.h:
- css/parser/CSSSelectorParser.cpp:
(WebCore::CSSSelectorParser::consumeComplexSelectorList):
(WebCore::CSSSelectorParser::consumeCompoundSelectorList):
(WebCore::CSSSelectorParser::consumePseudo):
- 1:01 PM Changeset in webkit [234813] by
-
- 2 edits in trunk/Source/WebKit
Fix linux build after r234811
https://bugs.webkit.org/show_bug.cgi?id=188501
- UIProcess/API/glib/WebKitWebsiteData.cpp:
(recordContainsSupportedDataTypes):
- 12:52 PM Changeset in webkit [234812] by
-
- 2 edits in trunk/Tools
Added Thomas Denney to contributors.json.
https://bugs.webkit.org/show_bug.cgi?id=188525
Patch by Thomas Denney <tdenney@apple.com> on 2018-08-13
Reviewed by Myles C. Maxfield.
- Scripts/webkitpy/common/config/contributors.json:
- 12:16 PM Changeset in webkit [234811] by
-
- 10 edits in trunk
Meaning of OptionSet::contains is unclear when used with OptionSet argument
https://bugs.webkit.org/show_bug.cgi?id=188501
Reviewed by Anders Carlsson.
Source/WebCore:
- dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::possiblyHasMarkers):
- dom/DocumentMarkerController.h:
(WebCore::DocumentMarkerController::hasMarkers const):
- platform/FileSystem.h:
(WebCore::FileSystem::openAndLockFile):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::selectionColor const):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintForegroundForFragments):
Source/WTF:
The existing behavior is "contains any" but it is not very clear from the name.
- wtf/OptionSet.h:
(WTF::OptionSet::contains const):
This is now for testing a single option only.
(WTF::OptionSet::containsAny const):
(WTF::OptionSet::containsAll const):
Add separate functions for OptionSet argument.
Tools:
- TestWebKitAPI/Tests/WTF/OptionSet.cpp:
(TestWebKitAPI::TEST):
- 11:42 AM Changeset in webkit [234810] by
-
- 23 edits5 deletes in trunk
Unreviewed, rolling out r234747.
https://bugs.webkit.org/show_bug.cgi?id=188524
plugin processes crash on launch (Requested by smfr on
#webkit).
Reverted changeset:
"We should cache the compiled sandbox profile in a data vault"
https://bugs.webkit.org/show_bug.cgi?id=184991
https://trac.webkit.org/changeset/234747
- 11:33 AM Changeset in webkit [234809] by
-
- 6 edits1 add in trunk
[iOS] Dragging a non-editable text selection into a plain text input inserts HTML markup
https://bugs.webkit.org/show_bug.cgi?id=188485
<rdar://problem/43168784>
Reviewed by Tim Horton.
Source/WebCore:
Before r223678, -typeIdentifiersToLoadForRegisteredTypeIdentifiers:, which is responsible for determining which
type identifiers to load upon performing a drop, returned the following when dropping a rich text selection onto
a textarea:
"public.plain-text",
"public.html"
After r223678, we now propagate a custom pasteboard data type when dragging, and the same list now looks like:
"com.apple.WebKit.custom-pasteboard-data",
"public.html",
"public.plain-text"
Subsequently, logic in
-_preLoadedDataConformingToType:…
(responsible for mapping a requested type identifier
to data that has been loaded from an item provider) iterates through the aforementioned list of type identifiers
and selects the data of the first type identifier in the list that conforms to the requested type identifier.
However, this list of type identifiers is currently the result of-[NSSet allObjects]
, which means that the
type identifiers in the list are in no particular order!
As such, this particular use case only worked by accident prior to r223678, and after that change, this latent
bug was surfaced. The patch here makes two adjustments to pasteboard handling on iOS to fix the bug.
Test: DragAndDropTests.NonEditableTextSelectionToTextarea
- platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::read):
When reading plain text from the pasteboard, give "public.plain-text" priority over "public.text". This ensures
that we don't end up reading markup as "plain text" when there's already more relevant plain text data present
in the pasteboard.
- platform/ios/WebItemProviderPasteboard.mm:
(-[WebItemProviderPasteboard typeIdentifiersToLoadForRegisteredTypeIdentifiers:]):
Refactor existing logic to enforce a consistent ordering of type identifiers to load. First, we use
NSMutableOrderedSet instead of just an NSMutableSet to store type identifiers we've added. Secondly, move all
logic to insert type identifiers into this set to the end of the method, where we iterate over all of the type
identifiers in order and add each type identifier to the set if needed. This ensures that the order of resulting
types is from highest to lowest fidelity.
(-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:synchronousTimeout:]):
(-[WebItemProviderPasteboard typeIdentifiersToLoadForRegisteredTypeIdentfiers:]): Deleted.
Fix a typo in the method name.
Tools:
Add a new API test to verify that dropping selected non-editable rich text into a textarea inserts text as
expected, rather than markup.
It's somewhat interesting to note that this particular use case isn't exercised by any existing tests; the
closest test is DragAndDropTests.ContentEditableToTextarea, which drags a rich text selection from a
contenteditable element to a text area. However, due to logic inDragController::concludeEditDrag
that handles
drag and drop across editable content differently than drag and drop from non-editable to editable content, the
bug that is fixed here doesn't surface in that existing test.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/selected-text-and-textarea.html: Added.
- TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:
(TestWebKitAPI::TEST):
- 11:19 AM Changeset in webkit [234808] by
-
- 78 edits in trunk
Use a 1-byte enum class for TextDirection
https://bugs.webkit.org/show_bug.cgi?id=188350
Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-13
Reviewed by Simon Fraser.
Source/WebCore:
- Modules/notifications/Notification.h:
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator TextDirection const):
- css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::matchAllRules):
- dom/Document.cpp:
(WebCore::Document::updateTitleFromTitleElement):
(WebCore::Document::setTitle):
- dom/Position.cpp:
(WebCore::Position::primaryDirection const):
- dom/Range.cpp:
(WebCore::Range::collectSelectionRectsWithoutUnionInteriorLines const):
- editing/Editing.cpp:
(WebCore::directionOfEnclosingBlock):
- editing/Editor.cpp:
(WebCore::Editor::baseWritingDirectionForSelectionStart const):
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::willBeModified):
(WebCore::FrameSelection::modifyExtendingRight):
(WebCore::FrameSelection::modifyExtendingForward):
(WebCore::FrameSelection::modifyMovingRight):
(WebCore::FrameSelection::modifyExtendingLeft):
(WebCore::FrameSelection::modifyExtendingBackward):
(WebCore::FrameSelection::modifyMovingLeft):
(WebCore::FrameSelection::textSelectionIntent):
(WebCore::FrameSelection::modify):
- editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::leftVisuallyDistinctCandidate const):
(WebCore::VisiblePosition::rightVisuallyDistinctCandidate const):
- editing/VisibleUnits.cpp:
(WebCore::visualWordPosition):
(WebCore::leftWordPosition):
(WebCore::rightWordPosition):
(WebCore::leftBoundaryOfLine):
(WebCore::rightBoundaryOfLine):
- html/HTMLElement.cpp:
(WebCore::HTMLElement::directionalityIfhasDirAutoAttribute const):
(WebCore::HTMLElement::directionality const):
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setupDateTimeChooserParameters):
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::directionForFormData const):
(WebCore::HTMLTextFormControlElement::adjustInnerTextStyle const):
- html/HTMLTitleElement.cpp:
(WebCore::HTMLTitleElement::computedTextWithDirection):
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::toTextDirection const):
(WebCore::CanvasRenderingContext2D::direction const):
(WebCore::CanvasRenderingContext2D::textOffset):
- html/shadow/SliderThumbElement.cpp:
(WebCore::RenderSliderContainer::layout):
- html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerElement::resolveCustomStyle):
- page/Chrome.cpp:
(WebCore::Chrome::setToolTip):
- page/FrameView.cpp:
(WebCore::paginationModeForRenderStyle):
- page/Settings.yaml:
- platform/RectEdges.h:
(WebCore::RectEdges::start):
(WebCore::RectEdges::end):
(WebCore::RectEdges::start const):
(WebCore::RectEdges::end const):
(WebCore::RectEdges::setStart):
(WebCore::RectEdges::setEnd):
- platform/UserInterfaceLayoutDirection.h:
- platform/graphics/ComplexTextController.cpp:
(WebCore::ComplexTextController::computeExpansionOpportunity):
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::expansionOpportunityCountInternal):
(WebCore::FontCascade::leadingExpansionOpportunity):
(WebCore::FontCascade::trailingExpansionOpportunity):
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawBidiText):
- platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun):
(WebCore::TextRun::rtl const):
(WebCore::TextRun::ltr const):
(WebCore::TextRun::setDirection):
- platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::WidthIterator):
- platform/ios/SelectionRect.cpp:
(WebCore::SelectionRect::SelectionRect):
- platform/text/BidiResolver.h:
(WebCore::BidiStatus::BidiStatus):
- platform/text/StringWithDirection.h:
- platform/text/WritingMode.h:
(WebCore::isLeftToRightDirection):
(WebCore::isVerticalWritingMode):
(WebCore::isFlippedWritingMode):
(WebCore::mapLogicalSideToPhysicalSide):
- rendering/HitTestResult.cpp:
(WebCore::HitTestResult::spellingToolTip const):
(WebCore::HitTestResult::title const):
(WebCore::HitTestResult::innerTextIfTruncated const):
- rendering/InlineBox.h:
(WebCore::InlineBox::direction const):
(WebCore::InlineBox::isLeftToRightDirection const):
- rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paintFillLayer):
- rendering/InlineIterator.h:
(WebCore::embedCharFromDirection):
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint):
(WebCore::mirrorRTLSegment):
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::constructTextRun):
- rendering/RenderBlockLineLayout.cpp:
(WebCore::determineDirectionality):
(WebCore::RenderBlockFlow::textAlignmentForLine const):
(WebCore::RenderBlockFlow::updateLogicalWidthForAlignment):
(WebCore::RenderBlockFlow::handleTrailingSpaces):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
- rendering/RenderBox.cpp:
(WebCore::computeInlineStaticDistance):
(WebCore::RenderBox::computePositionedLogicalWidthUsing const):
(WebCore::RenderBox::computePositionedLogicalWidthReplaced const):
- rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
- rendering/RenderFragmentedFlow.cpp:
(WebCore::RenderFragmentedFlow::updateLogicalWidth):
(WebCore::RenderFragmentedFlow::updateFragmentsFragmentedFlowPortionRect):
- rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::shouldPlaceBlockDirectionScrollbarOnLeft const):
- rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::direction const):
- rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::adjustInnerStyle):
(RenderMenuList::clientPaddingLeft const):
(RenderMenuList::clientPaddingRight const):
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::popupInternalPaddingBox const):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintMenuListButtonDecorations):
(WebCore::RenderThemeMac::popupInternalPaddingBox const):
(WebCore::RenderThemeMac::setPopupButtonCellState):
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::paintSearchFieldResultsButton):
- rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::mirrorIfNeeded const):
- rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::layoutBlock):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::isLeftToRightDirection const):
(WebCore::RenderStyle::initialDirection):
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::systemLayoutDirection):
(WebCore::InternalSettings::setSystemLayoutDirection):
- testing/Internals.h:
Source/WebKit:
- Shared/WebPopupItem.cpp:
(WebKit::WebPopupItem::WebPopupItem):
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView webSelectionRectsForSelectionRects:]):
- UIProcess/mac/WebPopupMenuProxyMac.mm:
(WebKit::WebPopupMenuProxyMac::populate):
(WebKit::WebPopupMenuProxyMac::showPopupMenu):
- WebProcess/WebCoreSupport/WebPopupMenu.cpp:
(WebKit::WebPopupMenu::show):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):
Source/WebKitLegacy/ios:
- WebCoreSupport/WebFrameIOS.mm:
(-[WebFrame selectionRectsForCoreRange:]):
- WebCoreSupport/WebVisiblePosition.mm:
(-[WebVisiblePosition textDirection]):
(-[WebVisiblePosition directionIsDownstream:]):
- WebView/WebPDFViewIOS.mm:
(-[WebPDFView _checkPDFTitle]):
Source/WebKitLegacy/mac:
- WebCoreSupport/PopupMenuMac.mm:
(PopupMenuMac::populate):
(PopupMenuMac::show):
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::transitionToCommittedForNewPage):
- WebView/WebFrame.mm:
(-[WebFrame _dispatchDidReceiveTitle:]):
Tools:
- TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp:
(TestWebKitAPI::TEST_F):
- TestWebKitAPI/Tests/WebCore/StringWithDirection.cpp:
(WebCore::operator<<):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/CommandBackForward.mm:
(TEST_F):
- 11:06 AM Changeset in webkit [234807] by
-
- 2 edits in branches/safari-606.1.36.1-branch/Source/WebCore
Cherry-pick r234766. rdar://problem/43240328
CrashTracer: com.apple.WebKit.Storage at WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose
https://bugs.webkit.org/show_bug.cgi?id=188461
<rdar://problem/33555052>
Reviewed by Chris Dumez.
When we try to schedule shutdown for database, we should cancel the timer so no
scheduleShutdownForClose will be running after this.
- Modules/indexeddb/server/UniqueIDBDatabase.cpp: (WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234766 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:06 AM Changeset in webkit [234806] by
-
- 4 edits in branches/safari-606.1.36.1-branch/Source
Cherry-pick r234778. rdar://problem/43240324
[macOS] Multiple third party apps crash due to the thread safety check in TimerBase::setNextFireTime
https://bugs.webkit.org/show_bug.cgi?id=188480
Reviewed by Simon Fraser.
Source/WebCore:
Suppress the release assert in WebKit1 on macOS (isInWebProcess is always true in non-Cocoa platforms).
In the future, we should consider throwing Objective-C exceptions when third party apps call WebKit1
or WebKit2 APIs in non-main threads.
- platform/Timer.cpp: (WebCore::shouldSuppressThreadSafetyCheck): Extracted out of ~TimerBase and setNextFireTime. (WebCore::TimerBase::~TimerBase): (WebCore::TimerBase::setNextFireTime):
Source/WTF:
Added the SDK version for macOS Mojave.
- wtf/spi/darwin/dyldSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234778 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:46 AM Changeset in webkit [234805] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, silence "enumeral and non-enumeral type in conditional expression" warning
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dispatchActivityStateChange):
- 9:46 AM Changeset in webkit [234804] by
-
- 50 edits98 adds in trunk/LayoutTests
[iOS] Rebaseline and re-enable svg tests
https://bugs.webkit.org/show_bug.cgi?id=180459
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- platform/ios/TestExpectations:
[ truncated ]
- 9:39 AM Changeset in webkit [234803] by
-
- 3 edits2 adds in trunk
Followup (r234683): Element::getAttribute() should return the first non-null attribute value
https://bugs.webkit.org/show_bug.cgi?id=188419
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-08-13
Reviewed by Darin Adler.
Source/WebCore:
Element::getAttribute() should return the first non-null attribute value
since an empty string is a legitimate attribute value.
Test: svg/custom/href-svg-namespace-empty.html
- dom/Element.h:
(WebCore::Element::getAttribute const):
LayoutTests:
- svg/custom/href-svg-namespace-empty-expected.txt: Added.
- svg/custom/href-svg-namespace-empty.html: Added.
- 9:21 AM Changeset in webkit [234802] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, since -Wsign-compare warnings in URL.cpp
This regressed in r233798 when m_schemeEnd changed to a bitfield. The code looks safe to
me, so just silence the warnings with casts.
- platform/URL.cpp:
(WebCore::URL::setHost):
(WebCore::URL::setHostAndPort):
(WebCore::URL::setUser):
(WebCore::URL::setPass):
- 8:29 AM Changeset in webkit [234801] by
-
- 16 edits in trunk/Source
Use OptionSet more in editing code
https://bugs.webkit.org/show_bug.cgi?id=188500
Reviewed by Wenson Hsieh.
Typesafe flags.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs):
- editing/Editor.cpp:
(WebCore::TemporarySelectionChange::TemporarySelectionChange):
(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::appliedEditing):
(WebCore::Editor::selectComposition):
(WebCore::Editor::changeSelectionAfterCommand):
(WebCore::Editor::respondToChangedSelection):
- editing/Editor.h:
(WebCore::TemporarySelectionChange::TemporarySelectionChange):
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::moveWithoutValidationTo):
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::setSelectedRange):
- editing/FrameSelection.h:
(WebCore::FrameSelection::defaultSetSelectionOptions):
- editing/MoveSelectionCommand.cpp:
(WebCore::MoveSelectionCommand::doApply):
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand):
- editing/ReplaceSelectionCommand.h:
(WebCore::ReplaceSelectionCommand::create):
- editing/SetSelectionCommand.cpp:
(WebCore::SetSelectionCommand::SetSelectionCommand):
- editing/SetSelectionCommand.h:
(WebCore::SetSelectionCommand::create):
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
- page/DragController.cpp:
(WebCore::DragController::concludeEditDrag):
- page/TextIndicator.cpp:
(WebCore::TextIndicator::createWithRange):
- 7:48 AM Changeset in webkit [234800] by
-
- 12 edits2 adds in trunk
[LFC][Floating] Add basic clearance support
https://bugs.webkit.org/show_bug.cgi?id=188492
Reviewed by Antti Koivisto.
Source/WebCore:
Adjust final position of a block level box with clearance when float is present.
Test: fast/block/block-only/floating-left-and-right-with-clearance.html
- layout/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
(WebCore::Layout::FloatingContext::alignWithContainingBlock const):
(WebCore::Layout::FloatingContext::toContainingBlock const):
(WebCore::Layout::FloatingContext::computePosition const): Deleted.
- layout/FloatingContext.h:
- layout/FloatingState.cpp:
(WebCore::Layout::FloatingState::bottom const):
- layout/FloatingState.h:
(WebCore::Layout::FloatingState::leftBottom const):
(WebCore::Layout::FloatingState::rightBottom const):
(WebCore::Layout::FloatingState::bottom const):
- layout/Verification.cpp:
(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree const):
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layout const):
(WebCore::Layout::BlockFormattingContext::computeFloatingPosition const):
(WebCore::Layout::BlockFormattingContext::computeVerticalPositionWithClearance const):
- layout/blockformatting/BlockFormattingContext.h:
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::hasClearance const):
- layout/layouttree/LayoutBox.h:
Tools:
- LayoutReloaded/misc/LFC-passing-tests.txt:
LayoutTests:
- fast/block/block-only/floating-left-and-right-with-clearance-expected.txt: Added.
- fast/block/block-only/floating-left-and-right-with-clearance.html: Added.
- 6:31 AM Changeset in webkit [234799] by
-
- 5 edits in trunk
Expose CloseEvent and CustomEvent to workers
https://bugs.webkit.org/show_bug.cgi?id=188493
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/workers/semantics/interface-objects/001.worker-expected.txt:
Source/WebCore:
This patch exposes CloseEvent and CustomEvent to workers.
It is OK since they do not depend on things in the main thread.
For example, we cannot expose FormData right now since it depends
on Page.
We do not expose PromiseRejectionEvent in this patch since it will
be done in [1].
[1]: https://bugs.webkit.org/show_bug.cgi?id=188265
- Modules/websockets/CloseEvent.idl:
- dom/CustomEvent.idl:
- 6:18 AM Changeset in webkit [234798] by
-
- 12 edits40 adds in trunk
[css-logical] Implement flow-relative margin, padding, border and sizing properties
https://bugs.webkit.org/show_bug.cgi?id=188386
Patch by Oriol Brufau <Oriol Brufau> on 2018-08-13
Reviewed by Manuel Rego Casasnovas.
These properties provide the author with the ability to control margins
through logical, rather than physical, direction and dimension mappings.
Only longhand properties and border shorthands for specific sides are
implemented as part of this patch.
The existing prefixed properties become aliases of the new ones.
LayoutTests/imported/w3c:
The new tests are imported from the WPT test suite for CSS Logical
Properties and Values spec.
The tests still have some failures because sideways writing modes have
not been implemented yet.
- resources/import-expectations.json:
- web-platform-tests/css/css-logical/META.yml: Added.
- web-platform-tests/css/css-logical/animation-001-expected.txt: Added.
- web-platform-tests/css/css-logical/animation-001.html: Added.
- web-platform-tests/css/css-logical/animation-002-expected.txt: Added.
- web-platform-tests/css/css-logical/animation-002.html: Added.
- web-platform-tests/css/css-logical/animation-003.tentative-expected.txt: Added.
- web-platform-tests/css/css-logical/animation-003.tentative.html: Added.
- web-platform-tests/css/css-logical/cascading-001-expected.html: Added.
- web-platform-tests/css/css-logical/cascading-001.html: Added.
- web-platform-tests/css/css-logical/logical-box-border-color-expected.txt: Added.
- web-platform-tests/css/css-logical/logical-box-border-color.html: Added.
- web-platform-tests/css/css-logical/logical-box-border-shorthands-expected.txt: Added.
- web-platform-tests/css/css-logical/logical-box-border-shorthands.html: Added.
- web-platform-tests/css/css-logical/logical-box-border-style-expected.txt: Added.
- web-platform-tests/css/css-logical/logical-box-border-style.html: Added.
- web-platform-tests/css/css-logical/logical-box-border-width-expected.txt: Added.
- web-platform-tests/css/css-logical/logical-box-border-width.html: Added.
- web-platform-tests/css/css-logical/logical-box-inset-expected.txt: Added.
- web-platform-tests/css/css-logical/logical-box-inset.html: Added.
- web-platform-tests/css/css-logical/logical-box-margin-expected.txt: Added.
- web-platform-tests/css/css-logical/logical-box-margin.html: Added.
- web-platform-tests/css/css-logical/logical-box-padding-expected.txt: Added.
- web-platform-tests/css/css-logical/logical-box-padding.html: Added.
- web-platform-tests/css/css-logical/logical-box-size-expected.txt: Added.
- web-platform-tests/css/css-logical/logical-box-size.html: Added.
- web-platform-tests/css/css-logical/logicalprops-block-size-expected.txt: Added.
- web-platform-tests/css/css-logical/logicalprops-block-size-vlr-expected.txt: Added.
- web-platform-tests/css/css-logical/logicalprops-block-size-vlr.html: Added.
- web-platform-tests/css/css-logical/logicalprops-block-size.html: Added.
- web-platform-tests/css/css-logical/logicalprops-inline-size-expected.txt: Added.
- web-platform-tests/css/css-logical/logicalprops-inline-size-vlr-expected.txt: Added.
- web-platform-tests/css/css-logical/logicalprops-inline-size-vlr.html: Added.
- web-platform-tests/css/css-logical/logicalprops-inline-size.html: Added.
- web-platform-tests/css/css-logical/logicalprops-quirklength-expected.txt: Added.
- web-platform-tests/css/css-logical/logicalprops-quirklength.html: Added.
- web-platform-tests/css/css-logical/resources/test-box-properties.js: Added.
(testCSSValues):
(testComputedValues):
(makeDeclaration):
- web-platform-tests/css/css-logical/resources/w3c-import.log: Added.
- web-platform-tests/css/css-logical/w3c-import.log: Added.
Source/WebCore:
The change in WebCore::isLayoutDependent fixes an existing issue that
made getComputedStyle provide an old value for -webkit-logical-height
and -webkit-logical-height (see https://crbug.com/849855).
Tests: imported/w3c/web-platform-tests/css/css-logical/animation-001.html
imported/w3c/web-platform-tests/css/css-logical/animation-002.html
imported/w3c/web-platform-tests/css/css-logical/animation-003.tentative.html
imported/w3c/web-platform-tests/css/css-logical/cascading-001.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-border-color.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-border-shorthands.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-border-style.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-border-width.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-inset.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-margin.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-padding.html
imported/w3c/web-platform-tests/css/css-logical/logical-box-size.html
imported/w3c/web-platform-tests/css/css-logical/logicalprops-block-size-vlr.html
imported/w3c/web-platform-tests/css/css-logical/logicalprops-block-size.html
imported/w3c/web-platform-tests/css/css-logical/logicalprops-inline-size-vlr.html
imported/w3c/web-platform-tests/css/css-logical/logicalprops-inline-size.html
imported/w3c/web-platform-tests/css/css-logical/logicalprops-quirklength.html
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::isLayoutDependent):
(WebCore::ComputedStyleExtractor::valueForPropertyinStyle):
- css/CSSProperties.json:
- css/CSSProperty.cpp:
(WebCore::CSSProperty::resolveDirectionAwareProperty):
(WebCore::CSSProperty::isDirectionAwareProperty):
- css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue const):
- css/parser/CSSParserFastPaths.cpp:
(WebCore::isSimpleLengthPropertyID):
(WebCore::isColorPropertyID):
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):
- html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::collectStyleForPresentationAttribute):
- rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::computeCollapsedStartBorder const):
(WebCore::RenderTableCell::computeCollapsedEndBorder const):
(WebCore::RenderTableCell::computeCollapsedBeforeBorder const):
(WebCore::RenderTableCell::computeCollapsedAfterBorder const):
- 4:32 AM Changeset in webkit [234797] by
-
- 2 edits41 adds in trunk/LayoutTests
Unreviewed WPE gardening. Cleaned up test expectations for tests under
fast/dom/, unskipping all tests and then adding the failure or timeout
test expectations as appropriate. Missing port-specific baselines are
also included.
- platform/wpe/TestExpectations:
- platform/wpe/fast/dom/: Necessary test expectations added.
- 2:50 AM Changeset in webkit [234796] by
-
- 2 edits in trunk/LayoutTests
Unreviewed WPE gardening.
Removed an unnecessary block of skipped tests that cover WebCrypto API
support for 521-bit EC keys. All these tests pass.
Removed unnecessary pass directives for imported WPT tests. Moved
related flaky or skipped tests into appropriate sections.
Also adjusted a few other expectations, moving them into the appropriate
section or just removing them for being outdated or duplicates.
- platform/wpe/TestExpectations:
- 1:45 AM Changeset in webkit [234795] by
-
- 2 edits in trunk/LayoutTests
Unreviewed WPE gardening. Adopt test expectation sections similar to the
GTK+ TestExpectations file. Sort some test expectations accordingly,
while the rest of the expectations will follow later.
- platform/wpe/TestExpectations:
- 12:15 AM Changeset in webkit [234794] by
-
- 1 copy in releases/WebKitGTK/webkit-2.20.5
WebKitGTK+ 2.20.5
- 12:15 AM Changeset in webkit [234793] by
-
- 4 edits in releases/WebKitGTK/webkit-2.20
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.20.5 release.
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.20.5.
Aug 12, 2018:
- 11:47 PM Changeset in webkit [234792] by
-
- 2 edits in trunk/Source/WebDriver
WebDriver: do not handle prompts that appear while running scripts
https://bugs.webkit.org/show_bug.cgi?id=188468
Reviewed by Žan Doberšek.
This changed in the spec, we should just finish the script without handling the alert at all.
https://github.com/w3c/webdriver/commit/afb578090bc95718debeab6a6821da8d12b952c8
"If at any point during the algorithm a user prompt appears, abort all subsequent substeps of this algorithm,
and return success with data null."
https://w3c.github.io/webdriver/#dfn-execute-a-function-body
- Session.cpp:
(WebDriver::Session::executeScript):
- 11:33 PM Changeset in webkit [234791] by
-
- 8 edits in trunk/Source/WebCore
CrashTracer: com.apple.WebKit.Storage at WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient(WebCore::IDBServer::UniqueIDBDatabaseConnection&)
https://bugs.webkit.org/show_bug.cgi?id=188474
Reviewed by Chris Dumez.
UniqueIDBDatabaseConnection is refcounted by UniqueIDBDatabaseTransaction and it refcounts
UniqueIDBDatabaseTransaction. This cycle could make UniqueIDBDatabaseConnection outlives
UniqueIDBDatabase, so its reference to UniqueIDBDatabase may be stale. Calling a function
on a stale object is probably the reason of recent various storage process crashes in
indexedDB.
This patch makes m_database a WeakPtr and adds assertions that could help us debug the
crashes.
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince):
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins):
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
- Modules/indexeddb/server/UniqueIDBDatabase.h:
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::abortTransactionWithoutCallback):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::confirmDidCloseFromServer):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFireVersionChangeEvent):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFinishHandlingVersionChange):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::createVersionChangeTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::establishTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didAbortTransaction):
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::database):
- Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::abort):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::commit):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getAllRecords):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::openCursor):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::iterateCursor):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::objectStoreIdentifiers):
- Modules/indexeddb/shared/IDBResultData.cpp:
(WebCore::IDBResultData::openDatabaseSuccess):
(WebCore::IDBResultData::openDatabaseUpgradeNeeded):
- 7:48 PM Changeset in webkit [234790] by
-
- 6 edits in trunk
Unreviewed GTK test gardening
WebDriverTests:
- TestExpectations.json:
LayoutTests:
- platform/gtk/TestExpectations:
- platform/gtk/fast/forms/color/input-appearance-color-expected.png:
- platform/gtk/fast/forms/color/input-appearance-color-expected.txt:
- 5:02 PM Changeset in webkit [234789] by
-
- 11 edits1 copy in trunk
Break reference cycle in ErrorEvent by using JSValueInWrappedObject
https://bugs.webkit.org/show_bug.cgi?id=188491
Reviewed by Darin Adler.
Source/WebCore:
ErrorEvent should not use Strong<Unkonwn> to hold error JSValue. This patch integrates
JSValueInWrappedObject into ErrorEvent.
- Modules/webvr/VRDisplayEvent.h:
Fix unified build errors due to added JSErrorEventCustom.cpp. It changes the files grouped in unified build.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSErrorEventCustom.cpp: Copied from Source/WebCore/Modules/webvr/VRDisplayEvent.h.
(WebCore::JSErrorEvent::visitAdditionalChildren):
Add custom mark function for JSValueInWrappedObject.
- bindings/js/JSEventListener.h:
- bindings/js/WindowProxy.cpp:
Fix unified build errors due to added JSErrorEventCustom.cpp. It changes the files grouped in unified build.
- dom/ErrorEvent.cpp:
(WebCore::ErrorEvent::ErrorEvent):
(WebCore::ErrorEvent::error):
(WebCore::ErrorEvent::trySerializeError):
Align the implementation to PushStateEvent::trySerializeState.
- dom/ErrorEvent.h:
- dom/ErrorEvent.idl:
LayoutTests:
- fast/dom/reference-cycle-leaks-expected.txt:
- 1:19 PM Changeset in webkit [234788] by
-
- 28 edits in trunk
[macOS] Color wells should appear pressed when presenting a color picker
https://bugs.webkit.org/show_bug.cgi?id=188477
Reviewed by Tim Horton.
Source/WebCore:
Currently, when clicking on a color well, the color well loses its pressed
appearance once the mouse is lifted. Because of this behavior, the color well
does not appear to be active when the color picker is displayed.
Added the color-well -webkit-appearance value to control the drawing of the color
well separate from other buttons. Also added a new ControlState, named
PresentingState. A control can be in this state whenever it is presenting some
attached view. In the case of the color well this is the color picker. The
Information as to whether a form control is in the presenting state comes from
isPresentingAttachedView() in HTMLInputElement.
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
- css/CSSProperties.json:
- css/CSSValueKeywords.in:
- css/html.css:
(input[type="color"]::-webkit-color-swatch):
- html/ColorInputType.cpp:
(WebCore::ColorInputType::isPresentingAttachedView const):
(WebCore::ColorInputType::elementDidBlur):
(WebCore::ColorInputType::didEndChooser):
- html/ColorInputType.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::isPresentingAttachedView const):
- html/HTMLInputElement.h:
- html/InputType.cpp:
(WebCore::InputType::isPresentingAttachedView const):
- html/InputType.h:
- platform/ControlStates.h:
- platform/ThemeTypes.h:
- platform/mac/ThemeMac.mm:
(WebCore::updateStates):
(WebCore::setUpButtonCell):
(WebCore::paintColorWell):
(WebCore::ThemeMac::minimumControlSize const):
(WebCore::ThemeMac::controlBorder const):
(WebCore::ThemeMac::paint):
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintBorderOnly):
(WebCore::RenderTheme::paintDecorations):
(WebCore::RenderTheme::isControlStyled const):
(WebCore::RenderTheme::extractControlStatesForRenderer const):
(WebCore::RenderTheme::isPresenting const):
- rendering/RenderTheme.h:
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::adjustRepaintRect):
Source/WebInspectorUI:
Add keyword completion for 'color-well'.
- UserInterface/External/CodeMirror/css.js:
- UserInterface/Models/CSSKeywordCompletions.js:
Source/WebKit:
In order for the color well to accurately reflect the state of the picker, it is
necessary to ensure that the picker is destroyed at the appropriate time.
Added windowWillClose and didClosePopover delegate methods to destroy the picker
it has been closed. Also added a call to WebColorPicker::endPicker in
WebColorPickerMac's implementation of endPicker to ensure that the object is
destroyed. Removed redundant calls to endPicker in the WebPageProxy.
The hitTest method was overridden in WKPopoverColorWell to ensure that AppKit's
view does not block our drawn color well from receiving click events.
- UIProcess/WebColorPicker.cpp:
(WebKit::WebColorPicker::endPicker):
- UIProcess/WebColorPicker.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::endColorPicker):
(WebKit::WebPageProxy::didEndColorPicker):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::closeOverlayedViews):
- UIProcess/mac/WebColorPickerMac.mm:
(WebKit::WebColorPickerMac::~WebColorPickerMac):
(WebKit::WebColorPickerMac::endPicker):
(-[WKPopoverColorWell popoverDidClose:]):
(-[WKPopoverColorWell hitTest:]):
(-[WKColorPopoverMac setAndShowPicker:withColor:suggestions:]):
(-[WKColorPopoverMac invalidate]):
(-[WKColorPopoverMac windowWillClose:]):
(-[WKColorPopoverMac didClosePopover]):
LayoutTests:
Rebaseline tests to match new color-well appearance.
- platform/mac/fast/forms/color/input-appearance-color-expected.png:
- platform/mac/fast/forms/color/input-appearance-color-expected.txt:
- 9:36 AM Changeset in webkit [234787] by
-
- 2 edits in trunk/Source/JavaScriptCore
Disable JIT on IA-32 without SSE2
https://bugs.webkit.org/show_bug.cgi?id=188476
Patch by Karo Gyoker <karogyoker2+webkit@gmail.com> on 2018-08-12
Reviewed by Michael Catanzaro.
Including missing header (MacroAssembler.h) in case of other
operating systems than Windows too.
- runtime/Options.cpp:
- 8:46 AM Changeset in webkit [234786] by
-
- 5 edits2 adds in trunk
[LFC] Float prev/next sibling should prevent top/bottom margin collapsing with parent.
https://bugs.webkit.org/show_bug.cgi?id=188487
Reviewed by Antti Koivisto.
Source/WebCore:
Test: fast/block/block-only/floating-and-next-previous-inflow-with-margin.html
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::isMarginTopCollapsedWithParent):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::isMarginBottomCollapsedWithParent):
Tools:
- LayoutReloaded/misc/LFC-passing-tests.txt:
LayoutTests:
- fast/block/block-only/floating-and-next-previous-inflow-with-margin-expected.txt: Added.
- fast/block/block-only/floating-and-next-previous-inflow-with-margin.html: Added.