Timeline
Jun 21, 2018:
- 11:41 PM Changeset in webkit [233071] by
-
- 2 edits in trunk/Source/WTF
[GLIB] improve get_type() fast path in WEBKIT_DEFINE_TYPE
https://bugs.webkit.org/show_bug.cgi?id=186885
Reviewed by Anders Carlsson.
This is a backport of glib commit
https://gitlab.gnome.org/GNOME/glib/commit/e924f777369710221c3e0a9d7bf40392a27d1fa4
"The -fstack-protector-strong used in many distributions by default has a
rather drastic slowdown of the fast path in generated _get_type()
functions using G_DEFINE_* macros. The amount can vary by architecture,
GCC version, and compiler flags.
To work around this, and ensure a higher probability that our fast-path
will match what we had previously, we need to break out the slow-path
(registering the type) into a secondary function that is not a candidate
for inlining.
This ensures that the common case (type registered, return the GType id)
is the hot path and handled in the prologue of the generated assembly even
when -fstack-protector-strong is enabled."
- wtf/glib/WTFGType.h:
- 8:01 PM Changeset in webkit [233070] by
-
- 2 edits in trunk/Source/JavaScriptCore
WebKit (JavaScriptCore) compilation error with Clang ≥ 6.
https://bugs.webkit.org/show_bug.cgi?id=185947
<rdar://problem/40131933>
Reviewed by Saam Barati.
Newer Clang versions (due to C++17 support) is not happy with how I implemented
conversions between CodeLocation types. We'll fix this by adding a conversion
operator for converting between CodeLocation types.
- assembler/CodeLocation.h:
(JSC::CodeLocationCommon::operator T):
- 5:21 PM Changeset in webkit [233069] by
-
- 2 edits in trunk/LayoutTests
Skip imported/w3c/web-platform-tests/css/css-display/display-contents-first-letter-002.html.
https://bugs.webkit.org/show_bug.cgi?id=186901
Unreviewed test gardening.
- 4:30 PM Changeset in webkit [233068] by
-
- 4 edits in trunk/Source/WebKit
Unreviewed, rolling out r232995.
Seems to have caused flakiness
Reverted changeset:
"Implement IPC throttling to keep the main thread responsive
when a process misbehaves"
https://bugs.webkit.org/show_bug.cgi?id=186607
https://trac.webkit.org/changeset/232995
- 4:30 PM Changeset in webkit [233067] by
-
- 2 edits in trunk/Source/WebCore/PAL
Unreviewed attempt to fix the build after r233052.
- pal/spi/cocoa/AVKitSPI.h:
- 4:13 PM Changeset in webkit [233066] by
-
- 25 edits2 adds2 deletes in trunk
Address fullscreen api CSS env feedback
https://bugs.webkit.org/show_bug.cgi?id=186684
Reviewed by Simon Fraser.
Source/WebCore:
Test: fullscreen/fullscreen-env.html
+ Update the phishing alert text to be more explicit about the specific threats
phishing sites represent.
+ Make the top inset static, rather than dynamic.
+ Add bottom, left, and right insets for completeness.
+ Set the fullscreen animation duration as well as delay.
+ Notify the page when the controls show and hide.
- English.lproj/Localizable.strings:
- css/CSSSelector.cpp:
(WebCore::CSSSelector::selectorText const):
- css/CSSSelector.h:
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne const):
- css/SelectorCheckerTestFunctions.h:
(WebCore::matchesFullScreenControlsHiddenPseudoClass):
- css/SelectorPseudoClassAndCompatibilityElementMap.in:
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoClassType):
- dom/ConstantPropertyMap.cpp:
(WebCore::ConstantPropertyMap::nameForProperty const):
(WebCore::ConstantPropertyMap::updateConstantsForFullscreenInsets):
(WebCore::ConstantPropertyMap::didChangeFullscreenInsets):
(WebCore::ConstantPropertyMap::setFullscreenAutoHideDuration):
(WebCore::ConstantPropertyMap::setFullscreenInsetTop): Deleted.
- dom/ConstantPropertyMap.h:
- dom/Document.cpp:
(WebCore::Document::areFullscreenControlsHidden const):
(WebCore::Document::setFullscreenControlsHidden):
- dom/Document.h:
- page/Page.cpp:
(WebCore::Page::setFullscreenInsets):
(WebCore::Page::setFullscreenAutoHideDuration):
(WebCore::Page::setFullscreenControlsHidden):
(WebCore::Page::setFullscreenInsetTop): Deleted.
- page/Page.h:
(WebCore::Page::fullscreenInsets const):
- testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setFullscreenInsets):
(WebCore::Internals::setFullscreenAutoHideDuration):
(WebCore::Internals::setFullscreenControlsHidden):
(WebCore::Internals::setFullscreenInsetTop): Deleted.
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
+ Update the phishing alert text to be more explicit about the specific threats
phishing sites represent.
+ Make the top inset static, rather than dynamic.
+ Add bottom, left, and right insets for completeness.
+ Set the fullscreen animation duration as well as delay.
+ Notify the page when the controls show and hide.
- UIProcess/WebFullScreenManagerProxy.cpp:
(WebKit::WebFullScreenManagerProxy::setFullscreenInsets):
(WebKit::WebFullScreenManagerProxy::setFullscreenAutoHideTiming):
(WebKit::WebFullScreenManagerProxy::setFullscreenControlsHidden):
(WebKit::WebFullScreenManagerProxy::setFullscreenInsetTop): Deleted.
(WebKit::WebFullScreenManagerProxy::setFullscreenAutoHideDelay): Deleted.
- UIProcess/WebFullScreenManagerProxy.h:
- UIProcess/ios/fullscreen/WKFullScreenViewController.mm:
(-[WKFullScreenViewController showUI]):
(-[WKFullScreenViewController hideUI]):
(-[WKFullScreenViewController viewWillAppear:]):
(-[WKFullScreenViewController _effectiveFullscreenInsets]):
(-[WKFullScreenViewController _updateWebViewFullscreenInsets]):
(-[WKFullScreenViewController _showPhishingAlert]):
(-[WKFullScreenViewController _effectiveFullscreenInsetTop]): Deleted.
- WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::didExitFullScreen):
(WebKit::WebFullScreenManager::setFullscreenInsets):
(WebKit::WebFullScreenManager::setFullscreenAutoHideTiming):
(WebKit::WebFullScreenManager::setFullscreenControlsHidden):
(WebKit::WebFullScreenManager::setFullscreenInsetTop): Deleted.
(WebKit::WebFullScreenManager::setFullscreenAutoHideDelay): Deleted.
- WebProcess/FullScreen/WebFullScreenManager.h:
- WebProcess/FullScreen/WebFullScreenManager.messages.in:
LayoutTests:
- fullscreen/fullscreen-env-expected.txt: Added.
- fullscreen/fullscreen-env.html: Added.
- fullscreen/fullscreen-inset-top-expected.txt: Removed.
- fullscreen/fullscreen-inset-top.html: Removed.
- 3:57 PM Changeset in webkit [233065] by
-
- 4 edits in trunk/Source/JavaScriptCore
Do some CoW cleanup
https://bugs.webkit.org/show_bug.cgi?id=186896
Reviewed by Mark Lam.
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::decompressArrayAllocationProfile):
We don't need to WTFMove() ints
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
remove a TODO.
- runtime/JSObject.cpp:
(JSC::JSObject::putByIndex):
We were checking for isCopyOnWrite even after we converted away
from CoW in above code.
(JSC::JSObject::ensureWritableInt32Slow):
Model this in the same way the other ensureWritableXSlow are modeled.
- 3:51 PM Changeset in webkit [233064] by
-
- 2 edits in trunk/Tools
EWS for security bugs
https://bugs.webkit.org/show_bug.cgi?id=186291
<rdar://problem/40829658>
Substitute webkit.status-api-key for webkit.status_api_key as Git configuration variables can
only consist of alphanumeric characters and underscores (_) per the second paragraph of section
Configuration File of <https://git-scm.com/docs/git-config/2.18.0#_configuration_file>:
The variable names are case-insensitive, allow only alphanumeric characters and -, and must
start with an alphabetic character.
- Scripts/webkitpy/tool/main.py:
(WebKitPatch._status_server_api_key_from_git):
- 3:32 PM Changeset in webkit [233063] by
-
- 7 edits in branches/safari-606.1.20.40-branch/Source
Versioning.
- 3:30 PM Changeset in webkit [233062] by
-
- 1 copy in tags/Safari-606.1.20.40.3
Tag Safari-606.1.20.40.3.
- 3:14 PM Changeset in webkit [233061] by
-
- 2 edits in trunk/Tools
EWS for security bugs
https://bugs.webkit.org/show_bug.cgi?id=186291
<rdar://problem/40829658>
In r232979, I inadvertently removed a line of code in _parse_authorized_api_keys() to define a local called api_keys.
Add this code back.
- QueueStatusServer/config/authorization.py:
(_parse_authorized_api_keys):
- 2:42 PM Changeset in webkit [233060] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, rolling out r232884.
https://bugs.webkit.org/show_bug.cgi?id=186891
"Introduced assertion failure in ~DisplayRefreshMonitorMac()."
(Requested by perarne on #webkit).
Reverted changeset:
"DisplayRefreshMonitorMac should hold a weak pointer to
WebPage."
https://bugs.webkit.org/show_bug.cgi?id=186683
https://trac.webkit.org/changeset/232884
- 2:23 PM Changeset in webkit [233059] by
-
- 13 edits in trunk/Source
[Fullscreen] Page sometimes ends up with an incorrect zoom level after entering fullscreen
https://bugs.webkit.org/show_bug.cgi?id=186822
Reviewed by Simon Fraser.
Source/WebCore:
- dom/Document.cpp:
(WebCore::Document::setOverrideViewportArguments):
(WebCore::Document::updateViewportArguments):
- dom/Document.h:
Source/WebKit:
Set the minimum zoom, maximum zoom, zoom bouncing, and user scalability settings of the
WKWebView's UIScrollView upon entering fullscreen, and restore those same settings upon
exit. Override the viewport arguments upon entering fullscreen, restore them upon exit.
- Platform/IPC/ArgumentCoder.h:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<ViewportArguments>::decode):
- Shared/WebCoreArgumentCoders.h:
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::forceAlwaysUserScalable const):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::setOverrideViewportArguments):
- UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(WebKit::WKWebViewState::applyTo):
(WebKit::WKWebViewState::store):
(-[WKFullScreenWindowController enterFullScreen]):
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::forceAlwaysUserScalable const):
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::setOverrideViewportArguments):
- 2:11 PM Changeset in webkit [233058] by
-
- 3 edits in trunk/Tools
EWS should not try to post comments or upload result archives to security-sensitive
bugs unless it has access
https://bugs.webkit.org/show_bug.cgi?id=186831
Reviewed by Lucas Forschler.
Following r232979 security-sensitive patches are uploaded to the status server so
that they can be retrieved and processed by EWS bots without the need for Bugzilla
security bug access. Although the EWS machinery is robust against unexpected exceptions,
including exceptions raised when interacting with Bugzilla bugs/attachments with
insufficient credentials, we should not depend on such defenses as they cause webkit-
patch to log a message for the "unexpected" exception. We should reserve such logging
for truly unexpected exceptions that indicate a programming mistake that we need to fix.
- Scripts/webkitpy/tool/commands/earlywarningsystem.py:
(AbstractEarlyWarningSystem._post_reject_message_on_bug): Bail out early if we cannot
access the bug.
- Scripts/webkitpy/tool/commands/queues.py:
(PatchProcessingQueue._can_access_bug): Added.
(PatchProcessingQueue._upload_results_archive_for_patch): Only add an attachment if we
can access the bug.
(CommitQueue.process_work_item): Only post a rejection comment (i.e. call CommitterValidatorreject_patch_from_commit_queue())
if we can access the bug.
- 1:58 PM Changeset in webkit [233057] by
-
- 2 edits in trunk/Tools
- 1:54 PM Changeset in webkit [233056] by
-
- 3 edits2 adds in trunk
RenderSVGInline has to be inline always regardless of its css display value
https://bugs.webkit.org/show_bug.cgi?id=186656
Reviewed by Zalan Bujtas.
Source/WebCore:
According to https://www.w3.org/TR/SVG2/text.html#TextLayout, the <text>
element has to be laid out as if it were a block element and any <tspan>,
<textPath>, <a> and <tref> descendants were inline elements.
If a css rule, which contains the property "display: block;", is applied
to any of children of a <text> element, this property has to be ignored.
We currently ignore this property in RenderSVGInline::updateFromStyle()
by forcing setInline(true). But we do not do the same thing in
RenderTreeBuilder::normalizeTreeAfterStyleChange(). In fact we allow
making the children of the <text> element to be non-inline. This puts
the render tree in weired state and causes many assertions to fire while
laying out RenderSVGText.
Test: svg/dom/svg-inline-text-display-block-crash.html
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):
LayoutTests:
- svg/dom/svg-inline-text-display-block-crash-expected.txt: Added.
- svg/dom/svg-inline-text-display-block-crash.html: Added.
- 1:34 PM Changeset in webkit [233055] by
-
- 3 edits2 adds in trunk
Do not reuse generated inline renderer for the first letter.
https://bugs.webkit.org/show_bug.cgi?id=186657
<rdar://problem/41157892>
Reviewed by Simon Fraser.
Source/WebCore:
When the first letter pseudo element is present, we construct a dedicated subtree for its content like this:
<div><span>foobar</span></div> -> with ::first-letter on the <div>
DIV RenderBlock
SPAN RenderInline
RenderInline (generated wrapper for the first letter content)
RenderText (fist letter content)
RenderText (remaining text content)
"display: contents" on the <span> forces us not to construct a RenderInline for the <span> (or just come up with a wrapper at best).
FirstLetter::createRenderers logic needs to check for such cases and pick the correct parent for the first letter subtree accordingly.
Test: fast/text/first-letter-with-display-contents-crash.html
imported/w3c/web-platform-tests/css/css-display/display-contents-first-letter-002.html is not crashing anymore either.
- rendering/updating/RenderTreeBuilderFirstLetter.cpp:
(WebCore::RenderTreeBuilder::FirstLetter::createRenderers):
LayoutTests:
- fast/text/first-letter-with-display-contents-crash-expected.txt: Added.
- fast/text/first-letter-with-display-contents-crash.html: Added.
- 1:10 PM Changeset in webkit [233054] by
-
- 3 edits in trunk/Tools
check-webkit-style should warn about exported inline functions
https://bugs.webkit.org/show_bug.cgi?id=186861
<rdar://problem/41303668>
Reviewed by Brent Fulgham.
When checking binaries compiled with LTO enabled, WebKit's
check-for-weak-vtables-and-externals script can complain about
exported inline functions. For instance, in
Source/WebCore/page/scrolling/ScrollingTree.h, the following:
WEBCORE_EXPORT virtual void reportSynchronousScrollingReasonsChanged(MonotonicTime, SynchronousScrollingReasons) { }
WEBCORE_EXPORT virtual void reportExposedUnfilledArea(MonotonicTime, unsigned /* unfilledArea */) { }
Can result in the following error messages:
ERROR: WebCore has a weak external symbol in it (.../OpenSource/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore)
ERROR: A weak external symbol is generated when a symbol is defined in multiple compilation units and is also marked as being exported from the library.
ERROR: A common cause of weak external symbols is when an inline function is listed in the linker export file.
ERROR: symbol ZN7WebCore13ScrollingTree25reportExposedUnfilledAreaEN3WTF13MonotonicTimeEj
ERROR: symbol ZN7WebCore13ScrollingTree40reportSynchronousScrollingReasonsChangedEN3WTF13MonotonicTimeEj
Unfortunately, these errors are only emitted when LTO is enabled,
meaning that a developer could check-in a file that will fail an LTO
build if they don't build with that option locally. Therefore, try to
head this off by updating check-webkit-style to identify and warn
about these cases (which includes when an export macro is applied
directly to an inline method as well as when an inline method is part
of an exported class).
- Scripts/webkitpy/style/checkers/cpp.py:
(_FunctionState.begin):
(_FunctionState.export_macro):
(_ClassInfo.init):
(check_for_non_standard_constructs):
(check_function_definition):
(process_line):
(CppChecker):
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(FunctionDetectionTest.perform_function_detection):
(FunctionDetectionTest.test_webcore_export):
- 12:04 PM Changeset in webkit [233053] by
-
- 10 edits6 adds in trunk
JSPerformanceObserverCallback creates a GC strongly-referenced Function that is never cleaned up
https://bugs.webkit.org/show_bug.cgi?id=186873
<rdar://problem/41271574>
Reviewed by Simon Fraser.
Source/WebCore:
Add [IsWeakCallback] to PerformanceObserverCallback interface so that the generated
JSPerformanceObserverCallback uses a JSC::Weak instead of a JSC::Strong to store the
js function. To keep the function alive, add [JSCustomMarkFunction] to PerformanceObserver
interface and have its visitAdditionalChildren() visit the callback's js function.
Finally, because we want the callback to still be called even if the JS does not keep
the PerformanceObserver wrapper alive, add [CustomIsReachable] to PerformanceObserver
interface and have its isReachableFromOpaqueRoots() return true if the observer is
registered (i.e. it may need to call the callback in the future).
I have confirmed locally, that the Performance / PerformanceObserver / Document
objects properly get destroyed if I navigate away from a page that had a performance
observer and trigger a memory pressure warning. Also,
notifyutil -p com.apple.WebKit.showAllDocuments
no longer shows the old document.
Tests: performance-api/performance-observer-callback-after-gc.html
performance-api/performance-observer-no-document-leak.html
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSPerformanceObserverCustom.cpp: Added.
(WebCore::JSPerformanceObserver::visitAdditionalChildren):
(WebCore::JSPerformanceObserverOwner::isReachableFromOpaqueRoots):
- bindings/js/ScriptController.cpp:
- page/PerformanceObserver.cpp:
(WebCore::PerformanceObserver::disassociate):
- page/PerformanceObserver.h:
(WebCore::PerformanceObserver::isRegistered const):
(WebCore::PerformanceObserver::callback):
- page/PerformanceObserver.idl:
- page/PerformanceObserverCallback.h:
- page/PerformanceObserverCallback.idl:
LayoutTests:
- performance-api/performance-observer-callback-after-gc-expected.txt: Added.
- performance-api/performance-observer-callback-after-gc.html: Added.
Add layout test to make sure that a performance observer's callback still gets called, even if
the JS does not keep the performance observer alive.
- performance-api/performance-observer-no-document-leak-expected.txt: Added.
- performance-api/performance-observer-no-document-leak.html: Added.
- performance-api/resources/performance-observer-no-document-leak-frame.html: Added.
Add layout test coverage to make sure the document does not leak if PerformanceObserver was
used.
- 11:59 AM Changeset in webkit [233052] by
-
- 6 edits in trunk/Source
[Fullscreen] Use secondary glyph style for fullscreen controls
https://bugs.webkit.org/show_bug.cgi?id=186862
<rdar://problem/41212210>
Reviewed by Tim Horton.
Source/WebCore/PAL:
- pal/spi/cocoa/AVKitSPI.h:
Source/WebKit:
Adopt AVBackgroundView, and use its predefined enums to set the material and tint styles for
the fullscreen controls.
- UIProcess/ios/fullscreen/WKFullScreenViewController.mm:
(-[WKFullScreenViewController loadView]):
- UIProcess/ios/fullscreen/WKFullscreenStackView.h:
- UIProcess/ios/fullscreen/WKFullscreenStackView.mm:
(-[WKFullscreenStackView init]):
(-[WKFullscreenStackView dealloc]):
(-[WKFullscreenStackView addArrangedSubview:applyingMaterialStyle:tintEffectStyle:]):
(-[WKFullscreenStackView layoutSubviews]):
(+[WKFullscreenStackView baseEffects]): Deleted.
(+[WKFullscreenStackView configureView:forTintEffectWithColor:filterType:]): Deleted.
(+[WKFullscreenStackView configureView:withBackgroundFillOfColor:opacity:filter:]): Deleted.
(+[WKFullscreenStackView secondaryMaterialOverlayView]): Deleted.
(+[WKFullscreenStackView applyPrimaryGlyphTintToView:]): Deleted.
(+[WKFullscreenStackView applySecondaryGlyphTintToView:]): Deleted.
(-[WKFullscreenStackView initWithArrangedSubviews:axis:]): Deleted.
(-[WKFullscreenStackView setTargetViewForSecondaryMaterialOverlay:]): Deleted.
(-[WKFullscreenStackView contentView]): Deleted.
(-[WKFullscreenStackView _setArrangedSubviews:axis:]): Deleted.
(-[WKFullscreenStackView setBounds:]): Deleted.
(-[WKFullscreenStackView updateConstraints]): Deleted.
- 11:54 AM Changeset in webkit [233051] by
-
- 9 edits in trunk
[Web Animations] Make imported/mozilla/css-animations/test_animation-ready.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183830
<rdar://problem/40997539>
Reviewed by Dean Jackson.
LayoutTests/imported/mozilla:
Mark progressions in the Mozilla CSS Animations tests.
- css-animations/test_animation-ready-expected.txt:
Source/WebCore:
The CSS Animations Level 2 spec explains how the Web Animations API and CSS Animations interact and requires
pending styles changes on the target element of a CSS Animation to be flushed when using a Web Animations API
on it in order to ensure that any animation- CSS property is accounted for.
- animation/CSSAnimation.cpp:
(WebCore::CSSAnimation::bindingsStartTime const):
(WebCore::CSSAnimation::setBindingsStartTime):
(WebCore::CSSAnimation::bindingsCurrentTime const):
(WebCore::CSSAnimation::setBindingsCurrentTime):
(WebCore::CSSAnimation::bindingsPlayState const):
(WebCore::CSSAnimation::bindingsPending const):
(WebCore::CSSAnimation::bindingsReady):
(WebCore::CSSAnimation::bindingsFinished):
(WebCore::CSSAnimation::bindingsPlay):
(WebCore::CSSAnimation::bindingsPause):
(WebCore::CSSAnimation::flushPendingStyleChanges const):
- animation/CSSAnimation.h:
- animation/WebAnimation.h:
(WebCore::WebAnimation::bindingsPlayState const):
(WebCore::WebAnimation::bindingsPending const):
(WebCore::WebAnimation::bindingsReady):
(WebCore::WebAnimation::bindingsFinished):
(WebCore::WebAnimation::bindingsPlay):
(WebCore::WebAnimation::bindingsPause):
- animation/WebAnimation.idl:
LayoutTests:
This test now passes reliably.
- 11:51 AM Changeset in webkit [233050] by
-
- 3 edits in trunk/Tools
[ews-build] unit-tests fail when run from another directory
https://bugs.webkit.org/show_bug.cgi?id=186872
Reviewed by Lucas Forschler.
- BuildSlaveSupport/ews-build/loadConfig.py:
(loadBuilderConfig): Add support for passing master_prefix_path.
- BuildSlaveSupport/ews-build/loadConfig_unittest.py:
(ConfigDotJSONTest.test_configuration): Set master_prefix_path as current directory.
- 11:47 AM Changeset in webkit [233049] by
-
- 5 edits in trunk/Source
[Fullscreen] Suspend page (and pause video) while phishing warning is presented
https://bugs.webkit.org/show_bug.cgi?id=186856
<rdar://problem/41212444>
Reviewed by Tim Horton.
Source/WebCore:
Pause the media element when the page is suspended, and unpause when the page resumes.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::suspend):
(WebCore::HTMLMediaElement::resume):
- html/HTMLMediaElement.h:
Source/WebKit:
- UIProcess/ios/fullscreen/WKFullScreenViewController.mm:
(-[WKFullScreenViewController _showPhishingAlert]):
- 11:44 AM Changeset in webkit [233048] by
-
- 5 edits1 add in trunk
flattenDictionaryStruture needs to zero inline storage.
https://bugs.webkit.org/show_bug.cgi?id=186869
Reviewed by Saam Barati.
JSTests:
- stress/flatten-object-zero-unused-inline-properties.js: Added.
Source/JavaScriptCore:
This patch also adds the assetion that unused property storage is
zero or JSValue() to putDirectInternal. Additionally, functions
have been added to $vm that flatten dictionary objects and return
the inline capacity of an object.
- runtime/JSObjectInlines.h:
(JSC::JSObject::putDirectInternal):
- runtime/Structure.cpp:
(JSC::Structure::flattenDictionaryStructure):
- tools/JSDollarVM.cpp:
(JSC::functionInlineCapacity):
(JSC::functionFlattenDictionaryObject):
(JSC::JSDollarVM::finishCreation):
- 11:42 AM Changeset in webkit [233047] by
-
- 3 edits in trunk/Tools
Add support for using localhost worker in OpenSource EWS Buildbot
https://bugs.webkit.org/show_bug.cgi?id=186871
Reviewed by Lucas Forschler.
- BuildSlaveSupport/ews-build/loadConfig.py:
(loadBuilderConfig): Added a worker named 'local-worker' if use_localhost_worker option is used.
- BuildSlaveSupport/ews-build/master.cfg: Check BUILDBOT_TESTING environment variable and use_localhost_worker if so.
- 11:35 AM Changeset in webkit [233046] by
-
- 17 edits in tags/Safari-606.1.22/Source/JavaScriptCore
Cherry-pick r233039. rdar://problem/40910419
Use IsoCellSets to track Executables with clearable code.
https://bugs.webkit.org/show_bug.cgi?id=186877
Reviewed by Filip Pizlo.
Here’s an example of the results that this fix may yield:
- The workload: load cnn.com, wait for it to fully load, scroll down and up.
- Statistics on memory touched and memory freed by VM::deleteAllCode():
Visiting Executables:
Old New
Number of objects visited: 70897 14264
Number of objects with deletable code: 14264 (20.1%) 14264 (100%)
Number of memory pages visited: 3224 1602
Number of memory pages with deletable code: 1602 (49.7%) 1602 (100%)
Visitng UnlinkedFunctionExecutables:
Old New
Number of objects visited: 105454 17231
Number of objects with deletable code: 42319 (20.1%) 17231 (100%)
Number of memory pages visited: 4796 1349
Number of memory pages with deletable code: 4013 (83.7%) 1349 (100%)
The number of objects differ because the old code only visit unlinked
executables indirectly via linked executables, whereas the new behavior visit
all unlinked executables with deletable code directly. This means:
- we used to not visit unlinked executables that have not been linked yet i.e. deleteAllCode() may not delete all code (especially code that is not used).
- we had to visit all linked executables to check if they of type FunctionExecutable, before going on to visit their unlinked executable, and this includes the ones that do not have deletable code. This means that we would touch more memory in the process.
Both of these these issues are now fixed with the new code.
This code was tested with manually inserted instrumentation to track the above
statistics. It is not feasible to write an automated test for this without
leaving a lot of invasive instrumentation in the code.
- bytecode/UnlinkedFunctionExecutable.cpp: (JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):
- bytecode/UnlinkedFunctionExecutable.h:
- heap/CodeBlockSetInlines.h: (JSC::CodeBlockSet::iterateViaSubspaces):
- heap/Heap.cpp: (JSC::Heap::deleteAllCodeBlocks): (JSC::Heap::deleteAllUnlinkedCodeBlocks): (JSC::Heap::deleteUnmarkedCompiledCode): (JSC::Heap::clearUnmarkedExecutables): Deleted. (JSC::Heap::addExecutable): Deleted.
- heap/Heap.h:
- runtime/DirectEvalExecutable.h:
- runtime/ExecutableBase.cpp: (JSC::ExecutableBase::hasClearableCode const):
- this is written based on the implementation of ExecutableBase::clearCode().
- runtime/ExecutableBase.h:
- runtime/FunctionExecutable.h:
- runtime/IndirectEvalExecutable.h:
- runtime/ModuleProgramExecutable.h:
- runtime/ProgramExecutable.h:
- runtime/ScriptExecutable.cpp: (JSC::ScriptExecutable::clearCode): (JSC::ScriptExecutable::installCode):
- runtime/ScriptExecutable.h: (JSC::ScriptExecutable::finishCreation):
- runtime/VM.cpp: (JSC::VM::VM):
- runtime/VM.h: (JSC::VM::ScriptExecutableSpaceAndSet::ScriptExecutableSpaceAndSet): (JSC::VM::ScriptExecutableSpaceAndSet::clearableCodeSetFor): (JSC::VM::forEachScriptExecutableSpace): (JSC::VM::UnlinkedFunctionExecutableSpaceAndSet::UnlinkedFunctionExecutableSpaceAndSet): (JSC::VM::UnlinkedFunctionExecutableSpaceAndSet::clearableCodeSetFor):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233039 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:35 AM Changeset in webkit [233045] by
-
- 2 edits in trunk/Tools
Add force schedulers to OpenSource EWS Buildbot
https://bugs.webkit.org/show_bug.cgi?id=186876
Reviewed by Lucas Forschler.
- BuildSlaveSupport/ews-build/loadConfig.py:
(loadBuilderConfig): Added support for ForceScheduler.
- 11:24 AM Changeset in webkit [233044] by
-
- 6 edits in trunk/Source/WebKit
Unreviewed, rolling out r232989.
Causes API regressions on macOS
Reverted changeset:
"REGRESSION (r231850): Cookie file cannot be read or written
by network process"
https://bugs.webkit.org/show_bug.cgi?id=186806
https://trac.webkit.org/changeset/232989
- 11:11 AM Changeset in webkit [233043] by
-
- 1 copy in tags/Safari-606.1.22
Tag Safari-606.1.22.
- 10:59 AM Changeset in webkit [233042] by
-
- 2 edits in branches/safari-606.1.20.40-branch/Source/WebKit
Cherry-pick r232848. rdar://problem/41120462
Plug-in Process crashing on Mojave (affects Flash, others)
https://bugs.webkit.org/show_bug.cgi?id=186628
<rdar://problem/41120462>
Reviewed by Eric Carlson.
Add the missing “com.apple.security.cs.allow-unsigned-executable-memory” entitlement. Also alphabetize
the entitlements file to make it easier to read.
- Configurations/PluginService.entitlements:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232848 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:44 AM Changeset in webkit [233041] by
-
- 1 edit1 move1 delete in trunk/Tools
[WSL] Merge WSL_type.ott and WSL_exec.ott
https://bugs.webkit.org/show_bug.cgi?id=186310
Rubberstamped by Filip Pizlo.
I moved the execution rules into WSL_type.ott, that was renamed WSL.ott.
I also changed the execution judgements:
- they now emit memory events instead of having an explicit store (so they can be connected later to a memory model)
- the environment is now unchangeable (except inside blocks, which are the only place that variable declarations can appear)
- various rules were simplified.
- WebGPUShadingLanguageRI/SpecWork/WSL.ott: Copied from Tools/WebGPUShadingLanguageRI/SpecWork/WSL_type.ott.
- WebGPUShadingLanguageRI/SpecWork/WSL_exec.ott: Removed.
- WebGPUShadingLanguageRI/SpecWork/WSL_type.ott: Removed.
- 8:48 AM Changeset in webkit [233040] by
-
- 2 edits in trunk/LayoutTests
Update TestExpectations for http/wpt/service-workers/third-party-registration.html.
https://bugs.webkit.org/show_bug.cgi?id=183860
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations: Mark as a flaky timeout.
- 8:09 AM Changeset in webkit [233039] by
-
- 17 edits in trunk/Source/JavaScriptCore
Use IsoCellSets to track Executables with clearable code.
https://bugs.webkit.org/show_bug.cgi?id=186877
Reviewed by Filip Pizlo.
Here’s an example of the results that this fix may yield:
- The workload: load cnn.com, wait for it to fully load, scroll down and up.
- Statistics on memory touched and memory freed by VM::deleteAllCode():
Visiting Executables:
Old New
Number of objects visited: 70897 14264
Number of objects with deletable code: 14264 (20.1%) 14264 (100%)
Number of memory pages visited: 3224 1602
Number of memory pages with deletable code: 1602 (49.7%) 1602 (100%)
Visitng UnlinkedFunctionExecutables:
Old New
Number of objects visited: 105454 17231
Number of objects with deletable code: 42319 (20.1%) 17231 (100%)
Number of memory pages visited: 4796 1349
Number of memory pages with deletable code: 4013 (83.7%) 1349 (100%)
The number of objects differ because the old code only visit unlinked
executables indirectly via linked executables, whereas the new behavior visit
all unlinked executables with deletable code directly. This means:
- we used to not visit unlinked executables that have not been linked yet i.e. deleteAllCode() may not delete all code (especially code that is not used).
- we had to visit all linked executables to check if they of type FunctionExecutable, before going on to visit their unlinked executable, and this includes the ones that do not have deletable code. This means that we would touch more memory in the process.
Both of these these issues are now fixed with the new code.
This code was tested with manually inserted instrumentation to track the above
statistics. It is not feasible to write an automated test for this without
leaving a lot of invasive instrumentation in the code.
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):
- bytecode/UnlinkedFunctionExecutable.h:
- heap/CodeBlockSetInlines.h:
(JSC::CodeBlockSet::iterateViaSubspaces):
- heap/Heap.cpp:
(JSC::Heap::deleteAllCodeBlocks):
(JSC::Heap::deleteAllUnlinkedCodeBlocks):
(JSC::Heap::deleteUnmarkedCompiledCode):
(JSC::Heap::clearUnmarkedExecutables): Deleted.
(JSC::Heap::addExecutable): Deleted.
- heap/Heap.h:
- runtime/DirectEvalExecutable.h:
- runtime/ExecutableBase.cpp:
(JSC::ExecutableBase::hasClearableCode const):
- this is written based on the implementation of ExecutableBase::clearCode().
- runtime/ExecutableBase.h:
- runtime/FunctionExecutable.h:
- runtime/IndirectEvalExecutable.h:
- runtime/ModuleProgramExecutable.h:
- runtime/ProgramExecutable.h:
- runtime/ScriptExecutable.cpp:
(JSC::ScriptExecutable::clearCode):
(JSC::ScriptExecutable::installCode):
- runtime/ScriptExecutable.h:
(JSC::ScriptExecutable::finishCreation):
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
(JSC::VM::ScriptExecutableSpaceAndSet::ScriptExecutableSpaceAndSet):
(JSC::VM::ScriptExecutableSpaceAndSet::clearableCodeSetFor):
(JSC::VM::forEachScriptExecutableSpace):
(JSC::VM::UnlinkedFunctionExecutableSpaceAndSet::UnlinkedFunctionExecutableSpaceAndSet):
(JSC::VM::UnlinkedFunctionExecutableSpaceAndSet::clearableCodeSetFor):
- 7:00 AM Changeset in webkit [233038] by
-
- 2 edits in trunk/Tools
[test262-runner] Improve failures output
https://bugs.webkit.org/show_bug.cgi?id=186858
Patch by Leo Balter <Leo Balter> on 2018-06-21
Reviewed by Michael Saboff.
- Scripts/test262/Runner.pm:
(main):
(processResult):
- 6:57 AM Changeset in webkit [233037] by
-
- 2 edits in trunk/Tools
[Tools] add a --debug option to test262/Runner.pm for buildbots
https://bugs.webkit.org/show_bug.cgi?id=186113
Reviewed by Michael Saboff.
test262-runner runs Debug builds by default, but this allows us to be
explicit about it in buildbots.
- Scripts/test262/Runner.pm:
(processCLI):
- 6:37 AM Changeset in webkit [233036] by
-
- 2 edits in trunk/Source/WebCore
Bad optional access in WebCore::ContentSecurityPolicySource::portMatches
https://bugs.webkit.org/show_bug.cgi?id=186535
Reviewed by Daniel Bates.
Make sure the ports have explicit values before dereferencing them.
This is hard to test. If the layout test script-src-parsing-implicit-and-explicit-port-number
continues to pass for WebKitLegacy, then I have at least probably not broken anything. To
reproduce the crash in a layout test that I can run, I think I would need to implement
internals.registerDefaultPortForProtocol for modern WebKit, which is too much work for this
crash. Otherwise, we'd need to run the test server on port 80, which would be unfriendly.
- page/csp/ContentSecurityPolicySource.cpp:
(WebCore::ContentSecurityPolicySource::portMatches const):
- 4:03 AM Changeset in webkit [233035] by
-
- 9 edits in trunk/Source
[GTK] WebDriver: allow applying host-specific TLS certificates for automated sessions
https://bugs.webkit.org/show_bug.cgi?id=186884
Reviewed by Carlos Garcia Campos.
Source/JavaScriptCore:
Add a tuple array input parameter to the StartAutomationSession DBus
message, representing a list of host-and-certificate pairs that have to
be allowed for a given session. This array is then unpacked and used to
fill out the certificates Vector object in the SessionCapabilities
struct.
- inspector/remote/RemoteInspector.h: Add a GLib-specific Vector of
String pairs representing hosts and the certificate file paths.
- inspector/remote/glib/RemoteInspectorServer.cpp:
Source/WebDriver:
Start handling the 'certificates' capability for the GTK+ port. This is
a list of host-certificate pairs that should be marked as allowed for a
given automation session. This object should be positioned inside the
'webkitgtk:browserOptions' dictionary in the capabilities JSON.
- Capabilities.h:
- glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::startAutomationSession): Include any
host-certificate pairs in the StartAutomationSession DBus message.
- gtk/WebDriverServiceGtk.cpp:
(WebDriver::WebDriverService::platformValidateCapability const):
Properly validate the 'certificates' value, if present.
(WebDriver::WebDriverService::platformParseCapabilities const):
Properly parse the 'certificates' value, if present, and extract the
host-certificate pairs.
Source/WebKit:
- UIProcess/API/glib/WebKitAutomationSession.cpp:
(webkitAutomationSessionCreate): Handle any host-certificate pair that's
been set for this session, creating a GTlsCertificate object through
loading from the specified certificate path and marking that certificate
as allowed for the specified host through the
webkit_web_context_allow_tls_certificate_for_host() API.
- 4:01 AM Changeset in webkit [233034] by
-
- 2 edits in trunk/Source/WebKit
Regression(r226990) : Crash under WebCore::Page::applicationWillResignActive
https://bugs.webkit.org/show_bug.cgi?id=186850
<rdar://problem/37394469>
Reviewed by Eric Carlson.
Make sure m_page is not null before calling applicationWillResignActive(). m_page
gets nulled out when WebPage::close() is called. The crash trace seems to indicate
we're calling applicationWillResignActive() on a Page that is dead since we crash
accessing Page::mainFrame().
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::applicationWillResignActive):
- 3:14 AM Changeset in webkit [233033] by
-
- 4 edits in trunk
[GStreamer] ASSERTION FAILED: end.isValid() in PlatformTimeRanges::add
https://bugs.webkit.org/show_bug.cgi?id=186880
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
Bug 180253 has added assertions the arugments
start
andend
is
valid MediaTime in PlatformTimeRanges::add. Since then, some
LayoutTests fail due to the assertion failure.
The invalid MediaTime is added into the PlatformTimeRanges in
MediaPlayerPrivateGStreamer::buffered. Before adding MediaTime,
original implementation checks MediaTime::operator bool() returns
true. But, this method returns true if the time value is invalid.
Then, PlatformTimeRanges::add is called with an invalid MediaTime.
No new tests (No behavior change).
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::buffered const): Check
maxTimeLoaded() is valid before adding totimeRanges
.
LayoutTests:
- platform/gtk/TestExpectations: Removed Crash marks of
compositing/geometry/clipped-video-controller.html,
fast/canvas/webgl/oes-texture-half-float-with-video.html,
fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565.html,
fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551.html,
fast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html,
fast/events/media-focus-in-standalone-media-document.html,
fullscreen/video-controls-timeline.html,
http/tests/appcache/video.html, and compositing/video/poster.html.
- 2:54 AM Changeset in webkit [233032] by
-
- 4 edits in trunk
[GTK] http/tests/misc/bubble-drag-events.html crashes
https://bugs.webkit.org/show_bug.cgi?id=182352
Reviewed by Carlos Garcia Campos.
Source/WebKit:
PingLoad::didFinish was called twice if it is used with
NetworkDataTaskSoup. PingLoad is not a ref-counted object. It is
destructed when PingLoad::didFinish is called.
PingLoad::didReceiveChallenge calls the ChallengeCompletionHandler
with AuthenticationChallengeDisposition::Cancel to cancel the
challenge and calls PingLoad::didFinish.
NetworkDataTaskSoup::continueAuthenticate calls
didReceiveChallenge with a ChallengeCompletionHandler which calls
didCompleteWithError. PingLoad::didCompleteWithError calls
PingLoad::didFinish.
didCompleteWithError callback should not be called in the
ChallengeCompletionHandler.
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::continueAuthenticate): Do not call
didFail() in the ChallengeCompletionHandler. Call
invalidateAndCancel() instead.
LayoutTests:
- platform/gtk/TestExpectations:
Marked http/tests/misc/bubble-drag-events.html as [ Failure ] not
[ Failure Timeout Crash ].
Unmarked http/tests/misc/cached-scripts.html.
- 2:27 AM Changeset in webkit [233031] by
-
- 2 edits in trunk/LayoutTests
Unreviewed WPE gardening. Handle various timeouts by adjusting or
adding the appropriate test expectations.
- platform/wpe/TestExpectations:
- 1:54 AM Changeset in webkit [233030] by
-
- 4 edits in trunk/Tools
run-gtk-tests (glib/common.py) cannot determine build directory when webKitBranchBuild=true
https://bugs.webkit.org/show_bug.cgi?id=185643
Reviewed by Frédéric Wang.
Check if webKitBranchBuild is true in git config to add the branch name to the build path.
- Scripts/webkitpy/common/checkout/scm/git.py:
(Git.read_git_config): Add output_type parameter.
(Git.read_config): Call read_git_config with cws and executive.
(Git._upstream_branch): Use read_config().
(Git._assert_can_squash): Ditto.
(Git.remote_branch_ref): Ditto.
- Scripts/webkitpy/common/checkout/scm/scm_unittest.py:
(GitSVNTest.test_read_git_config):
- glib/common.py:
(get_build_path):
Jun 20, 2018:
- 8:04 PM Changeset in webkit [233029] by
-
- 3 edits in trunk/Source/WebCore
Fix leaks in WebCore found by clang static analyzer in deep mode
<https://webkit.org/b/186865>
Reviewed by Joseph Pecoraro.
- platform/mac/WebCoreNSURLExtras.mm:
(WebCore::mapHostNames): Fix leak of an empty NSMutableArray
during an early return. RetainPtr<> is not used here since
a pointer to the NSMutableArray * is passed around.
- platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:
(WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream):
Fix leak of a CGDisplayModeRef during an early return.
- 6:28 PM Changeset in webkit [233028] by
-
- 2 edits in trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey
rebaseline failing High Sierra WebCryptoAPI tests (added extra new line).
https://bugs.webkit.org/show_bug.cgi?id=186863
Unreviewed test gardening.
- platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any-expected.txt:
- platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker-expected.txt:
- 5:08 PM Changeset in webkit [233027] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: All non-Same-Site cookies are marked as Same-Site Strict in Storage tab
https://bugs.webkit.org/show_bug.cgi?id=186867
<rdar://problem/41175424>
Reviewed by Matt Baker.
Fixes an issue where cookies that do not have a Same-Site policy would be marked up as Same-
Site Strict in Web Inspector's cookie storage content view (under the storage tab).
- UserInterface/Views/CookieStorageContentView.js:
(WI.CookieStorageContentView.prototype._rebuildTable): Only compute the display name if
we cookie.sameSite is non-null and is not WI.Cookie.SameSiteType.None. Moreover, remove
an extraneous call to WI.Cookie.parseSameSiteAttributeValue() as cookie.SameSite represents
the already parsed value (one of the WI.Cookie.SameSiteType-scoped values).
- 5:06 PM Changeset in webkit [233026] by
-
- 2 edits in trunk/LayoutTests
Layout Test imported/mozilla/css-animations/test_pseudoElement-get-animations.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=186868
Unreviewed test gardening.
- platform/win/TestExpectations:
- 4:57 PM Changeset in webkit [233025] by
-
- 4 edits2 adds in trunk
[WebKit on watchOS] Fixed position elements sometimes flicker when scrolling
https://bugs.webkit.org/show_bug.cgi?id=186860
<rdar://problem/39953563>
Reviewed by Tim Horton.
Source/WebKit:
Remove conditional guards that are no longer necessary, now that the oldest iOS version our builders support is
iOS 11. Conditionalizing this logic only for iOS 11+ meant that on watchOS, we're always falling down the path
where we don't schedule a visible content rect update until the next runloop, which makes it possible for a
remote layer tree transaction to arrive and cause us to update the scrolling tree with stale viewport geometry.
Test: WKScrollViewTests.PositionFixedLayerAfterScrolling
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _scheduleVisibleContentRectUpdateAfterScrollInView:]):
Tools:
Add a new API test to exercise a race condition between receiving remote layer tree commits and updating visible
content rects which would result in the compositing layer for a fixed position element sometimes appearing in
the wrong place. See WebKit ChangeLog for more details.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/fixed-nav-bar.html: Added.
- TestWebKitAPI/Tests/ios/WKScrollViewTests.mm: Added.
(traverseLayerTree):
(TEST):
- 4:04 PM Changeset in webkit [233024] by
-
- 2 edits in trunk/Tools
AttributeError: StatusServer instance has no attribute '_api_key' thrown when processing a patch
https://bugs.webkit.org/show_bug.cgi?id=186852
Fixes an issue where StatusServer._api_key may not be defined. This issue manifests itself
in a Python AttributeError exception when an EWS bot tries to fetch the next patch to process.
Currently StatusServer._api_key is only defined when either the environment variable WEBKIT_STATUS_API_KEY
or the Git configuration key webkit.status_api_key has a non-empty value. Instead we should
always define StatusServer._api_key in the StatusServer constructor.
- Scripts/webkitpy/common/net/statusserver.py:
(StatusServer.init):
- 3:04 PM Changeset in webkit [233023] by
-
- 1 edit4 adds in trunk/LayoutTests
rebaseline WebCryptoAPI tests for High Sierra.
https://bugs.webkit.org/show_bug.cgi?id=186863
Unreviewed test gardening.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any-expected.txt: Added.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker-expected.txt: Added.
- platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any-expected.txt: Added.
- platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker-expected.txt: Added.
- 2:26 PM Changeset in webkit [233022] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed, fix the watchOS build after r233016.
- page/EventHandler.cpp:
(WebCore::EventHandler::selectionExtentRespectingEditingBoundary):
Move this helper out of the ENABLE(DRAG_SUPPORT) guard.
- page/EventHandler.h:
- 1:24 PM Changeset in webkit [233021] by
-
- 2 edits in trunk/Websites/webkit.org
[WPE] Some fixups on webkit.org page
https://bugs.webkit.org/show_bug.cgi?id=186844
Unreviewed as the content is not modified, only some minor fixups on the format.
- wpe.md: Remove title as it's already provided by the website CMS.
Avoid breaking lines at 80 chars as it's not rendered as expected.
- 1:23 PM Changeset in webkit [233020] by
-
- 4 edits in trunk/Source/WebCore
AnimationList wastes 60KB of vector capacity
https://bugs.webkit.org/show_bug.cgi?id=186701
Reviewed by Chris Dumez.
AnimationList was the second most wasteful call site for Vector capacity on theverge.com,
wasting almost 60KB. Lists had between 1 and 3 entries, so give AnimationList's vector of
Animations a min capacity of zero so it doesn't grow in increments of 16.
Also shrink Animation from 88 bytes to 72 bytes by optimizing packing.
- platform/animation/Animation.cpp:
(WebCore::Animation::Animation):
(WebCore::Animation::operator=):
(WebCore::Animation::animationsMatch const):
- platform/animation/Animation.h:
(WebCore::Animation::animationMode const):
(WebCore::Animation::setAnimationMode):
- platform/animation/AnimationList.h:
- 12:39 PM Changeset in webkit [233019] by
-
- 5 edits in trunk/Source/WebCore
ContentSecurityPolicySourceList wastes 51KB of Vector capacity on cnn.com
https://bugs.webkit.org/show_bug.cgi?id=186706
Reviewed by Chris Dumez.
Make ContentSecurityPolicySourceList::parse() call shrinkToFit() on m_list
after parsing to eliminate wasted vector capacity.
Shrink ContentSecurityPolicySource down to 40 bytes by optimizing packing.
- page/csp/ContentSecurityPolicySource.cpp:
(WebCore::ContentSecurityPolicySource::ContentSecurityPolicySource):
- page/csp/ContentSecurityPolicySource.h:
- page/csp/ContentSecurityPolicySourceList.cpp:
(WebCore::ContentSecurityPolicySourceList::matches const):
(WebCore::ContentSecurityPolicySourceList::parse):
(WebCore::ContentSecurityPolicySourceList::matches): Deleted.
- page/csp/ContentSecurityPolicySourceList.h:
- 11:19 AM Changeset in webkit [233018] by
-
- 2 edits in trunk/Source/JavaScriptCore
Expand concurrent GC assertion to accept JSValue() or 0
https://bugs.webkit.org/show_bug.cgi?id=186855
Reviewed by Mark Lam.
We tend to set unused property slots to either JSValue() or 0
depending on the context. On 64-bit these are the same but on
32-bit JSValue() has a NaN tag. This patch makes it so we
the accept either JSValue() or 0.
- runtime/JSObjectInlines.h:
(JSC::JSObject::prepareToPutDirectWithoutTransition):
- 10:30 AM Changeset in webkit [233017] by
-
- 5 edits in trunk/LayoutTests
Unreviewed GTK+ test gardening.
https://bugs.webkit.org/show_bug.cgi?id=186854
- TestExpectations:
- platform/gtk/TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 10:22 AM Changeset in webkit [233016] by
-
- 6 edits in trunk/Source
Restrict Selection in contenteditable the extent of that contenteditable
https://bugs.webkit.org/show_bug.cgi?id=186792
Reviewed by Wenson Hsieh.
Source/WebCore:
My system currently will not allow me to run tests. I will add one when I can update.
Expose the already existing funcitonality to restrict a selection to a single contentenditable
- page/EventHandler.cpp:
(WebCore::EventHandler::selectionExtentRespectingEditingBoundary):
(WebCore::selectionExtentRespectingEditingBoundary): Deleted.
- page/EventHandler.h:
- rendering/HitTestResult.h:
Source/WebKit:
We have not been checking to make sure that when we make a selection that it is restricted to
a single content editable on iOS. There is functionality to ensure this on mac, so it has been
exposed and utilized for restricting the extent of a selection.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateSelectionWithTouches):
- 10:16 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 10:16 AM Changeset in webkit [233015] by
-
- 2 edits in trunk/Source/JavaScriptCore
[Armv7] Linkbuffer: executableOffsetFor() fails for location 2
https://bugs.webkit.org/show_bug.cgi?id=186765
Reviewed by Michael Saboff.
This widens the check for 0 so that we handle that case more correctly.
- assembler/LinkBuffer.h:
(JSC::LinkBuffer::executableOffsetFor):
- 10:13 AM Changeset in webkit [233014] by
-
- 2 edits in trunk/Source/WebCore
CSSFontFace wastes 59KB of Vector capacity on nytimes.com
https://bugs.webkit.org/show_bug.cgi?id=186708
Reviewed by Anders Carlsson.
Most CSSFontFace have one or two CSSFontFaceSource so don't allocate
vector capacity in the default 16-size chunks.
- css/CSSFontFace.h:
- 10:07 AM Changeset in webkit [233013] by
-
- 3 edits in trunk/Tools
[WSL] Add details to the sphinx outline
https://bugs.webkit.org/show_bug.cgi?id=186310
Rubberstamped by Filip Pizlo.
Mostly improving the sphinx outline.
Also started moving the execution rules to WSL_type.ott (which will eventually become WSL.ott).
Tried formalizing the gathering of declarations into the environment, but I think I will scratch it.
It is both trivial to do (and to explain in english) and a bit of a pain to formalize.
- 8:51 AM Changeset in webkit [233012] by
-
- 1 edit1 add in trunk/Websites/webkit.org
[WPE] Add page for webkit.org
https://bugs.webkit.org/show_bug.cgi?id=186844
Reviewed by Michael Catanzaro.
- wpe.md: Added.
- 6:53 AM Changeset in webkit [233011] by
-
- 2 edits in trunk/Tools
Unreviewed, rolling out r232844.
https://bugs.webkit.org/show_bug.cgi?id=186843
"Too many flakiness on the tests, so the EWS bots cant process
patches correctly" (Requested by clopez on #webkit).
Reverted changeset:
"[GTK] Enable tests on the GTK EWS queue"
https://bugs.webkit.org/show_bug.cgi?id=186559
https://trac.webkit.org/changeset/232844
- 4:48 AM Changeset in webkit [233010] by
-
- 7 edits in trunk
[Web Animations] Make imported/mozilla/css-transitions/test_element-get-animations.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183841
<rdar://problem/40998101>
Reviewed by Dean Jackson.
LayoutTests/imported/mozilla:
Mark progressions in the Mozilla CSS Transitions and CSS Animations tests.
- css-animations/test_element-get-animations-expected.txt:
- css-transitions/test_element-get-animations-expected.txt:
Source/WebCore:
We must ignore CSS Animations with "animation-name: none".
- animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::updateCSSAnimationsForElement):
LayoutTests:
This test now passes reliably.
- 4:05 AM Changeset in webkit [233009] by
-
- 2 edits in trunk/Source/WebCore
[GTK][ThreadedRendering][Nicosia] Themed elements cannot be rendered using threaded rendering
https://bugs.webkit.org/show_bug.cgi?id=186840
Reviewed by Carlos Garcia Campos.
Disable threaded rendering for GTK port.
- platform/graphics/nicosia/NicosiaPaintingEngine.cpp:
(Nicosia::PaintingEngine::create):
- 3:56 AM Changeset in webkit [233008] by
-
- 2 edits in trunk/Tools
[GTK] ASSERTION FAILED: url == m_string in UserAgentQuirks test
https://bugs.webkit.org/show_bug.cgi?id=186838
This URL constructor expects canonicalized input, so fix the passed URL.
Patch by Rob Buis <rbuis@igalia.com> on 2018-06-20
Reviewed by Frédéric Wang.
- TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::TEST):
- 3:55 AM Changeset in webkit [233007] by
-
- 3 edits in trunk/Tools
[WSL] Make the typing rules explicit about resolving type syntax
Rubberstamped by Filip Pizlo.
- 2:00 AM Changeset in webkit [233006] by
-
- 7 edits in trunk
[GTK][WPE][Nicosia] Add name for Nicosia Painting Threads
https://bugs.webkit.org/show_bug.cgi?id=186836
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Use "PaintingThread" name.
- platform/graphics/nicosia/NicosiaPaintingEngineThreaded.cpp:
(Nicosia::PaintingEngineThreaded::PaintingEngineThreaded):
Source/WTF:
AutomaticThread can take a name for the generated threads now.
This patch adds the above ability to WorkerPool.
- wtf/WorkerPool.cpp:
(WTF::WorkerPool::WorkerPool):
- wtf/WorkerPool.h:
(WTF::WorkerPool::create):
(WTF::WorkerPool::name const):
Tools:
- TestWebKitAPI/Tests/WTF/WorkerPool.cpp:
(TestWebKitAPI::TEST):
- 1:23 AM Changeset in webkit [233005] by
-
- 2 edits in trunk/Tools
[WPE] Remove warnings by setting nullptr for unused listeners
https://bugs.webkit.org/show_bug.cgi?id=186835
Reviewed by Carlos Garcia Campos.
frame, axis_source, axis_stop, and axis_discrete are unused.
Setting nullptr explicitly to remove warnings in GCC.
- wpe/backends/WindowViewBackend.cpp:
- 12:07 AM Changeset in webkit [233004] by
-
- 11 edits in trunk
[Web Animations] Make imported/mozilla/css-animations/test_pseudoElement-get-animations.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183818
<rdar://problem/40997015>
Reviewed by Dean Jackson.
LayoutTests/imported/mozilla:
Mark progressions in the Mozilla CSS Transitions and CSS Animations tests.
- css-animations/test_pseudoElement-get-animations-expected.txt:
- css-transitions/test_element-get-animations-expected.txt:
Source/WebCore:
We add a new opt-in flag to return sorted animations when calling AnimationTimeline::animationsForElement() so that
Element::getAnimations() can opt into returning animations sorted by the rules defined by the CSS Transitions spec.
The rule is that CSS Transitions must be sorted prior to CSS Animations and regular Web Animations, and then sorted
by the time they were generated and, if generated at the same time, sorted alphabetically based on the transitioned
property. To be able to accomodate this, we add a new generationTime() method to CSSTransition.
- animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::animationsForElement const):
(WebCore::AnimationTimeline::updateCSSTransitionsForElement):
- animation/AnimationTimeline.h:
- animation/CSSTransition.cpp:
(WebCore::CSSTransition::create):
(WebCore::CSSTransition::CSSTransition):
- animation/CSSTransition.h:
- dom/Element.cpp:
(WebCore::Element::getAnimations):
LayoutTests:
This test now passes reliably.
Jun 19, 2018:
- 11:37 PM Changeset in webkit [233003] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix broken assertion on 32-bit
https://bugs.webkit.org/show_bug.cgi?id=186830
Reviewed by Mark Lam.
The assertion was intended to catch concurrent GC issues. We don't
run them on 32-bit so we don't need this assertion there. The
assertion was broken because zero is not JSValue() on 32-bit.
- runtime/JSObjectInlines.h:
(JSC::JSObject::prepareToPutDirectWithoutTransition):
- 7:58 PM Changeset in webkit [233002] by
-
- 5 edits in trunk/Source/WebCore
[Curl] Allow passing contents of Root CA data directly.
https://bugs.webkit.org/show_bug.cgi?id=185782
Currently the data must be in a file and set by its path. This patch
allow application to set root CA data by passing binary data directly.
Reviewed by Yusuke Suzuki.
No new tests. Tested internally.
- platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::setupTransfer):
- platform/network/curl/CurlSSLHandle.cpp:
(WebCore::CurlSSLHandle::CurlSSLHandle):
(WebCore::CurlSSLHandle::getCACertPathEnv):
(WebCore::CurlSSLHandle::setCACertPath):
(WebCore::CurlSSLHandle::setCACertData):
(WebCore::CurlSSLHandle::clearCACertInfo):
- platform/network/curl/CurlSSLHandle.h:
(WebCore::CurlSSLHandle::getCipherList const):
(WebCore::CurlSSLHandle::getSignatureAlgorithmsList const):
(WebCore::CurlSSLHandle::getCurvesList const):
(WebCore::CurlSSLHandle::setCipherList):
(WebCore::CurlSSLHandle::setSignatureAlgorithmsList):
(WebCore::CurlSSLHandle::setCurvesList):
(WebCore::CurlSSLHandle::setIgnoreSSLErrors):
(WebCore::CurlSSLHandle::getCACertInfo const):
(WebCore::CurlSSLHandle::getCACertPath const): Deleted.
(WebCore::CurlSSLHandle::setCACertPath): Deleted.
- platform/network/curl/CurlSSLVerifier.cpp:
(WebCore::CurlSSLVerifier::CurlSSLVerifier):
- 6:28 PM Changeset in webkit [233001] by
-
- 2 edits in trunk/Source/JavaScriptCore
flattenDictionaryStructure needs to zero properties that have been compressed away
https://bugs.webkit.org/show_bug.cgi?id=186828
Reviewed by Mark Lam.
This patch fixes a bunch of crashing Mozilla tests on the bots.
- runtime/Structure.cpp:
(JSC::Structure::flattenDictionaryStructure):
- 6:11 PM Changeset in webkit [233000] by
-
- 3 edits1 add in trunk
DirectArguments::create needs to initialize to undefined instead of the empty value
https://bugs.webkit.org/show_bug.cgi?id=186818
<rdar://problem/38415177>
Reviewed by Filip Pizlo.
JSTests:
- stress/create-direct-arguments-in-osr-should-initialize-to-undefined.js: Added.
(foo):
(bar):
Source/JavaScriptCore:
The bug here is that we will emit code that just loads from DirectArguments as
long as the index is within the known capacity of the arguments object (op_get_from_arguments).
The arguments object has at least enough capacity to hold the declared parameters.
When we materialized this object in OSR exit, we initialized up to to the capacity
with JSValue(). In OSR exit, though, we only filled up to the length of the
object with actual values. So we'd end up with a DirectArguments object with
capacity minus length slots of JSValue(). To fix this, we need initialize up to
capacity with jsUndefined during construction. The invariant of this object is
that the capacity minus length slots at the end are filled in with jsUndefined.
- runtime/DirectArguments.cpp:
(JSC::DirectArguments::create):
- 6:01 PM Changeset in webkit [232999] by
-
- 2 edits in trunk/Source/WebCore
ARKit badge drop shadow updates its blur radius based on page zoom
https://bugs.webkit.org/show_bug.cgi?id=186829
<rdar://problem/40738779>
Reviewed by Tim Horton.
We need to make sure the shadow blur radius takes into account the
current zoom. Thankfully, the GraphicsContext platform code already
does this, so just use it.
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::paintSystemPreviewBadge):
- 5:45 PM Changeset in webkit [232998] by
-
- 2 edits in trunk/Source/JavaScriptCore
Crash in sanitizeStackForVMImpl sometimes when switching threads with same VM
https://bugs.webkit.org/show_bug.cgi?id=186827
Reviewed by Saam Barati.
Need to set VM::lastStackTop before any possible calls to sanitizeStack().
- runtime/JSLock.cpp:
(JSC::JSLock::didAcquireLock):
- 5:26 PM Changeset in webkit [232997] by
-
- 6 edits in trunk/Source
Blank viewer comes up and then auto-dismisses when device is not connected to Internet
https://bugs.webkit.org/show_bug.cgi?id=186825
<rdar://problem/40294170>
Reviewed by Tim Horton.
Source/WebCore:
Export isSuccessful() to WebKit.
- platform/network/ResourceResponseBase.h:
Source/WebKit:
Handle the case where the network load fails, and send that
error onto QuickLook.
- UIProcess/Cocoa/DownloadClient.mm:
(WebKit::DownloadClient::didReceiveResponse): Check for success.
(WebKit::DownloadClient::processDidCrash): Cancel in the case of a crash.
(WebKit::DownloadClient::didFail): Propagate the error onto QuickLook.
- UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
(-[_WKPreviewControllerDataSource failWithError:]): New method that calls
the completion handler with the error data.
(WebKit::SystemPreviewController::fail): New API method.
- UIProcess/SystemPreviewController.h:
- 5:09 PM Changeset in webkit [232996] by
-
- 3 edits in trunk/Tools
[test262-runner] Reduce flakiness of unit tests for the runner
https://bugs.webkit.org/show_bug.cgi?id=186824
Patch by Leo Balter <Leo Balter> on 2018-06-19
Reviewed by Michael Saboff.
- Scripts/test262/Runner.pm:
(main):
- Scripts/webkitperl/test262_unittest/test262-runner-tests.pl:
- 5:04 PM Changeset in webkit [232995] by
-
- 4 edits in trunk/Source/WebKit
Implement IPC throttling to keep the main thread responsive when a process misbehaves
https://bugs.webkit.org/show_bug.cgi?id=186607
<rdar://problem/41073205>
Reviewed by Geoffrey Garen.
Implement IPC throttling to keep the main thread responsive when a process misbehaves.
Instead of doing one main runloop dispatch per incoming message, we now do a single
runloop dispatch and process incoming messages in batch. We put a limit on the number
of messages to be processed in a batch (600). If the queue is larger that this limit,
we'll schedule a 0-timer to process remaining messages, giving the main runloop a chance
to process other events. Additionally, if an IPC connection keeps hitting this maximum
batch size limit, we implement back off and we'll further decrease the number of messages
we process in each batch (going as low as 60). This keeps Safari responsive enough to
allow the user to close the bad tab (even on older devices such as iPhone 5s).
Finally, if the incoming message queue becomes too large (50000), we go one step further
and kill the IPC connection in order to maintain performance / battery life.
Every time we apply throttling or terminate a connection due to throttling, we do a
RELEASE_LOG_ERROR() with useful information in order to help diagnose potential issues
in the future.
- Platform/IPC/Connection.cpp:
(IPC::Connection::Connection):
(IPC::Connection::enqueueIncomingMessage):
(IPC::Connection::MessagesThrottler::MessagesThrottler):
(IPC::Connection::MessagesThrottler::scheduleMessagesDispatch):
(IPC::Connection::MessagesThrottler::numberOfMessagesToProcess):
(IPC::Connection::dispatchIncomingMessages):
- Platform/IPC/Connection.h:
- Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::kill):
- 4:58 PM Changeset in webkit [232994] by
-
- 2 edits1 add in trunk/Tools
[test262-runner] Print results report to HTML
https://bugs.webkit.org/show_bug.cgi?id=186790
Patch by Leo Balter <Leo Balter> on 2018-06-19
Reviewed by Michael Saboff.
After runing the tests, 2 html files are created with a list to failing tests and summaries.
- Scripts/test262/Runner.pm:
(main):
(summarizeResults):
(printHTML):
- 4:28 PM Changeset in webkit [232993] by
-
- 2 edits in trunk/LayoutTests
Layout Test imported/mozilla/css-animations/test_animation-playstate.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=186807
Unreviewed test gardening.
- platform/win/TestExpectations:
- 4:26 PM Changeset in webkit [232992] by
-
- 11 edits in trunk/Source/WebCore
[Curl] Enable Proxy Authentication.
https://bugs.webkit.org/show_bug.cgi?id=185266
Add support for Proxy Authentication to curl network layer.
Reviewed by Alex Christensen.
No new tests in public. Tested internally.
- platform/network/curl/AuthenticationChallenge.h:
- platform/network/curl/AuthenticationChallengeCurl.cpp:
(WebCore::AuthenticationChallenge::protectionSpaceServerTypeFromURI):
(WebCore::AuthenticationChallenge::protectionSpaceFromHandle):
(WebCore::AuthenticationChallenge::determineProxyPort):
(WebCore::AuthenticationChallenge::authenticationSchemeFromCurlAuth):
(WebCore::AuthenticationChallenge::parseRealm):
- platform/network/curl/CurlContext.cpp:
(WebCore::CurlHandle::enableProxyIfExists):
(WebCore::CurlHandle::getProxyUrl):
(WebCore::CurlHandle::getProxyAuthAvail):
(WebCore::CurlHandle::getPrimaryPort): Deleted.
- platform/network/curl/CurlContext.h:
(WebCore::CurlContext::setDefaultProxyAuthMethod):
(WebCore::CurlContext::setProxyAuthMethod):
- platform/network/curl/CurlProxySettings.cpp:
(WebCore::determineAuthMethod):
(WebCore::CurlProxySettings::setAuthMethod):
(WebCore::protocolIsInSocksFamily):
- platform/network/curl/CurlProxySettings.h:
(WebCore::CurlProxySettings::setDefaultAuthMethod):
(WebCore::CurlProxySettings::authMethod const):
- platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::didReceiveHeader):
- platform/network/curl/CurlResponse.h:
(WebCore::CurlResponse::isolatedCopy const):
- platform/network/curl/ResourceResponse.h:
- platform/network/curl/ResourceResponseCurl.cpp:
(WebCore::ResourceResponse::isProxyAuthenticationRequired const):
- 4:06 PM Changeset in webkit [232991] by
-
- 7 edits2 adds in trunk
Unpainted area while scrolling in Reader is white
https://bugs.webkit.org/show_bug.cgi?id=186541
<rdar://problem/40471363>
Reviewed by Timothy Hatcher.
Source/WebCore:
New test: tiled-drawing/simple-document-with-dynamic-background-color.html
For platforms that do not use the overhang layer, we depend on
RenderView's background color to fill unpainted space.
RenderView's background color is only updated inside updateRootLayerConfiguration,
and it is possible with a simple enough page to change the document's
background color without running that code.
- page/FrameView.cpp:
(WebCore::FrameView::setTransparent):
(WebCore::FrameView::setBaseBackgroundColor):
Make use of the newly added rootBackgroundColorOrTransparencyChanged.
(WebCore::FrameView::calculateExtendedBackgroundMode const):
Update a comment, since the function it mentioned is no longer.
(WebCore::FrameView::updateTilesForExtendedBackgroundMode):
Remove this code that clears the root extended background color
if using tiles to extend in both directions. Two reasons:
1) it seems harmless to also have a root extended background color
2) this just gets clobbered by the call in RenderView::paintBoxDecorations
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingLayers):
Add a bit that will do a updateConfiguration() on the root layer if no
other work needs to be done, so that we can update the root layer's
transparency or background color without doing a full layer rebuild.
(WebCore::RenderLayerCompositor::rootOrBodyStyleChanged):
Make use of the newly added rootBackgroundColorOrTransparencyChanged.
(WebCore::RenderLayerCompositor::rootBackgroundColorOrTransparencyChanged):
Change rootBackgroundTransparencyChanged to also cover color changes.
Fold setRootExtendedBackgroundColor in here, and make use of
setRootLayerConfigurationNeedsUpdate() instead of doing a full rebuild.
Previously, we would bail if the transparency state hadn't changed;
now, we'll also update the root layer's background color and the
exposed-to-WebKit extended background color if they change too.
(WebCore::RenderLayerCompositor::rootBackgroundTransparencyChanged): Deleted.
(WebCore::RenderLayerCompositor::setRootExtendedBackgroundColor): Deleted.
- rendering/RenderLayerCompositor.h:
Add setRootLayerConfigurationNeedsUpdate, remove setRootExtendedBackgroundColor,
and add both a bit indicating that the root layer configuration needs updating
and the cached view background color to make the early return in
rootBackgroundColorOrTransparencyChanged possible.
- rendering/RenderView.cpp:
(WebCore::RenderView::paintBoxDecorations):
Make use of the newly added rootBackgroundColorOrTransparencyChanged.
LayoutTests:
- tiled-drawing/background-transparency-toggle-expected.txt:
This is a progression; the extended background color now matches the color
of the page at this point (#CCCCCC is the specified body background, black
with 0.2 alpha, blended with the root's white background).
- tiled-drawing/simple-document-with-dynamic-background-color-expected.txt: Added.
- tiled-drawing/simple-document-with-dynamic-background-color.html: Added.
Added a test that ensures that dynamically changing the background color
actually applies to the RenderView background. Previously, the second layer
tree dump would have a black background where it should be red.
- 3:22 PM Changeset in webkit [232990] by
-
- 4 edits in trunk/Source/WebKit
Make SecItemShim to not send return value for SecItemAdd
https://bugs.webkit.org/show_bug.cgi?id=186789
<rdar://problem/40892596>
Reviewed by Brent Fulgham.
Return value of SecItemAdd is often ignored. Even if it isn't, we don't have the ability to serialize SecKeychainItemRef.
Otherwise, it would go through the weird route of serializing SecKeychainItemRef by asking Keychain for its persistent
reference. This route contradicts the purpose of SecItemShim, which is to proxy all Keychain operations to UIProcess.
Also, this patch removes the release assertion on encode(Encoder&, SecAccessControlRef) and decode(Decoder&, RetainPtr<SecAccessControlRef>&)
as they don't query Keychain.
- Shared/cf/ArgumentCodersCF.cpp:
(IPC::encode):
(IPC::decode):
- Shared/mac/SecItemShim.cpp:
(WebKit::sendSecItemRequest):
(WebKit::webSecItemAdd):
- UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::secItemRequest):
- UIProcess/mac/SecItemShimProxy.h:
- UIProcess/mac/SecItemShimProxy.messages.in:
- 3:04 PM Changeset in webkit [232989] by
-
- 6 edits in trunk/Source/WebKit
REGRESSION (r231850): Cookie file cannot be read or written by network process
https://bugs.webkit.org/show_bug.cgi?id=186806
<rdar://problem/41113791>
Reviewed by Geoffrey Garen.
Default websiteDataStore may be added wrongly to network process before default session was
set, as messages were asynchronous, so the cookie storage could be improperly set.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
- 3:02 PM Changeset in webkit [232988] by
-
- 3 edits in trunk/Source/WebKit
Use getCurrentProcessID over getpid
https://bugs.webkit.org/show_bug.cgi?id=186813
Reviewed by Alex Christensen.
- Shared/WebMemorySampler.cpp:
(WebKit::WebMemorySampler::initializeTimers):
(WebKit::WebMemorySampler::stop):
(WebKit::WebMemorySampler::writeHeaders):
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::installServiceWorker):
- 2:59 PM Changeset in webkit [232987] by
-
- 2 edits in trunk/Tools
Crash running check-webkit-style on webrtc/.../exceptions.py
https://bugs.webkit.org/show_bug.cgi?id=186816
<rdar://problem/41262553>
Reviewed by Michael Catanzaro.
It's not apparent to me why the crash is occurring. Trying to write a
unittest that checks this file in isolation does not reproduce the
crash. But the crash goes away when updating to pylint-0.25.2.
- Scripts/webkitpy/thirdparty/init.py:
(AutoinstallImportHook._install_pylint):
- 2:58 PM Changeset in webkit [232986] by
-
- 3 edits in trunk/Tools
cpp style checker needs to know more about NOLINT
https://bugs.webkit.org/show_bug.cgi?id=186796
Reviewed by Aakash Jain.
Running check-webkit-style on
ThirdParty/gtest/src/gtest-internal-inl.h crashes with a KeyError as
it tries to look up information about a particular #include in a
dictionary it maintains. The problem has to do with the following
lines in gtest-internal-inl.h:
#include <gtest/gtest.h> NOLINT
#include <gtest/gtest-spi.h>
The NOLINT annotation will prevent the cpp-checker from processing or
even seeing that line. In skipping that line, information regarding
that line is NOT added to some internal tables. However, when the code
that checks that #includes are correctly alphabetized gets to the
"gtest-spi.h" line, it will not respect the NOLINT annotation and will
see the gtest.h line. When doing so, it runs afoul of the fact that it
hadn't seen that line before and it crashes when it tries to look up
that line in some internal records.
Fix this by catering to the possibility that a #include line may not
have been entered into these internal records.
- Scripts/webkitpy/style/checkers/cpp.py:
(check_include_line):
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
- 2:49 PM Changeset in webkit [232985] by
-
- 1 edit1 delete in trunk/LayoutTests
Unreviewed, revert some bad gardening.
I should not have added image results for a reftest.
- platform/gtk/imported/w3c/web-platform-tests/css/WOFF2/directory-knowntags-001-expected.png: Removed.
- platform/gtk/imported/w3c/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003-expected.png: Removed.
- 2:48 PM Changeset in webkit [232984] by
-
- 2 edits in trunk/Source/WebKit
WKWebsiteDataStoreRemoveAllServiceWorkerRegistrations does not invoke callback when Service Workers disabled
https://bugs.webkit.org/show_bug.cgi?id=186809
Reviewed by Chris Dumez.
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreRemoveAllServiceWorkerRegistrations):
- 2:27 PM Changeset in webkit [232983] by
-
- 3 edits1 add in trunk
ShadowChicken crashes with stack overflow in the LLInt
https://bugs.webkit.org/show_bug.cgi?id=186540
<rdar://problem/39682133>
Patch by Tadeu Zagallo <Tadeu Zagallo> on 2018-06-19
Reviewed by Saam Barati.
JSTests:
Add test that stack overflows and crashes on ShadowChicken when JIT is
disabled and forceDebuggerBytecodeGeneration is enabled.
- stress/llint-stack-overflow-debugging-opcodes.js: Added.
(foo):
(catch):
Source/JavaScriptCore:
Stack overflows in the LLInt were crashing in ShadowChicken when compiling
with debug opcodes because it was accessing the scope of the incomplete top
frame, which hadn't been set yet. Check that we have moved past the first
opcode (enter) and that the scope is not undefined (enter will
initialize it to undefined).
- interpreter/ShadowChicken.cpp:
(JSC::ShadowChicken::update):
- 2:01 PM Changeset in webkit [232982] by
-
- 2 edits in trunk/Tools
EWS for security bugs
https://bugs.webkit.org/show_bug.cgi?id=186291
<rdar://problem/40829658>
Update comment in AbstractEarlyWarningSystem.refetch_patch() to reference <https://bugs.webkit.org/show_bug.cgi?id=186817>.
- Scripts/webkitpy/tool/commands/earlywarningsystem.py:
(AbstractEarlyWarningSystem.refetch_patch):
- 1:53 PM Changeset in webkit [232981] by
-
- 2 edits in trunk/Source/WebCore
Need to properly handle removal of worker in SWServer::unregisterServiceWorkerClient timer lambda
https://bugs.webkit.org/show_bug.cgi?id=186674
<rdar://problem/40974812>
Reviewed by Chris Dumez.
While looping over the running workers map and trying to terminate some of the workers,
there is a chance that the map will be modified synchronously which may affect iterating the map.
This patch removes that potential threat.
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::unregisterServiceWorkerClient):
- 1:35 PM Changeset in webkit [232980] by
-
- 2 edits15 adds in trunk
EWS for security bugs
https://bugs.webkit.org/show_bug.cgi?id=186291
<rdar://problem/40829658>
Reviewed by Lucas Forschler
Part 2 of 2.
Adds a new Bugzilla extension that will automatically CC the EWS feeder queue
on each bug that has a patch up for review, including security bugs. This allows
the WebKit OpenSource Project to use an unprivileged Bugzilla account for the
EWS feeder queue.
- extensions/EWS/Config.pm: Added.
- extensions/EWS/Extension.pm: Added.
(new): Initialize some bookkeeping variables we use to track whether we have seen
a value change event for the review flag and whether we need to CC the feeder. The latter
we need to track because we can only make changes to the CC list in the callback
bug_start_of_update().
(object_before_set): This callback is called each time a setter is called on a Bugzilla
object. Check if the review flag was set to ? and do some bookkeeping. Although tempting
to do such work in the callback flag_end_of_update() instead of object_before_set() doing
such work would come AFTER we get callback bug_start_of_update() and hence after we have
committed the CC list of the bug to the database. Moreover, the "interface to [flag_end_of_update()]
is UNSTABLE and it may change in the future" according to <https://github.com/bugzilla/bugzilla/blob/d7cf1c91949248222806f5a32f485b12eab8806f/Bugzilla/Hook.pm#L797>.
(bug_start_of_update): Add the EWS feeder queue to the list of CC members of the bug, if needed.
(config_add_panels): Adds a new panel to the Administration Parameters screen.
(isReviewFlag): Helper function that returns whether the specified Bugzilla::Object represents
the review flag.
- extensions/EWS/docs/en/rst/index-admin.rst: Added.
- extensions/EWS/lib/ParamsPanelUI.pm: Added.
(checkUser): Helper function to determine if there exists a Bugzilla user corresponding to
the specified login name.
(get_param_list): Add configurable field to the Administration Parameters screen to specify
the login name of the EWS feeder queue.
- extensions/EWS/template/en/default/admin/params/ews.html.tmpl: Added.
- 1:34 PM Changeset in webkit [232979] by
-
- 22 edits3 copies3 adds in trunk/Tools
EWS for security bugs
https://bugs.webkit.org/show_bug.cgi?id=186291
<rdar://problem/40829658>
Reviewed by Lucas Forschler.
Part 1 of 2.
Implements support for EWS processing of patches on security sensitive bugs. We add new
endpoints to the status server to support uploading and downloading of patches and associated
metadata. When webkit-patch submits a patch for EWS processing it will now upload the contents
and metadata for the patch to the status server if the patch is on a security sensitive bug.
We teach the EWS machinery in webkitpy to query the status server for a patch only if fetching
the patch from Bugzilla is not permitted due to an authorization error.
Fetching patches from the status server requires an API key. The API key is read from the
environment variable WEBKIT_STATUS_API_KEY or the value of the Git configuration key webkit.status_api_key
(in that order). Contact me or another Apple engineer for an API key.
Additionally, default to using HTTPS when querying the status server and expose an optional
command line option called --status-host-uses-http to use the former behavior of querying
over HTTP.
- QueueStatusServer/config/authorization.py: Added.
(_path_to_authorized_api_keys_file): Returns the absolute filesystem path to the file authorized_api_keys.txt.
(_parse_authorized_api_keys):
(authorized_api_keys):
(_parse_authorization_header): Parses the API key from the Authorization header. We use a
custom authentication scheme: "apikey". See remark below for more details.
(is_authorized): Checks if the request includes an API key and whether that API key is in the
list of authorized keys (performs a case-sensitive match). The API key may be specified either
in a HTTP header Authorization or in the query string argument "apikey". When using the HTTP
headers approach the Authorization header should have the form: "Authorization: apikey X" where
X is the case-sensitive API key.
- QueueStatusServer/handlers/fetchattachment.py: Added.
(FetchAttachment):
(FetchAttachment.get):
- QueueStatusServer/handlers/releasepatch.py:
(ReleasePatch.check_processed_by_all_queues): Returns whether the specified attachment was processed by all the queues.
(ReleasePatch.post): Delete the patch from AppEngine (if we have it) once the patch was processed
by all the queues.
- QueueStatusServer/handlers/submittoews.py:
(SubmitToEWS._should_add_to_ews_queue): Fix a typo in a comment while I am working in this code.
- QueueStatusServer/handlers/uploadattachment.py: Added.
(UploadAttachment):
(UploadAttachment.get):
(UploadAttachment.post):
- QueueStatusServer/main.py: Add new routes /upload-attachment and /attachment to upload an attachment
and view an attachment (or its metadata), respectively.
- QueueStatusServer/model/attachmentdata.py: Added.
(AttachmentData):
(AttachmentData.add_attachment_data):
(AttachmentData.lookup_if_exists):
(AttachmentData.remove_attachment_data):
- QueueStatusServer/templates/uploadattachment.html: Added.
- Scripts/webkitpy/common/net/bugzilla/attachment.py:
(Attachment.committer):
(Attachment):
(Attachment.to_json): Serialize to JSON so that we can upload it to AppEngine.
(Attachment.from_json): Deserialize from JSON. This is used as part of downloading a patch from AppEngine.
- Scripts/webkitpy/common/net/bugzilla/attachment_unittest.py:
(AttachmentTest.test_convert_to_json_and_back): Added.
- Scripts/webkitpy/common/net/bugzilla/bug.py:
(Bug.groups): Returns a frozenset of groups that the bug is a member of.
(Bug.is_security_sensitive): Returns whether the bug is in group Security-Sensitive.
- Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
(BugzillaQueries.fetch_attachment_ids_from_review_queue): Modified to take an optional boolean, only_security_bugs,
as to whether to only fetch attachment ids for unreviewed patches associated with security bugs. By default, we
keep the current behavior and query for the attachment ids of all unreviewed patches that the currently logged in
Bugzilla user can see, which may include patches associated with security bugs.
(Bugzilla._parse_date): Update for moved and renamed constant. See remark for class Bugzilla.
(Bugzilla._parse_bug_dictionary_from_xml): Modified to return an empty dictionary if we do not have access to view the bug.
Otherwise, extract the name of the group the bug is in.
(Bugzilla.fetch_bug): Modified to return None if we do not have access to view the bug.
(Bugzilla._parse_bug_title_from_attachment_page): Extracted out logic to parse the title of the Attachment page
from _parse_bug_id_from_attachment_page() so that it can be used from both _parse_bug_id_from_attachment_page()
and get_bug_id_for_attachment_id().
(Bugzilla): Moved class constant _bugzilla_date_format to Scripts/webkitpy/common/net/bugzilla/constants.py
and renamed it to BUGZILLA_DATE_FORMAT.
(Bugzilla.AccessError):
(Bugzilla.AccessError.init):
(Bugzilla._parse_bug_id_from_attachment_page): Modified to return a tuple of ("bug id", "error code") so that
the caller can know the reason the parse failed if it did. The parse will fail if we do not have access to view
the bug.
(Bugzilla.bug_id_for_attachment_id): Modified to take a boolean throw_on_access_error (default: False)
as to whether to raise a Bugzilla.AccessError exception and pass it through to get_bug_id_for_attachment_id().
(Bugzilla.get_bug_id_for_attachment_id): Modified to take a boolean throw_on_access_error (default: False)
as to whether to raise a Bugzilla.AccessError exception if we do not have access to the bug associated with
the specified attachment id.
(Bugzilla.fetch_attachment):
- Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py:
(MockBugzillaQueries.fetch_attachment_ids_from_review_queue):
(MockBugzilla):
(MockBugzilla.fetch_attachment):
(MockBugzilla.fetch_attachment_contents):
(MockBugzilla.add_patch_to_bug):
- Scripts/webkitpy/common/net/bugzilla/bugzilla_unittest.py:
- Scripts/webkitpy/common/net/bugzilla/constants.py: Added.
- Scripts/webkitpy/common/net/statusserver.py:
(StatusServer)
(StatusServer.init): Modified to take an boolean use_https as to whether to query the server using
HTTPS (default: True - use HTTPS).
(StatusServer.set_host): Moved logic to compute the server URL from her to _server_url().
(StatusServer.set_use_https): Added.
(StatusServer.set_api_key): Added.
(StatusServer._server_url): Added.
(StatusServer._authorization_header_name_and_value_pair): Added.
(StatusServer.results_url_for_status): Update to use _server_url().
(StatusServer._post_status_to_server): Ditto.
(StatusServer._post_svn_revision_to_server): Ditto.
(StatusServer._post_work_items_to_server): Ditto.
(StatusServer._upload_attachment_to_server): Added.
(StatusServer.upload_attachment): Added.
(StatusServer._post_work_item_to_ews): Update to use _server_url().
(StatusServer.next_work_item): Ditto.
(StatusServer._post_release_work_item): Ditto.
(StatusServer._post_release_lock): Ditto.
(StatusServer._fetch_attachment_page): Added.
(StatusServer.fetch_attachment): Added.
(StatusServer._fetch_url): Add the API Key to the request if we have one.
(StatusServer.patch_status): Update to use _server_url().
(StatusServer.svn_revision): Ditto.
- Scripts/webkitpy/common/net/statusserver_mock.py:
(MockStatusServer.upload_attachment): Added.
(MockStatusServer.fetch_attachment): Added.
- Scripts/webkitpy/tool/bot/feeders.py:
(EWSFeeder.feed): Modified to download patches on security bugs and upload them to the status server (AppEngine).
- Scripts/webkitpy/tool/commands/download.py:
(ProcessAttachmentsMixin._fetch_list_of_patches_to_process): Modified to handle the case when fetching the
bug details from Bugzilla fail, say because we are not allowed to the view the bug.
(ProcessBugsMixin._fetch_list_of_patches_to_process): Filter out None values for attachments that we failed
to fetch, say because we are not allowed to the view the bug the attachment is on.
- Scripts/webkitpy/tool/commands/earlywarningsystem.py:
(AbstractEarlyWarningSystem.refetch_patch): For now, refetch the patch from the status server. Ideally, we
need a way to ask the status server to fetch the patch again from Bugzilla (or at least its metadata) so
that the EWS can check the current state of the patch (i.e. is it still marked r?).
- Scripts/webkitpy/tool/commands/queries_unittest.py:
(QueryCommandsTest.test_patches_to_review): Update expected result.
- Scripts/webkitpy/tool/commands/queues.py:
(AbstractPatchQueue._next_patch): Fetch the patch from the status server if we failed to fetch it from
Bugzilla because we do not have permission to view it.
- Scripts/webkitpy/tool/commands/queues_unittest.py:
- Scripts/webkitpy/tool/commands/upload_unittest.py:
(test_upload_of_security_sensitive_patch_with_no_review_and_ews): Added.
- Scripts/webkitpy/tool/main.py:
(WebKitPatch):
(WebKitPatch._status_server_api_key_from_git): Read the API key from the Git configuration key webkit.status_api_key.
(WebKitPatch._status_server_api_key): Read the API key from the environment variable WEBKIT_STATUS_API_KEY.
(WebKitPatch.handle_global_options): Read the API key and update the state of the StatusServer object, if applicable.
- Scripts/webkitpy/tool/steps/obsoletepatches.py:
(ObsoletePatches.run): Modified to handle the case when fetching the bug details from Bugzilla fail, say because we
are not allowed to the view the bug.
- Scripts/webkitpy/tool/steps/submittoews.py:
(SubmitToEWS.run): Upload the contents of the patch and the Bugzilla metadata about it to the status server
if the patch was posted to a security bug.
- 1:30 PM Changeset in webkit [232978] by
-
- 9 edits in trunk
[Web Animations] Make imported/mozilla/css-animations/test_animation-playstate.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183828
<rdar://problem/40997469>
Reviewed by Dean Jackson.
LayoutTests/imported/mozilla:
Mark a progression in the Mozilla CSS Animations tests.
- css-animations/test_animation-playstate-expected.txt:
Source/WebCore:
We need to ensure pending styles have been resolved prior to returning the play state for a CSS Animation since
it can be controlled by the animation-play-state CSS property. To that end we expose a specific bindings-only
method which we override for CSSAnimation to force a style update.
- animation/CSSAnimation.cpp:
(WebCore::CSSAnimation::bindingsPlayState const):
- animation/CSSAnimation.h:
- animation/WebAnimation.h:
(WebCore::WebAnimation::bindingsPlayState const):
- animation/WebAnimation.idl:
LayoutTests:
This test now passes reliably.
- 1:09 PM Changeset in webkit [232977] by
-
- 3 edits in trunk/Source/JavaScriptCore
constructArray variants should take the slow path for subclasses of Array
https://bugs.webkit.org/show_bug.cgi?id=186812
Reviewed by Saam Barati and Mark Lam.
This patch fixes a crashing test in ObjectInitializationScope where we would
allocate a new structure for an indexing type change while initializing
a subclass of Array. Since the new array hasn't been fully initialized
if the GC ran it would see garbage and we might crash.
- runtime/JSArray.cpp:
(JSC::constructArray):
(JSC::constructArrayNegativeIndexed):
- runtime/JSArray.h:
(JSC::constructArray): Deleted.
(JSC::constructArrayNegativeIndexed): Deleted.
- 12:58 PM Changeset in webkit [232976] by
-
- 3 edits2 deletes in tags/Safari-606.1.21.1
Revert r232787. rdar://problem/41259591
- 12:55 PM Changeset in webkit [232975] by
-
- 7 edits in tags/Safari-606.1.21.1/Source
Versioning.
- 12:40 PM Changeset in webkit [232974] by
-
- 1 copy in tags/Safari-606.1.21.1
New tag.
- 12:39 PM Changeset in webkit [232973] by
-
- 4 edits1 add in trunk/Tools
QueueStatusServer: "'NoneType' object has no attribute 'message'" in ReleasePatch.get()
when attachment is skipped by queue
https://bugs.webkit.org/show_bug.cgi?id=186748
Reviewed by Lucas Forschler.
Fixes an issue where releasing a patch that was skipped by a queue would cause an AttributeError
in ReleasePatch.get().
When removing a patch from a queue we update queue statistics. As part of this process
we record the last message posted to the status server for the patch. Currently if a patch
is skipped by the queue when picking the next patch to process (say, we failed to fetch the
attachment) then the queue does not post a message to the status server before it asks the
status server to remove the patch from the list of patches the queue needs to process. Instead
the queue should tell the status server that it chose to skip the patch before asking for the
patch to be removed from its list of patches to process.
- Scripts/webkitpy/common/net/bugzilla/attachment.py:
(Attachment.bug_id): Return None if we do not have a bug ID. This can happen if we failed
to fetch the attachment from Bugzilla (say, Bugzilla's markup changed) or we do not have
have permission to view the Bugzilla bug.
- Scripts/webkitpy/common/net/bugzilla/attachment_unittest.py: Added.
(AttachmentTest):
(AttachmentTest.test_no_bug_id):
- Scripts/webkitpy/tool/commands/queues.py:
(AbstractPatchQueue._next_patch): Call AbstractPatchQueue._did_skip() to post a status
update to the status server and then release the work item.
- Scripts/webkitpy/tool/commands/queues_unittest.py:
(AbstractPatchQueueTest.test_next_patch): Update expected result.
- 11:59 AM Changeset in webkit [232972] by
-
- 2 edits in trunk/Tools
Test262-Runner: Improve files queue to optimize CPU usage/balancing
https://bugs.webkit.org/show_bug.cgi?id=186443
Patch by Leo Balter <Leo Balter> on 2018-06-19
Reviewed by Michael Saboff.
This patch creates a queue manager for to keep the child process open while the parent process feed each child with test files to run.
- Scripts/test262/Runner.pm:
(processCLI):
(main):
- 11:56 AM Changeset in webkit [232971] by
-
- 3 edits in trunk/JSTests
[test262-runner] More updates to the skip list
https://bugs.webkit.org/show_bug.cgi?id=186786
Patch by Leo Balter <Leo Balter> on 2018-06-19
Reviewed by Michael Saboff.
- test262/config.yaml:
- test262/expectations.yaml:
- 11:48 AM Changeset in webkit [232970] by
-
- 5 edits1 add in trunk
Wasm: Any function argument of type Void should be a validation error
https://bugs.webkit.org/show_bug.cgi?id=186794
<rdar://problem/41140257>
Reviewed by Keith Miller.
JSTests:
- wasm/Builder.js:
(const._normalizeFunctionSignature):
- wasm/function-tests/void-argument-type-should-be-a-validation-error.js: Added.
(getBinary):
- wasm/self-test/test_BuilderJSON.js:
Source/JavaScriptCore:
- wasm/WasmModuleParser.cpp:
(JSC::Wasm::ModuleParser::parseType):
- 11:31 AM Changeset in webkit [232969] by
-
- 4 edits in trunk/Source/WebCore
Revert: Add logging when splashboardd enables WebThread
<https://webkit.org/b/186793>
<rdar://problem/41213255>
Turns out this isn't needed, so reverting r232959.
- platform/RuntimeApplicationChecks.h:
- platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::IOSApplication::isSplashBoardd): Deleted.
- platform/ios/wak/WebCoreThread.mm:
(WebThreadEnable):
- 11:09 AM Changeset in webkit [232968] by
-
- 18 edits2 adds in trunk
[WebKit on watchOS] Vend username text content type when using scribble in login fields
https://bugs.webkit.org/show_bug.cgi?id=186791
<rdar://problem/41226935>
Reviewed by Beth Dakin.
Source/WebCore:
Expose AutofillElements' autofillable username input element. See WebKit ChangeLog for more details.
- editing/ios/AutofillElements.h:
(WebCore::AutofillElements::username const):
Source/WebKit:
Vend additional context to Quickboard when focusing an element that is likely to be a username field.
Test: fast/forms/watchos/username-text-content-type.html
- Shared/AssistedNodeInformation.cpp:
(WebKit::AssistedNodeInformation::encode const):
(WebKit::AssistedNodeInformation::decode):
- Shared/AssistedNodeInformation.h:
Add a new flag to tell the UI process when the currently focused element is an autofillable username input
field (using existing app autofill heuristics).
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView textContentTypeForTesting]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
Add new testing SPI to grab the computed text content type for the focused element.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(contentTypeFromFieldName):
If
autocomplete="username"
is specified, return a username text content type. This was not originally added in
r197626 because UITextContentTypeUsername was only introduced later, in iOS 11.
(-[WKContentView textContentTypeForListViewController:]):
(-[WKContentView textContentTypeForTesting]):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):
Tools:
Add testing support for grabbing the current text content type of the focused element.
- DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::textContentType const):
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::textContentType const):
- TestRunnerShared/UIScriptContext/UIScriptController.h:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::textContentType const):
LayoutTests:
Add a new layout test verifying that:
- There is no text content type for a lone plain text input.
- The text content type for a plain text input preceding a password field is "username".
- The text content type for a lone plain text input with
autocomplete="username"
is "username".
- fast/forms/watchos/username-text-content-type-expected.txt: Added.
- fast/forms/watchos/username-text-content-type.html: Added.
- resources/ui-helper.js:
(window.UIHelper.textContentType):
- 11:06 AM Changeset in webkit [232967] by
-
- 4 edits in trunk/Source/WebKit
Unreviewed, rolling out r232947.
Caused an API test to time out
Reverted changeset:
"Implement IPC throttling to keep the main thread responsive
when a process misbehaves"
https://bugs.webkit.org/show_bug.cgi?id=186607
https://trac.webkit.org/changeset/232947
- 10:42 AM Changeset in webkit [232966] by
-
- 2 edits in trunk/LayoutTests
Layout Test imported/mozilla/css-transitions/test_animation-cancel.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=186807
Unreviewed test gardening.
- platform/win/TestExpectations:
- 10:12 AM Changeset in webkit [232965] by
-
- 2 edits in trunk/Source/WebCore
WebCoreNSURLSessionDataTaskClient::redirectReceived() calls WebCore on non-main thread
https://bugs.webkit.org/show_bug.cgi?id=186805
<rdar://problem/36960714>
Reviewed by Youenn Fablet.
Make sure WebCoreNSURLSessionDataTaskClient::redirectReceived() dispatches to the main
thread before calling its completion handler. Otherwise, we end up calling into WebCore
on a NSOperationQueue background thread and we crash.
- platform/network/cocoa/WebCoreNSURLSession.mm:
(WebCore::WebCoreNSURLSessionDataTaskClient::redirectReceived):
- 10:10 AM Changeset in webkit [232964] by
-
- 11 edits in trunk/Source
HTTPHeaderMap wastes 226KB of HashTable capacity on cnn.com
https://bugs.webkit.org/show_bug.cgi?id=186735
<rdar://problem/41189164>
Reviewed by Geoffrey Garen.
Source/WebCore:
Resource requests and responses normally do not have a large amount of HTTP headers
(local testing shows 6 common headers on average and 0.3 uncommon ones).
As a result, move the internal representation of HTTPHeaderMap from HashMaps to
Vectors. Given the number of headers, the impact on performance should be negligible.
However, the new implementation uses a lot less memory. In a follow-up, we can save
even more memory by calling HTTPHeaderMap::shrinkToFit() when possible.
- loader/CrossOriginAccessControl.cpp:
(WebCore::createAccessControlPreflightRequest):
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):
- loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::canReuse const):
- platform/network/HTTPHeaderMap.cpp:
(WebCore::HTTPHeaderMap::isolatedCopy const):
(WebCore::HTTPHeaderMap::get const):
(WebCore::HTTPHeaderMap::set):
(WebCore::HTTPHeaderMap::add):
(WebCore::HTTPHeaderMap::append):
(WebCore::HTTPHeaderMap::addIfNotPresent):
(WebCore::HTTPHeaderMap::contains const):
(WebCore::HTTPHeaderMap::remove):
- platform/network/HTTPHeaderMap.h:
(WebCore::HTTPHeaderMap::CommonHeader::isolatedCopy const):
(WebCore::HTTPHeaderMap::CommonHeader::operator== const):
(WebCore::HTTPHeaderMap::UncommonHeader::isolatedCopy const):
(WebCore::HTTPHeaderMap::UncommonHeader::operator== const):
(WebCore::HTTPHeaderMap::HTTPHeaderMapConstIterator::HTTPHeaderMapConstIterator):
(WebCore::HTTPHeaderMap::HTTPHeaderMapConstIterator::updateKeyValue):
(WebCore::HTTPHeaderMap::shrinkToFit):
(WebCore::HTTPHeaderMap::commonHeaders const):
(WebCore::HTTPHeaderMap::uncommonHeaders const):
(WebCore::HTTPHeaderMap::commonHeaders):
(WebCore::HTTPHeaderMap::uncommonHeaders):
(WebCore::HTTPHeaderMap::CommonHeader::encode const):
(WebCore::HTTPHeaderMap::CommonHeader::decode):
(WebCore::HTTPHeaderMap::UncommonHeader::encode const):
(WebCore::HTTPHeaderMap::UncommonHeader::decode):
(WebCore::HTTPHeaderMap::encode const):
(WebCore::HTTPHeaderMap::decode):
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::filter):
(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFields):
Source/WebKit:
- NetworkProcess/cache/NetworkCacheCoders.cpp:
(WTF::Persistence::Coder<WebCore::HTTPHeaderMap>::decode):
- 9:46 AM Changeset in webkit [232963] by
-
- 21 edits4 adds in trunk
Network Preflights do not show in WebInspector after moving CORS checks to NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=186312
<rdar://problem/40495434>
Reviewed by Chris Dumez.
Source/WebCore:
Test: http/wpt/fetch/inspect-preflight.html
No change of behavior in regular conditions.
All intermediate requests/responses are now buffered in NetworkProcess if Web inspector shows up.
Add NetworkLoadInformation and NetworkIntermediateLoadInformation for that purpose.
Add a new LoaderStrategy method to grab this information from NetworkProcess synchronously.
Add Internals API for testing the storage by the Network Process and the sending to WebProcess.
- WebCore.xcodeproj/project.pbxproj:
- loader/LoaderStrategy.cpp:
(WebCore::LoaderStrategy::intermediateLoadInformationFromResourceLoadIdentifier):
- loader/LoaderStrategy.h:
- platform/network/NetworkLoadInformation.h: Added.
(WebCore::NetworkTransactionInformation::encode const):
(WebCore::NetworkTransactionInformation::decode):
- testing/Internals.cpp:
(WebCore::Internals::setCaptureExtraNetworkLoadMetricsEnabled):
(WebCore::Internals::ongoingLoadDescriptions):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
Add buffering of all request/response of a given load, including redirections and preflights.
This buffering is switched on/off by a boolean which is switched on in case Web Inspector is launched.
Buffering is done in NetworkLoadChecker.
We add ways to retrieve preflight information from NetworkCORSPreflightChecker.
Implement LoaderStrategy new methods through sync IPC.
- NetworkProcess/NetworkCORSPreflightChecker.cpp:
(WebKit::NetworkCORSPreflightChecker::NetworkCORSPreflightChecker):
(WebKit::NetworkCORSPreflightChecker::startPreflight):
(WebKit::NetworkCORSPreflightChecker::willPerformHTTPRedirection):
(WebKit::NetworkCORSPreflightChecker::didReceiveResponseNetworkSession):
(WebKit::NetworkCORSPreflightChecker::didCompleteWithError):
(WebKit::NetworkCORSPreflightChecker::takeInformation):
- NetworkProcess/NetworkCORSPreflightChecker.h:
- NetworkProcess/NetworkConnectionToWebProcess.h:
(WebKit::NetworkConnectionToWebProcess::takeNetworkLoadInformationRequest):
(WebKit::NetworkConnectionToWebProcess::takeNetworkLoadIntermediateInformation):
(WebKit::NetworkConnectionToWebProcess::addNetworkLoadInformation):
(WebKit::NetworkConnectionToWebProcess::addNetworkLoadInformationMetrics):
(WebKit::NetworkConnectionToWebProcess::addNetworkLoadInformationResponse): Deleted.
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::check):
(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::checkResponse):
(WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight):
(WebKit::NetworkLoadChecker::storeRedirection):
- NetworkProcess/NetworkLoadChecker.h:
(WebKit::NetworkLoadChecker::takeNetworkLoadInformation):
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
- NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::PingLoad):
- Scripts/webkit/messages.py:
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::intermediateLoadInformationFromResourceLoadIdentifier):
- WebProcess/Network/WebLoaderStrategy.h:
LayoutTests:
- http/wpt/fetch/inspect-preflight-expected.txt: Added.
- http/wpt/fetch/inspect-preflight.html: Added.
- http/wpt/fetch/resources/preflight.py: Added.
- platform/mac-wk1/TestExpectations:
- platform/win/TestExpectations:
- 8:55 AM Changeset in webkit [232962] by
-
- 2 edits in trunk/Source/WebKit
MAP_JIT is not present for minimal simulator builds
https://bugs.webkit.org/show_bug.cgi?id=186608
Reviewed by Darin Adler.
- Configurations/WebContent-iOS-minimalsimulator.entitlements:
- 8:37 AM Changeset in webkit [232961] by
-
- 2 edits in trunk/LayoutTests
Layout Test imported/mozilla/css-animations/test_animation-cancel.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=184011
Unreviewed.
This test should pass reliably as of r232960 thanks to the fix to webkit.org/b/183821.
- 8:33 AM Changeset in webkit [232960] by
-
- 8 edits in trunk
[Web Animations] Make imported/mozilla/css-transitions/test_animation-cancel.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183821
<rdar://problem/40997034>
Reviewed by Dean Jackson.
LayoutTests/imported/mozilla:
Mark a progression in the Mozilla CSS Transitions tests.
- css-transitions/test_animation-cancel-expected.txt:
Source/WebCore:
If an element gets a "display: none" style RenderTreeUpdater::tearDownRenderers() will be called with a RendererUpdateCancelingAnimations
teardown type on all of its children. We need to ensure all declarative animations, and only those since regular Web Animations should be
kept active regardless of their target's style, are canceled in this situation.
- animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::cancelDeclarativeAnimationsForElement):
- animation/AnimationTimeline.h:
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::tearDownRenderers):
LayoutTests:
This test now passes reliably.
- 7:02 AM Changeset in webkit [232959] by
-
- 4 edits in trunk/Source/WebCore
Add logging when splashboardd enables WebThread
<https://webkit.org/b/186793>
<rdar://problem/41213255>
Reviewed by Daniel Bates.
- platform/RuntimeApplicationChecks.h:
(WebCore::IOSApplication::isSplashBoardd): Add declaration.
- platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::IOSApplication::isSplashBoardd): Add implementation.
- platform/ios/wak/WebCoreThread.mm:
(WebThreadEnable): Call RELEASE_LOG_FAULT() if this is called by
splashboardd.
- 5:05 AM Changeset in webkit [232958] by
-
- 4 edits in trunk/Source/WebCore
[GTK][WPE][Nicosia] Add environment variable to enable threaded rendering and set the number of painting threads
https://bugs.webkit.org/show_bug.cgi?id=186801
Reviewed by Carlos Garcia Campos.
Add and environment variable to enable the usage of the threaded renderer and define the number
of painting threads.
No new tests.
- platform/graphics/nicosia/NicosiaPaintingEngine.cpp:
(Nicosia::PaintingEngine::create):
- platform/graphics/nicosia/NicosiaPaintingEngineThreaded.cpp:
(Nicosia::PaintingEngineThreaded::PaintingEngineThreaded):
- platform/graphics/nicosia/NicosiaPaintingEngineThreaded.h:
- 3:35 AM Changeset in webkit [232957] by
-
- 2 edits in trunk/Tools
[WSL] Improving the typing rules
Rubberstamped by Filip Pizlo.
- 12:20 AM Changeset in webkit [232956] by
-
- 12 edits in trunk
RTCRtpSender.replaceTrack(null) ends current track
https://bugs.webkit.org/show_bug.cgi?id=184911
<rdar://problem/40758138>
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/webrtc/RTCRtpSender-replaceTrack-expected.txt:
Source/WebCore:
Before the patch, when replacing the sender track by null, the previous track was stopped.
Instead of doing that, the track now stays alive and it is the realtime source that is stopped.
This ensures that the data is no longer sent while the track can still be used elsewhere.
Covered by updated and rebased tests.
- Modules/mediastream/PeerConnectionBackend.h:
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::addTransceiver):
(WebCore::RTCPeerConnection::enqueueReplaceTrackTask):
(WebCore::RTCPeerConnection::replaceTrack):
- Modules/mediastream/RTCPeerConnection.h:
- Modules/mediastream/RTCRtpSender.cpp:
(WebCore::RTCRtpSender::replaceTrack):
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::updateTrackSource):
(WebCore::LibWebRTCPeerConnectionBackend::replaceTrack):
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
LayoutTests:
Added checks for readyState to ensure the track remains live.
Split the main test into several tests to ease readability.
- webrtc/video-replace-track-to-null-expected.txt:
- webrtc/video-replace-track-to-null.html:
- 12:14 AM Changeset in webkit [232955] by
-
- 2 edits6 adds in trunk/Tools
[WSL] Snapshot of the elements of the spec
Rubberstamped by Filip Pizlo.
Jun 18, 2018:
- 11:58 PM Changeset in webkit [232954] by
-
- 3 edits in trunk/Source/JavaScriptCore
JSImmutableButterfly should assert m_header is adjacent to the data
https://bugs.webkit.org/show_bug.cgi?id=186795
Reviewed by Saam Barati.
- runtime/JSImmutableButterfly.cpp:
- runtime/JSImmutableButterfly.h:
- 6:34 PM Changeset in webkit [232953] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix the build...
- runtime/JSArray.cpp:
(JSC::JSArray::tryCreateUninitializedRestricted):
- 6:27 PM Changeset in webkit [232952] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, remove bad assertion.
- runtime/JSArray.cpp:
(JSC::JSArray::tryCreateUninitializedRestricted):
- 4:53 PM Changeset in webkit [232951] by
-
- 12 edits1 add in trunk
Properly zero unused property storage offsets
https://bugs.webkit.org/show_bug.cgi?id=186692
Reviewed by Filip Pizlo.
JSTests:
- stress/butterfly-zero-unused-butterfly-properties.js: Added.
Source/JavaScriptCore:
Since the concurrent GC might see a property slot before the mutator has actually
stored the value there, we need to ensure that slot doesn't have garbage in it.
Right now when calling constructConvertedArrayStorageWithoutCopyingElements
or creating a RegExp matches array, we never cleared the unused
property storage. ObjectIntializationScope has also been upgraded
to look for our invariants around property storage. Additionally,
a new assertion has been added to check for JSValue() when adding
a new property.
We used to put undefined into deleted property offsets. To
make things simpler, this patch causes us to store JSValue() there
instead.
Lastly, this patch fixes an issue where we would initialize the
array storage of RegExpMatchesArray twice. First with 0 and
secondly with the actual result. Now we only zero memory between
vector length and public length.
- runtime/Butterfly.h:
(JSC::Butterfly::offsetOfVectorLength):
- runtime/ButterflyInlines.h:
(JSC::Butterfly::tryCreateUninitialized):
(JSC::Butterfly::createUninitialized):
(JSC::Butterfly::tryCreate):
(JSC::Butterfly::create):
(JSC::Butterfly::createOrGrowPropertyStorage):
(JSC::Butterfly::createOrGrowArrayRight):
(JSC::Butterfly::growArrayRight):
(JSC::Butterfly::resizeArray):
- runtime/JSArray.cpp:
(JSC::JSArray::tryCreateUninitializedRestricted):
(JSC::createArrayButterflyInDictionaryIndexingMode): Deleted.
- runtime/JSArray.h:
(JSC::tryCreateArrayButterfly):
- runtime/JSObject.cpp:
(JSC::JSObject::createArrayStorageButterfly):
(JSC::JSObject::constructConvertedArrayStorageWithoutCopyingElements):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::shiftButterflyAfterFlattening):
- runtime/JSObject.h:
- runtime/JSObjectInlines.h:
(JSC::JSObject::prepareToPutDirectWithoutTransition):
- runtime/ObjectInitializationScope.cpp:
(JSC::ObjectInitializationScope::verifyPropertiesAreInitialized):
- runtime/ObjectInitializationScope.h:
(JSC::ObjectInitializationScope::release):
- runtime/RegExpMatchesArray.h:
(JSC::tryCreateUninitializedRegExpMatchesArray):
(JSC::createRegExpMatchesArray):
- runtime/Butterfly.h:
(JSC::Butterfly::offsetOfVectorLength):
- runtime/ButterflyInlines.h:
(JSC::Butterfly::tryCreateUninitialized):
(JSC::Butterfly::createUninitialized):
(JSC::Butterfly::tryCreate):
(JSC::Butterfly::create):
(JSC::Butterfly::createOrGrowPropertyStorage):
(JSC::Butterfly::createOrGrowArrayRight):
(JSC::Butterfly::growArrayRight):
(JSC::Butterfly::resizeArray):
- runtime/JSArray.cpp:
(JSC::JSArray::tryCreateUninitializedRestricted):
(JSC::createArrayButterflyInDictionaryIndexingMode): Deleted.
- runtime/JSArray.h:
(JSC::tryCreateArrayButterfly):
- runtime/JSObject.cpp:
(JSC::JSObject::createArrayStorageButterfly):
(JSC::JSObject::constructConvertedArrayStorageWithoutCopyingElements):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::shiftButterflyAfterFlattening):
- runtime/JSObject.h:
- runtime/JSObjectInlines.h:
(JSC::JSObject::prepareToPutDirectWithoutTransition):
- runtime/ObjectInitializationScope.cpp:
(JSC::ObjectInitializationScope::verifyPropertiesAreInitialized):
- runtime/RegExpMatchesArray.cpp:
(JSC::createEmptyRegExpMatchesArray):
- runtime/RegExpMatchesArray.h:
(JSC::tryCreateUninitializedRegExpMatchesArray):
(JSC::createRegExpMatchesArray):
- 3:26 PM Changeset in webkit [232950] by
-
- 2 edits in trunk/Source/WebKit
Resource Load Statistics: Make sure to call callbacks even if there is no store (test infrastructure)
https://bugs.webkit.org/show_bug.cgi?id=186777
<rdar://problem/41216181>
Reviewed by Chris Dumez.
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreStatisticsUpdateCookiePartitioning):
(WKWebsiteDataStoreSetStatisticsShouldPartitionCookiesForHost):
(WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStore):
(WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
- 3:14 PM Changeset in webkit [232949] by
-
- 2 edits in trunk/Source/WebCore
Better pack ResourceRequest
https://bugs.webkit.org/show_bug.cgi?id=186717
Reviewed by Darin Adler.
Better pack ResourceRequest to reduce its size from 240 to 232 bytes
on Mac.
- platform/network/ResourceRequestBase.h:
- 2:46 PM Changeset in webkit [232948] by
-
- 6 edits in trunk
Crash under WebProcessPool::networkProcessFailedToLaunch():
https://bugs.webkit.org/show_bug.cgi?id=186784
<rdar://problem/33535377>
Reviewed by Brady Eidson.
Source/WebKit:
- UIProcess/API/Cocoa/WKProcessPool.mm:
(+[WKProcessPool _allProcessPoolsForTesting]):
Add SPI to retrieve all WebProcessPool for testing purposes.
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::clearCallbackStates):
Make iteration over completion handlers robust against completion handlers
getting removed while we iterate.
(WebKit::NetworkProcessProxy::didClose):
Ref the WebProcessPool (which keeps the NetworkProcessProxy alive too)
as several calls within this method might cause the WebProcessPool /
NetworkProcessProxy to get destroyed.
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(TEST):
- 2:45 PM Changeset in webkit [232947] by
-
- 4 edits in trunk/Source/WebKit
Implement IPC throttling to keep the main thread responsive when a process misbehaves
https://bugs.webkit.org/show_bug.cgi?id=186607
Reviewed by Geoffrey Garen.
Implement IPC throttling to keep the main thread responsive when a process misbehaves.
Instead of doing one main runloop dispatch per incoming message, we now do a single
runloop dispatch and process incoming messages in batch. We put a limit on the number
of messages to be processed in a batch (600). If the queue is larger that this limit,
we'll schedule a 0-timer to process remaining messages, giving the main runloop a chance
to process other events. Additionally, if an IPC connection keeps hitting this maximum
batch size limit, we implement back off and we'll further decrease the number of messages
we process in each batch (going as low as 60). This keeps Safari responsive enough to
allow the user to close the bad tab (even on older devices such as iPhone 5s).
Finally, if the incoming message queue becomes too large (50000), we go one step further
and kill the IPC connection in order to maintain performance / battery life.
Every time we apply throttling or terminate a connection due to throttling, we do a
RELEASE_LOG_ERROR() with useful information in order to help diagnose potential issues
in the future.
- Platform/IPC/Connection.cpp:
(IPC::Connection::Connection):
(IPC::Connection::enqueueIncomingMessage):
(IPC::Connection::MessagesThrottler::MessagesThrottler):
(IPC::Connection::MessagesThrottler::scheduleMessagesDispatch):
(IPC::Connection::MessagesThrottler::numberOfMessagesToProcess):
(IPC::Connection::dispatchIncomingMessages):
- Platform/IPC/Connection.h:
- Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::kill):
- 2:20 PM Changeset in webkit [232946] by
-
- 25 edits in trunk
[Web Animations] Implement "Starting of transitions" section from CSS Transitions
https://bugs.webkit.org/show_bug.cgi?id=186517
<rdar://problem/41000798>
Reviewed by Dean Jackson.
LayoutTests/imported/mozilla:
Mark some progressions in the Mozilla CSS Animations and CSS Transitions tests.
- css-transitions/test_animation-cancel-expected.txt:
- css-transitions/test_animation-ready-expected.txt:
Source/WebCore:
We implement the whole section at https://drafts.csswg.org/css-transitions-1/#starting so that we have spec-compliant starting of CSS Transitions.
To correctly implement this we now maintain two maps of transitions for a given property, a set of running transitions (m_elementToRunningCSSTransitionByCSSPropertyID)
and a set of completed transition (m_elementToCompletedCSSTransitionByCSSPropertyID).
- animation/AnimationTimeline.cpp:
(WebCore::removeCSSTransitionFromMap): Add a utility to remove a CSSTransition from one of the two HashMap<Element*, HashMap<CSSPropertyID, RefPtr<CSSTransition>>>
managed by AnimationTimeline (m_elementToRunningCSSTransitionByCSSPropertyID and m_elementToCompletedCSSTransitionByCSSPropertyID).
(WebCore::AnimationTimeline::animationWasRemovedFromElement): Use the new removeCSSTransitionFromMap() utility.
(WebCore::AnimationTimeline::updateCSSAnimationsForElement): We rename "oldStyle" to "currentStyle" to align with the naming used by updateCSSAnimationsForElement().
We also remove an initial check that has been pushed up to Style::TreeResolver::createAnimatedElementUpdate().
(WebCore::propertyInStyleMatchesValueForTransitionInMap): When running the steps mandated by the spec we often need to check whether a given property has a transition
in an AnimationList that matches the value used in a given RenderStyle.
(WebCore::transitionCombinedDuration): We need to compute the combined duration twice while running the steps mandated by the spec, so we have a dedicated utility.
(WebCore::transitionMatchesProperty): New utility that indicates whether a WebCore::Animation matches a given property, by virtue of targeting it directly, targeting
a shorthand for which this property is a longhand, or targeting "all".
(WebCore::AnimationTimeline::updateCSSTransitionsForElement): This is where all of the new implementation for starting transitions happens. We implement the steps
as they appear in the spec.
(WebCore::shouldBackingAnimationBeConsideredForCSSTransition): Deleted.
- animation/AnimationTimeline.h:
- animation/CSSAnimation.cpp:
(WebCore::CSSAnimation::syncPropertiesWithBackingAnimation): Since only CSS Animations respect the delay and duration values as parsed directly in a WebCore:Animation
object, we move code that was previously in DeclarativeAnimation::syncPropertiesWithBackingAnimation to this method. CSS Transitions set those values based on the
delay and duration parameters passed to CSSTransition::create() and computed in AnimationTimeline::updateCSSTransitionsForElement().
- animation/CSSTransition.cpp:
(WebCore::CSSTransition::create): Since the transition's delay and duration is computed in AnimationTimeline::updateCSSTransitionsForElement(), we now require them
to be passed when creating a CSSTransition and pass those to the new setTimingProperties() function. We also expect a target style and reversing-adjusted start style,
as well as a reversing-shortening factor.
(WebCore::CSSTransition::CSSTransition):
(WebCore::CSSTransition::resolve): We need to be able to query the last style computed by a call to resolve() from AnimationTimeline::updateCSSTransitionsForElement(),
we subclass this newly-virtual WebAnimation method and clone the style after we blended the property targeted by this transition.
(WebCore::CSSTransition::setTimingProperties): Set the transition delay and duration as provided in the call to create().
(WebCore::CSSTransition::canBeListed const): Fix a crash that was found while working on this bug where we could access a null effect.
(WebCore::CSSTransition::initialize): Deleted.
(WebCore::CSSTransition::matchesBackingAnimationAndStyles const): Deleted.
- animation/CSSTransition.h:
- animation/DeclarativeAnimation.cpp:
(WebCore::DeclarativeAnimation::syncPropertiesWithBackingAnimation): This virtual method now has an empty definition since the timing properties are now only set
for CSSAnimation.
- animation/KeyframeEffectReadOnly.cpp:
(WebCore::KeyframeEffectReadOnly::stylesWouldYieldNewCSSTransitionsBlendingKeyframes const): Deleted.
- animation/KeyframeEffectReadOnly.h:
- animation/WebAnimation.h:
- page/animation/CSSPropertyAnimation.cpp:
(WebCore::AnimationPropertyWrapperBase::canInterpolate const): Since we need to be able to determine whether some property values can be interpolated, we add a new
canInterpolate() method to the base wrapper class so the cases where we can't interpolate values (length with an "auto" type) may return false.
(WebCore::LengthPropertyWrapper::LengthPropertyWrapper): Lengths can only be interpolated if both the start and end values are not "auto".
(WebCore::LengthVariantPropertyWrapper::LengthVariantPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
(WebCore::CSSPropertyAnimation::canPropertyBeInterpolated):
- page/animation/CSSPropertyAnimation.h:
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::createAnimatedElementUpdate): Move a check found in both updateCSSAnimationsForElement() and updateCSSTransitionsForElement() to their
shared call site.
LayoutTests:
Implementing the CSS Transitions spec for starting transitions highlighted a couple of issues with existing tests.
- TestExpectations: The test imported/mozilla/css-transitions/test_animation-ready.html now passes reliably.
- animations/transition-and-animation-3-expected.txt:
- animations/transition-and-animation-3.html: This test was mistakenly expecting a retargeted transition to pick
up from the underlying value (100px) rather than the interrupted transition's value (~0px). We update the test
to be more obvious about what it is testing and with the correct behavior per the spec.
- transitions/background-position-transitions-expected.txt:
- transitions/background-position-transitions.html: Shorthand properties are expected to yield a transitiong for
each shorthand property, so we update this test to check the background-position shorthand properties.
- transitions/resources/transition-test-helpers.js: We uncovered a crash, which is not new to this patch, that forces
us to work around using the background-position longhand properties. So we work around this by reading from the shorthand
background-position property and manually parsing the value. Fixing this crash is tracked by webkit.org/b/186766.
- transitions/transition-to-from-auto-expected.txt:
- transitions/transition-to-from-auto.html: Update the test to check that we only yield transitions when interpolating
between non-auto values, as mandated by the spec.
- 2:14 PM Changeset in webkit [232945] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: TypeError: Array.prototype.sort passed bad value in NetworkTableContentView _updateSortAndFilteredEntries
https://bugs.webkit.org/show_bug.cgi?id=186787
<rdar://problem/41175680>
Reviewed by Timothy Hatcher.
- UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView.prototype._updateSortAndFilteredEntries):
- 2:04 PM Changeset in webkit [232944] by
-
- 2 edits in trunk/Source/WebCore
AX: [macOS] When zoom is enabled, focus doesn't follow text cursor
https://bugs.webkit.org/show_bug.cgi?id=186697
Reviewed by Darin Adler.
Now that web process doesn't have access to NSScreen. The conversion of the
rects is wrong. Fixed this by using the right function that's available in
WebCore to get the rects.
- editing/mac/FrameSelectionMac.mm:
(WebCore::accessibilityConvertScreenRect):
- 1:48 PM Changeset in webkit [232943] by
-
- 12 edits in trunk
Expose RTCPeerConnectionIceEventInit constructor
https://bugs.webkit.org/show_bug.cgi?id=186770
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/webrtc/RTCPeerConnectionIceEvent-constructor-expected.txt:
Updated expectation as per patch.
- web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl-expected.txt:
Rebasing this file, changes are unrelated but test is marked as flaky.
Source/WebCore:
Add event constructor as per specification.
Add support for the url attribute.
For that purpose, we need to pipe that information from LibWebRTCMediaEndpoint
up to RTCPeerConnectionIceEvent.
Covered by rebased test.
- Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::fireICECandidateEvent):
(WebCore::PeerConnectionBackend::disableICECandidateFiltering):
(WebCore::PeerConnectionBackend::newICECandidate):
(WebCore::PeerConnectionBackend::doneGatheringCandidates):
(WebCore::PeerConnectionBackend::finishedRegisteringMDNSName):
- Modules/mediastream/PeerConnectionBackend.h:
- Modules/mediastream/RTCPeerConnectionIceEvent.cpp:
(WebCore::RTCPeerConnectionIceEvent::create):
(WebCore::RTCPeerConnectionIceEvent::RTCPeerConnectionIceEvent):
- Modules/mediastream/RTCPeerConnectionIceEvent.h:
(WebCore::RTCPeerConnectionIceEvent::url const):
- Modules/mediastream/RTCPeerConnectionIceEvent.idl:
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::OnIceCandidate):
- bindings/js/WebCoreBuiltinNames.h:
- dom/EventNames.in:
- 1:11 PM Changeset in webkit [232942] by
-
- 2 edits in trunk/Source/WebCore
SVGTransformListValues wastes 127KB of Vector capacity on nytimes.com
https://bugs.webkit.org/show_bug.cgi?id=186704
Reviewed by Said Abou-Hallawa.
SVGTransformListValues has inline capacity 1, and every SVGGraphicsElement has
a SVGSynchronizableAnimatedProperty<WebCore::SVGTransformListValues>, so the inline
capacity wastes space for every SVGGraphicsElement that doesn't have a transform (i.e.
most of them).
So make SVGTransformListValues have zero inline capacity, and set its min capacity to
2, rather than the default 16, since most transform lists are short.
- svg/SVGTransformListValues.h:
- 12:28 PM Changeset in webkit [232941] by
-
- 3 edits2 adds in trunk
Document should not be mutated under SMILTimeContainer::updateAnimations()
https://bugs.webkit.org/show_bug.cgi?id=186658
Reviewed by Simon Fraser.
Source/WebCore:
To update the animation of an SVG <animate> element, we call
SVGAnimateElementBase::resetAnimatedType(). It ensures the pointer m_animator
is valid. If it animates a css property, it calls computeCSSPropertyValue()
which calls resolveStyle() via other calls. resolveStyle() may call delayed
callbacks through the destructor of PostResolutionCallbackDisabler. These
callbacks may fire events. These events may execute JS event handlers.
If one of these event handlers deletes the same SVG <animate> we animate,
we will end up calling SVGAnimateElementBase::resetAnimatedPropertyType()
of the same <animate> element. This function will delete the same m_animator
which resetAnimatedType() still holds and will use later. This code
re-entrance is unexpected and unwanted.
The fix is to disable mutating the DOM while updating the SVG animations.
Test: svg/dom/css-animate-input-foucs-crash.html
- svg/animation/SMILTimeContainer.cpp:
(WebCore::SMILTimeContainer::updateAnimations):
LayoutTests:
- svg/dom/css-animate-input-foucs-crash-expected.txt: Added.
- svg/dom/css-animate-input-foucs-crash.html: Added.
- 12:13 PM Changeset in webkit [232940] by
-
- 2 edits in trunk/LayoutTests
fast/forms/button-set-display-flex-justifyContent-center.html is failing on macOS Mojave
https://bugs.webkit.org/show_bug.cgi?id=186776
<rdar://problem/41104962>
Fix a failing layout test by making the reference markup robust for changes to system button text color. This
system color is different in macOS Mojave, which causes this layout test to fail.
Reviewed by Beth Dakin.
- fast/forms/button-set-display-flex-justifyContent-center-expected.html:
- 12:05 PM Changeset in webkit [232939] by
-
- 3 edits2 copies1 add1 delete in trunk/LayoutTests
Unreviewed GTK test gardening
- TestExpectations:
- platform/gtk/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/css/WOFF2/directory-knowntags-001-expected.png: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/woff2/directory-knowntags-001-expected.png.
- platform/gtk/imported/w3c/web-platform-tests/css/WOFF2/tabledata-glyf-origlength-003-expected.png: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/woff2/tabledata-glyf-origlength-003-expected.png.
- 12:01 PM Changeset in webkit [232938] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, rolling out r232935.
https://bugs.webkit.org/show_bug.cgi?id=186783
This patch broke macOS 32-bit build (Requested by n_wang on
#webkit).
Reverted changeset:
"AX: [macOS] When zoom is enabled, focus doesn't follow text
cursor"
https://bugs.webkit.org/show_bug.cgi?id=186697
https://trac.webkit.org/changeset/232935
- 11:54 AM Changeset in webkit [232937] by
-
- 4 edits in trunk/Source
Add a graceful exit for AuthenticationManager::initializeConnection
https://bugs.webkit.org/show_bug.cgi?id=186632
<rdar://problem/41041033>
Reviewed by Brent Fulgham.
Source/WebKit:
Add a graceful exit for AuthenticationManager::initializeConnection when the provided IPC connection
is null or the underlying xpc connection is null.
- Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm:
(WebKit::AuthenticationManager::initializeConnection):
Source/WTF:
- wtf/spi/darwin/XPCSPI.h:
- 11:49 AM Changeset in webkit [232936] by
-
- 4 edits2 adds in trunk/Source/JavaScriptCore
Share structure across instances of classes exported through the ObjC API
https://bugs.webkit.org/show_bug.cgi?id=186579
<rdar://problem/40969212>
Patch by Tadeu Zagallo <Tadeu Zagallo> on 2018-06-18
Reviewed by Saam Barati.
A new structure was being created for each instance of exported ObjC
classes due to setting the prototype in the structure for every object,
since prototype transitions are not cached by the structure. Cache the
Structure in the JSObjcClassInfo to avoid the transition.
- API/JSWrapperMap.mm:
(-[JSObjCClassInfo wrapperForObject:inContext:]):
(-[JSObjCClassInfo structureInContext:]):
- API/tests/JSWrapperMapTests.h: Added.
- API/tests/JSWrapperMapTests.mm: Added.
(+[JSWrapperMapTests testStructureIdentity]):
(runJSWrapperMapTests):
- API/tests/testapi.mm:
(testObjectiveCAPIMain):
- JavaScriptCore.xcodeproj/project.pbxproj:
- 11:31 AM Changeset in webkit [232935] by
-
- 2 edits in trunk/Source/WebCore
AX: [macOS] When zoom is enabled, focus doesn't follow text cursor
https://bugs.webkit.org/show_bug.cgi?id=186697
Reviewed by Darin Adler.
Now that web process doesn't have access to NSScreen. The conversion of the
rects is wrong. Fixed this by using the right function that's available in
WebCore to convert the rects.
- editing/mac/FrameSelectionMac.mm:
(WebCore::accessibilityConvertScreenRect):
- 10:55 AM Changeset in webkit [232934] by
-
- 16 edits in trunk
Support Unicode 11 in RegExp
https://bugs.webkit.org/show_bug.cgi?id=186685
Reviewed by Mark Lam.
JSTests:
- test262/config.yaml: Removed from skip list Unicode 11 property tests as they
are now supported. Added new bug reference for still failing
test/built-ins/RegExp/property-escapes/character-class.js test.
- test262/test/built-ins/RegExp/property-escapes/unsupported-binary-properties.js:
Removed "Extended_Pictographic" from unsupported properties since Unicode 11 now supports them.
Source/JavaScriptCore:
Updated the UCD tables used to generate RegExp property tables to version 11.0.
- Scripts/generateYarrUnicodePropertyTables.py:
- ucd/CaseFolding.txt:
- ucd/DerivedBinaryProperties.txt:
- ucd/DerivedCoreProperties.txt:
- ucd/DerivedNormalizationProps.txt:
- ucd/PropList.txt:
- ucd/PropertyAliases.txt:
- ucd/PropertyValueAliases.txt:
- ucd/ScriptExtensions.txt:
- ucd/Scripts.txt:
- ucd/UnicodeData.txt:
- ucd/emoji-data.txt:
- 10:30 AM Changeset in webkit [232933] by
-
- 10 edits3 adds in trunk
Validate Cross-Origin-Resource-Policy for resources cached in the MemoryCache
https://bugs.webkit.org/show_bug.cgi?id=186639
<rdar://problem/41106984>
Reviewed by Geoffrey Garen.
Source/WebCore:
Add a method to check CORP.
Make use of it to validate any memory cached resource.
Whitelist CORP header so that it is not filtered out by Network Process.
Test: http/wpt/cross-origin-resource-policy/image-in-iframe-loads.html
- loader/CrossOriginAccessControl.cpp:
(WebCore::shouldCrossOriginResourcePolicyCancelLoad):
(WebCore::validateCrossOriginResourcePolicy):
- loader/CrossOriginAccessControl.h:
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
- platform/network/ResourceResponseBase.cpp:
(WebCore::isSafeRedirectionResponseHeader):
(WebCore::isSafeCrossOriginResponseHeader):
Source/WebKit:
Make use of WebCore method to check CORP.
- NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::validateResponse):
- NetworkProcess/NetworkLoadChecker.h:
LayoutTests:
- http/wpt/cross-origin-resource-policy/image-in-iframe-loads-expected.txt: Added.
- http/wpt/cross-origin-resource-policy/image-in-iframe-loads.html: Added.
- http/wpt/cross-origin-resource-policy/resources/iframeImage.html: Added.
- http/wpt/cross-origin-resource-policy/resources/image.py:
(main):
- 8:55 AM Changeset in webkit [232932] by
-
- 8 edits in trunk/Source
[WTF] Remove workarounds needed to support libstdc++-4
https://bugs.webkit.org/show_bug.cgi?id=186762
Reviewed by Michael Catanzaro.
Source/JavaScriptCore:
Revert r226299, r226300 r226301 and r226302.
- API/tests/TypedArrayCTest.cpp:
(assertEqualsAsNumber):
Source/WebCore:
Revert r226299, r226300 r226301 and r226302.
No new tests, no change in behaviour.
- platform/graphics/FontSelectionAlgorithm.h:
(WebCore::FontSelectionValue::clampFloat):
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::currentMediaTime const):
- platform/graphics/win/UniscribeController.cpp:
(WebCore::UniscribeController::shapeAndPlaceItem):
Source/WTF:
Revert r226299, r226300 r226301 and r226302-
- wtf/StdLibExtras.h:
- 8:40 AM Changeset in webkit [232931] by
-
- 4 edits in trunk/Source
[Threaded paintingEngine] Fix rendering glitches
https://bugs.webkit.org/show_bug.cgi?id=186764
Patch by Karl Leplat <karl.leplat_ext@softathome.com> on 2018-06-18
Reviewed by Žan Doberšek.
Source/WebCore:
- platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp:
(Nicosia::PaintingEngineBasic::paint):
To keep backwards compatibility with no multi-threaded,
we call Nicosia::Buffer functions beginPainting() and completePainting().
Source/WebKit:
- Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp:
(WebKit::CoordinatedBackingStoreTile::swapBuffers):
We call Nicosia::Buffer function waitUntilPaintingComplete()
in order to synchronize of using Nicosia:buffer between MainThread
and ThreadedCompositor.
- 7:00 AM Changeset in webkit [232930] by
-
- 3 edits in trunk/Tools
[webkitpy] WPTRunner should remove any metadata content before (re)generating it
https://bugs.webkit.org/show_bug.cgi?id=186755
Reviewed by Carlos Garcia Campos.
WPTRunner generates the WPT-compliant metadata content before each test
run. Before it does so, it should remove the complete target directory
for this metadata, allowing any change in the expectations JSON to be
immediately reflected.
For example, if a test failure expectation is removed, the related .ini
metadata file is not generated anymore, but the stale .ini file isn't
removed from the current metadata directory. To avoid this, purging
the metadata directory and regenerating it from scratch should be done
for each test run.
- Scripts/webkitpy/w3c/wpt_runner.py:
(WPTRunner._generate_metadata_directory):
- Scripts/webkitpy/w3c/wpt_runner_unittest.py:
(WPTRunnerTest.test_generate_metadata_directory):
- 6:43 AM Changeset in webkit [232929] by
-
- 2 edits in trunk/Source/WebCore
Properly check the sscanf return valua
https://bugs.webkit.org/show_bug.cgi?id=186757
Reviewed by Carlos Garcia Campos.
Check if we matched anything and if we matched the expected amount of
data.
- page/linux/ResourceUsageThreadLinux.cpp:
(WebCore::cpuPeriod):
- 6:35 AM Changeset in webkit [232928] by
-
- 2 edits in trunk/Source/WebCore
[GTK] Wrong variable used in RenderThemeGtk
https://bugs.webkit.org/show_bug.cgi?id=186756
Patch by Tomas Popela <tpopela@redhat.com> on 2018-06-18
Reviewed by Carlos Garcia Campos.
Use SliderThumbHorizontalPart instead of SliderHorizontalPart.
- rendering/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::adjustSliderThumbSize const):
- 3:45 AM Changeset in webkit [232927] by
-
- 2 edits in trunk
Unreviewed GTK+ gardening. Updating the WPT expectations by removing
failure expectations for 2dcontext tests covering CSS HSL/HSLA color
parsing and createImageBitmap() API that are nowadays passing.
- WebPlatformTests/gtk/TestExpectations.json:
- 2:07 AM Changeset in webkit [232926] by
-
- 2 edits15 adds in trunk/LayoutTests
Unreviewed WPE gardening. Manage the current set of CSS3 Filters and
legacy animation engine failures. Add the necessary failure expectations
and missing layout test baselines.
- platform/wpe/TestExpectations:
- platform/wpe/legacy-animation-engine/css3/filters/composited-during-animation-layertree-expected.txt: Added.
- platform/wpe/legacy-animation-engine/css3/filters/composited-during-transition-layertree-expected.txt: Added.
- platform/wpe/legacy-animation-engine/fast/text/crash-complex-text-surrogate-expected.txt: Added.
- platform/wpe/legacy-animation-engine/media/track/opera/track/webvtt/rendering/adhoc/cue_font_size_transition-expected.txt: Added.
- 1:54 AM Changeset in webkit [232925] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Crash when adding in-band text track with playbin3 enabled
https://bugs.webkit.org/show_bug.cgi?id=186654
Reviewed by Xabier Rodriguez-Calvar.
Text track indexes should be relative to the total amount of
in-band text tracks. The previous code would induce the creation
of in-band text tracks with indexes relative to the total amount
of all in-band (audio, video, text) tracks.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
- 1:40 AM Changeset in webkit [232924] by
-
- 3 edits2 adds in trunk/LayoutTests
Unreviewed WPE gardening. Updating or adding baselines for a quadruple
of tests that are otherwise failing with a text-only failure.
- platform/wpe/fast/canvas/webgl/index-validation-with-subsequent-draws-expected.txt: Added.
- platform/wpe/fast/canvas/webgl/webgl-draw-buffers-expected.txt:
- platform/wpe/fullscreen/full-screen-layer-dump-expected.txt: Added.
- platform/wpe/js/dom/constructor-length-expected.txt:
- 12:38 AM Changeset in webkit [232923] by
-
- 1 edit8 adds in trunk/LayoutTests
Unreviewed WPE gardening. Adding platform-specific baselines for
WebCrypto tests whose baselines were changed in r232903.
- platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any-expected.txt: Added.
- platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.worker-expected.txt: Added.
- platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any-expected.txt: Added.
- platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.worker-expected.txt: Added.
- platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any-expected.txt: Added.
- platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.worker-expected.txt: Added.
- platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any-expected.txt: Added.
- platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker-expected.txt: Added.
Jun 17, 2018:
- 11:09 PM Changeset in webkit [232922] by
-
- 2 edits in trunk/LayoutTests
Unreviewed WPE gardening. Manage the 8 crashing tests that are failing
due to improper std::optional handling.
- platform/wpe/TestExpectations:
- 10:38 PM Changeset in webkit [232921] by
-
- 2 edits in trunk/Source/WebKit
Crash under SuspendedPageProxy::~SuspendedPageProxy()
https://bugs.webkit.org/show_bug.cgi?id=186688
<rdar://problem/41060769>
Reviewed by Darin Adler.
Ref the WebProcessProxy before calling suspendedPageWasDestroyed() on it as this
might cause the WebProcessProxy / WebProcessPool to get destroyed otherwise, and
we would crash trying to call unregisterSuspendedPageProxy() on the WebProcessPool
on the next line.
- UIProcess/SuspendedPageProxy.cpp:
(WebKit::SuspendedPageProxy::~SuspendedPageProxy):
- 1:40 PM Changeset in webkit [232920] by
-
- 3 edits2 adds in trunk
Anonymous block collapsing can destroy the renderer's parent.
https://bugs.webkit.org/show_bug.cgi?id=186655
<rdar://problem/41157554>
Reviewed by Antti Koivisto.
Source/WebCore:
While destroying a chain of renderers (text renderer -> first letter renderer), we need to
check if the anonymous block collapsing destroyed the parent renderer (see webkit.org/b/186746).
Test: fast/text/first-letter-with-anon-wrapper-crash.html
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers):
LayoutTests:
- fast/text/first-letter-with-anon-wrapper-crash-expected.txt: Added.
- fast/text/first-letter-with-anon-wrapper-crash.html: Added.
- 12:32 PM Changeset in webkit [232919] by
-
- 2 edits in trunk/LayoutTests
More unreviewed GTK test gardening.
- platform/gtk/TestExpectations:
- 12:16 PM Changeset in webkit [232918] by
-
- 2 edits in trunk
[CMake] Automatically disable JIT and enable USE_SYSTEM_MALLOC on unfamiliar architectures
https://bugs.webkit.org/show_bug.cgi?id=186722
Reviewed by Darin Adler.
We know that the JSC JIT and bmalloc both work on only a limited set of architectures. In
Fedora, we have to manually disable these when building for s390x, ppc64, and ppc64le. But
it's really easy to do the right thing automatically, so we might as well.
- Source/cmake/WebKitFeatures.cmake:
- 12:12 PM Changeset in webkit [232917] by
-
- 2 edits11 adds in trunk/LayoutTests
Unreviewed GTK test gardening.
This primarily adds new expected results after the last WPT import.
- platform/gtk/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.any.worker-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.any.worker-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.worker-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/css/woff2/directory-knowntags-001-expected.png: Added.
- platform/gtk/imported/w3c/web-platform-tests/css/woff2/tabledata-glyf-origlength-003-expected.png: Added.
- 11:37 AM Changeset in webkit [232916] by
-
- 12 edits24 copies6 adds6 deletes in trunk
[WebKit on watchOS] Upstream watchOS source additions to OpenSource (Part 3)
https://bugs.webkit.org/show_bug.cgi?id=186442
<rdar://problem/40879364>
Reviewed by Darin Adler.
Source/WebCore:
Rename references to "Extra zoom mode". No change in behavior.
- page/DisabledAdaptations.cpp:
(WebCore::watchAdaptationName):
(WebCore::extraZoomModeAdaptationName): Deleted.
- page/DisabledAdaptations.h:
- page/ViewportConfiguration.cpp:
(WebCore::needsUpdateAfterChangingDisabledAdaptations):
(WebCore::ViewportConfiguration::shouldOverrideDeviceWidthAndShrinkToFit const):
- page/WindowFeatures.cpp:
(WebCore::parseDisabledAdaptations):
- testing/Internals.cpp:
(WebCore::Internals::extraZoomModeAdaptationName const): Deleted.
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
Rename a category referencing "Extra zoom mode".
- UIProcess/ios/WKContentViewInteraction.mm:
LayoutTests:
Rename extrazoom layout test directories to watchos.
- TestExpectations:
- fast/css/watchos/viewport-units-shrink-to-fit-expected.txt: Renamed from LayoutTests/fast/css/extrazoom/viewport-units-shrink-to-fit-expected.txt.
- fast/css/watchos/viewport-units-shrink-to-fit.html: Renamed from LayoutTests/fast/css/extrazoom/viewport-units-shrink-to-fit.html.
- fast/dom/Window/watchos/window-get-real-screen-dimensions-expected.txt: Renamed from LayoutTests/fast/dom/Window/extrazoom/window-get-real-screen-dimensions-expected.txt.
- fast/dom/Window/watchos/window-get-real-screen-dimensions.html: Renamed from LayoutTests/fast/dom/Window/extrazoom/window-get-real-screen-dimensions.html.
- fast/events/watchos/change-focus-during-change-event-expected.txt: Renamed from LayoutTests/fast/events/extrazoom/change-focus-during-change-event-expected.txt.
- fast/events/watchos/change-focus-during-change-event.html: Renamed from LayoutTests/fast/events/extrazoom/change-focus-during-change-event.html.
- fast/events/watchos/double-tap-to-zoom-on-full-width-text-expected.txt: Renamed from LayoutTests/fast/events/extrazoom/double-tap-to-zoom-on-full-width-text-expected.txt.
- fast/events/watchos/double-tap-to-zoom-on-full-width-text.html: Renamed from LayoutTests/fast/events/extrazoom/double-tap-to-zoom-on-full-width-text.html.
- fast/events/watchos/double-tap-to-zoom-with-large-text-expected.txt: Renamed from LayoutTests/fast/events/extrazoom/double-tap-to-zoom-with-large-text-expected.txt.
- fast/events/watchos/double-tap-to-zoom-with-large-text.html: Renamed from LayoutTests/fast/events/extrazoom/double-tap-to-zoom-with-large-text.html.
- fast/forms/watchos/delete-content-in-text-field-expected.txt: Renamed from LayoutTests/fast/forms/extrazoom/delete-content-in-text-field-expected.txt.
- fast/forms/watchos/delete-content-in-text-field.html: Renamed from LayoutTests/fast/forms/extrazoom/delete-content-in-text-field.html.
- fast/forms/watchos/edit-text-field-calls-injected-bundle-expected.txt: Renamed from LayoutTests/fast/forms/extrazoom/edit-text-field-calls-injected-bundle-expected.txt.
- fast/forms/watchos/edit-text-field-calls-injected-bundle.html: Renamed from LayoutTests/fast/forms/extrazoom/edit-text-field-calls-injected-bundle.html.
- fast/forms/watchos/form-control-label-text-expected.txt: Renamed from LayoutTests/fast/forms/extrazoom/form-control-label-text-expected.txt.
- fast/forms/watchos/form-control-label-text.html: Renamed from LayoutTests/fast/forms/extrazoom/form-control-label-text.html.
- fast/forms/watchos/time-picker-value-change-expected.txt: Renamed from LayoutTests/fast/forms/extrazoom/time-picker-value-change-expected.txt.
- fast/forms/watchos/time-picker-value-change.html: Renamed from LayoutTests/fast/forms/extrazoom/time-picker-value-change.html.
- fast/viewport/watchos/viewport-adaptations-after-navigation-expected.txt: Renamed from LayoutTests/fast/viewport/extrazoom/viewport-adaptations-after-navigation-expected.txt.
- fast/viewport/watchos/viewport-adaptations-after-navigation.html: Renamed from LayoutTests/fast/viewport/extrazoom/viewport-adaptations-after-navigation.html.
- fast/viewport/watchos/viewport-disable-extra-zoom-adaptations-expected.txt: Renamed from LayoutTests/fast/viewport/extrazoom/viewport-disable-extra-zoom-adaptations-expected.txt.
- fast/viewport/watchos/viewport-disable-extra-zoom-adaptations.html: Renamed from LayoutTests/fast/viewport/extrazoom/viewport-disable-extra-zoom-adaptations.html.
- fast/visual-viewport/watchos/layout-viewport-after-scrolling-and-resizing-expected.txt: Renamed from LayoutTests/fast/visual-viewport/extrazoom/layout-viewport-after-scrolling-and-resizing-expected.txt.
- fast/visual-viewport/watchos/layout-viewport-after-scrolling-and-resizing.html: Renamed from LayoutTests/fast/visual-viewport/extrazoom/layout-viewport-after-scrolling-and-resizing.html.
- 11:03 AM Changeset in webkit [232915] by
-
- 7 edits in trunk
Rename Document::hasHadActiveMediaStreamTrack to Document::hasHadCaptureMediaStreamTrack
https://bugs.webkit.org/show_bug.cgi?id=186743
rdar://problem/41151193
Reviewed by Eric Carlson.
Source/WebCore:
Covered by existing tests.
Rename setter and getter to be more accurate.
Move the place to call the setter to when creating a capture stream.
- Modules/mediastream/MediaDevicesRequest.cpp:
(WebCore::MediaDevicesRequest::start):
- Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::statusDidChange):
- Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::mediaStreamIsReady):
- dom/Document.h:
(WebCore::Document::setHasCaptureMediaStreamTrack):
(WebCore::Document::hasHadCaptureMediaStreamTrack const):
(WebCore::Document::setHasActiveMediaStreamTrack): Deleted.
(WebCore::Document::hasHadActiveMediaStreamTrack const): Deleted.
LayoutTests:
- fast/mediastream/media-devices-enumerate-devices.html:
- 9:37 AM Changeset in webkit [232914] by
-
- 8 edits in trunk/Source/WebCore
[LFC] DisplayBox API should be more clear about height/width vs. contentBoxHeight/width
https://bugs.webkit.org/show_bug.cgi?id=186744
Reviewed by Antti Koivisto.
Display::Box::height/width -> border box size.
Display::Box::contentBoxHeight/width -> content box size.
Display::Box::top/left/bottom/right -> border box position in the containing box's coordinate system.
Display::Box::marginBox/borderBox/paddingBox/contentBox -> relative to border box (border box is { 0, 0 })
(This patch also removes the box-sizing logic from Display::Box. FormattingContext::Geometry should set the
correct contentBoxSize/borderBoxSize based on the CSS property.)
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeFloatingHeightAndMargin const):
(WebCore::Layout::FormattingContext::computeFloatingWidthAndMargin const):
(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry const):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry const):
(WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const):
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedHeightAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::computedPadding):
(WebCore::Layout::FormattingContext::Geometry::computedNonCollapsedHorizontalMarginValue):
(WebCore::Layout::FormattingContext::Geometry::computedNonCollapsedVerticalMarginValue):
- layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::initializeRoot):
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computeInFlowHeightAndMargin const):
(WebCore::Layout::BlockFormattingContext::computeInFlowWidthAndMargin const):
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::staticPosition):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowPositionedPosition):
- layout/displaytree/DisplayBox.cpp:
(WebCore::Display::Box::marginBox const):
(WebCore::Display::Box::borderBox const):
(WebCore::Display::Box::paddingBox const):
(WebCore::Display::Box::contentBox const):
- layout/displaytree/DisplayBox.h:
(WebCore::Display::Box::top const):
(WebCore::Display::Box::left const):
(WebCore::Display::Box::bottom const):
(WebCore::Display::Box::right const):
(WebCore::Display::Box::topLeft const):
(WebCore::Display::Box::bottomRight const):
(WebCore::Display::Box::size const):
(WebCore::Display::Box::width const):
(WebCore::Display::Box::height const):
(WebCore::Display::Box::rect const):
(WebCore::Display::Box::setTopLeft):
(WebCore::Display::Box::setTop):
(WebCore::Display::Box::setLeft):
(WebCore::Display::Box::moveHorizontally):
(WebCore::Display::Box::moveVertically):
(WebCore::Display::Box::setHasValidContentHeight):
(WebCore::Display::Box::setHasValidContentWidth):
(WebCore::Display::Box::setContentBoxHeight):
(WebCore::Display::Box::setContentBoxWidth):
(WebCore::Display::Box::contentBoxHeight const):
(WebCore::Display::Box::contentBoxWidth const):
(WebCore::Display::Box::setWidth): Deleted.
(WebCore::Display::Box::setHeight): Deleted.
(WebCore::Display::Box::setSize): Deleted.
- 8:47 AM Changeset in webkit [232913] by
-
- 5 edits in trunk
[GTK] Correct behavior for dark themes
https://bugs.webkit.org/show_bug.cgi?id=186219
Source/WebCore:
Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-06-17
Reviewed by Michael Catanzaro.
Override RenderThemeGtk::isControlStyled() to not style
text inputs if color is set different than default.
No new tests. Manual theme test and existing layout tests already cover it.
- rendering/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::isControlStyled const):
- rendering/RenderThemeGtk.h:
LayoutTests:
Update expectations in reftests expected to fail due to not
styling text inputs with GTK when color is different than default color.
Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-06-17
Reviewed by Michael Catanzaro.
- platform/gtk/TestExpectations:
- 8:29 AM Changeset in webkit [232912] by
-
- 2 edits in branches/safari-605-branch/JSTests
Skipping test for disabled feature on branch.
rdar://problem/40564243
- stress/function-caller-async-generator-body.js: