Timeline
Jul 1, 2018:
- 9:24 PM Changeset in webkit [233415] by
-
- 3 edits in trunk/Source/WTF
[WTF] RandomDevice should be initialized inside std::call_once
https://bugs.webkit.org/show_bug.cgi?id=186017
Reviewed by Darin Adler.
While Linux ports uses mutex-guarded static variables, Mac ports do not.
So we should guard static variables' initialization by using std::call_once.
This patch does it for RandomDevice.
- wtf/OSRandomSource.cpp:
(WTF::cryptographicallyRandomValuesFromOS):
- wtf/RandomDevice.h: Small fix for OS(FUCHSIA).
- 7:50 PM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 7:48 PM WebKitGTK/Gardening/Calendar/2018Logs created by
- 6:52 PM Changeset in webkit [233414] by
-
- 4 edits in trunk
[WK2] fast/parser/document-open-in-unload.html makes the following test crash
https://bugs.webkit.org/show_bug.cgi?id=98345
<rdar://problem/12474923>
Reviewed by Ryosuke Niwa.
Source/WebCore:
m_documentLoader can become null in the middle of
FrameLoader::commitProvisionalLoad by stopping the loading.
No new tests (Covered by existing tests).
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad): Do null check of m_documentLoader.
LayoutTests:
- platform/wk2/TestExpectations: Unskipped fast/parser/document-open-in-unload.html.
- 6:36 PM Changeset in webkit [233413] by
-
- 7 edits2 adds in trunk
[Cocoa] LastResort in the font family list causes emoji with joiners to be rendered as multiple .notdef characters
https://bugs.webkit.org/show_bug.cgi?id=187209
<rdar://problem/40920785>
Reviewed by Darin Adler.
Source/WebCore:
Inside our complex text codepath, we perform our own font fallback, which
includes a function that asks "can this font support this grapheme cluster?"
Because of the mechanics of how fonts work, the implementation of this
function is "Does the font's cmap table support every character of the
cluster?" We were using Font::glyphForCharacter() to determine this; however,
this function maps certain control characters to the zero width space
character (with the intention that these control characters shouldn't be
visible in the fast text codepath). That replacement, however, was causing
us to get false negatives, because Apple Color Emoji doesn't support zero
width space. Therefore, Apple Color Emoji was looking like it didn't support
emoji combining sequences.
The best solution to this would be to get Font::glyphForCharacter() to stop
performing these replacements (see https://bugs.webkit.org/show_bug.cgi?id=187166).
However, that is too risky of a change to be making right now. Instead,
a more localized solution is to implement a version of "Does the font's cmap
table support every character of the cluster" that doesn't perform the
substitutions. This patch does exactly that, and uses a bit vector to cache
the results. In order to not have a giant bit vector, we take the old code
path if we know the substitutions won't affect us (and uses ASSERT()s to
validate this) so the bit vector only holds at maximum 3 words of storage.
Test: fast/text/emoji-with-joiner.html
- platform/graphics/Font.cpp:
(WebCore::codePointSupportIndex):
(WebCore::createAndFillGlyphPage):
(WebCore::Font::platformSupportsCodePoint const):
(WebCore::Font::supportsCodePoint const):
(WebCore::Font::canRenderCombiningCharacterSequence const):
- platform/graphics/Font.h:
- platform/graphics/cocoa/FontCocoa.mm:
(WebCore::Font::platformSupportsCodePoint const):
Source/WTF:
- wtf/unicode/CharacterNames.h:
LayoutTests:
- fast/text/emoji-with-joiner-expected.txt: Added.
- fast/text/emoji-with-joiner.html: Added.
- 5:47 PM Changeset in webkit [233412] by
-
- 19 edits1 move4 adds1 delete in trunk
[macOS] Text replacements that end with symbols are expanded immediately
https://bugs.webkit.org/show_bug.cgi?id=187225
<rdar://problem/41112433>
Reviewed by Darin Adler.
Source/WebCore:
In shipping Safari, enabling grammar correction causes text shortcuts that end with symbols or punctuation marks
to immediately trigger when typing; normally, when grammar correction is off, this is only triggered after the
user has additionally inserted a punctuation mark or whitespace character after the replaced text.
This bug happens because enabling grammar checking causes the spell checking range to expand to the range of the
full sentence, so any text checking results that replace an existing range are triggered as long as they end
anywhere in the sentence. In contrast, when grammar checking is disabled, the spell checking range is limited to
the nearest adjacent word, which prevents text replacement from occurring elsewhere in the sentence.
However, after r232530, we now always expand the spell checking range to the extent of the sentence when a word
is typed regardless of whether grammar checking is enabled, which means that the issue described above now
happens everywhere. To fix this recent regression and the existing bug, we:
- Augment our spellchecking codepaths to include a new automatic text replacement range, alongside
spellchecking and paragraph ranges.
- Let this automatic text replacement range be the range of the adjacent word in the case where the user has
finished typing a word.
- When marking and replacing text checking results, consult this new automatic text replacement instead of the
spellchecking range.
This keeps the behavior grammar and sentence retro correction results intact, while limiting the scope in which
text replacement results are applied.
Test: editing/spelling/text-replacement-after-typing-to-word.html
- editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::timerFired):
- editing/Editor.cpp:
(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::markMisspellingsAfterTypingToWord):
Pass in the adjacent word range for the
automaticReplacementRange, instead of the spell checking range (which
may be extended to the full range of the sentence).
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
Add an
automaticReplacementRangeargument to markAllMisspellingsAndBadGrammarInRanges, and adjust call sites
to pass in a range (generally the same as the spell checking range, but in the case where a word has been typed,
this is a narrower range).
(WebCore::correctSpellcheckingPreservingTextCheckingParagraph):
(WebCore::Editor::markAndReplaceFor):
When replacing text, only allow text replacement in the automatic replacement range rather than the spell
checking range.
(WebCore::Editor::markMisspellingsAndBadGrammar):
- editing/Editor.h:
- editing/SpellChecker.cpp:
(WebCore::SpellCheckRequest::SpellCheckRequest):
Add a new version of this constructor that takes a single Range representing both the spellchecking range and
the automatic text replacement range, for convenience.
(WebCore::SpellCheckRequest::create):
- editing/SpellChecker.h:
Add plumbing for the automatic replacement range.
(WebCore::SpellCheckRequest::automaticReplacementRange const):
- editing/TextCheckingHelper.cpp:
Add plumbing for the automatic replacement range, and new helpers to locate the range as offsets within the
text checking paragraph range.
(WebCore::TextCheckingParagraph::TextCheckingParagraph):
(WebCore::TextCheckingParagraph::invalidateParagraphRangeValues):
(WebCore::TextCheckingParagraph::automaticReplacementStart const):
(WebCore::TextCheckingParagraph::automaticReplacementLength const):
- editing/TextCheckingHelper.h:
Tools:
Adds testing support for mocking NSSpellChecker's text checking results. See below for more details, and the new
layout test for an example of its usage.
- DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
- DumpRenderTree/TestRunner.cpp:
(setSpellCheckerTextReplacementsCallback):
Add bindings support in TestRunner to specify a set of text replacement mappings. Each entry in the dictionary
maps a string representing an input to the NSSpellChecker to some information describing the spell checking
result that LayoutTestSpellChecker will return.
(TestRunner::staticFunctions):
- DumpRenderTree/TestRunner.h:
- DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebViewToConsistentStateBeforeTesting):
Restore the original shared NSSpellchecker before transitioning to the next layout test, if needed.
- DumpRenderTree/mac/DumpRenderTreeSpellChecker.mm: Removed.
- DumpRenderTree/mac/TestRunnerMac.mm:
(TestRunner::setSpellCheckerLoggingEnabled):
(TestRunner::setSpellCheckerTextReplacements):
These testRunner methods ensure that
-[NSSpellChecker sharedSpellChecker]is swizzled to return our mock
LayoutTestSpellChecker instance before calling into it.
- DumpRenderTree/win/TestRunnerWin.cpp:
(TestRunner::setSpellCheckerTextReplacements):
- TestRunnerShared/cocoa/LayoutTestSpellChecker.h: Renamed from Tools/DumpRenderTree/mac/DumpRenderTreeSpellChecker.h.
- TestRunnerShared/cocoa/LayoutTestSpellChecker.mm: Added.
Moved DumpRenderTreeSpellChecker to LayoutTestSpellChecker, and made it compile for both WebKitTestRunner
(modern WebKit) and DumpRenderTree (legacy WebKit) by putting it in TestRunnerShared.
(existingGlobalLayoutTestSpellChecker):
(ensureGlobalLayoutTestSpellChecker):
(stringForCorrectionResponse):
(nsTextCheckingType):
(-[LayoutTestTextCheckingResult initWithType:range:replacement:]):
(-[LayoutTestTextCheckingResult range]):
(-[LayoutTestTextCheckingResult resultType]):
(-[LayoutTestTextCheckingResult replacementString]):
(-[LayoutTestTextCheckingResult description]):
LayoutTestTextCheckingResult represents a fake NSTextCheckingResult containing spell checking results supplied
by the layout test.
(+[LayoutTestSpellChecker installIfNecessary]):
(+[LayoutTestSpellChecker uninstallAndReset]):
Helper methods to begin and end swizzling the shared NSSpellChecker.
(-[LayoutTestSpellChecker reset]):
Resets the state of the LayoutTestSpellChecker (this entails clearing the fake replacements dictionary and
turning off logging for recorded spellchecking responses).
(-[LayoutTestSpellChecker replacements]):
(-[LayoutTestSpellChecker setReplacements:]):
(-[LayoutTestSpellChecker setReplacementsFromJSObject:inContext:]):
Helper method to take a
JSObjectRefsupplied by the test runner and transform it into a map of spell checking
string inputs to LayoutTestTextCheckingResults.
(-[LayoutTestSpellChecker checkString:range:types:options:inSpellDocumentWithTag:orthography:wordCount:]):
Consult the text replacement map and bail early if a match is found, before calling into real NSSpellChecker
logic to perform spellchecking.
(-[LayoutTestSpellChecker recordResponse:toCorrection:forWord:language:inSpellDocumentWithTag:]):
Reimplement the original functionality in DumpRenderTreeSpellChecker to make
-recordResponse:…print to stdout
by overriding the method and printing if the-spellCheckerLoggingEnabledproperty has been set to YES.
- WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
LayoutTests:
Adds a layout test to check that if a user has configured a text replacement that ends with punctuation, then:
- Typing that text replacement won't immediately trigger replacement.
- Text replacement is triggered after pressing enter.
- editing/spelling/text-replacement-after-typing-to-word-expected.txt: Added.
- editing/spelling/text-replacement-after-typing-to-word.html: Added.
- platform/ios/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 4:51 PM Changeset in webkit [233411] by
-
- 2 edits in trunk/Tools
[WPE][GTK] Fix retrieving backtrace from within flatpak sandbox in test runner
https://bugs.webkit.org/show_bug.cgi?id=187232
Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-07-01
Reviewed by Michael Catanzaro.
The place where host tmp folder is mounted changed to /run/host/ we
need to take that into account.
Also explicitely close temporary files as relying on garbage collection to
remove them is a bad idea.
Also minor optimization avoiding to compile regex for each backtrace
retrieval.
- Scripts/webkitpy/port/linux_get_crash_log.py:
(GDBCrashLogGenerator):
(GDBCrashLogGenerator._get_tmp_file_name):
(GDBCrashLogGenerator._get_trace_from_systemd):
- 3:38 PM Changeset in webkit [233410] by
-
- 4 edits in trunk/Source/JavaScriptCore
JavaScriptCore: Fix clang static analyzer warnings: Assigned value is garbage or undefined
<https://webkit.org/b/187233>
Reviewed by Mark Lam.
- b3/air/AirEliminateDeadCode.cpp:
(JSC::B3::Air::eliminateDeadCode): Initialize
changed.
- parser/ParserTokens.h:
(JSC::JSTextPosition::JSTextPosition): Add struct member
initialization. Simplify default constructor.
(JSC::JSTokenLocation::JSTokenData): Move largest struct in the
union to the beginning to make it easy to zero out all fields.
(JSC::JSTokenLocation::JSTokenLocation): Add struct member
initialization. Simplify default constructor. Note that
endOffsetwas not being initialized previously.
(JSC::JSTextPosition::JSToken): Add struct member initialization
where necessary.
- runtime/IntlObject.cpp:
(JSC::MatcherResult): Add struct member initialization.
- 11:23 AM Changeset in webkit [233409] by
-
- 20 edits1 move1 add in trunk/Source
[Cocoa] Improve ARC compatibility of more code in JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=186973
Reviewed by Dan Bernstein.
Source/JavaScriptCore:
- API/JSContext.mm:
(WeakContextRef::WeakContextRef): Deleted.
(WeakContextRef::~WeakContextRef): Deleted.
(WeakContextRef::get): Deleted.
(WeakContextRef::set): Deleted.
- API/JSContextInternal.h: Removed unneeded header guards since this is
an Objective-C++ header. Removed unused WeakContextRef class. Removed declaration
of method -[JSContext initWithGlobalContextRef:] and JSContext property wrapperMap
since neither is used outside the class implementation.
- API/JSManagedValue.mm:
(-[JSManagedValue initWithValue:]): Use a bridging cast.
(-[JSManagedValue dealloc]): Ditto.
(-[JSManagedValue didAddOwner:]): Ditto.
(-[JSManagedValue didRemoveOwner:]): Ditto.
(JSManagedValueHandleOwner::isReachableFromOpaqueRoots): Ditto.
(JSManagedValueHandleOwner::finalize): Ditto.
- API/JSValue.mm:
(+[JSValue valueWithNewRegularExpressionFromPattern:flags:inContext:]): Ditto.
(+[JSValue valueWithNewErrorFromMessage:inContext:]): Ditto.
(-[JSValue valueForProperty:]): Ditto.
(-[JSValue setValue:forProperty:]): Ditto.
(-[JSValue deleteProperty:]): Ditto.
(-[JSValue hasProperty:]): Ditto.
(-[JSValue invokeMethod:withArguments:]): Ditto.
(valueToObjectWithoutCopy): Ditto. Also removed unneeded explicit type names.
(valueToArray): Ditto.
(valueToDictionary): Ditto.
(objectToValueWithoutCopy): Ditto.
(objectToValue): Ditto.
- API/JSVirtualMachine.mm:
(+[JSVMWrapperCache addWrapper:forJSContextGroupRef:]): Ditto.
(+[JSVMWrapperCache wrapperForJSContextGroupRef:]): Ditto.
(-[JSVirtualMachine isOldExternalObject:]): Ditto.
(-[JSVirtualMachine addManagedReference:withOwner:]): Ditto.
(-[JSVirtualMachine removeManagedReference:withOwner:]): Ditto.
(-[JSVirtualMachine contextForGlobalContextRef:]): Ditto.
(-[JSVirtualMachine addContext:forGlobalContextRef:]): Ditto.
(scanExternalObjectGraph): Ditto.
(scanExternalRememberedSet): Ditto.
- API/JSWrapperMap.mm:
(makeWrapper): Ditto.
(-[JSObjCClassInfo wrapperForObject:inContext:]): Ditto.
(-[JSWrapperMap objcWrapperForJSValueRef:inContext:]): Ditto.
(tryUnwrapObjcObject): Ditto.
- API/ObjCCallbackFunction.mm:
(blockSignatureContainsClass): Ditto.
(objCCallbackFunctionForMethod): Switched from retain to CFRetain, but not
sure we will be keeping this the same way under ARC.
(objCCallbackFunctionForBlock): Use a bridging cast.
- API/ObjcRuntimeExtras.h:
(protocolImplementsProtocol): Use a more specific type that includes the
explicit unsafe_unretained for copied protocol lists.
(forEachProtocolImplementingProtocol): Ditto.
- inspector/remote/cocoa/RemoteInspectorCocoa.mm:
(Inspector::convertNSNullToNil): Added to replace the CONVERT_NSNULL_TO_NIL macro.
(Inspector::RemoteInspector::receivedSetupMessage): Use convertNSNullToNil.
- inspector/remote/cocoa/RemoteInspectorXPCConnection.mm: Moved the
CFXPCBridge SPI to a header named CFXPCBridgeSPI.h.
(auditTokenHasEntitlement): Deleted. Moved to Entitlements.h/cpp in WTF.
(Inspector::RemoteInspectorXPCConnection::handleEvent): Use WTF::hasEntitlement.
(Inspector::RemoteInspectorXPCConnection::sendMessage): Use a bridging cast.
Source/WebKit:
- Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:
(WebKit::XPCServiceInitializerDelegate::hasEntitlement): Use WTF::hasEntitlement.
- Shared/mac/SandboxUtilities.h: Removed connectedProcessHasEntitlement since
we can now use WTF::hasEntitlement instead.
- Shared/mac/SandboxUtilities.mm: Ditto.
- StorageProcess/ios/StorageProcessIOS.mm:
(WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement): Use
WTF::hasEntitlement.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::parentProcessHasServiceWorkerEntitlement): Ditto.
Source/WTF:
- WTF.xcodeproj/project.pbxproj: Added CFXPCBridgeSPI.h, fixed a few
other small problems in the project file, and let Xcode fix a few too.
- wtf/cocoa/Entitlements.h: Added hasEntitlement function with overloads
for an audit token and an XPC connection.
- wtf/cocoa/Entitlements.mm:
(WTF::hasEntitlement): Added, with overloads for a SecTask, an audit token,
and an XPC connection.
(WTF::processHasEntitlement): Refactored to use the function above.
- wtf/spi/cocoa/CFXPCBridgeSPI.h: Added.
Jun 30, 2018:
- 11:52 PM Changeset in webkit [233408] by
-
- 7 edits in trunk
Port JavaScriptCore to OS(FUCHSIA)
https://bugs.webkit.org/show_bug.cgi?id=187223
Reviewed by Daniel Bates.
.:
- Source/cmake/OptionsJSCOnly.cmake: Add back ICU.
Source/JavaScriptCore:
- assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::cacheFlush): Call zx_cache_flush to flush cache.
- runtime/MachineContext.h: Fuchsia has the same mcontext_t as glibc.
(JSC::MachineContext::stackPointerImpl):
(JSC::MachineContext::framePointerImpl):
(JSC::MachineContext::instructionPointerImpl):
(JSC::MachineContext::argumentPointer<1>):
(JSC::MachineContext::llintInstructionPointer):
Source/WTF:
- wtf/Platform.h: Fuchsia uses mcontext_t to provide machine context.
- 11:00 PM Changeset in webkit [233407] by
-
- 2 edits in trunk/Tools
test-webkitpy never rebuilds lldbWebKitTester
https://bugs.webkit.org/show_bug.cgi?id=187229
Reviewed by David Kilzer.
Have test-webkitpy always call script build-lldbwebkittester to build lldbWebKitTester, if needed.
Currently test-webkitpy only calls script build-lldbwebkittester if lldbWebKitTester does not
exist in the build products directory for the active configuration (e.g. Debug); => we do not
build lldbWebKitTester again if its source changes (say, as a result of hacking on lldbWebKitTester).
Instead we should have test-webkitpy unconditionally call build-lldbwebkittester to ensure
that we have an up-to-date build of lldbWebKitTester.
- Scripts/webkitpy/test/main.py:
(Tester._run_tests):
(_find_lldb_webkit_tester): Deleted.
- 7:12 PM Changeset in webkit [233406] by
-
- 2 edits in trunk/Source/WebCore
Follow-up: Fix clang static analyzer warnings: Garbage return value
<https://webkit.org/b/187224>
Address review feedback from Eric Carlson.
- platform/mediastream/MediaConstraints.h:
(WebCore::NumericConstraint::valueForCapabilityRange const):
- Use brace initialization for more local variables.
- 6:49 PM Changeset in webkit [233405] by
-
- 2 edits in trunk/Source/WebCore
Asan false positive: stack use after scope under WebCore::ApplyPropertyBorderImageModifier in WebCore::Length::Length(WebCore::Length&&)
https://bugs.webkit.org/show_bug.cgi?id=186980
<rdar://problem/41409838>
Reviewed by Oliver Hunt.
We believe that we have found a bug in GCC's address sanitizer. It is blocking work on other
issues, so work around it by changing a temporary into a local variable.
- css/StyleBuilderCustom.h:
(WebCore::ApplyPropertyBorderImageModifier::applyInitialValue):
- 6:16 PM WebKitGTK/2.20.x edited by
- (diff)
- 6:15 PM Changeset in webkit [233404] by
-
- 3 edits in trunk/Source/ThirdParty
Fix off-by-one error in xdg_mime_get_simple_globs
https://bugs.webkit.org/show_bug.cgi?id=186554
Reviewed by Daniel Bates.
We have an off-by-one error here in some code that was added for WebKit. (This is not an
issue with upstream xdgmime.)
No new tests. This problem is caught by TestDownloads, but only when running with ASan
enabled.
- xdgmime/src/xdgmimecache.c:
(get_simple_globs):
- xdgmime/src/xdgmimeglob.c:
(get_simple_globs):
- 5:06 PM Changeset in webkit [233403] by
-
- 8 edits in trunk/Source
Fix clang static analyzer warnings: Garbage return value
<https://webkit.org/b/187224>
Reviewed by Eric Carlson.
Source/JavaScriptCore:
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::lineNumberForBytecodeOffset):
- Use brace initialization for local variables.
- debugger/DebuggerCallFrame.cpp:
(class JSC::LineAndColumnFunctor):
- Use class member initialization for member variables.
Source/WebCore:
- platform/mediastream/MediaConstraints.h:
(WebCore::NumericConstraint::valueForCapabilityRange const):
- Use brace initialization for local variables.
Source/WebKit:
- WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::changeCount):
(WebKit::WebPlatformStrategies::addTypes):
(WebKit::WebPlatformStrategies::setTypes):
(WebKit::WebPlatformStrategies::setBufferForType):
(WebKit::WebPlatformStrategies::setPathnamesForType):
(WebKit::WebPlatformStrategies::setStringForType):
(WebKit::WebPlatformStrategies::getNumberOfFiles):
(WebKit::WebPlatformStrategies::getPasteboardItemsCount):
(WebKit::WebPlatformStrategies::writeCustomData):
- WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
(WebKit::WebEditorClient::substitutionsPanelIsShowing):
- Use brace initialization for local variables.
- 2:07 PM Changeset in webkit [233402] by
-
- 2 edits in trunk/Tools
[CMake] build-webkit should be able to enable address sanitizer
https://bugs.webkit.org/show_bug.cgi?id=187222
Reviewed by Daniel Bates.
If 'set-webkit-configuration --asan' has been run, then build-webkit should pass
-DENABLE_ADDRESS_SANITIZER=ON to CMake, so that it actually does something.
This also works for build-jsc.
- Scripts/webkitdirs.pm:
(generateBuildSystemFromCMakeProject):
- 1:53 PM Changeset in webkit [233401] by
-
- 9 edits2 adds in trunk/Source/WTF
Port WTF to OS(FUCHSIA)
https://bugs.webkit.org/show_bug.cgi?id=187221
Reviewed by Yusuke Suzuki.
- wtf/FastMalloc.cpp: Fuchsia does not have resource.h
(WTF::fastMallocStatistics): Skip collecting stats without resource.h
- wtf/InlineASM.h: Fuchsia uses ELF
- wtf/Platform.h: Define OS(FUCHSIA) as an OS(UNIX) variant
- wtf/RandomDevice.cpp: Call zx_cprng_draw for crypographic randomness
(WTF::RandomDevice::cryptographicallyRandomValues):
- wtf/ThreadingPthreads.cpp: Fuchsia does not have pthread_setschedparam
(WTF::Thread::changePriority):
- wtf/unix/CPUTimeFuchsia.cpp: Added.
- 11:44 AM Changeset in webkit [233400] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, add missing PLATFORM(COCOA) guard after r233207
https://bugs.webkit.org/show_bug.cgi?id=186788
<rdar://problem/41094167>
- WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleExtendClassesForParameterCoder):
- 11:07 AM Changeset in webkit [233399] by
-
- 2 edits in trunk/Source/WebCore
[LFC] Do not add the containing block's offset while computing the out-of-flow static position.
https://bugs.webkit.org/show_bug.cgi?id=187202
Reviewed by Antti Koivisto.
The static position for an out-of-flow elements is
- the distance from the parent's border box.
- climbing up on the containing block chain and offset the containers until we reach the out-of-flow element's containing block.
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::staticVerticalPositionForOutOfFlowPositioned):
(WebCore::Layout::staticHorizontalPositionForOutOfFlowPositioned):
- 11:06 AM Changeset in webkit [233398] by
-
- 2 edits in trunk/Source/WebCore
[LFC] If the top and bottom margins of a box are adjoining, then it is possible for margins to collapse through it.
https://bugs.webkit.org/show_bug.cgi?id=187220
Reviewed by Antti Koivisto.
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::isMarginBottomCollapsedThrough):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::collapsedMarginTopFromFirstChild):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginTop):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBottom):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::isMarginBottomCollapsedWithParent):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::collapsedMarginBottomFromLastChild):
- 11:04 AM Changeset in webkit [233397] by
-
- 2 edits in trunk/Source/WebCore
[LFC] Adjust final out-of-flow position with the computed margin value.
https://bugs.webkit.org/show_bug.cgi?id=187219
Reviewed by Antti Koivisto.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry const):
(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry const):
- 10:11 AM Changeset in webkit [233396] by
-
- 2 edits in trunk/Source/WebKit
Added a missing availability attribute.
- WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
- 7:24 AM Changeset in webkit [233395] by
-
- 2 edits in trunk/Tools
Make check_flatpak() not verbose when only trying to run command inside flatpak
https://bugs.webkit.org/show_bug.cgi?id=187187
Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-06-30
Reviewed by Michael Catanzaro.
- flatpak/flatpakutils.py:
(run_in_sandbox_if_available):
- 6:43 AM Changeset in webkit [233394] by
-
- 10 edits in trunk
[Web Animations] Make WPT test at timing-model/timelines/document-timelines.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=186507
<rdar://problem/41000257>
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Record WPT test progressions.
- web-platform-tests/web-animations/timing-model/timelines/document-timelines-expected.txt:
Source/WebCore:
The Web Animations spec, along with the HTML5 event loop spec, specify some assumptions on the time reported by
document.timeline.currentTime:
- it should only increase once per frame
- it should have the same value as the timestamp passed to requestAnimationFrame() callbacks
The WPT test at web-platform-tests/web-animations/timing-model/timelines/document-timelines.html relies on these
assumptions to be true so that we check that the start time of a new animation is not the same as the timeline time
when it was created, since it will be in the "play-pending" state for a frame.
In order to support this, we add two new methods on DocumentAnimationScheduler. First, when a scheduled display update
fires, we record the timestamp and expose it via lastTimestamp() such that DocumentTimeline and ScriptedAnimationController
can use the same value when updating animations. Then, to know whether code is run as a result of a display update, we
expose isFiring().
Now, within DocumentTimeline::currentTime(), we can cache the current time this way:
- if we're in the middle of a display update, use the value returned by lastTimestamp().
- otherwise, compute what would have been the ideal number of frames (at 60fps or less if throttled) and add those to
the lastTimestamp() value.
Then, we remove this cached current time when both currently-running JavaScript has completed and all animation update
code has completed by waiting on the invalidation task to run.
- animation/DocumentAnimationScheduler.cpp:
(WebCore::DocumentAnimationScheduler::displayRefreshFired):
- animation/DocumentAnimationScheduler.h:
(WebCore::DocumentAnimationScheduler::lastTimestamp):
(WebCore::DocumentAnimationScheduler::isFiring const):
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::currentTime):
(WebCore::DocumentTimeline::performInvalidationTask):
(WebCore::DocumentTimeline::maybeClearCachedCurrentTime):
- animation/DocumentTimeline.h:
- dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::serviceScriptedAnimations):
(WebCore::ScriptedAnimationController::documentAnimationSchedulerDidFire):
LayoutTests:
This test now passes reliably.
- 6:04 AM Changeset in webkit [233393] by
-
- 2 edits in trunk/LayoutTests
[Web Animations] Make imported/mozilla/css-transitions/test_event-dispatch.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183843
Unreviewed.
This test is no longer flaky, the fix for webkit.org/b/183834 fixed the issue.
- platform/ios/TestExpectations:
- 12:08 AM Changeset in webkit [233392] by
-
- 5 edits in trunk
Unreviewed, rolling out r233391.
https://bugs.webkit.org/show_bug.cgi?id=187217
This patch broke Windows ports (Requested by fredw on
#webkit).
Reverted changeset:
"WTF's internal std::optional implementation should abort() on
bad optional access"
https://bugs.webkit.org/show_bug.cgi?id=186536
https://trac.webkit.org/changeset/233391