Timeline
May 11, 2016:
- 11:47 PM Changeset in webkit [200744] by
-
- 4 edits1 delete in trunk/Source/WebCore
TextIteratorStopsOnFormControls is never used
https://bugs.webkit.org/show_bug.cgi?id=157609
Reviewed by Alex Christensen.
Removed SurroundingText.cpp and TextIteratorStopsOnFormControls from TextIterator as they're no longer used.
- editing/SurroundingText.cpp: Removed.
- editing/TextIterator.cpp:
(WebCore::TextIterator::advance):
(WebCore::TextIterator::exitNode):
(WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
(WebCore::SimplifiedBackwardsTextIterator::advance):
(WebCore::characterSubrange):
(WebCore::BackwardsCharacterIterator::BackwardsCharacterIterator):
- editing/TextIterator.h:
(WebCore::SimplifiedBackwardsTextIterator::atEnd):
- editing/TextIteratorBehavior.h:
- 11:34 PM Changeset in webkit [200743] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Make sure StringRange is passed to Vector by register
https://bugs.webkit.org/show_bug.cgi?id=157603
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-11
Reviewed by Darin Adler.
This is bizarre, but on my SDK, Vector::append(StringRange)
is passing the values on the stack.
The two integers are written to the stack, the address given
to append(), then append() reads it back and store it.
This patch changes the code to use constructAndAppend(), ensuring
the values are used directly.
On my machine, this helps Sunspider and Octane.
This might be something wrong with my SDK but the fix is so easy
that we might as well do this.
- runtime/StringPrototype.cpp:
(JSC::removeUsingRegExpSearch):
(JSC::replaceUsingRegExpSearch):
- 11:23 PM Changeset in webkit [200742] by
-
- 2 edits in trunk/Source/JavaScriptCore
ARMv7Assembler: suppress a -Wnarrowing warning when compiling with GCC
https://bugs.webkit.org/show_bug.cgi?id=157576
Patch by Zan Dobersek <zdobersek@igalia.com> on 2016-05-11
Reviewed by Csaba Osztrogonác.
- assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::revertJumpTo_movT3movtcmpT2): Explicitly cast the
OP_CMP_reg_T2 | leftvalue to uint16_t, avoiding a narrowing conversion
warning that's being reported when compiling with GCC. The warning is sprung
due to RegisterID (which is the type ofleft) being an enum based on int,
even when the enum itself only declares 23 values.
- 9:35 PM Changeset in webkit [200741] by
-
- 3 edits in trunk/Source/WebCore
Kill Node::ancestorElement()
https://bugs.webkit.org/show_bug.cgi?id=157599
Reviewed by Darin Adler.
Kill Node::ancestorElement() and use Node::parentElement() instead. If
our parent is not an Element then none of our ancestors will be.
- dom/Node.cpp:
(WebCore::Node::isDefaultNamespace):
(WebCore::Node::lookupPrefix):
(WebCore::Node::lookupNamespaceURI):
(WebCore::Node::lookupNamespacePrefix):
(WebCore::Node::convertToPage):
(WebCore::Node::convertFromPage):
(WebCore::Node::ancestorElement): Deleted.
- dom/Node.h:
- 9:32 PM Changeset in webkit [200740] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: 4% of time in TimelineOverviewGraph adding/removing classList styles on TimelineRecordBar
https://bugs.webkit.org/show_bug.cgi?id=157607
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-11
Reviewed by Brian Burg.
This gets us down to about 0.5% of time.
- UserInterface/Views/TimelineRecordBar.js:
(WebInspector.TimelineRecordBar.prototype.set records):
Only modify the classLists when the record changes.
(WebInspector.TimelineRecordBar.prototype.refresh):
Set unfinished once for either the uses active or not uses active cases.
- 8:17 PM Changeset in webkit [200739] by
-
- 1 edit1 delete in branches/safari-601-branch/LayoutTests
- 7:56 PM Changeset in webkit [200738] by
-
- 6 edits in branches/safari-601-branch/Source/WebCore
Merge r198701. rdar://problem/26228577
- 7:13 PM Changeset in webkit [200737] by
-
- 2 edits in trunk/Source/JavaScriptCore
Web Inspector:
thisin Scope Chain Sidebar does not have preview, looks poor
https://bugs.webkit.org/show_bug.cgi?id=157602
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-11
Reviewed by Timothy Hatcher.
- inspector/InjectedScriptSource.js:
(InjectedScript.CallFrameProxy):
Include a preview when creating the RemoteObject forthis.
- 7:09 PM Changeset in webkit [200736] by
-
- 4 edits2 adds in trunk
Absolute positioned element is not placed properly when parent becomes the containing block.
https://bugs.webkit.org/show_bug.cgi?id=157455
<rdar://problem/26212568>
Reviewed by Simon Fraser.
When a container becomes a containing block, we need to check if there are any positioned boxes in its subtree
in order to "re-parent" them. It basically means that we remove them from RenderBlock::positionedDescendants map
and they'll get re-inserted during the next layout correctly.
This patch fixes the case when a container becomes the containing block by setting the transform property and its positioned
child gets misplaced.
Source/WebCore:
Test: fast/block/containing-block-changes.html
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removePositionedObjectsIfNeeded):
(WebCore::RenderBlock::styleWillChange):
- rendering/RenderBlock.h:
LayoutTests:
- fast/block/containing-block-changes-expected.html: Added.
- fast/block/containing-block-changes.html: Added.
- 6:32 PM Changeset in webkit [200735] by
-
- 5 edits in branches/safari-601-branch/Source
Merge r198143. rdar://problem/26228593
- 6:32 PM Changeset in webkit [200734] by
-
- 2 edits1 add in branches/safari-601-branch/Source/JavaScriptCore
Merge r199277. rdar://problem/26228546
- 6:32 PM Changeset in webkit [200733] by
-
- 2 edits in branches/safari-601-branch/Source/WebCore
Merge r199243. rdar://problem/26228520
- 6:31 PM Changeset in webkit [200732] by
-
- 4 edits2 adds in branches/safari-601-branch
Merge r199101. rdar://problem/26228570
- 6:31 PM Changeset in webkit [200731] by
-
- 5 edits in branches/safari-601-branch
Merge r198780. rdar://problem/26228583
- 6:31 PM Changeset in webkit [200730] by
-
- 3 edits3 adds in branches/safari-601-branch
Merge r198050. rdar://problem/26228588
- 6:31 PM Changeset in webkit [200729] by
-
- 3 edits in branches/safari-601-branch/Source/JavaScriptCore
Merge r196524. rdar://problem/26228552
- 6:31 PM Changeset in webkit [200728] by
-
- 3 edits4 adds in branches/safari-601-branch
Merge r195724. rdar://problem/26228611
- 6:31 PM Changeset in webkit [200727] by
-
- 3 edits2 adds in branches/safari-601-branch
Merge r194399. rdar://problem/26228601
- 6:31 PM Changeset in webkit [200726] by
-
- 3 edits2 adds in branches/safari-601-branch
Merge r190820. rdar://problem/26228566
- 6:31 PM Changeset in webkit [200725] by
-
- 2 edits in branches/safari-601-branch/Source/WebCore
Merge r200091. rdar://problem/26228555
- 6:31 PM Changeset in webkit [200724] by
-
- 3 edits in branches/safari-601-branch/Source/WebCore
Merge r194290. rdar://problem/26053735
- 6:31 PM Changeset in webkit [200723] by
-
- 1 edit3 deletes in branches/safari-601-branch/LayoutTests
Merge r200378. rdar://problem/26066673
- 6:31 PM Changeset in webkit [200722] by
-
- 3 edits9 adds in branches/safari-601-branch
Merge r200375. rdar://problem/26066673
- 6:31 PM Changeset in webkit [200721] by
-
- 1 edit1 add in branches/safari-601-branch/LayoutTests
Merge r200376. rdar://problem/25991928
- 6:04 PM Changeset in webkit [200720] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Unexpected unread notification icon next to Log after clearing via clear()
https://bugs.webkit.org/show_bug.cgi?id=157598
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-11
Reviewed by Timothy Hatcher.
We always show ConsoleCommand and ConsoleCommandResult messages no matter
what the filter is. So it doesn't make sense to mark the "log" filter
as having an unread notification for a ConsoleCommandResult when we can
see the result.
- UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
(WebInspector.LogContentView.prototype._markScopeBarItemUnread):
- 5:49 PM Changeset in webkit [200719] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Console unread indicators should be cleared however the console clears
https://bugs.webkit.org/show_bug.cgi?id=157594
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-11
Reviewed by Timothy Hatcher.
- UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._logCleared):
(WebInspector.LogContentView.prototype._clearLog):
Move code that clears unread indicators from clearLog to logCleared
to handle all possible clear cases.
- 5:47 PM Changeset in webkit [200718] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Contents of Duration column are covered by always on (legacy) scroll bars
https://bugs.webkit.org/show_bug.cgi?id=157590
Reviewed by Timothy Hatcher.
- UserInterface/Views/DataGrid.css:
(.data-grid .data-container):
Always show vertical scrollbars.
(.data-grid > .header-wrapper):
(.data-grid > .header-wrapper::-webkit-scrollbar):
Show invisible scrollbar for DataGrid's header to align the header table with the content.
(.data-grid.no-header > .header-wrapper > table.header):
(.data-grid.no-header > table.header): Deleted.
(.data-grid th): Deleted.
- UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid):
overflow-y: scrolldoesn't work on a table element. Wrap table in a div.
- 5:31 PM Changeset in webkit [200717] by
-
- 4 edits in trunk/Source/WebCore
Unreviewed, rolling out r200700, r200703, and r200713.
https://bugs.webkit.org/show_bug.cgi?id=157601
Broke iOS builds (Requested by rniwa on #webkit).
Reverted changesets:
"Touch.prototype is undefined on iOS"
https://bugs.webkit.org/show_bug.cgi?id=157560
http://trac.webkit.org/changeset/200700
"iOS build fix attempt after r200700."
http://trac.webkit.org/changeset/200703
"iOS clean build fix after r200700."
http://trac.webkit.org/changeset/200713
Patch by Commit Queue <commit-queue@webkit.org> on 2016-05-11
- 5:01 PM Changeset in webkit [200716] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Make it possible to do special styling on selected TimelineOverviewGraphs
https://bugs.webkit.org/show_bug.cgi?id=157593
<rdar://problem/26232886>
Reviewed by Timothy Hatcher.
- UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype._timelinesTreeSelectionDidChange.updateGraphSelectedState):
(WebInspector.TimelineOverview.prototype._timelinesTreeSelectionDidChange):
Select the new overview graph and deselect the old one.
- UserInterface/Views/TimelineOverviewGraph.js:
(WebInspector.TimelineOverviewGraph):
(WebInspector.TimelineOverviewGraph.prototype.get selected):
(WebInspector.TimelineOverviewGraph.prototype.set selected):
New property, toggles "selected" class on the graph element.
- 4:36 PM Changeset in webkit [200715] by
-
- 2 edits in trunk/LayoutTests
Add a failing expectation on iOS for the test added in r200712
since there is no support for eventSender on iOS.
- platform/ios-simulator/TestExpectations:
- 4:25 PM Changeset in webkit [200714] by
-
- 1 edit in trunk/Source/JavaScriptCore/ChangeLog
Unreviewed, correct the title of the ChangeLog for r200667.
- 4:03 PM Changeset in webkit [200713] by
-
- 2 edits in trunk/Source/WebCore
iOS clean build fix after r200700.
- bindings/js/JSDOMWindowCustom.cpp:
- 3:42 PM Changeset in webkit [200712] by
-
- 5 edits2 adds in trunk
Moving focus by tab could erroneously focus a non-focusable shadow host
https://bugs.webkit.org/show_bug.cgi?id=157585
Reviewed by Antti Koivisto.
Source/WebCore:
The bug was caused by findFocusableElementDescendingDownIntoFrameDocument erroneously returning a shadow host
that contains a focusable element instead of traversing it through to find a focusable element within. Fixed
the bug calling findFocusableElementWithinScope which traverses shadow trees to find a focusable element unlike
findFocusableElementOrScopeOwner which returns a focusable element or a shadow host.
Also done some refactoring for clarity.
Test: fast/shadow-dom/focus-on-iframe.html
- page/FocusController.cpp:
(WebCore::FocusController::findFocusableElementDescendingDownIntoFrameDocument): See above.
(WebCore::FocusController::findFocusableElementAcrossFocusScope): Declare outerScope as late as possible.
(WebCore::nextElementWithGreaterTabIndex): Merged if conditions for clarity.
(WebCore::previousElementWithLowerTabIndex): Removed the check for isNonFocusableShadowHost since
isFocusableOrHasShadowTreeWithoutCustomFocusLogic returns true whenever isNonFocusableShadowHost returns true.
LayoutTests:
Added a regression test for moving focus across iframes.
Also expanded negative-tabindex-on-shadow-host.html to cover reverse traversal.
- fast/shadow-dom/focus-on-iframe-expected.txt: Added.
- fast/shadow-dom/focus-on-iframe.html: Added.
- fast/shadow-dom/negative-tabindex-on-shadow-host-expected.txt:
- fast/shadow-dom/negative-tabindex-on-shadow-host.html:
- 3:20 PM Changeset in webkit [200711] by
-
- 2 edits in trunk/Source/WebCore
Updating bindings tests results after r200699
Unreviewed test gardening.
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
- 3:11 PM Changeset in webkit [200710] by
-
- 2 edits in trunk/Source/JavaScriptCore
JSC test stress/reflect-set.js failing after 200694
https://bugs.webkit.org/show_bug.cgi?id=157586
Unreviewed test rebaseline.
- tests/stress/reflect-set.js:
Update the expected error message. We are in strict mode, so the
improved error message makes sense.
- 2:55 PM Changeset in webkit [200709] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: "Selected Element" is hard to read when searching for "Element"
https://bugs.webkit.org/show_bug.cgi?id=157542
<rdar://problem/26207464>
Reviewed by Timothy Hatcher.
Change the style of highlighted text to match Xcode.
- UserInterface/Views/LogContentView.css:
(.search-in-progress .console-item:not(.filtered-out-by-search).special-user-log .console-message-text .highlighted):
- UserInterface/Views/OpenResourceDialog.css:
(.open-resource-dialog > .tree-outline .item.selected .highlighted):
- UserInterface/Views/Variables.css:
(:root):
- 2:53 PM Changeset in webkit [200708] by
-
- 7 edits in trunk/Source/WebInspectorUI
Web Inspector: Hide filter bar in TimelineViews where it is not needed or not yet working
https://bugs.webkit.org/show_bug.cgi?id=157583
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-11
Reviewed by Timothy Hatcher.
- UserInterface/Views/HeapAllocationsTimelineView.js:
(WebInspector.HeapAllocationsTimelineView.prototype.get showsFilterBar):
(WebInspector.HeapAllocationsTimelineView.prototype.layout):
(WebInspector.HeapAllocationsTimelineView.prototype.updateFilter):
Filter bar not yet hooked up for HeapSnapshot views.
Make filtering work for the main timeline grid.
It doesn't use the normal TimelineView filter based on selected range.
This is intentional because it may be the case that a snapshot happens
outside the selected time range (via the navigation bar button) and
we want to show it. Otherwise a user might be confused why it is not
showing up in the list.
- UserInterface/Views/MemoryTimelineView.js:
(WebInspector.MemoryTimelineView.prototype.get showsFilterBar):
Filter bar not needed in the Memory timeline view.
- UserInterface/Views/ScriptClusterTimelineView.js:
(WebInspector.ScriptClusterTimelineView.prototype.get showsFilterBar):
Filter bar works for the Events timeline view.
- UserInterface/Views/ScriptProfileTimelineView.js:
(WebInspector.ScriptProfileTimelineView.prototype.get showsFilterBar):
Filter bar not yet hooked up for Profile views.
- UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
(WebInspector.TimelineRecordingContentView.prototype._updateFilterBar):
Update the filter bar when the selection path components change, since
that triggers when arbitrarily deep sub-content-views change.
- UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.get showsFilterBar):
Default is yes.
- 2:51 PM Changeset in webkit [200707] by
-
- 1 edit in trunk/Source/WebKit2/ChangeLog
Fix the ChangeLog.
- 2:49 PM Changeset in webkit [200706] by
-
- 2 edits in trunk/Source/WebKit2
We have two different types of contextual menus in iBooks
https://bugs.webkit.org/show_bug.cgi?id=157587
rdar://problem/25904169
Reviewed by Darin Adler.
- UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::showContextMenu):
- 2:41 PM Changeset in webkit [200705] by
-
- 6 edits in trunk/Source/JavaScriptCore
Beef up JSC profiler event log
https://bugs.webkit.org/show_bug.cgi?id=157584
Reviewed by Saam Barati.
Also log more about compilation.
- bytecode/ExecutionCounter.cpp: Changed the meaning of codeBlock to be the codeBlock that is doing the profiling. This will now get the baseline version if it needs it. This is needed for logging the threshold checking event.
(JSC::applyMemoryUsageHeuristics):
(JSC::ExecutionCounter<countingVariant>::hasCrossedThreshold):
- dfg/DFGJITCode.cpp: Pass the right codeBlock.
(JSC::DFG::JITCode::checkIfOptimizationThresholdReached):
(JSC::DFG::JITCode::optimizeNextInvocation):
(JSC::DFG::JITCode::dontOptimizeAnytimeSoon):
(JSC::DFG::JITCode::optimizeSoon):
(JSC::DFG::JITCode::forceOptimizationSlowPathConcurrently):
- dfg/DFGPlan.cpp: Log things about compile times and whether the compiler succeeded or failed.
(JSC::DFG::Plan::computeCompileTimes):
(JSC::DFG::Plan::reportCompileTimes):
(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::finalizeWithoutNotifyingCallback):
- jit/ExecutableAllocatorFixedVMPool.cpp: Make it possible to look at memory usage, though separately from the log, for now.
(JSC::ExecutableAllocator::allocate):
- runtime/Options.h:
- 2:15 PM Changeset in webkit [200704] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed attempt to fix the Windows build after r200699.
- bindings/js/JSIDBObjectStoreCustom.cpp:
- 2:07 PM Changeset in webkit [200703] by
-
- 2 edits in trunk/Source/WebCore
iOS build fix attempt after r200700.
- bindings/js/ios/TouchConstructors.cpp:
- 1:57 PM Changeset in webkit [200702] by
-
- 9 edits in trunk/Source/WebKit2
Web Automation: add command to asynchronously load the Web Inspector frontend in the background
https://bugs.webkit.org/show_bug.cgi?id=157509
Reviewed by Timothy Hatcher and Joseph Pecoraro.
In order to make it easier to debug code that executes as a result of an automation
command, this patch adds a new Automation command to asynchronously load the debugger
and Inspector frontend. It is designed for use by automation clients to implement an
auto-inspection feature to aid in debugging automation scripts.
- UIProcess/Automation/Automation.json: Add new command.
- UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::inspectBrowsingContext): Added.
(WebKit::WebAutomationSession::inspectorFrontendLoaded): Added.
This message is forwarded by WebInspectorProxy to the inspected page's session.
- UIProcess/Automation/WebAutomationSession.h:
- UIProcess/Cocoa/WebAutomationSessionCocoa.mm:
(WebKit::WebAutomationSession::sendSynthesizedEventsToPage):
Force the active automation window to become key and bring to front prior to
sending each NSEvent. This way, if the Inspector pauses while a command executes,
the automation window will get back focus when the Inspector unpauses just before
the next synthesized mouse or keyboard NSEvent is sent to its NSWindow.
- UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::frontendLoaded):
Forward to the inspected page's session.
- UIProcess/WebInspectorProxy.h:
- UIProcess/WebInspectorProxy.messages.in: Add notification of the frontend's load.
- WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::frontendLoaded):
Kick off notifying the automation session in UIProcess that the inspector loaded.
(WebKit::WebInspectorUI::closeWindow):
In some circumstances, the Web Inspector can be loaded without showing
the window. If this hidden page closes, make sure the frontend host gets
a chance to disconnect its InspectorFrontendClient. Normally this happens
when the window closes, but unshown Inspectors do not get window instances.
- 1:54 PM Changeset in webkit [200701] by
-
- 9 edits in trunk/Source/JavaScriptCore
Air may decide to put the result register of an arithmetic snippet in the tag register
https://bugs.webkit.org/show_bug.cgi?id=157548
Reviewed by Filip Pizlo.
This patch adds a new ValueRep to B3 called LateRegister. The semantics
are similar to Register in that it can be used to pin an argument to
a particular register. It differs from ValueRep::Register in that the semantics of
LateRegister are that it is used after the result of the node its an argument to
is computed. This means that a LateRegister argument will interfere with the result
of a node. LateRegister is not a valid result ValueRep.
This was needed because there was a bug where B3/Air would assign the
result of a patchpoint to the TagTypeNumber register. This broke our
code when we would box a double into a JSValue in a snippet when the
result is the same as the TagTypeNumber register. To fix the issue,
we pass TagMaskRegister and TagTypeNumberRegister as ValueRep::LateRegister
arguments to various patchpoints.
- b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::fillStackmap):
- b3/B3PatchpointSpecial.cpp:
(JSC::B3::PatchpointSpecial::admitsStack):
- b3/B3StackmapSpecial.cpp:
(JSC::B3::StackmapSpecial::forEachArgImpl):
(JSC::B3::StackmapSpecial::isArgValidForRep):
- b3/B3Validate.cpp:
- b3/B3ValueRep.cpp:
(JSC::B3::ValueRep::addUsedRegistersTo):
(JSC::B3::ValueRep::dump):
(JSC::B3::ValueRep::emitRestore):
(JSC::B3::ValueRep::recoveryForJSValue):
(WTF::printInternal):
- b3/B3ValueRep.h:
(JSC::B3::ValueRep::reg):
(JSC::B3::ValueRep::lateReg):
(JSC::B3::ValueRep::stack):
(JSC::B3::ValueRep::operator==):
(JSC::B3::ValueRep::isSomeRegister):
(JSC::B3::ValueRep::isReg):
- b3/testb3.cpp:
(JSC::B3::testSpillUseLargerThanDef):
(JSC::B3::testLateRegister):
(JSC::B3::zero):
(JSC::B3::run):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::lower):
(JSC::FTL::DFG::LowerDFGToB3::compileIn):
(JSC::FTL::DFG::LowerDFGToB3::getById):
(JSC::FTL::DFG::LowerDFGToB3::emitBinarySnippet):
(JSC::FTL::DFG::LowerDFGToB3::emitBinaryBitOpSnippet):
(JSC::FTL::DFG::LowerDFGToB3::emitRightShiftSnippet):
- 1:09 PM Changeset in webkit [200700] by
-
- 3 edits in trunk/Source/WebCore
Touch.prototype is undefined on iOS
https://bugs.webkit.org/show_bug.cgi?id=157560
<rdar://problem/26143008>
Reviewed by Chris Dumez.
Remove Touch and TouchList attributes from DOMWindow.
These attributes should be exposed via generated binding code (JSDOMWindow.cpp).
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::touch): Deleted.
(WebCore::JSDOMWindow::touchList): Deleted.
- page/DOMWindow.idl:
- 1:04 PM Changeset in webkit [200699] by
-
- 24 edits in trunk
Change IDBObjectStore.createIndex to take an IDL dictionary
https://bugs.webkit.org/show_bug.cgi?id=157520
Reviewed by Chris Dumez.
Source/WebCore:
- Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::createObjectStore): Use IDBKeyPath::Type instead of
IndexedDB::KeyPathType.
- Modules/indexeddb/IDBKeyPath.cpp:
(WebCore::IDBKeyPath::IDBKeyPath): Ditto.
(WebCore::IDBKeyPath::isValid): Ditto.
(WebCore::IDBKeyPath::operator==): Ditto.
(WebCore::IDBKeyPath::encode): Ditto.
(WebCore::IDBKeyPath::decode): Ditto.
- Modules/indexeddb/IDBKeyPath.h: Use pragma once. Make constructors non-explicit so
we can just pass a string or vector and have it turn into an IDBKeyPath. Added an enum
class named Type here and use it instead of IndexedDB::KeyPathType.
- Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::openCursor): Remove unneeded local variable.
(WebCore::IDBObjectStore::get): Ditto.
(WebCore::IDBObjectStore::doDelete): Ditto.
(WebCore::IDBObjectStore::createIndex): Changed argument type to take IndexParameters
instead of two seaparate booleans. Also updated to use IDBKeyPath::Type.
- Modules/indexeddb/IDBObjectStore.h: Removed include of IndexedDB, using a forward
decalration instead. Marked the class final. Added an IndexParameters struct and used
it for the argument to createIndex.
- Modules/indexeddb/IDBObjectStore.idl: Stopped using Custom for put, add, and
createIndex functions. Stopped using Dictionary for createIndex, using IDBIndexParameters
instead as in the specification. Added IDBIndexParameters dictionary definition.
- Modules/indexeddb/IndexedDB.h: Use pragma once. Removed KeyPathType.
- bindings/js/IDBBindingUtilities.cpp:
(WebCore::injectIDBKeyIntoScriptValue): Use IDBKeyPath::Type instead of
IndexedDB::KeyPathType.
(WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath): Ditto.
(WebCore::canInjectIDBKeyIntoScriptValue): Ditto.
(WebCore::createKeyPathArray): Ditto.
(WebCore::toJS): Ditto.
- bindings/js/JSIDBObjectStoreCustom.cpp:
(WebCore::putOrAdd): Deleted.
(WebCore::JSIDBObjectStore::putFunction): Deleted.
(WebCore::JSIDBObjectStore::add): Deleted.
(WebCore::JSIDBObjectStore::createIndex): Deleted.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheckExpression): Fixed code that generates a type check for
wrappers to only check types is knows how to check: wrappers and arrays, including
typed arrays. This prevents it from trying to check dictionaries.
- inspector/InspectorIndexedDBAgent.cpp: Use IDBKeyPath::Type instead of
IndexedDB::KeyPathType.
LayoutTests:
- storage/indexeddb/deleteIndex-bug110792-expected.txt: Updated result.
Test is still marked as flaky, but this is the proper expectation now.
Discovered this when I accidentally reset results for the whole directory.
- storage/indexeddb/deleteIndex-bug110792-private-expected.txt: Ditto.
- storage/indexeddb/index-basics-expected.txt: Updated to expect the simpler
type error that is generated by the bindings code as opposed to the hand written
binding. If we want to make this fancier like this for all bindings we can do
that the future in the bindings script.
- storage/indexeddb/index-basics-private-expected.txt: Ditto.
- storage/indexeddb/index-basics-workers-expected.txt: Ditto.
- storage/indexeddb/keypath-basics-expected.txt: Updated for the change that
expects null and undefined the be legal key paths. See below.
- storage/indexeddb/keypath-basics-private-expected.txt: Ditto.
- storage/indexeddb/modern/create-index-failures-expected.txt: Removed
expected results that require that we forbid null for the name and key path.
See below.
- storage/indexeddb/modern/create-index-failures-private-expected.txt: Ditto.
- storage/indexeddb/modern/resources/create-index-failures.js: Removed the test
that expects failure when null is passed for the name and key path. In both
cases, the Web IDL and IDB specifications call for the null value to be converted
to the string "null", not an exception.
- storage/indexeddb/resources/keypath-basics.js:
(prepareDatabase): Added tests for both undefined and null. Both are legal values for
the key path argument to createIndex. The Web IDL and IDB specifications call for
them to be converted to the strings "undefined" and "null", not to trigger exceptions.
(testInvalidKeyPaths): Removed tests that expect exceptions when calling createIndex
with undefined and null.
- 12:59 PM Changeset in webkit [200698] by
-
- 2 edits in trunk/LayoutTests
Rebaseline inspector/dom/getAccessibilityPropertiesForNode.html after r200677
Unreviewed test gardening.
- inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
- 12:58 PM Changeset in webkit [200697] by
-
- 5 edits in trunk
Modern IDB: WebWorker support.
https://bugs.webkit.org/show_bug.cgi?id=149953
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- IndexedDB-private-browsing/idb_webworkers-expected.txt:
- web-platform-tests/IndexedDB/idb_webworkers-expected.txt:
Source/WebCore:
No new tests (Covered by changes to existing tests).
- bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
- 12:02 PM Changeset in webkit [200696] by
-
- 85 edits in trunk
Update Node::appendChild() / replaceChild() / removeChild() / insertBefore() to take references instead of pointers
https://bugs.webkit.org/show_bug.cgi?id=157556
Reviewed by Darin Adler.
Source/WebCore:
Update Node::appendChild() / replaceChild() / removeChild() / insertBefore()
to take references instead of pointers. Do the parameter null checks in the
bindings instead of doing it in the implementation on Node.
Also update the ContainerNode::appendChild() / replaceChild() /
insertBefore() to take C++ references instead of Ref<>&& to avoid
unnecessarily causing ref counting churns at some call sites (including
in the bindings since they are a raw pointer to the nodes). The
implementation on ContainerNode was not actually using WTFMove() on the
Ref<>&& anyway.
- Modules/plugins/YouTubePluginReplacement.cpp:
(WebCore::YouTubePluginReplacement::installReplacement):
- bindings/js/JSNodeCustom.cpp:
(WebCore::JSNode::insertBefore):
(WebCore::JSNode::replaceChild):
(WebCore::JSNode::removeChild):
(WebCore::JSNode::appendChild):
- dom/ContainerNode.cpp:
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::appendChild):
(WebCore::ContainerNode::parserAppendChild):
(WebCore::ContainerNode::cloneChildNodes):
(WebCore::ContainerNode::append):
(WebCore::ContainerNode::prepend):
- dom/ContainerNode.h:
- dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
(WebCore::DOMImplementation::createHTMLDocument):
- dom/Document.cpp:
(WebCore::Document::setBodyOrFrameset):
- dom/Element.cpp:
(WebCore::Element::setOuterHTML):
- dom/Node.cpp:
(WebCore::Node::insertBefore):
(WebCore::Node::replaceChild):
(WebCore::Node::removeChild):
(WebCore::Node::appendChild):
(WebCore::Node::before):
(WebCore::Node::after):
(WebCore::Node::replaceWith):
(WebCore::nodeSetPreTransformedFromNodeOrStringVector): Deleted.
(WebCore::Node::normalize): Deleted.
- dom/Node.h:
- dom/Node.idl:
- dom/NodeOrString.cpp:
(WebCore::convertNodesOrStringsIntoNode):
- dom/Range.cpp:
(WebCore::Range::processContents):
(WebCore::Range::processContentsBetweenOffsets):
(WebCore::Range::processNodes):
(WebCore::Range::processAncestorsAndTheirSiblings):
(WebCore::Range::insertNode):
(WebCore::Range::surroundContents):
- dom/Range.h:
- dom/Text.cpp:
(WebCore::Text::splitText):
- editing/AppendNodeCommand.cpp:
(WebCore::AppendNodeCommand::doApply):
- editing/Editor.cpp:
(WebCore::Editor::setTextAsChildOfElement):
- editing/EditorCommand.cpp:
(WebCore::executeInsertNode):
- editing/MergeIdenticalElementsCommand.cpp:
(WebCore::MergeIdenticalElementsCommand::doApply):
(WebCore::MergeIdenticalElementsCommand::doUnapply):
- editing/RemoveNodeCommand.cpp:
(WebCore::RemoveNodeCommand::doUnapply):
- editing/ReplaceNodeWithSpanCommand.cpp:
(WebCore::swapInNodePreservingAttributesAndChildren):
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::insertFragmentForTestRendering):
- editing/SplitElementCommand.cpp:
(WebCore::SplitElementCommand::executeApply):
(WebCore::SplitElementCommand::doUnapply):
- editing/WrapContentsInDummySpanCommand.cpp:
(WebCore::WrapContentsInDummySpanCommand::executeApply):
(WebCore::WrapContentsInDummySpanCommand::doUnapply):
- editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::styleForSelectionStart):
- editing/htmlediting.cpp:
(WebCore::createTabSpanElement):
- editing/ios/EditorIOS.mm:
(WebCore::Editor::WebContentReader::readURL):
(WebCore::Editor::createFragmentForImageResourceAndAddResource):
- editing/mac/EditorMac.mm:
(WebCore::Editor::WebContentReader::readFilenames):
(WebCore::Editor::WebContentReader::readURL):
(WebCore::Editor::createFragmentForImageResourceAndAddResource):
- editing/markup.cpp:
(WebCore::fillContainerFromString):
(WebCore::createFragmentFromText):
(WebCore::replaceChildrenWithFragment):
(WebCore::replaceChildrenWithText):
- html/BaseChooserOnlyDateAndTimeInputType.cpp:
(WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):
- html/ColorInputType.cpp:
(WebCore::ColorInputType::createShadowSubtree):
- html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::appendEntry):
(WebCore::FTPDirectoryDocumentParser::createTDForFilename):
(WebCore::FTPDirectoryDocumentParser::createBasicDocument):
- html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot):
- html/HTMLElement.cpp:
(WebCore::HTMLElement::setOuterText):
(WebCore::HTMLElement::insertAdjacent):
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::tryCreateImageControls):
- html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::HTMLKeygenElement):
- html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::didAddUserAgentShadowRoot):
- html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::createForJSConstructor):
- html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::didAddUserAgentShadowRoot):
- html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::createTBody):
(WebCore::HTMLTableElement::insertRow):
- html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::insertCell):
- html/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure):
- html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
- html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure):
- html/RangeInputType.cpp:
(WebCore::RangeInputType::createShadowSubtree):
- html/SearchInputType.cpp:
(WebCore::SearchInputType::createShadowSubtree):
- html/ValidationMessage.cpp:
(WebCore::ValidationMessage::buildBubbleTree):
- html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
- html/shadow/MediaControls.cpp:
(WebCore::MediaControls::createTextTrackDisplay):
- html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::tryCreateControls):
- html/shadow/mac/ImageControlsRootElementMac.cpp:
(WebCore::ImageControlsRootElement::tryCreate):
- html/track/VTTCue.cpp:
(WebCore::VTTCue::updateDisplayTree):
- html/track/WebVTTParser.cpp:
(WebCore::WebVTTTreeBuilder::constructTreeFromToken):
- inspector/DOMEditor.cpp:
(WebCore::DOMEditor::RemoveChildAction::RemoveChildAction):
(WebCore::DOMEditor::InsertBeforeAction::InsertBeforeAction):
(WebCore::DOMEditor::ReplaceChildNodeAction::ReplaceChildNodeAction):
(WebCore::DOMEditor::insertBefore):
(WebCore::DOMEditor::removeChild):
(WebCore::DOMEditor::replaceChild):
- inspector/DOMEditor.h:
- inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::patchNode):
(WebCore::DOMPatchSupport::innerPatchNode):
(WebCore::DOMPatchSupport::innerPatchChildren):
(WebCore::DOMPatchSupport::insertBeforeAndMarkAsUsed):
(WebCore::DOMPatchSupport::removeChildAndMoveToNew):
- inspector/DOMPatchSupport.h:
- inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument):
- inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::removeNode):
(WebCore::InspectorDOMAgent::setNodeName):
(WebCore::InspectorDOMAgent::moveTo):
- page/DragController.cpp:
(WebCore::documentFragmentFromDragData):
- page/ios/FrameIOS.mm:
(WebCore::Frame::initWithSimpleHTMLDocument):
- svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::cloneTarget):
(WebCore::SVGUseElement::expandUseElementsInShadowTree):
(WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
- xml/XMLErrors.cpp:
(WebCore::createXHTMLParserErrorHeader):
(WebCore::XMLErrors::insertErrorMessageBlock):
- xml/XMLTreeViewer.cpp:
(WebCore::XMLTreeViewer::transformDocumentToTreeView):
- xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::startElementNs):
(WebCore::XMLDocumentParser::processingInstruction):
(WebCore::XMLDocumentParser::cdataBlock):
(WebCore::XMLDocumentParser::comment):
Source/WebKit/mac:
- WebView/WebFrame.mm:
(-[WebFrame _documentFragmentWithNodesAsParagraphs:]):
Source/WebKit/win:
- DOMCoreClasses.cpp:
(DOMNode::insertBefore):
(DOMNode::removeChild):
Source/WebKit2:
- WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
(-[WKDOMNode insertNode:before:]):
(-[WKDOMNode appendChild:]):
(-[WKDOMNode removeChild:]):
- WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
(WebKit::PDFPlugin::PDFPlugin):
- WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
(WebKit::PDFPluginChoiceAnnotation::createAnnotationElement):
LayoutTests:
Rebaseline several tests now that the Node API provides more useful
exception messages.
- fast/dom/Document/replaceChild-null-oldChild-expected.txt:
- fast/dom/Document/script-tests/replaceChild-null-oldChild.js:
- fast/dom/incompatible-operations-expected.txt:
- fast/dom/incompatible-operations.html:
- fast/dom/processing-instruction-appendChild-exceptions-expected.txt:
- fast/dom/processing-instruction-appendChild-exceptions.xhtml:
- fast/dom/timer-clear-interval-in-handler-and-generate-error-expected.txt:
- js/dom/dot-node-base-exception-expected.txt:
- js/dom/script-tests/dot-node-base-exception.js:
- 11:42 AM Changeset in webkit [200695] by
-
- 31 edits in trunk
Modern IDB: IDBOpenDBRequests that are stop()'ed don't notify the IDBServer of that fact.
https://bugs.webkit.org/show_bug.cgi?id=157448
Reviewed by Alex Christensen.
Source/WebCore:
No new tests (Previously skipped tests cover new behavior, and are now unskipped).
There's two main parts to this patch:
1 - When an IDBOpenDBRequest is stop()'ed due to page navigation or worker termination,
we now notify the IDBServer of that.
2 - Lot's of little tweaks to UniqueIDBDatabase to handle shutting down version change
transactions and/or connections related to the cancelled openDB request.
Fortunately the changes to UniqueIDBDatabase were all well covered by existing tests.
- Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit):
(WebCore::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion):
(WebCore::IDBOpenDBRequest::cancelForStop):
(WebCore::IDBOpenDBRequest::dispatchEvent):
- Modules/indexeddb/IDBOpenDBRequest.h:
- Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::stop):
(WebCore::IDBRequest::cancelForStop):
- Modules/indexeddb/IDBRequest.h:
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::openDBRequestCancelled):
(WebCore::IDBClient::IDBConnectionProxy::didFinishHandlingVersionChangeTransaction):
- Modules/indexeddb/client/IDBConnectionProxy.h:
- Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
(WebCore::IDBClient::IDBConnectionToServer::openDBRequestCancelled):
- Modules/indexeddb/client/IDBConnectionToServer.h:
- Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::didFinishHandlingVersionChangeTransaction):
(WebCore::IDBServer::IDBServer::databaseConnectionClosed):
(WebCore::IDBServer::IDBServer::openDBRequestCancelled):
- Modules/indexeddb/server/IDBServer.h:
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::handleCurrentOperation):
(WebCore::IDBServer::UniqueIDBDatabase::openDBRequestCancelled):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::performCommitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformCommitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::didFinishHandlingVersionChange):
(WebCore::IDBServer::UniqueIDBDatabase::performAbortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformAbortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabase::transactionCompleted):
(WebCore::IDBServer::UniqueIDBDatabase::forgetErrorCallback):
- Modules/indexeddb/server/UniqueIDBDatabase.h:
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::abortTransactionWithoutCallback):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFinishHandlingVersionChange):
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
- Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::didFinishHandlingVersionChange): Deleted.
- Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
- Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::InProcessIDBServer::didFinishHandlingVersionChangeTransaction):
(WebCore::InProcessIDBServer::openDBRequestCancelled):
- Modules/indexeddb/shared/InProcessIDBServer.h:
Source/WebKit2:
- DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToClient::openDBRequestCancelled):
- DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
- DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToServer::openDBRequestCancelled):
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
LayoutTests:
- TestExpectations:
- storage/indexeddb/pending-version-change-stuck-private-expected.txt:
- storage/indexeddb/pending-version-change-stuck-works-with-terminate-expected.txt:
- storage/indexeddb/pending-version-change-stuck-works-with-terminate-private-expected.txt:
- 11:33 AM Changeset in webkit [200694] by
-
- 11 edits in trunk
Improve error messages for accessing arguments.callee and similar getters in strict mode
https://bugs.webkit.org/show_bug.cgi?id=157545
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-11
Reviewed by Mark Lam.
Source/JavaScriptCore:
- runtime/ClonedArguments.cpp:
(JSC::ClonedArguments::getOwnPropertySlot):
(JSC::ClonedArguments::materializeSpecials):
Provide better error GetterSetter in strict mode.
- runtime/JSFunction.cpp:
(JSC::getThrowTypeErrorGetterSetter):
(JSC::JSFunction::defineOwnProperty):
Provide better error GetterSetter in strict mode.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::throwTypeErrorGetterSetter):
(JSC::JSGlobalObject::throwTypeErrorCalleeAndCallerGetterSetter):
(JSC::JSGlobalObject::throwTypeErrorArgumentsAndCallerInStrictModeGetterSetter):
(JSC::JSGlobalObject::throwTypeErrorArgumentsAndCallerInClassContextGetterSetter):
(JSC::JSGlobalObject::throwTypeErrorArgumentsAndCallerGetterSetter): Deleted.
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncThrowTypeErrorCalleeAndCaller):
(JSC::globalFuncThrowTypeErrorArgumentsAndCallerInStrictMode):
(JSC::globalFuncThrowTypeErrorArgumentsAndCallerInClassContext):
(JSC::globalFuncThrowTypeErrorArgumentsAndCaller): Deleted.
- runtime/JSGlobalObjectFunctions.h:
Rename and expose new handles for new error getter setter native functions.
LayoutTests:
- js/basic-strict-mode-expected.txt:
- js/caller-property-expected.txt:
- js/script-tests/caller-property.js:
- 11:13 AM Changeset in webkit [200693] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, rolling out r200481.
https://bugs.webkit.org/show_bug.cgi?id=157573
it's bad news for asm.js (Requested by pizlo on #webkit).
Reverted changeset:
"Reduce maximum JIT pool size on X86_64."
http://trac.webkit.org/changeset/200481
- 11:06 AM Changeset in webkit [200692] by
-
- 2 edits in trunk/Source/WebKit2
Fix a typo in r200330
Unreviewed.
- UIProcess/API/Cocoa/WKWebViewConfiguration.h:
- 10:28 AM Changeset in webkit [200691] by
-
- 6 edits9 deletes in trunk
Unreviewed, rolling out r200686.
Caused a lot of layout test failures
Reverted changeset:
"Sites served over insecure connections should not be allowed
to use geolocation."
https://bugs.webkit.org/show_bug.cgi?id=157423
http://trac.webkit.org/changeset/200686
- 10:11 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 9:25 AM Changeset in webkit [200690] by
-
- 2 edits in trunk/Source/WebCore
Optimize DataDetection's searchForLinkRemovingExistingDDLinks()
https://bugs.webkit.org/show_bug.cgi?id=157561
Reviewed by Ryosuke Niwa.
Optimize DataDetection's searchForLinkRemovingExistingDDLinks():
- The first loop was using Node::childNodes() to iterate over the child elements. Because of the recursive call, we may end up prepending children as we iterate over them. This is an issue because the childCount was cached before the loop and vector it would blow away the cache inside the NodeList. Switch to using ElementTraversal which should be both safer and more efficient. I don't believe we can use our nice ElementChildIterator here unfortunately as we would hit assertions due the the DOM mutations while iterating.
- The second loop was using again Node::childNodes() and kept calling item(0) to get the first child and move it to make it the previous sibling of its old parent. Again, using childNodes() here is super inefficient because we keep modifying the children and childNodes() returns a live NodeList. The call to NodeList::length() would cache all the children in a Vector, only to blow that cache away after removing the first child. Switch to using ContainerNode::firstChild().
- Drop the parentElement parameter as we can just get it from the child.
- Use tighter typing so we don't end up calling the implementations of insertBefore() / removeChild() that are on Node, thus unnecessarily doing a is<ContainerNode>() check every time.
- Pass element by reference instead of pointer as it cannot be null.
- editing/cocoa/DataDetection.mm:
(WebCore::removeResultLinksFromAnchor):
(WebCore::searchForLinkRemovingExistingDDLinks):
- 9:24 AM Changeset in webkit [200689] by
-
- 2 edits in trunk/Source/WebCore
preprocess-idls.pl not ignoring comments during processing
https://bugs.webkit.org/show_bug.cgi?id=157559
Patch by Rawinder Singh <rawinder.singh-webkit@cisra.canon.com.au> on 2016-05-11
Reviewed by Darin Adler.
Remove comments from IDL file before processing.
- bindings/scripts/preprocess-idls.pl:
(getInterfaceExtendedAttributesFromIDL):
- 9:20 AM Changeset in webkit [200688] by
-
- 3 edits2 adds in trunk
Videos allowed to play through the Main Content restriction should not pause when scrolled off-screen.
https://bugs.webkit.org/show_bug.cgi?id=157555
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/video-main-content-allow-then-scroll.html
- html/MediaElementSession.cpp:
(WebCore::isMainContent):
LayoutTests:
- media/video-main-content-allow-then-scroll-expected.txt: Added.
- media/video-main-content-allow-then-scroll.html: Added.
- 9:18 AM Changeset in webkit [200687] by
-
- 2 edits in trunk/Source/WebCore
[curl] curl_easy_setopt(CURLOPT_CONNECT_ONLY) should take a long parameter
https://bugs.webkit.org/show_bug.cgi?id=157562
Patch by Fujii Hironori <Fujii Hironori> on 2016-05-11
Reviewed by Darin Adler.
The third argument of a calling curl_easy_setopt is missing.
- platform/network/curl/SocketStreamHandleCurl.cpp:
(WebCore::SocketStreamHandle::startThread): Give the third
argument of curl_easy_setopt.
- 8:52 AM Changeset in webkit [200686] by
-
- 6 edits9 adds in trunk
Sites served over insecure connections should not be allowed to use geolocation.
https://bugs.webkit.org/show_bug.cgi?id=157423
<rdar://problem/23751632>
Patch by Pranjal Jumde <pjumde@apple.com> on 2016-05-11
Reviewed by Brent Fulgham.
Source/WebCore:
Tests: http/tests/security/insecure-geolocation.html
http/tests/security/mixedcontent-geolocation-block-insecure-content.html
http/tests/security/mixedcontent-geolocation.html
- Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::logError):
(WebCore::Geolocation::startRequest):
Access to Geolocation will be blocked if site is not secure. An error will be logged when access to Geolocation is blocked.
(WebCore::Geolocation::shouldBlockGeolocationRequests)
Returns true if the access to the geolocation should be blocked.
- Modules/geolocation/Geolocation.h:
- dom/SecurityContext.h:
(WebCore::SecurityContext::foundMixedContent):
Returns true if insecure content was accessed over secure connection.
(WebCore::SecurityContext::setFoundMixedContent):
Sets m_foundMixedContent to true if insecure content is accessed over secure connection.
(WebCore::SecurityContext::geolocationAccessed):
Returns true if geolocation was accessed
(WebCore::SecurityContext::setGeolocationAccessed):
Sets m_geolocationAccessed to true if geolocation was accessed.
- loader/MixedContentChecker.cpp:
(WebCore::MixedContentChecker::canDisplayInsecureContent):
Insecure content will be blocked if geolocation was accessed by the page. Updates document to keep track of mixed content.
(WebCore::MixedContentChecker::canRunInsecureContent):
Insecure content will be blocked if geolocation was accessed by the page. Updates document to keep track of mixed content.
LayoutTests:
- http/tests/security/geolocation-over-insecure-content.html: Added.
- http/tests/security/geolocation-over-mixed-content-block.html: Added.
- http/tests/security/geolocation-over-mixed-content.html: Added.
- http/tests/security/insecure-geolocation-expected.txt: Added.
- http/tests/security/insecure-geolocation.html: Added.
- http/tests/security/mixedcontent-geolocation-block-insecure-content-expected.txt: Added.
- http/tests/security/mixedcontent-geolocation-block-insecure-content.html: Added.
- http/tests/security/mixedcontent-geolocation-expected.txt: Added.
- http/tests/security/mixedcontent-geolocation.html: Added.
- 2:11 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 2:05 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 1:20 AM Changeset in webkit [200685] by
-
- 6 edits1 copy in branches/safari-602.1.32-branch
Merged r200659. rdar://problem/26125909
- 1:19 AM Changeset in webkit [200684] by
-
- 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI
Merged r200649. rdar://problem/26207064
- 1:18 AM Changeset in webkit [200683] by
-
- 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI
Merged r200644. rdar://problem/26204033
- 1:17 AM Changeset in webkit [200682] by
-
- 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI
Merged r200643. rdar://problem/26178404
- 1:16 AM Changeset in webkit [200681] by
-
- 3 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI
Merged r200608. rdar://problem/26177346
- 1:16 AM Changeset in webkit [200680] by
-
- 3 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI
Merged r200600. rdar://problem/26176524
- 1:15 AM Changeset in webkit [200679] by
-
- 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI
Merged r200594. rdar://problem/26178439
- 12:50 AM Changeset in webkit [200678] by
-
- 5 edits in trunk
Ensure DOM iterators remain done
https://bugs.webkit.org/show_bug.cgi?id=157453
Reviewed by Darin Adler.
Source/WebCore:
Covered by updated test.
Making DOMWrapped::Iterator an Optional.
Setting it to Nullopt on the first time Iterator is returning null.
For set iterators, incrementing a counter which value is used in forEach callbacks and entries iterators.
- bindings/js/JSDOMIterator.h:
(WebCore::JSDOMIterator<JSWrapper>::asJS):
(WebCore::appendForEachArguments):
(WebCore::iteratorForEach):
(WebCore::JSDOMIterator<JSWrapper>::next):
LayoutTests:
- fast/dom/nodeListIterator-expected.txt:
- fast/text/font-face-set-javascript-expected.txt:
- 12:14 AM Changeset in webkit [200677] by
-
- 20 edits1 copy2 moves in trunk
[GTK] accessibility/aria-readonly.html is failing
https://bugs.webkit.org/show_bug.cgi?id=98357
Reviewed by Chris Fleizach.
Source/WebCore:
Add support for ATK_STATE_READ_ONLY and expose the value of aria-readonly
as an AtkObject attribute. In order to eliminate duplicate checks, remove
isReadOnly() and just use canSetAttributeValue(), moving all the logic into
AccessibilityNodeObject. Add AccessibilityObject::supportsARIAReadOnly() so
that we can explicitly expose the implicit value for aria-readonly on roles
which support this property. Also add support for ATK_STATE_CHECKABLE, both
because this state was missing and because it serves a similar function to
ATK_STATE_EDITABLE for the purpose of verifying exposure of toggle-able
elements that are not read-only.
Test: accessibility/form-control-value-settable.html
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::canSetValueAttribute):
(WebCore::AccessibilityNodeObject::isRequired): Deleted.
(WebCore::AccessibilityNodeObject::supportsRequiredAttribute): Deleted.
- accessibility/AccessibilityNodeObject.h:
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::supportsARIAReadOnly):
(WebCore::AccessibilityObject::ariaReadOnlyValue):
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isUnvisited): Deleted.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::clickPoint):
(WebCore::AccessibilityRenderObject::isOffScreen): Deleted.
(WebCore::AccessibilityRenderObject::anchorElement): Deleted.
(WebCore::AccessibilityRenderObject::internalLinkElement): Deleted.
(WebCore::AccessibilityRenderObject::textChanged): Deleted.
(WebCore::AccessibilityRenderObject::clearChildren): Deleted.
(WebCore::AccessibilityRenderObject::addImageMapChildren): Deleted.
- accessibility/AccessibilityRenderObject.h:
- accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(getAttributeSetForAccessibilityObject):
- accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetAttributes):
(setAtkStateSetFromCoreObject):
(getInterfaceMaskFromObject):
- inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
Source/WebKit/win:
Call AccessibilityNode::canSetValueAttribute() to determine if STATE_SYSTEM_READONLY
should be added and if editable text should be supported.
- AccessibleBase.cpp:
(AccessibleBase::state):
- AccessibleTextImpl.cpp:
(AccessibleText::deleteText):
(AccessibleText::insertText):
(AccessibleText::cutText):
(AccessibleText::pasteText):
(AccessibleText::replaceText):
Tools:
Add checks to isAttributeSettable() for ATK_STATE_READ_ONLY and the 'readonly'
AtkObject attribute along with ATK_STATE_CHECKABLE for toggle-able elements,
ATK_STATE_SELECTABLE for select elements, and ATK_STATE_FOCUSABLE combined
with range verification for inputs which implement AtkValue. The latter two
additions are admittedly a heuristic workaround for platform accessibility
API differences. But they should be sufficient to facilitate cross-platform
testing of isAttributeSettable() for form elements which lack ARIA attributes.
Bump the minimum version of at-spi2-core and at-spi2-atk
to 2.15.4 (earliest version that supports STATE_READ_ONLY).
- WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::isAttributeSettable):
- gtk/jhbuild.modules:
LayoutTests:
As part of this change, a new AtkObject attribute and state are being exposed.
Update two tests accordingly. Also unskip the previously-failing test. Lastly,
move the Mac form-control-value-settable.html test to the shared test set,
with a minor tweak to check the platform for several elements' expectations.
- accessibility/form-control-value-settable.html: Moved to shared tests.
- accessibility/gtk/xml-roles-exposed-expected.txt: Updated.
- platform/gtk/TestExpectations: Unskipped previously-failing test.
- platform/gtk/accessibility/form-control-value-settable-expected.txt: Added.
- platform/gtk/accessibility/table-detection-expected.txt: Updated.
- platform/mac/accessibility/form-control-value-settable-expected.txt: Moved.
May 10, 2016:
- 11:03 PM Changeset in webkit [200676] by
-
- 5 edits in branches/safari-602.1.32-branch/Source
Versioning.
- 10:40 PM Changeset in webkit [200675] by
-
- 2 edits in trunk/Source/WebCore
Don't update media duration at playback end while seeking.
https://bugs.webkit.org/show_bug.cgi?id=157557
Patch by Jeremy Jones <jeremyj@apple.com> on 2016-05-10
Reviewed by Jer Noble.
If JavaScript initiates a media element seek just as the media playback ends, don't update duration
to the current time as the current time is now the new seek time, not the time when playback ended.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::didEnd):
- 10:10 PM Changeset in webkit [200674] by
-
- 3 edits in trunk/LayoutTests
Test gardening after r200646
Unreviewed.
- TestExpectations:
- fast/text/unicode-range-download.html:
- 10:03 PM Changeset in webkit [200673] by
-
- 4 edits in trunk/Source/WebCore
Fix typo CaptionUserPreferences::updateCaptionStyleSheetOveride
https://bugs.webkit.org/show_bug.cgi?id=157544
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-10
Reviewed by Darin Adler.
- page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::setCaptionsStyleSheetOverride):
(WebCore::CaptionUserPreferences::updateCaptionStyleSheetOverride):
(WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride): Deleted.
- page/CaptionUserPreferences.h:
- page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::updateTimerFired):
(WebCore::CaptionUserPreferencesMediaAF::captionPreferencesChanged):
- 9:52 PM Changeset in webkit [200672] by
-
- 2 edits in trunk/Source/WebKit/mac
[OS X] Compatible with gnu sed grammar due to compile error with gnu sed
https://bugs.webkit.org/show_bug.cgi?id=157526
Patch by Shaw rich <richshaw@126.com> on 2016-05-10
Reviewed by Darin Adler.
- MigrateHeaders.make:
- 9:48 PM Changeset in webkit [200671] by
-
- 16 edits in trunk/Source/WebCore
Remove scrolledContentOffset() from rendering code
https://bugs.webkit.org/show_bug.cgi?id=157552
Reviewed by Zalan Bujtas.
scrolledContentOffset() is misleading because it returns a scrollPosition().
Just use the name scrollPosition(), returning a ScrollPosition (IntPoint),
and fix callers that need to convert to layout size.
- editing/VisibleUnits.cpp:
(WebCore::absoluteLineDirectionPointToLocalPointInBlock):
- rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::selectionGapRectsForRepaint):
(WebCore::RenderBlock::paintSelection):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::offsetForContents):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutBlock):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::scrollPosition):
(WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint):
(WebCore::isCandidateForOpaquenessTest):
(WebCore::RenderBox::offsetFromContainer):
(WebCore::RenderBox::layoutOverflowRectForPropagation):
(WebCore::RenderBox::scrolledContentOffset): Deleted.
- rendering/RenderBox.h:
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
- rendering/RenderInline.cpp:
(WebCore::RenderInline::offsetFromContainer):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPosition):
(WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
(WebCore::RenderLayer::calculateClipRects):
- rendering/RenderLayer.h:
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGeometry):
- rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::offsetFromContainer):
- rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
- rendering/RenderObject.cpp:
(WebCore::RenderObject::mapLocalToContainer):
(WebCore::RenderObject::pushMappingToContainer):
(WebCore::RenderObject::mapAbsoluteToLocalPoint):
(WebCore::RenderObject::offsetFromContainer):
- rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::hitInnerTextElement):
- 9:26 PM Changeset in webkit [200670] by
-
- 2 edits in trunk/Tools
Another attempt to fix the build after r200668.
Unreviewed build fix.
- TestWebKitAPI/Tests/WebKit2Cocoa/Coding.mm:
(TEST):
- 8:57 PM Changeset in webkit [200669] by
-
- 2 edits in trunk/Tools
Tried to fix the Mac build after r200668.
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::platformCreateWebView):
- 8:37 PM Changeset in webkit [200668] by
-
- 4 edits in trunk/Source/WebKit2
Only expose WKDataDetectorTypes and -[WKWebViewConfiguration dataDetectorTypes] on iOS
for now, since we don't have it fully implemented on Mac.
Reviewed by Tim Horton.
- UIProcess/API/Cocoa/WKWebView.mm:
(fromWKDataDetectorTypes):
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.h:
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):
- 7:04 PM Changeset in webkit [200667] by
-
- 3 edits in trunk/Source/JavaScriptCore
TypedArray.prototype.slice should use the byteLength of passed array for memmove
https://bugs.webkit.org/show_bug.cgi?id=157551
<rdar://problem/26179914>
Reviewed by Michael Saboff.
The TypedArray.prototype.slice function would use the byteLength of the passed array
to determine the amount of data to copy. It should have been using the passed length
times the size of each element. This fixes a crash on JavaPoly.com
- runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::set):
- tests/stress/typedarray-slice.js:
- 6:56 PM Changeset in webkit [200666] by
-
- 2 edits in trunk/Source/JavaScriptCore
REGRESSION(r200447): Unable to build C_LOOP with clang version 800.0.12 or higher
https://bugs.webkit.org/show_bug.cgi?id=157549
Reviewed by Keith Miller.
Disable debug annotations for C_LOOP builds. They are inline assembly directives,
unnecessary and they cause syntax errors.
- offlineasm/asm.rb:
- 6:55 PM Changeset in webkit [200665] by
-
- 3 edits5 adds in trunk
Horizontally-scrollable items with a 3d transform are rendered incorrectly in RTL when container has -webkit-overflow-scroll: touch
https://bugs.webkit.org/show_bug.cgi?id=157482
rdar://problem/26204794
Reviewed by Zalan Bujtas.
Source/WebCore:
The compositing code was confused about scroll offsets vs. scroll positions, because
of the badly named scrolledContentOffset(); we used that in one place, and scrollOffset()
lower down. Change both to use scrollOffset().
Test: compositing/rtl/rtl-with-transformed-descendants.html
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGeometry):
LayoutTests:
This can't be a ref test because on iOS ref test snapshots are doing by drawing, not by snapshotting layers.
- compositing/rtl/rtl-with-transformed-descendants-expected.txt: Added.
- compositing/rtl/rtl-with-transformed-descendants.html: Added.
- 6:55 PM Changeset in webkit [200664] by
-
- 2 edits in trunk/Source/WebKit/mac
[iOS WK1] text autosizing was on for all layout tests
https://bugs.webkit.org/show_bug.cgi?id=157541
Reviewed by Tim Horton.
Make sure that we transfer the WK1 text autosizing preference to Settings.
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
- 6:49 PM Changeset in webkit [200663] by
-
- 2 edits5 adds in trunk/LayoutTests
Unreviewed EFL Gardening on 10th May.
Rebaseline missing results.
- platform/efl/TestExpectations: Removed non existing tests.
- platform/efl/accessibility/content-editable-as-textarea-expected.txt: Added.
- platform/efl/accessibility/generated-content-with-display-table-crash-expected.txt: Added.
- platform/efl/accessibility/w3c-svg-content-language-attribute-expected.txt: Added.
- platform/efl/fast/text/hyphenate-avoid-orphaned-word-expected.txt: Added.
- platform/efl/mathml/presentation/menclose-notation-values-expected.txt: Added.
- 6:11 PM Changeset in webkit [200662] by
-
- 3 edits in trunk/Source/WebKit2
Add SPI for Data Detectors to get ranges of text around an existing range.
<rdar://problem/26009749>
Reviewed by Enrica Casucci.
- WebProcess/InjectedBundle/API/mac/WKDOMRange.h:
- WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:
(-[WKDOMRange rangeByExpandingToWordBoundaryByCharacters:inDirection:]):
- 5:56 PM Changeset in webkit [200661] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Avoid unnecessary timeout identifier churn in TimelineManager
https://bugs.webkit.org/show_bug.cgi?id=157535
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-10
Reviewed by Timothy Hatcher.
- UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.capturingStarted):
(WebInspector.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout):
Don't re-tickle if we tickled in the last 10ms.
- 5:20 PM Changeset in webkit [200660] by
-
- 9 edits in trunk/Source
Numerous block selection issues on iOS.
https://bugs.webkit.org/show_bug.cgi?id=157490
rdar://problem/25717977
rdar://problem/23042215
Reviewed by Tim Horton.
Source/WebCore:
- rendering/style/RenderStyle.h:
Exporting method.
Source/WebKit2:
This patch fixes a number of issues with block selection on iOS.
We no longer eagerly choose block selection vs text selection and we
make sure we are capable of switching back to text selection from block
under every circumstance. The patch also fixes the logic used to decide
when to switch to block selection. It now computes the rectangle for the
paragraph containing the initial text selection to decide when we are
actually dragging outside the boundaries of the paragraph block.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/WKContentViewInteraction.mm:
(selectionChangedWithGesture):
(selectionChangedWithTouch):
(-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::gestureCallback):
(WebKit::WebPageProxy::touchesCallback):
(WebKit::WebPageProxy::autocorrectionDataCallback):
(WebKit::WebPageProxy::selectWithGesture):
(WebKit::WebPageProxy::updateSelectionWithTouches):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::selectionBoxForRange):
(WebKit::canShrinkToTextSelection):
(WebKit::hasCustomLineHeight):
(WebKit::WebPage::rangeForWebSelectionAtPosition):
(WebKit::WebPage::contractedRangeFromHandle):
(WebKit::WebPage::updateBlockSelectionWithTouch):
(WebKit::WebPage::clearSelection):
(WebKit::WebPage::switchToBlockSelectionAtPoint):
(WebKit::WebPage::shouldSwitchToBlockModeForHandle):
(WebKit::WebPage::updateSelectionWithTouches):
(WebKit::WebPage::selectWithTwoTouches):
- 5:16 PM Changeset in webkit [200659] by
-
- 6 edits1 add in trunk
Tweak underline style for data detected links
https://bugs.webkit.org/show_bug.cgi?id=157546
Reviewed by Tim Horton.
Source/WebCore:
Added API Tests in Color.cpp.
- editing/cocoa/DataDetection.mm:
(WebCore::DataDetection::detectContentInRange):
Tweak the underline's opacity based on the text color. White-ish text gets
46% opacity, everything else gets 26% opacity.
- platform/graphics/Color.cpp:
(WebCore::Color::getHSV):
- platform/graphics/Color.h:
Add support for getting the HSV (also know as HSB) computation of the color
to help determine the "whiteness" of a color.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/Color.cpp: Added.
(TestWebKitAPI::TEST):
Add tests for the new Color::getHSV() function.
- 5:08 PM Changeset in webkit [200658] by
-
- 27 edits4 adds in trunk
Internal JSC profiler should have a timestamped log of events for each code block
https://bugs.webkit.org/show_bug.cgi?id=157538
Reviewed by Benjamin Poulain.
Source/JavaScriptCore:
For example, in 3d-cube, I can query the events for MMulti and I get:
1462917476.17083 MMulti#DTZ7qc installCode
1462917476.179663 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline installCode
1462917476.179664 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline osrEntry at bc#49
1462917476.185651 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 1011.214233/1717.000000, -707
1462917476.187913 MMulti#DTZ7qc MMulti#DTZ7qc-2-DFG installCode
1462917476.187917 MMulti#DTZ7qc MMulti#DTZ7qc-2-DFG osrEntry at bc#49
1462917476.205365 MMulti#DTZ7qc MMulti#DTZ7qc-2-DFG jettison due to OSRExit, counting = true, detail = (null)
1462917476.205368 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline frequentExit bc#65: BadCache/FromDFG
1462917476.205369 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline installCode
1462917476.205482 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 1013.000000/3434.000000, -1000
1462917476.211547 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 2013.000000/3434.000000, -1000
1462917476.213721 MMulti#DTZ7qc MMulti#DTZ7qc-3-DFG installCode
1462917476.213726 MMulti#DTZ7qc MMulti#DTZ7qc-3-DFG osrEntry at bc#49
1462917476.223976 MMulti#DTZ7qc MMulti#DTZ7qc-3-DFG jettison due to OSRExit, counting = true, detail = (null)
1462917476.223981 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline frequentExit bc#77: BadCache/FromDFG
1462917476.223982 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline frequentExit bc#94: BadCache/FromDFG
1462917476.223982 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline installCode
1462917476.224064 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 1013.000000/6868.000000, -1000
1462917476.224151 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 2013.000000/6868.000000, -1000
1462917476.224258 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 3013.000000/6868.000000, -1000
1462917476.224337 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 4023.000000/6868.000000, -1000
1462917476.224425 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 5023.000000/6868.000000, -1000
1462917476.224785 MMulti#DTZ7qc MMulti#DTZ7qc-1-Baseline delayOptimizeToDFG counter = 6023.396484/6868.000000, -862
1462917476.227669 MMulti#DTZ7qc MMulti#DTZ7qc-4-DFG installCode
1462917476.227675 MMulti#DTZ7qc MMulti#DTZ7qc-4-DFG osrEntry at bc#0
The output is ugly but useful. We can make it less ugly later.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::jettison):
- bytecode/CodeBlock.h:
(JSC::ScriptExecutable::forEachCodeBlock):
- bytecode/DFGExitProfile.cpp:
(JSC::DFG::ExitProfile::add):
- dfg/DFGJITFinalizer.cpp:
(JSC::DFG::JITFinalizer::finalizeCommon):
- dfg/DFGOperations.cpp:
- ftl/FTLJITFinalizer.cpp:
(JSC::FTL::JITFinalizer::finalizeFunction):
- jit/JIT.cpp:
(JSC::JIT::privateCompile):
- jit/JITOperations.cpp:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::jitCompileAndSetHeuristics):
(JSC::LLInt::entryOSR):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- profiler/ProfilerCompilation.cpp:
(JSC::Profiler::Compilation::Compilation):
(JSC::Profiler::Compilation::setJettisonReason):
(JSC::Profiler::Compilation::dump):
(JSC::Profiler::Compilation::toJS):
- profiler/ProfilerCompilation.h:
(JSC::Profiler::Compilation::uid):
- profiler/ProfilerDatabase.cpp:
(JSC::Profiler::Database::ensureBytecodesFor):
(JSC::Profiler::Database::notifyDestruction):
(JSC::Profiler::Database::addCompilation):
(JSC::Profiler::Database::toJS):
(JSC::Profiler::Database::registerToSaveAtExit):
(JSC::Profiler::Database::logEvent):
(JSC::Profiler::Database::addDatabaseToAtExit):
- profiler/ProfilerDatabase.h:
- profiler/ProfilerEvent.cpp: Added.
(JSC::Profiler::Event::dump):
(JSC::Profiler::Event::toJS):
- profiler/ProfilerEvent.h: Added.
(JSC::Profiler::Event::Event):
(JSC::Profiler::Event::operator bool):
(JSC::Profiler::Event::time):
(JSC::Profiler::Event::bytecodes):
(JSC::Profiler::Event::compilation):
(JSC::Profiler::Event::summary):
(JSC::Profiler::Event::detail):
- profiler/ProfilerUID.cpp: Added.
(JSC::Profiler::UID::create):
(JSC::Profiler::UID::dump):
(JSC::Profiler::UID::toJS):
- profiler/ProfilerUID.h: Added.
(JSC::Profiler::UID::UID):
(JSC::Profiler::UID::fromInt):
(JSC::Profiler::UID::toInt):
(JSC::Profiler::UID::operator==):
(JSC::Profiler::UID::operator!=):
(JSC::Profiler::UID::operator bool):
(JSC::Profiler::UID::isHashTableDeletedValue):
(JSC::Profiler::UID::hash):
(JSC::Profiler::UIDHash::hash):
(JSC::Profiler::UIDHash::equal):
- runtime/CommonIdentifiers.h:
- runtime/Executable.cpp:
(JSC::ScriptExecutable::installCode):
- runtime/VM.h:
(JSC::VM::bytecodeIntrinsicRegistry):
(JSC::VM::shadowChicken):
- runtime/VMInlines.h:
(JSC::VM::shouldTriggerTermination):
(JSC::VM::logEvent):
Source/WTF:
- wtf/PrintStream.h:
(WTF::PrintStream::print):
Tools:
- Scripts/display-profiler-output:
- 5:02 PM Changeset in webkit [200657] by
-
- 1 copy in branches/safari-602.1.32-branch
New Branch.
- 4:51 PM Changeset in webkit [200656] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Can't select record bar in Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=156963
<rdar://problem/25898256>
Reviewed by Timothy Hatcher.
Sync record selection between the Rendering Frames grid and overview graph.
- UserInterface/Views/DataGrid.js:
(WebInspector.DataGridNode.prototype.hasAncestor):
Add helper function needed by TimelineView.
- UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._mouseClicked):
Don't deselect the selected record when clicked. Initially this seemed
like a good idea but it complicates the UI for no added value.
- UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
Get path components from the current TimelineView instead of the
TimelineRecordingContentView, now that the selected record appears
in the bottom ContentBrowser's navigation bar.
- 4:49 PM Changeset in webkit [200655] by
-
- 7 edits in trunk/Source
Handle _schemeUpgraded delegate callbacks in NSURLSessionDataDelegate
https://bugs.webkit.org/show_bug.cgi?id=157354
rdar://problem/25842107
Reviewed by Darin Adler.
Source/WebCore:
No new tests. This cannot be tested with a self-signed certificate.
This needs to be tested once we use real ssl certificates for testing.
- platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
(-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
- platform/network/mac/WebCoreURLResponse.h:
- platform/network/mac/WebCoreURLResponse.mm:
(WebCore::synthesizeRedirectResponseIfNecessary):
Take the NSURLRequest instead of the NSURLConnection as a parameter so we can share this code with the NSURLSession loader,
which has an NSURLSessionDataTask. Both have the currentRequest, which is all we need in this function anyway.
Source/WebKit2:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):
When we make a request to a http url and CFNetwork determines that that url would have redirected to an HSTS site
and it is going to change the request to an https request, this delegate callback is called. We need to call the
redirection code to have the same behavior as the NSURLConnection-based loader.
- 4:47 PM Changeset in webkit [200654] by
-
- 2 edits in trunk/Source/bmalloc
bmalloc should automatically disable itself when ThreadSanitizer is used
<https://webkit.org/b/157527>
Reviewed by Michael Catanzaro.
- bmalloc/Environment.cpp:
(bmalloc::isASanEnabled): Rename to isSanitizerEnabled.
(bmalloc::isSanitizerEnabled): Rename from isASanEnabled. Add
support for detecting ThreadSanitizer.
(bmalloc::Environment::computeIsBmallocEnabled): Switch from
isASanEnabled to isSanitizerEnabled.
- 4:45 PM Changeset in webkit [200653] by
-
- 1 copy in tags/Safari-602.1.32
New tag.
- 4:38 PM Changeset in webkit [200652] by
-
- 2 edits in trunk/LayoutTests
iOS rebaseline after r200464.
- fast/shadow-dom/touch-event-ios-expected.txt:
- 4:38 PM Changeset in webkit [200651] by
-
- 11 edits2 adds in trunk
Web Inspector: Backend should initiate timeline recordings on page navigations to ensure nothing is missed
https://bugs.webkit.org/show_bug.cgi?id=157504
<rdar://problem/26188642>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-10
Reviewed by Brian Burg.
Source/JavaScriptCore:
- inspector/protocol/Timeline.json:
Add protocol commands to enable/disable auto capture and list the
instruments that should be enabled when auto capture starts.
Add protocol event for when the backend starts an auto capture.
Source/WebCore:
Test: inspector/timeline/setAutoCaptureInstruments-errors.html
- inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
Pass other agents into the TimelineAgent constructor.
- inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::frameStartedLoadingImpl):
Inform the TimelineAgent whenever the main frame starts a new load.
- inspector/InspectorTimelineAgent.h:
- inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
Initialize new members.
(WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
Cleanup auto capture state when tearing down.
(WebCore::InspectorTimelineAgent::setAutoCaptureEnabled):
(WebCore::InspectorTimelineAgent::setAutoCaptureInstruments):
Set and validate new auto capture state from the frontend.
(WebCore::InspectorTimelineAgent::mainFrameStartedLoading):
When page navigates start an auto capture if needed.
Source/WebInspectorUI:
- UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.set autoCaptureOnPageLoad):
(WebInspector.TimelineManager.prototype.set enabledTimelineTypes):
(WebInspector.TimelineManager.prototype._updateAutoCaptureInstruments):
For backends that support it, enable/disable auto capture and the instruments to use.
(WebInspector.TimelineManager.prototype.autoCaptureStarted):
New event, stop and start a new recording. Set a flag that we should
detect the auto capturing resource so we know when the stop the
auto capture.
(WebInspector.TimelineManager.prototype._loadNewRecording):
(WebInspector.TimelineManager.prototype._addRecord):
(WebInspector.TimelineManager.prototype._startAutoCapturing): Renamed.
(WebInspector.TimelineManager.prototype._attemptAutoCapturingForFrame):
(WebInspector.TimelineManager.prototype._legacyAttemptStartAutoCapturingForFrame):
(WebInspector.TimelineManager.prototype._stopAutoRecordingSoon):
(WebInspector.TimelineManager.prototype._resetAutoRecordingMaxTimeTimeout):
(WebInspector.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout):
(WebInspector.TimelineManager.prototype._mainResourceDidChange):
(WebInspector.TimelineManager.prototype._mergeScriptProfileRecords):
Factor out the new path, old path, and shared code for auto capturing.
Renamed _startAutoCapturing to _attemptAutoCapturingForFrame which
better matches what it tries to do.
- UserInterface/Protocol/TimelineObserver.js:
(WebInspector.TimelineObserver.prototype.autoCaptureStarted):
Inform TimelineManager.
LayoutTests:
- inspector/timeline/setAutoCaptureInstruments-errors-expected.txt: Added.
- inspector/timeline/setAutoCaptureInstruments-errors.html: Added.
- 4:21 PM Changeset in webkit [200650] by
-
- 5 edits in trunk/Source
Versioning.
- 4:18 PM Changeset in webkit [200649] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Debugger sidebar should refresh when Debug UI enabled/disabled
https://bugs.webkit.org/show_bug.cgi?id=157540
<rdar://problem/26207064>
Reviewed by Timothy Hatcher.
- UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._scriptRemoved.removeScript):
(WebInspector.DebuggerSidebarPanel.prototype._scriptRemoved):
Remove element from both tree outlines, if it exists.
- 4:11 PM Changeset in webkit [200648] by
-
- 5 edits in trunk/Source/JavaScriptCore
Make the different evaluateWithScopeExtension implementations more consistent
https://bugs.webkit.org/show_bug.cgi?id=157536
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-10
Reviewed by Timothy Hatcher.
- inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::evaluateWithScopeExtension):
Throw the exception consistent with JSJavaScriptCallFrame.
- inspector/JSJavaScriptCallFrame.cpp:
(Inspector::JSJavaScriptCallFrame::evaluateWithScopeExtension):
Better error message consistent with InjectedScriptHost.
- runtime/Completion.h:
- runtime/Completion.cpp:
(JSC::evaluateWithScopeExtension):
Give this an Exception out parameter like other evaluations
so the caller can decide what to do with it.
- 3:08 PM Changeset in webkit [200647] by
-
- 5 edits in branches/safari-601-branch/Source
Versioning.
- 2:43 PM Changeset in webkit [200646] by
-
- 2 edits in trunk/LayoutTests
Marking fast/text/unicode-range-download.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=42154
Unreviewed test gardening.
- 2:35 PM Changeset in webkit [200645] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
[JSC] FTL can produce GetByVal nodes without proper bounds checking
https://bugs.webkit.org/show_bug.cgi?id=157502
rdar://problem/26027027
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-10
Reviewed by Filip Pizlo.
It was possible for FTL to generates GetByVal on arbitrary offsets
without any bounds checking.
The bug is caused by the order of optimization phases:
-First, the Integer Range Optimization proves that a CheckInBounds
test can never fail.
This proof is based on control flow or preceeding instructions
inside a loop.
-The Loop Invariant Code Motion phase finds that the GetByVal does not
depend on anything in the loop and hoist it out of the loop.
-> As a result, the conditions that were necessary to eliminate
the CheckInBounds are no longer met before the GetByVal.
This patch just moves the Integer Range Optimization phase after
Loop Invariant Code Motion to make sure no code is moved after
its integer ranges bounds proofs have been used.
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
- tests/stress/bounds-check-not-eliminated-by-licm.js: Added.
(testInLoopTests):
- 2:30 PM Changeset in webkit [200644] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: TimelineOverview assertion failed: Missing overview graph for timeline type undefined
https://bugs.webkit.org/show_bug.cgi?id=157533
<rdar://problem/26204033>
Reviewed by Timothy Hatcher.
- UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._recordWasFiltered):
The OverviewTimelineView's represented object is the entire recording,
and TimelineOverview.recordWasFiltered expects a timeline. Return early
since no graph in the overview needs updating.
- 2:26 PM Changeset in webkit [200643] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Call Trees and Memory view blank
https://bugs.webkit.org/show_bug.cgi?id=157486
<rdar://problem/26178404>
Reviewed by Timothy Hatcher.
- UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
Setting current time now handled by _updateTimelineViewTimes.
(WebInspector.TimelineRecordingContentView.prototype._capturingStopped):
Update times for the current TimelineView when the recording ends.
This ensures that views that don't call TimelineView.setupDataGrid are
able to update state that depends on the ruler selection.
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineRecordingContentView.prototype._updateTimelineViewTimes):
Renamed from _updateTimelineViewSelection. Sets start, end, and current times.
- 1:45 PM Changeset in webkit [200642] by
-
- 2 edits in trunk/Source/WebCore
Fix the !ENABLE(SHADOW_DOM) && !ENABLE(DETAILS_ELEMENT) build
https://bugs.webkit.org/show_bug.cgi?id=157514
Reviewed by Ryosuke Niwa.
- dom/Element.cpp:
(WebCore::Element::insertedInto):
(WebCore::Element::removedFrom):
- 1:44 PM Changeset in webkit [200641] by
-
- 3 edits in trunk/Source/WebKit2
Fix the !ENABLE(VIDEO) build
https://bugs.webkit.org/show_bug.cgi?id=157518
Reviewed by Alex Christensen.
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
- 1:42 PM Changeset in webkit [200640] by
-
- 2 edits in trunk/Source/WebCore
Fix the !ENABLE(WEB_TIMING) build
https://bugs.webkit.org/show_bug.cgi?id=157515
Reviewed by Alex Christensen.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::loadDone):
- 1:41 PM Changeset in webkit [200639] by
-
- 3 edits in trunk/Source/WebCore
Fix the !ENABLE(INDEXED_DATABASE) build
https://bugs.webkit.org/show_bug.cgi?id=157517
Reviewed by Alex Christensen.
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
- workers/WorkerThread.cpp:
(WebCore::WorkerThread::WorkerThread):
- 1:32 PM Changeset in webkit [200638] by
-
- 12 edits15 adds in trunk
Return a Promise from HTMLMediaElement.play()
https://bugs.webkit.org/show_bug.cgi?id=157400
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
Rebaseline web-platform-tests/html/dom/interfaces-expected.txt with new (failing) result.
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
Tests: media/media-play-promise-reject-error-notsupported.html
media/media-play-promise-reject-load-abort.html
media/media-play-promise-reject-pause-abort.html
media/media-play-promise-reject-play-notallowed.html
media/media-play-promise-reject-play-notsupported.html
media/media-play-promise-resolve-when-playing.html
media/media-play-promise-resolve.html
The HTML Living Standard Spec <https://html.spec.whatwg.org/multipage/embedded-content.html>
(5 May 2016) adds support for a Promise to be returned by the play() method, to be resolved
or rejected at defined points during loading and playback.
Add utility methods which encapsulate the definitions of the equivalent algorithms from the
HTML Spec. Add a new, overloaded play() method on HTMLMediaElement which takes a DeferredWrapper
reference.
After the change to use scheduleNotifyAboutPlaying() instead of enqueueing the "playing" event
directly, we must ensure that the notifyAboutPlaying() task does not get fired before the
"play" event preceeding it does. So re-implement GenericEventQueue (which previously used
a timer to dispatch events) to use a GenericTaskQueue instead. This ensures that all tasks and
events are interleaved in the order in which they were enqueued.
Additionally, the new pauseAfterDetachedTimerFired() event was firing out of microtask order, which
broke some W3C tests after the changes to GenericEventQueue. Move GenericEventQueue and
GenericTaskQueue to the same timing source (namely, a WebCore Timer) and interleave Events
and Tasks by having GenericEventQueue use GenericTaskQueue to issue its Events. Because
Document::postTask() cannot ensure ordering with Timer-based events, switch HTMLMediaElement
over to Timer-backed GenericTaskQueues.
Use a WeakPtr to track the destruction of TaskDispatcher<Timer> objects in pendingDispatchers().
- dom/GenericEventQueue.cpp:
(WebCore::GenericEventQueue::GenericEventQueue):
(WebCore::GenericEventQueue::enqueueEvent):
(WebCore::GenericEventQueue::close):
(WebCore::GenericEventQueue::cancelAllEvents):
(WebCore::GenericEventQueue::suspend):
(WebCore::GenericEventQueue::resume):
(WebCore::GenericEventQueue::sharedTimer): Deleted.
(WebCore::GenericEventQueue::sharedTimerFired): Deleted.
(WebCore::GenericEventQueue::pendingQueues): Deleted.
- dom/GenericEventQueue.h:
- platform/GenericTaskQueue.cpp: Added.
(WebCore::TaskDispatcher<Timer>::~TaskDispatcher):
(WebCore::TaskDispatcher<Timer>::postTask):
(WebCore::TaskDispatcher<Timer>::sharedTimer):
(WebCore::TaskDispatcher<Timer>::sharedTimerFired):
(WebCore::TaskDispatcher<Timer>::pendingDispatchers):
(WebCore::TaskDispatcher<Timer>::dispatchOneTask):
- platform/GenericTaskQueue.h:
(WebCore::TaskDispatcher<Timer>::TaskDispatcher): Deleted.
(WebCore::TaskDispatcher<Timer>::postTask): Deleted.
(WebCore::TaskDispatcher<Timer>::timerFired): Deleted.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::scheduleResolvePendingPlayPromises):
(WebCore::HTMLMediaElement::rejectPendingPlayPromises):
(WebCore::HTMLMediaElement::resolvePendingPlayPromises):
(WebCore::HTMLMediaElement::scheduleNotifyAboutPlaying):
(WebCore::HTMLMediaElement::notifyAboutPlaying):
(WebCore::HTMLMediaElement::noneSupported):
(WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::playInternal):
(WebCore::HTMLMediaElement::pauseInternal):
(WebCore::HTMLMediaElement::contextDestroyed):
(WebCore::HTMLMediaElement::stop):
(WebCore::HTMLMediaElement::pauseAfterDetachedTask): Renamed from pauseAfterDetachedTimerFired.
(WebCore::HTMLMediaElement::removedFrom):
(WebCore::HTMLMediaElement::contextDestroyed):
- html/HTMLMediaElement.h:
- html/HTMLMediaElement.idl:
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
LayoutTests:
- media/media-play-promise-reject-error-notsupported-expected.txt: Added.
- media/media-play-promise-reject-error-notsupported.html: Added.
- media/media-play-promise-reject-load-abort-expected.txt: Added.
- media/media-play-promise-reject-load-abort.html: Added.
- media/media-play-promise-reject-pause-abort-expected.txt: Added.
- media/media-play-promise-reject-pause-abort.html: Added.
- media/media-play-promise-reject-play-notallowed-expected.txt: Added.
- media/media-play-promise-reject-play-notallowed.html: Added.
- media/media-play-promise-reject-play-notsupported-expected.txt: Added.
- media/media-play-promise-reject-play-notsupported.html: Added.
- media/media-play-promise-resolve-expected.txt: Added.
- media/media-play-promise-resolve-when-playing-expected.txt: Added.
- media/media-play-promise-resolve-when-playing.html: Added.
- media/media-play-promise-resolve.html: Added.
- 1:21 PM Changeset in webkit [200637] by
-
- 12 edits15 deletes in trunk
Unreviewed, rolling out r200627.
https://bugs.webkit.org/show_bug.cgi?id=157531
This change has caused crashes in existing LayoutTests
(Requested by ryanhaddad on #webkit).
Reverted changeset:
"Return a Promise from HTMLMediaElement.play()"
https://bugs.webkit.org/show_bug.cgi?id=157400
http://trac.webkit.org/changeset/200627
Patch by Commit Queue <commit-queue@webkit.org> on 2016-05-10
- 12:31 PM Changeset in webkit [200636] by
-
- 15 edits2 moves in trunk
Fix scrolling tree dumping
https://bugs.webkit.org/show_bug.cgi?id=157529
Reviewed by Tim Horton.
Source/WebCore:
Scrolling tree dumps cannot contain layerIDs because they are not stable between
runs. Fix by adding ScrollingStateTreeAsTextBehavior flags, and not dumping
the layerID for tests.
Sadly RemoteScrollingCoordinatorTransaction has a lot of duplicated code for dumping
the scrolling state tree, which should be converted to dumpProperties() at some point.
Fix the one test that suffered from this problem, and unskip it.
Test: fast/scrolling/ios/remove-scrolling-role.html
- page/scrolling/ScrollingStateFixedNode.cpp:
(WebCore::ScrollingStateFixedNode::dumpProperties):
- page/scrolling/ScrollingStateFixedNode.h:
- page/scrolling/ScrollingStateFrameScrollingNode.cpp:
(WebCore::ScrollingStateFrameScrollingNode::dumpProperties):
- page/scrolling/ScrollingStateFrameScrollingNode.h:
- page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::dump):
(WebCore::ScrollingStateNode::scrollingStateTreeAsText):
- page/scrolling/ScrollingStateNode.h:
- page/scrolling/ScrollingStateOverflowScrollingNode.cpp:
(WebCore::ScrollingStateOverflowScrollingNode::dumpProperties):
- page/scrolling/ScrollingStateOverflowScrollingNode.h:
- page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::dumpProperties):
- page/scrolling/ScrollingStateScrollingNode.h:
- page/scrolling/ScrollingStateStickyNode.cpp:
(WebCore::ScrollingStateStickyNode::dumpProperties):
- page/scrolling/ScrollingStateStickyNode.h:
LayoutTests:
- fast/scrolling/ios/remove-scrolling-role-expected.txt: Renamed from LayoutTests/platform/ios-simulator-wk2/scrolling/remove-scrolling-role-expected.txt.
- fast/scrolling/ios/remove-scrolling-role.html: Renamed from LayoutTests/platform/ios-simulator-wk2/scrolling/remove-scrolling-role.html.
- platform/ios-simulator-wk2/TestExpectations:
- 12:31 PM Changeset in webkit [200635] by
-
- 3 edits in trunk/LayoutTests
Mark fast/scrolling/ios/scroll-events-back-forward-after-pageshow.html as flakey.
- platform/ios-simulator-wk2/TestExpectations:
- platform/ios-simulator/TestExpectations:
- 12:16 PM Changeset in webkit [200634] by
-
- 11 edits2 adds in trunk
Web Inspector: Eliminate the crazy code for evaluateOnCallFrame
https://bugs.webkit.org/show_bug.cgi?id=157510
<rdar://problem/26191332>
Reviewed by Timothy Hatcher.
Source/JavaScriptCore:
- debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::evaluateWithScopeExtension):
Set and clear an optional scope extension object.
- inspector/InjectedScriptSource.js:
(InjectedScript.prototype.evaluate):
(InjectedScript.prototype._evaluateOn):
(InjectedScript.prototype.evaluateOnCallFrame):
Unify the code to use the passed in evaluate function and object.
When evaluating on a call frame the evaluate function ends up being
DebuggerCallFrame::evaluateWithScopeExtension. When evaluating globally
this ends up being JSInjectedScriptHost::evaluateWithScopeExtension.
In both cases "object" is the preferred this object to use.
- debugger/DebuggerCallFrame.h:
- inspector/JSJavaScriptCallFrame.cpp:
(Inspector::JSJavaScriptCallFrame::evaluateWithScopeExtension):
(Inspector::JSJavaScriptCallFrame::evaluate): Deleted.
- inspector/JSJavaScriptCallFrame.h:
- inspector/JSJavaScriptCallFramePrototype.cpp:
(Inspector::JSJavaScriptCallFramePrototype::finishCreation):
(Inspector::jsJavaScriptCallFramePrototypeFunctionEvaluateWithScopeExtension):
- inspector/JavaScriptCallFrame.h:
(Inspector::JavaScriptCallFrame::evaluateWithScopeExtension):
(Inspector::JavaScriptCallFrame::evaluate): Deleted.
Pass through to DebuggerCallFrame with the proper arguments.
- debugger/Debugger.cpp:
(JSC::Debugger::hasBreakpoint):
- inspector/ScriptDebugServer.cpp:
(Inspector::ScriptDebugServer::evaluateBreakpointAction):
Use the new evaluate on call frame method name and no scope extension object.
LayoutTests:
- inspector/debugger/evaluateOnCallFrame-CommandLineAPI-expected.txt: Added.
- inspector/debugger/evaluateOnCallFrame-CommandLineAPI.html: Added.
- 12:08 PM Changeset in webkit [200633] by
-
- 2 edits in trunk/Source/WebCore
Fix the !ENABLE(CSS_REGIONS) build after r198990
https://bugs.webkit.org/show_bug.cgi?id=157516
Reviewed by Ryosuke Niwa.
- style/StyleTreeResolver.cpp:
(WebCore::Style::affectsRenderedSubtree):
- 11:56 AM Changeset in webkit [200632] by
-
- 2 edits in trunk/Source/JavaScriptCore
Make super-property-access.js test run for less time because it was timing out in debug builds.
Rubber stamped by Filip Pizlo.
- tests/stress/super-property-access.js:
(test):
(test.value):
(test.foo):
(test.B.prototype.bar):
(test.B):
- 11:34 AM Changeset in webkit [200631] by
-
- 4 edits in trunk/Source/WebKit2
Fix more deprecation warnings.
- NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:
(NetworkServiceInitializer):
- PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:
(PluginServiceInitializer):
- WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
(WebContentServiceInitializer):
- 10:45 AM Changeset in webkit [200630] by
-
- 2 edits in trunk/Source/WebKit2
[SpeculativeValidation] Do not start a preload if there is already one pending
https://bugs.webkit.org/show_bug.cgi?id=157522
<rdar://problem/26156083>
Reviewed by Alex Christensen.
Do not start a preload if there is already one pending. We failed to check in
SpeculativeLoadManager::preloadEntry() if there was already a pending preload.
As a result, we would sometimes cancel an already pending preload and start
one from scratch which is inefficient. It would also sometimes lead to hitting
an assertion in the SpeculativeLoad destructor because we could destroy the
SpeculativeLoad without finishing or cancelling the load.
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):
- 10:42 AM Changeset in webkit [200629] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Cleanup super getter/setter now that underlying issue is fixed
https://bugs.webkit.org/show_bug.cgi?id=157488
<rdar://problem/26179120>
Patch by Devin Rousso <Devin Rousso> on 2016-05-10
Reviewed by Brian Burg.
Addressed FIXMEs for bug 147064:
<https://webkit.org/b/147064> Getter and setter on super are called with wrong "this" object
- UserInterface/Views/VisualStyleKeywordPicker.js:
(WebInspector.VisualStyleKeywordPicker.prototype.get value):
(WebInspector.VisualStyleKeywordPicker.prototype.set value):
(WebInspector.VisualStyleKeywordPicker.prototype.get synthesizedValue):
(WebInspector.VisualStyleKeywordPicker.prototype._getValue): Deleted.
(WebInspector.VisualStyleKeywordPicker.prototype._setValue): Deleted.
(WebInspector.VisualStyleKeywordPicker.prototype._generateSynthesizedValue): Deleted.
- UserInterface/Views/VisualStyleNumberInputBox.js:
(WebInspector.VisualStyleNumberInputBox.prototype.set specialPropertyPlaceholderElementText):
- UserInterface/Views/VisualStyleTimingEditor.js:
(WebInspector.VisualStyleTimingEditor.prototype.get value):
(WebInspector.VisualStyleTimingEditor.prototype.set value):
(WebInspector.VisualStyleTimingEditor.prototype.get synthesizedValue):
(WebInspector.VisualStyleTimingEditor.prototype._getValue): Deleted.
(WebInspector.VisualStyleTimingEditor.prototype._setValue): Deleted.
(WebInspector.VisualStyleTimingEditor.prototype._generateSynthesizedValue): Deleted.
- 10:32 AM Changeset in webkit [200628] by
-
- 2 edits in trunk/Source/WebKit2
Fix a deprecation warning.
- DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm:
(DatabaseServiceInitializer):
- 10:27 AM Changeset in webkit [200627] by
-
- 12 edits15 adds in trunk
Return a Promise from HTMLMediaElement.play()
https://bugs.webkit.org/show_bug.cgi?id=157400
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
Rebaseline web-platform-tests/html/dom/interfaces-expected.txt with new (failing) result.
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
Tests: media/media-play-promise-reject-error-notsupported.html
media/media-play-promise-reject-load-abort.html
media/media-play-promise-reject-pause-abort.html
media/media-play-promise-reject-play-notallowed.html
media/media-play-promise-reject-play-notsupported.html
media/media-play-promise-resolve-when-playing.html
media/media-play-promise-resolve.html
The HTML Living Standard Spec <https://html.spec.whatwg.org/multipage/embedded-content.html>
(5 May 2016) adds support for a Promise to be returned by the play() method, to be resolved
or rejected at defined points during loading and playback.
Add utility methods which encapsulate the definitions of the equivalent algorithms from the
HTML Spec. Add a new, overloaded play() method on HTMLMediaElement which takes a DeferredWrapper
reference.
After the change to use scheduleNotifyAboutPlaying() instead of enqueueing the "playing" event
directly, we must ensure that the notifyAboutPlaying() task does not get fired before the
"play" event preceeding it does. So re-implement GenericEventQueue (which previously used
a timer to dispatch events) to use a GenericTaskQueue instead. This ensures that all tasks and
events are interleaved in the order in which they were enqueued.
Additionally, the new pauseAfterDetachedTimerFired() event was firing out of microtask order, which
broke some W3C tests after the changes to GenericEventQueue. Move GenericEventQueue and
GenericTaskQueue to the same timing source (namely, a WebCore Timer) and interleave Events
and Tasks by having GenericEventQueue use GenericTaskQueue to issue its Events. Because
Document::postTask() cannot ensure ordering with Timer-based events, switch HTMLMediaElement
over to Timer-backed GenericTaskQueues.
- dom/GenericEventQueue.cpp:
(WebCore::GenericEventQueue::GenericEventQueue):
(WebCore::GenericEventQueue::enqueueEvent):
(WebCore::GenericEventQueue::close):
(WebCore::GenericEventQueue::cancelAllEvents):
(WebCore::GenericEventQueue::suspend):
(WebCore::GenericEventQueue::resume):
(WebCore::GenericEventQueue::sharedTimer): Deleted.
(WebCore::GenericEventQueue::sharedTimerFired): Deleted.
(WebCore::GenericEventQueue::pendingQueues): Deleted.
- dom/GenericEventQueue.h:
- platform/GenericTaskQueue.cpp: Added.
(WebCore::TaskDispatcher<Timer>::~TaskDispatcher):
(WebCore::TaskDispatcher<Timer>::postTask):
(WebCore::TaskDispatcher<Timer>::sharedTimer):
(WebCore::TaskDispatcher<Timer>::sharedTimerFired):
(WebCore::TaskDispatcher<Timer>::pendingDispatchers):
(WebCore::TaskDispatcher<Timer>::dispatchOneTask):
- platform/GenericTaskQueue.h:
(WebCore::TaskDispatcher<Timer>::TaskDispatcher): Deleted.
(WebCore::TaskDispatcher<Timer>::postTask): Deleted.
(WebCore::TaskDispatcher<Timer>::timerFired): Deleted.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::scheduleResolvePendingPlayPromises):
(WebCore::HTMLMediaElement::rejectPendingPlayPromises):
(WebCore::HTMLMediaElement::resolvePendingPlayPromises):
(WebCore::HTMLMediaElement::scheduleNotifyAboutPlaying):
(WebCore::HTMLMediaElement::notifyAboutPlaying):
(WebCore::HTMLMediaElement::noneSupported):
(WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::playInternal):
(WebCore::HTMLMediaElement::pauseInternal):
(WebCore::HTMLMediaElement::contextDestroyed):
(WebCore::HTMLMediaElement::stop):
(WebCore::HTMLMediaElement::pauseAfterDetachedTask): Renamed from pauseAfterDetachedTimerFired.
(WebCore::HTMLMediaElement::removedFrom):
(WebCore::HTMLMediaElement::contextDestroyed):
- html/HTMLMediaElement.h:
- html/HTMLMediaElement.idl:
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
LayoutTests:
- media/media-play-promise-reject-error-notsupported-expected.txt: Added.
- media/media-play-promise-reject-error-notsupported.html: Added.
- media/media-play-promise-reject-load-abort-expected.txt: Added.
- media/media-play-promise-reject-load-abort.html: Added.
- media/media-play-promise-reject-pause-abort-expected.txt: Added.
- media/media-play-promise-reject-pause-abort.html: Added.
- media/media-play-promise-reject-play-notallowed-expected.txt: Added.
- media/media-play-promise-reject-play-notallowed.html: Added.
- media/media-play-promise-reject-play-notsupported-expected.txt: Added.
- media/media-play-promise-reject-play-notsupported.html: Added.
- media/media-play-promise-resolve-expected.txt: Added.
- media/media-play-promise-resolve-when-playing-expected.txt: Added.
- media/media-play-promise-resolve-when-playing.html: Added.
- media/media-play-promise-resolve.html: Added.
- 10:23 AM Changeset in webkit [200626] by
-
- 90 edits in trunk/Source
Get rid of a lot of calls to RefPtr::release()
https://bugs.webkit.org/show_bug.cgi?id=157505
Reviewed by Alex Christensen.
Get rid of a lot of calls to RefPtr::release() and use WTFMove() instead.
Source/WebCore:
- Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::addKeyTimerFired):
(WebCore::MediaKeySession::sendMessage):
(WebCore::MediaKeySession::sendError):
- Modules/geolocation/Geolocation.cpp:
(WebCore::createGeoposition):
- Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
(WebCore::DOMWindowIndexedDatabase::disconnectFrameForDocumentSuspension):
(WebCore::DOMWindowIndexedDatabase::reconnectFrameFromDocumentSuspension):
- Modules/indexeddb/IDBKey.h:
(WebCore::IDBKey::createMultiEntryArray):
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::scheduleEvent):
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::scheduleEvent):
- Modules/mediasource/SourceBufferList.cpp:
(WebCore::SourceBufferList::scheduleEvent):
- Modules/notifications/DOMWindowNotifications.cpp:
(WebCore::DOMWindowNotifications::disconnectFrameForDocumentSuspension):
(WebCore::DOMWindowNotifications::reconnectFrameFromDocumentSuspension):
- Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::openDatabaseBackend):
- Modules/webdatabase/DatabaseManager.h:
- Modules/webdatabase/SQLCallbackWrapper.h:
(WebCore::SQLCallbackWrapper::unwrap):
- Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::enqueueTextFrame):
(WebCore::WebSocketChannel::enqueueRawFrame):
(WebCore::WebSocketChannel::enqueueBlobFrame):
(WebCore::WebSocketChannel::processOutgoingFrameQueue):
- bindings/js/JSBlobCustom.cpp:
(WebCore::constructJSBlob):
- bindings/js/JSGeolocationCustom.cpp:
(WebCore::createPositionOptions):
(WebCore::JSGeolocation::getCurrentPosition):
(WebCore::JSGeolocation::watchPosition):
- bindings/js/JSMessagePortCustom.cpp:
(WebCore::fillMessagePortArray):
- bindings/js/JSSQLTransactionCustom.cpp:
(WebCore::JSSQLTransaction::executeSql):
- bindings/js/ScriptControllerMac.mm:
(WebCore::ScriptController::createScriptInstanceForWidget):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallWith):
- crypto/mac/CryptoKeyRSAMac.cpp:
(WebCore::CryptoKeyRSA::generatePair):
- css/CSSBasicShapes.cpp:
(WebCore::buildSerializablePositionOffset):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForNinePieceImageRepeat):
(WebCore::counterToCSSValue):
(WebCore::ComputedStyleExtractor::propertyValue):
- css/CSSContentDistributionValue.cpp:
(WebCore::CSSContentDistributionValue::customCSSText):
- css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::image):
- css/CSSFilterImageValue.h:
- css/CSSGrammar.y.in:
- css/CSSNamedImageValue.cpp:
(WebCore::CSSNamedImageValue::image):
- css/CSSNamedImageValue.h:
- css/CSSParser.cpp:
(WebCore::CSSParser::parseFillProperty):
(WebCore::CSSParser::parseAnimationProperty):
(WebCore::CSSParser::parseInsetRoundedCorners):
(WebCore::ShadowParseContext::commitLength):
(WebCore::CSSParser::parseShadow):
(WebCore::BorderImageSliceParseContext::commitNumber):
(WebCore::BorderImageQuadParseContext::commitNumber):
(WebCore::CSSParser::parseBorderRadius):
(WebCore::CSSParser::parseCounter):
(WebCore::CSSParser::parseDeprecatedGradient):
(WebCore::CSSParser::parseDeprecatedLinearGradient):
(WebCore::CSSParser::parseDeprecatedRadialGradient):
(WebCore::CSSParser::parseLinearGradient):
(WebCore::CSSParser::parseRadialGradient):
(WebCore::CSSParser::parseTransformValue):
(WebCore::CSSParser::parseBuiltinFilterArguments):
(WebCore::CSSParser::parseTextIndent):
(WebCore::CSSParser::popRuleData):
(WebCore::CSSParser::markRuleHeaderStart):
(WebCore::CSSParser::createViewportRule):
- css/CSSParser.h:
- css/CSSParserValues.cpp:
(WebCore::CSSParserValue::createCSSValue):
- css/CSSParserValues.h:
- css/CSSValueList.cpp:
(WebCore::CSSValueList::copy):
- css/CSSValueList.h:
- css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::svgPropertyValue):
- css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertClipPath):
(WebCore::StyleBuilderConverter::convertReflection):
- css/StyleResolver.cpp:
(WebCore::StyleResolver::cachedOrPendingFromValue):
(WebCore::StyleResolver::setOrPendingFromValue):
(WebCore::StyleResolver::cursorOrPendingFromValue):
- css/StyleResolver.h:
- css/StyleRule.cpp:
(WebCore::StyleRuleBase::createCSSOMWrapper):
- css/StyleRule.h:
- dom/Attr.cpp:
(WebCore::Attr::create):
- dom/Attr.h:
- dom/ContainerNode.h:
(WebCore::ChildNodesLazySnapshot::nextNode):
- dom/Document.cpp:
(WebCore::Document::setFocusedElement):
(WebCore::Document::takeDOMWindowFrom):
(WebCore::Document::updateHoverActiveState):
- dom/Element.cpp:
(WebCore::Element::detachAttribute):
(WebCore::Element::setAttributeNodeNS):
(WebCore::Element::ensureAttr):
- dom/Element.h:
- dom/MessagePort.cpp:
(WebCore::MessagePort::dispatchMessages):
(WebCore::MessagePort::entanglePorts):
- dom/NodeIterator.cpp:
(WebCore::NodeIterator::nextNode):
(WebCore::NodeIterator::previousNode):
- dom/Range.cpp:
(WebCore::Range::processContentsBetweenOffsets):
- dom/StyledElement.cpp:
(WebCore::StyledElement::rebuildPresentationAttributeStyle):
- editing/ApplyBlockElementCommand.cpp:
(WebCore::ApplyBlockElementCommand::createBlockElement):
- editing/ApplyBlockElementCommand.h:
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::applyCommandToComposite):
(WebCore::CompositeEditCommand::appendBlockPlaceholder):
(WebCore::CompositeEditCommand::insertBlockPlaceholder):
(WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):
(WebCore::CompositeEditCommand::insertNewDefaultParagraphElementAt):
(WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
(WebCore::CompositeEditCommand::moveParagraphs):
- editing/CompositeEditCommand.h:
- editing/EditingStyle.cpp:
(WebCore::EditingStyle::wrappingStyleForSerialization):
(WebCore::styleFromMatchedRulesForElement):
(WebCore::extractPropertiesNotIn):
(WebCore::backgroundColorInEffect):
- editing/EditingStyle.h:
- editing/Editor.cpp:
(WebCore::Editor::increaseSelectionListLevel):
(WebCore::Editor::increaseSelectionListLevelOrdered):
(WebCore::Editor::increaseSelectionListLevelUnordered):
(WebCore::Editor::findStringAndScrollToVisible):
(WebCore::Editor::rangeOfString):
- editing/Editor.h:
- editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::cloneHierarchyUnderNewBlock):
- editing/InsertParagraphSeparatorCommand.h:
- editing/MergeIdenticalElementsCommand.cpp:
(WebCore::MergeIdenticalElementsCommand::doUnapply):
- editing/ModifySelectionListLevel.cpp:
(WebCore::IncreaseSelectionListLevelCommand::doApply):
(WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevel):
- editing/ModifySelectionListLevel.h:
- editing/RemoveNodeCommand.cpp:
(WebCore::RemoveNodeCommand::doUnapply):
- editing/RemoveNodePreservingChildrenCommand.cpp:
(WebCore::RemoveNodePreservingChildrenCommand::doApply):
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::insertFragmentForTestRendering):
- editing/SpellingCorrectionCommand.cpp:
(WebCore::SpellingCorrectionCommand::doApply):
- editing/mac/DictionaryLookup.h:
- editing/mac/DictionaryLookup.mm:
(WebCore::DictionaryLookup::rangeForSelection):
(WebCore::DictionaryLookup::rangeAtHitTestResult):
- html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::finishRequestAutocomplete):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::scheduleEvent):
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
(WebCore::HTMLMediaElement::addTextTrack):
(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent):
- html/HTMLMediaElement.h:
- html/canvas/OESVertexArrayObject.cpp:
(WebCore::OESVertexArrayObject::createVertexArrayOES):
- html/canvas/OESVertexArrayObject.h:
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::getContextAttributes):
- html/canvas/WebGLRenderingContextBase.h:
- html/track/VTTCue.cpp:
(WebCore::VTTCue::getCueAsHTML):
(WebCore::VTTCue::createCueRenderingTree):
- html/track/VTTCue.h:
- html/track/WebVTTElement.cpp:
(WebCore::WebVTTElement::createEquivalentHTMLElement):
- html/track/WebVTTElement.h:
- html/track/WebVTTParser.cpp:
(WebCore::WebVTTTreeBuilder::buildFromString):
(WebCore::WebVTTParser::createDocumentFragmentFromCueText):
- html/track/WebVTTParser.h:
Source/WTF:
- wtf/text/AtomicStringImpl.cpp:
(WTF::HashAndUTF8CharactersTranslator::translate):
- wtf/text/CString.cpp:
(WTF::CString::copyBufferIfNeeded):
- wtf/text/StringBuilder.cpp:
(WTF::StringBuilder::allocateBuffer):
(WTF::StringBuilder::allocateBufferUpConvert):
(WTF::StringBuilder::shrinkToFit):
- wtf/text/WTFString.cpp:
(WTF::String::append):
(WTF::String::insert):
(WTF::String::removeInternal):
- wtf/text/WTFString.h:
(WTF::String::String):
(WTF::String::operator=):
(WTF::String::releaseImpl):
(WTF::String::isNull): Deleted.
- 10:05 AM Changeset in webkit [200625] by
-
- 3 edits in trunk/Source/WebCore
Allow some leeway after page load before throttling, to allow post load events to complete.
https://bugs.webkit.org/show_bug.cgi?id=157499
Reviewed by Ryosuke Niwa
- page/PageThrottler.cpp:
(WebCore::PageThrottler::PageThrottler):
- m_pageLoadActivityCounter now affects activity state indirecty, via m_pageLoadActivityHysteresis.
(WebCore::PageThrottler::pageLoadActivityCounterChanged):
- counter updates hysteresis object, which in turn will affect activity state.
- page/PageThrottler.h:
- added m_pageLoadActivityHysteresis, pageLoadActivityCounterChanged.
- 10:05 AM Changeset in webkit [200624] by
-
- 2 edits in trunk/Source/WebKit2
Clicks do not work in Safari after pressing the Track package button in Gmail
https://bugs.webkit.org/show_bug.cgi?id=157508
<rdar://problem/22646404>
Reviewed by Anders Carlsson.
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::viewDidMoveToWindow):
Explicitly cancel the force-click animation when we're removing the gesture
recognizer due to the WK*View being unparented. This works around a bug
where we don't get the cancellation callback in this situation, causing
Safari to be left in an inconsistent and unexpected state.
- 9:34 AM Changeset in webkit [200623] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Fix the !ENABLE(DFG_JIT) build
https://bugs.webkit.org/show_bug.cgi?id=157512
Reviewed by Mark Lam.
- jit/Repatch.cpp:
- 8:27 AM Changeset in webkit [200622] by
-
- 6 edits2 adds in trunk
REGRESSION (r193610): Drop down menu doesn’t expand at allofbach.com
https://bugs.webkit.org/show_bug.cgi?id=157445
Reviewed by Simon Fraser.
When we don't run transitions (becasuse of to/from 'auto' values) we should also not
report the 'from' value and behave as if we finished the transition already.
Source/WebCore:
Test: fast/animation/height-auto-transition-computed-value.html
- page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty): This is a revert of
looping the 'to' value back to the first keyframe when reverse animation is at the start value (last keyframe).
- platform/Length.cpp:
(WebCore::blend):
LayoutTests:
- fast/animation/height-auto-transition-computed-value-expected.html: Added.
- fast/animation/height-auto-transition-computed-value.html: Added.
- imported/blink/transitions/transition-not-interpolable-expected.txt:
- 7:56 AM Changeset in webkit [200621] by
-
- 20 edits7 deletes in trunk
[Linux] Remove seccomp filters support
https://bugs.webkit.org/show_bug.cgi?id=157380
Reviewed by Darin Adler.
.:
- Source/cmake/FindLibSeccomp.cmake: Removed.
- Source/cmake/OptionsEfl.cmake:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/WebKitFeatures.cmake:
Source/WebKit2:
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode): Deleted.
(WebKit::NetworkProcessCreationParameters::decode): Deleted.
- NetworkProcess/NetworkProcessCreationParameters.h:
- PlatformEfl.cmake:
- PlatformGTK.cmake:
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode): Deleted.
(WebKit::WebProcessCreationParameters::decode): Deleted.
- Shared/WebProcessCreationParameters.h:
- Shared/linux/SeccompFilters/OpenSyscall.cpp: Removed.
- Shared/linux/SeccompFilters/OpenSyscall.h: Removed.
- Shared/linux/SeccompFilters/SeccompBroker.cpp: Removed.
- Shared/linux/SeccompFilters/SeccompBroker.h: Removed.
- Shared/linux/SeccompFilters/SeccompFilters.cpp: Removed.
- Shared/linux/SeccompFilters/SeccompFilters.h: Removed.
- Shared/linux/SeccompFilters/SigactionSyscall.cpp: Removed.
- Shared/linux/SeccompFilters/SigactionSyscall.h: Removed.
- Shared/linux/SeccompFilters/SigprocmaskSyscall.cpp: Removed.
- Shared/linux/SeccompFilters/SigprocmaskSyscall.h: Removed.
- Shared/linux/SeccompFilters/Syscall.cpp: Removed.
- Shared/linux/SeccompFilters/Syscall.h: Removed.
- Shared/linux/SeccompFilters/SyscallPolicy.cpp: Removed.
- Shared/linux/SeccompFilters/SyscallPolicy.h: Removed.
- Shared/linux/SeccompFilters/XDGBaseDirectory.h: Removed.
- Shared/linux/SeccompFilters/XDGBaseDirectoryGLib.cpp: Removed.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess): Deleted.
(WebKit::WebProcessPool::createNewWebProcess): Deleted.
(WebKit::WebProcessPool::cookieStorageDirectory): Deleted.
- UIProcess/WebProcessPool.h:
- WebProcess/efl/SeccompFiltersWebProcessEfl.cpp: Removed.
- WebProcess/efl/SeccompFiltersWebProcessEfl.h: Removed.
- WebProcess/gtk/SeccompFiltersWebProcessGtk.cpp: Removed.
- WebProcess/gtk/SeccompFiltersWebProcessGtk.h: Removed.
- WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformInitializeWebProcess): Deleted.
Tools:
- Scripts/webkitperl/FeatureList.pm:
- TestWebKitAPI/PlatformEfl.cmake:
- TestWebKitAPI/PlatformGTK.cmake:
- TestWebKitAPI/Tests/WebKit2/SeccompFilters.cpp: Removed.
- efl/jhbuild.modules:
- gtk/jhbuild.modules:
- 4:41 AM Changeset in webkit [200620] by
-
- 10 edits in trunk
[iOS] <select> elements should render right-aligned when in RTL mode
https://bugs.webkit.org/show_bug.cgi?id=157501
<rdar://problem/26187870>
Reviewed by Antoine Quint.
Source/WebCore:
This is the equivalent of http://webkit.org/b/157112 for iOS.
Handle <select> elements when we're in RTL mode. This means
drawing the button with the drop-down arrow on the left
side, and the button text right-aligned.
Test: fast/forms/select-non-native-rendering-direction.html
plus a bunch of other ones that needed rebaselining.
- rendering/RenderThemeIOS.mm: Rename MenuListButtonPaddingRight to MenuListButtonPaddingAfter.
(WebCore::RenderThemeIOS::popupInternalPaddingBox): Handle both directions.
(WebCore::adjustInputElementButtonStyle):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorations): Handle drawing in
RTL mode.
LayoutTests:
Rebaseline now that iOS is doing the right thing.
- platform/ios-simulator/fast/forms/select-non-native-rendering-direction-expected.txt:
- platform/ios-simulator/fast/forms/listbox-bidi-align-expected.txt:
- platform/ios-simulator/fast/forms/select-writing-direction-natural-expected.txt:
- platform/ios-simulator/fast/text/international/bidi-listbox-atsui-expected.txt:
- platform/ios-simulator/fast/text/international/bidi-listbox-expected.txt:
- platform/ios-simulator/fast/text/international/bidi-menulist-expected.txt:
- platform/ios-simulator/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
- 2:47 AM Changeset in webkit [200619] by
-
- 17 edits2 adds in trunk
NodeList should be iterable
https://bugs.webkit.org/show_bug.cgi?id=131443
<rdar://problem/25731519>
Reviewed by Darin Adler.
Source/WebCore:
Test: fast/dom/nodeListIterator.html
Updating JSKeyValueIterator to support map and set iterators,
depending on the signature of the result type of DOMClass::Iterator::next method.
Symbol.iterator method is made the same as values method for set iterators.
Adding support for NodeList.
Updating FontFaceSet to take benefit of that.
- bindings/js/JSDOMBinding.h:
(WebCore::jsPair):.
- bindings/js/JSKeyValueIterator.h:
(WebCore::IteratorInspector::decltype): IteratorInspector detects whether the iterator is a set or map iterator.
(WebCore::IteratorInspector::test):
(WebCore::fillForEachArgumentsWithIteratorValue): Specializing according set/map iterator.
(WebCore::iteratorValueToJS): Ditto.
(WebCore::keyValueIteratorForEach):
(WebCore::JSKeyValueIterator<JSWrapper>::next):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementationIterableFunctions): Removed the line forbidding set iterators.
Making Symbol.iterator function equal to values for set iterators.
- bindings/scripts/test/JS/JSTestNode.cpp: Rebasing with set iterator functions.
- bindings/scripts/test/JS/JSTestObj.cpp: Rebasing according updated function names.
- bindings/scripts/test/TestNode.idl: Making TestNode set iterable.
- css/FontFaceSet.cpp:
(WebCore::FontFaceSet::Iterator::next): Refactoring to make it a set iterator.
- css/FontFaceSet.h:
- css/FontFaceSet.idl:
- dom/NodeList.h: Making NodeList iterable.
(WebCore::NodeList::Iterator::Iterator):
(WebCore::NodeList::Iterator::next):
(WebCore::NodeList::createIterator):
- dom/NodeList.idl:
LayoutTests:
- fast/dom/domListEnumeration-expected.txt:
- fast/dom/nodeListIterator-expected.txt: Added.
- fast/dom/nodeListIterator.html: Added.
- fast/dom/script-tests/domListEnumeration.js:
- fast/text/font-face-set-javascript-expected.txt:
- fast/text/font-face-set-javascript.html:
- 12:46 AM Changeset in webkit [200618] by
-
- 8 edits17 adds in trunk
[css-grid] Implement auto-repeat computation
https://bugs.webkit.org/show_bug.cgi?id=157473
Reviewed by Darin Adler.
Source/WebCore:
We added support for parsing and style for the new auto-repeat syntax. This patch actually
implements the feature by computing the number of auto-repeat tracks that will be part of
the explicit grid depending on the available size on the corresponding axis.
Note that we still do not drop the empty tracks, i.e., auto-fit will work exactly as
auto-fill until the empty track removal is implemented.
Some test results are not totally correct yet because we need to add the line names to the
computed style. As that requires a rather large piece of code it will be done in a follow up
patch. Track sizes are correct though.
Tests: fast/css-grid-layout/grid-auto-fill-columns.html
fast/css-grid-layout/grid-auto-fill-rows.html
fast/css-grid-layout/grid-change-auto-repeat-tracks.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-004.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005.html
- css/CSSParser.cpp:
(WebCore::CSSParser::parseGridTrackRepeatFunction): Add the CSSAutoRepeatValue directly
instead of adding the track size.
- css/StyleBuilderCustom.h: Store the insertion point in style.
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::guttersSize): Replaced size_t by unsigned.
(WebCore::RenderGrid::rawGridTrackSize): New function which retrieves the track size from
either explicit (including auto-repeat tracks) or implicit tracks.
(WebCore::RenderGrid::gridTrackSize): Use rawGridTrackSize().
(WebCore::RenderGrid::computeAutoRepeatTracksCount): This is the core of the patch. This
method computes the number of auto-repeat tracks that fits on the available size for a given
axis (or 1 if that's indefinite).
- rendering/RenderGrid.h:
LayoutTests:
Apart from some home made tests I'm importing 5 patches from Mozilla's test suite as they
perfectly test the behavior of auto-repeat with positioned items. I've commented auto-fit
tests as that feature isn't implemented yet.
- fast/css-grid-layout/grid-auto-fill-columns-expected.txt: Added.
- fast/css-grid-layout/grid-auto-fill-columns.html: Added.
- fast/css-grid-layout/grid-auto-fill-rows-expected.txt: Added.
- fast/css-grid-layout/grid-auto-fill-rows.html: Added.
- fast/css-grid-layout/grid-change-auto-repeat-tracks-expected.txt: Added.
- fast/css-grid-layout/grid-change-auto-repeat-tracks.html: Added.
- fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
- fast/css-grid-layout/grid-element-auto-repeat-get-set.html:
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001-expected.html: Added.
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001.html: Added.
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002-expected.html: Added.
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002.html: Added.
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003-expected.html: Added.
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003.html: Added.
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-004-expected.html: Added.
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-004.html: Added.
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-expected.html: Added.
- fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005.html: Added.