Timeline



Apr 27, 2018:

11:11 PM Changeset in webkit [231131] by Caio Lima
  • 9 edits
    7 adds in trunk

[ESNext][BigInt] Implement support for "*" operation
https://bugs.webkit.org/show_bug.cgi?id=183721

Reviewed by Saam Barati.

JSTests:

  • bigIntTests.yaml:
  • stress/big-int-mul-jit.js: Added.
  • stress/big-int-mul-to-primitive-precedence.js: Added.
  • stress/big-int-mul-to-primitive.js: Added.
  • stress/big-int-mul-type-error.js: Added.
  • stress/big-int-mul-wrapped-value.js: Added.
  • stress/big-int-multiplication.js: Added.
  • stress/big-int-multiply-memory-stress.js: Added.

Source/JavaScriptCore:

Added BigInt support into times binary operator into LLInt and on
JITOperations profiledMul and unprofiledMul. We are also replacing all
uses of int to unsigned when there is no negative values for
variables.

  • dfg/DFGConstantFoldingPhase.cpp:

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

  • jit/JITOperations.cpp:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::JSBigInt):
(JSC::JSBigInt::allocationSize):
(JSC::JSBigInt::createWithLength):
(JSC::JSBigInt::toString):
(JSC::JSBigInt::multiply):
(JSC::JSBigInt::digitDiv):
(JSC::JSBigInt::internalMultiplyAdd):
(JSC::JSBigInt::multiplyAccumulate):
(JSC::JSBigInt::equals):
(JSC::JSBigInt::absoluteDivSmall):
(JSC::JSBigInt::calculateMaximumCharactersRequired):
(JSC::JSBigInt::toStringGeneric):
(JSC::JSBigInt::rightTrim):
(JSC::JSBigInt::allocateFor):
(JSC::JSBigInt::parseInt):
(JSC::JSBigInt::digit):
(JSC::JSBigInt::setDigit):

  • runtime/JSBigInt.h:
  • runtime/Operations.h:

(JSC::jsMul):

10:53 PM Changeset in webkit [231130] by ddkilzer@apple.com
  • 7 edits in trunk/Source

Add logging when SpringBoard enables WebThread
<https://webkit.org/b/185100>
<rdar://problem/39746542>

Reviewed by Daniel Bates.

Source/WebCore:

  • platform/RuntimeApplicationChecks.h:

(WebCore::IOSApplication::isSpringBoard): Add declaration.

  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::IOSApplication::isSpringBoard): Add implementation.

  • platform/ios/wak/WebCoreThread.mm:

(WebThreadEnable): Call RELEASE_LOG_FAULT() if this is called by
SpringBoard.

Source/WTF:

  • wtf/Assertions.h:

(RELEASE_LOG_FAULT): Add macro to call os_log_fault().

  • wtf/Platform.h: Drive-by fix to enable USE(OS_LOG) on

public iOS SDKs since <rdar://problem/27758343> was
fixed in iOS 11.0.

8:32 PM Changeset in webkit [231129] by jfbastien@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Make the first 64 bits of JSString look like a double JSValue
https://bugs.webkit.org/show_bug.cgi?id=185081

Reviewed by Filip Pizlo.

We can be clever about how we lay out JSString so that, were it
reinterpreted as a JSValue, it would look like a double.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::and16):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::andw_mr):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileMakeRope):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileMakeRope):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::store32As8):
(JSC::FTL::Output::store32As16):

  • runtime/JSString.h:

(JSC::JSString::JSString):

6:09 PM Changeset in webkit [231128] by Keith Rollin
  • 2 edits in trunk/Source/WebCore

Fix crash in DocumentLoader::startLoadingMainResource
https://bugs.webkit.org/show_bug.cgi?id=185088
rdar://problem/39689263

Reviewed by Chris Dumez.

Add a "protectedThis" to address a case where a deleted "this" was
accessed in a RELEASE_LOG statement.

No new tests -- covered by existing tests, which now pass.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource):

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

Unreviewed test gardening for iOS and macOS.

  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
5:52 PM Changeset in webkit [231126] by timothy@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION: Touch events fail to dispatch to the page in all cases.

https://bugs.webkit.org/show_bug.cgi?id=185097
rdar://problem/39731995

Reviewed by Tim Horton.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
Consult internal gesture recognizers, otherwise NO might get returned.

5:27 PM Changeset in webkit [231125] by Simon Fraser
  • 47 edits in trunk/LayoutTests

Clean up color-filter tests.

Detab the files.

Remove calls to internals.settings.setColorFilterEnabled() which aren't needed, since
WebKitTestRunner and DumpRenderTree turn the feature on by default.

  • css3/color-filters/color-filter-backgrounds-borders-expected.html:
  • css3/color-filters/color-filter-backgrounds-borders.html:
  • css3/color-filters/color-filter-box-shadow-expected.html:
  • css3/color-filters/color-filter-box-shadow.html:
  • css3/color-filters/color-filter-brightness-expected.html:
  • css3/color-filters/color-filter-brightness.html:
  • css3/color-filters/color-filter-color-property-expected.html:
  • css3/color-filters/color-filter-color-property-list-item-expected.html:
  • css3/color-filters/color-filter-color-property-list-item.html:
  • css3/color-filters/color-filter-color-property.html:
  • css3/color-filters/color-filter-color-text-decorations-expected.html:
  • css3/color-filters/color-filter-color-text-decorations.html:
  • css3/color-filters/color-filter-column-rule-expected.html:
  • css3/color-filters/color-filter-column-rule.html:
  • css3/color-filters/color-filter-contrast-expected.html:
  • css3/color-filters/color-filter-contrast.html:
  • css3/color-filters/color-filter-current-color-expected.html:
  • css3/color-filters/color-filter-current-color.html:
  • css3/color-filters/color-filter-filter-list-expected.html:
  • css3/color-filters/color-filter-filter-list.html:
  • css3/color-filters/color-filter-gradients-expected.html:
  • css3/color-filters/color-filter-gradients.html:
  • css3/color-filters/color-filter-grayscale-expected.html:
  • css3/color-filters/color-filter-grayscale.html:
  • css3/color-filters/color-filter-hue-rotate-expected.html:
  • css3/color-filters/color-filter-hue-rotate.html:
  • css3/color-filters/color-filter-inherits-expected.html:
  • css3/color-filters/color-filter-inherits.html:
  • css3/color-filters/color-filter-invert-expected.html:
  • css3/color-filters/color-filter-invert.html:
  • css3/color-filters/color-filter-opacity-expected.html:
  • css3/color-filters/color-filter-opacity.html:
  • css3/color-filters/color-filter-outline-expected.html:
  • css3/color-filters/color-filter-outline.html:
  • css3/color-filters/color-filter-parsing.html:
  • css3/color-filters/color-filter-saturate-expected.html:
  • css3/color-filters/color-filter-saturate.html:
  • css3/color-filters/color-filter-sepia-expected.html:
  • css3/color-filters/color-filter-sepia.html:
  • css3/color-filters/color-filter-text-decoration-shadow-expected.html:
  • css3/color-filters/color-filter-text-decoration-shadow.html:
  • css3/color-filters/color-filter-text-emphasis-expected.html:
  • css3/color-filters/color-filter-text-emphasis.html:
  • css3/color-filters/color-filter-text-shadow-expected.html:
  • css3/color-filters/color-filter-text-shadow.html:
  • css3/color-filters/color-filter-text-stroke.html:
5:27 PM Changeset in webkit [231124] by Simon Fraser
  • 3 edits
    2 adds in trunk

Implement color-filter for text stroke
https://bugs.webkit.org/show_bug.cgi?id=185098

Reviewed by Alan Bujtas.
Source/WebCore:

Transform the text stroke color through color-filter.

Test: css3/color-filters/color-filter-text-stroke.html

  • rendering/TextPaintStyle.cpp:

(WebCore::computeTextPaintStyle):

LayoutTests:

  • css3/color-filters/color-filter-text-stroke-expected.html: Added.
  • css3/color-filters/color-filter-text-stroke.html: Added.
5:27 PM Changeset in webkit [231123] by Simon Fraser
  • 12 edits
    2 adds in trunk

Implement animation for color-filter
https://bugs.webkit.org/show_bug.cgi?id=185092
rdar://problem/39773810

Reviewed by Tim Horton.

Source/WebCore:

Implement animation of color-filter.

This requires tracking whether the color-filter function lists match for both old and new
animation code paths.

The filter-related ProperyWappers in CSSPropertyAnimation are cleaned up to use a single wrapper,
which has to pass the propertyID to the blend function so we know which "lists match" to check.
This wrapper reports that its accelerated for filter and backdrop-filter, but not color-filter.

Test: css3/color-filters/color-filter-animation.html

  • animation/CSSPropertyBlendingClient.h:
  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::setBlendingKeyframes):
(WebCore::KeyframeEffectReadOnly::checkForMatchingColorFilterFunctionLists):

  • animation/KeyframeEffectReadOnly.h:
  • page/animation/AnimationBase.h:
  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):
(WebCore::PropertyWrapperFilter::PropertyWrapperFilter):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
(WebCore::PropertyWrapperAcceleratedFilter::PropertyWrapperAcceleratedFilter): Deleted.
(WebCore::PropertyWrapperAcceleratedBackdropFilter::PropertyWrapperAcceleratedBackdropFilter): Deleted.
(WebCore::PropertyWrapperAcceleratedBackdropFilter::animationIsAccelerated const): Deleted.
(WebCore::PropertyWrapperAcceleratedBackdropFilter::blend const): Deleted.

  • page/animation/ImplicitAnimation.cpp:

(WebCore::ImplicitAnimation::reset):
(WebCore::ImplicitAnimation::checkForMatchingColorFilterFunctionLists):

  • page/animation/ImplicitAnimation.h:
  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::KeyframeAnimation):
(WebCore::KeyframeAnimation::checkForMatchingColorFilterFunctionLists):

  • page/animation/KeyframeAnimation.h:

LayoutTests:

Fix the testing to recognize unprefixed filter, and color-filter.

Add a color-filter animation test.

  • animations/resources/animation-test-helpers.js:

(getPropertyValue):
(comparePropertyValue):

  • css3/color-filters/color-filter-animation-expected.txt: Added.
  • css3/color-filters/color-filter-animation.html: Added.
5:21 PM Changeset in webkit [231122] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[WinCairo] Support --no-copy for jsc tests in wincairo tests, add copying of dlls for copy case
https://bugs.webkit.org/show_bug.cgi?id=185049

Patch by Stephan Szabo <stephan.szabo@sony.com> on 2018-04-27
Reviewed by Keith Miller.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

  • Scripts/run-jsc-stress-tests:
5:07 PM Changeset in webkit [231121] by Ryan Haddad
  • 2 edits in trunk/LayoutTests/imported/w3c

Rebaseline imported/w3c/web-platform-tests/url/url-setters.html after r231110.

Unreviewed test gardening..

  • web-platform-tests/url/url-setters-expected.txt:
5:02 PM Changeset in webkit [231120] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Update TestExpectations for fast/loader/submit-form-while-parsing-2.html.
https://bugs.webkit.org/show_bug.cgi?id=184051

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:02 PM Changeset in webkit [231119] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/wpt/resource-timing/rt-resources-per-worker.html as flaky on iOS.
https://bugs.webkit.org/show_bug.cgi?id=180260

Unreviewed test gardening.

  • platform/ios/TestExpectations:
5:01 PM Changeset in webkit [231118] by Yusuke Suzuki
  • 5 edits in trunk/Source/JavaScriptCore

[JSC][ARM64][Linux] Add collectCPUFeatures using auxiliary vector
https://bugs.webkit.org/show_bug.cgi?id=185055

Reviewed by JF Bastien.

This patch is paving the way to emitting jscvt instruction if possible.
To do that, we need to determine jscvt instruction is supported in the
given CPU.

We add a function collectCPUFeatures, which is responsible to collect
CPU features if necessary. In Linux, we can use auxiliary vector to get
the information without parsing /proc/cpuinfo.

Currently, nobody calls this function. It is later called when we emit
jscvt instruction. To make it possible, we also need to add disassembler
support too.

  • assembler/AbstractMacroAssembler.h:
  • assembler/MacroAssemblerARM64.cpp:

(JSC::MacroAssemblerARM64::collectCPUFeatures):

  • assembler/MacroAssemblerARM64.h:
  • assembler/MacroAssemblerX86Common.h:
4:46 PM Changeset in webkit [231117] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC] Add FormattingContext::computeWidth/computeHeight logic.
https://bugs.webkit.org/show_bug.cgi?id=185091

Reviewed by Antti Koivisto.

Inflow width and height can't really be computed without knowing the exact context.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeWidth const):
(WebCore::Layout::FormattingContext::computeHeight const):
(WebCore::Layout::FormattingContext::computeOutOfFlowWidth const):
(WebCore::Layout::FormattingContext::computeFloatingWidth const):
(WebCore::Layout::FormattingContext::computeOutOfFlowHeight const):
(WebCore::Layout::FormattingContext::computeFloatingHeight const):

  • layout/FormattingContext.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeInFlowWidth const):
(WebCore::Layout::BlockFormattingContext::computeInFlowHeight const):
(WebCore::Layout::BlockFormattingContext::computeWidth const): Deleted.
(WebCore::Layout::BlockFormattingContext::computeHeight const): Deleted.

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeInFlowWidth const):
(WebCore::Layout::InlineFormattingContext::computeInFlowHeight const):

  • layout/inlineformatting/InlineFormattingContext.h:
4:43 PM Changeset in webkit [231116] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Also run foldPathConstants before mussing up SSA
https://bugs.webkit.org/show_bug.cgi?id=185069

Reviewed by Saam Barati.

This isn't needed now, but will be once I implement the phase in bug 185060.

This could be a speed-up, or a slow-down, independent of that phase. Most likely it's neutral.
Local testing seems to suggest that it's neutral. Anyway, whatever it ends up being, I want it to
be landed separately and measured separately from that phase.

It's probably nice for sanity to have this and reduceStrength run before tail duplication and
another round of reduceStrength, since that make for something that is closer to a fixpoint. But
it will increase FTL compile times. So, there's no way to guess if this change is good, bad, or
neutral. It all depends on what programs typically look like.

  • b3/B3Generate.cpp:

(JSC::B3::generateToAir):

3:30 PM Changeset in webkit [231115] by rniwa@webkit.org
  • 4 edits in trunk

PSON: Triggering a navigation to an invalid URL creates a new WebContent process
https://bugs.webkit.org/show_bug.cgi?id=185066

Reviewed by Youenn Fablet.

Source/WebKit:

Don't create a new WebContent process when the target URL is invalid as well as when the source URL is invalid.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigationInternal):

Tools:

Added a new test case (ProcessSwap.NavigateToInvalidURL) for navigating to an invalid URL.
WebKit should not swap WebContent process in this case.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[PSONNavigationDelegate webView:didFailProvisionalNavigation:withError:]):
(-[PSONUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):

3:11 PM Changeset in webkit [231114] by Chris Dumez
  • 91 edits
    1 delete in trunk/Source

Use WindowProxy instead of DOMWindow in our IDL
https://bugs.webkit.org/show_bug.cgi?id=185022

Reviewed by Sam Weinig.

Source/WebCore:

Stop using DOMWindow in all of our IDL files and use WindowProxy as
per their respective specifications. As a result, the implementation
as also updated to use WindowProxy type instead of DOMWindow.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMConvertWindowProxy.h: Removed.
  • bindings/js/JSWindowProxy.cpp:

(WebCore::JSWindowProxy::windowProxy const):
(WebCore::JSWindowProxy::toWrapped):

  • bindings/js/JSWindowProxy.h:

(WebCore::window):
Use static_cast<>() instead of jsCast<>() because jsCast<>()
relies on classInfo() which is not allowed to be called during
JS sweep due to an assertion inside classInfo(). The JSWindowProxy
objects are held strongly by the WindowProxy so we know the JSWindowProxy
object is not getting destroyed here.

(WebCore::toJS):

  • bindings/js/WindowProxy.cpp:

(WebCore::WindowProxy::globalObject):

  • bindings/js/WindowProxy.h:

(WebCore::WindowProxy::frame const):

  • bindings/scripts/CodeGenerator.pm:

(IsBuiltinType):
(ComputeIsCallbackInterface):
(ComputeIsCallbackFunction):

  • bindings/scripts/CodeGeneratorJS.pm:

(AddToIncludesForIDLType):
(GetBaseIDLType):
(NativeToJSValueDOMConvertNeedsState):

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

(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodOverloadDispatcher):

  • bindings/scripts/test/TestObj.idl:
  • dom/CompositionEvent.cpp:

(WebCore::CompositionEvent::CompositionEvent):
(WebCore::CompositionEvent::initCompositionEvent):

  • dom/CompositionEvent.h:
  • dom/CompositionEvent.idl:
  • dom/Document.cpp:

(WebCore::Document::defaultView const):

  • dom/Document.h:
  • dom/Document.idl:
  • dom/DocumentTouch.cpp:

(WebCore::DocumentTouch::createTouch):

  • dom/DocumentTouch.h:
  • dom/DocumentTouch.idl:
  • dom/FocusEvent.cpp:

(WebCore::FocusEvent::FocusEvent):

  • dom/FocusEvent.h:
  • dom/InputEvent.cpp:

(WebCore::InputEvent::create):
(WebCore::InputEvent::InputEvent):

  • dom/InputEvent.h:
  • dom/KeyboardEvent.cpp:

(WebCore::KeyboardEvent::KeyboardEvent):
(WebCore::KeyboardEvent::create):
(WebCore::KeyboardEvent::initKeyboardEvent):
(WebCore::KeyboardEvent::charCode const):

  • dom/KeyboardEvent.h:
  • dom/KeyboardEvent.idl:
  • dom/MessageEvent.h:
  • dom/MessageEvent.idl:
  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):
(WebCore::MouseEvent::initMouseEvent):
(WebCore::MouseEvent::initMouseEventQuirk):

  • dom/MouseEvent.h:
  • dom/MouseEvent.idl:
  • dom/MouseRelatedEvent.cpp:

(WebCore::MouseRelatedEvent::MouseRelatedEvent):
(WebCore::MouseRelatedEvent::init):
(WebCore::MouseRelatedEvent::frameViewFromWindowProxy):
(WebCore::MouseRelatedEvent::initCoordinates):
(WebCore::MouseRelatedEvent::documentToAbsoluteScaleFactor const):
(WebCore::MouseRelatedEvent::computePageLocation):
(WebCore::MouseRelatedEvent::locationInRootViewCoordinates const):

  • dom/MouseRelatedEvent.h:
  • dom/Node.cpp:
  • dom/SimulatedClick.cpp:
  • dom/TextEvent.cpp:

(WebCore::TextEvent::create):
(WebCore::TextEvent::createForPlainTextPaste):
(WebCore::TextEvent::createForFragmentPaste):
(WebCore::TextEvent::createForDrop):
(WebCore::TextEvent::createForDictation):
(WebCore::TextEvent::TextEvent):
(WebCore::TextEvent::initTextEvent):

  • dom/TextEvent.h:
  • dom/TextEvent.idl:
  • dom/TouchEvent.idl:
  • dom/UIEvent.cpp:

(WebCore::UIEvent::UIEvent):
(WebCore::UIEvent::initUIEvent):

  • dom/UIEvent.h:

(WebCore::UIEvent::create):
(WebCore::UIEvent::view const):

  • dom/UIEvent.idl:
  • dom/UIEventInit.h:
  • dom/UIEventInit.idl:
  • dom/UIEventWithKeyState.h:

(WebCore::UIEventWithKeyState::UIEventWithKeyState):

  • dom/WheelEvent.cpp:

(WebCore::WheelEvent::WheelEvent):
(WebCore::WheelEvent::create):
(WebCore::WheelEvent::initWebKitWheelEvent):

  • dom/WheelEvent.h:
  • dom/WheelEvent.idl:
  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::insertDictatedText):

  • editing/Editor.cpp:

(WebCore::Editor::pasteAsPlainText):
(WebCore::Editor::pasteAsFragment):
(WebCore::Editor::setComposition):

  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::namedItem):

  • html/HTMLDocument.h:
  • html/HTMLDocument.idl:
  • html/HTMLFrameElement.idl:
  • html/HTMLFrameOwnerElement.cpp:

(WebCore::HTMLFrameOwnerElement::contentWindow const):

  • html/HTMLFrameOwnerElement.h:
  • html/HTMLFrameSetElement.cpp:

(WebCore::HTMLFrameSetElement::namedItem):

  • html/HTMLFrameSetElement.h:
  • html/HTMLFrameSetElement.idl:
  • html/HTMLIFrameElement.idl:
  • html/ImageDocument.cpp:
  • page/DOMWindow.cpp:

(WebCore::PostMessageTimer::PostMessageTimer):
(WebCore::PostMessageTimer::event):
(WebCore::DOMWindow::postMessage):

  • page/DragController.cpp:

(WebCore::DragController::dispatchTextInputEventFor):

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleTextInputEvent):

Source/WebKitLegacy/mac:

  • DOM/DOMAbstractView.mm:

(kit):
(toWindowProxy):

  • DOM/DOMAbstractViewInternal.h:
  • DOM/DOMDocument.mm:

(-[DOMDocument defaultView]):
(-[DOMDocument getComputedStyle:pseudoElement:]):
(-[DOMDocument getMatchedCSSRules:pseudoElement:authorOnly:]):

  • DOM/DOMHTMLFrameElement.mm:

(-[DOMHTMLFrameElement contentWindow]):

  • DOM/DOMHTMLIFrameElement.mm:

(-[DOMHTMLIFrameElement contentWindow]):

  • DOM/DOMKeyboardEvent.mm:

(-[DOMKeyboardEvent initKeyboardEvent:canBubble:cancelable:view:keyIdentifier:location:ctrlKey:altKey:shiftKey:metaKey:altGraphKey:]):
(-[DOMKeyboardEvent initKeyboardEvent:canBubble:cancelable:view:keyIdentifier:location:ctrlKey:altKey:shiftKey:metaKey:]):
(-[DOMKeyboardEvent initKeyboardEvent:canBubble:cancelable:view:keyIdentifier:keyLocation:ctrlKey:altKey:shiftKey:metaKey:altGraphKey:]):
(-[DOMKeyboardEvent initKeyboardEvent:canBubble:cancelable:view:keyIdentifier:keyLocation:ctrlKey:altKey:shiftKey:metaKey:]):

  • DOM/DOMMouseEvent.mm:

(-[DOMMouseEvent initMouseEvent:canBubble:cancelable:view:detail:screenX:screenY:clientX:clientY:ctrlKey:altKey:shiftKey:metaKey:button:relatedTarget:]):

  • DOM/DOMTextEvent.mm:

(-[DOMTextEvent initTextEvent:canBubbleArg:cancelableArg:viewArg:dataArg:]):

  • DOM/DOMUIEvent.mm:

(-[DOMUIEvent view]):
(-[DOMUIEvent initUIEvent:canBubble:cancelable:view:detail:]):

  • DOM/DOMWheelEvent.mm:

(-[DOMWheelEvent initWheelEvent:wheelDeltaY:view:screenX:screenY:clientX:clientY:ctrlKey:altKey:shiftKey:metaKey:]):

Source/WebKitLegacy/win:

  • DOMCoreClasses.cpp:

(DOMDocument::getComputedStyle):

2:58 PM Changeset in webkit [231113] by n_wang@apple.com
  • 6 edits
    2 adds in trunk

AX: Accessibility needs to know which part of the content view is visible on iOS
https://bugs.webkit.org/show_bug.cgi?id=185085
<rdar://problem/39801363>

Reviewed by Chris Fleizach.

Source/WebCore:

Exposed unobscuredContentRect() to iOS accessibility object wrapper.

Test: accessibility/ios-simulator/unobscured-content-rect.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityVisibleContentRect]):

Tools:

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::stringAttributeValue):

LayoutTests:

  • accessibility/ios-simulator/unobscured-content-rect-expected.txt: Added.
  • accessibility/ios-simulator/unobscured-content-rect.html: Added.
  • platform/ios-wk1/TestExpectations:
2:35 PM Changeset in webkit [231112] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Refactor filter list checking code
https://bugs.webkit.org/show_bug.cgi?id=185087

Reviewed by Alan Bujtas.

Deduplicate code between filter and backdrop-filter for checking whether function lists
match, by making a shared function that takes a std::function.

The call sites have to declare the return type (-> const FilterOperations&) to avoid std::function
converting the return type into a value.

  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::checkForMatchingFilterFunctionLists const):
(WebCore::KeyframeEffectReadOnly::checkForMatchingFilterFunctionLists):
(WebCore::KeyframeEffectReadOnly::checkForMatchingBackdropFilterFunctionLists):

  • animation/KeyframeEffectReadOnly.h:
  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::checkForMatchingFilterFunctionLists const):
(WebCore::KeyframeAnimation::checkForMatchingFilterFunctionLists):
(WebCore::KeyframeAnimation::checkForMatchingBackdropFilterFunctionLists):

  • page/animation/KeyframeAnimation.h:
2:21 PM Changeset in webkit [231111] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Regression(r222392?): Events can have a negative timestamp which causes app breakage
https://bugs.webkit.org/show_bug.cgi?id=185040
<rdar://problem/39638051>

Reviewed by Wenson Hsieh.

The real fix is in UIKit when generating the touch timestamps. However, this patch
does some hardening to make sure that Event.timestamp can never return a negative
value even if something goes wrong.

  • dom/Event.cpp:

(WebCore::Event::timeStampForBindings const):

12:44 PM Changeset in webkit [231110] by Brent Fulgham
  • 3 edits
    2 adds in trunk

URL::appendEncodedHostName is using the deprecated uidna_IDNToASCII function
https://bugs.webkit.org/show_bug.cgi?id=184836

Patch by Christopher Reid <chris.reid@sony.com> on 2018-04-27
Reviewed by Alex Christensen.

Source/WebCore:

Update URL::appendEncodedHostName to use uidna_nameToASCII as done in r208902.

Test: LayoutTests\fast\url\url-hostname-encoding.html

  • platform/URL.cpp:

LayoutTests:

Verify that setting the host or hostname of URL objects will use IDNA2008.

  • fast/url/url-hostname-encoding-expected.txt: Added.
  • fast/url/url-hostname-encoding.html: Added.
12:34 PM Changeset in webkit [231109] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

CachedRawResource is not handling incremental data computation correctly
https://bugs.webkit.org/show_bug.cgi?id=184936
<rdar://problem/38798141>

Reviewed by Darin Adler.

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::updateBuffer): Fixing style.

11:17 AM Changeset in webkit [231108] by Alan Bujtas
  • 10 edits in trunk/Source/WebCore

[LFC] Implement BlockFormattingContext::layout logic and its dependencies
https://bugs.webkit.org/show_bug.cgi?id=185024

Reviewed by Antti Koivisto.

This patch implements the logic for block formatting context according to
https://www.w3.org/TR/CSS22/visuren.html#block-formatting

  1. Traverse the tree iteratively (in post-order fashion) and compute the width/static position for the containers as

we visit the descendant nodes until we hit a leaf node.

  1. Compute the position/geometry of the leaf node and move over to its sibling(s).
  2. Finalize the container's height/final position as we climb back on the tree.
  3. Run layout on the out-of-flow descendants.

Note that subtrees with a formatting context root need to be laid out completely before moving on to the next box.
The formatting root box is laid out in the formatting context it lives in, however its descendants get laid out
in a separate formatting context (excluding out-of-flow boxes that don't belong to the root).

  • layout/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::FloatingContext):
(WebCore::Layout::FloatingContext::computePosition):

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::placeInFlowPositionedChildren const):
(WebCore::Layout::FormattingContext::layoutOutOfFlowDescendants const):

  • layout/FormattingContext.h:
  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::updateLayout):
(WebCore::Layout::LayoutContext::establishedFormattingState):

  • layout/LayoutContext.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layout const):
(WebCore::Layout::BlockFormattingContext::layout): Deleted.

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layout const):
(WebCore::Layout::InlineFormattingContext::layout): Deleted.

  • layout/inlineformatting/InlineFormattingContext.h:
11:10 AM Changeset in webkit [231107] by youenn@apple.com
  • 30 edits
    16 copies
    2 adds in trunk

Use NetworkLoadChecker for XHR/fetch loads
https://bugs.webkit.org/show_bug.cgi?id=184741

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub-expected.txt:
  • web-platform-tests/cors/late-upload-events-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-same-origin.any-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-about.any-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-about.any.worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-to-dataurl-expected.txt:
  • web-platform-tests/service-workers/service-worker/redirected-response.https-expected.txt:

Source/WebCore:

Covered by existing tests.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::shouldSetHTTPHeadersToKeep const):
We need to set this option for CORS done in NetworkProcess.
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
Set httpHeadersTokeep when needed (service worker or CORS loads).
Remove the synchronous disabling of preflight since this is now also done for asynchronous loads.
(WebCore::DocumentThreadableLoader::checkURLSchemeAsCORSEnabled):
Helper routine to make the same check for both simple and preflight case.
This allows more consistent error logging between WK1 and WK2.
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
Skip preflight in case this is done in NetworkProcess.
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
(WebCore::isResponseComingFromNetworkProcess):
(WebCore::DocumentThreadableLoader::redirectReceived):
Bypass security checks when they are already done in NetworkProcess.
(WebCore::DocumentThreadableLoader::didFail):
In case of AccessControl error, it might be due to a CSP check done in NetworkProcess.
Check it again to enable specific CSP console logging and error reporting.
(WebCore::DocumentThreadableLoader::loadRequest):
Recreating the error in case of synchronous loads to be able to log it adequately.
(WebCore::DocumentThreadableLoader::isDoingSecurityChecksInNetworkProcess const):

  • loader/DocumentThreadableLoader.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::checkResponseCrossOriginAccessControl):
Specific handling of SameOrigin credential mode for which cross-origin load will not use any credential.
(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl):
We keep the application headers so that DocumentThreadableLoader does not have to restart a brand new load.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):
DocumentThreadableLoader is setting referrer and origin directly. Until we fix that, we remove them from the original requests
as applications are not supposed to set these headers.

Source/WebKit:

  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::didCompleteWithError):
Pass the preflight error as completion error if any.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::willPerformHTTPRedirection):
Set response source to Network so that checks relying on that are correct.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::validateResponse):
Adding Oppaqueredirect tainting.
(NetworkLoadChecker::doesNotNeedCORSCheck):
Adding a check to only activate CORS checks for CORS enabled schemes.
Non CORS enabled schemes loads should have failed in WebProcess already.
(WebKit::NetworkLoadChecker::checkCORSRedirectedRequest):
Remove Authorization header as done by SubresourceLoader.
(WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight):
If error is cancellation, we still want to call the completion handler.

  • NetworkProcess/NetworkResourceLoader.cpp:

Activate network load checker for all types of loads.
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
Handle manual redirection by directly calling didReceiveResponse.

LayoutTests:

  • TestExpectations:
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-csp-blocks-xhr-redirect-cross-origin-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked-expected.txt: Added.
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/worker-csp-blocks-xhr-redirect-cross-origin-expected.txt: Added.
  • platform/mac-wk1/http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/late-upload-events-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub-expected.txt: Added.
  • platform/win/http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked-expected.txt: Added.
  • platform/win/http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked-expected.txt: Added.
  • platform/win/http/tests/security/contentSecurityPolicy/worker-csp-blocks-xhr-redirect-cross-origin-expected.txt: Added.
  • platform/win/http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt: Added.
  • platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/late-upload-events-expected.txt: Added.
  • platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-expected.txt: Added.
  • platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub-expected.txt: Added.
11:03 AM Changeset in webkit [231106] by Wenson Hsieh
  • 6 edits in trunk/Source

Add an experimental feature flag for viewport "min-device-width"
https://bugs.webkit.org/show_bug.cgi?id=185050
<rdar://problem/39624038>

Reviewed by Tim Horton.

Source/WebCore:

Add MinDeviceWidthEnabled as a new runtime-enabled feature.

  • dom/ViewportArguments.cpp:

(WebCore::setViewportFeature):

Gate the parsing of "min-device-width" on the runtime-enabled feature being flipped on.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setMinDeviceWidthEnabled):
(WebCore::RuntimeEnabledFeatures::minDeviceWidthEnabled const):

Source/WebKit:

Add MinDeviceWidthEnabled as a new experimental feature, on by default in extra zoom mode and off elsewhere.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.h:
10:59 AM Changeset in webkit [231105] by Simon Fraser
  • 10 edits
    2 adds in trunk

Make color-filter transform gradient colors
https://bugs.webkit.org/show_bug.cgi?id=185080

Reviewed by Zalan Bujtas.
Source/WebCore:

In CSSGradientValue::computeStops(), transform the color of each gradient color
stop through the color filter. Having a color filter makes the gradient uncacheable.

Color filters can add alpha, so we also have to fix up CSSGradientValue::knownToBeOpaque()
to take a RenderStyle and convert the colors before testing opaqueness. Clean up some related
functions to take const RenderStyle&.

Test: css3/color-filters/color-filter-gradients.html

  • css/CSSCrossfadeValue.cpp:

(WebCore::subimageKnownToBeOpaque):

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::knownToBeOpaque const):

  • css/CSSFilterImageValue.h:
  • css/CSSGradientValue.cpp:

(WebCore::CSSGradientValue::image):
(WebCore::CSSGradientValue::computeStops):
(WebCore::CSSGradientValue::knownToBeOpaque const):
(WebCore::CSSLinearGradientValue::createGradient):
(WebCore::CSSRadialGradientValue::createGradient):

  • css/CSSGradientValue.h:
  • css/CSSImageGeneratorValue.cpp:

(WebCore::CSSImageGeneratorValue::knownToBeOpaque const):

  • css/CSSImageValue.cpp:

(WebCore::CSSImageValue::knownToBeOpaque const):

  • css/CSSImageValue.h:

LayoutTests:

  • css3/color-filters/color-filter-gradients-expected.html: Added.
  • css3/color-filters/color-filter-gradients.html: Added.
10:22 AM Changeset in webkit [231104] by Ryan Haddad
  • 9 edits
    7 deletes in trunk

Unreviewed, rolling out r231086.

Caused JSC test failures due to an unchecked exception.

Reverted changeset:

"[ESNext][BigInt] Implement support for "*" operation"
https://bugs.webkit.org/show_bug.cgi?id=183721
https://trac.webkit.org/changeset/231086

10:20 AM Changeset in webkit [231103] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

UIDelegate::UIClient::didResignInputElementStrongPasswordAppearance() is applicable to both Mac and iOS
https://bugs.webkit.org/show_bug.cgi?id=185079
<rdar://problem/39794960>

I inadvertently forgot to move the UIDelegate field webViewDidResignInputElementStrongPasswordAppearanceWithUserInfo
outside the PLATFORM(MAC)-guard.

  • UIProcess/Cocoa/UIDelegate.h:
10:11 AM Changeset in webkit [231102] by dbates@webkit.org
  • 3 edits in trunk/Source/WebKit

UIDelegate::UIClient::didResignInputElementStrongPasswordAppearance() is applicable to both Mac and iOS
https://bugs.webkit.org/show_bug.cgi?id=185079
<rdar://problem/39794960>

Reviewed by Andy Estes.

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

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didResignInputElementStrongPasswordAppearance):

9:30 AM Changeset in webkit [231101] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Disable color-filter tests on Windows for now
https://bugs.webkit.org/show_bug.cgi?id=185076

The experimental feature for color-filter is off by default, and Windows WebKit API
would have to change to enable it, so just skip the tests for now.

  • platform/win/TestExpectations:
9:11 AM Changeset in webkit [231100] by Simon Fraser
  • 9 edits
    4 adds in trunk

Fix color-filter to apply to text decorations
https://bugs.webkit.org/show_bug.cgi?id=185068
<rdar://problem/39782136>

Reviewed by Alan Bujtas.
Source/WebCore:

Transform the colors of text shadows, and the shadows of text-decorations through
the color-filter.

Rather than clone the ShadowData stored on TextPainter and TextDecorationPainter
(which would have awkward ownership implications) we pass the color filters through
and just map the color through it before painting.

Re-order the members of TextPainter a little to optimize padding.

Also fix a bug where FilterOperations::transformColor() could transform an invalid
color to a valid one; we never want this.

Tests: css3/color-filters/color-filter-text-decoration-shadow.html

css3/color-filters/color-filter-text-shadow.html

  • platform/graphics/filters/FilterOperations.cpp:

(WebCore::FilterOperations::transformColor const):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paintMarkedTextForeground):
(WebCore::InlineTextBox::paintMarkedTextDecoration):

  • rendering/TextDecorationPainter.cpp:

(WebCore::TextDecorationPainter::paintTextDecoration):

  • rendering/TextDecorationPainter.h:

(WebCore::TextDecorationPainter::setTextShadow):
(WebCore::TextDecorationPainter::setShadowColorFilter):
(WebCore::TextDecorationPainter::addTextShadow): Deleted.

  • rendering/TextPainter.cpp:

(WebCore::ShadowApplier::ShadowApplier):
(WebCore::TextPainter::paintTextWithShadows):
(WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded): Simplify the logic that only paints the shadow
on the first iteration.
(WebCore::TextPainter::paintRange):

  • rendering/TextPainter.h:

(WebCore::TextPainter::setShadowColorFilter):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::paintTextWithShadows):

LayoutTests:

  • css3/color-filters/color-filter-text-decoration-shadow-expected.html: Added.
  • css3/color-filters/color-filter-text-decoration-shadow.html: Added.
  • css3/color-filters/color-filter-text-shadow-expected.html: Added.
  • css3/color-filters/color-filter-text-shadow.html: Added.
9:09 AM Changeset in webkit [231099] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark CSS color filters tests as failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=185075

Unreviewed test gardening.

  • platform/win/TestExpectations:
9:08 AM Changeset in webkit [231098] by Ryan Haddad
  • 2 edits in trunk/JSTests

Unreviewed test gardening, update expectations for test262/intl402/PluralRules tests after r231047.

  • test262.yaml: Mark tests as passing.
9:07 AM Changeset in webkit [231097] by Wenson Hsieh
  • 22 edits in trunk/Source

Rename minimumLayoutSize to viewLayoutSize
https://bugs.webkit.org/show_bug.cgi?id=185050
<rdar://problem/39624038>

Reviewed by Tim Horton.

Source/WebCore:

See WebKit/ChangeLog for more information. No change in behavior.

  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::ViewportConfiguration):
(WebCore::ViewportConfiguration::setViewLayoutSize):

Remove a FIXME comment that is addressed by this refactoring.

(WebCore::ViewportConfiguration::shouldOverrideDeviceWidthWithMinDeviceWidth const):
(WebCore::ViewportConfiguration::initialScaleFromSize const):
(WebCore::ViewportConfiguration::minimumScale const):
(WebCore::ViewportConfiguration::updateMinimumLayoutSize):
(WebCore::ViewportConfiguration::setMinimumLayoutSize): Deleted.

  • page/ViewportConfiguration.h:

(WebCore::ViewportConfiguration::viewLayoutSize const):
(WebCore::ViewportConfiguration::viewSize const): Deleted.

Source/WebKit:

Renames minimumLayoutSize to viewLayoutSize, since the minimum layout size in ViewportConfiguration is now
different from the minimum layout size that is currently pushed down from the UI process (e.g. WKWebView SPI) in
the case where min-device-width is used to override the minimum layout size.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

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

(-[WKWebView _processDidExit]):
(-[WKWebView activeViewLayoutSize:]):
(-[WKWebView _dispatchSetViewLayoutSize:]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _minimumLayoutSizeOverride]):
(-[WKWebView _setViewLayoutSizeOverride:]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):
(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]):
(-[WKWebView _clearOverrideLayoutParameters]):
(-[WKWebView _minimumLayoutWidth]):
(-[WKWebView _setMinimumLayoutWidth:]):
(-[WKWebView activeMinimumLayoutSize:]): Deleted.
(-[WKWebView _dispatchSetMinimumLayoutSize:]): Deleted.
(-[WKWebView _setMinimumLayoutSizeOverride:]): Deleted.
(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:minimumLayoutSizeForMinimalUI:maximumUnobscuredSizeOverride:]): Deleted.

Remove unused SPI that has been deprecated since iOS 9, has a simple drop-in replacement, and no longer has any
internal clients.

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

(WebKit::WebViewImpl::setMinimumSizeForAutoLayout):
(WebKit::WebViewImpl::minimumSizeForAutoLayout const):
(WebKit::WebViewImpl::setIntrinsicContentSize):

  • UIProcess/DrawingAreaProxy.h:

(WebKit::DrawingAreaProxy::viewLayoutSizeDidChange):
(WebKit::DrawingAreaProxy::minimumLayoutSizeDidChange): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::setViewLayoutSize):
(WebKit::WebPageProxy::setMinimumLayoutSize): Deleted.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::viewLayoutSize const):
(WebKit::WebPageProxy::minimumLayoutSize const): Deleted.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
(WebKit::WebPageProxy::setViewportConfigurationViewLayoutSize):
(WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSize): Deleted.

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::viewLayoutSizeDidChange):
(WebKit::TiledCoreAnimationDrawingAreaProxy::didUpdateGeometry):
(WebKit::TiledCoreAnimationDrawingAreaProxy::intrinsicContentSizeDidChange):
(WebKit::TiledCoreAnimationDrawingAreaProxy::willSendUpdateGeometry):
(WebKit::TiledCoreAnimationDrawingAreaProxy::minimumLayoutSizeDidChange): Deleted.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):

  • WebProcess/WebPage/ViewGestureGeometryCollector.cpp:

(WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_credentialsMessenger):
(WebKit::WebPage::setViewLayoutSize):
(WebKit::WebPage::setMinimumLayoutSize): Deleted.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::viewLayoutSize const):
(WebKit::WebPage::minimumLayoutSize const): Deleted.

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

(WebKit::WebPage::setViewportConfigurationViewLayoutSize):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::setViewportConfigurationMinimumLayoutSize): Deleted.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::updateIntrinsicContentSizeIfNeeded):
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):

8:40 AM Changeset in webkit [231096] by Alan Bujtas
  • 19 edits in trunk/Source/WebCore

[LFC] Formatting contexts should create floating states.
https://bugs.webkit.org/show_bug.cgi?id=185032

Reviewed by Antti Koivisto.

This patch implements the logic for sharing floating states across multiple formatting contexts.
At this point this is mostly about inline formatting contexts. They either create a new floating state
or inherit it from the parent formatting context.

  • layout/FloatingState.cpp:

(WebCore::Layout::FloatingState::FloatingState):

  • layout/FloatingState.h:

(WebCore::Layout::FloatingState::create):

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::FormattingContext):

  • layout/FormattingContext.h:

(WebCore::Layout::FormattingContext::layoutContext const):

  • layout/FormattingState.cpp:

(WebCore::Layout::FormattingState::FormattingState):

  • layout/FormattingState.h:

(WebCore::Layout::FormattingState::floatingState const):

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::updateLayout):
(WebCore::Layout::LayoutContext::formattingStateForBox const):
(WebCore::Layout::LayoutContext::establishedFormattingState):
(WebCore::Layout::LayoutContext::formattingContext):
(WebCore::Layout::LayoutContext::formattingState): Deleted.

  • layout/LayoutContext.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::BlockFormattingContext):
(WebCore::Layout::BlockFormattingContext::createFormattingState const):
(WebCore::Layout::BlockFormattingContext::createOrFindFloatingState const):
(WebCore::Layout::BlockFormattingContext::formattingState const): Deleted.

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingState.cpp:

(WebCore::Layout::BlockFormattingState::BlockFormattingState):

  • layout/blockformatting/BlockFormattingState.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::InlineFormattingContext):
(WebCore::Layout::InlineFormattingContext::createFormattingState const):
(WebCore::Layout::InlineFormattingContext::createOrFindFloatingState const):
(WebCore::Layout::InlineFormattingContext::formattingState const): Deleted.

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingState.cpp:

(WebCore::Layout::InlineFormattingState::InlineFormattingState):

  • layout/inlineformatting/InlineFormattingState.h:
  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::formattingContextRoot const):

  • layout/layouttree/LayoutBox.h:
8:35 AM Changeset in webkit [231095] by Wenson Hsieh
  • 23 edits
    2 adds
    1 delete in trunk

[Extra zoom mode] Add a mechanism to override default viewport behaviors in extra zoom mode
https://bugs.webkit.org/show_bug.cgi?id=185050
<rdar://problem/39624038>

Reviewed by Tim Horton.

Source/WebCore:

Currently, in extra zoom mode, there's no way for web pages to opt out of the default viewport behaviors
(namely, laying out at a larger width and shrinking to fit) when the web view is very tall and narrow. This
patch adds a new experimental viewport attribute, "min-device-width", that can be used to prevent WebKit from
automatically clamping the web view width to a greater value for the device width in this scenario.

Note that after this patch, logic that plumbs a minimumLayoutSize from WKWebView to the viewport configuration
will need to be renamed to reflect that this size is no longer the minimum layout size, but rather, the view
size that is used for viewport device dimensions by default. This refactoring will be done in a followup part.

See per-method comments below for more detail.

Test: fast/viewport/extrazoom/viewport-change-min-device-width.html

  • dom/ViewportArguments.cpp:

(WebCore::setViewportFeature):
(WebCore::operator<<):

  • dom/ViewportArguments.h:

Removes m_forceHorizontalShrinkToFit (more detail below).

  • page/ViewportConfiguration.cpp:

(WebCore::computedMinDeviceWidth):
(WebCore::ViewportConfiguration::ViewportConfiguration):
(WebCore::ViewportConfiguration::setMinimumLayoutSize):

Instead of directly setting the minimum layout size, setMinimumLayoutSize now first sets the view size (i.e. the
size we use for device-width in the viewport meta tag), and then updates the minimum layout size.

(WebCore::ViewportConfiguration::shouldOverrideDeviceWidthWithMinDeviceWidth const):

Replaces m_forceHorizontalShrinkToFit. Whether or not we shrink to fit is now determined by whether the
min-device-width attribute is actively clamping the width of the view.

(WebCore::ViewportConfiguration::shouldIgnoreHorizontalScalingConstraints const):
(WebCore::ViewportConfiguration::shouldIgnoreScalingConstraintsRegardlessOfContentSize const):
(WebCore::ViewportConfiguration::updateMinimumLayoutSize):

Computes and sets the minimum layout size using the view size, taking the minimum device width into account if
needed.

(WebCore::ViewportConfiguration::description const):
(WebCore::ViewportConfiguration::setForceHorizontalShrinkToFit): Deleted.

  • page/ViewportConfiguration.h:

Source/WebKit:

Remove the forceHorizontalViewportShrinkToFit and minimumAllowedLayoutWidth SPI hooks from WebKit, and
additionally remove all logic for plumbing viewSize to WebCore. See WebCore/ChangeLog for more information.

  • Shared/VisibleContentRectUpdateInfo.cpp:

(WebKit::VisibleContentRectUpdateInfo::encode const):
(WebKit::VisibleContentRectUpdateInfo::decode):
(WebKit::operator<<):

  • Shared/VisibleContentRectUpdateInfo.h:

(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::allowShrinkToFit const):
(WebKit::operator==):
(WebKit::VisibleContentRectUpdateInfo::forceHorizontalShrinkToFit const): Deleted.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView activeMinimumLayoutSize:]):
(-[WKWebView _dispatchSetMinimumLayoutSize:]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _setMinimumLayoutSizeOverride:]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):
(-[WKWebView _minimumAllowedLayoutWidth]): Deleted.
(-[WKWebView _setMinimumAllowedLayoutWidth:]): Deleted.
(-[WKWebView activeMinimumLayoutSizes:]): Deleted.
(-[WKWebView _dispatchSetMinimumLayoutSize:viewSize:]): Deleted.
(-[WKWebView _setForceHorizontalViewportShrinkToFit:]): Deleted.
(-[WKWebView _forceHorizontalViewportShrinkToFit]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
(WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSize):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_credentialsMessenger):

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

(WebKit::WebPage::setViewportConfigurationMinimumLayoutSize):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::updateVisibleContentRects):

Tools:

Remove a test that's no longer useful, now that the SPI it was testing is gone. This functionality is now
tested by the layout test added in this patch.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/ViewportSizingTests.mm: Removed.

LayoutTests:

Add a new layout test to check that:

  • By default (with no min-device-width override), shrink-to-fit and expanded minimum layout sizes takes effect.
  • min-device-width can be used to bail out of shrink-to-fit and viewport behaviors.
  • A large min-device-width can be used to make extra zoom mode viewport heuristics even more aggressive.
  • TestExpectations:
  • fast/viewport/extrazoom/viewport-change-min-device-width.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.zoomScale):
(window.UIHelper):

7:40 AM Changeset in webkit [231094] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[LFC] Formatting contexts should take const Box&
https://bugs.webkit.org/show_bug.cgi?id=185031

Reviewed by Sam Weinig.

The formatting root boxes are supposed to be all const. The only reason why
they are not is because WeakPtr<> does not support const objects yet.
Use const_cast instead (remove it when WeakPtr<> gains const support).

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::FormattingContext):

  • layout/FormattingContext.h:
  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::LayoutContext):
(WebCore::Layout::LayoutContext::formattingContext):

  • layout/LayoutContext.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::BlockFormattingContext):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::InlineFormattingContext):

  • layout/inlineformatting/InlineFormattingContext.h:
7:34 AM Changeset in webkit [231093] by Alan Bujtas
  • 2 edits
    3 adds in trunk/Source/WebCore

[LFC] Add layout tree iterators.
https://bugs.webkit.org/show_bug.cgi?id=185058

Reviewed by Antti Koivisto.

They work exactly like the renderer tree iterators.

  • WebCore.xcodeproj/project.pbxproj:
  • layout/layouttree/LayoutAncestorIterator.h: Added.

(WebCore::Layout::LayoutAncestorIterator<T>::LayoutAncestorIterator):
(WebCore::Layout::LayoutAncestorIterator<T>::operator):
(WebCore::Layout::LayoutAncestorIteratorAdapter<T>::LayoutAncestorIteratorAdapter):
(WebCore::Layout::LayoutAncestorIteratorAdapter<T>::begin const):
(WebCore::Layout::LayoutAncestorIteratorAdapter<T>::end const):
(WebCore::Layout::LayoutAncestorIteratorAdapter<T>::first const):
(WebCore::Layout::ancestorsOfType):
(WebCore::Layout::lineageOfType):

  • layout/layouttree/LayoutBox.cpp:
  • layout/layouttree/LayoutChildIterator.h: Added.

(WebCore::Layout::LayoutChildtIterator<T>::LayoutChildtIterator):
(WebCore::Layout::LayoutChildtIterator<T>::operator):
(WebCore::Layout::LayoutChildtIteratorAdapter<T>::LayoutChildtIteratorAdapter):
(WebCore::Layout::LayoutChildtIteratorAdapter<T>::begin const):
(WebCore::Layout::LayoutChildtIteratorAdapter<T>::end const):
(WebCore::Layout::LayoutChildtIteratorAdapter<T>::first const):
(WebCore::Layout::LayoutChildtIteratorAdapter<T>::last const):
(WebCore::Layout::childrenOfType):

  • layout/layouttree/LayoutIterator.h: Added.

(WebCore::Layout::isLayoutBoxOfType):
(WebCore::Layout::Traversal::firstChild):
(WebCore::Layout::Traversal::lastChild):
(WebCore::Layout::Traversal::nextSibling):
(WebCore::Layout::Traversal::previousSibling):
(WebCore::Layout::Traversal::findAncestorOfType):
(WebCore::Layout::Traversal::nextAncestorSibling):
(WebCore::Layout::Traversal::nextWithin):
(WebCore::Layout::Traversal::firstWithin):
(WebCore::Layout::Traversal::next):
(WebCore::Layout::LayoutIterator<T>::LayoutIterator):
(WebCore::Layout::LayoutIterator<T>::traverseNextSibling):
(WebCore::Layout::LayoutIterator<T>::traverseNext):
(WebCore::Layout::LayoutIterator<T>::traversePreviousSibling):
(WebCore::Layout::LayoutIterator<T>::traverseAncestor):
(WebCore::Layout::LayoutIterator<T>::operator const):
(WebCore::Layout:: const):
(WebCore::Layout::= const):

4:47 AM Changeset in webkit [231092] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[GTK] Mark a few new test failures

Unreviewed gardening.

  • platform/gtk/TestExpectations: Related to r230817
3:07 AM Changeset in webkit [231091] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

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

Broke and made crash some WPE EME tests (Requested by calvaris
on #webkit).

Reverted changeset:

"[EME][GStreamer] Move the decryptor from AppendPipeline to
PlaybackPipeline."
https://bugs.webkit.org/show_bug.cgi?id=181855
https://trac.webkit.org/changeset/231089

1:40 AM Changeset in webkit [231090] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

REGRESSION(r230812): [WPE][GTK] WebKitWebViewSessionState.cpp throws away encoded BackForwardList identifier
https://bugs.webkit.org/show_bug.cgi?id=184823

Reviewed by Michael Catanzaro.

Bump session sate format version to 2 and stop encoding the backfoward list item identifier, since it's always
regenerated.

  • UIProcess/API/glib/WebKitWebViewSessionState.cpp:

(encodeBackForwardListItemState): Always encode version 2.
(encodeBackForwardListState): Ditto.
(encodeSessionState): Ditto.
(decodeBackForwardListItemStateV1): Decode list item state for version 1.
(decodeBackForwardListItemState): Receive the version and call decodeBackForwardListItemStateV1() if it's 1 or
use the version 2 otherwise.
(decodeSessionState): Load data for known formats and use the one that worked to decode it.

12:33 AM Changeset in webkit [231089] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

[EME][GStreamer] Move the decryptor from AppendPipeline to PlaybackPipeline.
https://bugs.webkit.org/show_bug.cgi?id=181855

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-04-27
Reviewed by Xabier Rodriguez-Calvar.

The goal of this move is to handle the limitation of SVP (Secure Video Path) memory size.

When the decryptor is in the AppendPipeline and we use SVP, we buffer in MediaSource queue
the decrypted GstBuffers that are in SVP memory.
This behavior cause an out-of-memory error, because we are limited in SVP memory size.

By moving the decryptor in PlaybackPipeline, we avoid to buffer the decrypted GstBuffers
which use the SVP memory and we buffer the encrypted GstBuffers that are in system memory.

This new architecture also allows to start the buffering before obtaining the DRM license
and it makes easier to manage dynamic change of the license or Key.

The decryptor is auto plugged by GStreamer playbin in PlaybackPipeline.

SVP: Secure Video Path also named trusted or protected video path, it is a memory which is
protected by a hardware access control engine, it is not accessible to other unauthorised
software or hardware components.

Tests:

media/encrypted-media/clearKey/clearKey-cenc-audio-playback-mse.html
media/encrypted-media/clearKey/clearKey-cenc-video-playback-mse.html

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:

(webkitMediaCommonEncryptionDecryptSinkEventHandler):

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

(WebCore::dumpAppendState):
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::handleNeedContextSyncMessage):
(WebCore::AppendPipeline::handleAppsrcNeedDataReceived):
(WebCore::AppendPipeline::setAppendState):
(WebCore::AppendPipeline::parseDemuxerSrcPadCaps):
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread):
(WebCore::AppendPipeline::disconnectDemuxerSrcPadFromAppsinkFromAnyThread):
(WebCore::appendPipelineElementMessageCallback): Deleted.
(WebCore::AppendPipeline::handleElementMessage): Deleted.
(WebCore::AppendPipeline::dispatchPendingDecryptionStructure): Deleted.
(WebCore::AppendPipeline::dispatchDecryptionStructure): Deleted.

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

(WebCore::MediaPlayerPrivateGStreamerMSE::attemptToDecryptWithInstance):

  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:
12:27 AM Changeset in webkit [231088] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[EME][GStreamer] Add a new message "decrypt-key-needed" send from the decryptor to the application.
https://bugs.webkit.org/show_bug.cgi?id=181858

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-04-27
Reviewed by Xabier Rodriguez-Calvar.

Add a new message "decrypt-key-needed" that the decryptor can send when it doesn't have an available key.
This message should be handled by the application in order to dispatch or send the key to the decryptor.
This patch is a preparation for the patch 181855.
With the patch 181855, the decryptor will be in the PlaybackPipeline instead of AppendPipeline, thus we can
get the DRM license or key before to instantiate or load the decryptor plugin in PlaybackPipeline.
When the decryptor plugin is instantiated or loaded, it should able to ask the application to resend
the DRM license or key by using this new message "decrypt-key-needed".

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::handleMessage):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::dispatchCDMInstance):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:

(webkitMediaCommonEncryptionDecryptTransformInPlace):

Apr 26, 2018:

11:22 PM Changeset in webkit [231087] by Dewei Zhu
  • 12 edits
    1 add in trunk/Websites/perf.webkit.org

Extend create-analysis-test API to be able to create with confirming test group.
https://bugs.webkit.org/show_bug.cgi?id=184958

Reviewed by Ryosuke Niwa.

Extend create-analysis-test API to be able to create an analysis task with confirming test group.
Update create analysis task UI in chart pane to adapt this new API.
Refactored '/privileged-api/create-test-group' API to share some creating test group logic with '/privileged-api/create-analysis-task' API.
Moved the shared logic to commit-sets-helpers.php.

  • public/api/analysis-tasks.php: Use 'require_once' instead of 'require'.
  • public/include/commit-sets-helpers.php: Added.

(create_test_group_and_build_requests): A helper function that creates test group and build requests for a analysis
task. In long term, this should be a class to avoid passing long argument list around.
(insert_commit_sets_and_construct_configuration_list): Based on commit sets returns build and test configurations.
(insert_build_request_for_configuration): Insert build requests based on configuration.
(commit_sets_from_revision_sets): Returns commit sets from given revision set list.

  • public/privileged-api/create-analysis-task.php: Added the ability to create analysis task with confirming test

groups when repetition count is specified.

  • public/privileged-api/create-test-group.php: Moved shared function to commit-sets-helpers.php.
  • public/v3/models/analysis-task.js:

(AnalysisTask.create): Instead of accepting run ids, it now accepts points and test group name and confirming iterations.
It will conditionally add test group information into parameter when confirming iterations is a positive number.
(AnalysisTask):

  • public/v3/models/commit-set.js:

(CommitSet.revisionSetsFromCommitSets): Move 'TestGroup._revisionSetsFromCommitSets' since CommitSet class is more
appropriate place and it will be shared by both TestGroup and AnalysisTask
(CommitSet):

  • public/v3/models/test-group.js:

(TestGroup.createWithTask): Adapt 'CommitSet.revisionSetsFromCommitSets'.
(TestGroup.createWithCustomConfiguration): Adapt 'CommitSet.revisionSetsFromCommitSets'.
(TestGroup.createAndRefetchTestGroups): Adapt 'CommitSet.revisionSetsFromCommitSets'.
(TestGroup._revisionSetsFromCommitSets): Deleted and moved to 'CommitSet.revisionSetsFromCommitSets'.

  • public/v3/pages/chart-pane.js:

(ChartPane.prototype.didConstructShadowTree): Added the logic to disable options when checkbox for creating confirming
test group is unchecked.
(ChartPane.prototype._analyzeRange): Conditionally create confirming test group from UI.
(ChartPane.cssTemplate):

  • server-tests/privileged-api-create-analysis-task-tests.js: Added unit tests. Added a unit test for 'NodePrivilegedAPI'.
  • unit-tests/analysis-task-tests.js: Added unit tests.
  • unit-tests/commit-set-tests.js: Added unit test for 'CommitSet.revisionSetsFromCommitSets'.
  • unit-tests/resources/mock-remote-api.js: Reset csrf token when BrowserPrivilegedAPI is used.

(MockRemoteAPI.inject):

9:18 PM Changeset in webkit [231086] by Caio Lima
  • 9 edits
    7 adds in trunk

[ESNext][BigInt] Implement support for "*" operation
https://bugs.webkit.org/show_bug.cgi?id=183721

Reviewed by Saam Barati.

JSTests:

  • bigIntTests.yaml:
  • stress/big-int-mul-jit.js: Added.
  • stress/big-int-mul-to-primitive-precedence.js: Added.
  • stress/big-int-mul-to-primitive.js: Added.
  • stress/big-int-mul-type-error.js: Added.
  • stress/big-int-mul-wrapped-value.js: Added.
  • stress/big-int-multiplication.js: Added.
  • stress/big-int-multiply-memory-stress.js: Added.

Source/JavaScriptCore:

Added BigInt support into times binary operator into LLInt and on
JITOperations profiledMul and unprofiledMul. We are also replacing all
uses of int to unsigned when there is no negative values for
variables.

  • dfg/DFGConstantFoldingPhase.cpp:

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

  • jit/JITOperations.cpp:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::JSBigInt):
(JSC::JSBigInt::allocationSize):
(JSC::JSBigInt::createWithLength):
(JSC::JSBigInt::toString):
(JSC::JSBigInt::multiply):
(JSC::JSBigInt::digitDiv):
(JSC::JSBigInt::internalMultiplyAdd):
(JSC::JSBigInt::multiplyAccumulate):
(JSC::JSBigInt::equals):
(JSC::JSBigInt::absoluteDivSmall):
(JSC::JSBigInt::calculateMaximumCharactersRequired):
(JSC::JSBigInt::toStringGeneric):
(JSC::JSBigInt::rightTrim):
(JSC::JSBigInt::allocateFor):
(JSC::JSBigInt::parseInt):
(JSC::JSBigInt::digit):
(JSC::JSBigInt::setDigit):

  • runtime/JSBigInt.h:
  • runtime/Operations.h:

(JSC::jsMul):

9:00 PM Changeset in webkit [231085] by Ross Kirsling
  • 2 edits in trunk/Websites/webkit.org

Update code style guidelines to mention braced initialization style.
https://bugs.webkit.org/show_bug.cgi?id=185053

Reviewed by Ryosuke Niwa.

  • code-style.md:

Add a clause to the Spacing section about braced initialization.
(Also, fix an erroneous element ID on a neighboring line.)

7:00 PM Changeset in webkit [231084] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

tex[Sub]Image2D slow when passing in a <canvas>, faster with ImageData.
https://bugs.webkit.org/show_bug.cgi?id=184843
<rdar://problem/34898868>

Patch by Justin Fan <Justin Fan> on 2018-04-26
Reviewed by Simon Fraser.

On certain test pages passing 2d canvas objects to gl.texSubImage2D, we spend significant time doing an alpha unpremultiplication in FormatConverter::convert on a single thread.
For now, I am introducing use of the Accelerate framework to do canvas alpha unpremultiplication, specifically for RGBA8 > RGBA8.
This improves this rendering path by a factor of ~4. The rest of FormatConverter could use similar improvements; filed https://bugs.webkit.org/show_bug.cgi?id=185064 for these.

  • platform/graphics/FormatConverter.cpp:

(WebCore::FormatConverter::convert):

6:25 PM Changeset in webkit [231083] by Ryan Haddad
  • 3 edits in trunk/Tools

REGRESSION (r231039): RunUnitTests step reports disabled tests as failures
https://bugs.webkit.org/show_bug.cgi?id=185061

Reviewed by Aakash Jain.

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(RunUnitTests.countFailures): Return the difference between the total number of tests run and the number that passed.

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py: Add a test.
5:10 PM Changeset in webkit [231082] by Simon Fraser
  • 49 edits
    38 adds in trunk

Implement rendering support for the color-filter CSS property
https://bugs.webkit.org/show_bug.cgi?id=185047
rdar://problem/39664967

Reviewed by Tim Horton.

Source/WebCore:

The color-filter property transforms CSS colors just before painting. To support this,
add to RenderStyle colorByApplyingColorFilter() and visitedDependentColorWithColorFilter().
At most calls sites that transform colors for rendering, replace calls to
visitedDependentColor() with visitedDependentColorWithColorFilter(). The few locations
that don't use visitedDependentColor() (e.g. for shadows) call colorByApplyingColorFilter().

Color transformation is implemented via a new virtual function on FilterOperation;
BasicColorMatrixFilterOperation overrides this to use a new ColorMatrix class to
do color math, and BasicComponentTransferFilterOperation to do the equivalent of component
transfer operations. The math in both cases matches that for SVG filters, with the exception
that color components are stored as floats through multiple filters and then mapped to
normal 0-255 color components at the end.

Tests: css3/color-filters/color-filter-backgrounds-borders.html

css3/color-filters/color-filter-box-shadow.html
css3/color-filters/color-filter-brightness.html
css3/color-filters/color-filter-color-property-list-item.html
css3/color-filters/color-filter-color-property.html
css3/color-filters/color-filter-color-text-decorations.html
css3/color-filters/color-filter-column-rule.html
css3/color-filters/color-filter-contrast.html
css3/color-filters/color-filter-current-color.html
css3/color-filters/color-filter-filter-list.html
css3/color-filters/color-filter-grayscale.html
css3/color-filters/color-filter-hue-rotate.html
css3/color-filters/color-filter-inherits.html
css3/color-filters/color-filter-invert.html
css3/color-filters/color-filter-opacity.html
css3/color-filters/color-filter-outline.html
css3/color-filters/color-filter-saturate.html
css3/color-filters/color-filter-sepia.html
css3/color-filters/color-filter-text-emphasis.html

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::adjustInnerTextStyle const):

  • page/FrameView.cpp:

(WebCore::FrameView::documentBackgroundColor const):

  • platform/graphics/ColorUtilities.cpp:

(WebCore::ColorMatrix::ColorMatrix):
(WebCore::ColorMatrix::makeIdentity):
(WebCore::ColorMatrix::grayscaleMatrix):
(WebCore::ColorMatrix::saturationMatrix):
(WebCore::ColorMatrix::hueRotateMatrix):
(WebCore::ColorMatrix::sepiaMatrix):
(WebCore::ColorMatrix::transformColorComponents const):

  • platform/graphics/ColorUtilities.h:
  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::BasicColorMatrixFilterOperation::transformColor const):
(WebCore::BasicComponentTransferFilterOperation::transformColor const):

  • platform/graphics/filters/FilterOperation.h:

(WebCore::FilterOperation::transformColor const):

  • platform/graphics/filters/FilterOperations.cpp:

(WebCore::FilterOperations::transformColor const):

  • platform/graphics/filters/FilterOperations.h:
  • rendering/BorderEdge.cpp:

(WebCore::BorderEdge::getBorderEdgeInfo):

  • rendering/EllipsisBox.cpp:

(WebCore::EllipsisBox::paint):
(WebCore::EllipsisBox::paintSelection):

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::paintBoxDecorations):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paintMarkedTextForeground):
(WebCore::InlineTextBox::paintMarkedTextDecoration):
(WebCore::InlineTextBox::paintCompositionUnderline const):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::paintRootBoxFillLayers):
(WebCore::RenderBox::paintBackground):
(WebCore::RenderBox::getBackgroundPaintedExtent const):
(WebCore::RenderBox::backgroundIsKnownToBeOpaqueInRect const):
(WebCore::RenderBox::backgroundHasOpaqueTopLayer const):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::applyBoxShadowForBackground):
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
(WebCore::RenderBoxModelObject::boxShadowShouldBeAppliedToBackground const):
(WebCore::RenderBoxModelObject::paintBoxShadow):

  • rendering/RenderDetailsMarker.cpp:

(WebCore::RenderDetailsMarker::paint):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::selectionColor const):
(WebCore::RenderElement::selectionBackgroundColor const):
(WebCore::RenderElement::paintFocusRing):
(WebCore::RenderElement::paintOutline):

  • rendering/RenderFileUploadControl.cpp:

(WebCore::RenderFileUploadControl::paintObject):

  • rendering/RenderFrameSet.cpp:

(WebCore::RenderFrameSet::paintColumnBorder):
(WebCore::RenderFrameSet::paintRowBorder):

  • rendering/RenderImage.cpp:

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

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::paintOutline):

  • rendering/RenderLayerBacking.cpp:

(WebCore::canDirectlyCompositeBackgroundBackgroundImage):
(WebCore::RenderLayerBacking::rendererBackgroundColor const):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::rootOrBodyStyleChanged):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::paintItemForeground):
(WebCore::RenderListBox::paintItemBackground):

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::paint):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::itemStyle const):
(RenderMenuList::getItemBackgroundColor const):
(RenderMenuList::menuStyle const):

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::paintColumnRules):

  • rendering/RenderSearchField.cpp:

(WebCore::RenderSearchField::menuStyle const):

  • rendering/RenderTable.h:

(WebCore::RenderTable::bgColor const):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::computeCollapsedStartBorder const):
(WebCore::RenderTableCell::computeCollapsedEndBorder const):
(WebCore::RenderTableCell::computeCollapsedBeforeBorder const):
(WebCore::RenderTableCell::computeCollapsedAfterBorder const):
(WebCore::RenderTableCell::paintBackgroundsBehindCell):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::paintRowGroupBorder):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paintSliderTicks):

  • rendering/TextDecorationPainter.cpp:

(WebCore::decorationColor):

  • rendering/TextPaintStyle.cpp:

(WebCore::computeTextPaintStyle):

  • rendering/mathml/MathOperator.cpp:

(WebCore::MathOperator::paint):

  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::paint):

  • rendering/mathml/RenderMathMLMenclose.cpp:

(WebCore::RenderMathMLMenclose::paint):

  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::paint):

  • rendering/mathml/RenderMathMLToken.cpp:

(WebCore::RenderMathMLToken::paint):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::visitedDependentColorWithColorFilter const):
(WebCore::RenderStyle::colorByApplyingColorFilter const):

  • rendering/style/RenderStyle.h:

Source/WebKitLegacy/mac:

The body background should reflect the filtered color.

  • WebView/WebFrame.mm:

(-[WebFrame _bodyBackgroundColor]):

  • WebView/WebView.mm:

(-[WebView updateTextTouchBar]): No logic change, just cleanup.

LayoutTests:

Tests for color-filter rendering.

  • css3/color-filters/color-filter-backgrounds-borders-expected.html: Added.
  • css3/color-filters/color-filter-backgrounds-borders.html: Added.
  • css3/color-filters/color-filter-box-shadow-expected.html: Added.
  • css3/color-filters/color-filter-box-shadow.html: Added.
  • css3/color-filters/color-filter-brightness-expected.html: Added.
  • css3/color-filters/color-filter-brightness.html: Added.
  • css3/color-filters/color-filter-color-property-expected.html: Added.
  • css3/color-filters/color-filter-color-property-list-item-expected.html: Added.
  • css3/color-filters/color-filter-color-property-list-item.html: Added.
  • css3/color-filters/color-filter-color-property.html: Added.
  • css3/color-filters/color-filter-color-text-decorations-expected.html: Added.
  • css3/color-filters/color-filter-color-text-decorations.html: Added.
  • css3/color-filters/color-filter-column-rule-expected.html: Added.
  • css3/color-filters/color-filter-column-rule.html: Added.
  • css3/color-filters/color-filter-contrast-expected.html: Added.
  • css3/color-filters/color-filter-contrast.html: Added.
  • css3/color-filters/color-filter-current-color-expected.html: Added.
  • css3/color-filters/color-filter-current-color.html: Added.
  • css3/color-filters/color-filter-filter-list-expected.html: Added.
  • css3/color-filters/color-filter-filter-list.html: Added.
  • css3/color-filters/color-filter-grayscale-expected.html: Added.
  • css3/color-filters/color-filter-grayscale.html: Added.
  • css3/color-filters/color-filter-hue-rotate-expected.html: Added.
  • css3/color-filters/color-filter-hue-rotate.html: Added.
  • css3/color-filters/color-filter-inherits-expected.html: Added.
  • css3/color-filters/color-filter-inherits.html: Added.
  • css3/color-filters/color-filter-invert-expected.html: Added.
  • css3/color-filters/color-filter-invert.html: Added.
  • css3/color-filters/color-filter-opacity-expected.html: Added.
  • css3/color-filters/color-filter-opacity.html: Added.
  • css3/color-filters/color-filter-outline-expected.html: Added.
  • css3/color-filters/color-filter-outline.html: Added.
  • css3/color-filters/color-filter-saturate-expected.html: Added.
  • css3/color-filters/color-filter-saturate.html: Added.
  • css3/color-filters/color-filter-sepia-expected.html: Added.
  • css3/color-filters/color-filter-sepia.html: Added.
  • css3/color-filters/color-filter-text-emphasis-expected.html: Added.
  • css3/color-filters/color-filter-text-emphasis.html: Added.
4:30 PM Changeset in webkit [231081] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Unreviewed build fix; fix WebInspectorUI copy resources step after r231063.

  • Configurations/Base.xcconfig:
4:27 PM Changeset in webkit [231080] by Megan Gardner
  • 3 edits
    1 add in trunk

Add timeout for ensurePositionInformationIsUpToDate
https://bugs.webkit.org/show_bug.cgi?id=184567

Reviewed by Wenson Hsieh.

We are having long hang times for WebKit, and this is one of the culprits.
If we do not get an answer for positionInformation in a reasonable amount of time, we should timeout,
so as to not hang the UI.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView ensurePositionInformationIsUpToDate:]):

3:59 PM Changeset in webkit [231079] by mark.lam@apple.com
  • 6 edits in trunk/Source

Gardening: Speculative build fix for Windows.
https://bugs.webkit.org/show_bug.cgi?id=184976
<rdar://problem/39723901>

Not reviewed.

Source/JavaScriptCore:

  • runtime/JSCPtrTag.h:

Source/WebCore:

  • cssjit/CSSPtrTag.h:

Source/WTF:

  • wtf/PtrTag.h:

(WTF::makePtrTagHash): Undo last speculative build fix that did not work for 64-bit.

3:50 PM Changeset in webkit [231078] by Brent Fulgham
  • 5 edits in trunk

Show punycode if URL contains Latin small letter o with dot below character
https://bugs.webkit.org/show_bug.cgi?id=185051
<rdar://problem/39459297>

Reviewed by David Kilzer.

Source/WebCore:

Revise our "lookalike character" logic to include the small Latin o
with dot below character.

Test: fast/url/host.html

  • platform/mac/WebCoreNSURLExtras.mm:

(WebCore::isLookalikeCharacter):

LayoutTests:

  • fast/url/host-expected.txt:
  • fast/url/host.html:
2:53 PM Changeset in webkit [231077] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: Windows build fix.

Not reviewed.

  • runtime/Options.cpp:
2:48 PM Changeset in webkit [231076] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit

Try again to fix the iOS build after r231063.

  • Configurations/Base.xcconfig:
2:41 PM Changeset in webkit [231075] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[iOS] LayoutTest http/tests/quicklook/hide-referer-on-navigation.html is failing
https://bugs.webkit.org/show_bug.cgi?id=184825
<rdar://problem/38924997>

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-04-26
Reviewed by Geoffrey Garen.

Policy decisions are made asynchronously now, so we need to set the async flag of this test.

  • http/tests/quicklook/hide-referer-on-navigation.html:
2:40 PM Changeset in webkit [231074] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

WK_COCOA_TOUCH the WK_ACCESSIBILITY_LDFLAGS
https://bugs.webkit.org/show_bug.cgi?id=185007
<rdar://problem/39735943>

Reviewed by Timothy Hatcher.

  • Configurations/WebKit.xcconfig:
2:32 PM Changeset in webkit [231073] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix; fix iOS TAPI build step after r231063.

  • Configurations/WebKit.xcconfig:
2:26 PM Changeset in webkit [231072] by Ross Kirsling
  • 2 edits in trunk/Tools

Add release bots for WinCairo.
https://bugs.webkit.org/show_bug.cgi?id=185042

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/build.webkit.org-config/config.json:

Add a release build bot and two test bots, replacing the outdated WinCairo release bots.

1:50 PM Changeset in webkit [231071] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix the build following r231068
(https://bugs.webkit.org/show_bug.cgi?id=185002)

Substitute mainResourceRequest.resourceRequest().url() for mainResourceRequest.url() as the
latter does not exist.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::loadMainResource):

1:47 PM Changeset in webkit [231070] by jmarcell@apple.com
  • 3 edits in branches/safari-605-branch/Source/WebKit

Apply patch. rdar://problem/39532926

1:47 PM Changeset in webkit [231069] by jmarcell@apple.com
  • 17 edits
    1 add in branches/safari-605-branch

Cherry-pick r230459. rdar://problem/39766214

[JSC] Introduce @putByIdDirectPrivate
https://bugs.webkit.org/show_bug.cgi?id=184400

Reviewed by Saam Barati.

This patch adds @putByIdDirectPrivate() to use it for builtin JS.
@getByIdDirectPrivate and @putByIdDirectPrivate are pair of intrinsics
accessing to ECMAScript internal fields.

This change removes accidental Put? operation to an object whose Prototype?
has internal fields (not direct properties). By using @getByIdDirectPrivate() and
@putByIdDirectPrivate(), we strongly keep the semantics of the ECMAScript internal
fields that accessing to the internal fields does not traverse prototype chains.

  • builtins/ArrayIteratorPrototype.js: (globalPrivate.arrayIteratorValueNext): (globalPrivate.arrayIteratorKeyNext): (globalPrivate.arrayIteratorKeyValueNext):
  • builtins/ArrayPrototype.js: (globalPrivate.createArrayIterator):
  • builtins/AsyncFromSyncIteratorPrototype.js: (globalPrivate.AsyncFromSyncIteratorConstructor):
  • builtins/AsyncFunctionPrototype.js: (globalPrivate.asyncFunctionResume):
  • builtins/AsyncGeneratorPrototype.js: (globalPrivate.asyncGeneratorQueueEnqueue): (globalPrivate.asyncGeneratorQueueDequeue): (asyncGeneratorYieldAwaited): (globalPrivate.asyncGeneratorYield): (globalPrivate.doAsyncGeneratorBodyCall): (globalPrivate.asyncGeneratorResumeNext):
  • builtins/GeneratorPrototype.js: (globalPrivate.generatorResume):
  • builtins/MapIteratorPrototype.js: (globalPrivate.mapIteratorNext):
  • builtins/MapPrototype.js: (globalPrivate.createMapIterator):
  • builtins/ModuleLoaderPrototype.js: (forceFulfillPromise):
  • builtins/PromiseOperations.js: (globalPrivate.newHandledRejectedPromise): (globalPrivate.rejectPromise): (globalPrivate.fulfillPromise): (globalPrivate.initializePromise):
  • builtins/PromisePrototype.js: (then):
  • builtins/SetIteratorPrototype.js: (globalPrivate.setIteratorNext):
  • builtins/SetPrototype.js: (globalPrivate.createSetIterator):
  • builtins/StringIteratorPrototype.js: (next):
  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecompiler/NodesCodegen.cpp: (JSC::BytecodeIntrinsicNode::emit_intrinsic_putByIdDirect): (JSC::BytecodeIntrinsicNode::emit_intrinsic_putByIdDirectPrivate):

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

1:43 PM Changeset in webkit [231068] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

DocumentLoader::loadMainResource() should WTFMove() the passed ResourceRequest
https://bugs.webkit.org/show_bug.cgi?id=185002

Reviewed by Youenn Fablet and Alex Christensen.

In r224852 we extracted logic from DocumentLoader::startLoadingMainResource() into a new
function DocumentLoader::loadMainResource() that could be shared by both DocumentLoader::startLoadingMainResource()
and the service worker code. As part of this extraction, DocumentLoader::loadMainResource()
takes a ResourceRequest by rvalue reference, but it never actually takes ownership of this
ResourceRequest and subsequently makes a copy of it when instantiating a CachedResourceRequest.
Instead we should WTFMove() the passed request into the CachedResourceRequest.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::loadMainResource):

1:39 PM Changeset in webkit [231067] by commit-queue@webkit.org
  • 5 edits in trunk

-[WKHTTPCookieStore deleteCookie:completionHandler:] doesn't delete cookies
https://bugs.webkit.org/show_bug.cgi?id=184938
<rdar://problem/34737395>

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-04-26
Reviewed by Geoffrey Garen.

Source/WebCore:

When a Cookie object was converted to NSHTTPCookie object, the HTTPOnly property information
was lost so the delete function cannot find the proper cookie to delete.
This patch implements a workaround that compares Cookie object instead of NSHTTPCookie
object. We might want to add the ability to set HTTPOnly header during conversion if there
is an easy way to do it later.

New API test: WebKit.WKHTTPCookieStoreHttpOnly

  • platform/network/cocoa/CookieCocoa.mm:

(WebCore::Cookie::operator== const):

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::deleteCookie):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

(TEST):

1:36 PM Changeset in webkit [231066] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

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

Broke test http/tests/security/credentials-main-resource.html
(Requested by dydz on #webkit).

Reverted changeset:

"DocumentLoader::loadMainResource() should WTFMove() the
passed ResourceRequest"
https://bugs.webkit.org/show_bug.cgi?id=185002
https://trac.webkit.org/changeset/231052

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

Mark http/tests/workers/worker-importScripts-banned-mimetype.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=184800

Unreviewed test gardening.

12:19 PM Changeset in webkit [231064] by Ross Kirsling
  • 2 edits in trunk/Tools

WinCairo test bots should run JSC tests with options for Windows command prompt.
https://bugs.webkit.org/show_bug.cgi?id=185019

Reviewed by Per Arne Vollan.

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(RunJavaScriptCoreTests.start):

12:15 PM Changeset in webkit [231063] by jer.noble@apple.com
  • 17 edits in trunk/Source

WK_COCOA_TOUCH all the things.
https://bugs.webkit.org/show_bug.cgi?id=185006
Source/JavaScriptCore:

<rdar://problem/39736025>

Reviewed by Tim Horton.

  • Configurations/Base.xcconfig:

Source/WebCore:

Reviewed by Tim Horton.

  • Configurations/WebCore.xcconfig:

Source/WebCore/PAL:

Reviewed by Tim Horton.

  • Configurations/PAL.xcconfig:

Source/WebInspectorUI:

Reviewed by Tim Horton.

  • Configurations/WebInspectorUIFramework.xcconfig:

Source/WebKit:

Reviewed by Tim Horton.

  • Configurations/BaseTarget.xcconfig:
  • Configurations/WebKit.xcconfig:

Source/WebKitLegacy/mac:

Reviewed by Tim Horton.

  • Configurations/WebKitLegacy.xcconfig:
12:09 PM Changeset in webkit [231062] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r231002. rdar://problem/39762191

[iOS] Set route sharing policy when setting audio session category
https://bugs.webkit.org/show_bug.cgi?id=184979
<rdar://problem/39709577>

Reviewed by Jer Noble.

  • platform/audio/ios/AudioSessionIOS.mm: (WebCore::AudioSession::setCategory):

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

11:46 AM Changeset in webkit [231061] by dbates@webkit.org
  • 3 edits
    2 adds in trunk
ASSERTION FAILED: ASSERT(!containsImage
MIMETypeRegistry::isSupportedImageResourceMIMEType([resource MIMEType])) in -[NSPasteboard(WebExtras) _web_writePromisedRTFDFromArchive:containsImage:]

https://bugs.webkit.org/show_bug.cgi?id=184161
<rdar://problem/39051645>

Reviewed by Dan Bernstein.

.:

  • ManualTests/DragInlinePDFImageDocument.html: Added.
  • ManualTests/resources/simple.pdf: Added.

Source/WebKitLegacy/mac:

Fixes an assertion failure when quitting an app that uses a Legacy WebKit web view after dragging-and-
dropping a PDF embedded using an HTML image element into the same web view.

When performing a drag-and-drop of a PDF document image (WebCore::PDFDocumentImage) we create a WebArchive
from the main frame's WebHTMLView and promise AppKit that we will provide a Rich Text Format (RTF) document
from this archive if needed. For some reason, on app termination AppKit requests that the WebHTMLView
fulfill its RTF document promise for the WebArchive created at the start of the drag operation. To do this,
we need to extract the image resource from the Web Archive. Currently we query MIMETypeRegistry::isSupportedImageResourceMIMEType()
to see if the contained image is one that we can handle. However MIMETypeRegistry::isSupportedImageResourceMIMEType()
only returns true if WebKit supports creating an image document for the specified MIME type. Disregarding
the iOS motivated setting Settings::useImageDocumentForSubframePDF, PDFs and PostScripts do not create an
image document when navigated to directly. Since we can support dragging PDF document images we need to
query if MIMETypeRegistry::isPDFOrPostScriptMIMEType() in addition to querying MIMETypeRegistry::isSupportedImageResourceMIMEType().
We need to do both such queries before falling back to using the main resource of the Web Archive as
the image. Otherwise, we will cause an assertion failure if the main resource of the Web Archive is
not an image document.

  • Misc/WebNSPasteboardExtras.mm:

(-[NSPasteboard _web_writePromisedRTFDFromArchive:containsImage:]):

11:42 AM Changeset in webkit [231060] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

Remove WebCore::-qualifier in NetworkLoadChecker.cpp
https://bugs.webkit.org/show_bug.cgi?id=185037

Reviewed by Youenn Fablet.

It is unncesssary to qualify WebCore types in NetworkLoadChecker.cpp as it has a
"using namespace WebCore" directive.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::validateResponse):
(WebKit::NetworkLoadChecker::continueCheckingRequest): Removed extra space character and unnecessary
parentheses from the right-hand side of the assignment to m_storedCredentialsPolicy.
(WebKit::NetworkLoadChecker::processContentExtensionRulesForLoad):

11:29 AM Changeset in webkit [231059] by dbates@webkit.org
  • 3 edits in trunk/Source/WebKit

Rename NetworkLoadChecker::returnError() to NetworkLoadChecker::accessControlErrorForValidationHandler()
https://bugs.webkit.org/show_bug.cgi?id=185035

Reviewed by Youenn Fablet.

Substitute NetworkLoadChecker::accessControlErrorForValidationHandler() for NetworkLoadChecker::returnError()
to better describe that it is a convenience function that returns a wrapped ResourceError object,
that represents an access control error, suitable to be passed directly to a validation handler.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::checkRedirection): Update as needed for renaming.
(WebKit::NetworkLoadChecker::accessControlErrorForValidationHandler): Use auto -> syntax to avoid the need to
class-qualify the return type. Also renamed parameter from error to message as it represents the message/description
for the access control error.
(WebKit::NetworkLoadChecker::checkRequest): Update as needed for renaming. Also substitute "message" for "error"
to match the argument of accessControlErrorForValidationHandler() with the same name.
(WebKit::NetworkLoadChecker::continueCheckingRequest): Update as needed for renaming.
(WebKit::NetworkLoadChecker::returnError): Deleted; renamed to accessControlErrorForValidationHandler().

  • NetworkProcess/NetworkLoadChecker.h:
11:22 AM Changeset in webkit [231058] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

Make WAKScrollView delegate a weak property
<https://webkit.org/b/184799>
<rdar://problem/39469669>

Reviewed by Simon Fraser.

  • platform/ios/wak/WAKScrollView.h:
  • Remove delegate instance variable declaration.
  • Declare delegate property as weak.

(-[WAKScrollView setDelegate:]): Delete declaration.
(-[WAKScrollView delegate]): Ditto.

  • platform/ios/wak/WAKScrollView.mm:
  • Synthesize getter/setter methods for delegate property.

(-[WAKScrollView setDelegate:]): Delete implementation.
(-[WAKScrollView delegate]): Ditto.

11:20 AM Changeset in webkit [231057] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

Remove access to keychain from the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=184428
<rdar://problem/13150903>

Part 3.

Tighten WebContent Process' sandbox profile to all Security.framework services.

Reviewed by Brent Fulgham.

  • WebProcess/com.apple.WebProcess.sb.in:
11:17 AM Changeset in webkit [231056] by youenn@apple.com
  • 11 edits
    6 deletes in trunk

LayoutTests/imported/w3c:
preflight checker should add a console message when preflight load is blocked
https://bugs.webkit.org/show_bug.cgi?id=185021

Reviewed by Chris Dumez.

  • web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-expected.txt:
  • web-platform-tests/cors/late-upload-events-expected.txt:

Source/WebCore:
CORS preflight checker should add a console message when preflight load is blocked
https://bugs.webkit.org/show_bug.cgi?id=185021

Reviewed by Chris Dumez.

No change of behavior, adding a JS console message when preflight load is blocked.
This mirrors what is being done in preflighting done from NetworkProcess.
Covered by existing tests.

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::notifyFinished):
(WebCore::CrossOriginPreflightChecker::doPreflight):

LayoutTests:
CORS preflight checker should add a console message when preflight load is blocked
https://bugs.webkit.org/show_bug.cgi?id=185021

Reviewed by Chris Dumez.

  • TestExpectations: Skipping console JS logging for some WPT tests to keep them consistent between WK1 and WK2.
  • http/tests/xmlhttprequest/redirect-cross-origin-post-expected.txt:
  • http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/cors/request-headers-expected.txt: Removed.
  • platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt: Removed.
  • platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt: Removed.
  • platform/win/imported/w3c/web-platform-tests/cors/request-headers-expected.txt: Removed.
11:16 AM Changeset in webkit [231055] by youenn@apple.com
  • 11 edits
    6 deletes in trunk

LayoutTests/imported/w3c:
Mak cross origin redirection error messages consistent between SubresourceLoader and NetworkLoadChecker
https://bugs.webkit.org/show_bug.cgi?id=185023

Reviewed by Chris Dumez.

Fix message cross origin check failed in case of redirection

  • web-platform-tests/service-workers/service-worker/fetch-request-fallback.https-expected.txt:

Source/WebKit:
Make cross origin redirection error messages consistent between SubresourceLoader and NetworkLoadChecker
https://bugs.webkit.org/show_bug.cgi?id=185023

Reviewed by Chris Dumez.

Align NetworkLoadChecker with what SubresourceLoader is doing so that we can keep WK1 and WK2 error messages as consistent as possible.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::validateResponse):

LayoutTests:
Make cross origin redirection error messages consistent between SubresourceLoader and NetworkLoadChecker
https://bugs.webkit.org/show_bug.cgi?id=185023

Reviewed by Chris Dumez.

  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt:
  • http/tests/security/shape-image-cors-redirect-error-message-logging-1-expected.txt:
  • http/tests/security/shape-image-cors-redirect-error-message-logging-2-expected.txt:
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt: Removed.
  • platform/mac-wk1/http/tests/security/shape-image-cors-redirect-error-message-logging-1-expected.txt: Removed.
  • platform/mac-wk1/http/tests/security/shape-image-cors-redirect-error-message-logging-2-expected.txt: Removed.
  • platform/win/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt: Removed.
  • platform/win/http/tests/security/shape-image-cors-redirect-error-message-logging-1-expected.txt: Removed.
  • platform/win/http/tests/security/shape-image-cors-redirect-error-message-logging-2-expected.txt: Removed.
11:05 AM Changeset in webkit [231054] by Megan Gardner
  • 4 edits
    4 adds in trunk

Activate selection when interacting with editable content
https://bugs.webkit.org/show_bug.cgi?id=185017

Reviewed by Tim Horton.

Source/WebKit:

Fixes a regression from r231016 where selection now does not work when interacting with
editable content. When we go into editable content, we should turn on the assistant.
This fulfills the requirement of user interaction as well, so any javascript selections
after this point should be valid.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _startAssistingKeyboard]):
(-[WKContentView _stopAssistingKeyboard]):

LayoutTests:

Fixed double-tap-on-editable-and-noneditable test, as it was not actually written correctly.
Should actually double tap on correct content and check for the correct output now.
Added two more tests to make sure that selections really are happening in editable content.

  • fast/events/touch/ios/double-tap-on-editable-and-noneditable.html:
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-expected.txt: Added.
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-right-to-change-selected-text-expected.txt: Added.
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-right-to-change-selected-text.html: Added.
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection.html: Added.
10:54 AM Changeset in webkit [231053] by Ross Kirsling
  • 2 edits in trunk/Tools

WinCairo WKL Debug Test bot is not using DRT.
https://bugs.webkit.org/show_bug.cgi?id=185009

Reviewed by Per Arne Vollan.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
10:46 AM Changeset in webkit [231052] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

DocumentLoader::loadMainResource() should WTFMove() the passed ResourceRequest
https://bugs.webkit.org/show_bug.cgi?id=185002

Reviewed by Youenn Fablet and Alex Christensen.

In r224852 we extracted logic from DocumentLoader::startLoadingMainResource() into a new
function DocumentLoader::loadMainResource() that could be shared by both DocumentLoader::startLoadingMainResource()
and the service worker code. As part of this extraction, DocumentLoader::loadMainResource()
takes a ResourceRequest by rvalue reference, but it never actually takes ownership of this
ResourceRequest and subsequently makes a copy of it when instantiating a CachedResourceRequest.
Instead we should WTFMove() the passed request into the CachedResourceRequest.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::loadMainResource):

10:29 AM Changeset in webkit [231051] by pvollan@apple.com
  • 12 edits in trunk

Disable content filtering in minimal simulator mode
https://bugs.webkit.org/show_bug.cgi?id=185027
<rdar://problem/39736091>

Reviewed by Jer Noble.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
10:12 AM Changeset in webkit [231050] by Brent Fulgham
  • 8 edits in trunk

Add port 548 (afpovertcp) to port blacklist
https://bugs.webkit.org/show_bug.cgi?id=185000
<rdar://problem/39540481>

Reviewed by David Kilzer.

Source/WebCore:

Tested by security/block-test.html.

  • platform/URL.cpp:

(WebCore::portAllowed):Also block port 548.

LayoutTests:

Update test and expectations for new port.

  • platform/gtk/security/block-test-expected.txt:
  • platform/mac/security/block-test-expected.txt:
  • platform/wpe/security/block-test-expected.txt:
  • security/block-test-expected.txt:
  • security/block-test.html:
9:48 AM Changeset in webkit [231049] by clopez@igalia.com
  • 3 edits in trunk/LayoutTests

[WPE] Gardening of tests for the WPE Debug bot.

Mark tests timing out.
An attempt to make the new WPE debug bot not abort early.

  • platform/gtk/TestExpectations: workers/bomb.html for debug was skipped in the root expectations file, but we were overriding it to simply "slow" here because we missed the tag for release. Let's put both expectations together to make this clearer.
  • platform/wpe/TestExpectations: Ditto.
9:39 AM Changeset in webkit [231048] by beidson@apple.com
  • 16 edits in trunk

Add a setting for keeping around all processes and always reusing them per-origin.
<rdar://problem/39695798> and https://bugs.webkit.org/show_bug.cgi?id=185020

Reviewed by Andy Estes.

Source/WebKit:

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationAlwaysKeepAndReuseSwappedProcesses):
(WKContextConfigurationSetAlwaysKeepAndReuseSwappedProcesses):

  • UIProcess/API/C/WKContextConfigurationRef.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration setAlwaysKeepAndReuseSwappedProcesses:]):
(-[_WKProcessPoolConfiguration alwaysKeepAndReuseSwappedProcesses]):

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::webProcessDidClose):
(WebKit::SuspendedPageProxy::destroyWebPageInWebProcess):

  • UIProcess/SuspendedPageProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::suspendedPageClosed):
(WebKit::WebPageProxy::suspendedPageProcessClosed): Deleted.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::suspendedPage const):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::shouldTerminate):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::addProcessToOriginCacheSet):
(WebKit::WebProcessPool::removeProcessFromOriginCacheSet):
(WebKit::WebProcessPool::processForNavigation): If a swap will occur, cache the old process.
(WebKit::WebProcessPool::processForNavigationInternal): Consider re-using a previously cached process.

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_credentialsMessenger):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
9:37 AM Changeset in webkit [231047] by commit-queue@webkit.org
  • 36 edits
    2 copies
    7 adds in trunk

[INTL] Implement Intl.PluralRules
https://bugs.webkit.org/show_bug.cgi?id=184312

Patch by Andy VanWagoner <thetalecrafter@gmail.com> on 2018-04-26
Reviewed by JF Bastien.

.:

Added Intl.PluralRules feature flag.

  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

Use UNumberFormat to enforce formatting, and then UPluralRules to find
the correct plural rule for the given number. Relies on ICU v59+ for
resolvedOptions().pluralCategories and trailing 0 detection.
Behind the useIntlPluralRules option and INTL_PLURAL_RULES flag.

  • CMakeLists.txt:
  • Configurations/FeatureDefines.xcconfig:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • builtins/BuiltinNames.h:
  • runtime/BigIntObject.cpp:

(JSC::BigIntObject::create): Moved to ensure complete JSGlobalObject definition.

  • runtime/BigIntObject.h:
  • runtime/CommonIdentifiers.h:
  • runtime/IntlObject.cpp:

(JSC::IntlObject::finishCreation):

  • runtime/IntlObject.h:
  • runtime/IntlPluralRules.cpp: Added.

(JSC::IntlPluralRules::UPluralRulesDeleter::operator() const):
(JSC::IntlPluralRules::UNumberFormatDeleter::operator() const):
(JSC::UEnumerationDeleter::operator() const):
(JSC::IntlPluralRules::create):
(JSC::IntlPluralRules::createStructure):
(JSC::IntlPluralRules::IntlPluralRules):
(JSC::IntlPluralRules::finishCreation):
(JSC::IntlPluralRules::destroy):
(JSC::IntlPluralRules::visitChildren):
(JSC::IntlPRInternal::localeData):
(JSC::IntlPluralRules::initializePluralRules):
(JSC::IntlPluralRules::resolvedOptions):
(JSC::IntlPluralRules::select):

  • runtime/IntlPluralRules.h: Added.
  • runtime/IntlPluralRulesConstructor.cpp: Added.

(JSC::IntlPluralRulesConstructor::create):
(JSC::IntlPluralRulesConstructor::createStructure):
(JSC::IntlPluralRulesConstructor::IntlPluralRulesConstructor):
(JSC::IntlPluralRulesConstructor::finishCreation):
(JSC::constructIntlPluralRules):
(JSC::callIntlPluralRules):
(JSC::IntlPluralRulesConstructorFuncSupportedLocalesOf):
(JSC::IntlPluralRulesConstructor::visitChildren):

  • runtime/IntlPluralRulesConstructor.h: Added.
  • runtime/IntlPluralRulesPrototype.cpp: Added.

(JSC::IntlPluralRulesPrototype::create):
(JSC::IntlPluralRulesPrototype::createStructure):
(JSC::IntlPluralRulesPrototype::IntlPluralRulesPrototype):
(JSC::IntlPluralRulesPrototype::finishCreation):
(JSC::IntlPluralRulesPrototypeFuncSelect):
(JSC::IntlPluralRulesPrototypeFuncResolvedOptions):

  • runtime/IntlPluralRulesPrototype.h: Added.
  • runtime/JSGlobalObject.cpp:

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

  • runtime/JSGlobalObject.h:
  • runtime/Options.h:
  • runtime/RegExpPrototype.cpp: Added inlines header.
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

Source/WebCore:

Added Intl.PluralRules feature flag.

Test: js/intl-pluralrules.html

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

Added Intl.PluralRules feature flag.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

Added Intl.PluralRules feature flag.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

Added Intl.PluralRules feature flag.

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

Added Intl.PluralRules feature flag.

  • wtf/FeatureDefines.h:

Tools:

Added Intl.PluralRules feature flag.

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

  • js/intl-pluralrules-expected.txt: Added.
  • js/intl-pluralrules.html: Added.
  • js/script-tests/intl-pluralrules.js: Added.
  • platform/win/TestExpectations: Disabled Intl.PluralRules tests on win.
9:14 AM Changeset in webkit [231046] by Darin Adler
  • 4 edits in trunk/Source/WebCore

[Cocoa] Adopt CCRSAGetCRTComponents and stop using CCBigNum
https://bugs.webkit.org/show_bug.cgi?id=184637

Reviewed by Alexey Proskuryakov.

  • crypto/CommonCryptoUtilities.cpp: Compile out WebCore::CCBigNum class if

HAVE(CCRSAGetCRTComponents) is true.

  • crypto/CommonCryptoUtilities.h: Define HAVE(CCRSAGetCRTComponents) on new

enough versions of iOS and macOS that have it and add declarations of the
function for the non-Apple-internal-SDK case. Also don't define the
WebCore::CCBigNum class if HAVE(CCRSAGetCRTComponents) is true.

  • crypto/mac/CryptoKeyRSAMac.cpp:

(WebCore::getPrivateKeyComponents): Use CCRSAGetCRTComponents if present.

8:04 AM Changeset in webkit [231045] by pvollan@apple.com
  • 3 edits in trunk/Source/WebCore

Add lazy initialization of caption display mode for videos.
https://bugs.webkit.org/show_bug.cgi?id=184993

The call to MACaptionAppearanceGetDisplayType in CaptionUserPreferencesMediaAF::captionDisplayMode()
is showing up in samples when called from HTMLMediaElement::finishInitialization().

Reviewed by Eric Carlson.

No new tests, covered by existing tests.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::finishInitialization):
(WebCore::HTMLMediaElement::setSelectedTextTrack):
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged):
(WebCore::HTMLMediaElement::captionPreferencesChanged):
(WebCore::HTMLMediaElement::captionDisplayMode):

  • html/HTMLMediaElement.h:
5:04 AM Changeset in webkit [231044] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[MIPS] Fix branch offsets in branchNeg32
https://bugs.webkit.org/show_bug.cgi?id=185025

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-04-26
Reviewed by Yusuke Suzuki.

Two nops were removed in branch(Not)Equal in #183130 but the offset wasn't adjusted.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::branchNeg32):

12:54 AM Changeset in webkit [231043] by zandobersek@gmail.com
  • 19 edits
    9 adds in trunk

[GTK][WPE] Initial ASYNC_SCROLLING support
https://bugs.webkit.org/show_bug.cgi?id=184961

Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/OptionsGTK.cmake: Enable ASYNC_SCROLLING as a private option.
  • Source/cmake/OptionsWPE.cmake: Ditto.

Source/WebCore:

Add CoordinatedGraphics-specific code that will be required for async
scrolling support. The ScrollingCoordinatorCoordinatedGraphics and
ScrollingTreeCoordinatedGraphics classes are mostly complete already,
but the new ScrollingTreeNode-inheriting classes will need further
work that will have to be done in parallel with other improvements
planned for the CoordinatedGraphics subsystem.

While the build-time flag is enabled, the feature is still not enabled
at runtime due to being marked as unsupported by the DrawingArea
implementation in the WebKit layer. It would also not work yet if it
were enabled due to the before-mentioned pending changes.

Various build fixes that address non-Cocoa usage of ASYNC_SCROLLING
code are included.

  • Sources.txt: Add AsyncScrollingCoordinator.cpp to build.
  • SourcesCocoa.txt:
  • SourcesGTK.txt: Add new files to build.
  • SourcesWPE.txt: Ditto.
  • page/scrolling/AsyncScrollingCoordinator.cpp:

Guard setStateScrollingNodeSnapOffsetsAsFloat() with CSS_SCROLL_SNAP.

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ThreadedScrollingTree.cpp:
  • page/scrolling/ThreadedScrollingTree.h:

currentSnapPointIndicesDidChange() method is only invoked in
Cocoa-specific code, and its implementation calls Cocoa-specific method
on the AsyncScrollingCoordinator class.

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:

(WebCore::ScrollingCoordinator::create):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::ScrollingCoordinatorCoordinatedGraphics):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::~ScrollingCoordinatorCoordinatedGraphics):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::pageDestroyed):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::commitTreeStateIfNeeded):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::handleWheelEvent):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::scheduleTreeStateCommit):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::commitTreeState):

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h: Added.
  • page/scrolling/coordinatedgraphics/ScrollingTreeCoordinatedGraphics.cpp: Added.

(WebCore::ScrollingTreeCoordinatedGraphics::create):
(WebCore::ScrollingTreeCoordinatedGraphics::ScrollingTreeCoordinatedGraphics):
(WebCore::ScrollingTreeCoordinatedGraphics::createScrollingTreeNode):

  • page/scrolling/coordinatedgraphics/ScrollingTreeCoordinatedGraphics.h: Added.
  • page/scrolling/coordinatedgraphics/ScrollingTreeFixedNode.cpp: Added.

(WebCore::ScrollingTreeFixedNode::create):
(WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
(WebCore::ScrollingTreeFixedNode::~ScrollingTreeFixedNode):
(WebCore::ScrollingTreeFixedNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange):

  • page/scrolling/coordinatedgraphics/ScrollingTreeFixedNode.h: Added.
  • page/scrolling/coordinatedgraphics/ScrollingTreeFrameScrollingNodeCoordinatedGraphics.cpp: Added.

(WebCore::ScrollingTreeFrameScrollingNodeCoordinatedGraphics::create):
(WebCore::ScrollingTreeFrameScrollingNodeCoordinatedGraphics::ScrollingTreeFrameScrollingNodeCoordinatedGraphics):
(WebCore::ScrollingTreeFrameScrollingNodeCoordinatedGraphics::handleWheelEvent):
(WebCore::ScrollingTreeFrameScrollingNodeCoordinatedGraphics::scrollPosition const):
(WebCore::ScrollingTreeFrameScrollingNodeCoordinatedGraphics::setScrollPosition):
(WebCore::ScrollingTreeFrameScrollingNodeCoordinatedGraphics::setScrollPositionWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeFrameScrollingNodeCoordinatedGraphics::setScrollLayerPosition):
(WebCore::ScrollingTreeFrameScrollingNodeCoordinatedGraphics::updateLayersAfterViewportChange):

  • page/scrolling/coordinatedgraphics/ScrollingTreeFrameScrollingNodeCoordinatedGraphics.h: Added.
  • page/scrolling/coordinatedgraphics/ScrollingTreeStickyNode.cpp: Added.

(WebCore::ScrollingTreeStickyNode::create):
(WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode):
(WebCore::ScrollingTreeStickyNode::~ScrollingTreeStickyNode):
(WebCore::ScrollingTreeStickyNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange):

  • page/scrolling/coordinatedgraphics/ScrollingTreeStickyNode.h: Added.
  • platform/PlatformWheelEvent.h: Enable PlatformWheelEventPhase code

for WPE. Guard latching-specific methods under ASYNC_SCROLLING.

  • platform/TextureMapper.cmake: Two build targets have been moved to

SourcesGTK.txt and SourcesWPE.txt.

Source/WebKit:

Guard RemoteScrollingCoordinator and RemoteScrollingCoordinatorProxy
usage in WebChromeClient and WebPageProxy, respectively, with
PLATFORM(COCOA) in addition to the ASYNC_SCROLLING guards.

Despite enabling the code at build-time, the feature (as intended) is
not yet used because of the DrawingArea rejection in the WebPage
constructor.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::initializeWebPage):
(WebKit::WebPageProxy::handleWheelEvent):
(WebKit::WebPageProxy::updateTouchEventTracking):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createScrollingCoordinator const):

Apr 25, 2018:

11:40 PM Changeset in webkit [231042] by Michael Catanzaro
  • 28 edits in trunk

[WPE] Build and link against latest WPEBackend and WPEBackend-fdo
https://bugs.webkit.org/show_bug.cgi?id=184643

Reviewed by Žan Doberšek.

.:

Update find modules to include the API versions.

  • Source/cmake/FindWPEBackend-fdo.cmake:
  • Source/cmake/FindWPEBackend.cmake:

Source/WebCore:

Adapt to single-header WPE includes.

  • platform/graphics/egl/GLContextEGLWPE.cpp:
  • platform/graphics/wpe/PlatformDisplayWPE.cpp:
  • platform/wpe/PlatformPasteboardWPE.cpp:

Source/WebKit:

Adapt to single-header WPE includes.

Null-initialize padding to silence -Wmissing-field-initializers. (Yuck.)

  • Shared/NativeWebTouchEvent.h:
  • Shared/wpe/WebEventFactory.cpp:
  • UIProcess/API/glib/WebKitPrivate.cpp:
  • UIProcess/API/wpe/CompositingManagerProxy.cpp:
  • UIProcess/API/wpe/ScrollGestureController.h:
  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::m_backend):

  • UIProcess/API/wpe/WebKitWebViewBackend.h:
  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:
  • WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.cpp:

(WebKit::AcceleratedSurfaceWPE::initialize):

Tools:

Add missing INCLUDE_DIRS in many places.

Adapt to single-header WPE includes.

Null-initialize padding to silence -Wmissing-field-initializers. (Yuck.)

  • TestWebKitAPI/PlatformWPE.cmake:
  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewWebBackend):

  • TestWebKitAPI/glib/PlatformWPE.cmake:
  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/PlatformWPE.cmake:
  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:
  • wpe/HeadlessViewBackend/CMakeLists.txt:
  • wpe/HeadlessViewBackend/HeadlessViewBackend.cpp:
  • wpe/HeadlessViewBackend/HeadlessViewBackend.h:
  • wpe/jhbuild.modules:
8:33 PM Changeset in webkit [231041] by sbarati@apple.com
  • 2 edits in trunk/Source/WebKit

dlopen the bundle's executable before calling -[NSBundle load] since that will also do a bunch of other things we don't need
https://bugs.webkit.org/show_bug.cgi?id=184904

Reviewed by Geoffrey Garen.

Loading an NSBundle does a lot of work to find the principal class inside
the bundle. This means it walks all the objective C class names loaded
by the bundle. Doing this is *really* expensive.

Some users of the injected bundle define a WKBundleInitialize function.
In such a case, we don't need the principal class, so we can skip loading
the NSBundle. Now, before we load the bundle, we dlopen and dlsym looking
for the WKBundleInitialize function. If we find it, we skip loading
the bundle. If we don't find the WKBundleInitialize function, we fall
back to loading the bundle and finding the principal class.

This speeds up initializeWebProcess by ~70ms on my MBP.

  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::initialize):

8:21 PM Changeset in webkit [231040] by youenn@apple.com
  • 33 edits
    14 copies
    11 adds in trunk

Use NetworkLoadChecker for all subresource loads except fetch/XHR
https://bugs.webkit.org/show_bug.cgi?id=184870
<rdar://problem/39370034>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/basic/mode-same-origin.any-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-same-origin.any.worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-to-dataurl-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-to-dataurl-worker-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-redirect.https-expected.txt:

Source/WebCore:

No change of behavior.
Update CachedResourceLoader error messages to match NetworkProcess error messages.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::printAccessDeniedMessage const):

Source/WebKit:

Relax rules to check for non HTTP(s) redirections to throw only when WebProcess says to load it after redirection.
This allows WebProcess to load redirected non HTTP(s) URLs, such as data URLs.
We keep these checks when WebProcess asks to continue the load and for all PingLoads.

Update error messages to be more consistent with WK1.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::continueCheckingRequest):
(WebKit::NetworkLoadChecker::validateResourceResponse):
(WebKit::NetworkLoadChecker::continueCheckingRequest):

  • NetworkProcess/NetworkLoadChecker.h:

(WebKit::NetworkLoadChecker::validateResponse):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::shouldUseNetworkLoadChecker):
(WebKit::NetworkResourceLoader::continueWillSendRequest):

LayoutTests:

  • TestExpectations:
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
  • http/tests/security/cross-origin-xsl-BLOCKED-expected.txt:
  • http/tests/security/cross-origin-xsl-redirect-BLOCKED-expected.txt:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker-redirect-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt:
  • http/tests/security/shape-image-cors-redirect-error-message-logging-1-expected.txt:
  • http/tests/security/shape-image-cors-redirect-error-message-logging-2-expected.txt:
  • http/tests/security/worker-cross-origin-expected.txt:
  • http/tests/security/xss-DENIED-xml-external-entity-expected.txt:
  • http/tests/security/xss-DENIED-xsl-document-expected.txt:
  • http/tests/security/xss-DENIED-xsl-external-entity-expected.txt:
  • http/tests/workers/worker-redirect-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
  • http/tests/xmlhttprequest/redirect-cross-origin-post-sync-expected.txt:
  • http/tests/xmlhttprequest/redirect-cross-origin-sync-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt:
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt: Added.
  • platform/mac-wk1/http/tests/security/shape-image-cors-redirect-error-message-logging-1-expected.txt: Added.
  • platform/mac-wk1/http/tests/security/shape-image-cors-redirect-error-message-logging-2-expected.txt: Added.
  • platform/mac-wk1/http/tests/workers/worker-redirect-expected.txt: Added.
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt: Added.
  • platform/mac-wk1/http/tests/security/isolatedWorld/bypass-main-world-csp-worker-redirect-expected.txt: Added.
  • platform/mac-wk1/http/tests/security/worker-cross-origin-expected.txt: Added.
  • platform/mac-wk2/TestExpectations:
  • platform/win/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt: Added.
  • platform/win/http/tests/security/shape-image-cors-redirect-error-message-logging-1-expected.txt: Added.
  • platform/win/http/tests/security/shape-image-cors-redirect-error-message-logging-2-expected.txt: Added.
  • platform/win/http/tests/workers/worker-redirect-expected.txt: Added.
  • platform/win/http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt: Added.
  • platform/win/http/tests/security/isolatedWorld/bypass-main-world-csp-worker-redirect-expected.txt: Added.
  • platform/win/http/tests/security/worker-cross-origin-expected.txt: Added.
7:10 PM Changeset in webkit [231039] by Jonathan Bedard
  • 4 edits in trunk/Tools

REGRESSION (r230998): Bot watcher's dashboard doesn't display number of API test failures
https://bugs.webkit.org/show_bug.cgi?id=184982

Rubber-stamped by Aakash Jain.

Correctly count the number of API test failures.

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(RunUnitTests.countFailures): Count the number of test failures for the new run-api-tests.

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
  • Scripts/webkitpy/api_tests/manager.py:

(Manager.run): Disabled tests are not run.

7:04 PM Changeset in webkit [231038] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LFC] Add support for is<> and downcast<>
https://bugs.webkit.org/show_bug.cgi?id=185016

Reviewed by Antti Koivisto.

  • layout/layouttree/LayoutBlockContainer.cpp:

(WebCore::Layout::BlockContainer::BlockContainer):

  • layout/layouttree/LayoutBlockContainer.h:
  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::Box):

  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::isContainer const):
(WebCore::Layout::Box::isBlockContainer const):
(WebCore::Layout::Box::isInlineBox const):
(WebCore::Layout::Box::isInlineContainer const):

  • layout/layouttree/LayoutContainer.cpp:

(WebCore::Layout::Container::Container):

  • layout/layouttree/LayoutContainer.h:
  • layout/layouttree/LayoutInlineBox.cpp:

(WebCore::Layout::InlineBox::InlineBox):

  • layout/layouttree/LayoutInlineBox.h:
  • layout/layouttree/LayoutInlineContainer.cpp:

(WebCore::Layout::InlineContainer::InlineContainer):

  • layout/layouttree/LayoutInlineContainer.h:
5:55 PM Changeset in webkit [231037] by Chris Dumez
  • 8 edits in trunk

window.postMessage() / focus() / blur() throw a TypeError when called on a RemoteDOMWindow
https://bugs.webkit.org/show_bug.cgi?id=184981

Reviewed by Sam Weinig.

Source/WebCore:

window.postMessage() / focus() / blur() was throwing a TypeError when called on a RemoteDOMWindow,
complaining that |this| is not a Window. This was caused by a copy & paste mistake in
JSDOMWindowCustom where we were calling the JSDOMWindow methods instead of the JSRemoteDOMWindow
ones.

No new tests, updated existing tests.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):

  • page/RemoteDOMWindow.cpp:

(WebCore::RemoteDOMWindow::postMessage):

  • page/RemoteDOMWindow.h:
  • page/RemoteDOMWindow.idl:

LayoutTests:

Add layout test coverage.

  • http/tests/navigation/process-swap-window-open-expected.txt:
  • http/tests/navigation/process-swap-window-open.html:
5:42 PM Changeset in webkit [231036] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening

Mark http/tests/misc/submit-post-keygen.html as 'Skip' in Win because of lacking corresponding
implementations.

  • platform/win/TestExpectations:
5:13 PM Changeset in webkit [231035] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

Gardening: Speculative build fix for Windows 32-bit to compensate for MSVC's lack of smarts.
https://bugs.webkit.org/show_bug.cgi?id=184976
<rdar://problem/39723901>

Not reviewed.

According to https://stackoverflow.com/questions/37658794/integer-constant-overflow-warning-in-constexpr,
disabling the warning around the definition of the function will not disable it
for all clients of the function.

  • wtf/PtrTag.h:

(WTF::makePtrTagHash):

4:32 PM Changeset in webkit [231034] by rmorisset@apple.com
  • 4 edits
    1 add in trunk

In FTLLowerDFGToB3.cpp::compileCreateRest, always use a contiguous array as the indexing type when under isWatchingHavingABadTimeWatchpoint
https://bugs.webkit.org/show_bug.cgi?id=184773
<rdar://problem/37773612>

Reviewed by Filip Pizlo.

JSTests:

This bug requires a race between the thread doing FTL compilation and the main thread, but it triggers in 100% of cases (before the fix) on my machine
so I decided to add it to the stress tests nonetheless.

  • stress/create-rest-while-having-a-bad-time.js: Added.

(f):
(g):
(h):

Source/JavaScriptCore:

We were calling restParameterStructure(), which returns arrayStructureForIndexingTypeDuringAllocation(ArrayWithContiguous).
arrayStructureForIndexingTypeDuringAllocation uses m_arrayStructureForIndexingShapeDuringAllocation, which is set to SlowPutArrayStorage when we are 'having a bad time'.
This is problematic, because the structure is then passed to allocateUninitializedContiguousJSArray, which ASSERTs that the indexing type is contiguous (or int32).
We solve the problem by using originalArrayStructureForIndexingType which always returns a structure with the right indexing type (contiguous), even if we are having a bad time.
This is safe, as we are under isWatchingHavingABadTimeWatchpoint, so if we have a bad time, the code we generate will never be installed.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCreateRest):

4:24 PM Changeset in webkit [231033] by Simon Fraser
  • 22 edits in trunk

brightness() filter should default to 1, and not allow negative values
https://bugs.webkit.org/show_bug.cgi?id=184937

Reviewed by Dean Jackson.
Source/WebCore:

Remove the special-casing for brightness() in consumeFilterFunction(), so it now
follows the same logic as the other color-related filters in not allowing negative
values.

Removed the special-casing for brightness() in createFilterOperations() so its default
value is now 1.

Modified existing tests.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::createFilterOperations):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::allowsValuesGreaterThanOne):
(WebCore::CSSPropertyParserHelpers::consumeFilterFunction):

LayoutTests:

Added negative value tests to filter-property-parsing.html and backdropfilter-property-parsing.html,
and made these tests more similar.

Fixed expected computed value for brightness() to be brightness(1) in the tests.

The effect-brightness* test results failed because elements with invalid brightness values now
no longer create a RenderLayer.

  • css3/color-filters/color-filter-parsing-expected.txt:
  • css3/color-filters/color-filter-parsing.html:
  • css3/filters/backdrop/backdropfilter-property-computed-style-expected.txt:
  • css3/filters/backdrop/backdropfilter-property-computed-style.html:
  • css3/filters/backdrop/backdropfilter-property-parsing-expected.txt:
  • css3/filters/backdrop/backdropfilter-property-parsing.html:
  • css3/filters/effect-brightness-expected.txt:
  • css3/filters/filter-property-computed-style-expected.txt:
  • css3/filters/filter-property-computed-style.html:
  • css3/filters/filter-property-parsing-expected.txt:
  • css3/filters/filter-property-parsing.html:
  • css3/filters/unprefixed-expected.txt:
  • css3/filters/unprefixed.html:
  • fast/filter-image/parse-filter-image-expected.txt:
  • fast/filter-image/parse-filter-image.html:
  • platform/mac/css3/filters/effect-brightness-clamping-expected.txt:
4:23 PM Changeset in webkit [231032] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Missing closing parenthesis when determining INSTALL_PATH build setting in WebCore.xcconfig
https://bugs.webkit.org/show_bug.cgi?id=184999

Reviewed by Tim Horton.

Tweaks a line in WebCore.xcconfig that computes INSTALL_PATH, so that it doesn't use WK_NOT or WK_EMPTY.

  • Configurations/WebCore.xcconfig:
4:17 PM Changeset in webkit [231031] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKit

PSON: Don't create a new process when navigating to a blob URL, data URL, and about:blank
https://bugs.webkit.org/show_bug.cgi?id=184962

Reviewed by Youenn Fablet.
<rdar://problem/39715044>

Build fix. Revert the change in r231019 to remove the empty URL and about:blank check here.
These checks are for the source / originating URL, not the target URL.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigation):

4:13 PM Changeset in webkit [231030] by clopez@igalia.com
  • 2 edits in trunk/LayoutTests

[WPE][Debug] Test gardening of EME related tests.

Report and mark the tests crashing on the Debug build.

  • platform/wpe/TestExpectations:
4:09 PM Changeset in webkit [231029] by jmarcell@apple.com
  • 7 edits in branches/safari-605-branch/Source

Versioning.

3:54 PM Changeset in webkit [231028] by Alan Bujtas
  • 15 edits in trunk/Source/WebCore

[LFC] Implement LayoutContexet::layout() and its dependencies.
https://bugs.webkit.org/show_bug.cgi?id=184951

Reviewed by Antti Koivisto.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::FormattingContext):
(WebCore::Layout::FormattingContext::~FormattingContext):
(WebCore::Layout::FormattingContext::computeStaticPosition):
(WebCore::Layout::FormattingContext::computeInFlowPositionedPosition):
(WebCore::Layout::FormattingContext::computeOutOfFlowPosition):
(WebCore::Layout::FormattingContext::computeWidth):
(WebCore::Layout::FormattingContext::computeHeight):
(WebCore::Layout::FormattingContext::marginTop):
(WebCore::Layout::FormattingContext::marginLeft):
(WebCore::Layout::FormattingContext::marginBottom):
(WebCore::Layout::FormattingContext::marginRight):

  • layout/FormattingContext.h:
  • layout/FormattingState.cpp:

(WebCore::Layout::FormattingState::FormattingState):

  • layout/FormattingState.h:
  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::LayoutContext):
(WebCore::Layout::LayoutContext::updateLayout):
(WebCore::Layout::LayoutContext::formattingState):
(WebCore::Layout::LayoutContext::formattingContext):

  • layout/LayoutContext.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::BlockFormattingContext):
(WebCore::Layout::BlockFormattingContext::layout):
(WebCore::Layout::BlockFormattingContext::formattingState const):
(WebCore::Layout::BlockFormattingContext::computeStaticPosition):
(WebCore::Layout::BlockFormattingContext::computeWidth):
(WebCore::Layout::BlockFormattingContext::computeHeight):
(WebCore::Layout::BlockFormattingContext::marginTop):
(WebCore::Layout::BlockFormattingContext::marginBottom):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingState.cpp:

(WebCore::Layout::BlockFormattingState::BlockFormattingState):

  • layout/blockformatting/BlockFormattingState.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::InlineFormattingContext):
(WebCore::Layout::InlineFormattingContext::layout):
(WebCore::Layout::InlineFormattingContext::formattingState const):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingState.cpp:

(WebCore::Layout::InlineFormattingState::InlineFormattingState):

  • layout/inlineformatting/InlineFormattingState.h:
3:31 PM Changeset in webkit [231027] by mark.lam@apple.com
  • 26 edits
    1 move
    1 add in trunk/Source

Push the definition of PtrTag down to the WTF layer.
https://bugs.webkit.org/show_bug.cgi?id=184976
<rdar://problem/39723901>

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/ARM64Assembler.h:
  • assembler/AbstractMacroAssembler.h:
  • assembler/MacroAssemblerCodeRef.cpp:
  • assembler/MacroAssemblerCodeRef.h:
  • b3/B3MathExtras.cpp:
  • bytecode/LLIntCallLinkInfo.h:
  • disassembler/Disassembler.h:
  • ftl/FTLJITCode.cpp:
  • interpreter/InterpreterInlines.h:
  • jit/ExecutableAllocator.h:
  • jit/JITOperations.cpp:
  • jit/ThunkGenerator.h:
  • jit/ThunkGenerators.h:
  • llint/LLIntOffsetsExtractor.cpp:
  • llint/LLIntPCRanges.h:
  • runtime/JSCPtrTag.h: Added.
  • runtime/NativeFunction.h:
  • runtime/PtrTag.h: Removed.
  • runtime/VMTraps.cpp:

Source/WebCore:

No new tests needed. This is covered by existing tests.

  • cssjit/CSSPtrTag.h:
  • cssjit/SelectorCompiler.h:

(WebCore::SelectorCompiler::ruleCollectorSimpleSelectorCheckerFunction):
(WebCore::SelectorCompiler::querySelectorSimpleSelectorCheckerFunction):
(WebCore::SelectorCompiler::ruleCollectorSelectorCheckerFunctionWithCheckingContext):
(WebCore::SelectorCompiler::querySelectorSelectorCheckerFunctionWithCheckingContext):

Source/WTF:

This is in preparation for doing pointer profiling at the WTF layer as well.
Also deleted an unused ptrTag() function.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/PtrTag.h: Copied from Source/JavaScriptCore/runtime/PtrTag.h.

(WTF::makePtrTagHash):
(JSC::ptrTagName): Deleted.
(JSC::tagForPtr): Deleted.
(JSC::ptrTag): Deleted.
(JSC::tagCodePtr): Deleted.
(JSC::untagCodePtr): Deleted.
(JSC::retagCodePtr): Deleted.
(JSC::removeCodePtrTag): Deleted.
(JSC::tagCFunctionPtr): Deleted.
(JSC::untagCFunctionPtr): Deleted.
(JSC::assertIsCFunctionPtr): Deleted.
(JSC::assertIsNullOrCFunctionPtr): Deleted.
(JSC::assertIsNotTagged): Deleted.
(JSC::assertIsTagged): Deleted.
(JSC::assertIsNullOrTagged): Deleted.
(JSC::assertIsTaggedWith): Deleted.
(JSC::assertIsNullOrTaggedWith): Deleted.

3:27 PM Changeset in webkit [231026] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

WebLoaderStrategy::networkMetricsFromResourceLoadIdentifier should use DoNotProcessIncomingMessagesWhenWaitingForSyncReply
https://bugs.webkit.org/show_bug.cgi?id=184978
<rdar://problem/39667094>

Reviewed by Simon Fraser.

Use DoNotProcessIncomingMessagesWhenWaitingForSyncReply to keep a consistent state after the sync IPC call.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::responseFromResourceLoadIdentifier):
(WebKit::WebLoaderStrategy::networkMetricsFromResourceLoadIdentifier):

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

[iOS] remove media element parameter from MediaElementSession methods
https://bugs.webkit.org/show_bug.cgi?id=184992
<rdar://problem/39731624>

Reviewed by Jon Lee.

No new tests, no behavior change.

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::allowsInlineMediaPlayback const):
(WebCore::MediaControlsHost::userGestureRequired const):

  • accessibility/AccessibilityMediaObject.cpp:

(WebCore::AccessibilityMediaObject::isPlayingInline const):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::parseAttribute):
(WebCore::HTMLMediaElement::prepareForLoad):
(WebCore::HTMLMediaElement::selectMediaResource):
(WebCore::HTMLMediaElement::loadResource):
(WebCore::HTMLMediaElement::canTransitionFromAutoplayToPlay const):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::pause):
(WebCore::HTMLMediaElement::pauseInternal):
(WebCore::HTMLMediaElement::setVolume):
(WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack):
(WebCore::HTMLMediaElement::sourceWasAdded):
(WebCore::HTMLMediaElement::mediaEngineWasUpdated):
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged):
(WebCore::HTMLMediaElement::updatePlayState):
(WebCore::HTMLMediaElement::clearMediaPlayer):
(WebCore::HTMLMediaElement::resume):
(WebCore::HTMLMediaElement::webkitShowPlaybackTargetPicker):
(WebCore::HTMLMediaElement::addEventListener):
(WebCore::HTMLMediaElement::removeEventListener):
(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent):
(WebCore::HTMLMediaElement::exitFullscreen):
(WebCore::HTMLMediaElement::configureMediaControls):
(WebCore::HTMLMediaElement::createMediaPlayer):
(WebCore::HTMLMediaElement::mediaPlayerIsFullscreenPermitted const):
(WebCore::HTMLMediaElement::updateMediaState):
(WebCore::HTMLMediaElement::mediaState const):
(WebCore::HTMLMediaElement::allowsMediaDocumentInlinePlaybackChanged):
(WebCore::HTMLMediaElement::updateShouldPlay):

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::parseAttribute):
(WebCore::HTMLVideoElement::supportsFullscreen const):
(WebCore::HTMLVideoElement::webkitEnterFullscreen):
(WebCore::HTMLVideoElement::webkitWirelessVideoPlaybackDisabled const):
(WebCore::HTMLVideoElement::webkitSupportsPresentationMode const):
(WebCore::HTMLVideoElement::setFullscreenMode):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::playbackPermitted const):
(WebCore::MediaElementSession::dataLoadingPermitted const):
(WebCore::MediaElementSession::fullscreenPermitted const):
(WebCore::MediaElementSession::pageAllowsDataLoading const):
(WebCore::MediaElementSession::pageAllowsPlaybackAfterResuming const):
(WebCore::MediaElementSession::canShowControlsManager const):
(WebCore::MediaElementSession::showPlaybackTargetPicker):
(WebCore::MediaElementSession::hasWirelessPlaybackTargets const):
(WebCore::MediaElementSession::wirelessVideoPlaybackDisabled const):
(WebCore::MediaElementSession::setWirelessVideoPlaybackDisabled):
(WebCore::MediaElementSession::setHasPlaybackTargetAvailabilityListeners):
(WebCore::MediaElementSession::mediaStateDidChange):
(WebCore::MediaElementSession::effectivePreloadForElement const):
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback const):
(WebCore::MediaElementSession::allowsAutomaticMediaDataLoading const):
(WebCore::MediaElementSession::mediaEngineUpdated):
(WebCore::MediaElementSession::allowsPictureInPicture const):

  • html/MediaElementSession.h:
  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::wirelessVideoPlaybackDisabled const):

3:10 PM Changeset in webkit [231024] by jiewen_tan@apple.com
  • 32 edits
    1 add in trunk

Remove access to keychain from the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=184428
<rdar://problem/13150903>

Reviewed by Brent Fulgham.

Source/WebCore:

Part 2.

This patch move the operation of HTMLKeygenElement from WebContent Process to UI Process.
Function signedPublicKeyAndChallengeString is therefore marked as WEBCORE_EXPORT. Also, a
localized string is marked WEBCORE_EXPORT as well to support the API test.

Covered by existing tests and api tests.

  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::signedPublicKeyAndChallengeString):

  • dom/Document.h:
  • html/HTMLKeygenElement.cpp:

(WebCore::HTMLKeygenElement::appendFormData):

  • page/ChromeClient.h:
  • platform/LocalizedStrings.h:
  • platform/SSLKeyGenerator.h:

Source/WebKit:

This patch does the followings:

  1. Added necessary support to move HTMLKeygenElement's operation from WebContent Process to UI Process.
  2. Craft new SPI copySignedPublicKeyAndChallengeString to supply HTMLKeygenElement with dummy data such

that WebKitTestRunner tests will not modify the underlying key store (e.g., the macOS Keychain).

  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::signedPublicKeyAndChallengeString):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageNavigationClient):

  • UIProcess/API/C/WKPageNavigationClient.h:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::signedPublicKeyAndChallengeString):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::signedPublicKeyAndChallengeString):

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

(WebKit::WebChromeClient::signedPublicKeyAndChallengeString const):

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Source/WebKitLegacy/mac:

This patch does the followings:

  1. Added necessary support to move HTMLKeygenElement's operation from WebCore space to Client space.
  2. Craft new SPI signedPublicKeyAndChallengeStringForWebView to supply HTMLKeygenElement with dummy data

such that DumpRenderTree tests will not modify the underlying key store (e.g., the macOS Keychain).

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

(WebChromeClient::signedPublicKeyAndChallengeString const):

  • WebView/WebUIDelegatePrivate.h:

Tools:

This patch does the followings:

  1. Added an API test for this patch.
  2. Instrument DumpRenderTree and WebKitTestRunner to take advantages of new SPIs.
  • DumpRenderTree/mac/UIDelegate.mm:

(-[UIDelegate signedPublicKeyAndChallengeStringForWebView:]):

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/SSLKeyGenerator.mm: Added.

(TestWebKitAPI::SSLKeyGeneratorTest::SetUp):
(TestWebKitAPI::SSLKeyGeneratorTest::TearDown):
(TestWebKitAPI::TEST_F):

  • WebKitTestRunner/TestController.cpp:

(WTR::copySignedPublicKeyAndChallengeString):
(WTR::TestController::createOtherPage):
(WTR::TestController::createWebViewWithOptions):

LayoutTests:

Alter the layout test to match dummy data supplied by the test runners.
Modify expectations as well.

  • http/tests/misc/resources/check-keygen-post.php:
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
3:07 PM Changeset in webkit [231023] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.2.6

Tag Safari-605.2.6.

2:23 PM Changeset in webkit [231022] by Wenson Hsieh
  • 16 edits
    2 adds in trunk

[Extra zoom mode] The search field on www.bing.com is missing label text
https://bugs.webkit.org/show_bug.cgi?id=184975
<rdar://problem/39723081>

Reviewed by Tim Horton.

Source/WebKit:

Adds support for displaying the "aria-label" attribute as the input view's label text in extra zoom mode. Also
adds support for grabbing the input label's text for testing.

Test: fast/forms/extrazoom/form-control-label-text.html

  • Shared/AssistedNodeInformation.cpp:

(WebKit::AssistedNodeInformation::encode const):
(WebKit::AssistedNodeInformation::decode):

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

(-[WKWebView formInputLabel]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView formInputLabel]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getAssistedNodeInformation):

Tools:

Adds UIScriptController.formInputLabel, which asynchronously requests the input label text for the currently
focused element in extra zoom mode.

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::formInputLabel const):

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

(WTR::UIScriptController::formInputLabel const):

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

(WTR::UIScriptController::formInputLabel const):

LayoutTests:

Adds a layout test to check that the label text of the focused form control in the input view can be sourced
from (1) the "placeholder" attribute, (2) the "title" attribute, (3) the "aria-label" attribute, or (4) an
associated label element.

  • fast/forms/extrazoom/form-control-label-text-expected.txt: Added.
  • fast/forms/extrazoom/form-control-label-text.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.formInputLabel):
(window.UIHelper):

2:16 PM Changeset in webkit [231021] by Michael Catanzaro
  • 2 edits in trunk/Tools

[WPE] Should load injected bundle from builddir in developer builds
https://bugs.webkit.org/show_bug.cgi?id=184983

Reviewed by Carlos Alberto Lopez Perez.

Set WEBKIT_INJECTED_BUNDLE_PATH when running WPE MiniBrowser.

  • Scripts/run-minibrowser:
2:13 PM Changeset in webkit [231020] by Michael Catanzaro
  • 2 edits in trunk/Tools

[WPE] libgstggtk.so broken in jhbuild environment
https://bugs.webkit.org/show_bug.cgi?id=184984

Reviewed by Carlos Alberto Lopez Perez.

Don't pass --enable-glx=no when building libepoxy, to ensure it's compatible with
gst-plugins-good.

  • wpe/jhbuild.modules:
1:48 PM Changeset in webkit [231019] by rniwa@webkit.org
  • 12 edits in trunk

PSON: Don't create a new process when navigating to a blob URL, data URL, and about:blank
https://bugs.webkit.org/show_bug.cgi?id=184962

Reviewed by Youenn Fablet.

Source/WebCore:

Added NavigationAction::treatAsSameOriginNavigation, which signifies WebKit code to avoid creating
a new WebContent process when navigating to a blob URL, data URL, and about:blank.

Tests: ProcessSwap.SameOriginBlobNavigation

ProcessSwap.CrossOriginBlobNavigation
ProcessSwap.NavigateToAboutBlank
ProcessSwap.NavigateToDataURL

  • loader/NavigationAction.cpp:

(WebCore::treatAsSameOriginNavigation):

  • loader/NavigationAction.h:

(WebCore::NavigationAction::treatAsSameOriginNavigation const):

Source/WebKit:

Don't create a new WebContent process when navigating to a blob object URL since doing so
can result in a race condition in which the blog URL is removed from the blob registry of
the network process by the time the navigation gets commited. This causes a failure in
fast/dom/HTMLAnchorElement/anchor-download-unset.html and oher layout tests.

In the future, the network process should verify that a given WebContent process has access
to a given blob URL. For now, we rely on WebContent process to tell us whether it can
navigate to a given blob URL or not.

  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::encode const): Encode newly added treatAsSameOriginNavigation.
(WebKit::NavigationActionData::decode): Ditto for decoding.

  • Shared/NavigationActionData.h:

(WebKit::NavigationActionData::treatAsSameOriginNavigation): Added.

  • UIProcess/API/APINavigation.h:

(API::Navigation::setTreatAsSameOriginNavigation): Added.
(API::Navigation::treatAsSameOriginNavigation const): Added.

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction): Use the current process when
treatAsSameOriginNavigation is set to true; i.e. when navigating to a blob URL the current
document has access.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigation):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

Tools:

Added four test cases for navigating to a blob URL, data URL, and about:blank with process-swap-on-navigation turned on.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(ProcessSwap.SameOriginBlobNavigation): Added.
(ProcessSwap.CrossOriginBlobNavigation): Added.
(ProcessSwap.NavigateToAboutBlank): Added.
(ProcessSwap.NavigateToDataURL): Added.

1:43 PM Changeset in webkit [231018] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

getUnlinkedGlobalFunctionExecutable should only save things to the code cache if the option is set
https://bugs.webkit.org/show_bug.cgi?id=184998

Reviewed by Saam Barati.

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getUnlinkedGlobalFunctionExecutable):

1:35 PM Changeset in webkit [231017] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] Implement Layout::BlockContainer functions.
https://bugs.webkit.org/show_bug.cgi?id=184994

Reviewed by Antti Koivisto.

  • layout/layouttree/LayoutBlockContainer.cpp:

(WebCore::Layout::BlockContainer::BlockContainer):
(WebCore::Layout::BlockContainer::establishesInlineFormattingContext const):

1:34 PM Changeset in webkit [231016] by Megan Gardner
  • 4 edits in trunk

Don't activate Selection Assistant unless it is actually needed.
https://bugs.webkit.org/show_bug.cgi?id=184944
<rdar://problem/39469671>

Reviewed by Tim Horton.

Source/WebKit:

Don't activate the selection unless we need to. Activating on init is overeager and allowing Javascript to
activate selections without user input.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView useSelectionAssistantWithGranularity:]):

LayoutTests:

Turning on previously flakey tests that are fixed with this change.

  • platform/ios-wk2/TestExpectations:
1:31 PM Changeset in webkit [231015] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

Add missing scope release to functionProtoFuncToString
https://bugs.webkit.org/show_bug.cgi?id=184995

Reviewed by Saam Barati.

JSTests:

  • stress/function-toString-arrow.js: Added.

(async):

Source/JavaScriptCore:

  • runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncToString):

1:30 PM WPE edited by Michael Catanzaro
Fix (diff)
1:29 PM WPE edited by Michael Catanzaro
Update page (diff)
1:13 PM Changeset in webkit [231014] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

Fix entitlements and sandbox configurations in WebKit after r230778
https://bugs.webkit.org/show_bug.cgi?id=184960
<rdar://problem/39662827>

Reviewed by Tim Horton.

Build fixes for watchOS and tvOS after r230778.

  • Configurations/BaseXPCService.xcconfig:
  • Configurations/NetworkService.xcconfig:
  • Configurations/WebContentService.xcconfig:
1:09 PM Changeset in webkit [231013] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] Implement Layout::Container functions.
https://bugs.webkit.org/show_bug.cgi?id=184988

Reviewed by Antti Koivisto.

  • layout/layouttree/LayoutContainer.cpp:

(WebCore::Layout::Container::Container):
(WebCore::Layout::Container::firstInFlowChild const):
(WebCore::Layout::Container::firstInFlowOrFloatingChild const):
(WebCore::Layout::Container::lastInFlowChild const):
(WebCore::Layout::Container::lastInFlowOrFloatingChild const):
(WebCore::Layout::Container::setFirstChild):
(WebCore::Layout::Container::setLastChild):
(WebCore::Layout::Container::setOutOfFlowDescendants):

  • layout/layouttree/LayoutContainer.h:

(WebCore::Layout::Container::firstChild const):
(WebCore::Layout::Container::lastChild const):
(WebCore::Layout::Container::hasChild const):
(WebCore::Layout::Container::hasInFlowChild const):
(WebCore::Layout::Container::hasInFlowOrFloatingChild const):
(WebCore::Layout::Container::outOfFlowDescendants):

12:58 PM Changeset in webkit [231012] by Michael Catanzaro
  • 3 edits in trunk

[CMake] Some options should be marked as advanced
https://bugs.webkit.org/show_bug.cgi?id=184972

Reviewed by Konstantin Tokarev.

  • Source/cmake/FindLibGcrypt.cmake:
  • Source/cmake/FindWebP.cmake:
12:55 PM Changeset in webkit [231011] by Yusuke Suzuki
  • 3 edits in trunk/Source/JavaScriptCore

REGRESSION(r230748) [GTK][ARM] no matching function for call to 'JSC::CCallHelpers::swap(JSC::ARMRegisters::FPRegisterID&, JSC::ARMRegisters::FPRegisterID&)'
https://bugs.webkit.org/show_bug.cgi?id=184730

Reviewed by Mark Lam.

Add swap(FPRegisterID, FPRegisterID) implementation using ARMRegisters::SD0 (temporary register in MacroAssemblerARM).
And we now use dataTempRegister, addressTempRegister, and fpTempRegister instead of using S0, S1, and SD0.

We also change swap(RegisterID, RegisterID) implementation to use moves and temporaries simply. This is aligned to
ARMv7 implementation.

  • assembler/ARMAssembler.h:
  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::add32):
(JSC::MacroAssemblerARM::and32):
(JSC::MacroAssemblerARM::lshift32):
(JSC::MacroAssemblerARM::mul32):
(JSC::MacroAssemblerARM::or32):
(JSC::MacroAssemblerARM::rshift32):
(JSC::MacroAssemblerARM::urshift32):
(JSC::MacroAssemblerARM::sub32):
(JSC::MacroAssemblerARM::xor32):
(JSC::MacroAssemblerARM::load8):
(JSC::MacroAssemblerARM::abortWithReason):
(JSC::MacroAssemblerARM::load32WithAddressOffsetPatch):
(JSC::MacroAssemblerARM::store32WithAddressOffsetPatch):
(JSC::MacroAssemblerARM::store8):
(JSC::MacroAssemblerARM::store32):
(JSC::MacroAssemblerARM::push):
(JSC::MacroAssemblerARM::swap):
(JSC::MacroAssemblerARM::branch8):
(JSC::MacroAssemblerARM::branchPtr):
(JSC::MacroAssemblerARM::branch32):
(JSC::MacroAssemblerARM::branch32WithUnalignedHalfWords):
(JSC::MacroAssemblerARM::branchTest8):
(JSC::MacroAssemblerARM::branchTest32):
(JSC::MacroAssemblerARM::jump):
(JSC::MacroAssemblerARM::branchAdd32):
(JSC::MacroAssemblerARM::mull32):
(JSC::MacroAssemblerARM::branchMul32):
(JSC::MacroAssemblerARM::patchableBranch32):
(JSC::MacroAssemblerARM::nearCall):
(JSC::MacroAssemblerARM::compare32):
(JSC::MacroAssemblerARM::compare8):
(JSC::MacroAssemblerARM::test32):
(JSC::MacroAssemblerARM::test8):
(JSC::MacroAssemblerARM::add64):
(JSC::MacroAssemblerARM::load32):
(JSC::MacroAssemblerARM::call):
(JSC::MacroAssemblerARM::branchPtrWithPatch):
(JSC::MacroAssemblerARM::branch32WithPatch):
(JSC::MacroAssemblerARM::storePtrWithPatch):
(JSC::MacroAssemblerARM::loadDouble):
(JSC::MacroAssemblerARM::storeDouble):
(JSC::MacroAssemblerARM::addDouble):
(JSC::MacroAssemblerARM::divDouble):
(JSC::MacroAssemblerARM::subDouble):
(JSC::MacroAssemblerARM::mulDouble):
(JSC::MacroAssemblerARM::convertInt32ToDouble):
(JSC::MacroAssemblerARM::branchDouble):
(JSC::MacroAssemblerARM::branchTruncateDoubleToInt32):
(JSC::MacroAssemblerARM::truncateDoubleToInt32):
(JSC::MacroAssemblerARM::truncateDoubleToUint32):
(JSC::MacroAssemblerARM::branchConvertDoubleToInt32):
(JSC::MacroAssemblerARM::branchDoubleNonZero):
(JSC::MacroAssemblerARM::branchDoubleZeroOrNaN):
(JSC::MacroAssemblerARM::call32):
(JSC::MacroAssemblerARM::internalCompare32):

12:48 PM Changeset in webkit [231010] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix after r231008.

  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::create): Forgot to remove an unneeded constructor argument.

12:35 PM Changeset in webkit [231009] by Ross Kirsling
  • 4 edits in trunk

[WinCairo] Fix js/regexp-unicode.html crash.
https://bugs.webkit.org/show_bug.cgi?id=184891

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

On Win64, register RDI is "considered nonvolatile and must be saved and restored by a function that uses [it]".
RDI is being used as a scratch register for JIT_UNICODE_EXPRESSIONS, not just YARR_JIT_ALL_PARENS_EXPRESSIONS.

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::generateEnter):
(JSC::Yarr::YarrGenerator::generateReturn):
Unconditionally save and restore RDI on 64-bit Windows.

LayoutTests:

  • platform/wincairo/TestExpectations:
12:16 PM Changeset in webkit [231008] by Brent Fulgham
  • 20 edits
    2 adds in trunk

Don't Block First Party Cookies on Redirects
https://bugs.webkit.org/show_bug.cgi?id=184948
<rdar://problem/39534099>

Reviewed by Youenn Fablet.

Source/WebCore:

The Navigation scheduler looses the 'requester' value when performing a ScheduledRedirect.

Test: http/tests/resourceLoadStatistics/do-not-block-top-level-navigation-redirect.html

  • loader/NavigationScheduler.cpp:

Source/WebKit:

Top-level navigations should not be subject to cookie blocking behavior. When performing redirects for main frame
navigation we are blocking cookies, leading to site breakage.

We need to keep track of which NetworkDataTasks are due to a main frame navigation. When a redirect is performed
on the main frame, we should treat the new origin as the 'first party for cookies' and avoid blocking cookies for
that URL.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::preconnectTo): Use the correct parameter type. We actually serialize
NetworkResourceLoadParameters over IPC, so we should get access to all the members of this child class.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::create): Pass new 'loadIsForNavigation' flag to create methods.
(WebKit::NetworkDataTask::NetworkDataTask): Capture 'loadIsForNavigation' in constructor.

  • NetworkProcess/NetworkDataTask.h:

(WebKit::NetworkDataTask::isTopLevelNavigation const): Added.

  • NetworkProcess/NetworkDataTaskBlob.cpp:

(WebKit::NetworkDataTaskBlob::NetworkDataTaskBlob): Accept new constructor argument.

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

(WebKit::NetworkLoad::willPerformHTTPRedirection): Retain requester value from old request during redirect.

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(NetworkResourceLoadParameters::decode): Update to pass new flag.
(NetworkResourceLoadParameters::encode): Ditto.

  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/capture/NetworkDataTaskReplay.cpp:

(WebKit::NetworkCapture::NetworkDataTaskReplay::NetworkDataTaskReplay): Accept new constructor argument.

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

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): Accept new constructor argument.
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

  • NetworkProcess/curl/NetworkDataTaskCurl.cpp:

(WebKit::NetworkDataTaskCurl::NetworkDataTaskCurl): Accept new constructor argument.

  • NetworkProcess/curl/NetworkDataTaskCurl.h:
  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::NetworkDataTaskSoup): Accept new constructor argument.

  • NetworkProcess/soup/NetworkDataTaskSoup.h:

LayoutTests:

  • http/tests/resourceLoadStatistics/do-not-block-top-level-navigation-redirect-expected.txt: Added.
  • http/tests/resourceLoadStatistics/do-not-block-top-level-navigation-redirect.html: Added.
11:57 AM Changeset in webkit [231007] by Ryan Haddad
  • 2 edits
    4 adds in trunk/LayoutTests

Unreviewed test gardening, rebaseline tests for iOS.

  • platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/ios/media/modern-media-controls/compact-media-controls/compact-media-controls-constructor-expected.txt: Added.
  • platform/ios/media/modern-media-controls/compact-media-controls/compact-media-controls-layout-expected.txt: Added.
11:54 AM Changeset in webkit [231006] by youenn@apple.com
  • 6 edits in trunk

CachedRawResource is not handling incremental data computation correctly
https://bugs.webkit.org/show_bug.cgi?id=184936

Reviewed by Chris Dumez.

Source/WebCore:

Covered by updated test.

The previous logic was handling the case of only one additional segment being added to the SharedBuffer.
In service worker case, a SharedBuffer may contain more than one segment.
This is fixed by iterating until all new data is sent to clients.

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::updateBuffer):

LayoutTests:

  • http/tests/workers/service/resources/service-worker-fetch-worker.js:

(stringToBuffer):
(event.event.request.url.endsWith):

  • http/tests/workers/service/resources/service-worker-fetch.js:

(async.test):

  • http/tests/workers/service/service-worker-fetch.https-expected.txt:
11:51 AM Changeset in webkit [231005] by youenn@apple.com
  • 8 edits
    4 adds in trunk

Ensure DNT is set for redirections handled in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=184890

Reviewed by Ryosuke Niwa.

Source/WebKit:

Compute whether DNT header should be set on requests based on:

  • request has a DNT header
  • session is ephemeral (aka private browsing mode)

In both cases, we ensure a DNT header is added for any request triggered by a redirection.

Covered by http/wpt/fetch/dnt-header-after-redirection.html.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::check):
(WebKit::NetworkLoadChecker::prepareRedirectedRequest):

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

(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRequest):

  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::willPerformHTTPRedirection):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

LayoutTests:

  • http/wpt/fetch/dnt-header-after-redirection-expected.txt: Added.
  • http/wpt/fetch/dnt-header-after-redirection.html: Added.
  • http/wpt/fetch/resources/dnt-status.py: Added.
  • http/wpt/fetch/resources/redirect.py: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
11:41 AM Changeset in webkit [231004] by Michael Catanzaro
  • 16 edits in trunk

[WPE] Remove deprecated functions and properties from the API
https://bugs.webkit.org/show_bug.cgi?id=179295

Reviewed by Žan Doberšek.

Source/WebKit:

  • UIProcess/API/glib/WebKitCookieManager.cpp:
  • UIProcess/API/glib/WebKitFormSubmissionRequest.cpp:
  • UIProcess/API/glib/WebKitNavigationPolicyDecision.cpp:

(webkitNavigationPolicyDecisionGetProperty):
(webkit_navigation_policy_decision_class_init):

  • UIProcess/API/glib/WebKitSettings.cpp:

(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextGetProperty):
(webkitWebContextSetProperty):
(webkit_web_context_class_init):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_class_init):
(webkitWebViewHandleAuthenticationChallenge):
(webkitWebViewWebProcessTerminated):

  • UIProcess/API/wpe/WebKitCookieManager.h:
  • UIProcess/API/wpe/WebKitFormSubmissionRequest.h:
  • UIProcess/API/wpe/WebKitNavigationPolicyDecision.h:
  • UIProcess/API/wpe/WebKitSettings.h:
  • UIProcess/API/wpe/WebKitWebContext.h:

Tools:

  • TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:

(testWebViewAuthenticationStorage): Disable this test for now. It will require some effort
to rewrite LoadTrackingTest to not require the web view at construction time.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:

(testWebKitSettings): Don't test private browsing setting, which is gone.

  • TestWebKitAPI/glib/CMakeLists.txt: Disable TestCookieManager for now.
11:35 AM Changeset in webkit [231003] by aestes@apple.com
  • 5 edits
    1 add in trunk

[Mac] Number of drop items is always 0 when performing a DHTML drag
https://bugs.webkit.org/show_bug.cgi?id=184943

Reviewed by Ryosuke Niwa.

Source/WebCore:

New API test: DragAndDropPasteboardTests.NumberOfValidItemsForDrop

DragController tracks the number of items to be accepted by a file input element, taking
into account whether the control is disabled or accepts multiple files. When this number
changes, WebKit informs the NSDraggingInfo-conforming object passed to -draggingUpdated by
calling -setNumberOfValidItemsForDrop:. This number is presented to the user in a badge
rendered next to the dragging item thumbnails.

When performing a DHTML drag, we don't know how many items the page will accept, so prior
to this patch we would render a "0" in the badge. This is misleading, because the page is
more likely to accept all the items (or at least one of them) rather than none of them.

Let's do the straightforward thing and set numberOfValidItemsForDrop to equal the number of
files in the drag operation when performing a DHTML file drag.

  • page/DragController.cpp:

(WebCore::DragController::tryDocumentDrag):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/DragAndDropPasteboardTests.mm:

(-[DragInfo numberOfValidItemsForDrop]):
(-[DragInfo setNumberOfValidItemsForDrop:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/full-page-dropzone.html: Added.
11:27 AM Changeset in webkit [231002] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Set route sharing policy when setting audio session category
https://bugs.webkit.org/show_bug.cgi?id=184979
<rdar://problem/39709577>

Reviewed by Jer Noble.

  • platform/audio/ios/AudioSessionIOS.mm:

(WebCore::AudioSession::setCategory):

11:05 AM Changeset in webkit [231001] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Curl] Fix wrong schema checking on r230973
https://bugs.webkit.org/show_bug.cgi?id=184977

Did write a wrong condition when making a string.

Patch by Basuke Suzuki <Basuke Suzuki> on 2018-04-25
Reviewed by Alex Christensen.

No new tests because test interface is not ready.

  • platform/network/curl/CurlProxySettings.cpp:

(WebCore::createProxyUrl):

10:57 AM Changeset in webkit [231000] by youenn@apple.com
  • 144 edits in trunk

Make DocumentThreadableLoader error logging more consistent
https://bugs.webkit.org/show_bug.cgi?id=184853

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/XMLHttpRequest/access-control-basic-cors-safelisted-request-headers-expected.txt:
  • web-platform-tests/XMLHttpRequest/access-control-basic-denied-expected.txt:
  • web-platform-tests/XMLHttpRequest/access-control-basic-get-fail-non-simple-expected.txt:
  • web-platform-tests/XMLHttpRequest/access-control-basic-non-cors-safelisted-content-type-expected.txt:
  • web-platform-tests/XMLHttpRequest/access-control-basic-post-with-non-cors-safelisted-content-type-expected.txt:
  • web-platform-tests/XMLHttpRequest/access-control-basic-preflight-denied-expected.txt:
  • web-platform-tests/XMLHttpRequest/access-control-preflight-request-invalid-status-301-expected.txt:
  • web-platform-tests/XMLHttpRequest/access-control-preflight-request-invalid-status-400-expected.txt:
  • web-platform-tests/XMLHttpRequest/access-control-preflight-request-invalid-status-501-expected.txt:
  • web-platform-tests/XMLHttpRequest/access-control-sandboxed-iframe-denied-expected.txt:
  • web-platform-tests/XMLHttpRequest/access-control-sandboxed-iframe-denied-without-wildcard-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-non-same-origin-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-non-same-origin.sub-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-same-origin.any-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-about.any-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-about.any.worker-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-blob-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-others-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-basic.any-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-multiple-origins-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-origin.any.worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-redirect.any.worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-star.any-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-star.any.worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-status.any.worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight.any.worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-preflight.any.worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-schemes-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-to-dataurl-expected.txt:
  • web-platform-tests/fetch/api/request/request-keepalive-quota-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-fallback.https-expected.txt:

Source/WebCore:

Covered by rebased tests.
Make EventSource, XHR and Fetch log error messages consistently.
This patch also prepares consistent error logging between WK1 and WK2 as WK2 NetworkProcess
will issue more and more errors in places different from WK1.
This is the reason for SubresourceLoader changes in this patch and DTL/didFail/preflightFailure changes.

Update ImageLoader error message to be more general than CORS.

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::doPreflight): Add some more logging for consistency between WK1 and WK2.
(WebCore::CrossOriginPreflightChecker::validatePreflightResponse): Ditto.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::didFail):
(WebCore::DocumentThreadableLoader::preflightFailure):
(WebCore::DocumentThreadableLoader::logErrorAndFail):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::notifyFinished):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didFail):

  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoader::logError):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

  • loader/cache/CachedResourceRequestInitiators.cpp:

(WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):

  • loader/cache/CachedResourceRequestInitiators.h:
  • page/EventSource.cpp:

(WebCore::EventSource::connect):
(WebCore::EventSource::didFail):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::didFail):

LayoutTests:

Removing JS console log output for some tests.
Updating tests according modified error logging.

  • TestExpectations:
  • http/tests/security/bypassing-cors-checks-for-extension-urls-expected.txt:
  • http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked-expected.txt:
  • http/tests/security/cross-origin-cached-images-expected.txt:
  • http/tests/security/cross-origin-cached-images-parallel-expected.txt:
  • http/tests/security/img-with-failed-cors-check-fails-to-load-expected.txt:
  • http/tests/security/load-image-after-redirection-2-expected.txt:
  • http/tests/security/load-image-after-redirection-expected.txt:
  • http/tests/security/mixedContent/insecure-xhr-in-main-frame-expected.txt:
  • http/tests/security/video-poster-cross-origin-crash-expected.txt:
  • http/tests/security/video-poster-cross-origin-crash2-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
  • http/tests/xmlhttprequest/access-control-basic-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-basic-denied-preflight-cache-expected.txt:
  • http/tests/xmlhttprequest/access-control-basic-get-fail-non-simple-expected.txt:
  • http/tests/xmlhttprequest/access-control-basic-non-simple-deny-cached-expected.txt:
  • http/tests/xmlhttprequest/access-control-basic-post-fail-non-simple-content-type-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-async-header-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-async-method-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-async-not-supported-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-sync-header-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-sync-method-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-preflight-sync-not-supported-expected.txt:
  • http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-without-wildcard-expected.txt:
  • http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight-expected.txt:
  • http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
  • http/tests/xmlhttprequest/cross-site-denied-response-sync-2-expected.txt:
  • http/tests/xmlhttprequest/cross-site-denied-response-sync-expected.txt:
  • http/tests/xmlhttprequest/origin-exact-matching-expected.txt:
  • http/tests/xmlhttprequest/origin-whitelisting-https-expected.txt:
  • http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains-expected.txt:
  • http/tests/xmlhttprequest/origin-whitelisting-removal-expected.txt:
  • http/tests/xmlhttprequest/post-blob-content-type-sync-expected.txt:
  • http/tests/xmlhttprequest/redirect-cross-origin-post-expected.txt:
  • http/tests/xmlhttprequest/redirect-cross-origin-post-sync-expected.txt:
  • http/tests/xmlhttprequest/redirect-cross-origin-sync-expected.txt:
  • http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt:
  • http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt:
  • http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-sync-expected.txt:
  • http/tests/xmlhttprequest/simple-cross-origin-denied-events-sync-expected.txt:
  • http/tests/xmlhttprequest/simple-cross-origin-progress-events-expected.txt:
  • http/tests/xmlhttprequest/upload-request-error-event-order-expected.txt:
  • http/tests/xmlhttprequest/workers/access-control-basic-get-fail-non-simple-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-sync-no-progress-events-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt:
  • platform/mac-wk1/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
  • platform/mac-wk1/http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt:
  • platform/mac-wk1/http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
  • platform/mac-wk1/http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/access-control-and-redirects-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-main-frame-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-iframe-expected.txt:
  • platform/win/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
  • platform/win/http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt:
  • platform/win/http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
  • platform/win/http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt:
10:49 AM Changeset in webkit [230999] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC] Implement Layout::Box functions.
https://bugs.webkit.org/show_bug.cgi?id=184974

Reviewed by Antti Koivisto.

  • layout/layouttree/LayoutBlockContainer.h:
  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::Box):
(WebCore::Layout::Box::~Box):
(WebCore::Layout::Box::establishesFormattingContext const):
(WebCore::Layout::Box::establishesBlockFormattingContext const):
(WebCore::Layout::Box::isRelativelyPositioned const):
(WebCore::Layout::Box::isStickyPositioned const):
(WebCore::Layout::Box::isAbsolutelyPositioned const):
(WebCore::Layout::Box::isFixedPositioned const):
(WebCore::Layout::Box::isFloatingPositioned const):
(WebCore::Layout::Box::containingBlock const):
(WebCore::Layout::Box::isDescendantOf const):
(WebCore::Layout::Box::isAnonymous const):
(WebCore::Layout::Box::isInlineBlockBox const):
(WebCore::Layout::Box::isBlockLevelBox const):
(WebCore::Layout::Box::isInlineLevelBox const):
(WebCore::Layout::Box::isBlockContainerBox const):
(WebCore::Layout::Box::isInitialContainingBlock const):
(WebCore::Layout::Box::nextInFlowSibling const):
(WebCore::Layout::Box::nextInFlowOrFloatingSibling const):
(WebCore::Layout::Box::previousInFlowSibling const):
(WebCore::Layout::Box::previousInFlowOrFloatingSibling const):
(WebCore::Layout::Box::setParent):
(WebCore::Layout::Box::setNextSibling):
(WebCore::Layout::Box::setPreviousSibling):
(WebCore::Layout::Box::isOverflowVisible const):

  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::establishesInlineFormattingContext const):
(WebCore::Layout::Box::isInFlow const):
(WebCore::Layout::Box::isPositioned const):
(WebCore::Layout::Box::isInFlowPositioned const):
(WebCore::Layout::Box::isOutOfFlowPositioned const):
(WebCore::Layout::Box::isFloatingOrOutOfFlowPositioned const):
(WebCore::Layout::Box::parent const):
(WebCore::Layout::Box::nextSibling const):
(WebCore::Layout::Box::previousSibling const):
(WebCore::Layout::Box::weakPtrFactory const):

  • layout/layouttree/LayoutContainer.h:
  • layout/layouttree/LayoutInlineBox.h:
  • layout/layouttree/LayoutInlineContainer.h:
9:35 AM Changeset in webkit [230998] by Jonathan Bedard
  • 6 edits
    5 adds in trunk/Tools

API test harness should be Python
https://bugs.webkit.org/show_bug.cgi?id=181043
<rdar://problem/36164410>

Reviewed by David Kilzer.

Run API tests from a Python script rather than Perl. The Python API tests have
the same structure as the layout tests.

  • Scripts/run-api-tests: Changed from Perl to Python.
  • Scripts/webkitpy/api_tests: Added.
  • Scripts/webkitpy/api_tests/init.py: Added.
  • Scripts/webkitpy/api_tests/manager.py: Added.

(Manager):
(Manager.init):
(Manager._test_list_from_output): Construct a list of tests from the output of
TestWTF and TestWebKitAPI.
(Manager._find_test_subset): Given a list of all possible tests and command line
arguments, return a list of tests which match the provided arguments.
(Manager._collect_tests): Run TestWTF and TestWebKitAPI with --gtest_list_tests
to determine which tests will be run.
(Manager._print_test_result): Formatted print of a test with it's output.
(Manager._print_tests_result_with_status): Print all tests and output for tests
which ran with a specified exit status.
(Manager.run): Collect all tests, run them and then print results from the run.

  • Scripts/webkitpy/api_tests/run_api_tests.py: Added.

(main): Parse arguments, construct a port, early exit for illegal ports and
then run tests.
(run): Setup logging and printing before using the Manager to run tests.
(parse_args): Use argparse to define all options used by run-api-tests.

  • Scripts/webkitpy/api_tests/runner.py: Added.

(Runner):
(Runner.init):
(Runner._shard_tests): Split tests so that each suite runs together.
(Runner.command_for_port): Run a command on the device specified by the given
port object. Once <https://bugs.webkit.org/show_bug.cgi?id=175204> is completed,
this function would be entirely replaced by the server_process factory owned
by the port object.
(Runner.run): Run all shards in the message_pool.
(Runner.handle): Handle reports from child processes.
(Runner.result_map_by_status): Return a mapping of tests to output for tests
which exit with a specific status.
(_Worker):
(_Worker.init):
(_Worker._filter_noisy_output): Filter out objc warnings since these polite the log.
(_Worker._run_single_test): Runs a single test in a single child process.
(_Worker._run_shard_with_binary): Attempts to run a group of tests in the same
child process. If this technique fails, the remaining tests are run singly.
(_Worker.handle): Run the specified shard.

  • Scripts/webkitpy/port/base.py:

(Port):
(Port.check_api_test_build): Check if TestWTF and TestWebKitAPI are built.
(Port.environment_for_api_tests): Return the environment needed to run
the TestWebKitAPI binary.
(Port. path_to_api_test_binaries): Return a list of the path to all binaries
used when running API tests.
(Port._build_api_tests): Build TestWTF and TestWebKitAPI if required.

  • Scripts/webkitpy/port/mac.py:

(MacPort.environment_for_api_tests): Enable GuardMalloc for API tests.

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess.pop_all_buffered_stdout):

9:26 AM Changeset in webkit [230997] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

Unreviewed, silence -Wreturn-type warning
https://bugs.webkit.org/show_bug.cgi?id=184560

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::shouldCancelCrossOriginLoad):

9:23 AM Changeset in webkit [230996] by Michael Catanzaro
  • 6 edits in trunk

[GTK] Miscellaneous build cleanups
https://bugs.webkit.org/show_bug.cgi?id=184399

Reviewed by Žan Doberšek.

.:

  • Source/cmake/OptionsGTK.cmake:

Source/JavaScriptCore:

  • PlatformGTK.cmake:

Source/WebKit:

  • PlatformGTK.cmake:
8:46 AM Changeset in webkit [230995] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] Crash under WebCore::SimpleLineLayout::generateLineBoxTree
https://bugs.webkit.org/show_bug.cgi?id=184953

This is possibly a MSVC compiler bug, since a simple rearrangement of the code fixes the crash.
The crash is only happening in release builds, which also is an indication of this being a
compiler issue.

Reviewed by Zalan Bujtas.

No new tests, covered by existing tests.

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::generateLineBoxTree):

8:16 AM Changeset in webkit [230994] by dino@apple.com
  • 19 edits
    2 deletes in trunk

Make a better flag for system preview, and disable it where necessary
https://bugs.webkit.org/show_bug.cgi?id=184968
<rdar://problem/39686506>

Reviewed by Eric Carlson.

Source/WebCore:

Use USE(SYSTEM_PREVIEW).

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::isSystemPreviewLink const):

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

(WebCore::RenderImage::paintIntoRect):

  • rendering/RenderTheme.cpp:
  • rendering/RenderTheme.h:
  • testing/Internals.cpp:

(WebCore::Internals::systemPreviewRelType):
(WebCore::Internals::isSystemPreviewLink const):
(WebCore::Internals::isSystemPreviewImage const):

Source/WebKit:

Use USE(SYSTEM_PREVIEW).

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
  • UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:

(-[WKWebViewContentProviderRegistry init]):

  • UIProcess/ios/WKSystemPreviewView.mm:

Source/WTF:

Add a new USE(SYSTEM_PREVIEW).

  • wtf/Platform.h:

LayoutTests:

These tests have platform-specific results for the moment.

  • TestExpectations:
  • system-preview/badge-expected.html: Removed.
  • system-preview/detection-expected.txt: Removed.
7:19 AM Changeset in webkit [230993] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Incorrect number of WebDriver test failures shown in the bots
https://bugs.webkit.org/show_bug.cgi?id=184959

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2018-04-25
Reviewed by Michael Catanzaro.

The regular expression we are using to get the number of failures from the log is matching a particular test
error output. Improve the regular expression to avoid matching other strings in the log. Ensure that only
matches at the beginning of lines and add spaces after Unexpected and before the (<failures>).

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(RunWebDriverTests.commandComplete):

6:18 AM Changeset in webkit [230992] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Fix project file after r230931.

  • WebCore.xcodeproj/project.pbxproj:
6:08 AM Changeset in webkit [230991] by magomez@igalia.com
  • 4 edits in trunk

[GTK] fast/repaint/fixed-scale.html failing since r230479 "[TexMap] TextureMapperLayer unnecessarily duplicates state in GraphicsLayerTransform"
https://bugs.webkit.org/show_bug.cgi?id=184780

Reviewed by Žan Doberšek.

Source/WebCore:

Initialize the anchorPoint to (0.5, 0.5, 0) in TextureMapperLayer::State.

Covered by existent tests.

  • platform/graphics/texmap/TextureMapperLayer.h:

LayoutTests:

  • platform/gtk/TestExpectations:
5:56 AM WebKitGTK/2.20.x edited by clopez@igalia.com
(diff)
5:49 AM WebKitGTK/2.20.x edited by clopez@igalia.com
(diff)
5:10 AM Changeset in webkit [230990] by Ms2ger@igalia.com
  • 8 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-* LayoutTests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=182833

Reviewed by Carlos Alberto Lopez Perez.

LayoutTests/imported/w3c:

  • web-platform-tests/2dcontext/imagebitmap/common.sub.js: ensure event handlers aren't garbage collected
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: update expectations

LayoutTests:

  • TestExpectations: enable tests
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: update expectations
  • platform/ios/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: update expectations
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: update expectations
4:06 AM Changeset in webkit [230989] by Carlos Garcia Campos
  • 2 edits in trunk/WebDriverTests

Unreviewed gardening. Update expectations for new tests added in r230953.

3:16 AM Changeset in webkit [230988] by Carlos Garcia Campos
  • 9 edits in trunk

[GTK] Implement MouseEvent.buttons
https://bugs.webkit.org/show_bug.cgi?id=184913

Reviewed by Žan Doberšek.

Source/WebCore:

Add helper function to get the state modifier of a GDK button.

  • platform/gtk/GtkUtilities.cpp:

(WebCore::stateModifierForGdkButton):

  • platform/gtk/GtkUtilities.h:

Source/WebKit:

It's currently returning always 0.

  • Shared/gtk/WebEventFactory.cpp:

(WebKit::pressedMouseButtons): Helper function to get the pressed mouse buttons.
(WebKit::WebEventFactory::createWebMouseEvent): Pass presssed mouse buttons to constructor instead of 0.

  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:

(WebKit::WebAutomationSession::platformSimulateMouseInteraction): Include the mouse buttons state in automation
synthesized events and update m_currentModifiers with the mouse buttons state.
(WebKit::keyCodeForVirtualKey): Do not set the state here.
(WebKit::modifiersForKeyCode): Helper to get the modifiers for a key code.
(WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): Initialize the modifiers also when
virtualKey is std::nullopt;

Tools:

Include the mouse buttons state in WTR synthesized events.

  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::EventSenderProxy::EventSenderProxy):
(WTR::EventSenderProxy::createMouseButtonEvent):
(WTR::EventSenderProxy::mouseDown):
(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo):

Apr 24, 2018:

10:52 PM Changeset in webkit [230987] by n_wang@apple.com
  • 3 edits in trunk/Source/WebKit

AX: soft link libAccessibility.dylb
https://bugs.webkit.org/show_bug.cgi?id=184919

Reviewed by Dan Bernstein.

Weakly linked libAccessibility.dylib on macOS.

  • Configurations/WebKit.xcconfig:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _updateAccessibilityEventsEnabled]):

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

[GTK][WPE] Fix triggered bot name on the WPE Debug Build bot
https://bugs.webkit.org/show_bug.cgi?id=184954

Patch by Pablo Saavedra <Pablo Saavedra> on 2018-04-24
Reviewed by Michael Catanzaro.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
9:38 PM Changeset in webkit [230985] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/iOS 11.3.1

Added a tag for iOS 11.3.1.

9:38 PM Changeset in webkit [230984] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari 11.1 (v. 11605.1.33.1.4 & v. 12605.1.33.1.4)

Added a tag for Safari 11.1 (v. 11605.1.33.1.4 & v. 12605.1.33.1.4).

8:42 PM Changeset in webkit [230983] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Release assert in ScriptController::canExecuteScripts via CachedSVGFont::ensureCustomFontData during
Document::updateStyleIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=184950

Reviewed by Zalan Bujtas.

Convert an existing ScriptDisallowedScope::EventAllowedScope which only disables the debug assertions
by ScriptDisallowedScope::DisableAssertionsInScope which also disables the release assertion.

Because SVG font is loaded in a document isolated from the rest of the page (m_externalSVGDocument),
there is no security implication to execute scripts in this isolated document.

Unfortunately, no new tests. I could never make CachedSVGFont::ensureCustomFontData to get called inside
style resolution with m_externalSVGDocument set to nullptr after many attempts. Even EventAllowedScope
I added 13 months ago in r211965, which this patch replaces by DisableAssertionsInScope, is not utilized
by the existing layout tests since removing the assertion doesn't cause any layout test to hit an assertion.

  • dom/ScriptDisallowedScope.h: Updated the comment.
  • loader/cache/CachedSVGFont.cpp:

(WebCore::CachedSVGFont::ensureCustomFontData): Replaced the asssertion.

8:36 PM Changeset in webkit [230982] by Fujii Hironori
  • 5 edits
    22 adds in trunk/Source/WebKit

[WinCairo] Add WKView and WKAPI
https://bugs.webkit.org/show_bug.cgi?id=182869

Reviewed by Alex Christensen.

Resurrected source files for WebKit for Windows port which was
removed in r139003.

  • PlatformWin.cmake: Renamed the output name of WebKit to WebKit2

not to conflict WebKitLegacy. Added source files and include paths.

  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/win/WKAPICastWin.h: Added.
  • UIProcess/API/C/win/WKView.cpp: Added.

(WKViewCreate):
(WKViewGetWindow):
(WKViewGetPage):
(WKViewSetParentWindow):
(WKViewWindowAncestryDidChange):
(WKViewSetIsInWindow):
(WKViewSetScrollOffsetOnNextResize):

  • UIProcess/API/C/win/WKView.h: Added.
  • UIProcess/API/win/APIWebsiteDataStoreWin.cpp: Added.

(API::WebsiteDataStore::defaultApplicationCacheDirectory):
(API::WebsiteDataStore::defaultCacheStorageDirectory):
(API::WebsiteDataStore::defaultNetworkCacheDirectory):
(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory):
(API::WebsiteDataStore::defaultLocalStorageDirectory):
(API::WebsiteDataStore::defaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::defaultResourceLoadStatisticsDirectory):
(API::WebsiteDataStore::cacheDirectoryFileSystemRepresentation):
(API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):
(API::WebsiteDataStore::defaultDataStoreConfiguration):

  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/win/ProcessLauncherWin.cpp: Added.

(WebKit::processName):
(WebKit::ProcessLauncher::launchProcess):
(WebKit::ProcessLauncher::terminateProcess):
(WebKit::ProcessLauncher::platformInvalidate):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::networkProcessFailedToLaunch):
(WebKit::NetworkProcessProxy::didCreateNetworkConnectionToWebProcess):

  • UIProcess/WebsiteData/win/WebsiteDataStoreWin.cpp: Added.

(WebKit::WebsiteDataStore::platformInitialize):
(WebKit::WebsiteDataStore::platformDestroy):
(WebKit::WebsiteDataStore::platformRemoveRecentSearches):

  • UIProcess/win/PageClientImpl.cpp: Added.

(WebKit::PageClientImpl::PageClientImpl):
(WebKit::PageClientImpl::createDrawingAreaProxy):
(WebKit::PageClientImpl::setViewNeedsDisplay):
(WebKit::PageClientImpl::requestScroll):
(WebKit::PageClientImpl::viewScrollPosition):
(WebKit::PageClientImpl::viewSize):
(WebKit::PageClientImpl::isViewWindowActive):
(WebKit::PageClientImpl::isViewFocused):
(WebKit::PageClientImpl::isViewVisible):
(WebKit::PageClientImpl::isViewInWindow):
(WebKit::PageClientImpl::PageClientImpl::processDidExit):
(WebKit::PageClientImpl::didRelaunchProcess):
(WebKit::PageClientImpl::toolTipChanged):
(WebKit::PageClientImpl::setCursor):
(WebKit::PageClientImpl::setCursorHiddenUntilMouseMoves):
(WebKit::PageClientImpl::didChangeViewportProperties):
(WebKit::PageClientImpl::registerEditCommand):
(WebKit::PageClientImpl::clearAllEditCommands):
(WebKit::PageClientImpl::canUndoRedo):
(WebKit::PageClientImpl::executeUndoRedo):
(WebKit::PageClientImpl::convertToDeviceSpace):
(WebKit::PageClientImpl::convertToUserSpace):
(WebKit::PageClientImpl::screenToRootView):
(WebKit::PageClientImpl::rootViewToScreen):
(WebKit::PageClientImpl::doneWithKeyEvent):
(WebKit::PageClientImpl::createPopupMenuProxy):
(WebKit::PageClientImpl::createContextMenuProxy):
(WebKit::createColorPicker):
(WebKit::PageClientImpl::enterAcceleratedCompositingMode):
(WebKit::PageClientImpl::exitAcceleratedCompositingMode):
(WebKit::PageClientImpl::updateAcceleratedCompositingMode):
(WebKit::PageClientImpl::pageClosed):
(WebKit::PageClientImpl::preferencesDidChange):
(WebKit::PageClientImpl::didChangeContentSize):
(WebKit::PageClientImpl::handleDownloadRequest):
(WebKit::PageClientImpl::didCommitLoadForMainFrame):
(WebKit::PageClientImpl::fullScreenManagerProxyClient):
(WebKit::PageClientImpl::closeFullScreenManager):
(WebKit::PageClientImpl::isFullScreen):
(WebKit::PageClientImpl::enterFullScreen):
(WebKit::PageClientImpl::exitFullScreen):
(WebKit::PageClientImpl::beganEnterFullScreen):
(WebKit::PageClientImpl::beganExitFullScreen):
(WebKit::PageClientImpl::doneWithTouchEvent):
(WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore):
(WebKit::PageClientImpl::didFinishLoadingDataForCustomContentProvider):
(WebKit::PageClientImpl::navigationGestureDidBegin):
(WebKit::PageClientImpl::navigationGestureWillEnd):
(WebKit::PageClientImpl::navigationGestureDidEnd):
(WebKit::PageClientImpl::willRecordNavigationSnapshot):
(WebKit::PageClientImpl::didRemoveNavigationGestureSnapshot):
(WebKit::PageClientImpl::didFirstVisuallyNonEmptyLayoutForMainFrame):
(WebKit::PageClientImpl::didFinishLoadForMainFrame):
(WebKit::PageClientImpl::didSameDocumentNavigationForMainFrame):
(WebKit::PageClientImpl::didChangeBackgroundColor):
(WebKit::PageClientImpl::isPlayingAudioWillChange):
(WebKit::PageClientImpl::isPlayingAudioDidChange):
(WebKit::PageClientImpl::refView):
(WebKit::PageClientImpl::derefView):

  • UIProcess/win/PageClientImpl.h: Added.
  • UIProcess/win/TextCheckerWin.cpp: Added.

(WebKit::checkerState):
(WebKit::TextChecker::state):
(WebKit::TextChecker::setTestingMode):
(WebKit::TextChecker::isTestingMode):
(WebKit::TextChecker::isContinuousSpellCheckingAllowed):
(WebKit::TextChecker::setContinuousSpellCheckingEnabled):
(WebKit::TextChecker::setGrammarCheckingEnabled):
(WebKit::TextChecker::continuousSpellCheckingEnabledStateChanged):
(WebKit::TextChecker::grammarCheckingEnabledStateChanged):
(WebKit::TextChecker::uniqueSpellDocumentTag):
(WebKit::TextChecker::closeSpellDocumentWithTag):
(WebKit::TextChecker::checkSpellingOfString):
(WebKit::TextChecker::checkGrammarOfString):
(WebKit::TextChecker::spellingUIIsShowing):
(WebKit::TextChecker::toggleSpellingUIIsShowing):
(WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
(WebKit::TextChecker::updateSpellingUIWithGrammarString):
(WebKit::TextChecker::getGuessesForWord):
(WebKit::TextChecker::learnWord):
(WebKit::TextChecker::ignoreWord):
(WebKit::TextChecker::requestCheckingOfString):
(WebKit::TextChecker::checkTextOfParagraph):

  • UIProcess/win/WebContextMenuProxyWin.cpp: Added.

(WebKit::WebContextMenuProxyWin::show):
(WebKit::WebContextMenuProxyWin::showContextMenuWithItems):
(WebKit::WebContextMenuProxyWin::WebContextMenuProxyWin):
(WebKit::WebContextMenuProxyWin::~WebContextMenuProxyWin):

  • UIProcess/win/WebContextMenuProxyWin.h: Added.

(WebKit::WebContextMenuProxyWin::create):

  • UIProcess/win/WebInspectorProxyWin.cpp: Added.

(WebKit::WebInspectorProxy::platformCreateFrontendPage):
(WebKit::WebInspectorProxy::platformCreateFrontendWindow):
(WebKit::WebInspectorProxy::platformCloseFrontendPageAndWindow):
(WebKit::WebInspectorProxy::platformDidCloseForCrash):
(WebKit::WebInspectorProxy::platformInvalidate):
(WebKit::WebInspectorProxy::platformHide):
(WebKit::WebInspectorProxy::platformBringToFront):
(WebKit::WebInspectorProxy::platformBringInspectedPageToFront):
(WebKit::WebInspectorProxy::platformIsFront):
(WebKit::WebInspectorProxy::platformInspectedURLChanged):
(WebKit::WebInspectorProxy::inspectorPageURL):
(WebKit::WebInspectorProxy::inspectorTestPageURL):
(WebKit::WebInspectorProxy::inspectorBaseURL):
(WebKit::WebInspectorProxy::platformInspectedWindowHeight):
(WebKit::WebInspectorProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorProxy::platformAttach):
(WebKit::WebInspectorProxy::platformDetach):
(WebKit::WebInspectorProxy::platformSetAttachedWindowHeight):
(WebKit::WebInspectorProxy::platformSetAttachedWindowWidth):
(WebKit::WebInspectorProxy::platformStartWindowDrag):
(WebKit::WebInspectorProxy::platformSave):
(WebKit::WebInspectorProxy::platformAppend):
(WebKit::WebInspectorProxy::platformAttachAvailabilityChanged):

  • UIProcess/win/WebPageProxyWin.cpp: Added.

(WebKit::WebPageProxy::platformInitialize):
(WebKit::WebPageProxy::standardUserAgent):
(WebKit::WebPageProxy::saveRecentSearches):
(WebKit::WebPageProxy::loadRecentSearches):
(WebKit::WebPageProxy::editorStateChanged):

  • UIProcess/win/WebPreferencesWin.cpp: Added.

(WebKit::WebPreferences::platformInitializeStore):
(WebKit::WebPreferences::platformUpdateStringValueForKey):
(WebKit::WebPreferences::platformUpdateBoolValueForKey):
(WebKit::WebPreferences::platformUpdateUInt32ValueForKey):
(WebKit::WebPreferences::platformUpdateDoubleValueForKey):
(WebKit::WebPreferences::platformUpdateFloatValueForKey):
(WebKit::WebPreferences::platformGetStringUserValueForKey):
(WebKit::WebPreferences::platformGetBoolUserValueForKey):
(WebKit::WebPreferences::platformGetUInt32UserValueForKey):
(WebKit::WebPreferences::platformGetDoubleUserValueForKey):

  • UIProcess/win/WebProcessPoolWin.cpp: Added.

(WebKit::WebProcessPool::platformInitialize):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInvalidateContext):
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory):
(WebKit::WebProcessPool::platformResolvePathsForSandboxExtensions):

  • UIProcess/win/WebView.cpp: Added.

(WebKit::WebView::WebViewWndProc):
(WebKit::WebView::wndProc):
(WebKit::WebView::registerWebViewWindowClass):
(WebKit::WebView::WebView):
(WebKit::WebView::~WebView):
(WebKit::WebView::initialize):
(WebKit::WebView::setParentWindow):
(WebKit::findTopLevelParentWindow):
(WebKit::WebView::windowAncestryDidChange):
(WebKit::WebView::onMouseEvent):
(WebKit::WebView::onWheelEvent):
(WebKit::WebView::onHorizontalScroll):
(WebKit::WebView::onVerticalScroll):
(WebKit::WebView::onKeyEvent):
(WebKit::drawPageBackground):
(WebKit::WebView::paint):
(WebKit::WebView::onPaintEvent):
(WebKit::WebView::onPrintClientEvent):
(WebKit::WebView::onSizeEvent):
(WebKit::WebView::onWindowPositionChangedEvent):
(WebKit::WebView::onSetFocusEvent):
(WebKit::WebView::onKillFocusEvent):
(WebKit::WebView::onTimerEvent):
(WebKit::WebView::onShowWindowEvent):
(WebKit::WebView::onSetCursor):
(WebKit::WebView::updateActiveState):
(WebKit::WebView::updateActiveStateSoon):
(WebKit::initCommonControls):
(WebKit::WebView::initializeToolTipWindow):
(WebKit::WebView::startTrackingMouseLeave):
(WebKit::WebView::stopTrackingMouseLeave):
(WebKit::WebView::shouldInitializeTrackPointHack):
(WebKit::WebView::close):
(WebKit::WebView::cursorToShow const):
(WebKit::WebView::updateNativeCursor):
(WebKit::WebView::setOverrideCursor):
(WebKit::WebView::setIsInWindow):
(WebKit::WebView::setIsVisible):
(WebKit::WebView::isWindowActive):
(WebKit::WebView::isFocused):
(WebKit::WebView::isVisible):
(WebKit::WebView::isInWindow):
(WebKit::WebView::setScrollOffsetOnNextResize):
(WebKit::WebView::setViewNeedsDisplay):
(WebKit::WebView::createColorChooserProxy):
(WebKit::WebView::didCommitLoadForMainFrame):
(WebKit::WebView::customRepresentationZoomFactor):
(WebKit::WebView::setCustomRepresentationZoomFactor):
(WebKit::WebView::findStringInCustomRepresentation):
(WebKit::WebView::countStringMatchesInCustomRepresentation):
(WebKit::WebView::nativeWindow):
(WebKit::WebView::windowReceivedMessage):

  • UIProcess/win/WebView.h: Added.

(WebKit::WebView::create):
(WebKit::WebView::window const):
(WebKit::WebView::page const):
(WebKit::WebView::drawingArea):
(WebKit::WebView::setWasActivatedByMouseEvent):

8:28 PM Changeset in webkit [230981] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

Implement Same-Site cookies
https://bugs.webkit.org/show_bug.cgi?id=159464
<rdar://problem/27196358>

Unreviewed build fix.

WinCairo WebKit2 can't compile since r230921.

  • NetworkProcess/curl/NetworkDataTaskCurl.cpp:

(WebKit::NetworkDataTaskCurl::appendCookieHeader):
CookieJarCurlDatabase::cookieRequestHeaderFieldValue needs
SameSiteInfo.

8:14 PM Changeset in webkit [230980] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

fromCharCode is missing some exception checks
https://bugs.webkit.org/show_bug.cgi?id=184952

Reviewed by Saam Barati.

JSTests:

  • stress/fromCharCode-exception-check.js: Added.

(get catch):

Source/JavaScriptCore:

I also removed the pointless slow path function and moved it into the
main function.

  • runtime/StringConstructor.cpp:

(JSC::stringFromCharCode):
(JSC::stringFromCharCodeSlowCase): Deleted.

6:51 PM Changeset in webkit [230979] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

visitedDependentColor() should take a CSSPropertyID
https://bugs.webkit.org/show_bug.cgi?id=184949

Reviewed by Sam Weinig.

Change RenderStyle::colorIncludingFallback(), RenderStyle::visitedDependentColor()
and RenderElement::selectionColor() to take CSSPropertyID rather than int.

No behavior change.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::selectionColor const):

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

(WebCore::RenderTableCell::computeCollapsedStartBorder const):
(WebCore::RenderTableCell::computeCollapsedEndBorder const):
(WebCore::RenderTableCell::computeCollapsedBeforeBorder const):
(WebCore::RenderTableCell::computeCollapsedAfterBorder const):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::colorIncludingFallback const):
(WebCore::RenderStyle::visitedDependentColor const):

  • rendering/style/RenderStyle.h:
6:50 PM Changeset in webkit [230978] by Simon Fraser
  • 16 edits
    3 adds in trunk

Add a new "color-filter" CSS property as an experimental feature
https://bugs.webkit.org/show_bug.cgi?id=184940
Source/WebCore:

rdar://problem/39664904

Reviewed by Jon Lee.

Add a new CSS property called "color-filter" as an experimental feature (off by default).

This property specifies a list of filter functions (as specified in https://drafts.fxtf.org/filter-effects/#supported-filter-functions)
to CSS colors, allowing authors to modify the provided page colors, for example to improve accessibility.
Filters that move pixels (i.e. blur() and drop-shadow()) are invalid in this property.

Colors will be mapped through the filter functions just before paint time, and gradient stop colors will also be mapped.

This patch adds support for parsing color-filter.

Test: css3/color-filters/color-filter-parsing.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyinStyle):

  • css/CSSProperties.json:
  • css/parser/CSSParser.cpp:

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

  • css/parser/CSSParserMode.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::isColorFilterFunction):
(WebCore::CSSPropertyParserHelpers::consumeFilterFunction):
(WebCore::CSSPropertyParserHelpers::consumeFilter):

  • css/parser/CSSPropertyParserHelpers.h:
  • page/Settings.yaml:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresRepaint const):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::mutableColorFilter):
(WebCore::RenderStyle::colorFilter const):
(WebCore::RenderStyle::hasColorFilter const):
(WebCore::RenderStyle::setColorFilter):
(WebCore::RenderStyle::initialColorFilter):

  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):
(WebCore::StyleRareInheritedData::hasColorFilters const):

  • rendering/style/StyleRareInheritedData.h:

Source/WebKit:

Reviewed by Jon Lee.

Add the color-filter property as an experimental feature.

  • Shared/WebPreferences.yaml:

LayoutTests:

Reviewed by Jon Lee.

  • css3/color-filters/color-filter-parsing-expected.txt: Added.
  • css3/color-filters/color-filter-parsing.html: Added.
4:19 PM Changeset in webkit [230977] by sbarati@apple.com
  • 12 edits in trunk

Keep around a pre-warmed process when doing process swap on navigation
https://bugs.webkit.org/show_bug.cgi?id=184765
<rdar://problem/39685099>

Reviewed by Ryosuke Niwa and Brady Eidson.

Source/WebKit:

This patch makes it so that WebProcessPool prewarms a process when process
swap on navigation is turned on. When we do a process swap on navigation,
we first try to grab a prewarmed process before creating a new one.

We try to be smart about when to create these processes. The initial heuristic
that this patch chooses is when we reach the DidFirstVisuallyNonEmptyLayout
layout milestone. We're going to try to improve on this heuristic in:
https://bugs.webkit.org/show_bug.cgi?id=184899

This is a 40% progression on PLT with process swap on navigation turned on.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _prewarmedWebProcessCount]):
(-[WKProcessPool _webProcessCountIgnoringPrewarmed]):

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

(WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::notifyProcessPoolToPrewarm):
(WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):

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

(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::warmInitialProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::didReachGoodTimeToPrewarm):
(WebKit::WebProcessPool::processForNavigation):

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

(WebKit::WebProcessProxy::create):
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::m_isInPrewarmedPool):
(WebKit::m_userMediaCaptureManagerProxy): Deleted.

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::isInPrewarmedPool const):
(WebKit::WebProcessProxy::setIsInPrewarmedPool):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
4:06 PM Changeset in webkit [230976] by Simon Fraser
  • 14 edits in trunk

shape-outside and filter styles occur twice in the result of getComputedStyle
https://bugs.webkit.org/show_bug.cgi?id=184931

Reviewed by Antti Koivisto.

CSSPropertyShapeOutside and CSSPropertyFilter were duplicated in the list of computedProperties[]
used by getComputedStyle. Remove the duplication.
Source/WebCore:

Tested by existing tests.

  • css/CSSComputedStyleDeclaration.cpp:

LayoutTests:

  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac-sierra/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/mac-sierra/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac-sierra/svg/css/getComputedStyle-basic-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac/svg/css/getComputedStyle-basic-expected.txt:
  • svg/css/getComputedStyle-basic-expected.txt:
3:29 PM Changeset in webkit [230975] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

MultiByOffset should emit one fewer branches in the case that the set of structures is proved already
https://bugs.webkit.org/show_bug.cgi?id=184923

Reviewed by Saam Barati.

If we have a MultiGetByOffset or MultiPutByOffset over a structure set that we've already proved
(i.e. we know that the object has one of those structures), then previously we would still emit a
switch with a case per structure along with a default case. That would mean one extra redundant
branch to check that whatever structure we wound up with belongs to the set. In that case, we
were already making the default case be an Oops.

One possible solution would be to say that the default case being Oops means that B3 doesn't need
to emit the extra branch. But that would require having B3 exploit the fact that Oops is known to
be unreachable. Although B3 IR semantics (webkit.org/docs/b3/intermediate-representation.html)
seem to allow this, I don't particularly like that style of optimization. I like Oops to mean
trap.

So, this patch makes FTL lowering turn one of the cases into the default, explicitly removing the
extra branch.

This is not a speed-up. But it makes the B3 IR for MultiByOffset a lot simpler, which should make
it easier to implement B3-level optimizations for MultiByOffset. It also makes the IR easier to
read.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileMultiGetByOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileMultiPutByOffset):
(JSC::FTL::DFG::LowerDFGToB3::emitSwitchForMultiByOffset):

3:11 PM Changeset in webkit [230974] by commit-queue@webkit.org
  • 5 edits in trunk/Source

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

This fix was not appropriate (Requested by n_wang on #webkit).

Reverted changeset:

"AX: soft link libAccessibility.dylb"
https://bugs.webkit.org/show_bug.cgi?id=184919
https://trac.webkit.org/changeset/230971

2:54 PM Changeset in webkit [230973] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk/Source/WebCore

[Curl] Extract proxy settings into a separate class to hold advanced information.
https://bugs.webkit.org/show_bug.cgi?id=184714

It was simplely structure to hold proxy setting. To support advanced feature of proxy
such as authentication, more inteligent object is required to store intermediate state
or errors. That's why we've introduced new class for that purpose.

Patch by Basuke Suzuki <Basuke Suzuki> on 2018-04-24
Reviewed by Youenn Fablet.

No new tests because there's no new behavior.

  • platform/Curl.cmake:
  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlHandle::enableProxyIfExists):
(WebCore::CurlContext::ProxyInfo::url const): Deleted.
(WebCore::CurlContext::setProxyInfo): Deleted.

  • platform/network/curl/CurlContext.h:

(WebCore::CurlContext::proxySettings const):
(WebCore::CurlContext::setProxySettings):
(WebCore::CurlContext::setProxyUserPass):
(WebCore::CurlContext::proxyInfo const): Deleted.
(WebCore::CurlContext::setProxyInfo): Deleted.

  • platform/network/curl/CurlProxySettings.cpp: Added.

(WebCore::CurlProxySettings::CurlProxySettings):
(WebCore::CurlProxySettings::rebuildUrl):
(WebCore::CurlProxySettings::setUserPass):
(WebCore::protocolIsInSocksFamily):
(WebCore::getProxyPort):
(WebCore::createProxyUrl):

  • platform/network/curl/CurlProxySettings.h: Added.

(WebCore::CurlProxySettings::CurlProxySettings):
(WebCore::CurlProxySettings::isEmpty const):
(WebCore::CurlProxySettings::mode const):
(WebCore::CurlProxySettings::url const):
(WebCore::CurlProxySettings::ignoreHosts const):
(WebCore::CurlProxySettings::user const):
(WebCore::CurlProxySettings::password const):

  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::didReceiveHeader):

  • platform/network/curl/CurlResponse.h:

(WebCore::CurlResponse::isolatedCopy const):

  • platform/network/curl/ResourceResponseCurl.cpp:

(WebCore::ResourceResponse::ResourceResponse):

2:52 PM Changeset in webkit [230972] by mark.lam@apple.com
  • 3 edits in trunk/JSTests

Gardening: test fix after r230863.
https://bugs.webkit.org/show_bug.cgi?id=184846
<rdar://problem/39390672>

Not reviewed.

  • stress/json-stringified-overflow-2.js:

(catch):

  • stress/json-stringified-overflow.js:

(catch):

2:27 PM Changeset in webkit [230971] by n_wang@apple.com
  • 5 edits in trunk/Source

AX: soft link libAccessibility.dylb
https://bugs.webkit.org/show_bug.cgi?id=184919

Reviewed by Chris Fleizach.

Source/WebKit:

Make sure we soft link the library so that it won't crash
if it's missing in the system.

  • Configurations/WebKit.xcconfig:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _updateAccessibilityEventsEnabled]):

Source/WTF:

  • wtf/cocoa/SoftLinking.h:
1:22 PM Changeset in webkit [230970] by youenn@apple.com
  • 4 edits
    2 adds in trunk

Throw in case of PeerConnection created for detached documents
https://bugs.webkit.org/show_bug.cgi?id=184921
<rdar://problem/39629216>

Reviewed by Eric Carlson.

Source/WebCore:

Add a check to ensure that page is not null when creating a peer connection backend.
In that case, the peer connection constructor will later on throw.
The same for setConfiguration is done.
Behavior is consistent with Chrome.

Test: webrtc/pc-detached-document.html

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::createLibWebRTCPeerConnectionBackend):
(WebCore::LibWebRTCPeerConnectionBackend::LibWebRTCPeerConnectionBackend):
(WebCore::LibWebRTCPeerConnectionBackend::setConfiguration):
(WebCore::libWebRTCProvider): Deleted.

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:

LayoutTests:

  • webrtc/pc-detached-document-expected.txt: Added.
  • webrtc/pc-detached-document.html: Added.
1:15 PM Changeset in webkit [230969] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[build.webkit.org] unit-tests fail when passwords.json is missing
https://bugs.webkit.org/show_bug.cgi?id=180390

Reviewed by Carlos Alberto Lopez Perez.

  • BuildSlaveSupport/build.webkit.org-config/loadConfig.py:

(loadBuilderConfig): Add support for test_mode. Load mock passwords in test_mode.

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:

(BuildBotConfigLoader._add_dependant_modules_to_sys_modules): Call _add_webkitpy_to_sys_path as well.
(BuildBotConfigLoader._mock_open): Deleted.
(BuildBotConfigLoader.load_config): Deleted.

12:51 PM Changeset in webkit [230968] by wilander@apple.com
  • 24 edits
    83 adds in trunk

From-Origin: Support for 'same' and 'same-site' response header, nested frame origin check
https://bugs.webkit.org/show_bug.cgi?id=184560
<rdar://problem/38901344>

Reviewed by Youenn Fablet and Daniel Bates.

LayoutTests/imported/w3c:

This patch implements significant parts of https://github.com/whatwg/fetch/issues/687.
We consume the From-Origin response header and only load the resource if:

  • The header is non-existent, empty, or invalid.
  • The header specifies 'same' and the resource's origin matches the originating document's origin and the origins up the frame tree.
  • The header specifies 'same-site' and the resource's eTLD+1 matches the originating document's eTLD+1 and the eTLD+1 of the documents up the frame tree.

This feature is experimental and off by default.

  • web-platform-tests/service-workers/service-worker/fetch-request-redirect.https-expected.txt:

Removed console message since they are now suppressed.

Source/WebCore:

Tests: http/tests/from-origin/document-from-origin-same-accepted.html

http/tests/from-origin/document-from-origin-same-blocked.html
http/tests/from-origin/document-from-origin-same-site-accepted.html
http/tests/from-origin/document-from-origin-same-site-blocked.html
http/tests/from-origin/document-nested-from-origin-same-accepted.html
http/tests/from-origin/document-nested-from-origin-same-blocked.html
http/tests/from-origin/fetch-data-iframe-from-origin-same-blocked.html
http/tests/from-origin/fetch-from-origin-same-accepted.html
http/tests/from-origin/fetch-from-origin-same-blocked.html
http/tests/from-origin/fetch-from-origin-same-site-accepted.html
http/tests/from-origin/fetch-from-origin-same-site-blocked.html
http/tests/from-origin/fetch-iframe-from-origin-same-accepted.html
http/tests/from-origin/fetch-iframe-from-origin-same-blocked.html
http/tests/from-origin/image-about-blank-from-origin-same-blocked.html
http/tests/from-origin/image-from-origin-same-accepted.html
http/tests/from-origin/image-from-origin-same-blocked.html
http/tests/from-origin/image-from-origin-same-site-accepted.html
http/tests/from-origin/image-from-origin-same-site-blocked.html
http/tests/from-origin/redirect-document-from-origin-same-blocked.html
http/tests/from-origin/redirect-fetch-from-origin-same-blocked.html
http/tests/from-origin/redirect-image-from-origin-same-blocked.html
http/tests/from-origin/redirect-script-from-origin-same-blocked.html
http/tests/from-origin/redirect-xhr-from-origin-same-blocked.html
http/tests/from-origin/sandboxed-sub-frame-from-origin-same-blocked.html
http/tests/from-origin/sandboxed-sub-frame-nested-cross-origin-from-origin-same-blocked.html
http/tests/from-origin/sandboxed-sub-frame-nested-same-origin-from-origin-same-blocked.html
http/tests/from-origin/script-from-origin-same-accepted.html
http/tests/from-origin/script-from-origin-same-blocked.html
http/tests/from-origin/script-from-origin-same-site-accepted.html
http/tests/from-origin/script-from-origin-same-site-blocked.html
http/tests/from-origin/top-frame-document-from-origin-same-accepted.php
http/tests/from-origin/xhr-from-origin-same-accepted.html
http/tests/from-origin/xhr-from-origin-same-blocked.html
http/tests/from-origin/xhr-from-origin-same-site-accepted.html
http/tests/from-origin/xhr-from-origin-same-site-blocked.html

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didFail):

Outputs the error's localized description in a console message except when the destination
is FetchOptions::Destination::Serviceworker or FetchOptions::Destination::EmptyString.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setFromOriginResponseHeaderEnabled):
(WebCore::RuntimeEnabledFeatures::fromOriginResponseHeaderEnabled const):

Added From-Origin support as an experimental feature.

  • platform/network/HTTPHeaderNames.in:

Added From-Origin.

  • platform/network/HTTPParsers.cpp:

(WebCore::parseFromOriginHeader):

Parses the From-Origin header, currently supporting 'Same' and 'Same-Site.'

  • platform/network/HTTPParsers.h:

Source/WebKit:

This patch implements significant parts of https://github.com/whatwg/fetch/issues/687.
We consume the From-Origin response header and only load the resource if:

  • The header is non-existent, empty, or invalid.
  • The header specifies 'same' and the resource's origin matches the originating document's origin and the origins up the frame tree.
  • The header specifies 'same-site' and the resource's eTLD+1 matches the originating document's eTLD+1 and the eTLD+1 of the documents up the frame tree.

This feature is experimental and off by default.

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

Support for the two new load parameters:

  • shouldEnableFromOriginResponseHeader
  • frameAncestorOrigins
  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::areFrameAncestorsSameSite):
(WebKit::areFrameAncestorsSameOrigin):
(WebKit::shouldCancelCrossOriginLoad):

The three functions above implement the new blocking logic.

(WebKit::fromOriginResourceError):

Convenience function that returns an error with the From-Origin error message.

(WebKit::NetworkResourceLoader::didReceiveResponse):

Now checks for a From-Origin response header.

(WebKit::NetworkResourceLoader::didFailLoading):

Now checks for a From-Origin response header.

(WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest):

Now checks for a From-Origin response header.

(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):

Now checks for a From-Origin response header.

(WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry):

Now checks for a From-Origin response header.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<Vector<RefPtr<SecurityOrigin>>>::encode):
(IPC::ArgumentCoder<Vector<RefPtr<SecurityOrigin>>>::decode):

Now encodes and decodes vectors of RefPtr<WebCore::SecurityOrigin>.

  • Shared/WebCoreArgumentCoders.h:
  • Shared/WebPreferences.yaml:

Added From-Origin support as an experimental feature.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetFromOriginResponseHeaderEnabled):
(WKPreferencesGetFromOriginResponseHeaderEnabled):

  • UIProcess/API/C/WKPreferencesRef.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

Sets the two new load parameters:

  • shouldEnableFromOriginResponseHeader
  • frameAncestorOrigins

Tools:

This patch implements significant parts of https://github.com/whatwg/fetch/issues/687.
We consume the From-Origin response header and only load the resource if:

  • The header is non-existent, empty, or invalid.
  • The header specifies 'same' and the resource's origin matches the originating document's origin and the origins up the frame tree.
  • The header specifies 'same-site' and the resource's eTLD+1 matches the originating document's eTLD+1 and the eTLD+1 of the documents up the frame tree.

This feature is experimental and off by default.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/HTTPParsers.cpp: Added.

(TestWebKitAPI::TEST):

Tests for From-Origin header parsing.

LayoutTests:

This patch implements significant parts of https://github.com/whatwg/fetch/issues/687.
We consume the From-Origin response header and only load the resource if:

  • The header is non-existent, empty, or invalid.
  • The header specifies 'same' and the resource's origin matches the originating document's origin and the origins up the frame tree.
  • The header specifies 'same-site' and the resource's eTLD+1 matches the originating document's eTLD+1 and the eTLD+1 of the documents up the frame tree.

This feature is experimental and off by default.

The http/tests/from-origin/ directory marked as [ Skip ].
Suppressed console output for imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html.

  • http/tests/from-origin: Added.
  • http/tests/from-origin/document-from-origin-same-accepted-expected.txt: Added.
  • http/tests/from-origin/document-from-origin-same-accepted.html: Added.
  • http/tests/from-origin/document-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/document-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/document-from-origin-same-site-accepted-expected.txt: Added.
  • http/tests/from-origin/document-from-origin-same-site-accepted.html: Added.
  • http/tests/from-origin/document-from-origin-same-site-blocked-expected.txt: Added.
  • http/tests/from-origin/document-from-origin-same-site-blocked.html: Added.
  • http/tests/from-origin/document-nested-from-origin-same-accepted-expected.txt: Added.
  • http/tests/from-origin/document-nested-from-origin-same-accepted.html: Added.
  • http/tests/from-origin/document-nested-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/document-nested-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/fetch-data-iframe-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/fetch-data-iframe-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/fetch-from-origin-same-accepted-expected.txt: Added.
  • http/tests/from-origin/fetch-from-origin-same-accepted.html: Added.
  • http/tests/from-origin/fetch-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/fetch-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/fetch-from-origin-same-site-accepted-expected.txt: Added.
  • http/tests/from-origin/fetch-from-origin-same-site-accepted.html: Added.
  • http/tests/from-origin/fetch-from-origin-same-site-blocked-expected.txt: Added.
  • http/tests/from-origin/fetch-from-origin-same-site-blocked.html: Added.
  • http/tests/from-origin/fetch-iframe-from-origin-same-accepted-expected.txt: Added.
  • http/tests/from-origin/fetch-iframe-from-origin-same-accepted.html: Added.
  • http/tests/from-origin/fetch-iframe-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/fetch-iframe-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/image-about-blank-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/image-about-blank-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/image-from-origin-same-accepted-expected.txt: Added.
  • http/tests/from-origin/image-from-origin-same-accepted.html: Added.
  • http/tests/from-origin/image-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/image-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/image-from-origin-same-site-accepted-expected.txt: Added.
  • http/tests/from-origin/image-from-origin-same-site-accepted.html: Added.
  • http/tests/from-origin/image-from-origin-same-site-blocked-expected.txt: Added.
  • http/tests/from-origin/image-from-origin-same-site-blocked.html: Added.
  • http/tests/from-origin/redirect-document-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/redirect-document-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/redirect-fetch-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/redirect-fetch-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/redirect-image-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/redirect-image-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/redirect-script-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/redirect-script-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/redirect-xhr-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/redirect-xhr-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/resources: Added.
  • http/tests/from-origin/resources/fetch.php: Added.
  • http/tests/from-origin/resources/iframe.php: Added.
  • http/tests/from-origin/resources/iframeIPAddressFetch.html: Added.
  • http/tests/from-origin/resources/iframeLocalhostFetch.html: Added.
  • http/tests/from-origin/resources/image.php: Added.
  • http/tests/from-origin/resources/nestedIPAddressIframe.html: Added.
  • http/tests/from-origin/resources/nestedLocalhostIframe.html: Added.
  • http/tests/from-origin/resources/redirect.php: Added.
  • http/tests/from-origin/resources/script.php: Added.
  • http/tests/from-origin/resources/xhr.php: Added.
  • http/tests/from-origin/sandboxed-sub-frame-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/sandboxed-sub-frame-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/sandboxed-sub-frame-nested-cross-origin-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/sandboxed-sub-frame-nested-cross-origin-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/sandboxed-sub-frame-nested-same-origin-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/sandboxed-sub-frame-nested-same-origin-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/script-from-origin-same-accepted-expected.txt: Added.
  • http/tests/from-origin/script-from-origin-same-accepted.html: Added.
  • http/tests/from-origin/script-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/script-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/script-from-origin-same-site-accepted-expected.txt: Added.
  • http/tests/from-origin/script-from-origin-same-site-accepted.html: Added.
  • http/tests/from-origin/script-from-origin-same-site-blocked-expected.txt: Added.
  • http/tests/from-origin/script-from-origin-same-site-blocked.html: Added.
  • http/tests/from-origin/top-frame-document-from-origin-same-accepted-expected.txt: Added.
  • http/tests/from-origin/top-frame-document-from-origin-same-accepted.php: Added.
  • http/tests/from-origin/xhr-from-origin-same-accepted-expected.txt: Added.
  • http/tests/from-origin/xhr-from-origin-same-accepted.html: Added.
  • http/tests/from-origin/xhr-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/xhr-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/xhr-from-origin-same-site-accepted-expected.txt: Added.
  • http/tests/from-origin/xhr-from-origin-same-site-accepted.html: Added.
  • http/tests/from-origin/xhr-from-origin-same-site-blocked-expected.txt: Added.
  • http/tests/from-origin/xhr-from-origin-same-site-blocked.html: Added.
  • platform/mac-wk2/TestExpectations:

Suppressed console output for imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html.

  • platform/wk2/TestExpectations:

The http/tests/from-origin/ directory marked as [ Pass ].

12:48 PM Changeset in webkit [230967] by commit-queue@webkit.org
  • 2 edits in trunk

Land test262 test results associated with Test262 runner
https://bugs.webkit.org/show_bug.cgi?id=184667

Patch by Leo Balter <Leo Balter> on 2018-04-24
Reviewed by Michael Saboff.

  • .gitignore: Ignore test262 results file.
12:48 PM Changeset in webkit [230966] by Antti Koivisto
  • 7 edits
    4 moves in trunk/Source/WebCore

Rename LayoutCtx.h/cpp to LayoutContext.h/cpp
https://bugs.webkit.org/show_bug.cgi?id=184922

Reviewed by Zalan Bujtas.

To achieve this the existing LayoutContext class is renamed to FrameViewLayoutContext.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/LayoutContext.cpp: Copied from Source/WebCore/layout/LayoutCtx.cpp.
  • layout/LayoutContext.h: Copied from Source/WebCore/layout/LayoutCtx.h.
  • layout/LayoutCtx.cpp: Removed.
  • layout/LayoutCtx.h: Removed.
  • page/FrameView.cpp:

(WebCore::FrameView::shouldDeferScrollUpdateAfterContentSizeChange):
(WebCore::FrameView::updateLayoutViewport):
(WebCore::FrameView::updateLayerPositionsAfterScrolling):
(WebCore::FrameView::updateCompositingLayersAfterScrolling):
(WebCore::FrameView::availableContentSizeChanged):

  • page/FrameView.h:
  • page/FrameViewLayoutContext.cpp: Copied from Source/WebCore/page/LayoutContext.cpp.

(WebCore::LayoutScope::LayoutScope):
(WebCore::FrameViewLayoutContext::FrameViewLayoutContext):
(WebCore::FrameViewLayoutContext::~FrameViewLayoutContext):
(WebCore::FrameViewLayoutContext::layout):
(WebCore::FrameViewLayoutContext::runOrScheduleAsynchronousTasks):
(WebCore::FrameViewLayoutContext::runAsynchronousTasks):
(WebCore::FrameViewLayoutContext::flushAsynchronousTasks):
(WebCore::FrameViewLayoutContext::reset):
(WebCore::FrameViewLayoutContext::needsLayout const):
(WebCore::FrameViewLayoutContext::setNeedsLayout):
(WebCore::FrameViewLayoutContext::enableSetNeedsLayout):
(WebCore::FrameViewLayoutContext::disableSetNeedsLayout):
(WebCore::FrameViewLayoutContext::scheduleLayout):
(WebCore::FrameViewLayoutContext::unscheduleLayout):
(WebCore::FrameViewLayoutContext::scheduleSubtreeLayout):
(WebCore::FrameViewLayoutContext::layoutTimerFired):
(WebCore::FrameViewLayoutContext::convertSubtreeLayoutToFullLayout):
(WebCore::FrameViewLayoutContext::setSubtreeLayoutRoot):
(WebCore::FrameViewLayoutContext::canPerformLayout const):
(WebCore::FrameViewLayoutContext::applyTextSizingIfNeeded):
(WebCore::FrameViewLayoutContext::updateStyleForLayout):
(WebCore::FrameViewLayoutContext::handleLayoutWithFrameFlatteningIfNeeded):
(WebCore::FrameViewLayoutContext::startLayoutAtMainFrameViewIfNeeded):
(WebCore::FrameViewLayoutContext::layoutDelta const):
(WebCore::FrameViewLayoutContext::addLayoutDelta):
(WebCore::FrameViewLayoutContext::layoutDeltaMatches):
(WebCore::FrameViewLayoutContext::layoutState const):
(WebCore::FrameViewLayoutContext::pushLayoutState):
(WebCore::FrameViewLayoutContext::pushLayoutStateForPaginationIfNeeded):
(WebCore::FrameViewLayoutContext::popLayoutState):
(WebCore::FrameViewLayoutContext::checkLayoutState):
(WebCore::FrameViewLayoutContext::frame const):
(WebCore::FrameViewLayoutContext::view const):
(WebCore::FrameViewLayoutContext::renderView const):
(WebCore::FrameViewLayoutContext::document const):
(WebCore::LayoutContext::LayoutContext): Deleted.
(WebCore::LayoutContext::~LayoutContext): Deleted.
(WebCore::LayoutContext::layout): Deleted.
(WebCore::LayoutContext::runOrScheduleAsynchronousTasks): Deleted.
(WebCore::LayoutContext::runAsynchronousTasks): Deleted.
(WebCore::LayoutContext::flushAsynchronousTasks): Deleted.
(WebCore::LayoutContext::reset): Deleted.
(WebCore::LayoutContext::needsLayout const): Deleted.
(WebCore::LayoutContext::setNeedsLayout): Deleted.
(WebCore::LayoutContext::enableSetNeedsLayout): Deleted.
(WebCore::LayoutContext::disableSetNeedsLayout): Deleted.
(WebCore::LayoutContext::scheduleLayout): Deleted.
(WebCore::LayoutContext::unscheduleLayout): Deleted.
(WebCore::LayoutContext::scheduleSubtreeLayout): Deleted.
(WebCore::LayoutContext::layoutTimerFired): Deleted.
(WebCore::LayoutContext::convertSubtreeLayoutToFullLayout): Deleted.
(WebCore::LayoutContext::setSubtreeLayoutRoot): Deleted.
(WebCore::LayoutContext::canPerformLayout const): Deleted.
(WebCore::LayoutContext::applyTextSizingIfNeeded): Deleted.
(WebCore::LayoutContext::updateStyleForLayout): Deleted.
(WebCore::LayoutContext::handleLayoutWithFrameFlatteningIfNeeded): Deleted.
(WebCore::LayoutContext::startLayoutAtMainFrameViewIfNeeded): Deleted.
(WebCore::LayoutContext::layoutDelta const): Deleted.
(WebCore::LayoutContext::addLayoutDelta): Deleted.
(WebCore::LayoutContext::layoutDeltaMatches): Deleted.
(WebCore::LayoutContext::layoutState const): Deleted.
(WebCore::LayoutContext::pushLayoutState): Deleted.
(WebCore::LayoutContext::pushLayoutStateForPaginationIfNeeded): Deleted.
(WebCore::LayoutContext::popLayoutState): Deleted.
(WebCore::LayoutContext::checkLayoutState): Deleted.
(WebCore::LayoutContext::frame const): Deleted.
(WebCore::LayoutContext::view const): Deleted.
(WebCore::LayoutContext::renderView const): Deleted.
(WebCore::LayoutContext::document const): Deleted.

  • page/FrameViewLayoutContext.h: Copied from Source/WebCore/page/LayoutContext.h.

(WebCore::LayoutContext::startDisallowingLayout): Deleted.
(WebCore::LayoutContext::endDisallowingLayout): Deleted.
(WebCore::LayoutContext::layoutPhase const): Deleted.
(WebCore::LayoutContext::isLayoutNested const): Deleted.
(WebCore::LayoutContext::isLayoutPending const): Deleted.
(WebCore::LayoutContext::isInLayout const): Deleted.
(WebCore::LayoutContext::isInRenderTreeLayout const): Deleted.
(WebCore::LayoutContext::inPaintableState const): Deleted.
(WebCore::LayoutContext::layoutCount const): Deleted.
(WebCore::LayoutContext::subtreeLayoutRoot const): Deleted.
(WebCore::LayoutContext::clearSubtreeLayoutRoot): Deleted.
(WebCore::LayoutContext::resetFirstLayoutFlag): Deleted.
(WebCore::LayoutContext::didFirstLayout const): Deleted.
(WebCore::LayoutContext::setNeedsFullRepaint): Deleted.
(WebCore::LayoutContext::needsFullRepaint const): Deleted.
(WebCore::LayoutContext::isPaintOffsetCacheEnabled const): Deleted.
(WebCore::LayoutContext::layoutDisallowed const): Deleted.
(WebCore::LayoutContext::isLayoutSchedulingEnabled const): Deleted.
(WebCore::LayoutContext::inAsynchronousTasks const): Deleted.
(WebCore::LayoutContext::disablePaintOffsetCache): Deleted.
(WebCore::LayoutContext::enablePaintOffsetCache): Deleted.

  • page/LayoutContext.cpp: Removed.
  • page/LayoutContext.h: Removed.
  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):
(WebCore::LayoutState::computePaginationInformation):
(WebCore::LayoutState::establishLineGrid):
(WebCore::LayoutStateDisabler::LayoutStateDisabler):

  • rendering/LayoutState.h:
12:19 PM Changeset in webkit [230965] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebCore

Need to acquire the VM lock before calling toNumber on a JSValue.
https://bugs.webkit.org/show_bug.cgi?id=184924
<rdar://problem/39690679>

Reviewed by Saam Barati.

  • bridge/objc/objc_utility.mm:

(JSC::Bindings::convertValueToObjcValue):

11:54 AM Changeset in webkit [230964] by fpizlo@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

DFG CSE should know how to decay a MultiGetByOffset
https://bugs.webkit.org/show_bug.cgi?id=159859

Reviewed by Keith Miller.

This teaches Node::remove() how to decay a MultiGetByOffset to a CheckStructure, so that
clobberize() can report a def() for MultiGetByOffset.

This is a slight improvement to codegen in splay because splay is a heavy user of
MultiGetByOffset. It uses it redundantly in one of its hot functions (the function called
"splay_"). I don't see a net speed-up in the benchmark. However, this is just a first step to
removing MultiXByOffset-related redundancies, which by my estimates account for 16% of
splay's time.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGNode.cpp:

(JSC::DFG::Node::remove):
(JSC::DFG::Node::removeWithoutChecks):
(JSC::DFG::Node::replaceWith):
(JSC::DFG::Node::replaceWithWithoutChecks):

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToMultiGetByOffset):
(JSC::DFG::Node::replaceWith): Deleted.

  • dfg/DFGNodeType.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:
11:15 AM Changeset in webkit [230963] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION(r221839): Fix requests with FormData containing empty files
https://bugs.webkit.org/show_bug.cgi?id=184490
<rdar://problem/39385169>

Patch by Tadeu Zagallo <Tadeu Zagallo> on 2018-04-24
Reviewed by Geoffrey Garen.

Source/WebCore:

We should not append the blob to the FormData when it is a file but has no path. It broke
the submission since the request was failing to read the file in FormDataStreamCFNet.h:156

Test: http/tests/local/formdata/send-form-data-with-empty-file.html

  • platform/network/FormData.cpp:

(WebCore::FormData::appendMultiPartFileValue):

LayoutTests:

Verify that the final boundary is present in the request body when submitting FormData containing an empty file.

  • http/tests/local/formdata/send-form-data-with-empty-file-expected.txt: Added.
  • http/tests/local/formdata/send-form-data-with-empty-file.html: Added.
10:50 AM Changeset in webkit [230962] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Fix project file after r230931.

  • WebCore.xcodeproj/project.pbxproj:
10:32 AM Changeset in webkit [230961] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Update API docs with information on which run loop the VM will use
https://bugs.webkit.org/show_bug.cgi?id=184900
<rdar://problem/39166054>

Reviewed by Mark Lam.

  • API/JSContextRef.h:
  • API/JSVirtualMachine.h:
10:17 AM Changeset in webkit [230960] by Dewei Zhu
  • 9 edits
    1 add in trunk/Websites/perf.webkit.org

Tool scripts should not use PrivilegedAPI from 'public/v3/privileged-api.js'.
https://bugs.webkit.org/show_bug.cgi?id=184766

Reviewed by Ryosuke Niwa.

For tools, we should not use PrivilegedAPI for tools as current PrivilegedAPI
is used by UI and it is unnecessary to generate CSRF token for tools.
Will post a followup patch that creates a PrivilegedAPI used by tools.
Make a change on TestServer.inject and MockRemoteAPI.inject to allow specifying
BrowserPrivilegedAPI or NodePrivilegedAPI in the test. Currently defaults to
BrowserPrivilegedAPI as this is the test behavior before this change.

  • server-tests/resources/common-operations.js: Allow passing type of privileged api

information to TestServer.inject.

  • server-tests/resources/test-server.js: Conditionally inject PrivilegedAPI based on

type of privileged api.
(TestServer.prototype.inject):
(TestServer):

  • server-tests/tools-buildbot-triggerable-tests.js: Updated 'prepareServerTest' invocation.
  • server-tests/tools-os-build-fetcher-tests.js: Updated 'prepareServerTest' invocation.
  • server-tests/tools-sync-buildbot-integration-tests.js: Temporarily injecting

BrowserPrivilegedAPI for mocking UploadedFile. The actual script does not rely on
BrowserPrivilegedAPI at all.
(async.createTestGroupWihPatch):
(beforeEach):

  • tools/js/privileged-api.js: Added NodePrivilegedAPI

(NodePrivilegedAPI.prototype.sendRequest):
(NodePrivilegedAPI.configure): Configure the slave name and password.
(NodePrivilegedAPI):

  • tools/js/v3-models.js: Removed the import of PrivilegedAPI.
  • unit-tests/privileged-api-tests.js:. Added unit tests for NodePrivilegedAPI.
  • unit-tests/resources/mock-remote-api.js: Conditionally inject PrivilegedAPI based on

the type of privileged api.
(MockRemoteAPI.inject):

9:39 AM Changeset in webkit [230959] by jmarcell@apple.com
  • 20 edits
    2 deletes in tags/Safari-606.1.15

Revert r230808. rdar://problem/39671220

9:17 AM Changeset in webkit [230958] by jer.noble@apple.com
  • 12 edits in trunk/Source

Don't add system framework paths to FRAMEWORK_SEARCH_PATHS
https://bugs.webkit.org/show_bug.cgi?id=184786

Reviewed by Tim Horton.

Source/WebCore:

  • Configurations/WebCore.xcconfig:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebCore/PAL:

  • Configurations/PAL.xcconfig:

Source/WebKit:

  • Configurations/BaseTarget.xcconfig:
  • DerivedSources.make:

Source/WebKitLegacy/mac:

  • Configurations/WebKitLegacy.xcconfig:
  • MigrateHeaders.make:
8:58 AM Changeset in webkit [230957] by Ryan Haddad
  • 8 edits in trunk/Source/WebKit

Unreviewed, rolling out r230938.

Introduced two ProcessSwap API test failures.

Reverted changeset:

"Keep around a pre-warmed process when doing process swap on
navigation"
https://bugs.webkit.org/show_bug.cgi?id=184765
https://trac.webkit.org/changeset/230938

8:53 AM Changeset in webkit [230956] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

$vm.totalGCTime() should be a thing
https://bugs.webkit.org/show_bug.cgi?id=184916

Reviewed by Sam Weinig.

When debugging regressions in tests that are GC heavy, it's nice to be able to query the total
time spent in GC to determine if the regression is because the GC got slower.

This adds $vm.totalGCTime(), which tells you the total time spent in GC, in seconds.

  • heap/Heap.cpp:

(JSC::Heap::runEndPhase):

  • heap/Heap.h:

(JSC::Heap::totalGCTime const):

  • tools/JSDollarVM.cpp:

(JSC::functionTotalGCTime):
(JSC::JSDollarVM::finishCreation):

8:27 AM Changeset in webkit [230955] by zandobersek@gmail.com
  • 13 edits in trunk/Source

[CoordGraphics] Remove dead fixed layer code
https://bugs.webkit.org/show_bug.cgi?id=184912

Reviewed by Michael Catanzaro.

Source/WebCore:

Remove CoordinatedGraphicsLayer::setFixedToViewport() and the
corresponding attribute on the CoordinatedGraphicsLayerState struct.
The method is not called anywhere since r230952.

CoordinatedGraphicsState struct also loses the scrollPosition attribute
that also isn't used anymore.

Changes to GraphicsLayerTextureMapper class mirror those made to
CoordinatedGraphicsLayer, removing support for the fixed-to-viewport
attribute. This too was not called from anywhere.

All that enables us removing fixed-to-viewport handling in the
TextureMapperLayer class. Along with related changes in the
CoordinatedGraphicsScene class, we're able to remove a bunch of methods
and member variables that are not used or needed anymore.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
(WebCore::GraphicsLayerTextureMapper::setFixedToViewport): Deleted.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computeTransformsRecursive):
(WebCore::TextureMapperLayer::setFixedToViewport): Deleted.
(WebCore::TextureMapperLayer::isAncestorFixedToViewport const): Deleted.
(WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded): Deleted.

  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::syncLayerState):
(WebCore::CoordinatedGraphicsLayer::setFixedToViewport): Deleted.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:

(WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):

Source/WebKit:

Drop the unused fixed layer handling code in CoordinatedGraphicsScene.
The m_fixedLayers container can be removed, along with the
adjustPositionForFixedLayers() method that operated on that container.

This was the only method that operated with the m_scrollPosition member
variable and the contentsPosition argument that's passed to the
CoordinatedGraphicsScene::paintToCurrentGLContext() method. Both of
these are removed, along with the scrollPosition attribute on the
CoordinatedGraphicsState struct.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebKit::CoordinatedGraphicsScene::setLayerState):
(WebKit::CoordinatedGraphicsScene::deleteLayer):
(WebKit::CoordinatedGraphicsScene::commitSceneState):
(WebKit::CoordinatedGraphicsScene::purgeGLResources):
(WebKit::CoordinatedGraphicsScene::adjustPositionForFixedLayers): Deleted.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::renderLayerTree):

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::flushPendingLayerChanges):

8:26 AM Changeset in webkit [230954] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit

REGRESSION(r230950): Faulty commit sequencing in CoordinatedGraphicsScene
https://bugs.webkit.org/show_bug.cgi?id=184917

Reviewed by Michael Catanzaro.

After r230950, current animation state for a given layer is also taken
into account when determining whether or not the layer requires a
backing store. For that to work properly, all the animation state has
to be updated before the backing store work. This patch changes the
order of helper method invocations in
CoordinatedGraphicsScene::setLayerState() to address that.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::setLayerState):

4:01 AM Changeset in webkit [230953] by Carlos Garcia Campos
  • 61 edits
    5 copies
    7 adds in trunk

Unreviewed. Update W3C WebDriver imported tests.

Tools:

  • Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py:

(WebDriverW3CExecutor.init):

WebDriverTests:

  • imported/w3c/importer.json:
  • imported/w3c/tools/webdriver/webdriver/client.py:
  • imported/w3c/tools/webdriver/webdriver/transport.py:
  • imported/w3c/tools/wptrunner/README.rst:
  • imported/w3c/tools/wptrunner/requirements_chrome.txt:
  • imported/w3c/tools/wptrunner/requirements_edge.txt:
  • imported/w3c/tools/wptrunner/requirements_firefox.txt:
  • imported/w3c/tools/wptrunner/requirements_ie.txt:
  • imported/w3c/tools/wptrunner/requirements_opera.txt:
  • imported/w3c/tools/wptrunner/requirements_safari.txt: Added.
  • imported/w3c/tools/wptrunner/requirements_sauce.txt:
  • imported/w3c/tools/wptrunner/requirements_webkit.txt: Added.
  • imported/w3c/tools/wptrunner/tox.ini:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/init.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/chrome.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/chrome_android.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/edge.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/firefox.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/ie.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/opera.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/safari.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/browsers/sauce.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.bat:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sh:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/servo.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/servodriver.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/webkit.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/environment.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/base.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executormarionette.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorselenium.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorservo.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorservodriver.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorwebkit.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/executors/protocol.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/executors/pytestrunner/runner.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/testharness_marionette.js:
  • imported/w3c/tools/wptrunner/wptrunner/executors/testharness_marionette_resume.js: Added.
  • imported/w3c/tools/wptrunner/wptrunner/executors/testharness_webdriver_resume.js:
  • imported/w3c/tools/wptrunner/wptrunner/testdriver-extra.js:
  • imported/w3c/tools/wptrunner/wptrunner/testloader.py:
  • imported/w3c/tools/wptrunner/wptrunner/testrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/base.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_products.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/update/metadata.py:
  • imported/w3c/tools/wptrunner/wptrunner/update/update.py:
  • imported/w3c/tools/wptrunner/wptrunner/webdriver_server.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptcommandline.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/wpttest.py:
  • imported/w3c/webdriver/tests/actions/modifier_click.py:
  • imported/w3c/webdriver/tests/actions/mouse_dblclick.py:
  • imported/w3c/webdriver/tests/actions/mouse_pause_dblclick.py: Added.
  • imported/w3c/webdriver/tests/actions/special_keys.py:
  • imported/w3c/webdriver/tests/contexts/maximize_window.py:
  • imported/w3c/webdriver/tests/cookies/add_cookie.py:
  • imported/w3c/webdriver/tests/element_retrieval/find_element.py:
  • imported/w3c/webdriver/tests/element_retrieval/find_element_from_element.py:
  • imported/w3c/webdriver/tests/element_retrieval/find_elements.py:
  • imported/w3c/webdriver/tests/element_retrieval/find_elements_from_element.py:
  • imported/w3c/webdriver/tests/element_send_keys/form_controls.py:
  • imported/w3c/webdriver/tests/execute_async_script/collections.py: Added.
  • imported/w3c/webdriver/tests/execute_async_script/user_prompts.py:
  • imported/w3c/webdriver/tests/execute_script/collections.py: Added.
  • imported/w3c/webdriver/tests/execute_script/user_prompts.py:
  • imported/w3c/webdriver/tests/fullscreen_window.py:
  • imported/w3c/webdriver/tests/interaction/element_clear.py:
  • imported/w3c/webdriver/tests/minimize_window.py:
  • imported/w3c/webdriver/tests/set_window_rect.py:
  • imported/w3c/webdriver/tests/support/fixtures.py:
2:24 AM Changeset in webkit [230952] by zandobersek@gmail.com
  • 13 edits
    1 delete in trunk/Source

[CoordGraphics] Remove unused fixed layout functionality
https://bugs.webkit.org/show_bug.cgi?id=184908

Reviewed by Carlos Garcia Campos.

Ports using the CoordinatedGraphics subsystem don't expose fixed layout
support. As such, we're able to remove a lot of unused code and
unnecessary USE(COORDINATED_GRAPHICS) special cases in generic sections
in both WebCore and WebKit.

Source/WebCore:

With fixed layout not available for use to users of the GTK+ and WPE
ports, we can remove the ScrollingCoordinatorCoordinatedGraphics
implementation, making room for an implementation that inherits from
AsyncScrollingCoordinator in the future. For that purpose the
ScrollingCoordinator::create() function is moved into the
ScrollingCoordinatorCoordinatedGraphics.cpp file already.

This also enables removing delegatedScrollRequested() method from
HostWindow and the inheriting ChromeClient interface.

  • loader/EmptyClients.h:
  • page/Chrome.cpp:

(WebCore::Chrome::delegatedScrollRequested): Deleted.

  • page/Chrome.h:
  • page/ChromeClient.h:
  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::create):

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:

(WebCore::ScrollingCoordinator::create):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::ScrollingCoordinatorCoordinatedGraphics): Deleted.
(WebCore::ScrollingCoordinatorCoordinatedGraphics::attachToStateTree): Deleted.
(WebCore::ScrollingCoordinatorCoordinatedGraphics::detachFromStateTree): Deleted.
(WebCore::ScrollingCoordinatorCoordinatedGraphics::clearStateTree): Deleted.
(WebCore::ScrollingCoordinatorCoordinatedGraphics::updateNodeLayer): Deleted.
(WebCore::ScrollingCoordinatorCoordinatedGraphics::updateNodeViewportConstraints): Deleted.
(WebCore::ScrollingCoordinatorCoordinatedGraphics::requestScrollPositionUpdate): Deleted.

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h: Removed.
  • platform/HostWindow.h:

Source/WebKit:

Remove USE(COORDINATED_GRAPHICS) special-casing from the
WebPage::setUseFixedLayout() method. This is not possible to enable for
the GTK+ and WPE ports that use the CoordinatedGraphics subsytem via
API. Removing all this unlocks removing considerable amounts of dead
code and complexities in CoordinatedGraphics.

WebChromeClient::delegatedScrollRequested() method is removed, along
with the WebPage::pageDidRequestScroll() method that was only called
from there.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::delegatedScrollRequested): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setUseFixedLayout):
(WebKit::WebPage::pageDidRequestScroll): Deleted.

  • WebProcess/WebPage/WebPage.h:
1:31 AM Changeset in webkit [230951] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Attempt to fix the Apple Internal build following r230922
(https://bugs.webkit.org/show_bug.cgi?id=184737)

Cast the return value of std::map::size() to a size_t before logging it with format specifier
"%zu". std::map::size() returns a size_type. According to <http://en.cppreference.com/w/cpp/container/map>
size_type is "usually a size_t", but it may not be. An Apple Internal debug builder reports
that size_type = unsigned int != unsigned long = size_t.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::provideMediaData):

1:15 AM Changeset in webkit [230950] by zandobersek@gmail.com
  • 5 edits in trunk/Source

[CoordGraphics] Avoid painting backing stores for zero-opacity layers
https://bugs.webkit.org/show_bug.cgi?id=184143

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Skip generating backing stores for layers that have zero opacity and do
not animate the opacity value. In the current CoordinatedGraphics system
this can end up saving loads of memory on Web content that deploys a
large number of such elements.

  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::shouldHaveBackingStore const):

Source/WebKit:

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::layerShouldHaveBackingStore):
Mirror CoordinatedGraphicsLayer's backing store requirements.

1:06 AM Changeset in webkit [230949] by zandobersek@gmail.com
  • 4 edits
    1 delete in trunk

[WPE] Remove libgbm dependency
https://bugs.webkit.org/show_bug.cgi?id=184906

Reviewed by Carlos Garcia Campos.

.:

Remove the libgbm CMake search module. It's not necessary anymore
after r230562.

  • Source/cmake/FindLibGBM.cmake: Removed.

Tools:

Stop searching for libgbm, using its compiler flags for the
HeadlessViewBackend compilation and linking against the .so object.
This is not necessary anymore after r230562 switched to a different
backend implementation for testing.

  • wpe/HeadlessViewBackend/CMakeLists.txt:
  • wpe/install-dependencies:
1:02 AM Changeset in webkit [230948] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Attempt to fix the Apple Internal build following r230944
(https://bugs.webkit.org/show_bug.cgi?id=159464)

  • platform/network/mac/CookieJarMac.mm:
12:51 AM Changeset in webkit [230947] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Another attempt to fix the Mac and iOS build following r230944
(https://bugs.webkit.org/show_bug.cgi?id=159464)

  • platform/network/mac/CookieJarMac.mm:

(WebCore::policyProperties):

12:47 AM Changeset in webkit [230946] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Attempt to fix the Mac and iOS build following r230944
(https://bugs.webkit.org/show_bug.cgi?id=159464)

  • platform/network/mac/CookieJarMac.mm:

(WebCore::policyProperties):

12:44 AM Changeset in webkit [230945] by dbates@webkit.org
  • 2 edits in trunk/Source

Fix up order of ChangeLog entries following r230944.

12:36 AM Changeset in webkit [230944] by dbates@webkit.org
  • 56 edits
    2 copies
    56 adds in trunk

Source/WebCore:
Make WebLoaderStrategy send to NetworkResourceLoader necessary parameters to handle full loads in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=184763

Patch by Youenn Fablet <youenn@apple.com> on 2018-04-23
Reviewed by Chris Dumez.

No change of behavior yet since we do not use these parameters in NetworkProcess yet.

Add PreflightPolicy and CSP response headers as ResourceLoaderOptions.
This allows passing them from DocumentThreadableLoader to WebLoaderStrategy.

Allow getting the original headers from a SubresourceLoader.
This allows passing them from DocumentThreadableLoader down to WebLoaderStrategy.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::startLoadingBlobURL):
(WebCore::FetchLoader::start):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):

  • loader/ResourceLoaderOptions.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::originalHeaders const):

  • loader/SubresourceLoader.h:
  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions):
(WebCore::ThreadableLoaderOptions::isolatedCopy const):

  • loader/ThreadableLoader.h:
  • page/EventSource.cpp:

(WebCore::EventSource::connect):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):

Source/WebCore/PAL:
Implement Same-Site cookies
https://bugs.webkit.org/show_bug.cgi?id=159464
<rdar://problem/27196358>

Reviewed by Brent Fulgham.

Forward declare some SPI.

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:
Make WebLoaderStrategy send to NetworkResourceLoader necessary parameters to handle full loads in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=184763

Patch by Youenn Fablet <youenn@apple.com> on 2018-04-23
Reviewed by Chris Dumez.

Set all required NetworkResourceLoadParameters for asynchronous loads.
This includes preflight policy, CSP response headers, SecurityOrigin and content blockers identifier.

Update NetworkLoadChecker to handle preflight policy.
This is not needed right now since sync XHR and ping loads are using the default ConsiderPreflight policy.
But this will be needed for XHR/fetch/EventSource loads.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::validateResponse):
(WebKit::NetworkLoadChecker::checkCORSRequest):

  • NetworkProcess/NetworkLoadChecker.h:

(WebKit::NetworkLoadChecker::create):

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:
  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::PingLoad):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

Source/WebKitLegacy/mac:
Implement Same-Site cookies
https://bugs.webkit.org/show_bug.cgi?id=159464
<rdar://problem/27196358>

Reviewed by Brent Fulgham.

Pass the Same-Site info through the strategy.

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::cookiesForDOM):
(WebPlatformStrategies::setCookiesFromDOM):
(WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebPlatformStrategies::getRawCookies):

Source/WebKitLegacy/win:
Implement Same-Site cookies
https://bugs.webkit.org/show_bug.cgi?id=159464
<rdar://problem/27196358>

Reviewed by Brent Fulgham.

Pass the Same-Site info through the strategy.

  • WebCoreSupport/WebPlatformStrategies.cpp:

(WebPlatformStrategies::cookiesForDOM):
(WebPlatformStrategies::setCookiesFromDOM):
(WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebPlatformStrategies::getRawCookies):

  • WebCoreSupport/WebPlatformStrategies.h:

LayoutTests:
Implement Same-Site cookies
https://bugs.webkit.org/show_bug.cgi?id=159464
<rdar://problem/27196358>

Reviewed by Brent Fulgham.

Add tests. These tests are skipped on all ports for now, including Mac and iOS. We will
look to subsequently enable the tests for Mac and iOS once we have CFNetwork support for
Same-Site cookies.

The following tests and utilities were taken in whole or in part from Blink:

http/tests/cookies/resources/echo-json.php
http/tests/cookies/resources/post-cookies-onmessage.php
http/tests/cookies/resources/post-cookies-to-opener.php
http/tests/cookies/resources/testharness-helpers.js
http/tests/cookies/same-site/popup-cross-site-post.html
http/tests/cookies/same-site/popup-cross-site.html
http/tests/cookies/same-site/popup-same-site-post.html
http/tests/cookies/same-site/popup-same-site.html

The following files were derived from tests taken from Blink:

http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html
http/tests/cookies/same-site/popup-same-site-via-same-site-redirect.html

  • TestExpectations: Skip on all ports for now.
  • http/tests/cookies/resources/cookie-utilities.js: Added.

(createCookie):
(setBaseDocumentWhenFetchingDOMCookies):
(setDOMCookie):

  • http/tests/cookies/resources/cookie-utility.php:
  • http/tests/cookies/resources/echo-json.php: Added.
  • http/tests/cookies/resources/post-cookies-onmessage.php: Added.
  • http/tests/cookies/resources/post-cookies-to-opener.php: Added.
  • http/tests/cookies/resources/testharness-helpers.js: Added.

(clearKnownCookies):

  • http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-cookies-set-in-about-blank-iframe-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-cookies-set-in-about-blank-iframe.html: Added.
  • http/tests/cookies/same-site/fetch-in-about-blank-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-about-blank-page.html: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-iframe-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-iframe.html: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-service-worker.html: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-worker-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-worker.html: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-service-worker-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-service-worker.html: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-srcdoc-iframe-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-srcdoc-iframe.html: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-worker-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-worker.html: Added.
  • http/tests/cookies/same-site/popup-cross-site-expected.txt: Added.
  • http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Added.
  • http/tests/cookies/same-site/popup-cross-site-post.html: Added.
  • http/tests/cookies/same-site/popup-cross-site.html: Added.
  • http/tests/cookies/same-site/popup-same-site-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-post-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-post.html: Added.
  • http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html: Added.
  • http/tests/cookies/same-site/popup-same-site-via-same-site-redirect-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-via-same-site-redirect.html: Added.
  • http/tests/cookies/same-site/popup-same-site.html: Added.
  • http/tests/cookies/same-site/resources/click-hyperlink.php: Added.
  • http/tests/cookies/same-site/resources/echo-iframe-src.php: Added.
  • http/tests/cookies/same-site/resources/fetch-after-navigating-iframe-in-cross-origin-page.php: Added.
  • http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-from-cross-origin-page.php: Added.
  • http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.php: Added.
  • http/tests/cookies/same-site/resources/fetch-in-cross-origin-iframe.html: Added.
  • http/tests/cookies/same-site/resources/fetch-in-cross-origin-service-worker.html: Added.
  • http/tests/cookies/same-site/resources/fetch-in-cross-origin-worker.js: Added.

(async.checkResult):

  • http/tests/cookies/same-site/resources/fetch-in-same-origin-service-worker.php: Added.
  • http/tests/cookies/same-site/resources/fetch-in-same-origin-worker.js: Added.

(async.checkResult):

  • http/tests/cookies/same-site/resources/passthrough-service-worker.js: Added.
  • platform/mac-wk1/TestExpectations: Skip the Service Worker tests as they are not supported in LegacyWebKit.

Apr 23, 2018:

11:33 PM Changeset in webkit [230943] by Carlos Garcia Campos
  • 4 edits in trunk/Tools

[GLIB] Make it possible to use a different timeout for slow test cases in GLib tests
https://bugs.webkit.org/show_bug.cgi?id=184816

Reviewed by Michael Catanzaro.

Pass a function from api test runner to glib test runner to check if a test is slow and use the given slow
timeout.

  • TestWebKitAPI/glib/TestExpectations.json:
  • glib/api_test_runner.py:

(TestRunner._run_test_glib.is_slow_test):
(TestRunner._run_test_glib):

  • glib/glib_test_runner.py:

(GLibTestRunner.init):
(GLibTestRunner._stop_timeout):
(GLibTestRunner._subtest_start):
(GLibTestRunner._subtest_end):

8:22 PM Changeset in webkit [230942] by youenn@apple.com
  • 18 edits in trunk/Source

Make WebLoaderStrategy send to NetworkResourceLoader necessary parameters to handle full loads in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=184763

Reviewed by Chris Dumez.

Source/WebCore:

No change of behavior yet since we do not use these parameters in NetworkProcess yet.

Add PreflightPolicy and CSP response headers as ResourceLoaderOptions.
This allows passing them from DocumentThreadableLoader to WebLoaderStrategy.

Allow getting the original headers from a SubresourceLoader.
This allows passing them from DocumentThreadableLoader down to WebLoaderStrategy.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::startLoadingBlobURL):
(WebCore::FetchLoader::start):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):

  • loader/ResourceLoaderOptions.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::originalHeaders const):

  • loader/SubresourceLoader.h:
  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions):
(WebCore::ThreadableLoaderOptions::isolatedCopy const):

  • loader/ThreadableLoader.h:
  • page/EventSource.cpp:

(WebCore::EventSource::connect):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):

Source/WebKit:

Set all required NetworkResourceLoadParameters for asynchronous loads.
This includes preflight policy, CSP response headers, SecurityOrigin and content blockers identifier.

Update NetworkLoadChecker to handle preflight policy.
This is not needed right now since sync XHR and ping loads are using the default ConsiderPreflight policy.
But this will be needed for XHR/fetch/EventSource loads.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::validateResponse):
(WebKit::NetworkLoadChecker::checkCORSRequest):

  • NetworkProcess/NetworkLoadChecker.h:

(WebKit::NetworkLoadChecker::create):

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:
  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::PingLoad):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

7:45 PM Changeset in webkit [230941] by Wenson Hsieh
  • 14 edits
    2 adds in trunk

[Extra zoom mode] REGRESSION(230860) Unable to change time input values using UI
https://bugs.webkit.org/show_bug.cgi?id=184901
<rdar://problem/39664797>

Reviewed by Tim Horton.

Source/WebKit:

Fixes the bug by falling back to setting the value of the focused input element in the case where the selection
is not editable. Also adds plumbing to make time pickers testable in extra zoom mode.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView setTimePickerValueToHour:minute:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setTimePickerValueToHour:minute:]):

Add plumbing to make it possible for WebKitTestRunner to simulate picking a time from the given hours and
minutes. This is currently only implemented for extra zoom mode, but may be implemented for UIKit's time picker
as well in the future by adjusting -[WKContentView setTimePickerValueToHour:minute:].

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setTextAsync):

Tools:

Introduce a new UIScriptController method to set the value of a currently focused input of type time, by
interacting with the UI. See WebKit ChangeLogs for more detail.

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::setTimePickerValue):

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

(WTR::UIScriptController::setTimePickerValue):

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

(WTR::UIScriptController::setTimePickerValue):

LayoutTests:

Adds a basic test to verify that tapping on an input of type time and choosing a time actually changes the
value of the input. Also adds a new UIHelper function to set the value of the currently focused input of type
time to the given hours and minutes.

  • fast/forms/extrazoom/time-picker-value-change-expected.txt: Added.
  • fast/forms/extrazoom/time-picker-value-change.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.setTimePickerValue):
(window.UIHelper):

7:34 PM Changeset in webkit [230940] by Dewei Zhu
  • 3 edits in trunk/Websites/perf.webkit.org

Revision information returned by querying measurement set api with analysis task id should contain commit order.
https://bugs.webkit.org/show_bug.cgi?id=184902

Reviewed by Ryosuke Niwa

This is a bug fix for r230719 which does not cover the case while querying measurement-set.php?analysisTask=$task_id

  • public/api/measurement-set.php: AnalysisResultsFetcher.fetch_commits results should contains commit order.
  • server-tests/api-measurement-set-tests.js: Added unit test for this change.
7:30 PM Changeset in webkit [230939] by Chris Dumez
  • 4 edits in trunk/LayoutTests

Unreviewed, fix a few tests that became flaky after r230919.

  • fast/events/beforeunload-alert-handled-keydown.html:
  • fast/events/beforeunload-alert-no-user-interaction.html:
  • fast/events/beforeunload-alert-user-interaction.html:
7:03 PM Changeset in webkit [230938] by sbarati@apple.com
  • 8 edits in trunk/Source/WebKit

Keep around a pre-warmed process when doing process swap on navigation
https://bugs.webkit.org/show_bug.cgi?id=184765

Reviewed by Ryosuke Niwa.

This patch makes it so that WebProcessPool prewarms a process when process
swap on navigation is turned on. When we do a process swap on navigation,
we first try to grab a prewarmed process before creating a new one.

We try to be smart about when to create these processes. The initial heuristic
that this patch chooses is when we reach the DidFirstVisuallyNonEmptyLayout
layout milestone. We're going to try to improve on this heuristic in:
https://bugs.webkit.org/show_bug.cgi?id=184899

This is a 40% progression on PLT with process swap on navigation turned on.

  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::notifyProcessPoolToPrewarm):
(WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):

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

(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::warmInitialProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::didReachGoodTimeToPrewarm):
(WebKit::WebProcessPool::processForNavigation):

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

(WebKit::WebProcessProxy::create):
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::m_isInPrewarmedPool):
(WebKit::m_userMediaCaptureManagerProxy): Deleted.

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::isInPrewarmedPool const):
(WebKit::WebProcessProxy::setIsInPrewarmedPool):

6:07 PM Changeset in webkit [230937] by Michael Catanzaro
  • 2 edits in trunk

[GTK] check target looks broken
https://bugs.webkit.org/show_bug.cgi?id=184407

Reviewed by Carlos Garcia Campos.

It's pretty clear that nobody has been using check for a long time.

We got rid of check-for-webkitdom-api-breaks a long time ago, when we stopped autogenerating
the DOM API, but it's still used in the check target. Fix this.

Also, the check target for some reason runs itself from the Source subdirectory of the
builddir, but the test script expects to be run from the toplevel build directory. Fix this
too.

Add VERBATIM for good measure.

  • Source/PlatformGTK.cmake:
6:07 PM Changeset in webkit [230936] by Michael Catanzaro
  • 5 edits in trunk/Source

[WPE][GTK] Remove WlUniquePtr<wl_display> footgun
https://bugs.webkit.org/show_bug.cgi?id=184405

Reviewed by Carlos Garcia Campos.

Source/WebCore:

WlUniquePtr<wl_display> is a pretty big footgun because there are two different destruction
functions -- wl_display_disconnect() and wl_display_destroy() -- and which one you need to
use depends on how the wl_display() was created, and WebKit uses both in different places.
So WlUniquePtr<wl_display> is pretty unsafe. See bug #176490 for an example of fun caused
by using it incorrectly.

Let's use std::unique_ptr with custom deleter functors instead.

  • platform/graphics/wayland/WlUniquePtr.h:

Source/WebKit:

Switch to std::unique_ptr.

  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::WaylandCompositor):

  • UIProcess/gtk/WaylandCompositor.h:

(WebKit::WaylandCompositor::DisplayDeleter::operator()):

5:37 PM Changeset in webkit [230935] by Ryan Haddad
  • 56 edits
    8 deletes in trunk

Unreviewed, rolling out r230921, r230923, r230924, r230932,
and r230934.
https://bugs.webkit.org/show_bug.cgi?id=184903

Builds still broken (Requested by ryanhaddad on #webkit).

Reverted changesets:

"Implement Same-Site cookies"
https://bugs.webkit.org/show_bug.cgi?id=159464
https://trac.webkit.org/changeset/230921

"Attempt to fix the build after r230921"
https://bugs.webkit.org/show_bug.cgi?id=159464
https://trac.webkit.org/changeset/230923

"Attempt to fix the Mac and iOS build after r230921"
https://bugs.webkit.org/show_bug.cgi?id=159464
https://trac.webkit.org/changeset/230924

"Another attempt to fix the Windows build following r230921"
https://bugs.webkit.org/show_bug.cgi?id=159464
https://trac.webkit.org/changeset/230932

"Attempt to fix the Apple Internal build following r230921"
https://bugs.webkit.org/show_bug.cgi?id=159464
https://trac.webkit.org/changeset/230934

Patch by Commit Queue <commit-queue@webkit.org> on 2018-04-23

5:26 PM Changeset in webkit [230934] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

Attempt to fix the Apple Internal build following r230921
(https://bugs.webkit.org/show_bug.cgi?id=159464)

Forward declare some SPI. Add availability guard.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
5:13 PM Changeset in webkit [230933] by Antti Koivisto
  • 6 edits
    3 deletes in trunk

REGRESSION (r220112): reCAPTCHA images render off screen on Twitch.tv app Log In or Sign Up
https://bugs.webkit.org/show_bug.cgi?id=182859
<rdar://problem/37595065>

Source/WebCore:

Reviewed by Zalan Bujtas.

Roll out this change from the trunk as the issue it fixed no longer occurs.

  • css/MediaQueryEvaluator.cpp:

(WebCore::orientationEvaluate):
(WebCore::aspectRatioEvaluate):
(WebCore::heightEvaluate):
(WebCore::widthEvaluate):

  • page/FrameView.cpp:

(WebCore::FrameView::layoutSizeForMediaQuery const): Deleted.

  • page/FrameView.h:
  • page/LayoutContext.cpp:

(WebCore::LayoutContext::handleLayoutWithFrameFlatteningIfNeeded):

LayoutTests:

Reviewed by Zalan Bujtas

  • fast/frames/flattening/media-query-growing-content-expected.txt: Removed.
  • fast/frames/flattening/media-query-growing-content.html: Removed.
  • fast/frames/flattening/resources/media-query-min-height-with-flattening.html: Removed.
4:56 PM Changeset in webkit [230932] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Another attempt to fix the Windows build following r230921
(https://bugs.webkit.org/show_bug.cgi?id=159464)

Pass dictionary key name using a string instead of a constant and pass CFURL* to
siteForCookies().

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdateResourceRequest):

4:08 PM Changeset in webkit [230931] by Alan Bujtas
  • 16 edits
    37 adds in trunk

[LayoutFormattingContext] Initial commit.
https://bugs.webkit.org/show_bug.cgi?id=184896

Reviewed by Antti Koivisto.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

This is the initial commit of the new layout component -class definitions only (and mostly public functions).
See the header files (and Tools/LayoutReloaded project) for more information.

Top level layout.
rootContainer = TreeBuilder::createLayoutTree(document);
rootDisplayBox = new Display::Box();
rootDisplayBox->setSize(viewportSize);
layoutContext = new LayoutContext(rootContainer, rootDisplayBox);
layoutContext->layout(rootContainer);

Driven by build time flag (currently off). Not testable yet.

  • Configurations/FeatureDefines.xcconfig:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/BlockFormatting/BlockFormattingContext.cpp: Added.
  • layout/BlockFormatting/BlockFormattingContext.h: Added.
  • layout/BlockFormatting/BlockFormattingState.cpp: Added.
  • layout/BlockFormatting/BlockFormattingState.h: Added.
  • layout/BlockFormatting/BlockMarginCollapse.cpp: Added.
  • layout/BlockFormatting/BlockMarginCollapse.h: Added.
  • layout/DisplayTree/DisplayBox.cpp: Added.
  • layout/DisplayTree/DisplayBox.h: Added.
  • layout/FloatingContext.cpp: Added.
  • layout/FloatingContext.h: Added.
  • layout/FloatingState.cpp: Added.
  • layout/FloatingState.h: Added.
  • layout/FormattingContext.cpp: Added.
  • layout/FormattingContext.h: Added.
  • layout/FormattingState.cpp: Added.
  • layout/FormattingState.h: Added.
  • layout/InlineFormatting/InlineFormattingContext.cpp: Added.
  • layout/InlineFormatting/InlineFormattingContext.h: Added.
  • layout/InlineFormatting/InlineFormattingState.cpp: Added.
  • layout/InlineFormatting/InlineFormattingState.h: Added.
  • layout/LayoutCtx.cpp: Added.
  • layout/LayoutCtx.h: Added.
  • layout/LayoutTree/LayoutBlockContainer.cpp: Added.
  • layout/LayoutTree/LayoutBlockContainer.h: Added.
  • layout/LayoutTree/LayoutBox.cpp: Added.
  • layout/LayoutTree/LayoutBox.h: Added.
  • layout/LayoutTree/LayoutContainer.cpp: Added.
  • layout/LayoutTree/LayoutContainer.h: Added.
  • layout/LayoutTree/LayoutCtx.h: Added.
  • layout/LayoutTree/LayoutInlineBox.cpp: Added.
  • layout/LayoutTree/LayoutInlineBox.h: Added.
  • layout/LayoutTree/LayoutInlineContainer.cpp: Added.
  • layout/LayoutTree/LayoutInlineContainer.h: Added.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
3:41 PM Changeset in webkit [230930] by pvollan@apple.com
  • 2 edits in trunk/Source/WTF

Deactivate the WindowServer connection for the WebContent process.
https://bugs.webkit.org/show_bug.cgi?id=184451
<rdar://problem/38313938>

Reviewed by Brent Fulgham.

Defining ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING as 1 will deactivate the WindowServer connection
for the WebContent process by enabling the call to 'CGSSetDenyWindowServerConnections(true)' on
process startup. After calling this function, every attempt to establish a connection to the
WindowServer from the WebContent process will fail, except for CA render server connections.

  • wtf/FeatureDefines.h:
3:26 PM Changeset in webkit [230929] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, revert accidental change to verbose flag.

  • dfg/DFGByteCodeParser.cpp:
3:25 PM Changeset in webkit [230928] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Roll out r226655 because it broke OSR entry when the pre-header is inadequately profiled.

Rubber stamped by Saam Barati.

This is a >2x speed-up in SunSpider/bitops-bitwise-and. We don't really care about SunSpider
anymore, but r226655 didn't result in any benchmark wins and just regressed this test by a lot.
Seems sensible to just roll it out.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::addToGraph):
(JSC::DFG::ByteCodeParser::parse):

2:59 PM Changeset in webkit [230927] by jmarcell@apple.com
  • 7 edits in trunk/Source

Versioning.

2:43 PM Changeset in webkit [230926] by Chris Dumez
  • 2 edits in trunk/Tools

[WKTR] Move navigation policy decision from the injected bundle to the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=184801

Reviewed by Geoffrey Garen.

Move navigation policy decision from the injected bundle to the UIProcess in WebKitTestRunner.
This is a more common configuration and therefore should be the default testing configuration.

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::decidePolicyForNavigationAction):
Always respond with 'PassThrough' in the InjectedBundle so the UIProcess
is now asked for the policy decision.

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

[GTK][WPE] Add Debug bots (build and tests) for WPE
https://bugs.webkit.org/show_bug.cgi?id=184887

Patch by Pablo Saavedra <Pablo Saavedra> on 2018-04-23
Reviewed by Carlos Alberto Lopez Perez.

Deployed 2 new bots for WPE Debug: wpe-linux-bot-3 and
wpe-linux-bot-4

Both bots have already the credentials ready to authenticated against
build.webkit.org. They provides the bots for the "debug" configuration over
the "WPE" platform and building for the "x86_64" architecture:
WPE Linux 64-bit Debug (Build) and WPE Linux 64-bit Debug (Tests) 

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
2:17 PM Changeset in webkit [230924] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Attempt to fix the Mac and iOS build after r230921
(https://bugs.webkit.org/show_bug.cgi?id=159464)

Pass strings for the dictionary key names instead of using an extern constant as the
latter may not be available on all systems.

  • platform/network/mac/CookieJarMac.mm:

(WebCore::setHTTPCookiesForURL):

2:10 PM Changeset in webkit [230923] by dbates@webkit.org
  • 5 edits in trunk/Source/WebCore

Attempt to fix the build after r230921
(https://bugs.webkit.org/show_bug.cgi?id=159464)

Pass Same-Site info through.

  • platform/network/cf/CookieJarCFNet.cpp:

(WebCore::cookieRequestHeaderFieldValue):

  • platform/network/curl/CookieJarCurl.cpp:

(WebCore::cookieRequestHeaderFieldValue):

  • platform/network/curl/CookieJarCurlDatabase.cpp:

(WebCore::CookieJarCurlDatabase::cookieRequestHeaderFieldValue const):

  • platform/network/soup/CookieJarSoup.cpp:

(WebCore::cookieRequestHeaderFieldValue):

2:07 PM Changeset in webkit [230922] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Unreviewed, speculative macOS build fix attempt.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::provideMediaData):

1:58 PM Changeset in webkit [230921] by dbates@webkit.org
  • 56 edits
    2 copies
    56 adds in trunk

Implement Same-Site cookies
https://bugs.webkit.org/show_bug.cgi?id=159464
<rdar://problem/27196358>

Reviewed by Brent Fulgham.

Source/WebCore:

Implements support for Same-Site cookies as per <https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00>.
The implementation is materially consistent with the spec. though implements the computation
for a document's "site for cookies" indirectly as part of loading its frame. This is done to
avoid traversing the frame tree on each subresource request initiated by the document or one
of its workers. We take advantage of the fact that Web Workers and Service Workers use their
host document's loader to load resources on their behalf to use the correct "site for cookies"
for requests (e.g. fetch()) initiating by them without the need to duplicate and store the
host document's "site for cookies" in the worker's script execution context.

The implementation differs from the spec. in the handling of about: URLs and the empty URL
and makes the implementation in WebKit match the behavior of Chrome and Firefox as well as
consistent with origin inheritance as described in <https://html.spec.whatwg.org/multipage/browsers.html#origin>
(16 April 2018). Specifically, requests to about:blank, about:srcdoc and the empty URL ("")
are treated as same-site because these URLs inherit their origin from their owner.

Tests: http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page.html

http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page.html
http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.html
http/tests/cookies/same-site/fetch-cookies-set-in-about-blank-iframe.html
http/tests/cookies/same-site/fetch-in-about-blank-page.html
http/tests/cookies/same-site/fetch-in-cross-origin-iframe.html
http/tests/cookies/same-site/fetch-in-cross-origin-page.html
http/tests/cookies/same-site/fetch-in-cross-origin-service-worker.html
http/tests/cookies/same-site/fetch-in-cross-origin-worker.html
http/tests/cookies/same-site/fetch-in-same-origin-page.html
http/tests/cookies/same-site/fetch-in-same-origin-service-worker.html
http/tests/cookies/same-site/fetch-in-same-origin-srcdoc-iframe.html
http/tests/cookies/same-site/fetch-in-same-origin-worker.html
http/tests/cookies/same-site/popup-cross-site-post.html
http/tests/cookies/same-site/popup-cross-site.html
http/tests/cookies/same-site/popup-same-site-post.html
http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html
http/tests/cookies/same-site/popup-same-site-via-same-site-redirect.html
http/tests/cookies/same-site/popup-same-site.html

  • Sources.txt: Add source file SameSiteInfo.cpp.
  • WebCore.xcodeproj/project.pbxproj: Add source files SameSiteInfo.{cpp, h}.
  • dom/Document.cpp:

(WebCore::Document::initSecurityContext): Modified to call SecurityPolicy::shouldInheritSecurityOriginFromOwner().
(WebCore::Document::shouldInheritContentSecurityPolicyFromOwner const): Ditto.
(WebCore::shouldInheritSecurityOriginFromOwner): Deleted; moved to SecurityPolicy.

  • dom/Document.h:

(WebCore::Document::firstPartyForSameSiteCookies const): Added.
(WebCore::Document::setFirstPartyForSameSiteCookies): Added.

  • loader/CookieJar.cpp:

(WebCore::sameSiteInfo): Returns the same-site info for the request used to load the specified document.
(WebCore::cookies): Pass the same-site info down to the platform.
(WebCore::cookieRequestHeaderFieldProxy): Ditto.
(WebCore::setCookies): Ditto.
(WebCore::cookieRequestHeaderFieldValue): Ditto.
(WebCore::getRawCookies): Ditto.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest): Add same-site info to the request.
(WebCore::DocumentLoader::startLoadingMainResource): Update a FIXME comment to explain that
we can simplify ResourceRequestBase if we can remove the call to addExtraFieldsToMainResourceRequest()
here. Specifically, we would not need to differentiate between a request with an unspecified
same-site state (default state of a new request) from a request whose same-site state has
been explicitly set if we can assume that the same-site state of a request is set exactly
once. In absence of this guarantee we need an "unspecified" state to avoid overriding existing
same-site information computed with a null initiating document (the case of a new address bar
initiated load) from a load initiated by the document associated with this loader.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::setFirstPartyForCookies): Modified to also update the first party for
same-site cookies ("site for cookies").
(WebCore::FrameLoader::load): Add same-site info to the request.
(WebCore::FrameLoader::reload): Ditto.
(WebCore::FrameLoader::setOriginalURLForDownloadRequest): Ditto.
(WebCore::FrameLoader::addExtraFieldsToRequest): If the request does not already have
same-site info then compute it and add it to the request. Mark main frame main resource
requests as a "top-site".
(WebCore::FrameLoader::addSameSiteInfoToRequestIfNeeded): Implements the "'Same-site' and 'cross-site'
Requests" algorithm from <https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00#section-2.1>.
(WebCore::createWindow): Add same-site info to the request.

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

(WebCore::ResourceLoader::init): Ditto.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow): Ditto.

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::shouldInheritSecurityOriginFromOwner): Moved from Document.cpp.

  • page/SecurityPolicy.h:
  • platform/CookiesStrategy.h:
  • platform/network/CacheValidation.cpp:

(WebCore::headerValueForVary): Pass the same-site info down to the platform.

  • platform/network/CookieRequestHeaderFieldProxy.h:

(WebCore::CookieRequestHeaderFieldProxy::encode const): Encode same-site bits.
(WebCore::CookieRequestHeaderFieldProxy::decode): Decode same-site bits.

  • platform/network/PlatformCookieJar.h:
  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::setAsIsolatedCopy): Added.
(WebCore::ResourceRequestBase::isSameSite const): Added.
(WebCore::ResourceRequestBase::setIsSameSite): Added.
(WebCore::ResourceRequestBase::isTopSite const): Added.
(WebCore::ResourceRequestBase::setIsTopSite): Added.
(WebCore::equalIgnoringHeaderFields):

  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::isSameSiteUnspecified const): Added. See comment for DocumentLoader::startLoadingMainResource()
for more details.
(WebCore::registrableDomainsAreEqual): Added.
(WebCore::ResourceRequestBase::encodeBase const): Encode same-site bits.
(WebCore::ResourceRequestBase::decodeBase): Decode same-site bits.

  • platform/network/SameSiteInfo.cpp: Added.

(WebCore::SameSiteInfo::create):

  • platform/network/SameSiteInfo.h: Added.

(WebCore::SameSiteInfo::encode const):
(WebCore::SameSiteInfo::decode):

  • platform/network/cf/CookieJarCFNet.cpp:

(WebCore::setCookiesFromDOM): Pass Same-Site info down.
(WebCore::cookiesForDOM): Ditto.
(WebCore::cookieRequestHeaderFieldValue): Ditto.
(WebCore::getRawCookies): Ditto.

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::siteForCookies): Added.
(WebCore::ResourceRequest::doUpdatePlatformRequest): Update platform request with same-site info.
(WebCore::ResourceRequest::doUpdateResourceRequest): Ditto.

  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::doUpdateResourceRequest): Ditto.
(WebCore::siteForCookies): Added.
(WebCore::ResourceRequest::doUpdatePlatformRequest): Update platform request with same-site info.

  • platform/network/curl/CookieJarCurl.cpp:

(WebCore::cookiesForDOM): Pass Same-Site info down.
(WebCore::setCookiesFromDOM): Ditto.
(WebCore::cookieRequestHeaderFieldValue): Ditto.
(WebCore::getRawCookies): Ditto.

  • platform/network/curl/CookieJarCurl.h:
  • platform/network/curl/CookieJarCurlDatabase.cpp:

(WebCore::CookieJarCurlDatabase::setCookiesFromDOM const): Ditto.
(WebCore::CookieJarCurlDatabase::cookiesForDOM const): Ditto.
(WebCore::CookieJarCurlDatabase::cookieRequestHeaderFieldValue const): Ditto.
(WebCore::CookieJarCurlDatabase::getRawCookies const): Ditto.

  • platform/network/curl/CookieJarCurlDatabase.h:
  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::createCurlRequest): Ditto.

  • platform/network/mac/CookieJarMac.mm:

(WebCore::cookiesForURL): Added; shared function to return the cookies based on the specified criterion.
(WebCore::setHTTPCookiesForURL): Moved from the bottom of the file to top to be closer to the other
CFNetwork helper functions. Modified to support fetching same-site cookies.
(WebCore::httpCookiesForURL): Moved to be under setHTTPCookiesForURL(). Modified to call cookiesForURL().
Note the SPI used in cookiesForURL() apply the same criterion for whether to fetch secure cookies as we
were computing here. That is, the CFNetwork SPI only returns secure cookies if the specified URL's scheme
case-insensitively matches "https".
(WebCore::cookiesInPartitionForURL): Wrote in terms of cookiesForURL().
(WebCore::cookiesForSession): Pass the Same-Site info.
(WebCore::cookiesForDOM): Ditto.
(WebCore::cookieRequestHeaderFieldValue): Ditto.
(WebCore::setCookiesFromDOM): Ditto.
(WebCore::getRawCookies): Ditto.
(WebCore::deleteCookie): Pass std::nullopt for the Same-Site info so that we do not consider the SameSite
attribute when fetching cookies to delete.

  • platform/network/soup/CookieJarSoup.cpp:

(WebCore::setCookiesFromDOM): Pass the Same-Site info.
(WebCore::cookiesForDOM): Ditto.
(WebCore::cookieRequestHeaderFieldValue): Ditto.
(WebCore::getRawCookies): Ditto.

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::createPageForServiceWorker): Set the first party for same site cookies ("site for cookies") to
the script URL.

  • xml/XSLTProcessor.cpp:

(WebCore::XSLTProcessor::createDocumentFromSource): Copy the first party for same-site cookies to the
new document.

Source/WebCore/PAL:

Forward declare some SPI.

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

Pass the Same-Site info through the WebKit abstractions.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
(WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
(WebKit::NetworkConnectionToWebProcess::getRawCookies):

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

(WebKit::NetworkResourceLoader::logCookieInformation const):
(WebKit::logBlockedCookieInformation):
(logCookieInformationInternal):
(NetworkResourceLoader::logCookieInformation):

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

(WebKit::NetworkCache::constructRevalidationRequest):

  • NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:

(WebKit::NetworkCache::SubresourceInfo::encode const):
(WebKit::NetworkCache::SubresourceInfo::decode):
(WebKit::NetworkCache::SubresourceInfo::SubresourceInfo):

  • NetworkProcess/cache/NetworkCacheSubresourcesEntry.h:

(WebKit::NetworkCache::SubresourceInfo::isSameSite const):
(WebKit::NetworkCache::SubresourceInfo::isTopSite const): Returns false; subresources do not represent
a top-level navigation.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::isThirdPartyRequest):
(WebKit::updateTaskWithFirstPartyForSameSiteCookies):
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::download):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::cookiesForDOM):
(WebKit::WebPlatformStrategies::setCookiesFromDOM):
(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebKit::WebPlatformStrategies::getRawCookies):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

Pass the Same-Site info through the strategy.

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::cookiesForDOM):
(WebPlatformStrategies::setCookiesFromDOM):
(WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebPlatformStrategies::getRawCookies):

Source/WebKitLegacy/win:

Pass the Same-Site info through the strategy.

  • WebCoreSupport/WebPlatformStrategies.cpp:

(WebPlatformStrategies::cookiesForDOM):
(WebPlatformStrategies::setCookiesFromDOM):
(WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebPlatformStrategies::getRawCookies):

  • WebCoreSupport/WebPlatformStrategies.h:

LayoutTests:

Add tests. These tests are skipped on all ports for now, including Mac and iOS. We will
look to subsequently enable the tests for Mac and iOS once we have CFNetwork support for
Same-Site cookies.

The following tests and utilities were taken in whole or in part from Blink:

http/tests/cookies/resources/echo-json.php
http/tests/cookies/resources/post-cookies-onmessage.php
http/tests/cookies/resources/post-cookies-to-opener.php
http/tests/cookies/resources/testharness-helpers.js
http/tests/cookies/same-site/popup-cross-site-post.html
http/tests/cookies/same-site/popup-cross-site.html
http/tests/cookies/same-site/popup-same-site-post.html
http/tests/cookies/same-site/popup-same-site.html

The following files were derived from tests taken from Blink:

http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html
http/tests/cookies/same-site/popup-same-site-via-same-site-redirect.html

  • TestExpectations: Skip on all ports for now.
  • http/tests/cookies/resources/cookie-utilities.js: Added.

(createCookie):
(setBaseDocumentWhenFetchingDOMCookies):
(setDOMCookie):

  • http/tests/cookies/resources/cookie-utility.php:
  • http/tests/cookies/resources/echo-json.php: Added.
  • http/tests/cookies/resources/post-cookies-onmessage.php: Added.
  • http/tests/cookies/resources/post-cookies-to-opener.php: Added.
  • http/tests/cookies/resources/testharness-helpers.js: Added.

(clearKnownCookies):

  • http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-cookies-set-in-about-blank-iframe-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-cookies-set-in-about-blank-iframe.html: Added.
  • http/tests/cookies/same-site/fetch-in-about-blank-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-about-blank-page.html: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-iframe-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-iframe.html: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-service-worker.html: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-worker-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-worker.html: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-service-worker-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-service-worker.html: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-srcdoc-iframe-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-srcdoc-iframe.html: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-worker-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-worker.html: Added.
  • http/tests/cookies/same-site/popup-cross-site-expected.txt: Added.
  • http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Added.
  • http/tests/cookies/same-site/popup-cross-site-post.html: Added.
  • http/tests/cookies/same-site/popup-cross-site.html: Added.
  • http/tests/cookies/same-site/popup-same-site-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-post-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-post.html: Added.
  • http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html: Added.
  • http/tests/cookies/same-site/popup-same-site-via-same-site-redirect-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-via-same-site-redirect.html: Added.
  • http/tests/cookies/same-site/popup-same-site.html: Added.
  • http/tests/cookies/same-site/resources/click-hyperlink.php: Added.
  • http/tests/cookies/same-site/resources/echo-iframe-src.php: Added.
  • http/tests/cookies/same-site/resources/fetch-after-navigating-iframe-in-cross-origin-page.php: Added.
  • http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-from-cross-origin-page.php: Added.
  • http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.php: Added.
  • http/tests/cookies/same-site/resources/fetch-in-cross-origin-iframe.html: Added.
  • http/tests/cookies/same-site/resources/fetch-in-cross-origin-service-worker.html: Added.
  • http/tests/cookies/same-site/resources/fetch-in-cross-origin-worker.js: Added.

(async.checkResult):

  • http/tests/cookies/same-site/resources/fetch-in-same-origin-service-worker.php: Added.
  • http/tests/cookies/same-site/resources/fetch-in-same-origin-worker.js: Added.

(async.checkResult):

  • http/tests/cookies/same-site/resources/passthrough-service-worker.js: Added.
  • platform/mac-wk1/TestExpectations: Skip the Service Worker tests as they are not supported in LegacyWebKit.
1:56 PM Changeset in webkit [230920] by jmarcell@apple.com
  • 7 edits in tags/Safari-606.1.15/Source

Versioning.

1:49 PM Changeset in webkit [230919] by Chris Dumez
  • 8 edits
    1 add in trunk

HTML String load cannot be prevented by responding 'Cancel' asynchronously in decidePolicyForNavigationAction
https://bugs.webkit.org/show_bug.cgi?id=184848
<rdar://problem/39145306>

Reviewed by Brady Eidson.

Source/WebCore:

When calling loadHTMLString on a WebView, we end up doing a load for 'about:blank'
with substitute data. In such case, we want to do a regular asynchronous policy
delegate check, there is no reason we need it to be synchronous. Update our check
to make sure we only do a synchronous policy check for initial 'about:blank' loads
that do not have substitute data.

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm:

(-[DecidePolicyForNavigationActionController webView:decidePolicyForNavigationAction:decisionHandler:]):
(TEST):

LayoutTests:

Update layout tests that wrongly expected 'about:blank' to load synchronously even
when it is not the initial empty document of an iframe. I have checked that our
behavior is now consistent with Chrome.

  • fast/events/beforeunload-alert-user-interaction2.html:
  • http/tests/security/cross-origin-reified-window-location-setting-expected.txt:
  • http/tests/security/cross-origin-reified-window-location-setting.html:
  • webarchive/loading/javascript-url-iframe-crash-expected.txt:
1:29 PM Changeset in webkit [230918] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

WebProcessProxy frequently re-takes a process assertion for the network process even though is already has one
https://bugs.webkit.org/show_bug.cgi?id=184889
<rdar://problem/38151530>

Reviewed by Brady Eidson.

In ProcessThrottler::updateAssertionNow(), if the new process assertion state is the same
as the existing one, then return early. Otherwise, we would end up calling WebProcessProxy::didSetAssertionState()
for the same assertion state, which would cause duplicate logging but also some unnecessary work.

  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::updateAssertionNow):

1:27 PM Changeset in webkit [230917] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.15

Tag Safari-606.1.15.

12:40 PM Changeset in webkit [230916] by Wenson Hsieh
  • 5 edits
    3 adds in trunk

[Extra zoom mode] 100vw is roughly half of the viewport width in extra zoom mode
https://bugs.webkit.org/show_bug.cgi?id=184871
<rdar://problem/39477595>

Reviewed by Andy Estes.

Source/WebCore:

Currently, when computing CSS viewport units, we use ViewportConfiguration::initialScaleIgnoringContentSize().
This method computes an initial scale from the layout width and height without relying on any information
derived from the current content size. This is done to ensure that the content size and viewport dimensions for
CSS viewport units should not be simultaneously dependent on each other.

Since shrink-to-fit heuristics depend on content size, we currently assume that shrink-to-fit is disabled when
computing initialScaleIgnoringContentSize, by always passing in false for shouldIgnoreScalingConstraints.
However, in extra zoom mode, the opposite is true: since we force both m_canIgnoreScalingConstraints and
m_forceHorizontalShrinkToFit to be true in this mode, we will always try to shrink-to-fit regardless of
content size.

Because of this shrink-to-fit disparity between initialScale and initialScaleIgnoringContentSize, viewport
units in extra zoom mode are currently computed assuming an initial scale set by the page, whereas the real
viewport is scaled to fit, which causes any lengths computed in terms of vw and vh to be incorrect. To fix this,
we introduce a version of shouldIgnoreScalingConstraints() that returns true iff scaling constraints are
always ignored, regardless of content size. We then use this in initialScaleIgnoringContentSize, instead of
always passing in false for shouldIgnoreScalingConstraints.

Test: fast/css/extrazoom/viewport-units-shrink-to-fit.html

  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::shouldIgnoreScalingConstraintsRegardlessOfContentSize const):
(WebCore::ViewportConfiguration::initialScaleIgnoringContentSize const):

  • page/ViewportConfiguration.h:

LayoutTests:

Add a new layout test to verify that shrink-to-fit works as intended in extra zoom mode:

  1. The large element should cause the entire viewport to shrink down to fit.
  2. Removing the large element should adjust the viewport, such that the smaller element now fits the entire

viewport.

  1. The smaller element (at 100vw and 100vh) should be the same size as the window.
  • TestExpectations:
  • fast/css/extrazoom/viewport-units-shrink-to-fit-expected.txt: Added.
  • fast/css/extrazoom/viewport-units-shrink-to-fit.html: Added.
8:23 AM Changeset in webkit [230915] by commit-queue@webkit.org
  • 3 edits in trunk/Source/bmalloc

Include stdio.h before using stderr
https://bugs.webkit.org/show_bug.cgi?id=184872

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2018-04-23
Reviewed by Yusuke Suzuki.

  • bmalloc/PerProcess.cpp:
  • bmalloc/Scavenger.cpp:
7:47 AM Changeset in webkit [230914] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[Simple line layout] Generate inline boxtree using simple line layout runs.
https://bugs.webkit.org/show_bug.cgi?id=184833

Reviewed by Antti Koivisto.

RenderBlockFlow::ensureLineBoxes triggers line layout on the block content to replace
the simple line layout runs with an inline boxtree. The runs generated by the fast path
should always match the inline tree boxes.
In this patch instead of triggering layout, we just convert the simple line runs to
inline boxes.
Currently, it works with only one, non-paginated text renderer, but we should be
able to extend it to all the simple line layout content.

Covered by existing tests.

  • rendering/InlineBox.h:

(WebCore::InlineBox::setHasHyphen):
(WebCore::InlineBox::setCanHaveLeadingExpansion):
(WebCore::InlineBox::setCanHaveTrailingExpansion):
(WebCore::InlineBox::setForceTrailingExpansion):
(WebCore::InlineBox::setForceLeadingExpansion):
(WebCore::InlineBox::hasHyphen const):
(WebCore::InlineBox::canHaveLeadingExpansion const):
(WebCore::InlineBox::canHaveTrailingExpansion const):
(WebCore::InlineBox::forceTrailingExpansion const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::ensureLineBoxes):

  • rendering/RenderBlockFlow.h:
  • rendering/SimpleLineLayoutFlowContents.h:

(WebCore::SimpleLineLayout::FlowContents::segmentForRun const):

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::canUseForLineBoxTree):
(WebCore::SimpleLineLayout::initializeInlineBox):
(WebCore::SimpleLineLayout::generateLineBoxTree):

  • rendering/SimpleLineLayoutFunctions.h:
  • rendering/SimpleLineLayoutResolver.cpp:

(WebCore::SimpleLineLayout::RunResolver::rangeForLine const):

  • rendering/SimpleLineLayoutResolver.h:
7:16 AM Changeset in webkit [230913] by zandobersek@gmail.com
  • 9 edits in trunk/Source

[CoordGraphics] Remove unused trajectory cruft in CoordinatedLayerTreeHost, CoordinatedGraphicsLayer
https://bugs.webkit.org/show_bug.cgi?id=184881

Reviewed by Michael Catanzaro.

Source/WebCore:

Remove the redundant findFirstDescendantWithContentsRecursively() and
setVisibleContentRectTrajectoryVector() methods on the
CoordinatedGraphicsLayer class.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::findFirstDescendantWithContentsRecursively): Deleted.
(WebCore::CoordinatedGraphicsLayer::setVisibleContentRectTrajectoryVector): Deleted.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:

Source/WebKit:

The CompositingCoordinator::setVisibleContentsRect() method is always
called with a (0,0) FloatPoint value as the trajectory vector parameter,
which is already the default value in TiledBackingStore where this ends
up. Removing this call chain also enables removing some unnecessary and
odd code in the CoordinatedGraphicsLayer class.

This doesn't yet touch the trajectory logic in the TiledBackingStore
class since it's not yet a given this won't be used in the future. But
if that will be necessary, hope is to not use it this way.

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::setVisibleContentsRect):
(WebKit::CompositingCoordinator::mainContentsLayer): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::setVisibleContentsRect):

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewport):

7:12 AM Changeset in webkit [230912] by zandobersek@gmail.com
  • 4 edits in trunk/Source/WebCore

[CoordGraphics] TiledBackingStore unnecessarily tracks alpha support value
https://bugs.webkit.org/show_bug.cgi?id=184880

Reviewed by Michael Catanzaro.

Drop the m_supportsAlpha member from the TiledBackingStore class. The
member value was unused. TiledBackingStore::setSupportsAlpha() method
is removed.

TiledBackingStore::setSupportsAlpha() invalidated the backing store,
so CoordinatedGraphicsLayer::setContentsOpaque() now enforces the same
behavior by manually updating the m_needsDisplay struct. This means
that during the following layer flush the backing store is repainted
in its entirety.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::setContentsOpaque):
(WebCore::CoordinatedGraphicsLayer::createBackingStore):

  • platform/graphics/texmap/coordinated/TiledBackingStore.cpp:

(WebCore::TiledBackingStore::TiledBackingStore):
(WebCore::TiledBackingStore::setSupportsAlpha): Deleted.

  • platform/graphics/texmap/coordinated/TiledBackingStore.h:
6:45 AM Changeset in webkit [230911] by Michael Catanzaro
  • 2 edits
    2 adds in trunk/Tools

[GTK][WPE] TestSSL fails due to additional TLS errors returned
https://bugs.webkit.org/show_bug.cgi?id=184860

Reviewed by Carlos Garcia Campos.

Add script and config file for regenerating the test certificate.
Regenerate it. TestSSL no longer fails on my machine.

I do see a ton of network process crashes and JavaScript errors, none of
which prevent the test from passing, but this commit only claims to fix
the certificate validation portion of the test.

  • TestWebKitAPI/Tests/WebKitGLib/resources/generate-test-cert.sh: Added.
  • TestWebKitAPI/Tests/WebKitGLib/resources/test-cert.conf: Added.
  • TestWebKitAPI/Tests/WebKitGLib/resources/test-cert.pem:
6:39 AM Changeset in webkit [230910] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[GStreamer] Start implementing Audio/VideoTrackPrivateGSTreamer::kind method
https://bugs.webkit.org/show_bug.cgi?id=184650

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

In the playbin3 case we can assume that if the GstStream is selected by default,
it is the Main track of that kind.

No new tests are added as:

  • It relies on playbin3 case which support might be compiled out
  • we already have a few test that are currently disabled in the mediastream testsuite. This patch is part of the work to enable them.
  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::kind const):

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:

(WebCore::VideoTrackPrivateGStreamer::kind const):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:
4:19 AM Changeset in webkit [230909] by aboya@igalia.com
  • 11 edits in trunk/Source/WebCore

[MSE] Add allSamplesInTrackEnqueued event
https://bugs.webkit.org/show_bug.cgi?id=184737

MediaSource has a .endOfStream() method to signal when there are no more frames
after the ones currently buffered.

This bit of data is important for some multimedia frameworks. For instance, in
GStreamer a stream of frames being decoded should be terminated by a
'end-of-stream' (EOS) event that has a similar meaning. Some GStreamer elements
will expect this event in order to work properly under some circumstances.

Unfortunately currently WebKit provides no mechanism for this: an event of
sorts should be emitted after no more frames are going to be enqueued to signal
the end of the stream. The closest mechanism WebKit has for this is
markEndOfStream(), but it's not exactly the same: markEndOfStream() informs
that -- as far as network buffering is concerned -- we are done; but at that
point there may still be (and often are) many frames waiting in the
decodeQueue, so it would be wrong to signal the decoder that there are no more
frames.

This patch introduces a new optional method in SourceBufferPrivate,
allSamplesInTrackEnqueued(const AtomicString& trackID) that is called
whenever the MediaSource is in "ended" state (the user has called
MediaSource.endOfStream()) and the decodeQueue is empty. Media framework
implementations can use this method to send a EOS event to a decoder that needs
it.

Reviewed by Xabier Rodriguez-Calvar.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::streamEndedWithError):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::provideMediaData):
(WebCore::SourceBuffer::trySignalAllSamplesInTrackEnqueued):
(WebCore::SourceBuffer::trySignalAllSamplesEnqueued):

  • Modules/mediasource/SourceBuffer.h:
  • platform/graphics/SourceBufferPrivate.h:

(WebCore::SourceBufferPrivate::allSamplesInTrackEnqueued):

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

(WebCore::MediaSourceClientGStreamerMSE::allSamplesInTrackEnqueued):

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h:
  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:

(WebCore::PlaybackPipeline::allSamplesInTrackEnqueued):

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

(WebCore::SourceBufferPrivateGStreamer::allSamplesInTrackEnqueued):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:
3:13 AM Changeset in webkit [230908] by Fujii Hironori
  • 3 edits in trunk/Source/WebKit

[Win][WK2] REGRESSION(r230834) 'getpid': identifier not found
https://bugs.webkit.org/show_bug.cgi?id=184877

Reviewed by Yusuke Suzuki.

  • WebProcess/WebPage/WebBackForwardListProxy.cpp:

(WebKit::WebBackForwardListProxy::addItem): Use WTF::getCurrentProcessID() instead of getpid().

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::goToBackForwardItem): Ditto.

12:44 AM Changeset in webkit [230907] by zandobersek@gmail.com
  • 3 edits
    2 adds in trunk

Avoid uninitialized memory read.
https://bugs.webkit.org/show_bug.cgi?id=184505
<rdar://problem/39348325>

Patch by Ms2ger <Ms2ger@igalia.com> on 2018-04-23
Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-bounds-expected.txt: Added.
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-bounds.html: Added.

Source/WebCore:

Test: imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-bounds.html

  • html/ImageBitmap.cpp:

(WebCore::croppedSourceRectangleWithFormatting):

12:32 AM Changeset in webkit [230906] by zandobersek@gmail.com
  • 10 edits in trunk/Source

[TexMap] Drop RefCounted inheritance off of TextureMapperBackingStore
https://bugs.webkit.org/show_bug.cgi?id=184810

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Turn TextureMapperBackingStore into a simple interface that doesn't
inherit from RefCounted<>. Instead, push that inheritance off to the
classes that implement the TextureMapperBackingStore interface. This
narrows down the purpose of TextureMapperBackingStore towards a simple
interface that TextureMapper algorithms can work with.

TextureMapperLayer has its m_backingStore member variable turn into
a simple pointer instead of a RefPtr<>. Setter method and call sites of
that method are updated to reflect that.

TextureMapperTiledBackingStore now inherits from RefCounted<> directly,
instead of through TextureMapperBackingStore.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
(WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
  • platform/graphics/texmap/TextureMapperBackingStore.h:
  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::setBackingStore):

  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/TextureMapperTiledBackingStore.h:

Source/WebKit:

CoordinatedBackingStore should inherit directly from RefCounted<> now
that TextureMapperBackingStore doesn't anymore.

  • Shared/CoordinatedGraphics/CoordinatedBackingStore.h:
  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::createBackingStoreIfNeeded):

Note: See TracTimeline for information about the timeline view.