Timeline



May 3, 2016:

10:01 PM Changeset in webkit [200406] by fpizlo@apple.com
  • 4 edits
    2 adds in trunk

REGRESSION(r200383): Setting lazily initialized properties across frame boundaries crashes
https://bugs.webkit.org/show_bug.cgi?id=157333

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

I forgot to add logic for lazy properties in putEntry(). It turns out that it's easy to
add.

  • runtime/Lookup.h:

(JSC::putEntry):

  • runtime/PropertySlot.h:

LayoutTests:

This is JoePeck's original test case. It used to crash and now it doesn't crash anymore.

  • js/dom/cross-window-put-math-expected.txt: Added.
  • js/dom/cross-window-put-math.html: Added.
7:23 PM Changeset in webkit [200405] by fpizlo@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

References from code to Structures should be stronger than weak
https://bugs.webkit.org/show_bug.cgi?id=157324

Reviewed by Mark Lam.

If code refers to a Structure and the Structure dies, then previously we'd kill the code.
This makes sense because the Structure could be the only thing left referring to some global
object or prototype.

But this also causes unnecessary churn. Sometimes there will be a structure that we just
haven't really done anything with recently and so it appears dead. The approach we use
elsewhere in our type inference is that the type that the code uses is general enough to
handle every past execution. Having the GC clear code when some Structure it uses dies means
that we forget that the code used that Structure. We'll either assume that the code is more
monomorphic than it really is (because after GC we patch in some other structure but not the
deleted one, so it looks like we only ever saw the new structure), or we'll assume that it's
crazier than it really is (because we'll remember that there had been some structure that
caused deletion, so we'll assume that deletions might happen in the future, so we'll use a
fully dynamic IC).

This change introduces a more nuanced policy: if it's cheap to mark a dead Structure then we
should mark it just so that all of the code that refers to it remembers that there had been
this exact Structure in the past. If the code often goes through different Structures then
we already have great mechanisms to realize that the code is nutty (namely, the
PolymorphicAccess size limit). But if the code just does this a handful of times then
remembering this old Structure is probably net good:

  • It obeys the "handle all past executions" law.
  • It preserves the history of the property access, allowing a precise measure of its past polymorphism.
  • It makes the code ready to run fast if the user decides to use that Structure again. Marking the Structure means it will stay in whatever property transition tables it was in, so if the program does the same thing it did in the past, it will get this old Structure.

It looks like this is a progression in gbemu and it makes gbemu perform more
deterministically. Also, it seems that this makes JetStream run faster.

Over five in-browser runs of JetStream, here's what we see before and after:

Geometric Mean:

Before After
229.23 +- 8.2523 230.70 +- 12.888
232.91 +- 15.638 239.04 +- 13.766
234.79 +- 12.760 236.32 +- 15.562
236.20 +- 23.125 242.02 +- 3.3865
237.22 +- 2.1929 237.23 +- 17.664


Just gbemu:

Before After
541.0 +- 135.8 481.7 +- 143.4
518.9 +- 15.65 508.1 +- 136.3
362.5 +- 0.8884 489.7 +- 101.4
470.7 +- 313.3 530.7 +- 11.49
418.7 +- 180.6 537.2 +- 6.514


Notice that there is plenty of noise before and after, but the noise is now far less severe.
After this change I did not see any runs like "470.7 +- 313.3" where the size of the
confidence interval (313.3 * 2) is greater than the score (470.7). Also, notice that the
least noisy run before the change also got a lower score than we ever observed after the
change (36.5 +- 0.8884). The noise, and these occasional very low scores, are due to a
pathology where the GC would reset some stubs at an unfortunate time during profiling,
causing the optimizing compiler to make many poor decisions. That pathology doesn't exist
anymore.

On the other hand, prior to this change it was possible for gbemu to sometimes run sooooper
fast because the GC would cause the profiler to forget gbemu's behavior on the first tick
and focus only on its behavior in subsequent ticks. So, in steady state, we'd optimize gbemu
for its later behavior rather than a combination of its early behavior and later behavior.
We rarely got lucky this way, so it's not fair to view this quirk as a feature.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::propagateTransitions):

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::visitWeak):
(JSC::AccessCase::propagateTransitions):
(JSC::AccessCase::generateWithGuard):
(JSC::PolymorphicAccess::visitWeak):
(JSC::PolymorphicAccess::propagateTransitions):
(JSC::PolymorphicAccess::dump):

  • bytecode/PolymorphicAccess.h:
  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::visitWeakReferences):
(JSC::StructureStubInfo::propagateTransitions):
(JSC::StructureStubInfo::containsPC):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::considerCaching):

  • runtime/Structure.cpp:

(JSC::Structure::visitChildren):
(JSC::Structure::isCheapDuringGC):
(JSC::Structure::markIfCheap):
(JSC::Structure::prototypeChainMayInterceptStoreTo):

  • runtime/Structure.h:
6:54 PM Changeset in webkit [200404] by commit-queue@webkit.org
  • 6 edits in trunk/Source/JavaScriptCore

Web Inspector: Simplify console.clear
https://bugs.webkit.org/show_bug.cgi?id=157316

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-03
Reviewed by Timothy Hatcher.

  • inspector/ScriptArguments.cpp:

(Inspector::ScriptArguments::createEmpty):
(Inspector::ScriptArguments::ScriptArguments):

  • inspector/ScriptArguments.h:

Provide a way to create an empty list.

  • runtime/ConsoleClient.cpp:

(JSC::ConsoleClient::clear):

  • runtime/ConsoleClient.h:

Drop unnecessary parameter.

  • runtime/ConsoleObject.cpp:

(JSC::consoleProtoFuncClear):
No need to parse arguments.

6:46 PM Changeset in webkit [200403] by Beth Dakin
  • 5 edits
    4 adds in trunk

Add VideoControlsManager tests
https://bugs.webkit.org/show_bug.cgi?id=157332
-and corresponding-
rdar://problem/24358431

Reviewed by Sam Weinig.

Source/WebKit2:

Expose _hasActiveVideoForControlsManager on WKWebViewPrivate for the sake of
testing.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _hasActiveVideoForControlsManager]):
(-[WKWebView _doAfterNextPresentationUpdate:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Tools:

This patch adds three VideoControlsManager tests.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/ios/video-with-audio.html:
  • TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm: Added.

(-[DidPlayMessageHandler initWithWKWebView:]):
(-[DidPlayMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/large-video-with-audio.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-video-with-audio.mp4: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-video-without-audio.html: Added.
6:21 PM Changeset in webkit [200402] by Yusuke Suzuki
  • 20 edits
    1 add in trunk

Improve Symbol() to string coercion error message
https://bugs.webkit.org/show_bug.cgi?id=157317

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Improve error messages related to Symbols.

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::toStringSlowCase):

  • runtime/Symbol.cpp:

(JSC::Symbol::toNumber):

  • runtime/SymbolConstructor.cpp:

(JSC::symbolConstructorKeyFor):

  • runtime/SymbolPrototype.cpp:

(JSC::symbolProtoFuncToString):
(JSC::symbolProtoFuncValueOf):

  • tests/stress/dfg-to-primitive-pass-symbol.js:
  • tests/stress/floating-point-div-to-mul.js:

(i.catch):

  • tests/stress/string-from-code-point.js:

(shouldThrow):
(string_appeared_here.shouldThrow):

  • tests/stress/symbol-error-messages.js: Added.

(shouldThrow):

  • tests/stress/symbol-registry.js:

LayoutTests:

  • js/math-clz32-expected.txt:
  • js/script-tests/symbol-abstract-relational-comparison.js:

(relationalOperators.forEach):

  • js/script-tests/symbol-object.js:
  • js/script-tests/symbol-prototype-is-ordinary-object.js:
  • js/script-tests/symbol-tostring.js:
  • js/string-code-point-at-expected.txt:
  • js/symbol-abstract-relational-comparison-expected.txt:
  • js/symbol-object-expected.txt:
  • js/symbol-prototype-is-ordinary-object-expected.txt:
  • js/symbol-tostring-expected.txt:
6:19 PM Changeset in webkit [200401] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Adding a new console message shouldn't modify DOM when the console log is hidden
https://bugs.webkit.org/show_bug.cgi?id=155629
<rdar://problem/25235470>

Reviewed by Timothy Hatcher.

Instead of rendering console messages right away, store them (in _pendingMessages)
and render only when the console tab or the split console is visible.
Also, batch rendering operations using requestAnimationFrame.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController):
Store console message views in _pendingMessages.

(WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessageView):
(WebInspector.JavaScriptLogViewController.prototype.renderPendingMessages):
Use requestAnimationFrame batching. Run isScrolledToBottom() at most only once
per batch.

(WebInspector.JavaScriptLogViewController.prototype.renderPendingMessagesSoon):
(WebInspector.JavaScriptLogViewController.prototype._didRenderConsoleMessageView):
There is no need to run scrollToBottom again.

  • UserInterface/Views/ConsoleCommandView.js:

(WebInspector.ConsoleCommandView):
Move all DOM operations to a new render method.

(WebInspector.ConsoleCommandView.prototype.render):

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView):
(WebInspector.ConsoleMessageView.prototype.render):
(WebInspector.ConsoleMessageView.prototype.set repeatCount):
(WebInspector.ConsoleMessageView.prototype._renderRepeatCount):

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype.shown):
When the console tab or the split console is opened render all pending messages.

(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
Don't call needsLayout on every added console message. Call it only once per
requestAnimationFrame. Also, no need to scrollToBottom once again.

(WebInspector.LogContentView.prototype._messageAdded):
(WebInspector.LogContentView.prototype._previousMessageRepeatCountUpdated):
(WebInspector.LogContentView.prototype._scopeFromMessageLevel): Deleted.
(WebInspector.LogContentView.prototype._markScopeBarItemUnread): Added.
Rename _pulseScopeBarItemBorder. In the very first version the border was pulsing,
but now we use small colored circles instead.

6:08 PM Changeset in webkit [200400] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

Web Inspector: Give console.time/timeEnd a default label and warnings
https://bugs.webkit.org/show_bug.cgi?id=157325
<rdar://problem/26073290>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-03
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Provide more user friendly console.time/timeEnd. The timer name
is now optional, and is "default" if not provided. Also provide
warnings when attempting to start an already started timer,
or stop a timer that does not exist.

  • inspector/agents/InspectorConsoleAgent.cpp:

(Inspector::InspectorConsoleAgent::startTiming):
(Inspector::InspectorConsoleAgent::stopTiming):
Warnings for bad cases.

  • runtime/ConsoleObject.cpp:

(JSC::defaultLabelString):
(JSC::consoleProtoFuncTime):
(JSC::consoleProtoFuncTimeEnd):
Optional label becomes "default".

Source/WebInspectorUI:

  • UserInterface/Models/NativeFunctionParameters.js:

Update the convenience signature.

LayoutTests:

  • inspector/console/console-time-expected.txt: Added.
  • inspector/console/console-time.html: Added.
6:06 PM Changeset in webkit [200399] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Fix the ENABLE(WEBASSEMBLY) build
https://bugs.webkit.org/show_bug.cgi?id=157312

Patch by Xan Lopez <xlopez@igalia.com> on 2016-05-03
Reviewed by Darin Adler.

  • runtime/Executable.cpp:

(JSC::WebAssemblyExecutable::WebAssemblyExecutable):

  • wasm/WASMFunctionCompiler.h:

(JSC::WASMFunctionCompiler::convertValueToDouble):

6:06 PM Changeset in webkit [200398] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

Web Inspector: Remove unused parameter of ScriptArguments::getFirstArgumentAsString
https://bugs.webkit.org/show_bug.cgi?id=157301

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-03
Reviewed by Timothy Hatcher.

  • inspector/ScriptArguments.cpp:

(Inspector::ScriptArguments::getFirstArgumentAsString):

  • inspector/ScriptArguments.h:

Remove unused argument and related code.

  • runtime/ConsoleClient.cpp:

(JSC::ConsoleClient::printConsoleMessageWithArguments):
Drive by remove unnecessary cast.

6:05 PM Changeset in webkit [200397] by jdiggs@igalia.com
  • 5 edits in trunk

[ATK] accessibility/document-attributes.html is failing
https://bugs.webkit.org/show_bug.cgi?id=125348

Reviewed by Chris Fleizach.

Tools:

The test was failing because the WebArea is now being exposed with the role of
ATK_ROLE_DOCUMENT_WEB; not ATK_ROLE_DOCUMENT_FRAME. Unfortunately, when that
change was made, documentEncoding() and documentURI() were not updated accordingly.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::documentEncoding):
(WTR::AccessibilityUIElement::documentURI):

LayoutTests:

  • platform/efl/TestExpectations: Unskipped failing test.
  • platform/gtk/TestExpectations: Unskipped failing test.
6:04 PM Changeset in webkit [200396] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS][WK2] Allow WKWebView to play local filesystem media when created with -loadFileURL:allowingReadAccessToURL:
https://bugs.webkit.org/show_bug.cgi?id=156875
<rdar://problem/24281444>

Reviewed by Alexey Proskuryakov.

Grant AVFoundation the right to issue file read sandbox extensions from the WebContent process to the mediaserverd
process, so that it can play back local media files.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
6:03 PM Changeset in webkit [200395] by jiewen_tan@apple.com
  • 3 edits
    1 add in trunk/Source/WebKit2

File Upload: Photo upload name is always generic (image.jpg)
https://bugs.webkit.org/show_bug.cgi?id=157291
<rdar://problem/12353008>

Reviewed by Darin Adler.

Use the original filename as the name of an uploaded image instead of
a generic name, i.e. image.jpg.

  • Platform/spi/ios/PhotosSPI.h: Added.
  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel _uploadItemForImage:withAssetURL:successBlock:failureBlock:]):

  • WebKit2.xcodeproj/project.pbxproj:
4:26 PM Changeset in webkit [200394] by Chris Dumez
  • 5 edits in trunk/Source

[WK2][DiskCache] Store common HTTP header names as strings
https://bugs.webkit.org/show_bug.cgi?id=157326
<rdar://problem/26073498>

Reviewed by Antti Koivisto.

Store common HTTP header names as strings in the disk cache instead of
using their value in the HTTPHeaderName enumeration. Having the disk
cache rely in the HTTPHeaderName enumeration is risky becomes it means
the cached data would become invalid every time someone updates
HTTPHeaderNames.in in WebCore. If someone were to update
HTTPHeaderNames.in without bumping the disk cache version, we would end
up with wrongly recognized HTTP header names after loading responses
from the cache.

  • NetworkProcess/cache/NetworkCacheCoders.cpp:

(WebKit::NetworkCache::Coder<WebCore::HTTPHeaderMap>::encode):
(WebKit::NetworkCache::Coder<WebCore::HTTPHeaderMap>::decode):

  • NetworkProcess/cache/NetworkCacheCoders.h:
  • NetworkProcess/cache/NetworkCacheStorage.h:
4:25 PM Changeset in webkit [200393] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Optimize [StrictTypeChecking] on IDL attributes
https://bugs.webkit.org/show_bug.cgi?id=157321

Reviewed by Geoffrey Garen.

Optimize [StrictTypeChecking] on IDL attributes:

  • Only generate extra code for nullable attributes because for non-nullable attributes, JSXXX::toWrapped() will return null in case of a bad input type. We will then throw a TypeError when null-checking it already.
  • After the JSValue::isNullOrUndefined() check, avoid calling JSXXX::toWrapped() and set nativeValue to nullptr directly.
  • Drop the check for JSValue::inherits(JSXXX::info()) and just do a null check on the value returned by JSXXX::toWrapped(). toWrapped() already does a JSValue::inherits(JSXXX::info() check. Since we only call toWrapped() if the JSValue is not null/undefined, a null return value always indicates a bad input type.
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_set_strict_type_checking_attribute):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::setJSTestObjStrictTypeCheckingAttribute):

  • bindings/scripts/test/ObjC/DOMTestObj.mm:

(-[DOMTestObj setStrictTypeCheckingAttribute:]):

  • bindings/scripts/test/TestObj.idl:
4:01 PM Changeset in webkit [200392] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Un-skipping storage/indexeddb/intversion-open-in-upgradeneeded.html, but leaving it as flaky
https://bugs.webkit.org/show_bug.cgi?id=155050

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:31 PM Changeset in webkit [200391] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

Temporary workaround for Apple Internal builds
<rdar://problem/25992976>

For Apple Internal builds treat error code errSecCSGuestInvalid as if it were error code errSecCSUnsigned.
We will look to remove this workaround in the fix for <rdar://problem/26075714>.

  • Shared/mac/CodeSigning.mm:

(WebKit::secCodeSigningIdentifier):

3:20 PM Changeset in webkit [200390] by Chris Dumez
  • 16 edits in trunk/Source

Unreviewed, rolling out r199259 and r200161.

Seems to have caused a ~1.2% PLT regression on iOS

Reverted changesets:

"[iOS WK2] WKWebViews should consult ancestor UIScrollViews to
determine tiling area"
https://bugs.webkit.org/show_bug.cgi?id=156429
http://trac.webkit.org/changeset/199259

"[iOS WK2] When determining tile size, check whether ancestor
UIScrollViews are actually scrollable"
https://bugs.webkit.org/show_bug.cgi?id=157107
http://trac.webkit.org/changeset/200161

3:12 PM Changeset in webkit [200389] by dino@apple.com
  • 6 edits in trunk/Source/WebKit2

CSS Grid should be an experimental feature flag
https://bugs.webkit.org/show_bug.cgi?id=157327
<rdar://problem/26075147>

Reviewed by Anders Carlsson.

The CSS Grid Layout runtime flag was exposed by
a WebKit preference. It was in the experimental
section but was missing the "Experimental" prefix.

It was also missing the human readable description.

Lastly, there is no need for the C API for experimental
features.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetCSSGridLayoutEnabled): Deleted.
(WKPreferencesGetCSSGridLayoutEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

2:46 PM Changeset in webkit [200388] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Remove firing assertion when redirecting
https://bugs.webkit.org/show_bug.cgi?id=155800
rdar://25299194

Reviewed by Sam Weinig.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:willCacheResponse:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
With NSURLConnection, we stopped getting delegate callbacks once the delegate is destroyed, and everything was cancelled.
With NSURLSession we continue getting delegate callbacks because the session's delegate is not destroyed after each load.
As documented in NSURLSession.h: "In some cases, the task may signal other work before it acknowledges the cancelation."
In the cases where we cancel a load, delete the NetworkLoad and corresponding NetworkDataTask, we want to call all
completion handlers indicating that we really want to cancel instead of asserting.

2:42 PM Changeset in webkit [200387] by msaboff@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Crash: Array.prototype.slice() and .splice() can call fastSlice() after an array is truncated
https://bugs.webkit.org/show_bug.cgi?id=157322

Reviewed by Filip Pizlo.

Check to see if the source array has changed length before calling fastSlice().
If it has, take the slow path.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncSlice):
(JSC::arrayProtoFuncSplice):

  • tests/stress/regress-157322.js: New test.
1:54 PM Changeset in webkit [200386] by ggaren@apple.com
  • 3 edits in trunk/Source/bmalloc

2016-05-03 Geoffrey Garen <ggaren@apple.com>

Assertion failure in bmalloc::vmRevokePermissions(void*, unsigned long).
https://bugs.webkit.org/show_bug.cgi?id=157047

Reviewed by Filip Pizlo.

Renamed roundUpToMultipleOfSloppy => roundUpToMultipleOfNonPowerOfTwo.

  • bmalloc/Algorithm.h: (bmalloc::roundUpToMultipleOfNonPowerOfTwo): (bmalloc::roundUpToMultipleOfSloppy): Deleted.
  • bmalloc/VMHeap.cpp: (bmalloc::VMHeap::allocateSmallChunk):
12:43 PM Changeset in webkit [200385] by ggaren@apple.com
  • 3 edits in trunk/Source/bmalloc

Assertion failure in bmalloc::vmRevokePermissions(void*, unsigned long).
https://bugs.webkit.org/show_bug.cgi?id=157047

Reviewed by Filip Pizlo.

The previous fix aligned the guard page sizes correctly but forgot to
align the guard page start address correctly.

  • bmalloc/Algorithm.h:

(bmalloc::roundUpToMultipleOfSloppy): Use a new helper method to round
up when not working with a power of two, instead of writing out the
math by hand.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::allocateSmallChunk): Make sure to round up the guard
page start address in addition to its size. Assert at the very end to
try to catch more bugs.

11:38 AM Changeset in webkit [200384] by Joseph Pecoraro
  • 2 edits in trunk/Source/JavaScriptCore

Eliminate PassRefPtr conversion from ConsoleObject
https://bugs.webkit.org/show_bug.cgi?id=157300

Reviewed by Timothy Hatcher.

  • runtime/ConsoleObject.cpp:

(JSC::consoleLogWithLevel):
(JSC::consoleProtoFuncClear):
(JSC::consoleProtoFuncDir):
(JSC::consoleProtoFuncDirXML):
(JSC::consoleProtoFuncTable):
(JSC::consoleProtoFuncTrace):
(JSC::consoleProtoFuncAssert):
(JSC::consoleProtoFuncCount):
(JSC::consoleProtoFuncTimeStamp):
(JSC::consoleProtoFuncGroup):
(JSC::consoleProtoFuncGroupCollapsed):
(JSC::consoleProtoFuncGroupEnd):
No need to release to a PassRefPtr, we can just move into the RefPtr<>&&.

11:36 AM Changeset in webkit [200383] by fpizlo@apple.com
  • 40 edits
    5 adds in trunk/Source

Speed up JSGlobalObject initialization by making some properties lazy
https://bugs.webkit.org/show_bug.cgi?id=157045

Reviewed by Keith Miller.
Source/JavaScriptCore:


This makes about half of JSGlobalObject's state lazy. There are three categories of
state in JSGlobalObject:

1) C++ fields in JSGlobalObject.
2) JS object properties in JSGlobalObject's JSObject superclass.
3) JS variables in JSGlobalObject's JSSegmentedVariableObject superclass.

State held in JS variables cannot yet be made lazy. That's why this patch only goes
half-way.

State in JS object properties can be made lazy if we move it to the static property
hashtable. JSGlobalObject already had one of those. This patch makes static property
hashtables a lot more powerful, by adding three new kinds of static properties. These
new kinds allow us to make almost all of JSGlobalObject's object properties lazy.

State in C++ fields can now be made lazy thanks in part to WTF's support for stateless
lambdas. You can of course make anything lazy by hand, but there are many C++ fields in
JSGlobalObject and we are adding more all the time. We don't want to require that each
of these has a getter with an initialization check and a corresponding out-of-line slow
path that does the initialization. We want this kind of boilerplate to be handled by
some abstractions.

The primary abstraction introduced in this patch is LazyProperty<Type>. Currently, this
only works where Type is a subclass of JSCell. Such a property holds a pointer to Type.
You can use it like you would a WriteBarrier<Type>. It even has set() and get() methods,
so it's almost a drop-in replacement.

The key to LazyProperty<Type>'s power is that you can do this:

class Bar {

...
LazyProperty<Foo> m_foo;

};
...
m_foo.initLater(

[] (const LazyProperty<Foo>::Initializer<Bar>& init) {

init.set(Foo::create(init.vm, init.owner));

});


This initLater() call requires that you pass a stateless lambda (see WTF changelog for
the definition). Miraculously, this initLater() call is guaranteed to compile to a store
of a pointer constant to m_foo, as in:

movabsq 0xBLAH, %rax
movq %rax, &m_foo


This magical pointer constant points to a callback that was generated by the template
instantiation of initLater(). That callback knows to call your stateless lambda, but
also does some other bookkeeping: it makes sure that you indeed initialized the property
inside the callback and it manages recursive initializations. It's totally legal to call
m_foo.get() inside the initLater() callback. If you do that before you call init.set(),
m_foo.get() will return null. This is an excellent escape hatch if we ever find
ourselves in a dependency cycle. I added this feature because I already had to create a
dependency cycle.

Note that using LazyProperties from DFG threads is super awkward. It's going to be hard
to get this right. The DFG thread cannot initialize those fields, so it has to make sure
that it does conservative things. But for some nodes this could mean adding a lot of new
logic, like NewTypedArray, which currently is written in such a way that it assumes that
we always have the typed array structure. Currently we take a two-fold approach: for
typed arrays we don't handle the NewTypedArray intrinsic if the structure isn't
initialized, and for everything else we don't make the properties lazy if the DFG needs
them. As we optimize this further we might need to teach the DFG to handle more lazy
properties. I tried to do this for RegExp but found it to be very confusing. With typed
arrays I got lucky.

There is also a somewhat more powerful construct called LazyClassStructure. We often
need to keep around the structure of some standard JS class, like Date. We also need to
make sure that the constructor ends up in the global object's property table. And we
often need to keep the original value of the constructor for ourselves. In this case, we
want to make sure that the creation of the structure-prototype-constructor constellation
is atomic. We don't want code to start looking at the structure if it points to a
prototype that doesn't have its "constructor" property set yet, for example.
LazyClassStructure solves this by abstracting that whole initialization. You provide the
callback that allocates everything, since we are super inconsistent about the way we
initialize things, but LazyClassStructure establishes the workflow and helps you not
mess up.

Finally, the new static hashtable attributes allow for all of this to work with the JS
property table:

PropertyCallback: if you use this attribute, the second column in the table should be
the name of a function to call to initialize this property. This is useful for things
like the Math property. The Math object turns out to be very expensive to allocate.
Delaying its allocation is super easy with the PropertyCallback attribute.

CellProperty: with this attribute the second column should be a C++ field name like
JSGlobalObject::m_evalErrorConstructor. The static hashtable will grab the offset of
this property, and when it needs to be initialized, Lookup will assume you have a
LazyProperty<JSCell> and call its get() method. It will initialize the property to
whatever get() returned. Note that it's legal to cast a LazyProperty<Anything> to
LazyProperty<JSCell> for the purpose of calling get() because the get() method will just
call whatever callback function pointer is encoded in the property and it does not need
to know anything about what type that callback will instantiate.

ClassStructure: with this attribute the second column should be a C++ field name. The
static hashtable will initialize the property by treating the field as a
LazyClassStructure and it will call get(). LazyClassStructure completely owns the whole
initialization workflow, so Lookup assumes that when LazyClassStructure::get() returns,
the property in question will already be set. By convention, we have LazyClassStructure
initialize the property with a pointer to the constructor, since that's how all of our
classes work: "globalObject.Date" points to the DateConstructor.

This is a 2x speed-up in JSGlobalObject initialization time in a microbenchmark that
calls our C API. This is a 1% speed-up on SunSpider and JSRegress.

  • API/JSCallbackFunction.cpp:

(JSC::JSCallbackFunction::create):

  • API/ObjCCallbackFunction.h:

(JSC::ObjCCallbackFunction::impl):

  • API/ObjCCallbackFunction.mm:

(JSC::ObjCCallbackFunction::ObjCCallbackFunction):
(JSC::ObjCCallbackFunction::create):

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • create_hash_table:
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::set):

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::originalArrayStructure):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleTypedArrayConstructor):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNewTypedArray):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStructureRegistrationPhase.cpp:

(JSC::DFG::StructureRegistrationPhase::run):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):

  • runtime/ClonedArguments.cpp:

(JSC::ClonedArguments::getOwnPropertySlot):
(JSC::ClonedArguments::materializeSpecials):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncToString):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::visitChildren):
(JSC::InternalFunction::name):
(JSC::InternalFunction::calculatedDisplayName):
(JSC::InternalFunction::createSubclassStructure):

  • runtime/InternalFunction.h:
  • runtime/JSBoundFunction.cpp:

(JSC::JSBoundFunction::finishCreation):
(JSC::JSBoundFunction::visitChildren):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::getOwnPropertySlot):
(JSC::JSFunction::defineOwnProperty):

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::constructGenericTypedArrayView):

  • runtime/JSGlobalObject.cpp:

(JSC::createProxyProperty):
(JSC::createJSONProperty):
(JSC::createMathProperty):
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::stringPrototypeChainIsSane):
(JSC::JSGlobalObject::resetPrototype):
(JSC::JSGlobalObject::visitChildren):
(JSC::JSGlobalObject::toThis):
(JSC::JSGlobalObject::getOwnPropertySlot):
(JSC::JSGlobalObject::createThrowTypeError): Deleted.

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::objectConstructor):
(JSC::JSGlobalObject::promiseConstructor):
(JSC::JSGlobalObject::internalPromiseConstructor):
(JSC::JSGlobalObject::evalErrorConstructor):
(JSC::JSGlobalObject::rangeErrorConstructor):
(JSC::JSGlobalObject::referenceErrorConstructor):
(JSC::JSGlobalObject::syntaxErrorConstructor):
(JSC::JSGlobalObject::typeErrorConstructor):
(JSC::JSGlobalObject::URIErrorConstructor):
(JSC::JSGlobalObject::nullGetterFunction):
(JSC::JSGlobalObject::nullSetterFunction):
(JSC::JSGlobalObject::callFunction):
(JSC::JSGlobalObject::applyFunction):
(JSC::JSGlobalObject::definePropertyFunction):
(JSC::JSGlobalObject::arrayProtoValuesFunction):
(JSC::JSGlobalObject::initializePromiseFunction):
(JSC::JSGlobalObject::newPromiseCapabilityFunction):
(JSC::JSGlobalObject::functionProtoHasInstanceSymbolFunction):
(JSC::JSGlobalObject::regExpProtoExecFunction):
(JSC::JSGlobalObject::regExpProtoSymbolReplaceFunction):
(JSC::JSGlobalObject::regExpProtoGlobalGetter):
(JSC::JSGlobalObject::regExpProtoUnicodeGetter):
(JSC::JSGlobalObject::throwTypeErrorGetterSetter):
(JSC::JSGlobalObject::moduleLoader):
(JSC::JSGlobalObject::objectPrototype):
(JSC::JSGlobalObject::functionPrototype):
(JSC::JSGlobalObject::arrayPrototype):
(JSC::JSGlobalObject::booleanPrototype):
(JSC::JSGlobalObject::stringPrototype):
(JSC::JSGlobalObject::symbolPrototype):
(JSC::JSGlobalObject::numberPrototype):
(JSC::JSGlobalObject::datePrototype):
(JSC::JSGlobalObject::regExpPrototype):
(JSC::JSGlobalObject::errorPrototype):
(JSC::JSGlobalObject::iteratorPrototype):
(JSC::JSGlobalObject::generatorFunctionPrototype):
(JSC::JSGlobalObject::generatorPrototype):
(JSC::JSGlobalObject::debuggerScopeStructure):
(JSC::JSGlobalObject::withScopeStructure):
(JSC::JSGlobalObject::strictEvalActivationStructure):
(JSC::JSGlobalObject::activationStructure):
(JSC::JSGlobalObject::moduleEnvironmentStructure):
(JSC::JSGlobalObject::directArgumentsStructure):
(JSC::JSGlobalObject::scopedArgumentsStructure):
(JSC::JSGlobalObject::clonedArgumentsStructure):
(JSC::JSGlobalObject::isOriginalArrayStructure):
(JSC::JSGlobalObject::booleanObjectStructure):
(JSC::JSGlobalObject::callbackConstructorStructure):
(JSC::JSGlobalObject::callbackFunctionStructure):
(JSC::JSGlobalObject::callbackObjectStructure):
(JSC::JSGlobalObject::propertyNameIteratorStructure):
(JSC::JSGlobalObject::objcCallbackFunctionStructure):
(JSC::JSGlobalObject::objcWrapperObjectStructure):
(JSC::JSGlobalObject::dateStructure):
(JSC::JSGlobalObject::nullPrototypeObjectStructure):
(JSC::JSGlobalObject::errorStructure):
(JSC::JSGlobalObject::calleeStructure):
(JSC::JSGlobalObject::functionStructure):
(JSC::JSGlobalObject::boundFunctionStructure):
(JSC::JSGlobalObject::boundSlotBaseFunctionStructure):
(JSC::JSGlobalObject::getterSetterStructure):
(JSC::JSGlobalObject::nativeStdFunctionStructure):
(JSC::JSGlobalObject::namedFunctionStructure):
(JSC::JSGlobalObject::functionNameOffset):
(JSC::JSGlobalObject::numberObjectStructure):
(JSC::JSGlobalObject::privateNameStructure):
(JSC::JSGlobalObject::mapStructure):
(JSC::JSGlobalObject::regExpStructure):
(JSC::JSGlobalObject::generatorFunctionStructure):
(JSC::JSGlobalObject::setStructure):
(JSC::JSGlobalObject::stringObjectStructure):
(JSC::JSGlobalObject::symbolObjectStructure):
(JSC::JSGlobalObject::iteratorResultObjectStructure):
(JSC::JSGlobalObject::lazyTypedArrayStructure):
(JSC::JSGlobalObject::typedArrayStructure):
(JSC::JSGlobalObject::typedArrayStructureConcurrently):
(JSC::JSGlobalObject::isOriginalTypedArrayStructure):
(JSC::JSGlobalObject::typedArrayConstructor):
(JSC::JSGlobalObject::actualPointerFor):
(JSC::JSGlobalObject::internalFunctionStructure): Deleted.

  • runtime/JSNativeStdFunction.cpp:

(JSC::JSNativeStdFunction::create):

  • runtime/JSWithScope.cpp:

(JSC::JSWithScope::create):
(JSC::JSWithScope::visitChildren):
(JSC::JSWithScope::createStructure):
(JSC::JSWithScope::JSWithScope):

  • runtime/JSWithScope.h:

(JSC::JSWithScope::object):
(JSC::JSWithScope::create): Deleted.
(JSC::JSWithScope::createStructure): Deleted.
(JSC::JSWithScope::JSWithScope): Deleted.

  • runtime/LazyClassStructure.cpp: Added.

(JSC::LazyClassStructure::Initializer::Initializer):
(JSC::LazyClassStructure::Initializer::setPrototype):
(JSC::LazyClassStructure::Initializer::setStructure):
(JSC::LazyClassStructure::Initializer::setConstructor):
(JSC::LazyClassStructure::visit):
(JSC::LazyClassStructure::dump):

  • runtime/LazyClassStructure.h: Added.

(JSC::LazyClassStructure::LazyClassStructure):
(JSC::LazyClassStructure::get):
(JSC::LazyClassStructure::prototype):
(JSC::LazyClassStructure::constructor):
(JSC::LazyClassStructure::getConcurrently):
(JSC::LazyClassStructure::prototypeConcurrently):
(JSC::LazyClassStructure::constructorConcurrently):

  • runtime/LazyClassStructureInlines.h: Added.

(JSC::LazyClassStructure::initLater):

  • runtime/LazyProperty.h: Added.

(JSC::LazyProperty::Initializer::Initializer):
(JSC::LazyProperty::LazyProperty):
(JSC::LazyProperty::get):
(JSC::LazyProperty::getConcurrently):

  • runtime/LazyPropertyInlines.h: Added.

(JSC::LazyProperty<ElementType>::Initializer<OwnerType>::set):
(JSC::LazyProperty<ElementType>::initLater):
(JSC::LazyProperty<ElementType>::setMayBeNull):
(JSC::LazyProperty<ElementType>::set):
(JSC::LazyProperty<ElementType>::visit):
(JSC::LazyProperty<ElementType>::dump):
(JSC::LazyProperty<ElementType>::callFunc):

  • runtime/Lookup.cpp:

(JSC::setUpStaticFunctionSlot):

  • runtime/Lookup.h:

(JSC::HashTableValue::function):
(JSC::HashTableValue::functionLength):
(JSC::HashTableValue::propertyGetter):
(JSC::HashTableValue::propertyPutter):
(JSC::HashTableValue::accessorGetter):
(JSC::HashTableValue::accessorSetter):
(JSC::HashTableValue::constantInteger):
(JSC::HashTableValue::lexerValue):
(JSC::HashTableValue::lazyCellPropertyOffset):
(JSC::HashTableValue::lazyClassStructureOffset):
(JSC::HashTableValue::lazyPropertyCallback):
(JSC::getStaticPropertySlot):
(JSC::getStaticValueSlot):
(JSC::reifyStaticProperty):

  • runtime/PropertySlot.h:
  • runtime/TypedArrayType.h:

Source/WebCore:

No new tests because no change in behavior.

This adapts JSHTMLElementCustom.cpp to the new JSWithScope API. Note that this revealed
that this was using a curious choice of global object, which may not be right. I decided
to do a very literal refactoring that exactly preserves what this code got before, but I
added a FIXME to reconsider this later.

  • bindings/js/JSHTMLElementCustom.cpp:

(WebCore::JSHTMLElement::pushEventHandlerScope):

Source/WTF:


This WTF change is at the heart of a large JSC change. In JSC I found myself wanting to
do this a lot:

static void callback(Foo& foo) { ... }


foo.setCallback(callback);


But that's not very nice to write if many different setCallback() calls are inside of the
same very large function: you'll have to have a lot of static function definitions in
one part of the file, and then a bunch of setCallback() calls in another part. It's hard
to reason about what's going on with such code.

So what if you wrote this instead:

foo.setCallback([] (Foo& foo) { ... });


Much nicer! There is a standard way to do this: lambdas that are stateless are
convertible to function pointers. This change also offers another approach that is a bit
more general.

These additions to WTF help you do it:

isStatelessLambda<Func>(): tells you if Func is a stateless lambda. This uses is_empty to
test if the lambda is stateless. This turns out to be a stronger property than
convertibility to function pointers. For example, a function pointer is convertible to a
function pointer, but it is definitely stateful: you cannot successfully call it if you
only has its type. On the other hand, a stateless lambda is really stateless in the sense
that you only need its type to call it.

callStatelessLambda<ResultType, Func>(Arguments&&...): calls the given stateless lambda.

JSC uses these to build up some sophisticated lazy-initialization APIs. The use of
statelessness allows JSC to combine a lambda with other logic into a single function
pointer.

  • wtf/StdLibExtras.h:

(WTF::isStatelessLambda):
(WTF::callStatelessLambda):

11:22 AM Changeset in webkit [200382] by peavo@outlook.com
  • 6 edits in trunk/Source

[Win] Remove Windows XP Compatibility Requirements
https://bugs.webkit.org/show_bug.cgi?id=152899

Reviewed by Brent Fulgham.

Source/JavaScriptCore:

Windows XP is not supported anymore, we can remove workarounds.

(enableTerminationOnHeapCorruption):

Source/WebCore:

Windows XP is not supported anymore, we can remove compatibility workarounds.

  • platform/text/win/LocaleWin.cpp:

(WebCore::extractLanguageCode):
(WebCore::LCIDFromLocaleInternal):
(WebCore::LCIDFromLocale):
(WebCore::removeLastComponent): Deleted.
(WebCore::ensureNameToLCIDMap): Deleted.
(WebCore::convertLocaleNameToLCID): Deleted.

Source/WTF:

Windows XP is not supported anymore, we can remove workarounds.

  • wtf/Assertions.cpp:
11:00 AM Changeset in webkit [200381] by Antti Koivisto
  • 5 edits
    2 adds in trunk

REGRESSION (r198943): Transitions don't work if they animate display property
https://bugs.webkit.org/show_bug.cgi?id=157244
<rdar://problem/26042189>

Reviewed by Simon Fraser.

Source/WebCore:

Test: transitions/transition-display-property.html

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateBeforeOrAfterPseudoElement):

Call the common function for ::before/::after updates.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):
(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

If animation forces render tree reconstruction use the original rather than animated style for update.
Because animations are tied to renderers we start them during renderer construction in this case.

Factor to a function.

(WebCore::Style::elementImplicitVisibility):

  • style/StyleTreeResolver.h:

LayoutTests:

  • transitions/transition-display-property-expected.html: Added.
  • transitions/transition-display-property.html: Added.
10:58 AM Changeset in webkit [200380] by peavo@outlook.com
  • 2 edits in trunk/Source/WTF

[Win] Warning fix.
https://bugs.webkit.org/show_bug.cgi?id=157309

Reviewed by Darin Adler.

MSVC gives a warning when converting from signed to unsigned.

  • wtf/SmallPtrSet.h:

(WTF::SmallPtrSet::begin):

10:31 AM Changeset in webkit [200379] by bshafiei@apple.com
  • 10 edits in tags/Safari-602.1.30.4/Source

Merged r200157. rdar://problem/25841037

10:24 AM Changeset in webkit [200378] by Chris Dumez
  • 1 edit
    3 deletes in trunk/LayoutTests

Unreviewed, drop outdated layout test after r200375.

  • fast/workers/resources/worker-replace-self.js: Removed.
  • fast/workers/worker-replace-self-expected.txt: Removed.
  • fast/workers/worker-replace-self.html: Removed.
10:10 AM Changeset in webkit [200377] by Brent Fulgham
  • 2 edits in trunk/Tools

[Win] Unreviewed build fix.

  • EWSTools/start-queue-win.sh: Establish proper VS2015 build

environment at start of queue run.

9:39 AM Changeset in webkit [200376] by jdiggs@igalia.com
  • 1 edit
    1 add in trunk/LayoutTests

Unreviewed GTK+ gardening.
Adding a platform-specific expectations file for aria-text-role.html.

  • platform/gtk/accessibility/aria-text-role-expected.txt: Added.
8:50 AM Changeset in webkit [200375] by Chris Dumez
  • 3 edits
    9 adds in trunk

WorkerGlobalScope's self, location and navigator attributes should not be replaceable
https://bugs.webkit.org/show_bug.cgi?id=157296
<rdar://problem/25962738>

Patch by Pranjal Jumde <pjumde@apple.com> on 2016-05-03
Reviewed by Chris Dumez.

Source/WebCore:

Tests: http/tests/workers/location-readonly.html

http/tests/workers/navigator-readonly.html
http/tests/workers/self-readonly.html

  • workers/WorkerGlobalScope.idl:

The 'self', 'location', and 'navigator' properties of the WorkerGlobalScope must be immutable.
See: https://html.spec.whatwg.org/multipage/workers.html#the-workerglobalscope-common-interface

LayoutTests:

  • http/tests/workers/location-readonly-expected.txt: Added.
  • http/tests/workers/location-readonly.html: Added.
  • http/tests/workers/navigator-readonly-expected.txt: Added.
  • http/tests/workers/navigator-readonly.html: Added.
  • http/tests/workers/self-readonly-expected.txt: Added.
  • http/tests/workers/self-readonly.html: Added.
  • http/tests/workers/worker-location.js: Added.
  • http/tests/workers/worker-navigator.js: Added.
  • http/tests/workers/worker-self.js: Added.
8:44 AM Changeset in webkit [200374] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Drop some unnecessary exception checking in the generated bindings
https://bugs.webkit.org/show_bug.cgi?id=157299

Reviewed by Darin Adler.

Drop some unnecessary exception checking in the generated bindings.
Only do a check for state->hadException() after converting a JSValue
to a native value when necessary. Update JSValueToNative() to
indicate the caller if converting to the native value may throw an
exception.

This gets rid of a lot of unnecessary branching in the bindings.

No new tests, no intended web-exposed behavior change.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateParametersCheck):
(JSValueToNative):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
8:39 AM Changeset in webkit [200373] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Update window.console function API description strings in Console
https://bugs.webkit.org/show_bug.cgi?id=157298

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-03
Reviewed by Timothy Hatcher.

  • UserInterface/Models/NativeFunctionParameters.js:
  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
The Console object changed how it works. Work with the new
structure, and the older structure for legacy backends.

8:30 AM Changeset in webkit [200372] by beidson@apple.com
  • 7 edits in trunk/Source/WebCore

Add/refactor isolatedCopy methods for 3 IDB classes.
https://bugs.webkit.org/show_bug.cgi?id=157289

Reviewed by Alex Christensen.

No new tests (Refactor, no behavior change).

In an upcoming, much larger patch, I'll need the ability to directly construct these three objects
as isolated copies.

This is a nice standalone refactor that enables that ability.

  • Modules/indexeddb/IDBGetResult.cpp:

(WebCore::IDBGetResult::IDBGetResult):
(WebCore::IDBGetResult::isolatedCopy):

  • Modules/indexeddb/IDBGetResult.h:
  • Modules/indexeddb/IDBKeyData.cpp:

(WebCore::IDBKeyData::IDBKeyData):
(WebCore::IDBKeyData::isolatedCopy):

  • Modules/indexeddb/IDBKeyData.h:
  • Modules/indexeddb/shared/IDBTransactionInfo.cpp:

(WebCore::IDBTransactionInfo::IDBTransactionInfo):
(WebCore::IDBTransactionInfo::isolatedCopy):

  • Modules/indexeddb/shared/IDBTransactionInfo.h:
8:24 AM Changeset in webkit [200371] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

Web Inspector: console.assert should do far less work when the assertion is true
https://bugs.webkit.org/show_bug.cgi?id=157297
<rdar://problem/26056556>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-03
Reviewed by Timothy Hatcher.

  • runtime/ConsoleClient.h:
  • runtime/ConsoleClient.cpp:

(JSC::ConsoleClient::assertion):
(JSC::ConsoleClient::assertCondition): Deleted.
Rename, now that this will only get called when the assertion failed.

  • runtime/ConsoleObject.cpp:

(JSC::consoleProtoFuncAssert):
Avoid doing any work if the assertion succeeded.

8:23 AM Changeset in webkit [200370] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Allow format specifiers in console.assert and console.trace
https://bugs.webkit.org/show_bug.cgi?id=157295
<rdar://problem/26056039>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-03
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
Treat the first argument as a format specifier.

8:23 AM Changeset in webkit [200369] by jdiggs@igalia.com
  • 13 edits
    2 adds in trunk

[ATK] accessibility/content-editable-as-textarea.html fails
https://bugs.webkit.org/show_bug.cgi?id=155353

Reviewed by Darin Adler.

Source/WebCore:

The test was timing out because it expected an AXValueChanged notification.
In ATK, AXValueChanged notifications are made for widgets which implement
the AtkValue interface (sliders, progress bars, etc.). We should be listening
for AXTextChanged instead.

In addition, for contenteditable elements, we should emit the notification on
the element itself. Because we were handling the notification in the same way
as native text controls (where the notification we receive from WebCore is for
StaticTextRole children), we were attempting to emit the notification from
the parent of the contenteditable.

Lastly, ATK's AccessibilityUIElement support had a number of unimplemented
methods that are being used as part of the previously-failing test. Those
methods are now implemented so that the ATK results are much more similar
to those on the Mac.

No new tests needed. The previously-failing test now passes.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::childrenChanged):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isNonNativeTextControl):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::textChanged):

  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::AXObjectCache::nodeTextChangePlatformNotification):

Tools:

The test was timing out because it expected an AXValueChanged notification.
In ATK, AXValueChanged notifications are made for widgets which implement
the AtkValue interface (sliders, progress bars, etc.). We should be listening
for AXTextChanged instead. AtkText's text-insert and text-remove have been
added to the AccessibilityNotificationHandler.

Also, ATK's AccessibilityUIElement support had a number of unimplemented
methods that are being used as part of the previously-failing test. Those
methods are now implemented so that the ATK results are much more similar
to those on the Mac.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:

(WTR::AccessibilityNotificationHandler::connectAccessibilityCallbacks):

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::rangeForLine):
(WTR::AccessibilityUIElement::boundsForRange):
(WTR::AccessibilityUIElement::attributedStringForRange):

LayoutTests:

Updated the test identified in the bug to listen for the appropriate
notification for ATK and created platform-specific expectations.

In addition, set-selected-text-range-contenteditable.html was timing out
due to the use of shouldBecomeEqual() with an assertion that is wrong for
ATK. Modifying the test so that it verifies the result appropriate for
each platform eliminates the timeout.

  • accessibility/content-editable-as-textarea.html: Updated.
  • accessibility/set-selected-text-range-contenteditable.html: Updated.
  • platform/gtk/TestExpectations: Unskipped the failing tests.
  • platform/gtk/accessibility/content-editable-as-textarea-expected.txt: Added.
  • platform/gtk/accessibility/set-selected-text-range-contenteditable-expected.txt: Added.
4:30 AM Changeset in webkit [200368] by svillar@igalia.com
  • 5 edits in trunk/Source/WebCore

[css-grid] Add support for position resolution with auto-repeat tracks
https://bugs.webkit.org/show_bug.cgi?id=157260

Reviewed by Darin Adler.

This is a generalization of our position resolution code so it now supports every possible
type of resolution (definite position, position spans, automatic resolution, named lines
resolution, grid areas...) under the presence of auto-repeat tracks, i.e., tracks that are
dynamically created by the LayoutGrid depending on the available space and that cannot be
directly inferred from the CSS declarations.

This means that we need two extra things to resolve positions:

  • the LayoutGrid needs to provide the number of auto-repeat tracks per axis
  • a wrapper is needed to hide the eventual presence of auto-repeat tracks (with their line

names) from the rest of the resolution code which should remain mostly unchanged.

The former is trivial (requires passing a new argument to some functions at the most) but
the latter requires a new class called NamedLineCollection. This class allow us to locate
and resolve named lines without having to insert the auto-repeat named lines in the already
existing data structures. It does it in a very compact representation as it does not
duplicate the names for every single repetition.

No new tests required as there is no change in behavior because the auto-repeat tracks
computation is not implemented yet. Current tests already test this code extensively, and
the auto-repeat code paths will be tested later once
RenderGrid::computeAutoRepeatTracksCount() is implemented.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeAutoRepeatTracksCount): New method with empty implementation.
(WebCore::RenderGrid::placeItemsOnGrid): Initialize the auto repeat tracks count.
(WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):

  • rendering/RenderGrid.h:
  • rendering/style/GridPositionsResolver.cpp:

(WebCore::directionFromSide):
(WebCore::NamedLineCollection::NamedLineCollection): New class which is able to resolve the
positions of a given named line in the presence of auto-repeat and "normal" tracks.
(WebCore::NamedLineCollection::isValidNamedLineOrArea): Checks whether the given named line
is a valid line name or area.
(WebCore::NamedLineCollection::hasNamedLines): Checks whether the named line exists in the
given axis (either specified by auto-repeat or "normal" tracks).
(WebCore::NamedLineCollection::find): Looks for a line number whithin the line numbers where
the given named line was found.
(WebCore::NamedLineCollection::contains):
(WebCore::NamedLineCollection::firstPosition): Returns the first line where the given named
line is located.
(WebCore::adjustGridPositionsFromStyle): Use NamedLineCollection.
(WebCore::GridPositionsResolver::explicitGridColumnCount): Include auto repeat tracks.
(WebCore::GridPositionsResolver::explicitGridRowCount): Ditto.
(WebCore::explicitGridSizeForSide): Ditto.
(WebCore::lookAheadForNamedGridLine): Use NamedLineCollection.
(WebCore::lookBackForNamedGridLine): Ditto.
(WebCore::resolveNamedGridLinePositionFromStyle):
(WebCore::definiteGridSpanWithNamedLineSpanAgainstOpposite):
(WebCore::resolveNamedGridLinePositionAgainstOppositePosition):
(WebCore::resolveGridPositionAgainstOppositePosition):
(WebCore::resolveGridPositionFromStyle):
(WebCore::GridPositionsResolver::resolveGridPositionsFromStyle):
(WebCore::gridLinesForSide): Deleted.
(WebCore::GridPositionsResolver::isNonExistentNamedLineOrArea): Deleted.

  • rendering/style/GridPositionsResolver.h:
2:18 AM Changeset in webkit [200367] by Joseph Pecoraro
  • 5 edits in trunk

Unreviewed follow-up testapi fix after r200355.

Source/JavaScriptCore:

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
Revert back to non-enumerable. This matches our older behavior,
we can decide to make this Enumerable later if needed.

LayoutTests:

  • js/console-expected.txt:
  • js/console.html:

Make window.console non-enumerable.

2:09 AM Changeset in webkit [200366] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Update drag and drop tests bug reference.

We were using a fixed bug, because drag and drop was already implemented in WebKit2. However, some tests still
fail because some drag and drop events are not emitted when using synthetic events like even sender does. So,
update the bug reference to https://bugs.webkit.org/show_bug.cgi?id=157179 and add two more tests that are
timing out in the bots for the same reason.

  • platform/gtk/TestExpectations:
1:50 AM Changeset in webkit [200365] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix GObject DOM bindings API break after r200316.

webkit_dom_tree_walker_set_current_node no longer raises exceptions after r200316, so mark it accordingly.

  • bindings/scripts/CodeGeneratorGObject.pm:

(FunctionUsedToRaiseException):

1:18 AM Changeset in webkit [200364] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

[OpenType] OpenTypeVerticalData object should not be created if the font is not OpenType
https://bugs.webkit.org/show_bug.cgi?id=157172

Reviewed by Michael Catanzaro.

It's a bit weird that the object is always created and has an isOpenType() method to check whether it's an
OpenType or not. The caller is always deleting the object when it's not an OpenType, so it would be better if
the create method returned nullptr instead of creating the object when the font is not OpenType.

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::verticalData): Do not use isOpenType(), we can now simply use the return value of OpenTypeVerticalData::create().

  • platform/graphics/opentype/OpenTypeVerticalData.cpp:

(WebCore::loadHmtxTable): Moved to a helper funtion that returns false if the font is not OpenType.
(WebCore::OpenTypeVerticalData::create): Try to load the Hmtx table, and create the object if succeeded or
return nullptr otherwise.
(WebCore::OpenTypeVerticalData::OpenTypeVerticalData): Receive the advanceWidths as constructor parameter.
(WebCore::OpenTypeVerticalData::loadMetrics): Load all other tables.

  • platform/graphics/opentype/OpenTypeVerticalData.h:

(WebCore::OpenTypeVerticalData::isOpenType): Deleted.

12:19 AM Changeset in webkit [200363] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.30.4/Source

Versioning.

12:12 AM Changeset in webkit [200362] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.30.4

New tag.

May 2, 2016:

10:47 PM Changeset in webkit [200361] by Darin Adler
  • 63 edits in trunk/Source

Change IDL enumerations to be nested in their C++ class instead of at WebCore namespace level
https://bugs.webkit.org/show_bug.cgi?id=157257

Reviewed by Chris Dumez.

Source/WebCore:

Chris and Alex requested this alternate style, where the enum class for each enumeration
goes inside the class for the interface the enumeration is used in. Also made a rule that
keeps the names short and not redundant with the class name they are nested in.

  • Modules/fetch/FetchOptions.h: Moved all the enum class types into the struct.
  • Modules/fetch/FetchRequest.cpp:

(WebCore::setReferrerPolicy): Updated.
(WebCore::setMode): Ditto.
(WebCore::setCredentials): Ditto.
(WebCore::setCache): Ditto.
(WebCore::setRedirect): Ditto.
(WebCore::buildOptions): Ditto.
(WebCore::buildHeaders): Ditto.
(WebCore::FetchRequest::create): Ditto.

  • Modules/fetch/FetchRequest.h: Used "using" to repeat the types from FetchOptions

here in FetchRequest. That way the generated bindings can find the types, and we don't
need to do any trick like [ImplementedAs] in thd IDL to make it work.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::error): Updated.
(WebCore::FetchResponse::redirect): Ditto.
(WebCore::FetchResponse::FetchResponse): Ditto.
(WebCore::FetchResponse::startFetching): Ditto.

  • Modules/fetch/FetchResponse.h: Moved enum class into the class.
  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::externalDeviceType): Updated.

  • Modules/mediacontrols/MediaControlsHost.h: Moved enum classs into the class.
  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::MediaSession): Updated.

  • Modules/mediasession/MediaSession.h: Moved enum classs into the class.
  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::addSourceBuffer): Updated.
(WebCore::MediaSource::removeSourceBuffer): Ditto.

  • Modules/mediasource/MediaSource.h: Moved enum class into the class.
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveRenderingError): Updated.
(WebCore::SourceBuffer::appendError): Ditto.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Ditto.
(WebCore::SourceBuffer::textTrackModeChanged): Ditto.

  • Modules/mediasource/SourceBuffer.h: Removed incorrect forward declaration

of EndOfStreamError that also now seems to be unneeded. Moved enum class into
the class.

  • Modules/mediastream/MediaDeviceInfo.cpp:

(WebCore::MediaDeviceInfo::MediaDeviceInfo): Updated.
(WebCore::MediaDeviceInfo::create): Ditto.

  • Modules/mediastream/MediaDeviceInfo.h: Moved enum class into the class.
  • Modules/mediastream/MediaDevicesRequest.cpp:

(WebCore::MediaDevicesRequest::didCompleteTrackSourceInfoRequest): Updated.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::readyState): Updated.

  • Modules/mediastream/MediaStreamTrack.h: Moved enum class into the class.
  • Modules/mediastream/RTCConfiguration.h: Moved enum classes into the class.
  • Modules/webaudio/AudioContext.h: Moved enum class into the class.
  • Modules/webaudio/WaveShaperNode.cpp:

(WebCore::processorType): Updated.
(WebCore::WaveShaperNode::oversample): Ditto.

  • Modules/webaudio/WaveShaperNode.h: Moved enum class into the class.
  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::JSXMLHttpRequest::response): Updated.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateGetOwnPropertySlotBody): Removed unneeded $interfaceName argument.
(GetAttributeGetterName): Ditto.
(GetAttributeSetterName): Ditto.
(GetFunctionName): Tweaked style.
(AttributeShouldBeOnInstanceForCompatibility): Deleted. Was a function that
always returned 0.
(AttributeShouldBeOnInstance): Removed the call to the function above.
(IsClassNameWordBoundary): Added. Helper for function below.
(IsPrefixRemovable): Ditto.
(GetEnumerationClassName): Added an $interface argument and changed this
so it creates a nested name inside the class rather than a top level name
for use at the WebCore namespace level.
(GetEnumerationClassIdentifier): Added. Calls GetEnumerationClassName and
makes a flattened name without "::" that can be used in an identifier.
(GenerateEnumerationImplementationContent): Renamed from GetXXX. Added an
$interface argument, so it can pass that along to the functions above.
(GenerateHeader): Updated to not pass $interfaceName.
(GeneratePropertiesHashTable): Ditto.
(GenerateOverloadedFunction): Removed unneeded $interfaceName argument.
(GenerateImplementation): Updated for changes above. Tweaked formatting.
(GenerateFunctionCastedThis): Removed unneeded $interfaceName argument.
(GenerateParametersCheck): Ditto. Also streamlined implementation a bit
and made the IsEnumType section call the new functions.
(GenerateCallbackImplementation): Ditto.
(JSValueToNative): Added an $interface argument and pass it along when
dealing with enumerations.
(GeneratePrototypeDeclaration): Removed unneeded $interfaceName argument.
(GenerateConstructorDeclaration): Ditto.
(GenerateConstructorDefinitions): Ditto.
(GenerateConstructorDefinition): Ditto.
(GenerateConstructorHelperMethods): Ditto.

  • bindings/scripts/test/JS/JSTestObj.cpp: Regenerated.
  • bindings/scripts/test/TestObj.idl: Added some new enums that test some

of the logic above.

  • crypto/CryptoKey.cpp:

(WebCore::CryptoKey::CryptoKey): Updated.
(WebCore::CryptoKey::usages): Ditto.

  • crypto/CryptoKey.h: Moved enum class types inside the CryptoKey class.

Added comments about the two similar but distinct types named
CryptoKeyUsage and CryptoKey::Usage.

  • css/FontFace.cpp:

(WebCore::FontFace::status): Updated.

  • css/FontFace.h: Moved enum class into the class.
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::status): Updated.

  • css/FontFaceSet.h: Moved enum class into the class.
  • dom/Document.cpp:

(WebCore::Document::Document): Updated for the name change back from
ReferrerHeaderPolicy to ReferrerPolicy.
(WebCore::Document::processReferrerPolicy): Ditto.
(WebCore::Document::applyContentDispositionAttachmentSandbox): Ditto.

  • dom/Document.h: More of the same.
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadInternal): Updated.
(WebCore::HTMLMediaElement::textTrackModeChanged): Ditto.
(WebCore::HTMLMediaElement::textTrackKindChanged): Ditto.
(WebCore::HTMLMediaElement::textTrackAddCues): Ditto.
(WebCore::HTMLMediaElement::textTrackAddCue): Ditto.
(WebCore::HTMLMediaElement::addTextTrack): Ditto.
(WebCore::HTMLMediaElement::configureTextTrackGroup): Ditto.
(WebCore::HTMLMediaElement::setSelectedTextTrack): Ditto.
(WebCore::HTMLMediaElement::configureTextTracks): Ditto.
(WebCore::HTMLMediaElement::hasClosedCaptions): Ditto.
(WebCore::HTMLMediaElement::configureTextTrackDisplay): Ditto.
(WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Ditto.
(WebCore::toPlatform): Ditto.
(WebCore::HTMLMediaElement::outOfBandTrackSources): Ditto.

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::scheduleLoad): Ditto.

  • html/HTMLVideoElement.h: Moved enum class into class.
  • html/HTMLVideoElement.idl: Added the missing conditional on

VideoPresentationMode, and also moved it to the bottom of the file
to work around what is apparently a bug in the IDL parser.

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::toWindRule): Updated.
(WebCore::CanvasRenderingContext2D::fill): Ditto.
(WebCore::CanvasRenderingContext2D::clip): Ditto.
(WebCore::CanvasRenderingContext2D::fillInternal): Ditto.
(WebCore::CanvasRenderingContext2D::clipInternal): Ditto.
(WebCore::CanvasRenderingContext2D::isPointInPath): Ditto.
(WebCore::CanvasRenderingContext2D::isPointInPathInternal): Ditto.
(WebCore::smoothingToInterpolationQuality): Ditto.

  • html/canvas/CanvasRenderingContext2D.h: Moved enum class types into the class.
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Updated.
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Ditto.

  • html/track/InbandTextTrack.cpp:

(WebCore::InbandTextTrack::setMode): Updated.
(WebCore::toPrivate): Ditto.
(WebCore::InbandTextTrack::setModeInternal): Ditto.
(WebCore::InbandTextTrack::updateKindFromPrivate): Ditto.

  • html/track/InbandTextTrack.h: Ditto.
  • html/track/TextTrack.cpp:

(WebCore::TextTrack::TextTrack): Ditto.
(WebCore::TextTrack::enabled): Ditto.
(WebCore::TextTrack::kindKeyword): Ditto.
(WebCore::TextTrack::setKind): Ditto.
(WebCore::TextTrack::setKindKeywordIgnoringASCIICase): Ditto.
(WebCore::TextTrack::setMode): Ditto.
(WebCore::TextTrack::cues): Ditto.
(WebCore::TextTrack::activeCues): Ditto.
(WebCore::TextTrack::addCue): Ditto.
(WebCore::TextTrack::regions): Ditto.
(WebCore::TextTrack::isRendered): Ditto.
(WebCore::TextTrack::isMainProgramContent): Ditto.
(WebCore::TextTrack::containsOnlyForcedSubtitles): Ditto.

  • html/track/TextTrack.h: Moved enum class types into the class.
  • html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::dispatchEvent): Updated.
(WebCore::TextTrackCue::isActive): Ditto.

  • loader/FrameNetworkingContext.h: Ditto.
  • page/CaptionUserPreferences.cpp:

(WebCore::CaptionUserPreferences::sortedTrackListForMenu): Ditto.
(WebCore::CaptionUserPreferences::textTrackSelectionScore): Ditto.

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::textTrackSelectionScore): Ditto.
(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu): Ditto.

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::generateReferrerHeader): Updated since we
changed ReferrerHeaderPolicy back to ReferrerPolicy.

  • page/SecurityPolicy.h: Ditto.
  • platform/ReferrerPolicy.h: Changed ReferrerHeaderPolicy name back

to ReferrerPolicy now that nesting inside a class eliminated the conflict;
still should merge them and that FIXME remains.

  • platform/cocoa/WebPlaybackSessionModelMediaElement.mm:

(WebPlaybackSessionModelMediaElement::updateForEventName): Updated.
(WebPlaybackSessionModelMediaElement::updateLegibleOptions): Ditto.

  • testing/Internals.cpp:

(WebCore::toResourceRequestCachePolicy): Updated.
(WebCore::Internals::setOverrideCachePolicy): Ditto.
(WebCore::toResourceLoadPriority): Ditto.
(WebCore::Internals::setOverrideResourceLoadPriority): Ditto.
(WebCore::toAutoFillButtonType): Ditto.
(WebCore::Internals::setShowAutoFillButton): Ditto.

  • testing/Internals.h: Moved enum class types into class.
  • testing/Internals.idl: Removed the "Internals" prefixes we added

to resolve ambiguity before. Nesting these in the class now takes care
of the ambiguity instead.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::responseText): Updated.
(WebCore::XMLHttpRequest::didCacheResponseJSON): Ditto.
(WebCore::XMLHttpRequest::responseXML): Ditto.
(WebCore::XMLHttpRequest::responseBlob): Ditto.
(WebCore::XMLHttpRequest::responseArrayBuffer): Ditto.
(WebCore::XMLHttpRequest::setResponseType): Ditto.
(WebCore::XMLHttpRequest::open): Ditto.
(WebCore::shouldDecodeResponse): Ditto.

  • xml/XMLHttpRequest.h: Moved the enum class into the class.

Source/WebKit2:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResource): Updated since we changed
ReferrerHeaderPolicy back to ReferrerPolicy.
(WebKit::WebLoaderStrategy::schedulePluginStreamLoad): Ditto.

8:39 PM Changeset in webkit [200360] by Simon Fraser
  • 7 edits
    4 adds in trunk

Don't run transitions to/from 'auto' values
https://bugs.webkit.org/show_bug.cgi?id=38243
rdar://problem/20904225

Reviewed by Dean Jackson.
Source/WebCore:

The specified behavior of transitions and animations is to not animate when either endpoint is 'auto'.
Previously, we were treating 'auto' as zero and interpolating, which caused unwanted animations
on fandango.com, airbnb.com and others.

Fix by having blend() return the from value if progress is 0, otherwise the to value. The
isZero() check can be removed, since this was effectively picking up auto value for one endpoint.

Tests: transitions/lengthsize-transition-to-from-auto.html

transitions/transition-to-from-auto.html

  • platform/Length.cpp:

(WebCore::blend):

LayoutTests:

  • platform/mac-wk2/transitions/default-timing-function-expected.txt: New baseline.
  • transitions/default-timing-function.html: Set explicit start value.
  • transitions/interrupted-all-transition.html: Set explicit start value.
  • transitions/lengthsize-transition-to-from-auto-expected.txt: Added.
  • transitions/lengthsize-transition-to-from-auto.html: Added.
  • transitions/transition-to-from-auto-expected.txt: Added.
  • transitions/transition-to-from-auto.html: Added.
  • transitions/zero-duration-in-list.html: Set explicit start value.
7:58 PM Changeset in webkit [200359] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

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

Console hangs when evaluating expresisons (Requested by
JoePeck on #webkit).

Reverted changeset:

"Web Inspector: Adding a new console message shouldn't modify
DOM when the console log is hidden"
https://bugs.webkit.org/show_bug.cgi?id=155629
http://trac.webkit.org/changeset/200337

7:52 PM Changeset in webkit [200358] by Chris Dumez
  • 8 edits
    2 adds in trunk

Indexing CSSStyleDeclaration object with out-of-range index should return undefined
https://bugs.webkit.org/show_bug.cgi?id=157283

Reviewed by Darin Adler.

Source/WebCore:

Indexing CSSStyleDeclaration object with out-of-range index should return undefined,
as per:

WebKit was incorrectly returning the empty string in this case. We however, still
return the empty string if calling the indexed property getter via item(), as is
expected.

The new behavior matches Firefox and the Web IDL specification. Chrome returns the
empty string in this case though.

Test: fast/dom/indexed-getters-returning-string.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::CSSComputedStyleDeclaration::item):

  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::item):

LayoutTests:

Rebaseline a couple of existing tests due to the slight behavior change.
Also add a new layout test for more extensive testing.

  • fast/dom/CSSStyleDeclaration/css-computed-style-item-expected.txt:
  • fast/dom/CSSStyleDeclaration/css-style-item-expected.txt:
  • fast/dom/CSSStyleDeclaration/script-tests/css-computed-style-item.js:
  • fast/dom/CSSStyleDeclaration/script-tests/css-style-item.js:
  • fast/dom/indexed-getters-returning-string-expected.txt: Added.
  • fast/dom/indexed-getters-returning-string.html: Added.
7:25 PM Changeset in webkit [200357] by dino@apple.com
  • 18 edits
    2 adds in trunk

Specifying a longhand property should not serialize to a shorthand property
https://bugs.webkit.org/show_bug.cgi?id=157180

Patch by Antoine Quint <Antoine Quint> on 2016-05-02
Reviewed by Dean Jackson.

Source/WebCore:

Ensure that we don't serialize to a shorthand property when the required longhand components
are not specified, per http://www.w3.org/TR/cssom-1/#serialize-a-css-declaration-block.

Test: fast/css/no-shorthand-with-incomplete-longhands.html

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getLayeredShorthandValue):
Returning an empty string here means that calling getPropertyValue() with
the shorthand property matching the currently processed longhand property
in asText() will return an empty string as well and the shorthand property
will be disregarded.

LayoutTests:

A fair few tests relied on reading from a shorthand value when it was incorrect
to produce one, so we fix those incorrect assertions. We also add a new test that
goes through all the longhand properties for a given shorthand property and checks
that none of the longhand properties will yield a shorthand value.

  • cssom/cssvalue-comparison-expected.txt:
  • cssom/cssvalue-comparison.html:
  • fast/css/background-position-serialize-expected.txt:
  • fast/css/background-position-serialize.html:
  • fast/css/no-shorthand-with-incomplete-longhands-expected.txt: Added.
  • fast/css/no-shorthand-with-incomplete-longhands.html: Added.
  • fast/css/remove-shorthand-expected.txt:
  • fast/css/script-tests/image-set-setting.js:

(testComputedStyle):

  • fast/css/uri-token-parsing-expected.txt:
  • fast/css/uri-token-parsing.html:
  • fast/css/webkit-mask-crash-implicit-expected.txt:
  • fast/css/webkit-mask-crash-implicit.html:
  • fast/dom/Element/setAttributeNode-for-existing-attribute.html:
  • fast/dom/background-shorthand-csstext-expected.txt:
  • fast/dom/background-shorthand-csstext.html:
  • http/tests/security/contentSecurityPolicy/inline-style-allowed-while-cloning-objects-expected.txt:
  • http/tests/security/contentSecurityPolicy/inline-style-allowed-while-cloning-objects.html:
7:17 PM Changeset in webkit [200356] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION: Page layout of Manga/Picture books and all Fixed Layout ePubs corrupted
https://bugs.webkit.org/show_bug.cgi?id=157292
<rdar://problem/25750144>

Reviewed by Tim Horton.

The scroll state restoration fixes caused a regression in UIWebViews.
Code in UIKit checks for a non-zero page scale in a history item, and
r199233 changed the initialization from 0 to 1.

  • history/HistoryItem.h: Use 0 instead of 1 as the initial m_scale.
7:00 PM Changeset in webkit [200355] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Web Inspector: Reflect.toString() should be [object Object] not [object Reflect]
https://bugs.webkit.org/show_bug.cgi?id=157288

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-02
Reviewed by Darin Adler.

  • runtime/ReflectObject.cpp:
  • tests/stress/reflect.js: Added.
6:39 PM Changeset in webkit [200354] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] AirPlay fails if target is set before AVPlayer has been created
https://bugs.webkit.org/show_bug.cgi?id=157147
<rdar://problem/24197592>

Reviewed by Dean Jackson.

No new tests, it won't be possible to test this until
https://bugs.webkit.org/show_bug.cgi?id=157290 has been fixed.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):

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

Web Inspector: Unexpected "Script Element #" resources in Debugger Sidebar
https://bugs.webkit.org/show_bug.cgi?id=157280

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-02
Reviewed by Timothy Hatcher.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._addScript):
Don't include Script Element resources in the debugger sidebar by default.

6:01 PM Changeset in webkit [200352] by beidson@apple.com
  • 7 edits in trunk/Source

Const-ify some IDB code.
https://bugs.webkit.org/show_bug.cgi?id=157287

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Refactor only).

  • Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
  • Modules/indexeddb/shared/InProcessIDBServer.cpp:

(WebCore::InProcessIDBServer::deleteDatabase):
(WebCore::InProcessIDBServer::openDatabase):
(WebCore::InProcessIDBServer::abortTransaction):
(WebCore::InProcessIDBServer::commitTransaction):
(WebCore::InProcessIDBServer::didFinishHandlingVersionChangeTransaction):

  • Modules/indexeddb/shared/InProcessIDBServer.h:

Source/WebKit2:

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::deleteDatabase):
(WebKit::WebIDBConnectionToServer::openDatabase):
(WebKit::WebIDBConnectionToServer::abortTransaction):
(WebKit::WebIDBConnectionToServer::commitTransaction):
(WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
5:51 PM Changeset in webkit [200351] by Jon Davis
  • 2 edits in trunk/Source/JavaScriptCore

Add Resource Timing entry to the Feature Status page.
https://bugs.webkit.org/show_bug.cgi?id=157285

Reviewed by Timothy Hatcher.

  • features.json:
5:51 PM Changeset in webkit [200350] by commit-queue@webkit.org
  • 9 edits
    2 moves
    2 adds
    2 deletes in trunk

Make console a namespace object (like Math/JSON), allowing functions to be called unbound
https://bugs.webkit.org/show_bug.cgi?id=157286
<rdar://problem/26052830>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-02
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

This changes console to be a global namespace object, like Math and JSON.
It just holds a bunch of functions, that can be used on their own, unbound.
For example, [1,2,3].forEach(console.log) and var log = console.log; log(1)
used to throw exceptions and now do not.

Previously console was an Object/Prototype pair, so functions were on
ConsolePrototype (console.proto.log) and they needed to be called
Console objects as the this value. Now, console is just a standard
object with a bunch of functions. Since there is no console prototype the
functions can be passed around and called as expected and they will
just do the right thing.

For compatability with other browsers, console was made enumerable
on the global object.

Add new files and remove old files.

  • runtime/CommonIdentifiers.h:

Add "console".

  • runtime/ConsoleObject.cpp: Renamed from Source/JavaScriptCore/runtime/ConsolePrototype.cpp.

(JSC::ConsoleObject::ConsoleObject):
(JSC::ConsoleObject::finishCreation):
(JSC::valueToStringWithUndefinedOrNullCheck):
(JSC::consoleLogWithLevel):
(JSC::consoleProtoFuncDebug):
(JSC::consoleProtoFuncError):
(JSC::consoleProtoFuncLog):
(JSC::consoleProtoFuncInfo):
(JSC::consoleProtoFuncWarn):
(JSC::consoleProtoFuncClear):
(JSC::consoleProtoFuncDir):
(JSC::consoleProtoFuncDirXML):
(JSC::consoleProtoFuncTable):
(JSC::consoleProtoFuncTrace):
(JSC::consoleProtoFuncAssert):
(JSC::consoleProtoFuncCount):
(JSC::consoleProtoFuncProfile):
(JSC::consoleProtoFuncProfileEnd):
(JSC::consoleProtoFuncTakeHeapSnapshot):
(JSC::consoleProtoFuncTime):
(JSC::consoleProtoFuncTimeEnd):
(JSC::consoleProtoFuncTimeStamp):
(JSC::consoleProtoFuncGroup):
(JSC::consoleProtoFuncGroupCollapsed):
(JSC::consoleProtoFuncGroupEnd):
Console functions no longer need to check if the this object is
a Console object. They will always just work now.

  • runtime/MathObject.cpp:
  • runtime/MathObject.h:
  • runtime/ConsoleObject.h: Renamed from Source/JavaScriptCore/runtime/ConsolePrototype.h.

(JSC::ConsoleObject::create):
(JSC::ConsoleObject::createStructure):
ConsoleObject is a basic object like MathObject.

  • runtime/JSConsole.cpp: Removed.
  • runtime/JSConsole.h: Removed.
  • runtime/JSGlobalObject.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
Remove JSConsole / ConsolePrototype in favor of the single ConsoleObject.

LayoutTests:

  • js/console-expected.txt: Added.
  • js/console.html: Added.
5:11 PM Changeset in webkit [200349] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.30.3/Source

Versioning.

5:07 PM Changeset in webkit [200348] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.30.3

New tag.

4:47 PM Changeset in webkit [200347] by Antti Koivisto
  • 4 edits
    2 adds in trunk

REGRESSION(r199964): Animation on pseudo elements doesn't trigger if first frame matches the current style
https://bugs.webkit.org/show_bug.cgi?id=157284

Reviewed by Simon Fraser.

Source/WebCore:

r199964 accidentally changed the logic for computing style change for animations.

Test: fast/css/animation-pseudo-style-change.html

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateBeforeOrAfterPseudoElement):

If there is an animated style determine the style change using it rather than the originally resolved style.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

Here too.

LayoutTests:

  • fast/css/animation-pseudo-style-change-expected.html: Added.
  • fast/css/animation-pseudo-style-change.html: Added.
4:14 PM Changeset in webkit [200346] by beidson@apple.com
  • 23 edits
    1 add in trunk

Add the ability to accumulate logs for specific logging channels to help diagnose test timeouts.
https://bugs.webkit.org/show_bug.cgi?id=157274

Reviewed by Alex Christensen.
Source/WebCore:

  • platform/Logging.cpp:

(WebCore::setLogChannelToAccumulate): Set the given log channel to accumulate logging,

and dirty the initializeLoggingChannelsIfNecessary flag.

(WebCore::initializeLoggingChannelsIfNecessary): Change from being a one-time-only call to a

one-time-for-each-time-somebody-calls-setLogChannelToAccumulate call.

  • platform/Logging.h:
  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::setLogChannelToAccumulate):
(WebCoreTestSupport::initializeLoggingChannelsIfNecessary):

  • testing/js/WebCoreTestSupport.h:

Source/WTF:

This patch changes WTFLog to add the logging string to the logging accumulator if the logging channel says so.
It also adds support for using this new accumulation mechanism.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Assertions.cpp:

(WTF::resetAccumulatedLogs):
(WTF::getAndResetAccumulatedLogs):

  • wtf/Assertions.h:
  • wtf/LoggingAccumulator.h: Added. Expose functions to get accumulated logs and to reset the accumulation.
  • wtf/text/WTFString.cpp:

(WTF::String::format): Update to handle %@ on CF (Well, really ObjC) platforms.

Tools:

Add the new accumulate method to DRT's TestRunner, dump the accumulated logs if there's a timeout,
and reset them in between tests:

  • DumpRenderTree/TestRunner.cpp:

(accummulateLogsForChannel):
(TestRunner::staticFunctions):
(TestRunner::waitToDumpWatchdogTimerFired):
(TestRunner::setAccummulateLogsForChannel):

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebViewToConsistentStateBeforeTesting):

Also add the new method to WKTR's TestRunner, but just stubbed for now:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::accummulateLogsForChannel):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

LayoutTests:

For the tests that are known flakes that are not imported, add the "accumulate IndexedDB logs" command.

  • storage/indexeddb/modern/resources/256-open-databases.js:
  • storage/indexeddb/modern/resources/abort-requests-cancelled.js:
  • storage/indexeddb/modern/resources/autoincrement-abort.js:
  • storage/indexeddb/resources/intversion-open-in-upgradeneeded.js:
  • storage/indexeddb/resources/odd-strings.js:
4:07 PM Changeset in webkit [200345] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Prefer "Console Evaluation" to "Eval Code" if we know it was a console evaluation
https://bugs.webkit.org/show_bug.cgi?id=157278

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-02
Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:

"Console Evaluation" string.

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype._sourceCodeLocationFromPayload): Deleted.
Delete an assert that would throw when the location is noSourceID:-1:-1.

  • UserInterface/Models/CallFrame.js:

(WebInspector.CallFrame.fromDebuggerPayload):
(WebInspector.CallFrame.fromPayload):
(WebInspector.CallFrame):
When this is in a Console Evalution provide better values.

  • UserInterface/Models/GarbageCollection.js:

(WebInspector.GarbageCollection):
Drive-by address a common assertions seen while paused.

3:21 PM Changeset in webkit [200344] by Simon Fraser
  • 4 edits in trunk/Source

Sort the project file.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit2:

  • WebKit2.xcodeproj/project.pbxproj:
3:19 PM Changeset in webkit [200343] by Simon Fraser
  • 10 edits in trunk/Source/WebCore

Make Length, LengthSize and LengthPoint blending not use member functions
https://bugs.webkit.org/show_bug.cgi?id=157281

Reviewed by Zalan Bujtas.

Having blend() be a member function is ambiguous because it's hard to tell which are
the 'from' and 'to' values. Fix Length, LengthSize and LengthPoint accordingly.

No behavior change.

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):

  • platform/Length.cpp:

(WebCore::blendMixedTypes):
(WebCore::blend):
(WebCore::Length::blendMixedTypes): Deleted.

  • platform/Length.h:

(WebCore::Length::blend): Deleted.

  • platform/LengthPoint.h:

(WebCore::blend):
(WebCore::LengthPoint::blend): Deleted.

  • platform/LengthSize.h:

(WebCore::blend):
(WebCore::LengthSize::blend): Deleted.

  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::BlurFilterOperation::blend):

  • platform/graphics/transforms/TranslateTransformOperation.cpp:

(WebCore::TranslateTransformOperation::blend):

  • rendering/style/BasicShapes.cpp:

(WebCore::BasicShapePolygon::blend):
(WebCore::BasicShapeInset::blend):

  • rendering/style/BasicShapes.h:

(WebCore::BasicShapeCenterCoordinate::blend):
(WebCore::BasicShapeRadius::blend):

3:19 PM Changeset in webkit [200342] by Simon Fraser
  • 13 edits in trunk/Source

Fix shouldUpdateScrollLayerPositionSynchronously() for non-main frames. Remove updatesScrollLayerPositionOnMainThread()
https://bugs.webkit.org/show_bug.cgi?id=157277

Reviewed by Dean Jackson, Tim Horton.

Source/WebCore:

shouldUpdateScrollLayerPositionSynchronously() gave an answer for the main frame even if
called for a subframe. This could have caused scroll snapping, and isRubberBandInProgress()
to give wrong answers sometimes. Fix by passing in the FrameView.

I was unable to easily come up with a testcase to detect the incorrect behavior.

Remove updatesScrollLayerPositionOnMainThread() which is unused by all ports.

  • page/FrameView.cpp:

(WebCore::FrameView::isScrollSnapInProgress):
(WebCore::FrameView::shouldUpdateCompositingLayersAfterScrolling):
(WebCore::FrameView::isRubberBandInProgress):
(WebCore::FrameView::updatesScrollLayerPositionOnMainThread): Deleted.

  • page/FrameView.h:
  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::updateSynchronousScrollingReasons):
(WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionSynchronously):

  • page/scrolling/ScrollingCoordinator.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::updateTiledScrollingIndicator):

  • platform/ScrollableArea.h:
  • platform/win/PopupMenuWin.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setupFontSubpixelQuantization):

  • rendering/RenderLayer.h:
  • rendering/RenderListBox.h:

Source/WebKit2:

Remove updatesScrollLayerPositionOnMainThread() which is unused by all ports.

  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.h:
3:19 PM Changeset in webkit [200341] by Simon Fraser
  • 28 edits
    1 copy
    1 add in trunk/Source/WebCore

Add to the Animations log channel output about which properties are being blended
https://bugs.webkit.org/show_bug.cgi?id=157271

Reviewed by Dean Jackson.

Make the Animations log channel dump information as CSS properties are being blended.
Sample output:

blending left from 0px to 400px at 0.57 -> 227.76px
blending transform from translate(0px, 0px, 0px) to translate(400px, 0px, 0px) at 0.74 -> translate(294.97px, 0px, 0px)

This makes it easier to see, for example, transitions to or from "auto" values.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::PropertyWrapperGetter::value):
(WebCore::PropertyWrapperMaybeInvalidColor::value):
(WebCore::CSSPropertyAnimationWrapperMap::wrapperForProperty):
(WebCore::CSSPropertyAnimation::blendProperties):

  • platform/Length.cpp:

(WebCore::operator<<):

  • platform/LengthBox.h:
  • platform/graphics/transforms/IdentityTransformOperation.h:
  • platform/graphics/transforms/Matrix3DTransformOperation.cpp:

(WebCore::Matrix3DTransformOperation::dump):

  • platform/graphics/transforms/Matrix3DTransformOperation.h:
  • platform/graphics/transforms/MatrixTransformOperation.cpp:

(WebCore::MatrixTransformOperation::dump):

  • platform/graphics/transforms/MatrixTransformOperation.h:
  • platform/graphics/transforms/PerspectiveTransformOperation.cpp:

(WebCore::PerspectiveTransformOperation::dump):

  • platform/graphics/transforms/PerspectiveTransformOperation.h:
  • platform/graphics/transforms/RotateTransformOperation.cpp:

(WebCore::RotateTransformOperation::dump):

  • platform/graphics/transforms/RotateTransformOperation.h:
  • platform/graphics/transforms/ScaleTransformOperation.cpp:

(WebCore::ScaleTransformOperation::dump):

  • platform/graphics/transforms/ScaleTransformOperation.h:
  • platform/graphics/transforms/SkewTransformOperation.cpp:

(WebCore::SkewTransformOperation::dump):

  • platform/graphics/transforms/SkewTransformOperation.h:
  • platform/graphics/transforms/TransformOperation.h:
  • platform/graphics/transforms/TransformOperations.cpp:

(WebCore::operator<<):

  • platform/graphics/transforms/TransformOperations.h:
  • platform/graphics/transforms/TranslateTransformOperation.cpp:

(WebCore::TranslateTransformOperation::dump):

  • platform/graphics/transforms/TranslateTransformOperation.h:
  • rendering/style/NinePieceImage.cpp:

(WebCore::operator<<):

  • rendering/style/NinePieceImage.h:
  • svg/SVGLength.cpp:

(WebCore::operator<<):

  • svg/SVGLength.h:
3:18 PM Changeset in webkit [200340] by Chris Dumez
  • 9 edits in trunk/Source/WebCore

Modernize HTMLConstructionSite
https://bugs.webkit.org/show_bug.cgi?id=157279

Reviewed by Alex Christensen.

Modernize HTMLConstructionSite: Use less raw pointers, more auto, more
range loops and more nullptr.

  • dom/ScriptElement.h:
  • html/parser/HTMLConstructionSite.cpp:

(WebCore::setAttributes):
(WebCore::shouldUseLengthLimit):
(WebCore::executeReparentTask):
(WebCore::HTMLConstructionSite::attachLater):
(WebCore::HTMLConstructionSite::executeQueuedTasks):
(WebCore::HTMLConstructionSite::HTMLConstructionSite):
(WebCore::HTMLConstructionSite::takeForm):
(WebCore::HTMLConstructionSite::dispatchDocumentElementAvailableIfNeeded):
(WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
(WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
(WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagInBody):
(WebCore::HTMLConstructionSite::insertHTMLBodyStartTagInBody):
(WebCore::HTMLConstructionSite::setDefaultCompatibilityMode):
(WebCore::HTMLConstructionSite::setCompatibilityMode):
(WebCore::HTMLConstructionSite::finishedParsing):
(WebCore::HTMLConstructionSite::insertDoctype):
(WebCore::HTMLConstructionSite::insertComment):
(WebCore::HTMLConstructionSite::insertCommentOnDocument):
(WebCore::HTMLConstructionSite::insertCommentOnHTMLHtmlElement):
(WebCore::HTMLConstructionSite::insertHTMLHeadElement):
(WebCore::HTMLConstructionSite::insertHTMLBodyElement):
(WebCore::HTMLConstructionSite::insertHTMLFormElement):
(WebCore::HTMLConstructionSite::insertHTMLElement):
(WebCore::HTMLConstructionSite::insertHTMLElementOrFindCustomElementInterface):
(WebCore::HTMLConstructionSite::insertCustomElement):
(WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
(WebCore::HTMLConstructionSite::insertFormattingElement):
(WebCore::HTMLConstructionSite::insertScriptElement):
(WebCore::HTMLConstructionSite::insertForeignElement):
(WebCore::HTMLConstructionSite::insertTextNode):
(WebCore::HTMLConstructionSite::reparent):
(WebCore::HTMLConstructionSite::insertAlreadyParsedChild):
(WebCore::HTMLConstructionSite::takeAllChildren):
(WebCore::HTMLConstructionSite::createElement):
(WebCore::HTMLConstructionSite::createHTMLElementOrFindCustomElementInterface):
(WebCore::HTMLConstructionSite::createHTMLElement):
(WebCore::HTMLConstructionSite::createElementFromSavedToken):
(WebCore::HTMLConstructionSite::indexOfFirstUnopenFormattingElement):
(WebCore::HTMLConstructionSite::reconstructTheActiveFormattingElements):
(WebCore::HTMLConstructionSite::findFosterSite):
(WebCore::HTMLConstructionSite::shouldFosterParent):
(WebCore::HTMLConstructionSite::fosterParent):
(WebCore::HTMLConstructionSite::~HTMLConstructionSite): Deleted.
(WebCore::HTMLConstructionSite::setForm): Deleted.
(WebCore::HTMLConstructionSite::setCompatibilityModeFromDoctype): Deleted.
(WebCore::HTMLConstructionSite::ownerDocumentForCurrentNode): Deleted.
(WebCore::HTMLConstructionSite::generateImpliedEndTagsWithExclusion): Deleted.

  • html/parser/HTMLConstructionSite.h:

(WebCore::HTMLConstructionSite::inQuirksMode):
(WebCore::HTMLConstructionSite::isTelephoneNumberParsingEnabled):
(WebCore::HTMLConstructionSite::RedirectToFosterParentGuard::RedirectToFosterParentGuard):

  • html/parser/HTMLElementStack.cpp:

(WebCore::HTMLNames::isRootNode):
(WebCore::HTMLElementStack::ElementRecord::ElementRecord):
(WebCore::HTMLElementStack::ElementRecord::replaceElement):
(WebCore::HTMLElementStack::ElementRecord::isAbove):
(WebCore::HTMLElementStack::popAll):
(WebCore::HTMLElementStack::popUntil):
(WebCore::HTMLElementStack::popUntilPopped):
(WebCore::HTMLElementStack::pushRootNode):
(WebCore::HTMLElementStack::pushHTMLHtmlElement):
(WebCore::HTMLElementStack::pushRootNodeCommon):
(WebCore::HTMLElementStack::pushHTMLHeadElement):
(WebCore::HTMLElementStack::pushHTMLBodyElement):
(WebCore::HTMLElementStack::push):
(WebCore::HTMLElementStack::insertAbove):
(WebCore::HTMLElementStack::removeHTMLHeadElement):
(WebCore::HTMLElementStack::remove):
(WebCore::HTMLElementStack::contains):
(WebCore::inScopeCommon):
(WebCore::HTMLElementStack::hasNumberedHeaderElementInScope):
(WebCore::HTMLElementStack::inScope):
(WebCore::HTMLElementStack::pushCommon):
(WebCore::HTMLElementStack::popCommon):
(WebCore::HTMLElementStack::removeNonTopCommon):
(WebCore::HTMLElementStack::show):
(WebCore::HTMLElementStack::hasOnlyOneElement): Deleted.
(WebCore::HTMLElementStack::secondElementIsHTMLBodyElement): Deleted.
(WebCore::HTMLElementStack::pop): Deleted.
(WebCore::HTMLElementStack::popUntilTableScopeMarker): Deleted.
(WebCore::HTMLElementStack::oneBelowTop): Deleted.

  • html/parser/HTMLElementStack.h:

(WebCore::HTMLElementStack::ElementRecord::stackItem):
(WebCore::HTMLElementStack::ElementRecord::setNext): Deleted.
(WebCore::HTMLElementStack::popUntilPopped): Deleted.

  • html/parser/HTMLFormattingElementList.cpp:

(WebCore::HTMLFormattingElementList::contains):
(WebCore::HTMLFormattingElementList::swapTo):
(WebCore::HTMLFormattingElementList::append):
(WebCore::HTMLFormattingElementList::remove):
(WebCore::HTMLFormattingElementList::tryToEnsureNoahsArkConditionQuickly):
(WebCore::HTMLFormattingElementList::ensureNoahsArkCondition):

  • html/parser/HTMLFormattingElementList.h:

(WebCore::HTMLFormattingElementList::Entry::Entry):
(WebCore::HTMLFormattingElementList::Entry::replaceElement):
(WebCore::HTMLFormattingElementList::Bookmark::Bookmark):
(WebCore::HTMLFormattingElementList::Bookmark::moveToAfter):
(WebCore::HTMLFormattingElementList::Bookmark::mark):
(WebCore::HTMLFormattingElementList::first):
(WebCore::HTMLFormattingElementList::Entry::isMarker): Deleted.
(WebCore::HTMLFormattingElementList::Entry::stackItem): Deleted.
(WebCore::HTMLFormattingElementList::Entry::operator!=): Deleted.

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::processDoctypeToken):
(WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::insertGenericHTMLElement):
(WebCore::HTMLTreeBuilder::processTemplateStartTag):
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processHtmlStartTagForInBody):
(WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
(WebCore::HTMLTreeBuilder::processComment):
(WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
(WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
(WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
(WebCore::HTMLTreeBuilder::processScriptStartTag):
(WebCore::HTMLTreeBuilder::processTokenInForeignContent):

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

Add fail-fast option to run-javascriptcore-tests
https://bugs.webkit.org/show_bug.cgi?id=157270

Patch by Srinivasan Vijayaraghavan <svijayaraghavan@apple.com> on 2016-05-02
Reviewed by Geoffrey Garen.

  • Scripts/run-javascriptcore-tests: Add fail-fast command line option.

Defaults to yes, which is the current behavior.

2:20 PM Changeset in webkit [200338] by peavo@outlook.com
  • 13 edits in trunk/Source/JavaScriptCore

[Win] Clean up annoying compiler warnings
https://bugs.webkit.org/show_bug.cgi?id=149813

Reviewed by Alex Christensen.

  • bytecode/PropertyCondition.cpp:

(JSC::PropertyCondition::isWatchableWhenValid):

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • inspector/InspectorBackendDispatcher.cpp:

(Inspector::BackendDispatcher::sendPendingErrors):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileOpCall):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseAssignmentExpression):

  • runtime/ClonedArguments.cpp:

(JSC::ClonedArguments::createWithInlineFrame):

  • runtime/Error.cpp:

(JSC::addErrorInfoAndGetBytecodeOffset):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::initializeNumberFormat):

  • runtime/JSObject.cpp:

(JSC::JSObject::heapSnapshot):
(JSC::callToPrimitiveFunction):

  • runtime/RegExpPrototype.cpp:

(JSC::flagsString):

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::StackFrame::functionStartColumn):

2:01 PM Changeset in webkit [200337] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Adding a new console message shouldn't modify DOM when the console log is hidden
https://bugs.webkit.org/show_bug.cgi?id=155629
<rdar://problem/25235470>

Reviewed by Timothy Hatcher.

Instead of rendering console messages right away, store them (in _pendingMessages)
and render only when the console tab or the split console is visible.
Also, batch rendering operations using requestAnimationFrame.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController):
Store console message views in _pendingMessages.

(WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessageView):
(WebInspector.JavaScriptLogViewController.prototype.renderPendingMessages):
Use requestAnimationFrame batching. Run isScrolledToBottom() at most only once
per batch.

(WebInspector.JavaScriptLogViewController.prototype.renderPendingMessagesSoon):
(WebInspector.JavaScriptLogViewController.prototype._didRenderConsoleMessageView):
There is no need to run scrollToBottom again.

  • UserInterface/Views/ConsoleCommandView.js:

(WebInspector.ConsoleCommandView):
Move all DOM operations to a new render method.

(WebInspector.ConsoleCommandView.prototype.render):

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView):
(WebInspector.ConsoleMessageView.prototype.render):
(WebInspector.ConsoleMessageView.prototype.set repeatCount):
(WebInspector.ConsoleMessageView.prototype._renderRepeatCount):

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype.shown):
When the console tab or the split console is opened render all pending messages.

(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
No need to scrollToBottom once again.

(WebInspector.LogContentView.prototype._messageAdded):
(WebInspector.LogContentView.prototype._previousMessageRepeatCountUpdated):
(WebInspector.LogContentView.prototype._scopeFromMessageLevel): Deleted.
(WebInspector.LogContentView.prototype._markScopeBarItemUnread): Added.
Rename _pulseScopeBarItemBorder. In the very first version the border was pulsing,
but now we use small colored circles instead.

1:32 PM Changeset in webkit [200336] by peavo@outlook.com
  • 5 edits in trunk/Source/WebCore

Remove unneeded casts once we upgrade to a version of Visual Studio that is not broken
https://bugs.webkit.org/show_bug.cgi?id=121235

Reviewed by Darin Adler.

  • css/MediaQueryEvaluator.cpp:

(WebCore::createFunctionMap):

  • dom/make_names.pl:

(printWrapperFactoryCppFile):

  • loader/archive/ArchiveFactory.cpp:

(WebCore::archiveMIMETypes):

  • rendering/svg/SVGPathData.cpp:

(WebCore::updatePathFromGraphicsElement):

1:25 PM Changeset in webkit [200335] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Crash if a certificate chain has null certificates
https://bugs.webkit.org/show_bug.cgi?id=157206

Reviewed by Alexey Proskuryakov.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::certificatesMatch):
SecTrustGetCertificateAtIndex can return null.
If this ever happens, something has gone horribly wrong in the security code and we should crash.
See rdar://problem/21723172

12:59 PM Changeset in webkit [200334] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Uncaught Exception: TypeError: null is not an object (evaluating 'sourceCodeLocation.formattedLineNumber')
https://bugs.webkit.org/show_bug.cgi?id=157239
<rdar://problem/26030791>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-02
Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/IssueManager.js:

(WebInspector.IssueManager.issueMatchSourceCode):
Require a sourceCodeLocation for Script errors.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._addIssue):
Be safe against a missing sourceCodeLocation.

  • UserInterface/Views/SourceCodeTextEditor.css:

(.source-code.text-editor > .CodeMirror .issue-widget.inline > .arrow):
(@media (-webkit-min-device-pixel-ratio: 2)):
Adjust the style, on non-Retina the inline message arrow would sometimes
be detached from the warning message.

12:52 PM Changeset in webkit [200333] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Fix build.

  • platform/mac/WebPlaybackControlsManager.h:
12:47 PM Changeset in webkit [200332] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Zooming of docked Web Inspector affects the webpage, but reset to 0 does not
https://bugs.webkit.org/show_bug.cgi?id=157234
rdar://problem/26027177

Always prevent default for the zoom keyboard shortcuts to avoid passing the event back to
Safari to handle and add explicit beeps when max/min is hit.

Reviewed by Brian Burg.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded): Removed setting implicitlyPreventsDefault on zoom keyboard shortcuts.
(WebInspector._increaseZoom): Add explicit beep and remove preventDefault call.
(WebInspector._decreaseZoom): Ditto.

12:33 PM Changeset in webkit [200331] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

DataDetector underline color should be based on the text color
https://bugs.webkit.org/show_bug.cgi?id=157272

Fixes:

<rdar://problem/25663930> DataDetectors links should use the default text color for their parent nodes
<rdar://problem/25663983> DataDetectors links underline color update

Reviewed by Tim Horton.

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange):
When using light links, use the color of the parent element as the text color, and that same color with
20% alpha as the underline color.

12:08 PM Changeset in webkit [200330] by mmaxfield@apple.com
  • 7 edits in trunk/Source/WebKit2

Addressing post-review comments after r200116
https://bugs.webkit.org/show_bug.cgi?id=157228

Reviewed by Anders Carlsson.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

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

(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):

  • UIProcess/WebPageProxy.cpp:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

11:59 AM Changeset in webkit [200329] by clopez@igalia.com
  • 2 edits in trunk/Tools

[CMake] MiniBrowser fails to build because libsoup link flags are not defined.
https://bugs.webkit.org/show_bug.cgi?id=157268

Reviewed by Michael Catanzaro.

  • MiniBrowser/gtk/CMakeLists.txt:
11:37 AM Changeset in webkit [200328] by peavo@outlook.com
  • 6 edits in trunk

[Win] Enable IndexedDB.
https://bugs.webkit.org/show_bug.cgi?id=157192

Reviewed by Brent Fulgham.

.:

  • Source/cmake/OptionsWin.cmake:

Source/WTF:

Fix compile errors when format specifiers like PRIu64 is used, by defining
STDC_FORMAT_MACROS before inttypes.h is included.

  • wtf/Platform.h:

LayoutTests:

  • platform/win/TestExpectations: Update IndexedDB test expectations.
11:19 AM Changeset in webkit [200327] by rniwa@webkit.org
  • 4 edits
    3 adds in trunk

document.currentScript must be null when we're executing a script inside a shadow tree
https://bugs.webkit.org/show_bug.cgi?id=157245

Reviewed by Darin Adler.

Source/WebCore:

Fix the bug by not setting currentScript as spec'ed in HTML5 specification:
https://html.spec.whatwg.org/multipage/dom.html#dom-document-currentscript
https://html.spec.whatwg.org/multipage/scripting.html#execute-the-script-block
as of 3dc763829ca1598427b588cf08830c1e2af5a05c

New behavior matches that of Google Chrome Canary.

Test: fast/shadow-dom/Document-prototype-currentScript.html

  • dom/CurrentScriptIncrementer.h:

(WebCore::CurrentScriptIncrementer::CurrentScriptIncrementer):
(WebCore::CurrentScriptIncrementer::~CurrentScriptIncrementer):

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::executeScript):

LayoutTests:

Add a W3C style testharness.js test.

  • fast/shadow-dom/Document-prototype-currentScript-expected.txt: Added.
  • fast/shadow-dom/Document-prototype-currentScript.html: Added.
  • fast/shadow-dom/resources/Document-prototype-currentScript-helper.js: Added.
11:05 AM Changeset in webkit [200326] by achristensen@apple.com
  • 4 edits
    2 adds in trunk

Do not reuse cache entries with conditional headers
https://bugs.webkit.org/show_bug.cgi?id=157205
rdar://problem/25856933

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/xmlhttprequest/if-modified-since-0.html

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::canReuse):
CachedResourceLoader::determineRevalidationPolicy asserts that the request is not conditional,
which means that it does not have any headers like If-Modified-Since. They are usually different,
because we put the timestamp in the If-Modified-Since header, so it fails the canReuse test because
time has passed since the last If-Modified-Since header was sent. When a user sets the If-Modified-Since
manually to something that is constant, we reuse cache entries when we should not.

  • platform/network/mac/WebCoreResourceHandleAsDelegate.mm:

(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
Set the source so we can use it in Internals.

LayoutTests:

  • http/tests/xmlhttprequest/if-modified-since-0-expected.txt: Added.
  • http/tests/xmlhttprequest/if-modified-since-0.html: Added.
10:38 AM Changeset in webkit [200325] by keith_miller@apple.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

ToThis should be able to be eliminated in Constant Folding
https://bugs.webkit.org/show_bug.cgi?id=157213

Reviewed by Saam Barati.

This patch enables eliminating the ToThis value when we have abstract interpreter
indicates the node is not needed. Since there are Objects that override their
ToThis behavior we first check if we can eliminate the node by looking at its
speculated type. If the function is in strict mode then we can eliminate ToThis as
long as the speculated type is not SpecObjectOther since that contains objects
that may set OverridesToThis. If the function is not in strict mode then we can
eliminate ToThis as long is the speculated type is an object that is not SpecObjectOther.

If we can't eliminate with type information we can still eliminate the ToThis node with
the proven structure set. When ToThis only sees structures that do not set OverridesToThis
it can be eliminated. Additionally, if the function is in strict mode then we can eliminate
ToThis as long as all only the object structures don't set OverridesToThis.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGConstantFoldingPhase.cpp:

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

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupToThis):

  • tests/stress/to-this-global-object.js: Added.

(test):
(test2):
(get for):

9:21 AM Changeset in webkit [200324] by yoav@yoav.ws
  • 2 edits in trunk/Source/WebCore

Speculatively fix the cmake build
https://bugs.webkit.org/show_bug.cgi?id=157262

Reviewed by Darin Adler.

This patch adds WEB_TIMING build flag guards around calls to DOMWindow()->performance(),
in order to make sure builds that have WEB_TIMING disabled (e.g. cmake on Mac) continue
to build.

No new tests as there's no functional change.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::loadDone):

9:15 AM Changeset in webkit [200323] by dbates@webkit.org
  • 5 edits in trunk/Source

CSP: Add workaround for XtraMath
https://bugs.webkit.org/show_bug.cgi?id=157252

Reviewed by Andy Estes.

Source/WebCore:

  • platform/RuntimeApplicationChecks.h:
  • platform/RuntimeApplicationChecks.mm:

(WebCore::IOSApplication::isXtraMath): Added.

Source/WebKit/mac:

  • WebView/WebView.mm:

(shouldAllowContentSecurityPolicySourceStarToMatchAnyProtocol): Allow * to match any protocol for
applicable versions of app XtraMath.

8:57 AM Changeset in webkit [200322] by dbates@webkit.org
  • 13 edits in trunk/Source

DatabaseTracker::closeAllDatabases calls Database::close from the wrong thread
https://bugs.webkit.org/show_bug.cgi?id=147672
<rdar://problem/22357464>

Reviewed by Brady Eidson.

Source/WebCore:

Schedule a DatabaseCloseTask when Database::close() is called from a thread other than the
database thread as the database thread is responsible for interacting with the database.

Currently -[WebDatabaseManager startBackgroundTask] and WebProcess::processWillSuspendImminently()
call DatabaseTracker::closeAllDatabases() indirectly and directly, respectively, from a
thread other than the database thread. In a debug build, this causes an assertion failure
in Database::close(). In a release/production build, this starts a race between the calling
thread and the database thread that can lead to a crash. It is the responsibility of the
database thread to manage the database. We should ensure that calling Database::close()
delegates the responsibility of actually closing the database to the database thread to
avoid interfering with the database thread or the need to synchronize access to data
structures used by the database thread.

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::interrupt): Added. Turns around and calls SQLiteDatabase::interrupt().
(WebCore::Database::close): Added. Schedules a DatabaseCloseTask to close the database and
wait for it to complete if we have not already scheduled closing the database.
(WebCore::Database::performClose): Renamed; formerly named close.
(WebCore::Database::markAsDeletedAndClose): Extracted logic to schedule a DatabaseCloseTask
from here to Database::close() and modified this function to call Database::close().

  • Modules/webdatabase/Database.h:
  • Modules/webdatabase/DatabaseTask.cpp:

(WebCore::DatabaseCloseTask::doPerformTask): Call Database::performClose() instead of Database::close()
as the latter has been repurposed to schedule closing the database.

  • Modules/webdatabase/DatabaseThread.cpp:

(WebCore::DatabaseThread::databaseThread): Ditto.

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::closeAllDatabases): Added argument currentQueryBehavior (defaults
to CurrentQueryBehavior::RunToCompletion - close every database after completion of the
current database query, if any).

  • Modules/webdatabase/DatabaseTracker.h:
  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::interrupt): Added. This is safe to call regardless of the state
of the database and thread safe by <https://www.sqlite.org/c3ref/interrupt.html>.

  • platform/sql/SQLiteDatabase.h:

Source/WebKit/mac:

Update the background assertion expiration callback to call DatabaseTracker::closeAllDatabases()
with CurrentQueryBehavior::Interrupt so that we abort a long running query and close the database
immediately to avoid holding a locked file when the process is suspended.

  • Storage/WebDatabaseManager.mm:

(+[WebDatabaseManager startBackgroundTask]):

Source/WebKit2:

Call DatabaseTracker::closeAllDatabases() with CurrentQueryBehavior::Interrupt so that we abort
a long running query and close the database immediately to avoid holding a locked file when the
process is suspended.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::processWillSuspendImminently):

5:01 AM Changeset in webkit [200321] by gskachkov@gmail.com
  • 7 edits
    3 adds in trunk

Class contructor and methods shouldn't have "arguments" and "caller"
https://bugs.webkit.org/show_bug.cgi?id=144238

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

Added TypeError that is raised in case of access to properties 'arguments' or 'caller'
of constructor or method of class.

  • runtime/JSFunction.cpp:

(JSC::getThrowTypeErrorGetterSetter):
(JSC::JSFunction::getOwnPropertySlot):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::createThrowTypeErrorArgumentsAndCaller):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::throwTypeErrorArgumentsAndCallerGetterSetter):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncThrowTypeErrorArgumentsAndCaller):

  • runtime/JSGlobalObjectFunctions.h:

LayoutTests:

  • js/class-method-and-constructor-properties-expected.txt: Added.
  • js/class-method-and-constructor-properties.html: Added.
  • js/script-tests/class-method-and-constructor-properties.js: Added.
1:21 AM Changeset in webkit [200320] by yoav@yoav.ws
  • 32 edits
    1 copy
    4 adds in trunk

Move ResourceTiming behind a runtime flag
https://bugs.webkit.org/show_bug.cgi?id=157133

Reviewed by Alex Christensen.

.:

  • Source/cmake/WebKitFeatures.cmake: Remove the PERFORMANCE_TIMELINE build flag.

Source/JavaScriptCore:

  • runtime/CommonIdentifiers.h: Added PerformanceEntry, PerformanceEntryList and PerformanceResourceTiming as property names.

Source/WebCore:

Move the ResourceTiming API from being behind a build time flag to be behind an
off-by-default runtime flag, that can be turned on using internals.

Tests: fast/dom/Window/window-properties-performance-resource-timing.html

http/tests/performance/performance-resource-timing-entries.html

  • DerivedSources.make: Added idl files for PerformanceEntry, PerformanceEntryList and PerformanceResourceTiming.
  • WebCore.xcodeproj/project.pbxproj: Added the various Performance* files to the project.
  • bindings/generic/RuntimeEnabledFeatures.cpp: Added ResourceTiming as a runtime flag.

(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):

  • bindings/generic/RuntimeEnabledFeatures.h: Added ResourceTiming as a runtime flag.

(WebCore::RuntimeEnabledFeatures::setResourceTimingEnabled):
(WebCore::RuntimeEnabledFeatures::resourceTimingEnabled):

  • bindings/js/JSPerformanceEntryCustom.cpp: Removed #if for ResourceTiming, and replaced PERFORMANCE_TIMELINE for WEB_TIMING.

Added build flag around UserTiming related h files.
(WebCore::toJS): Deleted.

  • dom/EventNames.h: Renamed webkitresourcetimingbufferfull to resourcetimingbufferfull.
  • loader/DocumentThreadableLoader.cpp: Replace #if for ResourceTiming with runtime flag.

(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/ResourceLoadNotifier.cpp: Replace #if for ResourceTiming with runtime flag.

(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):

  • loader/cache/CachedResourceLoader.cpp: Replace #if for ResourceTiming with runtime flag.

(WebCore::CachedResourceLoader::revalidateResource):
(WebCore::CachedResourceLoader::loadResource):
(WebCore::CachedResourceLoader::storeResourceTimingInitiatorInformation):
(WebCore::CachedResourceLoader::loadDone):

  • loader/cache/CachedResourceLoader.h: Remove #if for ResourceTiming.
  • page/Performance.cpp: Remove #if for ResourceTiming.

(WebCore::Performance::Performance): Removed #if for ResourceTiming related initialization.
(WebCore::Performance::webkitGetEntries): Renamed to getEntries.
(WebCore::Performance::webkitGetEntriesByType): Renamed to getEntriesByType.
(WebCore::Performance::webkitGetEntriesByName): Renamed to getEntriesByName.

  • page/Performance.h: Remove #if for ResourceTiming.
  • page/Performance.idl: Replace #if for ResourceTiming with runtime flag.
  • page/PerformanceEntry.cpp: Remove the PERFORMANCE_TIMELINE build flag.
  • page/PerformanceEntry.h: Remove the PERFORMANCE_TIMELINE build flag.
  • page/PerformanceEntry.idl: Replace the PERFORMANCE_TIMELINE build flag with runtime flag.
  • page/PerformanceEntryList.cpp: Remove the PERFORMANCE_TIMELINE build flag.
  • page/PerformanceEntryList.h: Remove the PERFORMANCE_TIMELINE build flag.
  • page/PerformanceEntryList.idl: Replace the PERFORMANCE_TIMELINE build flag with runtime flag.
  • page/PerformanceResourceTiming.cpp: Remove the RESOURCE_TIMING build flag.
  • page/PerformanceResourceTiming.h: Remove the RESOURCE_TIMING build flag.
  • page/PerformanceResourceTiming.idl: Replace the RESOURCE_TIMING build flag with runtime flag.
  • testing/Internals.cpp: Add a method that enables ResourceTiming.

(WebCore::Internals::setResourceTimingSupport):

  • testing/Internals.h: Add a method that enables ResourceTiming.
  • testing/Internals.idl: Add a method that enables ResourceTiming.

LayoutTests:

Added tests that make sure ResourceTiming APIs are exposed and that resources
show up as entries in the performance timeline.

  • fast/dom/Window/window-properties-performance-resource-timing-expected.txt: Added.
  • fast/dom/Window/window-properties-performance-resource-timing.html: Added.
  • fast/dom/Window/window-properties-performance.html: Removed ";".
  • http/tests/performance/performance-resource-timing-entries-expected.txt: Added.
  • http/tests/performance/performance-resource-timing-entries.html: Added.
1:09 AM Changeset in webkit [200319] by Yusuke Suzuki
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Assertion failure for bound function with custom prototype and Reflect.construct
https://bugs.webkit.org/show_bug.cgi?id=157081

Reviewed by Saam Barati.

We ensured newTarget != exec->callee(). However, it does not mean newTarget.get("prototype") != exec->callee()->get("prototype").
When the given prototype is the same to baseStructure->sotredPrototype(), it is unnecessary to create a new structure from this
baseStructure.

  • bytecode/InternalFunctionAllocationProfile.h:

(JSC::InternalFunctionAllocationProfile::createAllocationStructureFromBase):

  • tests/stress/custom-prototype-may-be-same-to-original-one.js: Added.

(shouldBe):
(boundFunction):

May 1, 2016:

11:14 PM Changeset in webkit [200318] by n_wang@apple.com
  • 5 edits in trunk

AX: Crash at WebCore::AccessibilityObject::getAttribute const + 9
https://bugs.webkit.org/show_bug.cgi?id=157256

Reviewed by Chris Fleizach.

Source/WebCore:

When the <label> for the input element has no renderer, it will cause
crash when we ask for the title element text. Fixed it by getting the
aria-label attribute directly from the <label> element instead of its
accessibility object.

Test case covered in accessibility/mac/aria-label-on-label-element.html.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::titleElementText):

LayoutTests:

  • accessibility/mac/aria-label-on-label-element-expected.txt:
  • accessibility/mac/aria-label-on-label-element.html:
11:05 PM Changeset in webkit [200317] by Darin Adler
  • 26 edits in trunk/Source/WebCore

Stop using string-based enumerations in TextTrack, and eliminate support for string-based enumerations
https://bugs.webkit.org/show_bug.cgi?id=157253

Reviewed by Chris Dumez.

This was the most difficult case to convert from the old style of enumeration to enum class.
Afterward there is a bit of messy duplication, but it still seems like an improvement overall.

After this patch, I plan to change the rule for the name of the enumeration; instead of
living at the top level of the WebCore namespace, we will look for them inside the class for the
first interface defined in the same file along with the enumeration, and remove the name prefix,
if the interfaces's name is a prefix of the enumerations's name.

Once that's done, next step is to do something in the bindings for dictionaries. And adopt both the
enumeration and dictionary mechanisms more widely, and remove the old use of "dictionary" as a type name.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::removeSourceBuffer): Use enum values instead of keywords.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::textTrackModeChanged): Ditto.

  • bindings/js/JSTextTrackCustom.cpp:

(WebCore::JSTextTrack::setKind): Deleted.

  • bindings/scripts/CodeGenerator.pm:

(IsStringBasedEnumType): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GetEnumerationImplementationContent): Removed IsStringBasedEnumType check.
(GenerateParametersCheck): Ditto.
(GenerateImplementation): Ditto.
(GetNativeType): Ditto.
(JSValueToNative): Ditto.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadInternal): Use enum values instead of keywords.
(WebCore::HTMLMediaElement::textTrackModeChanged): Ditto.
(WebCore::HTMLMediaElement::textTrackKindChanged): Ditto.
(WebCore::HTMLMediaElement::textTrackAddCues): Ditto.
(WebCore::HTMLMediaElement::textTrackAddCue): Ditto.
(WebCore::HTMLMediaElement::addTextTrack): Ditto.
(WebCore::HTMLMediaElement::configureTextTrackGroup): Ditto.
(WebCore::HTMLMediaElement::setSelectedTextTrack): Ditto.
(WebCore::HTMLMediaElement::configureTextTracks): Ditto.
(WebCore::HTMLMediaElement::hasClosedCaptions): Ditto.
(WebCore::HTMLMediaElement::configureTextTrackDisplay): Ditto.
(WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Ditto.
(WebCore::toPlatform): Added helpers for the outOfBandTrackSources function.
(WebCore::HTMLMediaElement::outOfBandTrackSources): Removed unneeded fastHasAttribute
check since getNonEmptyURLAttribute already returns an empty URL when the attribute is
not present. Changed to use enum values instead of keywords.

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::parseAttribute): Use new setKindKeywordIgnoringASCIICase
function rather than calling setKind and convertToASCIILowercase. Also use ensureTrack
instead of track since the latter is a cover that calls it and dumbs down the return type.
(WebCore::HTMLTrackElement::kind): Changed return type to const AtomicString& since
that's what we will have for kind keywords and because it matches what we normally have
for attribute getting fuctions. Also use ensureTrack.
(WebCore::HTMLTrackElement::setKind): Changed argument to AtomicString so we don't waste
time making a string and then destroying it before turning it into an AtomicString so it
can be an attribute value.
(WebCore::HTMLTrackElement::srclang): Changed return type to const AtomicString& as is
customary and efficient for attribute value convenience functions. Also use fastGetAttribute.
(WebCore::HTMLTrackElement::setSrclang): Deleted.
(WebCore::HTMLTrackElement::label): Ditto.
(WebCore::HTMLTrackElement::setLabel): Deleted.
(WebCore::HTMLTrackElement::setIsDefault): Deleted.
(WebCore::HTMLTrackElement::scheduleLoad): Use enum values instead of keywords.

  • html/HTMLTrackElement.h: Use pragma once. Update for changes mentioned above.

Also mark things final instead of override as per our recent style discussion.

  • html/HTMLTrackElement.idl: Use [Reflect] for srclang and label.
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Use enum value
instead of keyword.
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Ditto.

  • html/track/AudioTrack.cpp:

(WebCore::AudioTrack::AudioTrack): Use new base class MediaTrackBase.

  • html/track/AudioTrack.h: Use pragma once. Make base class be MediaTrackBase instead

of TrackBase.

  • html/track/InbandTextTrack.cpp:

(WebCore::InbandTextTrack::setMode): Change argument type to enum instead of string.
(WebCore::toPrivate): Added. Helper for setModeInternal.
(WebCore::InbandTextTrack::setModeInternal): Change argument type to enum instead of string.
(WebCore::InbandTextTrack::updateKindFromPrivate): Use enum instead of string to call setKind.

  • html/track/InbandTextTrack.h: Use pragma once. Use TextTrackMode for argument types.
  • html/track/TextTrack.cpp:

(WebCore::captionsKeyword): Converted this to a non-member function since it is now
private to this file.
(WebCore::descriptionsKeyword): Ditto.
(WebCore::chaptersKeyword): Ditto.
(WebCore::metadataKeyword): Ditto.
(WebCore::forcedKeyword): Ditto.
(WebCore::TextTrack::disabledKeyword): Deleted.
(WebCore::TextTrack::hiddenKeyword): Deleted.
(WebCore::TextTrack::showingKeyword): Deleted.
(WebCore::TextTrack::TextTrack): Moved some initialization to be done in the header where
the data members are defined. Put the code that is the equivalent to setKindInternal here,
because it turns out it's not needed anywhere else. Over time we might change the types
involved and there's no need to have that be across multiple functions.
(WebCore::TextTrack::~TextTrack): Removed unneeded call to clearClient, right when the
object is about to be destroyed. Perhaps there was an illusion that the old call might
be a virtual function call that invokes the clearClient from a derived class, but that
doesn't work in a destructor, so this code was only clearing out the data member and
that does not need to be done.
(WebCore::TextTrack::isValidKind): Deleted.
(WebCore::TextTrack::enabled): Use enum value instead of keyword.
(WebCore::TextTrack::kindKeyword): Added. Function for callers who need a string, not the
enum value.
(WebCore::TextTrack::setKind): Take enum value instead of keyword. Also changed since
we store the kind in a data member in this class, not inherited.
(WebCore::TextTrack::setKindKeywordIgnoringASCIICase): Added. For HTMLTrackElement to use
when setting the kind attribute.
(WebCore::TextTrack::setMode): Take enum value instread of keyword. Also removed assertion
since the enum already makes it intrinsically clear what values are valid, unlike a string.
(WebCore::TextTrack::cues): Use enum value instead of keyword.
(WebCore::TextTrack::activeCues): Ditto.
(WebCore::TextTrack::addCue): Ditto.
(WebCore::TextTrack::ensureVTTRegionList): Changed return type to reference.
(WebCore::TextTrack::regions): Use enum value instead of keyword.
(WebCore::TextTrack::addRegion): Use reference.
(WebCore::TextTrack::cueDidChange): Ditto.
(WebCore::TextTrack::isRendered): Use enum values instead of keywords. Also write to be
a boolean expression instead of a couple different if statements.
(WebCore::TextTrack::ensureTextTrackCueList): Changed return type to reference.
(WebCore::TextTrack::isMainProgramContent): Use enum value instead of keyword.
(WebCore::TextTrack::containsOnlyForcedSubtitles): Ditto.

  • html/track/TextTrack.h: Use pragma once. Removed unneeded include. Added enums for

TextTrackKind and TextTrackMode. Updated for changes to functions listed above.
Added m_mode and m_kind and initialized those data members and some others.

  • html/track/TextTrack.idl: Tweaked formatting. Used ImplementedAs for the kind

attribute rather than using a CustomSetter. This preserves the strange behavior
where setting kind does nothing when !ENABLE(MEDIA_SOURCE). If we discover we don't
need that, then we won't need ImplementedAs any more either.

  • html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::dispatchEvent): Use enum instad of keyword.
(WebCore::TextTrackCue::isActive): Ditto.

  • html/track/TrackBase.cpp:

(WebCore::TrackBase::TrackBase): Removed unneeded initialization that is handled in
the data member definition in the header now.
(WebCore::MediaTrackBase::MediaTrackBase): Added. Calls through to TrackBase.
(WebCore::MediaTrackBase::setKind): Moved to MediaTrackBase from TrackBase, because
this isn't needed for text tracks.
(WebCore::MediaTrackBase::setKindInternal): Ditto.

  • html/track/TrackBase.h: Use pragma once. Move kind, setKind, isValidKind, defaultKindKeyword,

setKindInternal, and m_kind all to a derived class, MediaTrackBase, since TextTrack doesn't need
any of those any more. Later we might adopt enumerations more and it's possible the need for
MediaTrackBase will go away.

  • html/track/VideoTrack.cpp:

(WebCore::VideoTrack::VideoTrack): Updated to use MediaTrackBase.
(WebCore::VideoTrack::setLanguage): Ditto.

  • html/track/VideoTrack.h: Use pragma once. Removed unneeded header include.

Derive from MediaTrackBase instead of TrackBase.

  • page/CaptionUserPreferences.cpp:

(WebCore::CaptionUserPreferences::sortedTrackListForMenu): Use enum values instead
of keywords.
(WebCore::CaptionUserPreferences::textTrackSelectionScore): Ditto.

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::textTrackSelectionScore): Ditto.
(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu): Ditto. Also used
kindKeyword since we want a string for logging.

  • platform/cocoa/WebPlaybackSessionModelMediaElement.mm:

(WebPlaybackSessionModelMediaElement::updateLegibleOptions): Ditto.

9:21 PM Changeset in webkit [200316] by Chris Dumez
  • 30 edits in trunk/Source/WebCore

Pass reference instead of pointer to IDL attribute setters if not nullable
https://bugs.webkit.org/show_bug.cgi?id=157250

Reviewed by Darin Adler.

Update the bindings generator so that we pass wrapper types by reference
to attribute setters instead of by raw pointer when the attribute is not
marked as nullable in the IDL.

There is no intended Web-exposed behavior change.

  • Modules/speech/SpeechSynthesisUtterance.idl:
  • Modules/webaudio/ConvolverNode.idl:
  • bindings/js/JSDataCueCustom.cpp:

(WebCore::constructJSDataCue):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/CodeGeneratorObjC.pm:

(GenerateImplementation):

  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/ObjC/DOMTestInterface.mm:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:

Rebaseline bindings tests.

  • dom/Document.cpp:

(WebCore::Document::moveNodeIteratorsToNewDocument):

  • dom/NodeIterator.cpp:

(WebCore::NodeIterator::NodePointer::NodePointer):
(WebCore::NodeIterator::NodePointer::moveToNext):
(WebCore::NodeIterator::NodePointer::moveToPrevious):
(WebCore::NodeIterator::NodeIterator):
(WebCore::NodeIterator::~NodeIterator):
(WebCore::NodeIterator::updateForNodeRemoval):
(WebCore::NodeIterator::NodePointer::clear): Deleted.
(WebCore::NodeIterator::nextNode): Deleted.

  • dom/NodeIterator.h:
  • dom/Traversal.cpp:

(WebCore::NodeIteratorBase::NodeIteratorBase):

  • dom/Traversal.h:

(WebCore::NodeIteratorBase::root):

  • dom/TreeWalker.cpp:

(WebCore::TreeWalker::setCurrentNode):
(WebCore::TreeWalker::setCurrent):
(WebCore::TreeWalker::parentNode):
(WebCore::TreeWalker::firstChild):
(WebCore::TreeWalker::lastChild):
(WebCore::TreeWalker::traverseSiblings):
(WebCore::TreeWalker::previousNode):
(WebCore::TreeWalker::nextNode):

  • dom/TreeWalker.h:

(WebCore::TreeWalker::currentNode):

  • dom/TreeWalker.idl:
  • html/HTMLAttachmentElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLTableElement.idl:
  • html/track/DataCue.cpp:

(WebCore::DataCue::DataCue):
(WebCore::DataCue::setData):
(WebCore::toDataCue): Deleted.

  • html/track/DataCue.h:
  • html/track/DataCue.idl:
5:32 PM Changeset in webkit [200315] by commit-queue@webkit.org
  • 12 edits
    2 deletes in trunk

Unreviewed, rolling out r200264 and r200266.
https://bugs.webkit.org/show_bug.cgi?id=157251

This change caused existing LayoutTest media/media-source
/media-source-stalled-holds-sleep-assertion.html to time out
on Mac on every run. (Requested by ryanhaddad on #webkit).

Reverted changesets:

"[Mac] AirPlay fails if target is set before AVPlayer has been
created"
https://bugs.webkit.org/show_bug.cgi?id=157147
http://trac.webkit.org/changeset/200264

"[Mac] AirPlay fails if target is set before AVPlayer has been
created"
https://bugs.webkit.org/show_bug.cgi?id=157147
http://trac.webkit.org/changeset/200266

5:21 PM Changeset in webkit [200314] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Drop CanUseWTFOptionalForParameter() from bindings generator
https://bugs.webkit.org/show_bug.cgi?id=157247

Reviewed by Darin Adler.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
(CanUseWTFOptionalForParameter): Deleted.

5:17 PM Changeset in webkit [200313] by Darin Adler
  • 13 edits in trunk/Source

Update Fetch to use enum class instead of string for enumerations
https://bugs.webkit.org/show_bug.cgi?id=157241

Reviewed by Chris Dumez.

Source/WebCore:

  • Modules/fetch/FetchOptions.h: Changed this class into a struct,

getting rid of all the getter and setter functions. Moved all the
enumeration types out of this class to the WebCore namespace level
and gave them all the names and values that match the ones from the
IDL file.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::setReferrerPolicy): Updated for the changes to FetchOptions.
The string matching here will likely go away when we change dictionary
so it sets up a structure, which will parse the enumeration values, but
that won't be for a while, so this stays for now.
(WebCore::setMode): Ditto.
(WebCore::setCredentials): Ditto.
(WebCore::setCache): Ditto.
(WebCore::setRedirect): Ditto.
(WebCore::buildOptions): Updated for changes to FetchOptions.
(WebCore::buildHeaders): Ditto.
(WebCore::FetchRequest::create): Ditto.
(WebCore::FetchRequest::type): Moved this to the header and changed its
return type to the enum; it's not just a single return statement.
(WebCore::FetchRequest::destination): Ditto.
(WebCore::FetchRequest::referrerPolicy): Ditto.
(WebCore::FetchRequest::mode): Ditto.
(WebCore::FetchRequest::credentials): Ditto.
(WebCore::FetchRequest::cache): Ditto.
(WebCore::FetchRequest::redirect): Ditto.

  • Modules/fetch/FetchRequest.h: Changed all the getters that return

enumerations to return the enum class values instead of strings.
Put all the inline versions here in the header.

  • bindings/scripts/CodeGenerator.pm: Removed the seven enum types that

are in FetchRequest.idl from the list of "string-based" enums.

  • dom/Document.cpp:

(WebCore::Document::Document): Updated for the change where I
renamed ReferrerPolicy to ReferrerHeaderPolicy, at least for now.
(WebCore::Document::processReferrerPolicy): Ditto.
(WebCore::Document::applyContentDispositionAttachmentSandbox): Ditto.

  • dom/Document.h: Ditto.
  • loader/FrameNetworkingContext.h: Ditto.
  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::generateReferrerHeader): Ditto.

  • page/SecurityPolicy.h: Ditto.
  • platform/ReferrerPolicy.h: Renamed this enum from ReferrerPolicy to

ReferrerHeaderPolicy, since the one specified in the Fetch API has the
name ReferrerPolicy. I think the best way to resolve this longer term is
to merge them since they really do represent the same concept, although
the one from the Fetch API has a few more features.

Source/WebKit2:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResource): Updated for the change where I
renamed ReferrerPolicy to ReferrerHeaderPolicy, at least for now.
(WebKit::WebLoaderStrategy::schedulePluginStreamLoad): Ditto.

2:30 PM Changeset in webkit [200312] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix Windows build after r200288.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):

2:08 PM Changeset in webkit [200311] by Konstantin Tokarev
  • 2 edits in trunk/Source/WebKit2

Fixed build with !ENABLED(DATABASE_PROCESS).

Unreviewed build fix.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::grantSandboxExtensionsToDatabaseProcessForBlobs):

1:58 PM Changeset in webkit [200310] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix Windows build after r200288.

  • bindings/scripts/CodeGeneratorJS.pm:

(GetEnumerationImplementationContent):

1:00 PM Changeset in webkit [200309] by youenn.fablet@crf.canon.fr
  • 165 edits
    82 adds in trunk/LayoutTests

Sync web-platform-tests up to revision 4af8373
https://bugs.webkit.org/show_bug.cgi?id=157170

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Rebasing expectations.

  • resources/ImportExpectations: Skipping new test suites.

Skipping IndexedDB until we decide whether to continue having these tests here.

  • resources/TestRepositories: Updating revision to 4af8373.
  • resources/web-platform-tests-modules.json:
  • web-platform-tests/IndexedDB/idbindex-multientry-big-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_get7-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_getKey7-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_openCursor2-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_openKeyCursor3-expected.txt:
  • web-platform-tests/README.md:
  • web-platform-tests/XMLHttpRequest/OWNERS:
  • web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials-expected.txt:
  • web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.js:

(test_withCredentials.): Deleted.

  • web-platform-tests/XMLHttpRequest/abort-during-open.htm:
  • web-platform-tests/XMLHttpRequest/abort-during-open.js: Added.

(test.async_test.test.step.client.onreadystatechange):
(test.async_test.test.step):

  • web-platform-tests/XMLHttpRequest/abort-during-open.worker.js: Added.
  • web-platform-tests/XMLHttpRequest/data-uri-expected.txt:
  • web-platform-tests/XMLHttpRequest/data-uri.htm:
  • web-platform-tests/XMLHttpRequest/formdata-set-expected.txt:
  • web-platform-tests/XMLHttpRequest/formdata-set.htm:
  • web-platform-tests/XMLHttpRequest/interfaces-expected.txt:
  • web-platform-tests/XMLHttpRequest/resources/auth7/corsenabled.py: Added.

(main):

  • web-platform-tests/XMLHttpRequest/resources/auth7/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/dom/lists/w3c-import.log.
  • web-platform-tests/XMLHttpRequest/resources/auth8/corsenabled-no-authorize.py: Added.

(main):

  • web-platform-tests/XMLHttpRequest/resources/auth8/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/dom/lists/w3c-import.log.
  • web-platform-tests/XMLHttpRequest/resources/auth9/auth.py: Added.

(main):

  • web-platform-tests/XMLHttpRequest/resources/auth9/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/dom/lists/w3c-import.log.
  • web-platform-tests/XMLHttpRequest/responseurl-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/responseurl.html: Added.
  • web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader-and-arguments-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader-and-arguments.htm: Added.
  • web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred.htm: Added.
  • web-platform-tests/XMLHttpRequest/send-entity-body-document-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-send.htm:
  • web-platform-tests/XMLHttpRequest/send-send.js: Added.

(test):

  • web-platform-tests/XMLHttpRequest/send-send.worker.js: Added.
  • web-platform-tests/XMLHttpRequest/setrequestheader-bogus-name-expected.txt:
  • web-platform-tests/XMLHttpRequest/setrequestheader-bogus-name.htm:
  • web-platform-tests/XMLHttpRequest/setrequestheader-bogus-value-expected.txt:
  • web-platform-tests/XMLHttpRequest/setrequestheader-bogus-value.htm:
  • web-platform-tests/XMLHttpRequest/w3c-import.log:
  • web-platform-tests/common/OWNERS:
  • web-platform-tests/dom/collections/HTMLCollection-as-proto-length-get-throws-expected.txt: Added.
  • web-platform-tests/dom/collections/HTMLCollection-as-proto-length-get-throws.html: Added.
  • web-platform-tests/dom/collections/HTMLCollection-supported-property-indices-expected.txt: Added.
  • web-platform-tests/dom/collections/HTMLCollection-supported-property-indices.html: Added.
  • web-platform-tests/dom/collections/w3c-import.log:
  • web-platform-tests/dom/events/Event-constructors-expected.txt:
  • web-platform-tests/dom/events/Event-constructors.html:
  • web-platform-tests/dom/events/Event-defaultPrevented-after-dispatch-expected.txt: Added.
  • web-platform-tests/dom/events/Event-defaultPrevented-after-dispatch.html: Added.
  • web-platform-tests/dom/events/Event-dispatch-bubbles-false-expected.txt:
  • web-platform-tests/dom/events/Event-dispatch-bubbles-false.html:
  • web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:
  • web-platform-tests/dom/events/ProgressEvent-expected.txt:
  • web-platform-tests/dom/events/ProgressEvent.html:
  • web-platform-tests/dom/events/w3c-import.log:
  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/dom/interfaces.html:
  • web-platform-tests/dom/lists/DOMTokenList-value-expected.txt: Added.
  • web-platform-tests/dom/lists/DOMTokenList-value.html: Added.
  • web-platform-tests/dom/lists/w3c-import.log:
  • web-platform-tests/dom/nodes/CharacterData-appendChild-expected.txt: Added.
  • web-platform-tests/dom/nodes/CharacterData-appendChild.html: Added.
  • web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:
  • web-platform-tests/dom/nodes/DOMImplementation-createDocument.html:
  • web-platform-tests/dom/nodes/Document-Element-getElementsByTagName.js:

(test_getElementsByTagName):

  • web-platform-tests/dom/nodes/Document-characterSet-normalization-expected.txt:
  • web-platform-tests/dom/nodes/Document-characterSet-normalization.html:
  • web-platform-tests/dom/nodes/Document-createElement-namespace-expected.txt:
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.html: Added.
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.svg: Added.
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.xhtml: Added.
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.xml: Added.
  • web-platform-tests/dom/nodes/Document-createElement-namespace.html:
  • web-platform-tests/dom/nodes/Document-createEvent-expected.txt:
  • web-platform-tests/dom/nodes/Document-createEvent.html:
  • web-platform-tests/dom/nodes/Document-createEvent.js:
  • web-platform-tests/dom/nodes/Document-getElementsByTagName-expected.txt:
  • web-platform-tests/dom/nodes/Document-getElementsByTagName-xhtml-expected.txt:
  • web-platform-tests/dom/nodes/Document-getElementsByTagName-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-getElementsByTagName-expected.txt:
  • web-platform-tests/dom/nodes/Element-hasAttributes-expected.txt: Added.
  • web-platform-tests/dom/nodes/Element-hasAttributes.html: Added.
  • web-platform-tests/dom/nodes/Element-insertAdjacentElement-expected.txt: Added.
  • web-platform-tests/dom/nodes/Element-insertAdjacentElement.html: Added.
  • web-platform-tests/dom/nodes/Element-insertAdjacentText-expected.txt: Added.
  • web-platform-tests/dom/nodes/Element-insertAdjacentText.html: Added.
  • web-platform-tests/dom/nodes/Node-contains-xml-expected.txt: Added.
  • web-platform-tests/dom/nodes/Node-contains-xml.xml: Added.
  • web-platform-tests/dom/nodes/Node-isSameNode-expected.txt: Added.
  • web-platform-tests/dom/nodes/Node-isSameNode.html: Added.
  • web-platform-tests/dom/nodes/Node-parentElement.html:
  • web-platform-tests/dom/nodes/Node-replaceChild-expected.txt:
  • web-platform-tests/dom/nodes/Node-replaceChild.html:
  • web-platform-tests/dom/nodes/attributes-expected.txt:
  • web-platform-tests/dom/nodes/attributes.html:
  • web-platform-tests/dom/nodes/attributes.js:

(attr_is):

  • web-platform-tests/dom/nodes/case-expected.txt:
  • web-platform-tests/dom/nodes/case.js:

(get_qualified_name):
(test_get_elements_tag_name):

  • web-platform-tests/dom/nodes/insert-adjacent-expected.txt: Added.
  • web-platform-tests/dom/nodes/insert-adjacent.html: Added.
  • web-platform-tests/dom/nodes/remove-unscopable-expected.txt: Added.
  • web-platform-tests/dom/nodes/remove-unscopable.html: Added.
  • web-platform-tests/dom/nodes/rootNode-expected.txt: Added.
  • web-platform-tests/dom/nodes/rootNode.html: Added.
  • web-platform-tests/dom/nodes/w3c-import.log:
  • web-platform-tests/dom/ranges/Range-stringifier-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-stringifier.html: Added.
  • web-platform-tests/dom/ranges/w3c-import.log:
  • web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter.html:
  • web-platform-tests/dom/traversal/TreeWalker-basic.html:
  • web-platform-tests/dom/traversal/TreeWalker-currentNode.html:
  • web-platform-tests/dom/traversal/TreeWalker-previousNodeLastChildReject.html:
  • web-platform-tests/dom/traversal/TreeWalker-previousSiblingLastChildSkip.html:
  • web-platform-tests/dom/traversal/TreeWalker-traversal-reject.html:
  • web-platform-tests/dom/traversal/TreeWalker-traversal-skip-most.html:
  • web-platform-tests/dom/traversal/TreeWalker-traversal-skip.html:
  • web-platform-tests/dom/traversal/TreeWalker-walking-outside-a-tree.html:
  • web-platform-tests/fetch/api/cors/cors-preflight.js:
  • web-platform-tests/fetch/api/credentials/cookies.js:

(cookies):

  • web-platform-tests/fetch/api/policies/referrer-origin-expected.txt:
  • web-platform-tests/fetch/api/policies/referrer-origin.js:

(promise_test):

  • web-platform-tests/fetch/api/request/request-consume.html:
  • web-platform-tests/fetch/api/request/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/dom/lists/w3c-import.log.
  • web-platform-tests/fetch/api/request/w3c-import.log:
  • web-platform-tests/fetch/api/resources/utils.js:

(validateStreamFromString):

  • web-platform-tests/fetch/api/response/response-cancel-stream-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume-stream-expected.txt:
  • web-platform-tests/fetch/api/response/w3c-import.log:
  • web-platform-tests/html/OWNERS:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/Document.getElementsByClassName-null-undef.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/Element.getElementsByClassName-null-undef.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByClassName-same.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-case-xhtml.xhtml:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-case.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-id-xhtml.xhtml:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-id.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-namespace-xhtml.xhtml:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-namespace.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-xhtml.xhtml:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-param-xhtml.xhtml:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-param.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-same.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.head-01.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.head-02.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-01.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-02.xhtml:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-03.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-04.xhtml:
  • web-platform-tests/html/dom/elements/global-attributes/id-name-specialcase.html:
  • web-platform-tests/html/dom/elements/global-attributes/id-name.html:
  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces.html:
  • web-platform-tests/html/resources/common.js:

(isVoidElement): Deleted.

  • web-platform-tests/html/semantics/document-metadata/the-link-element/resources/stylesheet.css: Added.

(body):

  • web-platform-tests/html/semantics/document-metadata/the-link-element/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/dom/lists/w3c-import.log.
  • web-platform-tests/html/semantics/document-metadata/the-link-element/stylesheet-with-base-expected.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-link-element/stylesheet-with-base.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-link-element/stylesheet.css: Added.

(body):

  • web-platform-tests/html/semantics/document-metadata/the-link-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.scaled.png: Added.
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-with-base-expected.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-with-base.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/document-base-url-expected.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/document-base-url.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/resources/cat.jpg: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/dom/lists/w3c-import.log.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput.html:
  • web-platform-tests/html/semantics/forms/form-submission-0/getactionurl-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/form-submission-0/getactionurl.html: Added.
  • web-platform-tests/html/semantics/forms/form-submission-0/w3c-import.log:
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-after-content-change-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-after-content-change.html: Added.
  • web-platform-tests/html/semantics/forms/textfieldselection/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-form-element/form-autocomplete-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/form-autocomplete.html:
  • web-platform-tests/html/semantics/forms/the-input-element/checkbox.html:
  • web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/selection.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-legend-element/legend-form-expected.txt:
  • web-platform-tests/html/semantics/forms/the-legend-element/legend-form.html:
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-1.html:
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2.html:
  • web-platform-tests/html/semantics/links/linktypes/alternate-css-expected.html: Added.
  • web-platform-tests/html/semantics/links/linktypes/alternate-css.html: Added.
  • web-platform-tests/html/semantics/links/linktypes/alternate.css: Added.

(div):

  • web-platform-tests/html/semantics/links/linktypes/preferred.css: Added.

(div):

  • web-platform-tests/html/semantics/links/linktypes/w3c-import.log:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/default-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/default.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/focus-autofocus-expected.txt: Added.
  • web-platform-tests/html/semantics/selectors/pseudo-classes/focus-autofocus.html: Added.
  • web-platform-tests/html/semantics/selectors/pseudo-classes/focus-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/focus.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/inrange-outofrange-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/inrange-outofrange.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/link-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/link.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/the-table-element/insertRow-method-03-expected.txt: Added.
  • web-platform-tests/html/semantics/tabular-data/the-table-element/insertRow-method-03.html: Added.
  • web-platform-tests/html/semantics/tabular-data/the-table-element/tFoot-expected.txt: Added.
  • web-platform-tests/html/semantics/tabular-data/the-table-element/tFoot.html: Added.
  • web-platform-tests/html/semantics/tabular-data/the-table-element/tHead-expected.txt: Added.
  • web-platform-tests/html/semantics/tabular-data/the-table-element/tHead.html: Added.
  • web-platform-tests/html/semantics/tabular-data/the-table-element/w3c-import.log:
  • web-platform-tests/lint.whitelist:
  • web-platform-tests/media/OWNERS:
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-add.https.html:
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-delete.https.html:
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-match.https.html:
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-matchAll.https.html:
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-put.https.html:
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-storage-keys.https.html:
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-storage-match.https.html:
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-storage.https.html:
  • web-platform-tests/service-workers/cache-storage/serviceworker/credentials.html:
  • web-platform-tests/streams/byte-length-queuing-strategy.js:

(test):

  • web-platform-tests/streams/count-queuing-strategy.js:

(test):

  • web-platform-tests/streams/readable-streams/bad-strategies.js:

(get string_appeared_here):
(promise_test):

  • web-platform-tests/streams/readable-streams/bad-underlying-sources.https-expected.txt:
  • web-platform-tests/streams/readable-streams/bad-underlying-sources.js:

(promise_test):
(promise_test.t.const.closed.new.ReadableStream.start):

  • web-platform-tests/streams/readable-streams/cancel.js:

(promise_test): Deleted.

  • web-platform-tests/streams/readable-streams/general.https-expected.txt:
  • web-platform-tests/streams/readable-streams/general.js:

(test):
(promise_test):
(promise_test.t.const.rs.new.ReadableStream.pull):
(promise_test.t.const.rs.new.ReadableStream.start): Deleted.

  • web-platform-tests/streams/readable-streams/readable-stream-reader.js:

(test):

  • web-platform-tests/streams/readable-streams/templated.https-expected.txt:
  • web-platform-tests/streams/resources/rs-test-templates.js:

(self.templatedRSEmpty):

LayoutTests:

  • platform/ios-simulator/TestExpectations: Marking some tests as failing.
  • platform/wk2/imported/w3c/web-platform-tests/html/semantics/document-metadata/styling/LinkStyle-expected.txt:
12:22 PM Changeset in webkit [200308] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.30.2/Source

Versioning.

12:19 PM Changeset in webkit [200307] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.30.2

New tag.

11:56 AM Changeset in webkit [200306] by mitz@apple.com
  • 1 edit
    1 delete in trunk/Source/WebInspectorUI

WebInspectorUI.framework/Versions/A/Resources/Images/Legacy is empty
https://bugs.webkit.org/show_bug.cgi?id=157248

Reviewed by Timothy Hatcher.

  • UserInterface/Images/Legacy: Removed.
10:52 AM Changeset in webkit [200305] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, rebaseline bindings tests after r200300.

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsStringWithCache):

9:37 AM Changeset in webkit [200304] by Darin Adler
  • 5 edits in trunk/Source/WebCore

Use enum class instead of string-based enums in RTC code
https://bugs.webkit.org/show_bug.cgi?id=157242

Reviewed by Alex Christensen.

  • Modules/mediastream/RTCConfiguration.cpp:

(WebCore::RTCConfiguration::RTCConfiguration): Don't initialize members here,
do it in the header instead.
(WebCore::RTCConfiguration::initialize): Initialize data members to enum values,
not strings.

  • Modules/mediastream/RTCConfiguration.h: Tried to keep this class compiling.

Added the new enum class, and changed to use that instead of strings. But note,
this should not even be a class. Needs to become a dictionary.

  • Modules/mediastream/RTCConfiguration.idl: Updated the names and values of the

enums to match the current RTC specification. Again, as I said, this should be
a dictionary, not an interface.

  • bindings/scripts/CodeGenerator.pm: Removed the RTC enumerations from the list

of string-based enums.

7:09 AM Changeset in webkit [200303] by youenn.fablet@crf.canon.fr
  • 3 edits
    4 adds in trunk/LayoutTests/imported/w3c

Fix 157169

Update W3C importer files related to csswg-test files after r200234
https://bugs.webkit.org/show_bug.cgi?id=157169

Reviewed by Ryosuke Niwa.

Updating ImportExpectations to import css-scoping-1 test suite only from css wg test repository.
Updating TestRepositories to set the current csswg-test revision to b2daa426addd5ccb8e9ce1c5d800f9d82603f1ec.
Rerun test importer to add some additional files (document, license...).

  • csswg-test/CONTRIBUTING.md: Added.
  • csswg-test/LICENSE: Added.
  • csswg-test/README.md: Added.
  • csswg-test/w3c-import.log: Added.
  • resources/ImportExpectations:
  • resources/TestRepositories:

Apr 30, 2016:

11:07 PM Changeset in webkit [200302] by Antti Koivisto
  • 3 edits
    2 adds in trunk

REGRESSION (r199640): position:absolute generated content inherits text-decoration from its element
https://bugs.webkit.org/show_bug.cgi?id=157199
<rdar://problem/26013111>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/css/text-decoration-inheritance-pseudo.html

  • css/StyleResolver.cpp:

(WebCore::doesNotInheritTextDecoration):
(WebCore::StyleResolver::adjustRenderStyle):

There was an accidental logic change here. Even if element is null other conditions may make this test true.

LayoutTests:

  • fast/css/text-decoration-inheritance-pseudo-expected.html: Added.
  • fast/css/text-decoration-inheritance-pseudo.html: Added.
10:42 PM Changeset in webkit [200301] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Some content causes deep recursion.
https://bugs.webkit.org/show_bug.cgi?id=157230
<rdar://problem/7694756>

Reviewed by Antti Koivisto.

This patch sets a limit(512) on content nesting for the render tree. Elements injected over the limit
are still accessible through DOM APIs but

  1. we stop generating renderers for them -they behave like display: none.
  2. their layout related computed style values are set to default (e.g. window.computedStyle(document.elementById("over512").width -> auto)

Source/WebCore:

Test: fast/block/nested-renderers.html

  • page/Settings.h:
  • style/StyleTreeResolver.cpp: Skip renderer constructing and continue with the sibling node.

(WebCore::Style::TreeResolver::resolveComposedTree):

LayoutTests:

  • fast/block/nested-renderers-expected.html: Added.
  • fast/block/nested-renderers.html: Added.
9:50 PM Changeset in webkit [200300] by Darin Adler
  • 6 edits in trunk/Source/WebCore

Update XMLHttpRequest to use enum class instead of string for enumeration
https://bugs.webkit.org/show_bug.cgi?id=157238

Reviewed by Chris Dumez.

  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::JSXMLHttpRequest::response): Rewrite to use responseType function
instead of responseTypeCode function.

  • bindings/scripts/CodeGenerator.pm: Removed XMLHttpRequestResponseType

from the list of enumerations that use a string-based implementation.

  • bindings/scripts/CodeGeneratorJS.pm:

(GetEnumerationImplementationContent): Use emptyString instead of ASCIILiteral
when the string constant is empty, to avoid the assertion.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::XMLHttpRequest): Move simple scalar data member
initialization to where the data members are defined in the header.
(WebCore::XMLHttpRequest::responseText): Use m_responseType instead of
m_responseTypeCode.
(WebCore::XMLHttpRequest::didCacheResponseJSON): Ditto.
(WebCore::XMLHttpRequest::responseXML): Ditto.
(WebCore::XMLHttpRequest::responseBlob): Ditto.
(WebCore::XMLHttpRequest::responseArrayBuffer): Ditto.
(WebCore::XMLHttpRequest::setResponseType): Ditto.
(WebCore::XMLHttpRequest::responseType): Moved to header now that it's a
trivial function that should be inlined.
(WebCore::XMLHttpRequest::open): Use m_responseType instead of
m_responseTypeCode.
(WebCore::XMLHttpRequest::responseMIMEType): Removed one redundant check.
(WebCore::XMLHttpRequest::status): Ditto.
(WebCore::XMLHttpRequest::statusText): Ditto.
(WebCore::shouldDecodeResponse): Moved here from the header. This is now
a non-member function that gets passed a response type. It uses a switch
now instead of ordering the types so that the binary ones are all at the
end of the list.
(WebCore::XMLHttpRequest::didReceiveData): Use the new shouldDecodeResponse.
Also removed an unnecessary check that non-decoded responses are of type
"arraybuffer" or "blob"; that's the same check that shouldDecodeResponse does.

  • xml/XMLHttpRequest.h: Removed some unneeded includes and forward declarations.

Removed a comment about the State values needing to be stable numbers; for one
thing the bindings already check that these values have no changed. It's not a
valuable comment. Removed ResponseTypeCode, responseTypeCode, and
m_responseTypeCode. Changed the type of the result of responseType and the
argument to setResponseType from a string to XMLHttpRequestResponseType.
Removed shouldDecodeResponse. Added the initial values for lots of data members
that are simple scalars, matching what was set in the constructor before.

9:17 PM Changeset in webkit [200299] by Darin Adler
  • 24 edits in trunk

Streamline and remove unused bindings generation code
https://bugs.webkit.org/show_bug.cgi?id=157237

Reviewed by Chris Dumez.

Source/WebCore:

  • Modules/notifications/NotificationCenter.idl: Replace non-standard "int"

with standard "long", which means the same thing.

  • bindings/scripts/CodeGenerator.pm:

(UpdateFile): Use a better perl idiom for open.
(IsTypedArrayType): Use a hash instead of a list of checks in the code.
(IsRefPtrType): Use GetArrayOrSequenceType. Add handling for "any", which
is not a "RefPtr" type.
(IsWrapperType): Build on top of IsRefPtr type so we don't have to repeat
the list.
(getInterfaceExtendedAttributesFromName): Added a FIXME about why this is no good.
(ComputeIsCallbackInterface): Renamed.
(IsCallbackInterface): Added a cache so we don't keep reading the same file
over and over again. Added a FIXME about why this is no good.
(ComputeIsFunctionOnlyCallbackInterface): Ditto.
(IsFunctionOnlyCallbackInterface): Ditto.

  • bindings/scripts/CodeGeneratorJS.pm:

(AddIncludesForType): Use GetArrayOrSequenceType.
(IsScriptProfileType): Deleted.
(AddTypedefForScriptProfileType): Deleted.
(AddClassForwardIfNeeded): Streamlined the code and made the ScriptProfileNode
special case easier to read.
(GenerateParametersCheckExpression): Use GetArrayOrSequenceType.
(GetFunctionLength): Tweaked formatting and argument names.
(GenerateImplementation): Merged a couple checks into a single if statement.
(WillConvertUndefinedToDefaultParameterValue): Streamlined the function by
using a hash instead of a sequence of if statements for most cases.
(GetNativeType): Use GetArrayOrSequenceType.
(JSValueToNative): Do the integer conversion based on a hash rather than
with lots of separate lines of code. Moved more of the simple names down to
the bottom of the function and streamlined the logic. Removed unnecessary
includes of the DOM headers directly, since our header file includes those.
(NativeToJSValue): Factored out the global object handling so it works across
more cases. Simplified the logic for dates. Use IsNumericType instead of
IsPrimitiveType to guard code that is right only for the numeric types.
Removed code to handle "Symbol" since we don't ever use that.

  • bindings/scripts/test/JS/JSTestCallback.cpp:
  • bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

Regenerated.

  • bindings/scripts/test/TestObj.idl: Removed test coverage for Symbol, which

we never use anywhere.

  • html/canvas/EXTBlendMinMax.idl: Replace non-standard "int" with standard

"long", which means the same thing.

  • html/canvas/EXTTextureFilterAnisotropic.idl: Ditto.
  • html/canvas/EXTsRGB.idl: Ditto.
  • html/canvas/OESStandardDerivatives.idl: Ditto.
  • html/canvas/OESVertexArrayObject.idl: Ditto.
  • html/canvas/WebGLCompressedTextureATC.idl: Ditto.
  • html/canvas/WebGLCompressedTexturePVRTC.idl: Ditto.
  • html/canvas/WebGLCompressedTextureS3TC.idl: Ditto.
  • html/canvas/WebGLDebugRendererInfo.idl: Ditto.
  • html/canvas/WebGLDepthTexture.idl: Ditto.

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:

Replace non-standard "int" with standard "long", which means the same thing.

3:06 PM Changeset in webkit [200298] by Chris Dumez
  • 46 edits in trunk

[Web IDL] Pass even more types by reference
https://bugs.webkit.org/show_bug.cgi?id=157231

Reviewed by Darin Adler.

Source/WebCore:

Pass even more types by reference when the parameters are not marked as
nullable in the IDL.

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::generateKeyRequest):
(WebCore::MediaKeySession::keyRequestTimerFired):
(WebCore::MediaKeySession::update):
(WebCore::MediaKeySession::addKeyTimerFired):

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

(WebCore::MediaKeys::createSession):

  • Modules/encryptedmedia/MediaKeys.h:
  • Modules/encryptedmedia/MediaKeys.idl:
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::appendBuffer):
(WebCore::SourceBuffer::resetParserState): Deleted.

  • Modules/mediasource/SourceBuffer.h:
  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::send):

  • Modules/mediastream/RTCDataChannel.h:
  • Modules/webaudio/AnalyserNode.h:

(WebCore::AnalyserNode::getFloatFrequencyData):
(WebCore::AnalyserNode::getByteFrequencyData):
(WebCore::AnalyserNode::getByteTimeDomainData):

  • Modules/webaudio/AnalyserNode.idl:
  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::createPeriodicWave):

  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/AudioParam.h:

(WebCore::AudioParam::setValueCurveAtTime):

  • Modules/webaudio/AudioParam.idl:
  • Modules/webaudio/BiquadFilterNode.cpp:

(WebCore::BiquadFilterNode::getFrequencyResponse):

  • Modules/webaudio/BiquadFilterNode.h:
  • Modules/webaudio/BiquadFilterNode.idl:
  • Modules/webaudio/PeriodicWave.cpp:

(WebCore::PeriodicWave::create):
(WebCore::PeriodicWave::createSine): Deleted.

  • Modules/webaudio/PeriodicWave.h:
  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::send):

  • Modules/websockets/WebSocket.h:
  • bindings/js/JSWebGLRenderingContextBaseCustom.cpp:

(WebCore::dataFunctionf):
(WebCore::dataFunctioni):
(WebCore::dataFunctionMatrix):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
(ShouldPassWrapperByReference):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::constructJSTestOverloadedConstructors2):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::webkitAddKey):
(WebCore::HTMLMediaElement::webkitCancelKeyRequest): Deleted.

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElement.idl:
  • html/ImageData.cpp:

(WebCore::ImageData::create):
(WebCore::ImageData::ImageData):

  • html/ImageData.h:
  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::getImageData):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::texImage3D):
(WebCore::WebGL2RenderingContext::texSubImage3D):
(WebCore::WebGL2RenderingContext::compressedTexImage3D):
(WebCore::WebGL2RenderingContext::compressedTexSubImage3D):
(WebCore::WebGL2RenderingContext::uniform1uiv):
(WebCore::WebGL2RenderingContext::uniform2uiv):
(WebCore::WebGL2RenderingContext::uniform3uiv):
(WebCore::WebGL2RenderingContext::uniform4uiv):
(WebCore::WebGL2RenderingContext::uniformMatrix2x3fv):
(WebCore::WebGL2RenderingContext::uniformMatrix3x2fv):
(WebCore::WebGL2RenderingContext::uniformMatrix2x4fv):
(WebCore::WebGL2RenderingContext::uniformMatrix4x2fv):
(WebCore::WebGL2RenderingContext::uniformMatrix3x4fv):
(WebCore::WebGL2RenderingContext::uniformMatrix4x3fv):
(WebCore::WebGL2RenderingContext::vertexAttribI4iv):
(WebCore::WebGL2RenderingContext::vertexAttribI4uiv):
(WebCore::WebGL2RenderingContext::clearBufferiv):
(WebCore::WebGL2RenderingContext::clearBufferuiv):
(WebCore::WebGL2RenderingContext::clearBufferfv):
(WebCore::WebGL2RenderingContext::getActiveUniforms):
(WebCore::WebGL2RenderingContext::texSubImage2D):

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGL2RenderingContext.idl:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::texSubImage2D):

  • html/canvas/WebGLRenderingContext.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::bufferData):
(WebCore::WebGLRenderingContextBase::bufferSubData):
(WebCore::WebGLRenderingContextBase::compressedTexImage2D):
(WebCore::WebGLRenderingContextBase::compressedTexSubImage2D):
(WebCore::WebGLRenderingContextBase::readPixels):
(WebCore::WebGLRenderingContextBase::texImage2D):
(WebCore::WebGLRenderingContextBase::uniform1fv):
(WebCore::WebGLRenderingContextBase::uniform1iv):
(WebCore::WebGLRenderingContextBase::uniform2fv):
(WebCore::WebGLRenderingContextBase::uniform2iv):
(WebCore::WebGLRenderingContextBase::uniform3fv):
(WebCore::WebGLRenderingContextBase::uniform3iv):
(WebCore::WebGLRenderingContextBase::uniform4fv):
(WebCore::WebGLRenderingContextBase::uniform4iv):
(WebCore::WebGLRenderingContextBase::uniformMatrix2fv):
(WebCore::WebGLRenderingContextBase::uniformMatrix3fv):
(WebCore::WebGLRenderingContextBase::uniformMatrix4fv):
(WebCore::WebGLRenderingContextBase::vertexAttrib1fv):
(WebCore::WebGLRenderingContextBase::vertexAttrib2fv):
(WebCore::WebGLRenderingContextBase::vertexAttrib3fv):
(WebCore::WebGLRenderingContextBase::vertexAttrib4fv):
(WebCore::WebGLRenderingContextBase::validateCompressedTexFuncData):
(WebCore::WebGLRenderingContextBase::validateUniformParameters):
(WebCore::WebGLRenderingContextBase::validateUniformMatrixParameters):
(WebCore::WebGLRenderingContextBase::vertexAttribfvImpl):
(WebCore::WebGLRenderingContextBase::validateSettableTexFormat): Deleted.
(WebCore::WebGLRenderingContextBase::uniform1i): Deleted.
(WebCore::WebGLRenderingContextBase::uniform2i): Deleted.
(WebCore::WebGLRenderingContextBase::uniform3f): Deleted.
(WebCore::WebGLRenderingContextBase::uniform3i): Deleted.
(WebCore::WebGLRenderingContextBase::uniform4f): Deleted.
(WebCore::WebGLRenderingContextBase::uniform4i): Deleted.
(WebCore::WebGLRenderingContextBase::useProgram): Deleted.
(WebCore::WebGLRenderingContextBase::vertexAttribPointer): Deleted.
(WebCore::WebGLRenderingContextBase::validateCompressedTexDimensions): Deleted.
(WebCore::WebGLRenderingContextBase::validateBufferDataParameters): Deleted.

  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLRenderingContextBase.idl:
  • testing/Internals.cpp:

(WebCore::Internals::createTimeRanges):

  • testing/Internals.h:

LayoutTests:

Update test now that slightly different exceptions are thrown.

  • media/encrypted-media/encrypted-media-v2-syntax-expected.txt:
  • media/encrypted-media/encrypted-media-v2-syntax.html:
2:58 PM Changeset in webkit [200297] by rniwa@webkit.org
  • 4 edits
    4 deletes in trunk

Node.prototype.rootNode is not Web compatible
https://bugs.webkit.org/show_bug.cgi?id=157233

Reviewed by Chris Dumez.

Source/WebCore:

Turns out that the name rootNode is not Web compatible. Remove the method for now
until we can come up with a better name in https://github.com/whatwg/dom/issues/241.

No new tests since we're just removing a method.

  • dom/Node.idl:

LayoutTests:

Removed tests for Node.prototype.rootNode.

  • fast/dom/Node/rootNode-expected.txt: Removed.
  • fast/dom/Node/rootNode.html: Removed.
  • fast/shadow-dom/Node-interface-rootNode-expected.txt: Removed.
  • fast/shadow-dom/Node-interface-rootNode.html: Removed.
  • js/dom/dom-static-property-for-in-iteration-expected.txt:
2:41 PM Changeset in webkit [200296] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Try to fix GTK build.

  • testing/Internals.h: Added conditional around include of

MediaSessionInterruptionProvider.h.

2:21 PM Changeset in webkit [200295] by Konstantin Tokarev
  • 2 edits in trunk/Source/JavaScriptCore

Guard ObjC-specific code in Heap.cpp with USE(FOUNDATION)
https://bugs.webkit.org/show_bug.cgi?id=157236

Reviewed by Darin Adler.

This also fixes build with GCC 4.8 which does not provide
has_include.

  • heap/Heap.cpp:
1:26 PM Changeset in webkit [200294] by Darin Adler
  • 32 edits in trunk/Source/WebCore

Stop using old-style string-based enums in Internals.idl
https://bugs.webkit.org/show_bug.cgi?id=157235

Reviewed by Chris Dumez.

  • bindings/scripts/CodeGenerator.pm: Removed the six enumeration names

that are used in Internals.idl.
(GenerateCompileTimeCheckForEnumsIfNeeded): Unrelated cleanup. Tighten
code and use static_assert instead of COMPILE_ASSERT.
(IsStringType): Marked this function as deprecated. Calling a function
just to check if something is specifically "DOMString" isn't a good pattern.
Lots of call sites were checking "DOMString" directly and there is no
reason to mix the two different idioms.

  • bindings/scripts/CodeGeneratorJS.pm:

(GetEnumerationImplementationContent): Use GenerateConditionalString.
(GenerateImplementation): Use static_assert instead of COMPILE_ASSERT.
(GenerateCallbackHeader): Tighten code. Remove peculiar code that was
trying to emit COMPILE_ASSERT(false); not an important case to detect, and
if we did want to detect it, then having the code generator report an error
is better than COMPILE_ASSERT when compiling the output.
(NativeToJSValue): Stop using IsStringType.

  • bindings/scripts/CodeGeneratorObjC.pm:

(GetClassName): Stop using IsStringType.
(GetPropertyAttributes): Ditto.
(ConversionNeeded): Ditto.
(GetObjCTypeGetter): Ditto.
(AddIncludesForType): Ditto.
(GenerateImplementation): Removed unused @needsAssert. It was a write-only
variable.

  • bindings/scripts/IDLParser.pm:

(parseEnum): Put the extended attributes into the enumeration object.

  • bindings/scripts/test/TestObj.idl: Added test cases for the Conditional

extended attribute, used with enumerations.

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestCallback.cpp:
  • bindings/scripts/test/JS/JSTestCallback.h:
  • bindings/scripts/test/JS/JSTestCallbackFunction.h:
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bindings/scripts/test/JS/JSattribute.cpp:
  • bindings/scripts/test/JS/JSreadonly.cpp:

Regenerated.

  • testing/Internals.cpp:

(WebCore::toResourceRequestCachePolicy): Take enum instead of string.
(WebCore::Internals::setOverrideCachePolicy): Ditto.
(WebCore::toResourceLoadPriority): Ditto.
(WebCore::Internals::setOverrideResourceLoadPriority): Ditto.
(WebCore::toAutoFillButtonType): Ditto.
(WebCore::Internals::setShowAutoFillButton): Ditto.
(WebCore::interruptingCategoryFromString): Deleted.
(WebCore::Internals::sendMediaSessionStartOfInterruptionNotification): Ditto.
(WebCore::Internals::sendMediaSessionEndOfInterruptionNotification): Ditto.
(WebCore::Internals::sendMediaControlEvent): Ditto.
(WebCore::Internals::installMockPageOverlay): Ditto.

  • testing/Internals.h: Added enum class and use those instead of strings for

enumerations defined in the IDL.

  • testing/Internals.idl: Renamed enumerations that conflict with ones that already

exist in WebCore; added Internals prefix. Made MediaSessionInterruptingCategory and
MediaControlEvent conditional to match the functions they are used on. Added some
FIXMEs about peculiarities of some of the enumerations.

1:05 PM Changeset in webkit [200293] by Yusuke Suzuki
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

Assertion failure for destructuring assignment with new.target and unary operator
https://bugs.webkit.org/show_bug.cgi?id=157149

Reviewed by Saam Barati.

The caller of parseDefaultValueForDestructuringPattern() should propagate errors.
And this patch also cleans up createSavePoint and createSavePointForError; introducing SavePointWithError.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseSourceElements):
(JSC::Parser<LexerType>::parseDestructuringPattern):
Add propagateErorr() for parseDefaultValueForDestructuringPattern.

(JSC::Parser<LexerType>::parseAssignmentExpression):

  • parser/Parser.h:

(JSC::Parser::restoreLexerState):
(JSC::Parser::internalSaveState):
(JSC::Parser::createSavePointForError):
(JSC::Parser::createSavePoint):
(JSC::Parser::internalRestoreState):
(JSC::Parser::restoreSavePointWithError):
(JSC::Parser::restoreSavePoint):

  • tests/stress/default-value-parsing-should-propagate-error.js: Added.

(testSyntaxError):
(testSyntaxError.f):

12:34 PM Changeset in webkit [200292] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Fixed expected results from bindings tests.

  • bindings/scripts/test/JS/JSTestObj.cpp: Regenerated.
12:16 PM Changeset in webkit [200291] by Darin Adler
  • 64 edits in trunk

Next batch of conversions to use C++ enum class instead of strings for enumerations
https://bugs.webkit.org/show_bug.cgi?id=157232

Reviewed by Chris Dumez.

Source/WebCore:

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::error): Use ResponseType.
(WebCore::FetchResponse::redirect): Ditto.
(WebCore::FetchResponse::FetchResponse): Ditto.
(WebCore::FetchResponse::clone): Ditto.
(WebCore::FetchResponse::type): Return ResponseType.
(WebCore::FetchResponse::startFetching): Use auto.

  • Modules/fetch/FetchResponse.h: Added ResponseType and used it for the return value

of the type function, and also to replace FetchResponse::Type.

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::externalDeviceType): Return DeviceType.

  • Modules/mediacontrols/MediaControlsHost.h: Added DeviceType and use it for the

return value for the externalDeviceType function.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::parseKind): Deleted.
(WebCore::MediaSession::MediaSession): Use MediaSessionKind.
(WebCore::MediaSession::kind): Deleted.

  • Modules/mediasession/MediaSession.h: Added MediaSessionKind and use it as the

argument to MediaSession::create and the return type for the kind function.
Probably didn't get this 100% right because this code does not seem to be compiled.

  • Modules/mediasession/MediaSession.idl: Added default value for kind, as specified

in the current version of the specification for this class.

  • Modules/mediasession/MediaSessionManager.cpp:

(WebCore::MediaSessionManager::didReceiveStartOfInterruptionNotification):
Tried to update for changes above.
(WebCore::MediaSessionManager::didReceiveEndOfInterruptionNotification): Ditto.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::endOfStream): Changed to take Optional<EndOfStreamError>
instead of overloading and taking const AtomicString&.
(WebCore::MediaSource::streamEndedWithError): Ditto. Also removed exception code.
(WebCore::MediaSource::addSourceBuffer): Updated to use EndOfStreamError. Also
used an if statement.
(WebCore::MediaSource::sourceBufferDidChangeActiveState): Updated to take a reference
instead of a pointer.

  • Modules/mediasource/MediaSource.h: Added EndOfStreamError and changed as above.
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::segmentsKeyword): Deleted.
(WebCore::SourceBuffer::sequenceKeyword): Deleted.
(WebCore::SourceBuffer::TrackBuffer::TrackBuffer): Initialize booleans where they are
defined rather than in this constructor.
(WebCore::SourceBuffer::create): Use Ref instead of RefPtr.
(WebCore::SourceBuffer::SourceBuffer): Initialize many data members where they are
defined rather than in this constructor.
(WebCore::SourceBuffer::setTimestampOffset): Use AppendMode.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveRenderingError): Ditto.
(WebCore::SourceBuffer::decodeError): Deleted.
(WebCore::SourceBuffer::networkError): Deleted.
(WebCore::SourceBuffer::setActive): Pass reference instead of pointer.
(WebCore::SourceBuffer::sourceBufferPrivateDidEndStream): Deleted. No callers.
(WebCore::SourceBuffer::appendError): Use AppendMode.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Ditto.
(WebCore::SourceBuffer::setMode): Take AppendMode.

  • Modules/mediasource/SourceBuffer.h: Added AppendMode, removed various string

constant functions, initialize more data emebers in this header. Removed unused
sourceBufferPrivateDidEndStream function.

  • Modules/mediastream/MediaDeviceInfo.cpp:

(WebCore::MediaDeviceInfo::MediaDeviceInfo): Take MediaDeviceKind instead of string.
(WebCore::MediaDeviceInfo::create): Ditto.
(WebCore::MediaDeviceInfo::audioInputType): Deleted.
(WebCore::MediaDeviceInfo::audioOutputType): Deleted.
(WebCore::MediaDeviceInfo::videoInputType): Deleted.

  • Modules/mediastream/MediaDeviceInfo.h: Aedded MediaDeviceKind and used it.
  • Modules/mediastream/MediaDeviceInfo.idl: Changed type of the kind attribute

to be MediaDeviceKind as in the specification.

  • Modules/mediastream/MediaDevicesRequest.cpp:

(WebCore::MediaDevicesRequest::didCompleteTrackSourceInfoRequest): Fix loop to not
churn the reference countds. Also updated to use String instead of AtomicString for
label, and MediaDeviceKind instead of string for kind.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::readyState): Return MediaStreamTrackState.

  • Modules/mediastream/MediaStreamTrack.h: Added MediaStreamTrackState and used it

for the return value from the readyState function.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::state): Return AudioContextState.

  • Modules/webaudio/AudioContext.h: Added AudioContextState and used it.
  • Modules/webaudio/WaveShaperNode.cpp:

(WebCore::processorType): Added.
(WebCore::WaveShaperNode::setOversample): Take OverSampletype instead of a string.
(WebCore::WaveShaperNode::oversample): Return OverSampleType.

  • Modules/webaudio/WaveShaperNode.h: Added OverSampleType and used it.
  • Modules/webaudio/WaveShaperNode.idl: Removed unneeded [SetterRaisesException].
  • bindings/scripts/CodeGenerator.pm: Removed special cases for 18 enumerations that

either don't exist or were converted to no longer pass strings in to the C++ DOM.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeaderContentHeader): Use #pragma once instead of header guards.
(GetEnumerationValueName): Added logic to handle names with "-" and starting with
a numeric digit.
(GetEnumerationImplementationContent): Changed functions so they do more of the
binding work. Added JSValueTraits specialization so we can generate bindings for
a vector of any enumeration. Added special cases for null string. Removed special
case to keep the style checker happy.
(GenerateHeader): Removed the #endif that matched the header guards in
GenerateHeaderContentHeader.
(GenerateImplementation): Use the $type local variable rather than writing out
$attribute->signature->type or $attributeType. Fixed code path that checks for
valid enumeration values to work for non-string-based enumerations.
(CanUseWTFOptionalForParameter): Turn this function off for the new enumerations.
For now, leave it on for the old string-based enumerations.
(GenerateParametersCheck): Added appropriate parameter checking for the new
enumerations.
(GenerateCallbackHeader): Removed the #endif that matched the header guards in
GenerateHeaderContentHeader.
(GetNativeType): Use "auto" instead of the enumeration name in generated code.
(JSValueToNative): Updated since the name of enumerationValueMyEnum was changed
to parseMyEnum.
(NativeToJSValue): Took out call to stringValue, since we now overload the
jsStringWithCache function instead.

  • bindings/scripts/test/JS/JSTestActiveDOMObject.h:
  • bindings/scripts/test/JS/JSTestCallback.h:
  • bindings/scripts/test/JS/JSTestCallbackFunction.h:
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:
  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
  • bindings/scripts/test/JS/JSTestEventConstructor.h:
  • bindings/scripts/test/JS/JSTestEventTarget.h:
  • bindings/scripts/test/JS/JSTestException.h:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
  • bindings/scripts/test/JS/JSTestGlobalObject.h:
  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
  • bindings/scripts/test/JS/JSTestNamedConstructor.h:
  • bindings/scripts/test/JS/JSTestNode.h:
  • bindings/scripts/test/JS/JSTestNondeterministic.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.h:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
  • bindings/scripts/test/JS/JSTestTypedefs.h:
  • bindings/scripts/test/JS/JSattribute.h:
  • bindings/scripts/test/JS/JSreadonly.h:

Regenerated.

  • crypto/CryptoKey.cpp:

(WebCore::CryptoKey::type): Use CryptoKeyType.
(WebCore::CryptoKey::usages): Use KeyUsage.

  • crypto/CryptoKey.h: Added KeyUsage and use CryptoKeyType.
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::status): Use FontFaceSetLoadStatus.

  • css/FontFaceSet.h: Added FontFaceSetLoadStatus and used it.
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::playInternal): Use kind instead of kindEnum.

  • html/HTMLVideoElement.cpp:

(WebCore::presentationModeFullscreen): Deleted.
(WebCore::presentationModePictureInPicture): Deleted.
(WebCore::presentationModeInline): Deleted.
(WebCore::HTMLVideoElement::webkitSupportsPresentationMode): Use VideoPresentationMode.
(WebCore::toFullscreenMode): Ditto.
(WebCore::HTMLVideoElement::webkitSetPresentationMode): Ditto.
(WebCore::toPresentationMode): Ditto.
(WebCore::HTMLVideoElement::webkitPresentationMode): Ditto.

  • html/HTMLVideoElement.h: Added VideoPresentationMode and used it.
  • html/canvas/CanvasRenderingContext2D.cpp: Tweaked formatting. Changed

DefaultSmoothingQuality macro to a constant.
(WebCore::toWindRule): Replaces parseWinding.
(WebCore::CanvasRenderingContext2D::fill): Use CanvasWindingRule instead of string.
(WebCore::CanvasRenderingContext2D::clip): Ditto.
(WebCore::CanvasRenderingContext2D::fillInternal): Ditto.
(WebCore::CanvasRenderingContext2D::clipInternal): Ditto.
(WebCore::CanvasRenderingContext2D::isPointInPath): Ditto.
(WebCore::CanvasRenderingContext2D::isPointInStroke): Ditto.
(WebCore::CanvasRenderingContext2D::isPointInPathInternal): Ditto.
(WebCore::smoothingToInterpolationQuality): Ditto.
(WebCore::CanvasRenderingContext2D::imageSmoothingQuality): Ditto.
(WebCore::CanvasRenderingContext2D::setImageSmoothingQuality): Ditto.

  • html/canvas/CanvasRenderingContext2D.h: Added CanvasWindingRule and

ImageSmoothingQuality, and use them throughout the class.

  • platform/graphics/SourceBufferPrivateClient.h: Removed unused

sourceBufferPrivateDidEndStream function.

Tools:

  • Scripts/webkitpy/style/checker.py: Skip the bindings script tests when doing style

checking. We don't want to waste time trying to make our generated code match our style.

11:06 AM Changeset in webkit [200290] by n_wang@apple.com
  • 4 edits
    2 adds in trunk

AX: @aria-label attribute should work on <label> element
https://bugs.webkit.org/show_bug.cgi?id=157219

Reviewed by Chris Fleizach.

Source/WebCore:

When there's aria-label on a <label> element, we shouldn't expose it
as the titleUIElement. Instead, we return its aria-label as a title.

Test: accessibility/mac/aria-label-on-label-element.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::titleElementText):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::exposesTitleUIElement):

LayoutTests:

  • accessibility/mac/aria-label-on-label-element-expected.txt: Added.
  • accessibility/mac/aria-label-on-label-element.html: Added.

Apr 29, 2016:

10:40 PM Changeset in webkit [200289] by Chris Dumez
  • 31 edits in trunk/Source

[Web IDL] Specify default parameter values for callback parameters
https://bugs.webkit.org/show_bug.cgi?id=157188

Reviewed by Darin Adler.

Specify default parameter values for callback parameters.

  • Modules/geolocation/Geolocation.idl:
  • Modules/notifications/Notification.cpp:

(WebCore::Notification::requestPermission):

  • Modules/notifications/Notification.h:
  • Modules/notifications/Notification.idl:
  • Modules/notifications/NotificationCenter.idl:
  • Modules/quota/StorageInfo.cpp:

(WebCore::StorageInfo::queryUsageAndQuota):
(WebCore::StorageInfo::requestQuota):

  • Modules/quota/StorageInfo.h:
  • Modules/quota/StorageInfo.idl:
  • Modules/quota/StorageQuota.h:
  • Modules/quota/StorageQuota.idl:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webdatabase/DOMWindowWebDatabase.cpp:

(WebCore::DOMWindowWebDatabase::openDatabase):

  • Modules/webdatabase/DOMWindowWebDatabase.h:

(WebCore::DOMWindowWebDatabase::DOMWindowWebDatabase):
(WebCore::DOMWindowWebDatabase::~DOMWindowWebDatabase):

  • Modules/webdatabase/DOMWindowWebDatabase.idl:
  • Modules/webdatabase/Database.cpp:

(WebCore::Database::runTransaction):
(WebCore::Database::changeVersion):
(WebCore::Database::transaction):
(WebCore::Database::readTransaction):

  • Modules/webdatabase/Database.h:
  • Modules/webdatabase/Database.idl:
  • Modules/webdatabase/SQLTransaction.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
(CanUseWTFOptionalForParameter): Deleted.

  • bindings/scripts/test/TestObj.idl:
  • dom/DataTransferItem.h:
  • dom/DataTransferItem.idl:
10:09 PM Changeset in webkit [200288] by Darin Adler
  • 18 edits in trunk/Source

First step in using "enum class" instead of "String" for enumerations in DOM
https://bugs.webkit.org/show_bug.cgi?id=157163

Reviewed by Chris Dumez.

Source/JavaScriptCore:

  • runtime/JSString.h:

(JSC::jsStringWithCache): Deleted unneeded overload for AtomicString.

Source/WebCore:

This patch adds the basic support for using "enum class" to implement enumerations
in the C++ DOM. This is enough so we can use it for one case, but not enough for
others. For example, it correctly generates code to get an attribute, but likely
does not correctly generate code to set an attribute or call a function with an
argument type that is the new style of enum.

  • bindings/scripts/CodeGenerator.pm: Cleaned up the formatting of the hashes

at the start of this file. Added a new one named stringBasedEnumerationHash
and a comment explaining that we need to eventually make it empty.
(ProcessDocument): Pass the enumerations into the GenerateInterface function.
(IsStringBasedEnumType): Added. Returns 1 for the old-style string-based enumerations,
as opposed to enumerations we use "enum class" for.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateInterface): Take the enumerations argument and pass it along to the
functions that generate headers and implementation files.
(EnumerationClassName): Added. Maps from an enumeration type name as seen
in the IDL file to the enumeration class name used in the C++ DOM implementation.
(EnumerationValueName): Added. Maps from an anumeration string value as seen
in the IDL file to an enumeration value name used in the C++ DOM implementatino.
(EnumerationImplementationContent): Added. Generates a string with all the content
needed in the implementation file to define the helper functions for enumerations.
(GenerateHeader): Tweak.
(GenerateImplementation): Added call to EnumerationImplementationContent.
(GenerateParametersCheck): Use toWTFString instead of toString/value, which is a
longer way of writing out the same thing.
(GenerateCallbackHeader): Tweak.
(GenerateCallbackImplementation): Added call to EnumerationImplementationContent.
(GetNativeType): Continue to return String for string-based enum types, but for
other enum types, return the result of EnumerationClassName instead.
(JSValueToNative): Use toWTFString instead of toString/value (see above), convert
to a string only for string-based enum types, and add a preliminary, probably not
yet working, version of the code for non-string-based enum types. Will finish this
in the next patch when we are trying to use one of the new enumerations for a setter
or a function argument.
(NativeToJSValue): Call the stringValue function to convert an enumeration value
into a string when it's not a string-based enumeration.

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

Regenerated.

  • css/FontFace.cpp:

(WebCore::FontFace::status): Updated to return enum values rather than strings.

  • css/FontFace.h: Removed unneeded forward declaration of Deprecated::ScriptValue.

Added enum class for FontFaceLoadStatus, with names that match the names from the
enumeration in the IDL, but with our standard enum capitalization style. Changed
the return value of the status function to FontFaceLoadStatus.

9:51 PM Changeset in webkit [200287] by Chris Dumez
  • 16 edits in trunk/Source/WebCore

Get rid of unnecessary null check in wrap(JSDOMGlobalObject*, DOMClass*)
https://bugs.webkit.org/show_bug.cgi?id=157224

Reviewed by Ryosuke Niwa.

Get rid of unnecessary null check in wrap(JSDOMGlobalObject*, DOMClass*)
since all the call sites already do a null check. Also update the function
to take the implementation object by reference instead of pointer. Finally,
use is<>() / downcast<>() more at the call sites.

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::update):
(WebCore::IDBCursor::deleteFunction):
(WebCore::IDBCursor::setGetResult):

  • Modules/indexeddb/IDBCursor.h:

(WebCore::IDBCursor::isKeyCursorWithValue):
(WebCore::IDBCursor::isKeyCursor): Deleted.

  • Modules/indexeddb/IDBCursorWithValue.h:

(isType):

  • bindings/js/JSBlobCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSCanvasRenderingContextCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSDOMBinding.h:

(WebCore::wrap):

  • bindings/js/JSIDBCursorCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSMediaStreamCapabilitiesCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSPerformanceEntryCustom.cpp:

(WebCore::toJS):

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLRenderingContext.h:
  • page/PerformanceMark.h:

(isType):
(WebCore::PerformanceMark::isMark): Deleted.

  • page/PerformanceMeasure.h:

(isType):
(WebCore::PerformanceMeasure::isMeasure): Deleted.

  • page/PerformanceResourceTiming.h:

(isType):
(WebCore::PerformanceResourceTiming::isResource): Deleted.

9:48 PM Changeset in webkit [200286] by Chris Dumez
  • 24 edits in trunk/Source/WebCore

Use LIKELY() / UNLIKELY() hints when suitable in the JavaScript bindings
https://bugs.webkit.org/show_bug.cgi?id=157210

Reviewed by Darin Adler.

Use LIKELY() / UNLIKELY() hints when suitable in the JavaScript bindings.
We already make use of them in the JS bindings but they are some cases
where we don't and they may be useful.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateOverloadedFunction):
(GenerateImplementation):
(GenerateParametersCheck):
(GenerateImplementationFunctionCall):
(GenerateOverloadedConstructorDefinition):
(GenerateConstructorDefinition):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::jsTestActiveDOMObjectConstructor):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:

(WebCore::jsTestClassWithJSBuiltinConstructorConstructor):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:

(WebCore::jsTestCustomConstructorWithNoInterfaceObjectConstructor):

  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:

(WebCore::jsTestCustomNamedGetterConstructor):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::jsTestEventConstructorConstructor):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::JSTestEventTarget::getOwnPropertySlotByIndex):
(WebCore::jsTestEventTargetConstructor):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::jsTestExceptionConstructor):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::jsTestGenerateIsReachableConstructor):

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::jsTestGlobalObjectConstructor):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterfaceConstructor::construct):
(WebCore::jsTestInterfaceConstructor):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:

(WebCore::jsTestJSBuiltinConstructorConstructor):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:

(WebCore::jsTestMediaQueryListListenerConstructor):
(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::JSTestNamedConstructorNamedConstructor::construct):
(WebCore::jsTestNamedConstructorConstructor):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::jsTestNodeConstructor):

  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:

(WebCore::jsTestNondeterministicConstructor):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjConstructor::construct):
(WebCore::JSTestObj::getOwnPropertySlotByIndex):
(WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
(WebCore::jsTestObjConstructor):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArg):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionConvert1):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Promise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Promise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors3):
(WebCore::JSTestOverloadedConstructorsConstructor::construct):
(WebCore::jsTestOverloadedConstructorsConstructor):

  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:

(WebCore::jsTestOverrideBuiltinsConstructor):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::jsTestSerializedScriptValueInterfaceConstructor):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefsConstructor::construct):
(WebCore::jsTestTypedefsConstructor):

  • bindings/scripts/test/JS/JSattribute.cpp:

(WebCore::jsattributeConstructor):

  • bindings/scripts/test/JS/JSreadonly.cpp:

(WebCore::jsreadonlyConstructor):

9:19 PM Changeset in webkit [200285] by rniwa@webkit.org
  • 7 edits in trunk

Rename getAssignedNodes to assignedNodes and support flattened option
https://bugs.webkit.org/show_bug.cgi?id=157225

Reviewed by Antti Koivisto.

Source/WebCore:

Renamed getAssignedNodes and added the the support for {flattened: true/false} as spec'ed at
http://w3c.github.io/webcomponents/spec/shadow/#widl-HTMLSlotElement-assignedNodes-sequence-Node--AssignedNodesOptions-options

Test: fast/shadow-dom/HTMLSlotElement-interface.html

  • html/HTMLSlotElement.cpp:

(WebCore::flattenAssignedNodes): Added.
(WebCore::HTMLSlotElement::assignedNodesForBindings): Added.

  • html/HTMLSlotElement.h:
  • html/HTMLSlotElement.idl:

LayoutTests:

  • fast/shadow-dom/HTMLSlotElement-interface-expected.txt:
  • fast/shadow-dom/HTMLSlotElement-interface.html:
9:13 PM Changeset in webkit [200284] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Make clipToRect() and restoreClip() have similar signatures
https://bugs.webkit.org/show_bug.cgi?id=157229

Reviewed by Zalan Bujtas.

clipToRect() and restoreClip() are always called in pairs, but had different
parameter order, and parameter types. So make them more similar.

In future we could use them in a stack-based class.

No behavior change.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::clipToRect):
(WebCore::RenderLayer::restoreClip):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::applyFilters):
(WebCore::RenderLayer::paintTransformedLayerIntoFragments):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
(WebCore::RenderLayer::paintOutlineForFragments):
(WebCore::RenderLayer::paintMaskForFragments):
(WebCore::RenderLayer::paintChildClippingMaskForFragments):
(WebCore::RenderLayer::paintOverflowControlsForFragments):
(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLayer.h:
9:13 PM Changeset in webkit [200283] by Simon Fraser
  • 7 edits
    8 adds in trunk

Blur filter escapes an enclosing overflow:hidden
https://bugs.webkit.org/show_bug.cgi?id=155029

Reviewed by Zalan Bujtas.

Source/WebCore:

The clipping that was applied when drawing the results of filters was wrong for two reasons.

First, it used localPaintingInfo which has already been contaminated when setting up the filters.
When painting the result, we need to use the original paintingInfo, to get the right paintDirtyRect.

Secondly, when setting up the clip to paint the filter result, it was relying on layerFragments[0].backgroundRect.
However, that was also contaminated by filter setup, since calculateRects() intersects with paintDirtyRect to
compute that backgroundRect, and that paintDirtyRect came from filterPainter->repaintRect().

Fix this second issue by re-running collectFragments(), which computes a fragment backgroundRect using
the original paintDirtyRect.

Tests: css3/filters/blur-clipped-by-ancestor.html

css3/filters/blur-clipped-with-overflow.html
css3/filters/drop-shadow-with-overflow-hidden.html
css3/filters/drop-shadow.html

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::clearResult): Unconditionally null these out.

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRendererHelper::beginFilterEffect): Typo fix.

  • rendering/FilterEffectRenderer.h:

(WebCore::FilterEffectRendererHelper::FilterEffectRendererHelper): C++11 initialization.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::applyFilters):
(WebCore::RenderLayer::paintLayerContents):

  • rendering/RenderLayer.h: const

LayoutTests:

  • css3/filters/blur-clipped-by-ancestor-expected.html: Added.
  • css3/filters/blur-clipped-by-ancestor.html: Added.
  • css3/filters/blur-clipped-with-overflow-expected.html: Added.
  • css3/filters/blur-clipped-with-overflow.html: Added.
  • css3/filters/drop-shadow-expected.html: Added.
  • css3/filters/drop-shadow-with-overflow-hidden-expected.html: Added.
  • css3/filters/drop-shadow-with-overflow-hidden.html: Added.
  • css3/filters/drop-shadow.html: Added.
8:54 PM Changeset in webkit [200282] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

REGRESSION(194502): overflow: scroll; direction: rtl; divs jump horizontally when scrolled vertically
https://bugs.webkit.org/show_bug.cgi?id=157201

Reviewed by Simon Fraser.

Source/WebCore:

ScrollableArea::scrollToOffsetWithoutAnimation() was mistakenly conflating scroll offsets with
scroll positions.

Test: fast/scrolling/rtl-drag-vertical-scroller.html

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::scrollToOffsetWithoutAnimation):

LayoutTests:

  • fast/scrolling/rtl-drag-vertical-scroller-expected.txt: Added.
  • fast/scrolling/rtl-drag-vertical-scroller.html: Added.
8:36 PM Changeset in webkit [200281] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Drop useless check in SpeculativeLoadManager::registerLoad()
https://bugs.webkit.org/show_bug.cgi?id=157204

Reviewed by Antti Koivisto.

Drop useless check in SpeculativeLoadManager::registerLoad(). There is
no way to end up this code path with a non-HTTP family request.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):

8:21 PM Changeset in webkit [200280] by BJ Burg
  • 5 edits in trunk/Source/WebKit2

Web Automation: add SPI to mark an existing NSEvent as synthesized for automation
https://bugs.webkit.org/show_bug.cgi?id=157221
<rdar://problem/26019356>

Reviewed by Timothy Hatcher.

In cases where an NSEvent is duplicated, clients need to re-mark an NSEvent
as synthesized for automation if the original NSEvent was marked as such.

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

(-[_WKAutomationSession markEventAsSynthesizedForAutomation:]):

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Cocoa/WebAutomationSessionCocoa.mm:

(WebKit::WebAutomationSession::sendSynthesizedEventsToPage):
(WebKit::WebAutomationSession::markEventAsSynthesizedForAutomation):

7:55 PM Changeset in webkit [200279] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Clean up GraphicsContext use in RenderLayer::paintLayerContents()
https://bugs.webkit.org/show_bug.cgi?id=157193

Reviewed by Zalan Bujtas.

Make the lifetime of the temporary GraphicsContext used to paint filters more explicit
by putting it in an inner scope.

Make currentContext a reference.

transparencyLayerContext was a confusing name (it doens't mean we've started a
transparency layer), so just use "context" to refer to the original context. When
passed to other functions, this is called "contextForTransparencyLayer".

No longer leaves "context" as a null pointer if filterPainter->filterContext() returns
a null pointer. It's unclear if this ever happened.

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRendererHelper::filterContext):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::RenderLayer::applyFilters):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragments):

  • rendering/RenderLayer.h:
7:37 PM Changeset in webkit [200278] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

Web Automation: use a magic eventNumber as a fallback for detecting NSEvents synthesized for automation
https://bugs.webkit.org/show_bug.cgi?id=157222

Reviewed by Timothy Hatcher.

Sometimes events are copied and redelivered in a way that can't be reliably intercepted,
so use eventNumber as an alternate means of detecting synthesized mouse NSEvents.

  • UIProcess/Cocoa/WebAutomationSessionCocoa.mm:

(WebKit::WebAutomationSession::wasEventSynthesizedForAutomation):
If it's a mouse-related event, check the eventNumber if the associated object was missing.

(WebKit::WebAutomationSession::platformSimulateMouseInteraction):
Most real events from input devices fill in eventNumber with a non-zero value.
In my testing, using zero did not seem to adversely affect event delivery.

6:50 PM Changeset in webkit [200277] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

[JSC][ARMv7S] Arithmetic module results change when tiering up to DFG
https://bugs.webkit.org/show_bug.cgi?id=157217
rdar://problem/24733432

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-04-29
Reviewed by Mark Lam.

ARMv7's fmod() returns less accurate results than an integer division.
Since we have integer div on ARMv7s, the results start changing when
we reach DFG.

In this patch, I change our fmod slow path to behave like the fast path
on ARMv7s.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithMod):
(JSC::DFG::fmodAsDFGOperation): Deleted.

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/MathCommon.cpp:

(JSC::isStrictInt32):

  • runtime/MathCommon.h:
6:47 PM Changeset in webkit [200276] by commit-queue@webkit.org
  • 14 edits in trunk/Source

Web Inspector: Issues inspecting the inspector, pausing on breakpoints causes content to not load
https://bugs.webkit.org/show_bug.cgi?id=157198
<rdar://problem/26011049>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-29
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/InspectorBackendDispatcher.cpp:

(Inspector::BackendDispatcher::sendResponse):
While auditing the code, add a WTFMove.

Source/WebCore:

No new tests. This only affects inspecting an inspector.

  • inspector/InspectorController.h:
  • inspector/InspectorFrontendClient.h:

(WebCore::InspectorFrontendClient::pagePaused):
(WebCore::InspectorFrontendClient::pageUnpaused):

  • inspector/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::setJavaScriptPaused):
Inform a frontend client if the frontend page itself pauses/unpauses.

Source/WebInspectorUI:

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackendClass.prototype._sendCommandToBackendWithCallback):
(InspectorBackendClass.prototype._sendCommandToBackendExpectingPromise):
While auditing, use simpler check.

  • UserInterface/Proxies/FormatterWorkerProxy.js:

(WebInspector.FormatterWorkerProxy.canFormat): Deleted.
While auditing, remove dead code.

Source/WebKit2:

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

(WebKit::WebInspectorFrontendAPIDispatcher::reset):
(WebKit::WebInspectorFrontendAPIDispatcher::frontendLoaded):
(WebKit::WebInspectorFrontendAPIDispatcher::suspend):
(WebKit::WebInspectorFrontendAPIDispatcher::unsuspend):
(WebKit::WebInspectorFrontendAPIDispatcher::dispatchCommand):
(WebKit::WebInspectorFrontendAPIDispatcher::dispatchMessageAsync):
(WebKit::WebInspectorFrontendAPIDispatcher::evaluateOrQueueExpression):
(WebKit::WebInspectorFrontendAPIDispatcher::evaluateQueuedExpressions):
Avoid evaluating expressions when the page is paused. Generalize the
message queueing and dispatching for pause/suspend that we already
had for waiting for the frontend page to be loaded.

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

(WebKit::WebInspectorUI::pagePaused):
(WebKit::WebInspectorUI::pageUnpaused):
When the frontend page pauses/unpauses, suspend/resume the dispatcher.

6:28 PM Changeset in webkit [200275] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Remove unnecessary isolated String copying from one of NetworkCache::Key's constructor
https://bugs.webkit.org/show_bug.cgi?id=157207

Reviewed by Antti Koivisto.

Remove unnecessary isolated String copying from one of NetworkCache::Key's
constructor. We are anyway going to create isolated copies if the Key ends
up getting copied.

  • NetworkProcess/cache/NetworkCacheKey.cpp:

(WebKit::NetworkCache::Key::Key):

6:14 PM Changeset in webkit [200274] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

Web Automation: performMouseInteraction command computes mouse event coordinates incorrectly
https://bugs.webkit.org/show_bug.cgi?id=157218
<rdar://problem/26018230>

Reviewed by Timothy Hatcher.

This patch fixes two issues: the min/max clamp was in the wrong order,
and the y-value did not account for the window's top content inset.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::performMouseInteraction):

5:52 PM Changeset in webkit [200273] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS] do not exit AirPlay when the screen locks
https://bugs.webkit.org/show_bug.cgi?id=156502
<rdar://problem/24616592>

Reviewed by Dean Jackson

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::pendingActionTimerFired): Use m_isPlayingToWirelessTarget.
(WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsWireless): Ditto.
(WebCore::HTMLMediaElement::wirelessRoutesAvailableDidChange): Set m_isPlayingToWirelessTarget.
(WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Use

m_isPlayingToWirelessTarget.

(WebCore::HTMLMediaElement::isPlayingToWirelessPlaybackTarget): Ditto.
(WebCore::HTMLMediaElement::configureMediaControls): Ditto.
(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction): Add logging.
(WebCore::HTMLMediaElement::purgeBufferedDataIfPossible): Don't tell the media engine to purge

data if it is playing to a wireless target because that will drop the connection.

  • html/HTMLMediaElement.h:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::playbackPermitted): Add logging.
(WebCore::MediaElementSession::canPlayToWirelessPlaybackTarget): Drive by fix: iOS doesn't

have an explicit playbackTarget, don't test for it.

(WebCore::MediaElementSession::isPlayingToWirelessPlaybackTarget): Ditto.

5:34 PM Changeset in webkit [200272] by mark.lam@apple.com
  • 11 edits
    12 adds in trunk

Make RegExp.prototype.test spec compliant.
https://bugs.webkit.org/show_bug.cgi?id=155862

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • builtins/RegExpPrototype.js:

(intrinsic.RegExpTestIntrinsic.test):

  • create_hash_table:
  • Delete obsoleted code.
  • dfg/DFGByteCodeParser.cpp:

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

  • We now have 2 intrinsics for RegExp.prototype.test: RegExpTestIntrinsic and RegExpTestFastIntrinsic.

RegExpTestIntrinsic maps to the entry at the top of the builtin ES6
RegExp.prototype.test.
RegExpTestFastIntrinsic maps to the fast path in the builtin ES6
RegExp.prototype.test.

Both will end up using the RegExpTest DFG node to implement the fast path
of RegExp.prototype.test. RegExpTestIntrinsic will have some additional checks
before the RegExpTest node. Those checks are for speculating that it is ok for
us to take the fast path.

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

(JSC::JSGlobalObject::init):

  • Added the regExpTestFast function.
  • Also fixed the parameter length on 2 other functions that were erroneous.
  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::finishCreation):
(JSC::regExpProtoFuncTestFast):
(JSC::regExpProtoFuncTest): Deleted.

  • runtime/RegExpPrototype.h:
  • tests/es6.yaml:

LayoutTests:

  • js/regress/regexp-prototype-test-observable-side-effects-expected.txt: Added.
  • js/regress/regexp-prototype-test-observable-side-effects.html: Added.
  • js/regress/regexp-prototype-test-observable-side-effects2-expected.txt: Added.
  • js/regress/regexp-prototype-test-observable-side-effects2.html: Added.
  • js/regress/script-tests/regexp-prototype-test-observable-side-effects.js: Added.
  • js/regress/script-tests/simple-regexp-test-folding-fail-with-hoisted-regexp.js: Added.
  • js/regress/script-tests/simple-regexp-test-folding-with-hoisted-regexp.js: Added.
  • js/regress/simple-regexp-test-folding-fail-with-hoisted-regexp-expected.txt: Added.
  • js/regress/simple-regexp-test-folding-fail-with-hoisted-regexp.html: Added.
  • js/regress/simple-regexp-test-folding-with-hoisted-regexp-expected.txt: Added.
  • js/regress/simple-regexp-test-folding-with-hoisted-regexp.html: Added.
5:12 PM Changeset in webkit [200271] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Node.nodeName should not be nullable
https://bugs.webkit.org/show_bug.cgi?id=157211

Reviewed by Ryosuke Niwa.

Node.nodeName should not be nullable as per the specification:
https://dom.spec.whatwg.org/#interface-node

Our implementation never returns null anyway. However, having
it as nullable in the IDL means we use jsStringOrNull() instead
of jsStringWithCache(), thus doing an unnecessary null check.

This should not be observable by JS.

  • dom/Node.idl:
5:10 PM Changeset in webkit [200270] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Scrolling in Timelines causes flashing of the DataGrid
https://bugs.webkit.org/show_bug.cgi?id=157212
rdar://problem/25994717

Listen for mousewheel events too so we can update the visible rows sooner.

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid): Call _updateScrollListeners.
(WebInspector.DataGrid.prototype.set inline): Use _updateScrollListeners.
(WebInspector.DataGrid.prototype.set variableHeightRows): Use _updateScrollListeners.
(WebInspector.DataGrid.prototype._updateScrollListeners): Added. Listen for mousewheel too.

4:56 PM Changeset in webkit [200269] by Ryan Haddad
  • 4 edits in trunk

Unreviewed, rolling out r200150 and r200256.
https://bugs.webkit.org/show_bug.cgi?id=157216

This change introduced flakiness in existing CJK LayoutTests.
Also reverting the change that marked the tests as flaky.
(Requested by ryanhaddad on #webkit).

Reverted changesets:

"Clean up Font::removeFromSystemFallbackCache()"
https://bugs.webkit.org/show_bug.cgi?id=157093
http://trac.webkit.org/changeset/200150

"Marking fast/ruby/ruby-expansion-cjk.html and fast/ruby/ruby-
expansion-cjk-4.html as flaky on Mac"
https://bugs.webkit.org/show_bug.cgi?id=157197
http://trac.webkit.org/changeset/200256

Patch by Commit Queue <commit-queue@webkit.org> on 2016-04-29

4:54 PM Changeset in webkit [200268] by dino@apple.com
  • 4 edits in trunk/Source

RTL <select> popup menu is in the wrong location
https://bugs.webkit.org/show_bug.cgi?id=157159
<rdar://problem/25894451>

Reapply http://trac.webkit.org/changeset/200217
but with changes that will allow it to build on Yosemite.

4:43 PM Changeset in webkit [200267] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Change ios-simulator expectation for tests added with r200265 from ImageOnlyFailure to Failure

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
3:40 PM Changeset in webkit [200266] by eric.carlson@apple.com
  • 3 edits in trunk/LayoutTests

[Mac] AirPlay fails if target is set before AVPlayer has been created
https://bugs.webkit.org/show_bug.cgi?id=157147
<rdar://problem/24197592>

Unreviewed, update test so the results are consistent on different machines.

  • media/media-source/media-source-airplay-expected.txt:
  • media/media-source/media-source-airplay.html:
2:48 PM Changeset in webkit [200265] by tonikitoo@webkit.org
  • 5 edits
    4 adds in trunk

<select multiple> padding should react when scrolling
Source/WebCore:

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

Reviewed by Reviewed by Darin Adler.

Tests: fast/forms/listbox-respects-padding-bottom.html

fast/forms/listbox-top-padding-do-not-clip-items.html

Non-dropdown listboxes have support to padding-{top,bottom} implemented similarly
to the border model: the padding area does not move when the listbox' content gets scrolled,
but instead it clips out its content.
This is not consistent with other browsers and is not consistent with the CSS box model.

This in practice, if a <select> has padding-top set, the padding-top area will clip out listbox'
content as one scrolls upwards.
It also means that if padding-bottom is set, when one scrolls all the way to the bottom
of the listbox content, padding-bottom is not respected.

In order to fix these two problems, and make WebKit match Blink with respect to the the way
padding-{top,bottom} are handled, patch adds two class member variables that control the number
of list items (i.e. <option>s) that can be painted over the current listbox' padding area.

In short, depending on the scroll position and the amount of space available in the padding top/bottom
areas, items are painted or not on top of it, mimic'ing the CSS box model behavior of other browsers.

Note that this is specific solution is worth it to pursue on the short/mid term, but a long-term solution
to this problem and many other listbox discrepancies on WebKit's implementation, would be to reimplement
RenderListBox class in terms of RenderLayer. This will be a follow up work.

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::updateFromElement):
(WebCore::RenderListBox::numVisibleItems):
(WebCore::RenderListBox::paintObject):
(WebCore::RenderListBox::scrollToRevealElementAtListIndex):
(WebCore::RenderListBox::listIndexIsVisible):
(WebCore::RenderListBox::maximumNumberOfItemsThatFitInPaddingBottomArea):
(WebCore::RenderListBox::numberOfVisibleItemsInPaddingTop):
(WebCore::RenderListBox::numberOfVisibleItemsInPaddingBottom):
(WebCore::RenderListBox::computeFirstIndexesVisibleInPaddingTopBottomAreas):
(WebCore::RenderListBox::scrollTo):

  • rendering/RenderListBox.h:

LayoutTests:

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

Reviewed by Reviewed by Darin Adler.

  • fast/forms/listbox-respects-padding-bottom-expected.txt: Added.
  • fast/forms/listbox-respects-padding-bottom.html: Added.
  • fast/forms/listbox-top-padding-do-not-clip-items-expected.txt: Added.
  • fast/forms/listbox-top-padding-do-not-clip-items.html: Added.
2:29 PM Changeset in webkit [200264] by eric.carlson@apple.com
  • 12 edits
    2 adds in trunk

[Mac] AirPlay fails if target is set before AVPlayer has been created
https://bugs.webkit.org/show_bug.cgi?id=157147
<rdar://problem/24197592>

Reviewed by Jer Noble.

Source/WebCore:

Test: media/media-source/media-source-airplay.html

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Clear flag before calling

setShouldPlayToPlaybackTarget so it does the necessary setup.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isAvailable): Return false if the mock

MSE source has been registered.

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType): Return 'not supported' if

isAvailable is false.

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): Fail if isAvailable is false.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isCurrentPlaybackTargetWireless): Cleanup.

  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::registered): Global accessor.
(WebCore::MockMediaPlayerMediaSource::isRegistered):
(WebCore::MockMediaPlayerMediaSource::registerMediaEngine): Set registered to true.
(WebCore::MockMediaPlayerMediaSource::setWirelessPlaybackTarget): New, remember the target.
(WebCore::MockMediaPlayerMediaSource::setShouldPlayToPlaybackTarget): New, remember the setting.
(WebCore::MockMediaPlayerMediaSource::isCurrentPlaybackTargetWireless):

  • platform/mock/mediasource/MockMediaPlayerMediaSource.h:
  • testing/Internals.cpp:

(WebCore::Internals::initializeMockMediaSource): Don't disable AVFoundation.

LayoutTests:

  • media/media-source/media-source-airplay-expected.txt: Added.
  • media/media-source/media-source-airplay.html: Added.
  • platform/efl/TestExpectations: Skip Mac-only test.
  • platform/gtk/TestExpectations: Ditto.
  • platform/ios-simulator/TestExpectations: Ditto.
  • platform/mac/TestExpectations: Skipped new tests on older versions of OS X.
  • platform/win/TestExpectations: Skip Mac-only test.
2:17 PM Changeset in webkit [200263] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Extend math-pow-stable-results.js to get more information about the failure

  • tests/stress/math-pow-stable-results.js:
2:08 PM Changeset in webkit [200262] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Jump to Line in auto formatted JavaScript does not work the first time
https://bugs.webkit.org/show_bug.cgi?id=157194
<rdar://problem/26008471>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-29
Reviewed by Timothy Hatcher.

When doing asynchronous formatting we set the content of the editor
twice. First to prime the editors back/foward list with the original
content, and then again after we get the formatted content from the
Worker, and then display the content.

The TextEditor attempts to reveal a position when the initial string
has been set. Back when autoformatting was synchronous this was fine.
Asynchronously however, this ends up happening between the original
and formatted value. Also, the TextEditor has no idea that the
SourceCodeTextEditor is going to format / defer displaying the
contents. Add a "defer" property to the TextEditor that the
SourceCodeTextEditor can use in this circumstance.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._populateWithContent):
Avoid revealing a position when setting the original content. We will
be formatting and we will want to reveal the position afterwards.

  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor):
(WebInspector.TextEditor.prototype.set deferReveal):
Provide another reason to defer revealing.

1:33 PM Changeset in webkit [200261] by mmaxfield@apple.com
  • 7 edits
    2 adds in trunk

[RTL Scrollbars] REGRESSION(r200116): Positioned contents can overlap RTL scrollbars
https://bugs.webkit.org/show_bug.cgi?id=157164
<rdar://problem/25993610>

Reviewed by Darin Adler.

Source/WebCore:

There was some code left over from the old implementation of RTL_SCROLLBARS
which had some faulty assumptions about the interaction between direction
and scrollbar placement. In particular, once we began obeying the "dir"
attribute in r200116, these assumptions were no longer valid.

Test: fast/scrolling/rtl-scrollbars-positioned-intersect-scrollbars.html

scrollbars/rtl/div-absolute.html
scrollbars/rtl/div-horizontal.html

  • rendering/InlineFlowBox.h:

(WebCore::InlineFlowBox::layoutOverflowRect):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computeOverflow): Deleted.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::layoutOverflowRectForPropagation):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::computeScrollDimensions):

LayoutTests:

  • TestExpectations:
  • fast/scrolling/rtl-scrollbars-positioned-intersect-scrollbars-expected.html: Added.
  • fast/scrolling/rtl-scrollbars-positioned-intersect-scrollbars.html: Added.
1:29 PM Changeset in webkit [200260] by jdiggs@igalia.com
  • 6 edits in trunk/LayoutTests

[GTK] r65681 broke a couple GTK+ a11y tests
https://bugs.webkit.org/show_bug.cgi?id=44316

Reviewed by Martin Robinson.

The original regression has apparently been fixed, possibly quite some time
ago. Updating both tests and associated expectations to reflect what has
changed over the years. Leaving title-and-alt.html as skipped, but marked
as failing due to a different bug (157187).

  • accessibility/gtk/object-attributes-expected.txt:
  • accessibility/gtk/object-attributes.html:
  • accessibility/gtk/title-and-alt-expected.txt:
  • accessibility/gtk/title-and-alt.html:
  • platform/gtk/TestExpectations:
1:11 PM Changeset in webkit [200259] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Fix a typo in r200255.

  • resources/testharnessreport.js:

(self.testRunner.add_completion_callback):

1:05 PM Changeset in webkit [200258] by n_wang@apple.com
  • 6 edits in trunk

AX: CharacterOffset not working correctly with composed characters and collapsed white spaces
https://bugs.webkit.org/show_bug.cgi?id=157190

Reviewed by Chris Fleizach.

Source/WebCore:

When navigating emoji, next/previous text marker call is only moving by one character. Fixed it by
using the helper function in Position to get the real character count for the composed character sequence.
Also there's another issue with collapsed white spaces, TextIterator emits only one space. So we have to
use the actual space length to create the CharacterOffset in order to generate valid Range object from it.

New test cases in accessibility/text-marker/text-marker-previous-next.html.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::traverseToOffsetInRange):
(WebCore::AXObjectCache::textMarkerDataForNextCharacterOffset):
(WebCore::AXObjectCache::textMarkerDataForPreviousCharacterOffset):
(WebCore::AXObjectCache::nextNode):
(WebCore::AXObjectCache::characterOffsetFromVisiblePosition):
(WebCore::AXObjectCache::nextCharacterOffset):
(WebCore::AXObjectCache::previousCharacterOffset):
(WebCore::AXObjectCache::startCharacterOffsetOfWord):

LayoutTests:

  • accessibility/mac/text-marker-word-nav.html:
  • accessibility/text-marker/text-marker-previous-next-expected.txt:
  • accessibility/text-marker/text-marker-previous-next.html:
1:01 PM Changeset in webkit [200257] by Yusuke Suzuki
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Assertion failure for exception in "prototype" property getter and Reflect.construct
https://bugs.webkit.org/show_bug.cgi?id=157084

Reviewed by Mark Lam.

InternalFunction::createSubclassStrucuture may throw exceptions because it performs Get? to
look up the "prototype" object. The current assertion is invalid.
We also found that Object constructor is not aware of new.target. This is filed[1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=157196

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::createSubclassStructure):

  • tests/stress/create-subclass-structure-may-throw-exception-when-getting-prototype.js: Added.

(shouldThrow):
(bf):

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

Marking fast/ruby/ruby-expansion-cjk.html and fast/ruby/ruby-expansion-cjk-4.html as flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=157197

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:39 PM Changeset in webkit [200255] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

test harness tests complain about testRunner not being declared inside a browser
https://bugs.webkit.org/show_bug.cgi?id=157056

Reviewed by Alex Christensen.

Don't run the code meant to re-format results for DRT/WTR when testRunner is not defined (i.e. inside a browser).
Also fixed various styling issues with this JavaScript file and removed useless comments.

  • resources/testharnessreport.js:
11:24 AM Changeset in webkit [200254] by jer.noble@apple.com
  • 4 edits
    2 adds in trunk/Source/WebCore

WebPlaybackControlsManager should not be owned by the WebPlaybackSessionInterfaceMac.
https://bugs.webkit.org/show_bug.cgi?id=157155
<rdar://problem/25991724>

Reviewed by Beth Dakin.

Move the WebPlaybackControlsManager class into its own header and implementation files.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mac/WebPlaybackControlsManager.h: Added.
  • platform/mac/WebPlaybackControlsManager.mm: Added.

(-[WebPlaybackControlsManager timing]): Moved from WebPlaybackSessionInterfaceMac.
(-[WebPlaybackControlsManager setTiming:]): Ditto.
(-[WebPlaybackControlsManager seekableTimeRanges]): Ditto.
(-[WebPlaybackControlsManager setSeekableTimeRanges:]): Ditto.
(-[WebPlaybackControlsManager setAudioMediaSelectionOptions:withSelectedIndex:]): Ditto.
(-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:withSelectedIndex:]): Ditto.

  • platform/mac/WebPlaybackSessionInterfaceMac.h:
  • platform/mac/WebPlaybackSessionInterfaceMac.mm:

(WebCore::WebPlaybackSessionInterfaceMac::setPlayBackControlsManager):
(-[WebPlaybackControlsManager initWithWebPlaybackSessionInterfaceMac:]): Deleted.
(-[WebPlaybackControlsManager timing]): Deleted.
(-[WebPlaybackControlsManager setTiming:]): Deleted.
(-[WebPlaybackControlsManager seekableTimeRanges]): Deleted.
(-[WebPlaybackControlsManager setSeekableTimeRanges:]): Deleted.
(-[WebPlaybackControlsManager setAudioMediaSelectionOptions:withSelectedIndex:]): Deleted.
(-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:withSelectedIndex:]): Deleted.
(WebCore::WebPlaybackSessionInterfaceMac::playBackControlsManager): Deleted.

11:23 AM Changeset in webkit [200253] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Add JSC test results in JSON format to a Buildbot log.
https://bugs.webkit.org/show_bug.cgi?id=156920

Patch by Srinivasan Vijayaraghavan <svijayaraghavan@apple.com> on 2016-04-29
Reviewed by Daniel Bates.

Generate JSON results for JSC tests and upload them to the master
using Buildbot's logfiles machinery.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(RunJavaScriptCoreTests): Use --json-output option when invoking the
run-javascriptcore-tests Perl script, and expose this JSON output as a
Buildbot log.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests): Change key names and remove redundant count key.

10:44 AM Changeset in webkit [200252] by Ryan Haddad
  • 32 edits
    3 deletes in trunk

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

This change broke the Mac CMake build and its LayoutTest is
failing and/or flaky on all platforms (Requested by ryanhaddad
on #webkit).

Reverted changeset:

"Move ResourceTiming behind a runtime flag"
https://bugs.webkit.org/show_bug.cgi?id=157133
http://trac.webkit.org/changeset/200232

Patch by Commit Queue <commit-queue@webkit.org> on 2016-04-29

10:29 AM Changeset in webkit [200251] by adachan@apple.com
  • 2 edits in trunk/Source/WebKit2

Indicate we are processing user gesture when handling messages from WebPlaybackSessionManagerProxy to WebPlaybackSessionManager
https://bugs.webkit.org/show_bug.cgi?id=157151

Reviewed by Jer Noble.

Messages from WebPlaybackSessionManagerProxy to WebPlaybackSessionManager are triggered by
user actions, so add a UserGestureIndicator in the methods that handle those messages.

  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionManager::play):
(WebKit::WebPlaybackSessionManager::pause):
(WebKit::WebPlaybackSessionManager::togglePlayState):
(WebKit::WebPlaybackSessionManager::beginScrubbing):
(WebKit::WebPlaybackSessionManager::endScrubbing):
(WebKit::WebPlaybackSessionManager::seekToTime):
(WebKit::WebPlaybackSessionManager::fastSeek):
(WebKit::WebPlaybackSessionManager::beginScanningForward):
(WebKit::WebPlaybackSessionManager::beginScanningBackward):
(WebKit::WebPlaybackSessionManager::endScanning):
(WebKit::WebPlaybackSessionManager::selectAudioMediaOption):
(WebKit::WebPlaybackSessionManager::selectLegibleMediaOption):

10:20 AM Changeset in webkit [200250] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Fix build failure introduced by r199738
https://bugs.webkit.org/show_bug.cgi?id=157182

Patch by Jeremy Huddleston Sequoia <jeremyhu@apple.com> on 2016-04-29
Reviewed by Alex Christensen.

  • CMakeLists.txt:
10:05 AM Changeset in webkit [200249] by beidson@apple.com
  • 6 edits in trunk/Source

Add a default ".isolatedCopy()" specialization to CrossThreadCopier, and other small cleanup.
https://bugs.webkit.org/show_bug.cgi?id=157185

Reviewed by Anders Carlsson.

Source/WebCore:

No new tests (Code cleanup, no change in behavior).

  • platform/CrossThreadCopier.cpp:

(WebCore::IndexedDB::TransactionMode>::copy): Deleted.
(WebCore::IndexedDB::CursorDirection>::copy): Deleted.
(WebCore::IndexedDB::CursorType>::copy): Deleted.
(WebCore::IDBGetResult>::copy): Deleted.
(WebCore::IDBKeyData>::copy): Deleted.
(WebCore::IDBKeyRangeData>::copy): Deleted.
(WebCore::IDBDatabaseInfo>::copy): Deleted.
(WebCore::IDBDatabaseIdentifier>::copy): Deleted.
(WebCore::IDBTransactionInfo>::copy): Deleted.
(WebCore::IDBResourceIdentifier>::copy): Deleted.
(WebCore::IDBError>::copy): Deleted.
(WebCore::IDBObjectStoreInfo>::copy): Deleted.
(WebCore::IDBIndexInfo>::copy): Deleted.
(WebCore::IDBCursorInfo>::copy): Deleted.
(WebCore::IDBValue>::copy): Deleted.

  • platform/CrossThreadCopier.h:

(WebCore::AllowCrossThreadAccessWrapper::AllowCrossThreadAccessWrapper): Deleted dead code.
(WebCore::AllowCrossThreadAccessWrapper::value): Deleted dead code.
(WebCore::AllowCrossThreadAccess): Deleted dead code.
(WebCore::AllowAccessLaterWrapper::AllowAccessLaterWrapper): Deleted dead code.
(WebCore::AllowAccessLaterWrapper::value): Deleted dead code.
(WebCore::AllowAccessLater): Deleted dead code.

Source/WebKit2:

  • Shared/WebCrossThreadCopier.cpp:

(WebCore::Vector<char>>::copy): reserveInitialCapacity() before creating the copy.
(WebCore::Vector<int64_t>>::copy): Ditto.
(WebCore::Vector<uint8_t>>::copy): Ditto.
(WebCore::Vector<Vector<IDBKeyData>>>::copy): Deleted dead code.

  • Shared/WebCrossThreadCopier.h:
9:54 AM Changeset in webkit [200248] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed gardening: update expectations after r200234
https://bugs.webkit.org/show_bug.cgi?id=157181

Unreviewed gardening.

Patch by Miguel Gomez <magomez@igalia.com> on 2016-04-29

  • platform/gtk/TestExpectations:
9:54 AM Changeset in webkit [200247] by Simon Fraser
  • 4 edits
    2 adds in trunk

Wheel Event Not Fired For body,html { height:100% }
https://bugs.webkit.org/show_bug.cgi?id=148450

Reviewed by Brent Fulgham.

Source/WebCore:

EventHandler::handleWheelEvent() didn't pass the Active flag in the HitTestRequest,
which causes code in RenderLayer::hitTest() to fail to fall back to returning the
root layer if no other element is hit. "Active" is in the default flags,
so just create the HitTestRequest with the default flags.

Test: fast/events/wheel-event-outside-body.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEvent):

LayoutTests:

Testcase, skipped on iOS which doesn't support wheel events.

  • fast/events/wheel-event-outside-body-expected.txt: Added.
  • fast/events/wheel-event-outside-body.html: Added.
  • platform/ios-simulator/TestExpectations:
9:51 AM Changeset in webkit [200246] by Chris Dumez
  • 31 edits in trunk

[Web IDL] Specify default values for optional parameters of wrapper types
https://bugs.webkit.org/show_bug.cgi?id=157161

Reviewed by Darin Adler.

Source/WebCore:

Specify default values for optional parameters of wrapper types.

  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::count): Deleted.

  • Modules/indexeddb/IDBIndex.h:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::count): Deleted.

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::createDataChannel): Deleted.

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(WillConvertUndefinedToDefaultParameterValue):
Optimization to avoid generating a ternary if the default
value of a wrapper type parameter is null, since undefined
will already convert to null for those.

(GenerateParametersCheck):
Use null as implicit default value for nullable parameters, given that Web IDL
converts undefined to null for such parameters:
http://heycam.github.io/webidl/#es-nullable-type

(CanUseWTFOptionalForParameter):
Drop the check for wrapper types.

  • bindings/scripts/test/*:

Improve bindings tests coverage / rebaseline.

  • css/MediaQueryList.idl:
  • css/MediaQueryListListener.idl:
  • dom/Document.idl:
  • html/canvas/DOMPath.idl:

The previous syntax was working because the bindings was generating an early
return if addPath() was called with only one parameter, calling the
implementation method with only 1 parameter. However, since we no longer
generate early returns for optional parameters, we now have to use a slightly
different syntax to maintain the previous behavior. This is only temporary,
I just did not want to deal with SVG tear off types in this patch since they
are very special in the bindings generator.

  • page/DOMSelection.idl:

The node parameter to extend() was confusingly marked as optional. However,
when omitted, it would get translated into null, which would throw an
exception since the type is not nullable. Since the specification says 'node'
should not be optional, and since there is no behavior change, I dropped
the 'optional'. The only web-exposed difference is the message provided with
the TypeError that is thrown when called without enough parameters. The new
message is more accurate (see rebaselined layout test).

  • svg/SVGMarkerElement.idl:

The parameter for setOrientToAngle() was confusingly marked as optional and
having a default value of null. However, the bindings would throw a TypeError
if called with no parameters or when calling it with null. This is because
this is an SVG Tear off type and the bindings always throw when passing null
for an SVG Tear off type. I therefore updated the IDL to reflect the actual
behavior (no actual behavior change). The new IDL also now matches the spec:
http://www.w3.org/TR/SVG2/painting.html#InterfaceSVGMarkerElement

  • svg/SVGSVGElement.idl:

Same comments as for SVGMarkerElement. The new IDL matches the actual
behavior and is closer to the specification. I added FIXME comments for when
it does not match the specification:
http://www.w3.org/TR/SVG2/struct.html#InterfaceSVGSVGElement
I did not change web-exposed behavior in this patch.

  • svg/SVGTextContentElement.idl:

Same as above. No actual behavior change.

  • testing/Internals.cpp:
  • testing/Internals.h:
  • testing/Internals.idl:
  • xml/XPathEvaluator.idl:

LayoutTests:

Rebaseline as a different exception message is now given when calling
Selection.extend() without enough parameters.

  • editing/selection/extend-expected.txt:
9:44 AM Changeset in webkit [200245] by jdiggs@igalia.com
  • 6 edits
    1 add in trunk

[ATK] Expose the value of aria-roledescription via an AtkObject attribute
https://bugs.webkit.org/show_bug.cgi?id=146719

Reviewed by Chris Fleizach.

Source/WebCore:

The author-provided value is now exposed via an AtkObject attribute.

Implementation is already covered by aria-roledescription.html. The ATK
expectations are slightly different than those for AX API because falling
back on the default role description is done by assistive technologies.
That this fall back is needed is identified by the lack of an author-
provided value. Thus we do not wish to expose the default role description
in our implementation.

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(webkitAccessibleGetAttributes):

Tools:

Implement roleDescription() so that the implementation can be tested.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::roleDescription):

LayoutTests:

Platform-specific expectations are needed because falling back on the default
role description is done by assistive technologies. That this fall back is needed
is identified by the lack of an author-provided value. Thus we do not wish to
expose the default role description in our implementation.

  • platform/gtk/TestExpectations: Unskipped the failing test.
  • platform/gtk/accessibility/aria-roledescription-expected.txt: Added.
9:39 AM Changeset in webkit [200244] by jdiggs@igalia.com
  • 4 edits in trunk

[ATK] accessibility/aria-current-global-attribute.html has been failed since r198303
https://bugs.webkit.org/show_bug.cgi?id=155935

Reviewed by Chris Fleizach.

Source/WebCore:

In ATK, the text of span elements is typically exposed through the parent
element, unless the span has some attribute requiring inclusion in the
accessibility tree. We were not checking for the presence of global ARIA
attributes (including aria-current), other than describedby and role.
The fix is to also check AccessibilityObject::supportsARIAAttributes().

No new tests. This issue was caught as a result of a failing test.

  • accessibility/atk/AccessibilityObjectAtk.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):

LayoutTests:

  • platform/efl/TestExpectations: Unskipped the failing test.
9:35 AM Changeset in webkit [200243] by Ryan Haddad
  • 4 edits in trunk/Source

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

This change broke the Yosemite build. (Requested by ryanhaddad
on #webkit).

Reverted changeset:

"RTL <select> popup menu is in the wrong location"
https://bugs.webkit.org/show_bug.cgi?id=157159
http://trac.webkit.org/changeset/200217

Patch by Commit Queue <commit-queue@webkit.org> on 2016-04-29

9:26 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
9:13 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
9:08 AM Changeset in webkit [200242] by Chris Dumez
  • 14 edits in trunk/Source/WebCore

[Web IDL] Drop 'any' type handling from CanUseWTFOptionalForParameter()
https://bugs.webkit.org/show_bug.cgi?id=157152

Reviewed by Darin Adler.

Drop 'any' type handling from CanUseWTFOptionalForParameter(). Always
use undefined as default value for parameters of type 'any' unless
specified otherwise.

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::continueFunction): Deleted.

  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::add): Deleted.
(WebCore::IDBObjectStore::putOrAdd): Deleted.

  • Modules/indexeddb/IDBObjectStore.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(WillConvertUndefinedToDefaultParameterValue):
Fix optimization for optional DOMString attributes whose default value
is the string "undefined". I also added bindings test coverage for it.

(GenerateParametersCheck):
(CanUseWTFOptionalForParameter): Deleted.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_method_with_optional_string_is_undefined):
(webkit_dom_test_obj_method_with_optional_any):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAny):

  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:

(-[DOMTestObj methodWithOptionalStringIsUndefined:]):
(-[DOMTestObj methodWithOptionalAny:]):

  • bindings/scripts/test/TestObj.idl:
  • testing/Internals.h:
6:10 AM Changeset in webkit [200241] by jdiggs@igalia.com
  • 2 edits
    2 adds in trunk/LayoutTests

[ATK] accessibility/double-nested-inline-element-missing-from-tree.html has been failed since r198219
https://bugs.webkit.org/show_bug.cgi?id=155939

Reviewed by Darin Adler.

Platform-specific expectations were needed because the ATK accessibility tree folds
certain elements, including spans, into the parent element.

  • platform/efl/TestExpectations: Unskipped the failing test.
  • platform/efl/accessibility/double-nested-inline-element-missing-from-tree-expected.txt: Added.
  • platform/gtk/accessibility/double-nested-inline-element-missing-from-tree-expected.txt: Added.
6:08 AM Changeset in webkit [200240] by jdiggs@igalia.com
  • 7 edits in trunk

AX: [ATK] Expose elements with ARIA's "text" role
https://bugs.webkit.org/show_bug.cgi?id=157160

Reviewed by Chris Fleizach.

Source/WebCore:

WebCore Accessibility's StaticTextRole is used for exposed RenderText
objects and for the ARIA "text" role. The former should be folded into
the parent element; the latter should not be, but was. Now we check to
see which type we have when building the accessibility tree. Also map
the "text" role to ATK_ROLE_STATIC.

We already have sufficient test coverage. Three previously-failing tests
are now passing.

  • accessibility/atk/AccessibilityObjectAtk.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(atkRole):

LayoutTests:

  • accessibility/aria-text-role.html: Modified to do platform-specific role checks.
  • platform/gtk/TestExpectations: Unskipped three previously-failing tests.
  • platform/gtk/accessibility/roles-computedRoleString-expected.txt: Updated for new behavior.
4:36 AM Changeset in webkit [200239] by Yusuke Suzuki
  • 2 edits
    2 adds in trunk/Source/JavaScriptCore

[ES6] RegExp.prototype.@@replace should use @isObject instead of instanceof for object guard
https://bugs.webkit.org/show_bug.cgi?id=157124

Reviewed by Keith Miller.

Use @isObject instead of instanceof @Object.
The instanceof check is not enough to check Object Type.
This fix itself is the same to r199647, and this patch is for RegExp.prototype.@@replace.

  • builtins/RegExpPrototype.js:

(replace):

  • tests/stress/regexp-replace-in-other-realm-should-work.js: Added.

(shouldBe):

  • tests/stress/regexp-replace-should-work-with-objects-not-inheriting-object-prototype.js: Added.

(shouldBe):
(regexp.exec):

4:27 AM Changeset in webkit [200238] by youenn.fablet@crf.canon.fr
  • 164 edits in trunk/LayoutTests/imported/w3c

Regnerate w3c-import.log files after r200109
https://bugs.webkit.org/show_bug.cgi?id=157171

Unreviewed.

Changing only log files.

  • web-platform-tests/XMLHttpRequest/resources/auth1/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/resources/auth2/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/resources/auth3/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/resources/auth4/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/resources/auth5/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/resources/auth6/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/resources/nocors/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/resources/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/w3c-import.log:
  • web-platform-tests/common/w3c-import.log:
  • web-platform-tests/dom/collections/w3c-import.log:
  • web-platform-tests/dom/events/w3c-import.log:
  • web-platform-tests/dom/lists/w3c-import.log:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/w3c-import.log:
  • web-platform-tests/dom/nodes/Document-contentType/resources/w3c-import.log:
  • web-platform-tests/dom/nodes/Document-contentType/support/w3c-import.log:
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/w3c-import.log:
  • web-platform-tests/dom/nodes/w3c-import.log:
  • web-platform-tests/dom/ranges/w3c-import.log:
  • web-platform-tests/dom/traversal/w3c-import.log:
  • web-platform-tests/dom/w3c-import.log:
  • web-platform-tests/domparsing/w3c-import.log:
  • web-platform-tests/fetch/api/basic/w3c-import.log:
  • web-platform-tests/fetch/api/cors/w3c-import.log:
  • web-platform-tests/fetch/api/credentials/w3c-import.log:
  • web-platform-tests/fetch/api/headers/w3c-import.log:
  • web-platform-tests/fetch/api/policies/w3c-import.log:
  • web-platform-tests/fetch/api/redirect/w3c-import.log:
  • web-platform-tests/fetch/api/request/w3c-import.log:
  • web-platform-tests/fetch/api/resources/w3c-import.log:
  • web-platform-tests/fetch/api/response/w3c-import.log:
  • web-platform-tests/fetch/nosniff/resources/w3c-import.log:
  • web-platform-tests/fetch/nosniff/w3c-import.log:
  • web-platform-tests/fetch/w3c-import.log:
  • web-platform-tests/fonts/w3c-import.log:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/w3c-import.log:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/w3c-import.log:
  • web-platform-tests/html/dom/documents/resource-metadata-management/w3c-import.log:
  • web-platform-tests/html/dom/dynamic-markup-insertion/closing-the-input-stream/w3c-import.log:
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/w3c-import.log:
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/w3c-import.log:
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/w3c-import.log:
  • web-platform-tests/html/dom/elements/content-models/w3c-import.log:
  • web-platform-tests/html/dom/elements/element-definitions/w3c-import.log:
  • web-platform-tests/html/dom/elements/elements-in-the-dom/w3c-import.log:
  • web-platform-tests/html/dom/elements/global-attributes/w3c-import.log:
  • web-platform-tests/html/dom/elements/wai-aria/w3c-import.log:
  • web-platform-tests/html/dom/w3c-import.log:
  • web-platform-tests/html/resources/w3c-import.log:
  • web-platform-tests/html/semantics/disabled-elements/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/styling/support/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/styling/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/the-base-element/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/the-style-element/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/the-title-element/w3c-import.log:
  • web-platform-tests/html/semantics/edits/the-del-element/w3c-import.log:
  • web-platform-tests/html/semantics/edits/the-ins-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/image-maps/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLMediaElement/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCueList/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackList/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TrackEvent/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/offsets-into-the-media-resource/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/playing-the-media-resource/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/user-interface/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-area-element/support/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-area-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-audio-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/current-pixel-density/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-video-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/w3c-import.log:
  • web-platform-tests/html/semantics/forms/constraints/support/w3c-import.log:
  • web-platform-tests/html/semantics/forms/constraints/w3c-import.log:
  • web-platform-tests/html/semantics/forms/form-control-infrastructure/w3c-import.log:
  • web-platform-tests/html/semantics/forms/form-submission-0/w3c-import.log:
  • web-platform-tests/html/semantics/forms/introduction-1/w3c-import.log:
  • web-platform-tests/html/semantics/forms/resetting-a-form/w3c-import.log:
  • web-platform-tests/html/semantics/forms/textfieldselection/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-button-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-datalist-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-fieldset-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-form-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-input-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-label-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-legend-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-meter-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-option-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-output-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-progress-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-select-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-textarea-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-dd-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-div-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-dl-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-dt-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-figcaption-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-figure-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-hr-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-li-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-p-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-pre-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-ul-element/w3c-import.log:
  • web-platform-tests/html/semantics/interactive-elements/commands/w3c-import.log:
  • web-platform-tests/html/semantics/interactive-elements/the-details-element/w3c-import.log:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
  • web-platform-tests/html/semantics/interactive-elements/the-menu-element/w3c-import.log:
  • web-platform-tests/html/semantics/links/downloading-resources/w3c-import.log:
  • web-platform-tests/html/semantics/links/linktypes/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log:
  • web-platform-tests/html/semantics/sections/headings-and-sections/w3c-import.log:
  • web-platform-tests/html/semantics/sections/the-h1-h2-h3-h4-h5-and-h6-elements/w3c-import.log:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/attributes-common-to-td-and-th-elements/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/processing-model-1/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/the-caption-element/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/the-table-element/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/the-tbody-element/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/the-tfoot-element/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/the-thead-element/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/the-tr-element/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/w3c-import.log:
  • web-platform-tests/html/semantics/text-level-semantics/the-a-element/w3c-import.log:
  • web-platform-tests/html/semantics/text-level-semantics/the-bdi-element/w3c-import.log:
  • web-platform-tests/html/semantics/text-level-semantics/the-bdo-element/w3c-import.log:
  • web-platform-tests/html/semantics/text-level-semantics/the-br-element/w3c-import.log:
  • web-platform-tests/html/semantics/text-level-semantics/the-time-element/w3c-import.log:
  • web-platform-tests/html/semantics/text-level-semantics/the-wbr-element/w3c-import.log:
  • web-platform-tests/html/semantics/w3c-import.log:
  • web-platform-tests/html/w3c-import.log:
  • web-platform-tests/images/w3c-import.log:
  • web-platform-tests/media/w3c-import.log:
  • web-platform-tests/service-workers/cache-storage/resources/w3c-import.log:
  • web-platform-tests/service-workers/cache-storage/script-tests/w3c-import.log:
  • web-platform-tests/service-workers/cache-storage/serviceworker/w3c-import.log:
  • web-platform-tests/service-workers/cache-storage/w3c-import.log:
  • web-platform-tests/service-workers/cache-storage/window/w3c-import.log:
  • web-platform-tests/service-workers/cache-storage/worker/w3c-import.log:
  • web-platform-tests/service-workers/service-workers/resources/w3c-import.log:
  • web-platform-tests/service-workers/tools/w3c-import.log:
  • web-platform-tests/service-workers/w3c-import.log:
  • web-platform-tests/streams/readable-streams/w3c-import.log:
  • web-platform-tests/streams/resources/w3c-import.log:
  • web-platform-tests/streams/w3c-import.log:
  • web-platform-tests/w3c-import.log:
2:57 AM Changeset in webkit [200237] by Carlos Garcia Campos
  • 7 edits in trunk/Source/WebCore

[FreeType] ASSERTION FAILED: !lookupForWriting(Extractor::extract(entry)).second in FontCache::getVerticalData()
https://bugs.webkit.org/show_bug.cgi?id=157132

Reviewed by Darin Adler.

I've noticed that some tests fail randomly in the GTK+ debug bot due to an assertion in HashMap when getting
vertical data from the FontCache. I don't know exactly what's wrong, but looks like a problem with the
FontVerticalDataCache hash traits implementation. Looking at the code, I've realized that we could simplify
everything by reusing the FontDataCache hash and traits, since we are actually using the
FontPlatformData::hash() in the end in both cases. Also, I don't see why we need to get the vertical data from
the FontPlatformData while it's actually cached by the font cache. We could just use the FontCache directly
passing only the FontPlatformData. These changes seem to fix the crashes and make the code a lot simpler.

  • platform/graphics/Font.cpp:

(WebCore::Font::Font): Use FontCache::verticalData().

  • platform/graphics/FontCache.cpp:

(WebCore::fontVerticalDataCache):
(WebCore::FontCache::verticalData):
(WebCore::FontCache::purgeInactiveFontData): Also remove the cached vertical data when removing a font.
(WebCore::FontCache::invalidate): Clear also the vertical data.

  • platform/graphics/FontCache.h:
  • platform/graphics/FontPlatformData.h:
  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::openTypeTable): Deleted.

  • platform/graphics/opentype/OpenTypeVerticalData.h: Remove the m_inFontCache member that is now unused.
1:29 AM Changeset in webkit [200236] by youenn.fablet@crf.canon.fr
  • 3 edits in trunk/Source/WebCore

Remove UsePointersEvenForNonNullableObjectArguments keyword
https://bugs.webkit.org/show_bug.cgi?id=156844

Reviewed by Darin Adler.

No change of behavior.

  • bindings/scripts/CodeGenerator.pm:

(ShouldPassWrapperByReference): Removed UsePointersEvenForNonNullableObjectArguments support.

  • bindings/scripts/IDLAttributes.txt: Removed UsePointersEvenForNonNullableObjectArguments.
1:15 AM Changeset in webkit [200235] by youenn.fablet@crf.canon.fr
  • 7 edits in trunk

FetchResponse should return a ReadableStream even if disturbed
https://bugs.webkit.org/show_bug.cgi?id=156911

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/response/response-stream-disturbed-5-expected.txt: Rebasing test.

Source/WebCore:

Covered by rebased test.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::createReadableStreamSource): Asserting in case response is disturbed.

  • bindings/js/JSFetchResponseCustom.cpp:

(WebCore::JSFetchResponse::body): Creating a locked empty readable stream if response is disturbed.

  • bindings/js/ReadableStreamController.cpp:

(WebCore::createReadableStream): Constructing a readable stream even if source is null.
(WebCore::getReadableStreamReader): Retrieving the reader from a readable stream. Stream must not be locked.

  • bindings/js/ReadableStreamController.h:
1:09 AM Changeset in webkit [200234] by rniwa@webkit.org
  • 2 edits
    29 moves
    6 adds
    1 delete in trunk/LayoutTests

Import W3C CSS WG tests for shadow DOM
https://bugs.webkit.org/show_bug.cgi?id=157063

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Imported CSS WG's Scoping Level 1 tests from https://github.com/w3c/csswg-test
as of b2daa426addd5ccb8e9ce1c5d800f9d82603f1ec. Most of these tests are actually ours
except shadow-cascade-order-001.html.

  • csswg-test: Added.
  • csswg-test/css-scoping-1: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-before-after-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-before-after.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-rules-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-rules.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-host-functional-rule-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-host-functional-rule.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-host-rule-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-host-rule.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-host-with-before-after-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-host-with-before-after.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-invisible-slot-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-invisible-slot.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-root-hides-children-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-root-hides-children.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slot-display-override-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slot-display-override.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slot-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slot-fallback-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slot-fallback.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slot.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slotted-nested-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slotted-nested.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slotted-rule-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slotted-rule.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-with-outside-rules-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-with-outside-rules.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-with-rules-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-with-rules-no-style-leak-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-with-rules-no-style-leak.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-with-rules.html: Added.
  • csswg-test/css-scoping-1/shadow-cascade-order-001-expected.txt: Added.
  • csswg-test/css-scoping-1/shadow-cascade-order-001.html: Added.
  • csswg-test/css-scoping-1/w3c-import.log: Added.

LayoutTests:

Remove tests that have been upstreamed and imported under imported/w3c/csswg-test/css-scoping-1.

  • fast/shadow-dom/css-scoping-shadow-assigned-node-with-before-after-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-assigned-node-with-before-after.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-assigned-node-with-rules-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-assigned-node-with-rules.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-host-functional-rule-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-host-functional-rule.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-host-rule-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-host-rule.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-host-with-before-after-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-host-with-before-after.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-invisible-slot-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-invisible-slot.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-root-hides-children-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-root-hides-children.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slot-display-override-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slot-display-override.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slot-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slot-fallback-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slot-fallback.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slot.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slotted-nested-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slotted-nested.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slotted-rule-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slotted-rule.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-with-outside-rules-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-with-outside-rules.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-with-rules-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-with-rules-no-style-leak-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-with-rules-no-style-leak.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-with-rules.html: Removed.
12:46 AM Changeset in webkit [200233] by Claudio Saavedra
  • 2 edits
    2 copies
    1 add
    2 deletes in trunk/Source/WebKit2

[GTK] Move WK2 shareable code out from gtk directories
https://bugs.webkit.org/show_bug.cgi?id=157135

Reviewed by Darin Adler.

Both NetworkProcessMain and InjectedBundle can go out from their respective gtk directories.

  • NetworkProcess/gtk/NetworkProcessMainGtk.cpp:

(WebKit::NetworkProcessMainUnix): Deleted.

  • NetworkProcess/soup/NetworkProcessMainSoup.cpp: Renamed from Source/WebKit2/NetworkProcess/gtk/NetworkProcessMainGtk.cpp.

(WebKit::NetworkProcessMainUnix):

  • PlatformGTK.cmake: Update.
  • WebProcess/InjectedBundle/glib/InjectedBundleGlib.cpp: Renamed from Source/WebKit2/WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp.

(WebKit::InjectedBundle::initialize):
(WebKit::InjectedBundle::setBundleParameter):
(WebKit::InjectedBundle::setBundleParameters):

  • WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp:

(WebKit::InjectedBundle::initialize): Deleted.
(WebKit::InjectedBundle::setBundleParameter): Deleted.
(WebKit::InjectedBundle::setBundleParameters): Deleted.

12:33 AM Changeset in webkit [200232] by yoav@yoav.ws
  • 32 edits
    1 copy
    4 adds in trunk

Move ResourceTiming behind a runtime flag
https://bugs.webkit.org/show_bug.cgi?id=157133

Reviewed by Alex Christensen.

.:

  • Source/cmake/WebKitFeatures.cmake: Remove the PERFORMANCE_TIMELINE build flag.

Source/JavaScriptCore:

  • runtime/CommonIdentifiers.h: Added PerformanceEntry, PerformanceEntryList and PerformanceResourceTiming as property names.

Source/WebCore:

Move the ResourceTiming API from being behind a build time flag to be behind an
off-by-default runtime flag, that can be turned on using internals.

Tests: fast/dom/Window/window-properties-performance-resource-timing.html

http/tests/performance/performance-resource-timing-entries.html

  • DerivedSources.make: Added idl files for PerformanceEntry, PerformanceEntryList and PerformanceResourceTiming.
  • WebCore.xcodeproj/project.pbxproj: Added the various Performance* files to the project.
  • bindings/generic/RuntimeEnabledFeatures.cpp: Added ResourceTiming as a runtime flag.

(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):

  • bindings/generic/RuntimeEnabledFeatures.h: Added ResourceTiming as a runtime flag.

(WebCore::RuntimeEnabledFeatures::setResourceTimingEnabled):
(WebCore::RuntimeEnabledFeatures::resourceTimingEnabled):

  • bindings/js/JSPerformanceEntryCustom.cpp: Removed #if for ResourceTiming. Added build flag around UserTiming related h files.

(WebCore::toJS): Deleted.

  • dom/EventNames.h: Renamed webkitresourcetimingbufferfull to resourcetimingbufferfull.
  • loader/DocumentThreadableLoader.cpp: Replace #if for ResourceTiming with runtime flag.

(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/ResourceLoadNotifier.cpp: Replace #if for ResourceTiming with runtime flag.

(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):

  • loader/cache/CachedResourceLoader.cpp: Replace #if for ResourceTiming with runtime flag.

(WebCore::CachedResourceLoader::revalidateResource):
(WebCore::CachedResourceLoader::loadResource):
(WebCore::CachedResourceLoader::storeResourceTimingInitiatorInformation):
(WebCore::CachedResourceLoader::loadDone):

  • loader/cache/CachedResourceLoader.h: Remove #if for ResourceTiming.
  • page/Performance.cpp: Remove #if for ResourceTiming.

(WebCore::Performance::Performance): Removed #if for ResourceTiming related initialization.
(WebCore::Performance::webkitGetEntries): Renamed to getEntries.
(WebCore::Performance::webkitGetEntriesByType): Renamed to getEntriesByType.
(WebCore::Performance::webkitGetEntriesByName): Renamed to getEntriesByName.

  • page/Performance.h: Remove #if for ResourceTiming.
  • page/Performance.idl: Replace #if for ResourceTiming with runtime flag.
  • page/PerformanceEntry.cpp: Remove the PERFORMANCE_TIMELINE build flag.
  • page/PerformanceEntry.h: Remove the PERFORMANCE_TIMELINE build flag.
  • page/PerformanceEntry.idl: Replace the PERFORMANCE_TIMELINE build flag with runtime flag.
  • page/PerformanceEntryList.cpp: Remove the PERFORMANCE_TIMELINE build flag.
  • page/PerformanceEntryList.h: Remove the PERFORMANCE_TIMELINE build flag.
  • page/PerformanceEntryList.idl: Replace the PERFORMANCE_TIMELINE build flag with runtime flag.
  • page/PerformanceResourceTiming.cpp: Remove the RESOURCE_TIMING build flag.
  • page/PerformanceResourceTiming.h: Remove the RESOURCE_TIMING build flag.
  • page/PerformanceResourceTiming.idl: Replace the RESOURCE_TIMING build flag with runtime flag.
  • testing/Internals.cpp: Add a method that enables ResourceTiming.

(WebCore::Internals::setResourceTimingSupport):

  • testing/Internals.h: Add a method that enables ResourceTiming.
  • testing/Internals.idl: Add a method that enables ResourceTiming.

LayoutTests:

Added tests that make sure ResourceTiming APIs are exposed and that resources
show up as entries in the performance timeline.

  • fast/dom/Window/window-properties-performance-resource-timing-expected.txt: Added.
  • fast/dom/Window/window-properties-performance-resource-timing.html: Added.
  • fast/dom/Window/window-properties-performance.html: Removed ";".
  • http/tests/performance/performance-resource-timing-entries-expected.txt: Added.
  • http/tests/performance/performance-resource-timing-entries.html: Added.
12:18 AM Changeset in webkit [200231] by youenn.fablet@crf.canon.fr
  • 21 edits
    2 adds in trunk

Drop [UsePointersEvenForNonNullableObjectArguments] from MediaStream interfaces
https://bugs.webkit.org/show_bug.cgi?id=156905

Reviewed by Darin Adler.

Source/WebCore:

Removing UsePointersEvenForNonNullableObjectArguments from MediaStream, RTCPeerConnection and RTCRtpSender.
Updating methods to take references and making some related refactoring.

Test: fast/mediastream/MediaStream-add-remove-null-undefined-tracks.html
Changes also covered by updated tests.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::createOfferTask):

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::create):
(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::removeTrack):
(WebCore::MediaStream::didAddTrack):
(WebCore::MediaStream::didRemoveTrack):
(WebCore::MediaStream::internalAddTrack):
(WebCore::MediaStream::internalRemoveTrack):

  • Modules/mediastream/MediaStream.h:
  • Modules/mediastream/MediaStream.idl:
  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::send):

  • Modules/mediastream/RTCDataChannel.h:
  • Modules/mediastream/RTCDataChannel.idl:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::addTrack):
(WebCore::RTCPeerConnection::removeTrack):
(WebCore::RTCPeerConnection::queuedSetLocalDescription):
(WebCore::RTCPeerConnection::queuedSetRemoteDescription):
(WebCore::RTCPeerConnection::queuedAddIceCandidate):
(WebCore::RTCPeerConnection::privateGetStats):
(WebCore::RTCPeerConnection::queuedCreateOffer): Deleted.
(WebCore::RTCPeerConnection::localDescription): Deleted.
(WebCore::RTCPeerConnection::currentLocalDescription): Deleted.
(WebCore::RTCPeerConnection::remoteDescription): Deleted.
(WebCore::RTCPeerConnection::currentRemoteDescription): Deleted.
(WebCore::RTCPeerConnection::signalingState): Deleted.
(WebCore::RTCPeerConnection::createDataChannel): Deleted.
(WebCore::RTCPeerConnection::close): Deleted.

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCRtpReceiver.cpp:

(WebCore::RTCRtpReceiver::RTCRtpReceiver):

  • Modules/mediastream/RTCRtpReceiver.h:

(WebCore::RTCRtpReceiver::create):

  • Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::RTCRtpSender):
(WebCore::RTCRtpSender::replaceTrack):

  • Modules/mediastream/RTCRtpSender.h:

(WebCore::RTCRtpSender::create):

  • Modules/mediastream/RTCRtpSender.idl:
  • Modules/mediastream/RTCRtpSenderReceiverBase.h:

(WebCore::RTCRtpSenderReceiverBase::track):
(WebCore::RTCRtpSenderReceiverBase::RTCRtpSenderReceiverBase):

LayoutTests:

  • fast/mediastream/MediaStream-add-remove-null-undefined-tracks-expected.txt: Added.
  • fast/mediastream/MediaStream-add-remove-null-undefined-tracks.html: Added.
  • fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt: Rebasing.
  • fast/mediastream/RTCPeerConnection-add-removeTrack.html: Adding null/undefined tests for addTrack/removeTrack.
  • fast/mediastream/RTCPeerConnection-datachannel.html: Adding test for send() method.

Test expectation is not rebased as test is timing out and marked as skip.

Note: See TracTimeline for information about the timeline view.