Timeline



Jan 8, 2017:

9:35 PM Changeset in webkit [210498] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Inject MarkedSpace size classes for a few more high-volume objects.
<https://webkit.org/b/166815>

Reviewed by Darin Adler.

Add the following classes to the list of manually injected size classes:

  • JSString
  • JSFunction
  • PropertyTable
  • Structure

Only Structure actually ends up with a new size class, the others already
can't get any tighter due to the current MarkedBlock::atomSize being 16.
I've put them in anyway to ensure that we have optimally carved-out cells
for them in the future, should they grow.

With this change, Structures get allocated in 128-byte cells instead of
160-byte cells, giving us 25% more Structures per MarkedBlock.

  • heap/MarkedSpace.cpp:
8:12 PM Changeset in webkit [210497] by fpizlo@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, since this test is slow it should run in fewer configurations. This resolves the
occasional timeouts I was seeing.

  • js/script-tests/regress-139548.js:
9:44 AM Changeset in webkit [210496] by Konstantin Tokarev
  • 6 edits in trunk/Source

Introduce CPU(X86_SSE2) instead of various SSE2 checks
https://bugs.webkit.org/show_bug.cgi?id=166808

Reviewed by Michael Catanzaro.

Now copyLCharsFromUCharSource can use SSE2 implementation on non-Darwin
OSes, and all SSE2 code paths are available for MSVC on x86 if /arch:SSE2
or higher is enabled, and for MSVC on x86_64.

Source/WebCore:

No new tests needed.

  • platform/audio/SincResampler.cpp:

(WebCore::SincResampler::process):

  • platform/audio/VectorMath.cpp:

(WebCore::VectorMath::vsma):
(WebCore::VectorMath::vsmul):
(WebCore::VectorMath::vadd):
(WebCore::VectorMath::vmul):
(WebCore::VectorMath::zvmul):
(WebCore::VectorMath::vsvesq):
(WebCore::VectorMath::vmaxmgv):

Source/WTF:

  • wtf/Platform.h:
  • wtf/text/ASCIIFastPath.h:

(WTF::copyLCharsFromUCharSource):

Jan 7, 2017:

10:02 PM Changeset in webkit [210495] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Avoid triggering rebuilds for minor changes of CSSProperties.json
https://bugs.webkit.org/show_bug.cgi?id=166810

Post-review cleanup suggested by Darin Adler.

  • css/makeprop.pl:
5:22 PM Changeset in webkit [210494] by timothy_horton@apple.com
  • 4 edits in trunk/Tools

Add a setting to create editable MiniBrowser windows by default
https://bugs.webkit.org/show_bug.cgi?id=166806

Reviewed by Beth Dakin.

  • MiniBrowser/mac/AppDelegate.m:

(-[BrowserAppDelegate createBrowserWindowController:]):
(-[BrowserAppDelegate applicationDidFinishLaunching:]):
(-[BrowserAppDelegate _updateNewWindowKeyEquivalents]):

  • MiniBrowser/mac/SettingsController.h:
  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController toggleCreateEditorByDefault:]):
(-[SettingsController createEditorByDefault]):
Add a setting and update the key equivalents accordingly.
Also make sure to make the right kind of window on launch.

3:39 PM Changeset in webkit [210493] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Avoid triggering rebuilds for minor changes of CSSProperties.json
https://bugs.webkit.org/show_bug.cgi?id=166810

Reviewed by Daniel Bates.

We expect to make lots of metadata-related changes to CSSProperties.json, and
these should not trigger rebuilds.

Have makeprop.pl write to temporary files first, then only replace the generated
files if the contents differ.

  • css/makeprop.pl:

(replaceFileIfChanged):

2:08 PM Changeset in webkit [210492] by Darin Adler
  • 27 edits in trunk/Source

Remove PassRefPtr use from "inspector", "platform/sql", and "platform/text"
https://bugs.webkit.org/show_bug.cgi?id=166797

Reviewed by Alex Christensen.

Source/WebCore:

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::performOpenAndVerify): Pass a reference instead of a pointer.

  • dom/Document.cpp:

(WebCore::canonicalizedTitle): Map backslashes to currency symbols inside the
existing loop through the characters instead of calling a function confusingly
named "displayBuffer" to do it. More straightforward, possibly more efficient,
one less function.
(WebCore::Document::displayStringModifiedByEncoding): Call replace to map
backslashes to currency symbols instead of calling a special displayString
function. There was no real benefit to using that function; the String::replace
function has all the same optimizations, and this was also the only call site.

  • editing/SpellChecker.cpp:

(WebCore::SpellChecker::invokeRequest): Pass a reference instead of a pointer.

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::overlayPage): Call createEmptyEditorClient instead
of using the class EmptyEditorClient directly.

  • loader/EmptyClients.cpp: Moved most of the empty clients here from the header.

Also made lots more things private.
(WebCore::createEmptyEditorClient): Added.
(WebCore::emptyDiagnosticLoggingClient): Added.

  • loader/EmptyClients.h: Updated for above changes. Made more things private.
  • page/DatabaseProvider.h: Removed unneeded include.
  • page/MainFrame.cpp: Ditto.
  • page/Page.cpp:

(WebCore::Page::diagnosticLoggingClient): Call emptyDiagnosticLoggingClient
instead of using the class EmptyDiagnosticLoggingClient directly.

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::setAuthorizer): Take a reference instead of a
PassRefPtr.

  • platform/sql/SQLiteDatabase.h: Updated for above.
  • platform/text/BidiContext.cpp:

(WebCore::BidiContext::BidiContext): Moved this function here from the header.
(WebCore::copyContextAndRebaselineLevel): Return a Ref instead of a PassRefPtr,
and take a reference rather than a raw pointer.
(WebCore::BidiContext::copyStackRemovingUnicodeEmbeddingContexts): Return a
Ref instead of a PassRefPtr.

  • platform/text/BidiContext.h: Updated for the above changes.
  • platform/text/BidiResolver.h: Simplify initialization, use more references,

auto, modern for loops, refer to derived class as that rather than the non-C++
term subclass.

  • platform/text/TextCheckerClient.h: Changd argument from PassRefPtr to a

reference.

  • platform/text/TextEncoding.h:

(WebCore::TextEncoding::displayString): Deleted.
(WebCore::TextEncoding::displayBuffer): Deleted.

  • rendering/RootInlineBox.cpp: Style tweaks and use a modern for loop.
  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged): Call createEmptyEditorClient instead
of using the class EmptyEditorClient directly.

Source/WebKit/mac:

  • WebCoreSupport/WebEditorClient.h: Updated to take a reference.
  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::requestCheckingOfString): Take a reference
instead of a PassRefPtr.

Source/WebKit/win:

  • WebCoreSupport/WebEditorClient.h: Update argument to take a reference

instead of a PassRefPtr.

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::requestCheckingOfString): Take a reference
instead of a PassRefPtr.

  • WebProcess/WebCoreSupport/WebEditorClient.h: Updated for above change.
1:29 PM Changeset in webkit [210491] by aestes@apple.com
  • 16 edits
    9 adds
    21 deletes in trunk

[QuickLook] Update quicklook test expectations
https://bugs.webkit.org/show_bug.cgi?id=166798
<rdar://problem/26477735>

Reviewed by Alex Christensen.

Source/WebCore:

QuickLook uses UUIDs to generate x-apple-ql-id: URLs, so they will differ each time a
document is previewed. Since these URLs are included in QuickLook layout test results,
WebArchiveDumpSupport needs to replace them with predictable values when dumping a web
archive.

  • testing/cocoa/WebArchiveDumpSupport.mm:

(WebCoreTestSupport::quickLookURLReplacements): Created a static Vector of CFStringRef pairs
to store x-apple-ql-id: URLs and their replacement values.
(WebCoreTestSupport::normalizeWebResourceURL): If the URL starts with “x-apple-ql-id://”,
replace the text between the scheme and the file extension with “resource”. Store the
original URL along with its replacement in quickLookURLReplacements().
(WebCoreTestSupport::createXMLStringFromWebArchiveData): Replaced all QuickLook URLs in the
final XML text with their replacement URLs.

LayoutTests:

For documents that generate HTML previews, updated the expected results to be web archives.
Web archives capture the same information that the expected HTML files did, but allow for
easy rebasing with --reset-results.

For documents that generate PDF previews, a webarchive expected result is inappropriate
since the generated PDF will differ between runs due to changing metadata (e.g. creation
date). These tests were kept as reftests but with updated expected results.

  • platform/ios-simulator/TestExpectations: Unskipped quicklook/.
  • quicklook/excel-expected.html: Removed.
  • quicklook/excel-expected.txt: Added.
  • quicklook/excel-legacy-expected.html: Removed.
  • quicklook/excel-legacy-expected.txt: Added.
  • quicklook/excel-legacy.html: Updated to dump as webarchive.
  • quicklook/excel.html: Ditto.
  • quicklook/keynote-09-expected.html: Removed.
  • quicklook/keynote-09-expected.txt: Added.
  • quicklook/keynote-09.html: Updated to dump as webarchive.
  • quicklook/numbers-09-expected.html: Removed.
  • quicklook/numbers-09-expected.txt: Added.
  • quicklook/numbers-09.html: Updated to dump as webarchive.
  • quicklook/pages-09-expected.html: Removed.
  • quicklook/pages-09-expected.txt: Added.
  • quicklook/pages-09.html: Updated to dump as webarchive.
  • quicklook/powerpoint-expected.html: Removed.
  • quicklook/powerpoint-expected.txt: Added.
  • quicklook/powerpoint-legacy-expected.html: Removed.
  • quicklook/powerpoint-legacy-expected.txt: Added.
  • quicklook/powerpoint-legacy.html: Updated to dump as webarchive.
  • quicklook/powerpoint.html: Updated to dump as webarchive.
  • quicklook/resources/excel-expected.html: Removed.
  • quicklook/resources/excel-legacy-expected.html: Removed.
  • quicklook/resources/keynote-09-expected/index.css: Removed.
  • quicklook/resources/keynote-09-expected/index.html: Removed.
  • quicklook/resources/keynote-09-expected/index.js: Removed.
  • quicklook/resources/keynote-expected.pdf: Updated.
  • quicklook/resources/numbers-09-expected/canvas.js: Removed.
  • quicklook/resources/numbers-09-expected/index.html: Removed.
  • quicklook/resources/numbers-09-expected/navigation.css: Removed.
  • quicklook/resources/numbers-09-expected/navigation.html: Removed.
  • quicklook/resources/numbers-09-expected/sheet_1.html: Removed.
  • quicklook/resources/numbers-expected.pdf: Updated.
  • quicklook/resources/pages-09-expected/index.css: Removed.
  • quicklook/resources/pages-09-expected/index.html: Removed.
  • quicklook/resources/pages-expected.pdf: Updated.
  • quicklook/resources/powerpoint-expected.html: Removed.
  • quicklook/resources/powerpoint-legacy-expected.html: Removed.
  • quicklook/resources/webkit-icon.pdf: Removed.
  • quicklook/resources/webkit-icon.png: Removed.
  • quicklook/resources/webkit-icon.tiff: Removed.
  • quicklook/resources/word-expected.html: Removed.
  • quicklook/resources/word-legacy-expected.html: Removed.
  • quicklook/word-expected.html: Removed.
  • quicklook/word-expected.txt: Added.
  • quicklook/word-legacy-expected.html: Removed.
  • quicklook/word-legacy-expected.txt: Added.
  • quicklook/word-legacy.html: Updated to dump as webarchive.
  • quicklook/word.html: Updated to dump as webarchive.
1:23 PM Changeset in webkit [210490] by timothy_horton@apple.com
  • 3 edits in trunk/Tools

Fix the 32-bit build.

  • MiniBrowser/mac/BrowserWindowController.h:
  • MiniBrowser/mac/BrowserWindowController.m:
1:18 PM Changeset in webkit [210489] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Fix the 32-bit build.

  • MiniBrowser/mac/BrowserWindowController.m:
1:15 PM Changeset in webkit [210488] by timothy_horton@apple.com
  • 3 edits in trunk/Tools

Make it possible to drop HTML files on the MiniBrowser icon
https://bugs.webkit.org/show_bug.cgi?id=166802

Reviewed by Simon Fraser.

  • MiniBrowser/mac/AppDelegate.m:

(-[BrowserAppDelegate application:openFile:]):

  • MiniBrowser/mac/Info.plist:

If you're using an editable window, the usual trick of dropping on the
window doesn't work anymore (it makes an <attachment> instead).

1:13 PM Changeset in webkit [210487] by timothy_horton@apple.com
  • 3 edits in trunk/Tools

MiniBrowser window gets smaller each time it is instantiated
https://bugs.webkit.org/show_bug.cgi?id=166807

Reviewed by Andy Estes.

  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController windowDidLoad]):

  • MiniBrowser/mac/BrowserWindow.xib:

Turn on full-window content view support with IB, instead of waiting
until after the views have been loaded. This seems to resolve the
longstanding ever-shrinking-window problem.

1:12 PM Changeset in webkit [210486] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Add indent/outdent items to MiniBrowser's new format menu
https://bugs.webkit.org/show_bug.cgi?id=166805

Reviewed by Dan Bernstein.

  • MiniBrowser/mac/MainMenu.xib:
1:11 PM Changeset in webkit [210485] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Add a stock Format menu to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=166804

Reviewed by Andy Estes.

  • MiniBrowser/mac/MainMenu.xib:

Many of the features automatically work with editable web views.
However, this seems to expose a bug where none of the font-related features
(Cmd-B, for example) work until the first time the font panel is shown,
per process, which will need to be investigated separately.

1:11 PM Changeset in webkit [210484] by timothy_horton@apple.com
  • 6 edits in trunk/Tools

Remove unused applicationWillTerminate methods from MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=166803

Reviewed by Andy Estes.

  • MiniBrowser/mac/AppDelegate.m:

(-[BrowserAppDelegate applicationWillTerminate:]): Deleted.

  • MiniBrowser/mac/BrowserWindowController.h:
  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController applicationTerminating]): Deleted.

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController applicationTerminating]): Deleted.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController applicationTerminating]): Deleted.

1:10 PM Changeset in webkit [210483] by timothy_horton@apple.com
  • 8 edits in trunk/Tools

Add the ability to create empty contentEditable windows in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=166801

Reviewed by Wenson Hsieh.

  • MiniBrowser/mac/AppDelegate.h:
  • MiniBrowser/mac/AppDelegate.m:

(-[BrowserAppDelegate createBrowserWindowController:]):
(-[BrowserAppDelegate newWindow:]):
(-[BrowserAppDelegate newEditorWindow:]):
(-[BrowserAppDelegate openDocument:]):
(-[BrowserAppDelegate _updateNewWindowKeyEquivalents]):

  • MiniBrowser/mac/BrowserWindowController.h:
  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController loadHTMLString:]):
(-[BrowserWindowController toggleEditable:]):

  • MiniBrowser/mac/MainMenu.xib:
  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController awakeFromNib]):
(-[WK1BrowserWindowController loadHTMLString:]):
(-[WK1BrowserWindowController validateMenuItem:]):
(-[WK1BrowserWindowController setEditable:]):
(-[WK1BrowserWindowController updateTitle:]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController awakeFromNib]):
(-[WK2BrowserWindowController validateMenuItem:]):
(-[WK2BrowserWindowController setEditable:]):
(-[WK2BrowserWindowController updateTitle:]):
(-[WK2BrowserWindowController loadHTMLString:]):
Merge more functionality from WebEditingTester.
Add two menu items for creating empty editable WebKit1/2 windows.
Add a menu item to the Edit menu to toggle editability on any window.

1:09 PM Changeset in webkit [210482] by timothy_horton@apple.com
  • 7 edits in trunk/Tools

Implement find-in-page in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=166799

Reviewed by Andy Estes.

  • MiniBrowser/mac/BrowserWindow.xib:
  • MiniBrowser/mac/BrowserWindowController.h:
  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController find:]): Deleted.

  • MiniBrowser/mac/MainMenu.xib:
  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController toggleShrinkToFit:]):
(-[WK1BrowserWindowController find:]): Deleted.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController awakeFromNib]):
(-[WK2BrowserWindowController dealloc]):
(-[WK2BrowserWindowController validateMenuItem:]):
(-[WK2BrowserWindowController performTextFinderAction:]):
(-[WK2BrowserWindowController findBarView]):
(-[WK2BrowserWindowController setFindBarView:]):
(-[WK2BrowserWindowController isFindBarVisible]):
(-[WK2BrowserWindowController setFindBarVisible:]):
(-[WK2BrowserWindowController contentView]):
(-[WK2BrowserWindowController findBarViewDidChangeHeight]):
(-[WK2BrowserWindowController performFindPanelAction:]): Deleted.
(-[WK2BrowserWindowController find:]): Deleted.
Implement find-in-page using WKWebView's conformance to the NSTextFinderClient
protocol. At first glance, it's pretty broken, but vaguely works.

1:08 PM Changeset in webkit [210481] by timothy_horton@apple.com
  • 4 edits in trunk/Tools

Share the implementation of MiniBrowser view hiding functionality
https://bugs.webkit.org/show_bug.cgi?id=166800

Reviewed by Andy Estes.

  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController showHideWebView:]):
(-[BrowserWindowController removeReinsertWebView:]):

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController showHideWebView:]): Deleted.
(-[WK1BrowserWindowController removeReinsertWebView:]): Deleted.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController showHideWebView:]): Deleted.
(-[WK2BrowserWindowController removeReinsertWebView:]): Deleted.
Move the implementation of these two things to the shared superclass,
since they don't depend on WebKit-specific things.
Also, there was no reason to retain the (WK)WebView while it was unparented,
as the BrowserWindowController maintains a reference the entire time.

1:00 PM Changeset in webkit [210480] by aestes@apple.com
  • 16 edits in trunk/Source

[QuickLook] Consolidate usage of QuickLookHandle into SubresourceLoader
https://bugs.webkit.org/show_bug.cgi?id=166713

Reviewed by Alex Christensen.

Source/WebCore:

QuickLook conversion was originally implemented by intercepting document loads at the
ResourceHandle level, with separate paths for NSURLConnection and CFURLConnection handles.
When QuickLook was ported to WebKit2, a third path was added in WebResourceLoader.

This change removes these three separate paths and implements a single conversion path in
SubresourceLoader, where QuickLook can intercept document loads regardless of the networking
API being used.

No change in behavior. Covered by existing tests.

  • loader/ResourceLoader.h: Removed override from didCreateQuickLookHandle() since this

function is no longer declared in ResourceHandleClient.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::shouldCreateQuickLookHandleForResponse): Added a helper
function to check if a QuickLookHandle should be created for a response.
(WebCore::SubresourceLoader::didReceiveResponse): Created a QuickLookHandle if necessary
and stored it in the DocumentLoader.
(WebCore::SubresourceLoader::didReceiveData): If there is a QuickLookHandle, call
QuickLookHandle::didReceiveBuffer(), and return early if QuickLook is converting.
(WebCore::SubresourceLoader::didReceiveBuffer): Ditto for QuickLookHandle::didReceiveBuffer().
(WebCore::SubresourceLoader::didFinishLoading): Ditto for QuickLookHandle::didFinishLoading().
(WebCore::SubresourceLoader::didFail): If there is a QuickLookHandle, call QuickLookHandle::didFail().

  • loader/SubresourceLoader.h: Declared shouldCreateQuickLookHandleForResponse().
  • loader/ios/QuickLook.h: Removed declarations used by the ResourceHandles and declared new

functions used by SubresourceLoader.

  • loader/ios/QuickLook.mm:

(WebCore::QuickLookHandle::QuickLookHandle): Removed the NSURLConnection * parameter, since
we’d now always pass nil.
(WebCore::QuickLookHandle::create): Removed create() functions used by ResourceHandles.
(WebCore::QuickLookHandle::didReceiveData): Added. Copies the data into an NSData, wraps it
in an NSArray, and passes it to didReceiveDataArray().
(WebCore::QuickLookHandle::didReceiveBuffer): Added. Creates a NSArray of NSData from the
SharedBuffer and passes it to didReceiveDataArray().
(-[WebQuickLookHandleAsDelegate initWithConnectionDelegate:]): Deleted.
(-[WebQuickLookHandleAsDelegate connection:didReceiveDataArray:]): Deleted.
(-[WebQuickLookHandleAsDelegate connection:didReceiveData:lengthReceived:]): Deleted.
(-[WebQuickLookHandleAsDelegate connectionDidFinishLoading:]): Deleted.
(-[WebQuickLookHandleAsDelegate connection:didFailWithError:]): Deleted.
(-[WebQuickLookHandleAsDelegate detachHandle]): Deleted.
(WebCore::QuickLookHandle::cfResponse): Deleted.
(WebCore::QuickLookHandle::didReceiveDataArray): Passed dataArray to m_converter and m_client.

  • platform/SharedBuffer.h: Const-qualified createNSDataArray().
  • platform/cocoa/SharedBufferCocoa.mm:

(WebCore::SharedBuffer::createNSDataArray): Ditto.

  • platform/network/ResourceHandle.cpp: Stopped including QuickLook.h.
  • platform/network/ResourceHandle.h: Removed m_quickLook.

(WebCore::ResourceHandle::quickLookHandle): Deleted.

  • platform/network/ResourceHandleClient.h:

(WebCore::ResourceHandleClient::didCreateQuickLookHandle): Deleted.

  • platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:

(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse): Removed QuickLook code.
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveData): Ditto.
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didFinishLoading): Ditto.
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didFail): Ditto.
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveDataArray): Ditto.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::setQuickLookHandle): Deleted.

  • platform/network/mac/WebCoreResourceHandleAsDelegate.mm:

(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): Removed QuickLook code.
(-[WebCoreResourceHandleAsDelegate connection:didReceiveDataArray:]): Ditto.
(-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]): Ditto.
(-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]): Ditto.
(-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]): Ditto.

Source/WebKit2:

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveResponse): Removed QuickLook code.
(WebKit::WebResourceLoader::didReceiveData): Ditto.
(WebKit::WebResourceLoader::didFinishResourceLoad): Ditto.
(WebKit::WebResourceLoader::didFailResourceLoad): Ditto.
(WebKit::WebResourceLoader::didReceiveResource): Ditto.

10:51 AM Changeset in webkit [210479] by aestes@apple.com
  • 2 edits in trunk/Tools

Another attempt to fix the Mac CMake build after r210467.

  • DumpRenderTree/PlatformMac.cmake:
  • WebKitTestRunner/PlatformMac.cmake:
10:30 AM Changeset in webkit [210478] by aestes@apple.com
  • 1 edit in trunk/Source/WebCore/testing/cocoa/WebArchiveDumpSupport.h

Attempt to fix the Mac CMake build after r210467.

  • testing/cocoa/WebArchiveDumpSupport.h:
5:55 AM Changeset in webkit [210477] by aestes@apple.com
  • 1 edit in trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

Attempt to fix the iOS Production build after r210467.

  • WebCore.xcodeproj/project.pbxproj:

Jan 6, 2017:

11:53 PM Changeset in webkit [210476] by sbarati@apple.com
  • 23 edits
    4 adds in trunk

Add a slice intrinsic to the DFG/FTL
https://bugs.webkit.org/show_bug.cgi?id=166707

Reviewed by Filip Pizlo.

JSTests:

  • stress/array-slice-intrinsic.js: Added.

(assert):
(shallowEq):
(runTest1):
(runTest2):

  • stress/array-slice-jettison-on-constructor-change.js: Added.

(assert):
(runTest1):
(runTest2):
(addRandomProperties):
(runTests):

  • stress/array-slice-osr-exit-2.js: Added.

(assert):
(Foo):
(shallowEq):
(runTest1):
(runTest2):
(addRandomProperties):
(runTests):

  • stress/array-slice-osr-exit.js: Added.

(assert):
(Foo):
(shallowEq):
(runTest1):
(runTest2):
(addRandomProperties):
(runTests):

Source/JavaScriptCore:

The gist of this patch is to inline Array.prototype.slice
into the DFG/FTL. The implementation in the DFG-backend
and FTLLowerDFGToB3 is just a straight forward implementation
of what the C function is doing. The more interesting bits
of this patch are setting up the proper watchpoints and conditions
in the executing code to prove that its safe to skip all of the
observable JS actions that Array.prototype.slice normally does.

We perform the following proofs:

  1. Array.prototype.constructor has not changed (via a watchpoint).
  2. That Array.prototype.constructor[Symbol.species] has not changed (via a watchpoint).
  3. The global object is not having a bad time.
  4. The array that is being sliced has an original array structure.
  5. Array.prototype/Object.prototype have not transitioned.

Conditions 1, 2, and 3 are strictly required.

4 is ensuring a couple things:

  1. That a "constructor" property hasn't been added to the array

we're slicing since we're supposed to perform a Get(array, "constructor").

  1. That we're not slicing an instance of a subclass of Array.

We could relax 4.1 in the future if we find other ways to test if
the incoming array hasn't changed the "constructor" property.

I'm seeing a 5% speedup on crypto-pbkdf2 and often a 1% speedup on
the total benchmark (the results are sometimes noisy).

  • bytecode/ExitKind.cpp:

(JSC::exitKindToString):

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

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

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasHeapPrediction):
(JSC::DFG::Node::hasArrayMode):

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

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArraySlice):

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileArraySlice):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitLoadStructure):

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):
(JSC::speciesWatchpointIsValid):
(JSC::speciesConstructArray):
(JSC::arrayProtoFuncSlice):
(JSC::arrayProtoPrivateFuncConcatMemcpy):
(JSC::ArrayPrototype::initializeSpeciesWatchpoint):
(JSC::ArrayPrototypeAdaptiveInferredPropertyWatchpoint::handleFire):
(JSC::speciesWatchpointsValid): Deleted.
(JSC::ArrayPrototype::attemptToInitializeSpeciesWatchpoint): Deleted.

  • runtime/ArrayPrototype.h:

(JSC::ArrayPrototype::speciesWatchpointStatus): Deleted.
(): Deleted.

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

(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::arraySpeciesWatchpoint):

11:42 PM Changeset in webkit [210475] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

Attempt to fix the EFL build following <http://trac.webkit.org/changeset/210461>
(https://bugs.webkit.org/show_bug.cgi?id=166781)

  • UIProcess/API/C/WKWebsitePolicies.cpp:

(WKWebsitePoliciesGetAutoplayPolicy): Invoke ASSERT_NOT_REACHED() and return kWKWebsiteAutoplayPolicyUseHeuristics
if the specified policy is not covered by a switch case.
(WKWebsitePoliciesSetAutoplayPolicy): Substituted "return" for "break" in each switch case and
invoke ASSERT_NOT_REACHED() if the specified policy is not covered by a switch case.

11:14 PM Changeset in webkit [210474] by dbates@webkit.org
  • 7 edits in trunk/Source/WebCore

Ensure navigation only allowed for documents not in the page cache
https://bugs.webkit.org/show_bug.cgi?id=166773
<rdar://problem/29762809>

Reviewed by Brent Fulgham.

It is wise to ensure that navigation is only allowed when initiated from a document that
is not in- or about to be put in- the page cache. Such a navigation would surprise a
person that had navigated away from the initiating document among other issues.

  • dom/Document.cpp:

(WebCore::Document::canNavigate): Only allow navigation if the document is not in the
page cache.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick): Ditto.

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::handleClick): Ditto.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected): Assert triggering event's document is not in the
page cache.
(WebCore::FrameLoader::submitForm): Allow submission if the document is not in the
page cache.
(WebCore::FrameLoader::loadFrameRequest): Assert triggering event's document is not in
the page cache.

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::defaultEventHandler): Only allow navigation if the document is
not in the page cache.

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::defaultEventHandler): Ditto.

11:12 PM Changeset in webkit [210473] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Crash in WebCore::MediaPlayerPrivateMediaSourceAVFObjC::sizeWillChangeAtTime(const MediaTime&, const FloatSize&)::block_invoke
https://bugs.webkit.org/show_bug.cgi?id=166738

Reviewed by Eric Carlson.

AVFoundation can potentially call the same boundary time observer multiple times, and
in that case, it's possible that the observer queue will be empty when we attempt
to remove the first item from the queue. There's an ASSERT() in Deque for this case,
but we need to explicitly protect against this case.

Drive-by fix: Explicitly unregister the observer before releasing it.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::sizeWillChangeAtTime):

10:53 PM Changeset in webkit [210472] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION(r208886) Web Inspector: Toggling CSS Properties in Styles Sidebar (comment / uncomment)
https://bugs.webkit.org/show_bug.cgi?id=166786
<rdar://problem/29767412>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-06
Reviewed by Brian Burg.

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyle::populateAllProperties):
Match earlier behavior and don't send the frontend information about
disabled (commented out) properties. Follow-up later to send this
information when implementing proper handling of them in the frontend.

10:52 PM Changeset in webkit [210471] by Chris Dumez
  • 2 edits in trunk/LayoutTests/imported/w3c

Unreviewed, rebaseline W3C test after r210468.

The test now fails differently due the the behavior change in r210468.
The test fails because we do not support History.scrollRestoration.

  • web-platform-tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin-expected.txt:
10:19 PM Changeset in webkit [210470] by weinig@apple.com
  • 6 edits in trunk/Source/WebCore

[WebIDL] Remove custom bindings from CanvasRenderingContext2D
https://bugs.webkit.org/show_bug.cgi?id=166793

Reviewed by Darin Adler.

  • WebCore.xcodeproj/project.pbxproj:

Move JSCanvasRenderingContext2DCustom.cpp to the GC only group.

  • bindings/js/JSCanvasRenderingContext2DCustom.cpp:

(WebCore::toJS): Deleted.
(WebCore::toHTMLCanvasStyle): Deleted.
(WebCore::JSCanvasRenderingContext2D::strokeStyle): Deleted.
(WebCore::JSCanvasRenderingContext2D::setStrokeStyle): Deleted.
(WebCore::JSCanvasRenderingContext2D::fillStyle): Deleted.
(WebCore::JSCanvasRenderingContext2D::setFillStyle): Deleted.
Remove non-GC related custom bindings.

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::setStrokeStyle):
(WebCore::CanvasRenderingContext2D::setFillStyle):
(WebCore::toStyle):
(WebCore::CanvasRenderingContext2D::strokeStyle):
(WebCore::CanvasRenderingContext2D::fillStyle):

  • html/canvas/CanvasRenderingContext2D.h:
  • html/canvas/CanvasRenderingContext2D.idl:

Made existing setStrokeStyle/setFillStyle functions (which take CanvasStyle's)
private, and implemented new ones that operate on Variants, matching the spec.

9:23 PM Changeset in webkit [210469] by Darin Adler
  • 17 edits in trunk/Source/WebCore

Remove PassRefPtr use from "rendering" directory, other improvements
https://bugs.webkit.org/show_bug.cgi?id=166717

Reviewed by Sam Weinig.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::shapePropertyValue): Use auto.

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::image): Use auto. Pass references.
(WebCore::CSSFilterImageValue::filterImageChanged): Use modern for loop.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertShapeValue): Use overloaded
ShapeValue::create function instead of differently named functions.

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc): Ditto.

  • platform/graphics/filters/Filter.h: Added a protected constructor that takes

a filter resolution.

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::FilterEffectRenderer): Use new constructor so
we don't have to call setFilterResolution and can initialize m_sourceGraphic.
(WebCore::FilterEffectRenderer::create): Moved here from the header.
(WebCore::FilterEffectRenderer::buildReferenceFilter): Take references and not
PssRefPtr. Use auto and references.
(WebCore::FilterEffectRenderer::build): Take a reference. Updated to work with
references rather than pointer. Use auto.
(WebCore::FilterEffectRenderer::allocateBackingStoreIfNeeded): Use early return.
(WebCore::FilterEffectRenderer::clearIntermediateResults): Use modern for loop.
(WebCore::FilterEffectRenderer::apply): Use references.
(WebCore::FilterEffectRenderer::output): Moved here from header.
(WebCore::FilterEffectRenderer::setMaxEffectRects): Moved here from header.
(WebCore::FilterEffectRenderer::outputRect): Moved here from header.
(WebCore::FilterEffectRendererHelper::prepareFilterEffect): Take references.
(WebCore::FilterEffectRendererHelper::beginFilterEffect): Use auto and references.
(WebCore::FilterEffectRendererHelper::applyFilterEffect): Ditto.

  • rendering/FilterEffectRenderer.h: Updated for the above changes. Made a lot more

things private.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::filterPainter): Added. Helper so setupFilters does not
have to do things twice.
(WebCore::RenderLayer::hasFilterThatIsPainting): Updated to call filterPainter.
(WebCore::RenderLayer::setupFilters): Ditto.
(WebCore::RenderLayer::calculateClipRects): Pass reference.

  • rendering/RenderLayer.h: Updated for the above changes.
  • rendering/style/ContentData.cpp:

(WebCore::ContentData::clone): Use auto.
(WebCore::ImageContentData::createContentRenderer): Updated for reference.

  • rendering/style/ContentData.h: Use Ref&& instead of PassRefPtr. Made more

things private.

  • rendering/style/NinePieceImage.cpp:

(WebCore::NinePieceImage::defaultData): Made this a static member so it can
get at the now-private class NinePieceImage::Data.
(WebCore::NinePieceImage::NinePieceImage): Use RefPtr&& instead of PassRefPtr.
Use construction instead of calling m_data.access() over and over again.
(WebCore::NinePieceImage::Data::Data): Renamed from NinePieceImageData.
Moved initialization to class definition. Added a new overload for the normal
creation case.
(WebCore::NinePieceImage::Data::create): Ditto.
(WebCore::NinePieceImage::Data::copy): Ditto.
(WebCore::NinePieceImage::Data::operator==): Ditto.

  • rendering/style/NinePieceImage.h: Cut down on includes. Moved the class

named NinePieceImageData in to become the private struct NinePieceImage::Data.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setContent): Pass Ref&& instead of RefPtr&& when
creating ImageContentData.

  • rendering/style/ShapeValue.cpp:

(WebCore::ShapeValue::isImageValid): Tighten up by using data member directly
and using a local variabel.
(WebCore::pointersOrValuesEqual): Deleted.
(WebCore::ShapeValue::operator==): Use arePointingToEqualData instead the
above deleted function template. Wrote as a single return statement for clarity.

  • rendering/style/ShapeValue.h: Changed all the create function names to just

create, using overloading instead of separate names. Use Ref&& instead of PassRefPtr.
Removed unused constructor that took a type but no data.

8:02 PM Changeset in webkit [210468] by Chris Dumez
  • 8 edits
    3 adds in trunk

Regression(r189230): DOM Callbacks may use wrong global object
https://bugs.webkit.org/show_bug.cgi?id=166784

Reviewed by Mark Lam.

Source/WebCore:

DOM Callbacks could end up using the wrong global object after r189230
because we were getting the globalObject from the callback object
instead of the one at the point the callback object was passed in by
JavaScript. This patch fixes the issue.

Test: fast/frames/frame-window-as-callback.html

  • bindings/js/JSCallbackData.cpp:

(WebCore::JSCallbackData::invokeCallback):

  • bindings/js/JSCallbackData.h:

(WebCore::JSCallbackData::globalObject):
(WebCore::JSCallbackData::JSCallbackData):
(WebCore::JSCallbackDataStrong::JSCallbackDataStrong):
(WebCore::JSCallbackDataStrong::callback):
(WebCore::JSCallbackDataStrong::invokeCallback):
(WebCore::JSCallbackDataWeak::JSCallbackDataWeak):
(WebCore::JSCallbackDataWeak::callback):
(WebCore::JSCallbackDataWeak::invokeCallback):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateCallbackImplementationContent):

LayoutTests:

Add layout test coverage.

  • fast/frames/frame-window-as-callback-expected.txt: Added.
  • fast/frames/frame-window-as-callback.html: Added.
  • fast/frames/resources/wrong-global-object.html: Added.
7:49 PM Changeset in webkit [210467] by aestes@apple.com
  • 12 edits
    1 copy
    2 adds
    4 deletes in trunk

[Cocoa] Consolidate duplicate copies of WebArchiveDumpSupport in DRT and WKTR into WebCoreTestSupport
https://bugs.webkit.org/show_bug.cgi?id=166789

Reviewed by Alex Christensen.

Source/WebCore:

There were duplicate implementations of WebArchiveDumpSupport in DumpRenderTree and
WebKitTestRunner. This change consolidates these into a single implementation in
WebCoreTestSupport.

  • PlatformMac.cmake: Added WebArchiveDumpSupport.mm to WebCoreTestSupport.
  • WebCore.xcodeproj/project.pbxproj: Ditto. Also made WebArchiveDumpSupport.h a Private header.
  • platform/spi/cf/CFNetworkSPI.h: Moved CFNetwork forward declarations from

WebArchiveDumpSupport to here.

  • testing/cocoa/WebArchiveDumpSupport.h: Added.
  • testing/cocoa/WebArchiveDumpSupport.mm: Merged WebArchiveDumpSupport.cpp and

WebArchiveDumpSupport{Cocoa,Mac}.mm into a single file.

Tools:

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • DumpRenderTree/PlatformMac.cmake:
  • DumpRenderTree/cf/WebArchiveDumpSupport.cpp: Removed.
  • DumpRenderTree/cf/WebArchiveDumpSupport.h: Removed.
  • DumpRenderTree/mac/DumpRenderTree.mm:

Called WebCoreTestSupport::createXMLStringFromWebArchiveData() instead of
createXMLStringFromWebArchiveData().

  • DumpRenderTree/mac/WebArchiveDumpSupportMac.mm: Removed.
  • WebKitTestRunner/Configurations/Base.xcconfig:

Added $(BUILT_PRODUCTS_DIR)/WebCoreTestSupport to HEADER_SEARCH_PATHS.

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::dumpDOMAsWebArchive):
Called WebCoreTestSupport::createXMLStringFromWebArchiveData() instead of
createXMLStringFromWebArchiveData().

  • WebKitTestRunner/InjectedBundle/cocoa/WebArchiveDumpSupportCocoa.mm: Removed.
  • WebKitTestRunner/PlatformMac.cmake:
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/cf/WebArchiveDumpSupport.h: Removed.
6:59 PM Changeset in webkit [210466] by timothy_horton@apple.com
  • 8 edits in trunk

Minor cleanups to IndentOutdentCommand and related code
https://bugs.webkit.org/show_bug.cgi?id=166791

Reviewed by Simon Fraser.

Source/WebCore:

  • editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::IndentOutdentCommand):
(WebCore::IndentOutdentCommand::outdentRegion):

  • editing/IndentOutdentCommand.h:

(WebCore::IndentOutdentCommand::create):
Remove the unused m_marginInPixels and fix the copyright header.

Tools:

  • WebEditingTester/EditingOperations.m:

(editingOperations):
Add the outdent operation to WebEditingTester.

LayoutTests:

  • editing/execCommand/19653-1-expected.txt:
  • editing/execCommand/19653-1.html:

Adjust this indenting test. It had a mislabeled test case (it outdents, not indents),
and also was copy-pasted wrong (it wasn't indented in the first place).

However, since this technically reduces test coverage, keep the existing
(but now correctly labeled) test case, since it caught a bug in code I was changing.

6:41 PM Changeset in webkit [210465] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Fix WinCairo build after r210319.
https://bugs.webkit.org/show_bug.cgi?id=166635

  • DerivedSources.cpp:

A toJS call was ambiguous, but only if the generated IndexedDB bindings are compiled all-in-one in DerivedSources.cpp.
Compiling these few files separately (which happens automatically in the CMake build) fixes the build and won't increase
the total object files beyond MSVC's current 2GB limit.

  • bindings/js/JSWebGLRenderingContextBaseCustom.cpp:

(WebCore::JSWebGLRenderingContextBaseOwner::isReachableFromOpaqueRoots):
Unknown was an ambiguous symbol. It's also defined in winioctl.h.

6:13 PM Changeset in webkit [210464] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-603.1.19

New tag.

5:41 PM Changeset in webkit [210463] by commit-queue@webkit.org
  • 1 edit
    2 moves in trunk/Tools

Create a plan and a patch files for MotionMark and delete the Animometer's ones
https://bugs.webkit.org/show_bug.cgi?id=166785

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-01-06
Reviewed by Ryosuke Niwa.

  • Scripts/webkitpy/benchmark_runner/data/patches/MotionMark.patch: Renamed from Tools/Scripts/webkitpy/benchmark_runner/data/patches/Animometer.patch.
  • Scripts/webkitpy/benchmark_runner/data/plans/motionmark.plan: Renamed from Tools/Scripts/webkitpy/benchmark_runner/data/plans/animometer.plan.
5:20 PM Changeset in webkit [210462] by matthew_hanson@apple.com
  • 3 edits in tags/Safari-603.1.18.0.1/Source/JavaScriptCore

Merge r210458. rdar://problem/29761198

5:06 PM Changeset in webkit [210461] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebKit2

Add infrastructure for sending autoplay website policies to WebKit
https://bugs.webkit.org/show_bug.cgi?id=166781

Patch by Matt Rajca <mrajca@apple.com> on 2017-01-06
Reviewed by Alex Christensen.

  • Shared/WebsitePolicies.h:

(WebKit::WebsitePolicies::encode):
(WebKit::WebsitePolicies::decode):

  • UIProcess/API/APIWebsitePolicies.h:
  • UIProcess/API/C/WKWebsitePolicies.cpp:

(WKWebsitePoliciesGetAutoplayPolicy):
(WKWebsitePoliciesSetAutoplayPolicy):

  • UIProcess/API/C/WKWebsitePolicies.h:
  • UIProcess/API/Cocoa/_WKWebsitePolicies.h:
  • UIProcess/API/Cocoa/_WKWebsitePolicies.mm:

(-[_WKWebsitePolicies setAutoplayPolicy:]):
(-[_WKWebsitePolicies autoplayPolicy]):

4:34 PM Changeset in webkit [210460] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Unreviewed, rolling out r210110.
https://bugs.webkit.org/show_bug.cgi?id=166783

Introduced a regression commenting out individual properties
(Requested by JoePeck on #webkit).

Reverted changeset:

"Web Inspector: Styles sidebar: Uncommenting CSS rules of
pseudo-elements doesn't work"
https://bugs.webkit.org/show_bug.cgi?id=165831
http://trac.webkit.org/changeset/210110

3:38 PM Changeset in webkit [210459] by commit-queue@webkit.org
  • 1 edit
    108 copies
    18 adds
    1 delete in trunk/PerformanceTests

Rename the directory and the files of MotionMark from Animometer to MotionMark
https://bugs.webkit.org/show_bug.cgi?id=166659

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-01-06
Reviewed by Jon Lee.

Rename the directory and the files of the benchmark to its new name.

  • MotionMark/developer.html: Renamed from PerformanceTests/Animometer/developer.html.
  • MotionMark/index.html: Renamed from PerformanceTests/Animometer/index.html.
  • MotionMark/resources/debug-runner/d3.min.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/d3.min.js.
  • MotionMark/resources/debug-runner/graph.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/graph.js.
  • MotionMark/resources/debug-runner/motionmark.css: Renamed from PerformanceTests/Animometer/resources/debug-runner/animometer.css.
  • MotionMark/resources/debug-runner/motionmark.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/animometer.js.
  • MotionMark/resources/debug-runner/tests.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/tests.js.
  • MotionMark/resources/extensions.js: Renamed from PerformanceTests/Animometer/resources/extensions.js.
  • MotionMark/resources/runner/benchmark-runner.js: Renamed from PerformanceTests/Animometer/resources/runner/benchmark-runner.js.
  • MotionMark/resources/runner/crystal.svg: Renamed from PerformanceTests/Animometer/resources/runner/crystal.svg.
  • MotionMark/resources/runner/lines.svg: Renamed from PerformanceTests/Animometer/resources/runner/lines.svg.
  • MotionMark/resources/runner/logo.svg: Renamed from PerformanceTests/Animometer/resources/runner/logo.svg.
  • MotionMark/resources/runner/motionmark.css: Renamed from PerformanceTests/Animometer/resources/runner/animometer.css.
  • MotionMark/resources/runner/motionmark.js: Renamed from PerformanceTests/Animometer/resources/runner/animometer.js.
  • MotionMark/resources/runner/tests.js: Renamed from PerformanceTests/Animometer/resources/runner/tests.js.
  • MotionMark/resources/statistics.js: Renamed from PerformanceTests/Animometer/resources/statistics.js.
  • MotionMark/resources/strings.js: Renamed from PerformanceTests/Animometer/resources/strings.js.
  • MotionMark/tests/3d/resources/webgl.js: Renamed from PerformanceTests/Animometer/tests/3d/resources/webgl.js.
  • MotionMark/tests/3d/webgl.html: Renamed from PerformanceTests/Animometer/tests/3d/webgl.html.
  • MotionMark/tests/bouncing-particles/bouncing-canvas-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-canvas-images.html.
  • MotionMark/tests/bouncing-particles/bouncing-canvas-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html.
  • MotionMark/tests/bouncing-particles/bouncing-css-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-css-images.html.
  • MotionMark/tests/bouncing-particles/bouncing-css-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-css-shapes.html.
  • MotionMark/tests/bouncing-particles/bouncing-svg-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-svg-images.html.
  • MotionMark/tests/bouncing-particles/bouncing-svg-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-svg-shapes.html.
  • MotionMark/tests/bouncing-particles/bouncing-tagged-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-tagged-images.html.
  • MotionMark/tests/bouncing-particles/resources/bouncing-canvas-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js.
  • MotionMark/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js.
  • MotionMark/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js.
  • MotionMark/tests/bouncing-particles/resources/bouncing-css-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-css-images.js.
  • MotionMark/tests/bouncing-particles/resources/bouncing-css-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js.
  • MotionMark/tests/bouncing-particles/resources/bouncing-svg-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js.
  • MotionMark/tests/bouncing-particles/resources/bouncing-svg-particles.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js.
  • MotionMark/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js.
  • MotionMark/tests/bouncing-particles/resources/bouncing-tagged-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-tagged-images.js.
  • MotionMark/tests/bouncing-particles/resources/image1.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image1.jpg.
  • MotionMark/tests/bouncing-particles/resources/image2.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image2.jpg.
  • MotionMark/tests/bouncing-particles/resources/image3.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image3.jpg.
  • MotionMark/tests/bouncing-particles/resources/image4.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image4.jpg.
  • MotionMark/tests/bouncing-particles/resources/image5.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image5.jpg.
  • MotionMark/tests/dom/compositing-transforms.html: Renamed from PerformanceTests/Animometer/tests/dom/compositing-transforms.html.
  • MotionMark/tests/dom/focus.html: Renamed from PerformanceTests/Animometer/tests/dom/focus.html.
  • MotionMark/tests/dom/leaves.html: Renamed from PerformanceTests/Animometer/tests/dom/leaves.html.
  • MotionMark/tests/dom/particles.html: Renamed from PerformanceTests/Animometer/tests/dom/particles.html.
  • MotionMark/tests/dom/resources/compositing-transforms.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/compositing-transforms.js.
  • MotionMark/tests/dom/resources/dom-particles.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/dom-particles.js.
  • MotionMark/tests/dom/resources/focus.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/focus.js.
  • MotionMark/tests/dom/resources/leaves.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/leaves.js.
  • MotionMark/tests/master/canvas-stage.html: Renamed from PerformanceTests/Animometer/tests/master/canvas-stage.html.
  • MotionMark/tests/master/focus.html: Renamed from PerformanceTests/Animometer/tests/master/focus.html.
  • MotionMark/tests/master/image-data.html: Renamed from PerformanceTests/Animometer/tests/master/image-data.html.
  • MotionMark/tests/master/leaves.html: Renamed from PerformanceTests/Animometer/tests/master/leaves.html.
  • MotionMark/tests/master/multiply.html: Renamed from PerformanceTests/Animometer/tests/master/multiply.html.
  • MotionMark/tests/master/resources/canvas-stage.js: Renamed from PerformanceTests/Animometer/tests/master/resources/canvas-stage.js.
  • MotionMark/tests/master/resources/canvas-tests.js: Renamed from PerformanceTests/Animometer/tests/master/resources/canvas-tests.js.
  • MotionMark/tests/master/resources/compass.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/compass.svg.
  • MotionMark/tests/master/resources/compass100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/compass100.png.
  • MotionMark/tests/master/resources/console.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/console.svg.
  • MotionMark/tests/master/resources/console100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/console100.png.
  • MotionMark/tests/master/resources/contribute.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/contribute.svg.
  • MotionMark/tests/master/resources/contribute100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/contribute100.png.
  • MotionMark/tests/master/resources/debugger.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/debugger.svg.
  • MotionMark/tests/master/resources/debugger100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/debugger100.png.
  • MotionMark/tests/master/resources/focus.js: Renamed from PerformanceTests/Animometer/tests/master/resources/focus.js.
  • MotionMark/tests/master/resources/image-data.js: Renamed from PerformanceTests/Animometer/tests/master/resources/image-data.js.
  • MotionMark/tests/master/resources/inspector.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/inspector.svg.
  • MotionMark/tests/master/resources/inspector100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/inspector100.png.
  • MotionMark/tests/master/resources/layout.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/layout.svg.
  • MotionMark/tests/master/resources/layout100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/layout100.png.
  • MotionMark/tests/master/resources/leaves.js: Renamed from PerformanceTests/Animometer/tests/master/resources/leaves.js.
  • MotionMark/tests/master/resources/multiply.js: Renamed from PerformanceTests/Animometer/tests/master/resources/multiply.js.
  • MotionMark/tests/master/resources/particles.js: Renamed from PerformanceTests/Animometer/tests/master/resources/particles.js.
  • MotionMark/tests/master/resources/performance.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/performance.svg.
  • MotionMark/tests/master/resources/performance100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/performance100.png.
  • MotionMark/tests/master/resources/script.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/script.svg.
  • MotionMark/tests/master/resources/script100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/script100.png.
  • MotionMark/tests/master/resources/shortcuts.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/shortcuts.svg.
  • MotionMark/tests/master/resources/shortcuts100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/shortcuts100.png.
  • MotionMark/tests/master/resources/standards.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/standards.svg.
  • MotionMark/tests/master/resources/standards100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/standards100.png.
  • MotionMark/tests/master/resources/storage.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/storage.svg.
  • MotionMark/tests/master/resources/storage100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/storage100.png.
  • MotionMark/tests/master/resources/styles.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/styles.svg.
  • MotionMark/tests/master/resources/styles100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/styles100.png.
  • MotionMark/tests/master/resources/svg-particles.js: Renamed from PerformanceTests/Animometer/tests/master/resources/svg-particles.js.
  • MotionMark/tests/master/resources/text.js: Renamed from PerformanceTests/Animometer/tests/master/resources/text.js.
  • MotionMark/tests/master/resources/timeline.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/timeline.svg.
  • MotionMark/tests/master/resources/timeline100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/timeline100.png.
  • MotionMark/tests/master/svg-particles.html: Renamed from PerformanceTests/Animometer/tests/master/svg-particles.html.
  • MotionMark/tests/master/text.html: Renamed from PerformanceTests/Animometer/tests/master/text.html.
  • MotionMark/tests/resources/main.js: Renamed from PerformanceTests/Animometer/tests/resources/main.js.
  • MotionMark/tests/resources/math.js: Renamed from PerformanceTests/Animometer/tests/resources/math.js.
  • MotionMark/tests/resources/stage.css: Renamed from PerformanceTests/Animometer/tests/resources/stage.css.
  • MotionMark/tests/resources/star.svg: Renamed from PerformanceTests/Animometer/tests/resources/star.svg.
  • MotionMark/tests/resources/yin-yang.png: Renamed from PerformanceTests/Animometer/tests/resources/yin-yang.png.
  • MotionMark/tests/resources/yin-yang.svg: Renamed from PerformanceTests/Animometer/tests/resources/yin-yang.svg.
  • MotionMark/tests/simple/resources/simple-canvas-paths.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/simple-canvas-paths.js.
  • MotionMark/tests/simple/resources/simple-canvas.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/simple-canvas.js.
  • MotionMark/tests/simple/resources/tiled-canvas-image.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/tiled-canvas-image.js.
  • MotionMark/tests/simple/simple-canvas-paths.html: Renamed from PerformanceTests/Animometer/tests/simple/simple-canvas-paths.html.
  • MotionMark/tests/simple/tiled-canvas-image.html: Renamed from PerformanceTests/Animometer/tests/simple/tiled-canvas-image.html.
  • MotionMark/tests/template/resources/template-canvas.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-canvas.js.
  • MotionMark/tests/template/resources/template-css.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-css.js.
  • MotionMark/tests/template/resources/template-svg.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-svg.js.
  • MotionMark/tests/template/template-canvas.html: Renamed from PerformanceTests/Animometer/tests/template/template-canvas.html.
  • MotionMark/tests/template/template-css.html: Renamed from PerformanceTests/Animometer/tests/template/template-css.html.
  • MotionMark/tests/template/template-svg.html: Renamed from PerformanceTests/Animometer/tests/template/template-svg.html.
3:38 PM Changeset in webkit [210458] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

The ObjC API's JSVirtualMachine's map tables need to be guarded by a lock.
https://bugs.webkit.org/show_bug.cgi?id=166778
<rdar://problem/29761198>

Reviewed by Filip Pizlo.

Now that we have a concurrent GC, access to JSVirtualMachine's
m_externalObjectGraph and m_externalRememberedSet need to be guarded by a lock
since both the GC marker thread and the mutator thread may access them at the
same time.

  • API/JSVirtualMachine.mm:

(-[JSVirtualMachine addExternalRememberedObject:]):
(-[JSVirtualMachine addManagedReference:withOwner:]):
(-[JSVirtualMachine removeManagedReference:withOwner:]):
(-[JSVirtualMachine externalDataMutex]):
(scanExternalObjectGraph):
(scanExternalRememberedSet):

  • API/JSVirtualMachineInternal.h:
  • Deleted externalObjectGraph method. There's no need to expose this.
3:30 PM Changeset in webkit [210457] by msaboff@apple.com
  • 3 edits
    1 add in trunk

@putByValDirect in Array.of and Array.from overwrites non-writable/configurable properties
https://bugs.webkit.org/show_bug.cgi?id=153486

Reviewed by Saam Barati.

JSTests:

New regression test.

  • stress/regress-153486.js: Added.

(shouldEqual):
(makeUnwriteableUnconfigurableObject):
(testArrayOf):
(testArrayFrom):
(runTest):

Source/JavaScriptCore:

Moved read only check in putDirect() to all paths.

  • runtime/SparseArrayValueMap.cpp:

(JSC::SparseArrayValueMap::putDirect):

3:29 PM Changeset in webkit [210456] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Text highlight causes Yoon Gothic webfont to reflow.
https://bugs.webkit.org/show_bug.cgi?id=166753

Reviewed by Darin Adler.

Add word-break: keep-all; support for CJK and breaking NBSPs.

Add test later. Need to figure out what font file to use.

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::Style::Style):
(WebCore::SimpleLineLayout::TextFragmentIterator::nextBreakablePosition): Use BreakingContext's helper functions
to figure out the next breakable position.
(WebCore::SimpleLineLayout::TextFragmentIterator::skipToNextPosition):

  • rendering/SimpleLineLayoutTextFragmentIterator.h:
12:46 PM Changeset in webkit [210455] by bshafiei@apple.com
  • 2 edits in tags/Safari-603.1.18.0.1/Source/JavaScriptCore

Merge r210444. rdar://problem/29906144

12:38 PM Changeset in webkit [210454] by bshafiei@apple.com
  • 5 edits in tags/Safari-603.1.18.0.1/Source

Versioning.

12:38 PM Changeset in webkit [210453] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/text/variations/advances.html as failing on Sierra.
https://bugs.webkit.org/show_bug.cgi?id=166672

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:36 PM Changeset in webkit [210452] by bshafiei@apple.com
  • 1 copy in tags/Safari-603.1.18.0.1

New tag.

12:23 PM Changeset in webkit [210451] by fpizlo@apple.com
  • 10 edits in trunk

DeferGC::~DeferGC should be super cheap
https://bugs.webkit.org/show_bug.cgi?id=166626

Reviewed by Saam Barati.
JSTests:

  • stress/slow-path-generator-updating-current-node-dfg.js:
  • stress/unshift-array-storage.js:

Source/JavaScriptCore:


Right now, ~DeferGC requires running the collector's full collectIfNecessaryOrDefer()
hook, which is super big. Normally, that hook would only be called from GC slow paths,
so it ought to be possible to add complex logic to it. It benefits the GC algorithm to
make that code smart, not necessarily fast.

The right thing for it to do is to have ~DeferGC check a boolean to see if
collectIfNecessaryOrDefer() had previously deferred anything, and only call it if that
is true. That's what this patch does.

Unfortunately, this means that we lose the collectAccordingToDeferGCProbability mode,
which we used for two tests. Since I could only see two tests that used this mode, I
felt that it was better to enhance the GC than to keep the tests. I filed bug 166627 to
bring back something like that mode.

Although this patch does make some paths faster, its real goal is to ensure that bug
165963 can add more logic to collectIfNecessaryOrDefer() without introducing a big
regression. Until then, I wouldn't be surprised if this patch was a progression, but I'm
not betting on it.

  • heap/Heap.cpp:

(JSC::Heap::collectIfNecessaryOrDefer):
(JSC::Heap::decrementDeferralDepthAndGCIfNeededSlow):
(JSC::Heap::canCollect): Deleted.
(JSC::Heap::shouldCollectHeuristic): Deleted.
(JSC::Heap::shouldCollect): Deleted.
(JSC::Heap::collectAccordingToDeferGCProbability): Deleted.
(JSC::Heap::decrementDeferralDepthAndGCIfNeeded): Deleted.

  • heap/Heap.h:
  • heap/HeapInlines.h:

(JSC::Heap::incrementDeferralDepth):
(JSC::Heap::decrementDeferralDepth):
(JSC::Heap::decrementDeferralDepthAndGCIfNeeded):
(JSC::Heap::mayNeedToStop):
(JSC::Heap::stopIfNecessary):

  • runtime/Options.h:
12:17 PM Changeset in webkit [210450] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip editing/caret/emoji.html on ios-simulator since it relies on EventSender.keydown().

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
12:02 PM Changeset in webkit [210449] by commit-queue@webkit.org
  • 10 edits in trunk

Add some missing longhand properties to CSSComputedStyleDeclaration and fix default values
https://bugs.webkit.org/show_bug.cgi?id=166674
<rdar://problem/6026159>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-06
Reviewed by Darin Adler.

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

Add some missing longhand properties to the list of all longhand properties.

(WebCore::counterToCSSValue):
The default value for counter-increment and counter-reset should be "none"
not the empty string.

LayoutTests:

  • fast/css/getComputedStyle/computed-style-font-family.html:

Skip font-variation-settings which is only available if the feature flag is enabled.

  • fast/css/getComputedStyle/counterIncrement-without-counter-expected.txt:
  • fast/css/getComputedStyle/counterIncrement-without-counter.html:

Fix the default value to be "none" instead of the empty string.

  • svg/css/getComputedStyle-basic-expected.txt:
  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • fast/css/getComputedStyle/resources/property-names.js:

Add some always expected to be available longhand properties to check.

11:54 AM Changeset in webkit [210448] by matthew_hanson@apple.com
  • 90 edits
    80 deletes in branches/safari-603-branch

Roll out r209979-r210282 and r210259 as part of disabling Web Assembly. rdar://problem/29890343

10:55 AM Changeset in webkit [210447] by Chris Dumez
  • 9 edits
    3 adds in trunk

[Form Validation] "character" in maxlength validation message should be singular when maxlength is 1
https://bugs.webkit.org/show_bug.cgi?id=166712
<rdar://problem/29872292>

Reviewed by Darin Adler.

Source/WebCore:

Fix validation message to use singular form of "character" when maxLength value is 1.

Test: fast/forms/validation-message-maxLength.html

  • English.lproj/Localizable.strings:
  • English.lproj/Localizable.stringsdict: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • extract-localizable-strings.pl:
  • platform/LocalizedStrings.cpp:
  • platform/LocalizedStrings.h:
  • platform/cocoa/LocalizedStringsCocoa.mm:

(WebCore::localizedNString):
(WebCore::localizedString):
(WebCore::validationMessageTooLongText):

LayoutTests:

Add layout test coverage.

  • fast/forms/validation-message-maxLength-expected.txt: Added.
  • fast/forms/validation-message-maxLength.html: Added.
  • platform/ios-simulator/TestExpectations:
10:50 AM Changeset in webkit [210446] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

Support webkit-test-runner key-value pairs in http tests
https://bugs.webkit.org/show_bug.cgi?id=149812

Patch by Antoine Quint <Antoine Quint> on 2017-01-06
Reviewed by Alex Christensen.

We pass the absolute path for a test through to WKTR so that we can parse
tests that are running as URLs for webkit-test-runner options.

  • DumpRenderTree/DumpRenderTreeCommon.cpp:

(parseInputLine):

Explicitly skip the --absolute-path option in DRT or else we'd crash.

  • Scripts/webkitpy/port/driver.py:

(Driver._command_from_driver_input):

Pass the absolute path to the file through the CLI.

  • WebKitTestRunner/TestController.cpp:

(WTR::updateTestOptionsFromTestHeader):
(WTR::TestController::testOptionsForTest):
(WTR::parseInputLine):
(WTR::TestController::runTest):

  • WebKitTestRunner/TestController.h:
10:48 AM Changeset in webkit [210445] by jer.noble@apple.com
  • 16 edits
    1 copy
    2 adds in trunk

Add support for MediaKeySystemAccess.createMediaKeys()
https://bugs.webkit.org/show_bug.cgi?id=166749

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/encrypted-media/mock-MediaKeySystemAccess.html

Implement MediaKeySystemAccess::createMediaKeys(). This requires some
additions to CDM, CDMPrivate, and a new interface CDMInstance to support
eventual platform adoption and to implement mock support for testing.

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::loadAndInitialize):
(WebCore::CDM::createInstance):

  • Modules/encryptedmedia/CDM.h:
  • Modules/encryptedmedia/CDMInstance.h:

(WebCore::CDMInstance::~CDMInstance):

  • Modules/encryptedmedia/CDMPrivate.h:
  • Modules/encryptedmedia/MediaKeySystemAccess.cpp:

(WebCore::MediaKeySystemAccess::createMediaKeys):

  • Modules/encryptedmedia/MediaKeySystemAccess.h:
  • Modules/encryptedmedia/MediaKeys.cpp:

(WebCore::MediaKeys::MediaKeys):

  • Modules/encryptedmedia/MediaKeys.h:

(WebCore::MediaKeys::create):

  • Modules/encryptedmedia/MediaKeys.idl:
  • Modules/encryptedmedia/NavigatorEME.cpp:

(WebCore::tryNextSupportedConfiguration):

  • WebCore.xcodeproj/project.pbxproj:
  • testing/MockCDMFactory.cpp:

(WebCore::MockCDM::MockCDM):
(WebCore::MockCDM::createInstance):
(WebCore::MockCDM::loadAndInitialize):
(WebCore::MockCDMInstance::MockCDMInstance):
(WebCore::MockCDMInstance::initializeWithConfiguration):
(WebCore::MockCDMInstance::setDistinctiveIdentifiersAllowed):
(WebCore::MockCDMInstance::setPersistentStateAllowed):

  • testing/MockCDMFactory.h:

(WebCore::MockCDMFactory::canCreateInstances):
(WebCore::MockCDMFactory::setCanCreateInstances):
(WebCore::MockCDM::factory):

  • testing/MockCDMFactory.idl:

LayoutTests:

  • media/encrypted-media/mock-MediaKeySystemAccess-expected.txt: Added.
  • media/encrypted-media/mock-MediaKeySystemAccess.html: Added.
  • platform/mac/TestExpectations:
9:55 AM Changeset in webkit [210444] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/JavaScriptCore

Disable WebAssembly. rdar://problem/29890343

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

Add pass expectation for fast/text/emoji-num-glyphs.html on Sierra.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
9:23 AM Changeset in webkit [210442] by Ryan Haddad
  • 2 edits in branches/safari-603-branch/LayoutTests

Merge r210377.

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

Marking three pointer-lock tests as crashing on mac-wk2 debug.
https://bugs.webkit.org/show_bug.cgi?id=166765

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
7:38 AM Changeset in webkit [210440] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/JSTests

Merge r210285. rdar://problem/29779182

7:38 AM Changeset in webkit [210439] by matthew_hanson@apple.com
  • 4 edits
    1 add in branches/safari-603-branch

Merge r210276. rdar://problem/28867002

7:38 AM Changeset in webkit [210438] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/JavaScriptCore

Merge r210259. rdar://problem/29856455

7:38 AM Changeset in webkit [210437] by matthew_hanson@apple.com
  • 19 edits in branches/safari-603-branch

Merge r210221. rdar://problem/29449474

6:05 AM Changeset in webkit [210436] by akling@apple.com
  • 30 edits in trunk/Source/WebCore

Give RenderObject a Page& getter.
<https://webkit.org/b/166735>

Reviewed by Darin Adler.

The render tree should now only ever be live while in a Frame that's connected to a Page.
Hence we can give RenderObject a Page& getter and simplify a lot of code that previously
had to get the Page from Document (or Frame) and perform null checks on it.

  • dom/Document.cpp:

(WebCore::Document::destroyRenderTree): Assert that the Page is present when we tear the render tree down.

  • page/Frame.cpp:

(WebCore::Frame::willDetachPage): Assert that there's no render tree when we're about to detach from the Page.
Also added a comment explaining the two main ways that render trees die.

  • rendering/RenderObject.h:

(WebCore::RenderObject::page): Added. So neat!

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::estimatedLoadingProgress):

  • rendering/ImageQualityController.cpp:

(WebCore::ImageQualityController::chooseInterpolationQuality):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paint):

  • rendering/RenderAttachment.cpp:

(WebCore::RenderAttachment::layout):
(WebCore::RenderAttachment::baselinePosition):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintCaret):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange):
(WebCore::setupWheelEventTestTrigger):
(WebCore::RenderBox::setScrollLeft):
(WebCore::RenderBox::setScrollTop):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::paintFocusRing):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::shouldUnavailablePluginMessageBeButton):
(WebCore::RenderEmbeddedObject::paint):
(WebCore::RenderEmbeddedObject::paintReplaced):
(WebCore::RenderEmbeddedObject::getReplacementTextGeometry):
(WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):
(WebCore::RenderEmbeddedObject::getCursor):

  • rendering/RenderHTMLCanvas.cpp:

(WebCore::RenderHTMLCanvas::paintReplaced):

  • rendering/RenderIFrame.cpp:

(WebCore::RenderIFrame::flattenFrame):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::paintAreaElementFocusRing):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::~RenderLayer):
(WebCore::RenderLayer::forceUpdateScrollbarsOnMainThreadForPerformanceTesting):
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::isActive):
(WebCore::RenderLayer::didStartScroll):
(WebCore::RenderLayer::didEndScroll):
(WebCore::RenderLayer::didUpdateScroll):
(WebCore::RenderLayer::createScrollbar):
(WebCore::RenderLayer::setupFontSubpixelQuantization):
(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::RenderLayerBacking):
(WebCore::RenderLayerBacking::createGraphicsLayer):
(WebCore::RenderLayerBacking::updateOverflowControlsLayers):
(WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
(WebCore::RenderLayerBacking::paintContents):
(WebCore::RenderLayerBacking::shouldAggressivelyRetainTiles):
(WebCore::RenderLayerBacking::shouldTemporarilyRetainTileCohorts):
(WebCore::RenderLayerBacking::useGiantTiles):
(WebCore::RenderLayerBacking::verifyNotPainting):
(WebCore::RenderLayerBacking::startAnimation):
(WebCore::scrollingCoordinatorFromLayer): Deleted.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
(WebCore::RenderLayerCompositor::scheduleLayerFlushNow):
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::updateScrollingLayerWithClient):
(WebCore::RenderLayerCompositor::updateCustomLayersAfterFlush):
(WebCore::RenderLayerCompositor::notifyFlushBeforeDisplayRefresh):
(WebCore::RenderLayerCompositor::layerTiledBackingUsageChanged):
(WebCore::RenderLayerCompositor::updateCompositingLayers):
(WebCore::RenderLayerCompositor::appendDocumentOverlayLayers):
(WebCore::RenderLayerCompositor::layerBecameNonComposited):
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::pageScaleFactor):
(WebCore::RenderLayerCompositor::zoomedOutPageScaleFactor):
(WebCore::RenderLayerCompositor::contentsScaleMultiplierForNewTiles):
(WebCore::RenderLayerCompositor::updateLayerForHeader):
(WebCore::RenderLayerCompositor::updateLayerForFooter):
(WebCore::RenderLayerCompositor::setRootExtendedBackgroundColor):
(WebCore::RenderLayerCompositor::attachRootLayer):
(WebCore::RenderLayerCompositor::detachRootLayer):
(WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):
(WebCore::RenderLayerCompositor::registerAllScrollingLayers):
(WebCore::RenderLayerCompositor::scrollingCoordinator):
(WebCore::RenderLayerCompositor::graphicsLayerFactory):
(WebCore::RenderLayerCompositor::createDisplayRefreshMonitor):
(WebCore::RenderLayerCompositor::page):

  • rendering/RenderLayerCompositor.h:
  • rendering/RenderListBox.cpp:

(WebCore::setupWheelEventTestTrigger):
(WebCore::RenderListBox::setScrollTop):
(WebCore::RenderListBox::isActive):
(WebCore::RenderListBox::forceUpdateScrollbarsOnMainThreadForPerformanceTesting):
(WebCore::RenderListBox::createScrollbar):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::theme):

  • rendering/RenderObject.h:

(WebCore::RenderObject::page):

  • rendering/RenderSearchField.cpp:

(WebCore::RenderSearchField::addSearchResult):
(WebCore::RenderSearchField::showPopup):
(WebCore::RenderSearchField::valueChanged):

  • rendering/RenderSnapshottedPlugIn.cpp:

(WebCore::RenderSnapshottedPlugIn::updateSnapshot):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::updateControlStatesForRenderer):
(WebCore::RenderTheme::isActive):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintCellAndSetFocusedElementNeedsRepaintIfNecessary):
(WebCore::RenderThemeMac::paintSliderThumb):

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::paintReplaced):

  • rendering/RenderView.cpp:

(WebCore::RenderView::pageNumberForBlockProgressionOffset):
(WebCore::RenderView::pageCount):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::paintReplaced):

  • style/StyleResolveForDocument.cpp:

(WebCore::Style::resolveForDocument):

1:47 AM Changeset in webkit [210435] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Fixed duplicate test expectation entries on Windows.

Unreviewed test gardening.

  • platform/win/TestExpectations:
1:16 AM Changeset in webkit [210434] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Warning about unconnectable outlets when opening a MiniBrowser window
https://bugs.webkit.org/show_bug.cgi?id=166756

Reviewed by Dan Bernstein.

  • MiniBrowser/mac/BrowserWindow.xib:

When launching MiniBrowser, it says:
Failed to connect (Share) outlet from (WK1BrowserWindowController) to

(MBToolbarItem): missing setter or instance variable

Failed to connect (shareButton) outlet from (WK1BrowserWindowController) to

(NSButtonCell): missing setter or instance variable.

It looks like someone added the connection from the share button
to the BrowserWindowController three times; only one of the connections
is valid. Remove the other two.

Jan 5, 2017:

8:09 PM Changeset in webkit [210433] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

TextFragmentIterator::runWidth does not need typename CharacterType<> anymore.
https://bugs.webkit.org/show_bug.cgi?id=166751

Reviewed by Simon Fraser.

No change in functionality.

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::textWidth):

  • rendering/SimpleLineLayoutTextFragmentIterator.h:
7:45 PM Changeset in webkit [210432] by rniwa@webkit.org
  • 24 edits
    2 adds in trunk

Finding text doesn't work across shadow boundary
https://bugs.webkit.org/show_bug.cgi?id=158503

Reviewed by Antti Koivisto.

Source/WebCore:

Added a new TextIterator behavior flag, TextIteratorTraversesFlatTree, which makes TextIterator traverse
the flat tree instead of the DOM tree, and made this behavior default in findPlainText.

Also added a new find options flag, DoNotTraverseFlatTree, to suppress this behavior in window.find(~)
and execCommand('FindString', false, ~) as they should not be able to peek information inside shadow trees.
Unfortunately these APIs have been deprecated in the standards so there is no specification to follow.

For now, we don't support finding a word or a keyword across a shadow boundary as this would require
making rangeOfString and other related functions return a Range-like object that can cross shadow boundaries.

Also added internals.rangeOfString to test Editor::rangeOfString, and replaced the bit-flag arguments
to internals.countMatchesForText and internals.countFindMatches by an array of strings for better portability.

Test: editing/text-iterator/find-string-on-flat-tree.html

  • editing/Editor.cpp:

(WebCore::Editor::rangeOfString): Use the modern containingShadowRoot instead of nonBoundaryShadowTreeRootNode
since the start container can be a shadow root, which nonBoundaryShadowTreeRootNode asserts not be the case.

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

(WebCore::executeFindString): Don't traverse across shadow boundaries.

  • editing/FindOptions.h: Added DoNotTraverseFlatTree.
  • editing/TextIterator.cpp:

(WebCore::assignedAuthorSlot): Added.
(WebCore::authorShadowRoot): Added.
(WebCore::firstChildInFlatTreeIgnoringUserAgentShadow): Added.
(WebCore::nextSiblingInFlatTreeIgnoringUserAgentShadow): Added.
(WebCore::firstChild): Added. Traverses the flat tree when TextIteratorTraversesFlatTree is set.
(WebCore::nextSibling): Ditto.
(WebCore::parentNodeOrShadowHost): Ditto.
(WebCore::TextIterator::advance): Don't set m_handledChildren to true when the current node has display: contents.
(WebCore::findPlainText): Use TextIteratorTraversesFlatTree unless DoNotTraverseFlatTree is set.

  • editing/TextIteratorBehavior.h: Added TextIteratorTraversesFlatTree.
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::find): Don't traverse across shadow boundaries.

  • testing/Internals.cpp:

(WebCore::parseFindOptions): Added.
(WebCore::Internals::rangeOfString): Added.
(WebCore::Internals::countMatchesForText): Replaced the find options by an array of strings instead of a bit mask.
(WebCore::Internals::countFindMatches): Ditto.

  • testing/Internals.h:
  • testing/Internals.idl: Added rangeOfString, and replaced find options bit-flag in countMatchesForText and

countFindMatches by an array of strings so that the tests themselves don't rely on a specific value of each bit flag.

LayoutTests:

Updated the existing tests per changes to use an array of find options instead of raw bit mask,
and added a regression test for finding text by traversing flat tree along with testing
window.find and execCommand('FindString', false, ~) not walking across shadow boundaries.

  • editing/text-iterator/count-mark-lineboxes-expected.txt:
  • editing/text-iterator/count-mark-lineboxes.html:
  • editing/text-iterator/count-mark-simple-lines-expected.txt:
  • editing/text-iterator/count-mark-simple-lines.html:
  • editing/text-iterator/count-matches-in-form-expected.txt:
  • editing/text-iterator/count-matches-in-form.html:
  • editing/text-iterator/count-matches-in-frames.html:
  • editing/text-iterator/find-string-on-flat-tree-expected.txt: Added.
  • editing/text-iterator/find-string-on-flat-tree.html: Added.
  • fast/text/mark-matches-broken-line-rendering.html:
  • fast/text/mark-matches-overflow-clip.html:
  • fast/text/mark-matches-rendering-simple-lines-expected.html:
  • fast/text/mark-matches-rendering-simple-lines.html:
  • fast/text/mark-matches-rendering.html:
7:30 PM Changeset in webkit [210431] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

7:27 PM Changeset in webkit [210430] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.4.8

New tag.

7:27 PM Changeset in webkit [210429] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

7:25 PM Changeset in webkit [210428] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merged r210328. rdar://problem/29885151

7:14 PM Changeset in webkit [210427] by fpizlo@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, teach run-javascriptcore-tests that this is a slow test.

  • js/script-tests/regress-139548.js:
6:48 PM Changeset in webkit [210426] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.4.7

New tag.

6:47 PM Changeset in webkit [210425] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

[Form Validation] lengthy validation messages should be truncated with an ellipsis
https://bugs.webkit.org/show_bug.cgi?id=166747
<rdar://problem/29872021>

Reviewed by Simon Fraser.

Lengthy HTML validation messages should be truncated with an ellipsis.
Previously, they were truncated but there was no ellipsis.

No new tests, not easily testable. Manually tested on

  • platform/ios/ValidationBubbleIOS.mm:

(WebCore::ValidationBubble::ValidationBubble):

  • platform/mac/ValidationBubbleMac.mm:

(WebCore::ValidationBubble::ValidationBubble):

6:05 PM Changeset in webkit [210424] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Roll out r210328. rdar://problem/29885151

5:55 PM Changeset in webkit [210423] by Simon Fraser
  • 3 edits
    2 adds in trunk

Radio buttons have a fixed border radius making them look square when resized
https://bugs.webkit.org/show_bug.cgi?id=148676
Source/WebCore:

rdar://problem/29889892

Reviewed by Tim Horton.

Change the 8px border-radius of iOS radio buttons to 50% so they remain circular
when the page overrides the size.

Test: fast/forms/ios/large-radio-button-is-round.html

  • css/html.css:

(#if defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS):

LayoutTests:

Reviewed by Tim Horton.

  • fast/forms/ios/large-radio-button-is-round-expected.html: Added.
  • fast/forms/ios/large-radio-button-is-round.html: Added.
5:49 PM Changeset in webkit [210422] by matthew_hanson@apple.com
  • 7 edits
    1 add in branches/safari-603-branch

Merge r210282. rdar://problem/29760326

5:49 PM Changeset in webkit [210421] by matthew_hanson@apple.com
  • 41 edits
    1 copy
    2 adds in branches/safari-603-branch

Merge r210229. rdar://problem/29760322

5:49 PM Changeset in webkit [210420] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/JavaScriptCore

Merge r210202. rdar://problem/29803676

5:49 PM Changeset in webkit [210419] by matthew_hanson@apple.com
  • 40 edits
    5 adds in branches/safari-603-branch

Merge r210201. rdar://problem/29803676

5:49 PM Changeset in webkit [210418] by matthew_hanson@apple.com
  • 19 edits in branches/safari-603-branch

Merge r210073. rdar://problem/29762017

5:48 PM Changeset in webkit [210417] by matthew_hanson@apple.com
  • 8 edits
    4 adds in branches/safari-603-branch

Merge r210244. rdar://problem/29844107

5:48 PM Changeset in webkit [210416] by matthew_hanson@apple.com
  • 4 edits
    1 add in branches/safari-603-branch

Merge r210228. rdar://problem/29841541

5:48 PM Changeset in webkit [210415] by matthew_hanson@apple.com
  • 57 edits in branches/safari-603-branch/JSTests

Merge r210204. rdar://problem/29814999

5:48 PM Changeset in webkit [210414] by matthew_hanson@apple.com
  • 4 edits
    1 add in branches/safari-603-branch

Merge r210203. rdar://problem/29815000

5:48 PM Changeset in webkit [210413] by matthew_hanson@apple.com
  • 8 edits in branches/safari-603-branch

Merge r210137. rdar://problem/29760386

5:48 PM Changeset in webkit [210412] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603-branch

Merge r210127. rdar://problem/29795709

5:48 PM Changeset in webkit [210411] by matthew_hanson@apple.com
  • 5 edits
    1 add in branches/safari-603-branch

Merge r210126. rdar://problem/29793949

5:48 PM Changeset in webkit [210410] by matthew_hanson@apple.com
  • 4 edits in branches/safari-603-branch

Merge r210115. rdar://problem/29793220

5:48 PM Changeset in webkit [210409] by matthew_hanson@apple.com
  • 7 edits in branches/safari-603-branch

Merge r210111. rdar://problem/29791695

5:48 PM Changeset in webkit [210408] by matthew_hanson@apple.com
  • 7 edits in branches/safari-603-branch

Merge r210102. rdar://problem/29784532

5:48 PM Changeset in webkit [210407] by matthew_hanson@apple.com
  • 4 edits in branches/safari-603-branch

Merge r210091. rdar://problem/29782833

5:47 PM Changeset in webkit [210406] by matthew_hanson@apple.com
  • 9 edits
    4 adds in branches/safari-603-branch

Merge r210090. rdar://problem/29782821

5:47 PM Changeset in webkit [210405] by matthew_hanson@apple.com
  • 4 edits
    57 adds in branches/safari-603-branch

Merge r210087. rdar://problem/29760621

5:47 PM Changeset in webkit [210404] by matthew_hanson@apple.com
  • 8 edits in branches/safari-603-branch/Source/JavaScriptCore

Merge r210047. rdar://problem/29758107

5:47 PM Changeset in webkit [210403] by matthew_hanson@apple.com
  • 10 edits in branches/safari-603-branch/Source/JavaScriptCore

Merge r210038. rdar://problem/29759741

5:47 PM Changeset in webkit [210402] by matthew_hanson@apple.com
  • 25 edits
    3 adds in branches/safari-603-branch

Merge r210026. rdar://problem/29735737

5:47 PM Changeset in webkit [210401] by matthew_hanson@apple.com
  • 9 edits
    2 adds in branches/safari-603-branch

Merge r209979. rdar://problem/29735737

5:06 PM Changeset in webkit [210400] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

CoreText variation axis identifiers don't work with 64-bit numbers
https://bugs.webkit.org/show_bug.cgi?id=166745
<rdar://problem/29856541>
<rdar://problem/29848883>

Reviewed by Tim Horton.

There is a bug where some CFNumbers are getting garbage results when
being placed into a 64-bit field. Luckily, we don't need the full
64-bits; 32-bits is sufficient.

Test: fast/text/international/system-language/hindi-system-font-punctuation.html

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::defaultVariationValues):

5:04 PM Changeset in webkit [210399] by mmaxfield@apple.com
  • 4 edits
    4 adds in trunk

Carets can split up marriages and families
https://bugs.webkit.org/show_bug.cgi?id=166711
<rdar://problem/29019333>

Reviewed by Alex Christensen.

Source/WTF:

There are four code points which should be allowed to accept emoji modifiers:

  • U+1F46A FAMILY
  • U+1F46B MAN AND WOMAN HOLDING HANDS
  • U+1F46C TWO MEN HOLDING HANDS
  • U+1F46D TWO WOMEN HOLDING HANDS

Even though macOS's and iOS's emoji keyboard don't allow users to actually type
these combinations, we may still receive them from other platforms. We should
therefore treat these as joining sequences. Rendering isn't a problem because
the fonts accept the emoji modifiers, but our caret placement code isn't educated
about it. Currently, we treat these emoji groups as ligatures, allowing the caret
to be placed between the two code points, which visually shows as being horizontally
centered in the glyph. Instead, we should treat these code points as accepting
emoji modifiers.

Tests: editing/caret/emoji.html

editing/caret/ios/emoji.html

  • wtf/text/TextBreakIterator.cpp:

(WTF::cursorMovementIterator):

LayoutTests:

AFAICT we don't have a test where we arrow-through a set of emoji. We do
have tests where we backspace-through a set of emoji. Add a new test for
the arrow keys.

  • platform/ios/TestExpectations:
  • platform/mac/editing/caret/emoji-expected.txt: Added.
  • editing/caret/emoji.html: Added.
  • editing/caret/ios/emoji-expected.txt: Added.
  • editing/caret/ios/emoji.html: Added.
4:24 PM Changeset in webkit [210398] by fpizlo@apple.com
  • 5 edits in trunk/Source

AutomaticThread timeout shutdown leaves a small window where notify() would think that the thread is still running
https://bugs.webkit.org/show_bug.cgi?id=166742

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Update to new AutomaticThread API.

  • dfg/DFGWorklist.cpp:

Source/WTF:

Remove the use of the RAII ThreadScope, since the use of RAII helped make this bug possible:
we'd do ~ThreadScope after we had done ~LockHolder, so in between when we decided to shut
down a thread and when it reported itself as being shut down, there was a window where a
notify() call would get confused.

Now, we run all thread shutdown stuff while the lock is held. We release the lock last. One
API implication is that threadWillStop becomes threadIsStopping and it's called while the
lock is held. This seems benign.

  • wtf/AutomaticThread.cpp:

(WTF::AutomaticThread::start):
(WTF::AutomaticThread::threadIsStopping):
(WTF::AutomaticThread::ThreadScope::ThreadScope): Deleted.
(WTF::AutomaticThread::ThreadScope::~ThreadScope): Deleted.
(WTF::AutomaticThread::threadWillStop): Deleted.

  • wtf/AutomaticThread.h:
3:50 PM Changeset in webkit [210397] by matthew_hanson@apple.com
  • 4 edits in branches/safari-603-branch/Source

Merge r210372. rdar://problem/29870033

3:49 PM Changeset in webkit [210396] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Merge r210369. rdar://problem/29100419

3:49 PM Changeset in webkit [210395] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Merge r210368. rdar://problem/28908164

3:49 PM Changeset in webkit [210394] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603-branch

Merge r210361. rdar://problem/29870245

3:49 PM Changeset in webkit [210393] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebKit2

Merge r210363. rdar://problem/19595567

3:49 PM Changeset in webkit [210392] by matthew_hanson@apple.com
  • 12 edits in branches/safari-603-branch/Source

Merge r210360. rdar://problem/19595567

3:49 PM Changeset in webkit [210391] by matthew_hanson@apple.com
  • 6 edits in branches/safari-603-branch/Source

Merge r210359. rdar://problem/29882478

3:49 PM Changeset in webkit [210390] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Merge r210328. rdar://problem/29870673

3:49 PM Changeset in webkit [210389] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/JSTests

Merge r210312. rdar://problem/29876342

3:49 PM Changeset in webkit [210388] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebInspectorUI

Merge r210311. rdar://problem/29871716

3:49 PM Changeset in webkit [210387] by matthew_hanson@apple.com
  • 4 edits in branches/safari-603-branch/Source/WebCore

Merge r210288. rdar://problem/29741862

3:49 PM Changeset in webkit [210386] by matthew_hanson@apple.com
  • 5 edits
    4 adds in branches/safari-603-branch

Merge r210284. rdar://problem/29865854

3:49 PM Changeset in webkit [210385] by matthew_hanson@apple.com
  • 8 edits
    6 adds in branches/safari-603-branch

Merge r210279. rdar://problem/29607569

3:49 PM Changeset in webkit [210384] by matthew_hanson@apple.com
  • 10 edits
    4 adds in branches/safari-603-branch

Merge r210267. rdar://problem/29796608

3:49 PM Changeset in webkit [210383] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebInspectorUI

Merge r210252. rdar://problem/29854762

3:49 PM Changeset in webkit [210382] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebInspectorUI

Merge r210046. rdar://problem/27553228

3:49 PM Changeset in webkit [210381] by matthew_hanson@apple.com
  • 9 edits in branches/safari-603-branch/Tools

Merge r210048. rdar://problem/29316054

3:49 PM Changeset in webkit [210380] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/LayoutTests

Merge r210022. rdar://problem/29316054

3:42 PM Changeset in webkit [210379] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove unused delegate from VisualStyleSelectorSection
https://bugs.webkit.org/show_bug.cgi?id=166744

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-05
Reviewed by Alex Christensen.

  • UserInterface/Views/VisualStyleDetailsPanel.js:

(WebInspector.VisualStyleDetailsPanel.prototype.initialLayout):

  • UserInterface/Views/VisualStyleSelectorSection.js:

(WebInspector.VisualStyleSelectorSection):

3:37 PM Changeset in webkit [210378] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Start hittesting a clean tree in RenderEmbeddedObject::isReplacementObscured
https://bugs.webkit.org/show_bug.cgi?id=166743
<rdar://problem/29024384>

Reviewed by Simon Fraser.

Unable to reproduce.

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::isReplacementObscured):

2:40 PM Changeset in webkit [210377] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline fast/canvas/webgl/context-creation-attributes.html after r210372.

Unreviewed test gardening.

  • fast/canvas/webgl/context-creation-attributes-expected.txt:
2:18 PM Changeset in webkit [210376] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash inside Editor::styleForSelectionStart
https://bugs.webkit.org/show_bug.cgi?id=166710

Reviewed by Chris Dumez.

Added a null pointer check. This crash can happen when the DOM is mutated as editorState tries
to compute the style at the selection start.

No new tests since there is no reproducible test case, and I couldn't come up with one either.
This crash seems to retire some intricate dependency between when DOM is mutated, selection is
updated, and then performPostLayoutTasks ends up updating the editor state in response to
the element's editabilty changing.

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::styleForSelectionStart):

1:35 PM Changeset in webkit [210375] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r210370.

This change caused hundreds of LayoutTest failures on Sierra.

Reverted changeset:

"[Cocoa] Variation fonts without variations specified are not
rendered as if the default variations were specified"
https://bugs.webkit.org/show_bug.cgi?id=166672
http://trac.webkit.org/changeset/210370

1:27 PM Changeset in webkit [210374] by commit-queue@webkit.org
  • 13 edits
    1 add
    2 deletes in trunk/Source

[SOUP] Network process crash in WebKit::CustomProtocolManagerImpl::didFailWithError
https://bugs.webkit.org/show_bug.cgi?id=165082

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2017-01-05
Reviewed by Alex Christensen.

Source/WebCore:

Simplified WebKitSoupRequestGenericClient.

  • platform/network/soup/WebKitSoupRequestGeneric.cpp:

(webkitSoupRequestGenericSendAsync):
(webkitSoupRequestGenericSendFinish):
(webkitSoupRequestGenericGetRequest):

  • platform/network/soup/WebKitSoupRequestGeneric.h:
  • platform/network/soup/WebKitSoupRequestGenericClient.h:

Source/WebKit2:

CustomProtocolManager uses a Workqueue to receive the IPC messages since r149194. Then we added the Soup
implementation adopting that approach, but without making our implementation thread safe. The crash happens
because the CustomProtocolManager implementation is used by two threads at the same time, the main thread
because of a ping load (probably caused by an image load in the unload handler, I haven't been able to
reproduce the crash) and the work queue thread. The reasons to make CustomProtocolManager use a WorkQueue
are no longer valid because CustomProtocolManager is now only used in the network process and sync loads don't
use any nested run loop, they are just an IPC sync message. So this patch makes CustomProtocolManager a normal
message receiver again to ensure messages are handled in the main thread. It also adds the common implementation
to a new CustomProtocolManager.cpp file shared by Cocoa and Soup based ports.

  • CMakeLists.txt: Add CustomProtocolManager.cpp.
  • NetworkProcess/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm:

(-[WKCustomProtocol initWithRequest:cachedResponse:client:]): Use new CustomProtocolManager API.
(-[WKCustomProtocol startLoading]): Ditto.
(-[WKCustomProtocol stopLoading]): Ditto.
(WebKit::CustomProtocolManager::registerProtocolClass): Register the NSURLProtocol class when not using the
network session.
(WebKit::CustomProtocolManager::didFailWithError): removeCustomProtocol now receives an ID.
(WebKit::CustomProtocolManager::didFinishLoading): Ditto.

  • NetworkProcess/CustomProtocols/CustomProtocolManager.cpp: Added.

(WebKit::generateCustomProtocolID): Moved from CustomProtocolManagerCocoa.mm and CustomProtocolManagerSoup.cpp.
(WebKit::CustomProtocolManager::supplementName): Ditto.
(WebKit::CustomProtocolManager::CustomProtocolManager): Also removes the work queue initialization.
(WebKit::CustomProtocolManager::initialize): Copied and modernized the loop.
(WebKit::CustomProtocolManager::addCustomProtocol): Copied from CustomProtocolManagerCocoa.mm.
(WebKit::CustomProtocolManager::removeCustomProtocol): Ditto.
(WebKit::CustomProtocolManager::startLoading): Send the StartLoading message to the proxy.
(WebKit::CustomProtocolManager::stopLoading): Send the StopLoading message to the proxy.

  • NetworkProcess/CustomProtocols/CustomProtocolManager.h:
  • NetworkProcess/CustomProtocols/soup/CustomProtocolManagerImpl.cpp: Removed.
  • NetworkProcess/CustomProtocols/soup/CustomProtocolManagerImpl.h: Removed.
  • NetworkProcess/CustomProtocols/soup/CustomProtocolManagerSoup.cpp: Moved the implementation from

CustomProtocolManagerImpl and updated to the new CustomProtocolManager API.
(WebKit::CustomProtocolManager::WebSoupRequestAsyncData::WebSoupRequestAsyncData):
(WebKit::CustomProtocolManager::WebSoupRequestAsyncData::~WebSoupRequestAsyncData):
(WebKit::CustomProtocolManager::registerProtocolClass):
(WebKit::CustomProtocolManager::registerScheme):
(WebKit::CustomProtocolManager::supportsScheme):
(WebKit::CustomProtocolManager::didFailWithError):
(WebKit::CustomProtocolManager::didLoadData):
(WebKit::CustomProtocolManager::didReceiveResponse):
(WebKit::CustomProtocolManager::didFinishLoading):
(WebKit::CustomProtocolManager::wasRedirectedToRequest):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::globalCustomProtocolManager):
(WebKit::NetworkSessionCocoa::defaultSession):
CustomProtocolManager is no longer refcounted, so just pass a pointer.
A static pointer has the same lifetime as the NetworkProcess object in the NetworkProcess,
and in the WebProcess it will remain nullptr, just like it used to.

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • WebKit2.xcodeproj/project.pbxproj:
1:03 PM Changeset in webkit [210373] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch/Source

Merged r210372. rdar://problem/29870651

12:56 PM Changeset in webkit [210372] by Chris Dumez
  • 4 edits in trunk/Source

Turn preferLowPowerWebGLRendering setting on by default
https://bugs.webkit.org/show_bug.cgi?id=166737
<rdar://problem/29870033>

Reviewed by Dean Jackson.

Temporarily turn preferLowPowerWebGLRendering setting on by default until
we deal better with WebGL content in background tabs.

Source/WebCore:

  • page/Settings.in:

Source/WebKit/mac:

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

12:37 PM Changeset in webkit [210371] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

Update pointer-lock test expectations, enabling passing tests.
https://bugs.webkit.org/show_bug.cgi?id=166656
rdar://problem/29851126

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-01-05
Reviewed by Alex Christensen.

Several pointer lock tests are passing and are now marked as passing.
pointer-lock/lock-already-locked.html Pass
pointer-lock/lock-element-not-in-dom.html Pass
http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock.html Pass
http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html Pass
http/tests/pointer-lock/pointerlockelement-different-origin.html Pass
http/tests/pointer-lock/pointerlockelement-same-origin.html Pass
http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html Pass
http/tests/pointer-lock/iframe-sandboxed.html Pass
http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock.html Pass

  • platform/mac/TestExpectations:
  • http/tests/pointer-lock/iframe-sandboxed-expected.txt: Updated.
  • http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock-expected.txt: Updated
12:31 PM Changeset in webkit [210370] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Variation fonts without variations specified are not rendered as if the default variations were specified
https://bugs.webkit.org/show_bug.cgi?id=166672
<rdar://problem/29779119>
<rdar://problem/29848883>

Reviewed by Simon Fraser.

CoreText has a bug (<rdar://problem/29859207>) where variation fonts without
a specified variation value are rendered as if the minimum value is specified,
rather than the default value. The solution is to apply default values where
they are omitted.

Test: fast/text/variations/advances.html

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::preparePlatformFont):

12:24 PM Changeset in webkit [210369] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Mark the dedicated root linebox for trailing floats in empty inlines dirty.
https://bugs.webkit.org/show_bug.cgi?id=166732
<rdar://problem/29100419>

Reviewed by Antti Koivisto.

Source/WebCore:

We normally attach floating boxes to the last root linebox. However when the floatbox is preceded by a <br>
we generate a dedicated root linebox (TrailingFloatsRootInlineBox) for the floatbox.
When this floatbox is a RenderInline descendant and this RenderInline does not generate lineboxes (it's ancestor RenderBlockFlow does)
we have to make sure that this special root linebox gets marked dirty when the associated floatbox changes.
(Unfortunately through the recursive calls on dirtyLinesFromChangedChild(), we lose the information about
the "changed child" since the inlines propagates the marking logic to the RenderBlockFlow, see FIXME.)

Test: fast/inline/trailing-floats-inline-crash2.html

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):

LayoutTests:

  • fast/inline/trailing-floats-inline-crash2-expected.txt: Added.
  • fast/inline/trailing-floats-inline-crash2.html: Added.
12:15 PM Changeset in webkit [210368] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Cocoa] Both modern-media-controls/images/iOS modern-media-controls/images/macOS are installed on both platforms
https://bugs.webkit.org/show_bug.cgi?id=163871

Patch by Antoine Quint <Antoine Quint> on 2017-01-05
Reviewed by Eric Carlson.

We now only copy modern media controls images, if any, for the current platform.

  • WebCore.xcodeproj/project.pbxproj:
12:07 PM Changeset in webkit [210367] by BJ Burg
  • 11 edits
    12 adds in trunk

Web Inspector: Test.html should support globals reportInternalError, reportUnhandledRejection, reportUncaughtException
https://bugs.webkit.org/show_bug.cgi?id=161358
<rdar://problem/28066446>

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

We have a hodgepodge of redundant code that reports uncaught exceptions in the inspector page.
There is better handling of uncaught exceptions in the inspected page, such as including stack traces.

This patch consolidates a lot of this code and makes it possible to report
unhandled promise rejections, top-level uncaught exceptions, and exceptions
caught in a try-catch block. The formatting and sanitization code for all of
these things is shared and consistent. Finally, some tests have been added to
catch regressions in unhandled rejection/uncaught exception reporting.

  • UserInterface/Test/FrontendTestHarness.js:

(FrontendTestHarness): Explicitly set initial flag state here so it's easy to find all flags.

(FrontendTestHarness.prototype.redirectConsoleToTestOutput):
Extract this code to sanitize stack frames and put it in TestHarness. It is used
by other methods that need to print stack frames.

(FrontendTestHarness.prototype.reportUnhandledRejection):
(FrontendTestHarness.prototype.reportUncaughtException):
Added. Sanitize stack trace data so it is deterministic. Log the message to the
original window.console but don't exit early. Sometimes the test page is not
fully loaded if we throw an exception quite early in the test() method, and there's
no harm in not early returning. If we do early return in this case, then a test that
uses reportUncaughtException on purpose may not complete because the call to completeTest()
would be skipped by returning early.

(FrontendTestHarness.prototype.reportUncaughtExceptionFromEvent):
Renamed from reportUncaughtException since the signature of that method suggests
it should have a single exception argument rather than lots of data arguments.

  • UserInterface/Test/Test.js: Add globals.
  • UserInterface/Test/TestHarness.js:

(TestHarness): Document class flags.
(TestHarness.sanitizeURL):
(TestHarness.sanitizeStackFrame):
(TestHarness.prototype.sanitizeStack):
Extract this code from other parts of the test harness. Make sanitizeStack
an instance method so that there is only one place that needs to check the
'suppressStackTraces' flag.

  • UserInterface/Test/TestSuite.js:

(TestSuite.prototype.logThrownObject):
(TestSuite):
(AsyncTestSuite.prototype.runTestCases):
(AsyncTestSuite):
(SyncTestSuite.prototype.runTestCases):
(SyncTestSuite):
(TestSuite.messageFromThrownObject): Deleted.
Inline some helpers with only one use-site and consolidate redundant code
for adding an exception and message to the test results.

LayoutTests:

Improve uncaught exception reporting and add some tests to document
new and existing behavior.

  • http/tests/inspector/resources/inspector-test.js:

(runTest.runTestMethodInFrontend):
(runTest): Outsource reporting of an uncaught exception while injecting
a method into the frontend. By doing this, we can make the report using
the actual exception object since it doesn't go through window.onerror.

  • inspector/unit-tests/async-test-suite-expected.txt:
  • inspector/unit-tests/async-test-suite.html:
  • inspector/unit-tests/sync-test-suite-expected.txt:
  • inspector/unit-tests/sync-test-suite.html:

Rebaseline and force suppression of stack traces, which are not deterministic
across commits due to logging specific lines and columns in TestCombined.js.

  • inspector/unit-tests/globals-uncaught-exception-from-timer-callback-expected.txt: Added.
  • inspector/unit-tests/globals-uncaught-exception-from-timer-callback.html: Added.
  • inspector/unit-tests/globals-uncaught-exception-in-test-function-expected.txt: Added.
  • inspector/unit-tests/globals-uncaught-exception-in-test-function.html: Added.
  • inspector/unit-tests/globals-uncaught-exception-in-test-suite-expected.txt: Added.
  • inspector/unit-tests/globals-uncaught-exception-in-test-suite.html: Added.
  • inspector/unit-tests/globals-unhandled-rejection-in-test-function-expected.txt: Added.
  • inspector/unit-tests/globals-unhandled-rejection-in-test-function.html: Added.
  • inspector/unit-tests/globals-unhandled-rejection-in-test-suite-expected.txt: Added.
  • inspector/unit-tests/globals-unhandled-rejection-in-test-suite.html: Added.
  • inspector/unit-tests/globals-unhandled-rejection-in-timer-callback-expected.txt: Added.
  • inspector/unit-tests/globals-unhandled-rejection-in-timer-callback.html: Added.
11:51 AM Changeset in webkit [210366] by akling@apple.com
  • 2 edits in trunk/LayoutTests

Skip fast/scrolling/page-cache-back-overflow-scroll-restore.html on iOS simulator.
<https://webkit.org/b/166736>

  • platform/ios-simulator/TestExpectations:
11:18 AM Changeset in webkit [210365] by Keith Rollin
  • 5 edits in trunk

Add WebCore::URL::protocolHostAndPort
https://bugs.webkit.org/show_bug.cgi?id=166426

Reviewed by Alex Christensen.

Source/WebCore:

Added to support record/replay mechanism, which needs it in order to
implement fuzzy-matching of URLs that are similar to each other but
that nonetheless come from the same source/host.

Updated TestWebKitAPI/Tests/WebCore/URL.cpp.

  • platform/URL.cpp:

(WebCore::URL::protocolHostAndPort):

  • platform/URL.h:

Tools:

Add test for protocolHostAndPort.

  • TestWebKitAPI/Tests/WebCore/URL.cpp:

(TestWebKitAPI::TEST_F):

11:10 AM Changeset in webkit [210364] by Antti Koivisto
  • 13 edits in trunk/Source/WebKit2

Use WTF::Function instead of std::function in network cache code
https://bugs.webkit.org/show_bug.cgi?id=166721

Reviewed by Andreas Kling.

Use better move-only type. Fix some unnecessary function copies.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::retrieve):
(WebKit::NetworkCache::Cache::clear):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheData.h:
  • NetworkProcess/cache/NetworkCacheDataCocoa.mm:

(WebKit::NetworkCache::Data::apply):

  • NetworkProcess/cache/NetworkCacheDataSoup.cpp:

(WebKit::NetworkCache::Data::apply):

  • NetworkProcess/cache/NetworkCacheFileSystem.cpp:

(WebKit::NetworkCache::traverseDirectory):

  • NetworkProcess/cache/NetworkCacheFileSystem.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::canRetrieve):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieve):

Split retrieve() to canRetrieve() and retrieve() functions.
This avoids the need to copy the completion handler in the caller.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::ReadOperation::ReadOperation):
(WebKit::NetworkCache::Storage::traverse):
(WebKit::NetworkCache::Storage::clear):

  • NetworkProcess/cache/NetworkCacheStorage.h:
10:54 AM Changeset in webkit [210363] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix after https://trac.webkit.org/changeset/210360

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::performDragOperation):

10:32 AM Changeset in webkit [210362] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merged r210328. rdar://problem/29885151

10:31 AM Changeset in webkit [210361] by Chris Dumez
  • 5 edits in trunk

Form validation: Align email validation with the latest HTML specification
https://bugs.webkit.org/show_bug.cgi?id=166697
<rdar://problem/29870245>

Reviewed by Alex Christensen.

Source/WebCore:

Align email validation with the latest HTML specification:

It particular, the following changes were made:

  • The first and last character of the domain now needs to be a letter or a digit
  • Parts of the domain can only be 63 characters in length

No new tests, extended existing test.

  • html/EmailInputType.cpp:

LayoutTests:

Extended / updated existing layout test to cover behavior changes.

  • fast/forms/ValidityState-typeMismatch-email-expected.txt:
  • fast/forms/resources/ValidityState-typeMismatch-email.js:
10:29 AM Changeset in webkit [210360] by enrica@apple.com
  • 12 edits in trunk/Source

Support File Promise during drag for macOS.
https://bugs.webkit.org/show_bug.cgi?id=165204
rdar://problem/19595567

Reviewed by Tim Horton.

Source/WebCore:

Adds the support for handling File Promise type during
drag. DragData now has the knowledge of the NSFilesPromisePboardType and
checks for the data type during drag.

  • page/mac/DragControllerMac.mm:

(WebCore::DragController::dragOperation):

  • platform/DragData.h:

(WebCore::DragData::setFileNames):
(WebCore::DragData::fileNames):

  • platform/mac/DragDataMac.mm:

(WebCore::DragData::containsFiles):
(WebCore::DragData::numberOfFiles):
(WebCore::DragData::asFilenames):
(WebCore::DragData::containsCompatibleContent):
(WebCore::DragData::containsPromise):
(WebCore::DragData::asURL):

Source/WebKit/mac:

Adds support for dropping a File Promise in a WebView.
The implementation uses new File Promise API available in Sierra.

  • Misc/WebNSPasteboardExtras.mm:

(+[NSPasteboard _web_dragTypesForURL]):

  • WebView/WebView.mm:

(-[WebView performDragOperation:]):

Source/WebKit2:

Adds support for dropping a File Promise in a WKWebView.
The implementation uses new File Promise API available in Sierra.

  • Shared/WebCoreArgumentCoders.cpp:

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

  • Shared/mac/PasteboardTypes.mm:

(WebKit::PasteboardTypes::forURL):

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

(WebKit::WebViewImpl::createSandboxExtensionsIfNeeded):
(WebKit::WebViewImpl::performDragOperation):
(WebKit::maybeCreateSandboxExtensionFromPasteboard): Deleted.
(WebKit::createSandboxExtensionsForFileUpload): Deleted.

10:05 AM Changeset in webkit [210359] by pvollan@apple.com
  • 6 edits in trunk/Source

[Win] Compile error.
https://bugs.webkit.org/show_bug.cgi?id=166726

Source/JavaScriptCore:

Reviewed by Alex Christensen.

Add include folder.

  • CMakeLists.txt:

Source/WebCore:

Reviewed by Alex Christensen.

Add include folder.

  • CMakeLists.txt:

Source/WebKit:

Add include folder.

  • CMakeLists.txt:
9:42 AM WebKitGTK/2.14.x edited by Michael Catanzaro
(diff)
9:34 AM Changeset in webkit [210358] by pvollan@apple.com
  • 2 edits in trunk/Tools

[Win] Archive test result is failing.
https://bugs.webkit.org/show_bug.cgi?id=166720

Reviewed by Alex Christensen.

Deleting the layout test result folder is sometimes failing
on Windows. This is not a critical error.

  • BuildSlaveSupport/test-result-archive:

(archiveTestResults):

9:30 AM Changeset in webkit [210357] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[SOUP] AddressSanitizer: heap-use-after-free under WTF::String::fromUTF8()
https://bugs.webkit.org/show_bug.cgi?id=166722

Patch by Milan Crha <mcrha@redhat.com> on 2017-01-05
Reviewed by Alex Christensen.

  • platform/soup/PublicSuffixSoup.cpp:

(WebCore::topPrivatelyControlledDomain):
Use a variable to hold UTF-8 version of the domain, because
the soup_tld_get_base_domain() returns a pointer into the passed-in
string, which could be freed due to the temporary object being freed.

9:09 AM Changeset in webkit [210356] by matthew_hanson@apple.com
  • 10 edits in branches/safari-603-branch

Merge r210273. rdar://problem/29834093

9:09 AM Changeset in webkit [210355] by matthew_hanson@apple.com
  • 30 edits
    4 adds in branches/safari-603-branch

Merge r210266. rdar://problem/29447824

9:09 AM Changeset in webkit [210354] by matthew_hanson@apple.com
  • 6 edits
    2 adds in branches/safari-603-branch

Merge r210142. rdar://problem/29109053

9:09 AM Changeset in webkit [210353] by matthew_hanson@apple.com
  • 5 edits
    3 adds in branches/safari-603-branch

Merge r210122. rdar://problem/29763012

9:09 AM Changeset in webkit [210352] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Merge r210120. rdar://problem/29772233

9:09 AM Changeset in webkit [210351] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebKit2

Merge r210118. rdar://problem/29732407

9:09 AM Changeset in webkit [210350] by matthew_hanson@apple.com
  • 3 edits
    6 adds in branches/safari-603-branch

Merge r210112. rdar://problem/29742039

9:09 AM Changeset in webkit [210349] by matthew_hanson@apple.com
  • 4 edits in branches/safari-603-branch/Source/WebCore

Merge r210104. rdar://problem/29139619

9:09 AM Changeset in webkit [210348] by matthew_hanson@apple.com
  • 3 edits in branches/safari-603-branch/Tools

Merge r210101. rdar://problem/28475977

9:09 AM Changeset in webkit [210347] by matthew_hanson@apple.com
  • 5 edits
    1 add in branches/safari-603-branch

Merge r210100. rdar://problem/28388000

9:09 AM Changeset in webkit [210346] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Tools

Merge r210093. rdar://problem/29758423

9:09 AM Changeset in webkit [210345] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Merge r210083. rdar://problem/25391382

9:09 AM Changeset in webkit [210344] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Tools

Merge r210082. rdar://problem/29758428

9:09 AM Changeset in webkit [210343] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Merge r210061. rdar://problem/29763143

9:09 AM Changeset in webkit [210342] by matthew_hanson@apple.com
  • 7 edits
    3 adds in branches/safari-603-branch

Merge r210059. rdar://problem/29727145

9:08 AM Changeset in webkit [210341] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Tools

Merge r210050. rdar://problem/29758419

9:08 AM Changeset in webkit [210340] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebKit2

Merge r210041. rdar://problem/29593525

9:08 AM Changeset in webkit [210339] by matthew_hanson@apple.com
  • 5 edits
    2 adds in branches/safari-603-branch

Merge r210035. rdar://problem/29704862

9:08 AM Changeset in webkit [210338] by matthew_hanson@apple.com
  • 6 edits in branches/safari-603-branch

Merge r210033. rdar://problem/29755339

9:08 AM Changeset in webkit [210337] by matthew_hanson@apple.com
  • 20 edits in branches/safari-603-branch/Source/WebInspectorUI

Merge r210032. rdar://problem/29744608

9:08 AM Changeset in webkit [210336] by matthew_hanson@apple.com
  • 17 edits
    5 copies
    1 add in branches/safari-603-branch

Merge r210028. rdar://problem/29747874

9:08 AM Changeset in webkit [210335] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/JavaScriptCore

Merge r209998. rdar://problem/29554366

9:08 AM Changeset in webkit [210334] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebKit2

Merge r209995. rdar://problem/29626731

9:08 AM Changeset in webkit [210333] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-603-branch

Merge r209990. rdar://problem/29705967

9:08 AM Changeset in webkit [210332] by matthew_hanson@apple.com
  • 8 edits in branches/safari-603-branch

Merge r210045. rdar://problem/29560853

9:08 AM Changeset in webkit [210331] by matthew_hanson@apple.com
  • 4 edits in branches/safari-603-branch/Source/WebCore

Merge r210034. rdar://problem/29560853

8:17 AM Changeset in webkit [210330] by akling@apple.com
  • 5 edits in trunk/Source/WebCore

Remove some unnecessary page cache checks in render tree code.
<https://webkit.org/b/166728>

Reviewed by Antti Koivisto.

There is no render tree in the page cache, so we don't need to be checking
for it in renderer code.

  • rendering/RenderElement.cpp:

(WebCore::shouldRepaintForImageAnimation):
(WebCore::RenderElement::newImageAnimationFrameAvailable):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::imageChanged):

  • rendering/RenderObject.cpp:

(WebCore::printRenderTreeForLiveDocuments):
(WebCore::printLayerTreeForLiveDocuments):

  • rendering/RenderView.cpp:

(WebCore::RenderView::lazyRepaintTimerFired):

8:02 AM Changeset in webkit [210329] by akling@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION(r210226): overflow:scroll scroll position not restored on back navigation
<https://webkit.org/b/166724>

Reviewed by Antti Koivisto.

Source/WebCore:

Before r210226, the render tree being torn down and the document being destroyed
were roughly the same thing, since they would always happen together, from the
render tree's perspective.

Changing this caused us to skip over the code that saves the scroll position
for an element's RenderLayer when going into the page cache. Navigating back to
that page would then scroll the layer to (0,0) instead of the previous position.

The fix is simply to remove the check for documentBeingDestroyed() in ~RenderLayer().
Note that two checks are being removed, there was also a weird "optimization"
to avoid nulling out EventHandler's m_resizeLayer if it points to this layer.
That pointer would eventually get nulled out in EventHandler::clear() anyway,
but it feels better to not let that pointer dangle.

Test: fast/scrolling/page-cache-back-overflow-scroll-restore.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::~RenderLayer):

LayoutTests:

Add a test that navigates back to a page with a scrolled overflow:scroll element.
The test verifies that the scroll position is restored.

  • fast/scrolling/page-cache-back-overflow-scroll-restore-expected.txt: Added.
  • fast/scrolling/page-cache-back-overflow-scroll-restore.html: Added.
7:51 AM Changeset in webkit [210328] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Disable smooth playhead animation for main content media in the Touch Bar
https://bugs.webkit.org/show_bug.cgi?id=166715
<rdar://problem/29870673>

Reviewed by Eric Carlson.

Passing in a non-zero playback rate to WebPlaybackControlsManager's timing property causes unintended effects
further down the stack. Please see the Radar for more details.

  • platform/mac/WebPlaybackSessionInterfaceMac.mm:

(WebCore::WebPlaybackSessionInterfaceMac::updatePlaybackControlsManagerTiming):

7:12 AM Changeset in webkit [210327] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Fix iOS build due to missing #include's.

  • history/CachedFrame.cpp:
5:47 AM Changeset in webkit [210326] by akling@apple.com
  • 12 edits in trunk/Source

Remove ChromeClient::needTouchEvents().
<https://webkit.org/b/166723>

Rubber-stamped by Antti Koivisto.

Source/WebCore:

Remove this hook since it's a no-op in every port.

  • dom/Document.cpp:

(WebCore::Document::didBecomeCurrentDocumentInFrame):
(WebCore::Document::didAddTouchEventHandler):
(WebCore::Document::didRemoveTouchEventHandler):

  • history/CachedFrame.cpp:

(WebCore::CachedFrameBase::restore):

  • loader/EmptyClients.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::transitionToCommitted):

  • page/ChromeClient.h:

Source/WebKit/mac:

  • WebCoreSupport/WebChromeClient.h:

Source/WebKit/win:

  • WebCoreSupport/WebChromeClient.h:

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebChromeClient.h:
5:14 AM Changeset in webkit [210325] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

Update test expectations on Windows for failing tests. These failures are tracked in
https://bugs.webkit.org/show_bug.cgi?id=160447.

  • platform/win/TestExpectations:
5:12 AM WebKitGTK/2.14.x edited by Carlos Garcia Campos
(diff)
5:08 AM WebKitGTK/2.14.x edited by Carlos Garcia Campos
(diff)
4:07 AM Changeset in webkit [210324] by tpopela@redhat.com
  • 2 edits in trunk/Tools

[GTK] Minibrowser: Add printing support
https://bugs.webkit.org/show_bug.cgi?id=165298

Open a print dialog when the Ctrl + P shortcut is pressed. If there is
an error during the print, it's printed on the console.

Reviewed by Michael Catanzaro.

  • MiniBrowser/gtk/BrowserWindow.c:

(webKitPrintOperationFailedCallback):
(printPage):
(browser_window_init):

12:46 AM Changeset in webkit [210323] by Darin Adler
  • 13 edits
    2 deletes in trunk/Source/WebCore

Remove PassRefPtr use from "bindings/scripts", "svg", "testing", and "workers"
https://bugs.webkit.org/show_bug.cgi?id=166718

Reviewed by Alex Christensen.

  • bindings/scripts/test/JS/JSFloat64Array.cpp: Removed. Stale unused test

result expectation file.

  • bindings/scripts/test/JS/JSFloat64Array.h: Ditto.
  • svg/SVGElement.cpp:

(WebCore::SVGElement::removeEventListener): Fix comment that incorrectly
mentions PassRefPtr.

  • testing/Internals.cpp:

(WebCore::Internals::computedStyleIncludingVisitedInfo): Return Ref instead
of RefPtr.
(WebCore::Internals::serializeObject): Ditto.
(WebCore::Internals::deserializeBuffer): Ditto.
(WebCore::Internals::observeGC): Streamlined code a bit.

  • testing/Internals.h: Updated for above changes.
  • testing/Internals.idl: Marked various function results as nullable.
  • workers/DedicatedWorkerThread.cpp:

(WebCore::DedicatedWorkerThread::createWorkerGlobalScope): Take a RefPtr&&
instead of a PassRefPtr.

  • workers/DedicatedWorkerThread.h: Updated for above change.
  • workers/Worker.cpp:

(WebCore::Worker::Worker): Passs a reference to WorkerGlobalScopeProxy::create.
(WebCore::Worker::~Worker): Updated since m_contentProxy is a reference.
(WebCore::Worker::postMessage): Ditto.
(WebCore::Worker::terminate): Ditto.
(WebCore::Worker::hasPendingActivity): Ditto.
(WebCore::Worker::notifyNetworkStateChange): Ditto.
(WebCore::Worker::notifyFinished): Ditto.

  • workers/Worker.h: Made m_contextProxy a reference rather than a pointer.
  • workers/WorkerGlobalScopeProxy.h: Reduced includes. Made destructor

protected instead of public since this class destroys itself.

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerGlobalScopeProxy::create): Take and return a reference.
(WebCore::WorkerMessagingProxy::WorkerMessagingProxy): Moved most initialization
to the calass definition. Take a reference instead of a pointer.
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope): Use auto.
(WebCore::WorkerMessagingProxy::workerThreadCreated): Take a reference
rather than a PassRefPtr.

  • workers/WorkerMessagingProxy.h: Updated for above changes.

(WebCore::WorkerMessagingProxy::askedToTerminate): Deleted.
(WebCore::WorkerMessagingProxy::workerObject): Deleted.

  • workers/WorkerThread.h: Take a RefPtr&& instead of a PassRefPtr.
12:08 AM Changeset in webkit [210322] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Fully update TestExpectations

Unreviewed EFL gardening.

EFL layout test has been broken too long time. Besides many tests have not maintained
as well. Now many tests are passingi, or some tests are being failed, crash, or timeout.
To update current test results, this patch updates all test results in TextExpectation.

After this update, I hope to track layout test failures efficiently.

  • platform/efl/TestExpectations:

Jan 4, 2017:

11:27 PM Changeset in webkit [210321] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Addressing post-review comments after r21005.

Simplify cairo_glyph_t initialization as suggested by Said.

  • platform/graphics/cairo/FontCairo.cpp:

(WebCore::CairoGlyphToPathTranslator::path):

11:03 PM Changeset in webkit [210320] by Manuel Rego Casasnovas
  • 9 edits
    3 adds in trunk

[css-grid] Fix crash clamping grid lines
https://bugs.webkit.org/show_bug.cgi?id=166637

Reviewed by Darin Adler.

Source/WebCore:

Avoid issues with very big values for the grid lines clamping them on GridPosition.

Test: fast/css-grid-layout/grid-position-crash.html

  • rendering/style/GridArea.h: Move kGridMaxTracks definition to GridPosition.
  • rendering/style/GridPosition.h:

(WebCore::GridPosition::setExplicitPosition): Use new setIntegerPosition().
(WebCore::GridPosition::setSpanPosition): Ditto.
(WebCore::GridPosition::setIntegerPosition): Clamp the position using kGridMaxTracks.

Tools:

Creates new unit test to verify that the maximum tracks limit
is used in GridPosition too.

  • TestWebKitAPI/PlatformEfl.cmake:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/PlatformWin.cmake:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/GridPosition.cpp: Added.

(TestWebKitAPI::TEST):

LayoutTests:

  • fast/css-grid-layout/grid-position-crash-expected.txt: Added.
  • fast/css-grid-layout/grid-position-crash.html: Added.
10:45 PM Changeset in webkit [210319] by Darin Adler
  • 170 edits
    1 copy
    1 add
    2 deletes in trunk/Source

Remove PassRefPtr use from the "html" directory, other improvements
https://bugs.webkit.org/show_bug.cgi?id=166635

Reviewed by Alex Christensen.

Source/WebCore:

  • CMakeLists.txt: Removed the duplicate copies of all the WebGL-specific files

in the main list of source files; there is no value in listing them twice.
Replaced WebGLGetInfo.cpp with WebGLAny.cpp.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::removeSourceBuffer): Updates since the tracks functions
return references now.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateFastSeekTimeForMediaTime): Removed
unneeded SourceBufferPrivate* argument.
(WebCore::SourceBuffer::appendBufferTimerFired): Ditto.
(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Ditto.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveRenderingError): Ditto.
(WebCore::SourceBuffer::videoTracks): Return a reference rather than a pointer.
(WebCore::SourceBuffer::audioTracks): Ditto.
(WebCore::SourceBuffer::textTracks): Ditto.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
Removed unneeded SourceBufferPrivate* argument.
(WebCore::SourceBuffer::validateInitializationSegment): Updated since tracks
functions now return a pointer.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Removed unneeded
SourceBufferPrivate* argument.
(WebCore::SourceBuffer::sourceBufferPrivateHasAudio): Ditto.
(WebCore::SourceBuffer::sourceBufferPrivateHasVideo): Ditto.
(WebCore::SourceBuffer::videoTrackSelectedChanged): Take a reference rather than
a pointer.
(WebCore::SourceBuffer::audioTrackEnabledChanged): Ditto.
(WebCore::SourceBuffer::textTrackModeChanged): Ditto.
(WebCore::SourceBuffer::textTrackAddCue): Ditto.
(WebCore::SourceBuffer::textTrackAddCues): Ditto.
(WebCore::SourceBuffer::textTrackRemoveCue): Ditto.
(WebCore::SourceBuffer::textTrackRemoveCues): Ditto.
(WebCore::SourceBuffer::textTrackKindChanged): Ditto.
(WebCore::SourceBuffer::sourceBufferPrivateDidBecomeReadyForMoreSamples): Ditto.
(WebCore::SourceBuffer::provideMediaData): Ditto.
(WebCore::SourceBuffer::reenqueueMediaForTime): Ditto.

  • Modules/mediasource/SourceBuffer.h: Updated for above changes.
  • WebCore.xcodeproj/project.pbxproj: Replaced WebGLGetInfo with WebGLAny.
  • bindings/js/JSCanvasRenderingContext2DCustom.cpp:

(WebCore::toHTMLCanvasStyle): Removed explicit cast to CanvasStyle and unneeded
conversion to a pointer since CanvasStyle constructors now take references.

  • bindings/js/JSPluginElementFunctions.cpp:

(WebCore::pluginInstance): Updated since bindingsInstance now returns a raw pointer.
(WebCore::pluginScriptObject): Ditto.

  • bindings/js/JSWebGL2RenderingContextCustom.cpp:

(WebCore::toJS): Moved to WebGLAny.h/cpp.
(WebCore::JSWebGL2RenderingContext::getIndexedParameter): Updated since the toJS
function in WebGLAny.h takes references, not pointers.

  • bindings/js/JSWebGLRenderingContextBaseCustom.cpp: Removed quite a few unneeded

includes and got rid of a lot of unneeded JSC prefixes.
(WebCore::toJS): Moved to WebGLAny.h/cpp.
(WebCore::toJSNewlyCreated):
(WebCore::objectParameter): Renamed from getObjectParameter and also changed to
take a pointer to member function so we don't need an enum and a switch statement.
(WebCore::toJS): Changed to take references rather than pointers.
(WebCore::JSWebGLRenderingContextBase::getAttachedShaders): Use a modern for loop.
(WebCore::JSWebGLRenderingContextBase::getBufferParameter): Use objectParameter.
(WebCore::JSWebGLRenderingContextBase::getRenderbufferParameter): Ditto.
(WebCore::JSWebGLRenderingContextBase::getVertexAttrib): Ditto.
(WebCore::toNumberVector): Renamed from toVector, since this is specifically for
vectors of numbers. Use uncheckedAppend instead of assignment.
(WebCore::functionForUniform): Marked this inline.
(WebCore::dataFunctionf): Updated for above changes.
(WebCore::dataFunctioni): Ditto.
(WebCore::dataFunctionMatrix): Ditto.

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::fetch): Moved assertions to the top of the function.
Also added a FIXME because it's unclear why these assertions are correct. Updated
to use downcastScriptElement instead of toScriptElementIfPossible.

  • dom/Document.h: Sorted list of forward-declared classes. Removed duplicate

forward declaration of ScriptModuleLoader.

  • dom/PendingScript.cpp:

(WebCore::PendingScript::create): Take a ScriptElement instead of an Element.
(WebCore::PendingScript::PendingScript): Ditto.
(WebCore::PendingScript::loadableScript): Moved inline to header and made inline.
(WebCore::PendingScript::setClient): Take a reference instead of a pointer.

  • dom/PendingScript.h: UPdated for above changes.
  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::prepareScript): Pass a reference instead of a pointer.
(WebCore::ScriptElement::ref): Added. Forwards ref/deref to the underlying element
so we can use Ref and RefPtr with this class.
(WebCore::ScriptElement::deref): Ditto.
(WebCore::isScriptElement): Added. Replaces one of the two uses of
toScriptElementIfPossible, and is similar in style to is<Element>.
(WebCore::downcastScriptElement): Ditto, but for downcast.

  • dom/ScriptElement.h: Updated for above changes.
  • dom/ScriptRunner.cpp:

(WebCore::ScriptRunner::queueScriptForExecution): Take reference rather than
pointer, and pass ScriptElement rather than Element.
(WebCore::ScriptRunner::notifyFinished): Ditto.
(WebCore::ScriptRunner::timerFired): Ditto.

  • dom/ScriptRunner.h: Updated for above changes.
  • html/FileInputType.cpp:

(WebCore::FileInputType::files): Updated since m_fileList is a Ref.
(WebCore::FileInputType::createFileList): Updated to return a Ref instead of
a PassRefPtr. Also use reserveInitialCapacity/uncheckedAppend.
(WebCore::FileInputType::requestIcon): Updated since the updateRendering
function is now called iconLoaded. Also use references instead of pointers.
(WebCore::FileInputType::setFiles): Take a RefPtr&& insted of a PassRefPtr.
Also put some conditional code inside an #if.
(WebCore::FileInputType::filesChosen): Updated for function name change.
(WebCore::FileInputType::iconLoaded): Renamed from updateRendering.
Changed argument to RefPtr&& from PassRefPtr.
(WebCore::FileInputType::defaultToolTip): Got rid of unneeded local variable
and used the correct type, unsigned, rather than size_t.

  • html/FileInputType.h: Updated for the above changes, use final instead

of override, and use Ref instead of RefPtr.

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::form): Renamed from virtualForm.

  • html/HTMLElement.h: Replaced the form/virtualForm pair of functions with

just a form function. The old design dates back before we had "final" for
virtual functions, and now we can just use that instead.

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::virtualForm): Deleted.

  • html/HTMLFormControlElement.h: Mark the form function final, since it's

now both an inline function in this class, and an override of a virtual
function inherited from the base class. Deleted the virtualForm function.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::defaultEventHandler): Removed use of the
formForSubmission function, which was just another way to get the same
thing as the form function; perhaps they were different in the past.
(WebCore::HTMLInputElement::setFiles): Take a RefPtr&& rather than a PassRefPtr.

  • html/HTMLInputElement.h: Updated for the above.
  • html/HTMLLabelElement.cpp:

(WebCore::HTMLLabelElement::control): Made this const.
(WebCore::HTMLLabelElement::form): Made this const, so it can be used to
override the const form function from the base class.

  • html/HTMLLabelElement.h: Marked the form function final, since we want it

to override the form function inherited from HTMLElement.

  • html/HTMLLegendElement.cpp:

(WebCore::HTMLLegendElement::form): Renamed from virtualForm.

  • html/HTMLLegendElement.h: Override form instead of virtualForm and mark it final

This makes things more efficient if someone calls form directly on this class;
before it would make an unnecessary virtual function call.

  • html/HTMLMediaElement.cpp:

(WebCore::TrackDisplayUpdateScope::TrackDisplayUpdateScope): Take a reference
rather than a pointer.
(WebCore::TrackDisplayUpdateScope::~TrackDisplayUpdateScope): Ditto.
(WebCore::eventTimeCueCompare): Compare the cues the same way the cue list would
rather than using cueIndex.
(WebCore::HTMLMediaElement::audioTrackEnabledChanged): Take a reference.
(WebCore::HTMLMediaElement::textTrackModeChanged): Ditto.
(WebCore::HTMLMediaElement::videoTrackSelectedChanged): Ditto.
(WebCore::HTMLMediaElement::textTrackKindChanged): Ditto.
(WebCore::HTMLMediaElement::textTrackAddCues): Ditto.
(WebCore::HTMLMediaElement::textTrackRemoveCues): Ditto.
(WebCore::HTMLMediaElement::textTrackAddCue): Ditto.
(WebCore::HTMLMediaElement::textTrackRemoveCue): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack): Pass references.
(WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerDidAddVideoTrack): Ditto.
(WebCore::HTMLMediaElement::removeTextTrack): Ditto.
(WebCore::HTMLMediaElement::forgetResourceSpecificTracks): Ditto.
(WebCore::HTMLMediaElement::setController): Take a RefPtr&& instead of PassRefPtr.

  • html/HTMLMediaElement.h: Updated for above changes.
  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::virtualForm): Deleted.

  • html/HTMLObjectElement.h: Made the form function inline and final, which

achieves the same thing we did before with using, but without requiring the
separate virtualForm function, now deleted.

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::collectOptionInnerText): Use isScriptElement
instead of toScriptElementIfPossible.

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::bindingsInstance): Renamed from getInstance and
changed the return type to a raw pointer.

  • html/HTMLPlugInElement.h: Updated for the above changes. Also changed the

updateSnapshot function to take a raw pointer instead of a PassRefPtr.

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::createElementRenderer): Pass a pointer
to updateSnapshot.
(WebCore::HTMLPlugInImageElement::updateSnapshot): Updated to take a raw
pointer instead of a PassRefPtr.

  • html/HTMLPlugInImageElement.h: Updated for above changes.
  • html/HTMLScriptElement.h: Added using to resolve the ambiguity with the

ref/deref from HTMLElement and from ScriptElement.

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::selection): Return a RefPtr instead
of a PassRefPtr.

  • html/HTMLTextFormControlElement.h: Updated for above changes.
  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::textTrackKindChanged): Take a reference.
(WebCore::HTMLTrackElement::textTrackModeChanged): Ditto.
(WebCore::HTMLTrackElement::textTrackAddCues): Ditto.
(WebCore::HTMLTrackElement::textTrackRemoveCues): Ditto.
(WebCore::HTMLTrackElement::textTrackAddCue): Ditto.
(WebCore::HTMLTrackElement::textTrackRemoveCue): Ditto.

  • html/HTMLTrackElement.h: Updated for above changes.
  • html/InputType.cpp:

(WebCore::InputType::formForSubmission): Deleted.
(WebCore::InputType::setFiles): Take a RefPtr&& instead of a PassRefPtr.

  • html/InputType.h: Updated for above changes.
  • html/PluginDocument.cpp:

(WebCore::PluginDocumentParser::createDocumentStructure): Pass a reference.
(WebCore::PluginDocument::setPluginElement): Take a reference rather than
a PassRefPtr.

  • html/PluginDocument.h: Updated for above changes.
  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::setStrokeStyle): Pass a reference.
(WebCore::CanvasRenderingContext2D::setFillStyle): Ditto.
(WebCore::CanvasRenderingContext2D::drawTextInternal): Ditto.

  • html/canvas/CanvasStyle.cpp:

(WebCore::CanvasStyle::CanvasStyle): Rewrite all constructors to use the
m_style variant instead of separate m_type and other data members. Also
change from PassRefPtr to a reference.
(WebCore::CanvasStyle::createFromString): Update to use the variant.
(WebCore::CanvasStyle::createFromStringWithOverrideAlpha): Ditto.
(WebCore::CanvasStyle::isEquivalentColor): Ditto.
(WebCore::CanvasStyle::isEquivalentRGBA): Ditto.
(WebCore::CanvasStyle::isEquivalentCMYKA): Ditto.
(WebCore::CanvasStyle::CanvasStyle): Deleted copy constructor; the compiler
can now generate a correct copy or move constructor.
(WebCore::CanvasStyle::~CanvasStyle): Deleted. Compiler generates this
properly now without help from us.
(WebCore::CanvasStyle::operator=): Deleted. The compiler can now generate
a correct copy of move assignment operator.
(WebCore::CanvasStyle::applyStrokeColor): Updated to take a reference and
use the variant.
(WebCore::CanvasStyle::applyFillColor): Ditto.

  • html/canvas/CanvasStyle.h: Redid this class to use a variant instead of

a type enumeration and a union.

  • html/canvas/OESVertexArrayObject.cpp:

(WebCore::OESVertexArrayObject::createVertexArrayOES): Updated use of enum
since it's now an enum class.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::WebGL2RenderingContext): Use Ref&& instead of
RefPtr&& for the GraphicsContext3D.
(WebCore::WebGL2RenderingContext::initializeVertexArrayObjects): Updated enum
and also use references.
(WebCore::WebGL2RenderingContext::getInternalformatParameter): Use nullptr to
return null rather than the old idiom (default-constructed WebGLGetInfo).
(WebCore::WebGL2RenderingContext::texStorage2D): Ditto.
(WebCore::WebGL2RenderingContext::getQueryParameter): Ditto.
(WebCore::WebGL2RenderingContext::getSamplerParameter): Ditto.
(WebCore::WebGL2RenderingContext::getSyncParameter): Ditto.
(WebCore::WebGL2RenderingContext::getIndexedParameter): Ditto.
(WebCore::WebGL2RenderingContext::getActiveUniformBlockParameter): Ditto.
(WebCore::WebGL2RenderingContext::getActiveUniformBlockName): Ditto.
(WebCore::WebGL2RenderingContext::createVertexArray): Updated enum and also
use reference.
(WebCore::WebGL2RenderingContext::getExtension): Rearranged logic in three ways:
(1) Moved checks for whether an extension is supported inside the case for that
extension, rather than combining the extension name check with the extensions
enabled check. (2) Used the new enableSupportedExtension function to simplify
many of the checks to avoid repeating the extension name twice. (3) Changed the
idiom so we set the pointers to nullptr explicitly, preparing for a future where
we might make the extension pointers use std::optional so we can cache a negative
for each extension too, not just a positive result.
(WebCore::WebGL2RenderingContext::getSupportedExtensions): Use ASCIILiteral.
(WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter): Use nullptr
as above. For non-null types, return the object without converting, letting the
WebGLAny class handle things, except for enumerations, which we need to explicitly
static_cast to an integral type, and things that will be stored in the variant in
a RefPtr, where we use makeRefPtr.
(WebCore::WebGL2RenderingContext::validateFramebufferFuncParameters):
Simplified and clarified the handling of COLOR_ATTACHMENT.
(WebCore::WebGL2RenderingContext::getParameter): Return WebGLAny, same idiom as
described above for getFramebufferAttachmentParameter.

  • html/canvas/WebGL2RenderingContext.h: Updated for above changes.
  • html/canvas/WebGLAny.cpp: Added.

(WebCore::toJS): Handles conversion to JavaScript types. This function is based
on the existing toJS functions from the two classes that were using WebGLGetInfo.
Eventually we can probably just get the bindings to automatically generate this,
but there is some work to do to get to that point.

  • html/canvas/WebGLAny.h: Added. This type, a variant, replaces the WebGLGetInfo

class. Also includes the toJS function, which is the real point of this type, since
it's about returning a variant mapped appropriately to JavaScript types.

  • html/canvas/WebGLContextGroup.cpp:

(WebCore::WebGLContextGroup::getAGraphicsContext3D): Changed to return a reference.
Droped unnecessary local variable with a long type name.
(WebCore::WebGLContextGroup::addContext): Take a reference.
(WebCore::WebGLContextGroup::removeContext): Ditto.
(WebCore::WebGLContextGroup::removeObject): Ditto.
(WebCore::WebGLContextGroup::addObject): Ditto.
(WebCore::WebGLContextGroup::detachAndRemoveAllObjects): Dropped unnecessary
local variable with a long type name.

  • html/canvas/WebGLContextGroup.h: Updated for above changes.
  • html/canvas/WebGLContextObject.cpp:

(WebCore::WebGLContextObject::~WebGLContextObject): Pass references.
(WebCore::WebGLContextObject::detachContext): Ditto.

  • html/canvas/WebGLGetInfo.cpp: Removed.
  • html/canvas/WebGLGetInfo.h: Removed.
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::WebGLRenderingContext): Take a Ref&& instead
of as PassRefPtr.
(WebCore::WebGLRenderingContext::initializeVertexArrayObjects): Updated enum
and also use references.
(WebCore::WebGLRenderingContext::getExtension): Rearranged logic in three ways:
(1) Moved checks for whether an extension is supported inside the case for that
extension, rather than combining the extension name check with the extensions
enabled check. (2) Used the new enableSupportedExtension function to simplify
many of the checks to avoid repeating the extension name twice. (3) Changed the
idiom so we set the pointers to nullptr explicitly, preparing for a future where
we might make the extension pointers use std::optional so we can cache a negative
for each extension too, not just a positive result.
(WebCore::WebGLRenderingContext::getSupportedExtensions): Use ASCIILiteral.
(WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter): Use nullptr
as above. For non-null types, return the object without converting, letting the
WebGLAny class handle things, except for enumerations, which we need to explicitly
static_cast to an integral type, and things that will be stored in the variant in
a RefPtr, where we use makeRefPtr.
(WebCore::WebGLRenderingContext::validateFramebufferFuncParameters):
Simplified and clarified the handling of COLOR_ATTACHMENT adding a FIXME about
something questionable.
(WebCore::WebGLRenderingContext::getParameter): Return WebGLAny, same idiom as
described above for getFramebufferAttachmentParameter.

  • html/canvas/WebGLRenderingContext.h: Updated for above changes.
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create): Updated to pass references
instead of pointers in a couple cases
(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase): Changed graphics
context argument type from RefPtr&& to Ref&&. Also moved initialization of scalars
from the constructor to the class definition.
(WebCore::WebGLRenderingContextBase::~WebGLRenderingContextBase): Pass a reference.
(WebCore::WebGLRenderingContextBase::createBuffer): Pass a reference instead of a pointer.
(WebCore::WebGLRenderingContextBase::createFramebuffer): Ditto.
(WebCore::WebGLRenderingContextBase::createTexture): Ditto.
(WebCore::WebGLRenderingContextBase::createProgram): Ditto.
(WebCore::WebGLRenderingContextBase::createRenderbuffer): Ditto.
(WebCore::WebGLRenderingContextBase::createShader): Ditto.
(WebCore::WebGLRenderingContextBase::deleteBuffer): Ditto.
(WebCore::WebGLRenderingContextBase::getBufferParameter): Update to use WebGLAny.
(WebCore::WebGLRenderingContextBase::getProgramParameter): Ditto.
(WebCore::WebGLRenderingContextBase::getRenderbufferParameter): Ditto.
(WebCore::WebGLRenderingContextBase::getShaderParameter): Ditto.
(WebCore::WebGLRenderingContextBase::getTexParameter): Ditto.
(WebCore::WebGLRenderingContextBase::getUniform): Ditto.
(WebCore::WebGLRenderingContextBase::getVertexAttrib): Ditto.
(WebCore::WebGLRenderingContextBase::getVertexAttribOffset): Removed unnneed
type casts.
(WebCore::WebGLRenderingContextBase::vertexAttribPointer): Pass a reference.
(WebCore::WebGLRenderingContextBase::removeSharedObject): Take a reference.
(WebCore::WebGLRenderingContextBase::addSharedObject): Ditto.
(WebCore::WebGLRenderingContextBase::removeContextObject): Ditto.
(WebCore::WebGLRenderingContextBase::addContextObject): Ditto.
(WebCore::WebGLRenderingContextBase::getBooleanParameter): Changed return type;
connversion to WebGLAny can happen at the point of use.
(WebCore::WebGLRenderingContextBase::getBooleanArrayParameter): Ditto.
(WebCore::WebGLRenderingContextBase::getFloatParameter): Ditto.
(WebCore::WebGLRenderingContextBase::getIntParameter): Ditto.
(WebCore::WebGLRenderingContextBase::getUnsignedIntParameter): Ditto.
(WebCore::WebGLRenderingContextBase::getInt64Parameter): Ditto.
(WebCore::WebGLRenderingContextBase::getWebGLFloatArrayParameter): Ditto.
(WebCore::WebGLRenderingContextBase::getWebGLIntArrayParameter): Ditto.
(WebCore::WebGLRenderingContextBase::validateBufferDataParameters): Use
optional to simplify logic and get rid of a boolean.
(WebCore::WebGLRenderingContextBase::enableSupportedExtension): Added.
Helper used by the getExtension functions.

  • html/canvas/WebGLRenderingContextBase.h: Updated for the above changes.

Also changed setBoundVertexArrayObject to take a raw pointer instead of
as PassRefPtr.

  • html/canvas/WebGLSharedObject.cpp:

(WebCore::WebGLSharedObject::~WebGLSharedObject): Pass a reference.
(WebCore::WebGLSharedObject::detachContextGroup): Ditto.
(WebCore::WebGLSharedObject::getAGraphicsContext3D): Updated since the
underlying getAGraphicsContext3D function now returns a reference.

  • html/canvas/WebGLSharedObject.h: Removed many unused "is" virtual functions.
  • html/canvas/WebGLTransformFeedback.h: Ditto.
  • html/canvas/WebGLVertexArrayObject.cpp:

(WebCore::WebGLVertexArrayObject::create): Updated for new type enumeration.
(WebCore::WebGLVertexArrayObject::WebGLVertexArrayObject): Ditto.
(WebCore::WebGLVertexArrayObject::deleteObjectImpl): Ditto.

  • html/canvas/WebGLVertexArrayObject.h: Updated for above changes.
  • html/canvas/WebGLVertexArrayObjectBase.cpp:

(WebCore::WebGLVertexArrayObjectBase::WebGLVertexArrayObjectBase): Updated for new
type enumeration and moved initialization to class definition.
(WebCore::WebGLVertexArrayObjectBase::setElementArrayBuffer): Changed argument to
raw pointer instead of PassRefPtr.
(WebCore::WebGLVertexArrayObjectBase::setVertexAttribState): Changed argument to
reference instead of PassRefPtr.
(WebCore::WebGLVertexArrayObjectBase::unbindBuffer): Changed arugment type to
reference instead of PassRefPtr.
(WebCore::WebGLVertexArrayObjectBase::setVertexAttribDivisor): Removed unneeded
local variable.

  • html/canvas/WebGLVertexArrayObjectBase.h: Updated for above changes.

Replaced VAOType with Type. Used class member initialization.

  • html/canvas/WebGLVertexArrayObjectOES.cpp:

(WebCore::WebGLVertexArrayObjectOES::create): Updated for new type enumeration.
(WebCore::WebGLVertexArrayObjectOES::WebGLVertexArrayObjectOES): Ditto.
(WebCore::WebGLVertexArrayObjectOES::~WebGLVertexArrayObjectOES) Ditto.:
(WebCore::WebGLVertexArrayObjectOES::deleteObjectImpl): Ditto.

  • html/canvas/WebGLVertexArrayObjectOES.h: Updated for above changes.
  • html/forms/FileIconLoader.cpp:

(WebCore::FileIconLoader::iconLoaded): Renamed from notifyFinished. Also changed
the name of the function this calls to iconLoaded. Changed the arguemnt to
RefPtr&& instead of PassRefPtr.

  • html/forms/FileIconLoader.h: Updated for above changes.
  • html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::attachLater): Use isScriptElement instead of
toScriptElementIfPossible.
(WebCore::HTMLConstructionSite::insertForeignElement): Ditto.

  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder): Pass script
element as a Ref rather than RefPtr.
(WebCore::HTMLDocumentParser::watchForLoad): Pass a reference instead of a pointer.

  • html/parser/HTMLScriptRunner.cpp:

(WebCore::HTMLScriptRunner::executeParsingBlockingScript): Deleted. Moved the code
into the single call site, execute ParsingBlockingScripts.
(WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent): Changed argument
type to a reference from a RefPtr; this funtion was not taking ownership. Also remove
call to toScriptElementIfPossible,
since pending scripts now contains script elements already.
(WebCore::HTMLScriptRunner::execute): Changed argument type to Ref<ScriptElement>&&
from PassRefPtr<Element>.
(WebCore::HTMLScriptRunner::executeParsingBlockingScripts): Moved code here from
executeParsingBlockingScript. Also pass a reference.
(WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing): Pass a reference.
(WebCore::requestPendingScript): Changed argument type to ScriptElement& from
Element*.
(WebCore::HTMLScriptRunner::requestParsingBlockingScript): Ditto.
(WebCore::HTMLScriptRunner::requestDeferredScript): Ditto.
(WebCore::HTMLScriptRunner::runScript): Ditto.

  • html/parser/HTMLScriptRunner.h: Updated for above changes.
  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::takeScriptToProcess): Changed return type from
RefPtr<Element> to RefPtr<ScriptElement>.
(WebCore::HTMLTreeBuilder::processEndTag): Downcast the script element to
HTMLScriptElement so we can store it as a ScriptElement.
(WebCore::HTMLTreeBuilder::processTokenInForeignContent): Downcast the script
element to SVGScriptElement so we can store it as a script element.

  • html/parser/HTMLTreeBuilder.h: Updated for above changes. Changed the type

of m_scriptToProcess to RefPtr<ScriptElement>.

  • html/parser/TextDocumentParser.cpp: Added now-needed include.
  • html/parser/XSSAuditorDelegate.cpp:

(WebCore::XSSAuditorDelegate::generateViolationReport): Changed return type
to Ref from PassRefPtr.

  • html/parser/XSSAuditorDelegate.h: Updated for above.
  • html/track/AudioTrack.cpp:

(WebCore::AudioTrack::AudioTrack): Take references.
(WebCore::AudioTrack::setPrivate): Ditto.
(WebCore::AudioTrack::setEnabled): Removed redundant code to do what the
private setEnabled function is already going to do.
(WebCore::AudioTrack::inbandTrackIndex): Removed assertion since m_private
is now a Ref rather than RefPtr.
(WebCore::AudioTrack::enabledChanged): Added an early exit so we will only
call audioTrackEnabledChanged if m_enabled is actually changing. Also removed
the unneeded track private argument.
(WebCore::AudioTrack::idChanged): Ditto.
(WebCore::AudioTrack::labelChanged): Ditto.
(WebCore::AudioTrack::languageChanged): Ditto.
(WebCore::AudioTrack::willRemove): Ditto.

  • html/track/AudioTrack.h: Updated for above changes.
  • html/track/InbandDataTextTrack.cpp:

(WebCore::InbandDataTextTrack::addDataCue): Removed inband text track private
argument. Use contains instead of find/end.
(WebCore::InbandDataTextTrack::updateDataCue): Ditto. Use get instead of find/end.
(WebCore::InbandDataTextTrack::removeDataCue): Ditto.

  • html/track/InbandDataTextTrack.h: Updated for above changes.
  • html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::InbandGenericTextTrack): Take references.
(WebCore::InbandGenericTextTrack::create): Ditto.
(WebCore::InbandGenericTextTrack::updateCueFromCueData): Ditto.
(WebCore::InbandGenericTextTrack::addGenericCue): Ditto. Also removed unused
track private argument.
(WebCore::InbandGenericTextTrack::updateGenericCue): Ditto.
(WebCore::InbandGenericTextTrack::removeGenericCue): Ditto.
(WebCore::InbandGenericTextTrack::parseWebVTTCueData): Ditto.
(WebCore::InbandGenericTextTrack::parseWebVTTFileHeader): Ditto.
(WebCore::InbandGenericTextTrack::newRegionsParsed): Pass a reference.

  • html/track/InbandGenericTextTrack.h: Updated for above changes.
  • html/track/InbandTextTrack.cpp:

(WebCore::InbandTextTrack::create): Return a Ref instead of a PassRefPtr. Take
references.
(WebCore::InbandTextTrack::InbandTextTrack): Ditto.
(WebCore::InbandTextTrack::setPrivate): Take a reference instead of a PassRefPtr.
(WebCore::InbandTextTrack::isClosedCaptions): Removed check for null since m_private
is now a Ref and so never null.
(WebCore::InbandTextTrack::isSDH): Ditto.
(WebCore::InbandTextTrack::containsOnlyForcedSubtitles): Ditto.
(WebCore::InbandTextTrack::isMainProgramContent): Ditto.
(WebCore::InbandTextTrack::isEasyToRead): Ditto.
(WebCore::InbandTextTrack::inbandTrackIndex): Ditto.
(WebCore::InbandTextTrack::inBandMetadataTrackDispatchType): Ditto.
(WebCore::InbandTextTrack::idChanged): Removed unneeded track private argument.
(WebCore::InbandTextTrack::labelChanged): Ditto.
(WebCore::InbandTextTrack::languageChanged): Ditto.
(WebCore::InbandTextTrack::willRemove): Ditto.
(WebCore::InbandTextTrack::updateKindFromPrivate): Improved switch statement
by removing default so we get a warning if we forget to handle a kind value.
(WebCore::InbandTextTrack::startTimeVariance): Removed check for null.

  • html/track/InbandTextTrack.h: Updated for above changes. Changed m_private from

a RefPtr to a Ref.

  • html/track/InbandWebVTTTextTrack.cpp:

(WebCore::InbandWebVTTTextTrack::InbandWebVTTTextTrack): Take references.
(WebCore::InbandWebVTTTextTrack::create): Ditto.
(WebCore::InbandWebVTTTextTrack::parseWebVTTCueData): Removed unneeded track
private arguemnt.
(WebCore::InbandWebVTTTextTrack::newRegionsParsed): Pass a reference.

  • html/track/InbandWebVTTTextTrack.h: Updated for above changes.
  • html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::newCuesAvailable): Pass references.
(WebCore::LoadableTextTrack::newRegionsAvailable): Ditto.

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::~TextTrack): Use references.
(WebCore::TextTrack::setKind): Ditto.
(WebCore::TextTrack::setMode): Ditto.
(WebCore::TextTrack::removeAllCues): Ditto.
(WebCore::TextTrack::activeCues): Ditto.
(WebCore::TextTrack::addCue): Ditto.
(WebCore::TextTrack::removeCue): Removed unneeded code to handle a cue
that points to a track but is not in that track. Added a call to
setIsActive(false) here instead of having the remove function do it.
(WebCore::TextTrack::addRegion): Use references.
(WebCore::TextTrack::removeRegion): Removed unneeded code to handle a
region that points to a track but is not in that track.
(WebCore::TextTrack::cueWillChange): Use references.
(WebCore::TextTrack::cueDidChange): Ditto.
(WebCore::TextTrack::setLanguage): Ditto.

  • html/track/TextTrack.h: Updated for above changes.
  • html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::TextTrackCue): Initialized the data members
in the class definition.
(WebCore::TextTrackCue::cueIndex): Deleted.
(WebCore::TextTrackCue::invalidateCueIndex): Deleted.

  • html/track/TextTrackCue.h: Updated for the above. Removed m_cueIndex,

because it is not a good design to store these and try to keep them up
to date.

  • html/track/TextTrackCueList.cpp:

(WebCore::compareCues): Added. Helper for sorting and checking sorting.
(WebCore::TextTrackCueList::TextTrackCueList): Deleted. Let the compiler
generate this.
(WebCore::TextTrackCueList::length): Moved to header.
(WebCore::TextTrackCueList::cueIndex): Renamed from getCueIndex.
Changed return type to unsigned rather than unsigned long.
(WebCore::TextTrackCueList::item): Updated for name change.
(WebCore::TextTrackCueList::getCueById): Ditto.
(WebCore::TextTrackCueList::activeCues): Build the vector directly
rather than wastefully adding with TextTrackCueList::add, which will
try to sort.
(WebCore::TextTrackCueList::add): Take a Ref&& instead of a PassRefPtr.
Also, keep sorted using std::upper_bound instead of the recursive
binary search this code was using before. Also remove the
invalidateCueIndexes call since there are no cue indices any more.
Also remove the boolean return value since no caller was using it.
(WebCore::TextTrackCueList::remove): Take a reference instead of a
pointer. Also remove the boolean return value since no caller was using it.
(WebCore::TextTrackCueList::contains): Deleted. Was unused.
(WebCore::TextTrackCueList::updateCueIndex): Reimplemented using the
std::upper_bound and std::rotate operations. The old code that used
remove and add was inefficient and also could cause a cue to be deallocated
if something else wasn't holding a reference to the cue. Also changed to take
a reference.
(WebCore::TextTrackCueList::clear): Deleted. Was unused.
(WebCore::TextTrackCueList::invalidateCueIndexes): Deleted. No longer
needed since we don't store cue indices in the cues any more.

  • html/track/TextTrackCueList.h: Updated for the above changes.
  • html/track/VTTRegionList.cpp:

(WebCore::VTTRegionList::VTTRegionList): Deleted. Let the compiler
generate this.
(WebCore::VTTRegionList::length): Moved to header.
(WebCore::VTTRegionList::item): Updated for name and type changes.
(WebCore::VTTRegionList::getRegionById): Ditto.
(WebCore::VTTRegionList::add): Changed to take a Ref&& instead of a
PassRefPtr.
(WebCore::VTTRegionList::remove): Updated.
(WebCore::VTTRegionList::clear): Deleted. Was unused.

  • html/track/VTTRegionList.h: Updated for the above changes.
  • html/track/VTTRegionList.idl: Made return values nullable to reflect

the actual semantic of the code.

  • html/track/VideoTrack.cpp:

(WebCore::VideoTrack::VideoTrack): Use references.
(WebCore::VideoTrack::setPrivate): Ditto.
(WebCore::VideoTrack::setSelected): Ditto.
(WebCore::VideoTrack::inbandTrackIndex): Removed assertion since m_private
is now a Ref instead of a RefPtr.
(WebCore::VideoTrack::selectedChanged): Removed unneeded track private argument.
(WebCore::VideoTrack::idChanged): Ditto.
(WebCore::VideoTrack::labelChanged): Ditto.
(WebCore::VideoTrack::languageChanged): Ditto.
(WebCore::VideoTrack::willRemove): Ditto.
(WebCore::VideoTrack::setKind): Updated to use reference.
(WebCore::VideoTrack::setLanguage): Ditto.

  • html/track/VideoTrack.h: Updated for the above. Changed derivation to private.

Removed unneeded defaultKindKeyword.

  • loader/EmptyClients.h: Updated to use reference.
  • loader/PingLoader.cpp:

(WebCore::PingLoader::sendViolationReport): Take a Ref&& instead of RefPtr&&.

  • loader/PingLoader.h: Updated for above change.
  • page/Chrome.cpp:

(WebCore::Chrome::loadIconForFiles): Take a reference.

  • page/Chrome.h: Updated for above change.
  • page/ChromeClient.h: Ditto.
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::reportViolation): Use auto.

  • platform/cocoa/WebPlaybackSessionModelMediaElement.mm:

(WebPlaybackSessionModelMediaElement::selectAudioMediaOption): Simplified
algorithm by removing unneeded direct call to audioTrackEnabledChanged,
which will be called by setEnabled and doesn't need to be called again here.
(WebPlaybackSessionModelMediaElement::selectLegibleMediaOption): Removed
unhelpful assertion and unnneded initialization.

  • platform/graphics/AudioTrackPrivate.h: Removed unnneeed track private

argument and initialized data members where they are defined.

  • platform/graphics/InbandTextTrackPrivateClient.h: Use Ref instead of

PassRefPtr, initialize data members where they are defined, and removed
the unneeded track private arguments from the client functions.

  • platform/graphics/SourceBufferPrivate.h: Fixed functions that were taking

AtomicString to take a const& instead. Use Ref&& instead of PassRefPtr.

  • platform/graphics/SourceBufferPrivateClient.h: Removed unneded private pointer

arguments from client functions.

  • platform/graphics/TrackPrivateBase.h: Removed unneeded private pointers

from client functions.

  • platform/graphics/VideoTrackPrivate: Ditto.
  • platform/graphics/avfoundation/AudioTrackPrivateAVF.h: Use

const AtomicString&.

  • platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp:

(WebCore::InbandMetadataTextTrackPrivateAVF::addDataCue): Updated for change to arguments.
(WebCore::InbandMetadataTextTrackPrivateAVF::updatePendingCueEndTimes): Ditto.
(WebCore::InbandMetadataTextTrackPrivateAVF::flushPartialCues): Ditto.

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::InbandTextTrackPrivateAVF::processAttributedStrings): Ditto.
(WebCore::InbandTextTrackPrivateAVF::resetCueValues): Ditto.
(WebCore::InbandTextTrackPrivateAVF::processNativeSamples): Ditto.

  • platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.cpp:

(WebCore::AudioTrackPrivateMediaSourceAVFObjC::AudioTrackPrivateMediaSourceAVFObjC):
Moved initialization of data memebrs to where they are defined.
(WebCore::AudioTrackPrivateMediaSourceAVFObjC::enabled): Deleted. No longer needed.
(WebCore::AudioTrackPrivateMediaSourceAVFObjC::setEnabled): Changed to use the enabled
flag from the base class instead of a separate m_enabled in this class.

  • platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.h:

Removed the enabled function and the m_enabled data member.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h: Marked functions

final instead of override and updated arguemnts.

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

(WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset): Updated for change
to arguments.
(WebCore::SourceBufferPrivateAVFObjC::processCodedFrame): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::appendCompleted): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::hasVideo): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::hasAudio): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::layerDidReceiveError): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::flush): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::fastSeekTimeForMediaTime): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::seekToTime): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples): Ditto.

  • platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h: Updated for

changes to arguments.

  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:

(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfSample): Ditto.

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged): Ditto.

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

(WebCore::AppendPipeline::appsinkNewSample): Ditto.

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

(WebCore::SourceBufferPrivateGStreamer::append): Ditto.
(WebCore::SourceBufferPrivateGStreamer::flush): Ditto.
(WebCore::SourceBufferPrivateGStreamer::enqueueSample): Ditto.
(WebCore::SourceBufferPrivateGStreamer::isReadyForMoreSamples): Ditto.
(WebCore::SourceBufferPrivateGStreamer::notifyReadyForMoreSamples): Ditto.
(WebCore::SourceBufferPrivateGStreamer::stopAskingForMoreSamples): Ditto.
(WebCore::SourceBufferPrivateGStreamer::notifyClientWhenReadyForMoreSamples): Ditto.
(WebCore::SourceBufferPrivateGStreamer::didReceiveInitializationSegment): Ditto.
(WebCore::SourceBufferPrivateGStreamer::didReceiveSample): Ditto.
(WebCore::SourceBufferPrivateGStreamer::didReceiveAllPendingSamples): Ditto.

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h: Ditto.
  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:

(WebCore::MockSourceBufferPrivate::append): Ditto.
(WebCore::MockSourceBufferPrivate::didReceiveInitializationSegment): Ditto.
(WebCore::MockSourceBufferPrivate::didReceiveSample): Ditto.
(WebCore::MockSourceBufferPrivate::enqueuedSamplesForTrackID): Ditto.
(WebCore::MockSourceBufferPrivate::enqueueSample): Ditto.
(WebCore::MockSourceBufferPrivate::hasVideo): Ditto.
(WebCore::MockSourceBufferPrivate::hasAudio): Ditto.
(WebCore::MockSourceBufferPrivate::fastSeekTimeForMediaTime): Ditto.
(WebCore::MockSourceBufferPrivate::seekToTime): Ditto.

  • platform/mock/mediasource/MockSourceBufferPrivate.h: Ditto.
  • rendering/RenderSnapshottedPlugIn.cpp:

(WebCore::RenderSnapshottedPlugIn::updateSnapshot): Take raw pointer instead
of PassRefPtr.

  • rendering/RenderSnapshottedPlugIn.h: Updated for above change.
  • svg/SVGScriptElement.h: Added using to resolve the ambiguity with the

ref/deref from SVGElement and from ScriptElement.

  • xml/parser/XMLDocumentParser.cpp:

(WebCore::XMLDocumentParser::notifyFinished): Updated to simplify since
the pending script now has a script element.

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::startElementNs): Use isSciprtElement instead
of toScriptElementIfPossible.
(WebCore::XMLDocumentParser::endElementNs): Ditto. Also use downcastScriptElement.

Source/WebKit/mac:

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::loadIconForFiles): Take a reference instead of a pointer.

Source/WebKit/win:

  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::loadIconForFiles): Take a reference instead of a pointer.

  • WebCoreSupport/WebChromeClient.h: Updated for the above.

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::loadIconForFiles): Take a reference instead of a pointer.

  • WebProcess/WebCoreSupport/WebChromeClient.h: Ditto.

Source/WTF:

  • wtf/RefPtr.h:

(WTF::makeRefPtr): Added.

9:09 PM Changeset in webkit [210318] by Wenson Hsieh
  • 4 edits
    2 copies
    1 delete in trunk

Move editing history scripts to WebCore PrivateHeaders
https://bugs.webkit.org/show_bug.cgi?id=166709
<rdar://problem/29876612>

Reviewed by Dan Bernstein.

Source/WebCore:

Move editing history scripts out of InternalScripts and into Scripts, and update the WebCore Copy Script build
phase to copy the editing scripts into PrivateHeaders.

No new tests, because there should be no behavior change.

  • Scripts/DumpEditingHistory.js: Renamed from Source/WebCore/InternalScripts/DumpEditingHistory.js.
  • Scripts/EditingHistoryUtil.js: Renamed from Source/WebCore/InternalScripts/EditingHistoryUtil.js.
  • WebCore.xcodeproj/project.pbxproj:

Tools:

Update references to editing script files in WebCore that were moved.

  • EditingHistory/EditingHistory.xcodeproj/project.pbxproj:
8:43 PM Changeset in webkit [210317] by Yusuke Suzuki
  • 3 edits in trunk/Tools

Unreviewed, build fix after r210313 part 2
https://bugs.webkit.org/show_bug.cgi?id=166676

Add 'U' suffix.

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/WTFString.cpp:

(TestWebKitAPI::TEST):

8:37 PM Changeset in webkit [210316] by Joseph Pecoraro
  • 5 edits in trunk/Source/WebCore

Web Inspector: forced pseudo classes aren't cleared from inspected page when Inspector closes
https://bugs.webkit.org/show_bug.cgi?id=108823
<rdar://problem/13143550>

Reviewed by Timothy Hatcher.

  • inspector/InspectorCSSAgent.h:
  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::documentDetached):
Clear the document from all of the different Document sets.

(WebCore::InspectorCSSAgent::didRemoveDocument): Deleted.
Use documentDetached, which is more direct.

(WebCore::InspectorCSSAgent::forcePseudoState):
Update the set of Documents with psuedo element changes. So when we
reset forced styles we know which documents to refresh styles.

(WebCore::InspectorCSSAgent::resetPseudoStates):
Use the list of documents we've already computed.

(WebCore::InspectorCSSAgent::didRemoveDOMNode):
(WebCore::InspectorCSSAgent::didModifyDOMAttr):
Change to take a reference and more data to avoid extra work.

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

(WebCore::InspectorDOMAgent::unbind):
Eliminated didRemoveDocument.

(WebCore::InspectorDOMAgent::didModifyDOMAttr):
(WebCore::InspectorDOMAgent::didRemoveDOMAttr):
(WebCore::InspectorDOMAgent::styleAttributeInvalidated):
Pass a references to the DOM listener client, these are never null.

8:35 PM Changeset in webkit [210315] by mmaxfield@apple.com
  • 30 edits in trunk

Remove runtime flag for variation fonts
https://bugs.webkit.org/show_bug.cgi?id=164251

Reviewed by Dean Jackson.

Source/WebCore:

No new tests because there is no behavior change, but updated the following
tests to stop setting the flag:

  • animations/font-variations/font-variation-settings-order.html:
  • animations/font-variations/font-variation-settings-unlike.html:
  • animations/font-variations/font-variation-settings.html:
  • fast/text/variations/duplicate.html:
  • fast/text/variations/exist.html:
  • fast/text/variations/getComputedStyle.html:
  • fast/text/variations/inheritance.html:
  • fast/text/variations/order.html:
  • fast/text/variations/outofbounds.html:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/parser/CSSParser.cpp:

(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):

  • css/parser/CSSParserMode.h:

(WebCore::CSSParserContext::completeURL):
(WebCore::CSSParserContextHash::hash):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):

  • page/Settings.in:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::variationFontsEnabled): Deleted.
(WebCore::InternalSettings::setVariationFontsEnabled): Deleted.

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::registerUserDefaultsIfNeeded):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

LayoutTests:

  • animations/font-variations/font-variation-settings-expected.html:
  • animations/font-variations/font-variation-settings-order-expected.html:
  • animations/font-variations/font-variation-settings-order.html:
  • animations/font-variations/font-variation-settings-unlike-expected.html:
  • animations/font-variations/font-variation-settings-unlike.html:
  • animations/font-variations/font-variation-settings.html:
  • fast/text/variations/duplicate-expected.html:
  • fast/text/variations/duplicate.html:
  • fast/text/variations/exist-expected-mismatch.html:
  • fast/text/variations/exist.html:
  • fast/text/variations/getComputedStyle.html:
  • fast/text/variations/inheritance-expected.html:
  • fast/text/variations/inheritance.html:
  • fast/text/variations/order-expected.html:
  • fast/text/variations/order.html:
  • fast/text/variations/outofbounds-expected.html:
  • fast/text/variations/outofbounds.html:
8:04 PM Changeset in webkit [210314] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

Unreviewed build fix after r210313
https://bugs.webkit.org/show_bug.cgi?id=166676

Revert #pragma once to ifdefs due to build failure.

  • wtf/text/StringView.h:
6:53 PM Changeset in webkit [210313] by Yusuke Suzuki
  • 10 edits in trunk

Limit thread name appropriately
https://bugs.webkit.org/show_bug.cgi?id=166676

Reviewed by Sam Weinig.

Source/WTF:

In some platform, the max length of thread names are limited.
For example, the number of the max length is 32 in Windows and
16 in Linux. But the specified thread name is typically long
in WebKit like "com.apple.CoreIPC.ReceiveQueue"

We port the logic substring the thread name in
generic/WorkQueueGeneric.cpp to Threading. It retrieves the name
"ReceiveQueue" from "com.apple.CoreIPC.ReceiveQueue". And apply
the appropriate the thread name limit and use it on Linux and
Windows environment.

  • wtf/Threading.cpp:

(WTF::normalizeThreadName):
(WTF::createThread):

  • wtf/Threading.h:
  • wtf/ThreadingPthreads.cpp:

(WTF::initializeCurrentThreadInternal):

  • wtf/ThreadingWin.cpp:

(WTF::initializeCurrentThreadInternal):

  • wtf/generic/WorkQueueGeneric.cpp:

(WorkQueue::platformInitialize):

  • wtf/text/StringView.h:

(WTF::StringView::left):
(WTF::StringView::right):
(WTF::StringView::reverseFind):

Tools:

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/WTFString.cpp:

(TestWebKitAPI::TEST):

6:49 PM Changeset in webkit [210312] by jfbastien@apple.com
  • 2 edits in trunk/JSTests

WebAssembly: sections with the same name are allowed
https://bugs.webkit.org/show_bug.cgi?id=166708

Reviewed by Saam Barati.

  • wasm/self-test/test_BuilderJSON.js:

(SectionsWithSameCustomName):

6:00 PM Changeset in webkit [210311] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: application cache details not shown in Storage Tab
https://bugs.webkit.org/show_bug.cgi?id=166699
<rdar://problem/29871716>

Reviewed by Brian Burg.

Fix a ternary operator precedence. The following expression throws an exception:

true
false ? i.dont.exist : false
  • UserInterface/Views/ApplicationCacheFrameTreeElement.js:

(WebInspector.ApplicationCacheFrameTreeElement.prototype.updateTitles):

5:32 PM Changeset in webkit [210310] by aestes@apple.com
  • 8 edits
    3 adds in trunk

[Cocoa] Teach SharedBuffer to return an NSArray of data segments to avoid flattening
https://bugs.webkit.org/show_bug.cgi?id=166696

Reviewed by Tim Horton.

Source/WebCore:

Existing methods of extracting NSData from a SharedBuffer require either merging or copying
data segments. Since data segments are stored in CFDataRefs on Cocoa platforms, it should be
possible to retrieve an NSArray of the segments without having to first flatten to a single
buffer.

This patch implements such a method. This will be used in a follow-on patch, where I will
need to pass SharedBuffer data to QuickLook via an NSArray of NSData.

New API test: SharedBufferTest.createNSDataArray.

  • platform/SharedBuffer.h: Declared createNSArrayData(), and exported two functions needed

by the API test.

  • platform/cocoa/SharedBufferCocoa.mm:

(WebCore::SharedBuffer::createNSDataArray): Added. Returns m_cfData or a copy of m_fileData
if either exist. Otherwise, adds m_buffer (wrapped in a WebCoreSharedBufferData object) and
the objects in m_dataArray to a NSMutableArray and returns it.

Tools:

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/PlatformWin.cmake:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp: Moved class SharedBufferTest to SharedBufferTest.{cpp,h}.
  • TestWebKitAPI/Tests/WebCore/SharedBufferTest.cpp: Moved class SharedBufferTest from SharedBuffer.cpp.
  • TestWebKitAPI/Tests/WebCore/SharedBufferTest.h: Ditto.
  • TestWebKitAPI/Tests/WebCore/cocoa/SharedBuffer.mm: Added.

(TestWebKitAPI::expectDataArraysEqual): Added a helper to assert that two NSArrays of NSData are equal.
(TestWebKitAPI::TEST_F): Added a test for createNSDataArray.

5:22 PM Changeset in webkit [210309] by BJ Burg
  • 35 edits
    4 copies
    14 adds in trunk/Source/JavaScriptCore

Web Inspector: teach the protocol generator about platform-specific types, events, and commands
https://bugs.webkit.org/show_bug.cgi?id=166003
<rdar://problem/28718990>

Reviewed by Joseph Pecoraro.

This patch implements parser, model, and generator-side changes to account for
platform-specific types, events, and commands. The 'platform' property is parsed
for top-level definitions and assumed to be the 'generic' platform if none is specified.

Since the generator's platform setting acts to filter definitions with an incompatible platform,
all generators must be modified to consult a list of filtered types/commands/events for
a domain instead of directly accessing Domain.{type_declarations, commands, events}. To prevent
accidental misuse, hide those fields behind accessors (e.g., all_type_declarations()) so that they
are still accessible if truly necessary, but not used by default and caused an error if not migrated.

  • inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:

(CppAlternateBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain):

  • inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:

(CppBackendDispatcherHeaderGenerator.domains_to_generate):
(CppBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain):
(CppBackendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain):

  • inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:

(CppBackendDispatcherImplementationGenerator.domains_to_generate):
(CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain):
(CppBackendDispatcherImplementationGenerator._generate_small_dispatcher_switch_implementation_for_domain):
(CppBackendDispatcherImplementationGenerator._generate_large_dispatcher_switch_implementation_for_domain):

  • inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:

(CppFrontendDispatcherHeaderGenerator.domains_to_generate):
(CppFrontendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain):

  • inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py:

(CppFrontendDispatcherImplementationGenerator.domains_to_generate):
(CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain):

  • inspector/scripts/codegen/generate_cpp_protocol_types_header.py:

(CppProtocolTypesHeaderGenerator._generate_forward_declarations):
(_generate_typedefs_for_domain):
(_generate_builders_for_domain):
(_generate_forward_declarations_for_binding_traits):
(_generate_declarations_for_enum_conversion_methods):

  • inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:

(CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain):
(CppProtocolTypesImplementationGenerator._generate_open_field_names):
(CppProtocolTypesImplementationGenerator._generate_builders_for_domain):

  • inspector/scripts/codegen/generate_js_backend_commands.py:

(JSBackendCommandsGenerator.should_generate_domain):
(JSBackendCommandsGenerator.domains_to_generate):
(JSBackendCommandsGenerator.generate_domain):
(JSBackendCommandsGenerator.domains_to_generate.should_generate_domain): Deleted.

  • inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py:

(ObjCBackendDispatcherHeaderGenerator.domains_to_generate):
(ObjCBackendDispatcherHeaderGenerator._generate_objc_forward_declarations):
(ObjCBackendDispatcherHeaderGenerator._generate_objc_handler_declarations_for_domain):

  • inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py:

(ObjCBackendDispatcherImplementationGenerator):
(ObjCBackendDispatcherImplementationGenerator.domains_to_generate):
(ObjCBackendDispatcherImplementationGenerator._generate_handler_implementation_for_domain):
(ObjCConfigurationImplementationGenerator): Deleted.
(ObjCConfigurationImplementationGenerator.init): Deleted.
(ObjCConfigurationImplementationGenerator.output_filename): Deleted.
(ObjCConfigurationImplementationGenerator.domains_to_generate): Deleted.
(ObjCConfigurationImplementationGenerator.generate_output): Deleted.
(ObjCConfigurationImplementationGenerator._generate_handler_implementation_for_domain): Deleted.
(ObjCConfigurationImplementationGenerator._generate_handler_implementation_for_command): Deleted.
(ObjCConfigurationImplementationGenerator._generate_success_block_for_command): Deleted.
(ObjCConfigurationImplementationGenerator._generate_success_block_for_command.and): Deleted.
(ObjCConfigurationImplementationGenerator._generate_conversions_for_command): Deleted.
(ObjCConfigurationImplementationGenerator._generate_conversions_for_command.in_param_expression): Deleted.
(ObjCConfigurationImplementationGenerator._generate_invocation_for_command): Deleted.

  • inspector/scripts/codegen/generate_objc_configuration_header.py:

(ObjCConfigurationHeaderGenerator.generate_output):
(ObjCConfigurationHeaderGenerator._generate_properties_for_domain):

  • inspector/scripts/codegen/generate_objc_configuration_implementation.py:

(ObjCConfigurationImplementationGenerator):
(ObjCConfigurationImplementationGenerator.generate_output):
(ObjCConfigurationImplementationGenerator._generate_configuration_implementation_for_domains):
(ObjCConfigurationImplementationGenerator._generate_ivars):
(ObjCConfigurationImplementationGenerator._generate_dealloc):
(ObjCBackendDispatcherImplementationGenerator): Deleted.
(ObjCBackendDispatcherImplementationGenerator.init): Deleted.
(ObjCBackendDispatcherImplementationGenerator.output_filename): Deleted.
(ObjCBackendDispatcherImplementationGenerator.generate_output): Deleted.
(ObjCBackendDispatcherImplementationGenerator._generate_configuration_implementation_for_domains): Deleted.
(ObjCBackendDispatcherImplementationGenerator._generate_ivars): Deleted.
(ObjCBackendDispatcherImplementationGenerator._generate_dealloc): Deleted.
(ObjCBackendDispatcherImplementationGenerator._generate_handler_setter_for_domain): Deleted.
(ObjCBackendDispatcherImplementationGenerator._generate_event_dispatcher_getter_for_domain): Deleted.
(ObjCBackendDispatcherImplementationGenerator._variable_name_prefix_for_domain): Deleted.

  • inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py:

(ObjCFrontendDispatcherImplementationGenerator.domains_to_generate):
(ObjCFrontendDispatcherImplementationGenerator._generate_event_dispatcher_implementations):

  • inspector/scripts/codegen/generate_objc_header.py:

(ObjCHeaderGenerator.generate_output):
(ObjCHeaderGenerator._generate_forward_declarations):
(ObjCHeaderGenerator._generate_enums):
(ObjCHeaderGenerator._generate_types):
(ObjCHeaderGenerator._generate_command_protocols):
(ObjCHeaderGenerator._generate_event_interfaces):

  • inspector/scripts/codegen/generate_objc_internal_header.py:

(ObjCInternalHeaderGenerator.generate_output):
(ObjCInternalHeaderGenerator._generate_event_dispatcher_private_interfaces):

  • inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py:

(ObjCProtocolTypeConversionsHeaderGenerator.domains_to_generate):
(ObjCProtocolTypeConversionsHeaderGenerator._generate_enum_conversion_functions):

  • inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py:

(ObjCProtocolTypeConversionsImplementationGenerator.domains_to_generate):
(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_interface):
(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_implementation):

  • inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:

(ObjCProtocolTypesImplementationGenerator.domains_to_generate):
(ObjCProtocolTypesImplementationGenerator.generate_type_implementations):

  • inspector/scripts/codegen/generator.py:

(Generator.can_generate_platform):
(Generator):
(Generator.type_declarations_for_domain):
(Generator.commands_for_domain):
(Generator.events_for_domain):
These are the core methods for computing whether a definition can be used given a target platform.

(Generator.calculate_types_requiring_shape_assertions):
(Generator._traverse_and_assign_enum_values):

  • inspector/scripts/codegen/models.py:

(Protocol.parse_type_declaration):
(Protocol.parse_command):
(Protocol.parse_event):
(Protocol.resolve_types):

(Domain.init):
(Domain):
(Domain.all_type_declarations):
(Domain.all_commands):
(Domain.all_events):
Hide fields behind these accessors so it's really obvious when we are ignoring platform filtering.

(Domain.resolve_type_references):
(TypeDeclaration.init):
(Command.init):
(Event.init):

  • inspector/scripts/codegen/objc_generator.py:

(ObjCGenerator.should_generate_types_for_domain):
(ObjCGenerator):
(ObjCGenerator.should_generate_commands_for_domain):
(ObjCGenerator.should_generate_events_for_domain):
(ObjCGenerator.should_generate_domain_types_filter): Deleted.
(ObjCGenerator.should_generate_domain_types_filter.should_generate_domain_types): Deleted.
(ObjCGenerator.should_generate_domain_command_handler_filter): Deleted.
(ObjCGenerator.should_generate_domain_command_handler_filter.should_generate_domain_command_handler): Deleted.
(ObjCGenerator.should_generate_domain_event_dispatcher_filter): Deleted.
(ObjCGenerator.should_generate_domain_event_dispatcher_filter.should_generate_domain_event_dispatcher): Deleted.
Clean up some messy code that essentially did the same definition filtering as we must do for platforms.
This will be enhanced in a future patch so that platform filtering will take priority over the target framework.

The results above need rebaselining because the class names for two generators were swapped by accident.
Fixing the names causes the order of generated files to change, and this generates ugly diffs because every
generated file includes the same copyright block at the top.

  • inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result:
  • inspector/scripts/tests/generic/expected/enum-values.json-result:
  • inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result:
  • inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result:
  • inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result:
  • inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result:
  • inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result:
  • inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result:
  • inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result:
  • inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result:
  • inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:
  • inspector/scripts/tests/generic/expected/fail-on-command-with-invalid-platform.json-error: Added.
  • inspector/scripts/tests/generic/expected/fail-on-type-with-invalid-platform.json-error: Added.
  • inspector/scripts/tests/generic/fail-on-command-with-invalid-platform.json: Added.
  • inspector/scripts/tests/generic/fail-on-type-with-invalid-platform.json: Added.

Add error test cases for invalid platforms in commands, types, and events.

  • inspector/scripts/tests/generic/definitions-with-mac-platform.json: Added.
  • inspector/scripts/tests/generic/expected/definitions-with-mac-platform.json-result: Added.
  • inspector/scripts/tests/all/definitions-with-mac-platform.json: Added.
  • inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result: Added.
  • inspector/scripts/tests/ios/definitions-with-mac-platform.json: Added.
  • inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result: Added.
  • inspector/scripts/tests/mac/definitions-with-mac-platform.json: Added.
  • inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result: Added.

Add a basic 4-way test that generates code for each platform from the same specification.
With 'macos' platform for each definition, only 'all' and 'mac' generate anything interesting.

5:17 PM Changeset in webkit [210308] by BJ Burg
  • 3 edits
    29 copies
    29 moves
    2 adds
    1 delete in trunk

Web Inspector: teach the protocol generator about platform-specific types, events, and commands
https://bugs.webkit.org/show_bug.cgi?id=166003
<rdar://problem/28718990>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Make it possible to test inspector protocol generator output for different platforms.

Move existing tests to the generic/ subdirectory, as they are to be generated
without any specific platform. Later, platform-specific generator behavior will be
tested by cloning the same test to multiple platform directories.

  • inspector/scripts/tests{/ => /generic/}commands-with-async-attribute.json
  • inspector/scripts/tests{/ => /generic/}commands-with-optional-call-return-parameters.json
  • inspector/scripts/tests{/ => /generic/}domains-with-varying-command-sizes.json
  • inspector/scripts/tests{/ => /generic/}enum-values.json
  • inspector/scripts/tests{/ => /generic/}events-with-optional-parameters.json
  • inspector/scripts/tests{/ => /generic/}expected/commands-with-async-attribute.json-result
  • inspector/scripts/tests{/ => /generic/}expected/commands-with-optional-call-return-parameters.json-result
  • inspector/scripts/tests{/ => /generic/}expected/domains-with-varying-command-sizes.json-result
  • inspector/scripts/tests{/ => /generic/}expected/enum-values.json-result
  • inspector/scripts/tests{/ => /generic/}expected/events-with-optional-parameters.json-result
  • inspector/scripts/tests{/ => /generic/}expected/fail-on-domain-availability.json-error
  • inspector/scripts/tests{/ => /generic/}expected/fail-on-duplicate-command-call-parameter-names.json-error
  • inspector/scripts/tests{/ => /generic/}expected/fail-on-duplicate-command-return-parameter-names.json-error
  • inspector/scripts/tests{/ => /generic/}expected/fail-on-duplicate-event-parameter-names.json-error
  • inspector/scripts/tests{/ => /generic/}expected/fail-on-duplicate-type-declarations.json-error
  • inspector/scripts/tests{/ => /generic/}expected/fail-on-duplicate-type-member-names.json-error
  • inspector/scripts/tests{/ => /generic/}expected/fail-on-enum-with-no-values.json-error
  • inspector/scripts/tests{/ => /generic/}expected/fail-on-number-typed-optional-parameter-flag.json-error
  • inspector/scripts/tests{/ => /generic/}expected/fail-on-number-typed-optional-type-member.json-error
  • inspector/scripts/tests{/ => /generic/}expected/fail-on-string-typed-optional-parameter-flag.json-error
  • inspector/scripts/tests{/ => /generic/}expected/fail-on-string-typed-optional-type-member.json-error
  • inspector/scripts/tests{/ => /generic/}expected/fail-on-type-declaration-using-type-reference.json-error
  • inspector/scripts/tests{/ => /generic/}expected/fail-on-type-reference-as-primitive-type.json-error
  • inspector/scripts/tests{/ => /generic/}expected/fail-on-type-with-lowercase-name.json-error
  • inspector/scripts/tests{/ => /generic/}expected/fail-on-unknown-type-reference-in-type-declaration.json-error
  • inspector/scripts/tests{/ => /generic/}expected/fail-on-unknown-type-reference-in-type-member.json-error
  • inspector/scripts/tests{/ => /generic/}expected/generate-domains-with-feature-guards.json-result
  • inspector/scripts/tests{/ => /generic/}expected/same-type-id-different-domain.json-result
  • inspector/scripts/tests{/ => /generic/}expected/shadowed-optional-type-setters.json-result
  • inspector/scripts/tests{/ => /generic/}expected/type-declaration-aliased-primitive-type.json-result
  • inspector/scripts/tests{/ => /generic/}expected/type-declaration-array-type.json-result
  • inspector/scripts/tests{/ => /generic/}expected/type-declaration-enum-type.json-result
  • inspector/scripts/tests{/ => /generic/}expected/type-declaration-object-type.json-result
  • inspector/scripts/tests{/ => /generic/}expected/type-requiring-runtime-casts.json-result
  • inspector/scripts/tests{/ => /generic/}fail-on-domain-availability.json
  • inspector/scripts/tests{/ => /generic/}fail-on-duplicate-command-call-parameter-names.json
  • inspector/scripts/tests{/ => /generic/}fail-on-duplicate-command-return-parameter-names.json
  • inspector/scripts/tests{/ => /generic/}fail-on-duplicate-event-parameter-names.json
  • inspector/scripts/tests{/ => /generic/}fail-on-duplicate-type-declarations.json
  • inspector/scripts/tests{/ => /generic/}fail-on-duplicate-type-member-names.json
  • inspector/scripts/tests{/ => /generic/}fail-on-enum-with-no-values.json
  • inspector/scripts/tests{/ => /generic/}fail-on-number-typed-optional-parameter-flag.json
  • inspector/scripts/tests{/ => /generic/}fail-on-number-typed-optional-type-member.json
  • inspector/scripts/tests{/ => /generic/}fail-on-string-typed-optional-parameter-flag.json
  • inspector/scripts/tests{/ => /generic/}fail-on-string-typed-optional-type-member.json
  • inspector/scripts/tests{/ => /generic/}fail-on-type-declaration-using-type-reference.json
  • inspector/scripts/tests{/ => /generic/}fail-on-type-reference-as-primitive-type.json
  • inspector/scripts/tests{/ => /generic/}fail-on-type-with-lowercase-name.json
  • inspector/scripts/tests{/ => /generic/}fail-on-unknown-type-reference-in-type-declaration.json
  • inspector/scripts/tests{/ => /generic/}fail-on-unknown-type-reference-in-type-member.json
  • inspector/scripts/tests{/ => /generic/}generate-domains-with-feature-guards.json
  • inspector/scripts/tests{/ => /generic/}same-type-id-different-domain.json
  • inspector/scripts/tests{/ => /generic/}shadowed-optional-type-setters.json
  • inspector/scripts/tests{/ => /generic/}type-declaration-aliased-primitive-type.json
  • inspector/scripts/tests{/ => /generic/}type-declaration-array-type.json
  • inspector/scripts/tests{/ => /generic/}type-declaration-enum-type.json
  • inspector/scripts/tests{/ => /generic/}type-declaration-object-type.json
  • inspector/scripts/tests{/ => /generic/}type-requiring-runtime-casts.json

Tools:

Teach run-inspector-generator-tests to generate test output using the platform name
derived from the directory that the test is in. For example, tests in the /generic/
subdirectory will pass --platform generic to generate-inspector-protocol-bindings.py.

  • Scripts/webkitpy/inspector/main.py:

(InspectorGeneratorTests.generate_from_json):
(InspectorGeneratorTests.run_tests):
(InspectorGeneratorTests.main):

5:16 PM Changeset in webkit [210307] by BJ Burg
  • 24 edits in trunk/Source/JavaScriptCore

Web Inspector: teach the protocol generator about platform-specific types, events, and commands
https://bugs.webkit.org/show_bug.cgi?id=166003
<rdar://problem/28718990>

Reviewed by Joseph Pecoraro.

Add a --platform argument to generate-inspector-protocol-bindings.py and propagate
the specified platform to each generator. This will be used in the next few patches
to exclude types, events, and commands that are unsupported by the backend platform.

Covert all subclasses of Generator to pass along their positional arguments so that we
can easily change base class arguments without editing all generator constructors.

  • inspector/scripts/codegen/cpp_generator.py:

(CppGenerator.init):

  • inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:

(CppAlternateBackendDispatcherHeaderGenerator.init):

  • inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:

(CppBackendDispatcherHeaderGenerator.init):

  • inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:

(CppBackendDispatcherImplementationGenerator.init):

  • inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:

(CppFrontendDispatcherHeaderGenerator.init):

  • inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py:

(CppFrontendDispatcherImplementationGenerator.init):

  • inspector/scripts/codegen/generate_cpp_protocol_types_header.py:

(CppProtocolTypesHeaderGenerator.init):

  • inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:

(CppProtocolTypesImplementationGenerator.init):

  • inspector/scripts/codegen/generate_js_backend_commands.py:

(JSBackendCommandsGenerator.init):

  • inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py:

(ObjCBackendDispatcherHeaderGenerator.init):

  • inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py:

(ObjCConfigurationImplementationGenerator.init):

  • inspector/scripts/codegen/generate_objc_configuration_header.py:

(ObjCConfigurationHeaderGenerator.init):

  • inspector/scripts/codegen/generate_objc_configuration_implementation.py:

(ObjCBackendDispatcherImplementationGenerator.init):

  • inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py:

(ObjCFrontendDispatcherImplementationGenerator.init):

  • inspector/scripts/codegen/generate_objc_header.py:

(ObjCHeaderGenerator.init):

  • inspector/scripts/codegen/generate_objc_internal_header.py:

(ObjCInternalHeaderGenerator.init):

  • inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py:

(ObjCProtocolTypeConversionsHeaderGenerator.init):

  • inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py:

(ObjCProtocolTypeConversionsImplementationGenerator.init):

  • inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:

(ObjCProtocolTypesImplementationGenerator.init):
Pass along *args instead of single positional arguments.

  • inspector/scripts/codegen/generator.py:

(Generator.init):
Save the target platform and add a getter.

  • inspector/scripts/codegen/models.py:

(Platform):
(Platform.init):
(Platform.fromString):
(Platforms):
Define the allowed Platform instances (iOS, macOS, and Any).

  • inspector/scripts/codegen/objc_generator.py:

(ObjCGenerator.and.init):

  • inspector/scripts/generate-inspector-protocol-bindings.py:

(generate_from_specification):
Pass along *args instead of single positional arguments.

5:10 PM Changeset in webkit [210306] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

5:08 PM Changeset in webkit [210305] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.4.6

New tag.

4:44 PM Changeset in webkit [210304] by Ryan Haddad
  • 4 edits in trunk/Source/WebCore

Unreviewed, rolling out r210296.

This change broke macOS builds.

Reverted changeset:

"Check for the existence of
AVSampleBufferDisplayLayer_Private.h in AVFoundationSPI.h"
https://bugs.webkit.org/show_bug.cgi?id=166691
http://trac.webkit.org/changeset/210296

4:42 PM Changeset in webkit [210303] by bshafiei@apple.com
  • 14 edits in tags/Safari-604.1.1.3/Source/WebCore

Merged r210105. rdar://problem/29861340

4:41 PM Changeset in webkit [210302] by bshafiei@apple.com
  • 5 edits in tags/Safari-604.1.1.3/Source

Versioning.

4:40 PM Changeset in webkit [210301] by bshafiei@apple.com
  • 1 copy in tags/Safari-604.1.1.3

New tag.

4:33 PM Changeset in webkit [210300] by Ryan Haddad
  • 12 edits in trunk/Source

Unreviewed, rolling out r210287.

This change caused editing test failures on macOS.

Reverted changeset:

"Support File Promise during drag for macOS."
https://bugs.webkit.org/show_bug.cgi?id=165204
http://trac.webkit.org/changeset/210287

4:21 PM Changeset in webkit [210299] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Build fix for r210288.

4:06 PM Changeset in webkit [210298] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.2

New tag.

4:00 PM Changeset in webkit [210297] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch/Source/WebCore

Merge patch for r210288. rdar://problem/29756652

3:46 PM Changeset in webkit [210296] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

Check for the existence of AVSampleBufferDisplayLayer_Private.h in AVFoundationSPI.h
https://bugs.webkit.org/show_bug.cgi?id=166691

Reviewed by Eric Carlson.

Move the declaration of AVSampleBufferDisplayLayer SPI into AVFoundationSPI.h and key off the presence of the _Private.h header.

Drive-by Fix: also check for the presence of AVSampleBufferRenderSynchronizer.h before re-declaring AVSampleBufferRenderSynchronizer.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
  • platform/spi/mac/AVFoundationSPI.h:
3:07 PM Changeset in webkit [210295] by n_wang@apple.com
  • 9 edits in trunk

Many new HTML5 input types still exposed as generic AXTextfield
https://bugs.webkit.org/show_bug.cgi?id=109017
<rdar://problem/13658955>

Reviewed by Chris Fleizach.

Source/WebCore:

Provided more detailed role description for input types that
are exposed as standard text fields on the mac.

Changes are covered in modified test expectation.

  • English.lproj/Localizable.strings:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper roleDescription]):

  • platform/LocalizedStrings.cpp:

(WebCore::AXDateTimeFieldText):
(WebCore::AXMonthFieldText):
(WebCore::AXNumberFieldText):
(WebCore::AXWeekFieldText):

  • platform/LocalizedStrings.h:
  • platform/efl/LocalizedStringsEfl.cpp:

(WebCore::AXDateTimeFieldText):
(WebCore::AXMonthFieldText):
(WebCore::AXNumberFieldText):
(WebCore::AXWeekFieldText):

  • platform/gtk/LocalizedStringsGtk.cpp:

(WebCore::AXDateTimeFieldText):
(WebCore::AXMonthFieldText):
(WebCore::AXNumberFieldText):
(WebCore::AXWeekFieldText):

LayoutTests:

  • platform/mac/accessibility/roles-exposed-expected.txt:
3:05 PM Changeset in webkit [210294] by Ryan Haddad
  • 2 edits in branches/safari-603-branch/LayoutTests

Unreviewed test gardening.

3:04 PM Changeset in webkit [210293] by weinig@apple.com
  • 6 edits
    5 copies
    1 delete in trunk/Source/WebCore

Remove bindings/generic and distribute its contents appropriately
https://bugs.webkit.org/show_bug.cgi?id=166700

Rubber-stamped by Alex Christensen.

  • CMakeLists.txt:
  • DerivedSources.make:
  • PlatformMac.cmake:
  • PlatformWin.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/IDLTypes.h: Copied from Source/WebCore/bindings/generic/IDLTypes.h.
  • bindings/generic/ActiveDOMCallback.cpp: Removed.
  • bindings/generic/ActiveDOMCallback.h: Removed.
  • bindings/generic/IDLTypes.h: Removed.
  • bindings/generic/RuntimeEnabledFeatures.cpp: Removed.
  • bindings/generic/RuntimeEnabledFeatures.h: Removed.
  • dom/ActiveDOMCallback.cpp: Copied from Source/WebCore/bindings/generic/ActiveDOMCallback.cpp.
  • dom/ActiveDOMCallback.h: Copied from Source/WebCore/bindings/generic/ActiveDOMCallback.h.
  • page/RuntimeEnabledFeatures.cpp: Copied from Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp.
  • page/RuntimeEnabledFeatures.h: Copied from Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h.

Move files around.

3:00 PM Changeset in webkit [210292] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Add Exception accessor to ExceptionOr to remove unnecessary releases
https://bugs.webkit.org/show_bug.cgi?id=166692

Patch by Sam Weinig <sam@webkit.org> on 2017-01-04
Reviewed by Alex Christensen.

  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::openDatabaseBackend):
Use new exception() function.

  • dom/ExceptionOr.h:

(WebCore::ExceptionOr<ReturnType>::exception):
(WebCore::ExceptionOr<void>::exception):
Add exception() function which returns the exception without releasing it.

2:56 PM Changeset in webkit [210291] by jmarcell@apple.com
  • 5 edits in trunk/Source

Versioning.

2:44 PM Changeset in webkit [210290] by Ryan Haddad
  • 2 edits in branches/safari-603-branch/LayoutTests

Rebaseline js/dom/global-constructors-attributes.html.

Unreviewed test gardening.

  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
2:37 PM Changeset in webkit [210289] by Ryan Haddad
  • 2 edits
    1 copy in branches/safari-603-branch/LayoutTests

Merge r209996.

2:35 PM Changeset in webkit [210288] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

Correct DOMWindow handling during FrameLoader::clear
https://bugs.webkit.org/show_bug.cgi?id=166357
<rdar://problem/29741862>

Reviewed by Andy Estes.

Make sure that we always clean up the DOM window when clearing Window properties, even if the document will
remain in the page cache. Since 'clearWindowShell' is only used in FrameLoader, divide it's beahvior into
two steps:

  1. Rename 'clearWindowShell' to 'clearWIndowShellsNotMatchingDOMWindow' to better describe its function.

Switch to a modern C++ loop. Do not switch to the new DOMWindow here, but detach and clear existing
DOMWindow connections.

  1. Add a new method 'setDOMWindowForWindowShell'. Complete switch to the new DOMWindow.

This change allows us to disconnect the old DOMWindow, perform the 'setDocument(nullptr)' operation, and then
connect to the new Window without leaving the loader in an inconsistent state.

  • loader/bindings/js/ScriptController.cpp:

(WebCore::clearWindowShellsNotMatchingDOMWindow): Renamed from 'clearWindowShell'
(WebCore::setDOMWindowForWindowShell): Added.

  • loader/bindings/js/ScriptController.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::clear): Revise to use the new two-step DOMWindow switch logic.

2:30 PM Changeset in webkit [210287] by enrica@apple.com
  • 12 edits in trunk/Source

Support File Promise during drag for macOS.
https://bugs.webkit.org/show_bug.cgi?id=165204
rdar://problem/19595567

Reviewed by Tim Horton.

Source/WebCore:

Adds the support for handling File Promise type during
drag. DragData now has the knowledge of the NSFilesPromisePboardType and
checks for the data type during drag.

  • page/mac/DragControllerMac.mm:

(WebCore::DragController::dragOperation):

  • platform/DragData.h:

(WebCore::DragData::setFileNames):
(WebCore::DragData::fileNames):

  • platform/mac/DragDataMac.mm:

(WebCore::DragData::containsFiles):
(WebCore::DragData::numberOfFiles):
(WebCore::DragData::asFilenames):
(WebCore::DragData::containsCompatibleContent):
(WebCore::DragData::containsPromise):
(WebCore::DragData::asURL):

Source/WebKit/mac:

Adds support for dropping a File Promise in a WebView.
The implementation uses new File Promise API available in Sierra.

  • Misc/WebNSPasteboardExtras.mm:

(+[NSPasteboard _web_dragTypesForURL]):

  • WebView/WebView.mm:

(-[WebView performDragOperation:]):

Source/WebKit2:

Adds support for dropping a File Promise in a WKWebView.
The implementation uses new File Promise API available in Sierra.

  • Shared/WebCoreArgumentCoders.cpp:

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

  • Shared/mac/PasteboardTypes.mm:

(WebKit::PasteboardTypes::forURL):

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

(WebKit::WebViewImpl::createSandboxExtensionsIfNeeded):
(WebKit::WebViewImpl::performDragOperation):
(WebKit::maybeCreateSandboxExtensionFromPasteboard): Deleted.
(WebKit::createSandboxExtensionsForFileUpload): Deleted.

2:10 PM Changeset in webkit [210286] by weinig@apple.com
  • 2 edits in trunk/Source/WTF

REGRESSION (r210257): com.apple.WebKit.WebContent.Development crashed in com.apple.WebCore: WebCore::ExceptionOr<WTF::Ref<WebCore::Database> >::operator= + 14
<rdar://problem/29866398>

  • wtf/Expected.h:

(WTF::Expected::swap):
Add missing calls to destroy() when moving things over each other in a union.

1:31 PM Changeset in webkit [210285] by sbarati@apple.com
  • 2 edits in trunk/JSTests

stress/spread-calling.js timing out on the bots
https://bugs.webkit.org/show_bug.cgi?id=166689
<rdar://problem/29779182>

Reviewed by Mark Lam.

  • stress/spread-calling.js:
1:26 PM Changeset in webkit [210284] by Chris Dumez
  • 5 edits
    4 adds in trunk

Assertion hit on redfin.com: ASSERTION FAILED: collection->length() > 1
https://bugs.webkit.org/show_bug.cgi?id=166687
<rdar://problem/29865854>

Reviewed by Darin Adler.

Source/WebCore:

We were mistakenly calling Document::addWindowNamedItem() / Document::removeWindowNamedItem()
for elements in Shadow DOMs. As a result, the windowNamedItem DocumentOrderedMap would
contain elements in shadow DOMs. This would cause the assertion to be hit in window's
named property getter because of the length mismatch between the windowNamedItem
DocumentOrderedMap and the WindowNameCollection.

Tests: fast/shadow-dom/document-named-property.html

fast/shadow-dom/window-named-property.html

  • dom/Element.cpp:

(WebCore::Element::updateNameForDocument):
(WebCore::Element::updateIdForDocument):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::parseAttribute):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::updateDocNamedItem):

LayoutTests:

Add layout test coverage.

  • fast/shadow-dom/document-named-property-expected.txt: Added.
  • fast/shadow-dom/document-named-property.html: Added.
  • fast/shadow-dom/window-named-property-expected.txt: Added.
  • fast/shadow-dom/window-named-property.html: Added.
12:57 PM Changeset in webkit [210283] by Manuel Rego Casasnovas
  • 2 edits in trunk/LayoutTests

[GTK] Two editing tests are passing but marked as failure

Unreviewed GTK gardening.

  • platform/gtk/TestExpectations:
11:27 AM Changeset in webkit [210282] by jfbastien@apple.com
  • 7 edits
    1 add in trunk

WebAssembly JS API: add Module.sections
https://bugs.webkit.org/show_bug.cgi?id=165159
<rdar://problem/29760326>

Reviewed by Mark Lam.

JSTests:

As described here: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymodulecustomsections

  • wasm/Builder.js: allow custom sections to be duplicated
  • wasm/js-api/Module.customSection.js: Added.

(assert.throws.WebAssembly.Module.prototype.customSections):
(assert.eq):

Source/JavaScriptCore:

As described in: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymodulecustomsections

This was added for Emscripten, and is likely to be used soon.

  • wasm/WasmFormat.h: custom sections are just name + bytes
  • wasm/WasmModuleParser.cpp: parse them, instead of skipping over
  • wasm/WasmModuleParser.h:
  • wasm/js/WebAssemblyModulePrototype.cpp: construct the Array of

ArrayBuffer as described in the spec
(JSC::webAssemblyModuleProtoCustomSections):

11:23 AM Changeset in webkit [210281] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Release pointer lock when page state is reset for any reason, not just for process exited.
https://bugs.webkit.org/show_bug.cgi?id=166654
<rdar://problem/29849769>

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

Pointer lock was not being released when the window is closed.
Move the pointer lock to resetState() so it happens whenever the page is
reset, not just when it is reset after process exit.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::resetState): Release here.
(WebKit::WebPageProxy::resetStateAfterProcessExited): Don't release here.

11:21 AM Changeset in webkit [210280] by wilander@apple.com
  • 17 edits
    2 adds in trunk

Validate the BCP47-ness of the language string passed to TrackBase::setLanguage()
https://bugs.webkit.org/show_bug.cgi?id=123926

Reviewed by Jer Noble.

LayoutTests/imported/w3c:

  • web-platform-tests/html/dom/reflection-embedded-expected.txt:

Expected text change since we now have console warnings for
invalid language tags.

  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/srclang-expected.txt:

Expected text change since we now have console warnings for
invalid language tags.

  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/language-expected.txt:

Expected text change since we now have console warnings for
invalid language tags.

Source/WebCore:

Test: media/media-source/only-bcp47-language-tags-accepted-as-valid.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::configureTextTrackGroup):

Log message now includes the valid BCP 47 language too.

(WebCore::HTMLMediaElement::setSelectedTextTrack):

Now sets preferred language to the valid BCP 47 language.

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::setLanguage):

Removed fixme and aligned comments with new behavior.

  • html/track/TrackBase.cpp:

(WebCore::TrackBase::TrackBase):

Initializes m_validBCP47Language with language parameter.

(WebCore::isValidBCP47LanguageTag):

New convenience function.

(WebCore::TrackBase::setLanguage):

Sets m_validBCP47Language if the incoming tag is valid.
Produces a console warning if the tag is invalid.
The member m_language is set to the incoming tag regardless.

(WebCore::TrackBase::validBCP47Language):

New getter for valid language tag. To be used internally.

  • html/track/TrackBase.h:

New AtomicString member m_validBCP47Language.

(WebCore::TrackBase::setLanguage): Deleted.

  • html/track/VideoTrack.cpp:

(WebCore::VideoTrack::setLanguage):

Removed fixme and aligned comments with new behavior.

  • page/CaptionUserPreferences.cpp:

(WebCore::trackDisplayName):

Now uses the getter for BCP 47 language.

(WebCore::CaptionUserPreferences::textTrackLanguageSelectionScore):

Now uses the getter for BCP 47 language.

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::buildDisplayStringForTrackBase):

Now uses the getter for BCP 47 language.

(WebCore::CaptionUserPreferencesMediaAF::textTrackSelectionScore):

Now uses the getter for BCP 47 language.

(WebCore::textTrackCompare):

Now uses the getter for BCP 47 language.

(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu):

Now uses the getter for BCP 47 language.

LayoutTests:

  • media/media-source/only-bcp47-language-tags-accepted-as-valid-expected.txt: Added.
  • media/media-source/only-bcp47-language-tags-accepted-as-valid.html: Added.
  • media/track/w3c/interfaces/HTMLTrackElement/srclang-expected.txt:

Expected text change since we now have console warnings for
invalid language tags.

  • media/track/w3c/interfaces/TextTrack/language-expected.txt:

Expected text change since we now have console warnings for
invalid language tags.

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:

Expected text change since we now have console warnings for
invalid language tags.

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:

Expected text change since we now have console warnings for
invalid language tags.

11:20 AM Changeset in webkit [210279] by commit-queue@webkit.org
  • 8 edits
    6 adds in trunk

Web Inspector: Cross Origin importScripts() scripts lack source URL, causes issues with Inspector showing Resource
https://bugs.webkit.org/show_bug.cgi?id=165569
<rdar://problem/29607569>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-04
Reviewed by Youenn Fablet.

Source/WebCore:

Test: http/tests/inspector/worker/blob-script-with-cross-domain-imported-scripts.html

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::didReceiveResponse):

  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions):

  • loader/ThreadableLoader.h:
  • loader/WorkerThreadableLoader.cpp:

(WebCore::LoaderTaskOptions::LoaderTaskOptions):
Add a new ThreadableLoader option to avoid filtering the response.

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):
Disable filtering of the response. This is an internal load, we
don't want to filter data that would be valuable later.

LayoutTests:

  • http/tests/inspector/worker/blob-script-with-cross-domain-imported-scripts-expected.txt: Added.
  • http/tests/inspector/worker/blob-script-with-cross-domain-imported-scripts.html: Added.
  • http/tests/inspector/worker/resources/worker-blob-import-script.js: Added.
  • http/tests/inspector/worker/resources/worker-blob-script.js: Added.

Ensure cross origin scripts imported by workers still get the correct Script URL.
Also this provides a test for worker started with a blob URL.

11:14 AM Changeset in webkit [210278] by Ryan Haddad
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r209471.

11:12 AM Changeset in webkit [210277] by bshafiei@apple.com
  • 10 edits in branches/safari-602-branch

Merged r210273. rdar://problem/29868040

11:11 AM Changeset in webkit [210276] by sbarati@apple.com
  • 4 edits
    1 add in trunk

We don't properly handle exceptions inside the nativeCallTrampoline macro in the LLInt
https://bugs.webkit.org/show_bug.cgi?id=163720

Reviewed by Mark Lam.

JSTests:

  • stress/bound-function-tail-call-with-exception.js: Added.

(bar):
(foo):
(catch):

Source/JavaScriptCore:

In the LLInt, we were incorrectly doing the exception check after the call.
Before the exception check, we were unwinding to our caller's
frame under the assumption that our caller was always a JS frame.
This is incorrect, however, because our caller might be a C frame.
One way that it can be a C frame is when C calls to JS, and JS tail
calls to native. This patch fixes this bug by doing unwinding from
the native callee's frame instead of its callers.

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
9:48 AM Changeset in webkit [210275] by weinig@apple.com
  • 9 edits
    1 delete in trunk/Source/WebCore

Remove final custom binding from IDBRequest
https://bugs.webkit.org/show_bug.cgi?id=166671

Reviewed by Alex Christensen.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:

Remove JSIDBRequestCustom.cpp

  • bindings/js/JSIDBRequestCustom.cpp: Removed.
  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::~IDBRequest):
(WebCore::IDBRequest::result):
(WebCore::IDBRequest::setSource):
(WebCore::IDBRequest::sourceObjectStoreIdentifier):
(WebCore::IDBRequest::sourceIndexIdentifier):
(WebCore::IDBRequest::requestedIndexRecordType):
(WebCore::IDBRequest::setResult):
(WebCore::IDBRequest::setResultToStructuredClone):
(WebCore::IDBRequest::setResultToUndefined):
(WebCore::IDBRequest::resultCursor):
(WebCore::IDBRequest::willIterateCursor):
(WebCore::IDBRequest::didOpenOrIterateCursor):
(WebCore::IDBRequest::source): Deleted.
(WebCore::IDBRequest::clearResult): Deleted.

  • Modules/indexeddb/IDBRequest.h:

(WebCore::IDBRequest::source):
(WebCore::IDBRequest::cursorResult): Deleted.
(WebCore::IDBRequest::databaseResult): Deleted.
(WebCore::IDBRequest::scriptResult): Deleted.
Replace multiple member variables with Variants for source and result. Add a result
member function that properly sets an exception if not "done".

  • Modules/indexeddb/IDBRequest.idl:

Remove CustomGetter annotation and add type.

  • bindings/generic/IDLTypes.h:

(WebCore::IDLAny::nullValue):
(WebCore::IDLAny::isNullValue):
(WebCore::IDLAny::extractValueFromNullable):

  • bindings/js/JSDOMConvert.h:

(WebCore::Converter<IDLAny>::convert):
Flesh out IDLAny to be implemented as a Strong<Unknown> when used in aggregate types,
but still work with JSValue when passing as a parameter.

  • inspector/InspectorIndexedDBAgent.cpp:

Update for new return value of IDBRequest::result().

7:59 AM WebKitGTK/2.14.x edited by Michael Catanzaro
(diff)
5:59 AM Changeset in webkit [210274] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

Unreviewed cmake buildfix after r210266.

  • DumpRenderTree/PlatformMac.cmake:
12:55 AM Changeset in webkit [210273] by timothy_horton@apple.com
  • 10 edits in trunk

Provide a setting for clients to always prefer low-power WebGL
https://bugs.webkit.org/show_bug.cgi?id=166675
<rdar://problem/29834093>

Reviewed by Dan Bernstein.

No new tests; as noted in r204664, we don't know how to reliably test
automatic graphics switching. One could use the manual test introduced
in that commit; after this commit, with the setting switched on, on a
dual-GPU machine that is actively using integrated graphics, that test
should return the same result for both contexts.

  • page/Settings.in:

Add a setting to prefer low-power WebGL.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):
If said setting is enabled, set preferLowPowerToHighPerformance.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences preferLowPowerWebGLRendering]):
(-[WebPreferences setPreferLowPowerWebGLRendering:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):
Expose a new private preferLowPowerWebGLRendering WebKit1 preference.

  • MiniBrowser/mac/Info.plist:

Have MiniBrowser claim to be a modern app that supports
automatic graphics switching. WebKit needs to support automatic
graphics switching, so our test app might as well. Without this
Info.plist parameter, this change has no effect, and bringing up
a WebGL context still brings up the discrete GPU (also true of the
existing web-exposed preferLowPowerToHighPerformance API).

12:29 AM Changeset in webkit [210272] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

Use prctl to name thread on Linux
https://bugs.webkit.org/show_bug.cgi?id=166663

Reviewed by Michael Catanzaro.

It is quite useful if we can name threads. This name will be shown in GDB.
While macOS uses pthread_setname_np, we can use prctl on Linux.

  • wtf/ThreadingPthreads.cpp:

(WTF::initializeCurrentThreadInternal):

Note: See TracTimeline for information about the timeline view.