Timeline



Nov 10, 2014:

11:59 PM Changeset in webkit [175857] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175711. rdar://problems/18893079

11:55 PM Changeset in webkit [175856] by matthew_hanson@apple.com
  • 3 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175705. rdar://problems/18892496

11:49 PM Changeset in webkit [175855] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175704. rdar://problems/18869036

11:43 PM Changeset in webkit [175854] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175702. rdar://problems/18872825

11:38 PM Changeset in webkit [175853] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r175701. rdar://problems/18768377

11:19 PM Changeset in webkit [175852] by Chris Dumez
  • 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 Simon Fraser
  • 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 jonowells@apple.com
  • 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 akling@apple.com
  • 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 benjamin@webkit.org
  • 9 edits
    8 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 commit-queue@webkit.org
  • 6 edits
    3 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 akling@apple.com
  • 6 edits
    3 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:

  1. Pure speed test.
  2. Test for when a property previously cached as missing suddenly appears on the object.
  3. 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 msaboff@apple.com
  • 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 gyuyoung.kim@samsung.com
  • 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 mmaxfield@apple.com
  • 1 edit
    2 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 Beth Dakin
  • 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 ap@apple.com
  • 64 edits
    1 copy
    3 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 matthew_hanson@apple.com
  • 5 edits in branches/safari-600.2-branch/Source

Versioning.

5:13 PM Changeset in webkit [175839] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.2.2

New Tag.

4:39 PM Changeset in webkit [175838] by jonowells@apple.com
  • 4 edits
    2 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 Beth Dakin
  • 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 Chris Dumez
  • 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 Beth Dakin
  • 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 msaboff@apple.com
  • 1 edit
    2 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 benjamin@webkit.org
  • 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 Beth Dakin
  • 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 Beth Dakin
  • 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 Chris Dumez
  • 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 Conrad Shultz
  • 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 jer.noble@apple.com
  • 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 Simon Fraser
  • 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 jer.noble@apple.com
  • 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 Beth Dakin
  • 2 edits in trunk/Source/WebKit/mac

Speculative build fix.

  • WebView/WebActionMenuController.mm:
12:33 PM Changeset in webkit [175824] by commit-queue@webkit.org
  • 10 edits
    6 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 Beth Dakin
  • 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 adachan@apple.com
  • 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 Beth Dakin
  • 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 Beth Dakin
  • 2 edits in trunk/Source/WebCore

Speculative build fix.

  • WebCore.exp.in:
12:15 PM Changeset in webkit [175819] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Speculative build fix.

  • WebCore.exp.in:
12:03 PM Changeset in webkit [175818] by Simon Fraser
  • 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 Chris Dumez
  • 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 Beth Dakin
  • 3 edits in trunk/Source/WebCore

Speculative build fix.

  • editing/DictionaryLookup.h:
  • editing/DictionaryLookup.mm:
11:34 AM Changeset in webkit [175815] by Chris Dumez
  • 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 Beth Dakin
  • 14 edits
    2 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 mmaxfield@apple.com
  • 10 edits
    1 copy
    5 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 eric.carlson@apple.com
  • 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 mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

iOS build fix.

  • UIProcess/ios/RemoteLayerTreeHostIOS.mm:

(WebKit::RemoteLayerTreeHost::createLayer):

9:05 AM Changeset in webkit [175810] by Antti Koivisto
  • 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 Csaba Osztrogonác
  • 3 edits
    2 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 Csaba Osztrogonác
  • 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 mihnea@adobe.com
  • 3 edits
    2 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 zandobersek@gmail.com
  • 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 commit-queue@webkit.org
  • 1 edit
    2 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 commit-queue@webkit.org
  • 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 evab.u-szeged@partner.samsung.com
  • 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 commit-queue@webkit.org
  • 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 commit-queue@webkit.org
  • 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 gyuyoung.kim@samsung.com
  • 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 gyuyoung.kim@samsung.com
  • 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 Csaba Osztrogonác
  • 2 edits
    1 add
    1 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 Chris Dumez
  • 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 Chris Dumez
  • 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 Simon Fraser
  • 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 Simon Fraser
  • 29 edits
    2 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 Carlos Garcia Campos
  • 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 Darin Adler
  • 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 Chris Dumez
  • 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 commit-queue@webkit.org
  • 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]):

Nov 8, 2014:

10:32 PM Changeset in webkit [175789] by ap@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/xmlhttprequest/cross-origin-cookie-storage.html fails with PPT.

This test used to pass because some previous test leaked a cookie. Now that we
clear cookies between tests, it fails, and will fail until we implement testRunner.setAlwaysAcceptCookies.

  • platform/mac-wk2/TestExpectations:
9:59 PM Changeset in webkit [175788] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Call faster HTMLElement::hasTagName() in HTMLCollection
https://bugs.webkit.org/show_bug.cgi?id=138529

Reviewed by Darin Adler.

Call faster HTMLElement::hasTagName() in HTMLCollection instead of
slower Node::hasTagName() by restructuring the code a bit to
distinguish collection that deal only with HTMLElements from others.

No new tests, no behavior change.

  • html/HTMLCollection.cpp:

(WebCore::isMatchingHTMLElement):
(WebCore::isMatchingElement):

9:46 PM Changeset in webkit [175787] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Move isEmptyValue() logic from HTMLInputElement to TextFieldInputType
https://bugs.webkit.org/show_bug.cgi?id=138538

Reviewed by Darin Adler.

Move isEmptyValue() logic from HTMLInputElement to TextFieldInputType
as this only makes sense for text field input types.

No new tests, no behavior change.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::isEmptyValue):

  • html/InputType.cpp:

(WebCore::InputType::isEmptyValue):

  • html/InputType.h:
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::isEmptyValue):

  • html/TextFieldInputType.h:
7:21 PM Changeset in webkit [175786] by rniwa@webkit.org
  • 4 edits in trunk/Websites/perf.webkit.org

Fix Ember.js warnings the new perf dashboard
https://bugs.webkit.org/show_bug.cgi?id=138531

Reviewed by Darin Adler.

Fixed various warnings.

  • public/v2/app.js:

(App.InteractiveChartComponent._relayoutDataAndAxes): We can't use "rem". Use this._rem as done for x.

  • public/v2/data.js:

(PrivilegedAPI._post): Removed the superfluous console.log.
(CommitLogs.fetchForTimeRange): Ditto.

  • public/v2/index.html: Added tbody as required by the HTML specification.
7:18 PM Changeset in webkit [175785] by ap@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/navigation/redirect-on-back-updates-history-item.html leaks a cookie
https://bugs.webkit.org/show_bug.cgi?id=138507

Reviewed by Pratik Solanki.

  • http/tests/navigation/resources/redirect-updates-history-item-done.html:
7:17 PM Changeset in webkit [175784] by commit-queue@webkit.org
  • 17 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: decouple child element folderization logic from FrameTreeElement
https://bugs.webkit.org/show_bug.cgi?id=138364

Patch by Matt Baker <Matt Baker> on 2014-11-08
Reviewed by Timothy Hatcher.

Created FolderizedTreeElement base class, which FrameTreeElement now inherits via SourceCodeTreeElement.
FolderizedTreeElement uses settings provided by derived classes for labeling subfolders and to determine
folder membership for child items.

  • UserInterface/Base/Main.js:

(WebInspector.canArchiveMainFrame):

  • UserInterface/Main.html:
  • UserInterface/Models/LayoutTimelineRecord.js:

(WebInspector.LayoutTimelineRecord.displayNameForEventType):
(WebInspector.LayoutTimelineRecord.EventType.displayName): Deleted.

  • UserInterface/Models/Resource.js:

(WebInspector.Resource):
(WebInspector.Resource.typeFromMIMEType):
(WebInspector.Resource.displayNameForType):
(WebInspector.Resource.prototype.get syntheticMIMEType):
(WebInspector.Resource.prototype.updateForResponse):
(WebInspector.Resource.Type.fromMIMEType): Deleted.
(WebInspector.Resource.Type.displayName): Deleted.

  • UserInterface/Models/SourceMapResource.js:

(WebInspector.SourceMapResource):

  • UserInterface/Views/FolderizedTreeElement.js: Added.

(WebInspector.FolderizedTreeElement):
(WebInspector.FolderizedTreeElement.prototype.get groupedIntoFolders):
(WebInspector.FolderizedTreeElement.prototype.set folderSettingsKey):
(WebInspector.FolderizedTreeElement.prototype.registerFolderizeSettings):
(WebInspector.FolderizedTreeElement.prototype.set removeChildren):
(WebInspector.FolderizedTreeElement.prototype.addChildForRepresentedObject):
(WebInspector.FolderizedTreeElement.prototype.addRepresentedObjectToNewChildQueue):
(WebInspector.FolderizedTreeElement.prototype.removeChildForRepresentedObject):
(WebInspector.FolderizedTreeElement.prototype.compareChildTreeElements):
(WebInspector.FolderizedTreeElement.prototype.updateParentStatus):
(WebInspector.FolderizedTreeElement.prototype._clearNewChildQueue):
(WebInspector.FolderizedTreeElement.prototype._populateFromNewChildQueue):
(WebInspector.FolderizedTreeElement.prototype._removeRepresentedObjectFromNewChildQueue):
(WebInspector.FolderizedTreeElement.prototype._addTreeElement):
(WebInspector.FolderizedTreeElement.prototype._compareTreeElementsByMainTitle):
(WebInspector.FolderizedTreeElement.prototype._insertFolderTreeElement):
(WebInspector.FolderizedTreeElement.prototype._insertChildTreeElement):
(WebInspector.FolderizedTreeElement.prototype._removeTreeElement):
(WebInspector.FolderizedTreeElement.prototype._parentTreeElementForRepresentedObject):
(WebInspector.FolderizedTreeElement.prototype._folderTreeElementExpandedStateChange):
(WebInspector.FolderizedTreeElement.prototype._settingsForRepresentedObject):
(WebInspector.FolderizedTreeElement.prototype._shouldGroupIntoFolders.pushCategory):
(WebInspector.FolderizedTreeElement.prototype._shouldGroupIntoFolders):

  • UserInterface/Views/FrameTreeElement.js:

(.this):
(WebInspector.FrameTreeElement.prototype.updateSourceMapResources):
(WebInspector.FrameTreeElement.prototype.onattach):
(WebInspector.FrameTreeElement.prototype.ondetach):
(WebInspector.FrameTreeElement.prototype.compareChildTreeElements):
(WebInspector.FrameTreeElement.prototype.onpopulate):
(WebInspector.FrameTreeElement.prototype._mainResourceDidChange):
(WebInspector.FrameTreeElement.prototype._resourceWasAdded):
(WebInspector.FrameTreeElement.prototype._resourceWasRemoved):
(WebInspector.FrameTreeElement.prototype._childFrameWasAdded):
(WebInspector.FrameTreeElement.prototype._childFrameWasRemoved):
(WebInspector.FrameTreeElement.prototype._childContentFlowWasAdded):
(WebInspector.FrameTreeElement.prototype._childContentFlowWasRemoved):
(WebInspector.FrameTreeElement.prototype._rootDOMNodeInvalidated):
(WebInspector.FrameTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype.removeChildren): Deleted.
(WebInspector.FrameTreeElement.prototype._updateParentStatus): Deleted.
(WebInspector.FrameTreeElement.prototype._addRepresentedObjectToNewChildQueue): Deleted.
(WebInspector.FrameTreeElement.prototype._removeRepresentedObjectFromNewChildQueue): Deleted.
(WebInspector.FrameTreeElement.prototype._populateFromNewChildQueue): Deleted.
(WebInspector.FrameTreeElement.prototype._clearNewChildQueue): Deleted.
(WebInspector.FrameTreeElement.prototype._addChildForRepresentedObject): Deleted.
(WebInspector.FrameTreeElement.prototype._removeChildForRepresentedObject): Deleted.
(WebInspector.FrameTreeElement.prototype._addTreeElementForRepresentedObject): Deleted.
(WebInspector.FrameTreeElement.prototype._addTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype._compareTreeElementsByMainTitle): Deleted.
(WebInspector.FrameTreeElement.prototype._insertFolderTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype._compareResourceTreeElements): Deleted.
(WebInspector.FrameTreeElement.prototype._insertResourceTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype._removeTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype._folderNameForResourceType): Deleted.
(WebInspector.FrameTreeElement.prototype._parentTreeElementForRepresentedObject.createFolderTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype._parentTreeElementForRepresentedObject): Deleted.
(WebInspector.FrameTreeElement.prototype._folderTreeElementExpandedStateChange): Deleted.
(WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders.pushResourceType): Deleted.
(WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders.pushCategory): Deleted.
(WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders): Deleted.

  • UserInterface/Views/LayoutTimelineDataGridNode.js:

(WebInspector.LayoutTimelineDataGridNode.prototype.createCellContent):

  • UserInterface/Views/LayoutTimelineView.js:

(WebInspector.LayoutTimelineView): Deleted.

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView): Deleted.

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshResourceType):

  • UserInterface/Views/ResourceTimelineDataGridNode.js:

(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):

  • UserInterface/Views/SourceCodeTreeElement.js:

(WebInspector.SourceCodeTreeElement):

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid.createColumnScopeBar):

  • UserInterface/Views/TimelineRecordTreeElement.js:

(WebInspector.TimelineRecordTreeElement):

  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
7:17 PM Changeset in webkit [175783] by ap@apple.com
  • 7 edits in trunk

Delete cookies between tests
https://bugs.webkit.org/show_bug.cgi?id=138528

Reviewed by Sam Weinig.

Source/WebKit/mac:

  • WebView/WebPreferences.mm: (+[WebPreferences _clearNetworkLoaderSession]):
  • WebView/WebPreferencesPrivate.h:

Added an SPI for DumpRenderTree.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
Do it.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):
Added a FIXME.

5:01 PM Changeset in webkit [175782] by Darin Adler
  • 21 edits
    2 deletes in trunk/Source

Replace FileThread class with a single function
https://bugs.webkit.org/show_bug.cgi?id=138282

Reviewed by Alexey Proskuryakov.

Source/WebCore:

  • CMakeLists.txt: Removed FileThread.cpp.
  • WebCore.vcxproj/WebCore.vcxproj: Removed FileThread.cpp/.h.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • bindings/generic/ActiveDOMCallback.cpp: Removed unneeded includes.
  • dom/ActiveDOMObject.cpp: Ditto.
  • fileapi/AsyncFileStream.cpp:

(WebCore::callOnFileThread): Added. Implements the file thread.
(WebCore::AsyncFileStream::AsyncFileStream): Take a reference to the client.
Make m_internals. Use the destroyed flag instead of trickier techniques to
handle stopping. Once the stream is destroyed, there will be no further callbacks.
(WebCore::AsyncFileStream::~AsyncFileStream): Added assertions and merged in the
stop behavior here. This class no longer requires an explicit stop function.
(WebCore::AsyncFileStream::perform): Added. Helper used for all the operations
below. Takes a function that performs an operation and then returns a client
callback function. Respects the m_stopped boolean on the file thread (so we
don't do extra operations) and on the client thread (so we are guaranteed not
to get any client callbacks even if the file thread was partway through an
operation).
(WebCore::AsyncFileStream::getSize): Changed to use the perform function.
(WebCore::AsyncFileStream::openForRead): Ditto. Also fixed reference count
thread safety issue by capturing a StringCapture rather than a String.
(WebCore::AsyncFileStream::openForWrite): Ditto.
(WebCore::AsyncFileStream::close): Changed to use callOnFileThread.
(WebCore::AsyncFileStream::read): Changed to use the perform function.
(WebCore::AsyncFileStream::write): Ditto. Also fixed reference count
thread safety issue by capturing a StringCapture rather than a URL.
(WebCore::AsyncFileStream::truncate): Ditto.

  • fileapi/AsyncFileStream.h: Removed use of RefCounted since we only need

single ownership. Removed the stop function, since we can now stop when
the stream is destroyed since we have single ownership. Made a new Internals
object to handle destruction while operations are still going on the file thread.

  • fileapi/FileThread.cpp: Removed.
  • fileapi/FileThread.h: Removed.
  • loader/ResourceLoader.cpp: Removed unneeded include.
  • platform/FileStream.cpp:

(WebCore::FileStream::~FileStream): Merged the stop function in here.

  • platform/FileStream.h: Removed use of RefCounted since we only need

single ownership. Removed the empty start function. Removed the stop function,
since we can now stop when the stream is destroyed since we have single ownership.

  • platform/FileStreamClient.h: Removed unneeded didStart and didStop.
  • platform/network/BlobResourceHandle.cpp:

(WebCore::BlobResourceHandle::BlobResourceHandle): Use make_unique to make the
stream objects instead of custom create functions.
(WebCore::BlobResourceHandle::~BlobResourceHandle): Removed now-unneeded code
to call stop functions. Destroying the objects now takes care of the this, and
that's done by the unique_ptrs.
(WebCore::BlobResourceHandle::cancel): Removed the rest of the code to stop the
m_asyncStream, keeping only the code that sets it to null. That now stops the
stream by destroying it.

  • platform/network/BlobResourceHandle.h: Use std::unique_ptr rather than

RefPtr for the file stream objects.

  • storage/StorageThread.h: Tweaked formatting of std::function<void()> to

match the format used elsewhere in WebKit.

Source/WebKit:

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

Removed exports of obsolete threading functions.

Source/WTF:

  • wtf/MessageQueue.h: Made queue work on any type and not require wrapping

everything in a unique_ptr.

  • wtf/Threading.cpp:

(WTF::threadEntryPoint): Changed to use a std::function instead of a function pointer.
(WTF::createThread): Add a version that takes a std::function. Reimplemented the
old version using lambdas. Removed the obsolete versions that were there just to support
binary compatibility with very old versions of Safari.

  • wtf/Threading.h: Removed an incorrect license header that covers code that was long ago

moved to a different file. Changed createThread to take a std::function instead of a function
pointer and data pointer. Moved internal functions after public functions.

3:50 PM Changeset in webkit [175781] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Don't try to schedule a GraphicsLayer flush when propagating changes to replicas inside a flush
https://bugs.webkit.org/show_bug.cgi?id=138532

Reviewed by Dan Bernstein.

When changing masks on replica layers with certain layer configurations,
it was possible to hit an assertion that a flush was being scheduled when already
flushing, via propagateLayerChangeToReplicas(). Fix by passing the scheduleFlush
flag along.

Not testable with current GraphicsLayer configurations.

  • platform/graphics/ca/GraphicsLayerCA.cpp:
  • platform/graphics/ca/GraphicsLayerCA.h:
12:27 PM Changeset in webkit [175780] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

WKActionMenuController methods should be more careful to use the best
WebHitTestResult
https://bugs.webkit.org/show_bug.cgi?id=138536
-and corresponding-
rdar://problem/18919195

Reviewed by Tim Horton.

This patch re-names _hitTestResultForStage to _webHitTestResult. The method no
longer takes a stage since that value is really not necessary to determine the
correct WebHitTestResult. This patch also makes all spots in this file that access
a WebHitTestResult go through _webHitTestResult to ensure that they get the most
up-to-date option.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController willOpenMenu:withEvent:]):
(-[WKActionMenuController _openURLFromActionMenu:]):
(-[WKActionMenuController _addToReadingListFromActionMenu:]):
(-[WKActionMenuController _previewURLFromActionMenu:]):
(-[WKActionMenuController _defaultMenuItemsForVideo]):
(-[WKActionMenuController _copyVideoURL:]):
(-[WKActionMenuController _saveVideoToDownloads:]):
(-[WKActionMenuController _saveImageToDownloads:]):
(-[WKActionMenuController _defaultMenuItems]):
(-[WKActionMenuController _updateActionMenuItemsForStage:]):
(imageForResource:name::switch): Deleted.
(-[WKActionMenuController _defaultMenuItems:]): Deleted.

11:07 AM Changeset in webkit [175779] by Beth Dakin
  • 11 edits in trunk/Source

Implement action menu support for videos
https://bugs.webkit.org/show_bug.cgi?id=138534
-and corresponding-
rdar://problem/18742164

Reviewed by Tim Horton.

Source/WebCore:

Export needed symbols and added not-yet-implemented
HitTestResult::isMediaThatCanBeDownloaded() so that action menus will work as
expected once it is implemented.

  • WebCore.exp.in:
  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::isMediaThatCanBeDownloaded):

  • rendering/HitTestResult.h:

Source/WebKit2:

New menu type and items types.

  • Shared/API/c/WKActionMenuItemTypes.h:
  • Shared/API/c/WKActionMenuTypes.h:

Plumb isMediaThatCanBeDownloaded() up to WebHitTestResult.

  • Shared/WebHitTestResult.cpp:

(WebKit::WebHitTestResult::Data::Data):
(WebKit::WebHitTestResult::Data::encode):
(WebKit::WebHitTestResult::Data::decode):

  • Shared/WebHitTestResult.h:

(WebKit::WebHitTestResult::isMediaThatCanBeDownloaded):

Re-name _canAddImageToPhotos to _canAddMediaToPhotos, which is more accurate. We
might use this method for videos some day, so now it has an accurate name.

  • UIProcess/mac/WKActionMenuController.mm:

Default items and their actions.
(-[WKActionMenuController _defaultMenuItemsForVideo]):
(-[WKActionMenuController _copyVideoURL:]):
(-[WKActionMenuController _saveVideoToDownloads:]):
(-[WKActionMenuController _defaultMenuItemsForImage]):
(-[WKActionMenuController _canAddMediaToPhotos]):
(-[WKActionMenuController _addImageToPhotos:]):
(-[WKActionMenuController _createActionMenuItemForTag:]):
(-[WKActionMenuController _defaultMenuItems:]):
(-[WKActionMenuController _canAddImageToPhotos]): Deleted.

We hit test including shadow content to get the desired result for editable text
regions. But for media, we want to re-set to the shadow root.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performActionMenuHitTestAtLocation):

10:07 AM Changeset in webkit [175778] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Speed up HTMLInputElement::isEmptyValue()
https://bugs.webkit.org/show_bug.cgi?id=138515

Reviewed by Geoffrey Garen.

HTMLInputElement::isEmptyValue() was calling
HTMLTextFormControlElement::innerTextValue() which causes a full
subtree traversal to construct a string representation of that subtree
using a StringBuilder. In the case of HTMLInputElement::isEmptyValue(),
we don't have to do all this: We don't need to construct a String
and we can return false as soon as we find a non-empty descendant.

No new tests, no behavior change.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::isEmptyValue):

  • html/HTMLInputElement.h:
9:17 AM Changeset in webkit [175777] by eric.carlson@apple.com
  • 9 edits in trunk/Source/WebCore

[iOS] video is sometimes allowed to play from the background
https://bugs.webkit.org/show_bug.cgi?id=138522

Reviewed by Jer Noble.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::displayType): New.

  • html/HTMLMediaElement.h:
  • platform/audio/MediaSession.cpp:

(WebCore::MediaSession::isHidden): New, client passthrough.
(WebCore::MediaSession::displayType): Ditto.

  • platform/audio/MediaSession.h:

(WebCore::MediaSessionClient::displayType):

  • platform/audio/MediaSessionManager.cpp:

(WebCore::MediaSessionManager::sessionCanLoadMedia): New, default implementation returns

true if client is visible or playing.

  • platform/audio/MediaSessionManager.h:
  • platform/audio/ios/MediaSessionManagerIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::sessionCanLoadMedia): iOS override, also allows buffering

when displaying optimized fullscreen.

2:53 AM Changeset in webkit [175776] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] Run layout tests using the network process
https://bugs.webkit.org/show_bug.cgi?id=138428

Reviewed by Martin Robinson.

Shared secondary process is the default in the GTK+ port, but we
should run the tests using the network process to ensure
everything works with the network process. In the future, the
shared secondary process model might be a special case of multiple
processes with 1 as maximum number of processes, but always using
the network process.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):

2:50 AM Changeset in webkit [175775] by Carlos Garcia Campos
  • 6 edits in trunk

[GTK] Allow to create a view with a related page in WTR
https://bugs.webkit.org/show_bug.cgi?id=138501

Reviewed by Martin Robinson.

Source/WebKit2:

This is needed when running tests in multi web process mode.

  • UIProcess/API/C/gtk/WKView.cpp:

(WKViewCreate):

  • UIProcess/API/C/gtk/WKView.h:

Tools:

  • TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:

(TestWebKitAPI::PlatformWebView::PlatformWebView): Pass nullptr as
related page to WKViewCreate.

  • WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:

(WTR::PlatformWebView::PlatformWebView): Pass the given related
page to WKViewCreate.

2:47 AM Changeset in webkit [175774] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

WTR crashes after running a test when NetworkProcess enabled
https://bugs.webkit.org/show_bug.cgi?id=138500

Reviewed by Alexey Proskuryakov.

WebNotificationProvider destructor is calling
WKNotificationManagerSetProvider, but m_notificationManager is
null because removeNotificationManager was already called.

  • WebKitTestRunner/WebNotificationProvider.cpp:

(WTR::WebNotificationProvider::~WebNotificationProvider): Check
m_notificationManager is not null before calling WKNotificationManagerSetProvider.

Nov 7, 2014:

8:25 PM Changeset in webkit [175773] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix the build after r175772

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-11-07

  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):

6:05 PM Changeset in webkit [175772] by benjamin@webkit.org
  • 14 edits in trunk/Source/WebCore

Make the Selector's specificity part of Selector matching
https://bugs.webkit.org/show_bug.cgi?id=138486

Reviewed by Andreas Kling.

In CSS Selectors Level 4, the specificity of selectors is computed dynamically
based on which element is being matched.

For example, a selector:

:matches(#foo, .bar, baz)

has a specificity of

(1, 0, 0) on <baz id=foo class=bar>
(0, 1, 0) on <baz class=bar>
(0, 0, 1) on <baz>

Previously, the specificity of each selector was computed statically when populating
RuleSet. With more recent CSS, this gives us the wrong specificity because we do not know
how the selectors applies to the target.

This patch moves one tiny step in the direction of dynamic specificity. The specificity
is removed from RuleSet and is moved inside Selector Matching.

There is one bit worth keeping static: matching based on rule hash. This path is important
to avoid spending time compiling trivial selectors.
In order to keep rule hash matching working, the RuleData store which specificity class
the rule has in addition to the information about matching/not-matching. When going through
the fast path in ElementCollector, we compute the right specificity based on the type
of rule-hash matching.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::specificityForOneSelector):

  • css/CSSSelector.h:
  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::addMatchedRule):
(WebCore::ElementRuleCollector::sortAndTransferMatchedRules):
(WebCore::ElementRuleCollector::ruleMatches):
(WebCore::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::compareRules):

  • css/ElementRuleCollector.h:
  • css/RuleSet.cpp:

(WebCore::computeMatchBasedOnRuleHash):
(WebCore::RuleData::RuleData):
(WebCore::isSelectorMatchingHTMLBasedOnRuleHash): Deleted.

  • css/RuleSet.h:

(WebCore::RuleData::matchBasedOnRuleHash):
(WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash): Deleted.
(WebCore::RuleData::specificity): Deleted.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::match):

  • css/SelectorChecker.h:
  • css/StyleResolver.h:

(WebCore::checkRegionSelector):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):

  • cssjit/SelectorCompiler.h:

(WebCore::SelectorCompiler::ruleCollectorSimpleSelectorCheckerFunction):
(WebCore::SelectorCompiler::querySelectorSimpleSelectorCheckerFunction):
(WebCore::SelectorCompiler::ruleCollectorSelectorCheckerFunctionWithCheckingContext):
(WebCore::SelectorCompiler::querySelectorSelectorCheckerFunctionWithCheckingContext):
(WebCore::SelectorCompiler::simpleSelectorCheckerFunction): Deleted.
(WebCore::SelectorCompiler::selectorCheckerFunctionWithCheckingContext): Deleted.

  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::selectorMatches):
(WebCore::SelectorDataList::selectorClosest):
(WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker):
(WebCore::SelectorDataList::executeCompiledSelectorCheckerWithCheckingContext):
(WebCore::SelectorDataList::executeCompiledSingleMultiSelectorData):
(WebCore::SelectorDataList::execute):

  • dom/SelectorQuery.h:
4:40 PM Changeset in webkit [175771] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

CSP is enforced for eval in report-only mode on first page load
https://bugs.webkit.org/show_bug.cgi?id=138492
rdar://problem/15782525

Reviewed by Daniel Bates.

This is covered by existing tests when running as one test per process invocation.

  • page/ContentSecurityPolicy.cpp:

(WebCore::CSPDirectiveList::allowEval): Allow when in report only mode. The allowEval
function itself needs to return false, because it's used in checkEvalAndReportViolation().
(WebCore::CSPDirectiveList::allowJavaScriptURLs): Apply the same fix, although it's
not changing the behavior - this function is never called with ContentSecurityPolicy::SuppressReport.
(WebCore::CSPDirectiveList::allowInlineEventHandlers): Ditto.
(WebCore::CSPDirectiveList::allowInlineScript): Ditto.
(WebCore::CSPDirectiveList::allowInlineStyle): Ditto.
(WebCore::CSPDirectiveList::allowPluginType): Ditto.
(WebCore::CSPDirectiveList::allowScriptFromSource): Ditto.
(WebCore::CSPDirectiveList::allowObjectFromSource): Ditto.
(WebCore::CSPDirectiveList::allowChildFrameFromSource): Ditto.
(WebCore::CSPDirectiveList::allowImageFromSource): Ditto.
(WebCore::CSPDirectiveList::allowStyleFromSource): Ditto.
(WebCore::CSPDirectiveList::allowFontFromSource): Ditto.
(WebCore::CSPDirectiveList::allowMediaFromSource): Ditto.
(WebCore::CSPDirectiveList::allowConnectToSource): Ditto.
(WebCore::CSPDirectiveList::allowFormAction): Ditto.
(WebCore::CSPDirectiveList::allowBaseURI): Ditto.
(WebCore::ContentSecurityPolicy::didReceiveHeader): Remove isReportOnly() check,
which is now inside allowEval().

4:06 PM Changeset in webkit [175770] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

"Lookup" action menu should read "Look up"
https://bugs.webkit.org/show_bug.cgi?id=138509

Patch by Conrad Shultz <Conrad Shultz> on 2014-11-07
Reviewed by Tim Horton.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _createActionMenuItemForTag:]):

3:51 PM Changeset in webkit [175769] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Fix typos in r175768.

  • public/v2/app.js:

(App.AnalysisTaskViewModel.roots):

3:47 PM Changeset in webkit [175768] by rniwa@webkit.org
  • 11 edits
    4 adds in trunk/Websites/perf.webkit.org

Introduce the concept of analysis task to perf dashboard
https://bugs.webkit.org/show_bug.cgi?id=138517

Reviewed by Andreas Kling.

Introduced the concept of an analysis task, which is created for a range of measurements for a given metric on
a single platform and used to bisect regressions in the range.

Added a new page to see the list of active analysis tasks and a page to view the contents of an analysis task.

  • init-database.sql: Added a bunch of tables to store information about analysis tasks.

analysis_tasks - Represents each analysis task. Associated with a platform and a metric and possibly with two
test runs. Analysis tasks not associated with test runs are used for try new patches.
analysis_test_groups - A test group in an analysis task represents a bunch of related A/B testing results.
root_sets - A root set represents a set of roots (or packages) installed in each A/B testing.
build_requests - A build request represents a single pending build for A/B testing.

  • public/api/analysis-tasks.php: Added. Returns the specified analysis task or all analysis tasks in an array.

(main):
(format_task):

  • public/api/test-groups.php: Added. Returns analysis task groups for the specified analysis task or returns

the specified analysis task group as well as build requests associated with them.
(main):
(fetch_test_groups_for_task):
(fetch_build_requests_for_task):
(fetch_build_requests_for_group):
(format_test_group):
(format_build_request):

  • public/include/json-header.php:

(remote_user_name): Extracted from compute_token so that we can use it in create-analysis-task.php.
(compute_token):

  • public/privileged-api/associate-bug.php:

(main): Fixed a typo.

  • public/privileged-api/create-analysis-task.php: Added. Creates a new analysis task for a given test run range.

(main):
(ensure_row_by_id):
(ensure_config_from_runs):

  • public/privileged-api/generate-csrf-token.php: Use remote_user_name.
  • public/v2/analysis.js: Added. Various Ember data store models to represent analysis tasks and related objects.

(App.AnalysisTask):
(App.AnalysisTask.create):
(App.TestGroup):
(App.TestGroupAdapter):
(App.AnalysisTaskSerializer):
(App.TestGroupSerializer):
(App.BuildRequest):

  • public/v2/app.css: Added style rules for the analysis page.
  • public/v2/app.js:

(App.Pane._fetch): Use fetchRunsWithPlatformAndMetric, which has been refactored into App.Manifest.

(App.PaneController.actions.toggleBugsPane): Show bugs pane even when there are no bug trackers or there is not
exactly one selected point as we can still create an analysis task.
(App.PaneController.actions.associateBug): Renamed singlySelectedPoint to selectedSinglePoint to be more
grammatical and also alert'ed the error message when there is one.
(App.PaneController.actions.createAnalysisTask): Added. Creates a new analysis task and opens it in a new tab.
Since window.open only works during the click, we open the new "window" preemptively and navigates or closes it
once XHR request has completed.
(App.PaneController._detailsChanged): Changes due to singlySelectedPoint to selectedSinglePoint rename.
(App.PaneController._updateBugs): Fixed a bug that we were showing bugs in the previous point when a single point
is selected in the details pane.

(App.AnalysisRoute): Added.
(App.AnalysisTaskRoute): Added.
(App.AnalysisTaskViewModel): Added.
(App.AnalysisTaskViewModel._taskUpdated): Fetch runs for the associated platform and metric.
(App.AnalysisTaskViewModel._fetchedRuns): Setup the chart data to show.
(App.AnalysisTaskViewModel.testSets): The computed property used to update roots for all repositories/projects.
(App.AnalysisTaskViewModel._rootChangedForTestSet): Updates root selections for all repositories/projects when
the user selects an option for all roots in A or B configuration.
(App.AnalysisTaskViewModel.roots): The computed property used to show root choices for each repository/project.

  • public/v2/chart-pane.css: Added style rules for details view in the analysis task page.
  • public/v2/data.js:

(Measurement.prototype._formatRevisionRange): Don't prefix a revision number with "At " when there is no previous
point so that we can use it in App.AnalysisTaskViewModel.roots.
(TimeSeries.prototype.findPointByMeasurementId): Added.
(TimeSeries.prototype.seriesBetweenPoints): Added.

  • public/v2/index.html: Use Metric.fullName since the same value is needed in the analysis task page. Also added

a button to create an analysis task, and made bugs pane button always enabled since we can an analysis task even
when multiple points are selected. Finally, added a new template for the analysis task page.

  • public/v2/manifest.js:

(App.Metric.fullName): Added to share code between the charts page and the analysis task page.
(App.Manifest.fetchRunsWithPlatformAndMetric): Extracted from App.Pane._fetch to be reused in
App.AnalysisTaskViewModel._taskUpdated.

3:37 PM Changeset in webkit [175767] by Joseph Pecoraro
  • 16 edits
    3 moves in trunk/Source/WebInspectorUI

Web Inspector: Layer summary should be bottom sticky
https://bugs.webkit.org/show_bug.cgi?id=138518

Reviewed by Timothy Hatcher.

Previously only NavigationSidebars had a content view. Now, give all
Sidebars a contentElement section for content.

Update all Details Sidebars to append content to the contentElement
instead of directly to the element. Only two Details sidebars append
to the element:

  • CSSStyleDetailsSidebarPanel for the navigation bar at the top
  • LayerTreeDetailsSidebarPanel for the summary view at the bottom

Take this opportunity to fix up some naming and styles as well.

  • UserInterface/Views/SidebarPanel.js:

(WebInspector.SidebarPanel):
(WebInspector.SidebarPanel.prototype.get contentElement):
Give every SidebarPanel a content element.

  • UserInterface/Views/DetailsSidebarPanel.css: Removed.

(.sidebar > .panel > .content):

  • UserInterface/Views/SidebarPanel.css: Added.

(.sidebar > .panel > .content):
And give that content element a default style.

  • UserInterface/Views/NavigationSidebarPanel.css:

(.sidebar > .panel.navigation > .content):

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WebInspector.NavigationSidebarPanel.prototype.get contentElement): Deleted.
Navigation sidebar panels now use the parent's contentElement.
Also, carry over their default styles, overriding the base.

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js: Renamed from Source/WebInspectorUI/UserInterface/Views/LayerTreeSidebarPanel.js.

(WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildLayerInfoSection):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildBottomBar):
Rename LayerTreeSidebarPanel to make it clear this is a DetailsSidebarPanel.
Add the "bottom bar" to the root element, and sections to the contentElement.

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.css: Renamed from Source/WebInspectorUI/UserInterface/Views/LayerTreeSidebarPanel.css.

(.sidebar > .layer-tree.panel > .content):
(body.mac-platform.legacy .sidebar > .layer-tree.panel > .content):
Style the bottom bar to pin it to the bottom of the sidebar panel.

(WebInspector.CSSStyleDetailsSidebarPanel):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.refresh):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._navigationItemSelected):
Add the navigation bar to the root element, and sections to the contentElement.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):

  • UserInterface/Main.html:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:

Update for new names.

  • UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:

(WebInspector.ApplicationCacheDetailsSidebarPanel):

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
  • UserInterface/Views/DOMDetailsSidebarPanel.js:

(WebInspector.DOMDetailsSidebarPanel):

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WebInspector.DOMNodeDetailsSidebarPanel):

  • UserInterface/Views/DetailsSidebarPanel.js:

(WebInspector.DetailsSidebarPanel):

  • UserInterface/Views/ProbeDetailsSidebarPanel.js:
  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WebInspector.ResourceDetailsSidebarPanel):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshURL):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestDataSection):

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh.delayedWork):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh):
All details sidebar panels now use the contentElement instead of element for content.

3:36 PM Changeset in webkit [175766] by Dániel Bátyai
  • 3 edits in trunk/Source/JavaScriptCore

Fix an alignment issue with operationPushCatchScope on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=138510

Reviewed by Csaba Osztrogonác.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

  • jit/JITInlines.h:

(JSC::JIT::callOperation):

3:10 PM Changeset in webkit [175765] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Avoid repainting scrollbar track when the scrollbar track is transparent.
<https://webkit.org/b/138521>
<rdar://problem/18892090>

Reviewed by Simon Fraser.

Don't bother invalidating the entire WebCore scrollbar when we've opted into
AppKit's special mode to use individual layers for scrollbar components.
NSScrollerImp will invalidate what's necessary below e.g setKnobAlpha.

  • platform/mac/ScrollAnimatorMac.mm:

(-[WebScrollbarPartAnimation setCurrentProgress:]):

2:14 PM Changeset in webkit [175764] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Rename HTMLInputElement::imageLoader() to ensureImageLoader()
https://bugs.webkit.org/show_bug.cgi?id=138508

Reviewed by Andreas Kling.

Rename HTMLInputElement::imageLoader() to ensureImageLoader() and have
it return a reference to make it clear that it constructs an
ImageLoader if missing.
Also introduce a lightweight imageLoader() getter which just returns
the imageLoader or null if missing.

No new tests, no behavior change.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::ensureImageLoader):
(WebCore::HTMLInputElement::didMoveToNewDocument):
(WebCore::HTMLInputElement::imageLoader): Deleted.

  • html/HTMLInputElement.h:

(WebCore::HTMLInputElement::imageLoader):
(WebCore::HTMLInputElement::hasImageLoader): Deleted.

  • html/ImageInputType.cpp:

(WebCore::ImageInputType::srcAttributeChanged):
(WebCore::ImageInputType::attach):
(WebCore::ImageInputType::height):
(WebCore::ImageInputType::width):

2:01 PM Changeset in webkit [175763] by timothy@apple.com
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Cursor and scroll view jumps around when modifying styles
https://bugs.webkit.org/show_bug.cgi?id=137467

This merges commit e2962a5b0df56c8ee5a4482899d308decf3d7677 from CodeMirror.

Reviewed by Joseph Pecoraro.

  • UserInterface/External/CodeMirror/codemirror.js:

(maybeScrollWindow): Signal the scrollCursorIntoView event.
(signalDOMEvent): Support string events by transforming them to event objects.

  • UserInterface/Views/CodeMirrorAdditions.js:

(scrollCursorIntoView): Added. Default event listener that provides our own
implementation using WebKit's scrollIntoViewIfNeeded.

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel.prototype.refresh): Stop doing an
extra scrollIntoViewIfNeeded call, CodeMirror does this.

1:58 PM Changeset in webkit [175762] by msaboff@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

Update scope related slow path code to use scope register added to opcodes
https://bugs.webkit.org/show_bug.cgi?id=138254

Reviewed by Mark Lam.

Updated slow paths for op_pop_scope, op_push_name_scope and op_push_with_scope.
Added scope register index parameter to the front of the relevant argument lists of the
slow functions. In the case of op_push_name_scope for x86 (32 bit), there aren't enough
registers to accomodate all the parameters. Therefore, added two new JSVALUE32_64 slow
paths called operationPushCatchScope() and operationPushFunctionNameScope() to eliminate
the last "type" argument.

  • assembler/MacroAssemblerCodeRef.h:

(JSC::FunctionPtr::FunctionPtr): Added a new template to take 6 arguments.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::callOperation):
New variants of setupArgumentsWithExecState() and callOperation() to handle the new
combinations of argument types and counts.

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_push_with_scope):
(JSC::JIT::emit_op_pop_scope):
(JSC::JIT::emit_op_push_name_scope):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_push_with_scope):
(JSC::JIT::emit_op_pop_scope):
(JSC::JIT::emit_op_push_name_scope):
Use the new slow paths.

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:

Updates to set the scope result using the scope register index. Added operationPushCatchScope()
and operationPushFunctionNameScope().

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
Updated the scope slow paths to use the scope register index in the instruction to read and
write the register instead of using CallFrame::scope() and CallFrame::setScope().

1:29 PM Changeset in webkit [175761] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

Null deref performing Lookup on Apple Trailers full screen button
https://bugs.webkit.org/show_bug.cgi?id=138513
-and corresponding-
rdar://problem/18909699

Reviewed by Tim Horton.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performDictionaryLookupForSelection):

1:21 PM Changeset in webkit [175760] by Chris Dumez
  • 5 edits
    2 adds in trunk

Move 'webkit-clip-path' CSS property to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=138452

Reviewed by Andreas Kling.

Source/WebCore:

Move 'webkit-clip-path' CSS property from DeprecatedStyleBuilder to the
new StyleBuilder so that it is now generated from CSSPropertyNames.in.

A ClipPath converter was added to support this. Custom code was avoided
by replacing if checks by assertions, relying on the CSSParser to make
sure the input is valid.

Test: fast/masking/clip-path-bad-value.html

  • css/CSSPropertyNames.in:
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyClipPath::setValue): Deleted.
(WebCore::ApplyPropertyClipPath::applyValue): Deleted.
(WebCore::ApplyPropertyClipPath::createHandler): Deleted.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertClipPath):

LayoutTests:

Add layout test to make sure we don't crash in the StyleBuilder when
setting unexpected values to webkit-clip-path property.

  • fast/masking/clip-path-bad-value-expected.txt: Added.
  • fast/masking/clip-path-bad-value.html: Added.
12:35 PM Changeset in webkit [175759] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebKit2

Make it possible to associate snapshots with back/forward list items other than the current item.
https://bugs.webkit.org/show_bug.cgi?id=138490

Patch by Anshu Chimala <anshu@apple.com> on 2014-11-07
Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKViewPrivate.h:

Declare -saveBackForwardSnapshotForItem:, an alternative to -saveBackForwardSnapshotForCurrentItem that accepts a
back/forward list item as an argument.

  • UIProcess/API/mac/WKView.mm:

(-[WKView saveBackForwardSnapshotForItem:]):
Pass the provided back/forward list item along to WebPageProxy::recordNavigationSnapshot().

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::recordNavigationSnapshot):
Overloaded to optionally take a back/forward list item as an argument. If one isn't provided, default to the current item
as before; otherwise, associate the snapshot with whichever item was provided.

  • UIProcess/WebPageProxy.h:

Declare the new recordNavigationSnapshot() overload.

  • UIProcess/mac/ViewSnapshotStore.h:

Make recordSnapshot() take a back/forward list item as an argument.

  • UIProcess/mac/ViewSnapshotStore.mm:

(WebKit::ViewSnapshotStore::recordSnapshot):
Store the snapshot in the provided back/forward list item instead of in the current item.

12:29 PM Changeset in webkit [175758] by Joseph Pecoraro
  • 5 edits
    2 adds in trunk

Web Inspector: Pseudo element matchedCSSRules do not include matching selector info
https://bugs.webkit.org/show_bug.cgi?id=138438

Reviewed by Benjamin Poulain.

Source/WebCore:

Test: inspector/css/psuedo-element-matches.html

Element::matches is not the correct API to use to check selectors with pseudo-elements.
Instead we should use the CSS Selector checking machinary which understands them.

  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::getSupportedCSSProperties):
(WebCore::InspectorCSSAgent::buildArrayForRuleList):
(WebCore::InspectorCSSAgent::buildArrayForRegions):
(WebCore::InspectorCSSAgent::buildObjectForNamedFlow):
Some RefPtr release improvements.

(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
Use a SelectorChecker to check each Selector against the element.
This matches the SelectorChecker used when we collected the rules
for this element.

Source/WebInspectorUI:

  • UserInterface/Base/Test.js:

(WebInspector.loaded):
Include a global setting for shadow dom used by DOM model classes.
Give it a "test" specific name to not override non-test setting values.

LayoutTests:

  • inspector/css/pseudo-element-matches-expected.txt: Added.
  • inspector/css/pseudo-element-matches.html: Added.

Add a test to ensure we get correct selector matches for a pseudo element
inside of an <audio> element. The test is heavily coupled to our UserAgent
stylesheet and Shadow DOM layout, so check for possible failures if
WebCore changes things.

12:25 PM Changeset in webkit [175757] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Popovers do not dismiss when navigating back and forth using gestures
https://bugs.webkit.org/show_bug.cgi?id=138512
<rdar://problem/18900200>

Reviewed by Beth Dakin.

  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::navigationGestureDidBegin):
Dismiss action menu related popovers when navigation gestures begin.

12:06 PM Changeset in webkit [175756] by Beth Dakin
  • 9 edits in trunk/Source/WebKit2

Action menu preview popover should dismiss on scroll
https://bugs.webkit.org/show_bug.cgi?id=138511
-and corresponding-
rdar://problem/18901445

Reviewed by Tim Horton.

This patch re-names dismissActionMenuDataDetectorPopovers() to
dismissActionMenuPopovers() and also calls _clearPreviewPopover from that method
as well.

  • UIProcess/API/mac/WKView.mm:

(-[WKView viewDidMoveToWindow]):
(-[WKView _dismissActionMenuPopovers]):
(-[WKView _dismissActionMenuDataDetectorPopovers]): Deleted.

  • UIProcess/API/mac/WKViewInternal.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::pageDidScroll):
(WebKit::WebPageProxy::resetStateAfterProcessExited):

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::dismissActionMenuPopovers):
(WebKit::PageClientImpl::dismissActionMenuDataDetectorPopovers): Deleted.

  • UIProcess/mac/WKActionMenuController.h:
  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController dismissActionMenuPopovers]):
(-[WKActionMenuController dismissActionMenuDataDetectorPopovers]): Deleted.

12:02 PM Changeset in webkit [175755] by Bem Jones-Bey
  • 8 edits
    4 adds
    4 deletes in trunk/LayoutTests

[CSS Shapes] the sandbag JS utility code isn't producing the correct expected result in the shape-image gradient tests
https://bugs.webkit.org/show_bug.cgi?id=135923

Reviewed by Dirk Schulze.

Import tests from upstream. They have been modified so that they use
testharness to validate success or failure instead of being reftests,
allowing for fuzziness in matching to get around small variances
between implementations.

  • TestExpectations:
  • css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001-expected.html: Removed.
  • css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001-expected.txt: Added.
  • css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001.html:
  • css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002-expected.html: Removed.
  • css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002-expected.txt: Added.
  • css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002.html:
  • css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003-expected.html: Removed.
  • css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003-expected.txt: Added.
  • css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003.html:
  • css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004-expected.html: Removed.
  • css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004-expected.txt: Added.
  • css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004.html:
  • css3/shapes/shape-outside/shape-image/gradients/w3c-import.log:
  • css3/shapes/shape-outside/supported-shapes/support/test-utils.js:

(verifyTextPoints):

10:58 AM Changeset in webkit [175754] by Beth Dakin
  • 3 edits in trunk/Source/WebKit2

Support action menus for whitespace in editable areas
https://bugs.webkit.org/show_bug.cgi?id=138488
-and corresponding-
rdar://problem/18877717

Reviewed by Tim Horton.

Very simple menu for whitespace in editable areas.

  • Shared/API/c/WKActionMenuTypes.h:
  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _defaultMenuItemsForWhitespaceInEditableArea]):
(-[WKActionMenuController _defaultMenuItems:]):

10:54 AM Changeset in webkit [175753] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

Invoking an action menu should dismiss existing selection
https://bugs.webkit.org/show_bug.cgi?id=138496
-and corresponding-
rdar://problem/18892787

Reviewed by Tim Horton.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController willOpenMenu:withEvent:]):

10:28 AM Changeset in webkit [175752] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Drop useless HTMLElement::isURLAttribute() override
https://bugs.webkit.org/show_bug.cgi?id=138479

Reviewed by Mark Lam.

Drop useless HTMLElement::isURLAttribute() override as it is doing
nothing but calling the parent class' isURLAttribute().

No new tests, no behavior change.

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::isURLAttribute): Deleted.

  • html/HTMLElement.h:
10:12 AM Changeset in webkit [175751] by ggaren@apple.com
  • 8 edits in trunk/Source/bmalloc

bmalloc uses 8X more virtual memory than necessary
https://bugs.webkit.org/show_bug.cgi?id=138495

Reviewed by Mark Lam.

iOS has a per-process virtual memory cap around 1GB, so there's some
value to not going totally ham with virtual memory.

We currently use about 8X the necessary amount:

  • 2X to align our VM allocation
  • 4X to reserve small / medium / (2) large chunk VM ranges per superchunk

We can cut that down:

  • Return the unaligned portion of our VM allocation (-2X)
  • Use all the chunks in a superchunk, instead of allocating one chunk per superchunk (-4X)
  • bmalloc/Algorithm.h:

(bmalloc::roundUpToMultipleOf): Added a non-constant version of this
function so we can call it with getpagesize() at runtime.

  • bmalloc/Chunk.h:
  • bmalloc/LargeChunk.h:

(bmalloc::LargeChunk::create): Deleted. Instead of each chunk allocating
its own VM, VMHeap allocates the superchunk and all the chunks in it at a time.

  • bmalloc/VMAllocate.h:

(bmalloc::vmValidate):
(bmalloc::vmAllocate): ASSERT that mmap succeeds to make crashes clearer
if it does not succeed. Allocate precisely, and give back the extra.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::allocateSuperChunk):
(bmalloc::VMHeap::allocateSmallChunk): Deleted.
(bmalloc::VMHeap::allocateMediumChunk): Deleted.
(bmalloc::VMHeap::allocateLargeChunk): Deleted. Use all the chunks
in a superchunk, instead of just one.

  • bmalloc/VMHeap.h:

(bmalloc::VMHeap::allocateSmallPage):
(bmalloc::VMHeap::allocateMediumPage):
(bmalloc::VMHeap::allocateLargeRange):

  • bmalloc/XLargeChunk.h:

(bmalloc::XLargeChunk::create): Updated to match changes above.

10:10 AM Changeset in webkit [175750] by eric.carlson@apple.com
  • 14 edits in trunk/Source

[iOS] Update optimized fullscreen media controls
https://bugs.webkit.org/show_bug.cgi?id=138493

Reviewed by Brent Fulgham.

Source/WebCore:

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::fullscreenMode): New.
(WebCore::MediaControlsHost::mediaUIImageData): New.

  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediacontrols/mediaControlsiOS.css:

Renamed -webkit-media-controls-wireless-playback-status to -webkit-media-controls-inline-playback-placeholder

because it is now used for other inline playback status display. Add z-index:0 so the placeholder
renders above captions. Remove the background-image, it is now set from script.

(audio::-webkit-media-controls-inline-playback-placeholder):
(audio::-webkit-media-controls-inline-playback-placeholder.hidden):
(video::-webkit-media-controls-optimized-fullscreen-button):
(audio::-webkit-media-controls-wireless-playback-status): Deleted.
(audio::-webkit-media-controls-wireless-playback-status.hidden): Deleted.
(video::-webkit-media-controls-optimized-fullscreen-button:active): Deleted.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS): Set doingSetup to true around setup so we don't draw the inline controls

briefly when an element is created as a result of a user gesture.

(ControllerIOS.prototype.shouldHaveStartPlaybackButton): Don't allow inline controls during

initial setup to prevent inline controls from begin drawn briefly when a media element
is created and inserted by a script called from a user gesture.

(ControllerIOS.prototype.updateWirelessPlaybackStatus): wirelessPlaybackStatus -> inlinePlaybackPlaceholder.
(ControllerIOS.prototype.createControls): Ditto. Add style rules for optimized fullscreen button.
(ControllerIOS.prototype.configureInlineControls): Add the inlinePlaybackPlaceholder as a peer of

the inline controls compositing child instead of as a child so it renders correctly.

(ControllerIOS.prototype.addControls):
(ControllerIOS.prototype.updateControls): wirelessPlaybackStatus -> inlinePlaybackPlaceholder.
(ControllerIOS.prototype.handleWrapperTouchStart):
(ControllerIOS.prototype.get pageScaleFactor): Cleanup.
(ControllerIOS.prototype.set pageScaleFactor): Ditto.
(ControllerIOS.prototype.handleFullscreenChange): Show the placeholder.

  • WebCore.exp.in: Export _wkGetMediaUIImageData.
  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::fullscreenMode): Expose fullscreen mode.

  • platform/ios/WebCoreSystemInterfaceIOS.h:
  • platform/ios/WebCoreSystemInterfaceIOS.mm:

Source/WebKit/mac:

  • WebCoreSupport/WebSystemInterface.mm:

(InitWebCoreSystemInterface): Initialize GetMediaUIImageData.

Source/WebKit2:

  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:

(InitWebCoreSystemInterface): Initialize GetMediaUIImageData.

3:43 AM Changeset in webkit [175749] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.6

Merge r173857 - Move nodeFromPoint() back to Document where it belongs
https://bugs.webkit.org/show_bug.cgi?id=137012

Reviewed by Zalan Bujtas.
Source/WebCore:

nodeFromPoint() was moved into TreeScope for ShadowDOM work, but now we can move
it back to its logical place.

Make versions of elementFromPoint and caretRangeFromPoint that take LayoutPoints,
and change the current scale/offset code to be in layout units (which results
in a small behavior change).

elementFromPoint(int, int) and caretRangeFromPoint(int, int) are still required
for bindings code.

  • dom/Document.cpp:

(WebCore::Document::nodeFromPoint):
(WebCore::Document::elementFromPoint):
(WebCore::Document::caretRangeFromPoint):

  • dom/Document.h:

(WebCore::Document::elementFromPoint): Move logic from TreeScope::elementFromPoint()
here.

  • dom/TreeScope.cpp:

(WebCore::nodeFromPoint): Deleted.
(WebCore::TreeScope::elementFromPoint): Deleted.

  • dom/TreeScope.h:

LayoutTests:

All platforms use subpixel layout now, so remove the conditional behavior in this test.
Fix the test to account for scaling now being done in layout units.

  • fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt:
  • fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html:
  • platform/mac/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt:
3:29 AM Changeset in webkit [175748] by Antti Koivisto
  • 2 edits
    8 adds in trunk/Source/WebKit2

Add cache coders
https://bugs.webkit.org/show_bug.cgi?id=138413

Reviewed by Anders Carlsson.

Add encoding and decoding support for cache types.

This is largely a copy of the IPC coder classes with some unnecessary features removed.
The coders compute a type-sensitive checksum that can be used to verify the data integrity.

The code is behind ENABLE(NETWORK_CACHE) and not yet used.

  • NetworkProcess/cache: Added.
  • NetworkProcess/cache/NetworkCacheCoder.h: Added.
  • NetworkProcess/cache/NetworkCacheCoders.cpp: Added.
  • NetworkProcess/cache/NetworkCacheCoders.h: Added.
  • NetworkProcess/cache/NetworkCacheDecoder.cpp: Added.
  • NetworkProcess/cache/NetworkCacheDecoder.h: Added.
  • NetworkProcess/cache/NetworkCacheEncoder.cpp: Added.
  • NetworkProcess/cache/NetworkCacheEncoder.h: Added.
  • WebKit2.xcodeproj/project.pbxproj:
3:28 AM Changeset in webkit [175747] by Carlos Garcia Campos
  • 20 edits in releases/WebKitGTK/webkit-2.6/Source

Merge r173765 - Allow DOM methods to return references instead of pointers
https://bugs.webkit.org/show_bug.cgi?id=136931

Source/WebCore:

Reviewed by Sam Weinig.

It is common practice in WebKit to have methods return a reference
instead of a pointer if the pointer can never be null. However, this
unfortunately did not work for DOM methods (functions called by JS
bindings). This prevented further refactoring.

This patch brings support for having DOM methods to return references
instead of pointers when the pointer cannot be null. The generated
bindings were calling WTF::getPtr() on the pointer type returned by
the implementation already (in case it was a smart pointer type).
This patch leverages this by having WTF::getPtr() convert reference
arguments into raw pointers.

This patch also updates a few DOM methods on Document and Element
classes to return a reference instead of a pointer, to test the change.
There are likely more DOM methods that can be updated though.

No new tests, no behavior change.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::classList):

  • bindings/js/JSDOMBinding.h:

(WTF::getPtr): Deleted.

  • dom/Document.cpp:

(WebCore::Document::implementation):
(WebCore::Document::webkitGetNamedFlows):
(WebCore::Document::namedFlows):
(WebCore::Document::setXMLVersion):
(WebCore::Document::setXMLStandalone):
(WebCore::Document::securityPolicy):
(WebCore::Document::styleSheets):

  • dom/Document.h:

(WebCore::Document::timing):

  • dom/Element.cpp:

(WebCore::Element::classList):
(WebCore::Element::dataset):

  • dom/Element.h:
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlPanelElement::setPosition):
(WebCore::MediaControlPanelElement::resetPosition):
(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay):

  • html/track/VTTRegion.cpp:

(WebCore::VTTRegion::displayLastTextTrackCueBox):
(WebCore::VTTRegion::willRemoveTextTrackCueBox):

  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::getAllStyleSheets):
(WebCore::InspectorCSSAgent::getNamedFlowCollection):

  • page/PerformanceTiming.cpp:

(WebCore::PerformanceTiming::documentTiming):

  • rendering/FlowThreadController.cpp:

(WebCore::FlowThreadController::ensureRenderFlowThreadWithName):

Source/WTF:

Add support for having WTF::getPtr() transform reference arguments
into raw pointers so that DOM methods can now return references when
appropriate and so that the generated bindings code can handle this
via WTF::getPtr().

This patch had to alter the way getPtr() was overloaded for smart
pointer types so that we don't call &p on smart pointers but p.get().
This was needed because the new WTF::getPtr(T&) was being called for
RefPtr<T> arguments instead of the getPtr(const RefPtr<T>&) overload.
This was addressed using traits and template specialization to
distinguish WTF smart pointers from other types.

Reviewed by Sam Weinig.

  • wtf/GetPtr.h:

(WTF::getPtr):

  • wtf/OwnPtr.h:

(WTF::getPtr): Deleted.

  • wtf/PassOwnPtr.h:

(WTF::getPtr): Deleted.

  • wtf/PassRefPtr.h:

(WTF::getPtr): Deleted.

  • wtf/Ref.h:
  • wtf/RefPtr.h:

(WTF::getPtr): Deleted.

  • wtf/gobject/GRefPtr.h:

(WTF::getPtr): Deleted.

2:07 AM Changeset in webkit [175746] by evab.u-szeged@partner.samsung.com
  • 2 edits in trunk

[EFL] Require at least EFL 1.9 if ENABLE(ACCESSIBILITY) after r175098
https://bugs.webkit.org/show_bug.cgi?id=138465

Reviewed by Gyuyoung Kim.

  • Source/cmake/OptionsEfl.cmake:
1:21 AM Changeset in webkit [175745] by gyuyoung.kim@samsung.com
  • 6 edits in trunk/Source/JavaScriptCore

Apply std::unique_ptr to slowPathCall()
https://bugs.webkit.org/show_bug.cgi?id=138489

Reviewed by Mark Lam.

As a step to use std::unique_ptr<>, this patch makes slowPathCall() use std::unique_ptr<>,
std::make_unique<>, and WTF::move().

  • dfg/DFGSlowPathGenerator.h:

(JSC::DFG::slowPathCall):
(JSC::DFG::slowPathMove):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitAllocateJSArray):
(JSC::DFG::SpeculativeJIT::addSlowPathGenerator):
(JSC::DFG::SpeculativeJIT::arrayify):
(JSC::DFG::SpeculativeJIT::compileIn):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedPutById):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedPutById):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::compile):

12:24 AM Changeset in webkit [175744] by mark.lam@apple.com
  • 2 edits in trunk/LayoutTests

Gardening: get-by-pname.js is failing when run with JSC_useLLINT=false and other special JIT configurations.
<https://webkit.org/b/138497>

Unreviewed.

  • js/script-tests/get-by-pname.js:
  • temporarily skipping this from the JSC tests to green the bots until the issue is fixed.

Nov 6, 2014:

11:22 PM Changeset in webkit [175743] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

Unreviewed. Try to fix GTK build after r175719.

Rename the Timer fired function as requestAnimationTimerFired() to
avoid ambiguity.

  • platform/ScrollAnimatorNone.cpp:

(WebCore::ScrollAnimatorNone::ScrollAnimatorNone):
(WebCore::ScrollAnimatorNone::requestAnimationTimerFired):
(WebCore::ScrollAnimatorNone::animationTimerFired): Deleted.

  • platform/ScrollAnimatorNone.h:
9:53 PM Changeset in webkit [175742] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Remove useless if check in HTMLInputElement::setValue()
https://bugs.webkit.org/show_bug.cgi?id=138485

Reviewed by Daniel Bates.

Remove useless if check in HTMLInputElement::setValue(). It was
inadvertently left in as part of r94836.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setValue):

8:52 PM Changeset in webkit [175741] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Put names on a couple of video-related CALayers
https://bugs.webkit.org/show_bug.cgi?id=138491

Reviewed by Eric Carlson.

In debug, set layer names on a couple of video-related layers to make
debugging easier.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):

7:16 PM Changeset in webkit [175740] by Darin Adler
  • 5 edits in trunk

REGRESSION (r175549): http/tests/multipart/stop-crash.html failing (assertion failure in CachedResource::setEncodedSize)
https://bugs.webkit.org/show_bug.cgi?id=138358

Reviewed by Alexey Proskuryakov.

Source/WebCore:

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::setEncodedSize): Removed the incorrect assertion here.
The code asserts that resources only get bigger, never smaller. This is incorrect
for a multipart/mixed-replace image, where a later image that is smaller can replace
an earlier one. I don't fully understand why this assertion was not firing before,
but the relevant websites are working fine and the test otherwise passes.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::subresourceLoaderFinishedLoadingOnePart): Fix another
incorrect assertion that can fire for any parts after the first one. I ran into
this while testing various websites that use multipart/mixed-replace.

LayoutTests:

7:04 PM Changeset in webkit [175739] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.2-branch/Source

Versioning.

6:56 PM Changeset in webkit [175738] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.2.1

New Tag.

6:56 PM Changeset in webkit [175737] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.2-branch/Source

Versioning.

6:51 PM Changeset in webkit [175736] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.2-branch/Source/JavaScriptCore

Rollout r173238. rdar://problem/18495806

6:27 PM Changeset in webkit [175735] by commit-queue@webkit.org
  • 8 edits in trunk/Tools

Remove duplicate code from PatchAnalysisTask._test_patch and fix bug
regarding incorrect call to PatchAnalysisTask.report_failure
https://bugs.webkit.org/show_bug.cgi?id=138229

Patch by Jake Nielsen <jacob_nielsen@apple.com> on 2014-11-06
Reviewed by Daniel Bates.

  • Scripts/webkitpy/common/net/layouttestresults.py:

Makes sure test_results returns a list.
(LayoutTestResults.test_results):

  • Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:

Makes unit tests also check to make sure
task.results_from_patch_test_run() and
task.results_from_test_run_without_patch return instances of
LayoutTestResults.
(CommitQueueTaskTest._run_and_expect_patch_analysis_result):

  • Scripts/webkitpy/tool/bot/patchanalysistask.py:

Condenses duplicate code into _should_defer_patch_or_throw, and
removes the now-unused _clean_tree_results member.
(PatchAnalysisTask.init):
(PatchAnalysisTask._continue_testing_patch_that_exceeded_failure_limit_on_first_or_second_try):
(PatchAnalysisTask._should_defer_patch_or_throw):
(PatchAnalysisTask._test_patch):
(PatchAnalysisTask.results_from_patch_test_run):
(PatchAnalysisTask.results_from_test_run_without_patch): Deleted.

  • Scripts/webkitpy/tool/commands/earlywarningsystem.py:

Removes needless call to results_from_test_run_without_patch
(AbstractEarlyWarningSystem._failing_tests_message):

  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:

Changes order of test failure messages to be in the order that they
appear.
(AbstractEarlyWarningSystemTest.test_failing_tests_message):

  • Scripts/webkitpy/tool/commands/queues.py:

Removes needless call to results_from_test_run_without_patch.
(CommitQueue._failing_tests_message):

  • Scripts/webkitpy/tool/commands/queues_unittest.py:

(MockCommitQueueTask.results_from_test_run_without_patch): Deleted.

6:26 PM Changeset in webkit [175734] by dburkart@apple.com
  • 5 edits in branches/safari-600.3-branch/Source

Version bump.

6:11 PM Changeset in webkit [175733] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/mac

Wrap the bulk of -[WebView dealloc] with an autorelease pool.
https://bugs.webkit.org/show_bug.cgi?id=138443

Patch by Daniel Jalkut <jalkut@red-sweater.com> on 2014-11-06
Reviewed by Anders Carlsson.

Wrapping the dealloc method in its own autorelease pool avoids the problem of
complex tear-downs leading to the WebView itself being added to an autorelease
pool that is not drained until after the instance has been dealloc'd.

  • WebView/WebView.mm:

(-[WebView dealloc]):

6:02 PM Changeset in webkit [175732] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

Clients should be able to customize the view used for page previews
https://bugs.webkit.org/show_bug.cgi?id=138447

Patch by Conrad Shultz <Conrad Shultz> on 2014-11-06
Reviewed by Tim Horton.

Add SPI to WKView that clients can use to customize the view used in the page preview popover.

  • UIProcess/API/Cocoa/WKViewPrivate.h:

Declare -_viewForPreviewingURL:initialFrameSize:.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _viewForPreviewingURL:initialFrameSize:]):
Return nil in the default implementation.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKPagePreviewViewController loadView]):
Only spin up a WKWebView if the delegate (and, therefore, the presenting WKView) doesn't supply a custom view.
(-[WKActionMenuController pagePreviewViewController:viewForPreviewingURL:initialFrameSize:]):
WKPagePreviewViewControllerDelegate method; wrap the WKView SPI.

5:14 PM Changeset in webkit [175731] by mark.lam@apple.com
  • 3 edits in trunk/LayoutTests

Refactor the get-by-pname.js test [follow up 2].
<https://webkit.org/b/138483>

Reviewed by Michael Saboff.

Make unique copies of the test functions to ensure that each test case does not
affect the tiering up of other test cases.

  • js/get-by-pname-expected.txt:
  • js/script-tests/get-by-pname.js:

(foo): Deleted.
(getByPnameOnConstant): Deleted.
(getByPnameOnVar): Deleted.

4:53 PM Changeset in webkit [175730] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.8/Source/WebCore

Merged r175727. rdar://problem/18896362

4:49 PM Changeset in webkit [175729] by mark.lam@apple.com
  • 2 edits in trunk/LayoutTests

Refactor the get-by-pname.js test [follow up].
<https://webkit.org/b/138483>

Reviewed by Michael Saboff.

Used named properties to make the test code more readable.

  • js/script-tests/get-by-pname.js:

(isTierIteration):
(tierName):
(testExpr): Deleted.
(testExpectedResult): Deleted.

4:34 PM Changeset in webkit [175728] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.8/Source/JavaScriptCore

Merged r175724. rdar://problem/18495847

4:27 PM Changeset in webkit [175727] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix typo in optimized fullscreen activation.
https://bugs.webkit.org/show_bug.cgi?id=138480

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-11-06
Reviewed by Jer Noble.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.handleWrapperTouchStart): fix typo doubleTouchIntervalThresholdms
(ControllerIOS.prototype.handleOptimizedFullscreenButtonClicked): fix typo isFullScreen

4:24 PM Changeset in webkit [175726] by matthew_hanson@apple.com
  • 3 edits
    3 adds in branches/safari-600.2-branch

Merged r174740. rdar://problems/18883729

4:18 PM Changeset in webkit [175725] by ryuan.choi@navercorp.com
  • 2 edits in trunk/Tools

Unreviewed. Reorder my e-mail addresses in contributors.json

Patch by Ryuan Choi <ryuan.choi@navercorp.com> on 2014-11-06

  • Scripts/webkitpy/common/config/contributors.json:
4:18 PM Changeset in webkit [175724] by mark.lam@apple.com
  • 5 edits in trunk

slow_path_get_direct_pname() needs to be hardened against a constant baseValue.
<https://webkit.org/b/138476>

Reviewed by Michael Saboff.

Source/JavaScriptCore:

slow_path_get_direct_pname() currently assumes that the baseValue is always a
non-constant virtual register. However, this is not always the case like in the
following:

function foo() {

var o = { a:1 };
for (var n in o)

0[n];

}
foo();

This patch fixes it to also check for constant virtual register indexes.

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

LayoutTests:

  • js/get-by-pname-expected.txt:
  • js/script-tests/get-by-pname.js:

(getByPnameOnConstant):
(getByPnameOnVar):

  • Added more test cases.
4:02 PM Changeset in webkit [175723] by matthew_hanson@apple.com
  • 4 edits in branches/safari-600.2-branch/Source/WebCore

Merged r175375. rdar://problems/18883734

3:53 PM Changeset in webkit [175722] by mark.lam@apple.com
  • 3 edits in trunk/LayoutTests

Refactor the get-by-pname.js test.
<https://webkit.org/b/138483>

Reviewed by Geoffrey Garen.

Refactored the test code to:

  1. make it easier to add more test cases.
  2. test each case against different tier JITs.
  3. print only one set of results for each tier being tested.
  • js/get-by-pname-expected.txt:
  • js/script-tests/get-by-pname.js:

(getByPnameOnConstant):
(getByPnameOnVar):
(testExpr):
(testExpectedResult):
(isTierIteration):
(tierName):

3:20 PM Changeset in webkit [175721] by Bem Jones-Bey
  • 14 edits
    11 adds
    10 deletes in trunk/LayoutTests

[CSS Shapes] the spec-examples reftests are off by a few pixels
https://bugs.webkit.org/show_bug.cgi?id=135927

Reviewed by Zoltan Horvath.

Import new versions of the spec example tests that are js tests
instead of ref tests so that they can properly handle the small pixel
differences in rendering between platforms.

  • TestExpectations:
  • css3/shapes/spec-examples/shape-outside-010-expected.html: Removed.
  • css3/shapes/spec-examples/shape-outside-010-expected.txt: Added.
  • css3/shapes/spec-examples/shape-outside-010.html:
  • css3/shapes/spec-examples/shape-outside-011-expected.html: Removed.
  • css3/shapes/spec-examples/shape-outside-011-expected.txt: Added.
  • css3/shapes/spec-examples/shape-outside-011.html:
  • css3/shapes/spec-examples/shape-outside-012-expected.html: Removed.
  • css3/shapes/spec-examples/shape-outside-012-expected.txt: Added.
  • css3/shapes/spec-examples/shape-outside-012.html:
  • css3/shapes/spec-examples/shape-outside-013-expected.html: Removed.
  • css3/shapes/spec-examples/shape-outside-013-expected.txt: Added.
  • css3/shapes/spec-examples/shape-outside-013.html:
  • css3/shapes/spec-examples/shape-outside-014-expected.html: Removed.
  • css3/shapes/spec-examples/shape-outside-014-expected.txt: Added.
  • css3/shapes/spec-examples/shape-outside-014.html:
  • css3/shapes/spec-examples/shape-outside-015-expected.html: Removed.
  • css3/shapes/spec-examples/shape-outside-015-expected.txt: Added.
  • css3/shapes/spec-examples/shape-outside-015.html:
  • css3/shapes/spec-examples/shape-outside-016-expected.html: Removed.
  • css3/shapes/spec-examples/shape-outside-016-expected.txt: Added.
  • css3/shapes/spec-examples/shape-outside-016.html:
  • css3/shapes/spec-examples/shape-outside-017-expected.html: Removed.
  • css3/shapes/spec-examples/shape-outside-017-expected.txt: Added.
  • css3/shapes/spec-examples/shape-outside-017.html:
  • css3/shapes/spec-examples/shape-outside-018-expected.html: Removed.
  • css3/shapes/spec-examples/shape-outside-018-expected.txt: Added.
  • css3/shapes/spec-examples/shape-outside-018.html:
  • css3/shapes/spec-examples/shape-outside-019-expected.html: Removed.
  • css3/shapes/spec-examples/shape-outside-019-expected.txt: Added.
  • css3/shapes/spec-examples/shape-outside-019.html:
  • css3/shapes/spec-examples/support/spec-example-utils.js: Added.

(.runTest):
(approxShapeTest):

  • css3/shapes/spec-examples/support/w3c-import.log:
  • css3/shapes/spec-examples/w3c-import.log:
3:17 PM Changeset in webkit [175720] by Chris Dumez
  • 8 edits
    2 adds in trunk/Source/WebCore

Stop special-casing wbr elements in HTMLElement::createElementRenderer()
https://bugs.webkit.org/show_bug.cgi?id=138474

Reviewed by Ryosuke Niwa.

Stop special-casing wbr elements in HTMLElement::createElementRenderer()
and move the code to a HTMLWBRElement subclass instead, that is
overriding createElementRenderer(). This function is already virtual.

No new tests, no behavior change.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::createElementRenderer):

  • html/HTMLElementsAllInOne.cpp:
  • html/HTMLTagNames.in:
  • html/HTMLWBRElement.cpp: Added.

(WebCore::HTMLWBRElement::create):
(WebCore::HTMLWBRElement::HTMLWBRElement):
(WebCore::HTMLWBRElement::createElementRenderer):

  • html/HTMLWBRElement.h: Added.
  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::RenderLineBreak):

3:06 PM Changeset in webkit [175719] by jer.noble@apple.com
  • 277 edits in trunk/Source

De-templatize Timer
https://bugs.webkit.org/show_bug.cgi?id=138450

Reviewed by Anders Carlsson.

Source/WebCore:

Timer does not need to be a templated class; only it's constructors need to be templated.
Remove the template specifier from Timer and add same to its two class method
constructors. Replace the function pointer typedefs with using statements. Add a
helper typedef which allows invalid combinations of TimerFiredClass and
TimerFiredFunction to be caught early by the compiler, while still allowing
valid combinations (such as when the caller specifies a function on a subclass of
TimerFiredClass).

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::keyRequestTimerFired):
(WebCore::MediaKeySession::addKeyTimerFired):

  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::GeoNotifier::timerFired):
(WebCore::Geolocation::resumeTimerFired):

  • Modules/geolocation/Geolocation.h:
  • Modules/indexeddb/IDBTransactionBackend.cpp:

(WebCore::IDBTransactionBackend::taskTimerFired):

  • Modules/indexeddb/IDBTransactionBackend.h:
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::appendBufferTimerFired):
(WebCore::SourceBuffer::removeTimerFired):

  • Modules/mediasource/SourceBuffer.h:
  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::scheduledEventTimerFired):

  • Modules/mediastream/MediaStream.h:
  • Modules/mediastream/RTCDTMFSender.cpp:

(WebCore::RTCDTMFSender::scheduledEventTimerFired):

  • Modules/mediastream/RTCDTMFSender.h:
  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::scheduledEventTimerFired):

  • Modules/mediastream/RTCDataChannel.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::scheduledEventTimerFired):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/notifications/Notification.cpp:

(WebCore::Notification::Notification):
(WebCore::Notification::taskTimerFired):

  • Modules/notifications/Notification.h:
  • Modules/notifications/NotificationCenter.cpp:

(WebCore::NotificationCenter::NotificationRequestCallback::timerFired):

  • Modules/notifications/NotificationCenter.h:
  • Modules/vibration/Vibration.cpp:

(WebCore::Vibration::timerFired):

  • Modules/vibration/Vibration.h:
  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::resumeTimerFired):
(WebCore::WebSocketChannel::closingTimerFired):

  • Modules/websockets/WebSocketChannel.h:
  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::notificationPostTimerFired):

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::AXObjectCache):

  • bindings/js/GCController.cpp:

(WebCore::GCController::gcTimerFired):

  • bindings/js/GCController.h:
  • css/CSSFontFaceSource.h:
  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::beginLoadTimerFired):

  • css/CSSFontSelector.h:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::sweepMatchedPropertiesCache):

  • css/StyleResolver.h:
  • dom/Document.cpp:

(WebCore::Document::visualUpdatesSuppressionTimerFired):
(WebCore::Document::styleRecalcTimerFired):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::sharedObjectPoolClearTimerFired):
(WebCore::Document::updateFocusAppearanceTimerFired):
(WebCore::Document::pendingTasksTimerFired):
(WebCore::Document::fullScreenChangeDelayTimerFired):
(WebCore::Document::loadEventDelayTimerFired):
(WebCore::Document::didAssociateFormControlsTimerFired):
(WebCore::Document::domCookieCacheExpiryTimerFired):

  • dom/Document.h:
  • dom/EventSender.h:

(WebCore::EventSender::timerFired):

  • dom/GenericEventQueue.cpp:

(WebCore::GenericEventQueue::timerFired):

  • dom/GenericEventQueue.h:
  • dom/ScriptRunner.cpp:

(WebCore::ScriptRunner::timerFired):

  • dom/ScriptRunner.h:
  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::animationTimerFired):

  • dom/ScriptedAnimationController.h:
  • dom/StyledElement.cpp:

(WebCore::PresentationAttributeCacheCleaner::cleanCache):

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::timerFired):

  • editing/AlternativeTextController.h:
  • editing/Editor.cpp:

(WebCore::Editor::scanSelectionForTelephoneNumbers):
(WebCore::Editor::editorUIUpdateTimerFired):

  • editing/Editor.h:
  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::caretBlinkTimerFired):

  • editing/FrameSelection.h:
  • editing/SpellChecker.cpp:

(WebCore::SpellChecker::timerFiredToProcessQueuedRequest):

  • editing/SpellChecker.h:
  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::requestAutocompleteTimerFired):

  • html/HTMLFormElement.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

  • html/HTMLMediaElement.h:
  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::swapRendererTimerFired):

  • html/HTMLPlugInElement.h:
  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::removeSnapshotTimerFired):

  • html/HTMLPlugInImageElement.h:
  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::errorEventTimerFired):

  • html/HTMLSourceElement.h:
  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::loadTimerFired):

  • html/HTMLTrackElement.h:
  • html/MediaController.cpp:

(MediaController::asyncEventTimerFired):
(MediaController::clearPositionTimerFired):
(MediaController::timeupdateTimerFired):

  • html/MediaController.h:
  • html/MediaDocument.cpp:

(WebCore::MediaDocument::replaceMediaElementTimerFired):

  • html/MediaDocument.h:
  • html/SearchInputType.cpp:

(WebCore::SearchInputType::searchEventTimerFired):

  • html/SearchInputType.h:
  • html/ValidationMessage.cpp:

(WebCore::ValidationMessage::setMessage):
(WebCore::ValidationMessage::setMessageDOMAndStartTimer):
(WebCore::ValidationMessage::buildBubbleTree):
(WebCore::ValidationMessage::requestToHideMessage):
(WebCore::ValidationMessage::deleteBubbleTree):

  • html/ValidationMessage.h:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::dispatchContextLostEvent):
(WebCore::WebGLRenderingContext::maybeRestoreContext):

  • html/canvas/WebGLRenderingContext.h:
  • html/parser/HTMLParserScheduler.cpp:

(WebCore::HTMLParserScheduler::continueNextChunkTimerFired):

  • html/parser/HTMLParserScheduler.h:
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlPanelElement::transitionTimerFired):
(WebCore::MediaControlTextTrackContainerElement::updateTimerFired):

  • html/shadow/MediaControlElements.h:
  • html/shadow/MediaControls.cpp:

(WebCore::MediaControls::hideFullscreenControlsTimerFired):

  • html/shadow/MediaControls.h:
  • html/shadow/SpinButtonElement.cpp:

(WebCore::SpinButtonElement::repeatingTimerFired):

  • html/shadow/SpinButtonElement.h:
  • html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::loadTimerFired):

  • html/track/LoadableTextTrack.h:
  • html/track/VTTRegion.cpp:

(WebCore::VTTRegion::scrollTimerFired):

  • html/track/VTTRegion.h:
  • inspector/InspectorCSSAgent.cpp:

(WebCore::ChangeRegionOversetTask::timerFired):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::RevalidateStyleAttributeTask::timerFired):

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorBackendDispatchTask::timerFired):

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::updatePaintRectsTimerFired):

  • inspector/InspectorOverlay.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):

  • loader/DocumentLoader.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkTimerFired):

  • loader/FrameLoader.h:
  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::timerFired):

  • loader/ImageLoader.h:
  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::linkLoadTimerFired):
(WebCore::LinkLoader::linkLoadingErrorTimerFired):

  • loader/LinkLoader.h:
  • loader/NavigationScheduler.cpp:

(WebCore::ScheduledNavigation::didStartTimer):
(WebCore::NavigationScheduler::timerFired):

  • loader/NavigationScheduler.h:
  • loader/PingLoader.h:

(WebCore::PingLoader::timeoutTimerFired):

  • loader/ProgressTracker.cpp:

(WebCore::ProgressTracker::progressHeartbeatTimerFired):

  • loader/ProgressTracker.h:
  • loader/ResourceLoadScheduler.cpp:

(WebCore::ResourceLoadScheduler::requestTimerFired):

  • loader/ResourceLoadScheduler.h:
  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::cueLoadTimerFired):

  • loader/TextTrackLoader.h:
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::Callback::timerFired):

  • loader/cache/CachedResource.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::garbageCollectDocumentResourcesTimerFired):

  • loader/cache/CachedResourceLoader.h:
  • loader/icon/IconDatabase.cpp:

(WebCore::IconDatabase::syncTimerFired):

  • loader/icon/IconDatabase.h:
  • page/AutoscrollController.cpp:

(WebCore::AutoscrollController::autoscrollTimerFired):

  • page/AutoscrollController.h:
  • page/CaptionUserPreferences.cpp:

(WebCore::CaptionUserPreferences::timerFired):

  • page/CaptionUserPreferences.h:
  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::updateTimerFired):

  • page/CaptionUserPreferencesMediaAF.h:
  • page/DeviceController.cpp:

(WebCore::DeviceController::fireDeviceEvent):

  • page/DeviceController.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::cursorUpdateTimerFired):
(WebCore::EventHandler::autoHideCursorTimerFired):
(WebCore::EventHandler::recognizeLongMousePress):
(WebCore::EventHandler::fakeMouseMoveEventTimerFired):
(WebCore::EventHandler::hoverTimerFired):

  • page/EventHandler.h:
  • page/EventSource.cpp:

(WebCore::EventSource::connectTimerFired):

  • page/EventSource.h:
  • page/FocusController.cpp:

(WebCore::FocusController::focusRepaintTimerFired):

  • page/FocusController.h:
  • page/Frame.cpp:

(WebCore::Frame::overflowAutoScrollTimerFired):

  • page/Frame.h:
  • page/FrameView.cpp:

(WebCore::FrameView::delayedScrollEventTimerFired):
(WebCore::FrameView::speculativeTilingEnableTimerFired):
(WebCore::FrameView::layoutTimerFired):
(WebCore::FrameView::updateEmbeddedObjectsTimerFired):
(WebCore::FrameView::postLayoutTimerFired):

  • page/FrameView.h:
  • page/PageOverlay.cpp:

(WebCore::PageOverlay::fadeAnimationTimerFired):

  • page/PageOverlay.h:
  • page/Settings.cpp:

(WebCore::Settings::imageLoadingSettingsTimerFired):

  • page/Settings.h:
  • page/animation/AnimationController.cpp:

(WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
(WebCore::AnimationControllerPrivate::animationTimerFired):

  • page/animation/AnimationControllerPrivate.h:
  • page/mac/ServicesOverlayController.h:
  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::determineActiveHighlightTimerFired):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScrollTimerFired):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ios/ScrollingCoordinatorIOS.h:
  • page/scrolling/ios/ScrollingCoordinatorIOS.mm:

(WebCore::ScrollingCoordinatorIOS::scrollingStateTreeCommitterTimerFired):

  • page/scrolling/mac/ScrollingCoordinatorMac.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::scrollingStateTreeCommitterTimerFired):

  • platform/HysteresisActivity.h:

(WebCore::HysteresisActivity::hysteresisTimerFired):

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::updateScrollAnimatorsAndTimers):
(WebCore::ScrollAnimator::startScrollSnapTimer):
(WebCore::ScrollAnimator::stopScrollSnapTimer):
(WebCore::ScrollAnimator::horizontalScrollSnapTimerFired):
(WebCore::ScrollAnimator::verticalScrollSnapTimerFired):

  • platform/ScrollAnimator.h:
  • platform/ScrollAnimatorNone.cpp:

(WebCore::ScrollAnimatorNone::animationTimerFired):

  • platform/ScrollAnimatorNone.h:
  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::autoscrollTimerFired):

  • platform/Scrollbar.h:
  • platform/Timer.h:

(WebCore::Timer::Timer):

  • platform/audio/MediaSession.cpp:

(WebCore::MediaSession::clientDataBufferingTimerFired):

  • platform/audio/MediaSession.h:
  • platform/efl/BatteryProviderEfl.cpp:

(WebCore::BatteryProviderEfl::timerFired):

  • platform/efl/BatteryProviderEfl.h:
  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::startAnimation):
(WebCore::BitmapImage::advanceAnimation):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::reloadTimerFired):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/ShadowBlur.cpp:

(WebCore::ScratchBuffer::timerFired):

  • platform/graphics/TiledBackingStore.cpp:

(WebCore::TiledBackingStore::tileBufferUpdateTimerFired):
(WebCore::TiledBackingStore::backingStoreUpdateTimerFired):

  • platform/graphics/TiledBackingStore.h:
  • platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h:
  • platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:

(WebCore::MediaSelectionGroupAVFObjC::selectionTimerFired):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekTimerFired):

  • platform/graphics/ca/LayerPool.cpp:

(WebCore::LayerPool::pruneTimerFired):

  • platform/graphics/ca/LayerPool.h:
  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::tileRevalidationTimerFired):

  • platform/graphics/ca/TileController.h:
  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::cohortRemovalTimerFired):

  • platform/graphics/ca/TileGrid.h:
  • platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp:

(WebCore::LegacyCACFLayerTreeHost::renderTimerFired):

  • platform/graphics/ca/win/LegacyCACFLayerTreeHost.h:
  • platform/graphics/cg/IOSurfacePool.cpp:

(WebCore::IOSurfacePool::collectionTimerFired):

  • platform/graphics/cg/IOSurfacePool.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.h:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

(WebCore::MediaPlayerPrivateQTKit::seekTimerFired):

  • platform/graphics/texmap/TextureMapper.cpp:

(WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):

  • platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:

(WebCore::CompositingCoordinator::releaseInactiveAtlasesTimerFired):

  • platform/graphics/texmap/coordinated/CompositingCoordinator.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::animationStartedTimerFired):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:

(WebCore::CoordinatedImageBacking::clearContentsTimerFired):

  • platform/graphics/texmap/coordinated/CoordinatedImageBacking.h:
  • platform/ios/LegacyTileCache.h:
  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::tileCreationTimerFired):

  • platform/mac/HIDGamepadProvider.cpp:

(WebCore::HIDGamepadProvider::connectionDelayTimerFired):
(WebCore::HIDGamepadProvider::inputNotificationTimerFired):

  • platform/mac/HIDGamepadProvider.h:
  • platform/mac/ScrollAnimatorMac.h:
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
(WebCore::ScrollAnimatorMac::initialScrollbarPaintTimerFired):
(WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired):

  • platform/mock/DeviceMotionClientMock.cpp:

(WebCore::DeviceMotionClientMock::timerFired):

  • platform/mock/DeviceMotionClientMock.h:
  • platform/mock/DeviceOrientationClientMock.cpp:

(WebCore::DeviceOrientationClientMock::timerFired):

  • platform/mock/DeviceOrientationClientMock.h:
  • platform/mock/GeolocationClientMock.cpp:

(WebCore::GeolocationClientMock::permissionTimerFired):
(WebCore::GeolocationClientMock::controllerTimerFired):

  • platform/mock/GeolocationClientMock.h:
  • platform/mock/PlatformSpeechSynthesizerMock.cpp:

(WebCore::PlatformSpeechSynthesizerMock::speakingFinished):

  • platform/mock/PlatformSpeechSynthesizerMock.h:
  • platform/mock/TimerEventBasedMock.h:

(WebCore::TimerEvent::timerFired):

  • platform/network/DNSResolveQueue.cpp:

(WebCore::DNSResolveQueue::timerFired):

  • platform/network/DNSResolveQueue.h:
  • platform/network/NetworkStateNotifier.h:
  • platform/network/ResourceHandle.cpp:

(WebCore::ResourceHandle::failureTimerFired):

  • platform/network/ResourceHandle.h:
  • platform/network/ResourceHandleInternal.h:
  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::ResourceHandleManager::downloadTimerCallback):

  • platform/network/curl/ResourceHandleManager.h:
  • platform/network/mac/NetworkStateNotifierMac.cpp:

(WebCore::NetworkStateNotifier::networkStateChangeTimerFired):

  • platform/network/win/ResourceHandleWin.cpp:

(WebCore::ResourceHandle::fileLoadTimer):

  • plugins/PluginPackage.cpp:

(WebCore::PluginPackage::freeLibraryTimerFired):

  • plugins/PluginPackage.h:
  • plugins/PluginStream.cpp:

(WebCore::PluginStream::delayDeliveryTimerFired):

  • plugins/PluginStream.h:
  • plugins/PluginView.cpp:

(WebCore::PluginView::popPopupsStateTimerFired):
(WebCore::PluginView::requestTimerFired):
(WebCore::PluginView::invalidateTimerFired):
(WebCore::PluginView::lifeSupportTimerFired):

  • plugins/PluginView.h:
  • plugins/win/PluginMessageThrottlerWin.cpp:

(WebCore::PluginMessageThrottlerWin::messageThrottleTimerFired):

  • plugins/win/PluginMessageThrottlerWin.h:
  • rendering/ImageQualityController.cpp:

(WebCore::ImageQualityController::highQualityRepaintTimerFired):

  • rendering/ImageQualityController.h:
  • rendering/RenderButton.cpp:

(WebCore::RenderButton::styleDidChange):
(WebCore::RenderButton::timerFired):

  • rendering/RenderButton.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateCompositingLayersTimerFired):
(WebCore::RenderLayerCompositor::layerFlushTimerFired):
(WebCore::RenderLayerCompositor::paintRelatedMilestonesTimerFired):

  • rendering/RenderLayerCompositor.h:
  • rendering/RenderMarquee.cpp:

(WebCore::RenderMarquee::timerFired):

  • rendering/RenderMarquee.h:
  • rendering/RenderNamedFlowThread.cpp:

(WebCore::RenderNamedFlowThread::regionOversetChangeEventTimerFired):

  • rendering/RenderNamedFlowThread.h:
  • rendering/RenderProgress.cpp:

(WebCore::RenderProgress::animationTimerFired):

  • rendering/RenderProgress.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::lazyRepaintTimerFired):

  • rendering/RenderView.h:
  • replay/EventLoopInputDispatcher.cpp:

(WebCore::EventLoopInputDispatcher::timerFired):

  • replay/EventLoopInputDispatcher.h:
  • storage/StorageAreaImpl.cpp:

(WebCore::StorageAreaImpl::closeDatabaseTimerFired):

  • storage/StorageAreaImpl.h:
  • storage/StorageAreaSync.cpp:

(WebCore::StorageAreaSync::syncTimerFired):

  • storage/StorageAreaSync.h:
  • svg/SVGElement.cpp:

(WebCore::SVGElement::svgLoadEventTimerFired):
(WebCore::SVGElement::svgLoadEventTimer):

  • svg/SVGElement.h:
  • svg/SVGScriptElement.h:
  • svg/SVGStyleElement.h:
  • svg/SVGUseElement.h:
  • svg/animation/SMILTimeContainer.cpp:

(WebCore::SMILTimeContainer::timerFired):

  • svg/animation/SMILTimeContainer.h:
  • xml/XMLHttpRequestProgressEventThrottle.cpp:

(WebCore::XMLHttpRequestProgressEventThrottle::dispatchDeferredEvents):

  • xml/XMLHttpRequestProgressEventThrottle.h:

Source/WebKit/mac:

Remove template specifiers from Timer.

  • Plugins/Hosted/NetscapePluginInstanceProxy.h:
  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::requestTimerFired):

  • Plugins/WebNetscapePluginStream.h:
  • Plugins/WebNetscapePluginStream.mm:

(WebNetscapePluginStream::deliverDataTimerFired):

Source/WebKit/win:

  • FullscreenVideoController.cpp:

(FullscreenVideoController::timerFired):

  • FullscreenVideoController.h:

Source/WebKit2:

Remove template specifiers from Timer.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::bufferingTimerFired):

  • NetworkProcess/NetworkResourceLoader.h:
  • Shared/WebMemorySampler.cpp:

(WebKit::WebMemorySampler::sampleTimerFired):
(WebKit::WebMemorySampler::stopTimerFired):

  • Shared/WebMemorySampler.h:
  • Shared/mac/RemoteLayerBackingStoreCollection.h:
  • Shared/mac/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::volatilityTimerFired):

  • UIProcess/API/efl/EwkView.cpp:

(EwkView::displayTimerFired):

  • UIProcess/API/efl/EwkView.h:
  • UIProcess/efl/TextCheckerClientEfl.cpp:

(TextCheckerClientEfl::languagesUpdateTimerFired):
(TextCheckerClientEfl::spellCheckingSettingChangeTimerFired):

  • UIProcess/efl/TextCheckerClientEfl.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::layerFlushTimerFired):

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::layerFlushTimerFired):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::processSuspensionCleanupTimerFired):
(WebKit::WebProcess::nonVisibleProcessCleanupTimerFired):

  • WebProcess/WebProcess.h:
2:51 PM Changeset in webkit [175718] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Don't send identifierForInitialRequest callback method for request with DoNotSendCallbacks option.
https://bugs.webkit.org/show_bug.cgi?id=138473

The iOS specific code that sets up a valid m_identifier is not needed any more, since this
will be done later in ResourceLoader::willSendRequest. This also matches the behavior that
we don't call assignIdentifierToInitialRequest callback method if the reqeust has
DoNotSendCallbacks option.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2014-11-06
Reviewed by Pratik Solanki.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequest): Remove iOS specific block for setting up a valid

m_identifier. In iOS, also make sure we still bail out if the resource loader was stopped
in assignIdentifierToInitialRequest callback by a client.

2:41 PM Changeset in webkit [175717] by matthew_hanson@apple.com
  • 2 edits in trunk/Tools

Remove code that prepends a leading 'r' to the first argument of _run_git_svn_find_rev
https://bugs.webkit.org/show_bug.cgi?id=138475

Reviewed by Ryosuke Niwa.

The change in https://trac.webkit.org/175603 introduced broke compatibility with svn_revision_from_git_commit.
This patch reverts the part of that change that broke compatibility. In addition, this patch adds a comment to
explain that SVN revisions require a leading 'r', moves an existing comment to a more appropriate location and
renames the positional argument to better reflect that it can represent either an SVN revision or a Git tree-ish.

  • Scripts/webkitpy/common/checkout/scm/git.py:

(Git._run_git_svn_find_rev):
Add comment mentioning that svn_revisions need to begin with 'r'.
Move comment (explaining that git svn find-rev exits with code 0 when no match is found) to a more appropriate location.
Rename the argument 'revision' to 'revision_or_treeish' to reflect the dual form that argument can take.
Remove code that coerced the revision/treeish into a string and prepended an 'r'.

2:23 PM Changeset in webkit [175716] by dino@apple.com
  • 34 edits
    16 adds in trunk

[filters2] Support for backdrop-filter
https://bugs.webkit.org/show_bug.cgi?id=138384
<rdar://problem/18874494>

Reviewed by Simon Fraser.

Take 2!! Previous patch was rolled out.

Source/WebCore:

Add prototype support for backdrop-filter
http://dev.w3.org/fxtf/filters-2/#BackdropFilterProperty

This adds support for parsing the new CSS property, adding
the value to RenderStyle, noticing that on the layer tree,
and the platform code in GraphicsLayer to render a backdrop
and apply an effect to the result.

Some things are missing:

  • animation of the backdrop-filter is not yet supported
  • backdrops will not work in cloned layers yet (e.g. reflections)

Tests: css3/filters/backdrop/backdropfilter-property-computed-style.html

css3/filters/backdrop/backdropfilter-property-parsing-invalid.html
css3/filters/backdrop/backdropfilter-property-parsing.html
css3/filters/backdrop/backdropfilter-property.html
css3/filters/backdrop/effect-hw.html

  • WebCore.exp.in: Export the setBackdropFilters method so it can

be used from WebKit.

  • css/CSSComputedStyleDeclaration.cpp: New property name.

(WebCore::isLayoutDependent):
(WebCore::ComputedStyleExtractor::propertyValue): Use the existing valueForFilter method.

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseValue): Piggyback on the filter parser.

  • css/CSSPropertyNames.in: Add -webkit-backdrop-filter.
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::adjustRenderStyle): Add test for backdrop.
(WebCore::StyleResolver::applyProperty): Support new property.

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::needsBackdrop): New method to test for existence of values.
(WebCore::GraphicsLayer::backdropFilters): Keeps the list of filters.
(WebCore::GraphicsLayer::setBackdropFilters):
(WebCore::GraphicsLayer::clearBackdropFilters):

  • platform/graphics/ca/GraphicsLayerCA.cpp: This adds a new m_backdropLayer CALayer

that will sit behind the contents layer and provide the element's backdrop.
(WebCore::GraphicsLayerCA::willBeDestroyed):
(WebCore::GraphicsLayerCA::moveOrCopyAnimations):
(WebCore::GraphicsLayerCA::setBackdropFilters): Set a custom appearance so
remote layer hosts will notice the special layer. Also set the actual
layer properties.
(WebCore::GraphicsLayerCA::addAnimation): Remove whitespace.
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Update backdrop if necessary.
(WebCore::GraphicsLayerCA::updateLayerNames): Give the new layer a name.
(WebCore::GraphicsLayerCA::updateSublayerList):
(WebCore::GraphicsLayerCA::updateGeometry): Make the backdrop layer match the contents
layer geometry.
(WebCore::GraphicsLayerCA::updateBackdropFilters): Create the backdrop layer if necessary,
and copy the filter values to any clones.
(WebCore::GraphicsLayerCA::ensureStructuralLayer): We need a structural layer if we
have backdrop filters.
(WebCore::GraphicsLayerCA::structuralLayerPurpose):
(WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):

  • platform/graphics/ca/GraphicsLayerCA.h: New StructuralLayerPurpose, new LayerChangeFlag.
  • platform/graphics/ca/PlatformCALayer.h: New LayerType.
  • platform/graphics/ca/mac/PlatformCALayerMac.mm: Define CABackdropLayer.

(PlatformCALayerMac::PlatformCALayerMac): Create the correct CALayer type.

  • rendering/RenderElement.h:

(WebCore::RenderElement::createsGroup):
(WebCore::RenderElement::hasBackdropFilter): This method is always around, but
only can return true when FILTERS_LEVEL_2 is enabled.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintsWithFilters): Remove an unnecessary comment.
(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLayer.h: Add hasBackdropFilter.
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::RenderLayerBacking):
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): Update the backdrop filters.
(WebCore::RenderLayerBacking::updateBackdropFilters): Set the filters on the GraphicsLayer.
(WebCore::RenderLayerBacking::updateGeometry):

  • rendering/RenderLayerBacking.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresOwnBackingStore): Needs backingstore if it has a backdrop filter.
(WebCore::RenderLayerCompositor::reasonsForCompositing):
(WebCore::RenderLayerCompositor::requiresCompositingForFilters): Return early if we have
a backdrop filter, because currently we absolutely require compositing.

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::styleWillChange): Add hasBackdropFilter().

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresLayout): Check backdrops for change.

  • rendering/style/RenderStyle.h: Add the backdropFilter style stuff.
  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
(WebCore::StyleRareNonInheritedData::hasBackdropFilters):

  • rendering/style/StyleRareNonInheritedData.h:

Source/WebKit2:

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::drawInContext): Handle LayerTypeBackdropLayer in the switch.

  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::description): Describe a backdrop layer.

  • UIProcess/ios/RemoteLayerTreeHostIOS.mm:

(+[WKBackdropView layerClass]): Define CABackdropLayer and use it as the class.
(WebKit::RemoteLayerTreeHost::createLayer):

  • UIProcess/mac/RemoteLayerTreeHost.mm: Ditto.

(WebKit::RemoteLayerTreeHost::createLayer):

LayoutTests:

Tests for backdrop-filter. These are skipped on non-Apple platforms.

  • platform/win/TestExpections: Skip these tests.
  • platform/efl/TestExpections:
  • platform/gtk/TestExpections:
  • platform/mac-mavericks/TestExpectations: Yosemite only.
  • css3/filters/backdrop/backdropfilter-property-computed-style-expected.txt: Added.
  • css3/filters/backdrop/backdropfilter-property-computed-style.html: Added.
  • css3/filters/backdrop/backdropfilter-property-expected.txt: Added.
  • css3/filters/backdrop/backdropfilter-property-parsing-expected.txt: Added.
  • css3/filters/backdrop/backdropfilter-property-parsing-invalid-expected.txt: Added.
  • css3/filters/backdrop/backdropfilter-property-parsing-invalid.html: Added.
  • css3/filters/backdrop/backdropfilter-property-parsing.html: Added.
  • css3/filters/backdrop/backdropfilter-property.html: Added.
  • css3/filters/backdrop/effect-hw-expected.html: Added.
  • css3/filters/backdrop/effect-hw.html: Added.
  • css3/filters/backdrop/script-tests/backdropfilter-property-computed-style.js: Added.

(testComputedFilterRule):

  • css3/filters/backdrop/script-tests/backdropfilter-property-parsing-invalid.js: Added.

(testInvalidFilterRule):

  • css3/filters/backdrop/script-tests/backdropfilter-property-parsing.js: Added.

(jsWrapperClass):
(shouldBeType):
(testFilterRule):

  • css3/filters/backdrop/script-tests/backdropfilter-property.js: Added.
2:07 PM Changeset in webkit [175715] by benjamin@webkit.org
  • 8 edits
    2 adds in trunk

Give pseudo elements the correct specificity
https://bugs.webkit.org/show_bug.cgi?id=138378

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-11-06
Reviewed by Dean Jackson.

Source/WebCore:

WebKit had an old silly bug where pseudo elements were given specificity in the class B
instead of the class C.

Now that the inspector shows the specificity, this bug is much more visible which is why
I fix it now.

Test: fast/css/pseudo-element-specificity.html

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::specificityForOneSelector):
Give pseudo-elements the right specificity.

  • Modules/mediacontrols/mediaControlsApple.css:

(video::-webkit-media-controls-volume-slider):
(audio::-webkit-media-controls-volume-slider::-webkit-slider-thumb):
(audio::-webkit-media-controls-volume-slider::-webkit-slider-thumb:active::-webkit-slider-thumb):
(audio::-webkit-media-controls-timeline):
(audio::-webkit-media-controls-timeline::-webkit-slider-thumb):
(audio::-webkit-media-controls-timeline:active::-webkit-slider-thumb,):
(video:-webkit-full-screen::-webkit-media-controls-volume-slider):
(video:-webkit-full-screen::-webkit-media-controls-volume-slider::-webkit-slider-thumb):

  • Modules/mediacontrols/mediaControlsBase.css:

(video::-webkit-media-controls-volume-slider):
(audio::-webkit-media-controls-volume-slider::-webkit-slider-thumb):
(audio::-webkit-media-controls-volume-slider::-webkit-slider-thumb:active::-webkit-slider-thumb):
(audio::-webkit-media-controls-timeline):
(audio::-webkit-media-controls-timeline::-webkit-slider-thumb):
(audio::-webkit-media-controls-timeline:active::-webkit-slider-thumb,):
(video:-webkit-full-screen::-webkit-media-controls-volume-slider):
(video:-webkit-full-screen::-webkit-media-controls-volume-slider::-webkit-slider-thumb):

  • css/mediaControls.css:

(audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
(audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):

  • css/mediaControlsGtk.css:

(audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
(audio::-webkit-media-controls-timeline[disabled], video::-webkit-media-controls-timeline[disabled]):
(audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
The media controls were relying on the bug to override the style of input[type=range].

Ideally we should either:
-Implement some kind of high level style isolation (e.g. CSS Scoping).
-Fix the media control tree to use regular CSS scoped by a shadow pseudo ID.

Until we have one of those, I just fixed the styling by forcing the properties with lower
specificity with !important.

LayoutTests:

  • fast/css/pseudo-element-specificity-expected.html: Added.
  • fast/css/pseudo-element-specificity.html: Added.

Given that all selector affecting the pseudo element were offset by one,
it is impossible to use a pseudo element directly to affect the order, making the bug
hard to test.

What I did here for testing is use the stauration at 255 of any specificity field.
With 255 class + 1 pseudo element, the old code would saturate at (0, 255, 0), while
the fixed code would correctly give (0, 255, 1). By comparing that to a non-saturated
selector, I can show the fix is correct.

  • inspector/css/selector-specificity-expected.txt:
2:04 PM Changeset in webkit [175714] by dburkart@apple.com
  • 1 copy in tags/Safari-600.3.4

Tagging Safari-600.3.4

2:03 PM Changeset in webkit [175713] by dburkart@apple.com
  • 1 delete in tags/Safari-600.3.4

Removing tag to re-tag with another fix.

2:01 PM Changeset in webkit [175712] by dburkart@apple.com
  • 4 edits in branches/safari-600.3-branch/Source

Merged r175710. <rdar://problems/18898712>

1:35 PM Changeset in webkit [175711] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Data detectors popover points at the first line of the detected item
https://bugs.webkit.org/show_bug.cgi?id=138471
<rdar://problem/18893079>

Reviewed by Sam Weinig.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::scanForDataDetectedItems):
Determine the bounding box of all quads of the detected item's text.
This way, the popover will point at the border of the item, instead of
right at the very first line.

1:03 PM Changeset in webkit [175710] by Beth Dakin
  • 4 edits in trunk/Source

Preview views often misplaced inside popover
https://bugs.webkit.org/show_bug.cgi?id=138472

Reviewed by Tim Horton.

Source/WebCore:

  • WebCore.exp.in:

Source/WebKit2:

This patch makes the popover maintain aspect ratio, and it uses the final scale of
that popover to scale the preview view as well.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKPagePreviewViewController initWithPageURL:mainViewSize:popoverToViewScale:]):
(-[WKPagePreviewViewController loadView]):
(-[WKActionMenuController _createPreviewPopoverForURL:originRect:]):
(-[WKActionMenuController _targetSize:fitsInAvailableSpace:]):
(-[WKActionMenuController _preferredSizeForPopoverPresentedFromOriginRect:]):
(-[WKPagePreviewViewController initWithPageURL:]): Deleted.

12:37 PM Changeset in webkit [175709] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.8/Source

Merged r175706. rdar://problem/18813675

12:03 PM Changeset in webkit [175708] by ap@apple.com
  • 2 edits in trunk/LayoutTests

inspector-protocol/debugger/setPauseOnExceptions-uncaught.html frequently times out on Yosemite
https://bugs.webkit.org/show_bug.cgi?id=138097

  • platform/mac-wk2/TestExpectations: Marking it as such.
11:57 AM Changeset in webkit [175707] by dburkart@apple.com
  • 1 copy in tags/Safari-600.3.4

Tagging Safari-600.3.4

11:47 AM Changeset in webkit [175706] by msaboff@apple.com
  • 5 edits in trunk/Source

REGRESSION (r174985-174986): Site display disappears
https://bugs.webkit.org/show_bug.cgi?id=138082

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

In support of the change in WebCore, this adds a new functor class to unwind to our
caller's frame possibly skipping of intermediate C++ frames.

  • interpreter/StackVisitor.h:

(JSC::CallerFunctor::CallerFunctor):
(JSC::CallerFunctor::callerFrame):
(JSC::CallerFunctor::operator()):

Source/WebCore:

This effectively reverts to the behavior before r174985 by using the
lexical global object of the caller's frame to find the active document.
Before r174985, native functions are invoked with the ScopeShain of their
caller. The lexical global object is accessed from the ScopeChain.

  • bindings/js/JSHTMLDocumentCustom.cpp:

(WebCore::JSHTMLDocument::getOwnPropertySlot):
(WebCore::findOwningDocument):
(WebCore::documentWrite):
(WebCore::JSHTMLDocument::write):
(WebCore::JSHTMLDocument::writeln):

  • html/HTMLDocument.idl:
11:38 AM Changeset in webkit [175705] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

TextIndicatorWindow's bounce animation is lopsided when indicating two short lines of text
https://bugs.webkit.org/show_bug.cgi?id=138458

Reviewed by Simon Fraser.

Previously, the TextIndicator's frame() covered the entire selection highlight bounds.
This was undesirable in cases where the highlight included areas far outside the
bounds of the selected text, as the TextIndicatorWindow's 'bounce' animation
would be misaligned (centered on the highlight instead of on the text).

  • Shared/TextIndicator.cpp:

Get rid of the many-argument TextIndicator::create, because it was only used
internally, and have createWithSelectionInFrame make a ::Data instead.

(WebKit::TextIndicator::createWithSelectionInFrame):
Compute and store the bounding rect of all of the selected text rects, and store
all of the text rects relative to that bounding rect instead of relative to the
selection highlight bounds. We do this because the selection highlight bounds
often includes area which is far outside of the text bounds (in the case of a
selection that spans multiple lines), and causes the text indicator bounce
animation to bounce in a lopsided manner.

(WebKit::TextIndicator::TextIndicator):
Adjust to the rename of textRectsInSelectionRectCoordinates -> textRectsInBoundingRectCoordinates.

(WebKit::TextIndicator::frameRect):
Instead of the TextIndicator's frame being the selection highlight bounds,
it is now the bounds of all of the text rects.

(WebKit::TextIndicator::draw):
Translate into the image by the difference between the selection highlight bounds
and the text bounding rect. This is necessary because the content image is still generated
covering the entire selection highlight bounds, but the text rects are in text-rect-bounds coordinates.

(WebKit::TextIndicator::Data::encode):
(WebKit::TextIndicator::Data::decode):
Adjust to the rename of textRectsInSelectionRectCoordinates -> textRectsInBoundingRectCoordinates.
Encode/decode textBoundingRectInWindowCoordinates.

  • Shared/TextIndicator.h:

(WebKit::TextIndicator::contentImage): Deleted.
Get rid of an unnecessary getter and constructor.

11:04 AM Changeset in webkit [175704] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Only provide a single result to the action menu DDActionContext
https://bugs.webkit.org/show_bug.cgi?id=138469
<rdar://problem/18869036>

Reviewed by Anders Carlsson.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::scanForDataDetectedItems):
Only provide one result; secondary results can be extremely unrelated to
the primary one and confuse Data Detectors further down the line.

11:02 AM Changeset in webkit [175703] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.8/Source/WTF

Merge patch for <rdar://problem/18887867> to disable bmalloc.

10:58 AM Changeset in webkit [175702] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Null deref in rangeForDictionaryLookupAtHitTestResult on occasion
https://bugs.webkit.org/show_bug.cgi?id=138459
<rdar://problem/18872825>

Reviewed by Andreas Kling.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::rangeForDictionaryLookupAtHitTestResult):
rangeExpandedAroundPositionByCharacters can return null.

10:57 AM Changeset in webkit [175701] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Prefer link action menus over images
https://bugs.webkit.org/show_bug.cgi?id=138461
<rdar://problem/18768377>

Reviewed by Anders Carlsson.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _defaultMenuItems:]):
Swap the priority of links and images.

10:46 AM Changeset in webkit [175700] by weinig@apple.com
  • 11 edits in trunk/Source

Use std::unique_ptr for TileController
https://bugs.webkit.org/show_bug.cgi?id=138429

Reviewed by Anders Carlsson.

Source/WebCore:

  • WebCore.exp.in:
  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::create): Deleted.

  • platform/graphics/ca/TileController.h:
  • platform/graphics/ca/mac/WebTiledBackingLayer.h:
  • platform/graphics/ca/mac/WebTiledBackingLayer.mm:

(-[WebTiledBackingLayer createTileController:]):

  • platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:

(PlatformCALayerWinInternal::createTileController):

  • platform/graphics/ca/win/PlatformCALayerWinInternal.h:

Source/WebKit2:

  • WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:

(WebKit::PlatformCALayerRemoteTiledBacking::PlatformCALayerRemoteTiledBacking):

  • WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:
10:05 AM Changeset in webkit [175699] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

iOS build fix.

  • WebProcess/Plugins/PluginController.h:
8:40 AM Changeset in webkit [175698] by dbates@webkit.org
  • 6 edits
    2 adds in trunk/Source/WebKit2

[iOS] WebProcess needs to take a background task assertion to prevent being killed
for "suspended with locked system files"
https://bugs.webkit.org/show_bug.cgi?id=138155
<rdar://problem/17939303>

Reviewed by Anders Carlsson.

Mitigates an issue where the WebProcess may be killed when suspended holding locked files
by allowing the WebProcess to notify the UIProcess when it is holding such files so that
both can continue to run for a period of time after the UIProcess transitions to the
background. In particular, the WebProcess notifies the UIProcess that it is holding- or
relinquished- a locked file when it begins and ends a sequence of SQLite transactions,
respectively.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::disconnect): Relinquish an existing background task assertion
when the WebProcess disconnects. Among other situations, the WebProcess may disconnect as
a result of being suspended holding locked files even when the UIProcess requested a
background task assertion (i.e. it may have exceeded its background time limit).
(WebKit::WebProcessProxy::setIsHoldingLockedFiles): Added. Either acquires a new background
task assertion or relinquishes an existing one.

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in: Added message SetIsHoldingLockedFiles(bool). The WebProcess

dispatches this message to inform the UIProcess that it is holding- or relinquished- a locked file.

  • WebKit2.xcodeproj/project.pbxproj: Added files WebSQLiteDatabaseTracker.{cpp, h}.
  • WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.cpp: Added.

(WebKit::WebSQLiteDatabaseTracker::supplementName): Added.
(WebKit::WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker): Added.
(WebKit::WebSQLiteDatabaseTracker::initialize): Register to receive SQLiteDatabaseTrackerClient callbacks.
(WebKit::WebSQLiteDatabaseTracker::willBeginFirstTransaction): Inform the HysteresisActivity object on
the main thread that we began a transaction so that it calls WebSQLiteDatabaseTracker::started().
(WebKit::WebSQLiteDatabaseTracker::didFinishLastTransaction): Inform the HysteresisActivity object on
the main thread that we finished a transaction so that it may eventually call WebSQLiteDatabaseTracker::stopped().
(WebKit::WebSQLiteDatabaseTracker::started): Notify the UIProcess that the WebProcess is holding
a locked file.
(WebKit::WebSQLiteDatabaseTracker::stopped): Notify the UIProcess that the WebProcess has
relinquished the locked file.

  • WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.h: Added. We use a HysteresisActivity object

to coalesce SetIsHoldingLockedFiles(false) messages as an optimization to minimize the number of
messages exchanged between the UIProcess and WebProcess when a web page performs SQLite transactions
in batches.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess): Instantiate the supplement WebSQLiteDatabaseTracker when building
for iOS.

8:03 AM WebKitGTK/2.6.x edited by Carlos Garcia Campos
(diff)
8:00 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
8:00 AM Changeset in webkit [175697] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Use lambda functions in DocumentOrderedMap
https://bugs.webkit.org/show_bug.cgi?id=138376

Reviewed by Darin Adler.

Use lambda functions in DocumentOrderedMap instead of separate named
functions.

No new tests, no behavior change.

  • dom/DocumentOrderedMap.cpp:

(WebCore::DocumentOrderedMap::get):
(WebCore::DocumentOrderedMap::getElementById):
(WebCore::DocumentOrderedMap::getElementByName):
(WebCore::DocumentOrderedMap::getElementByMapName):
(WebCore::DocumentOrderedMap::getElementByLowercasedMapName):
(WebCore::DocumentOrderedMap::getElementByLowercasedUsemap):
(WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
(WebCore::DocumentOrderedMap::getElementByWindowNamedItem):
(WebCore::DocumentOrderedMap::getElementByDocumentNamedItem):
(WebCore::DocumentOrderedMap::getAllElementsById):
(WebCore::keyMatchesId): Deleted.
(WebCore::keyMatchesName): Deleted.
(WebCore::keyMatchesMapName): Deleted.
(WebCore::keyMatchesLowercasedMapName): Deleted.
(WebCore::keyMatchesLowercasedUsemap): Deleted.
(WebCore::keyMatchesLabelForAttribute): Deleted.
(WebCore::keyMatchesWindowNamedItem): Deleted.
(WebCore::keyMatchesDocumentNamedItem): Deleted.

  • dom/DocumentOrderedMap.h:
7:46 AM Changeset in webkit [175696] by berto@igalia.com
  • 2 edits in trunk/Source/WebKit2

[GTK] [Stable] webkitgtk 2.6.1 fails to load flashplugin
https://bugs.webkit.org/show_bug.cgi?id=137849

Reviewed by Carlos Garcia Campos.

NPPVpluginNeedsXEmbed is a boolean value, so it should normally
use an NPBool (1 byte). However some plugins (the Flash player in
particular) are using an int instead, so we have to do it as well
else we'll end up corrupting the stack.

  • WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:

(WebKit::NetscapePlugin::platformPostInitialize):

7:22 AM Changeset in webkit [175695] by Bem Jones-Bey
  • 2 edits in trunk/LayoutTests

Update testharness.js to the latest version
https://bugs.webkit.org/show_bug.cgi?id=138446

Reviewed by Ryosuke Niwa.

The only change I've made from upstream is to set output to false by
default.

  • resources/testharness.js:
7:08 AM Changeset in webkit [175694] by Carlos Garcia Campos
  • 19 edits
    3 adds in trunk

[GTK] Add context menu API to Web Process Extensions
https://bugs.webkit.org/show_bug.cgi?id=138311

Reviewed by Gustavo Noronha Silva.

Source/WebKit2:

Add WebKitWebPage::context-menu signal, similar to the
WebKitWebView one, but that receives a WebKitWebHitTestResult, a
class that extends WebKitTestResult to provide the WebKitDOMNode
from the Web Process Extensions API. This makes WebKitContextMenu,
WebKitContextMenuItem and WebKitTestResult classes shared between
UI and Web Extensions APIs. In addition to be able to customize
the context menu, it also provides API to set user data, as a
GVariant, in the Web Process that is sent to the UI Process.

  • PlatformGTK.cmake: Add new files.
  • UIProcess/API/gtk/WebKitContextMenu.cpp:

(webkit_context_menu_set_user_data): Add user data to the context
menu as a GVariant.
(webkit_context_menu_get_user_data): Get the user data previously
set with webkit_context_menu_set_user_data() either from the Web
or UI processes.

  • UIProcess/API/gtk/WebKitContextMenu.h:
  • UIProcess/API/gtk/WebKitContextMenuActions.h:
  • UIProcess/API/gtk/WebKitContextMenuClient.cpp:

(getContextMenuFromProposedMenu): Convert the received user data
into a GVariant and pass it to webkitWebViewPopulateContextMenu().

  • UIProcess/API/gtk/WebKitContextMenuItem.h:
  • UIProcess/API/gtk/WebKitForwardDeclarations.h:
  • UIProcess/API/gtk/WebKitHitTestResult.h:
  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewPopulateContextMenu): Set the user data received
from the Web Process to the WebKitContextMenu before emitting
WebKitWebView::context-menu.

  • UIProcess/API/gtk/WebKitWebViewPrivate.h:
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for WebKitWebHitTestResult.
  • UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
  • UIProcess/API/gtk/docs/webkit2gtk.types: Add webkit_web_hit_test_result_get_type.
  • WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResult.cpp: Added.

(webkitWebHitTestResultGetProperty): Add getter for node property.
(webkitWebHitTestResultSetProperty): Add setter for node property.
(webkit_web_hit_test_result_class_init): Add node property.
(webkitWebHitTestResultCreate): Create a new
WebKitWebHitTestResult for the given InjectedBundleHitTestResult.
(webkit_web_hit_test_result_get_node): Return the WebKitDOMNode.

  • WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResult.h: Added.
  • WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResultPrivate.h: Added.
  • WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:

(getContextMenuFromDefaultMenu): Build a WebKitContextMenu and
WebKitWebHitTestResult and emit WebKitWebPage::context-menu signal.
(webkit_web_page_class_init): Add WebKitWebPage::context-menu signal.
(webkitWebPageCreate): Add implementation for getContextMenuFromDefaultMenu.

  • WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h:

Tools:

Add tests cases for WebKitWebPage::context-menu signal.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestContextMenu.cpp:

(testContextMenuWebExtensionMenu):
(testContextMenuWebExtensionNode):
(beforeAll):

  • TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:

(serializeContextMenu):
(serializeNode):
(contextMenuCallback):
(pageCreatedCallback):

2:31 AM Changeset in webkit [175693] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, rolling out r175690.
https://bugs.webkit.org/show_bug.cgi?id=138460

We are not ready to run layout tests using the network process
yet (Requested by KaL on #webkit).

Reverted changeset:

"[GTK] Run layout tests using the network process"
https://bugs.webkit.org/show_bug.cgi?id=138428
http://trac.webkit.org/changeset/175690

2:08 AM Changeset in webkit [175692] by ryuan.choi@gmail.com
  • 5 edits in trunk/Source/WebKit2

[EFL] Remove m_scrollPosition from CoordinatedGraphicsScene
https://bugs.webkit.org/show_bug.cgi?id=138419

Reviewed by Gyuyoung Kim.

m_scrollPosition of CoordinatedGraphicsScene is only to adjust the position
of fixed element. But this adjustment is only called by paintToCurrentGLContext()
and WebView can pass same information to the parameter of that method.

  • UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebCore::CoordinatedGraphicsScene::adjustPositionForFixedLayers):
(WebCore::CoordinatedGraphicsScene::setScrollPosition): Deleted.

  • UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.h:
  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:

(WebKit::CoordinatedLayerTreeHostProxy::setVisibleContentsRect):

  • UIProcess/CoordinatedGraphics/WebView.cpp:

(WebKit::WebView::paintToCurrentGLContext):

12:51 AM WebKitGTK/2.4.x edited by berto@igalia.com
(diff)
12:50 AM Changeset in webkit [175691] by gyuyoung.kim@samsung.com
  • 3 edits in trunk/Source/JavaScriptCore

Use std::unique_ptr in CodeBlock class
https://bugs.webkit.org/show_bug.cgi?id=138395

Reviewed by Darin Adler.

  • bytecode/CodeBlock.h: Use std::unique_ptr.

(JSC::CodeBlock::setJITCodeMap):

  • jit/CompactJITCodeMap.h: Use std::unique_ptr instead of OwnPtr|PassOwnPtr.

(JSC::CompactJITCodeMap::CompactJITCodeMap):
(JSC::CompactJITCodeMap::Encoder::finish): Use std::unique_ptr instead of PassOwnPtr.

12:47 AM Changeset in webkit [175690] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] Run layout tests using the network process
https://bugs.webkit.org/show_bug.cgi?id=138428

Reviewed by Martin Robinson.

Shared secondary process is the default in the GTK+ port, but we
should run the tests using the network process to ensure
everything works with the network process. In the future, the
shared secondary process model might be a special case of multiple
processes with 1 as maximum number of processes, but always using
the network process.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):

12:07 AM Changeset in webkit [175689] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, fix nits after r175688.

Just a couple of non-functional fixes to the layout test.

  • fast/dom/Text/splitText.html:
Note: See TracTimeline for information about the timeline view.