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

Timeline



Dec 3, 2016:

4:28 PM Changeset in webkit [209309] by Yusuke Suzuki
  • 14 edits
    1 copy in trunk

Refactor SymbolImpl layout
https://bugs.webkit.org/show_bug.cgi?id=165247

Reviewed by Darin Adler.

Source/JavaScriptCore:

Use SymbolImpl::{create, createNullSymbol} instead.

  • runtime/PrivateName.h:

(JSC::PrivateName::PrivateName):

Source/WTF:

This patch moves SymbolImpl initialization from StringImpl to SymbolImpl.
In SymbolImpl, we create the appropriate fields. At that time, these fields
should be aligned to the BufferSubstring StringImpl.

And we newly create the m_flags in SymbolImpl. Instead of using special
StringImpl::null(), we store s_flagIsNullSymbol flag here. In WTF, we have
the invariant that StringImpl::empty() is the only atomic empty string.
But StringImpl::null() breaks this invariant. Using a special flag is safer
way to represent the null Symbol Symbol().

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/StdLibExtras.h:

(WTF::roundUpToMultipleOfImpl0):
(WTF::roundUpToMultipleOfImpl):
(WTF::roundUpToMultipleOf):

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::~StringImpl):
(WTF::StringImpl::createSymbol): Deleted.
(WTF::StringImpl::createNullSymbol): Deleted.

  • wtf/text/StringImpl.h:

(WTF::StringImpl::isAtomic):
(WTF::StringImpl::StringImpl):
(WTF::StringImpl::requiresCopy):
(WTF::StringImpl::isNullSymbol): Deleted.
(WTF::StringImpl::symbolAwareHash): Deleted.
(WTF::StringImpl::existingSymbolAwareHash): Deleted.
(WTF::StringImpl::null): Deleted.
(WTF::StringImpl::extractFoldedStringInSymbol): Deleted.
(WTF::StringImpl::symbolRegistry): Deleted.
(WTF::StringImpl::hashForSymbol): Deleted.

  • wtf/text/StringStatics.cpp:

(WTF::StringImpl::nextHashForSymbol): Deleted.

  • wtf/text/SymbolImpl.cpp: Copied from Source/WTF/wtf/text/SymbolRegistry.cpp.

(WTF::SymbolImpl::nextHashForSymbol):
(WTF::SymbolImpl::create):
(WTF::SymbolImpl::createNullSymbol):

  • wtf/text/SymbolImpl.h:

(WTF::SymbolImpl::hashForSymbol):
(WTF::SymbolImpl::symbolRegistry):
(WTF::SymbolImpl::isNullSymbol):
(WTF::SymbolImpl::extractFoldedString):
(WTF::SymbolImpl::SymbolImpl):
(WTF::StringImpl::symbolAwareHash):
(WTF::StringImpl::existingSymbolAwareHash):

  • wtf/text/SymbolRegistry.cpp:

(WTF::SymbolRegistry::~SymbolRegistry):
(WTF::SymbolRegistry::symbolForKey):
(WTF::SymbolRegistry::keyForSymbol):

  • wtf/text/UniquedStringImpl.h:

(WTF::UniquedStringImpl::UniquedStringImpl):

Tools:

  • TestWebKitAPI/Tests/WTF/StringImpl.cpp:

(TestWebKitAPI::TEST):

4:11 PM Changeset in webkit [209308] by mitz@apple.com
  • 2 edits in trunk/Tools

Fixed the build after r209307.

  • TestWebKitAPI/Tests/WebKit2Cocoa/BundleEditingDelegate.mm:

(TEST):

3:49 PM Changeset in webkit [209307] by mitz@apple.com
  • 19 edits
    8 adds in trunk

[Cocoa] Expose InjectedBundlePageEditorClient via the Objective-C bundle SPI
https://bugs.webkit.org/show_bug.cgi?id=165276
<rdar://problem/29467040>

Reviewed by Darin Adler.

Source/WebCore:

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::write): Make sure to put the client data on the pasteboard,

like we do on macOS.

Source/WebKit2:

Test: TestWebKitAPI/Tests/WebKit2Cocoa/BundleEditingDelegate.mm

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject): Wrap InjectedBundleRangeHandle in WKWebProcessPlugInRangeHandle.

  • WebKit2.xcodeproj/project.pbxproj: Added references to new files, making WKWebProcessPlugInEditingDelegate.h and WKWebProcessPlugInRangeHandle.h private headers.
  • WebProcess/InjectedBundle/API/APIInjectedBundleEditorClient.h: Added. An base class based on InjectedBundlePageEditorClient.

(API::InjectedBundle::EditorClient::~EditorClient):
(API::InjectedBundle::EditorClient::shouldBeginEditing):
(API::InjectedBundle::EditorClient::shouldEndEditing):
(API::InjectedBundle::EditorClient::shouldInsertNode):
(API::InjectedBundle::EditorClient::shouldInsertText):
(API::InjectedBundle::EditorClient::shouldDeleteRange):
(API::InjectedBundle::EditorClient::shouldChangeSelectedRange):
(API::InjectedBundle::EditorClient::shouldApplyStyle):
(API::InjectedBundle::EditorClient::didBeginEditing):
(API::InjectedBundle::EditorClient::didEndEditing):
(API::InjectedBundle::EditorClient::didChange):
(API::InjectedBundle::EditorClient::didChangeSelection):
(API::InjectedBundle::EditorClient::willWriteToPasteboard):
(API::InjectedBundle::EditorClient::getPasteboardDataForRange):
(API::InjectedBundle::EditorClient::didWriteToPasteboard):

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInEditingDelegate.h: Added. Declares the new delegate protocol, currently comprising three methods corresponding to willWriteToPasteboard, getPasteboardDataForRange, and didWriteToPasteboard.
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(-[WKWebProcessPlugInFrame jsRangeForRangeHandle:inWorld:]): Added. Gets the JS wrapper for

the specified range handle.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.h: Added.
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.mm: Added.

(-[WKWebProcessPlugInRangeHandle dealloc]): Call the InjectedBundleRangeHandle destructor.
(+[WKWebProcessPlugInRangeHandle rangeHandleWithJSValue:inContext:]): Get or create an

InjectedBundleRangeHandle for the specified object.

(-[WKWebProcessPlugInRangeHandle frame]): Return the range’s owner document’s frame.
(-[WKWebProcessPlugInRangeHandle _rangeHandle]): Return the InjectedBundleRangeHandle.
(-[WKWebProcessPlugInRangeHandle _apiObject]): Ditto.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandleInternal.h: Added.

(WebKit::wrapper):

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

(WKBundlePageSetEditorClient): Updated for WebPage change.

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(-[WKWebProcessPlugInBrowserContextController _editingDelegate]): Added. Returns the

delegate.

(-[WKWebProcessPlugInBrowserContextController _setEditingDelegate:]): Added. Defines a

Client class, which derives from API::InjectedBundle::EditorClient, and invokes the
delegate methods. Instantiates a Client and sets it on the WebPage.

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h: Declared new _editingDelegate property.
  • WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:

(WebKit::InjectedBundleRangeHandle::document): Added. Returns an InjectedBundleNodeHandle

for the range’s owner document.

  • WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.h:
  • WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:

(WebKit::InjectedBundlePageEditorClient::InjectedBundlePageEditorClient): Added. Calls

initialize().

(WebKit::InjectedBundlePageEditorClient::shouldBeginEditing): Updated for type change.
(WebKit::InjectedBundlePageEditorClient::shouldEndEditing): Ditto.
(WebKit::InjectedBundlePageEditorClient::shouldInsertNode): Ditto.
(WebKit::InjectedBundlePageEditorClient::shouldInsertText): Ditto.
(WebKit::InjectedBundlePageEditorClient::shouldDeleteRange): Ditto.
(WebKit::InjectedBundlePageEditorClient::shouldChangeSelectedRange): Ditto.
(WebKit::InjectedBundlePageEditorClient::shouldApplyStyle): Ditto.
(WebKit::InjectedBundlePageEditorClient::didBeginEditing): Ditto.
(WebKit::InjectedBundlePageEditorClient::didEndEditing): Ditto.
(WebKit::InjectedBundlePageEditorClient::didChange): Ditto.
(WebKit::InjectedBundlePageEditorClient::didChangeSelection): Ditto.
(WebKit::InjectedBundlePageEditorClient::willWriteToPasteboard): Ditto.
(WebKit::InjectedBundlePageEditorClient::getPasteboardDataForRange): Ditto.
(WebKit::InjectedBundlePageEditorClient::didWriteToPasteboard): Ditto.

  • WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h: Now derives from API::InjectedBundle::EditorClient.
  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::shouldDeleteRange): Ditto.
(WebKit::WebEditorClient::shouldBeginEditing): Ditto.
(WebKit::WebEditorClient::shouldEndEditing): Ditto.
(WebKit::WebEditorClient::shouldInsertNode): Ditto.
(WebKit::WebEditorClient::shouldInsertText): Ditto.
(WebKit::WebEditorClient::shouldChangeSelectedRange): Ditto.
(WebKit::WebEditorClient::shouldApplyStyle): Ditto.
(WebKit::WebEditorClient::didBeginEditing): Ditto.
(WebKit::WebEditorClient::respondToChangedContents): Ditto.
(WebKit::WebEditorClient::respondToChangedSelection): Ditto.
(WebKit::WebEditorClient::didEndEditing): Ditto.
(WebKit::WebEditorClient::didWriteSelectionToPasteboard): Ditto.
(WebKit::WebEditorClient::willWriteSelectionToPasteboard): Ditto.
(WebKit::WebEditorClient::getClientPasteboardDataForRange): Ditto.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage): Initialize m_editorClient.
(WebKit::WebPage::setInjectedBundleEditorClient): Replaces

initializeInjectedBundleEditorClient and just sets m_editorClient.

(WebKit::WebPage::close): Resets m_editorClient.

  • WebProcess/WebPage/WebPage.h: Changed m_editorClient to a unique_ptr.

Tools:

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

(-[BundleEditingDelegateRemoteObject willWriteToPasteboard:]):
(-[BundleEditingDelegateRemoteObject didWriteToPasteboard]):
(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/BundleEditingDelegatePlugIn.mm: Added.

(-[BundleEditingDelegatePlugIn webProcessPlugIn:didCreateBrowserContextController:]):
(-[BundleEditingDelegatePlugIn _webProcessPlugInBrowserContextController:willWriteRangeToPasteboard:]):
(-[BundleEditingDelegatePlugIn _webProcessPlugInBrowserContextController:pasteboardDataForRange:]):
(-[BundleEditingDelegatePlugIn _webProcessPlugInBrowserContextControllerDidWriteToPasteboard:]):

  • TestWebKitAPI/Tests/WebKit2Cocoa/BundleEditingDelegateProtocol.h: Added.
2:58 PM Changeset in webkit [209306] by jfbastien@apple.com
  • 22 edits in trunk

WebAssembly: update binary format to 0xD version
https://bugs.webkit.org/show_bug.cgi?id=165345

Reviewed by Keith Miller.

As described in the following PR: https://github.com/WebAssembly/design/pull/836
Originally committed in r209175, reverted in r209242, and fixed in r209284.

JSTests:

  • wasm/Builder.js:

(const._normalizeFunctionSignature):

  • wasm/Builder_WebAssemblyBinary.js:

(const.emitters.Type):
(const.emitters.Code):

  • wasm/LowLevelBinary.js:

(export.default.LowLevelBinary.prototype.block_type):
(export.default.LowLevelBinary.prototype.inline_signature_type): Deleted.

  • wasm/WASM.js:
  • wasm/js-api/test_basic_api.js:
  • wasm/self-test/test_BuilderWebAssembly.js:

(EmptyModule):
(CustomSection):

  • wasm/self-test/test_WASM.js:
  • wasm/wasm.json:

Source/JavaScriptCore:

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::zeroForType):
(JSC::Wasm::B3IRGenerator::addConstant):
(JSC::Wasm::createJSWrapper):

  • wasm/WasmCallingConvention.h:

(JSC::Wasm::CallingConvention::marshallArgument):

  • wasm/WasmFormat.cpp:

(JSC::Wasm::toString): Deleted.

  • wasm/WasmFormat.h:

(JSC::Wasm::isValueType):
(JSC::Wasm::toB3Type): Deleted.

  • wasm/WasmFunctionParser.h:

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

  • wasm/WasmModuleParser.cpp:

(JSC::Wasm::ModuleParser::parse):
(JSC::Wasm::ModuleParser::parseType):

  • wasm/WasmModuleParser.h:
  • wasm/WasmParser.h:

(JSC::Wasm::Parser::parseResultType):

  • wasm/generateWasm.py:

(Wasm.init):

  • wasm/generateWasmOpsHeader.py:

(cppMacro):
(typeMacroizer):
(opcodeMacroizer):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::callWebAssemblyFunction):

  • wasm/wasm.json:
1:43 PM Changeset in webkit [209305] by hyatt@apple.com
  • 1 edit
    2 deletes in trunk/LayoutTests

[CSS Parser] Remove Inspector test of Bison errors
https://bugs.webkit.org/show_bug.cgi?id=165362

Reviewed by Simon Fraser.

The old parser logs invalid property declaration errors whenever a Bison error
occurs. This catches only a fraction of declaration errors,
since Bison accepts practically everything and leaves it up to the specific
parser functions to determine validity of a property.

The new parser does not have this error reporting. The old reporting will be
removed from CSSParser when the new parser turns on. This patch removes the
test of Bison errors.

  • inspector/console/css-source-locations-expected.txt: Removed.
  • inspector/console/css-source-locations.html: Removed.
1:22 PM Changeset in webkit [209304] by hyatt@apple.com
  • 12 edits in trunk/Source/WebCore

[CSS Parser] Remove line numbers from StyleRule.
https://bugs.webkit.org/show_bug.cgi?id=165361

Reviewed by Simon Fraser.

StyleRules have a concept of a source line that is eventually passed
to the inspector. This was only ever used by normal rules, i.e., ones with
selectors, and set to 0 for all other rules. This line was set to the line number
at which the end of the selector text occurred.

Because Inspector already computes the start and end range for the selector
text, storing a source line on StyleRule ends up being redundant. This patch
gets rid of the source line and uses the end line of the selector text
instead.

  • css/CSSGrammar.y.in:

Remove the code that updates the last seen selector line.

  • css/CSSKeyframeRule.cpp:

(WebCore::StyleKeyframe::StyleKeyframe):

  • css/CSSKeyframesRule.cpp:

(WebCore::StyleRuleKeyframes::StyleRuleKeyframes):
No longer need to pass in a 0 line number.

  • css/StyleRule.cpp:

(WebCore::StyleRule::StyleRule):
(WebCore::StyleRule::create):
(WebCore::StyleRule::splitIntoMultipleRulesWithMaximumSelectorComponentCount):
(WebCore::StyleRuleFontFace::StyleRuleFontFace):
(WebCore::StyleRuleGroup::StyleRuleGroup):
(WebCore::StyleRuleCharset::StyleRuleCharset):
(WebCore::StyleRuleNamespace::StyleRuleNamespace):

  • css/StyleRule.h:

(WebCore::StyleRuleBase::StyleRuleBase):
(WebCore::StyleRuleBase::sourceLine): Deleted.

  • css/StyleRuleImport.cpp:

(WebCore::StyleRuleImport::StyleRuleImport):
Remove m_sourceLine and change the create methods and constructors to not
require a line number.

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::createStyleRule):
Line number no longer needed.

(WebCore::CSSParser::updateLastSelectorLineAndPosition): Deleted.

  • css/parser/CSSParser.h:

Got rid of the function that tracks and updates the last seen selector line.

  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::consumeStyleRule):
Fix the rule creation in the new parser to not pass in a 0 line number.

  • inspector/InspectorStyleSheet.cpp:

(WebCore::buildSourceRangeObject):
(WebCore::InspectorStyleSheet::buildObjectForSelectorList):
(WebCore::InspectorStyleSheet::buildObjectForRule):

  • inspector/InspectorStyleSheet.h:

Patch the methods that build up the selector range to return the end line
information for selector text so that it can be set as the source line
for the rule (thus eliminating the need to store the line number on the style
rule itself).

12:22 PM Changeset in webkit [209303] by weinig@apple.com
  • 42 edits
    2 deletes in trunk

optional sequence values not handled correctly by binding generator
https://bugs.webkit.org/show_bug.cgi?id=142562

Source/WebCore:

Also fixes:

Remove non-standard postMessage overload
https://bugs.webkit.org/show_bug.cgi?id=161911

and

Wrong argument order in window.postMessage
https://bugs.webkit.org/show_bug.cgi?id=63141

Reviewed by Darin Adler.

  • WebCore.xcodeproj/project.pbxproj:

Remove no longer needed files.

  • bindings/generic/IDLTypes.h:
  • bindings/js/JSDOMConvert.h:

(WebCore::Converter<IDLObject>::convert):
Add support for the WebIDL object type.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::createDOMException):
Add support for throwing stack overflow errors.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::handlePostMessage): Deleted.
(WebCore::JSDOMWindow::postMessage): Deleted.

  • bindings/js/JSDedicatedWorkerGlobalScopeCustom.cpp: Removed.
  • bindings/js/JSMessagePortCustom.cpp:

(WebCore::JSMessagePort::postMessage): Deleted.
(WebCore::extractTransferables): Deleted.

  • bindings/js/JSMessagePortCustom.h: Removed.
  • bindings/js/JSWorkerCustom.cpp:

(WebCore::JSWorker::postMessage): Deleted.
Remove custom bindings for postMessage.

  • bindings/js/SerializedScriptValue.h:

Switch to using enum class.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::transferArrayBuffers):
(WebCore::SerializedScriptValue::create):
Add new create function that takes the transfer list, processes it, and returns
MessagePorts and SerializedScriptValue / exception.

(WebCore::CloneBase::throwStackOverflow): Deleted.
(WebCore::CloneDeserializer::throwValidationError): Deleted.
Remove uncalled functions.

  • bindings/scripts/CodeGenerator.pm:

(IsRefPtrType):
(IsBuiltinType):

  • bindings/scripts/CodeGeneratorJS.pm:

(AddToIncludesForIDLType):
(GetBaseIDLType):
Add support for the WebIDL 'object' type.

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

Add tests for 'object'.

  • dom/ExceptionCode.h:

Add two new ExceptionCodes:

  • ExistingExceptionError, to indicate that implementation code threw a JS exception.
  • StackOverflowError, to indicate that a stack overflow exception should be thrown.
  • dom/MessagePort.cpp:

(WebCore::MessagePort::postMessage):

  • dom/MessagePort.h:
  • dom/MessagePort.idl:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::postMessage):

  • page/DOMWindow.h:
  • page/DOMWindow.idl:
  • workers/DedicatedWorkerGlobalScope.cpp:

(WebCore::DedicatedWorkerGlobalScope::postMessage):

  • workers/DedicatedWorkerGlobalScope.h:
  • workers/DedicatedWorkerGlobalScope.idl:
  • workers/Worker.cpp:

(WebCore::Worker::postMessage):

  • workers/Worker.h:
  • workers/Worker.idl:

Update to call new SerializedScriptValue create function.

LayoutTests:

Reviewed by Darin Adler.

  • fast/canvas/webgl/resources/typed-array-worker.js:
  • fast/dom/Window/window-postmessage-args-expected.txt:
  • fast/dom/Window/window-postmessage-args.html:
  • fast/events/message-port-deleted-document.html:
  • fast/events/message-port-deleted-frame.html:
  • fast/events/message-port-inactive-document.html:
  • fast/events/message-port-multi-expected.txt:
  • fast/events/message-port.html:
  • fast/workers/worker-context-multi-port-expected.txt:
  • fast/workers/worker-multi-port-expected.txt:
  • webgl/1.0.2/resources/webgl_test_files/conformance/typedarrays/resources/typed-array-worker.js:
  • webgl/1.0.3/resources/webgl_test_files/conformance/typedarrays/resources/typed-array-worker.js:

Update for new exceptions and stricter enforcement of the postMessage signature.

11:56 AM Changeset in webkit [209302] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Support Dashboard Regions
https://bugs.webkit.org/show_bug.cgi?id=165357

Reviewed by Daniel Bates.

  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeWebkitDashboardRegion):
(WebCore::CSSPropertyParser::parseSingleValue):

11:05 AM Changeset in webkit [209301] by keith_miller@apple.com
  • 6 edits
    1 add in trunk

Add Wasm copysign
https://bugs.webkit.org/show_bug.cgi?id=165355

Reviewed by Filip Pizlo.

JSTests:

  • wasm/function-tests/copysign.js: Added.

Source/JavaScriptCore:

This patch also makes two other important changes:

1) allows for i64 constants in the B3 generator language.
2) Fixes a bug with F64ConvertUI64 where the operation returned a Float instead

of a Double in B3.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addOp<F64ConvertUI64>):

  • wasm/generateWasmB3IRGeneratorInlinesHeader.py:

(CodeGenerator.generateOpcode):
(generateConstCode):
(generateI32ConstCode): Deleted.

  • wasm/wasm.json:
10:41 AM Changeset in webkit [209300] by commit-queue@webkit.org
  • 6 edits
    1 delete in trunk

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

broke the build (Requested by smfr on #webkit).

Reverted changeset:

"Add Wasm copysign"
https://bugs.webkit.org/show_bug.cgi?id=165355
http://trac.webkit.org/changeset/209298

10:33 AM Changeset in webkit [209299] by Simon Fraser
  • 21 edits
    6 adds in trunk

Improve the behavior of scroll-into-view when the target is inside position:fixed
https://bugs.webkit.org/show_bug.cgi?id=165354

Reviewed by Zalan Bujtas.
Source/WebCore:

The existing RenderLayer::scrollRectToVisible() code paid no heed to whether the
target was inside position:fixed, resulting in unwanted scrolls.

Fix this by plumbing through from the call sites a "insideFixed" flag which we get
when we call localToAbsolute(), and use this flag to avoid scrolling at all if
unzoomed.

If zoomed and we're focussing something inside position:fixed, and if visual viewports
are enabled, we can compute the visual viewport required to reveal the target rect,
which gives us the ideal scroll position.

Fix a bug on non-iOS platforms when zoomed, which is to scale the viewRect since
frameView.visibleContentRect() gives an unscaled rect on those platforms.

Not all callers of scrollRectToVisible() are fixed, but those that are not will get
the current behavior.

Tests: fast/overflow/scroll-anchor-in-position-fixed.html

fast/visual-viewport/zoomed-scroll-into-view-fixed.html
fast/visual-viewport/zoomed-scroll-to-anchor-in-position-fixed.html

  • dom/Element.cpp:

(WebCore::Element::scrollIntoView):
(WebCore::Element::scrollIntoViewIfNeeded):
(WebCore::Element::scrollIntoViewIfNotVisible):
(WebCore::Element::updateFocusAppearance):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::FrameSelection):
(WebCore::FrameSelection::absoluteCaretBounds):
(WebCore::FrameSelection::recomputeCaretRect):
(WebCore::FrameSelection::revealSelection):

  • editing/FrameSelection.h:
  • editing/VisiblePosition.cpp:

(WebCore::VisiblePosition::absoluteCaretBounds):

  • editing/VisiblePosition.h:
  • editing/htmlediting.cpp:

(WebCore::absoluteBoundsForLocalCaretRect):

  • editing/htmlediting.h:
  • page/FrameView.cpp:

(WebCore::FrameView::scrollElementToRect):
(WebCore::FrameView::scrollToAnchor):

  • page/PrintContext.cpp:

(WebCore::PrintContext::outputLinkedDestinations):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::getLeadingCorner):
(WebCore::RenderElement::getTrailingCorner):
(WebCore::RenderElement::absoluteAnchorRect):
(WebCore::RenderElement::anchorRect): Renamed to absoluteAnchorRect().

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

(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::getRectToExpose):
(WebCore::RenderLayer::autoscroll):

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

(WebCore::RenderObject::scrollRectToVisible):

  • rendering/RenderObject.h:

Source/WebKit/mac:

Plumb through 'insideFixed'. We don't get compute it, so behavior from
these call sites won't change.

  • WebView/WebFrame.mm:

(-[WebFrame _scrollDOMRangeToVisible:]):
(-[WebFrame _scrollDOMRangeToVisible:withInset:]):

LayoutTests:

  • fast/overflow/scroll-anchor-in-position-fixed-expected.txt: Added.
  • fast/overflow/scroll-anchor-in-position-fixed.html: Added.
  • fast/visual-viewport/zoomed-scroll-to-anchor-in-position-fixed-expected.txt: Added.
  • fast/visual-viewport/zoomed-scroll-to-anchor-in-position-fixed.html: Added.
  • platform/ios-simulator/TestExpectations:
9:37 AM Changeset in webkit [209298] by keith_miller@apple.com
  • 6 edits
    1 add in trunk

Add Wasm copysign
https://bugs.webkit.org/show_bug.cgi?id=165355

Reviewed by Filip Pizlo.

JSTests:

  • wasm/function-tests/copysign.js: Added.

Source/JavaScriptCore:

This patch also makes two other important changes:

1) allows for i64 constants in the B3 generator language.
2) Fixes a bug with F64ConvertUI64 where the operation returned a Float instead

of a Double in B3.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addOp<F64ConvertUI64>):

  • wasm/generateWasmB3IRGeneratorInlinesHeader.py:

(CodeGenerator.generateOpcode):
(generateConstCode):
(generateI32ConstCode): Deleted.

  • wasm/wasm.json:
8:36 AM Changeset in webkit [209297] by Simon Fraser
  • 6 edits
    2 adds in trunk

localToAbsolute() does incorrect conversion for elements inside position:fixed with zooming
https://bugs.webkit.org/show_bug.cgi?id=165244

Reviewed by Zalan Bujtas.

Source/WebCore:

RenderView::mapLocalToContainer() and RenderView::mapAbsoluteToLocalPoint() handle the coordinate
mapping through the RenderView's transform (when zoomed), and apply the scroll offset for position:fixed
elements.

They did this in the wrong order; "local to absolute" applied the zoom scale, and then adjusted for the scroll position,
and "absolute to local" applied the scroll position and then the transform.

However that scroll position adjustment should be in unzoomed coordinates, since it's accounting for the
layout adjustment that position:fixed receives (which actually occurs via the localToAbsolute() call
in RenderLayer's accumulateOffsetTowardsAncestor()). "local to absolute" should therefore apply the scroll
adjustment first before the transform, and "absolute to local" the reverse.

In both visual viewport mode, and legacy drifty fixed mode FrameView::scrollPositionForFixedPosition()
returns a scroll offset that is unaffected by zoom, which is correct and confirms this change.

[Confusingly, ScrollView scroll positions _are_ affected by zoom, as the entire document gets bigger.]

RenderGeometryMap::mapToContainer(), which is an optimization on top of RenderView::mapLocalToContainer(),
gets a similar fix.

Test: fast/zooming/client-rect-in-fixed-zoomed.html

  • rendering/RenderGeometryMap.cpp:

(WebCore::RenderGeometryMap::mapToContainer):

  • rendering/RenderView.cpp:

(WebCore::RenderView::mapLocalToContainer):
(WebCore::RenderView::mapAbsoluteToLocalPoint):

LayoutTests:

Test getBoundingClientRect() (which internally calls localToAbsolute())
for an element inside position:fixed after zooming.

  • fast/visual-viewport/zoomed-fixed-expected.txt: Rebaseline
  • fast/zooming/client-rect-in-fixed-zoomed-expected.txt: Added.
  • fast/zooming/client-rect-in-fixed-zoomed.html: Added.
  • platform/ios-simulator/TestExpectations: Skip new test on iOS; test requires window.scrollTo to be synchronous.

Dec 2, 2016:

11:28 PM Changeset in webkit [209296] by keith_miller@apple.com
  • 4 edits in trunk

Unreviewed, fix git having a breakdown over trying to reland a rollout.

10:40 PM Changeset in webkit [209295] by keith_miller@apple.com
  • 5 edits
    2 adds in trunk

[JSC] add additional bit to JSTokenType bitfield
https://bugs.webkit.org/show_bug.cgi?id=165091

Patch by Caitlin Potter <caitp@igalia.com> on 2016-12-02
Reviewed by Geoffrey Garen.

JSTests:

  • stress/bug-165091.js: Added.

(shouldThrowSyntaxError):

Source/JavaScriptCore:

Avoid overflow which causes keyword tokens to be treated as unary
tokens now that "async" is tokenized as a keyword, by granting an
additional 64 bits to be occupied by token IDs.

  • parser/ParserTokens.h:
7:58 PM Changeset in webkit [209294] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebKit2

[iOS] Add a WebView private configuration for changing the WebContent update frequency
https://bugs.webkit.org/show_bug.cgi?id=165289
<rdar://problem/29472577>

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-12-02
Reviewed by Tim Horton.

Expose a preference which allows us to control the fps of web content updates.

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::contentUpdateFrequency):
(API::PageConfiguration::setContentUpdateFrequency):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _contentUpdateFrequency]):
(-[WKWebViewConfiguration _setContentUpdateFrequency:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(-[WKOneShotDisplayLinkHandler initWithDrawingAreaProxy:]):
(WebKit::RemoteLayerTreeDrawingAreaProxy::contentUpdateFrequency):

7:39 PM Changeset in webkit [209293] by caitp@igalia.com
  • 3 edits
    1 add in trunk

[JSC] add additional bit to JSTokenType bitfield
https://bugs.webkit.org/show_bug.cgi?id=165091

Reviewed by Geoffrey Garen.

JSTests:

  • stress/bug-165091.js: Added.

(shouldThrowSyntaxError):

Source/JavaScriptCore:

Avoid overflow which causes keyword tokens to be treated as unary
tokens now that "async" is tokenized as a keyword, by granting an
additional 64 bits to be occupied by token IDs.

  • parser/ParserTokens.h:
6:44 PM Changeset in webkit [209292] by Simon Fraser
  • 21 edits in trunk/Source/WebCore

Put names on layers in release builds
https://bugs.webkit.org/show_bug.cgi?id=165347

Reviewed by Tim Horton.

Put names on GraphicsLayers (and therefore CALayers) in release builds. Release names
are a simpler, truncated version of debug names, with <tagname> id class names.

Non-primary layer names converted to lowercase and "layer" removed.

Fix comments that refer to gdb.

Use ENABLE(TREE_DEBUGGING) in more places.

  • dom/Node.h:
  • dom/Position.h:
  • dom/Range.h:
  • editing/FrameSelection.h:
  • editing/VisiblePosition.h:
  • editing/VisibleSelection.h:
  • history/HistoryItem.h:
  • page/FrameTree.h:
  • platform/graphics/GraphicsLayer.h:
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setName):
(WebCore::GraphicsLayerCA::setContentsToSolidColor):
(WebCore::GraphicsLayerCA::updateNames):
(WebCore::GraphicsLayerCA::updateBackdropFilters):
(WebCore::GraphicsLayerCA::updateContentsImage):
(WebCore::GraphicsLayerCA::updateClippingStrategy):
(WebCore::GraphicsLayerCA::updateContentsRects):
(WebCore::GraphicsLayerCA::changeLayerTypeTo):

  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::tileGridContainerLayerName):
(WebCore::TileController::zoomedOutTileGridContainerLayerName):
(WebCore::TileController::createTileLayer):

  • rendering/CounterNode.h:
  • rendering/InlineBox.h:
  • rendering/InlineFlowBox.h:
  • rendering/RenderCounter.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::name):

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

(WebCore::RenderLayerBacking::createGraphicsLayer):
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
(WebCore::RenderLayerBacking::updateAncestorClippingLayer):
(WebCore::RenderLayerBacking::updateDescendantClippingLayer):
(WebCore::RenderLayerBacking::updateForegroundLayer):
(WebCore::RenderLayerBacking::updateBackgroundLayer):
(WebCore::RenderLayerBacking::updateMaskingLayer):
(WebCore::RenderLayerBacking::updateChildClippingStrategy):
(WebCore::RenderLayerBacking::updateScrollingLayers):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForHeader):
(WebCore::RenderLayerCompositor::updateLayerForFooter):
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
(WebCore::RenderLayerCompositor::ensureRootLayer):

  • rendering/RenderObject.h:
6:40 PM Changeset in webkit [209291] by graouts@webkit.org
  • 7 edits in trunk

[Modern Media Controls] Update the media controls size as the media element is resized
https://bugs.webkit.org/show_bug.cgi?id=165346

Reviewed by Dean Jackson.

The "resize" event dispatched by HTMLMediaElement indicates a change in the media's
intrinsic size, while the "resize" event dispatched by the HTMLMediaElement's ShadowRoot
indicates that the layout size of the media element has changed. We now use the latter.

  • Modules/modern-media-controls/media/media-controller.js:

(MediaController):
(MediaController.prototype.handleEvent):

5:53 PM Changeset in webkit [209290] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/dom/Window/window-resize-contents.html as flaky on mac-wk2.
https://bugs.webkit.org/show_bug.cgi?id=165352

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:41 PM Changeset in webkit [209289] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-602.4.1

New tag.

5:31 PM Changeset in webkit [209288] by aestes@apple.com
  • 46 edits in trunk

[Cocoa] Adopt the PRODUCT_BUNDLE_IDENTIFIER build setting
https://bugs.webkit.org/show_bug.cgi?id=164492

Reviewed by Dan Bernstein.

Source/JavaScriptCore:

  • Configurations/JavaScriptCore.xcconfig: Set PRODUCT_BUNDLE_IDENTIFIER to

com.apple.$(PRODUCT_NAME:rfc1034identifier).

  • Info.plist: Changed CFBundleIdentifier's value from com.apple.${PRODUCT_NAME} to

${PRODUCT_BUNDLE_IDENTIFIER}.

Source/WebCore:

  • Configurations/WebCore.xcconfig: Set PRODUCT_BUNDLE_IDENTIFIER to

com.apple.$(PRODUCT_NAME:rfc1034identifier).

  • Info.plist: Changed CFBundleIdentifier's value from com.apple.${PRODUCT_NAME} to

${PRODUCT_BUNDLE_IDENTIFIER}.

Source/WebInspectorUI:

  • Configurations/WebInspectorUIFramework.xcconfig: Set PRODUCT_BUNDLE_IDENTIFIER to

com.apple.$(PRODUCT_NAME:rfc1034identifier).

  • Info.plist: Changed CFBundleIdentifier's value from

com.apple.${PRODUCT_NAME:rfc1034identifier} to ${PRODUCT_BUNDLE_IDENTIFIER}.

Source/WebKit/mac:

  • Configurations/WebKitLegacy.xcconfig: Set PRODUCT_BUNDLE_IDENTIFIER to

com.apple.$(PRODUCT_NAME:rfc1034identifier).

  • Info.plist: Changed CFBundleIdentifier's value from com.apple.${PRODUCT_NAME} to

${PRODUCT_BUNDLE_IDENTIFIER}.

Source/WebKit2:

  • Configurations/DatabaseService.xcconfig: Set PRODUCT_BUNDLE_IDENTIFIER to

$(PRODUCT_NAME).

  • Configurations/NetworkService.xcconfig: Ditto.
  • Configurations/PluginService.32.xcconfig: Ditto.
  • Configurations/PluginService.64.xcconfig: Ditto.
  • Configurations/WebContentService.xcconfig: Ditto.
  • Configurations/WebKit.xcconfig: Set PRODUCT_BUNDLE_IDENTIFIER to

com.apple.$(PRODUCT_NAME:rfc1034identifier).

  • DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService/Info.plist: Changed

CFBundleIdentifier's value from ${PRODUCT_NAME} to ${PRODUCT_BUNDLE_IDENTIFIER}.

  • Info.plist: Changed CFBundleIdentifier's value from com.apple.${PRODUCT_NAME} to

${PRODUCT_BUNDLE_IDENTIFIER}.

  • NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX-10.9-10.10.plist: Changed

CFBundleIdentifier's value from ${PRODUCT_NAME} to ${PRODUCT_BUNDLE_IDENTIFIER}.

  • NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX.plist: Ditto.
  • NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-iOS.plist: Ditto.
  • PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64-10.9-10.10.Info.plist: Ditto.
  • PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist: Ditto.
  • WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX-10.9-10.10.plist: Ditto.
  • WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist: Ditto.
  • WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-iOS.plist: Ditto.

Tools:

  • DumpRenderTree/TestNetscapePlugIn/mac/Info.plist: Changed CFBundleIdentifier's value from

com.apple.testnetscapeplugin to ${PRODUCT_BUNDLE_IDENTIFIER}.

  • DumpRenderTree/ios/Info.plist: Changed CFBundleIdentifier's value from

org.webkit.DumpRenderTree to ${PRODUCT_BUNDLE_IDENTIFIER}.

  • DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig: Set

PRODUCT_BUNDLE_IDENTIFIER to org.webkit.DumpRenderTree.

  • DumpRenderTree/mac/Configurations/TestNetscapePlugIn.xcconfig: Set

PRODUCT_BUNDLE_IDENTIFIER to com.apple.testnetscapeplugin.

  • MiniBrowser/Configurations/MiniBrowser.xcconfig: Set PRODUCT_BUNDLE_IDENTIFIER to

org.webkit.$(PRODUCT_NAME:rfc1034identifier).

  • MiniBrowser/Configurations/MiniBrowserBundle.xcconfig: Set PRODUCT_BUNDLE_IDENTIFIER to

com.apple.$(PRODUCT_NAME:rfc1034identifier).

  • MiniBrowser/mac/Bundle/Info.plist: Changed CFBundleIdentifier's value from

com.apple.${PRODUCT_NAME:rfc1034identifier} to ${PRODUCT_BUNDLE_IDENTIFIER}.

  • MiniBrowser/mac/Info.plist: Changed CFBundleIdentifier's value from

org.webkit.${PRODUCT_NAME} to ${PRODUCT_BUNDLE_IDENTIFIER}.

  • TestWebKitAPI/Configurations/InjectedBundle.xcconfig: Set INFOPLIST_FILE to

InjectedBundle-Info.plist and set PRODUCT_BUNDLE_IDENTIFIER to
com.apple.$(PRODUCT_NAME:rfc1034identifier).

  • TestWebKitAPI/Configurations/WebProcessPlugIn.xcconfig: Set PRODUCT_BUNDLE_IDENTIFIER to

com.apple.$(PRODUCT_NAME:rfc1034identifier).

  • TestWebKitAPI/InjectedBundle-Info.plist: Changed CFBundleIdentifier's value from

com.yourcompany.${PRODUCT_NAME:rfc1034identifier} to ${PRODUCT_BUNDLE_IDENTIFIER}.

  • TestWebKitAPI/cocoa/WebProcessPlugIn/Info.plist: Added a CFBundleIdentifier key with the

value ${PRODUCT_BUNDLE_IDENTIFIER}.

  • WebKitTestRunner/Configurations/InjectedBundle.xcconfig: Set INFOPLIST_FILE to

InjectedBundle-Info.plist and set PRODUCT_BUNDLE_IDENTIFIER to
com.apple.WebKitTestRunner.InjectedBundle.

  • WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig: Set

PRODUCT_BUNDLE_IDENTIFIER to org.webkit.$(PRODUCT_NAME:rfc1034identifier).

  • WebKitTestRunner/InjectedBundle-Info.plist: Changed CFBundleIdentifier's value from

com.apple.WebKitTestRunner.InjectedBundle to ${PRODUCT_BUNDLE_IDENTIFIER}.

  • WebKitTestRunner/WebKitTestRunnerApp/WebKitTestRunnerApp-Info.plist: Changed

CFBundleIdentifier's value from org.webkit.${PRODUCT_NAME:rfc1034identifier} to
${PRODUCT_BUNDLE_IDENTIFIER}.

5:20 PM Changeset in webkit [209287] by dino@apple.com
  • 1 edit
    1 add in trunk/Websites/webkit.org

Make a public facing page to check for WebKit features
https://bugs.webkit.org/show_bug.cgi?id=165331
<rdar://problem/29488535>

Reviewed by Antoine Quint.

Add a web page to webkit.org that allows us to live
detect our experimental features. This is mostly for
internal debugging, but also provides simple examples
of how real content would do such detection.

  • experimental-features.html: Added.
5:09 PM Changeset in webkit [209286] by hyatt@apple.com
  • 2 edits in trunk/LayoutTests

[CSS Parser] Turn off more tests until new parser is on
https://bugs.webkit.org/show_bug.cgi?id=165349

Reviewed by Dean Jackson.

4:54 PM Changeset in webkit [209285] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Rebaseline fast/text/crash-complex-text-surrogate.html after r209279.

Unreviewed test gardening.

  • platform/ios-simulator/fast/text/crash-complex-text-surrogate-expected.txt:
  • platform/mac-yosemite/fast/text/crash-complex-text-surrogate-expected.txt:
4:37 PM Changeset in webkit [209284] by jfbastien@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

WebAssembly: mark WasmOps.h as private
https://bugs.webkit.org/show_bug.cgi?id=165335

Reviewed by Mark Lam.

  • JavaScriptCore.xcodeproj/project.pbxproj: WasmOps.h will be used by non-JSC and should therefore be private
4:35 PM Changeset in webkit [209283] by Chris Dumez
  • 7 edits
    2 deletes in trunk

Unreviewed, rolling out r209275 and r209276.
https://bugs.webkit.org/show_bug.cgi?id=165348

"broke the arm build" (Requested by keith_miller on #webkit).

Reverted changesets:

"Add Wasm floating point nearest and trunc"
https://bugs.webkit.org/show_bug.cgi?id=165339
http://trac.webkit.org/changeset/209275

"Unreviewed, forgot to change instruction after renaming."
http://trac.webkit.org/changeset/209276

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

4:22 PM Changeset in webkit [209282] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

HTML Interactive Form Validation popovers do not show in iOS WKWebViews
https://bugs.webkit.org/show_bug.cgi?id=165340
<rdar://problem/29489966>

Reviewed by Simon Fraser.

HTML Interactive Form Validation popovers do not show in iOS WKWebViews,
only in MobileSafari. To address the issue try to find an appropriate
UIViewController to present the popover when the client does not provide
a presenting view controller.

  • platform/ValidationBubble.h:
  • platform/ios/ValidationBubbleIOS.mm:

(WebCore::fallbackViewController):
(WebCore::ValidationBubble::setAnchorRect):

  • platform/spi/ios/UIKitSPI.h:
3:36 PM Changeset in webkit [209281] by matthew_hanson@apple.com
  • 3 edits in tags/Safari-603.1.14/Source/WebCore

Merge r209264. rdar://problem/29487187

3:21 PM Changeset in webkit [209280] by Brent Fulgham
  • 5 edits in trunk/Source/WebKit2

[Mac] Update sandbox profiles to use modern syntax and avoid duplication
https://bugs.webkit.org/show_bug.cgi?id=165332
<rdar://problem/26898991>

Reviewed by Anders Carlsson.

Update the Mac sandbox profiles to reflect that modern Cocoa applications
communicate with cfprefsd, rather than plists on disk (and have done so
for the past several releases).

Get rid of some duplicated rules, as well as old compatibility rules that
are never triggered under supported operating systems.

  • DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
3:07 PM Changeset in webkit [209279] by hyatt@apple.com
  • 6 edits in trunk/LayoutTests

[CSS Parser] Fix errors in numerous layout tests
https://bugs.webkit.org/show_bug.cgi?id=165343

Reviewed by Zalan Bujtas.

  • fast/backgrounds/repeat/parsing-background-repeat-expected.txt:
  • fast/backgrounds/repeat/script-tests/parsing-background-repeat.js:

The old parser partially applies shorthands, even if it rejects later on.
The new parser properly rejects the entire shorthand. Fix the test so that
the numbers at the end are not unitless so that the entire shorthand parses, allowing
the components to be obtained.

  • fast/css/unknown-pseudo-element-matching-expected.txt:
  • fast/css/unknown-pseudo-element-matching.html:
  • fast/text/crash-complex-text-surrogate.html:

The old parser allows the tag name to be omitted following a namespace bar (|). This
is not legal according to the namespaces spec, and the new parser behaves correctly.
For the crash test, it's important that all the code still runs, so we know the crash
doesn't happen, so I patched the test to put in '*' for the tag names to keep everything
the same.

For the unknown-pseudo-element test, I just removed the five invalid cases.

3:07 PM Changeset in webkit [209278] by matthew_hanson@apple.com
  • 22 edits in tags/Safari-603.1.14

Merge r209242.

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

Remove redundant LayoutUnit conversions.
https://bugs.webkit.org/show_bug.cgi?id=165338

Reviewed by Simon Fraser.

RenderBlockFlow::computeColumnCountAndWidth has some redundant LayoutUnti <-> unsigned conversions.

No change in functionality.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeColumnCountAndWidth):

3:01 PM Changeset in webkit [209276] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, forgot to change instruction after renaming.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::nearestIntDouble):
(JSC::MacroAssemblerARM64::nearestIntFloat):

2:59 PM Changeset in webkit [209275] by keith_miller@apple.com
  • 7 edits
    2 adds in trunk

Add Wasm floating point nearest and trunc
https://bugs.webkit.org/show_bug.cgi?id=165339

Reviewed by Filip Pizlo.

JSTests:

  • wasm/function-tests/nearest.js: Added.
  • wasm/function-tests/trunc.js: Added.

Source/JavaScriptCore:

This patch also allows any wasm primitive type to be passed as a
string.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::nearestIntDouble):
(JSC::MacroAssemblerARM64::nearestIntFloat):
(JSC::MacroAssemblerARM64::truncDouble):
(JSC::MacroAssemblerARM64::truncFloat):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::nearestIntDouble):
(JSC::MacroAssemblerX86Common::nearestIntFloat):

  • jsc.cpp:

(box):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addOp<F64ConvertUI64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::F32ConvertUI64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::F64Nearest>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::F32Nearest>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::F64Trunc>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::F32Trunc>):

  • wasm/WasmFunctionParser.h:

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

2:53 PM Changeset in webkit [209274] by hyatt@apple.com
  • 2 edits in trunk/LayoutTests

[CSS Parser] Turn off the large value test, since clamping is not the same.
https://bugs.webkit.org/show_bug.cgi?id=165341

Reviewed by Zalan Bujtas.

2:44 PM Changeset in webkit [209273] by fpizlo@apple.com
  • 2 edits in trunk/PerformanceTests

ES6SampleBench should report an average for Steady State so that all of the numbers are comparable
https://bugs.webkit.org/show_bug.cgi?id=165325

Reviewed by Saam Barati.

This makes all of the numbers that ES6SampleBench reports comparable to each other: they all speak of the time
it took to run an iteration of something.

  • ES6SampleBench/results.js:

(Results.prototype.reportResult):

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

Marking three imported/w3c/web-platform-tests/IndexedDB/idbindex-* tests as flaky on macOS debug.
https://bugs.webkit.org/show_bug.cgi?id=165222

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:36 PM Changeset in webkit [209271] by graouts@webkit.org
  • 12 edits
    4 copies
    8 adds in trunk

[Modern Media Controls] Add rewind and fast-forward support
https://bugs.webkit.org/show_bug.cgi?id=165294

Reviewed by Dean Jackson.

We implement support for rewinding and fast-forwarding the media by pressing dedicated
buttons in fullscreen on macOS. We introduce a new SeekButton class that the existing
RewindButton and ForwardButton classes now extend and which provides handling of
"mousedown" and "mouseup" events to indicate that a button is being pressed to the
UI delegate.

We also introduce a new SeekSupport class from which SeekBackwardSupport and
SeekForwardSupport inherit to integrate with those controls and update the media
time.

Tests: media/modern-media-controls/layout-node/layout-node-parent-of-type.html

media/modern-media-controls/seek-backward-support/seek-backward-support.html
media/modern-media-controls/seek-forward-support/seek-forward-support.html

  • Modules/modern-media-controls/controls/forward-button.js:
  • Modules/modern-media-controls/controls/layout-node.js:

(LayoutNode.prototype.parentOfType):

  • Modules/modern-media-controls/controls/rewind-button.js:
  • Modules/modern-media-controls/controls/seek-button.js: Added.

(SeekButton):
(SeekButton.prototype.handleEvent):
(SeekButton.prototype._didStartPressing):
(SeekButton.prototype._didStopPressing):
(SeekButton.prototype._notifyDelegateOfPressingState):

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/media-controller.js:

(MediaController.prototype._updateControlsIfNeeded):

  • Modules/modern-media-controls/media/seek-backward-support.js: Added.

(SeekBackwardSupport.prototype.get control):
(SeekBackwardSupport.prototype.get multiplier):
(SeekBackwardSupport):

  • Modules/modern-media-controls/media/seek-forward-support.js: Added.

(SeekForwardSupport.prototype.get control):
(SeekForwardSupport.prototype.get multiplier):
(SeekForwardSupport):

  • Modules/modern-media-controls/media/seek-support.js: Added.

(SeekSupport.prototype.get multiplier):
(SeekSupport.prototype.buttonPressedStateDidChange):
(SeekSupport.prototype._startSeeking):
(SeekSupport.prototype._stopSeeking):
(SeekSupport.prototype._seek):
(SeekSupport):

  • WebCore.xcodeproj/project.pbxproj:
2:34 PM Changeset in webkit [209270] by matthew_hanson@apple.com
  • 5 edits in trunk/Source

‘Versioning.’

2:29 PM Changeset in webkit [209269] by beidson@apple.com
  • 2 edits in trunk/Tools

Make IndexedDB.WebProcessKillIDBCleanup even more reliable.
https://bugs.webkit.org/show_bug.cgi?id=165330

Reviewed by Alex Christensen.

The test currently nulls out a RetainPtr<WKWebView> to try to destroy the view and kill the process.

Problem is that doesn't reliably destroy the view.
We should explicitly kill the process instead.

Also, by relocating when we kill the process, we can better test behavior of the IndexedDB mechanism.
e.g. We explicitly confirm that a second WebProcess can simultaneously attach to the same unique database as the first.

  • TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup.mm:

(TEST):

2:27 PM Changeset in webkit [209268] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-603.1.14

New tag.

2:17 PM Changeset in webkit [209267] by Chris Dumez
  • 2 edits in trunk/Source/WebKit/mac

Regression(r209252): HTML interactive validation should not be enabled on iOS WK1 yet
https://bugs.webkit.org/show_bug.cgi?id=165328

Reviewed by Simon Fraser.

Only enable HTML interactive form validation on Mac WK1, not iOS WK1.

  • WebView/WebViewData.mm:

(-[WebViewPrivate init]):

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

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

broke 36 webkitpy tests (Requested by mcatanzaro on #webkit).

Reverted changeset:

"Make it possible to use an existing simulator instance for
one-off testing"
https://bugs.webkit.org/show_bug.cgi?id=164568
http://trac.webkit.org/changeset/209136

2:07 PM Changeset in webkit [209265] by hyatt@apple.com
  • 8 edits in trunk/Source/WebCore

[CSS Parser] Need to set edit flags properly when user-modify/select are used.
https://bugs.webkit.org/show_bug.cgi?id=165334

Reviewed by Dean Jackson.

The old parser calls parserSetUsesStyleBasedEditability on
StyleSheetContents* from inside isValidKeywordPropertyAndValue. This
is pretty lame, but we have to do the same in order to pass editing
layout tests.

All of the functions below have been patched with the sole purpose of
propagating StyleSheetContents* through to isValidKeywordPropertyAndValue
in the new parser.

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseValueWithVariableReferences):

  • css/parser/CSSParser.h:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::parseKeywordValue):
(WebCore::CSSParserFastPaths::maybeParseValue):

  • css/parser/CSSParserFastPaths.h:
  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::consumeDeclarationValue):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::CSSPropertyParser):
(WebCore::CSSPropertyParser::parseValue):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseFontFaceDescriptor):
(WebCore::CSSPropertyParser::consumeFont):
(WebCore::CSSPropertyParser::parseShorthand):

  • css/parser/CSSPropertyParser.h:
2:00 PM Changeset in webkit [209264] by Beth Dakin
  • 3 edits in trunk/Source/WebCore

REGRESSION (r208802): TouchBar pause button doesn't work
https://bugs.webkit.org/show_bug.cgi?id=165333
-and corresponding-
rdar://problem/29487187

Reviewed by Wenson Hsieh.

The previous code got this right by using self.playing. _playing was totally un-
used, so this patch just removes it.

  • platform/mac/WebPlaybackControlsManager.h:
  • platform/mac/WebPlaybackControlsManager.mm:

(-[WebPlaybackControlsManager setPlaying:]):

1:46 PM Changeset in webkit [209263] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking media/modern-media-controls/scrubber-support/scrubber-support-click.html as a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=165327

Unreviewed test gardening.

1:46 PM Changeset in webkit [209262] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/inspector/network/xhr-request-data-encoded-correctly.html as a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=164033

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:33 PM Changeset in webkit [209261] by wilander@apple.com
  • 7 edits
    3 adds in trunk

Require preflight for non-standard CORS-safelisted request headers Accept, Accept-Language, and Content-Language
https://bugs.webkit.org/show_bug.cgi?id=165178
<rdar://problem/18792250>

Reviewed by Youenn Fablet.

Fetch currently only restricts the header Content-Type for simple requests:
https://fetch.spec.whatwg.org/#cors-safelisted-request-header

This means simple CORS requests can send unexpected characters in Accept,
Accept-Language, and Content-Language header values.

RFC 7231 implies restrictions on these header values:

As per discussions in the W3C WebAppSec group we should try to restrict
these header values to help protect servers that do not expect simple CORS
requests.

Non-standard, safelisted header values should trigger a preflight and require
the headers to be whitelisted in the response's Access-Control-Allow-Headers.
For Fetch in no-cors mode this change means non-standard header values are not
allowed to be set.

Source/WebCore:

Test: http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight.html

  • loader/CrossOriginAccessControl.cpp:

(WebCore::isSimpleCrossOriginAccessRequest):

Now calls WebCore::isCrossOriginSafeRequestHeader() instead of
WebCore::isOnAccessControlSimpleRequestHeaderWhitelist().

(WebCore::isOnAccessControlSimpleRequestHeaderWhitelist): Deleted.

It was a duplicate of WebCore::isCrossOriginSafeRequestHeader().

  • loader/CrossOriginAccessControl.h:
  • loader/CrossOriginPreflightResultCache.cpp:

(WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):

Now calls WebCore::isCrossOriginSafeRequestHeader() instead of
WebCore::isOnAccessControlSimpleRequestHeaderWhitelist().

  • platform/network/HTTPParsers.cpp:

(WebCore::isValidAcceptHeaderValue):

Basic check that the characters are all ASCII alphanumeric, ' ', '*', '.',
'/', ';', or '='.

(WebCore::isValidLanguageHeaderValue):

Basic check that the characters are all ASCII alphanumeric, ' ', '*', '-',
'.', ';', or '='.

(WebCore::isSimpleHeader):

Removed duplicate code. Now calls WebCore::isCrossOriginSafeRequestHeader().

(WebCore::isCrossOriginSafeRequestHeader):

Now makes a call to WebCore::isValidAcceptHeaderValue() for Accept
headers and WebCore::isValidLanguageHeaderValue() for Accept-Language
and Content-Language headers.

  • platform/network/HTTPParsers.h:

LayoutTests:

  • http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight-expected.txt: Added.
  • http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight.html: Added.

Tests that:

  • Normal Accept, Accept-Language, and Content-Language headers don't trigger

a preflight.

  • Abnormal Accept, Accept-Language, and Content-Language headers do trigger

a preflight.

  • Abnormal Accept, Accept-Language, and Content-Language headers are

accepted if the server whitelists them.

  • http/tests/xmlhttprequest/resources/cors-preflight-safelisted-headers-responder.php: Added.
1:25 PM Changeset in webkit [209260] by matthew_hanson@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

1:25 PM Changeset in webkit [209259] by Alan Bujtas
  • 5 edits
    2 adds in trunk

ASSERTION FAILED: flowThread->regionInRange(region, startRegion, endRegion) in WebCore::RenderBox::borderBoxRectInRegion
https://bugs.webkit.org/show_bug.cgi?id=152113
<rdar://problem/27720221>

Reviewed by David Hyatt.

Source/WebCore:

In a nested column context, do not process a spanner if it belongs to an inner column.

While populating a flow, we search for possible spanners and construct multicolumnsets accordingly.
However due to the top-down nature of populating flows, a descendant spanner could belong to an inner
flow which hasn't been populated yet.
This patch checks if a potential spanner has an ancestor (which is also a descendant
of the flow that we are populating -> nested) that will eventually create a flow context.

Test: fast/multicol/assert-with-nested-columns-and-spanner.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeColumnCountAndWidth):
(WebCore::RenderBlockFlow::willCreateColumns):

  • rendering/RenderBlockFlow.h:
  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::isValidColumnSpanner):

LayoutTests:

  • fast/multicol/assert-with-nested-columns-and-spanner-expected.txt: Added.
  • fast/multicol/assert-with-nested-columns-and-spanner.html: Added.
1:02 PM Changeset in webkit [209258] by hyatt@apple.com
  • 4 edits in trunk

[CSS Parser] Make sure the z-component of transform-origin can be implicit
https://bugs.webkit.org/show_bug.cgi?id=165326

Reviewed by Tim Horton.

Source/WebCore:

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeTransformOrigin):

LayoutTests:

12:59 PM Changeset in webkit [209257] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r192344): Web Inspector: Turning off Code Coverage or Type Profiler logs an error
https://bugs.webkit.org/show_bug.cgi?id=164804
<rdar://problem/29278028>

Reviewed by Matt Baker.

BasicBlockAnnotator and TypeTokenAnnotator were instanciated for a resource in an inactive Debugger tab.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype.showDefaultContentViewForTreeElement):
Don't show any content view if we are not in a selected tab.

12:31 PM Changeset in webkit [209256] by hyatt@apple.com
  • 3 edits in trunk/LayoutTests

[CSS Parser] Fix invalid test font specification
https://bugs.webkit.org/show_bug.cgi?id=165324

Reviewed by Sam Weinig.

  • fast/text/trak-optimizeLegibility.html:
12:20 PM Changeset in webkit [209255] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Fix :any/:host to allow pseudo-elements. Support -webkit-border-radius.
https://bugs.webkit.org/show_bug.cgi?id=165323

Reviewed by Dean Jackson.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseShorthand):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumePseudo):

12:12 PM Changeset in webkit [209254] by hyatt@apple.com
  • 2 edits in trunk/LayoutTests

[CSS Parser] Mark set-selector-text test, since it will need to be rewritten.
https://bugs.webkit.org/show_bug.cgi?id=165322

Reviewed by Dean Jackson.

12:05 PM Changeset in webkit [209253] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

[iOS] Tapping on an HTML validation bubble should dismiss it
https://bugs.webkit.org/show_bug.cgi?id=165122
<rdar://problem/29429372>

Reviewed by Simon Fraser.

Tapping on an HTML validation bubble should dismiss it. Previously it did
nothing.

No new tests, I tried writing one but the validation popover does not
show in the simulator, only on device. I believe at least one reason is that
_presentingViewControllerForWebView() is required and is currently not
implemented by WKTR. I'll look into this issue separately.

  • platform/ValidationBubble.h:
  • platform/ios/ValidationBubbleIOS.mm:

(-[WebValidationBubbleTapRecognizer initWithPopoverController:withPopoverView:]):
(-[WebValidationBubbleTapRecognizer dismissPopover]):
(WebCore::ValidationBubble::ValidationBubble):

12:05 PM Changeset in webkit [209252] by Chris Dumez
  • 13 edits
    2 adds in trunk

[Mac][WK1] Implement new HTML interactive form validation user interface
https://bugs.webkit.org/show_bug.cgi?id=164483

Reviewed by Simon Fraser.

Source/WebKit:

Add new files to xcode project.

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

Implement new HTML interactive form validation user interface on Mac
WK1 and enable it by default.

  • WebCoreSupport/WebValidationMessageClient.h: Added.
  • WebCoreSupport/WebValidationMessageClient.mm: Added.

(WebValidationMessageClient::WebValidationMessageClient):
(WebValidationMessageClient::~WebValidationMessageClient):
(WebValidationMessageClient::showValidationMessage):
(WebValidationMessageClient::hideValidationMessage):
(WebValidationMessageClient::isValidationMessageVisible):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _frameOrBoundsChanged]):

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _willStartScrollingOrZooming]):
(-[WebView _contentsOfUserInterfaceItem:]):
(-[WebView _scaleWebView:atOrigin:]):
(-[WebView _didScrollDocumentInFrameView:]):
(-[WebView _setZoomMultiplier:isTextOnly:]):
(-[WebView showFormValidationMessage:withAnchorRect:]):
(-[WebView hideFormValidationMessage]):

  • WebView/WebViewData.h:
  • WebView/WebViewData.mm:

(-[WebViewPrivate init]):

  • WebView/WebViewInternal.h:
  • WebView/WebViewPrivate.h:

Tools:

Add support for UIScriptController's contentsOfUserInterfaceItem("validationBubble")
on Mac DRT as this is needed by the HTML form validation layout tests.

  • DumpRenderTree/mac/UIScriptControllerMac.mm:

(WTR::UIScriptController::contentsOfUserInterfaceItem):

LayoutTests:

Unskip tests for HTML form validation that are now passing on Mac WK1.

  • platform/mac-wk1/TestExpectations:
11:55 AM Changeset in webkit [209251] by beidson@apple.com
  • 3 edits in trunk/Tools

IndexedDB.IndexedDBMultiProcess and IndexedDB.WebProcessKillIDBCleanup sometimes timeout.
https://bugs.webkit.org/show_bug.cgi?id=160780 and https://bugs.webkit.org/show_bug.cgi?id=161001

Reviewed by Alexey Proskuryakov.

These tests had "run-loop races."

The test spins the runloop waiting for one message.
Two messages might come in from the WebProcess in short succession, and both be delivered to the
UIProcess in the same spin of the runloop.

Therefore by the time the test stops spinning the runloop, notified that a message was received,
the first message has been overwritten by the second.

These tests are fixed by queueing the incoming messages instead of just storing one.

  • TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess.mm:

(-[IndexedDBMPMessageHandler userContentController:didReceiveScriptMessage:]):
(getNextMessage):
(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup.mm:

(-[IndexedDBWebProcessKillMessageHandler userContentController:didReceiveScriptMessage:]):
(getNextMessage):
(TEST):

11:34 AM Changeset in webkit [209250] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking media/modern-media-controls/tracks-support/tracks-support-click-track-in-panel.html as flaky on mac-wk1.
https://bugs.webkit.org/show_bug.cgi?id=165319

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:19 AM Changeset in webkit [209249] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking media/modern-media-controls/media-controller/media-controller-fade-controls-when-entering-fullscreen.html as flaky on mac-wk1.
https://bugs.webkit.org/show_bug.cgi?id=165318

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
10:51 AM Changeset in webkit [209248] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Add support for the SVG 'kerning' property
https://bugs.webkit.org/show_bug.cgi?id=165315

Reviewed by Zalan Bujtas.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeKerning):
(WebCore::CSSPropertyParser::parseSingleValue):

10:40 AM Changeset in webkit [209247] by commit-queue@webkit.org
  • 5 edits
    3 deletes in trunk/Source/WebCore

[WebIDL] Remove support for the 'Nondeterministic' extended attribute
https://bugs.webkit.org/show_bug.cgi?id=165307

Patch by Sam Weinig <sam@webkit.org> on 2016-12-02
Reviewed by Chris Dumez.

We are not currently using the WebReplay functionality that the Nondeterministic
extended attribute is intended to aide. If we come back to WebReplay in the future,
we can bring it back.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateImplementationFunctionCall):
(GetNativeTypeForMemoization): Deleted.

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/test/JS/JSTestNondeterministic.cpp: Removed.
  • bindings/scripts/test/JS/JSTestNondeterministic.h: Removed.
  • bindings/scripts/test/TestNondeterministic.idl: Removed.
  • page/Navigator.idl:
  • page/Screen.idl:
10:38 AM Changeset in webkit [209246] by hyatt@apple.com
  • 1 edit
    2 deletes in trunk/LayoutTests

[CSS Parser] Require whitespace following condition tokens in media queries
https://bugs.webkit.org/show_bug.cgi?id=165314

Reviewed by Dean Jackson.

This test is invalid according to the media queries spec, which states that whitespace is
required following "and"/"or" tokens.

  • fast/css/media-rule-no-whitespace-expected.txt: Removed.
  • fast/css/media-rule-no-whitespace.html: Removed.
10:31 AM Changeset in webkit [209245] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Support the -webkit-letterpress value for text-decoration
https://bugs.webkit.org/show_bug.cgi?id=165313

Reviewed by Dean Jackson.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeTextDecorationLine):

10:21 AM Changeset in webkit [209244] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking media/modern-media-controls/pip-support/pip-support-click.html as flaky on Sierra.
https://bugs.webkit.org/show_bug.cgi?id=165311

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:05 AM Changeset in webkit [209243] by hyatt@apple.com
  • 2 edits in trunk/LayoutTests

[CSS Parser] Fix invalid gradients test
https://bugs.webkit.org/show_bug.cgi?id=165310

Reviewed by Zalan Bujtas.

  • fast/gradients/generated-gradients.html:

The content property here is using invalid syntax. It's supposed to be
space-separated, not comma-separated. The old parser was finding the first
value and then bailing when it saw the comma, but not rejecting. The new parser
properly rejected. To keep the test working, just drop all the extra invalid
gradients and keep the first one.

9:55 AM Changeset in webkit [209242] by jfbastien@apple.com
  • 22 edits in trunk

WebAssembly: revert patch causing odd breakage
https://bugs.webkit.org/show_bug.cgi?id=165308

Unreviewed.

Bug #164724 seems to cause build issues which I haven't tracked down yet. WasmOps.h can't be found:
./Source/JavaScriptCore/wasm/WasmFormat.h:34:10: fatal error: 'WasmOps.h' file not found

It's weird since the file is auto-generated and has been for a while. #164724 merely includes it in WasmFormat.h.

JSTests:

  • wasm/Builder.js:

(const._normalizeFunctionSignature):

  • wasm/Builder_WebAssemblyBinary.js:

(const.emitters.Type):
(const.emitters.Code):

  • wasm/LowLevelBinary.js:

(export.default.LowLevelBinary.prototype.inline_signature_type):
(export.default.LowLevelBinary.prototype.block_type): Deleted.

  • wasm/WASM.js:
  • wasm/js-api/test_basic_api.js:
  • wasm/self-test/test_BuilderWebAssembly.js:

(EmptyModule):
(CustomSection):

  • wasm/self-test/test_WASM.js:
  • wasm/wasm.json:

Source/JavaScriptCore:

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::zeroForType):
(JSC::Wasm::B3IRGenerator::addConstant):
(JSC::Wasm::createJSWrapper):

  • wasm/WasmCallingConvention.h:

(JSC::Wasm::CallingConvention::marshallArgument):

  • wasm/WasmFormat.cpp:

(JSC::Wasm::toString):

  • wasm/WasmFormat.h:

(JSC::Wasm::toB3Type):

  • wasm/WasmFunctionParser.h:

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

  • wasm/WasmModuleParser.cpp:

(JSC::Wasm::ModuleParser::parse):
(JSC::Wasm::ModuleParser::parseType):

  • wasm/WasmModuleParser.h:
  • wasm/WasmParser.h:

(JSC::Wasm::Parser::parseResultType):

  • wasm/generateWasm.py:

(Wasm.init):

  • wasm/generateWasmOpsHeader.py:

(cppMacro):
(opcodeMacroizer):
(typeMacroizer): Deleted.

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::callWebAssemblyFunction):

  • wasm/wasm.json:
9:27 AM Changeset in webkit [209241] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Fix the color-gamut media query evaluator
https://bugs.webkit.org/show_bug.cgi?id=165309

Reviewed by Zalan Bujtas).

  • css/MediaQueryEvaluator.cpp:

(WebCore::colorGamutEvaluate):
Unknown values should result in a failed match, not a successful match.

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

Remove use of WebCore::Dictionary in MediaSession
https://bugs.webkit.org/show_bug.cgi?id=165296

Reviewed by Chris Dumez.

I am not exactly sure of the status of this code. When I enabled it to test my
changes it did not compile until I fixed some things, and it's far out of date
of the latest draft of the Media Session Standard. But despite that I updated it.

  • DerivedSources.make: Removed a line that was breaking the build for some

configurations, perhaps only for programmers from Apple, after r209198.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::MediaSession): Fixed so it compiles.
(WebCore::MediaSession::setMetadata): Changed argument to use a struct rather
htan a WebCore::Dictionary.

  • Modules/mediasession/MediaSession.h: Added a Metadata struct, and used it.

Also fixed the arguments to the constructor.

  • Modules/mediasession/MediaSession.idl: Added MediaMetadata and used it instead

of Dictionary.

8:44 AM Changeset in webkit [209239] by hyatt@apple.com
  • 4 edits in trunk

[CSS Parser] Make sure margin and font set the implicit flag properly
https://bugs.webkit.org/show_bug.cgi?id=165306

Reviewed by Zalan Bujtas.

Source/WebCore:

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeFont):
(WebCore::CSSPropertyParser::consume4Values):

LayoutTests:

8:32 AM Changeset in webkit [209238] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Make sure the templatized consumeIdent uses CSSValuePool
https://bugs.webkit.org/show_bug.cgi?id=165302

Reviewed by Zalan Bujtas.

  • css/parser/CSSPropertyParserHelpers.h:

(WebCore::CSSPropertyParserHelpers::consumeIdent):

8:31 AM Changeset in webkit [209237] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Fix font-variant parsing
https://bugs.webkit.org/show_bug.cgi?id=165301

Reviewed by Zalan Bujtas.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontVariantEastAsian):
(WebCore::CSSPropertyParser::consumeFontVariantShorthand):
Fix a bug with font-variant-east-asian parsing where the id
was getting improperly consumed even when it didn't match.

8:29 AM Changeset in webkit [209236] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Fix animation property parsing
https://bugs.webkit.org/show_bug.cgi?id=165305

Reviewed by Zalan Bujtas.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeAnimationPropertyList):
Match the old parser by only creating a list for animation properties if there
are two or more comma-separated values. Otherwise just return the CSSValue for
the singleton without creating a list.

8:21 AM Changeset in webkit [209235] by commit-queue@webkit.org
  • 6 edits in trunk/Source

Fix build break when disabling some features.
https://bugs.webkit.org/show_bug.cgi?id=165254

Source/WebCore:

Patch by Gustavo Sverzut Barbieri <barbieri@profusion.mobi> on 2016-12-02
Reviewed by Michael Catanzaro.

If we disable SVG_FONTS or XSLT, then
WebCore::CachedResource::isCORSSameOrigin() would have assertions
on non-existent members. These should be isolated within "#if" as
the other places.

If we're in DEVELOPER_MODE but did not provide
TEST_HYPHENATAION_PATH, then we must mark UNUSED_PARAM() if we're
not on GTK port (ie: EFL).

No new tests as this is a build fix.

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::isCORSSameOrigin):

  • missing #if ENABLED(SVG_FONTS)
  • missing #if ENABLED(XSLT)
  • platform/text/hyphen/HyphenationLibHyphen.cpp:

(WebCore::scanTestDictionariesDirectoryIfNecessary):

  • missing UNUSED_PARAM()

Source/WebKit2:

The EFL port was broken if SPELLCHECK was disabled or
PLUGIN_ARCHITECTURE is not x11.

Patch by Gustavo Sverzut Barbieri <barbieri@profusion.mobi> on 2016-12-02
Reviewed by Michael Catanzaro.

  • UIProcess/efl/TextCheckerEfl.cpp:

(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::checkSpellingOfString):
Fix UNUSED_PARAM() usage if SPELLCHECK is disabled.

  • UIProcess/efl/WebPageProxyEfl.cpp:

Isolate methods within #if PLUGIN_ARCHITECTURE(X11).

5:22 AM Changeset in webkit [209234] by magomez@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK] Use an OpenGL < 3.0 compliant way to request the OpenGL version
https://bugs.webkit.org/show_bug.cgi?id=165253

Reviewed by Carlos Garcia Campos.

Use glGetString(GL_VERSION) to get the OpenGL version, as glGetIntegerv with GL_MAJOR_VERSION
and GL_MINOR_VERSION is only supported from 3.0 on.

Covered by existent tests.

  • platform/graphics/GLContext.cpp:

(WebCore::GLContext::version):

12:24 AM Changeset in webkit [209233] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

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

Patch by Alex Christensen <achristensen@webkit.org> on 2016-12-02
Reviewed by Carlos Garcia Campos.

  • platform/graphics/GLContext.cpp:

glGetIntegerv is defined in gl2.h.
GL_MAJOR_VERSION is defined in gl3.h.
These are not included in the WinCairo build.

Note: See TracTimeline for information about the timeline view.