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

Timeline



Nov 28, 2018:

9:25 PM Changeset in webkit [238661] by Wenson Hsieh
  • 6 edits in trunk

[iOSMac] Dropping text selections from web content into editable elements crashes the web process
https://bugs.webkit.org/show_bug.cgi?id=192113
<rdar://problem/46323701>

Reviewed by Ryosuke Niwa.

Source/WebCore:

In iOSMac, registering invalid UTIs on NSItemProvider when starting a drag or handling a drop does not work.
Since iOS writes and reads only "Apple Web Archive pasteboard type" (a.k.a. WebArchivePboardType) during drag
and drop as well as copy and paste, we fail to read or write any web archive data, and subsequently fall back to
reading RTF or flat RTFD, both of which are not supported in iOSMac, since UIFoundation links against the
system's macOS WebKit stack.

To fix this, we add support for reading and writing com.apple.webarchive (kUTTypeWebArchive) on iOS, so that
WebKit-based iOSMac applications can understand web archive data from the host running macOS, and the host can
also understand web archive data written by the iOSMac app. Additionally, don't allow reading RTF and flat RTFD
as web content in iOSMac. (Note that writing RTF and flat RTFD is still safe, since it does not depend on
UIFoundation.framework but rather WebCore::HTMLConverter).

Test: DragAndDropTests.ModernWebArchiveType

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::createFragment):

Additionally make sure that we never call into UIFoundation's NSAttributedString to markup conversion codepath
by making createFragment an empty stub on iOSMac.

  • platform/ios/PasteboardIOS.mm:

(WebCore::supportedImageTypes):
(WebCore::isTypeAllowedByReadingPolicy):
(WebCore::Pasteboard::readPasteboardWebContentDataForType):
(WebCore::Pasteboard::supportedWebContentPasteboardTypes):

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::write):

Tools:

Add a test to verify that, when dropping an item with both "com.apple.webarchive" and "public.utf8-plain-text"
representations, the higher fidelity web archive data is used when handling the drop.

  • TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:
8:39 PM Changeset in webkit [238660] by Joseph Pecoraro
  • 5 edits in trunk/Source

Web Inspector: REGRESSION(?): all "Show *" develop menu items cause the page to crash
https://bugs.webkit.org/show_bug.cgi?id=192016
<rdar://problem/46284417>

Reviewed by Devin Rousso.

Source/WebInspectorUI:

  • UserInterface/Base/Main.js:

(WI.loaded):
(WI.initializeBackendTarget):
(WI.contentLoaded):
(WI.whenTargetsAvailable):
Don't evaluate any InspectorFrontendAPI commands until the frontend
has initialized a main target and the user interface.

Source/WebKit:

Previously calling the Page's inspectorController.show()
would create a frontend connection on the WebProcess side.
However now the frontend connection is handed to the WebProcess
once the UIProcess creates it. So queue actions that take place
immediately after showing the inspector until we have a frontend
to send the actions to.

  • WebProcess/WebPage/WebInspector.h:
  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::setFrontendConnection):
(WebKit::WebInspector::closeFrontendConnection):
(WebKit::WebInspector::whenFrontendConnectionEstablished):
(WebKit::WebInspector::showConsole):
(WebKit::WebInspector::showResources):
(WebKit::WebInspector::showTimelines):
(WebKit::WebInspector::showMainResourceForFrame):
(WebKit::WebInspector::startPageProfiling):
(WebKit::WebInspector::stopPageProfiling):
(WebKit::WebInspector::startElementSelection):
(WebKit::WebInspector::stopElementSelection):

8:20 PM BuildBot edited by Fujii Hironori
(diff)
8:14 PM Changeset in webkit [238659] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

Consult dummy storage for HTTPS Upgrade, Apply If Appropriate
https://bugs.webkit.org/show_bug.cgi?id=192094
<rdar://problem/45851103> HTTPS Upgrade: Consult dummy storage for HTTPS Upgrade, Apply If Appropriate

Patch by Vivek Seth <v_seth@apple.com> on 2018-11-28
Reviewed by Chris Dumez.

For main page loads upgrade HTTP requests to HTTPS if the hostname belongs to a set of upgradable hostnames.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::applyHTTPSUpgradeIfNeeded):
(WebKit::NetworkLoadChecker::checkRequest):

  • NetworkProcess/NetworkLoadChecker.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::start):

7:54 PM Changeset in webkit [238658] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

REGRESSION (r234980): Crash in -[WKWebView _restorePageStateToUnobscuredCenter:scale:]
https://bugs.webkit.org/show_bug.cgi?id=192127
rdar://problem/44194179

Reviewed by Tim Horton.

_restorePageStateToUnobscuredCenter: could receive an Optional<FloatRect> from the
web process, and unconditionally called .value() even though it may not be engaged.

No repro steps known, so no testcase.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _restorePageStateToUnobscuredCenter:scale:]):

6:55 PM Changeset in webkit [238657] by commit-queue@webkit.org
  • 18 edits
    2 moves in trunk/Source

Unreviewed, rolling out r238653 and r238656.
https://bugs.webkit.org/show_bug.cgi?id=192130

Breaks iOS build (Requested by smfr on #webkit).

Reverted changesets:

"Move Lookup Code for better cross platform usage"
https://bugs.webkit.org/show_bug.cgi?id=191732
https://trac.webkit.org/changeset/238653

"Attempt to fix the iOS build by only including RevealSPI.h
when it's needed."
https://trac.webkit.org/changeset/238656

6:25 PM Changeset in webkit [238656] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Attempt to fix the iOS build by only including RevealSPI.h when it's needed.

  • editing/cocoa/DictionaryLookup.mm:
6:19 PM Changeset in webkit [238655] by achristensen@apple.com
  • 23 edits in trunk/Source

Modernize BlobRegistry::writeBlobsToTemporaryFiles
https://bugs.webkit.org/show_bug.cgi?id=192117

Reviewed by Dean Jackson.

Source/WebCore:

No change in behavior. Just use CompletionHandlers and the new sendWithAsyncReply instead of two way messaging
and manual completion handler management.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):

  • platform/network/BlobRegistry.h:
  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::writeBlobsToTemporaryFiles):

  • platform/network/BlobRegistryImpl.h:

Source/WebKit:

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:

(WebKit::NetworkBlobRegistry::writeBlobsToTemporaryFiles):
(WebKit::NetworkBlobRegistry::writeBlobToFilePath):

  • NetworkProcess/FileAPI/NetworkBlobRegistry.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::writeBlobToFilePath):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/ChildProcessProxy.h:

(WebKit::ChildProcessProxy::sendWithAsyncReply):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::writeBlobToFilePath):
(WebKit::NetworkProcessProxy::didWriteBlobToFilePath): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles):

  • WebProcess/FileAPI/BlobRegistryProxy.h:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles):
(WebKit::NetworkProcessConnection::didWriteBlobsToTemporaryFiles): Deleted.

  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Network/NetworkProcessConnection.messages.in:
6:18 PM Changeset in webkit [238654] by achristensen@apple.com
  • 15 edits
    1 add in trunk/Source/WebKit

Move loadThrottleLatency from NetworkProcessCreationParameters to NetworkSessionCreationParameters
https://bugs.webkit.org/show_bug.cgi?id=192122

Reviewed by Dean Jackson.

This is part of an effort to reduce global variables in the NetworkProcess.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::NetworkLoad):
(WebKit::NetworkLoad::didReceiveResponse):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::loadThrottleLatency const): Deleted.

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::loadThrottleLatency const):

  • NetworkProcess/NetworkSessionCreationParameters.cpp: Added.

(WebKit::NetworkSessionCreationParameters::privateSessionParameters):
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:

(WebKit::NetworkSessionCreationParameters::encode const): Deleted.
(WebKit::NetworkSessionCreationParameters::decode): Deleted.

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

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • Shared/WebsiteDataStoreParameters.cpp:

(WebKit::WebsiteDataStoreParameters::privateSessionParameters):

  • Sources.txt:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • WebKit.xcodeproj/project.pbxproj:
5:41 PM Changeset in webkit [238653] by Megan Gardner
  • 18 edits
    2 moves in trunk/Source

Move Lookup Code for better cross platform usage
https://bugs.webkit.org/show_bug.cgi?id=191732

Reviewed by Alex Christensen.

Source/WebCore:

Not currenlty testable

DictionaryLookup uses Reveal now, which is slated to be cross-platform.
That patch gates the parts of DictionaryLookup that currently do not have
an available implementation on iOS. Once Reveal is ready, this code will be
replaced or expanded upon, as appropriate.

  • editing/mac/DictionaryLookup.h:
  • editing/mac/DictionaryLookup.mm:

(WebCore::showPopupOrCreateAnimationController):
(WebCore::DictionaryLookup::showPopup):
(WebCore::DictionaryLookup::hidePopup):
(WebCore::DictionaryLookup::animationControllerForPopup):

Source/WebCore/PAL:

  • pal/spi/mac/LookupSPI.h:
  • pal/spi/mac/RevealSPI.h:

Source/WebKit:

Lookup is being replaced by Reveal. This framework should work on all platforms.
The patch moves the code that we expect will be needed for all platforms to the more
general cocoa area. This patch changes no funcationality, and should not change
anything currently. This work will be build on later when Reveal is ready to support
multiple platforms.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::performDictionaryLookupAtLocation):
(WebKit::WebPageProxy::performDictionaryLookupOfCurrentSelection):

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView _lookupGestureRecognized:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::performDictionaryLookupAtLocation): Deleted.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::performDictionaryLookupAtLocation): Deleted.
(WebKit::WebPageProxy::performDictionaryLookupOfCurrentSelection): Deleted.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::performDictionaryLookupAtLocation):
(WebKit::WebPage::performDictionaryLookupForSelection):
(WebKit::WebPage::performDictionaryLookupOfCurrentSelection):
(WebKit::WebPage::performDictionaryLookupForRange):
(WebKit::WebPage::dictionaryPopupInfoForRange):

  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::performDictionaryLookupAtLocation): Deleted.
(WebKit::WebPage::performDictionaryLookupForSelection): Deleted.
(WebKit::WebPage::performDictionaryLookupForRange): Deleted.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performDictionaryLookupAtLocation): Deleted.
(WebKit::WebPage::performDictionaryLookupForSelection): Deleted.
(WebKit::WebPage::performDictionaryLookupOfCurrentSelection): Deleted.
(WebKit::WebPage::dictionaryPopupInfoForRange): Deleted.
(WebKit::WebPage::performDictionaryLookupForRange): Deleted.

5:39 PM Changeset in webkit [238652] by chris.reid@sony.com
  • 2 edits in trunk/Source/WebCore

SQLiteDatabase::open is constantly printing "SQLite database failed to checkpoint: database table is locked" errors
https://bugs.webkit.org/show_bug.cgi?id=192111

Reviewed by Alex Christensen.

Ensure the journal_mode=WAL statement is finalized before wal_checkpoint is executed.

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::open):

5:29 PM Changeset in webkit [238651] by commit-queue@webkit.org
  • 3 edits
    8 adds in trunk

Updating href on linearGradient and radialGradient doesn't update its rendering
https://bugs.webkit.org/show_bug.cgi?id=191934

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-11-28
Reviewed by Ryosuke Niwa.

Source/WebCore:

Mark the gradient renderer for repaint when the value of the 'href'
attribute changes.

Tests: fast/shadow-dom/svg-linear-gradient-dynamic-update-href-in-shadow-tree.html

fast/shadow-dom/svg-radial-gradient-dynamic-update-href-in-shadow-tree.html
svg/dynamic-updates/SVGLinearGradientElement-svgdom-href-prop.html
svg/dynamic-updates/SVGRadialGradientElement-svgdom-href-prop.html

  • svg/SVGGradientElement.cpp:

(WebCore::SVGGradientElement::svgAttributeChanged):

LayoutTests:

  • fast/shadow-dom/svg-linear-gradient-dynamic-update-href-in-shadow-tree-expected.html: Added.
  • fast/shadow-dom/svg-linear-gradient-dynamic-update-href-in-shadow-tree.html: Added.
  • fast/shadow-dom/svg-radial-gradient-dynamic-update-href-in-shadow-tree-expected.html: Added.
  • fast/shadow-dom/svg-radial-gradient-dynamic-update-href-in-shadow-tree.html: Added.
  • svg/dynamic-updates/SVGLinearGradientElement-svgdom-href-prop-expected.html: Added.
  • svg/dynamic-updates/SVGLinearGradientElement-svgdom-href-prop.html: Added.
  • svg/dynamic-updates/SVGRadialGradientElement-svgdom-href-prop-expected.html: Added.
  • svg/dynamic-updates/SVGRadialGradientElement-svgdom-href-prop.html: Added.
5:22 PM Changeset in webkit [238650] by mark.lam@apple.com
  • 4 edits in trunk/Source

ENABLE_SEPARATED_WX_HEAP needs to be defined in Platform.h.
https://bugs.webkit.org/show_bug.cgi?id=192110
<rdar://problem/46317746>

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • config.h:

Source/WTF:

Contrary my previous claim in r238564, ENABLE_SEPARATED_WX_HEAP needs to be
defined in Platform.h because it is also needed in WebCore for the CSS JIT. Also
contrary to my previous claim, ENABLE(FAST_JIT_PERMISSIONS) is defined for WebCore
(and other projects) as well as JSC. Hence, there's no reason why
ENABLE_SEPARATED_WX_HEAP cannot be defined in Platform.h.

  • wtf/Platform.h:
5:11 PM Changeset in webkit [238649] by Nikita Vasilyev
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles: enable selection of multiple properties by default
https://bugs.webkit.org/show_bug.cgi?id=192109
<rdar://problem/46323565>

Reviewed by Devin Rousso.

  • UserInterface/Base/Setting.js:
  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
Remove the checkbox.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor .property):
(.spreadsheet-style-declaration-editor :matches(.name, .value):not(.editing)):
(.spreadsheet-style-declaration-editor .property.selected):
(.spreadsheet-style-declaration-editor .property.selected:focus):
(.multiple-properties-selection .spreadsheet-style-declaration-editor .property): Deleted.
(.multiple-properties-selection .spreadsheet-style-declaration-editor :matches(.name, .value):not(.editing)): Deleted.
(.multiple-properties-selection .spreadsheet-style-declaration-editor .property.selected): Deleted.
(.multiple-properties-selection .spreadsheet-style-declaration-editor .property.selected:focus): Deleted.
Remove .multiple-properties-selection class.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown):

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):

  • UserInterface/Views/SpreadsheetTextField.js:

(WI.SpreadsheetTextField):
(WI.SpreadsheetTextField.prototype._handleFocus): Deleted.

4:09 PM Changeset in webkit [238648] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Audit: empty results folder is shown after clearing filters
https://bugs.webkit.org/show_bug.cgi?id=192106

Reviewed by Matt Baker.

  • UserInterface/Views/AuditNavigationSidebarPanel.js:

(WI.AuditNavigationSidebarPanel.prototype.applyFiltersToTreeElement): Added.

2:36 PM Changeset in webkit [238647] by Alan Coon
  • 5 edits in tags/Safari-607.1.15/Source/JavaScriptCore

Revert r238564. rdar://problem/46321015

2:36 PM Changeset in webkit [238646] by Alan Coon
  • 12 edits in tags/Safari-607.1.15

Revert r238597. rdar://problem/46321159

2:24 PM Changeset in webkit [238645] by Alan Coon
  • 1 copy in tags/Safari-607.1.15

Tag Safari-607.1.15.

2:19 PM Changeset in webkit [238644] by aakash_jain@apple.com
  • 1 edit
    1 add in trunk/Tools

[ews-app] Fetch bugs from Bugzilla and submit to Buildbot
https://bugs.webkit.org/show_bug.cgi?id=191947

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-app/ews/fetcher.py: Added.
2:18 PM Changeset in webkit [238643] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ Mojave WK1 ] Layout Test fast/images/animated-image-different-dest-size.html fast/images/animated-image-loop-count.html is failing
https://bugs.webkit.org/show_bug.cgi?id=190383

Unreviewed Test Gardening.

  • platform/mac-wk1/TestExpectations:
2:12 PM Changeset in webkit [238642] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-transceivers.https.html is flaky on iOS simulator
https://bugs.webkit.org/show_bug.cgi?id=192037

Reviewed by Eric Carlson.

The stats report JS map should be created when resolving the stats promise with WebCore RTCStatsReport.
But resolving the promise might fail in case of a page being suspended.
In that case, no JSRTCStatsReport is created and there is no backing map.
Update the code to reflect that.
Covered by existing test.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::getStats):

  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:

(WebCore::LibWebRTCStatsCollector::~LibWebRTCStatsCollector):
(WebCore::LibWebRTCStatsCollector::OnStatsDelivered):

  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.h:
2:12 PM Changeset in webkit [238641] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix iOS API test after r238585
https://bugs.webkit.org/show_bug.cgi?id=192022

  • TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:

(TEST):
On iOS, a safe browsing warning over a WKWebView with frame of {0, 0, 0, 0} has a size of {0, 0}, which is fine.
The test was added to catch a bug on Mac platforms, so testing it only on Mac will catch any regression.

2:11 PM Changeset in webkit [238640] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] Configure python logging
https://bugs.webkit.org/show_bug.cgi?id=192005

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-app/ews/init.py: Configured logging.
2:09 PM Changeset in webkit [238639] by Keith Rollin
  • 12 edits in trunk

Update generate-{derived,unified}-sources scripts to support generating .xcfilelist files
https://bugs.webkit.org/show_bug.cgi?id=192031
<rdar://problem/46286816>

Reviewed by Alex Christensen.

The Generate Derived Sources and Generate Unified Sources build phases
in Xcode need to have their inputs and outputs specified. This
specification will come in the form of .xcfilelist files that will be
attached to these build phases. There is one .xcfilelist file that
lists the input file and one that lists the output files. As part of
this work, the various generate-{derived,unified}-sources scripts that
are executed in these Generate build phases are modified to help in
the creation of these .xcfilelist files. In particular, they can now
be invoked with command-line parameters. These parameters are then
used to alter the normal execution of these scripts, causing them to
produce the .xcfilelist files as opposed to actually generating the
files that are listed in those files.

Source/JavaScriptCore:

  • Scripts/generate-derived-sources.sh:
  • Scripts/generate-unified-sources.sh:

Source/WebCore:

No new tests -- no changed functionality.

  • Scripts/generate-derived-sources.sh:
  • Scripts/generate-unified-sources.sh:

Source/WebKit:

  • Scripts/generate-derived-sources.sh:
  • Scripts/generate-unified-sources.sh:

Tools:

  • DumpRenderTree/Scripts/generate-derived-sources.sh:
  • WebKitTestRunner/Scripts/generate-derived-sources.sh:
2:07 PM Changeset in webkit [238638] by Keith Rollin
  • 2 edits in trunk/Source/WTF

Update generate-unified-source-bundles.rb to generate .xcfilelist files
https://bugs.webkit.org/show_bug.cgi?id=192029
<rdar://problem/46285918>

Reviewed by Alex Christensen.

Update generate-unified-source-bundles.rb to generate output for
.xcfilelist files. These files are used to indicate the sets of input
and output files to Run Script build phases in Xcode. By invoking
generate-unified-source-bundles.rb with -generate-xcfilelists, the
script generates these .xcfilelist files. These .xcfilelist files can
then be used to specify the inputs and outputs of the Generate Unified
Sources build phases.

  • Scripts/generate-unified-source-bundles.rb:
2:07 PM Changeset in webkit [238637] by Keith Rollin
  • 9 edits in trunk

Revert print_all_generated_files work in r238008; tighten up target specifications
https://bugs.webkit.org/show_bug.cgi?id=192025
<rdar://problem/46284301>

Reviewed by Alex Christensen.

In r238008, I added a facility for DerivedSources.make makefiles to
print out the list of files that they generate. This output was used
in the generation of .xcfilelist files used to specify the output of
the associated Generate Derived Sources build phases in Xcode. This
approach worked, but it meant that people would need to follow a
specific convention to keep this mechanism working.

Instead of continuing this approach, I'm going to implement a new
facility based on the output of make when passed the -d flag (which
prints dependency information). This new mechanism is completely
automatic and doesn't need maintainers to follow a convention. To that
end, remove most of the work performed in r238008 that supports the
print_all_generated_files target.

At the same time, it's important for the sets of targets and their
dependencies to be complete and correct. Therefore, also include
changes to bring those up-to-date. As part of that, you'll see
prevalent use of a particular technique. Here's an example:

BYTECODE_FILES = \

Bytecodes.h \
BytecodeIndices.h \
BytecodeStructs.h \
InitBytecodes.asm \

#
BYTECODE_FILES_PATTERNS = $(subst .,%,$(BYTECODE_FILES))

all : $(BYTECODE_FILES)

$(BYTECODE_FILES_PATTERNS): $(wildcard $(JavaScriptCore)/generator/*.rb) $(JavaScriptCore)/bytecode/BytecodeList.rb

...

These lines indicate a set of generated files (those specified in
BYTECODE_FILES). These files are generated by the BytecodeList.rb
tool. But, as opposed to the normal rule where a single foo.output is
generated by foo.input plus some additional dependencies, this rule
produces multiple output files from a tool whose connection to the
output files is not immediately clear. A special approach is needed
where a single rule produces multiple output files. The normal way to
implement this is to use an .INTERMEDIATE target. However, we used
this approach in the past and ran into a problem with it, addressing
it with an alternate approach in r210507. The above example shows this
approach. The .'s in the list of target files are replaced with %'s,
and the result is used as the left side of the dependency rule.

Source/JavaScriptCore:

  • DerivedSources.make:

Source/WebCore:

No new tests -- no changed functionality.

  • DerivedSources.make:

Source/WebKit:

  • DerivedSources.make:

Tools:

  • DumpRenderTree/DerivedSources.make:
  • WebKitTestRunner/DerivedSources.make:
1:59 PM Changeset in webkit [238636] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] Add support to get list of Bugzilla patches needing review
https://bugs.webkit.org/show_bug.cgi?id=191942

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-app/ews/common/bugzilla.py:

(Bugzilla.get_list_of_patches_needing_reviews): Get list of patches needing review.
(BugzillaBeautifulSoup.fetch_attachment_ids_from_review_queue): Copied from Tools/Scripts/webkitpy/common/net/bugzilla/bugzilla.py
(BugzillaBeautifulSoup._load_query): Ditto.
(BugzillaBeautifulSoup._parse_attachment_ids_request_query): Ditto.

1:55 PM Changeset in webkit [238635] by dbates@webkit.org
  • 6 edits
    1 add in trunk

[iOS] Page not defocused when Find-in-page becomes first responder
https://bugs.webkit.org/show_bug.cgi?id=192084
<rdar://problem/46146777>

Reviewed by Tim Horton.

Source/WebKit:

When -becomeFirstResponder and -resignFirstResponder is called the page should become focused
and defocused, respectively. WebKit adjusts it behavior depending on whether it knows it has
focus. This includes decisions about whether to allow an element to be focused. We need to
ensure that WebKit knows whether the web view is focused for it to make good decisions.

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::isViewFocused): Check if the content view is the first responder and
hence is accepting keyboard input. Note that picture-in-picture views do not accept keyboard
input.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView becomeFirstResponderForWebView]): Update activity state when the view
becomes focused.
(-[WKContentView resignFirstResponderForWebView]): Update activity state when the view
becomes defocused.

Tools:

Add tests for both Mac and iOS to ensure that when finding a string on the page
that we do not start an input session if a match is found in an <input> and the
WKWebView is not the first responder.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewFindString.mm: Added.

(-[WKWebViewFindStringInputDelegate _webView:didStartInputSession:]):
(-[WKWebViewFindStringFindDelegate findString]):
(-[WKWebViewFindStringFindDelegate _webView:didCountMatches:forString:]):
(-[WKWebViewFindStringFindDelegate _webView:didFindMatches:forString:withMatchIndex:]):
(-[WKWebViewFindStringFindDelegate _webView:didFailToFindString:]):
(returnNo):
(returnYes):
(viewIsFirstResponder):
(TestWebKitAPI::TEST):

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::PlatformWebView::PlatformWebView): Make the view the first responder before the
window key. This matches the ordering used in PlatformWebView::focus(). No behavior change.

1:49 PM Changeset in webkit [238634] by aakash_jain@apple.com
  • 1 edit
    3 adds in trunk/Tools

[ews-app] Add BeautifulSoup
https://bugs.webkit.org/show_bug.cgi?id=191994

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-app/ews/thirdparty: Added.
  • BuildSlaveSupport/ews-app/ews/thirdparty/BeautifulSoup.py: Added.
  • BuildSlaveSupport/ews-app/ews/thirdparty/init.py: Added.
1:14 PM Changeset in webkit [238633] by achristensen@apple.com
  • 24 edits
    1 delete in trunk/Source

Remove dead code from an earlier attempt at implementing safe browsing
https://bugs.webkit.org/show_bug.cgi?id=192067

Reviewed by Chris Dumez.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • loader/EmptyClients.cpp:

(WebCore::EmptyFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::setShouldSkipSafeBrowsingCheck): Deleted.
(WebCore::FrameLoadRequest::shouldSkipSafeBrowsingCheck): Deleted.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadArchive):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::loadPostRequest):

  • loader/FrameLoader.h:

(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::loadWithNavigationAction):

  • loader/FrameLoaderClient.h:
  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

  • loader/PolicyChecker.h:
  • loader/ShouldSkipSafeBrowsingCheck.h: Removed.

Source/WebKit:

  • Shared/LoadParameters.cpp:

(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):

  • Shared/LoadParameters.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadAlternateHTML):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebCoreSupport/WebFrameLoaderClient.h:
1:11 PM Changeset in webkit [238632] by achristensen@apple.com
  • 16 edits in trunk/Source/WebCore

Add SessionIDs wherever BlobURLs are used in SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=192062

Reviewed by Dean Jackson.

Just adding infrastructure for fixing "the blob bug"

  • Modules/indexeddb/IDBDatabaseIdentifier.cpp:

(WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
(WebCore::IDBDatabaseIdentifier::isolatedCopy const):

  • Modules/indexeddb/IDBDatabaseIdentifier.h:

(WebCore::IDBDatabaseIdentifier::hash const):
(WebCore::IDBDatabaseIdentifier::sessionID const):
(WebCore::IDBDatabaseIdentifier::encode const):
(WebCore::IDBDatabaseIdentifier::decode):

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::putOrAddOnServer):

  • Modules/indexeddb/IDBValue.cpp:

(WebCore::IDBValue::IDBValue):
(WebCore::IDBValue::setAsIsolatedCopy):

  • Modules/indexeddb/IDBValue.h:

(WebCore::IDBValue::sessionID const):
(WebCore::IDBValue::encode const):
(WebCore::IDBValue::decode):

  • Modules/indexeddb/server/MemoryIndexCursor.cpp:

(WebCore::IDBServer::MemoryIndexCursor::currentData):

  • Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:

(WebCore::IDBServer::MemoryObjectStoreCursor::currentData):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::getBlobRecordsForObjectStoreRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllObjectStoreRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::deserializeIDBValueToJSValue):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize):
(WebCore::CloneSerializer::CloneSerializer):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::deserialize):
(WebCore::CloneDeserializer::CloneDeserializer):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::deserialize):
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously):

  • bindings/js/SerializedScriptValue.h:

(WebCore::SerializedScriptValue::sessionID const):

1:09 PM Changeset in webkit [238631] by aakash_jain@apple.com
  • 2 edits
    2 adds in trunk/Tools

[ews-app] Add support to download Patch from Bugzilla
https://bugs.webkit.org/show_bug.cgi?id=191943

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-app/ews/common/bugzilla.py: Added.

(Bugzilla.retrieve_attachment): Retreives the attachment from Bugzilla and saves to disk.
(Bugzilla._fetch_attachment_json):
(Bugzilla.file_path_for_patch):

  • BuildSlaveSupport/ews-app/ews/common/util.py: Added.

(fetch_data_from_url): Method to fetch data from given url.

  • BuildSlaveSupport/ews-app/ews/config.py:
1:09 PM Changeset in webkit [238630] by achristensen@apple.com
  • 15 edits in trunk/Source/WebKit

Move logCookieInformation bool from NetworkProcess to NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=192049

Reviewed by Chris Dumez.

Part of an effort to remove globals in the NetworkProcess.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::shouldLogCookieInformation const): Deleted.

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::sendResultForCacheEntry):
(WebKit::NetworkResourceLoader::shouldLogCookieInformation):
(WebKit::NetworkResourceLoader::logCookieInformation const):
(WebKit::logBlockedCookieInformation):
(WebKit::logCookieInformationInternal):
(WebKit::NetworkResourceLoader::logCookieInformation):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::logCookieInformation const):

  • NetworkProcess/NetworkSessionCreationParameters.h:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

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

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

12:53 PM Changeset in webkit [238629] by Justin Fan
  • 16 edits
    12 copies
    3 adds in trunk

[WebGPU] Begin implementation of WebGPURenderPassEncoder and barebones WebGPURenderPassDescriptor
https://bugs.webkit.org/show_bug.cgi?id=191990

Reviewed by Dean Jackson.

Source/WebCore:

Begin implementation of WebGPURenderPassEncoder and its parent interface, WebGPUProgrammablePassEncoder.
Also add code to allow creation of a primitive WebGPURenderPassDescriptor with the sole purpose of providing
a WebGPUTextureView reference to the render pass creation function, WebGPUCommandBuffer::beginRenderPass().

Test: webgpu/render-passes.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/webgpu/WebGPUCommandBuffer.cpp:

(WebCore::WebGPUCommandBuffer::WebGPUCommandBuffer):
(WebCore::WebGPUCommandBuffer::beginRenderPass): Added. Returns a WebGPURenderPassEncoder upon success.

  • Modules/webgpu/WebGPUCommandBuffer.h:
  • Modules/webgpu/WebGPUCommandBuffer.idl:
  • Modules/webgpu/WebGPUProgrammablePassEncoder.cpp: Added.
  • Modules/webgpu/WebGPUProgrammablePassEncoder.h: Added.
  • Modules/webgpu/WebGPUProgrammablePassEncoder.idl: Added. Empty (for now) interface parenting WebGPURenderPassEncoder.
  • Modules/webgpu/WebGPURenderPassDescriptor.h:
  • Modules/webgpu/WebGPURenderPassDescriptor.idl: Added. Directly handles a WebGPUTextureView attachment; all other color attachment properties set by implementation for now.
  • Modules/webgpu/WebGPURenderPassEncoder.cpp: Added.

(WebCore::WebGPURenderPassEncoder::create):
(WebCore::WebGPURenderPassEncoder::WebGPURenderPassEncoder):
(WebCore::WebGPURenderPassEncoder::passEncoder const):

  • Modules/webgpu/WebGPURenderPassEncoder.h: Added. Interface to GPURenderPassEncoder.
  • Modules/webgpu/WebGPURenderPassEncoder.idl: Added. Allows WebGPU developer to encode commands for the WebGPUCommandBuffer.
  • Modules/webgpu/WebGPUTextureView.cpp:

(WebCore::WebGPUTextureView::WebGPUTextureView):

  • Modules/webgpu/WebGPUTextureView.h:

(WebCore::WebGPUTextureView::texture):

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • platform/graphics/gpu/GPUCommandBuffer.h:

(WebCore::GPUCommandBuffer::platformCommandBuffer const):

  • platform/graphics/gpu/GPUProgrammablePassEncoder.h: Added. Base class for GPURenderPassEncoder.
  • platform/graphics/gpu/GPURenderPassDescriptor.h: Added.
  • platform/graphics/gpu/GPURenderPassEncoder.h: Added. Wrapper class for MTLRenderCommandEncoder.
  • platform/graphics/gpu/GPUTexture.h:

(WebCore::GPUTexture::platformTexture const):

  • platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm: Added.
  • platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm: Added.

(WebCore::GPURenderPassEncoder::create): Creates the backing MTLRenderCommandEncoder; returns null if this fails.
(WebCore::GPURenderPassEncoder::GPURenderPassEncoder):
(WebCore::GPURenderPassEncoder::~GPURenderPassEncoder): End encoding before destroying the MTLCommandEncoder to prevent an exception.
(WebCore::GPURenderPassEncoder::platformPassEncoder const):

LayoutTests:

Add tests to ensure proper WebGPURenderPassEncoder creation. To be updated as WebGPURenderPassDescriptor is updated.

  • webgpu/js/basic-webgpu-functions.js:

(render):

  • webgpu/render-passes-expected.txt: Added.
  • webgpu/render-passes.html: Added.
12:28 PM Changeset in webkit [238628] by commit-queue@webkit.org
  • 9 edits in trunk

[XHR] Document.lastModified doesn't work for non-rendered documents
https://bugs.webkit.org/show_bug.cgi?id=179375

Patch by Rob Buis <rbuis@igalia.com> on 2018-11-28
Reviewed by Alexey Proskuryakov.

LayoutTests/imported/w3c:

  • web-platform-tests/xhr/responsexml-document-properties-expected.txt:

Source/WebCore:

Add setOverrideLastModified to override last modified date for
standalone Documents.

Behavior matches Firefox and Chrome.

Test: web-platform-tests/xhr/responsexml-document-properties.htm

  • dom/Document.cpp:

(WebCore::Document::overrideLastModified):
(WebCore::Document::lastModified const): no need to test m_frame since that's already done in loader().
(WebCore::Document::lastModified): Deleted.

  • dom/Document.h:
  • xml/XMLHttpRequest.cpp:

LayoutTests:

Unskip responsexml-document-properties.htm since the dynamic message is gone.

12:12 PM Changeset in webkit [238627] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] Add methods to update Patch fields
https://bugs.webkit.org/show_bug.cgi?id=191931

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-app/ews/models/patch.py:

(Patch.set_sent_to_buildbot):
(Patch.set_bug_id):
(Patch.set_obsolete):

11:47 AM Changeset in webkit [238626] by Matt Baker
  • 11 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove unused DataGrid and TreeOutline code
https://bugs.webkit.org/show_bug.cgi?id=191622
<rdar://problem/46052014>

Reviewed by Devin Rousso.

  • UserInterface/Views/CanvasDetailsSidebarPanel.js:

(WI.CanvasDetailsSidebarPanel.prototype.initialLayout):

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype.insertChildElement):

  • UserInterface/Views/DOMTreeOutline.js:

(WI.DOMTreeOutline):
(WI.DOMTreeOutline.prototype.update):

  • UserInterface/Views/DataGrid.js:

(WI.DataGrid.prototype.removeChildrenRecursive): Deleted.

  • UserInterface/Views/DataGridNode.js:

(WI.DataGridNode.prototype.removeChildren):
(WI.DataGridNode.prototype.removeChildrenRecursive): Deleted.

  • UserInterface/Views/ErrorObjectView.css:

(.error-object:not(.expanded) .content):
(.error-object .content):
(.error-object:not(.expanded) .tree-outline): Deleted.
(.error-object .tree-outline): Deleted.

  • UserInterface/Views/ErrorObjectView.js:

(WI.ErrorObjectView):
(WI.ErrorObjectView.prototype.get treeOutline): Deleted.
Use a simple container since TreeOutline features aren't used,
and remove unused property treeOutline.

  • UserInterface/Views/RecordingTraceDetailsSidebarPanel.js:

(WI.RecordingTraceDetailsSidebarPanel):

  • UserInterface/Views/TreeElement.js:

(WI.TreeElement.prototype.removeChildren):
(WI.TreeElement.prototype.removeChildrenRecursive): Deleted.

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline):
(WI.TreeOutline.prototype.removeChildrenRecursive): Deleted.
(WI.TreeOutline.prototype.reattachIfIndexChanged): Deleted.
Removed element parameter now that the only use case has been removed.

11:05 AM Changeset in webkit [238625] by Ryan Haddad
  • 3 edits in trunk/Source/WebKit

Unreviewed, rolling out r238620.

Broke internal builds again.

Reverted changeset:

"Remove @no-unify of InjectedBundleRangeHandle.cpp and
InjectedBundleNodeHandle.cpp"
https://bugs.webkit.org/show_bug.cgi?id=191853
https://trac.webkit.org/changeset/238620

10:56 AM Changeset in webkit [238624] by fred.wang@free.fr
  • 2 edits in trunk/LayoutTests

[iOS Simulator Release WK2] media/no-fullscreen-when-hidden.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=192088

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2018-11-28

  • platform/ios-wk2/TestExpectations: Mark media/no-fullscreen-when-hidden.html as flaky.
10:50 AM Changeset in webkit [238623] by commit-queue@webkit.org
  • 22 edits
    4 adds in trunk

Allow WebKit clients to specify a minimum effective width for layout.
https://bugs.webkit.org/show_bug.cgi?id=191499
<rdar://problem/45362678>

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2018-11-28
Reviewed by Wenson Hsieh.

Source/WebCore:

If we ignore the meta viewport (_shouldIgnoreMetaViewport is true), the default layout width will be device
width. For clients that wish to lay out the content with a different width value, we would need to add a way
to specify the effective width for layout.

Tests: fast/viewport/ios/ipad/viewport-overriden-by-minimum-effective-width-if-ignore-meta-viewport.html

fast/viewport/ios/ipad/viewport-unchanged-by-minimum-effective-width-if-not-ignore-meta-viewport.html

  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::setViewLayoutSize): Add a new argument effectiveWidth.
(WebCore::ViewportConfiguration::nativeWebpageParameters): Make sure minimumScale for nativeWebpageParameters

is small enough so that it won't clamp out the initial scale. If content is wider than the viewport, this
ensures we can still zoom out the page.

(WebCore::ViewportConfiguration::updateConfiguration): update _minimumEffectiveDeviceWidth and apply that to

the layout size scale computation.

(WebCore::ViewportConfiguration::effectiveLayoutSizeScaleFactor): A helper method to return the effective

layout scale factor which is also effected by _minimumEffectiveDeviceWidth.

(WebCore::ViewportConfiguration::updateMinimumLayoutSize): Update m_minimumLayoutSize based on effectiveLayoutSizeScaleFactor().
(WebCore::ViewportConfiguration::description const): Also dump m_minimumEffectiveDeviceWidth.

  • page/ViewportConfiguration.h: Add a member variable m_minimumEffectiveDeviceWidth.

Source/WebKit:

If we ignore the meta viewport (_shouldIgnoreMetaViewport is true), the default layout width will be device
width. For clients that wish to lay out the content with a different width value, we would need to add a way
to specify the effective width for layout.

  • UIProcess/API/Cocoa/WKWebView.mm: Add an iVar _minimumEffectiveDeviceWidth.

(-[WKWebView _dispatchSetViewLayoutSize:]): Call the new setViewportConfigurationViewLayoutSize method.
(-[WKWebView _setViewScale:]): Ditto.
(-[WKWebView _setMinimumEffectiveWidth:]): The setter for _minimumEffectiveDeviceWidth.
(-[WKWebView _minimumEffectiveWidth]): Getter for _minimumEffectiveDeviceWidth

  • UIProcess/API/Cocoa/WKWebViewPrivate.h: Add a property _minimumEffectiveDeviceWidth to WKWebView.
  • UIProcess/WebPageProxy.h: Change setViewportConfigurationViewLayoutSize to take another argument minimumEffectiveDeviceWidth.
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::setViewportConfigurationViewLayoutSize): Also send effectiveWidth to WebContent process.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage): Set the initial effective width to 0 when creating a web page, this tells ViewportConfiguration

to ignore the minimum effective width value.

  • WebProcess/WebPage/WebPage.h: Change setViewportConfigurationViewLayoutSize to take another argument effectiveWidth.
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::setViewportConfigurationViewLayoutSize): Also pass effectiveWidth value to ViewportConfiguration.

Tools:

Allow UIScriptController to set WKWebView's minimum effective width with a new setMinimumEffectiveWidth method.

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::setMinimumEffectiveWidth):

  • DumpRenderTree/mac/UIScriptControllerMac.mm:

(WTR::UIScriptController::setViewScale):
(WTR::UIScriptController::setMinimumEffectiveWidth):

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::setMinimumEffectiveWidth):

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/UIScriptControllerCocoa.mm:

(WTR::UIScriptController::setMinimumEffectiveWidth):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::cocoaResetStateToConsistentValues):

LayoutTests:

Add two new tests. The first test verifies if we ignore meta viewport, setting a different effective width value
will change the layout width of the page. The second test verifies if we don't ignore meta viewport, we will always
respect that (980pt) and setting a different effective width value won't change the layout width.

  • fast/viewport/ios/ipad/viewport-overriden-by-minimum-effective-width-if-ignore-meta-viewport-expected.txt: Added.
  • fast/viewport/ios/ipad/viewport-overriden-by-minimum-effective-width-if-ignore-meta-viewport.html: Added.
  • fast/viewport/ios/ipad/viewport-unchanged-by-minimum-effective-width-if-not-ignore-meta-viewport-expected.txt: Added.
  • fast/viewport/ios/ipad/viewport-unchanged-by-minimum-effective-width-if-not-ignore-meta-viewport.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.setMinimumEffectiveWidth): Add a helper method to set the minimum effective width from a test.
(window.UIHelper):

10:24 AM Changeset in webkit [238622] by stephan.szabo@sony.com
  • 4 edits in trunk/Source/WebCore

Make generic EventHandler methods
https://bugs.webkit.org/show_bug.cgi?id=192032

Reviewed by Michael Catanzaro.

No new tests. No new behavior.

Move mostly generic for non-Apple platform implementations
of methods from EventHandlerGlib into EventHandler. Two
of these also had different Windows implementations, so
to limit behavior change from this, those are currently
overridden for Windows as well as Mac and IOS.

  • page/EventHandler.cpp:

(WebCore::EventHandler::passMousePressEventToSubframe):
(WebCore::EventHandler::passMouseReleaseEventToSubframe):
(WebCore::EventHandler::widgetDidHandleWheelEvent):
(WebCore::EventHandler::tabsToAllFormControls const):
(WebCore::EventHandler::passWidgetMouseDownEventToWidget):
(WebCore::EventHandler::passMouseDownEventToWidget):
(WebCore::EventHandler::focusDocumentView):
(WebCore::EventHandler::eventActivatedView const):
(WebCore::EventHandler::passMouseMoveEventToSubframe):

  • page/win/EventHandlerWin.cpp:

(WebCore::EventHandler::passMouseMoveEventToSubframe):
(WebCore::EventHandler::passMousePressEventToSubframe): Deleted.
(WebCore::EventHandler::passMouseReleaseEventToSubframe): Deleted.
(WebCore::EventHandler::widgetDidHandleWheelEvent): Deleted.
(WebCore::EventHandler::tabsToAllFormControls const): Deleted.
(WebCore::EventHandler::focusDocumentView): Deleted.
(WebCore::EventHandler::passWidgetMouseDownEventToWidget): Deleted.
(WebCore::EventHandler::accessKeyModifiers): Deleted.

  • platform/glib/EventHandlerGLib.cpp:

(WebCore::EventHandler::tabsToAllFormControls const): Deleted.
(WebCore::EventHandler::focusDocumentView): Deleted.
(WebCore::EventHandler::passWidgetMouseDownEventToWidget): Deleted.
(WebCore::EventHandler::passMouseDownEventToWidget): Deleted.
(WebCore::EventHandler::eventActivatedView const): Deleted.
(WebCore::EventHandler::widgetDidHandleWheelEvent): Deleted.
(WebCore::EventHandler::passMousePressEventToSubframe): Deleted.
(WebCore::EventHandler::passMouseMoveEventToSubframe): Deleted.
(WebCore::EventHandler::passMouseReleaseEventToSubframe): Deleted.
(WebCore::EventHandler::accessKeyModifiers): Deleted.

10:16 AM Changeset in webkit [238621] by Alan Coon
  • 7 edits in branches/safari-606-branch/Source

Versioning.

10:16 AM Changeset in webkit [238620] by Fujii Hironori
  • 3 edits in trunk/Source/WebKit

Remove @no-unify of InjectedBundleRangeHandle.cpp and InjectedBundleNodeHandle.cpp
https://bugs.webkit.org/show_bug.cgi?id=191853

Reviewed by Michael Catanzaro.

In r235845, I excluded InjectedBundleRangeHandle.cpp and
InjectedBundleNodeHandle.cpp from unify source builds in order to
work around a MSVC bug.

Then, I commited a different workaround for the MSVC bug in
r238386. Now, we can include InjectedBundleRangeHandle.cpp and
InjectedBundleNodeHandle.cpp in unified source builds. Revert
r235845.

  • Sources.txt: Removed @no-unify of InjectedBundleRangeHandle.cpp

and InjectedBundleNodeHandle.cpp

  • WebKit.xcodeproj/project.pbxproj: Unchecked Target Membership

not to be compiled by XCode.

10:05 AM Changeset in webkit [238619] by Michael Catanzaro
  • 3 edits in trunk

[CMake] Automatically disable JIT and enable USE_SYSTEM_MALLOC on unfamiliar architectures
https://bugs.webkit.org/show_bug.cgi?id=186722

Reviewed by Žan Doberšek.

Time for part #2! This change was defeated for GTK and WPE by the code that makes the
options public. We have three options: (a) duplicate the architecture check currently in
WebKitFeatures.cmake in both OptionsGTK.cmake and OptionsWPE.cmake, (b) rely on the result
of that check in OptionsGTK.cmake and OptionsWPE.cmake by using ENABLE_JIT_DEFAULT and
USE_SYSTEM_MALLOC_DEFAULT, a fragile encapsulation violation, or (c) just make the options
private. They have been public up until now because they needed to be turned off on
unsupported architectures. But now they are off by default and enabled only for particular
whitelisted architectures, so they shouldn't be needed anymore.

Note we have to hide ENABLE_SAMPLING_PROFILER as well, since it needs to match the value of
ENABLE_JIT. Again, this is handled properly in WebKitFeatures.cmake, and defeated here in
OptionsGTK.cmake. (This is not a problem for WPE.)

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
9:52 AM Changeset in webkit [238618] by Lucas Forschler
  • 2 edits in trunk/Tools

Fix webkitbot hi command.
https://bugs.webkit.org/show_bug.cgi?id=192080

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/tool/bot/irc_command.py:

(Hi.execute):

9:51 AM Changeset in webkit [238617] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

Web Inspector: REGRESSION(r238378): reloading WebInspector after a settings change doesn't re-show WebInspector
https://bugs.webkit.org/show_bug.cgi?id=191971

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-11-28
Reviewed by Matt Baker.

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::reopen): Deleted.

  • WebProcess/WebPage/WebInspector.h:
  • WebProcess/WebPage/WebInspector.messages.in:

Move reopen out of the WebProcess...

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::reopen):

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/WebInspectorProxy.messages.in:

And into the UIProcess where the order of messages won't
be as problematic.

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::reopen):
Send a message to the WebInspectorProxy instead.

9:33 AM Changeset in webkit [238616] by Kocsen Chung
  • 7 edits in trunk/Source

Versioning.

9:28 AM Changeset in webkit [238615] by ap@apple.com
  • 4 edits in trunk/Source

Remove another OS version check from NetworkDataTaskCocoa.mm
https://bugs.webkit.org/show_bug.cgi?id=192046

Reviewed by Alex Christensen.

Source/WebKit:

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::statelessCookieStorage):

Source/WTF:

  • wtf/Platform.h:
9:19 AM Changeset in webkit [238614] by ap@apple.com
  • 6 edits in trunk/Source

Modernize version checks for same site cookie support
https://bugs.webkit.org/show_bug.cgi?id=192054

Reviewed by Tim Horton.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::updateTaskWithFirstPartyForSameSiteCookies):

Also removed runtime checks, which are no longer relevant.

Source/WTF:

  • wtf/Platform.h:
9:17 AM Changeset in webkit [238613] by Alan Bujtas
  • 5 edits in trunk

[LFC][Quirk] Use non-collapsed vertical margin values when the container is stretched to the size of the ICB.
https://bugs.webkit.org/show_bug.cgi?id=192078

Reviewed by Antti Koivisto.

Source/WebCore:

This quirk happens when the body height is 0 which means its vertical margins collapse through (top and bottom margins are adjoining).
However now that we stretch the body they don't collapse through anymore, so we need to use the non-collapsed values instead.

  • layout/LayoutUnits.h:

(WebCore::Layout::HeightAndMargin::usedMarginValues const):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::stretchHeightToInitialContainingBlock):

Tools:

  • LayoutReloaded/misc/LFC-passing-tests.txt:
8:50 AM Changeset in webkit [238612] by Keith Rollin
  • 2 edits in trunk/Source/JavaScriptCore

Remove Postprocess Headers dependencies
https://bugs.webkit.org/show_bug.cgi?id=192023
<rdar://problem/46283377>

Reviewed by Mark Lam.

JavaScriptCore's Xcode Postprocess Headers build phase used to have a
dependency on a specific handful of files. In r234227, the script used
in this phase (postprocess-headers.sh) was completely rewritten to
operate on *all* files in JSC's Public and Private headers directories
instead of just this handful. This rewrite makes the previous
dependency specification insufficient, leading to incorrect
incremental builds if the right files weren't touched. Address this by
removing the dependencies completely. This will cause
postprocess-headers.sh to always be executed, even when none of its
files are touch. Running this script all the time is OK, since it has
built-in protections against unnecessarily touching files that haven't
changed.

7:30 AM Changeset in webkit [238611] by Alan Bujtas
  • 5 edits in trunk

[LFC] Add support for quirk container's collapsing top margin in quirks mode.
https://bugs.webkit.org/show_bug.cgi?id=192070

Reviewed by Antti Koivisto.

Source/WebCore:

In quirk mode when the top margin collapsing is computed for a quirk container (body, table cell) and the canditate margin value is
also a quirk value, we just ignore it.

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::isQuirkContainer):
(WebCore::Layout::hasMarginTopQuirkValue):
(WebCore::Layout::shouldIgnoreMarginTopInQuirkContext):
(WebCore::Layout::isMarginTopCollapsedWithParent):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginTop):

  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::isTableCell const):

Tools:

  • LayoutReloaded/misc/LFC-passing-tests.txt:
7:06 AM Changeset in webkit [238610] by ajuma@chromium.org
  • 3 edits
    2 adds in trunk

Intersection Observer: rootMargin: gives weird results
https://bugs.webkit.org/show_bug.cgi?id=191975

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Add test coverage.

  • web-platform-tests/intersection-observer/empty-root-margin-expected.txt: Added.
  • web-platform-tests/intersection-observer/empty-root-margin.html: Added.

Source/WebCore:

When converting the rootMargin string into a LengthBox, explicitly construct a Length
of size 0px for each dimension, instead of using Length's default constructor. The
default constructor creates a Length with value Auto, which causes us to incorrectly
apply a non-zero rootMargin.

Test: imported/w3c/web-platform-tests/intersection-observer/empty-root-margin.html

  • page/IntersectionObserver.cpp:

(WebCore::parseRootMargin):

6:56 AM Changeset in webkit [238609] by commit-queue@webkit.org
  • 6 edits
    1 add in trunk

[WebRTC][GStreamer] Make sure to have the default microphone on the top of the list
https://bugs.webkit.org/show_bug.cgi?id=192026

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-11-28
Reviewed by Philippe Normand.

Otherwise we might end up picking a useless one in some applications
(not sure what those application do though).

GStreamer patch proposed as https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/merge_requests/34/diffs

Source/WebCore:

  • platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.cpp:

(WebCore::sortDevices):
(WebCore::GStreamerCaptureDeviceManager::addDevice):
(WebCore::GStreamerCaptureDeviceManager::refreshCaptureDevices):

  • platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.h:

Tools:

  • flatpak/org.webkit.CommonModules.yaml:
  • gstreamer/jhbuild.modules:
  • gstreamer/patches/gst-plugins-good-0014-pulse-Mark-default-devices-as-default.patch: Added.
5:50 AM Changeset in webkit [238608] by tpopela@redhat.com
  • 2 edits in trunk/Tools

[GTK] Silence compilation warnings in glib unittests
https://bugs.webkit.org/show_bug.cgi?id=192009

Reviewed by Michael Catanzaro.

Mark the destructor as virtual.

  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::~Test):

4:51 AM Changeset in webkit [238607] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WebRTC][GStreamer] Tag all cameras with as 'Unknown' facing mode
https://bugs.webkit.org/show_bug.cgi?id=192028

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-11-28
Reviewed by Philippe Normand.

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:

(WebCore::GStreamerVideoCaptureSource::capabilities):

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

[WebRTC][GStreamer] Use a GUniquePtr to hold the GstAudioConverter in our OutgoingAudioSource
https://bugs.webkit.org/show_bug.cgi?id=192027

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-11-28
Reviewed by Xabier Rodriguez-Calvar.

Cleaning up a bit the code.

It is a minor refactoring, no new test required.

  • platform/graphics/gstreamer/GUniquePtrGStreamer.h:
  • platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp:

(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::~RealtimeOutgoingAudioSourceLibWebRTC):
(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::audioSamplesAvailable):
(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::pullAudioData):

  • platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.h:
4:40 AM Changeset in webkit [238605] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer][WebRTC] Do not run device monitor for device type we do not handle
https://bugs.webkit.org/show_bug.cgi?id=191904

This is useless work and it throws warning about use GstDeviceMonitor without filters.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-11-28
Reviewed by Philippe Normand.

  • platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.cpp:

(WebCore::GStreamerCaptureDeviceManager::refreshCaptureDevices):

12:28 AM Changeset in webkit [238604] by rwlbuis@webkit.org
  • 5 edits in trunk

Block more ports (427, 548, 6697)
https://bugs.webkit.org/show_bug.cgi?id=186092

Reviewed by Frédéric Wang.

Update request-bad-port.html to latest version.

  • web-platform-tests/fetch/api/request/request-bad-port-expected.txt:
  • web-platform-tests/fetch/api/request/request-bad-port.html:

Nov 27, 2018:

10:53 PM Changeset in webkit [238603] by achristensen@apple.com
  • 2 edits in branches/safari-606-branch/Source/WebKit

Build fix after r238572
<rdar://problem/46259202>

  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:

(WebKit::XPCServiceInitializer):
JSC::ExecutableAllocator is protected by ENABLE(ASSEMBLER).
When there is no assembler, there is no JIT to disable.

10:49 PM Changeset in webkit [238602] by Matt Baker
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements tab should allow selecting/deleting multiple DOM nodes
https://bugs.webkit.org/show_bug.cgi?id=192059
<rdar://problem/46294827>

Reviewed by Devin Rousso.

Enable multiple DOM node selection in the DOMTreeContentView.

  • UserInterface/Controllers/SelectionController.js:

(WI.SelectionController):
(WI.SelectionController.prototype.get allowsEmptySelection):
(WI.SelectionController.prototype.set allowsEmptySelection):
Allow clients to control whether the last selected item can be deselected.
(WI.SelectionController.prototype.deselectItem):
(WI.SelectionController.prototype.didInsertItem):
Rewritten to prevent infinite loop.
(WI.SelectionController.prototype.didRemoveItem):
(WI.SelectionController.prototype._updateSelectedItems):
(WI.SelectionController.prototype._adjustIndexesAfter): Deleted.

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView):

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype.updateSelectionArea):

  • UserInterface/Views/DOMTreeOutline.js:

(WI.DOMTreeOutline.prototype.updateSelection):
Updating the selection area DOM element should not assume that only one
TreeElement is selected at a time.

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline.prototype.get allowsEmptySelection):
(WI.TreeOutline.prototype.set allowsEmptySelection):
(WI.TreeOutline.prototype.set selectedTreeElement):
(WI.TreeOutline.prototype.get selectedTreeElements):
(WI.TreeOutline.prototype._treeKeyDown):

  • UserInterface/Views/TreeOutlineGroup.js:

(WI.TreeOutlineGroup):
(WI.TreeOutlineGroup.prototype._removeConflictingTreeSelections):
Eliminate use of TreeElement.prototype.deselect.

8:48 PM Changeset in webkit [238601] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Log WebRTC stats in inspector console only when setting is verbose
https://bugs.webkit.org/show_bug.cgi?id=192014

Reviewed by Eric Carlson.

Add a WebRTCStats channel that is used by default to output WebRTC stats in console.
When WebRTC Debug logging is enabled, log WebRTC stats in WebRTC channel,
so that they appear as debug information in Web Inspector.

No change of JS behavior.
Covered by manually testing what is logged in inspector and console.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered):

  • platform/Logging.h:
7:05 PM Changeset in webkit [238600] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Fix the mis-spelled "m_clienstWaitingForAsyncDecoding"
https://bugs.webkit.org/show_bug.cgi?id=192060

Reviewed by Wenson Hsieh.

Fix the mis-spelling of "m_clienstWaitingForAsyncDecoding".

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::didRemoveClient):
(WebCore::CachedImage::isClientWaitingForAsyncDecoding const):
(WebCore::CachedImage::addClientWaitingForAsyncDecoding):
(WebCore::CachedImage::removeAllClientsWaitingForAsyncDecoding):
(WebCore::CachedImage::allClientsRemoved):
(WebCore::CachedImage::clear):
(WebCore::CachedImage::createImage):
(WebCore::CachedImage::imageFrameAvailable):

  • loader/cache/CachedImage.h:
6:55 PM Changeset in webkit [238599] by Matt Baker
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: TreeOutline should re-use multiple-selection logic from Table
https://bugs.webkit.org/show_bug.cgi?id=191483
<rdar://problem/45953305>

Reviewed by Devin Rousso.

Update TreeOutline to use SelectionController. Adopting SelectionController
in TreeOutline is not as straightforward as it was in Table. Selected items
are tracked by index, and TreeElement lacks an explicit index. As a consequence
TreeElement indexes are calcualted as needed and cached. The cache is cleared
whenever an element is added or removed.

  • UserInterface/Controllers/SelectionController.js:

(WI.SelectionController.prototype.didInsertItem):
(WI.SelectionController.prototype.didRemoveItem):
(WI.SelectionController.prototype.handleKeyDown):
Drive-by syntax error fix.
(WI.SelectionController.prototype._adjustIndexesAfter):
(WI.SelectionController):

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype.canSelectOnMouseDown):
(WI.DOMTreeElement.prototype.selectOnMouseDown): Deleted.

  • UserInterface/Views/DOMTreeOutline.js:

(WI.DOMTreeOutline.prototype._onmousedown):
Item selection is now handled by SelectionController.

  • UserInterface/Views/ShaderProgramTreeElement.js:

(WI.ShaderProgramTreeElement.prototype.canSelectOnMouseDown):
(WI.ShaderProgramTreeElement.prototype.selectOnMouseDown): Deleted.

  • UserInterface/Views/TreeElement.js:

(WI.TreeElement.prototype.canSelectOnMouseDown):
(WI.TreeElement.prototype._attach):
(WI.TreeElement.prototype.select):
(WI.TreeElement.prototype.deselect):
Route item selection through the parent TreeOutline, in order to go though
the TreeOutline's SelectionController.

(WI.TreeElement.treeElementMouseDown): Deleted.
Moved handler to TreeOutline, which owns the SelectionController that
needs to respond to mouse events.

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline):
(WI.TreeOutline.prototype.get allowsMultipleSelection):
(WI.TreeOutline.prototype.set allowsMultipleSelection):
(WI.TreeOutline.prototype.get selectedTreeElement):
(WI.TreeOutline.prototype.set selectedTreeElement):
(WI.TreeOutline.prototype.insertChild):
(WI.TreeOutline.prototype.removeChildAtIndex):
(WI.TreeOutline.prototype._rememberTreeElement):
(WI.TreeOutline.prototype._forgetTreeElement):
(WI.TreeOutline.prototype._treeKeyDown):
(WI.TreeOutline.prototype.selectionControllerNumberOfItems):
(WI.TreeOutline.prototype.selectionControllerSelectionDidChange):
(WI.TreeOutline.prototype.selectionControllerNextSelectableIndex):
(WI.TreeOutline.prototype.selectionControllerPreviousSelectableIndex):
(WI.TreeOutline.prototype.selectTreeElementInternal):
(WI.TreeOutline._generateStyleRulesIfNeeded._indexOfTreeElement.previousElement):
(WI.TreeOutline._generateStyleRulesIfNeeded):

6:16 PM Changeset in webkit [238598] by jiewen_tan@apple.com
  • 4 edits in trunk/LayoutTests

Unreviewed, test gardening

Add a time out parameter to the following test cases such that WebAuthN requests will timeout
themselves instead of letting the wpt wrapper or test runner kill them.

  • http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
  • http/wpt/webauthn/public-key-credential-get-success-hid.https.html:
  • platform/mac-wk2/TestExpectations:
6:10 PM Changeset in webkit [238597] by mark.lam@apple.com
  • 12 edits in trunk

ENABLE_FAST_JIT_PERMISSIONS should be false for iosmac.
https://bugs.webkit.org/show_bug.cgi?id=192055
<rdar://problem/46288783>

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

No new tests needed. Removing an invalid configuration that is not used in WebCore.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
6:03 PM Changeset in webkit [238596] by sbarati@apple.com
  • 3 edits
    1 add in trunk

r238510 broke scopes of size zero
https://bugs.webkit.org/show_bug.cgi?id=192033
<rdar://problem/46281734>

Reviewed by Keith Miller.

JSTests:

  • stress/r238510-bad-loop.js: Added.

(foo):

Source/JavaScriptCore:

In r238510, I wrote the loop like this:
for (ScopeOffset offset { 0 }; offset <= symbolTable->maxScopeOffset(); offset += 1)

This breaks for scopes of size zero because maxScopeOffset() will be UINT_MAX.

This patch fixes this by writing the loop as:
for (unsigned offset = 0; offset < symbolTable->scopeSize(); ++offset)

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
5:48 PM Changeset in webkit [238595] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

ASSERTION FAILED: capacity && isPageAligned(capacity) in JSC::CLoopStack::CLoopStack(JSC::VM&).
https://bugs.webkit.org/show_bug.cgi?id=192018

Reviewed by Saam Barati.

This assertion failed because the regress-191579.js test was specifying
--maxPerThreadStackUsage=400000 i.e. it was running with a stack size that is not
page aligned. Given that the user can specify any arbitrary stack size, and the
CLoop stack expects to be page aligned, we'll just round up the requested capacity
to the next page alignment.

  • interpreter/CLoopStack.cpp:

(JSC::CLoopStack::CLoopStack):

5:45 PM Changeset in webkit [238594] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Experimental Computed panel is unreadable in Dark Mode
https://bugs.webkit.org/show_bug.cgi?id=192053

Reviewed by Matt Baker.

  • UserInterface/Views/ComputedStyleDetailsPanel.css:

(@media (prefers-dark-interface)):
(.computed-with-traces .details-section.computed-style-properties:not(.collapsed) > :matches(.header, .content)):

  • UserInterface/Views/ComputedStyleSection.css:

(.computed-style-section .computed-property-item.expanded):
(.computed-style-section .computed-property-item.expanded + .computed-property-item):
(@media (prefers-dark-interface)):

5:44 PM Changeset in webkit [238593] by commit-queue@webkit.org
  • 13 edits in trunk

Make synchronous IPC introduced in r237267 asynchronous
https://bugs.webkit.org/show_bug.cgi?id=190757

Patch by Alex Christensen <achristensen@webkit.org> on 2018-11-27
Reviewed by Chris Dumez.

Source/WebKit:

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _getActivePagesOriginsInWebProcessForTesting:completionHandler:]):
(-[WKProcessPool _getActivePagesOriginsInWebProcessForTesting:]): Deleted.

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::activePagesOriginsInWebProcessForTesting):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::activePagesDomainsForTesting):

  • UIProcess/WebProcessProxy.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::getActivePagesOriginsForTesting):

  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::getActivePagesOriginsForTesting):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
5:14 PM Changeset in webkit [238592] by Chris Dumez
  • 186 edits
    3 copies
    159 adds
    11 deletes in trunk/LayoutTests

Resync service-workers web platform tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=192035

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Resync service-workers web platform tests from upstream 73507a79fc.

  • web-platform-tests/: Updated.

LayoutTests:

4:30 PM Changeset in webkit [238591] by Alan Coon
  • 1 copy in tags/Safari-606.4.1.2.2

Tag Safari-606.4.1.2.2.

4:29 PM Changeset in webkit [238590] by Jonathan Bedard
  • 2 edits
    5 adds in trunk/Tools

webkitpy: Add watchOS ports
https://bugs.webkit.org/show_bug.cgi?id=191974
<rdar://problem/46251051>

Reviewed by Aakash Jain.

  • Scripts/webkitpy/port/factory.py:

(PortFactory): Add WatchDevice and WatchSimulator ports.

  • Scripts/webkitpy/port/watch.py: Added.

(WatchPort): Base class for watchOS ports.

  • Scripts/webkitpy/port/watch_device.py: Added.

(WatchDevicePort): Class for running layout tests on a watchOS device.

  • Scripts/webkitpy/port/watch_simulator.py: Added.

(WatchSimulatorPort): Class for running layout tests on a watchOS simulator.

  • Scripts/webkitpy/port/watch_simulator_unittest.py: Added.

(WatchSimulatorTest):

  • Scripts/webkitpy/port/watch_testcase.py: Added.

(WatchTest):

4:28 PM Changeset in webkit [238589] by Nikita Vasilyev
  • 12 edits
    1 copy
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: Computed panel: allow to expand properties to show list of overridden values
https://bugs.webkit.org/show_bug.cgi?id=191984

Reviewed by Devin Rousso.

Introduce the new experimental Computed Style Cascades.

Each property now can expand to show a list of overridden values, their corresponding
selectors, and source locations.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Main.html:
  • UserInterface/Models/DOMNodeStyles.js:

(WI.DOMNodeStyles.prototype.get uniqueOrderedStyles):
Move uniqueOrderedStyles function unmodified from SpreadsheetRulesStyleDetailsPanel so it can be used by ComputedStyleDetailsPanel, too.

  • UserInterface/Views/ComputedStyleDetailsPanel.css:

(.computed-with-traces .computed-style-properties):
(.computed-with-traces .details-section.computed-style-properties:not(.collapsed) > :matches(.header, .content)):
(.computed-with-traces .details-section.computed-style-properties > .content):
(.computed-with-traces .computed-style-properties .property .go-to-arrow):

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WI.ComputedStyleDetailsPanel.prototype.refresh):
(WI.ComputedStyleDetailsPanel.prototype.applyFilter):
(WI.ComputedStyleDetailsPanel.prototype.focusFirstSection):
(WI.ComputedStyleDetailsPanel.prototype.initialLayout):
(WI.ComputedStyleDetailsPanel.prototype._computePropertyTraces):
(WI.ComputedStyleDetailsPanel.prototype._computedStyleShowAllCheckboxValueChanged):
(WI.ComputedStyleDetailsPanel.prototype._handlePropertiesSectionCollapsedStateChanged):
(WI.ComputedStyleDetailsPanel.prototype._handleEditorFilterApplied):
(WI.ComputedStyleDetailsPanel):
Use the new Computed section (WI.ComputedStyleSection) only when it's enabled in the experimental settings.
Otherwise, use the current Computed section.

  • UserInterface/Views/ComputedStyleDetailsSidebarPanel.js:

(WI.ComputedStyleDetailsSidebarPanel):

  • UserInterface/Views/ComputedStyleSection.css: Added.

(.computed-style-section):
(.computed-style-section .computed-property-item):
(.computed-style-section .computed-property-item.expanded):
(.computed-style-section .computed-property-item.expanded + .computed-property-item):
(.computed-style-section .computed-property-item .disclosure-button):
(.computed-style-section .computed-property-item .property-traces):
(.computed-style-section .computed-property-item.expanded .property-traces):
(.computed-style-section .computed-property-item.expanded .disclosure-button):
(.computed-style-section .computed-property-item .property-trace-item):
(.computed-style-section .computed-property-item .property-trace-item .property.overridden .value):
(.computed-style-section .property-trace-item-left,):
(.computed-style-section .property-trace-item-right):
(.computed-style-section .computed-property-item .property-trace-item .value):
(.computed-style-section .property .value):
(.computed-style-section .computed-property-item .property):
(.computed-style-section .computed-property-item .property .name):
(.computed-style-section .computed-property-item .property-trace-item .selector):
(.computed-style-section .computed-property-item .origin):
(.computed-style-section .computed-property-item .go-to-link):
(.computed-style-section .property-trace-item .property .name,):
(.computed-style-section .property-trace-item .property .value + span):
(.computed-style-properties.details-section > .content,):

  • UserInterface/Views/ComputedStyleSection.js: Added.

(WI.ComputedStyleSection):
(WI.ComputedStyleSection.prototype.get style):
(WI.ComputedStyleSection.prototype.set style):
(WI.ComputedStyleSection.prototype.get styleTraces):
(WI.ComputedStyleSection.prototype.set styleTraces):
(WI.ComputedStyleSection.prototype.set showsImplicitProperties):
(WI.ComputedStyleSection.prototype.set alwaysShowPropertyNames):
(WI.ComputedStyleSection.prototype.set propertyVisibilityMode):
(WI.ComputedStyleSection.prototype.set hideFilterNonMatchingProperties):
(WI.ComputedStyleSection.prototype.get propertiesToRender):
(WI.ComputedStyleSection.prototype.layout):
(WI.ComputedStyleSection.prototype.detached):
(WI.ComputedStyleSection.prototype.hidden):
(WI.ComputedStyleSection.prototype.applyFilter):
(WI.ComputedStyleSection.prototype.spreadsheetStylePropertyShowProperty):
(WI.ComputedStyleSection.prototype._createTrace):
(WI.ComputedStyleSection.prototype._handlePropertiesChanged):

  • UserInterface/Views/ExpandableView.js: Added.

(WI.ExpandableView):
(WI.ExpandableView.prototype.get element):
(WI.ExpandableView.prototype._onDisclosureButtonClick):
(WI.ExpandableView.prototype._update):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.layout):
Replace _renderOrigin with WI.StyleOriginView so it could be used by WI.ComputedStyleSection.

  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:

(WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout):

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype.update):
(WI.SpreadsheetStyleProperty.prototype._isEditable):
(WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
Introduce readOnly option so WI.SpreadsheetStyleProperty could be used by WI.ComputedStyleSection.

  • UserInterface/Views/StyleOriginView.js: Added.

(WI.StyleOriginView):

4:26 PM Changeset in webkit [238588] by jiewen_tan@apple.com
  • 3 edits in trunk/Source/WebCore

Remove kCCNotVerified
https://bugs.webkit.org/show_bug.cgi?id=192034
<rdar://problem/46235863>

Reviewed by Alexey Proskuryakov.

No change of behaviours.

  • crypto/CommonCryptoUtilities.h:
  • crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:

(WebCore::verifyRSASSA_PKCS1_v1_5):

4:20 PM Changeset in webkit [238587] by Alan Coon
  • 7 edits in branches/safari-606.4.1.2-branch/Source

Versioning.

4:20 PM Changeset in webkit [238586] by Kocsen Chung
  • 5 edits in tags/Safari-607.1.14.4/Source/JavaScriptCore

Revert r238573. rdar://problem/45494310

4:15 PM Changeset in webkit [238585] by achristensen@apple.com
  • 5 edits in trunk

Safe browsing warning text needs to be visible on High Sierra
https://bugs.webkit.org/show_bug.cgi?id=192022

Reviewed by Tim Horton.

Source/WebKit:

Something about AppKit, autolayout, view insertion order, and NSTextView makes the text lay
out with initial size of {0, 0} on High Sierra. Using an NSTextField instead makes the details visible.

Covered by an API test.

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

(makeLabel):
(-[WKSafeBrowsingWarning addContent]):
(-[WKSafeBrowsingWarning showDetailsClicked]):
(-[WKSafeBrowsingWarning layoutText]):
(makeTitleLabel): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:

(TEST):

3:54 PM Changeset in webkit [238584] by Wenson Hsieh
  • 2 edits in trunk/Tools

Unreviewed, fix the watchOS engineering build

Disable a newly added API test, since DDScannerResult is unavailable on watchOS.

  • TestWebKitAPI/Tests/WebKitCocoa/DataDetection.mm:
3:46 PM Changeset in webkit [238583] by Simon Fraser
  • 4 edits in trunk

Avoid triggering compositing updates when only the root layer is composited
https://bugs.webkit.org/show_bug.cgi?id=191813

Reviewed by Zalan Bujtas.

If we know that the only composited layer is the root, we can avoid triggering deep
compositing updates sometimes, for example when layout changes size or position,
or when z-order lists change.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::addChild):
(WebCore::RenderLayer::removeChild):
(WebCore::RenderLayer::updateLayerPosition):
(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::updateCompositingLayersAfterScroll):
(WebCore::outputPaintOrderTreeRecursive):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateBackingAndHierarchy): Consult the layer.hasCompositingDescendant()
flag to cut off descendants traversal when possible.
(WebCore::RenderLayerCompositor::layerStyleChanged):

3:45 PM Changeset in webkit [238582] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

Refactor duplicate code for calling into media controls
https://bugs.webkit.org/show_bug.cgi?id=192040
<rdar://problem/46278931>

Reviewed by Youenn Fablet.

No new tests, no functional change.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setupAndCallJS):
(WebCore::HTMLMediaElement::updateCaptionContainer):
(WebCore::HTMLMediaElement::configureTextTrackDisplay):
(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
(WebCore::HTMLMediaElement::setControllerJSProperty):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):
(WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange):
(WebCore::HTMLMediaElement::getCurrentMediaControlsStatus):

  • html/HTMLMediaElement.h:
3:23 PM Changeset in webkit [238581] by mark.lam@apple.com
  • 1 edit
    1 add in trunk/JSTests

[Re-landing] NaNs read from Wasm code needs to be be purified.
https://bugs.webkit.org/show_bug.cgi?id=191056
<rdar://problem/45660341>

Reviewed by Filip Pizlo.

  • wasm/regress/regress-191056.js: Added.
3:20 PM Changeset in webkit [238580] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

WKNavigation.AutomaticViewReloadAfterWebProcessCrash asserts after r238538
https://bugs.webkit.org/show_bug.cgi?id=192038
<rdar://problem/46288457>

Reviewed by Wenson Hsieh.

  • UIProcess/WebPageProxy.cpp:

(WebKit::m_resetRecentCrashCountTimer):
(WebKit::WebPageProxy::finishAttachingToWebProcess):
(WebKit::WebPageProxy::resetState):
(WebKit::m_editableImageController): Deleted.
Properly invalidate m_editableImageController when resetting WebPageProxy.
Otherwise, the MessageReceiverMaps get invalidated, then later when
EditableImageController goes away we assert trying to remove the receiver.

2:40 PM Changeset in webkit [238579] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

(r238246) [ MacOS Debug ] Layout Test http/wpt/webauthn/ctap-hid-failure.https.html is Crashing
https://bugs.webkit.org/show_bug.cgi?id=191757

Reviewed by Chris Dumez.

Wrong nonce error causes retransmission, which then trigger wrong nonce error. This is expected
behavior for mock testing. However, the main thread could time out when MockHidConnection::send
is excuting the block on another thread. The block will then return without invoking the callback,
which triggers this WTFCrash. The solution is always invoking the callback before return in the
block.

  • UIProcess/WebAuthentication/Mock/MockHidConnection.cpp:

(WebKit::MockHidConnection::send):

2:14 PM Changeset in webkit [238578] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[Re-landing] NaNs read from Wasm code needs to be be purified.
https://bugs.webkit.org/show_bug.cgi?id=191056
<rdar://problem/45660341>

Reviewed by Filip Pizlo.

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):

2:12 PM Changeset in webkit [238577] by Keith Rollin
  • 3 edits in trunk/Source/WebKit

Better parsing of comments in generate-message*.py
https://bugs.webkit.org/show_bug.cgi?id=191866
<rdar://problem/46189563>

Reviewed by Chris Dumez.

The script parsing the *.messages.in files would treat a line starting
with '#' as a comment, but not a line starting with '<whitespace>#'.
This means that jamming a '#' right in front of the first character of
a message definition (as opposed to the beginning of a line) will have
no effect and the line will get treated just the same as a
non-commented line. Fix this by trimming all white space from the
beginning and ending of the line before processing it.

  • Scripts/webkit/parser.py:

(parse):

  • Scripts/webkit/test-messages.in:
2:03 PM Changeset in webkit [238576] by Simon Fraser
  • 5 edits
    2 adds in trunk

Momentum scrolling ends at the wrong place when a scrolling overflow element has a non-zero border
https://bugs.webkit.org/show_bug.cgi?id=191322

Reviewed by Dean Jackson.
Source/WebCore:

The scrolling momentum logic in ScrollController::handleWheelEvent() which computes whether the scroll is pinned
to the end makes use of ScrollableArea::visibleContentRect(). RenderLayer's implementation of this was incorrect when
the layer's element had borders, causing the momentum scroll to stop early.

Fix by using the correct size (visible size, not layer size).

Test: fast/scrolling/momentum-scroll-with-borders.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::visibleContentRectInternal const):

LayoutTests:

  • fast/scrolling/momentum-scroll-with-borders-expected.txt: Added.
  • fast/scrolling/momentum-scroll-with-borders.html: Added.
  • platform/ios/TestExpectations:
1:50 PM Changeset in webkit [238575] by Simon Fraser
  • 4 edits
    7 adds in trunk

Composited and tiled layers fail to update on scrolling in WebView
https://bugs.webkit.org/show_bug.cgi?id=191821
rdar://problem/46009272

Reviewed by Zalan Bujtas.

Source/WebCore:

We relied on AppKit calling -[NSView viewWillDraw] on scrolling to trigger compositing
layer flushes which are necessary to update backing store attachment, and tile coverage
for tiled layers. However, we no longer get these reliably in WebView, so explicitly trigger
flushes if necessary from FrameView::scrollOffsetChangedViaPlatformWidgetImpl().
didChangeVisibleRect() is the same code path used by iOS UIWebView for the same purpose.

Tests: compositing/backing/backing-store-attachment-scroll.html

compositing/tiling/tile-coverage-on-scroll.html

  • page/FrameView.cpp:

(WebCore::FrameView::scrollOffsetChangedViaPlatformWidgetImpl):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateCoverage):

LayoutTests:

Tests for backing store attachment, and tile coverage before and after scrolling.

  • compositing/backing/backing-store-attachment-scroll-expected.txt: Added.
  • compositing/backing/backing-store-attachment-scroll.html: Added.
  • compositing/tiling/tile-coverage-on-scroll-expected.txt: Added.
  • compositing/tiling/tile-coverage-on-scroll.html: Added.
  • platform/mac-wk1/compositing/tiling/tile-coverage-on-scroll-expected.txt: Added. Root isn't tiled on WK1, so different result.
1:48 PM Changeset in webkit [238574] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK|WPE] Allow disabling WebRTC unified plan SDP through an env var
https://bugs.webkit.org/show_bug.cgi?id=192024

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

  • UIProcess/API/glib/WebKitSettings.cpp:

(webKitSettingsConstructed):

1:41 PM Changeset in webkit [238573] by Alan Coon
  • 5 edits in tags/Safari-607.1.14.4/Source/JavaScriptCore

Cherry-pick r238564. rdar://problem/45494310

Introducing a ENABLE_SEPARATED_WX_HEAP macro.
https://bugs.webkit.org/show_bug.cgi?id=192013
<rdar://problem/45494310>

Reviewed by Keith Miller.

This makes the code a little more readable.

I put the definition of ENABLE_SEPARATED_WX_HEAP in JSC's config.h instead of
Platform.h because ENABLE_SEPARATED_WX_HEAP is only needed inside JSC. Also,
ENABLE_SEPARATED_WX_HEAP depends on ENABLE(FAST_JIT_PERMISSIONS), which is only
defined for JSC.

  • config.h:
  • jit/ExecutableAllocator.cpp: (JSC::FixedVMPoolExecutableAllocator::FixedVMPoolExecutableAllocator): (JSC::FixedVMPoolExecutableAllocator::initializeSeparatedWXHeaps):
  • jit/ExecutableAllocator.h: (JSC::performJITMemcpy):
  • runtime/Options.cpp: (JSC::recomputeDependentOptions):

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

1:29 PM Changeset in webkit [238572] by Alan Coon
  • 19 edits
    1 add in branches/safari-606-branch

Apply patch. rdar://problem/46259202

1:22 PM Changeset in webkit [238571] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

Fix test timeout following <https://trac.webkit.org/changeset/238545>
(https://bugs.webkit.org/show_bug.cgi?id=191969)

Actually call HTMLInputElement.setSelectionRange().

  • fast/forms/auto-fill-button/caps-lock-indicator-should-be-visible-after-hiding-auto-fill-strong-password-button-expected.html:
1:16 PM Changeset in webkit [238570] by timothy@apple.com
  • 17 edits
    3 adds in trunk

Web Inspector: Add support for forcing color scheme appearance in DOM tree.
https://bugs.webkit.org/show_bug.cgi?id=191820
rdar://problem/46153172

Reviewed by Devin Rousso.

Source/JavaScriptCore:

  • inspector/protocol/Page.json: Added setForcedAppearance.

Also added the defaultAppearanceDidChange event and Appearance enum.

Source/WebCore:

Test: inspector/css/force-page-appearance.html

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::defaultAppearanceDidChangeImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::defaultAppearanceDidChange):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::enable): Fire defaultAppearanceDidChange() on macOS Majave.
(WebCore::InspectorPageAgent::disable): Call setForcedAppearance() with empty string.
(WebCore::InspectorPageAgent::defaultAppearanceDidChange): Added.
(WebCore::InspectorPageAgent::setForcedAppearance): Added.

  • inspector/agents/InspectorPageAgent.h:
  • page/Page.cpp:

(WebCore::Page::setUseDarkAppearance): Call InspectorInstrumentation::defaultAppearanceDidChange().
(WebCore::Page::useDarkAppearance const): Return override value if not nullopt.
(WebCore::Page::setUseDarkAppearanceOverride): Added.

  • page/Page.h:

(WebCore::Page::defaultUseDarkAppearance const): Added.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js: Updated.
  • UserInterface/Controllers/CSSManager.js:

(WI.CSSManager):
(WI.CSSManager.prototype.get defaultAppearance): Added.
(WI.CSSManager.prototype.get forcedAppearance): Added.
(WI.CSSManager.prototype.set forcedAppearance): Added.
(WI.CSSManager.prototype.canForceAppearance): Added.
(WI.CSSManager.prototype.defaultAppearanceDidChange): Added.

  • UserInterface/Images/Appearance.svg: Added.
  • UserInterface/Protocol/PageObserver.js:

(WI.PageObserver.prototype.defaultAppearanceChanged): Added.

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView):
(WI.DOMTreeContentView.prototype.get navigationItems):
(WI.DOMTreeContentView.prototype._defaultAppearanceDidChange): Added.
(WI.DOMTreeContentView.prototype._toggleAppearance): Added.

LayoutTests:

  • TestExpectations: Skip dark mode tests on other platforms.
  • inspector/css/force-page-appearance-expected.txt: Added.
  • inspector/css/force-page-appearance.html: Added.
  • platform/mac/TestExpectations: Expect dark mode tests to pass on Mojave and later.
1:06 PM Changeset in webkit [238569] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Cookies table needs copy keyboard shortcut and context menu support
https://bugs.webkit.org/show_bug.cgi?id=191482
<rdar://problem/45953002>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/CookieStorageContentView.js:

(WI.CookieStorageContentView.prototype.handleCopyEvent):
(WI.CookieStorageContentView.prototype.tableCellContextMenuClicked):
As with Delete, if the target row is selected, all selected rows are copied.
Otherwise only the target row is copied. This distinction will be surfaced
in the UI in https://webkit.org/b/191095.

(WI.CookieStorageContentView.prototype.tablePopulateCell):
(WI.CookieStorageContentView.prototype._cookiesAtIndexes):
(WI.CookieStorageContentView.prototype._formatCookiesAsText):
(WI.CookieStorageContentView.prototype._formatCookiePropertyForColumn):
(WI.CookieStorageContentView):
Break Cookie property formatting into a helper method, which is used for
formatting Table cells and creating plain text for the clipboard.

  • UserInterface/Views/Table.js:

(WI.Table.prototype.get columns):

1:03 PM Changeset in webkit [238568] by Ryan Haddad
  • 3 edits
    1 delete in trunk

Unreviewed, rolling out r238509.

Causes JSC tests to fail on iOS.

Reverted changeset:

"NaNs read from Wasm code needs to be be purified."
https://bugs.webkit.org/show_bug.cgi?id=191056
https://trac.webkit.org/changeset/238509

12:40 PM Changeset in webkit [238567] by ap@apple.com
  • 6 edits in trunk/Source

Modernize the check for async _saveCookies existence
https://bugs.webkit.org/show_bug.cgi?id=191987

Reviewed by Dean Jackson.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h: Also removed a check around _socketStreamProperties,

which exists everywhere.

Source/WebKit:

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformSyncAllCookies):

Source/WTF:

  • wtf/Platform.h: Added a specific macro for this. Not changing the behavior here,

although it seems very likely that we want to do the same on other iOS family OSes.

12:34 PM EnvironmentVariables edited by tsaunier@gnome.org
(diff)
12:20 PM Changeset in webkit [238566] by timothy_horton@apple.com
  • 14 edits
    2 adds in trunk

Serialize and deserialize editable image strokes
https://bugs.webkit.org/show_bug.cgi?id=192002
<rdar://problem/30900149>

Reviewed by Dean Jackson.

Source/WebCore:

Test: editing/images/paste-editable-image.html

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::insertedIntoAncestor):
(WebCore::HTMLImageElement::didFinishInsertingNode):
(WebCore::HTMLImageElement::removedFromAncestor):
(WebCore::HTMLImageElement::hasEditableImageAttribute const):
(WebCore::HTMLImageElement::updateEditableImage):
Call updateEditableImage() from didFinishInsertingNode instead of insertedIntoAncestor.
This is helpful because it means we get the final, deduplicated attachment identifier
instead of the original one when cloning or pasting.

This also means that isConnected() is now always accurate when updateEditableImage()
is called, so we can remove the argument that allowed us to lie from inside insertedIntoAncestor.

  • html/HTMLImageElement.h:
  • rendering/RenderImage.cpp:

(WebCore::RenderImage::isEditableImage const):
Make use of hasEditableImage instead of separately checking for the attribute.

Source/WebKit:

  • UIProcess/API/APIAttachment.cpp:

(API::Attachment::updateAttributes):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::willUpdateAttachmentAttributes):

  • UIProcess/WebPageProxy.h:

When an attachment would update its DOM attributes, plumb a notification
to EditableImageController, and allow it to block the update (because
we don't really want to set src for editable image attachments,
we just want the UI process to fully own the data).

  • Platform/spi/ios/PencilKitSPI.h:

Add some SPI.

  • UIProcess/ios/EditableImageController.h:
  • UIProcess/ios/EditableImageController.mm:

(WebKit::EditableImageController::loadStrokesFromAttachment):
Add a helper to load strokes from an attachment.

(WebKit::EditableImageController::associateWithAttachment):
Try to load strokes from the attachment when initially associated.
Don't create a file wrapper around a null image, so it will be regenerated later.

(WebKit::EditableImageController::willUpdateAttachmentAttributes):
The aforementioned plumbing at update time.

  • UIProcess/ios/WKDrawingView.h:
  • UIProcess/ios/WKDrawingView.mm:

(-[WKDrawingView layoutSubviews]):
Invalidate the attachment (so it will be regenerated upon request) if the
canvas size changes.

(-[WKDrawingView PNGRepresentation]):
Serialize strokes into the EXIF User Comment field.
We will find a different field to use (ideally a custom vendor-specific
field that nobody else will use for anything), but this works for now.

Don't try to render an image if we don't have a size or scale;
PKImageRenderer will just fail anyway, so bail early.

In the iOS Simulator, PKImageRenderer currently returns an unusable image.
Instead, so that we have a image on which to serialize the strokes,
create a transparent 1x1 image. This makes it possible to serialize strokes
even though we don't have a usable rendered image, so that we can still test
this change (and future changes).

(-[WKDrawingView loadDrawingFromPNGRepresentation:]):
If available, deserialize strokes from the EXIF User Comment field.

(-[WKDrawingView drawingDidChange:]):
(-[WKDrawingView invalidateAttachment]):
Factor invalidateAttachment out of drawingDidChange so we can call
it from layoutSubviews too!

LayoutTests:

  • editing/images/paste-editable-image-expected.txt: Added.
  • editing/images/paste-editable-image.html: Added.

Add a test that we can copy and paste and editable image and
continue to edit it, and are affecting a different attachment than the original.

11:52 AM Changeset in webkit [238565] by Chris Dumez
  • 4 edits in trunk

Regression(PSON) crash under WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame()
https://bugs.webkit.org/show_bug.cgi?id=191983
<rdar://problem/46246863>

Reviewed by Geoffrey Garen.

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::continueNavigationInNewProcess):
Make sure the navigation still exists in m_mainFrameCreationHandler and return early if it
does not.

(WebKit::WebPageProxy::resetState):
Clear out m_mainFrameCreationHandler / m_mainFrameWindowCreationHandler if we resetting the state
after a crash. At this point, there is no chance the WebProcess will send us the IPC that will
cause these to get called and we do not want old state to remain for future navigations.

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
11:47 AM Changeset in webkit [238564] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Introducing a ENABLE_SEPARATED_WX_HEAP macro.
https://bugs.webkit.org/show_bug.cgi?id=192013
<rdar://problem/45494310>

Reviewed by Keith Miller.

This makes the code a little more readable.

I put the definition of ENABLE_SEPARATED_WX_HEAP in JSC's config.h instead of
Platform.h because ENABLE_SEPARATED_WX_HEAP is only needed inside JSC. Also,
ENABLE_SEPARATED_WX_HEAP depends on ENABLE(FAST_JIT_PERMISSIONS), which is only
defined for JSC.

  • config.h:
  • jit/ExecutableAllocator.cpp:

(JSC::FixedVMPoolExecutableAllocator::FixedVMPoolExecutableAllocator):
(JSC::FixedVMPoolExecutableAllocator::initializeSeparatedWXHeaps):

  • jit/ExecutableAllocator.h:

(JSC::performJITMemcpy):

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

11:41 AM Changeset in webkit [238563] by Matt Baker
  • 5 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Table selection should be handled by a SelectionController
https://bugs.webkit.org/show_bug.cgi?id=191977
<rdar://problem/46253093>

Reviewed by Devin Rousso.

Add a SelectionController class, which manages an IndexSet of selected
items, and provides operations for adding and removing items from the
selection. Complex behaviors such as shift-clicking to select a range of
items, and updating the selection using the keyboard, are forwarded to
the controller using special-purpose methods that accept DOM Event objects.

  • UserInterface/Base/Utilities.js:
  • UserInterface/Controllers/SelectionController.js: Added.

(WI.SelectionController):
(WI.SelectionController.prototype.get delegate):
(WI.SelectionController.prototype.get lastSelectedItem):
(WI.SelectionController.prototype.get selectedItems):
(WI.SelectionController.prototype.get allowsMultipleSelection):
(WI.SelectionController.prototype.set allowsMultipleSelection):
(WI.SelectionController.prototype.get numberOfItems):
(WI.SelectionController.prototype.hasSelectedItem):
(WI.SelectionController.prototype.selectItem):
(WI.SelectionController.prototype.deselectItem):
(WI.SelectionController.prototype.selectAll):
(WI.SelectionController.prototype.deselectAll):
(WI.SelectionController.prototype.removeSelectedItems):
(WI.SelectionController.prototype.reset):
(WI.SelectionController.prototype.didRemoveItem):
(WI.SelectionController.prototype.handleKeyDown):
(WI.SelectionController.prototype.handleItemMouseDown.normalizeRange):
(WI.SelectionController.prototype.handleItemMouseDown):
(WI.SelectionController.prototype._deselectAllAndSelect):
(WI.SelectionController.prototype._selectItemsFromArrowKey):
(WI.SelectionController.prototype._nextSelectableIndex):
(WI.SelectionController.prototype._previousSelectableIndex):
(WI.SelectionController.prototype._updateSelectedItems):

  • UserInterface/Main.html:
  • UserInterface/Test.html:
  • UserInterface/Views/Table.js:

(WI.Table):
(WI.Table.prototype.get selectedRow):
(WI.Table.prototype.get selectedRows):
(WI.Table.prototype.get allowsMultipleSelection):
(WI.Table.prototype.set allowsMultipleSelection):
(WI.Table.prototype.isRowSelected):
(WI.Table.prototype.reloadData):
(WI.Table.prototype.selectRow):
(WI.Table.prototype.deselectRow):
(WI.Table.prototype.selectAll):
(WI.Table.prototype.deselectAll):
(WI.Table.prototype.removeRow):
(WI.Table.prototype.removeSelectedRows):
(WI.Table.prototype.selectionControllerSelectionDidChange):
(WI.Table.prototype.selectionControllerNumberOfItems):
(WI.Table.prototype.selectionControllerNextSelectableIndex):
(WI.Table.prototype.selectionControllerPreviousSelectableIndex):
(WI.Table.prototype._handleKeyDown):
(WI.Table.prototype._handleMouseDown):
(WI.Table.prototype._removeRows):
(WI.Table.prototype._toggleSelectedRowStyle):
(WI.Table.prototype._selectRowsFromArrowKey): Deleted.
(WI.Table.prototype._handleMouseDown.normalizeRange): Deleted.
(WI.Table.prototype._deselectAllAndSelect): Deleted.
(WI.Table.prototype._notifySelectionDidChange): Deleted.
(WI.Table.prototype._updateSelectedRows): Deleted.

11:38 AM Changeset in webkit [238562] by jiewen_tan@apple.com
  • 16 edits
    1 copy
    7 adds in trunk

Disallow loading webarchives as iframes
https://bugs.webkit.org/show_bug.cgi?id=191728
<rdar://problem/45524528>

Reviewed by Youenn Fablet.

Source/WebCore:

Disallow loading webarchives as iframes. We don't allow loading remote webarchives.
Now, this policy is hardened to disallow loading webarchives as iframes for local
documents as well.

To allow old tests still be able to run, a flag is added to always allow loading local
webarchives in document. The flag can be set via window.internals.

Tests: webarchive/loading/test-loading-archive-subresource.html

webarchive/loading/test-loading-top-archive.html

  • dom/Document.h:

(WebCore::Document::setAlwaysAllowLocalWebarchive):
(WebCore::Document::alwaysAllowLocalWebarchive):

  • loader/DocumentLoader.cpp:

(WebCore::disallowWebArchive):
(WebCore::DocumentLoader::continueAfterContentPolicy):
(WebCore::isRemoteWebArchive): Deleted.

  • testing/Internals.cpp:

(WebCore::Internals::setAlwaysAllowLocalWebarchive const):

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

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::unableToImplementPolicy):
Add a check to prevent null pointer dereference.

LayoutTests:

  • platform/mac-wk1/webarchive/loading/test-loading-archive-subresource-expected.txt: Added.
  • platform/mac/fast/loader/webarchive-encoding-respected.html:
  • webarchive/loading/cache-expired-subresource.html:
  • webarchive/loading/mainresource-null-mimetype-crash.html:
  • webarchive/loading/missing-data.html:
  • webarchive/loading/resources/test-loading-archive-main.webarchive: Copied from LayoutTests/webarchive/loading/test-loading-archive.html.
  • webarchive/loading/test-loading-archive-subresource-expected.txt: Added.
  • webarchive/loading/test-loading-archive-subresource-null-mimetype.html:
  • webarchive/loading/test-loading-archive-subresource.html: Copied from LayoutTests/webarchive/loading/test-loading-archive.html.
  • webarchive/loading/test-loading-archive.html:
  • webarchive/loading/test-loading-top-archive-expected.txt: Added.
  • webarchive/loading/test-loading-top-archive.html: Added.
11:34 AM Changeset in webkit [238561] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unregister CDMSessionMediaSourceAVFObjC for error notifications during destruction.
https://bugs.webkit.org/show_bug.cgi?id=191985
<rdar://problem/45972018>

Reviewed by Eric Carlson.

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

(WebCore::CDMSessionMediaSourceAVFObjC::~CDMSessionMediaSourceAVFObjC):

11:31 AM Changeset in webkit [238560] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Adopt -setOverrideRouteSharingPolicy:routingContextUID: SPI
https://bugs.webkit.org/show_bug.cgi?id=190951
<rdar://problem/45213065>

Further follow-up build fix; add ASSUME_NONNULL macros to SPI declaration.

  • pal/spi/cocoa/AVKitSPI.h:
10:20 AM Changeset in webkit [238559] by Kocsen Chung
  • 7 edits in tags/Safari-607.1.14.4/Source

Versioning.

10:16 AM Changeset in webkit [238558] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.14.4

New tag.

9:34 AM Changeset in webkit [238557] by commit-queue@webkit.org
  • 9 edits in trunk/Source

[GStreamer][WebRTC] Use LibWebRTC provided vp8 decoders and encoders
https://bugs.webkit.org/show_bug.cgi?id=191861

Source/ThirdParty/libwebrtc:

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-11-27
Reviewed by Philippe Normand.

  • CMakeLists.txt: Build LibVPX vp8 encoder and decoders.

Source/WebCore:

The GStreamer implementations are less feature full and less tested, now that Apple
also use the LibWebRTC provided implementations it makes a lot of sense for us to
do the same.

Basically everything related to temporal scalability is not implemented in GStreamer.

We should make sure to use GStreamer elements on low powered platforms and for
accelerated encoders and decoders.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-11-27
Reviewed by Philippe Normand.

This is mostly refactoring, no new test required.

  • platform/graphics/gstreamer/GStreamerCommon.h: Added GstMappedFrame similar to GstMappedBuffer but for video frames.

(WebCore::GstMappedFrame::GstMappedFrame):
(WebCore::GstMappedFrame::get):
(WebCore::GstMappedFrame::ComponentData):
(WebCore::GstMappedFrame::ComponentStride):
(WebCore::GstMappedFrame::info):
(WebCore::GstMappedFrame::width):
(WebCore::GstMappedFrame::height):
(WebCore::GstMappedFrame::format):
(WebCore::GstMappedFrame::~GstMappedFrame):
(WebCore::GstMappedFrame::operator bool const):

  • platform/graphics/gstreamer/GUniquePtrGStreamer.h:
  • platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.cpp:

(WebCore::GStreamerVideoFrameLibWebRTC::ToI420): Implemented support for converting frame formats with the GstVideoConverter API

  • platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:

(WebCore::GStreamerVideoDecoder::GstDecoderFactory):
(WebCore::GStreamerVideoDecoder::HasGstDecoder):
(WebCore::VP8Decoder::Create): Creates a webrtc::LibvpxVp8Decoder() if GStreamer decoder would be the LibVPX based one.
(WebCore::GStreamerVideoDecoderFactory::CreateVideoDecoder):

  • platform/mediastream/libwebrtc/GStreamerVideoEncoder.cpp:

(gst_webrtc_video_encoder_class_init):

  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp: Stop using vp8enc and use LibWebRTC based implementation

(WebCore::GStreamerH264Encoder::GStreamerH264Encoder): Renamed H264Encoder to GStreamerH264Encoder to be more coherent with what is done in LibVPX
(WebCore::GStreamerVP8Encoder::GStreamerVP8Encoder): Renamed VP8Encoder to GStreamerVP8Encoder to be more coherent with what is done in LibVPX
(WebCore::GStreamerVideoEncoderFactory::CreateVideoEncoder):
(WebCore::GStreamerVideoEncoderFactory::GetSupportedFormats const):

9:28 AM Changeset in webkit [238556] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Adopt -setOverrideRouteSharingPolicy:routingContextUID: SPI
https://bugs.webkit.org/show_bug.cgi?id=190951
<rdar://problem/45213065>

Follow-up build fix when building against older SDKs.

  • pal/spi/cocoa/AVKitSPI.h:
9:05 AM Changeset in webkit [238555] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test svg/text/monospace-text-size-in-img.html is failing
https://bugs.webkit.org/show_bug.cgi?id=192011

Unreviewed test gardening.

  • platform/win/TestExpectations:
9:00 AM Changeset in webkit [238554] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test fast/inline/simple-inline-with-out-of-flow-descendant.html is failing
https://bugs.webkit.org/show_bug.cgi?id=192010

Unreviewed test gardening.

  • platform/win/TestExpectations:
7:51 AM Changeset in webkit [238553] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

WebKit.AddAndRemoveDataDetectors hits a debug assertion after r238515
https://bugs.webkit.org/show_bug.cgi?id=191996

Reviewed by Tim Horton.

This assertion is hit because decode(Decoder& decoder, NSArray<Class> *allowedClasses) expects the decoded
object (of class _NSArrayM) to be equal to NSArray.class.

We fix the crash by relaxing the debug assertion when decoding securely-codable objects over IPC. Instead of
checking that the class of the decoded object is equal to one of the allowed classes, check that the object is a
kind of any of the allowed classes.

  • Shared/Cocoa/ArgumentCodersCocoa.h:

(IPC::isObjectClassAllowed):
(IPC::decode):

7:29 AM Changeset in webkit [238552] by tpopela@redhat.com
  • 3 edits in trunk/Source/WebKit

[GTK][WPE] Remove temporary workaround in Source/WebKit/Platform*.cmake
https://bugs.webkit.org/show_bug.cgi?id=192008

Reviewed by Michael Catanzaro.

Looks like it's not needed anymore as the code compiles fine without
it.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
5:52 AM Changeset in webkit [238551] by jfernandez@igalia.com
  • 7 edits in trunk

[css-grid] align-self center and position sticky don't work together
https://bugs.webkit.org/show_bug.cgi?id=191963

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

This change makes several cases of the following tests to pass now.

  • web-platform-tests/css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-001-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-002-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-001-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-002-expected.txt:

Source/WebCore:

This is a fix for a regression introduced in r515391, where we landed
the implementation of alignment for positioned objects in a Grid Layout
container.

We assumed that items with non-static positions shouldn't honor the
CSS Box Alignment properties. This is only true for out-of-flow items,
absolute or fixed positioned elements. However, sticky positioned
elements are treated as relative positioned items, but they indeed use
non-static position to define their behavior.

No new tests, this change is covered by current tests and make several cases to pass now.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::columnAxisPositionForChild const):
(WebCore::RenderGrid::rowAxisPositionForChild const):

5:34 AM Changeset in webkit [238550] by Antti Koivisto
  • 3 edits in trunk/Source/WebKit

Factor mask layer applying in RemoteLayerTreePropertyApplier into a shared function
https://bugs.webkit.org/show_bug.cgi?id=192001

Reviewed by Tim Horton.

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h:
  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
(WebKit::RemoteLayerTreePropertyApplier::updateMask):

Shared function, with some special tricks for iOS backdrop layers.

(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToUIView):

4:39 AM Changeset in webkit [238549] by Antti Koivisto
  • 3 edits in trunk/Source/WebKit

Stop collecting related layers in RemoteLayerTreeHost::updateLayerTree
https://bugs.webkit.org/show_bug.cgi?id=192003

Reviewed by Tim Horton.

We can pass the node hash directly to RemoteLayerTreePropertyApplier. The collection step doesn't seem
to add anything except an extra hash lookup.

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::updateLayerTree):

Pass m_nodes directly.
Some random cleanups.

4:27 AM Changeset in webkit [238548] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] Add support to communicate with Buildbot (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=191935
<rdar://problem/46262314>

Unreviewed infrastructure fix.

  • BuildSlaveSupport/ews-app/ews/common/buildbot.py:

(Buildbot.send_patch_to_buildbot):

1:12 AM Changeset in webkit [238547] by Antti Koivisto
  • 8 edits in trunk/Source/WebKit

Remote tile layers shouldn't be UIViews
https://bugs.webkit.org/show_bug.cgi?id=191953

Reviewed by Tim Horton.

They don't need any UIView functionality, nor do they ever have UIView descendants.
We can use lighter weight objects.

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h:
  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
(WebKit::RemoteLayerTreePropertyApplier::updateChildren):

Factor to a function shared between platforms.
Support having both views and plain layers in the same tree.
Assert that all siblings are of the same type and that we don't attempt to add views to layers.

(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToUIView):

  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::makeNode):

Use new plain layer on Mac too.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:

(-[WKPlainRemoteLayer description]):

Add a CALayer subclass so we can have a description, similar to WKCompositingView and pals.

(WebKit::RemoteLayerTreeNode::createWithPlainLayer):
(WebKit::RemoteLayerTreeNode::detachFromParent):

Support having null view.

(WebKit::RemoteLayerTreeNode::appendLayerDescription):

Helper for layer descriptions.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:

(WebKit::RemoteLayerTreeHost::makeNode):

Construct plain layers for tiles.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(-[WKCompositingView description]):
(-[WKUIRemoteView description]):
(-[WKBackdropView description]):

12:59 AM Changeset in webkit [238546] by Fujii Hironori
  • 5 edits in trunk/Source/WebKit

Remove "using namespace WebCore" under Source/WebKit/WebProcess/InjectedBundle/API
https://bugs.webkit.org/show_bug.cgi?id=191995

Reviewed by Alex Christensen.

The statement "using namespace WebCore" should be placed inside
namespace WebKit for unified source builds. But, source files
defining WebKit API can't be enclosed by namespace WebKit { }
becuase they are defined in the global scope.

"using namespace WebCore" in global scope and unified source
builds may cause build breaks (Bug 191853).

Remove "using namespace WebCore" in the global scope. Use
"WebCore::" prefix instead.

  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundleClearAllDatabases):
(WKBundleSetDatabaseQuota):
(WKBundleClearResourceLoadStatistics):
(WKBundleResourceLoadStatisticsNotifyObserver):

  • WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:

(WKBundleFrameGetFrameLoadState):
(WKBundleFrameClearOpener):
(WKBundleFrameCallShouldCloseOnWebView):
(WKBundleFrameCopySecurityOrigin):
(WKBundleFrameFocus):

  • WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
Note: See TracTimeline for information about the timeline view.