Timeline
May 9, 2016:
- 11:36 PM Changeset in webkit [200617] by
-
- 3 edits2 adds in trunk
Web Inspector: CRASH under JSC::DebuggerCallFrame::thisValue when hitting breakpoint
https://bugs.webkit.org/show_bug.cgi?id=157442
<rdar://problem/24172015>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-09
Reviewed by Saam Barati.
Source/JavaScriptCore:
- debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::thisValueForCallFrame):
When the thisValue is JSValue() return undefined and avoid calling
toThisValue which would lead to a crash. Havingthisbe an empty
JSValue could happen inside an ES6 class constructor, before
calling super.
LayoutTests:
- inspector/debugger/break-in-constructor-before-super-expected.txt: Added.
- inspector/debugger/break-in-constructor-before-super.html: Added.
- 11:07 PM Changeset in webkit [200616] by
-
- 1 copy in branches/safari-601.6-branch
New Branch.
- 11:03 PM Changeset in webkit [200615] by
-
- 1 copy in branches/safari-601.1.46.128-branch
New Branch.
- 10:04 PM Changeset in webkit [200614] by
-
- 2 edits in trunk/Source/WebCore
Fix GTK build after r200607
- Modules/notifications/Notification.h:
dir and replaceId are used in WebNotificationManager with NOTIFICATIONS and with LEGACY_NOTIFICATIONS
- 9:58 PM Changeset in webkit [200613] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, fix cloop.
- bytecode/ValueProfile.cpp:
(JSC::ResultProfile::emitDetectNumericness):
(JSC::ResultProfile::emitSetNonNumber):
- bytecode/ValueProfile.h:
(JSC::ResultProfile::addressOfFlags):
(JSC::ResultProfile::addressOfSpecialFastPathCount):
(JSC::ResultProfile::detectNumericness):
(JSC::ResultProfile::hasBits):
- 9:52 PM Changeset in webkit [200612] by
-
- 5 edits in trunk/Source/WebCore
Fix the Windows build after r200602, and do some minor tidyup.
- platform/graphics/ca/PlatformCALayer.h:
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(PlatformCALayerCocoa::contentsHidden):
- platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::contentsHidden):
(PlatformCALayerWin::setContentsHidden):
- platform/graphics/ca/win/PlatformCALayerWin.h:
- 8:40 PM Changeset in webkit [200611] by
-
- 7 edits in trunk/Source/WebKit2
REGRESSION (r191922): Zoom in/Zoom Out is not working for PDFs
https://bugs.webkit.org/show_bug.cgi?id=157503
<rdar://problem/23736297>
Reviewed by Anders Carlsson.
- WebProcess/Plugins/PDF/DeprecatedPDFPlugin.h:
Restore a requiresUnifiedScaleFactor that was lost in r191922.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::mainFramePluginHandlesPageScaleGestureDidChange):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::didInitializePlugin):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
Separate mainFramePluginHandlesPageScaleGesture changes out from didCommitLoadForFrame,
because the PluginView doesn't exist at this point, so it can't answer
the handlesPageScaleGesture question correctly (or at all).
Instead, we'll send the message when the main-frame PluginView is initialized.
- 8:22 PM Changeset in webkit [200610] by
-
- 2 edits in trunk/Source/JavaScriptCore
Crash beneath ObjCCallbackFunctionImpl::call
https://bugs.webkit.org/show_bug.cgi?id=157491
Reviewed by Saam Barati.
Clear any exceptions after the micro task runs.
Tried creating a test case, but I don't have source for the app.
I can't seem to find the right combination of Promises and ObjC code.
- runtime/JSJob.cpp:
(JSC::JSJobMicrotask::run):
- 7:55 PM Changeset in webkit [200609] by
-
- 6 edits7 copies41 moves6 adds in trunk/LayoutTests
iOS-scrolling test cleanup.
Move iOS scrolling tests from platform/ios-simulator/fast/scrolling/ios to fast/scrolling/ios/.
Rebaseline those that need it. Enable some in iOS WK1 if they pass.
Try to make fast/scrolling/ios/touch-scroll-visibility-hidden.html not flakey
- fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt.
- fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/clipping-ancestor-with-accelerated-scrolling-ancestor.html.
- fast/scrolling/ios/iframe-inside-overflow-clipping-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/iframe-inside-overflow-clipping-expected.txt.
- fast/scrolling/ios/iframe-inside-overflow-clipping.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/iframe-inside-overflow-clipping.html.
- fast/scrolling/ios/overflow-clip-with-accelerated-scrolling-ancestor-expected.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-clip-with-accelerated-scrolling-ancestor-expected.html.
- fast/scrolling/ios/overflow-clip-with-accelerated-scrolling-ancestor.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-clip-with-accelerated-scrolling-ancestor.html.
- fast/scrolling/ios/overflow-div-scrolling-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-div-scrolling-expected.txt.
- fast/scrolling/ios/overflow-div-scrolling.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-div-scrolling.html.
- fast/scrolling/ios/overflow-scroll-inherited-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scroll-inherited-expected.txt.
- fast/scrolling/ios/overflow-scroll-inherited.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scroll-inherited.html.
- fast/scrolling/ios/overflow-scroll-touch-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scroll-touch-expected.txt.
- fast/scrolling/ios/overflow-scroll-touch.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scroll-touch.html.
- fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip-expected.txt.
- fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip-size-expected.txt.
- fast/scrolling/ios/overflow-scrolling-ancestor-clip-size.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip-size.html.
- fast/scrolling/ios/overflow-scrolling-ancestor-clip.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip.html.
- fast/scrolling/ios/remove-overflow-crash-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/remove-overflow-crash-expected.txt.
- fast/scrolling/ios/remove-overflow-crash.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/remove-overflow-crash.html.
- fast/scrolling/ios/resources/jump-back.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/resources/jump-back.html.
- fast/scrolling/ios/script-tests/TEMPLATE.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/script-tests/TEMPLATE.html.
- fast/scrolling/ios/script-tests/overflow-div-scrolling.js: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/script-tests/overflow-div-scrolling.js.
(verifyScrollOffset):
- fast/scrolling/ios/scroll-event-from-scrollTo-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-event-from-scrollTo-expected.txt.
- fast/scrolling/ios/scroll-event-from-scrollTo.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-event-from-scrollTo.html.
- fast/scrolling/ios/scroll-events-back-forward-after-pageshow-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-events-back-forward-after-pageshow-expected.txt.
- fast/scrolling/ios/scroll-events-back-forward-after-pageshow.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-events-back-forward-after-pageshow.html.
- fast/scrolling/ios/scroll-events-back-forward-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-events-back-forward-expected.txt.
- fast/scrolling/ios/scroll-events-back-forward.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scroll-events-back-forward.html.
- fast/scrolling/ios/scrollTo-at-page-load-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrollTo-at-page-load-expected.txt.
- fast/scrolling/ios/scrollTo-at-page-load.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrollTo-at-page-load.html.
- fast/scrolling/ios/scrollbar-hiding-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/scrollbar-hiding-expected.txt.
- fast/scrolling/ios/scrollbar-hiding.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrollbar-hiding.html.
- fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/scrolling-content-clip-to-viewport-expected.txt.
- fast/scrolling/ios/scrolling-content-clip-to-viewport.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrolling-content-clip-to-viewport.html.
- fast/scrolling/ios/table-cell-touch-scrolling-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/table-cell-touch-scrolling-expected.txt.
- fast/scrolling/ios/table-cell-touch-scrolling.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/table-cell-touch-scrolling.html.
- fast/scrolling/ios/textarea-scroll-touch-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/textarea-scroll-touch-expected.txt.
- fast/scrolling/ios/textarea-scroll-touch.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/textarea-scroll-touch.html.
- fast/scrolling/ios/touch-scroll-back-forward-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/touch-scroll-back-forward-expected.txt.
- fast/scrolling/ios/touch-scroll-back-forward.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/touch-scroll-back-forward.html.
- fast/scrolling/ios/touch-scroll-visibility-hidden-expected.txt:
- fast/scrolling/ios/touch-scroll-visibility-hidden.html:
- fast/scrolling/ios/touch-stacking-expected.txt: Copied from LayoutTests/platform/ios-simulator/ios/scrolling/touch-stacking-expected.txt.
- fast/scrolling/ios/touch-stacking.html: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/touch-stacking.html.
- platform/ios-simulator-wk1/TestExpectations:
- platform/ios-simulator-wk2/TestExpectations:
- platform/ios-simulator/TestExpectations:
- platform/ios-simulator/fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.png: Added.
- platform/ios-simulator/fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt.
- platform/ios-simulator/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip-expected.txt.
- platform/ios-simulator/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/overflow-scrolling-ancestor-clip-size-expected.txt.
- platform/ios-simulator/fast/scrolling/ios/scrollbar-hiding-expected.png: Added.
- platform/ios-simulator/fast/scrolling/ios/scrollbar-hiding-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrollbar-hiding-expected.txt.
- platform/ios-simulator/fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/scrolling-content-clip-to-viewport-expected.txt.
- platform/ios-simulator/fast/scrolling/ios/textarea-scroll-touch-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/textarea-scroll-touch-expected.txt.
- platform/ios-simulator/fast/scrolling/ios/touch-stacking-expected.png: Added.
- platform/ios-simulator/fast/scrolling/ios/touch-stacking-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/scrolling/touch-stacking-expected.txt.
- 7:45 PM Changeset in webkit [200608] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Filtering by Errors/Warnings should not filter Breakpoints list
https://bugs.webkit.org/show_bug.cgi?id=157481
<rdar://problem/26177346>
Reviewed by Timothy Hatcher.
- Localizations/en.lproj/localizedStrings.js:
New UI strings.
- UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.showResourcesWithIssuesOnlyFilterFunction):
Only filter tree elements belonging to the scripts tree outline.
(WebInspector.DebuggerSidebarPanel):
Drive-by cleanup of Issues filter button tooltips.
- 7:31 PM Changeset in webkit [200607] by
-
- 14 edits in trunk/Source/WebCore
Change Notification constructor to take an IDL dictionary instead of a WebCore::Dictionary
https://bugs.webkit.org/show_bug.cgi?id=157466
Reviewed by Alex Christensen.
- Modules/notifications/Notification.cpp: Got rid of unneeded includes.
(WebCore::Notification::Notification): Deleted the unused default constructor. Changed
NotificationCenter argument to be reference rather than PassRefPtr. Changed one of the
ScriptExecutionContext arguments to be a Document since the code relies on that already.
Used the lambda form of timer creation instead of the class member form. Added a FIXME
about when m_notificationCenter can be null.
(WebCore::Notification::create): Changed NotificationCenter argument to be reference
rather than PassRefPtr. Changed options argument to be Options rather than Dictionary.
(WebCore::directionString): Added. Helper because the class still wants to store the
direction as a string, at least for now.
(WebCore::Notification::show): Streamlined the code a bit.
(WebCore::Notification::taskTimerFired): Deleted. Not needed now that we use a lambda
inside the constructor.
(WebCore::Notification::permission): Removed unneeded const from return type.
(WebCore::Notification::permissionString): Ditto.
- Modules/notifications/Notification.h: Used pragma once, updated for changes above.
Removed a number of unused functions, including cancel, setIconURL, setLang,
stopLoadingIcon, detachPresenter, setBody, startLoadingIcon, finishLoadingIcon, and
taskTimerFired.
- Modules/notifications/Notification.idl: Add NotificationOptions and pass it instead
of Dictionary to the constructor. Note that this is only a subset of what is
currently specified in the Notifications API document. The latest document specifies
a much more complex feature with lots more options.
- Modules/notifications/NotificationCenter.cpp:
(WebCore::NotificationCenter::createNotification): Pass a reference rather than a
pointer to this.
- Modules/notifications/NotificationClient.h: Use pragma once. Removed unneeded
includes and forward declarations. Fixed #if to be easier to read.
- bindings/js/JSDOMConvert.h: Reworked the convert functions to use Converter and
DefaultConverter structs so we can do partial specialization in the future and so
we can get custom types for optional values. Used this to make an optional String
just be a null String, so it won't try to use Optional<String> instead. Might get
more complex latter when we add support for nullable.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateEnumerationImplementationContent): Generate a blank line to make the output
slightly clearer. Tweaked a comment.
(GenerateDefaultValue): Added. Converts the default syntax from IDL into the syntax
needed in C++ code.
(GenerateDefaultValueWithLeadingComma): Added. Helper for use below.
(GenerateDictionaryImplementationContent): Use GenerateDefaultValue and
GenerateDefaultValueWithLeadingComma to make default values.
(GenerateParametersCheck): Use GenerateDefaultValue here in the enumeration code
path. This is a step in the direction of being able to make the whole thing more
generic in the future.
- bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
- bindings/scripts/test/GObject/WebKitDOMTestObj.h:
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/ObjC/DOMTestObj.h:
- bindings/scripts/test/ObjC/DOMTestObj.mm:
Regenerated.
- bindings/scripts/test/TestObj.idl: Simplified and extended some of the test cases
to cover more combinations of the dictionary and enumeration support.
- 7:01 PM Changeset in webkit [200606] by
-
- 42 edits17 adds in trunk
Polymorphic operands in operators coerces downstream values to double.
https://bugs.webkit.org/show_bug.cgi?id=151793
Reviewed by Mark Lam.
Source/JavaScriptCore:
Previously if an object flowed into arithmetic, the prediction propagation phase would either
assume that the output of the arithmetic had to be double or sometimes it would assume that it
couldn't be double. We want it to only assume that the output is double if it actually had been.
The first part of this patch is to roll out http://trac.webkit.org/changeset/200502. That removed
some of the machinery that we had in place to detect whether the output of an operation is int or
double. That changeset claimed that the machinery was "fundamentally broken". It actually wasn't.
The reason why it didn't work was that ByteCodeParser was ignoring it if likelyToTakeSlowCase was
false. I think this was a complete goof-up: the code in ByteCodeParser::makeSafe was structured
in a way that made it non-obvious that the method is a no-op if !likelyToTakeSlowCase. So, this
change rolls out r200502 and makes ResultProfile do its job by reshaping how makeSafe processes
it.
This also makes two other changes to shore up ResultProfile:
- OSR exit can now refine a ResultProfile the same way that it refines ValueProfile.
- Baseline JIT slow paths now set bits in ResultProfile.
Based on this stuff, the DFG now predicts int/double/string in op_add/op_sub/op_mul based on
ResultProfiles. To be conservative, we still only use the ResultProfiles if the incoming
prediction is not number-or-boolean. This ensures that we exactly retain our old behavior in
those cases for which it was tuned. But I hope to remove this soon. I believe that ResultProfile
is already strictly better than what prediction propagation was doing before.
This can be an enormous win. This patch adds some simple microbenchmarks that demonstrate the
problem of assuming that arithmetic on objects returns double. The most extreme of these speeds
up 8x with this change (object-int-add-array).
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/CodeBlock.h:
(JSC::CodeBlock::addFrequentExitSite):
(JSC::CodeBlock::hasExitSite):
- bytecode/DFGExitProfile.cpp:
(JSC::DFG::FrequentExitSite::dump):
(JSC::DFG::ExitProfile::ExitProfile):
(JSC::DFG::ExitProfile::~ExitProfile):
(JSC::DFG::ExitProfile::add):
- bytecode/DFGExitProfile.h:
(JSC::DFG::FrequentExitSite::isHashTableDeletedValue):
- bytecode/MethodOfGettingAValueProfile.cpp:
(JSC::MethodOfGettingAValueProfile::fromLazyOperand):
(JSC::MethodOfGettingAValueProfile::emitReportValue):
(JSC::MethodOfGettingAValueProfile::getSpecFailBucket): Deleted.
- bytecode/MethodOfGettingAValueProfile.h:
(JSC::MethodOfGettingAValueProfile::MethodOfGettingAValueProfile):
(JSC::MethodOfGettingAValueProfile::operator bool):
(JSC::MethodOfGettingAValueProfile::operator!): Deleted.
- bytecode/PolymorphicAccess.cpp:
(JSC::AccessCase::generateImpl):
- bytecode/ValueProfile.cpp:
(JSC::ResultProfile::emitDetectBitsLight):
(JSC::ResultProfile::emitSetDouble):
(JSC::ResultProfile::emitSetNonNumber):
(WTF::printInternal):
- bytecode/ValueProfile.h:
(JSC::ResultProfile::ResultProfile):
(JSC::ResultProfile::bytecodeOffset):
(JSC::ResultProfile::specialFastPathCount):
(JSC::ResultProfile::didObserveNonInt32):
(JSC::ResultProfile::didObserveDouble):
(JSC::ResultProfile::didObserveNonNegZeroDouble):
(JSC::ResultProfile::didObserveNegZeroDouble):
(JSC::ResultProfile::didObserveNonNumber):
(JSC::ResultProfile::didObserveInt32Overflow):
(JSC::ResultProfile::didObserveInt52Overflow):
(JSC::ResultProfile::setObservedNonNegZeroDouble):
(JSC::ResultProfile::setObservedNegZeroDouble):
(JSC::ResultProfile::setObservedNonNumber):
(JSC::ResultProfile::setObservedInt32Overflow):
(JSC::ResultProfile::addressOfFlags):
(JSC::ResultProfile::addressOfSpecialFastPathCount):
(JSC::ResultProfile::detectBitsLight):
(JSC::ResultProfile::hasBits):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::makeSafe):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::ensureNaturalLoops):
(JSC::DFG::Graph::methodOfGettingAValueProfileFor):
(JSC::DFG::Graph::valueProfileFor): Deleted.
- dfg/DFGGraph.h:
(JSC::DFG::Graph::hasExitSite):
(JSC::DFG::Graph::numBlocks):
- dfg/DFGNode.h:
(JSC::DFG::Node::arithNodeFlags):
(JSC::DFG::Node::mayHaveNonIntResult):
(JSC::DFG::Node::mayHaveDoubleResult):
(JSC::DFG::Node::mayHaveNonNumberResult):
(JSC::DFG::Node::hasConstantBuffer):
- dfg/DFGNodeFlags.cpp:
(JSC::DFG::dumpNodeFlags):
- dfg/DFGNodeFlags.h:
- dfg/DFGOSRExitCompiler32_64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
- dfg/DFGOSRExitCompiler64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
- ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStub):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::branchIfEqual):
(JSC::AssemblyHelpers::branchIfNotCell):
(JSC::AssemblyHelpers::branchIfNotNumber):
(JSC::AssemblyHelpers::branchIfNotDoubleKnownNotInt32):
(JSC::AssemblyHelpers::branchIfBoolean):
(JSC::AssemblyHelpers::branchIfEmpty):
(JSC::AssemblyHelpers::branchStructure):
- jit/CCallHelpers.h:
(JSC::CCallHelpers::CCallHelpers):
(JSC::CCallHelpers::setupArguments):
(JSC::CCallHelpers::setupArgumentsWithExecState):
- jit/IntrinsicEmitter.cpp:
(JSC::AccessCase::emitIntrinsicGetter):
- jit/JIT.h:
- jit/JITAddGenerator.cpp:
(JSC::JITAddGenerator::generateFastPath):
- jit/JITAddGenerator.h:
(JSC::JITAddGenerator::JITAddGenerator):
- jit/JITArithmetic.cpp:
(JSC::JIT::emit_op_add):
(JSC::JIT::emitSlow_op_add):
(JSC::JIT::emit_op_div):
(JSC::JIT::emit_op_mul):
(JSC::JIT::emitSlow_op_mul):
(JSC::JIT::emit_op_sub):
(JSC::JIT::emitSlow_op_sub):
- jit/JITInlines.h:
(JSC::JIT::callOperation):
(JSC::JIT::callOperationNoExceptionCheck):
- jit/JITMulGenerator.cpp:
(JSC::JITMulGenerator::generateFastPath):
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- jit/JITSubGenerator.cpp:
(JSC::JITSubGenerator::generateFastPath):
- jit/JITSubGenerator.h:
(JSC::JITSubGenerator::JITSubGenerator):
- jit/TagRegistersMode.cpp: Added.
(WTF::printInternal):
- jit/TagRegistersMode.h: Added.
- runtime/CommonSlowPaths.cpp:
(JSC::updateResultProfileForBinaryArithOp):
LayoutTests:
- js/regress/object-int-add-array-expected.txt: Added.
- js/regress/object-int-add-array.html: Added.
- js/regress/object-int-add-expected.txt: Added.
- js/regress/object-int-add.html: Added.
- js/regress/object-int-mul-array-expected.txt: Added.
- js/regress/object-int-mul-array.html: Added.
- js/regress/object-int-sub-array-expected.txt: Added.
- js/regress/object-int-sub-array.html: Added.
- js/regress/object-int-sub-expected.txt: Added.
- js/regress/object-int-sub.html: Added.
- js/regress/script-tests/object-int-add-array.js: Added.
(i.o.valueOf):
- js/regress/script-tests/object-int-add.js: Added.
(i.o.valueOf):
- js/regress/script-tests/object-int-mul-array.js: Added.
(i.o.valueOf):
- js/regress/script-tests/object-int-sub-array.js: Added.
(i.o.valueOf):
- js/regress/script-tests/object-int-sub.js: Added.
(i.o.valueOf):
- 6:40 PM Changeset in webkit [200605] by
-
- 4 edits in trunk/Source/WebInspectorUI
REGRESSION: Web Inspector: DOM path bar blinks when modifying inline styles
https://bugs.webkit.org/show_bug.cgi?id=149258
<rdar://problem/22737843>
Reviewed by Timothy Hatcher.
- UserInterface/Base/Utilities.js:
(Array.shallowEqual):
- UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype._updateContentViewNavigationItems):
(WebInspector.ContentBrowser.prototype._removeAllNavigationItems):
Don't re-render the navigation bar when all new navigation items match the previous ones.
- UserInterface/Views/HierarchicalPathNavigationItem.js:
(WebInspector.HierarchicalPathNavigationItem.set components.let.componentsEqual):
(WebInspector.HierarchicalPathNavigationItem.prototype.set components):
Don't re-render HierarchicalPathComponent when all new path components match the previous ones.
- 6:35 PM Changeset in webkit [200604] by
-
- 2 edits in trunk/LayoutTests
Land correct result for a recently added test.
- fast/scrolling/ios/touch-scroll-visibility-hidden-expected.txt:
- 5:59 PM Changeset in webkit [200603] by
-
- 4 edits in trunk/Source/WebCore
Modern IDB: Have server database connections remember the OpenDB request that spawned them.
https://bugs.webkit.org/show_bug.cgi?id=157498
Reviewed by Tim Horton.
No new tests (No testable change in behavior, debug only for now).
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation):
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::create):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFireVersionChangeEvent):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::createVersionChangeTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::establishTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didAbortTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didCommitTransaction):
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::openRequestIdentifier):
- 5:20 PM Changeset in webkit [200602] by
-
- 23 edits3 adds in trunk
[iOS] visibility:hidden -webkit-overflow-scrolling: touch divs can interfere with page scrolling
https://bugs.webkit.org/show_bug.cgi?id=157496
Source/WebCore:
Reviewed by Tim Horton.
UIScrollViews are constructed in the UI process for visibility:hidden scrollable elements
with -webkit-overflow-scrolling: touch, and these intercept user events when they should not.
Fix by propagating a "contentsHidden" flag from the web process which is used to turn off
user interaction on these views.
Test: fast/scrolling/ios/touch-scroll-visibility-hidden.html
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateContentsVisibility): We have to tell the scrolling layer
if we have visibility:hidden.
- platform/graphics/ca/PlatformCALayer.h:
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(PlatformCALayerCocoa::contentsHidden):
(PlatformCALayerCocoa::setContentsHidden):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAfterDescendants):
Source/WebKit2:
rdar://problem/22963278
Reviewed by Tim Horton.
UIScrollViews are constructed in the UI process for visibility:hidden scrollable elements
with -webkit-overflow-scrolling: touch, and these intercept user events when they should not.
Fix by propagating a "contentsHidden" flag from the web process which is used to turn off
user interaction on these views.
- Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
- Shared/mac/RemoteLayerTreeTransaction.h:
- Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpChangedLayers):
- UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(-[UIView _recursiveFindDescendantScrollViewAtPoint:withEvent:]): Our custom hit
test needs to take view.isUserInteractionEnabled into account.
- WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::setHidden):
(WebKit::PlatformCALayerRemote::contentsHidden):
(WebKit::PlatformCALayerRemote::setContentsHidden):
- WebProcess/WebPage/mac/PlatformCALayerRemote.h:
Tools:
rdar://problem/22963278
Reviewed by Tim Horton.
Enhance UIScriptController to generate a drag, which is useful for scrolling.
- WebKitTestRunner/UIScriptContext/Bindings/UIScriptController.idl:
- WebKitTestRunner/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::dragFromPointToPoint):
- WebKitTestRunner/UIScriptContext/UIScriptController.h:
- WebKitTestRunner/ios/HIDEventGenerator.h:
- WebKitTestRunner/ios/HIDEventGenerator.mm:
(-[HIDEventGenerator dragWithStartPoint:endPoint:duration:completionBlock:]):
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::dragFromPointToPoint):
LayoutTests:
rdar://problem/22963278
Reviewed by Tim Horton.
Add a fast/scrolling/ios directory, disable it everywhere except on iOS.
- TestExpectations:
- fast/scrolling/ios/touch-scroll-visibility-hidden-expected.txt: Added.
- fast/scrolling/ios/touch-scroll-visibility-hidden.html: Added.
- platform/ios-simulator-wk2/TestExpectations:
- 5:13 PM Changeset in webkit [200601] by
-
- 8 edits6 adds in trunk
Web Font is downloaded even when all the characters in the document are outside its unicode-range
https://bugs.webkit.org/show_bug.cgi?id=42154
<rdar://problem/17779042>
Reviewed by Darin Adler.
Source/WebCore:
Fonts are requested in two stages:
- For a given font family, all the relevant @font-face rules are consulted. We build up a
mapping of unicode-range -> Font object. This result is cached.
- Then, when we have the mapping, we look up the character we are trying to render to
find the appropriate Font object.
However, we are not supposed to create any Font objects (because that causes a download to
be triggered) until we consult with the character we're trying to render. Therefore, this
patch swaps out the Font objects with a FontAccessor. This FontAccessor is essentially a
lazily-created Font. When step 2 starts looking up the appropriate character, the
FontAccessor will be asked to start the download.
Test: fast/text/unicode-range-download.html
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::removeClient):
as a client from all its CSSFontFaces.
- css/CSSFontFaceSet.cpp:
(WebCore::CSSFontFaceSet::clear): Clearing the CSSFontFaceSet needs to remove itself as a
client from all its CSSFontFaces.
- css/CSSSegmentedFontFace.cpp:
(WebCore::CSSFontAccessor::create): The lazy Font object.
(WebCore::CSSFontAccessor::CSSFontAccessor): Ditto.
(WebCore::appendFontWithInvalidUnicodeRangeIfLoading): Appends a FontAccessor.
(WebCore::CSSSegmentedFontFace::fontRanges): Create the FontAccessor and use it instead.
- platform/graphics/FontCascadeFonts.cpp:
(WebCore::FontCascadeFonts::determinePitch): Use the fontForFirstRange() convenience
function.
(WebCore::glyphPageFromFontRanges): font() may now return nullptr. Update this function to
handle that.
- platform/graphics/FontRanges.cpp:
(WebCore::FontRanges::Range::font): Trigger the lazy initialization.
(WebCore::TrivialFontAccessor::create): Used in the case where there is only one font in
the Ranges object and it has a full unicode-range.
(WebCore::TrivialFontAccessor::TrivialFontAccessor):
(WebCore::FontRanges::FontRanges): Use TrivialFontAccessor.
(WebCore::FontRanges::glyphDataForCharacter): font() may now return nullptr. Update this
function to handle that. This is where the magic happens: this is where we trigger
downloads only if the character falls within the unicode-range.
(WebCore::FontRanges::fontForFirstRange): Add ASSERT.
(WebCore::FontRanges::isLoading): Update to use the new FontAccessor.
- platform/graphics/FontRanges.h: Ditto.
(WebCore::FontRanges::Range::Range):
(WebCore::FontRanges::Range::fontAccessor):
(WebCore::FontRanges::appendRange):
(WebCore::FontRanges::Range::font): Deleted.
- platform/graphics/FontSelector.h: The virtual base class of FontAccessor. This is
necessary because it must be shared between platform code and non-platform code.
(WebCore::FontAccessor::~FontAccessor):
LayoutTests:
- fast/text/unicode-range-download-expected.txt: Added.
- fast/text/unicode-range-download.html: Added.
- fast/text/resources/unicode-range-download-Ahem.otf: Added.
- fast/text/resources/unicode-range-download-Ahem.ttf: Added.
- fast/text/resources/unicode-range-download-Ahem.woff: Added.
- imported/blink/svg/custom/resources/graffiti.svg: Added.
imported/blink/svg/custom/svg-fonts-unloaded-segment.html requires this font.
- 5:02 PM Changeset in webkit [200600] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Remove Global Breakpoints folder
https://bugs.webkit.org/show_bug.cgi?id=157478
<rdar://problem/26176524>
Reviewed by Timothy Hatcher.
- Localizations/en.lproj/localizedStrings.js:
Remove UI string.
- UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineContextMenuTreeElement):
(WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
Remove references to folder tree element.
(WebInspector.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements.isSpecialBreakpoint):
(WebInspector.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements):
Top level comparison should check for "special" breakpoints.
- 5:00 PM Changeset in webkit [200599] by
-
- 2 edits in trunk/Source/WebKit/mac
[WebKit1] Invoking a link preview on a complex link (e.g. an image) results in an empty TextIndicator
https://bugs.webkit.org/show_bug.cgi?id=157497
<rdar://problem/25872773>
Reviewed by Anders Carlsson.
- WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController _defaultAnimationController]):
r198578 fixed this for WebKit2, but forgot about WebKit1.
- 4:59 PM Changeset in webkit [200598] by
-
- 3 edits in trunk/Source/WebCore
Modern IDB: Prevent the same transaction from being commited/aborted twice.
https://bugs.webkit.org/show_bug.cgi?id=157494
Reviewed by Tim Horton.
When a page navigates or a worker terminates, in rare cases with specific unfortunate timing, the IDBServer
might receive a request to commit/abort a transaction that is already in the process of committing/aborting.
By moving transactions that are finishing into their own map we can at least detect this situation and
return an error. This seems like an improvement over some mysterious ASSERTs/timeouts.
No new tests:
While apparent that this is at least partially to blame for some existing timeouts/ASSERTs, I could not nail
down a reliable way to reproduce this with a dedicated test.
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::~UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentDeleteOperation):
(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::prepareToFinishTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformCommitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformAbortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::hasUnfinishedTransactions):
(WebCore::IDBServer::UniqueIDBDatabase::operationAndTransactionTimerFired):
(WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::transactionCompleted): Renamed from inProgressTransactionCompleted.
(WebCore::IDBServer::UniqueIDBDatabase::inProgressTransactionCompleted): Deleted.
- Modules/indexeddb/server/UniqueIDBDatabase.h:
- 4:51 PM Changeset in webkit [200597] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
CallObjectConstructor should not call operationToThis in the FTL
https://bugs.webkit.org/show_bug.cgi?id=157492
<rdar://problem/26149904>
Reviewed by Mark Lam.
At some point when I was working on intrinsifying the Object
constructor, I realized that the Object constructor was different
from the ToObject operation. I fixed the DFG but I guess I didn't
fix the FTL.
This patch fixes an issue with www.wunderground.com not loading
the 10-day forecast and local map.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCallObjectConstructor):
- tests/stress/call-object-constructor.js: Added.
(test):
(assert):
- 4:48 PM Changeset in webkit [200596] by
-
- 3 edits2 adds in trunk/Source/WebCore
Draw border and correct icon for placeholder attachments
https://bugs.webkit.org/show_bug.cgi?id=157495
rdar://problem/19982510
Reviewed by Anders Carlsson.
- Resources/AttachmentPlaceholder.png: Added.
- Resources/AttachmentPlaceholder@2x.png: Added.
- WebCore.xcodeproj/project.pbxproj:
- rendering/RenderThemeMac.mm:
(WebCore::attachmentPlaceholderBorderColor):
(WebCore::paintAttachmentIconPlaceholder):
(WebCore::paintAttachmentProgress):
(WebCore::paintAttachmentPlaceholderBorder):
(WebCore::RenderThemeMac::paintAttachment):
If progress is set, but set to 0, draw a dashed border around the attachment
and use the placeholder "download" artwork.
- 3:50 PM Changeset in webkit [200595] by
-
- 5 edits in trunk/Source
Introduce WebVideoFullscreenInterfaceMac::isPlayingVideoInEnhancedFullscreen() and use it in WebVideoFullscreenManagerProxy::isPlayingVideoInEnhancedFullscreen()
https://bugs.webkit.org/show_bug.cgi?id=157493
Reviewed by Dan Bernstein.
Source/WebCore:
- platform/mac/WebVideoFullscreenInterfaceMac.h:
- platform/mac/WebVideoFullscreenInterfaceMac.mm:
(WebCore::WebVideoFullscreenInterfaceMac::isPlayingVideoInEnhancedFullscreen):
Source/WebKit2:
- UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::isPlayingVideoInEnhancedFullscreen):
- 3:01 PM Changeset in webkit [200594] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Heap Snapshot Timeline view can be live
https://bugs.webkit.org/show_bug.cgi?id=157487
<rdar://problem/26178439>
Reviewed by Joseph Pecoraro.
- UserInterface/Views/HeapAllocationsTimelineView.js:
(WebInspector.HeapAllocationsTimelineView.prototype.get showsLiveRecordingData): Deleted.
Don't override, should return true.
- 2:57 PM Changeset in webkit [200593] by
-
- 6 edits in trunk/Source/WebCore
Clean up iOS text autosizing code
https://bugs.webkit.org/show_bug.cgi?id=157489
Reviewed by Zalan Bujtas.
Change the TraverseNextInclusionFunction and HeightTypeTraverseNextInclusionFunction
to take references.
Use downcast<> more.
Whitespace cleanup.
- rendering/RenderBlockFlow.cpp:
(WebCore::isNonBlocksOrNonFixedHeightListItems):
- rendering/RenderElement.cpp:
(WebCore::includeNonFixedHeight):
- rendering/RenderObject.cpp:
(WebCore::RenderObject::traverseNext):
- rendering/RenderObject.h:
- rendering/TextAutoSizing.cpp:
(WebCore::TextAutoSizingValue::adjustNodeSizes):
(WebCore::TextAutoSizingValue::reset):
- 2:53 PM Changeset in webkit [200592] by
-
- 7 edits in trunk/Source/WebKit2
Add WKPageRef SPI to tell whether there's a video playing in enhanced fullscreen
https://bugs.webkit.org/show_bug.cgi?id=157434
Reviewed by Darin Adler.
- UIProcess/API/C/mac/WKPagePrivateMac.h:
- UIProcess/API/C/mac/WKPagePrivateMac.mm:
(WKPageIsPlayingVideoInEnhancedFullscreen):
- UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
- UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::isPlayingVideoInEnhancedFullscreen):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::isPlayingVideoInEnhancedFullscreen):
- UIProcess/WebPageProxy.h:
- 1:41 PM Changeset in webkit [200591] by
-
- 11 edits2 copies1 add in trunk/Source
Add injected bundle SPI for getting favicon and touch icon URLs
https://bugs.webkit.org/show_bug.cgi?id=157435
Reviewed by Darin Adler.
Source/WebCore:
- CMakeLists.txt:
Add new files.
- WebCore.xcodeproj/project.pbxproj:
Add new files.
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::iconType):
- html/HTMLLinkElement.h:
Rename LinkRelAttribute::IconType to LinkIconType.
- html/LinkIconCollector.cpp: Added.
(WebCore::iconSize):
New helper function that returns the icon size for an icon.
(WebCore::compareIcons):
Icon comparison function, to be used by for sorting.
(LinkIconCollector::iconsOfTypes):
Gather the right icons, sort them (descending by size) and return them.
- html/LinkIconCollector.h:
Added.
- html/LinkIconType.h:
Move icon type declarations here and arrange them so we can use them in an OptionSet.
- html/LinkRelAttribute.cpp:
(WebCore::LinkRelAttribute::LinkRelAttribute):
- html/LinkRelAttribute.h:
- loader/icon/IconController.cpp:
(WebCore::iconFromLinkElements):
Rename IconType to LinkIconType.
Source/WebKit2:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(collectIcons):
New helper function that calls into the WebCore LinkCollector.
(-[WKWebProcessPlugInFrame appleTouchIconURLs]):
Call collectIcons.
(-[WKWebProcessPlugInFrame faviconURLs]):
Ditto.
- 1:22 PM Changeset in webkit [200590] by
-
- 5 edits2 moves in trunk
Remove testRunner.setTextAutosizingEnabled and migrate the one test that uses it
https://bugs.webkit.org/show_bug.cgi?id=157480
Reviewed by Zalan Bujtas.
Migrate the one test that used testRunner.setTextAutosizingEnabled() to window.internals.settings.setTextAutosizingEnabled()
and move it next to the other iOS text autosizing tests.
Tools:
Remove testRunner.setTextAutosizingEnabled(), which was only implemented in DumpRenderTree.
- DumpRenderTree/TestRunner.cpp:
(setTextAutosizingEnabledCallback): Deleted.
(TestRunner::staticFunctions): Deleted.
- DumpRenderTree/mac/TestRunnerMac.mm:
(TestRunner::setTextAutosizingEnabled): Deleted.
LayoutTests:
- fast/text-autosizing/ios/textarea-auto-sizing-disable-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/fast/html/textarea-auto-sizing-disable-expected.txt.
- fast/text-autosizing/ios/textarea-auto-sizing-disable.html: Renamed from LayoutTests/platform/ios-simulator/ios/fast/html/textarea-auto-sizing-disable.html.
- platform/ios-simulator/TestExpectations:
- 1:22 PM Changeset in webkit [200589] by
-
- 1 edit25 adds in trunk/LayoutTests
Upstream some iOS text autosizing tests.
- fast/text-autosizing/ios/anonymous-block.html: Added.
- fast/text-autosizing/ios/contenteditable.html: Added.
- fast/text-autosizing/ios/first-letter.html: Added.
- fast/text-autosizing/ios/font-family-case-insensitive-expected.txt: Added.
- fast/text-autosizing/ios/font-family-case-insensitive.html: Added.
- fast/text-autosizing/ios/lists.html: Added.
- fast/text-autosizing/ios/overflow.html: Added.
- fast/text-autosizing/ios/percent-adjust-length-line-height-expected.txt: Added.
- fast/text-autosizing/ios/percent-adjust-length-line-height.html: Added.
- fast/text-autosizing/ios/percent-adjust-number-line-height-expected.txt: Added.
- fast/text-autosizing/ios/percent-adjust-number-line-height.html: Added.
- fast/text-autosizing/ios/percent-adjust-percent-line-height-expected.txt: Added.
- fast/text-autosizing/ios/percent-adjust-percent-line-height.html: Added.
- platform/ios-simulator/fast/text-autosizing/ios/anonymous-block-expected.txt: Added.
- platform/ios-simulator/fast/text-autosizing/ios/contenteditable-expected.txt: Added.
- platform/ios-simulator/fast/text-autosizing/ios/first-letter-expected.txt: Added.
- platform/ios-simulator/fast/text-autosizing/ios/lists-expected.txt: Added.
- platform/ios-simulator/fast/text-autosizing/ios/overflow-expected.txt: Added.
- platform/mac/fast/text-autosizing/ios/anonymous-block-expected.txt: Added.
- platform/mac/fast/text-autosizing/ios/contenteditable-expected.txt: Added.
- platform/mac/fast/text-autosizing/ios/first-letter-expected.txt: Added.
- platform/mac/fast/text-autosizing/ios/lists-expected.txt: Added.
- platform/mac/fast/text-autosizing/ios/overflow-expected.txt: Added.
- 1:22 PM Changeset in webkit [200588] by
-
- 8 edits2 adds in trunk
[iOS WK2] Font size increases on some pages after navigating then going back
https://bugs.webkit.org/show_bug.cgi?id=157441
rdar://problem/22873240
Reviewed by Darin Adler.
Source/WebCore:
Sometimes I want to dump ViewportConfigurations from WebKit2 so export dump().
Test: fast/text-autosizing/ios/text-autosizing-after-back.html
- page/ViewportConfiguration.h:
Source/WebKit2:
There's an ordering dependency between setting the viewport configuration and doing
layouts when going back to a page from the page cache that is incorrectly handled.
In FrameLoader::commitProvisionalLoad(), CachedPage::restore() triggers a layout under
updateContentsSize(), but this happens before dispatchDidCommitLoad() which updates
the viewport arguments via ViewportConfiguration::setViewportArguments().
This issue is not addressed by the current commit. But a second problem is:
if the inputs to text autosizing change, we need to invalidate the autosizing state.
The relevant input here is the fixed layout width (which is determined from the viewport
configuration).
The current code invalidated text autosizing when m_viewportConfiguration.minimumLayoutSize()
changed, but the correct behavior is to invalidate based on fixed layout size changing.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::sendViewportAttributesChanged):
(WebKit::WebPage::setFixedLayoutSize):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::resetTextAutosizing):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::viewportConfigurationChanged):
(WebKit::WebPage::setViewportConfigurationMinimumLayoutSize): Deleted.
(WebKit::WebPage::resetTextAutosizingBeforeLayoutIfNeeded): Deleted.
LayoutTests:
- fast/text-autosizing/ios/text-autosizing-after-back-expected.html: Added.
- fast/text-autosizing/ios/text-autosizing-after-back.html: Added.
- 1:18 PM Changeset in webkit [200587] by
-
- 2 edits in trunk/Source/WebCore
"Main content" restrictions should not apply to media documents
https://bugs.webkit.org/show_bug.cgi?id=157479
<rdar://problem/25840861>
Reviewed by Jer Noble.
No new tests, this change only applies to media documents in a top level document so it
isn't possible to have a layout test.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Don't apply restrictions to a media document.
- 1:17 PM Changeset in webkit [200586] by
-
- 35 edits3 adds in trunk/Source/JavaScriptCore
Getter and setter on super are called with wrong "this" object
https://bugs.webkit.org/show_bug.cgi?id=147064
<rdar://problem/21885916>
Reviewed by Filip Pizlo.
This patch implements calls to 'super' getters and setters.
The problem before is we were passing the 'super' (i.e, the prototype
object) as the this value to these getters/setters, which is wrong.
We should be passing the caller's this value.
To implement this behavior, I've introduced four new opcodes and their corresponding DFG nodes:
- op_get_by_id_with_this | GetByIdWithThis
- op_put_by_id_with_this | PutByIdWithThis
- op_get_by_val_with_this | GetByValWithThis
- op_put_by_val_with_this | PutByValWithThis
These are implemented with no optimizations. The future plan is
to unite them with the *by_id and *by_val opcodes and nodes:
https://bugs.webkit.org/show_bug.cgi?id=157215
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitGetById):
(JSC::BytecodeGenerator::emitPutById):
(JSC::BytecodeGenerator::emitDirectPutById):
(JSC::BytecodeGenerator::emitGetByVal):
(JSC::BytecodeGenerator::emitPutByVal):
(JSC::BytecodeGenerator::emitDirectPutByVal):
(JSC::BytecodeGenerator::emitLoadDerivedConstructorFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::ensureThis):
(JSC::BytecodeGenerator::isThisUsedInInnerArrowFunction):
- bytecompiler/BytecodeGenerator.h:
- bytecompiler/NodesCodegen.cpp:
(JSC::ThisNode::emitBytecode):
(JSC::emitHomeObjectForCallee):
(JSC::emitSuperBaseForCallee):
(JSC::emitGetSuperFunctionForConstruct):
(JSC::SuperNode::emitBytecode):
(JSC::NewTargetNode::emitBytecode):
(JSC::TaggedTemplateNode::emitBytecode):
(JSC::BracketAccessorNode::emitBytecode):
(JSC::DotAccessorNode::emitBytecode):
(JSC::FunctionCallValueNode::emitBytecode):
(JSC::FunctionCallBracketNode::emitBytecode):
(JSC::FunctionCallDotNode::emitBytecode):
(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
(JSC::PostfixNode::emitBracket):
(JSC::PostfixNode::emitDot):
(JSC::PrefixNode::emitBracket):
(JSC::PrefixNode::emitDot):
(JSC::AssignDotNode::emitBytecode):
(JSC::ReadModifyDotNode::emitBytecode):
(JSC::AssignBracketNode::emitBytecode):
(JSC::ReadModifyBracketNode::emitBytecode):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::AssignmentElementNode::bindValue):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNode.h:
(JSC::DFG::Node::hasIdentifier):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
(JSC::DFG::newTypedArrayWithSize):
(JSC::DFG::putWithThis):
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByValWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByValWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutById):
- jit/CCallHelpers.cpp:
(JSC::CCallHelpers::setupShadowChickenPacket):
(JSC::CCallHelpers::setupFourStubArgsGPR):
- jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsWithExecState):
(JSC::CCallHelpers::setupThreeStubArgsGPR):
(JSC::CCallHelpers::setupTwoStubArgsFPR):
(JSC::CCallHelpers::setupStubArguments134):
- jit/GPRInfo.h:
(JSC::argumentRegisterFor): Deleted.
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
- jit/JIT.h:
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_put_by_val_with_this):
(JSC::JIT::emitGenericContiguousPutByVal):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_get_by_val_with_this):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emit_op_put_by_id_with_this):
(JSC::JIT::emitSlow_op_put_by_id):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_put_to_arguments):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_get_by_val_with_this):
(JSC::JIT::emit_op_put_by_id_with_this):
(JSC::JIT::emit_op_put_by_val_with_this):
- llint/LowLevelInterpreter.asm:
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/CommonSlowPaths.h:
- tests/stress/super-property-access-exceptions.js: Added.
(assert):
(test):
(test.fooProp):
(test.A.prototype.get foo):
(test.A.prototype.get x):
(test.A):
(test.B):
(test.B.prototype.bar):
(test.B.prototype.baz):
(test.foo):
(test.func):
(test.A.prototype.set foo):
- tests/stress/super-property-access-tdz.js: Added.
(assert):
(test):
(shouldThrowTDZ):
(test.A.prototype.get foo):
(test.A.prototype.set foo):
(test.A):
(test.fooProp):
(test.B):
(test.C):
(test.D):
(test.E):
(test.F):
- tests/stress/super-property-access.js: Added.
(assert):
(test):
(func):
(test.A):
(test.A.prototype.set value):
(test.A.prototype.get value):
(test.B.prototype.set value):
(test.B.prototype.get value):
(test.B):
(test.value):
(test.A.prototype.get func):
(test.B.prototype.inc):
(test.B.prototype.dec):
(test.B.prototype.preInc):
(test.B.prototype.preDec):
(test.B.prototype.plusEq):
(test.B.prototype.minusEq):
(test.B.prototype.timesEq):
(test.B.prototype.divEq):
(test.B.prototype.funcDot):
(test.B.prototype.funcBracket):
(test.foo):
(test.B.prototype.baz):
(test.B.prototype.jaz):
(test.B.prototype.bar):
(test.B.prototype.index):
(test.):
(test.prototype.bar):
(test.A.prototype.set foo):
(test.A.prototype.get array):
(test.A.prototype.get foo):
(test.obj):
(test.A.prototype.get call):
(test.A.prototype.get apply):
(test.B.prototype.foo):
(test.A.prototype.get i):
- 1:10 PM Changeset in webkit [200585] by
-
- 4 edits in trunk/LayoutTests
Rebaseline failing LayoutTests after r200580
Unreviewed test gardening.
- fast/xmlhttprequest/xmlhttprequest-get-expected.txt:
- http/tests/workers/worker-importScriptsOnError-expected.txt:
- inspector/model/remote-object-get-properties-expected.txt:
- 1:07 PM Changeset in webkit [200584] by
-
- 2 edits in trunk/Source/WebCore
Update Picture-in-picture artwork
https://bugs.webkit.org/show_bug.cgi?id=157484
<rdar://problem/26177784>
Reviewed by Eric Carlson.
We have new artwork for the picture-in-picture presentation mode. I
also converted it to use SVG (and moved the button style to a
more consistent part of the file).
- Modules/mediacontrols/mediaControlsApple.css:
(video::-webkit-media-controls-panel .picture-in-picture-button):
(video::-webkit-media-controls-panel .picture-in-picture-button.return-from-picture-in-picture):
(video::-webkit-media-controls-panel .picture-in-picture-button:active):
(video::-webkit-media-controls-panel .picture-in-picture-button.return-from-picture-in-picture:active):
- 12:46 PM Changeset in webkit [200583] by
-
- 36 edits in trunk
Optimize [StrictTypeChecking] on IDL operations
https://bugs.webkit.org/show_bug.cgi?id=157467
Reviewed by Darin Adler.
Source/WebCore:
Optimize [StrictTypeChecking] on IDL operations so that:
- Only generate extra code for nullable parameters because for non-nullable parameters, JSXXX::toWrapped() will return null in case of a bad input type. We will then throw a TypeError when null-checking it already.
- After the JSValue::isNullOrUndefined() check, avoid calling JSXXX::toWrapped() and set nativeValue to nullptr directly.
- Drop the check for JSValue::inherits(JSXXX::info()) and just do a null check on the value returned by JSXXX::toWrapped(). toWrapped() already does a JSValue::inherits(JSXXX::info() check. Since we only call toWrapped() if the JSValue is not null/undefined, a null return value always indicates a bad input type.
Also update the TypeError message to be more useful when passing null
for non-nullable parameters or assigning null to a non-nullable
attribute. The message is now consistent with the one used for strict
type checking.
No new tests, rebaselined existing tests.
- bindings/js/JSDOMBinding.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateParametersCheck):
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
- bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::setJSTestInterfaceImplementsNode):
(WebCore::setJSTestInterfaceSupplementalNode):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjTestObjAttr):
(WebCore::setJSTestObjLenientTestObjAttr):
(WebCore::setJSTestObjXMLObjAttr):
(WebCore::setJSTestObjTypedArrayAttr):
(WebCore::setJSTestObjWithScriptExecutionContextAttribute):
(WebCore::setJSTestObjWithScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithXPathNSResolverParameter):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
(WebCore::jsTestObjPrototypeFunctionConvert1):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Promise):
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):
(WebCore::constructJSTestOverloadedConstructors3):
- bindings/scripts/test/TestObj.idl:
LayoutTests:
Rebaseline existing tests now that we provide a more useful exception
message when passing null for a non-nullable parameter and assigning
null to a non-nullable attribute.
- editing/selection/extend-expected.txt:
- fast/dom/Document/adoptNode-null-expected.txt:
- fast/dom/Document/adoptNode-null.html:
- fast/dom/Document/importNode-null-expected.txt:
- fast/dom/Document/importNode-null.html:
- fast/dom/Element/attr-param-typechecking-expected.txt:
- fast/dom/MutationObserver/observe-exceptions-expected.txt:
- fast/dom/NamedNodeMap-setNamedItem-crash-expected.txt:
- fast/dom/Range/range-intersectsNode-expected.txt:
- fast/dom/createNodeIterator-parameters-expected.txt:
- fast/dom/createNodeIterator-parameters.html:
- fast/dom/createTreeWalker-parameters-expected.txt:
- fast/dom/createTreeWalker-parameters.html:
- fast/dom/xmlserializer-serialize-to-string-exception-expected.txt:
- fast/dynamic/insertAdjacentElement-expected.txt:
- fast/mediastream/MediaStream-add-remove-null-undefined-tracks-expected.txt:
- fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt:
- fast/text/font-face-set-javascript-expected.txt:
- fast/text/text-combine-crash-expected.txt:
- media/encrypted-media/encrypted-media-v2-syntax-expected.txt:
- media/encrypted-media/encrypted-media-v2-syntax.html:
- webaudio/createMediaStreamSource-null-expected.txt:
- webaudio/createMediaStreamSource-null.html:
- webaudio/decode-audio-data-basic-expected.txt:
- webaudio/decode-audio-data-basic.html:
- webaudio/mediaelementaudiosourcenode-expected.txt:
- webaudio/mediaelementaudiosourcenode.html:
- 11:05 AM Changeset in webkit [200582] by
-
- 2 edits in trunk/Source/WebCore
Download progress on attachment elements sometimes exceeds element bounds
https://bugs.webkit.org/show_bug.cgi?id=157440
<rdar://problem/25245440>
Reviewed by Darin Adler.
In the case of very large dynamic type sizes, we can overflow the
bounds of the attachment. It turns out that we used to limit to one
line in many cases anyway, so only wrap if we have only a title and/or icon.
This looks better when you have many of the other elements even in
non-large-type modes.
- rendering/RenderThemeIOS.mm:
(WebCore::AttachmentInfo::buildTitleLines):
(WebCore::AttachmentInfo::AttachmentInfo):
Limit the title to a single line if we have anything
other than a title and icon.
(WebCore::attachmentBorderPath):
(WebCore::paintAttachmentBorder):
(WebCore::RenderThemeIOS::paintAttachment):
Clip to the border, so that even if somehow we paint outside of
the bounds, we don't paint over other parts of the page.
- 10:48 AM Changeset in webkit [200581] by
-
- 1 edit2 adds in trunk/LayoutTests
Focusing a shadow host places the slot content after the shadow DOM content
https://bugs.webkit.org/show_bug.cgi?id=154770
<rdar://problem/24873102>
Reviewed by Antti Koivisto.
Add a regression test now that the bug has been fixed.
- fast/shadow-dom/shadow-layout-after-focus-expected.html: Added.
- fast/shadow-dom/shadow-layout-after-focus.html: Added.
- 10:47 AM Changeset in webkit [200580] by
-
- 8 edits in trunk
REGRESSION (198056): Unable to use edit buttons on WordPress
https://bugs.webkit.org/show_bug.cgi?id=157475
Reviewed by Antti Koivisto.
Source/WebCore:
Renamed Event.prototype.deepPath() to composedPath() per discussions on
https://github.com/whatwg/dom/issues/242 as the old name was not Web compatible.
Test: fast/shadow-dom/Extensions-to-Event-Interface.html
- dom/Event.cpp:
(WebCore::Event::composedPath): Renamed from deepPath.
- dom/Event.h:
- dom/Event.idl:
LayoutTests:
Updated the tests.
- fast/shadow-dom/Extensions-to-Event-Interface-expected.txt:
- fast/shadow-dom/Extensions-to-Event-Interface.html:
- fast/shadow-dom/resources/event-path-test-helpers.js:
(dispatchEventWithLog):
- 10:32 AM Changeset in webkit [200579] by
-
- 2 edits in trunk/LayoutTests
Removing timeout and adding failure expectation for storage/indexeddb/intversion-open-in-upgradeneeded.html
https://bugs.webkit.org/show_bug.cgi?id=155050
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 9:54 AM Changeset in webkit [200578] by
-
- 9 edits in trunk/Source
Don't use DiskCache for media resource loads
https://bugs.webkit.org/show_bug.cgi?id=157405
Patch by Alex Christensen <achristensen@webkit.org> on 2016-05-09
Reviewed by Darin Adler.
Source/WebCore:
http/tests/security/video-cross-origin-caching.html was loading from the disk cache.
This patch adds an assertion that fires in that test without this fix.
- loader/MediaResourceLoader.cpp:
(WebCore::MediaResourceLoader::requestResource):
- platform/graphics/PlatformMediaResourceLoader.h:
- platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::hiddenFromInspector):
(WebCore::ResourceRequestBase::setHiddenFromInspector):
(WebCore::ResourceRequestBase::requester):
(WebCore::ResourceRequestBase::setRequester):
- platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSessionDataTask _restart]):
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:]):
Source/WebKit2:
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::makeRetrieveDecision):
(WebKit::NetworkCache::makeStoreDecision):
- NetworkProcess/cache/NetworkCache.h:
- NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::retrieveDecisionToDiagnosticKey):
- 9:28 AM Changeset in webkit [200577] by
-
- 2 edits in trunk/Source/WebKit/win
[wincairo] web inspector failed to launch in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=156184
<rdar://problem/25539297>
Patch by Fujii Hironori <Fujii Hironori> on 2016-05-09
Reviewed by Alex Christensen.
- WebCoreSupport/WebInspectorClient.cpp:
(WebInspectorClient::openLocalFrontend): Enable
AllowFileAccessFromFileURLs and AllowUniversalAccessFromFileURLs
of WebPreferences for Web Inspector.
- 9:20 AM Changeset in webkit [200576] by
-
- 3 edits in trunk/Source/WebCore
Refactor FocusController::findFocusableElementRecursively
https://bugs.webkit.org/show_bug.cgi?id=157415
Reviewed by Darin Adler.
Refactor FocusController::findFocusableElementRecursively and related functions. Extracted two functions:
nextFocusableElementWithinScope and previousFocusableElementWithinScope out of it since they didn't really share
any code other than calling findFocusableElement at the beginning.
Also renamed internal variant of nextFocusableElement and previousFocusableElement to nextFocusableElementOrScopeOwner
and previousFocusableElementOrScopeOwner. It was confusing to have these internal functions in addition to public
member functions that are used in Objective-C DOM API.
No new tests are added since there should be no behavioral change.
- page/FocusController.cpp:
(WebCore::FocusController::findFocusableElementDescendingDownIntoFrameDocument): Added a FIXME.
(WebCore::FocusController::advanceFocusInDocumentOrder): Use findFocusableElementAcrossFocusScope instead of manually
calling findFocusableElementRecursively and findFocusableElementDescendingDownIntoFrameDocument separately.
(WebCore::FocusController::findFocusableElementAcrossFocusScope): Now that findFocusableElementWithinScope calls
findFocusableElementDescendingDownIntoFrameDocument internally, there is no need to keep around "found" local variable.
Introduce a few early exists for a better clarity.
(WebCore::FocusController::findFocusableElementWithinScope): Renamed from findFocusableElementRecursively. Also call
findFocusableElementDescendingDownIntoFrameDocument here instead of findFocusableElementAcrossFocusScope.
(WebCore::FocusController::nextFocusableElementWithinScope): Extracted from findFocusableElementRecursively.
(WebCore::FocusController::previousFocusableElementWithinScope): Ditto.
(WebCore::FocusController::findFocusableElement):
(WebCore::FocusController::nextFocusableElement): Added a FIXME.
(WebCore::FocusController::previousFocusableElement): Ditto.
(WebCore::FocusController::findFocusableElementOrScopeOwner): Renamed from findFocusableElement for clarity.
(WebCore::FocusController::nextFocusableElementOrScopeOwner): Ditto from nextFocusableElement.
(WebCore::FocusController::previousFocusableElementOrScopeOwner): Ditto from nextFocusableElement.
- page/FocusController.h:
- 9:09 AM Changeset in webkit [200575] by
-
- 2 edits in trunk/Source/WebInspectorUI
[css-grid] Update Grid Layout properties in CSSKeywordCompletions.js
https://bugs.webkit.org/show_bug.cgi?id=157166
Reviewed by Timothy Hatcher.
The CSS Grid Layout properties have been changing on the spec,
however they haven't been updated in CSSKeywordCompletions for a long time.
Update them using the last spec draft:
https://drafts.csswg.org/css-grid/#property-index
- UserInterface/Models/CSSKeywordCompletions.js:
- 8:16 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 7:59 AM Changeset in webkit [200574] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Cleanup issue tree elements in the Debugger sidebar
https://bugs.webkit.org/show_bug.cgi?id=157469
<rdar://problem/26162999>
Reviewed by Timothy Hatcher.
- UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._addIssue):
Don't add duplicate issue tree elements.
(WebInspector.DebuggerSidebarPanel.prototype._handleIssuesCleared):
Remove issues from the correct tree outline.
- UserInterface/Views/IssueTreeElement.css:
(.issue .icon):
(.issue.warning .icon):
(.issue.error .icon):
Match dashboard icons.
- 7:52 AM Changeset in webkit [200573] by
-
- 12 edits1 copy in trunk/Source/WebInspectorUI
Web Inspector: Show in progress message in Timeline views that do not show data until the recording finishes
https://bugs.webkit.org/show_bug.cgi?id=156761
<rdar://problem/25970771>
Reviewed by Timothy Hatcher.
- Localizations/en.lproj/localizedStrings.js:
New UI strings.
- UserInterface/Main.html:
New view class.
- UserInterface/Views/HeapAllocationsTimelineView.js:
(WebInspector.HeapAllocationsTimelineView.prototype.get showsLiveRecordingData):
- UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype.get showsLiveRecordingData):
- UserInterface/Views/ScriptDetailsTimelineView.js:
(WebInspector.ScriptDetailsTimelineView.prototype.get showsLiveRecordingData):
- UserInterface/Views/ScriptProfileTimelineView.js:
(WebInspector.ScriptProfileTimelineView.prototype.get showsLiveRecordingData):
Don't show live recording data.
- UserInterface/Views/ScriptClusterTimelineView.js:
(WebInspector.ScriptClusterTimelineView.prototype.get showsLiveRecordingData):
Forward property to current child TimelineView.
- UserInterface/Views/TimelineRecordingContentView.css:
(.content-view.timeline-recording > .content-browser .recording-progress):
(.content-view.timeline-recording > .content-browser .recording-progress > .status):
(.content-view.timeline-recording > .content-browser .recording-progress > .status > .indeterminate-progress-spinner):
New progress view styles.
- UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
(WebInspector.TimelineRecordingContentView.prototype._capturingStopped):
Refresh progress view visibility.
(WebInspector.TimelineRecordingContentView.prototype._updateProgressView):
Show the progress view if we're currently capturing, and showing a view
that doesn't support showing live data.
- UserInterface/Views/TimelineRecordingProgressView.js:
(WebInspector.TimelineRecordingProgressView):
(WebInspector.TimelineRecordingProgressView.prototype.get visible):
(WebInspector.TimelineRecordingProgressView.prototype.set visible):
Show a status message, indeterminate progress spinner, and Stop Recording
button while timeline data is being recorded.
- UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.get showsLiveRecordingData):
Implemented by TimelineViews that don't support showing data while recording.
- UserInterface/Views/Variables.css:
(:root):
Add --panel-background-color-light for the progress view.
- 3:17 AM Changeset in webkit [200572] by
-
- 11 edits in trunk
[css-grid] Fix static position for positioned grid items
https://bugs.webkit.org/show_bug.cgi?id=157417
Reviewed by Darin Adler.
Source/WebCore:
The spec was updated to define properly the static position
for positioned grid items, but we didn't update the implementation yet:
https://drafts.csswg.org/css-grid-1/issues-wd-20150108#issue-1
We were only setting the static position when the start line
was not auto. Otherwise we were using the default one
which includes the padding.
With the spec change we need to set it always,
even if the start line is auto.
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutPositionedObject):
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
LayoutTests:
Updated several tests to follow the new expected behavior.
- fast/css-grid-layout/absolute-positioning-grid-container-containing-block.html:
- fast/css-grid-layout/absolute-positioning-grid-container-parent.html:
- fast/css-grid-layout/grid-positioned-items-gaps-rtl.html:
- fast/css-grid-layout/grid-positioned-items-gaps.html:
- fast/css-grid-layout/grid-positioned-items-implicit-grid-line.html:
- fast/css-grid-layout/grid-positioned-items-implicit-grid.html:
- fast/css-grid-layout/grid-positioned-items-unknown-named-grid-line.html:
- fast/css-grid-layout/grid-sizing-positioned-items.html:
- 1:55 AM Changeset in webkit [200571] by
-
- 3 edits in trunk/LayoutTests
Fix wrong gardening in r200570
Unreviewed EFL gardening.
- TestExpectations: Move selection gap tests to EFL's one.
- platform/efl/TestExpectations:
- 1:51 AM Changeset in webkit [200570] by
-
- 2 edits in trunk/LayoutTests
[EFL] Skip tests of selection gap because EFL port disabled to paint the selection gap
Unreviewed EFL gardening.
May 8, 2016:
- 10:51 PM Changeset in webkit [200569] by
-
- 3 edits in trunk/Source/WebCore
RenderMathMLOperator: refactor management of stretchy data and italic correction
https://bugs.webkit.org/show_bug.cgi?id=156913
Patch by Frederic Wang <fwang@igalia.com> on 2016-05-08
Reviewed by Darin Adler.
No new tests, behavior is not changed.
The stretchy data uses a shared space to describe horizontal / vertical directions and
unstretched / size variant / glyph assembly. We use a simple struct with some unions to
represent it instead of the current implementation with a class.
We also modify the signature of some functions to retrieve display operator and stretchy
data to use that new structure and prepare the move to a separate MathOperator class.
Finally, we introduce some helper functions to easily set the stretchy data.
- rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Use the new data members and
function signatures.
(WebCore::RenderMathMLOperator::setSizeVariant): New helper function to set a size variant.
(WebCore::RenderMathMLOperator::setGlyphAssembly): New helper function to set a glyph
assembly.
(WebCore::RenderMathMLOperator::getGlyphAssemblyFallBack): We change the signature to use a
GlyphAssemblyData.
(WebCore::RenderMathMLOperator::findDisplayStyleLargeOperator): We rename the function and
change its signature to remove the return value. We now also set the italic correction when
a display operator is found.
(WebCore::RenderMathMLOperator::findStretchyData): We change the signature to introduce a
target size and remove the return value. This also does the early return when the base glyph
is large enough.
(WebCore::RenderMathMLOperator::updateStyle): We use the new data members and function
signatures. The check for the base glyph size is now done in findStretchyData, so we just
check whether m_stretchType is Unstretched to do an early return.
(WebCore::RenderMathMLOperator::firstLineBaseline): We use m_stretchType.
(WebCore::RenderMathMLOperator::computeLogicalHeight): Ditto.
(WebCore::RenderMathMLOperator::fillWithVerticalExtensionGlyph): Use the new class members.
(WebCore::RenderMathMLOperator::fillWithHorizontalExtensionGlyph): Ditto.
(WebCore::RenderMathMLOperator::paint): Ditto.
(WebCore::RenderMathMLOperator::paintVerticalGlyphAssembly): Ditto.
(WebCore::RenderMathMLOperator::paintHorizontalGlyphAssembly): Ditto.
(WebCore::RenderMathMLOperator::paintChildren): Ditto.
(WebCore::RenderMathMLOperator::trailingSpaceError): Ditto.
(WebCore::RenderMathMLOperator::italicCorrection): Moved to RenderMathMLOperator.h.
(WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator): Deleted.
- rendering/mathml/RenderMathMLOperator.h:
(WebCore::RenderMathMLOperator::italicCorrection): We just return m_italicCorrection.
(WebCore::RenderMathMLOperator::GlyphAssemblyData::GlyphAssemblyData): New class to store an
assembly of GlyphData.
(WebCore::RenderMathMLOperator::StretchyData::mode): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::variant): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::top): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::extension): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::bottom): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::middle): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::left): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::right): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::setNormalMode): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::setSizeVariantMode): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::setGlyphAssemblyMode): Deleted.
(WebCore::RenderMathMLOperator::StretchyData::StretchyData): Deleted.
- 10:51 PM MathML/Early_2016_Refactoring edited by
- (diff)
- 9:55 PM Changeset in webkit [200568] by
-
- 9 edits2 deletes in trunk/Source
[COCOA] Disable HAVE_DTRACE at build time
https://bugs.webkit.org/show_bug.cgi?id=157433
<rdar://problem/26148841>
Reviewed by Mark Lam.
Source/JavaScriptCore:
Drop DTRACE-related code from JSC since it is very old and seems
unused.
- JavaScriptCore.xcodeproj/project.pbxproj:
- PlatformMac.cmake:
- heap/Heap.cpp:
(JSC::Heap::collectImpl): Deleted.
(JSC::Heap::didFinishCollection): Deleted.
- profiler/ProfileGenerator.cpp:
(JSC::ProfileGenerator::willExecute): Deleted.
(JSC::ProfileGenerator::didExecute): Deleted.
- runtime/Tracing.d: Removed.
- runtime/Tracing.h: Removed.
Source/WTF:
Disable HAVE_DTRACE on COCOA since it is mostly unused and has a performance
impact, at least on iOS.
- wtf/Platform.h:
- 7:37 PM Changeset in webkit [200567] by
-
- 3 edits2 adds in trunk
iOS selection: Use inflow containing block for positioned <br>.
https://bugs.webkit.org/show_bug.cgi?id=157115
<rdar://problem/25969295>
Reviewed by Ryosuke Niwa.
Similarly to RenderText, we should just use the inflow containing block for
selected <br> even when it is positioned out of flow. This visually matches Mac OS X
behaviour (selection painting does not get extended to the positioned <br>).
Source/WebCore:
Test: fast/text/fixed-positioned-br-crash.html
- rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::collectSelectionRects):
LayoutTests:
- fast/text/fixed-positioned-br-crash-expected.txt: Added.
- fast/text/fixed-positioned-br-crash.html: Added.
- 4:57 PM Changeset in webkit [200566] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Add Breakpoints and Scripts folders to Debugger sidebar
https://bugs.webkit.org/show_bug.cgi?id=151119
<rdar://problem/23488916>
Reviewed by Timothy Hatcher.
Add a collapsible Sources section to the Debugger beneath the existing
Breakpoints section.
- UserInterface/Views/DebuggerSidebarPanel.css:
Remove unused CSS class names.
(.sidebar > .panel.navigation.debugger .details-section.scripts:not(.collapsed)):
Hide scripts section bottom border when expanded. As the last
section, a border only adds visual clutter.
(.sidebar > .panel.navigation.debugger .details-section.scripts): Deleted.
(.sidebar > .panel.navigation.debugger.paused .details-section.scripts): Deleted.
(.sidebar > .panel.navigation.debugger .details-section.scripts .header): Deleted.
(.sidebar > .panel.navigation.debugger.paused .details-section.scripts .header): Deleted.
(.sidebar > .panel.navigation.debugger .details-section.scripts.collapsed > .content): Deleted.
(.sidebar > .panel.navigation.debugger.paused .details-section.scripts.collapsed > .content): Deleted.
No longer needed.
- UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
Create separate "Breakpoints" and "Sources" sections, and make filter
placeholder text generic. Remove unused class from breakpoints tree.
(WebInspector.DebuggerSidebarPanel.prototype.treeElementForRepresentedObject):
Check both breakpoint and scripts tree outlines.
(WebInspector.DebuggerSidebarPanel.prototype._addBreakpoint):
(WebInspector.DebuggerSidebarPanel.prototype._addTreeElementForSourceCodeToTreeOutline):
Make helper function generic.
(WebInspector.DebuggerSidebarPanel.prototype._addResource):
(WebInspector.DebuggerSidebarPanel.prototype._mainResourceDidChange):
(WebInspector.DebuggerSidebarPanel.prototype._addScript):
Add resources to the scripts tree.
(WebInspector.DebuggerSidebarPanel.prototype._scriptsCleared):
Clear the scripts tree.
(WebInspector.DebuggerSidebarPanel.prototype._removeDebuggerTreeElement):
Remove script element when last breakpoint is removed.
(WebInspector.DebuggerSidebarPanel.prototype._addIssue):
(WebInspector.DebuggerSidebarPanel.prototype._addTreeElementForSourceCodeToContentTreeOutline): Deleted.
Renamed _addTreeElementForSourceCodeToTreeOutline.
- 4:55 PM Changeset in webkit [200565] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: SourceCodeTextEditor issue widgets/line styles should reset when log is cleared
https://bugs.webkit.org/show_bug.cgi?id=157460
<rdar://problem/26159633>
Reviewed by Timothy Hatcher.
- UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype._logCleared):
Clear issue widgets and CodeMirror line class names when log cleared.
- 4:03 PM Changeset in webkit [200564] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Build fix after r200563
Unreviewed.
- editing/cocoa/HTMLConverter.mm:
(_font):
- 3:54 PM Changeset in webkit [200563] by
-
- 16 edits in trunk/Source
[OS X] Migrate our Font classes entirely off of NSFont
https://bugs.webkit.org/show_bug.cgi?id=157464
Reviewed by Darin Adler.
Source/WebCore:
Because NSFont and CTFont are toll-free-bridged, we don't need NSFont at all anywhere.
No new tests because there is no behavior change.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(accessibilitySearchCriteriaForSearchPredicateParameterizedAttribute):
(textMarkerRangeFromRange):
(visiblePositionForStartOfTextMarkerRange):
(visiblePositionForEndOfTextMarkerRange):
(AXAttributedStringRangeIsValid):
(AXAttributeStringSetFont):
(CreateCGColorIfDifferent):
(AXAttributeStringSetStyle):
(textMarkerRangeFromVisiblePositions):
- bindings/objc/DOM.mm:
(-[DOMElement _font]):
- bindings/objc/DOMPrivate.h:
- editing/cocoa/HTMLConverter.mm:
(_font):
(WebCore::editingAttributedStringFromRange):
- editing/mac/EditorMac.mm:
(WebCore::Editor::fontAttributesForSelectionStart):
- platform/graphics/Font.h:
(WebCore::Font::getCTFont):
(WebCore::Font::getNSFont): Deleted.
- platform/graphics/FontPlatformData.h:
(WebCore::FontPlatformData::nsFont): Deleted.
- platform/graphics/cocoa/FontCocoa.mm:
(WebCore::Font::determinePitch):
(WebCore::advanceForColorBitmapFont):
(WebCore::Font::platformWidthForGlyph):
(WebCore::renderingStyle): Deleted.
- platform/graphics/cocoa/FontPlatformDataCocoa.mm:
Source/WebKit/mac:
- WebCoreSupport/PopupMenuMac.mm:
(PopupMenuMac::populate):
(PopupMenuMac::show):
- WebView/WebHTMLView.mm:
(fontNameForDescription):
(-[WebHTMLView _addToStyle:fontA:fontB:]):
Source/WebKit2:
- WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm:
(WebKit::WebPopupMenu::setUpPlatformData):
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::fontAtSelection):
- 2:56 PM Changeset in webkit [200562] by
-
- 8 edits in trunk/Source
[Bindings] Simplify [RequiresExistingAtomicString] IDL extended attribute handling
https://bugs.webkit.org/show_bug.cgi?id=157465
Reviewed by Darin Adler.
Source/WebCore:
Simplify [RequiresExistingAtomicString] IDL extended attribute handling
in the bindings generator.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
Drop code specific to [RequiresExistingAtomicString].
(JSValueToNative):
Deal with [RequiresExistingAtomicString] IDL extended attribute,
similarly to [AtomicString] and [TreatNullAs].
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/TestObj.idl:
Add bindings test coverage.
- dom/DocumentFragment.cpp:
(WebCore::DocumentFragment::getElementById):
- svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::getElementById):
Add null check for the id parameter. The generated bindings used to do
this null check for us but it is no longer the case (to make the bindings
generator a bit simpler). This extended attribute is not commonly used
and is meant as a micro-optimization for getElementById().
Source/WTF:
Add an AtomicString(RefPtr<AtomicStringImpl>&&) constructor that is now
used by the bindings when [RequiresExistingAtomicString] is used. This
is more efficient than using AtomicString(AtomicStringImpl*) as the
caller has a RefPtr<AtomicStringImpl> and is consistent with the
pre-existing String(RefPtr<AtomicStringImpl>&&) constructor.
- wtf/text/AtomicString.h:
(WTF::AtomicString::AtomicString):
- 12:11 PM Changeset in webkit [200561] by
-
- 2 edits in trunk/Source/WebCore
Roll out: ThreadSanitizer: Data race and thread leak in WebCore::ScrollingThread::createThreadIfNeeded
<https://webkit.org/b/157462>
This reverts commit r200554.
This doesn't fix the data race, and the thread leak is a
separate issue.
- page/scrolling/ScrollingThread.cpp:
(WebCore::ScrollingThread::createThreadIfNeeded): Roll out the
change.
- 12:05 PM Changeset in webkit [200560] by
-
- 2 edits in trunk/Source/WTF
- wtf/text/WTFString.h: Remove pragma once. Not working for some reason.
- 12:00 PM Changeset in webkit [200559] by
-
- 4 edits in trunk/Source
WTF:
Follow-up to that last patch (missed review comments).
- wtf/text/WTFString.h: Use nullptr instead of 0 as needed. Also use pragma once.
WebCore:
Follow-up to that last patch (missed review comments).
- page/EventSource.cpp:
(WebCore::EventSource::parseEventStream): Pre-increment, not post-increment.
(WebCore::EventSource::dispatchMessageEvent): More elegant form without explicit StringView.
- 11:46 AM Changeset in webkit [200558] by
-
- 8 edits in trunk/Source
Change EventSource constructor to take an IDL dictionary instead of a WebCore::Dictionary
https://bugs.webkit.org/show_bug.cgi?id=157459
Reviewed by Chris Dumez.
Source/WebCore:
Patch also includes some updating of EventSource class to modern idioms.
- page/EventSource.cpp:
(WebCore::EventSource::EventSource): Initialize based on Init.
(WebCore::EventSource::create): Take/pass Init instead of Dictionary.
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::serialize): Take a StringView instead of a string
so callers don't have to allocate a String just to use this.
(WebCore::SerializedScriptValue::create): Ditto.
- bindings/js/SerializedScriptValue.h: Ditto.
- page/EventSource.cpp: Changed defaultReconnectDelay to be a uint64_t
instead of an unsigned long long.
(WebCore::EventSource::EventSource): Changed constructor to take a struct
instead of a Dictionary for eventSourceInit. Also moved initialization of
data members to the header and used ASCIILiteral.
(WebCore::EventSource::create): Changed type to Init and streamlined code
a little bit using auto.
(WebCore::EventSource::connect): Used a reference instead of a pointer.
Also added a FIXME since I noticed that m_requestInFlight is probably not
needed, since it's basically the same thing as "is m_loader null".
(WebCore::EventSource::url): Moved to the header and made it inline.
(WebCore::EventSource::networkRequestEnded): Removed unneeded check that
is already done by all callers and turned it into an assertion.
(WebCore::EventSource::withCredentials): Ditto.
(WebCore::EventSource::readyState): Ditto.
(WebCore::EventSource::responseIsValid): Added. Helper function to make
the logic in didReceiveResponse easier to read. Fixed logic to compare
MIME type ignoring ASCII case, since that's how MIME types work.
(WebCore::EventSource::didReceiveResponse): Use the helper above, and also
move the m_eventStreamOrigin set up code into the valid response case,
since there is no point doing it if the response is not valid. Also use
the early return idiom.
(WebCore::EventSource::didReceiveData): Removed the unneeded explicit
conversion to StringView here. Also removed a FIXME that I fixed.
(WebCore::EventSource::didFinishLoading): Added code to flush the decoder
as mentioned in didReceiveData. Added FIXME about peculiar clearing code
that exists only here. Removed check for empty receive buffer and data
that is not needed since parseEventStream does sufficient checking.
(WebCore::EventSource::didFail): Added FIXME because of things that
didFinishLoading does that seem equally valuable here.
(WebCore::EventSource::parseEventStream): Tweaked types and names of local
variables, and changed to use Optional instead of magic number -1. Also
added a FIXME about how the buffer type is probably not right since we
keep moving the characters in the buffer as we consume the start of it.
(WebCore::EventSource::parseEventStreamLine): Refactor and reorganize so
this doesn't do so much string allocation and is easier to read
(WebCore::EventSource::canSuspendForDocumentSuspension): Tweaked comment.
(WebCore::EventSource::dispatchMessageEvent): Renamed this from
createMessageEvent, and moved more code in here. We now don't have to
allocate a temporary string just to pass it to SerializedScriptValue.
- page/EventSource.h: Updated for changes above. Use pragma once.
Define and use EventSource::Init struct. Other small cleanup.
- page/EventSource.idl: Define EventSourceInit dictionary and use it.
Other small cleanup.
- page/EventSource.idl: U
Source/WTF:
- wtf/text/WTFString.h: Export a symbol now used in WebCore.
- 11:35 AM Changeset in webkit [200557] by
-
- 4 edits in trunk/Source/WebCore
Change HTMLSlotElement::assignedNodes to take a IDL dictionary instead of a WebCore::Dictionary
https://bugs.webkit.org/show_bug.cgi?id=157457
Reviewed by Chris Dumez.
- html/HTMLSlotElement.cpp:
(WebCore::HTMLSlotElement::removedFrom): Fixed typo in comment.
(WebCore::HTMLSlotElement::assignedNodes): Renamed assignedNodesForBindings back to this
and changed the argument type to Optional<AssignedNodesOptions> instead of Dictionary.
Also streamlined the logic a bit.
(WebCore::HTMLSlotElement::enqueueSlotChangeEvent): Changed to use a pointer to the
enqueued event instead of a boolean. With only a boolean, we could end up clearing the
flag in cases where we don't really want to.
(WebCore::HTMLSlotElement::dispatchEvent): Ditto.
(WebCore::HTMLSlotElement::assignedNodesForBindings): Deleted.
- html/HTMLSlotElement.h: Use pragma once. Added AssignedNodeOptions. Changed for the
above, including changing the data member.
- html/HTMLSlotElement.idl: Removed use of ImplementedAs. Fixed the type of the options
dictionary.
- 11:29 AM Changeset in webkit [200556] by
-
- 22 edits in trunk/Source/WebCore
[Bindings] Add convert<>() template specializations for integer types
https://bugs.webkit.org/show_bug.cgi?id=157458
Reviewed by Darin Adler.
Add convert<>() template specializations for integer types and use them
in the JS bindings. Also, treat non-32bit types the same way as the
32bit ones, allowing the compiler to optimize out branching based on
the IntegerConversionConfiguration.
- bindings/js/JSCryptoAlgorithmDictionary.cpp:
- bindings/js/JSDOMBinding.cpp:
(WebCore::enforceRange):
(WebCore::toSmallerInt):
(WebCore::toSmallerUInt):
(WebCore::toInt8EnforceRange):
(WebCore::toUInt8EnforceRange):
(WebCore::toInt8Clamp):
(WebCore::toUInt8Clamp):
(WebCore::toInt8):
(WebCore::toUInt8):
(WebCore::toInt16EnforceRange):
(WebCore::toUInt16EnforceRange):
(WebCore::toInt16Clamp):
(WebCore::toUInt16Clamp):
(WebCore::toInt16):
(WebCore::toUInt16):
(WebCore::toInt32EnforceRange):
(WebCore::toInt32Clamp):
(WebCore::toUInt32Clamp):
(WebCore::toUInt32EnforceRange):
(WebCore::toInt64EnforceRange):
(WebCore::toUInt64EnforceRange):
(WebCore::toInt64Clamp):
(WebCore::toUInt64Clamp):
(WebCore::toInt64):
(WebCore::toUInt64):
- bindings/js/JSDOMBinding.h:
- Splt some integer conversion functions into 3 Normal / Clamp / Enforce versions, similarly to what was done for 32bit types already. This is so that these can be called from the inline functions in JSDOMConvert.h, allowing the compiler to optimize out the branches.
- Get rid of some unnecessary state.hadException() checks.
- bindings/js/JSDOMConvert.h:
Add convert<> specializations for integer types.
- bindings/js/JSNodeFilterCustom.cpp:
(WebCore::JSNodeFilter::acceptNode):
- bindings/scripts/CodeGenerator.pm:
- Add utility function to distinguish integer types.
- Have IsNumericType() using the integerType / floatingPointType hashes to avoid duplication.
- Stop int / unsigned int from integer types as those are not in Web IDL and they are not used.
- bindings/scripts/CodeGeneratorJS.pm:
(GetIntegerConversionType):
(JSValueToNative):
Use convert<>() for converting JSValue to integer types.
- bindings/scripts/IDLParser.pm:
Stop allowing int / unsigned int types as those are not in Web IDL.
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
Rebaseline bindings tests.
- 9:54 AM Changeset in webkit [200555] by
-
- 9 edits in trunk
Correct dictionary bindings handling of optional, null, and undefined
https://bugs.webkit.org/show_bug.cgi?id=157463
Reviewed by Chris Dumez.
Source/WebCore:
- bindings/js/JSDOMBinding.cpp:
(WebCore::propertyValue): Deleted.
- bindings/js/JSDOMBinding.h: Deleted propertyValue, not all that helpful for now.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateDictionaryImplementationContent): Added a new early exit for convert to
a dictionary type when the value is undefined or null and all members are either
optional or have a default value. This returns the default values for everything
without raising an exception. Added checking that requires that the dictionary
argument is an object and not a regular expression, since that's also called for
in the latest draft of the Web IDL specification. This ends up speeding up the
code a bit since we now use JSObject::get for properties instead of JSValue::get.
(GenerateParametersCheck): Renamed some local variables. Taught the code that
optional dictionaries all have a default value; before it was doing that for the
type "Dictionary" but not the real dictionary types (IsDictionaryType).
- bindings/scripts/test/JS/JSTestObj.cpp: Regenerated.
- css/FontFace.cpp:
(WebCore::FontFace::create): Changed argument to be Descriptors instead of
Optional<Descriptors>. It would have compiled the other way, but there is now
no caller that will pass a null. Because the IDL dictionary support was new,
this was the only place that was doing it wrong. Good that we "nipped it in the bud"
before doing this in more places.
- css/FontFace.h: Ditto.
LayoutTests:
- fast/dom/MutationObserver/observe-exceptions-expected.txt: Reverted that
change to expect a more specific TypeError just as it was a day ago before
my last patch. The TypeError is back to being a problem with the specifics
of the arguments passed rather than a problem with null and undefined
themselves being invalid.
- 8:22 AM Changeset in webkit [200554] by
-
- 2 edits in trunk/Source/WebCore
ThreadSanitizer: Data race and thread leak in WebCore::ScrollingThread::createThreadIfNeeded
<https://webkit.org/b/157462>
Reviewed by Darin Adler.
Reproduced with multiple existing tests.
- page/scrolling/ScrollingThread.cpp:
(WebCore::ScrollingThread::createThreadIfNeeded): Use a
std::once_flag to initialize Scrolling Thread since this may be
called from background threads.
- 12:11 AM Changeset in webkit [200553] by
-
- 2 edits in trunk/Source/WebCore
Try to fix build without rolling out that last change.
- bindings/js/JSDOMConvert.h:
(WebCore::convert<Vector<String>>): Make this an inline. Just call toNativeArray.