Timeline
Aug 24, 2019:
- 7:14 PM Changeset in webkit [249091] by
-
- 3 edits in trunk/Source/WebCore
Have RenderLayer::calculateClipRects() use offsetFromAncestor() when possible
https://bugs.webkit.org/show_bug.cgi?id=201066
Reviewed by Dean Jackson.
offsetFromAncestor() is a layer tree walk, so faster than localToContainerPoint(),
but we can't use it when there are transforms on the layer and intermediates up
to the ancestor.
canUseConvertToLayerCoords() was trying to answer the question about whether it's
OK to use offsetFromAncestor() (which calls convertToLayerCoords() internally), but
it has insufficient information to make a determination. Leave this issue alone, but
at least rename canUseConvertToLayerCoords().
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderLayer.h:
- 2:42 PM Changeset in webkit [249090] by
-
- 3 edits2 adds in trunk
Page crashes under CGPathAddUnevenCornersRoundedRect
https://bugs.webkit.org/show_bug.cgi?id=201117
Reviewed by Dean Jackson.
Source/WebCore:
Fix crash on https://onehtmlpagechallenge.com/entries/pure-css-still-life-water-lemon.html
We were passing CG radius values where the sum of two radii was greater than the height or
width, caused by rounding when converting from floats to doubles.
Test: fast/borders/renderable-uneven-rounded-rects.html
- platform/graphics/cg/PathCG.cpp:
(WebCore::Path::platformAddPathForRoundedRect):
LayoutTests:
- fast/borders/renderable-uneven-rounded-rects-expected.txt: Added.
- fast/borders/renderable-uneven-rounded-rects.html: Added.
- 11:21 AM Changeset in webkit [249089] by
-
- 5 edits in trunk
Web Inspector: "Copy Rule" menu item does not propagate comments properly
https://bugs.webkit.org/show_bug.cgi?id=201095
Reviewed by Joseph Pecoraro.
Source/WebInspectorUI:
- UserInterface/Models/CSSProperty.js:
(WI.CSSProperty.prototype.commentOut):
(WI.CSSProperty.prototype.get formattedText):
Wrap thetextin/* ${text} */if theWI.CSSPropertyisn'tenabled(e.g. commented out).
LayoutTests:
- inspector/css/generateCSSRuleString.html:
- inspector/css/generateCSSRuleString-expected.txt:
- 10:35 AM Changeset in webkit [249088] by
-
- 3 edits in trunk/Source/WebCore
RenderLayer::updateLayerPositions() doesn't propagate the ancestor flags correctly
https://bugs.webkit.org/show_bug.cgi?id=201115
Reviewed by Zalan Bujtas.
When an updateLayerPositions() traversal starts at a non-root layer, we failed to populate
the ancestor-related UpdateLayerPositionsFlag flags, leaving layers with missing flags
(e.g. the m_hasTransformedAncestor flag). This is detected by the patch in bug 201066.
Fix by having updateLayerPositionsAfterStyleChange() and updateLayerPositionsAfterLayout()
initialize the flags from the parent layer.
This is a behavior change not detected by any existing test, but will be exercised once
the patch from bug 201066 lands.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::flagsForUpdateLayerPositions):
(WebCore::RenderLayer::updateLayerPositionsAfterStyleChange):
(WebCore::RenderLayer::updateLayerPositionsAfterLayout):
(WebCore::outputPaintOrderTreeLegend):
(WebCore::outputPaintOrderTreeRecursive): Log hasTransformedAncestor().
- rendering/RenderLayer.h:
- 9:02 AM Changeset in webkit [249087] by
-
- 2 edits in trunk/Source/WebKit
Make CacheStorageEngineCaches's decodeCachesNames() more robust against bad input data
https://bugs.webkit.org/show_bug.cgi?id=201102
Reviewed by Antti Koivisto.
Use Vector::tryReserveCapacity() instead of Vector::reserveInitialCapacity() in CacheStorage::decodeCachesNames()
since the size is read from disk and thus cannot be trusted. If the size is too large, reserveInitialCapacity()
would end up crashing the network process. Now, we merely discard the data if tryReserveCapacity() fails because
the size is too large.
- NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::decodeCachesNames):
- 6:36 AM Changeset in webkit [249086] by
-
- 2 edits in trunk/Source/WebCore
[LFC][TFC] Add section renderers to the layout tree (THEAD/TBODY/TFOOT)
https://bugs.webkit.org/show_bug.cgi?id=201114
<rdar://problem/54664992>
Reviewed by Antti Koivisto.
Section renderers (THEAD/TBODY/TFOOT) are direct children of the RenderTable. Let's include them in the layout tree as well.
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createTableStructure):
(WebCore::Layout::outputInlineRuns):
- 6:34 AM Changeset in webkit [249085] by
-
- 4 edits in trunk/Source/WebCore
[LFC] Box::isAnonymous() can not rely on the lack of ElementType.
https://bugs.webkit.org/show_bug.cgi?id=201106
<rdar://problem/54660287>
Reviewed by Antti Koivisto.
Add bool m_isAnonymous member to mark anonymous layout boxes. Anonymous boxes are not rare enough to include this variable in RareData.
- layout/layouttree/LayoutBox.h:
(WebCore::Layout::Box::setIsAnonymous):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createLayoutBox):
- 6:31 AM Changeset in webkit [249084] by
-
- 4 edits2 adds in trunk/Source/WebCore
Implement layout system independent text box iterator
https://bugs.webkit.org/show_bug.cgi?id=201076
Reviewed by Zalan Bujtas.
Add a generic way to traverse line layout without caring about the details of the underlying layout system.
This patch adds basic support for traversing text boxes and uses it to remove layout path specific branches in RenderTreeAsText.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- rendering/RenderTreeAsText.cpp:
(WebCore::RenderTreeAsText::writeRenderObject):
(WebCore::writeTextBox):
(WebCore::write):
(WebCore::writeTextRun): Deleted.
(WebCore::writeSimpleLine): Deleted.
- rendering/line/LineLayoutInterfaceTextBoxes.cpp: Added.
(WebCore::LineLayoutInterface::TextBox::rect const):
(WebCore::LineLayoutInterface::TextBox::logicalRect const):
(WebCore::LineLayoutInterface::TextBox::hasHyphen const):
(WebCore::LineLayoutInterface::TextBox::isLeftToRightDirection const):
(WebCore::LineLayoutInterface::TextBox::dirOverride const):
(WebCore::LineLayoutInterface::TextBox::text const):
(WebCore::LineLayoutInterface::TextBoxIterator::TextBoxIterator):
(WebCore::LineLayoutInterface::TextBoxIterator::traverseNext):
(WebCore::LineLayoutInterface::TextBoxIterator::operator== const):
(WebCore::LineLayoutInterface::simpleLineRunResolverForText):
(WebCore::LineLayoutInterface::rangeForText):
(WebCore::LineLayoutInterface::TextBoxRange::TextBoxRange):
(WebCore::LineLayoutInterface::textBoxes):
- rendering/line/LineLayoutInterfaceTextBoxes.h: Added.
(WebCore::LineLayoutInterface::TextBox::TextBox):
(WebCore::LineLayoutInterface::TextBoxIterator::operator++):
(WebCore::LineLayoutInterface::TextBoxIterator::operator!= const):
(WebCore::LineLayoutInterface::TextBoxIterator::operator* const):
(WebCore::LineLayoutInterface::TextBoxRange::begin const):
(WebCore::LineLayoutInterface::TextBoxRange::end const):
- 6:24 AM Changeset in webkit [249083] by
-
- 2 edits in trunk/Source/WebCore
[LFC][BFC] Non-inline formatting context(table, grid etc) root container should not collapse through.
https://bugs.webkit.org/show_bug.cgi?id=201099
<rdar://problem/54658946>
Reviewed by Antti Koivisto.
I didn't manage to find it in the spec, but surely formatting contexts like table, grid and flex should behave like
block so that their vertical margins are not adjoining, when they have at least one inflow child.
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginsCollapseThrough):
- 6:17 AM Changeset in webkit [249082] by
-
- 2 edits in trunk/Source/WebCore
[LFC] Add THEAD/TBODY/TFOOT output to Layout::showLayoutTree
https://bugs.webkit.org/show_bug.cgi?id=201113
<rdar://problem/54664134>
Reviewed by Antti Koivisto.
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::outputLayoutBox):
- 6:16 AM Changeset in webkit [249081] by
-
- 4 edits in trunk/Source/WebCore
[LFC] Remove redundant Layout::Box::ElementType::TableRowGroup
https://bugs.webkit.org/show_bug.cgi?id=201112
<rdar://problem/54663833>
Reviewed by Antti Koivisto.
Use Layout::Box::ElementType::TableBodyGroup instead.
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::isPaddingApplicable const):
- layout/layouttree/LayoutBox.h:
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createLayoutBox):
Aug 23, 2019:
- 8:31 PM Changeset in webkit [249080] by
-
- 5 edits in trunk/Source/WebCore
RenderLayerModelObject should not call private RenderLayer functions
https://bugs.webkit.org/show_bug.cgi?id=201111
Reviewed by Zalan Bujtas.
Make RenderLayerModelObject no longer a friend class of RenderLayer, giving it a public
willRemoveChildWithBlendMode() function to call. Also make the UpdateLayerPositionsFlag
enum private, providing a updateLayerPositionsAfterStyleChange() for RenderLayerModelObject,
and changing the arguments of updateLayerPositionsAfterLayout() for FrameView.
No behavior change.
- page/FrameView.cpp:
(WebCore::FrameView::didLayout):
(WebCore::updateLayerPositionFlags): Deleted.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositionsAfterStyleChange):
(WebCore::RenderLayer::updateLayerPositionsAfterLayout):
(WebCore::RenderLayer::willRemoveChildWithBlendMode):
- rendering/RenderLayer.h:
- rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::styleDidChange):
- 7:22 PM Changeset in webkit [249079] by
-
- 6 edits2 adds in trunk
Implement StaticRange constructor
https://bugs.webkit.org/show_bug.cgi?id=201055
Reviewed by Wenson Hsieh.
LayoutTests/imported/w3c:
Added a test from https://github.com/web-platform-tests/wpt/pull/18619
with my review comment addressed.
- web-platform-tests/dom/interfaces-expected.txt: Rebaselined.
- web-platform-tests/dom/ranges/StaticRange-constructor-expected.txt: Added.
- web-platform-tests/dom/ranges/StaticRange-constructor.html: Added.
Source/WebCore:
Added the constructor to StaticRange per https://github.com/whatwg/dom/pull/778.
Test: imported/w3c/web-platform-tests/dom/ranges/StaticRange-constructor.html
- dom/StaticRange.cpp:
(WebCore::isDocumentTypeOrAttr):
(WebCore::StaticRange::create):
- dom/StaticRange.h:
- dom/StaticRange.idl:
- 5:46 PM Changeset in webkit [249078] by
-
- 10 edits in trunk
Web Inspector: create additional command line api functions for other console methods
https://bugs.webkit.org/show_bug.cgi?id=200971
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
Expose all
console.*functions in the command line API, since they're all already able to
be referenced via theconsoleobject.
Provide a simpler interface for other injected scripts to modify the command line API.
- inspector/InjectedScriptModule.cpp:
(Inspector::InjectedScriptModule::ensureInjected):
- inspector/InjectedScriptSource.js:
(InjectedScript.prototype.inspectObject):
(InjectedScript.prototype.addCommandLineAPIGetter): Added.
(InjectedScript.prototype.addCommandLineAPIMethod): Added.
(InjectedScript.prototype.hasInjectedModule): Added.
(InjectedScript.prototype.injectModule):
(InjectedScript.prototype._evaluateOn):
(InjectedScript.CommandLineAPI): Added.
(InjectedScript.prototype.module): Deleted.
(InjectedScript.prototype._savedResult): Deleted.
(bind): Deleted.
(BasicCommandLineAPI): Deleted.
(clear): Deleted.
(table): Deleted.
(profile): Deleted.
(profileEnd): Deleted.
(keys): Deleted.
(values): Deleted.
(queryInstances): Deleted.
(queryObjects): Deleted.
(queryHolders): Deleted.
Source/WebCore:
Expose all
console.*functions in the command line API, since they're all already able to
be referenced via theconsoleobject.
Provide a simpler interface for other injected scripts to modify the command line API.
- inspector/CommandLineAPIModuleSource.js:
(injectedScript._inspectObject): Added.
(normalizeEventTypes): Added.
(logEvent): Added.
(canQuerySelectorOnNode): Added.
(bind): Deleted.
(value): Deleted.
(this.method.toString): Deleted.
(CommandLineAPI): Deleted.
(CommandLineAPIImpl): Deleted.
(CommandLineAPIImpl.prototype): Deleted.
(CommandLineAPIImpl.prototype._canQuerySelectorOnNode): Deleted.
(CommandLineAPIImpl.prototype.x): Deleted.
(CommandLineAPIImpl.prototype.dir): Deleted.
(CommandLineAPIImpl.prototype.dirxml): Deleted.
(CommandLineAPIImpl.prototype.keys): Deleted.
(CommandLineAPIImpl.prototype.values): Deleted.
(CommandLineAPIImpl.prototype.profile): Deleted.
(CommandLineAPIImpl.prototype.profileEnd): Deleted.
(CommandLineAPIImpl.prototype.table): Deleted.
(CommandLineAPIImpl.prototype.screenshot): Deleted.
(CommandLineAPIImpl.prototype.monitorEvents): Deleted.
(CommandLineAPIImpl.prototype.unmonitorEvents): Deleted.
(CommandLineAPIImpl.prototype.inspect): Deleted.
(CommandLineAPIImpl.prototype.queryInstances): Deleted.
(CommandLineAPIImpl.prototype.queryObjects): Deleted.
(CommandLineAPIImpl.prototype.queryHolders): Deleted.
(CommandLineAPIImpl.prototype.copy): Deleted.
(CommandLineAPIImpl.prototype.clear): Deleted.
(CommandLineAPIImpl.prototype.getEventListeners): Deleted.
(CommandLineAPIImpl.prototype._inspectedObject): Deleted.
(CommandLineAPIImpl.prototype._normalizeEventTypes): Deleted.
(CommandLineAPIImpl.prototype._logEvent): Deleted.
(CommandLineAPIImpl.prototype._inspect): Deleted.
Source/WebInspectorUI:
Expose all
console.*functions in the command line API, since they're all already able to
be referenced via theconsoleobject.
Provide a simpler interface for other injected scripts to modify the command line API.
- UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
(WI.JavaScriptRuntimeCompletionProvider.prototype.get _commandLineAPIKeys): Added.
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.updateLastPropertyNames):
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedPropertyNames):
LayoutTests:
- http/tests/inspector/dom/cross-domain-inspected-node-access-expected.txt:
- inspector/console/command-line-api-expected.txt:
- 5:24 PM Changeset in webkit [249077] by
-
- 2 edits in trunk/Source/WebCore
Crash under TimerBase::setNextFireTime() in the NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=201097
<rdar://problem/54658339>
Reviewed by Ryosuke Niwa.
NetworkStateNotifier is a WebCore/platform class used by both WebKitLegacy and WebKit2 in the NetworkProcess.
On iOS, the lambda in the implementation of NetworkStateNotifier::startObserving() may get called by the
underlying framework on a non-main thread and we therefore want to go back to the main thread before calling
NetworkStateNotifier::singleton().updateStateSoon(). This is important because updateStateSoon() will schedule
a WebCore::Timer. The issue is that the code was using WebThreadRun() to go back the the main thread. While
this works fine in iOS WK1, it does not do what we want in WebKit2 in the network process. Indeed, before there
is no WebThread in the network process, WebThreadRun() will simply run the block on whatever thread we're one.
This would lead to crashes when trying to schedule the Timer in updateStateSoon(). To address the issue, we now
use callOnMainThread().
- platform/network/ios/NetworkStateNotifierIOS.mm:
(WebCore::NetworkStateNotifier::startObserving):
- 5:20 PM Changeset in webkit [249076] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION (r248807): Objects stored in ElementRareData are leaked
https://bugs.webkit.org/show_bug.cgi?id=200954
Reviewed by David Kilzer.
NodeRareData didn't have a virtual destructor. As a result, member variables
of ElementRareData did not get destructed properly.
- dom/NodeRareData.cpp:
- dom/NodeRareData.h:
(WebCore::NodeRareData::~NodeRareData):
- 4:08 PM Changeset in webkit [249075] by
-
- 23 edits2 deletes in trunk
Remove MaximalFlushInsertionPhase
https://bugs.webkit.org/show_bug.cgi?id=201036
Reviewed by Saam Barati.
JSTests:
Remove all the references to maximal flush
- stress/arith-ceil-on-various-types.js:
(checkCompileCountForUselessNegativeZero):
- stress/arith-floor-on-various-types.js:
(checkCompileCountForUselessNegativeZero):
- stress/arith-negate-on-various-types.js:
(checkCompileCountForUselessNegativeZero):
- stress/arith-round-on-various-types.js:
(checkCompileCountForUselessNegativeZero):
- stress/arith-trunc-on-various-types.js:
(checkCompileCountForUselessNegativeZero):
- stress/dfg-compare-eq-via-nonSpeculativeNonPeepholeCompareNullOrUndefined.js:
- stress/has-indexed-property-should-accept-non-int32.js:
- stress/has-indexed-property-with-worsening-array-mode.js:
- stress/known-int32-cant-be-used-across-bytecode-boundary.js:
- stress/read-dead-bytecode-locals-in-must-handle-values1.js:
- stress/read-dead-bytecode-locals-in-must-handle-values2.js:
- stress/rest-parameter-many-arguments.js:
- stress/set-argument-maybe-maximal-flush-should-not-extend-liveness-2.js:
- stress/set-argument-maybe-maximal-flush-should-not-extend-liveness.js:
- stress/to-index-string-should-not-assume-incoming-value-is-uint32.js:
Source/JavaScriptCore:
Maximal flush has found too many false positives recently, so we decided it's finally time
to remove it instead of hacking it to fix the most recent false positive.
The most recent false positive was caused by a LoadVarargs followed by a SetArgumentDefinitely
for the argument count that was being flushed in a much later block. Now, since that block was
the head of a loop, and there was a SetLocal in the same block to the same variable, this
generated a Phi of both values, which then led to the unification of their VariableAccessData
in the unification phase. This caused AI to assign the Int52 type to argument count, which
broke the AI’s assumption that it should always be an Int32.
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleVarargsInlining):
- dfg/DFGMaximalFlushInsertionPhase.cpp: Removed.
- dfg/DFGMaximalFlushInsertionPhase.h: Removed.
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
- runtime/Options.cpp:
(JSC::recomputeDependentOptions):
- runtime/Options.h:
- 4:00 PM Changeset in webkit [249074] by
-
- 6 edits2 adds in trunk
[iOS] [WebKit2] Tapping on the “I’m” text suggestion after typing “i’” does nothing
https://bugs.webkit.org/show_bug.cgi?id=201085
<rdar://problem/53056118>
Reviewed by Tim Horton.
Source/WebCore:
Exposes an existing quote folding function as a helper on TextIterator, and also adjusts foldQuoteMarks to take
a const String& rather than a String. See WebKit ChangeLog for more details.
- editing/TextIterator.cpp:
(WebCore::foldQuoteMarks):
(WebCore::SearchBuffer::SearchBuffer):
- editing/TextIterator.h:
Source/WebKit:
Currently, logic in applyAutocorrectionInternal only selects the range to autocorrect if the text of the range
matches the string to replace (delivered to us from UIKit). In the case of changing "I’" to "I’m", the string to
replace is "I'" (with a straight quote rather than an apostrophe), even though the DOM contains an apostrophe.
This is because kbd believes that the document context contains straight quotes (rather than apostrophes). For
native text views, this works out because UIKit uses relative UITextPositions to determine the replacement
range rather than by checking against the contents of the document. However, WKWebView does not have the ability
to synchronously compute and reason about arbitrary UITextPositions relative to the selection, so we instead
search for the string near the current selection when applying autocorrections.
Of course, this doesn't work in this scenario because the replacement string contains a straight quote, yet the
text node contains an apostrophe, so we bail and don't end up replacing any text. To address this, we repurpose
TextIterator helpers currently used to allow find-in-page to match straight quotes against apostrophes; instead
of matching the replacement string exactly, we instead match the quote-folded versions of these strings when
finding the range to replace.
Test: fast/events/ios/autocorrect-with-apostrophe.html
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::applyAutocorrectionInternal):
LayoutTests:
Add a new layout test to verify that "I’" can be autocorrected to "I’m".
- fast/events/ios/autocorrect-with-apostrophe-expected.txt: Added.
- fast/events/ios/autocorrect-with-apostrophe.html: Added.
- 3:56 PM Changeset in webkit [249073] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed WinCairo build fix following r249058.
- API/tests/testapi.cpp:
(TestAPI::callFunction):
WinCairo chokes onJSValueRef args[sizeof...(arguments)]when there are no arguments, but AppleWin does not...
MSVC must have changed somehow.
- 3:54 PM Changeset in webkit [249072] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r248974): fast/events/ios/key-command-delete-to-end-of-paragraph.html is timing out on iOS
https://bugs.webkit.org/show_bug.cgi?id=201091
<rdar://problem/54647731>
Reviewed by Megan Gardner.
- fast/events/ios/key-command-delete-to-end-of-paragraph.html:
The test as-written doesn't actually wait for the tap to complete before
continuing on with the test - it starts immediately when the focus event
fires. This results in the selection being changed by the single click
handler *after* focusing the field.
Rewrite the test to await completion of the tap before moving forward
instead of waiting for focus.
- 3:17 PM Changeset in webkit [249071] by
-
- 1 copy in tags/Safari-608.2.9
Tag Safari-608.2.9.
- 2:37 PM Changeset in webkit [249070] by
-
- 2 edits in trunk/Source/WebCore
Remove IDBDatabaseIdentifier::m_mainFrameOrigin
https://bugs.webkit.org/show_bug.cgi?id=201078
Reviewed by Darin Adler.
No change of behavior.
- Modules/indexeddb/IDBDatabaseIdentifier.h:
- 2:33 PM Changeset in webkit [249069] by
-
- 4 edits in trunk
[WASM-References] Do not overwrite argument registers in jsCallEntrypoint
https://bugs.webkit.org/show_bug.cgi?id=200952
Reviewed by Saam Barati.
JSTests:
- wasm/references/func_ref.js:
(assert.throws):
Source/JavaScriptCore:
The c call that we emitted was incorrect. If we had an int argument that was supposed to be placed in GPR0 by this loop,
we would clobber it while making the call (among many other possible registers). To fix this, we just inline the call
to isWebassemblyHostFunction.
- wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::jsCallEntrypointSlow):
- 2:21 PM Changeset in webkit [249068] by
-
- 4 edits in trunk/Source
Unreviewed, build fix after r249059
Source/WebKit:
- UIProcess/WebAuthentication/Cocoa/NfcConnection.mm:
(WebKit::NfcConnection::NfcConnection):
Remove the HAVE() macro.
Source/WTF:
- wtf/Platform.h:
Make HAVE_NEAR_FIELD available only on iOS 13+ and macOS Catalina+.
- 2:06 PM Changeset in webkit [249067] by
-
- 4 edits in trunk/Tools
Increase log level for watchlist result
https://bugs.webkit.org/show_bug.cgi?id=201081
Reviewed by Jonathan Bedard.
- Scripts/webkitpy/tool/steps/applywatchlist.py: Increased log level.
- Scripts/webkitpy/tool/steps/applywatchlist_unittest.py: Updated unit-tests.
- Scripts/webkitpy/tool/commands/applywatchlistlocal_unittest.py: Ditto.
- 1:58 PM Changeset in webkit [249066] by
-
- 57 edits1 copy7 moves2 adds1 delete in trunk
[geolocation] Rename interfaces and remove [NoInterfaceObject]
https://bugs.webkit.org/show_bug.cgi?id=200885
Reviewed by Alex Christensen.
Source/WebCore:
Rename Geolocation interfaces and expose them on the global Window object to match the
latest specification:
Test: fast/dom/Geolocation/exposed-geolocation-interfaces.html
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Headers.cmake:
- Modules/geolocation/GeoNotifier.cpp:
(WebCore::GeoNotifier::setFatalError):
(WebCore::GeoNotifier::runSuccessCallback):
(WebCore::GeoNotifier::runErrorCallback):
(WebCore::GeoNotifier::timerFired):
- Modules/geolocation/GeoNotifier.h:
- Modules/geolocation/Geolocation.cpp:
(WebCore::createGeolocationPosition):
(WebCore::createGeolocationPositionError):
(WebCore::Geolocation::lastPosition):
(WebCore::Geolocation::startRequest):
(WebCore::Geolocation::requestUsesCachedPosition):
(WebCore::Geolocation::makeCachedPositionCallbacks):
(WebCore::Geolocation::haveSuitableCachedPosition):
(WebCore::Geolocation::setIsAllowed):
(WebCore::Geolocation::sendError):
(WebCore::Geolocation::sendPosition):
(WebCore::Geolocation::cancelRequests):
(WebCore::Geolocation::handleError):
(WebCore::Geolocation::makeSuccessCallbacks):
(WebCore::Geolocation::positionChanged):
(WebCore::Geolocation::setError):
(WebCore::Geolocation::handlePendingPermissionNotifiers):
- Modules/geolocation/Geolocation.h:
- Modules/geolocation/Geolocation.idl:
- Modules/geolocation/GeolocationClient.h:
- Modules/geolocation/GeolocationController.cpp:
(WebCore::GeolocationController::positionChanged):
(WebCore::GeolocationController::lastPosition):
- Modules/geolocation/GeolocationController.h:
- Modules/geolocation/GeolocationCoordinates.cpp: Renamed from Source/WebCore/Modules/geolocation/Coordinates.cpp.
(WebCore::GeolocationCoordinates::GeolocationCoordinates):
- Modules/geolocation/GeolocationCoordinates.h: Renamed from Source/WebCore/Modules/geolocation/Coordinates.h.
(WebCore::GeolocationCoordinates::create):
(WebCore::GeolocationCoordinates::isolatedCopy const):
- Modules/geolocation/GeolocationCoordinates.idl: Renamed from Source/WebCore/Modules/geolocation/Coordinates.idl.
- Modules/geolocation/GeolocationPosition.h:
(WebCore::GeolocationPosition::create):
(WebCore::GeolocationPosition::isolatedCopy const):
(WebCore::GeolocationPosition::timestamp const):
(WebCore::GeolocationPosition::coords const):
(WebCore::GeolocationPosition::GeolocationPosition):
- Modules/geolocation/GeolocationPosition.idl: Renamed from Source/WebCore/Modules/geolocation/Geoposition.idl.
- Modules/geolocation/GeolocationPositionData.h: Copied from Source/WebCore/Modules/geolocation/GeolocationPosition.h.
(WebCore::GeolocationPositionData::GeolocationPositionData):
(WebCore::GeolocationPositionData::encode const):
(WebCore::GeolocationPositionData::decode):
(WebCore::GeolocationPositionData::isValid const):
- Modules/geolocation/GeolocationPositionError.h: Renamed from Source/WebCore/Modules/geolocation/PositionError.h.
(WebCore::GeolocationPositionError::create):
(WebCore::GeolocationPositionError::GeolocationPositionError):
- Modules/geolocation/GeolocationPositionError.idl: Renamed from Source/WebCore/Modules/geolocation/PositionError.idl.
- Modules/geolocation/Geoposition.h: Removed.
- Modules/geolocation/PositionCallback.h:
- Modules/geolocation/PositionCallback.idl:
- Modules/geolocation/PositionErrorCallback.h:
- Modules/geolocation/PositionErrorCallback.idl:
- Modules/geolocation/ios/GeolocationPositionDataIOS.mm: Renamed from Source/WebCore/Modules/geolocation/ios/GeolocationPositionIOS.mm.
(WebCore::GeolocationPositionData::GeolocationPositionData):
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/mock/GeolocationClientMock.cpp:
(WebCore::GeolocationClientMock::setPosition):
(WebCore::GeolocationClientMock::lastPosition):
- platform/mock/GeolocationClientMock.h:
Source/WebKit:
- Shared/WebGeolocationPosition.cpp:
(WebKit::WebGeolocationPosition::create):
- Shared/WebGeolocationPosition.h:
(WebKit::WebGeolocationPosition::corePosition const):
(WebKit::WebGeolocationPosition::WebGeolocationPosition):
- UIProcess/API/C/WKGeolocationPosition.cpp:
(WKGeolocationPositionCreate_c):
- UIProcess/WebGeolocationManagerProxy.h:
(WebKit::WebGeolocationManagerProxy::lastPosition const):
- UIProcess/ios/WKGeolocationProviderIOS.mm:
(-[WKLegacyCoreLocationProvider positionChanged:]):
- WebProcess/Geolocation/WebGeolocationManager.cpp:
(WebKit::WebGeolocationManager::didChangePosition):
- WebProcess/Geolocation/WebGeolocationManager.h:
- WebProcess/Geolocation/WebGeolocationManager.messages.in:
- WebProcess/WebCoreSupport/WebGeolocationClient.cpp:
(WebKit::WebGeolocationClient::lastPosition):
- WebProcess/WebCoreSupport/WebGeolocationClient.h:
Source/WebKitLegacy/ios:
- Misc/WebGeolocationCoreLocationProvider.h:
- Misc/WebGeolocationCoreLocationProvider.mm:
(-[WebGeolocationCoreLocationProvider sendLocation:]):
- Misc/WebGeolocationProviderIOS.mm:
(-[_WebCoreLocationUpdateThreadingProxy positionChanged:]):
Source/WebKitLegacy/mac:
- WebCoreSupport/WebGeolocationClient.h:
- WebCoreSupport/WebGeolocationClient.mm:
(WebGeolocationClient::lastPosition):
- WebView/WebGeolocationPosition.mm:
(-[WebGeolocationPositionInternal initWithCoreGeolocationPosition:]):
(core):
(-[WebGeolocationPosition initWithTimestamp:latitude:longitude:accuracy:]):
(-[WebGeolocationPosition initWithGeolocationPosition:]):
- WebView/WebGeolocationPositionInternal.h:
Tools:
- DumpRenderTree/mac/TestRunnerMac.mm:
(TestRunner::setMockGeolocationPosition):
LayoutTests:
Add layout test coverage.
- fast/dom/Geolocation/exposed-geolocation-interfaces-expected.txt: Added.
- fast/dom/Geolocation/exposed-geolocation-interfaces.html: Added.
- fast/dom/Geolocation/position-string-expected.txt:
- fast/dom/Geolocation/position-string.html:
- 1:55 PM Changeset in webkit [249065] by
-
- 6 edits in trunk/Source/bmalloc
Undo disabling of IsoHeaps when Gigacage is off.
https://bugs.webkit.org/show_bug.cgi?id=201061
<rdar://problem/54622500>
Reviewed by Saam Barati and Michael Saboff.
- CMakeLists.txt:
- bmalloc.xcodeproj/project.pbxproj:
- bmalloc/IsoTLS.cpp:
(bmalloc::IsoTLS::determineMallocFallbackState):
- bmalloc/PerThread.cpp: Removed.
- bmalloc/PerThread.h:
- 1:31 PM Changeset in webkit [249064] by
-
- 5 edits in trunk/Source/WTF
Regression(r248533) Assertion hit in isMainThread() for some clients using WTF because the main thread is not initialized
https://bugs.webkit.org/show_bug.cgi?id=201083
Reviewed by Alex Christensen.
An assertion is hit in isMainThread() for some clients using WTF because the main thread is not initialized, since r248533.
Clients can work around this by calling WTF::initializeMainThread() before using WTF but it seems unfortunate to force them
to do so. I propose we disable the assertion until the main thread is initialized.
- wtf/MainThread.h:
- wtf/RefCounted.h:
(WTF::RefCountedBase::RefCountedBase):
(WTF::RefCountedBase::applyRefDerefThreadingCheck const):
- wtf/cocoa/MainThreadCocoa.mm:
(WTF::isMainThreadInitialized):
- wtf/generic/MainThreadGeneric.cpp:
(WTF::isMainThreadInitialized):
- 1:23 PM Changeset in webkit [249063] by
-
- 34 edits5 deletes in trunk
Unreviewed, rolling out r249001.
Caused one layout test to fail on all configurations and
another to time out on Catalina / iOS 13.
Reverted changeset:
"Add a WebsiteDataStore delegate to handle
AuthenticationChallenge that do not come from pages"
https://bugs.webkit.org/show_bug.cgi?id=196870
https://trac.webkit.org/changeset/249001
- 12:35 PM Changeset in webkit [249062] by
-
- 5 edits in trunk/Source/WebKit
REGRESSION(r248713): WebDriver commands which target the implicit main frame now hit an ASSERT
https://bugs.webkit.org/show_bug.cgi?id=200793
<rdar://problem/54516988>
Reviewed by Chris Dumez.
SimulatedInputDispatcher and its callers need to support Optional<FrameIdentifier>
and WTF::nullopt as an encoding for the implicit main frame.
- UIProcess/Automation/SimulatedInputDispatcher.h:
- UIProcess/Automation/SimulatedInputDispatcher.cpp:
(WebKit::SimulatedInputDispatcher::resolveLocation):
(WebKit::SimulatedInputDispatcher::run):
- UIProcess/Automation/WebAutomationSession.h:
- UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::viewportInViewCenterPointOfElement):
(WebKit::WebAutomationSession::performInteractionSequence):
(WebKit::WebAutomationSession::cancelInteractionSequence):
- 12:25 PM Changeset in webkit [249061] by
-
- 3 edits in trunk/Tools
results.webkit.org: Escape html in changelog
https://bugs.webkit.org/show_bug.cgi?id=201025
<rdar://problem/54564837>
Reviewed by Darin Adler.
- resultsdbpy/resultsdbpy/view/commit_view.py:
(CommitView.commit): Output a dictionary instead of a JSON encoded string.
- resultsdbpy/resultsdbpy/view/templates/commit.html: Unpack commits dictionary
directly into a JavaScript dictionary.
- 12:21 PM Changeset in webkit [249060] by
-
- 3 edits in trunk/LayoutTests
REGRESSION: fast/events/pointer/ios/drag-gives-pointerdown-pointermove-pointerup.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=201075
<rdar://problem/54491246>
Patch by Antoine Quint <Antoine Quint> on 2019-08-23
Reviewed by Daniel Bates.
This test was written very early on in the process of implementing Pointer Events and assumed events would keep
firing when scrolling occured. We need to add "touch-action: none" to ensure we get pointermove and pointerup
events. We also need to ensure that the interaction occurs over content otherwise events won't fire. Finally, we
pretty up the test a bit.
- fast/events/pointer/ios/drag-gives-pointerdown-pointermove-pointerup-expected.txt:
- fast/events/pointer/ios/drag-gives-pointerdown-pointermove-pointerup.html:
- 11:56 AM Changeset in webkit [249059] by
-
- 31 edits9 copies16 adds in trunk
[WebAuthn] Support NFC authenticators for iOS
https://bugs.webkit.org/show_bug.cgi?id=188624
<rdar://problem/43354214>
Reviewed by Chris Dumez.
Source/WebCore:
Tests: http/wpt/webauthn/ctap-nfc-failure.https.html
http/wpt/webauthn/public-key-credential-create-failure-nfc.https.html
http/wpt/webauthn/public-key-credential-create-success-nfc.https.html
http/wpt/webauthn/public-key-credential-get-failure-nfc.https.html
http/wpt/webauthn/public-key-credential-get-success-nfc.https.html
- Modules/webauthn/apdu/ApduResponse.h:
Adds a new method to support moving m_data.
- Modules/webauthn/fido/FidoConstants.h:
Adds constants for NFC applet selection.
Source/WebKit:
This patch implements support for NFC authenticators including both FIDO2 and U2F ones. It utilizes a private
framework called NearField instead of CoreNFC to be able to supply a custom UI later if necessary.
The patch follows almost the same flow as previous HID and Local authenticator support.
1) Discovery is via NfcService which will invoke NFHardwareManager to start a generic NFC reader session.
2) Once a reader session is established, a NfcConnection is created to start the polling and register the WKNFReaderSessionDelegate
to wait for 'didDetectTags'.
3) When tags are detected, NfcConnection will determine if it meets our requriements: { type, connectability, fido applet availability }.
The first tag that meets all requirement will then be returned for WebAuthn operations.
4) The first WebAuthn operation is to send authenticatorGetInfo command to determine the supported protocol, and then initialize corresponding
authenticators. Noted, the sending/receiving of this command is now abstracted into FidoService which will be shared across HidService and NfcService.
5) From then, the actual WebAuthn request, either makeCredential or getAssertion will be sent.
For testing, this patch follows the same flow as well.
1) MockNfcService overrides NfcService to mock the behavior of NFC Tags discovery.
2) The same class also swizzles methods from NFReaderSession to mock tag connection and communication.
- Platform/spi/Cocoa/NearFieldSPI.h: Added.
- Sources.txt:
- SourcesCocoa.txt:
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreSetWebAuthenticationMockConfiguration):
- UIProcess/WebAuthentication/AuthenticatorManager.cpp:
(WebKit::AuthenticatorManagerInternal::collectTransports):
- UIProcess/WebAuthentication/AuthenticatorTransportService.cpp:
(WebKit::AuthenticatorTransportService::create):
(WebKit::AuthenticatorTransportService::createMock):
- UIProcess/WebAuthentication/Cocoa/HidService.h:
- UIProcess/WebAuthentication/Cocoa/HidService.mm:
(WebKit::HidService::HidService):
(WebKit::HidService::deviceAdded):
(WebKit::HidService::continueAddDeviceAfterGetInfo): Deleted.
- UIProcess/WebAuthentication/Cocoa/NearFieldSoftLink.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h.
- UIProcess/WebAuthentication/Cocoa/NearFieldSoftLink.mm: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h.
- UIProcess/WebAuthentication/Cocoa/NfcConnection.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h.
- UIProcess/WebAuthentication/Cocoa/NfcConnection.mm: Added.
(WebKit::fido::compareVersion):
(WebKit::NfcConnection::NfcConnection):
(WebKit::NfcConnection::~NfcConnection):
(WebKit::NfcConnection::transact const):
(WebKit::NfcConnection::didDetectTags const):
- UIProcess/WebAuthentication/Cocoa/NfcService.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h.
- UIProcess/WebAuthentication/Cocoa/NfcService.mm: Added.
(WebKit::NfcService::NfcService):
(WebKit::NfcService::~NfcService):
(WebKit::NfcService::didConnectTag):
(WebKit::NfcService::startDiscoveryInternal):
(WebKit::NfcService::platformStartDiscovery):
- UIProcess/WebAuthentication/Cocoa/WKNFReaderSessionDelegate.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h.
- UIProcess/WebAuthentication/Cocoa/WKNFReaderSessionDelegate.mm: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h.
(-[WKNFReaderSessionDelegate initWithConnection:]):
(-[WKNFReaderSessionDelegate readerSession:didDetectTags:]):
- UIProcess/WebAuthentication/Mock/MockHidConnection.cpp:
(WebKit::MockHidConnection::send):
(WebKit::MockHidConnection::registerDataReceivedCallbackInternal):
(WebKit::MockHidConnection::parseRequest):
(WebKit::MockHidConnection::feedReports):
(WebKit::MockHidConnection::shouldContinueFeedReports):
- UIProcess/WebAuthentication/Mock/MockNfcService.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h.
- UIProcess/WebAuthentication/Mock/MockNfcService.mm: Added.
(-[WKMockNFTag type]):
(-[WKMockNFTag initWithNFTag:]):
(-[WKMockNFTag description]):
(-[WKMockNFTag isEqualToNFTag:]):
(-[WKMockNFTag initWithType:]):
(WebKit::MockNfcService::MockNfcService):
(WebKit::MockNfcService::transceive):
(WebKit::MockNfcService::platformStartDiscovery):
(WebKit::MockNfcService::detectTags const):
- UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h:
- UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:
- UIProcess/WebAuthentication/fido/CtapAuthenticator.h:
- UIProcess/WebAuthentication/fido/CtapNfcDriver.cpp: Added.
(WebKit::CtapNfcDriver::CtapNfcDriver):
(WebKit::CtapNfcDriver::transact):
(WebKit::CtapNfcDriver::respondAsync const):
- UIProcess/WebAuthentication/fido/CtapNfcDriver.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h.
- UIProcess/WebAuthentication/fido/FidoService.cpp: Added.
(WebKit::FidoService::FidoService):
(WebKit::FidoService::getInfo):
(WebKit::FidoService::continueAfterGetInfo):
- UIProcess/WebAuthentication/fido/FidoService.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h.
- UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp:
- UIProcess/WebAuthentication/fido/U2fAuthenticator.h:
- UIProcess/ios/WebPageProxyIOS.mm:
- WebKit.xcodeproj/project.pbxproj:
Source/WTF:
- wtf/Platform.h:
Add a feature flag for NearField.
Tools:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setWebAuthenticationMockConfiguration):
Setup NFC mock testing configuration.
LayoutTests:
- http/wpt/webauthn/ctap-nfc-failure.https-expected.txt: Added.
- http/wpt/webauthn/ctap-nfc-failure.https.html: Added.
- http/wpt/webauthn/public-key-credential-create-failure-nfc.https-expected.txt: Added.
- http/wpt/webauthn/public-key-credential-create-failure-nfc.https.html: Added.
- http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
This patch replaces the "local" keyword with "hid".
- http/wpt/webauthn/public-key-credential-create-success-nfc.https-expected.txt: Added.
- http/wpt/webauthn/public-key-credential-create-success-nfc.https.html: Added.
- http/wpt/webauthn/public-key-credential-get-failure-nfc.https-expected.txt: Added.
- http/wpt/webauthn/public-key-credential-get-failure-nfc.https.html: Added.
- http/wpt/webauthn/public-key-credential-get-success-nfc.https-expected.txt: Added.
- http/wpt/webauthn/public-key-credential-get-success-nfc.https.html: Added.
- http/wpt/webauthn/resources/util.js:
- platform/ios-simulator-wk2/TestExpectations:
Skip NFC tests for simulators.
- 11:51 AM Changeset in webkit [249058] by
-
- 11 edits in trunk/Source
JSC should have public API for unhandled promise rejections
https://bugs.webkit.org/show_bug.cgi?id=197172
Reviewed by Keith Miller.
Source/JavaScriptCore:
This patch makes it possible to register a unhandled promise rejection callback via the JSC API.
Since there is no event loop in such an environment, this callback fires off of the microtask queue.
The callback receives the promise and rejection reason as arguments and its return value is ignored.
- API/JSContextRef.cpp:
(JSGlobalContextSetUnhandledRejectionCallback): Added.
- API/JSContextRefPrivate.h:
Add new C++ API call.
- API/tests/testapi.cpp:
(TestAPI::promiseResolveTrue): Clean up test output.
(TestAPI::promiseRejectTrue): Clean up test output.
(TestAPI::promiseUnhandledRejection): Added.
(TestAPI::promiseUnhandledRejectionFromUnhandledRejectionCallback): Added.
(TestAPI::promiseEarlyHandledRejections): Added.
(testCAPIViaCpp):
Add new C++ API test.
- jsc.cpp:
(GlobalObject::finishCreation):
(functionSetUnhandledRejectionCallback): Added.
Add corresponding global to JSC shell.
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::setUnhandledRejectionCallback): Added.
(JSC::JSGlobalObject::unhandledRejectionCallback const): Added.
Keep a strong reference to the callback.
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncHostPromiseRejectionTracker):
Add default behavior.
- runtime/VM.cpp:
(JSC::VM::callPromiseRejectionCallback): Added.
(JSC::VM::didExhaustMicrotaskQueue): Added.
(JSC::VM::promiseRejected): Added.
(JSC::VM::drainMicrotasks):
When microtask queue is exhausted, deal with any pending unhandled rejections
(in a manner based on RejectedPromiseTracker's reportUnhandledRejections),
then make sure this didn't cause any new microtasks to be added to the queue.
- runtime/VM.h:
Store unhandled rejections.
(This collection will always be empty in the presence of WebCore.)
Source/WebCore:
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::promiseRejectionTracker):
Move JSInternalPromise early-out to JSC side.
- 11:29 AM Changeset in webkit [249057] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: transparency checkerboard is too bright in dark mode
https://bugs.webkit.org/show_bug.cgi?id=201067
Reviewed by Joseph Pecoraro.
- UserInterface/Views/Main.css:
(@media (prefers-color-scheme: dark) :matches(img, canvas).show-grid):
- UserInterface/Views/ConsoleMessageView.css:
(.console-message-body > .show-grid):
- 11:14 AM Changeset in webkit [249056] by
-
- 9 edits in trunk/Source
Support ITP on a per-session basis (198923)
https://bugs.webkit.org/show_bug.cgi?id=198923
Patch by Kate Cheney <Kate Cheney> on 2019-08-23
Reviewed by Chris Dumez.
Source/WebCore:
This patch updated the data structure used to collect resource load
statistics in order to support ITP data collection on a per session
basis. Each sessionID is stored as a key-value pair with its own map
of ResourceLoadStatistics.
It also updated the statisticsForURL function call to perform lookups
of URL data based on sessionID.
- loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::setStatisticsUpdatedCallback):
(WebCore::ResourceLoadObserver::shouldLog const):
(WebCore::ResourceLoadObserver::logSubresourceLoading):
(WebCore::ResourceLoadObserver::logWebSocketLoading):
(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
(WebCore::ResourceLoadObserver::logFontLoad):
(WebCore::ResourceLoadObserver::logCanvasRead):
(WebCore::ResourceLoadObserver::logCanvasWriteOrMeasure):
(WebCore::ResourceLoadObserver::logNavigatorAPIAccessed):
(WebCore::ResourceLoadObserver::logScreenAPIAccessed):
(WebCore::ResourceLoadObserver::ensureResourceStatisticsForRegistrableDomain):
(WebCore::ResourceLoadObserver::statisticsForURL):
(WebCore::ResourceLoadObserver::takeStatistics):
(WebCore::ResourceLoadObserver::clearState):
- loader/ResourceLoadObserver.h:
- testing/Internals.cpp:
(WebCore::Internals::resourceLoadStatisticsForURL):
Source/WebKit:
The original implementation of resourceLoadStatisticsUpdated
did not allow for ITP on a per session basis due to the sessionID
not being passed to the resourceLoadStatisticsUpdated function.
This patch allows access of the correct networkSession by passing
all resourceLoadStatistics in a new data structure of key-value
pairs, where the sessionID is the key.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- WebProcess/WebProcess.cpp:
- 10:53 AM Changeset in webkit [249055] by
-
- 3 edits in branches/safari-608-branch/Source/WebCore
Cherry-pick r248969. rdar://problem/54643450
Crash under StringImpl::~StringImpl() in IDBServer::computeSpaceUsedForOrigin()
https://bugs.webkit.org/show_bug.cgi?id=200989
<rdar://problem/54565546>
Reviewed by Alex Christensen.
Make sure we call isolatedCopy() on IDBServer::m_databaseDirectoryPath before using it from
background threads.
- Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::createBackingStore): (WebCore::IDBServer::IDBServer::performGetAllDatabaseNames): (WebCore::IDBServer::IDBServer::removeDatabasesModifiedSinceForVersion): (WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesModifiedSince): (WebCore::IDBServer::IDBServer::removeDatabasesWithOriginsForVersion): (WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesForOrigins): (WebCore::IDBServer::IDBServer::computeSpaceUsedForOrigin): (WebCore::IDBServer::IDBServer::upgradeFilesIfNecessary):
- Modules/indexeddb/server/IDBServer.h: (WebCore::IDBServer::IDBServer::databaseDirectoryPath const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248969 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:53 AM Changeset in webkit [249054] by
-
- 3 edits in branches/safari-608-branch/Source/WebCore
Cherry-pick r248971. rdar://problem/54643440
Crash under StringImpl::endsWith() in SQLiteIDBBackingStore::fullDatabaseDirectoryWithUpgrade()
https://bugs.webkit.org/show_bug.cgi?id=200990
<rdar://problem/54566439>
Reviewed by Alex Christensen.
Make sure we call isolatedCopy() on SQLiteIDBBackingStore::m_databaseRootDirectory before using
it from background threads.
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp: (WebCore::IDBServer::SQLiteIDBBackingStore::fullDatabaseDirectoryWithUpgrade): (WebCore::IDBServer::SQLiteIDBBackingStore::databasesSizeForOrigin const): (WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore):
- Modules/indexeddb/server/SQLiteIDBBackingStore.h: (WebCore::IDBServer::SQLiteIDBBackingStore::databaseRootDirectory const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248971 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:53 AM Changeset in webkit [249053] by
-
- 3 edits in branches/safari-608-branch/Source/WebCore
Cherry-pick r248967. rdar://problem/54643456
Crash under StringImpl::endsWith() in RegistrationDatabase::openSQLiteDatabase()
https://bugs.webkit.org/show_bug.cgi?id=200991
<rdar://problem/54566689>
Reviewed by Geoffrey Garen.
Make sure we call isolatedCopy() on RegistrationDatabase::m_databaseDirectory before using
it from background threads.
- workers/service/server/RegistrationDatabase.cpp: (WebCore::RegistrationDatabase::openSQLiteDatabase): (WebCore::RegistrationDatabase::clearAll):
- workers/service/server/RegistrationDatabase.h: (WebCore::RegistrationDatabase::databaseDirectory const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248967 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:21 AM Changeset in webkit [249052] by
-
- 2 edits in trunk/Source/JavaScriptCore
VirtualRegister::dump() can use more informative CallFrame header slot names.
https://bugs.webkit.org/show_bug.cgi?id=201062
Reviewed by Tadeu Zagallo.
For example, it currently dumps head3 instead of callee. This patch changes the
dump as follows (for 64-bit addressing):
head0 => callerFrame
head1 => returnPC
head2 => codeBlock
head3 => callee
head4 => argumentCount
Now, one might be wondering when would bytecode ever access callerFrame and
returnPC? The answer is never. However, I don't think its the role of the
dumper to catch a bug where these header slots are being used. The dumper's role
is to clearly report them so that we can see that these unexpected values are
being used.
- bytecode/VirtualRegister.cpp:
(JSC::VirtualRegister::dump const):
- 10:15 AM Changeset in webkit [249051] by
-
- 12 edits7 deletes in trunk
Unreviewed, rolling out r249031.
Causes multiple test failures on iOS simulator
Reverted changeset:
"[iOS] Should show input view when became first responder if
keyboard was showing when the view was resigned"
https://bugs.webkit.org/show_bug.cgi?id=200902
https://trac.webkit.org/changeset/249031
- 10:06 AM Changeset in webkit [249050] by
-
- 6 edits in branches/safari-608-branch/LayoutTests
Cherry-pick r249042. rdar://problem/54622280
Revert delete-in-input-in-iframe.html and typing-in-input-in-iframe.html to original behaviour after r248977 and make associated test autoscroll-input-when-very-zoomed.html more stable
https://bugs.webkit.org/show_bug.cgi?id=201058
Reviewed by Simon Fraser.
delete-in-input-in-iframe and typing-in-input-in-iframe were changed when scrolling was made to work differently in r244141.
They actually did find a bug, and that bug was fixed in r248977, so we put the tests back to test that scolls do not happen.
Also update autoscroll-input-when-very-zoomed which was added to test r248977 to be more robust.
- fast/forms/ios/delete-in-input-in-iframe-expected.txt:
- fast/forms/ios/delete-in-input-in-iframe.html:
- fast/forms/ios/typing-in-input-in-iframe-expected.txt:
- fast/forms/ios/typing-in-input-in-iframe.html:
- fast/scrolling/ios/autoscroll-input-when-very-zoomed.html:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@249042 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:06 AM Changeset in webkit [249049] by
-
- 2 edits in branches/safari-608-branch/LayoutTests
Cherry-pick r249028. rdar://problem/54614691
REGRESSION (r248974): fast/events/ios/select-all-with-existing-selection.html fails
https://bugs.webkit.org/show_bug.cgi?id=201050
Reviewed by Wenson Hsieh.
- fast/events/ios/select-all-with-existing-selection.html: The test as-written doesn't actually wait for the tap to complete before continuing on with the test - it starts immediately when the focus event fires. This results in the selection being changed by the single click handler *after* focusing the field.
Rewrite the test to await completion of the tap before moving forward
instead of waiting for focus.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@249028 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:06 AM Changeset in webkit [249048] by
-
- 4 edits in branches/safari-608-branch/LayoutTests
Cherry-pick r249017. rdar://problem/54564878
Rebaseline some editing tests after r248974
https://bugs.webkit.org/show_bug.cgi?id=200999
<rdar://problem/54564878>
- platform/ios/editing/deleting/smart-delete-003-expected.txt:
- platform/ios/editing/deleting/smart-delete-004-expected.txt:
- platform/ios/editing/pasteboard/smart-paste-008-expected.txt:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@249017 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:53 AM Changeset in webkit [249047] by
-
- 2 edits in trunk/Source/WebCore
Remove unnecessary call to enclosingClippingScopes()
https://bugs.webkit.org/show_bug.cgi?id=201063
Reviewed by Zalan Bujtas.
This line of code did nothing, and was left in by mistake. Remove it.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateOverlapMap const):
- 8:47 AM Changeset in webkit [249046] by
-
- 5 edits in trunk/Tools
[ews] Enable Style queue on new EWS
https://bugs.webkit.org/show_bug.cgi?id=201071
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/config.json: Enabled the scheduler for Style queue.
- BuildSlaveSupport/ews-app/ews/views/statusbubble.py: Enabled style queue bubble on new EWS.
- QueueStatusServer/config/queues.py: Removed style queue from old EWS.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:
(BubbleQueueServer): Removed style queue from bot-watcher's dashboard.
- 8:31 AM Changeset in webkit [249045] by
-
- 3 edits in trunk/Source/WebCore
Cache hasCompositedScrollableOverflow as a bit on RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=201065
Reviewed by Zalan Bujtas.
hasCompositedScrollableOverflow() is pretty hot on some compositing-related code paths, and isn't
super cheap, as it checks a Setting and calls into renderer code. Optimize by computing it in
computeScrollDimensions().
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::hasCompositedScrollableOverflow const):
(WebCore::RenderLayer::computeScrollDimensions):
- rendering/RenderLayer.h:
- 8:14 AM Changeset in webkit [249044] by
-
- 2 edits in trunk/Source/WebCore
Don't call clipCrossesPaintingBoundary() when not necessary
https://bugs.webkit.org/show_bug.cgi?id=201064
Reviewed by Zalan Bujtas.
clipCrossesPaintingBoundary() does some RenderLayer ancestor walks, so avoid
calling it when we already know that the clip rects are TemporaryClipRects.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects const):
- 3:53 AM Changeset in webkit [249043] by
-
- 3 edits in trunk/Source/WebCore
[GStreamer] Hole-punch build is broken
https://bugs.webkit.org/show_bug.cgi?id=200972
Reviewed by Žan Doberšek.
This patch fixes link issues when building with
USE_GSTREAMER_HOLEPUNCH enabled, the hole punch client destructor
was missing.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
Remove FAST_ALLOCATED annotation, because:
- platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h:
it's now in the base class, along with a default destructor.
- 12:25 AM Changeset in webkit [249042] by
-
- 6 edits in trunk/LayoutTests
Revert delete-in-input-in-iframe.html and typing-in-input-in-iframe.html to original behaviour after r248977 and make associated test autoscroll-input-when-very-zoomed.html more stable
https://bugs.webkit.org/show_bug.cgi?id=201058
Reviewed by Simon Fraser.
delete-in-input-in-iframe and typing-in-input-in-iframe were changed when scrolling was made to work differently in r244141.
They actually did find a bug, and that bug was fixed in r248977, so we put the tests back to test that scolls do not happen.
Also update autoscroll-input-when-very-zoomed which was added to test r248977 to be more robust.
- fast/forms/ios/delete-in-input-in-iframe-expected.txt:
- fast/forms/ios/delete-in-input-in-iframe.html:
- fast/forms/ios/typing-in-input-in-iframe-expected.txt:
- fast/forms/ios/typing-in-input-in-iframe.html:
- fast/scrolling/ios/autoscroll-input-when-very-zoomed.html: