Timeline
Nov 10, 2014:
- 11:59 PM Changeset in webkit [175857] by
-
- 2 edits in branches/safari-600.3-branch/Source/WebKit2
Merged r175711. rdar://problems/18893079
- 11:55 PM Changeset in webkit [175856] by
-
- 3 edits in branches/safari-600.3-branch/Source/WebKit2
Merged r175705. rdar://problems/18892496
- 11:49 PM Changeset in webkit [175855] by
-
- 2 edits in branches/safari-600.3-branch/Source/WebKit2
Merged r175704. rdar://problems/18869036
- 11:43 PM Changeset in webkit [175854] by
-
- 2 edits in branches/safari-600.3-branch/Source/WebKit2
Merged r175702. rdar://problems/18872825
- 11:38 PM Changeset in webkit [175853] by
-
- 2 edits in branches/safari-600.3-branch/Source/WebKit2
Merged r175701. rdar://problems/18768377
- 11:19 PM Changeset in webkit [175852] by
-
- 5 edits in trunk/Source/WebCore
Lazily create HTMLInputElement's inputType and shadow subtree
https://bugs.webkit.org/show_bug.cgi?id=138524
Reviewed by Ryosuke Niwa.
When an HTMLInputElement was created by the parser, we would first call
HTMLInputElement::create(), then call Element::parserSetAttributes() on
the constructed input. With the previous implementation, this was a bit
inefficient because HTMLInputElement::create() would construct a
TextInputType inputType (as this is the default) as well as its
corresponding shadow subtree. Then, parserSetAttributes() would often
set the |type| attribute and would need to destroy this input type as
well as its subtree if the new |type| is not 'text', to create a new
inputType / shadow subtree of the right type. The profiler showed that
this was fairly expensive.
To improve this, this patch delays the inputType / shadow subtree
creation when the HTMLInputElement is constructed by the parser, until
the attributes are actually set by the parser. This way, we directly
create an inputType / shadow subtree of the right type.
I see a 1.4% speed up on speedometer (73.95 -> 75.0).
No new tests, no behavior change.
- dom/Element.cpp:
(WebCore::Element::parserSetAttributes):
(WebCore::Element::parserDidFinishParsingAttributes):
- dom/Element.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::HTMLInputElement):
(WebCore::HTMLInputElement::create):
(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::runPostTypeUpdateTasks):
(WebCore::HTMLInputElement::ensureInputType):
(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::parserDidFinishParsingAttributes):
- html/HTMLInputElement.h:
- 10:11 PM Changeset in webkit [175851] by
-
- 2 edits in trunk/Source/WebKit2
Fix possible crash when closing the web inspector
https://bugs.webkit.org/show_bug.cgi?id=138597
rdar://problem/18872688
Reviewed by Andreas Kling.
I reported a crash when reloading a page after inspecting it, possibly caused by
r172864. Speculatively fix by null-checking the main frame.
- WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::~WebInspectorClient):
- 8:58 PM Changeset in webkit [175850] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Update Esprima, remove WebInspector.Esprima global.
https://bugs.webkit.org/show_bug.cgi?id=138579
Reviewed by Timothy Hatcher.
Update esprima.js file to be unchanged by removing WebInspector.Esprima global object. Move esprima.js include
so that all external libraries load before the WebInspector namespace is declared in the combined Main.js.
- UserInterface/External/Esprima/esprima.js: File updated, no changes made.
- UserInterface/Main.html: esprima.js script tag moved up with other externals.
- UserInterface/Models/ScriptSyntaxTree.js: WebInspector.Esprima changed to esprima
(WebInspector.ScriptSyntaxTree):
- 8:32 PM Changeset in webkit [175849] by
-
- 2 edits in trunk/Source/JavaScriptCore
Assertion fix for debug builds after r175846.
PropertySlot::slotBase() will assert if the slot is unset, so reorder
the tests to check for isCacheableValue() first.
- jit/Repatch.cpp:
(JSC::tryCacheGetByID):
- 7:49 PM Changeset in webkit [175848] by
-
- 9 edits8 adds in trunk
Source/WebCore:
Add parsing support for the extended :nth-last-child(An+B of selector-list) defined
https://bugs.webkit.org/show_bug.cgi?id=138520
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-11-10
Reviewed by Andreas Kling.
Add parsing for :nth-last-child(An+B of selector-list). The selector is defined
in CSS Selectors Level 4: http://dev.w3.org/csswg/selectors4/#the-nth-last-child-pseudo
Tests: fast/css/parsing-css-nth-last-child-of-1.html
fast/css/parsing-css-nth-last-child-of-2.html
fast/css/parsing-css-nth-last-child-of-3.html
fast/css/parsing-css-nth-last-child-of-4.html
- css/CSSGrammar.y.in:
- css/CSSParser.cpp:
(WebCore::CSSParser::detectFunctionTypeToken):
- css/CSSSelector.cpp:
(WebCore::CSSSelector::selectorText):
LayoutTests:
Add parsing support for the extended :nth-last-child(An+B of selector-list)
https://bugs.webkit.org/show_bug.cgi?id=138520
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-11-10
Reviewed by Andreas Kling.
All the tests are variations of the existing tests for :nth-child(An+B of selector-list).
- fast/css/css-selector-text-expected.txt:
- fast/css/css-selector-text.html:
- fast/css/css-set-selector-text-expected.txt:
- fast/css/css-set-selector-text.html:
- fast/css/parsing-css-nth-last-child-of-1-expected.txt: Added.
- fast/css/parsing-css-nth-last-child-of-1.html: Added.
- fast/css/parsing-css-nth-last-child-of-2-expected.txt: Added.
- fast/css/parsing-css-nth-last-child-of-2.html: Added.
- fast/css/parsing-css-nth-last-child-of-3-expected.txt: Added.
- fast/css/parsing-css-nth-last-child-of-3.html: Added.
- fast/css/parsing-css-nth-last-child-of-4-expected.txt: Added.
- fast/css/parsing-css-nth-last-child-of-4.html: Added.
- 7:25 PM Changeset in webkit [175847] by
-
- 6 edits3 adds in trunk
Source/WebCore:
SVG foreign objects do not inherit the container coordinates system if they are repainted.
https://bugs.webkit.org/show_bug.cgi?id=138481.
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2014-11-10
Reviewed by Simon Fraser.
If a foreign object is included in an SVG, it should inherit the coordinates system
of the container if it is repainted. The foreign object is actually redrawn in the
CSS coordinates system regardless of the transformation that may be applied to the
container.
The bug is RenderSVG* classes use computeFloatRectForRepaint(), but the rest of the
render classes use computeRectForRepaint(). RenderSVGForeignObject::computeRectForRepaint()
was not defined, so we end up hitting RenderObject::computeRectForRepaint() for
a RenderSVGTransformableContainer and completely miss the transform.
Tests: svg/transforms/svg-transform-foreign-object-repaint.html
Implement RenderSVGForeignObject::computeRectForRepaint() so we can apply the
container transformation on the SVG foreign object repaint rectangle.
- rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::computeRectForRepaint):
- rendering/svg/RenderSVGForeignObject.h:
LayoutTests:
SVG foreign objects do not inherit the container coordinates system if they are repainted..
https://bugs.webkit.org/show_bug.cgi?id=138481.
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2014-11-10
Reviewed by Simon Fraser.
Ensure the repaint rectangle of the SVG foreign object is calculated correctly
when the container element has transformation.
- svg/transforms/svg-transform-foreign-object-repaint-expected.png: Added.
- svg/transforms/svg-transform-foreign-object-repaint-expected.txt: Added.
- svg/transforms/svg-transform-foreign-object-repaint.html: Added.
Re-baseline these tests since the render tree dumping uses renderer.absoluteClippedOverflowRect()
in writePositionAndStyle() to get the object rectangle so this issue only affects test output.
- svg/zoom/page/zoom-foreign-content-expected.txt:
- platform/mac/svg/zoom/page/zoom-foreignObject-expected.txt:
- 7:10 PM Changeset in webkit [175846] by
-
- 6 edits3 adds in trunk
The JIT should cache property lookup misses.
<https://webkit.org/b/135578>
Source/JavaScriptCore:
Add support for inline caching of missed property lookups.
Previously this would banish us to C++ slow path.
It's implemented as a simple GetById cache that returns jsUndefined()
as long as the Structure chain check passes. There's no DFG exploitation
of this knowledge in this patch.
Test: js/regress/undefined-property-access.js (~5.5x speedup)
Reviewed by Filip Pizlo.
- bytecode/PolymorphicGetByIdList.h:
- bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeForStubInfo):
Add GetByIdAccess::SimpleMiss so we can communicate to the DFG that
the access has been cached.
- jit/Repatch.cpp:
(JSC::toString):
(JSC::kindFor):
(JSC::generateByIdStub):
(JSC::tryCacheGetByID):
(JSC::tryBuildGetByIDList):
Added a GetUndefined stub kind, just a simple "store jsUndefined()" snippet.
Use this to cache missed lookups, piggybacking mostly on the GetValue kind.
- runtime/PropertySlot.h:
(JSC::PropertySlot::isUnset):
Exposed the unset state so PropertySlot can communicate that lookup failed.
LayoutTests:
Add a JSRegress test for caching of property lookup misses.
There are three subtests:
- Pure speed test.
- Test for when a property previously cached as missing suddenly appears on the object.
- Same as (2), but it appears on the prototype.
The test runs ~5.5x faster with the optimization.
Reviewed by Filip Pizlo.
- js/regress/script-tests/undefined-property-access.js: Added.
(foo):
(bar):
(baz):
- js/regress/undefined-property-access-expected.txt: Added.
- js/regress/undefined-property-access.html: Added.
- 7:05 PM Changeset in webkit [175845] by
-
- 9 edits in trunk/Source/JavaScriptCore
Add scope operand to op_create_lexical_environment
https://bugs.webkit.org/show_bug.cgi?id=138588
Reviewed by Geoffrey Garen.
Added a second operand to op_create_lexical_environment that contains the scope register
to update. Note that the DFG relies on operationCreateActivation() to update the
scope register since we can't issue a set() with a non-local, non-argument register.
This is temporary until the scope register is allocated as a local.
- bytecode/BytecodeList.json:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
Added the scope register operand.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
Filled in the scope register operand.
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_create_lexical_environment):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_create_lexical_environment):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
Set the scope register with the result of the appropriate create activation slow call.
- 5:47 PM Changeset in webkit [175844] by
-
- 7 edits in trunk/Source/WebCore
Use std::unique_ptr<> and std::make_unique<> in WebCore
https://bugs.webkit.org/show_bug.cgi?id=138560
Reviewed by Chris Dumez.
Clean up unused OwnPtr.h and PassOwnPtr.h and use std::unique_ptr.
No new tests, no behavior changes.
- Modules/encryptedmedia/CDMPrivateMediaPlayer.h:
- dom/ContainerNode.h:
- dom/ElementIteratorAssertions.h:
(WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
- dom/ElementRareData.h:
- page/DragController.h:
- rendering/RenderView.h:
- 5:37 PM Changeset in webkit [175843] by
-
- 1 edit2 adds in trunk/LayoutTests
Test that complext and fast text codepaths measure the same width
https://bugs.webkit.org/show_bug.cgi?id=138581
Reviewed by Simon Fraser.
- fast/text/space-width-expected.html: Added.
- fast/text/space-width.html: Added.
- 5:21 PM Changeset in webkit [175842] by
-
- 7 edits in trunk/Source
WK1: Support default actions for editable text with misspelled word
https://bugs.webkit.org/show_bug.cgi?id=138590
-and corresponding-
rdar://problem/18877506
Reviewed by Tim Horton.
Source/WebCore:
- WebCore.exp.in:
Source/WebKit/mac:
If there are misspelled word suggestions for editable text, create a new type of
menu with a spelling suggestion sub-menu.
- WebView/WebActionMenuController.mm:
(-[WebActionMenuController isMenuForTextContent]):
(-[WebActionMenuController _defaultMenuItemsForEditableTextWithSuggestions:]):
(-[WebActionMenuController _changeSelectionToSuggestion:]):
(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):
- WebView/WebHTMLView.mm:
(-[WebHTMLView _changeSpellingToWord:]):
- WebView/WebHTMLViewInternal.h:
- WebView/WebUIDelegatePrivate.h:
- 5:16 PM Changeset in webkit [175841] by
-
- 64 edits1 copy3 moves in trunk/LayoutTests
http tests should not use shared temporary files
https://bugs.webkit.org/show_bug.cgi?id=138583
Reviewed by Tim Horton.
Made some of the scripts that write to files take a path argument, and made others
more strictly serve only one test.
This way, we don't race for any files.
- http/tests/appcache/fail-on-update-2.html:
- http/tests/appcache/fallback.html:
- http/tests/appcache/main-resource-fallback-for-network-error-crash.html:
- http/tests/appcache/main-resource-hash.html:
- http/tests/appcache/main-resource-redirect.html:
- http/tests/appcache/multi-fallback.html:
- http/tests/appcache/non-html.xhtml:
- http/tests/appcache/offline-access.html:
- http/tests/appcache/online-whitelist.html:
- http/tests/appcache/remove-cache.html:
- http/tests/appcache/resources/counter.php: Removed.
- http/tests/appcache/resources/fail-on-update-2.php:
- http/tests/appcache/resources/fail-on-update.php:
- http/tests/appcache/resources/main-resource-redirect-frame.php:
- http/tests/appcache/resources/main-resource-redirect.manifest:
- http/tests/appcache/resources/non-html.manifest:
- http/tests/appcache/resources/offline-access-frame.html:
- http/tests/appcache/resources/offline-access.js:
- http/tests/appcache/resources/offline-access.manifest:
- http/tests/appcache/resources/online-whitelist.manifest:
- http/tests/appcache/resources/online-whitelist.php: Copied from LayoutTests/http/tests/appcache/resources/counter.php.
- http/tests/appcache/resources/remove-cache-frame-2.html:
- http/tests/appcache/resources/remove-cache-frame.html:
- http/tests/appcache/resources/remove-cache.php: Copied from LayoutTests/http/tests/appcache/resources/fail-on-update.php.
- http/tests/appcache/resources/update-cache.php: Copied from LayoutTests/http/tests/appcache/resources/versioned-manifest.php.
- http/tests/appcache/resources/versioned-manifest.php: Removed.
- http/tests/appcache/update-cache.html:
- http/tests/cache/network-error-during-revalidation.html:
- http/tests/cache/post-redirect-get.php:
- http/tests/cache/post-with-cached-subresources.php:
- http/tests/cache/reload-main-resource.php:
- http/tests/cache/resources/network-error-during-revalidation-frame.html:
- http/tests/cache/resources/partitioned-cache-echo-state.php:
- http/tests/cache/resources/partitioned-cache-loader.html:
- http/tests/cache/resources/post-image-to-verify.php:
- http/tests/cache/resources/reload-main-resource-iframe.php:
- http/tests/cache/stopped-revalidation.html:
- http/tests/cache/subresource-fragment-identifier.html:
- http/tests/css/border-image-loading.html:
- http/tests/css/css-image-loading.html:
- http/tests/css/mask-image-loading.html:
- http/tests/css/reflection-mask-image-loading.html:
- http/tests/css/resources/request-logging.js:
- http/tests/loading/preload-img-test.html:
- http/tests/local/link-stylesheet-load-order-preload.html:
- http/tests/local/link-stylesheet-load-order.html:
- http/tests/misc/link-rel-prefetch-and-subresource.html:
- http/tests/resources/network-simulator.php:
- http/tests/resources/tripmine.php: Removed.
- http/tests/xmlhttprequest/access-control-preflight-async-header-denied-expected.txt:
- http/tests/xmlhttprequest/access-control-preflight-async-header-denied.html:
- http/tests/xmlhttprequest/access-control-preflight-async-method-denied-expected.txt:
- http/tests/xmlhttprequest/access-control-preflight-async-method-denied.html:
- http/tests/xmlhttprequest/access-control-preflight-async-not-supported-expected.txt:
- http/tests/xmlhttprequest/access-control-preflight-async-not-supported.html:
- http/tests/xmlhttprequest/access-control-preflight-headers-async.html:
- http/tests/xmlhttprequest/access-control-preflight-headers-sync.html:
- http/tests/xmlhttprequest/access-control-preflight-sync-header-denied-expected.txt:
- http/tests/xmlhttprequest/access-control-preflight-sync-header-denied.html:
- http/tests/xmlhttprequest/access-control-preflight-sync-method-denied-expected.txt:
- http/tests/xmlhttprequest/access-control-preflight-sync-method-denied.html:
- http/tests/xmlhttprequest/access-control-preflight-sync-not-supported-expected.txt:
- http/tests/xmlhttprequest/access-control-preflight-sync-not-supported.html:
- http/tests/xmlhttprequest/redirect-cross-origin-tripmine.html:
- http/tests/xmlhttprequest/resources/access-control-preflight-denied-xsrf.php:
- http/tests/xmlhttprequest/resources/no-custom-header.php:
- http/tests/xmlhttprequest/resources/redirect-cross-origin-tripmine.php: Copied from LayoutTests/http/tests/resources/tripmine.php.
- http/tests/xmlhttprequest/state-after-network-error.html:
- http/tests/xmlhttprequest/xmlhttprequest-responseURL-expected.txt:
- http/tests/xmlhttprequest/xmlhttprequest-responseURL.html:
- 5:15 PM Changeset in webkit [175840] by
-
- 5 edits in branches/safari-600.2-branch/Source
Versioning.
- 5:13 PM Changeset in webkit [175839] by
-
- 1 copy in tags/Safari-600.2.2
New Tag.
- 4:39 PM Changeset in webkit [175838] by
-
- 4 edits2 adds in trunk/Source/WebInspectorUI
Web Inspector: Add infrastructure for eslint based static analyzer
https://bugs.webkit.org/show_bug.cgi?id=137890
Reviewed by Timothy Hatcher.
Fix to previous patch to add AnalyzerManager and AnalyzerMessage classes. Changed Main.html to include ESLint.js
before Main.js in the combined resources.
- UserInterface/Base/Main.js:
- UserInterface/Controllers/AnalyzerManager.js: Added.
(WebInspector.AnalyzerManager):
(set WebInspector.AnalyzerManager.prototype.getAnalyzerMessagesForSourceCode.):
(set WebInspector.AnalyzerManager.prototype.getAnalyzerMessagesForSourceCode):
(set WebInspector.AnalyzerManager.prototype.set get sourceCodeCanBeAnalyzed):
(set WebInspector.AnalyzerManager.prototype._handleSourceCodeContentDidChange):
- UserInterface/Main.html:
- UserInterface/Models/AnalyzerMessage.js: Added.
(WebInspector.AnalyzerMessage):
(WebInspector.AnalyzerMessage.prototype.get sourceCodeLocation):
(WebInspector.AnalyzerMessage.prototype.get sourceCode):
(WebInspector.AnalyzerMessage.prototype.get text):
(WebInspector.AnalyzerMessage.prototype.get ruleIdentifier):
- UserInterface/Models/SourceCode.js:
- 4:04 PM Changeset in webkit [175837] by
-
- 3 edits in trunk/Source/WebKit/mac
WK1: Support default actions for editable whitespace
https://bugs.webkit.org/show_bug.cgi?id=138586
-and corresponding-
rdar://problem/18932048
Reviewed by Tim Horton.
New menu type. Just wants paste.
- WebView/WebActionMenuController.mm:
(-[WebActionMenuController isMenuForTextContent]):
(-[WebActionMenuController _defaultMenuItemsForWhitespaceInEditableArea:]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):
- WebView/WebUIDelegatePrivate.h:
- 4:02 PM Changeset in webkit [175836] by
-
- 19 edits in trunk/Source/WebCore
Remove unnecessary null check in FrameSelection::nodeWillBeRemoved()
https://bugs.webkit.org/show_bug.cgi?id=138578
Reviewed by Andreas Kling.
Remove unnecessary null check in FrameSelection::nodeWillBeRemoved()
and turn the argument into a reference to make it clear it cannot be
null.
No new tests, no behavior change.
- dom/ContainerNode.cpp:
(WebCore::ContainerNode::willRemoveChild):
- dom/Document.cpp:
(WebCore::Document::nodeChildrenWillBeRemoved):
(WebCore::Document::nodeWillBeRemoved):
- dom/Document.h:
- dom/NodeIterator.cpp:
(WebCore::NodeIterator::nodeWillBeRemoved):
(WebCore::NodeIterator::updateForNodeRemoval):
- dom/NodeIterator.h:
- dom/Range.cpp:
(WebCore::Range::insertNode):
(WebCore::boundaryNodeWillBeRemoved):
(WebCore::Range::nodeWillBeRemoved):
- dom/Range.h:
- dom/RangeBoundaryPoint.h:
(WebCore::RangeBoundaryPoint::setToBeforeChild):
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::updatePositionForNodeRemovalPreservingChildren):
- editing/CompositeEditCommand.h:
- editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::removeNode):
(WebCore::DeleteSelectionCommand::handleGeneralDelete):
(WebCore::DeleteSelectionCommand::removeRedundantBlocks):
- editing/FrameSelection.cpp:
(WebCore::removingNodeRemovesPosition):
(WebCore::DragCaretController::nodeWillBeRemoved):
(WebCore::FrameSelection::nodeWillBeRemoved):
(WebCore::FrameSelection::respondToNodeModification):
- editing/FrameSelection.h:
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
- editing/htmlediting.cpp:
(WebCore::updatePositionForNodeRemoval):
- editing/htmlediting.h:
- page/EventHandler.cpp:
(WebCore::EventHandler::nodeWillBeRemoved):
- page/EventHandler.h:
- 3:55 PM Changeset in webkit [175835] by
-
- 2 edits in trunk/Source/WebKit2
Whitespace action menus aren't working properly
https://bugs.webkit.org/show_bug.cgi?id=138585
-and corresponding-
rdar://problem/18933586
Reviewed by Tim Horton.
Treat the whitespace menu as a text menu.
- UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController isMenuForTextContent]):
- 3:23 PM Changeset in webkit [175834] by
-
- 1 edit2 adds in trunk/LayoutTests
Add test for fix of REGRESSION (r174985-174986): Site display disappears
https://bugs.webkit.org/show_bug.cgi?id=138470
Reviewed by Geoffrey Garen.
This checks that document.write() and document.writeln() are cached and the same instance
is always returned.
- js/dom/document-write-functions-cached-expected.txt: Added.
- js/dom/document-write-functions-cached.html: Added.
- 2:48 PM Changeset in webkit [175833] by
-
- 3 edits in trunk/Source/WebCore
Fix the build when CSS Selectors Level 4 is disabled
https://bugs.webkit.org/show_bug.cgi?id=138533
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-11-10
- css/CSSSelector.cpp:
(WebCore::appendArgumentList):
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementLinkMatching):
- 2:36 PM Changeset in webkit [175832] by
-
- 3 edits in trunk/Source/WebKit/mac
WK1: Support default actions for editable text
https://bugs.webkit.org/show_bug.cgi?id=138580
-and corresponding-
rdar://problem/18877497
Reviewed by Tim Horton.
New menu type, and new action type for paste.
- WebView/WebActionMenuController.mm:
(-[WebActionMenuController isMenuForTextContent]):
(-[WebActionMenuController willOpenMenu:withEvent:]):
(-[WebActionMenuController _defaultMenuItemsForEditableText:]):
(-[WebActionMenuController _paste:]):
(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):
- WebView/WebUIDelegatePrivate.h:
- 2:12 PM Changeset in webkit [175831] by
-
- 4 edits in trunk/Source/WebKit/mac
WK1: Text is getting selected even when an action menu fails to invoke
https://bugs.webkit.org/show_bug.cgi?id=138576
-and corresponding-
rdar://problem/18931330
Reviewed by Tim Horton.
Selection changes should happen in willOpenMenu: instead of prepareForMenu:
- WebView/WebActionMenuController.h:
- WebView/WebActionMenuController.mm:
(-[WebActionMenuController prepareForMenu:withEvent:]):
(-[WebActionMenuController willOpenMenu:withEvent:]):
_selectLookupText no longer needs to return a BOOL indicating success or failure.
(-[WebActionMenuController _selectLookupText]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):
Pass willOpenMenu: on to the controller.
- WebView/WebView.mm:
(-[WebView willOpenMenu:withEvent:]):
- 2:05 PM Changeset in webkit [175830] by
-
- 2 edits in trunk/Source/WebCore
Support throttling of DOMTimers using nested setTimeout() calls
https://bugs.webkit.org/show_bug.cgi?id=138262
Reviewed by Gavin Barraclough.
Extend DOMTimers throttling support to timers that are using nested
setTimeout() calls instead of a setInterval(). To achieve this, this
patch introduces a NestedTimersMap singleton class where nested timers
are added, and for which we potentially update the next firing time,
after the parent timer is done executing.
I have verified this helps on ebay.com for example, which has timers
interacting with non-visible plugins that are scheduled using nested
setTimeout() calls with a frequency of 150 / 200 ms.
This is a second take on r175441, which caused intermittent crashes.
This time, nested timers are removed from the NestedTimersMap when
DOMTimer::removeById() is called. It would be unsafe to use the nested
timer afterwards because we don't hold a strong reference to it and
the ScriptExecutionContext is unref'ing the DOMTimer when
ScriptExecutionContext::removeTimeout() is called from
DOMTimer::removeById().
- page/DOMTimer.cpp:
(WebCore::NestedTimersMap::NestedTimersMap):
(WebCore::NestedTimersMap::~NestedTimersMap):
(WebCore::NestedTimersMap::add):
(WebCore::NestedTimersMap::remove):
(WebCore::NestedTimersMap::begin):
(WebCore::NestedTimersMap::end):
(WebCore::DOMTimer::install):
(WebCore::DOMTimer::removeById):
(WebCore::DOMTimer::fired):
- 2:01 PM Changeset in webkit [175829] by
-
- 2 edits in trunk/Tools
Unreviewed, moved myself to the list of committers.
- Scripts/webkitpy/common/config/contributors.json:
- 1:48 PM Changeset in webkit [175828] by
-
- 2 edits in trunk/Source/WebCore
[EME][Mac] Add a systemCode to distinguish when no expired sessions were found in response to a "keyrelease" message.
https://bugs.webkit.org/show_bug.cgi?id=138199
Reviewed by Eric Carlson.
Clients may want to be able to distinguish between cases where expired session data is not supported, and when
those data are supported, but none are found.
- platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
(WebCore::CDMSessionMediaSourceAVFObjC::generateKeyReleaseMessage):
- 1:39 PM Changeset in webkit [175827] by
-
- 4 edits in trunk/Source/WebKit2
[iOS WK2] Scroll deceleration rate is wrong
https://bugs.webkit.org/show_bug.cgi?id=138574
rdar://problem/18715303
Reviewed by Benjamin Poulain.
The CSS Snap Points code incorrectly set the WKScrollView's deceleration rate,
overriding the custom value that UIWebScrollView sets.
Fix by having WKScrollView store the custom rate at init time, and
using that value in -scrollViewWillBeginDragging:.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView scrollViewWillBeginDragging:]):
- UIProcess/ios/WKScrollView.h:
- UIProcess/ios/WKScrollView.mm:
(-[WKScrollView initWithFrame:]):
- 12:43 PM Changeset in webkit [175826] by
-
- 6 edits in trunk
REGRESSION(r174823): Several tests fail due to canplaythrough firing before tracks are available
https://bugs.webkit.org/show_bug.cgi?id=137882
Reviewed by Eric Carlson.
Source/WebCore:
For HLS streams with only one video, audio, or text track, there will be no media selection group
for that media characteristic. When culling out AVPlayerItemTracks in tracksDidChange(), do not skip
tracks for which there is no matching AVMediaSelectionGroup.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasLoadedMediaSelectionGroups): Refactored.
(WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForLegibleMedia): Call above.
(WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForAudibleMedia): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForVisualMedia): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange):
LayoutTests:
- platform/mac/TestExpectations:
- platform/mac/http/tests/media/hls/video-controls-live-stream-expected.txt:
- 12:39 PM Changeset in webkit [175825] by
-
- 2 edits in trunk/Source/WebKit/mac
Speculative build fix.
- WebView/WebActionMenuController.mm:
- 12:33 PM Changeset in webkit [175824] by
-
- 10 edits6 deletes in trunk
Unreviewed, rolling out r175813.
https://bugs.webkit.org/show_bug.cgi?id=138573
Breaks complex text layout spacing (Requested by litherum on
#webkit).
Reverted changeset:
"[OSX] Some words are placed on top of each other in complex
text layout"
https://bugs.webkit.org/show_bug.cgi?id=138348
http://trac.webkit.org/changeset/175813
- 12:31 PM Changeset in webkit [175823] by
-
- 2 edits in trunk/Source/WebCore
Rolling out failed build fix
http://trac.webkit.org/changeset/175819
- WebCore.exp.in:
- 12:31 PM Changeset in webkit [175822] by
-
- 2 edits in trunk/Source/WebKit2
Reset WebPageProxy's isPlayingAudio state after web process crash or page invalidation.
https://bugs.webkit.org/show_bug.cgi?id=138559
Reviewed by Andreas Kling.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetState):
- 12:25 PM Changeset in webkit [175821] by
-
- 2 edits in trunk/Source/WebKit/mac
Action menu initialization should be moved to _commonInitializationWithFrameName
https://bugs.webkit.org/show_bug.cgi?id=138572
-and corresponding-
rdar://problem/18929733
Reviewed by Tim Horton.
- WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _initWithFrame:frameName:groupName:]):
- 12:18 PM Changeset in webkit [175820] by
-
- 2 edits in trunk/Source/WebCore
Speculative build fix.
- WebCore.exp.in:
- 12:15 PM Changeset in webkit [175819] by
-
- 2 edits in trunk/Source/WebCore
Speculative build fix.
- WebCore.exp.in:
- 12:03 PM Changeset in webkit [175818] by
-
- 3 edits in trunk/Source/WebCore
[iOS WK2] Layers with negative z position disapear behind the page tiles
https://bugs.webkit.org/show_bug.cgi?id=138571
rdar://problem/18873480
Reviewed by Dean Jackson.
Some crufty iOS-only code in RenderLayerBacking::parentForSublayers() caused us to fail
to use the m_childContainmentLayer as the ancestor for descendants, so layers with
negative z position would get depth-sorted behind the tiles.
Fix by removing that code.
This should have been detected by compositing/tile-cache-must-flatten.html, but
testing infrastructure suck prevented us from doing so.
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::parentForSublayers):
- rendering/RenderLayerBacking.h: Just some nullptr cleanup.
- 11:56 AM Changeset in webkit [175817] by
-
- 4 edits in trunk/Source/WebCore
Move 'resize' CSS property to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=138550
Reviewed by Andreas Kling.
No new tests, no behavior change.
Move 'resize' CSS property from DeprecatedStyleBuilder to the new
StyleBuilder by adding a new 'Resize' Converter function.
- css/CSSPropertyNames.in:
- css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyResize::applyValue): Deleted.
(WebCore::ApplyPropertyResize::createHandler): Deleted.
- css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertResize):
- 11:35 AM Changeset in webkit [175816] by
-
- 3 edits in trunk/Source/WebCore
Speculative build fix.
- editing/DictionaryLookup.h:
- editing/DictionaryLookup.mm:
- 11:34 AM Changeset in webkit [175815] by
-
- 5 edits in trunk/Source/WebCore
Move 'text-indent' CSS property to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=138547
Reviewed by Andreas Kling.
Move 'text-indent' CSS property from DeprecatedStyleBuilder to the new
StyleBuilder, by using custom code.
No new tests, no behavior change.
- css/CSSPropertyNames.in:
- css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyTextIndent::applyInheritValue): Deleted.
(WebCore::ApplyPropertyTextIndent::applyInitialValue): Deleted.
(WebCore::ApplyPropertyTextIndent::applyValue): Deleted.
(WebCore::ApplyPropertyTextIndent::createHandler): Deleted.
- css/StyleBuilderConverter.h:
- css/StyleBuilderCustom.h:
(WebCore::StyleBuilderFunctions::applyInheritTextIndent):
(WebCore::StyleBuilderFunctions::applyInitialTextIndent):
(WebCore::StyleBuilderFunctions::applyValueTextIndent):
- 11:19 AM Changeset in webkit [175814] by
-
- 14 edits2 adds in trunk/Source
WK1: Support default actions for read-only text
https://bugs.webkit.org/show_bug.cgi?id=138552
-and corresponding-
rdar://problem/18877483
Reviewed by Tim Horton.
Source/WebCore:
WK1 now needs to do a lot of dictionary lookup operations that it did not
previously have to handle. So this patch takes a lot of that functionality, which
was implemented as static functions in WebPageMac for WK2 and moves it into
WebCore.
- WebCore.exp.in:
- WebCore.xcodeproj/project.pbxproj:
- editing/DictionaryLookup.h: Added.
- editing/DictionaryLookup.mm: Added.
(WebCore::isPositionInRange):
(WebCore::shouldUseSelection):
(WebCore::rangeExpandedAroundPositionByCharacters):
(WebCore::rangeForDictionaryLookupForSelection):
(WebCore::rangeForDictionaryLookupAtHitTestResult):
- platform/mac/WebCoreSystemInterface.h:
- platform/mac/WebCoreSystemInterface.mm:
Source/WebKit/mac:
New WKSystemInterface functions that WebCore needs to use.
- WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
WebActionMenuController now keeps an ivar for the WebCore::HitTestResult. This
makes a lot of things easier.
- WebView/WebActionMenuController.h:
- WebView/WebActionMenuController.mm:
Perform the hit test ourselves instead of calling into WebView so that we can more
easily save the WebCore::HitTestResult for ourselves.
(-[WebActionMenuController performHitTestAtPoint:]):
Clear selection for non-text menus.
(-[WebActionMenuController prepareForMenu:withEvent:]):
Re-set the _type here just to be safe.
(-[WebActionMenuController didCloseMenu:withEvent:]):
Moving this method to be next to the link actions so they can be within a pragma
mark.
(-[WebActionMenuController _defaultMenuItemsForLink:]):
New method for default text actions — lookup and copy.
(-[WebActionMenuController _defaultMenuItemsForText:]):
(-[WebActionMenuController _copySelection:]):
(-[WebActionMenuController _lookupText:]):
If there is not already a selection, invoking the action menu on text should
select the lookup text.
(-[WebActionMenuController _selectLookupText]):
(performDictionaryLookupForSelection):
(performDictionaryLookupForRange):
Handle text now.
(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):
New enum values.
- WebView/WebUIDelegatePrivate.h:
Pass didCloseMenu on to the controller.
- WebView/WebView.mm:
(-[WebView didCloseMenu:withEvent:]):
Source/WebKit2:
WK1 now needs to do a lot of dictionary lookup operations that it did not
previously have to handle. So this patch takes a lot of that functionality, which
was implemented as static functions in WebPageMac for WK2 and moves it into
WebCore.
- WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performDictionaryLookupForRange):
(WebKit::isPositionInRange): Deleted.
(WebKit::shouldUseSelection): Deleted.
(WebKit::rangeExpandedAroundPositionByCharacters): Deleted.
(WebKit::rangeForDictionaryLookupForSelection): Deleted.
(WebKit::rangeForDictionaryLookupAtHitTestResult): Deleted.
- 10:55 AM Changeset in webkit [175813] by
-
- 10 edits1 copy5 adds in trunk
[OSX] Some words are placed on top of each other in complex text layout
https://bugs.webkit.org/show_bug.cgi?id=138348
Reviewed by Simon Fraser.
Source/WebCore:
Some complex text layouts have lots of diacritics being placed all over the place.
CoreText sometimes compensates for this by adjusting the advances of the glyphs
throughout the string to make glyphs appear in the correct place. This means that
we can't naively cache the width of a space character; instead, we must obey
CoreText when it gives us an advance for a space.
Test: fast/text/large-space-width-complex.html
- platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
LayoutTests:
Updating tests to not use cached space width.
- fast/text/large-space-width-complex-expected.html: Added.
- fast/text/large-space-width-complex.html: Added.
- fast/text/resources/NotoNastaliqUrduDraft.ttf: Added.
- platform/mac-mavericks/fast/text/emphasis-expected.png:
- platform/mac-mavericks/fast/text/emphasis-expected.txt: This test is orthogonal to space widths.
- platform/mac-mountainlion/fast/text/emphasis-expected.png:
- platform/mac-mountainlion/fast/text/emphasis-expected.txt:
- platform/mac/fast/text/emphasis-expected.png:
- platform/mac/fast/text/emphasis-expected.txt:
- platform/mac/fast/text/sticky-typesetting-features-expected.png:
- platform/mac/fast/text/sticky-typesetting-features-expected.txt: Ditto.
- platform/mac/fast/writing-mode/text-orientation-basic-expected.png:
- platform/mac/fast/writing-mode/text-orientation-basic-expected.txt: This test actually is improved with
this patch. Instead of a weirdly wide space width, the two words are spaced appropriately now.
- 10:35 AM Changeset in webkit [175812] by
-
- 2 edits in trunk/Source/WebCore
[iOS] wireless playback placeholder UI doesn't always draw
https://bugs.webkit.org/show_bug.cgi?id=138548
While it is important to only listen for the 'webkitplaybacktargetavailabilitychanged' event
when we are displaying inline controls because listening for it increases power consumption,
we should always listen for the 'webkitcurrentplaybacktargetiswirelesschanged' event because
it controls whether or not we draw the placeholder UI which is always visible during wireless
playback.
Reviewed by Brent Fulgham.
- Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.addVideoListeners): Always listen for the
'webkitcurrentplaybacktargetiswirelesschanged' event.
(ControllerIOS.prototype.removeVideoListeners): Always stop listening for the
'webkitcurrentplaybacktargetiswirelesschanged' event.
(ControllerIOS.prototype.handleStartPlaybackButtonTouchEnd): Call updateControls so we update
the type of controls rendered and start listening for wireless target changes immediately.
(ControllerIOS.prototype.setShouldListenForPlaybackTargetAvailabilityEvent): Don't start and stop
listening for 'webkitcurrentplaybacktargetiswirelesschanged', we should always listen for it.
- 10:04 AM Changeset in webkit [175811] by
-
- 2 edits in trunk/Source/WebKit2
iOS build fix.
- UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::createLayer):
- 9:05 AM Changeset in webkit [175810] by
-
- 2 edits in trunk/Source/WTF
Remove BloomFilter size limit
https://bugs.webkit.org/show_bug.cgi?id=138549
Reviewed by Andreas Kling.
- wtf/BloomFilter.h: Remove the static_assert, the code works fine with somewhat larger sizes.
- 8:20 AM Changeset in webkit [175809] by
-
- 3 edits2 adds in trunk
Crash in WebCore::Node::getFlag
https://bugs.webkit.org/show_bug.cgi?id=137961
Reviewed by Antti Koivisto.
Source/WebCore:
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyBlockStyle): Null pointer check added.
LayoutTests:
- editing/execCommand/crash-137961-expected.txt: Added.
- editing/execCommand/crash-137961.html: Added.
- 7:37 AM Changeset in webkit [175808] by
-
- 2 edits in trunk/Tools
[EFL] Fix the test font path after r175555.
Patch by Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> on 2014-11-10
Reviewed by Csaba Osztrogonác.
- WebKitTestRunner/PlatformEfl.cmake: Dependencies -> DependenciesEFL
- 6:58 AM Changeset in webkit [175807] by
-
- 3 edits2 adds in trunk
ASSERTION FAILED: !object !object->parent()->isRuby() is<RenderRubyRun>(*object) (object->isInline() && (object->isBeforeContent() object->isAfterContent())) (object->isAnonymous() && ... ) in WebCore::isAnonymousRubyInlineBlock https://bugs.webkit.org/show_bug.cgi?id=137958
Reviewed by Chris Dumez.
Source/WebCore:
When a ruby element, with block behavior, dynamically changes its style
from multicol to without multicol, we have to remove its special children,
RenderMultiColumnFlowThread and RenderMultiColumnSet, the normal way using
the method in RenderBlockFlow base class. This patch adds both
RenderMultiColumnFlowThread and RenderMultiColumnSet to the list of RenderRuby
children removed normally and adds a new function - isRubyChildForNormalRemove -
to test the condition and use it in the assertion in RenderRuby*::removeChild
method.
Test: fast/multicol/newmulticol/ruby-from-multicol-to-auto.html
- rendering/RenderRuby.cpp:
(WebCore::isRubyChildForNormalRemove):
(WebCore::RenderRubyAsInline::removeChild):
(WebCore::RenderRubyAsBlock::removeChild):
LayoutTests:
- fast/multicol/newmulticol/ruby-from-multicol-to-auto-expected.txt: Added.
- fast/multicol/newmulticol/ruby-from-multicol-to-auto.html: Added.
- 4:29 AM Changeset in webkit [175806] by
-
- 4 edits in trunk/Source/WebKit2
[WK2] Use C++ lambdas in IPC::Connection
https://bugs.webkit.org/show_bug.cgi?id=138018
Reviewed by Anders Carlsson.
Replace uses of WTF::bind() in the IPC::Connection class with C++11 lambdas.
- Platform/IPC/Connection.cpp:
(IPC::Connection::SyncMessageState::processIncomingMessage):
(IPC::Connection::dispatchWorkQueueMessageReceiverMessage):
(IPC::Connection::invalidate):
(IPC::Connection::sendMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::enqueueIncomingMessage):
- Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::initializeDeadNameSource):
(IPC::Connection::receiveSourceEventHandler):
- Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::open):
- 2:48 AM Changeset in webkit [175805] by
-
- 1 edit2 adds in trunk/LayoutTests
[EFL] Add missing test results since r169631, r174992
https://bugs.webkit.org/show_bug.cgi?id=138502
Patch by Sanghyup Lee <sh53.lee@samsung.com> on 2014-11-10
Reviewed by Gyuyoung Kim.
- platform/efl/accessibility/aria-inherits-presentational-expected.txt: Added.
- platform/efl/accessibility/css-content-attribute-expected.txt: Added.
- 2:38 AM Changeset in webkit [175804] by
-
- 2 edits in trunk
Enable Cortex-A53-specific code paths by default if core is detected.
https://bugs.webkit.org/show_bug.cgi?id=138499
Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-11-10
Reviewed by Csaba Osztrogonác.
On ARM64/Linux, check /proc/cpuinfo for CPU part 0xd03 (signaling
Cortex-A53) and set the initial value of WTF_CPU_ARM64_CORTEXA53 to true
if found.
Since on ARM64/Linux the part number that cpuinfo reports depends on
the core the query is run on, the check is bound to and executed on the
available cores one by one.
- Source/cmake/OptionsCommon.cmake:
- 1:09 AM Changeset in webkit [175803] by
-
- 2 edits in trunk
[EFL] Remove unnecessary version check from OptionsEfl.cmake
https://bugs.webkit.org/show_bug.cgi?id=138498
Reviewed by Csaba Osztrogonác.
- Source/cmake/OptionsEfl.cmake:
- 12:00 AM Changeset in webkit [175802] by
-
- 4 edits in trunk/Source/JavaScriptCore
Fix 'noreturn' function does return warning in LLVMOverrides.cpp
https://bugs.webkit.org/show_bug.cgi?id=138306
Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-11-09
Reviewed by Filip Pizlo.
Adding NO_RETURN where needed.
- llvm/library/LLVMExports.cpp:
(initializeAndGetJSCLLVMAPI):
- llvm/library/LLVMOverrides.cpp:
- llvm/library/LLVMTrapCallback.h:
Nov 9, 2014:
- 11:59 PM Changeset in webkit [175801] by
-
- 2 edits in trunk/Tools
Fix the exception fuzz helper to generate targets in the correct range
https://bugs.webkit.org/show_bug.cgi?id=138544
Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-11-10
Reviewed by Filip Pizlo.
Currently, the script generates exception fuzz targets in the range of
0..($checkCount-1). However, target 0 is never hit, while target 1 is
always outside of the outermost try block of the tests, which therefore
prints unexpected output and results in false failures when fired at.
Additionally, target $checkCount is never generated.
This patch fixes the script to generate targets in the range of
2..$checkCount.
- Scripts/jsc-stress-test-helpers/js-exception-fuzz:
- 10:52 PM Changeset in webkit [175800] by
-
- 2 edits in trunk/Source/WebCore
[EFL] Remove GamepadDeviceEfl::create()
https://bugs.webkit.org/show_bug.cgi?id=138553
Reviewed by Darin Adler.
As a step to use std::unique_ptr<> and std::make_unique<>, this patch removes GamepadDeviceEfl::create().
Instead we use std::make_unique<>.
No new tests, no behavior changes.
- platform/efl/GamepadsEfl.cpp:
(WebCore::GamepadsEfl::registerDevice):
(WebCore::GamepadDeviceEfl::create): Deleted.
(WebCore::GamepadsEfl::unregisterDevice): Deleted.
- 10:46 PM Changeset in webkit [175799] by
-
- 8 edits in trunk/Source
Remove create() factory function in FooAnimationValue classes
https://bugs.webkit.org/show_bug.cgi?id=138206
Reviewed by Darin Adler.
As a step to use std::unique_ptr and std::make_unique, this patch removes create()
factory function in FooAnimationValue classes. As this changes, FooAnimationValue::create()
are changed to std::make_unique<>.
Source/WebCore:
No new tests, no behavior changes.
- platform/graphics/GraphicsLayer.cpp:
(WebCore::KeyframeValueList::insert):
- platform/graphics/GraphicsLayer.h:
(WebCore::FloatAnimationValue::FloatAnimationValue):
(WebCore::TransformAnimationValue::TransformAnimationValue):
(WebCore::FilterAnimationValue::FilterAnimationValue):
(WebCore::FloatAnimationValue::create): Deleted.
(WebCore::TransformAnimationValue::create): Deleted.
(WebCore::FilterAnimationValue::create): Deleted.
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::startAnimation):
(WebCore::RenderLayerBacking::startTransition):
Source/WebKit2:
- Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(IPC::ArgumentCoder<GraphicsLayerAnimation>::decode):
- WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::showPaintRect):
- 10:11 PM Changeset in webkit [175798] by
-
- 2 edits1 add1 delete in trunk/Tools
make-passwords-json.py should generarate everything needed for testing
https://bugs.webkit.org/show_bug.cgi?id=138503
Reviewed by Ryosuke Niwa.
- BuildSlaveSupport/build.webkit.org-config/make_passwords_json.py:
Renamed from make-passwords-json.py to be able included from mastercfg_unittest.py.
Additionally generate auth.json, credentials.cfg and committers.cfg too.
(create_mock_slave_passwords_dict): Moved from mastercfg_unittest.py
- BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:
(BuildBotConfigLoader._mock_open): Use make_passwords_json.create_mock_slave_passwords_dict() to avoid duplication.
(BuildBotConfigLoader._create_mock_passwords_dict): Deleted.
- 9:48 PM Changeset in webkit [175797] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed, fix typo in r175796.
Rename areEssentialEqualAsFloat to areEssentiallyEqualAsFloat.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::areEssentiallyEqualAsFloat):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::areEssentialEqualAsFloat): Deleted.
- 4:21 PM Changeset in webkit [175796] by
-
- 14 edits in trunk/Source
Add a more correct way to compare floating point numbers and use it
https://bugs.webkit.org/show_bug.cgi?id=138527
Reviewed by Darin Adler.
Source/WebCore:
Use the new WTF::areEssentuallyEqual() utility function from MathExtras.h
to compare floating-point numbers.
No new tests, no behavior change.
- page/DOMTimer.cpp:
(WebCore::DOMTimer::updateTimerIntervalIfNecessary):
- platform/graphics/FloatQuad.cpp:
(WebCore::FloatQuad::isRectilinear):
- platform/graphics/FloatRoundedRect.cpp:
(WebCore::FloatRoundedRect::Radii::isUniformCornerRadius):
- platform/graphics/FloatSize.h:
(WebCore::areEssentiallyEqual):
(WebCore::withinEpsilon): Deleted.
Source/WebKit/mac:
Use the new WTF::areEssentuallyEqual() utility function from MathExtras.h
to compare floating-point numbers.
- WebView/WebHTMLView.mm:
(-[WebHTMLView _adjustedBottomOfPageWithTop:bottom:limit:]):
Source/WebKit2:
Use the new WTF::areEssentuallyEqual() utility function from MathExtras.h
to compare floating-point numbers.
- UIProcess/API/Cocoa/WKWebView.mm:
(withinEpsilon):
- UIProcess/CoordinatedGraphics/PageViewportController.cpp:
(WebKit::PageViewportController::updateMinimumScaleToFit):
(WebKit::fuzzyCompare): Deleted.
- UIProcess/CoordinatedGraphics/PageViewportController.h:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::withinEpsilon):
- UIProcess/API/Cocoa/WKWebView.mm:
(areEssentiallyEqualAsFloat):
(-[WKWebView _didCommitLayerTree:]):
(withinEpsilon): Deleted.
- UIProcess/CoordinatedGraphics/PageViewportController.cpp:
(WebKit::PageViewportController::updateMinimumScaleToFit):
(WebKit::fuzzyCompare): Deleted.
- UIProcess/CoordinatedGraphics/PageViewportController.h:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::areEssentialEqualAsFloat):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::withinEpsilon): Deleted.
Source/WTF:
To compare floating point numbers in the code base, we would often rely
on the following check:
std::abs(a - b) <= std::numeric_limits<T>::epsilon()
However, this is not correct for arbitrary floating point values, and
will fail for values that are not close to zero.
This patch introduces a WTF::areEssentiallyEqual() templated function
that can only be called with floating point types and relies on the
following formula from [1][2] that defines u as being "essentially
equal" to v if: | u - v | / |u| <= e and | u - v | / |v| <= e
[1] Knuth, D. E. "Accuracy of Floating Point Arithmetic." The Art of
Computer Programming. 3rd ed. Vol. 2. Boston: Addison-Wesley, 1998.
229-45.
[2] http://www.boost.org/doc/libs/1_34_0/libs/test/doc/components/test_tools/floating_point_comparison.html
- wtf/MathExtras.h:
(WTF::safeFPDivision):
(WTF::areEssentiallyEqual):
(WTF::withinEpsilon): Deleted.
- 11:46 AM Changeset in webkit [175795] by
-
- 2 edits in trunk/LayoutTests
Put bug link at the start of the line.
- platform/mac-wk2/TestExpectations:
- 11:42 AM Changeset in webkit [175794] by
-
- 29 edits2 adds in trunk
Implement round-rect clipping on video elements
https://bugs.webkit.org/show_bug.cgi?id=138537
rdar://problem/9534399
Reviewed by Darin Adler.
Source/WebCore:
Support border-radius on video and other layers with composited contents,
by pushing a FloatRoundedRect onto the GraphicsLayer as the contentsClippingRect,
and, on Mac, using layer corner-radius or a CAShapeLayer mask.
Test: compositing/video/video-border-radius.html
- WebCore.exp.in:
- platform/graphics/FloatRoundedRect.cpp:
(WebCore::FloatRoundedRect::Radii::isUniformCornerRadius): Returns true if all
corner radii are the same, and have equal widths and heights.
- platform/graphics/FloatRoundedRect.h: Allow construction without an explicit
rect.
- platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::GraphicsLayer): nullptr goodness.
(showGraphicsLayerTree): Print contents layers when debugging.
- platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::contentsClippingRect): Make this take a FloatRoundedRect.
(WebCore::GraphicsLayer::setContentsClippingRect):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setContentsClippingRect):
(WebCore::GraphicsLayerCA::setContentsToSolidColor):
(WebCore::GraphicsLayerCA::setContentsToImage):
(WebCore::GraphicsLayerCA::setContentsToPlatformLayer):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateClippingStrategy): Determines whether we can simply
use corner-radius on the existing contentsClippingLayer, or whether we have to
create a shape layer to use as a mask.
(WebCore::GraphicsLayerCA::updateContentsRects): We have to add/remove the shape layer
based on the rounded rect radii. Calls updateClippingStrategy() on the clipping layer,
and also updates clones accordingly.
(WebCore::dumpInnerLayer):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump all the inner layers
(requiring on test rebaseline), including the new shape and backdrop layers.
- platform/graphics/ca/GraphicsLayerCA.h:
- platform/graphics/ca/PlatformCALayer.h: Add a new shape layer type.
- platform/graphics/ca/mac/PlatformCALayerMac.h: Support for corner radius and
a rounded rect shape mask.
- platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::PlatformCALayerMac):
(PlatformCALayerMac::clone):
(PlatformCALayerMac::setMask):
(PlatformCALayerMac::cornerRadius):
(PlatformCALayerMac::setCornerRadius):
(PlatformCALayerMac::shapeRoundedRect):
(PlatformCALayerMac::setShapeRoundedRect):
- platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::cornerRadius):
(PlatformCALayerWin::setCornerRadius):
(PlatformCALayerWin::shapeRoundedRect):
(PlatformCALayerWin::setShapeRoundedRect):
- platform/graphics/ca/win/PlatformCALayerWin.h:
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::resetContentsRect): Use getRoundedInnerBorderFor() to get
the rounded rect used to clip contents.
(WebCore::RenderLayerBacking::positionOverflowControlsLayers): Push a FloatRoundedRect for the contents clip,
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundColor): Ditto.
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage): Ditto.
(WebCore::RenderLayerBacking::updateImageContents): Get the rounded rect clip.
- rendering/RenderLayerBacking.h: nullptr.
Source/WebKit2:
Support border-radius on video and other layers with composited contents,
by pushing a FloatRoundedRect onto the GraphicsLayer as the contentsClippingRect,
and, on Mac, using layer corner-radius or a CAShapeLayer mask.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<FloatRoundedRect>::encode):
(IPC::ArgumentCoder<FloatRoundedRect>::decode):
- Shared/WebCoreArgumentCoders.h:
- Shared/mac/RemoteLayerBackingStore.mm: New shape layer type.
(WebKit::RemoteLayerBackingStore::drawInContext):
- Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::applyPropertiesToLayer): Apply corner-radius and shape path.
- Shared/mac/RemoteLayerTreeTransaction.h: Prettify the flags. Yes, I prefer this style.
- Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::RemoteLayerTreeTextStream::operator<<):
(WebKit::dumpChangedLayers):
(WebKit::RemoteLayerTreeTransaction::description):
- UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(+[WKShapeView layerClass]): Make UIViews with a CAShapeLayer layer class.
(WebKit::RemoteLayerTreeHost::createLayer):
- UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::createLayer):
- WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::updateClonedLayerProperties):
(WebKit::isEquivalentLayer):
(WebKit::PlatformCALayerRemote::setMask):
(WebKit::PlatformCALayerRemote::setClonedLayer):
(WebKit::PlatformCALayerRemote::cornerRadius):
(WebKit::PlatformCALayerRemote::setCornerRadius):
(WebKit::PlatformCALayerRemote::shapeRoundedRect):
(WebKit::PlatformCALayerRemote::setShapeRoundedRect):
- WebProcess/WebPage/mac/PlatformCALayerRemote.h:
LayoutTests:
Test that uses clip() to compare a bit of rounded-rect video in the corner.
Rebaselined test that dumped contents layers.
- compositing/video/video-border-radius-expected.html: Added.
- compositing/video/video-border-radius.html: Added.
- platform/mac/compositing/reflections/direct-image-object-fit-reflected-expected.txt:
- 10:27 AM Changeset in webkit [175793] by
-
- 2 edits in trunk/Tools
[GTK] generate-gtkdoc should ignore invalid files
https://bugs.webkit.org/show_bug.cgi?id=138542
Reviewed by Darin Adler.
- gtk/generate-gtkdoc:
(files_to_ignore.file_should_be_ignored): Return True to ignore
invalid files.
- 9:25 AM Changeset in webkit [175792] by
-
- 13 edits in trunk/Source/WebCore
Fix various cases of incorrect cross-thread capture of non-thread-safe RefCounted
https://bugs.webkit.org/show_bug.cgi?id=138539
Reviewed by Alexey Proskuryakov.
- Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect): Use StringCapture
instead of isolatedCopy, to avoid a problem where the original thread does its deref
after passing the string to the other thread.
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::connect): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::send): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::close): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::fail): Ditto.
- dom/Document.cpp:
(WebCore::Document::addConsoleMessage): Pass a StringCapture when creating
AddConsoleMessageTask. Same reason as above, but in a different context.
(WebCore::Document::addMessage): Ditto.
- dom/ScriptExecutionContext.h: Changed AddConsoleMessageTask to take and
capture a StringCapture rather than a String, for the same reason as above.
- fileapi/AsyncFileStream.cpp:
(WebCore::AsyncFileStream::write): Use URLCapture instead of trying to use
StringCapture on a URL, since that doesn't preserve the validity flag.
- loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): Use StringCapture.
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFail): Ditto.
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFailAccessControlCheck): Ditto.
- platform/URL.h: Added URLCapture.
- platform/network/FormData.cpp:
(WebCore::appendBlobResolved): Remove incorrect pointless code that creates a new URL
from an existing URL with the ParsedURLString constructor.
- workers/DefaultSharedWorkerRepository.cpp: Fixed code that was trying to copy a URL
by copying a string to instead just use URL::copy. The comment claimed that URL::copy
is not thread safe, but that claim is incorrect.
(WebCore::SharedWorkerProxy::postExceptionToWorkerObject): Use StringCapture.
(WebCore::SharedWorkerProxy::postConsoleMessageToWorkerObject): Ditto.
(WebCore::DefaultSharedWorkerRepository::getProxy): Use URL::copy.
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::addConsoleMessage): Use StringCapture.
(WebCore::WorkerGlobalScope::addMessage): Ditto.
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::postExceptionToWorkerObject): Ditto.
(WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject): Ditto.
(WebCore::WorkerMessagingProxy::sendMessageToInspector): Ditto.
(WebCore::WorkerMessagingProxy::postMessageToPageInspector): Ditto.
- workers/WorkerRunLoop.cpp:
(WebCore::WorkerRunLoop::postTaskAndTerminate): Make a Task with make_unique
rather than with Task::create. Removed an extra isolatedCopy, unneeded because
the Task constructor already does an isolatedCopy.
(WebCore::WorkerRunLoop::postTaskForMode): Ditto.
(WebCore::WorkerRunLoop::Task::create): Deleted.
- workers/WorkerRunLoop.h: Removed unneeded create function and explicit
public empty destructor.
- 9:21 AM Changeset in webkit [175791] by
-
- 10 edits in trunk/Source/WebCore
Use is<>() / downcast<>() for HTMLCollection subclasses
https://bugs.webkit.org/show_bug.cgi?id=138541
Reviewed by Sam Weinig.
Use is<>() / downcast<>() for HTMLCollection subclasses for
safety and consistency with the rest of the code base.
No new tests, no behavior change.
- bindings/gobject/WebKitDOMPrivate.cpp:
(WebKit::wrap):
- html/HTMLAllCollection.h:
- html/HTMLCollection.cpp:
(WebCore::isMatchingHTMLElement):
(WebCore::isMatchingElement):
- html/HTMLCollection.h:
- html/HTMLFormControlsCollection.h:
- html/HTMLNameCollection.h:
- html/HTMLOptionsCollection.h:
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::options):
- html/HTMLTableRowsCollection.h:
- 2:12 AM Changeset in webkit [175790] by
-
- 2 edits in trunk/Source/WebKit2
Move _ignoresNonWheelMouseEvents implementation to WKView(Private)
https://bugs.webkit.org/show_bug.cgi?id=138487
Patch by Conrad Shultz <Conrad Shultz> on 2014-11-09
Reviewed by Dan Bernstein.
Relocate some methods that should have been in a category implementation.
- UIProcess/API/mac/WKView.mm:
(-[WKView _setIgnoresNonWheelMouseEvents:]):
(-[WKView _ignoresNonWheelMouseEvents]):