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

Timeline



Dec 20, 2016:

11:48 PM Changeset in webkit [210056] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Cairo] Conditional jump or move depends on uninitialised value(s)
https://bugs.webkit.org/show_bug.cgi?id=166058

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2016-12-20
Reviewed by Michael Catanzaro.

Initialize x and y members of cairo_glyph_t struct before passing it to cairo_glyph_path.

  • platform/graphics/cairo/FontCairo.cpp:

(WebCore::CairoGlyphToPathTranslator::path):

11:07 PM Changeset in webkit [210055] by bshafiei@apple.com
  • 9 edits
    2 copies in branches/safari-603-branch

Merged r210031. rdar://problem/29693817

8:44 PM Changeset in webkit [210054] by mmaxfield@apple.com
  • 5 edits
    1 move
    2 adds in trunk

Skia lighter wght variation looks bolder than regular
https://bugs.webkit.org/show_bug.cgi?id=165948

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/text/variations/default-value.html

This patch inspects the font's information regarding variations. It uses this information
to work around a bug in CoreText where default variation values were not getting applied.
This workaround is placed behind a version check and the macro name
"WORKAROUND_CORETEXT_VARIATIONS_DEFAULT_VALUE_BUG" so we know to delete it whenever
possible. It also uses the minimum and maximum supported values for the axis to clamp our
variation values to the closest supported point, which is in line with a recent edit to
the fonts spec:
https://github.com/w3c/csswg-drafts/commit/52b802ac38619286a30662dceb71b8a29fa72f42
This clamping behavior also revealed another bug in CoreText, which was worked around
behind another version check and macro name WORKAROUND_CORETEXT_VARIATIONS_EXTENTS_BUG so
we know to delete it whenever possible.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::defaultVariationValues):
(WebCore::preparePlatformFont):

LayoutTests:

  • fast/text/variations/default-value-expected.html: Added.
  • fast/text/variations/default-value.html: Added.
  • fast/text/variations/outofbounds-expected-mismatch.html: Renamed from LayoutTests/fast/text/variations/outofbounds-expected.html.
  • fast/text/variations/outofbounds.html:
  • platform/ios-simulator/TestExpectations:
8:29 PM Changeset in webkit [210053] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Fix undefined behavior caused by macro expansion producing 'defined'
https://bugs.webkit.org/show_bug.cgi?id=166047

Patch by Taras Tsugrii <ttsugrii@fb.com> on 2016-12-20
Reviewed by Darin Adler.

Source/JavaScriptCore:

  • API/JSBase.h:

Source/WebKit2:

  • Shared/API/Cocoa/WKFoundation.h:
8:04 PM Changeset in webkit [210052] by keith_miller@apple.com
  • 6 edits
    1 add in trunk

Add support for global
https://bugs.webkit.org/show_bug.cgi?id=165171

Reviewed by Filip Pizlo.

JSTests:

  • stress/global.js: Added.

Source/JavaScriptCore:

This patch adds spport for the global property on the global object.
The global property spec is in stage three and is quite simple.
For reference: http://tc39.github.io/proposal-global/

  • runtime/JSGlobalObject.cpp:

LayoutTests:

Fix getOwnPropertyDescriptor test.

  • js/resources/getOwnPropertyDescriptor.js:
6:29 PM Changeset in webkit [210051] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Remove a duplicate reference to ScrollingMomentumCalculatorMac.h in the Xcode project

Rubber-stamped by Sam Weinig.

  • WebCore.xcodeproj/project.pbxproj:
6:17 PM Changeset in webkit [210050] by Simon Fraser
  • 2 edits in trunk/Tools

REGRESSION: API test failure: WKWebView.EvaluateJavaScriptBlockCrash
https://bugs.webkit.org/show_bug.cgi?id=166031

Reviewed by Tim Horton.

Add an @autoreleasepool around the code that allocates then clears the WKWebView,
to ensure that the view is destroyed before the callback fires.

  • TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewEvaluateJavaScript.mm:
6:06 PM Changeset in webkit [210049] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Remove a duplicate reference to ScrollingMomentumCalculatorMac.mm in the Xcode project

Rubber-stamped by Sam Weinig.

  • WebCore.xcodeproj/project.pbxproj:
5:10 PM Changeset in webkit [210048] by commit-queue@webkit.org
  • 9 edits in trunk/Tools

Throw Exception when test doesn't clean up HID Events properly
https://bugs.webkit.org/show_bug.cgi?id=166271

Patch by Megan Gardner <Megan Gardner> on 2016-12-20
Reviewed by Simon Fraser.

Add in a check when UIScriptController is deleted to make sure that the HID event
callback dictionary is empty. If it is not, and a HID event is hit, this will cause
the program to crash without any good information. Crashes are race-y, and will still
happen with malformed test, but the information will be much more helpful.

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::checkForClean):

  • TestRunnerShared/UIScriptContext/UIScriptContext.cpp:

(UIScriptContext::~UIScriptContext):

  • TestRunnerShared/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::checkForClean):

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/ios/HIDEventGenerator.h:
  • WebKitTestRunner/ios/HIDEventGenerator.mm:

(-[HIDEventGenerator checkHIDCallbacksClear]):

  • WebKitTestRunner/ios/TestControllerIOS.mm:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::checkForClean):

4:29 PM Changeset in webkit [210047] by sbarati@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

WebAssembly: We should compile wasm functions in parallel
https://bugs.webkit.org/show_bug.cgi?id=165993

Reviewed by Keith Miller.

This patch adds a very simple parallel compiler for Wasm code.
This patch speeds up compiling the Unity headless benchmark by
slightly more than 4x on my MBP. To make this safe, I perform
all linking on the main thread. I also had to change some code
inside Wasmb3IRGenerator to be thread safe.

  • b3/air/AirCustom.h:

(JSC::B3::Air::WasmBoundsCheckCustom::generate):

  • b3/air/AirGenerationContext.h:
  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::emitExceptionCheck):
(JSC::Wasm::createJSToWasmWrapper):
(JSC::Wasm::parseAndCompile):

  • wasm/WasmB3IRGenerator.h:
  • wasm/WasmCallingConvention.h:

(JSC::Wasm::CallingConvention::setupFrameInPrologue):

  • wasm/WasmPlan.cpp:

(JSC::Wasm::Plan::parseAndValidateModule):
(JSC::Wasm::Plan::run):

  • wasm/WasmPlan.h:
4:15 PM Changeset in webkit [210046] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Window resize causes TimelineOverview graph elements to be repositioned
https://bugs.webkit.org/show_bug.cgi?id=160207
<rdar://problem/27553228>

Reviewed by Brian Burg.

TimelineRuler does not always update its divider positions when the start
time changes while the end time remains the same. The check that determines
whether the first or last divider positions have changed before doing a
layout uses the ruler end time instead of calculating the last divider's
position, and would falsely determine no change was needed.

  • UserInterface/Views/TimelineRuler.js:

(WebInspector.TimelineRuler.prototype.set startTime):
(WebInspector.TimelineRuler.prototype.set secondsPerPixel):
Clear cached divider data on zoom or scroll, forcing dividers to be recalculated.
(WebInspector.TimelineRuler.prototype.layout):
Calculate accurate divider count and last divider time.

3:53 PM Changeset in webkit [210045] by achristensen@apple.com
  • 8 edits in trunk

Remove initEvent quirk
https://bugs.webkit.org/show_bug.cgi?id=166284

Reviewed by Dan Bernstein.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/interfaces-expected.txt:

We regress conformance, but a change has been proposed to the spec. Hopefully this will be a temporary regression.

Source/WebCore:

We added this quirk in r207908 and expanded it in r209946 and r210034.
Many web compatibility issues have been found, which leads us to believe that many more exist.
This reverts the behavior to match how it was before r203848.
This change was proposed to the spec in https://github.com/whatwg/dom/issues/387

  • dom/Event.cpp:

(WebCore::Event::initEventForBindings): Deleted.

  • dom/Event.h:
  • dom/Event.idl:
  • platform/RuntimeApplicationChecks.h:
  • platform/RuntimeApplicationChecks.mm:

(WebCore::IOSApplication::isBaiduNuomi): Deleted.
(WebCore::IOSApplication::isAutoNaviAMap): Deleted.
(WebCore::IOSApplication::isFlipboard): Deleted.

3:42 PM Changeset in webkit [210044] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

INDIE_UI: fix cmake build
https://bugs.webkit.org/show_bug.cgi?id=166288

Patch by JF Bastien <jfbastien@apple.com> on 2016-12-20
Reviewed by Mark Lam.

Bug #165881 didn't remove a file from cmake.

  • PlatformMac.cmake:
3:34 PM Changeset in webkit [210043] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix clean Windows build after r210029
https://bugs.webkit.org/show_bug.cgi?id=165881

  • DerivedSources.cpp:
3:32 PM Changeset in webkit [210042] by Brent Fulgham
  • 21 edits in trunk/Source

Address some style problems found by static analysis
https://bugs.webkit.org/show_bug.cgi?id=165975

Reviewed by Alex Christensen.

Source/JavaScriptCore:

Correct the const-correctness of functions that are implemented using stricter
const declarations.

  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorHeapAgent.cpp:
  • inspector/agents/InspectorHeapAgent.h:
  • inspector/agents/InspectorRuntimeAgent.h:
  • inspector/agents/InspectorScriptProfilerAgent.cpp:
  • inspector/agents/InspectorScriptProfilerAgent.h:
  • inspector/scripts/codegen/cpp_generator.py:

(cpp_type_for_unchecked_formal_in_parameter): Update to match const declarations of
implementation files.

  • inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:

Rebaselined results for "const Ptr* const" syntax.

Source/WebCore:

Correct the const-correctness of functions that are implemented using stricter
const declarations.

Avoid passing large ANGLE data structures through the ANGLEWebKitBridge methods.

  • inspector/InspectorCSSAgent.h: Declare the method overrides properly to match

the stricter const declarations in the implementation files.

  • inspector/InspectorDOMAgent.h: Ditto.
  • inspector/InspectorPageAgent.h: Ditto.
  • inspector/InspectorTimelineAgent.h: Ditto.
  • inspector/PageDebuggerAgent.h: Ditto.
  • platform/graphics/ANGLEWebKitBridge.cpp:

(WebCore::ANGLEWebKitBridge::setResources): Pass by const reference.

  • platform/graphics/ANGLEWebKitBridge.h:

(WebCore::ANGLEWebKitBridge::getResources): Return a const reference.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::selectSettings): Use a lambda that takes
a const reference, rather than copying the maps while searching.

Source/WebKit2:

Avoid passing large ANGLE data structures through the ANGLEWebKitBridge methods.

  • Shared/WebBackForwardListItem.cpp:

(WebKit::WebBackForwardListItem::create):
(WebKit::WebBackForwardListItem::WebBackForwardListItem):

  • Shared/WebBackForwardListItem.h:
3:32 PM Changeset in webkit [210041] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

[iOS WK2] Switching or closing a tab leads to all-white tab content if the status bar is double height
https://bugs.webkit.org/show_bug.cgi?id=166286
rdar://problem/29593525

Reviewed by Tim Horton.

A double-height status bar triggers view resize while snapshotting in the background,
which also triggers calls to _endAnimatedResize on tab resume. However, it was possible
for _endAnimatedResize to re-enter via synchronizeDynamicViewportUpdate()/didCommitLayerTree(),
causing us to use a nil _resizeAnimationView for scale computations, thus setting a zero
scale on the WKContentView.

Fix by checking _dynamicViewportUpdateMode again after the call to synchronizeDynamicViewportUpdate(),
and do a belt-and-braces check for a nil _resizeAnimationView.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _endAnimatedResize]):

3:31 PM Changeset in webkit [210040] by timothy_horton@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Remove an ANGLE Markdown file from the ANGLE target
https://bugs.webkit.org/show_bug.cgi?id=166279

Reviewed by Alex Christensen.

  • ANGLE.xcodeproj/project.pbxproj:

We don't need to build this, it's not source code.

3:07 PM Changeset in webkit [210039] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline js/dom/global-constructors-attributes.html for mac-wk1.

Unreviewed test gardening.

  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
2:16 PM Changeset in webkit [210038] by jfbastien@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

WebAssembly: construct 32-bit encodedJSValue properly
https://bugs.webkit.org/show_bug.cgi?id=166199

Reviewed by Mark Lam.

Constructing an encodedJSValue using { } yields the wrong value
on 32-bit platforms. WebAssembly doesn't currently target 32-bit
platforms, but we may as well get it right.

  • wasm/JSWebAssembly.cpp:

(JSC::webAssemblyCompileFunc):
(JSC::webAssemblyValidateFunc):

  • wasm/js/JSWebAssemblyHelpers.h:

(JSC::toNonWrappingUint32):

  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::constructJSWebAssemblyCompileError):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::callWebAssemblyFunction):

  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::constructJSWebAssemblyInstance):

  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::constructJSWebAssemblyMemory):

  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::constructJSWebAssemblyModule):

  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::constructJSWebAssemblyRuntimeError):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::constructJSWebAssemblyTable):

  • wasm/js/WebAssemblyTablePrototype.cpp:

(JSC::webAssemblyTableProtoFuncLength):
(JSC::webAssemblyTableProtoFuncGrow):
(JSC::webAssemblyTableProtoFuncGet):
(JSC::webAssemblyTableProtoFuncSet):

2:16 PM Changeset in webkit [210037] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

[WebIDL] Remove custom binding for WorkerGlobalScope::importScripts
https://bugs.webkit.org/show_bug.cgi?id=166243

Reviewed by Alex Christensen.

  • bindings/js/JSWorkerGlobalScopeCustom.cpp:

(WebCore::JSWorkerGlobalScope::importScripts): Deleted.

  • workers/WorkerGlobalScope.idl:

Import scripts can now be trivially generated.

1:57 PM Changeset in webkit [210036] by Wenson Hsieh
  • 2 edits in trunk/Source/WebInspectorUI

Update keyword completions in the inspector for the new scroll snapping CSS properties
https://bugs.webkit.org/show_bug.cgi?id=166235

Reviewed by Joseph Pecoraro.

The CSS keyword completions for the scroll snapping properties need to be updated for the latest version of the spec.

  • UserInterface/Models/CSSKeywordCompletions.js:
1:47 PM Changeset in webkit [210035] by Alan Bujtas
  • 5 edits
    2 adds in trunk

SVG elements should inherit the root's flow thread state.
https://bugs.webkit.org/show_bug.cgi?id=166173
rdar://problem/29704862

Reviewed by Simon Fraser.

Source/WebCore:

When the <svg> is not part of the multicolumn context (out of flow positioning), its descendants should not be in the flow either.

Test: fast/multicol/svg-inside-multicolumn.html

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::computedFlowThreadState):

  • rendering/RenderObject.h:

(WebCore::RenderObject::isProgress):
(WebCore::RenderObject::isRenderSVGBlock):

  • rendering/svg/RenderSVGBlock.h:

LayoutTests:

  • fast/multicol/svg-inside-multicolumn-expected.txt: Added.
  • fast/multicol/svg-inside-multicolumn.html: Added.
1:41 PM Changeset in webkit [210034] by achristensen@apple.com
  • 4 edits in trunk/Source/WebCore

Fix yet another app that uses initEvent with fewer than 3 parameters
https://bugs.webkit.org/show_bug.cgi?id=166257
<rdar://problem/29420268>

Reviewed by Sam Weinig.

  • dom/Event.cpp:

(WebCore::Event::initEventForBindings):

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

(WebCore::IOSApplication::isAutoNaviAMap):
AutoNavi amap has content that uses initEvent with one parameter. This quirk is needed here, too.

1:41 PM Changeset in webkit [210033] by Joseph Pecoraro
  • 6 edits in trunk

Web Inspector: Console could be made useful for very simple await expressions
https://bugs.webkit.org/show_bug.cgi?id=165681
<rdar://problem/29755339>

Reviewed by Brian Burg.

Source/WebInspectorUI:

Normally await expressions are only allowed inside of async functions.
They make dealing with async operations easy, but can't be used directly
in Web Inspector's console without making your own async function wrapper.

This change allows simple await expressions to be run in the console.
The supported syntaxes are (simple expression with optional assignment):

await <expr>
x = await <expr>
let x = await <expr>

Web Inspector's console will automatically wrap this in an async
function and report the resulting value or exception. For instance
in the last example above:

let x;
(async function() {

try {

x = await <expr>;
console.info("%o", x);

} catch (e) {

console.error(e);

}

})();
undefined

This way users can get the convenience of await in the Console.
This also gives users a nice way of extracting a value out of
a Promise without writing their own handlers.

  • UserInterface/Controllers/RuntimeManager.js:

(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
(WebInspector.RuntimeManager.prototype._tryApplyAwaitConvenience):
Wrap simple await expressions into a function that will log the result.

LayoutTests:

  • inspector/controller/runtime-controller-expected.txt:
  • inspector/controller/runtime-controller.html:

Test the "await expression" convenience of RuntimeManager.

1:41 PM Changeset in webkit [210032] by Joseph Pecoraro
  • 20 edits in trunk/Source/WebInspectorUI

Web Inspector: Update CodeMirror to support async/await keyword and other ES2017 features
https://bugs.webkit.org/show_bug.cgi?id=165677

Rubber-stamped by Brian Burg.

Update CodeMirror from version 5.5.1 to 5.21.1. Highlights include:

  • Syntax highlighting for ES2017 features (async/await)
  • Syntax highlighting improvements for some ES6 features (new.target)
  • Syntax highlighting for CSS4 #rrggbbaa and #rgba colors

As well as a number of smaller bug fixes.

Had to add a few semicolons to codemirror.js so that our minifier
didn't choke in a few places due to ASI behavior.

  • Scripts/update-codemirror-resources.rb:
  • UserInterface/External/CodeMirror/LICENSE:
  • UserInterface/External/CodeMirror/clojure.js:
  • UserInterface/External/CodeMirror/closebrackets.js:
  • UserInterface/External/CodeMirror/codemirror.css:
  • UserInterface/External/CodeMirror/codemirror.js:
  • UserInterface/External/CodeMirror/coffeescript.js:
  • UserInterface/External/CodeMirror/comment.js:
  • UserInterface/External/CodeMirror/css.js:
  • UserInterface/External/CodeMirror/htmlmixed.js:
  • UserInterface/External/CodeMirror/javascript.js:
  • UserInterface/External/CodeMirror/livescript.js:
  • UserInterface/External/CodeMirror/matchbrackets.js:
  • UserInterface/External/CodeMirror/overlay.js:
  • UserInterface/External/CodeMirror/placeholder.js:
  • UserInterface/External/CodeMirror/runmode.js:
  • UserInterface/External/CodeMirror/sql.js:
  • UserInterface/External/CodeMirror/sublime.js:
  • UserInterface/External/CodeMirror/xml.js:
1:18 PM Changeset in webkit [210031] by aestes@apple.com
  • 9 edits
    2 adds in trunk

[Cocoa] REGRESSION (r209558): Calling decisionHandler multiple times in webView:decidePolicyForNavigationAction:decisionHandler: leads to a crash
https://bugs.webkit.org/show_bug.cgi?id=165992
Source/WebKit2:

<rdar://problem/29693817>

Reviewed by Brady Eidson.

r209558 added additional move semantics to the decisionHandler block passed to
-webView:decidePolicyForNavigationAction:decisionHandler:, resulting in a null pointer
dereference in clients that call the decisionHandler block more than once.

None of the completion handlers we expose in the WebKit API are intended to be called more
than once, and we ASSERT in CompletionHandlerCallChecker::didCallCompletionHandler() that
this doesn't happen.

This change strenghtens that protection by returning immediately in completion handlers
called more than once. And in programs linked on or after WebKit 603.1.17, an NSException is
thrown if a completion handler is called a second time, like we do for completion handlers
that are never called.

New API test: WebKit2.DuplicateCompletionHandlerCalls

  • Shared/Cocoa/CompletionHandlerCallChecker.h: Declared completionHandlerHasBeenCalled().
  • Shared/Cocoa/CompletionHandlerCallChecker.mm:

(WebKit::shouldThrowExceptionForDuplicateCompletionHandlerCall): Added. Returns true if the
program is linked on or after
LibraryVersion::FirstWithExceptionsForDuplicateCompletionHandlerCalls.
(WebKit::CompletionHandlerCallChecker::completionHandlerHasBeenCalled): Added. Returns
whether or not the completion handler has been called. If it has, and
shouldThrowExceptionForDuplicateCompletionHandlerCall() returns true, throws an
NSInternalInconsistencyException.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setInputDelegate:]): Added an early return if the completion handler has
already been called.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): Ditto.
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse): Ditto.
(WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge): Ditto.

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::runJavaScriptAlert): Ditto.
(WebKit::UIDelegate::UIClient::runJavaScriptConfirm): Ditto.
(WebKit::UIDelegate::UIClient::runJavaScriptPrompt): Ditto.
(WebKit::UIDelegate::UIClient::exceededDatabaseQuota): Ditto.
(WebKit::UIDelegate::UIClient::runOpenPanel): Ditto.
(WebKit::UIDelegate::UIClient::reachedApplicationCacheOriginQuota): Ditto.

  • UIProcess/Cocoa/VersionChecks.h: Added

FirstWithExceptionsForDuplicateCompletionHandlerCalls with the version number for 603.1.17.

Tools:

Reviewed by Brady Eidson.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/DuplicateCompletionHandlerCalls.mm: Added.

(expectException):
(-[DuplicateCompletionHandlerCallsDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[DuplicateCompletionHandlerCallsDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
(-[DuplicateCompletionHandlerCallsDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(-[DuplicateCompletionHandlerCallsDelegate webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:]):
(-[DuplicateCompletionHandlerCallsDelegate webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:]):
(-[DuplicateCompletionHandlerCallsDelegate _webView:decideDatabaseQuotaForSecurityOrigin:currentQuota:currentOriginUsage:currentDatabaseUsage:expectedUsage:decisionHandler:]):
(-[DuplicateCompletionHandlerCallsDelegate _webView:willSubmitFormValues:userObject:submissionHandler:]):
(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/duplicate-completion-handler-calls.html: Added.
1:14 PM Changeset in webkit [210030] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline js/dom/global-constructors-attributes.html for mac-elcapitan after r210024.

Unreviewed test gardening.

  • platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt:
12:37 PM Changeset in webkit [210029] by dino@apple.com
  • 26 edits
    7 deletes in trunk

Remove INDIE_UI
https://bugs.webkit.org/show_bug.cgi?id=165881
<rdar://problem/29672532>

Reviewed by Simon Fraser.

The Indie UI work has been discontinued.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:
  • Modules/indieui/UIRequestEvent.cpp: Removed.
  • Modules/indieui/UIRequestEvent.h: Removed.
  • Modules/indieui/UIRequestEvent.idl: Removed.
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Element.cpp:

(WebCore::Element::setUIActions): Deleted.
(WebCore::Element::UIActions): Deleted.

  • dom/Element.h:
  • dom/Element.idl:
  • dom/EventNames.in:
  • dom/Node.cpp:

(WebCore::Node::dispatchUIRequestEvent): Deleted.

  • dom/Node.h:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

  • fast/custom-elements/reactions-for-indieui-expected.txt: Removed.
  • fast/custom-elements/reactions-for-indieui.html: Removed.
  • indieui/uiactions-expected.txt: Removed.
  • indieui/uiactions.html: Removed.
  • js/dom/dom-static-property-for-in-iteration-expected.txt:
  • js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
12:20 PM Changeset in webkit [210028] by jfbastien@apple.com
  • 17 edits
    5 copies
    1 add in trunk

WebAssembly API: implement WebAssembly.LinkError
https://bugs.webkit.org/show_bug.cgi?id=165805
<rdar://problem/29747874>

JSTests:

Reviewed by Mark lam.

Update all exception sites which now throw WebAssembly.LinkError.

  • wasm/js-api/element-data.js:
  • wasm/js-api/element.js:

(assert.throws):

  • wasm/js-api/global-error.js:

(new.Number):

  • wasm/js-api/table.js:

(assert.throws):
(new.WebAssembly.Table):

  • wasm/js-api/test_Data.js:
  • wasm/js-api/test_basic_api.js:

(const.c.in.constructorProperties.switch):

  • wasm/js-api/test_memory.js:

(test):
(test.testMemImportError): Deleted.

Source/JavaScriptCore:

Reviewed by Mark Lam.

As described here: https://github.com/WebAssembly/design/pull/901
Some TypeError and RangeError are now converted to WebAssembly.LinkError.

  • CMakeLists.txt: add files
  • DerivedSources.make: add autoget .lut.h files
  • JavaScriptCore.xcodeproj/project.pbxproj: add files
  • builtins/BuiltinNames.h: new name LinkError
  • runtime/JSGlobalObject.h: auto-register LinkError using existing macro magic
  • wasm/JSWebAssembly.h: make the new includes available
  • wasm/js/JSWebAssemblyLinkError.cpp: Copied from Source/JavaScriptCore/wasm/JSWebAssemblyCompileError.cpp.

(JSC::JSWebAssemblyLinkError::create):
(JSC::JSWebAssemblyLinkError::JSWebAssemblyLinkError):
(JSC::createWebAssemblyLinkError):

  • wasm/js/JSWebAssemblyLinkError.h: Copied from Source/JavaScriptCore/wasm/JSWebAssemblyCompileError.h.

(JSC::JSWebAssemblyLinkError::create):

  • wasm/js/WebAssemblyInstanceConstructor.cpp: update as per spec change

(JSC::constructJSWebAssemblyInstance):

  • wasm/js/WebAssemblyLinkErrorConstructor.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyCompileErrorConstructor.cpp.

(JSC::constructJSWebAssemblyLinkError):
(JSC::callJSWebAssemblyLinkError):
(JSC::WebAssemblyLinkErrorConstructor::create):
(JSC::WebAssemblyLinkErrorConstructor::createStructure):
(JSC::WebAssemblyLinkErrorConstructor::finishCreation):
(JSC::WebAssemblyLinkErrorConstructor::WebAssemblyLinkErrorConstructor):
(JSC::WebAssemblyLinkErrorConstructor::getConstructData):
(JSC::WebAssemblyLinkErrorConstructor::getCallData):

  • wasm/js/WebAssemblyLinkErrorConstructor.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyCompileErrorConstructor.h.
  • wasm/js/WebAssemblyLinkErrorPrototype.cpp: Copied from Source/JavaScriptCore/wasm/WebAssemblyCompileErrorPrototypr.cpp.

(JSC::WebAssemblyLinkErrorPrototype::create):
(JSC::WebAssemblyLinkErrorPrototype::createStructure):
(JSC::WebAssemblyLinkErrorPrototype::finishCreation):
(JSC::WebAssemblyLinkErrorPrototype::WebAssemblyLinkErrorPrototype):

  • wasm/js/WebAssemblyLinkErrorPrototype.h: Copied from Source/JavaScriptCore/wasm/WebAssemblyCompileErrorPrototypr.h.
  • wasm/js/WebAssemblyModuleRecord.cpp: update as per spec change

(JSC::dataSegmentFail):
(JSC::WebAssemblyModuleRecord::evaluate):

11:43 AM Changeset in webkit [210027] by commit-queue@webkit.org
  • 7 edits in trunk

[Readable Streams API] Implement readableByteStreamControllerCallPullIfNeeded()
https://bugs.webkit.org/show_bug.cgi?id=166022

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-12-20
Reviewed by Youenn Fablet.

Source/WebCore:

Implemented readableByteStreamControllerCallPullIfNeeded(). This function is
in particular called when a new ReadableByteStreamController is created; hence,
ReadableByteStreamController constructor has been updated.

Added 3 tests to check behaviour in case of success/failure of the start and pull functions
associated to the underlyingByteSource.

  • Modules/streams/ReadableByteStreamInternals.js:

(privateInitializeReadableByteStreamController): Updated handling of underlyingByteSource
start function (especially with call to readableByteStreamControllerCallPullIfNeeded).
(isReadableStreamBYOBReader): Added.
(readableStreamHasBYOBReader): Added.
(readableStreamHasDefaultReader): Added.
(readableByteStreamControllerCallPullIfNeeded): Added.

  • Modules/streams/ReadableStreamInternals.js:

(privateInitializeReadableStreamDefaultController): Added missing asserts.

  • bindings/js/WebCoreBuiltinNames.h: Added readIntoRequests.

LayoutTests:

Added 3 tests to check behaviour in case of success/failure of the start and pull functions
associated to the underlyingByteSource.

  • streams/readable-byte-stream-controller-expected.txt: Added expectations for new tests.
  • streams/readable-byte-stream-controller.js: Added 3 new tests.
10:54 AM Changeset in webkit [210026] by jfbastien@apple.com
  • 25 edits
    3 adds in trunk

WebAssembly: unique function signatures
https://bugs.webkit.org/show_bug.cgi?id=165957
<rdar://problem/29735737>

Reviewed by Saam Barati.

JSTests:

  • wasm/function-tests/table-basic.js: FIXME is now addressed,

though instance to instance calls still need work which bug
#165282 will address
(i.assert.eq.foo):

  • wasm/js-api/unique-signature.js: Added.

(CallIndirectWithDuplicateSignatures):

Source/JavaScriptCore:

Signatures in a Module's Type section can be duplicated, we
therefore need to unique them so that call_indirect only needs to
do a single integer compare to check that a callee's Signature is
the same as the Signature declared at the call site. Without
uniquing we'd either trap when duplicate Signatures are used, or
we'd need to do multiple comparisons. This patch makes that narrow
usecase function correctly.

There's further complication when calling from wasm to
wasm, in which case the Signatures must also match. Such
cross-instance calls will be improved in bug #165282, but this
patch sets the groundwork for it:

  • Signatures are now owned by SignatureInformation which lives on VM, and is shared by all Modules.
  • When parsing a Module, a Signature is created for every Type entry, and then uniqued by SignatureInformation's adopt method. Duplicate Signatures are dropped and the previous SignatureIndex is returned, new Signatures are adopted and a new SignatureIndex is created.
  • The SignatureIndex values are monotonic. 0 is used to represent invalid indices, which trap. This can only occur through Table.
  • SignatureInformation is used while generating code to map a SignatureIndex back to the Signature* when return / argument information is needed. This is a simple lookup into a Vector. It isn't used at runtime.
  • These Signatures live forever on VM because the bookkeeping likely isn't worth it. We may want to empty things out if all Modules die, this is tracked in bug #166037.
  • We can further improve things by bit-packing SignatureIndex with Code*, which is tracked by bug #165511.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • runtime/VM.h: wasm signatures are uniqued here, but aren't accessed frequently (only during parsing) so indirection is fine
  • wasm/WasmB3IRGenerator.cpp: use SignatureIndex instead of Signature* when appropriate, and when still using Signature* do so with its new API

(JSC::Wasm::createJSToWasmWrapper):
(JSC::Wasm::parseAndCompile):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::importStubGenerator): use SignatureIndex

  • wasm/WasmBinding.h:
  • wasm/WasmCallingConvention.h:

(JSC::Wasm::CallingConvention::loadArguments):

  • wasm/WasmFormat.cpp: drive-by move of alloc/free functions to the implementation file, allows the .h file to drop an FastMalloc.h

(JSC::Wasm::Segment::create):
(JSC::Wasm::Segment::destroy):
(JSC::Wasm::Segment::createPtr):

  • wasm/WasmFormat.h: move Signature to its own file

(JSC::Wasm::CallableFunction::CallableFunction):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::FunctionParser):

  • wasm/WasmModuleParser.cpp:
  • wasm/WasmModuleParser.h:

(JSC::Wasm::ModuleParser::ModuleParser):

  • wasm/WasmParser.h:

(JSC::Wasm::Parser<SuccessType>::Parser):

  • wasm/WasmPlan.cpp:

(JSC::Wasm::Plan::parseAndValidateModule):
(JSC::Wasm::Plan::run):

  • wasm/WasmSignature.cpp: Added.

(JSC::Wasm::Signature::dump):
(JSC::Wasm::Signature::hash):
(JSC::Wasm::Signature::create):
(JSC::Wasm::Signature::createInvalid):
(JSC::Wasm::Signature::destroy):
(JSC::Wasm::SignatureInformation::~SignatureInformation):
(JSC::Wasm::SignatureInformation::adopt):
(JSC::Wasm::SignatureInformation::get):

  • wasm/WasmSignature.h: Added.

(JSC::Wasm::Signature::Signature):
(JSC::Wasm::Signature::storage):
(JSC::Wasm::Signature::allocatedSize):
(JSC::Wasm::Signature::returnType):
(JSC::Wasm::Signature::returnCount):
(JSC::Wasm::Signature::argumentCount):
(JSC::Wasm::Signature::argument):
(JSC::Wasm::Signature::operator==):
(JSC::Wasm::SignatureHash::empty):
(JSC::Wasm::SignatureHash::deleted):
(JSC::Wasm::SignatureHash::SignatureHash):
(JSC::Wasm::SignatureHash::operator==):
(JSC::Wasm::SignatureHash::equal):
(JSC::Wasm::SignatureHash::hash):
(JSC::Wasm::SignatureHash::isHashTableDeletedValue):

  • wasm/WasmValidate.cpp:

(JSC::Wasm::validateFunction):

  • wasm/WasmValidate.h:
  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::create):

  • wasm/js/JSWebAssemblyModule.h:

(JSC::JSWebAssemblyModule::signatureForFunctionIndexSpace):

  • wasm/js/JSWebAssemblyTable.cpp:

(JSC::JSWebAssemblyTable::JSWebAssemblyTable):
(JSC::JSWebAssemblyTable::clearFunction):
(JSC::JSWebAssemblyTable::setFunction):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::callWebAssemblyFunction):
(JSC::WebAssemblyFunction::call):
(JSC::WebAssemblyFunction::create):
(JSC::WebAssemblyFunction::WebAssemblyFunction):
(JSC::WebAssemblyFunction::finishCreation):

  • wasm/js/WebAssemblyFunction.h:

(JSC::WebAssemblyFunction::signatureIndex):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):
(JSC::WebAssemblyModuleRecord::evaluate):

10:52 AM Changeset in webkit [210025] by weinig@apple.com
  • 22 edits
    1 delete in trunk

[DataCue] Un-prefix DataCue and remove custom bindings
https://bugs.webkit.org/show_bug.cgi?id=166087

Reviewed by Eric Carlson.

Source/WebCore:

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSDataCueCustom.cpp: Removed.

Remove JSDataCueCustom.cpp

  • bindings/js/JSTextTrackCueCustom.cpp:

(WebCore::toJSNewlyCreated):
Remove out of date comment.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorDefinition):
Update constructor generation code to use JSDOMConvert.

  • html/track/DataCue.cpp:

(WebCore::DataCue::DataCue):
(WebCore::DataCue::~DataCue):
(WebCore::DataCue::data):
(WebCore::DataCue::setData):
(WebCore::DataCue::cueContentsMatch):
(WebCore::DataCue::value):
(WebCore::DataCue::setValue):
(WebCore::DataCue::valueOrNull):

  • html/track/DataCue.h:
  • html/track/DataCue.idl:
  • platform/SerializedPlatformRepresentation.h:

Remove DATACUE_VALUE define from web exposed classes, so the interface can
be the same on all platforms. Platforms that don't support DATACUE_VALUE will
just never have any value. Also remove custom annotations.

LayoutTests:

  • media/track/track-datacue-value-expected.txt:
  • media/track/track-datacue-value.html:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:

Update tests for unprefixed DataCue.

10:44 AM Changeset in webkit [210024] by Wenson Hsieh
  • 65 edits
    5 moves
    13 adds
    18 deletes in trunk

Implement the updated port/area-based Scroll Snap Module Level 1 Spec
https://bugs.webkit.org/show_bug.cgi?id=165317
<rdar://problem/29490956>

Reviewed by Dean Jackson.

Source/WebCore:

Implements the changes drafted in the latest iteration of the Scroll Snap Module Level 1 spec, which uses a
snap-area and snap-port-based method for determining snap positions in a scroll snapping container.
Additionally, removes the now-obsolete and prefixed implementation of the scroll snap spec and refactors all
affected layout tests to use the new CSS properties. Also adds new layout tests covering some behaviors detailed
in the new version of the spec, such as scroll snapping with transformed child elements.

See below for more detailed descriptions of the changes.

Tests: css3/scroll-snap/scroll-snap-2d-change-axis-type.html

css3/scroll-snap/scroll-snap-2d-offsets-computed-independently.html
css3/scroll-snap/scroll-snap-children-with-scroll-snap-margin.html
css3/scroll-snap/scroll-snap-children-with-transforms.html
css3/scroll-snap/scroll-snap-positions-mainframe.html
css3/scroll-snap/scroll-snap-positions-overflow-resize.html
css3/scroll-snap/scroll-snap-positions.html
css3/scroll-snap/scroll-snap-style-changed-align.html
css3/scroll-snap/scroll-snap-with-scroll-padding.html

  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSCalculationValue.cpp:

(WebCore::hasDoubleValue):

Removed use of length repeat.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForScrollSnapType):
(WebCore::valueForScrollSnapAlignment):
(WebCore::ComputedStyleExtractor::propertyValue):
(WebCore::scrollSnapDestination): Deleted.
(WebCore::scrollSnapPoints): Deleted.
(WebCore::scrollSnapCoordinates): Deleted.

Removed helper functions used to create CSS values for scroll snap coordinates and destination, and added
helpers for computed scroll snap type (a combination of axis and strictness values) as well as scroll snap align
(an alignment value per axis).

  • css/CSSPrimitiveValue.cpp:

(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::isStringType):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText):
(WebCore::CSSPrimitiveValue::cloneForCSSOM):
(WebCore::CSSPrimitiveValue::equals):

Removed usages of the length repeat type, since repeat(*) is no longer being used anywhere.

  • css/CSSPrimitiveValue.h:
  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ScrollSnapStrictness):
(WebCore::CSSPrimitiveValue::operator ScrollSnapAxis):
(WebCore::CSSPrimitiveValue::operator ScrollSnapAxisAlignType):
(WebCore::CSSPrimitiveValue::operator ScrollSnapType): Deleted.

Added CSSPrimitiveValue mappings to ScrollSnapAxisAlignType, ScrollSnapStrictness, and ScrollSnapAxis. Removed
the old ScrollSnapType mapping.

  • css/CSSProperties.json:

Replaced the old scroll snap CSS properties with the new ones. Note that scroll-snap-margin and scroll-padding
have 4 shorthands each, for the individual top/bottom/left/right values.

  • css/CSSValueKeywords.in:

Added CSS keywords {x, y}, which are necessary to support the new scroll snapping properties.

  • css/LengthRepeat.h: Removed.

Removed LengthRepeat entirely. This represented the repeat(<length>) CSS value, which was only used for the
scroll-snap-points-x and scroll-snap-points-y values.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertScrollSnapType):
(WebCore::StyleBuilderConverter::convertScrollSnapAlign):
(WebCore::StyleBuilderConverter::parseSnapCoordinate): Deleted.
(WebCore::StyleBuilderConverter::convertScrollSnapPoints): Deleted.
(WebCore::StyleBuilderConverter::convertSnapCoordinatePair): Deleted.
(WebCore::StyleBuilderConverter::convertScrollSnapCoordinates): Deleted.

Added helper functions to convert scroll snap type and scroll snap alignment from parsed CSS values to their
primary representation in WebCore as ScrollSnapType and ScrollSnapAlign. These methods assume that the given
CSS values have successfully cleared the parsing step and are represented as CSSValueLists or length 1 or 2.

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyInitialWebkitScrollSnapPointsX): Deleted.
(WebCore::StyleBuilderCustom::applyInheritWebkitScrollSnapPointsX): Deleted.
(WebCore::StyleBuilderCustom::applyInitialWebkitScrollSnapPointsY): Deleted.
(WebCore::StyleBuilderCustom::applyInheritWebkitScrollSnapPointsY): Deleted.

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue):
(WebCore::StyleProperties::asText):

Adds support for the scroll-snap-margin and scroll-padding.

  • css/parser/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):
(WebCore::CSSParser::parseValue):
(WebCore::isScrollSnapAxisAlign):
(WebCore::isScrollSnapStrictness):
(WebCore::CSSParser::parseScrollSnapAlign):
(WebCore::CSSParser::parseScrollSnapType):
(WebCore::CSSParser::parseNonElementSnapPoints): Deleted.
(WebCore::CSSParser::parseScrollSnapPositions): Deleted.
(WebCore::CSSParser::parseScrollSnapDestination): Deleted.
(WebCore::CSSParser::parseScrollSnapCoordinate): Deleted.

  • css/parser/CSSParser.h:

Removed references to LengthRepeat, and added support for parsing new scroll snapping properties. Scroll snap
margin and scroll padding, along with their shorthands, are parsed using the same helper functions as normal
margin and padding. For type and align, I added new helper functions that build up lists of 1 or 2
CSSPrimitiveValues for each of the properties.

Parsing scroll-snap-align is straightforward -- we either have one or two values in the set {none, start,
center, end}. For scroll-snap-type, we allow a single axis value {x, y, inline, block, both}, or a single
strictness value {none, proximity, mandatory}, or an axis value followed by a non-'none' strictness (i.e. either
proximity or mandatory).

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • css/parser/CSSParserValues.cpp:

(WebCore::CSSParserValue::createCSSValue):

Removed references to LengthRepeat.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):
(WebCore::consumeSnapPointCoordinateList): Deleted.
(WebCore::consumeScrollSnapCoordinate): Deleted.
(WebCore::consumeScrollSnapDestination): Deleted.
(WebCore::consumeScrollSnapPoints): Deleted.
(WebCore::consumeScrollSnapAlign):
(WebCore::consumeScrollSnapType):
(WebCore::CSSPropertyParser::parseSingleValue):

Added parsing for the longhand properties of scroll-snap-margin and scroll-padding, which use the existing
consumeLength and consumeLengthOrPercent helpers, respectively. Removed code for parsing scroll snap
coordinates, destinations and points. Added parsing logic for align and type.

  • page/scrolling/AxisScrollSnapOffsets.cpp:

(WebCore::computeScrollSnapPortOrAreaRect):
(WebCore::computeScrollSnapAlignOffset):
(WebCore::snapOffsetsToString):
(WebCore::snapPortOrAreaToString):
(WebCore::updateSnapOffsetsForScrollableArea):
(WebCore::appendChildSnapOffsets): Deleted.
(WebCore::destinationOffsetForViewSize): Deleted.
(WebCore::updateFromStyle): Deleted.
(WebCore::styleUsesElements): Deleted.

Overhauled updateSnapOffsetsForScrollableArea to work with the new scroll snapping model. In the new way of
computing scroll snap offsets, we:

Compute the scroll container's scroll snap port, which is the padding box inset by the scroll padding
For each child with snap positions (i.e. scroll-snap-align is not none on both axes)

Compute the child's scroll snap area, which is the bounding box of the transformed border box

If the container snaps along the horizontal axis and the snap area contributes a horizontal snap offset:

Emit the distance from the alignment offset in the horizontal of the snap port to the corresponding offset
in the snap area as a snap position.

If the container snaps along the vertical axis and the snap area contributes a vertical snap offset:

Emit the distance from the alignment offset in the vertical of the snap port to the corresponding offset
in the snap area as a snap position.

For the snap offsets in each axis, if there is at least one snap offset:

Clamp the offsets to the min and max scroll offsets
Ensure that the offsets are sorted and do not contain duplicated offsets

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::updateScrollSnapState):

Clear out the ScrollController's snap offsets and state along an axis when its ScrollableArea no longer has snap
offsets in that axis.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleWillChange):
(WebCore::RenderBox::willBeRemovedFromTree):

  • rendering/RenderLayerModelObject.cpp:

(WebCore::scrollSnapContainerRequiresUpdateForStyleUpdate):
(WebCore::RenderLayerModelObject::styleDidChange):

  • rendering/RenderView.cpp:

(WebCore::RenderView::registerBoxWithScrollSnapPositions):
(WebCore::RenderView::unregisterBoxWithScrollSnapPositions):
(WebCore::RenderView::registerBoxWithScrollSnapCoordinates): Deleted.
(WebCore::RenderView::unregisterBoxWithScrollSnapCoordinates): Deleted.

  • rendering/RenderView.h:

Tweaked the scroll snap child registration logic. registerBoxWithScrollSnapCoordinates is renamed to
unregisterBoxWithScrollSnapPositions, since the notion of scroll snap coordinates no longer exists, and instead
of checking if the list of scroll snap coordinates is empty for the absence of scroll positions, we instead
check for a computed scroll snap align that is not none on both axes.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::initialScrollSnapType):
(WebCore::RenderStyle::initialScrollSnapAlign):
(WebCore::RenderStyle::scrollSnapArea):
(WebCore::RenderStyle::scrollSnapPort):
(WebCore::RenderStyle::scrollSnapType):
(WebCore::RenderStyle::scrollPadding):
(WebCore::RenderStyle::scrollPaddingTop):
(WebCore::RenderStyle::scrollPaddingBottom):
(WebCore::RenderStyle::scrollPaddingLeft):
(WebCore::RenderStyle::scrollPaddingRight):
(WebCore::RenderStyle::scrollSnapAlign):
(WebCore::RenderStyle::scrollSnapMargin):
(WebCore::RenderStyle::scrollSnapMarginTop):
(WebCore::RenderStyle::scrollSnapMarginBottom):
(WebCore::RenderStyle::scrollSnapMarginLeft):
(WebCore::RenderStyle::scrollSnapMarginRight):
(WebCore::RenderStyle::setScrollSnapType):
(WebCore::RenderStyle::setScrollPaddingTop):
(WebCore::RenderStyle::setScrollPaddingBottom):
(WebCore::RenderStyle::setScrollPaddingLeft):
(WebCore::RenderStyle::setScrollPaddingRight):
(WebCore::RenderStyle::setScrollSnapAlign):
(WebCore::RenderStyle::setScrollSnapMarginTop):
(WebCore::RenderStyle::setScrollSnapMarginBottom):
(WebCore::RenderStyle::setScrollSnapMarginLeft):
(WebCore::RenderStyle::setScrollSnapMarginRight):
(WebCore::RenderStyle::initialScrollSnapDestination): Deleted.
(WebCore::RenderStyle::initialScrollSnapCoordinates): Deleted.
(WebCore::RenderStyle::scrollSnapPointsX): Deleted.
(WebCore::RenderStyle::scrollSnapPointsY): Deleted.
(WebCore::RenderStyle::scrollSnapDestination): Deleted.
(WebCore::RenderStyle::scrollSnapCoordinates): Deleted.
(WebCore::RenderStyle::setScrollSnapPointsX): Deleted.
(WebCore::RenderStyle::setScrollSnapPointsY): Deleted.
(WebCore::RenderStyle::setScrollSnapDestination): Deleted.
(WebCore::RenderStyle::setScrollSnapCoordinates): Deleted.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::initialScrollSnapMargin):
(WebCore::RenderStyle::initialScrollPadding):
(WebCore::RenderStyle::scrollSnapType): Deleted.
(WebCore::RenderStyle::setScrollSnapType): Deleted.
(WebCore::RenderStyle::initialScrollSnapType): Deleted.
(WebCore::RenderStyle::initialScrollSnapPointsX): Deleted.
(WebCore::RenderStyle::initialScrollSnapPointsY): Deleted.

Added boilerplate code for returning various new scroll snap style properties, and removed similar code for
handling the old scroll snap properties.

  • rendering/style/RenderStyleConstants.h:

Added three new enum classes:

  • ScrollSnapStrictness represents the strictness of scroll snapping along one or both axes
  • ScrollSnapAxis designates the axes along which scroll snapping should occur
  • ScrollSnapAxisAlignType indicates which offsets along the x or y axes of the snap port and snap area should be used to compute the snap position emitted by a snap area.
  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):

  • rendering/style/StyleRareNonInheritedData.h:

Replaces the StyleScrollSnapPoints object (which, confusingly, was in charge of storing both the scroll
container's and child elements' scroll snap styles) with StyleScrollSnapPort and StyleScrollSnapArea objects,
which keep track of the style properties on the scroll container and the child element, respectively.

  • rendering/style/StyleScrollSnapPoints.h:

(WebCore::operator==):
(WebCore::StyleScrollSnapPort::copy):
(WebCore::StyleScrollSnapPort::StyleScrollSnapPort):
(WebCore::StyleScrollSnapArea::copy):
(WebCore::StyleScrollSnapArea::StyleScrollSnapArea):

  • rendering/style/StyleScrollSnapping.h: Added.

(WebCore::operator!=):
(WebCore::StyleScrollSnapPort::create):
(WebCore::StyleScrollSnapArea::create):
(WebCore::StyleScrollSnapArea::hasSnapPosition):

Overhauled StyleScrollSnapPoints, breaking the logic here into two classes: StyleScrollSnapPort for the scroll
container, handling the properties scroll-snap-type and scroll-padding and StyleScrollSnapArea for child
elements, handling the properties scroll-snap-align and scroll-snap-margin. The ScrollSnapType itself is
composed of an axis value and a strictness, while a ScrollSnapAlign keeps track of the alignment modes in each
axis. By default, these are initialized to {Both, None} and {None, None}, respectively. The rest of the logic is
boilerplate code for comparing these style objects to one another and copying style representations.

  • testing/Internals.cpp:

(WebCore::Internals::scrollSnapOffsets):

Perform a layout on the document if needed before returning the list of computed snap offsets. The absence of
this layout pass was causing some layout tests in css3/scroll-snap/ to flake when testing that programmatic
changes to the scroll snap style properties change the computed snap offsets.

Source/WebKit2:

Remove unused code for adopting scroll snapping in the PDF plugin.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::didCalculateSizes):

LayoutTests:

Refactors layout tests to use the new scroll snapping properties, removing any tests that only made sense in the
context of the old version of scroll snapping and adding new ones to cover behaviors that the existing tests do
not verify. See per-method descriptions for more details. In most cases, the old way of specifying scroll
snapping via repeat(<container width or length>) or a coordinate at (0, 0) on each child has been replaced with
scroll-snap-type: (x|y|both) mandatory; on the container and scroll-snap-align: start on each child element.
If a test below does not have an accompanying description, then this is the only change applied to it, and the
behavior it is testing is still relevant in the new scroll snapping model.

  • css3/scroll-snap/improper-snap-points-crash-expected.txt: Removed.
  • css3/scroll-snap/improper-snap-points-crash.html: Removed.

This test is no longer valid in the new scroll snapping model, since there is no way to specify both repeating
points along an axis and child elements with scroll snap coordinates.

  • css3/scroll-snap/nested-elements-expected.txt:
  • css3/scroll-snap/nested-elements.html:
  • css3/scroll-snap/resources/iframe-content.html:
  • css3/scroll-snap/scroll-snap-2d-change-axis-type-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-2d-change-axis-type.html: Added.

New layout test to check that changing the scroll-snap-type from one to both axes updates the computed snap
offsets in the container to have offsets from both axes.

  • css3/scroll-snap/scroll-snap-2d-offsets-computed-independently-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-2d-offsets-computed-independently.html: Added.

New layout test to check that snap offsets are computed independently on each axis. In a 3x3 grid of child
elements with the child elements along the diagonal having scroll-snap-aligns of end, center and start
in order from top left to bottom right, we should observe the same effect as having each child emit snap
positions in both axes.

  • css3/scroll-snap/scroll-snap-children-with-scroll-snap-margin-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-children-with-scroll-snap-margin.html: Added.

New layout test to check that specifying a scroll-snap-margin correctly insets the scroll snap area of a child
element, and that changing the scroll-snap-margin via script also changes the computed scroll snap offsets.

  • css3/scroll-snap/scroll-snap-children-with-transforms-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-children-with-transforms.html: Added.

New layout test to check that when computing the scroll snap areas of child elements, we take transforms into
account and use the bounding box of the transformed border box of the child element. Also verifies that we apply
the scroll offset _after_ the transform, so that scrolling the container and then recomputing snap offsets when
child elements are transformed does not result in different snap offsets.

  • css3/scroll-snap/scroll-snap-coordinate-expected.txt: Removed.
  • css3/scroll-snap/scroll-snap-coordinate.html: Removed.

Renamed to scroll-snap-position.html, since the notion of scroll snap coordinates no longer exists.

  • css3/scroll-snap/scroll-snap-desination-lock-up-expected.txt: Removed.
  • css3/scroll-snap/scroll-snap-desination-lock-up.html: Removed.

This test is no longer relevant in the new scroll snapping model. This is because the logic for computing scroll
snap offsets in AxisScrollSnapOffsets no longer has an opportunity to loop infinitely while trying to fill a
scrollable axis with snap offsets, since repeating snap points have been removed.

  • css3/scroll-snap/scroll-snap-elements-container-larger-than-children.html:
  • css3/scroll-snap/scroll-snap-inherit-expected.txt:
  • css3/scroll-snap/scroll-snap-inherit.html:

Updated to test the new scroll snap properties.

  • css3/scroll-snap/scroll-snap-initial-expected.txt:
  • css3/scroll-snap/scroll-snap-initial.html:

Updated to test the new scroll snap properties.

  • css3/scroll-snap/scroll-snap-mismatch.html:
  • css3/scroll-snap/scroll-snap-negative-repeat-expected.txt: Removed.
  • css3/scroll-snap/scroll-snap-negative-repeat.html: Removed.

Removed, since negative repeating scroll snap offsets are (thankfully) no longer possible in the new scroll
snapping model.

  • css3/scroll-snap/scroll-snap-offsets-expected.txt:
  • css3/scroll-snap/scroll-snap-offsets.html:

Augmented to mix in various alignment values among the scroll snap child elements as well as various levels of
nesting.

  • css3/scroll-snap/scroll-snap-position-values-expected.txt: Removed.
  • css3/scroll-snap/scroll-snap-position-values.html: Removed.

The behaviors tested here are covered by other similar tests: scroll-snap-initial and scroll-snap-inherit.

  • css3/scroll-snap/scroll-snap-positions-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-positions-mainframe-expected.txt: Renamed from LayoutTests/css3/scroll-snap/scroll-snap-coordinate-mainframe-expected.txt.
  • css3/scroll-snap/scroll-snap-positions-mainframe.html: Renamed from LayoutTests/css3/scroll-snap/scroll-snap-coordinate-mainframe.html.
  • css3/scroll-snap/scroll-snap-positions-overflow-resize-expected.txt: Renamed from LayoutTests/css3/scroll-snap/scroll-snap-coordinate-overflow-resize-expected.txt.
  • css3/scroll-snap/scroll-snap-positions-overflow-resize.html: Renamed from LayoutTests/css3/scroll-snap/scroll-snap-coordinate-overflow-resize.html.
  • css3/scroll-snap/scroll-snap-positions.html: Added.

Renamed these existing tests to not use the term scroll-snap-coordinate. The semantics of these tests are
still the same, only using different values of scroll-snap-align instead of -webkit-scroll-snap-coordinate.

  • css3/scroll-snap/scroll-snap-property-computed-style-expected.txt:
  • css3/scroll-snap/scroll-snap-property-computed-style.js:
  • css3/scroll-snap/scroll-snap-property-parsing-expected.txt:
  • css3/scroll-snap/scroll-snap-property-parsing.js:
  • css3/scroll-snap/scroll-snap-style-changed-align-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-style-changed-align.html: Renamed from LayoutTests/css3/scroll-snap/scroll-snap-style-changed-coordinates.html.
  • css3/scroll-snap/scroll-snap-style-changed-coordinates-expected.txt: Removed.
  • css3/scroll-snap/scroll-snap-style-changed-repeat-expected.txt: Removed.
  • css3/scroll-snap/scroll-snap-style-changed-repeat.html: Removed.

No longer relevant, since repeating scroll snap offsets are no longer in the spec.

  • css3/scroll-snap/scroll-snap-subpixel-repeat-expected.txt: Removed.
  • css3/scroll-snap/scroll-snap-subpixel-repeat.html: Removed.

No longer relevant, since repeating scroll snap offsets are no longer in the spec.

  • css3/scroll-snap/scroll-snap-with-scroll-padding-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-with-scroll-padding.html: Added.

New layout test to check that specifying scroll padding on a scroll container correctly outsets the scroll snap
port, and that changing scroll padding via script also changes the computed snap offsets.

  • platform/mac-wk2/TestExpectations:

Removed tiled-drawing/scrolling/latched-div-with-scroll-snap.html from the list of failing tests.

  • tiled-drawing/scrolling/latched-div-with-scroll-snap-expected.txt:
  • tiled-drawing/scrolling/latched-div-with-scroll-snap.html:

This test was failing 100% of the time due to the momentum portion of the scrolling phase being invoked after
scroll snapping has ended. This has been rewritten to perform the following steps:

  1. Scroll the top div with momentum and verify that the scroll 'glided' to the red box.
  2. Scroll the top div without momentum and verify that the scroll snaps back to the red box.
  3. Repeat (1) and (2), but for the bottom div. The same thing should occur.
  • tiled-drawing/scrolling/scroll-snap/resources/horizontal-mainframe.html:
  • tiled-drawing/scrolling/scroll-snap/resources/vertical-mainframe.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-destination-lock-up-expected.txt: Removed.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-destination-lock-up.html: Removed.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-then-horizontal.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-stateless.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-scrolling-jumps-to-top.html:

All of the tests here were updated to use the new scroll-snap-* properties instead of the old versions. The
semantics of these tests have not changed.

10:26 AM Changeset in webkit [210023] by Konstantin Tokarev
  • 35 edits in trunk/Source/JavaScriptCore

Modernize for loops in JSC
https://bugs.webkit.org/show_bug.cgi?id=166060

Reviewed by Yusuke Suzuki.

  • API/JSCallbackObject.h:

(JSC::JSCallbackObjectData::JSPrivatePropertyMap::visitChildren):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::stronglyVisitStrongReferences):
(JSC::CodeBlock::stronglyVisitWeakReferences):
(JSC::CodeBlock::jettison):
(JSC::CodeBlock::getArrayProfile):
(JSC::CodeBlock::tallyFrequentExitSites):
(JSC::CodeBlock::nameForRegister):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):

  • bytecompiler/NodesCodegen.cpp:

(JSC::ObjectPatternNode::bindValue):

  • debugger/Debugger.cpp:

(JSC::Debugger::applyBreakpoints):

  • dfg/DFGCPSRethreadingPhase.cpp:

(JSC::DFG::CPSRethreadingPhase::canonicalizeLocalsInBlock):

  • dfg/DFGClobberSet.cpp:

(JSC::DFG::ClobberSet::setOf):

  • dfg/DFGDesiredIdentifiers.cpp:

(JSC::DFG::DesiredIdentifiers::reallyAdd):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::visitChildren):

  • dfg/DFGIntegerCheckCombiningPhase.cpp:

(JSC::DFG::IntegerCheckCombiningPhase::handleBlock):

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:
  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::run):

  • dfg/DFGMaximalFlushInsertionPhase.cpp:

(JSC::DFG::MaximalFlushInsertionPhase::treatRootBlock):

  • dfg/DFGPutStackSinkingPhase.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::linkBranches):

  • dfg/DFGStructureRegistrationPhase.cpp:

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

  • dfg/DFGTypeCheckHoistingPhase.cpp:

(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):

  • dfg/DFGValidate.cpp:
  • dfg/DFGVirtualRegisterAllocationPhase.cpp:

(JSC::DFG::VirtualRegisterAllocationPhase::run):

  • heap/HeapVerifier.cpp:

(JSC::trimDeadObjectsFromList):
(JSC::HeapVerifier::trimDeadObjects):

  • heap/LiveObjectList.cpp:

(JSC::LiveObjectList::findObject):

  • heap/MarkedAllocator.cpp:

(JSC::MarkedAllocator::isPagedOut):

  • inspector/ScriptCallStack.cpp:

(Inspector::ScriptCallStack::firstNonNativeCallFrame):

  • jit/JIT.cpp:

(JSC::JIT::link):

  • parser/VariableEnvironment.cpp:

(JSC::VariableEnvironment::markAllVariablesAsCaptured):
(JSC::VariableEnvironment::hasCapturedVariables):

  • runtime/FunctionHasExecutedCache.cpp:

(JSC::FunctionHasExecutedCache::hasExecutedAtOffset):
(JSC::FunctionHasExecutedCache::getFunctionRanges):

  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::JSPropertyNameEnumerator::visitChildren):

  • runtime/TypeProfiler.cpp:

(JSC::TypeProfiler::findLocation):

  • runtime/TypeSet.cpp:

(JSC::TypeSet::addTypeInformation):
(JSC::TypeSet::dumpTypes):

  • runtime/VM.cpp:

(JSC::VM::gatherConservativeRoots):

  • runtime/WeakMapData.cpp:

(JSC::WeakMapData::DeadKeyCleaner::visitWeakReferences):
(JSC::WeakMapData::DeadKeyCleaner::finalizeUnconditionally):

  • tools/ProfileTreeNode.h:

(JSC::ProfileTreeNode::dumpInternal):

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::ByteCompiler::emitDisjunction):

9:25 AM Changeset in webkit [210022] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Fix memory leak in malformed test
https://bugs.webkit.org/show_bug.cgi?id=165917

Patch by Megan Gardner <Megan Gardner> on 2016-12-20
Reviewed by Alexey Proskuryakov.

Navigation caused 'onload' to be called twice, causing test harness to have extraneous
HID callback around after script controller was dismantled. Loading in body will eliminate
double load, and also prevent other race conditions where the body doesn't load fast enough.

  • http/tests/quicklook/hide-referer-on-navigation.html:
4:27 AM Changeset in webkit [210021] by dino@apple.com
  • 5 edits in trunk/Source/WebCore

Use ENABLE() in place of ENABLE_CSS_SELECTORS_LEVEL4
https://bugs.webkit.org/show_bug.cgi?id=166043
<rdar://problems/29743655>

Reviewed by Alex Christensen.

This doesn't compile unless the ENABLE_CSS_SELECTORS_LEVEL4 is defined.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::matchRecursively):

  • css/SelectorFilter.cpp:

(WebCore::SelectorFilter::collectIdentifierHashes):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::isOnlyPseudoClassFunction):
(WebCore::CSSSelectorParser::consumePseudo):
(WebCore::CSSSelectorParser::consumeCombinator):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::fragmentRelationForSelectorRelation):

3:42 AM Changeset in webkit [210020] by Yusuke Suzuki
  • 3 edits in trunk/Source/WebCore

Unreviewed, attempt to fix Windows Debug build part 2
https://bugs.webkit.org/show_bug.cgi?id=166035

Ensured that this patch passes the build on the GTK port.

  • rendering/RenderElement.cpp:
  • rendering/RenderElement.h:
3:24 AM Changeset in webkit [210019] by Konstantin Tokarev
  • 2 edits in trunk/Source/JavaScriptCore

cpuid() requires <intrin.h> to be included
https://bugs.webkit.org/show_bug.cgi?id=166051

Reviewed by Yusuke Suzuki.

  • assembler/MacroAssemblerX86Common.h:
2:50 AM Changeset in webkit [210018] by Yusuke Suzuki
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix Windows Debug build
https://bugs.webkit.org/show_bug.cgi?id=166035

The size of SameSizeAsRenderElement should be in sync with sizeof(RenderElement).

  • rendering/RenderElement.cpp:
2:24 AM Changeset in webkit [210017] by nael.ouedraogo@crf.canon.fr
  • 7 edits in trunk

WebRTC: RTCPeerConnection constructor argument should be optional
https://bugs.webkit.org/show_bug.cgi?id=164057

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Update expectation of RTCPeerConnection constructor tests.

  • web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-constructor-expected.txt:

Source/WebCore:

Modify RTCPeerConnection JSBuiltin constructor to allow RTCPeerConfiguration
argument to be optional.

Update existing tests.

  • Modules/mediastream/RTCPeerConnection.js:

(initializeRTCPeerConnection):

LayoutTests:

Remove tests since they are duplicated with WPT tests.

  • fast/mediastream/RTCPeerConnection-expected.txt:
  • fast/mediastream/RTCPeerConnection.html:
12:32 AM Changeset in webkit [210016] by Yusuke Suzuki
  • 29 edits
    1 add in trunk

[ES6] Enable ES6 Modules
https://bugs.webkit.org/show_bug.cgi?id=165849

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • features.json:

Source/WebCore:

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::determineScriptType):

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

  • page/Settings.in:

Source/WebKit/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences es6ModulesEnabled]): Deleted.
(-[WebPreferences setES6ModulesEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit/win:

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::setES6ModulesEnabled): Deleted.
(WebPreferences::es6ModulesEnabled): Deleted.

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WebKit2:

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

(WKPreferencesSetES6ModulesEnabled): Deleted.
(WKPreferencesGetES6ModulesEnabled): Deleted.

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

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setES6ModulesEnabled): Deleted.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

Dec 19, 2016:

9:23 PM WebKitGTK/2.14.x edited by Michael Catanzaro
(diff)
9:02 PM WebKitGTK/2.14.x edited by Michael Catanzaro
Reorder chronologically (diff)
9:01 PM WebKitGTK/2.14.x edited by Michael Catanzaro
(diff)
8:53 PM WebKitGTK/2.14.x edited by Michael Catanzaro
(diff)
8:52 PM WebKitGTK/2.14.x edited by Michael Catanzaro
(diff)
8:49 PM WebKitGTK/2.14.x edited by Michael Catanzaro
(diff)
8:32 PM WebKitGTK/2.14.x edited by Michael Catanzaro
(diff)
8:19 PM WebKitGTK/2.14.x edited by Michael Catanzaro
(diff)
7:14 PM Changeset in webkit [210015] by bshafiei@apple.com
  • 5 edits in branches/safari-603-branch/Source

Versioning.

7:09 PM Changeset in webkit [210014] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

6:54 PM Changeset in webkit [210013] by bshafiei@apple.com
  • 1 copy in tags/Safari-603.1.17

New tag.

6:31 PM Changeset in webkit [210012] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/fetch/fetching-same-resource-with-diffferent-options.html as flaky on macOS.
https://bugs.webkit.org/show_bug.cgi?id=166025

Unreviewed test gardening.

  • platform/mac/TestExpectations:
6:05 PM Changeset in webkit [210011] by bshafiei@apple.com
  • 8 edits
    2 deletes in branches/safari-603-branch

Merged r210010. rdar://problem/29745006

6:03 PM Changeset in webkit [210010] by mark.lam@apple.com
  • 8 edits
    2 deletes in trunk

Rolling out r209974 and r209952. They break some websites in mysterious ways. Step 2: Rollout r209952.
https://bugs.webkit.org/show_bug.cgi?id=166049

Not reviewed.

JSTests:

  • stress/deeply-nested-finallys.js: Removed.
  • stress/test-finally.js: Removed.

Source/JavaScriptCore:

  • bytecode/HandlerInfo.h:

(JSC::HandlerInfoBase::typeName):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitReturn):
(JSC::BytecodeGenerator::pushFinallyControlFlowScope):
(JSC::BytecodeGenerator::pushIteratorCloseControlFlowScope):
(JSC::BytecodeGenerator::popFinallyControlFlowScope):
(JSC::BytecodeGenerator::popIteratorCloseControlFlowScope):
(JSC::BytecodeGenerator::emitComplexPopScopes):
(JSC::BytecodeGenerator::emitPopScopes):
(JSC::BytecodeGenerator::pushTry):
(JSC::BytecodeGenerator::popTryAndEmitCatch):
(JSC::BytecodeGenerator::labelScopeDepth):
(JSC::BytecodeGenerator::pushLocalControlFlowScope):
(JSC::BytecodeGenerator::popLocalControlFlowScope):
(JSC::BytecodeGenerator::emitEnumeration):
(JSC::BytecodeGenerator::emitYield):
(JSC::BytecodeGenerator::emitDelegateYield):
(JSC::BytecodeGenerator::popTry): Deleted.
(JSC::BytecodeGenerator::emitCatch): Deleted.
(JSC::BytecodeGenerator::restoreScopeRegister): Deleted.
(JSC::BytecodeGenerator::labelScopeDepthToLexicalScopeIndex): Deleted.
(JSC::BytecodeGenerator::emitIsNumber): Deleted.
(JSC::BytecodeGenerator::emitJumpViaFinallyIfNeeded): Deleted.
(JSC::BytecodeGenerator::emitReturnViaFinallyIfNeeded): Deleted.
(JSC::BytecodeGenerator::emitFinallyCompletion): Deleted.
(JSC::BytecodeGenerator::allocateFinallyRegisters): Deleted.
(JSC::BytecodeGenerator::releaseFinallyRegisters): Deleted.
(JSC::BytecodeGenerator::emitCompareFinallyActionAndJumpIf): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::isInFinallyBlock):
(JSC::FinallyJump::FinallyJump): Deleted.
(JSC::FinallyContext::FinallyContext): Deleted.
(JSC::FinallyContext::outerContext): Deleted.
(JSC::FinallyContext::finallyLabel): Deleted.
(JSC::FinallyContext::depth): Deleted.
(JSC::FinallyContext::numberOfBreaksOrContinues): Deleted.
(JSC::FinallyContext::incNumberOfBreaksOrContinues): Deleted.
(JSC::FinallyContext::handlesReturns): Deleted.
(JSC::FinallyContext::setHandlesReturns): Deleted.
(JSC::FinallyContext::registerJump): Deleted.
(JSC::FinallyContext::numberOfJumps): Deleted.
(JSC::FinallyContext::jumps): Deleted.
(JSC::ControlFlowScope::ControlFlowScope): Deleted.
(JSC::ControlFlowScope::isLabelScope): Deleted.
(JSC::ControlFlowScope::isFinallyScope): Deleted.
(JSC::BytecodeGenerator::currentLexicalScopeIndex): Deleted.
(JSC::BytecodeGenerator::FinallyRegistersScope::FinallyRegistersScope): Deleted.
(JSC::BytecodeGenerator::FinallyRegistersScope::~FinallyRegistersScope): Deleted.
(JSC::BytecodeGenerator::finallyActionRegister): Deleted.
(JSC::BytecodeGenerator::finallyReturnValueRegister): Deleted.
(JSC::BytecodeGenerator::emitSetFinallyActionToNormalCompletion): Deleted.
(JSC::BytecodeGenerator::emitSetFinallyActionToReturnCompletion): Deleted.
(JSC::BytecodeGenerator::emitSetFinallyActionToJumpID): Deleted.
(JSC::BytecodeGenerator::emitSetFinallyReturnValueRegister): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNormalCompletion): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotJump): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsReturnCompletion): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotReturnCompletion): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotThrowCompletion): Deleted.
(JSC::BytecodeGenerator::emitJumpIfCompletionTypeIsThrow): Deleted.
(JSC::BytecodeGenerator::bytecodeOffsetToJumpID): Deleted.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ContinueNode::emitBytecode):
(JSC::BreakNode::emitBytecode):
(JSC::ReturnNode::emitBytecode):
(JSC::TryNode::emitBytecode):

Source/WTF:

  • wtf/SegmentedVector.h:

(WTF::SegmentedVector::last):
(WTF::SegmentedVector::first): Deleted.
(WTF::SegmentedVector::takeLast): Deleted.

6:01 PM Changeset in webkit [210009] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Address some assertions and uncaught exceptions seen using Inspector
https://bugs.webkit.org/show_bug.cgi?id=166048

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-12-19
Reviewed by Matt Baker.

  • UserInterface/Controllers/CodeMirrorEditingController.js:

(WebInspector.CodeMirrorEditingController.prototype.presentHoverMenu):
(WebInspector.CodeMirrorEditingController.prototype.dismissHoverMenu):
classList throws an exception when given an empty string. Avoid those cases.

  • UserInterface/Controllers/CodeMirrorTokenTrackingController.js:

(WebInspector.CodeMirrorTokenTrackingController.prototype._startTracking):
(WebInspector.CodeMirrorTokenTrackingController.prototype._stopTracking):
Seen this assert frequently for a while, existing code handles it gracefully.

  • UserInterface/Workers/Formatter/EsprimaFormatter.js:

(EsprimaFormatter.prototype._handleTokenAtNode):
We correctly handle these tokens but they were not in the list of expected tokens.

5:55 PM Changeset in webkit [210008] by bshafiei@apple.com
  • 4 edits in branches/safari-603-branch/Source/JavaScriptCore

Merged r210007. rdar://problem/29745006

5:48 PM Changeset in webkit [210007] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Rolling out r209974 and r209952. They break some websites in mysterious ways. Step 1: Rollout r209974.
https://bugs.webkit.org/show_bug.cgi?id=166049

Not reviewed.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitEnumeration):
(JSC::BytecodeGenerator::emitJumpViaFinallyIfNeeded):
(JSC::BytecodeGenerator::emitReturnViaFinallyIfNeeded):
(JSC::BytecodeGenerator::emitFinallyCompletion):
(JSC::BytecodeGenerator::allocateFinallyRegisters):
(JSC::BytecodeGenerator::releaseFinallyRegisters):
(JSC::BytecodeGenerator::emitCompareFinallyActionAndJumpIf):
(JSC::BytecodeGenerator::allocateCompletionRecordRegisters): Deleted.
(JSC::BytecodeGenerator::releaseCompletionRecordRegisters): Deleted.
(JSC::BytecodeGenerator::emitJumpIfCompletionType): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::FinallyJump::FinallyJump):
(JSC::FinallyContext::registerJump):
(JSC::BytecodeGenerator::FinallyRegistersScope::FinallyRegistersScope):
(JSC::BytecodeGenerator::FinallyRegistersScope::~FinallyRegistersScope):
(JSC::BytecodeGenerator::finallyActionRegister):
(JSC::BytecodeGenerator::finallyReturnValueRegister):
(JSC::BytecodeGenerator::emitSetFinallyActionToNormalCompletion):
(JSC::BytecodeGenerator::emitSetFinallyActionToReturnCompletion):
(JSC::BytecodeGenerator::emitSetFinallyActionToJumpID):
(JSC::BytecodeGenerator::emitSetFinallyReturnValueRegister):
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNormalCompletion):
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotJump):
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsReturnCompletion):
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotReturnCompletion):
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotThrowCompletion):
(JSC::BytecodeGenerator::emitJumpIfCompletionTypeIsThrow):
(JSC::BytecodeGenerator::bytecodeOffsetToJumpID):
(JSC::bytecodeOffsetToJumpID): Deleted.
(JSC::BytecodeGenerator::CompletionRecordScope::CompletionRecordScope): Deleted.
(JSC::BytecodeGenerator::CompletionRecordScope::~CompletionRecordScope): Deleted.
(JSC::BytecodeGenerator::completionTypeRegister): Deleted.
(JSC::BytecodeGenerator::completionValueRegister): Deleted.
(JSC::BytecodeGenerator::emitSetCompletionType): Deleted.
(JSC::BytecodeGenerator::emitSetCompletionValue): Deleted.

  • bytecompiler/NodesCodegen.cpp:

(JSC::TryNode::emitBytecode):

5:18 PM Changeset in webkit [210006] by weinig@apple.com
  • 9 edits
    2 deletes in trunk/Source/WebCore

Remove a few trivial custom bindings
https://bugs.webkit.org/show_bug.cgi?id=165999

Reviewed by Simon Fraser.

  • CMakeLists.txt:
  • bindings/js/JSBindingsAllInOne.cpp:

Remove files.

  • WebCore.xcodeproj/project.pbxproj:

Move custom bindings that only exist for GC or wrapping reasons
to their own group, so we can focus on the ones with custom functions.

  • bindings/js/JSDataTransferCustom.cpp: Removed.
  • bindings/js/JSTrackEventCustom.cpp: Removed.
  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::types):
Remove incorrect comment and use a more concise empty initialization syntax.

  • dom/DataTransfer.idl:

Update IDL to remove [Custom] annotation and match spec better.

  • html/track/TrackEvent.cpp:

(WebCore::convertToTrackEventTrack):
(WebCore::TrackEvent::TrackEvent):

  • html/track/TrackEvent.h:

Switch to store the Track in a Variant to make the binding easier.

  • html/track/TrackEvent.idl:

Remove [CustomGetter] annotation.

4:37 PM Changeset in webkit [210005] by Keith Rollin
  • 2 edits in trunk/Source/WebKit2

Fix unwanted deletion of record/replay files
https://bugs.webkit.org/show_bug.cgi?id=166040

Reviewed by Alex Christensen.

As part of some refactoring, the objects that create the meta files
that are part of the record/replay cache would get deleted. They were
always getting opened in "write" mode", which would truncate the
files. Fix this so that the files are opened in the right modes for
record, replay, and neither.

  • NetworkProcess/capture/NetworkCaptureManager.cpp:

(WebKit::NetworkCapture::Manager::initialize):

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

Build fix for rdar://problem/29737358.

4:23 PM Changeset in webkit [210003] by Ryan Haddad
  • 7 edits in trunk/Tools

Repurpose bots and clean up dashboard.
https://bugs.webkit.org/show_bug.cgi?id=166045

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:

(BubbleQueueServer):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:

(table.queue-grid tr.platform.mac-os-x-yosemite img.logo): Deleted.

4:01 PM Changeset in webkit [210002] by bshafiei@apple.com
  • 4 edits
    2 copies in branches/safari-602-branch

Merged r209990. rdar://problem/29737358

3:41 PM Changeset in webkit [210001] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

Do not position detached list item marker.
https://bugs.webkit.org/show_bug.cgi?id=166035
<rdar://problem/29175235>

Reviewed by Simon Fraser.

In certain (non-reproducible) cases, the list item marker can get detached from the tree
during layout and when in RenderListItem::positionListMarker() we dereference the marker's parent, we crash.
In addition to the null check, this patch adds an ASSERTION to catch such cases early on.

Unable to reproduce.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::moveChildTo):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::removeChildInternal):

  • rendering/RenderElement.h:
  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::layout):
(WebCore::RenderListItem::positionListMarker):

  • rendering/RenderListItem.h:
  • rendering/RenderListMarker.h:
3:39 PM Changeset in webkit [210000] by dino@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebKit2

Another feature toggle for rdar://problem/29466493.

2016-12-19 Dean Jackson <dino@apple.com>

Enable Gamepad by default.

  • Shared/WebPreferencesDefinitions.h:
3:36 PM Changeset in webkit [209999] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/inspector/network/fetch-network-data.html as flaky on macOS.
https://bugs.webkit.org/show_bug.cgi?id=166038

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:45 PM Changeset in webkit [209998] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: Assertion seen in InspectorDebuggerAgent::refAsyncCallData with Inspector open
https://bugs.webkit.org/show_bug.cgi?id=166034
<rdar://problem/29554366>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-12-19
Reviewed by Brian Burg.

  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::refAsyncCallData):
Remove assertion. This assert can happen if the currently executing callback
was just explicitly cancelled by script. Existing code already handles if
no async data was found for the given identifier.

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

[CSS Parser] Enable CSS Deferred Parsing
https://bugs.webkit.org/show_bug.cgi?id=165869

Unreviewed rollout – looks like this regressed performance.

Source/WebCore:

  • css/parser/CSSParserMode.h:
  • page/Settings.in:

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h:
1:59 PM Changeset in webkit [209996] by Ryan Haddad
  • 2 edits
    1 copy in trunk/LayoutTests

Rebaseline fast/text/emoji.html for macOS.

Unreviewed test gardening.

  • platform/mac-elcapitan/fast/text/emoji-expected.txt: Copied from LayoutTests/platform/mac/fast/text/emoji-expected.txt.
  • platform/mac/fast/text/emoji-expected.txt:
1:27 PM Changeset in webkit [209995] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION: Crash in com.apple.WebKit:IPC::Connection::platformCanSendOutgoingMessages() const + 0
https://bugs.webkit.org/show_bug.cgi?id=165817
rdar://problem/29626731

Reviewed by Dan Bernstein.

If the receive right is invalidated before we send the message, the kernel won't be able to create a send right,
and we'll crash due to mach_msg returning MACH_SEND_INVALID_RIGHT.

Fix this by immediately creating a send right, and passing MACH_MSG_TYPE_MOVE_SEND to the attachment constructor.

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::openFrontendConnection):

12:46 PM WebKitGTK/2.14.x edited by Michael Catanzaro
(diff)
12:45 PM WebKitGTK/2.14.x edited by Michael Catanzaro
Remove bug #164052, nothing ready there yet (diff)
12:35 PM WebKitGTK/2.14.x edited by Michael Catanzaro
Remove "MemoryPressureHandler shouldn't know how to release WebCore … (diff)
12:33 PM Changeset in webkit [209994] by Wenson Hsieh
  • 2 edits in trunk/LayoutTests

Unreviewed, mark fixed-element-on-bottom-with-keyboard.html as skip for OpenSource iOS WK2
https://bugs.webkit.org/show_bug.cgi?id=166027

This test should have been disabled on OpenSource bots due to the lack of touch handling.

  • platform/ios-simulator-wk2/TestExpectations:
12:28 PM Changeset in webkit [209993] by commit-queue@webkit.org
  • 1 edit
    7 adds in trunk/LayoutTests

Add a few Worker loading tests that don't seem to be explicitly handled
https://bugs.webkit.org/show_bug.cgi?id=165870

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-12-19
Reviewed by Daniel Bates.

The tests already pass as expected, but adding specific tests
for specific expected behavior with Worker script loads.

  • http/tests/security/contentSecurityPolicy/worker-redirect-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/worker-redirect-allowed.html: Added.
  • http/tests/security/resources/worker-message-pass.js: Added.
  • http/tests/security/worker-cross-origin-expected.txt: Added.
  • http/tests/security/worker-cross-origin.html: Added.
  • http/tests/security/worker-same-origin-expected.txt: Added.
  • http/tests/security/worker-same-origin.html: Added.
12:18 PM WebKitGTK/2.14.x edited by Michael Catanzaro
(diff)
11:34 AM Changeset in webkit [209992] by dino@apple.com
  • 14 edits in branches/safari-603-branch

Merge another patch for rdar://problem/29466493.

2016-12-19 Dean Jackson <dino@apple.com>

Disable some features on the safari-603-branch.
<rdar://problem/29466493>

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:
  • css/SelectorChecker.cpp: (WebCore::SelectorChecker::matchRecursively):
  • css/SelectorFilter.cpp: (WebCore::SelectorFilter::collectIdentifierHashes):
  • css/parser/CSSSelectorParser.cpp: (WebCore::isOnlyPseudoClassFunction): (WebCore::CSSSelectorParser::consumePseudo): (WebCore::CSSSelectorParser::consumeCombinator):
  • cssjit/SelectorCompiler.cpp: (WebCore::SelectorCompiler::fragmentRelationForSelectorRelation):

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
11:30 AM EnvironmentVariables edited by clopez@igalia.com
(diff)
11:12 AM Changeset in webkit [209991] by Michael Catanzaro
  • 2 edits in trunk/Tools

[CMake] TestWebKitAPIBase links to itself
https://bugs.webkit.org/show_bug.cgi?id=165985

Reviewed by Alex Christensen.

Fix CMake warning about a target linking to itself, which makes no sense.

  • TestWebKitAPI/CMakeLists.txt:
11:05 AM Changeset in webkit [209990] by Brent Fulgham
  • 4 edits
    2 adds in trunk

Side effects while restting form elements
https://bugs.webkit.org/show_bug.cgi?id=165959
<rdar://problem/29705967>

Reviewed by Anders Carlsson.

Source/WebCore:

JavaScript logic can run while resetting FormElement objects. This can
lead to unintended side-effets and other unwanted behavior. We should
protect these elements during the reset.

Test: fast/html/form-mutate.html

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::HTMLFormElement): Switch to C++11 initialization.
(WebCore::HTMLFormElement::reset): Protect elements until the reset
operation is finished.
(WebCore::HTMLFormElement::resetAssociatedFormControlElements): Added to share
code with 'resumeFromDocument'.
(WebCore::HTMLFormElement::resumeFromDocument): Protect elements until the
reset operation is finished.

LayoutTests:

  • fast/html/form-mutate-expected.txt: Added.
  • fast/html/form-mutate.html: Added.
10:18 AM Changeset in webkit [209989] by zandobersek@gmail.com
  • 4 edits in trunk/Source/WebCore

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

There's intent to support persistent-usage-record (Requested
by zdobersek on #webkit).

Reverted changeset:

"[EME] Remove MediaKeySessionType::persistent-usage-record"
https://bugs.webkit.org/show_bug.cgi?id=166012
http://trac.webkit.org/changeset/209983

Patch by Commit Queue <commit-queue@webkit.org> on 2016-12-19

10:01 AM Changeset in webkit [209988] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Move custom files / callback objects into their respective groups.

Rubber-stamped by Simon Fraser.

  • WebCore.xcodeproj/project.pbxproj:
9:53 AM Changeset in webkit [209987] by weinig@apple.com
  • 7 edits
    2 deletes in trunk/Source/WebCore

[WebIDL] Remove custom binding for the named Image constructor
https://bugs.webkit.org/show_bug.cgi?id=166023

Reviewed by Alex Christensen.

  • bindings/js/JSBindingsAllInOne.cpp:
  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:

Remove JSImageConstructor.

  • bindings/js/JSImageConstructor.cpp: Removed.
  • bindings/js/JSImageConstructor.h: Removed.


  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::image): Deleted.

  • page/DOMWindow.idl:

Remove custom getter for the constructor.

  • html/HTMLImageElement.idl:

Add NamedConstructor annotation.

9:37 AM Changeset in webkit [209986] by Antti Koivisto
  • 14 edits in trunk/Source/WebCore

Remove RenderObject::requiresForcedStyleRecalcPropagation
https://bugs.webkit.org/show_bug.cgi?id=166021

Reviewed by Andreas Kling.

It is not called. It also makes no sense architecturally.

  • html/shadow/mac/ImageControlsButtonElementMac.cpp:
  • html/shadow/mac/ImageControlsRootElementMac.cpp:
  • rendering/RenderButton.h:
  • rendering/RenderFileUploadControl.h:
  • rendering/RenderListItem.h:
  • rendering/RenderMedia.h:
  • rendering/RenderMenuList.h:
  • rendering/RenderMeter.h:
  • rendering/RenderObject.h:

(WebCore::RenderObject::requiresForcedStyleRecalcPropagation): Deleted.

  • rendering/RenderProgress.h:
  • rendering/RenderSlider.h:
  • rendering/RenderTextControl.h:
  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateElementRenderer):

This is the only call site. Combination

update.change == Style::NoChange && parent().styleChange == Style::Force

is impossible ('Force' inherits) so requiresForcedStyleRecalcPropagation doesn't ever even get called.

9:31 AM Changeset in webkit [209985] by bshafiei@apple.com
  • 13 edits in branches/safari-603-branch

Merge patch for rdar://problem/29466493.

9:11 AM Changeset in webkit [209984] by bshafiei@apple.com
  • 1 copy in branches/safari-603-branch

New Branch.

8:14 AM Changeset in webkit [209983] by zandobersek@gmail.com
  • 4 edits in trunk/Source/WebCore

[EME] Remove MediaKeySessionType::persistent-usage-record
https://bugs.webkit.org/show_bug.cgi?id=166012

Reviewed by Xabier Rodriguez-Calvar.

Remove the "persistent-usage-record" value from the MediaKeySessionType.
This was removed from the spec as an at-risk feature.
https://github.com/w3c/encrypted-media/issues/353

No non-imported tests need to be updated. This is still present in the
tests imported from the W3C's web-platform-tests repository, but the
tests haven't yet been updated upstream.

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::isPersistentType):

  • Modules/encryptedmedia/MediaKeySessionType.h:
  • Modules/encryptedmedia/MediaKeySessionType.idl:
7:41 AM Changeset in webkit [209982] by magomez@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK] GLXBadFBConfig error when creating an OpenGL context
https://bugs.webkit.org/show_bug.cgi?id=165200

Reviewed by Carlos Garcia Campos.

glXCreateContextAttribsARB causes a GLXBadFBConfig X error when it's not able to provide the
OpenGL version >= 3.2 we are requesting. Due to this, the app crashes instead of falling back to
the legacy path.
The patch modifies GLX context creation using a XErrorTrapper, so the first time a context is created
we don't crash if OpenGL >= 3.2 is not available.
If the gotten context is not valid, we fall back to whatever version glXCreateContextAttribsARB is
able to provide.
The legacy glXCreateContext is only used if the GLX_ARB_create_context extension is not available.

Covered by existent tests.

  • platform/graphics/glx/GLContextGLX.cpp:

(WebCore::tryCreateGLXARBContext):
(WebCore::GLContextGLX::createWindowContext):
(WebCore::GLContextGLX::createPbufferContext):

5:02 AM Changeset in webkit [209981] by Michael Catanzaro
  • 3 edits in trunk/Tools

[GTK] GtkDoc build should be quieter
https://bugs.webkit.org/show_bug.cgi?id=165994

Reviewed by Carlos Garcia Campos.

Make it not print by default.

  • gtk/generate-gtkdoc:

(get_generator_for_config):
(generate_doc):

  • gtk/gtkdoc.py:

(GTKDoc._run_command):
(GTKDoc._copy_doc_files_to_output_dir):

12:19 AM Changeset in webkit [209980] by sbarati@apple.com
  • 4 edits
    2 copies in trunk/JSTests

WebAssembly: Make running Wasm tests take less time by reducing some tests' iteration count and by splitting some tests into different files
https://bugs.webkit.org/show_bug.cgi?id=166017

Reviewed by Yusuke Suzuki.

  • wasm/function-tests/trap-load-2.js: Added.

(assert):
(wasmFrameCountFromError):
(continuation):
(i.catch):

  • wasm/function-tests/trap-load.js:

(assert.continuation): Deleted.

  • wasm/function-tests/trap-store-2.js: Added.

(import.Builder.from.string_appeared_here.assert):
(continuation):
(i.catch):

  • wasm/function-tests/trap-store.js:

(assert.continuation): Deleted.
(assert): Deleted.

  • wasm/js-api/test_memory.js:

(test):

Note: See TracTimeline for information about the timeline view.