Timeline



Jan 27, 2016:

10:46 PM Changeset in webkit [195733] by achristensen@apple.com
  • 4 edits in trunk/Source

Source/WebCore:
Fix clean CMake build after r195711.

  • PlatformWin.cmake:

Copy forwarding headers from the new directory to find ContentSecurityPolicy.h.
This should fix EWS issues like the one seen in bug 153573.

Source/WebKit2:
Fix CMake build after r195722.

  • PlatformMac.cmake:

Include new file.

10:45 PM Changeset in webkit [195732] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix other builds.

  • Configurations/WebKit.xcconfig:
10:23 PM Changeset in webkit [195731] by Chris Dumez
  • 12 edits in trunk

Expose ValidityState on the global Window object
https://bugs.webkit.org/show_bug.cgi?id=153582

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Rebaseline W3C html test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Expose ValidityState on the global Window object:
https://html.spec.whatwg.org/#validitystate

Firefox and Chrome match the specification.

No new tests, already covered by existing tests.

  • html/ValidityState.idl:

LayoutTests:

Rebaseline test now that ValidityState is exposed on the global Window
object.

  • js/dom/global-constructors-attributes-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
10:00 PM Changeset in webkit [195730] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Don't show hand cursor for edited attribute
https://bugs.webkit.org/show_bug.cgi?id=152211
<rdar://problem/23870523>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/Editing.css:

(.editing, .editing *):

9:33 PM Changeset in webkit [195729] by Chris Dumez
  • 13 edits in trunk

Expose ApplicationCache on the global Window object
https://bugs.webkit.org/show_bug.cgi?id=153578

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Rebaseline W3C HTML test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Expose ApplicationCache on the global Window object as per:
https://html.spec.whatwg.org/#the-storage-interface

Chrome follows the spec.

No new tests, already covered by existing test.

  • loader/appcache/DOMApplicationCache.idl:

LayoutTests:

Rebaseline test now that ApplicationCache is exposed on the global
Window object.

  • js/dom/global-constructors-attributes-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
9:21 PM Changeset in webkit [195728] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

B3 IntRange analysis should know more about shifting
https://bugs.webkit.org/show_bug.cgi?id=153568

Reviewed by Benjamin Poulain.

This teaches the IntRange analysis that the result of a right shift is usually better than
the worst-case mask based on the shift amount. In fact, you can reach useful conclusions
from looking at the IntRange of the input. This helps because Octane/crypto does something
like:

CheckMul((@x & $268435455) >> 14, @y >> 14, ...)

If you consider just the shifts, then this may overflow. But if you consider that @x is
first masked, then the IntRange coming out of the first shift is tight enough to prove that
the CheckMul cannot overflow.

  • b3/B3ReduceStrength.cpp:
  • b3/testb3.cpp:
8:42 PM Changeset in webkit [195727] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION(r190430): Assertion failure in Text::~Text()
https://bugs.webkit.org/show_bug.cgi?id=153577

Reviewed by Antti Koivisto.

Source/WebCore:

The bug was caused by destroyRenderTreeIfNeeded exiting early on all HTMLSlotElement as it lacks a render object.
Fixed it by explicitly avoiding the early return when child is a HTMLSlotElement.

Test: fast/shadow-dom/slot-removal-crash-2.html

  • dom/ContainerNode.cpp:

(WebCore::destroyRenderTreeIfNeeded):

LayoutTests:

Added a regression test. The test hits an assertion in debug build without the fix.

  • fast/shadow-dom/slot-removal-crash-2-expected.txt: Added.
  • fast/shadow-dom/slot-removal-crash-2.html: Added.
7:33 PM Changeset in webkit [195726] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix build.

  • Configurations/WebKit.xcconfig:
6:28 PM Changeset in webkit [195725] by k.czech@samsung.com
  • 4 edits in trunk

[EFL] Remove unused accessibility related code
https://bugs.webkit.org/show_bug.cgi?id=153543

Reviewed by Darin Adler.

Source/WebKit2:

Do not need to load external library to expose WebKit's
accessibility tree. There have been changes in EFL/Elementary
in terms of support of accessibility and we should follow those.

  • WebProcess/efl/WebProcessMainEfl.cpp:

(eailLibraryPath): Deleted.
(eail): Deleted.

Tools:

Removed reference to EAIL library.
It not going to be support anymore. There have been changes in
EFL/Elementary in terms of the accessibility and we should
follow those.

  • efl/jhbuild-optional.modules:
6:21 PM Changeset in webkit [195724] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

Garbage is displayed when root svg element has mix-blend-mode set
https://bugs.webkit.org/show_bug.cgi?id=150556

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-01-27
Reviewed by Darin Adler.

Source/WebCore:

This bug happens when compositing on a CALayer and drawing on a transparent
layer, so it happens with WK2 with <svg style="mix-blend-mode...">. And it
can happen with WK1 also with <svg style="opacity=...;mix-blend-mode...">.
But in both cases, the SVG root renderer should be the root of the render
tree. So it happens only with the stand alone SVG documents.

SVGRenderContext::prepareToRenderSVGContent() ignores the opacity of
the SVG root but it creates a transparent layer for the blend-mode.

But RenderLayer::beginTransparencyLayers() creates a transparent layer
for opacity and it sets the blend-mode also.

The fix is to begin two transparent layers for the SVG root renderer: one
for the opacity and the second for the blend-mode. The opacity transparent
layer will be still managed by RenderLayer::beginTransparencyLayers(). While
the blend-mode transparent layer will be managed by SVGRenderContext
::prepareToRenderSVGContent().

Tests: svg/css/mix-blend-mode-background-root.svg

svg/css/mix-blend-mode-opacity-root.svg

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::beginTransparencyLayers):

LayoutTests:

Ensure blending the SVG root renderer will be displayed correctly with
compositing when the SVG root renderer is the root of the render tree.

  • svg/css/mix-blend-mode-background-root-expected.svg: Added.
  • svg/css/mix-blend-mode-background-root.svg: Added.
  • svg/css/mix-blend-mode-opacity-root-expected.svg: Added.
  • svg/css/mix-blend-mode-opacity-root.svg: Added.
6:14 PM Changeset in webkit [195723] by sbarati@apple.com
  • 3 edits in trunk/Source/WebInspectorUI

CodeMirror will strip out "\r" from files with "\r\n" as newlines causing our offsets into the file to be incorrect
https://bugs.webkit.org/show_bug.cgi?id=153529
<rdar://problem/24376799>

Reviewed by Timothy Hatcher.

This problem manifested in the type token annotator inserting
tokens in the wrong places. Because our offsets are computed
based on the resource we get from backend, CodeMirror changing
the source text will cause all of our offsets to be incorrect.

  • UserInterface/Views/CodeMirrorEditor.js:

(WebInspector.CodeMirrorEditor.create):
(WebInspector.CodeMirrorEditor):

  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor.set string.update):
(WebInspector.TextEditor.prototype.set string):

5:36 PM Changeset in webkit [195722] by enrica@apple.com
  • 20 edits
    2 adds in trunk/Source

Cache results of data detection in the UI process when load completes.
https://bugs.webkit.org/show_bug.cgi?id=153560

Reviewed by Tim Horton.

Source/WebCore:

Adding new FrameLoaderClient method to notify that data
detection is complete and provide the results.

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

(WebCore::FrameLoader::checkLoadCompleteForThisFrame):

  • loader/FrameLoaderClient.h:

Source/WebKit/mac:

Adding empty implementation for WK1.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDidFinishDataDetection):

Source/WebKit2:

This patch changes when the results of data detections are sent to the
UIProcess. Before this change, they were only provided as part of
InteractionInformationAtPosition, which is populated when long press
gesture is triggered.
We need to have the results available if the client wants to allow navigation
to a data detector link, in order to allow them to retrieve the full url.
With this change, we now send the results as soon as they are computed
and keep them in the WebPageProxy object so that they can be fetched when
necessary from a WKWebView private interface.

  • Shared/Cocoa/DataDetectionResult.h: Added.
  • Shared/Cocoa/DataDetectionResult.mm: Added.

(WebKit::DataDetectionResult::encode):
(WebKit::DataDetectionResult::decode):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _snapshotLayerContentsForBackForwardListItem:]):
(-[WKWebView _dataDetectionResults]):
(-[WKWebView _didRelaunchProcess]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::setDataDetectionResult):
(WebKit::WebPageProxy::saveRecentSearches):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::websiteDataStore):
(WebKit::WebPageProxy::dataDetectionResults):
(WebKit::WebPageProxy::scrollingCoordinatorProxy):

  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView ensurePositionInformationIsUpToDate:]):
(-[WKContentView _dataDetectionResults]):
(-[WKContentView gestureRecognizerShouldBegin:]):

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidReceiveContentLength):
(WebKit::WebFrameLoaderClient::dispatchDidFinishDataDetection):
(WebKit::WebFrameLoaderClient::dispatchDidFinishLoading):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):
(WebKit::WebPage::setDataDetectionResults):
(WebKit::WebPage::willCommitLayerTree):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::shouldExtendIncrementalRenderingSuppression):

5:34 PM Changeset in webkit [195721] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebCore

Merge r195609. rdar://problem/24337868

5:34 PM Changeset in webkit [195720] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebCore

Merge r195606. rdar://problem/24242476

5:34 PM Changeset in webkit [195719] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601-branch/LayoutTests

Merge r195492. rdar://problem/24002217

5:34 PM Changeset in webkit [195718] by matthew_hanson@apple.com
  • 6 edits
    8 adds in branches/safari-601-branch

Merge r195477. rdar://problem/24002217

5:34 PM Changeset in webkit [195717] by matthew_hanson@apple.com
  • 4 edits
    4 adds in branches/safari-601-branch

Merge r195162. rdar://problem/24302736

5:34 PM Changeset in webkit [195716] by matthew_hanson@apple.com
  • 6 edits in branches/safari-601-branch/Source/WebCore

Merge r195132. rdar://problem/24154292

5:34 PM Changeset in webkit [195715] by matthew_hanson@apple.com
  • 5 edits
    15 adds in branches/safari-601-branch

Merge r195075. rdar://problem/24302727

5:34 PM Changeset in webkit [195714] by matthew_hanson@apple.com
  • 10 edits in branches/safari-601-branch/Source

Merge r194559. rdar://problem/24269083

5:34 PM Changeset in webkit [195713] by matthew_hanson@apple.com
  • 2 edits
    1 add in branches/safari-601-branch/Source/JavaScriptCore

Merge r193782. rdar://problem/24358367

5:14 PM Changeset in webkit [195712] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Include the right WebKitAdditions files
https://bugs.webkit.org/show_bug.cgi?id=153572

Reviewed by Tim Horton.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):

5:08 PM Changeset in webkit [195711] by dbates@webkit.org
  • 7 edits
    2 moves
    1 add in trunk/Source

Move ContentSecurityPolicy.{cpp, h} to its own directory
https://bugs.webkit.org/show_bug.cgi?id=153527
<rdar://problem/24359892>

Reviewed by Sam Weinig.

Source/WebCore:

Move ContentSecurityPolicy.{cpp, h} from Source/WebCore/page to Source/WebCore/page/csp.
This will facilitate separating out the policy support classes (e.g. CSPDirectiveList)
into their own files to improve the hackability of this code.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • page/csp/ContentSecurityPolicy.cpp: Renamed from Source/WebCore/page/ContentSecurityPolicy.cpp.
  • page/csp/ContentSecurityPolicy.h: Renamed from Source/WebCore/page/ContentSecurityPolicy.h.

Source/WebKit2:

Add ${WEBCORE_DIR}/page/csp to the list of WebKit2 include directories.

  • CMakeLists.txt:
4:38 PM Changeset in webkit [195710] by bshafiei@apple.com
  • 6 edits
    15 copies in branches/safari-601.1.46-branch

Merged r195625. rdar://problem/24337780

4:37 PM Changeset in webkit [195709] by beidson@apple.com
  • 4 edits in trunk

Modern IDB: Incorrect handling of iterating cursors to their end.
https://bugs.webkit.org/show_bug.cgi?id=153569

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (3 tests now pass, others are closer to passing).

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::advance):
(WebCore::IDBServer::SQLiteIDBCursor::internalAdvanceOnce):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
4:32 PM Changeset in webkit [195708] by Ryan Haddad
  • 1 edit
    3 adds in trunk/LayoutTests

Layout Test fast/forms/auto-fill-button/input-contacts-auto-fill-button.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=153567.

Unreviewed test gardening.

Update expected test results for ios-simulator, win, and gtk.

Patch by Zhuo Li <zachli@apple.com> on 2016-01-27

  • platform/gtk/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt: Added.
  • platform/ios-simulator/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt: Added.
  • platform/win/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt: Added.
4:29 PM Changeset in webkit [195707] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] adjustFrameAndStackInOSRExitCompilerThunk() can trash values in FTL
https://bugs.webkit.org/show_bug.cgi?id=153536

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-01-27
Reviewed by Saam Barati.

Workaround to get B3 working on ARM.

  • dfg/DFGOSRExitCompilerCommon.h:

(JSC::DFG::adjustFrameAndStackInOSRExitCompilerThunk):
The code was using the scratch registers in a few places.

I initially tried to make is not use scratch registers anywhere
but that looked super fragile.

Instead, I just preserve the scratch registers. That's easy and
it should be relatively cheap compared to everything done on OSR Exits.

4:18 PM Changeset in webkit [195706] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Regression (r195303) - Changes to TreeOutline break styling of lists in Visual sidebar
https://bugs.webkit.org/show_bug.cgi?id=153563

Patch by Devin Rousso <Devin Rousso> on 2016-01-27
Reviewed by Timothy Hatcher.

Removed duplicate properties and used new methods of TreeOutline to achieve
the desired styling effects.

  • UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:

(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item.visual-style-font-family-list-item > .visual-style-comma-separated-keyword-item-editor):
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles): Deleted.

  • UserInterface/Views/VisualStyleSelectorSection.js:

(WebInspector.VisualStyleSelectorSection):

  • UserInterface/Views/VisualStyleSelectorTreeItem.css:

(.item.visual-style-selector-item > .icon):
(.item.visual-style-selector-item > .titles):
(.item.visual-style-selector-item > .titles > .subtitle):
(.item.visual-style-selector-item.selected > .titles > .subtitle):
(.item.visual-style-selector-item > .titles > .subtitle::before): Deleted.

4:17 PM Changeset in webkit [195705] by n_wang@apple.com
  • 4 edits in trunk/Source/WebCore

AX: Crash in AccessibilityTableColumn::headerObject
https://bugs.webkit.org/show_bug.cgi?id=153553
<rdar://problem/23196278>

Reviewed by Chris Fleizach.

Webkit was crashing sometimes when we asked for column headers of a table.
The columns vector of the table was reset during the iteration when we
were asking for the headerObject of each column. The column's addChildren()
function calls elementRect() for each child cell and that sometimes causes
the parent table to reset its children.
Fixed it by caching the columns vector and moving out the elementRect() logic
from AccessibilityTalbeColumn::addChildren().

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::columnHeaders):
(WebCore::AccessibilityTable::rowHeaders):

  • accessibility/AccessibilityTableColumn.cpp:

(WebCore::AccessibilityTableColumn::elementRect):
(WebCore::AccessibilityTableColumn::headerObject):
(WebCore::AccessibilityTableColumn::addChildren):

  • accessibility/AccessibilityTableColumn.h:
4:16 PM Changeset in webkit [195704] by dbates@webkit.org
  • 3 edits
    8 deletes in trunk

Remove WebKitSystemInterface for iOS SDK < 9
https://bugs.webkit.org/show_bug.cgi?id=153570

Reviewed by Andy Estes.

Tools:

  • Scripts/copy-webkitlibraries-to-product-directory:

WebKitLibraries:

We no longer support building for iOS < 9.

  • libWebKitSystemInterfaceIOSDevice8.1.a: Removed.
  • libWebKitSystemInterfaceIOSDevice8.2.a: Removed.
  • libWebKitSystemInterfaceIOSDevice8.3.a: Removed.
  • libWebKitSystemInterfaceIOSDevice8.4.a: Removed.
  • libWebKitSystemInterfaceIOSSimulator8.1.a: Removed.
  • libWebKitSystemInterfaceIOSSimulator8.2.a: Removed.
  • libWebKitSystemInterfaceIOSSimulator8.3.a: Removed.
  • libWebKitSystemInterfaceIOSSimulator8.4.a: Removed.
4:02 PM Changeset in webkit [195703] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601.1.46-branch

Merged r195671. rdar://problem/24302956

3:55 PM Changeset in webkit [195702] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source/WebKit2

Merged r195651. rdar://problem/24302943

3:45 PM Changeset in webkit [195701] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[mips] Use reinterpret_cast_ptr to suppress alignment warnings.
https://bugs.webkit.org/show_bug.cgi?id=153424

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-27
Reviewed by Darin Adler.

  • runtime/JSGenericTypedArrayView.h:

(JSC::JSGenericTypedArrayView::sortFloat):

3:42 PM Changeset in webkit [195700] by Chris Dumez
  • 25 edits in trunk

Settings a reflected DOMString attribute to null should set it to the "null" string rather than the empty string
https://bugs.webkit.org/show_bug.cgi?id=153504
<rdar://problem/24353072>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Settings a reflected DOMString attribute to null should set it to the "null"
string rather than the empty string:

Firefox and Chrome match the specification here.

This is causing a lot of W3C HTML reflection tests to fail on WebKit, e.g.:

No new tests, already covered by existing tests.

  • bindings/scripts/CodeGeneratorJS.pm:

(JSValueToNative):
Call toString() instead of valueToStringWithNullCheck() for reflected
attributes. This way, null gets converted to the string "null", as
expected, instead of a null String object.

  • html/HTMLInputElement.idl:

Dropping [TreatNullAs=NullString] IDL extended attribute for
input.defaultValue, as this is not present in the specification:

Without this change, assigning null to input.defaultValue would not
set to to the "null" string, as is expected.

  • html/HTMLTextAreaElement.idl:

Dropping [TreatNullAs=NullString] IDL extended attribute for
textArea.defaultValue, as this is not present in the specification:

Without this change, assigning null to textArea.defaultValue would not
set to to the "null" string, as is expected.

  • html/HTMLTitleElement.idl:

Dropping [TreatNullAs=NullString] IDL extended attribute for
title.text, as this is not present in the specification:

Without this change, assigning null to title.text would not
set to to the "null" string, as is expected.

LayoutTests:

Update existing tests as a lot of them were expecting that setting
a reflected DOMString attribute to null would set it to the empty
string instead of the string "null".

  • fast/dom/domstring-attribute-reflection-expected.txt:
  • fast/dom/domstring-attribute-reflection.html:
  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
  • fast/dom/ping-attribute-dom-binding-expected.txt:
  • fast/dom/ping-attribute-dom-binding.html:
  • fast/forms/fieldset/fieldset-name-expected.txt:
  • fast/forms/fieldset/fieldset-name.html:
  • fast/forms/input-minmax-expected.txt:
  • fast/forms/input-minmax.html:
  • fast/forms/input-pattern-expected.txt:
  • fast/forms/input-pattern.html:
  • fast/forms/submit-form-attributes-expected.txt:
  • fast/forms/submit-form-attributes.html:
  • fast/shadow-dom/HTMLSlotElement-interface.html:
  • fast/shadow-dom/NonDocumentTypeChildNode-interface-assignedSlot.html:
  • fast/shadow-dom/shadow-layout-after-slot-changes.html:
  • svg/dom/svg-element-attribute-js-null-expected.txt:
  • svg/dom/svg-element-attribute-js-null.xhtml:
3:31 PM Changeset in webkit [195699] by Simon Fraser
  • 13 edits
    3 adds in trunk

Support CSS3 Images values for the image-rendering property
https://bugs.webkit.org/show_bug.cgi?id=153556

Reviewed by Dean Jackson.

Source/WebCore:

CSS3 Images has the following values for image-rendering:

auto, crisp-edges, pixelated

The old code supported:

optimizeSpeed, optimizeQuality, -webkit-crisp-edges, -webkit-optimize-contrast

Add support for the new values without prefixes. Map -webkit-crisp-edges to crisp-edges,
and -webkit-optimize-contrast to crisp-edges. Support pixelated which behaves like
crisp-edges (a low quality scale).

The spec says that optimizeQuality should behave like 'auto', but that would be
a behavior change since ImageQualityController::shouldPaintAtLowQuality() currently
uses it as a trigger to avoid low quality scaling, so don't change that for now.

No new tests, covered by fast/css/script-tests/image-rendering-parsing.js

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EImageRendering):

  • css/CSSValueKeywords.in:
  • rendering/ImageQualityController.cpp:

(WebCore::ImageQualityController::shouldPaintAtLowQuality):

  • rendering/RenderHTMLCanvas.cpp:

(WebCore::RenderHTMLCanvas::paintReplaced):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareInheritedData.h: Need another bit.

Source/WebInspectorUI:

Add "crisp-edges", "pixelated" to the suggestions for image-rendering.

  • UserInterface/Models/CSSKeywordCompletions.js:

LayoutTests:

Update for new values. Add a new SVG shape-rendering test which would have
detected a bug I caused with an earlier patch.

  • fast/css/image-rendering-parsing-expected.txt:
  • fast/css/script-tests/image-rendering-parsing.js:
  • svg/css/script-tests/shape-rendering-parsing.js: Added.
  • svg/css/shape-rendering-parsing.html: Added.
3:12 PM Changeset in webkit [195698] by andersca@apple.com
  • 21 edits
    3 adds in trunk/Source

Add WebKitAdditions extension points to WebCore, WebKit and WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=153550

Reviewed by Sam Weinig.

Source/WebCore:

  • DerivedSources.make:

Add the ability for WebKitAdditions to add events and event targets.

  • WebCore.xcodeproj/project.pbxproj:

Add new files.

  • bindings/scripts/InFilesCompiler.pm:

(initializeFromCommandLine):
(compile):
Handle multiple --input parameters.

  • dom/EventNames.h:

Handle adding more event names.

  • loader/EmptyClients.cpp:

(WebCore::fillWithEmptyClients):

  • page/MainFrame.cpp:

(WebCore::MainFrame::MainFrame):

  • page/MainFrame.h:
  • page/PageConfiguration.h:

Add extension points.

  • platform/cocoa/WebKitAdditions.mm: Added.

Import additions.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Add new files.

Source/WebKit/mac:

  • Configurations/WebKitLegacy.xcconfig:

Add WKA header search paths.

  • WebKitAdditions.mm: Added.

Add addition files.

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
Add extension points.

Source/WebKit2:

  • DerivedSources.make:

Add the ability for WebKitAdditions to add new message receivers.

  • Shared/Cocoa/WebKitAdditions.mm: Added.

Add addition files.

  • Shared/WebCoreArgumentCoders.h:

Add extension points.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::resetState):
Add extension points.

  • UIProcess/WebPageProxy.h:

Add extension points.

  • WebKit2.xcodeproj/project.pbxproj:

Add new files.

  • WebProcess/WebPage/WebPage.cpp:

Add extension points.

3:03 PM Changeset in webkit [195697] by beidson@apple.com
  • 6 edits in trunk

Modern IDB: Fix many Index tests.
https://bugs.webkit.org/show_bug.cgi?id=153561

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Many failing tests now pass).

  • Modules/indexeddb/server/MemoryIndex.cpp:

(WebCore::IDBServer::MemoryIndex::getResultForKeyRange):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedPutIndexKey):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedPutIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::iterateCursor):

  • Modules/indexeddb/server/SQLiteIDBCursor.h:

(WebCore::IDBServer::SQLiteIDBCursor::didComplete):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
2:57 PM Changeset in webkit [195696] by beidson@apple.com
  • 6 edits in trunk

Modern IDB: Cursors are utterly broken in the SQLite backend.
https://bugs.webkit.org/show_bug.cgi?id=153558

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (35 failures now pass, others improve).

  • Fixes incorrect usage of Index cursors when ObjectStore cursors are intended.
  • Improves the state of getting the cursor value vs. reaching the end of a cursor.
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::openCursor):
(WebCore::IDBServer::SQLiteIDBBackingStore::iterateCursor):

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::SQLiteIDBCursor):
(WebCore::IDBServer::SQLiteIDBCursor::currentData):

  • Modules/indexeddb/server/SQLiteIDBCursor.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
2:40 PM Changeset in webkit [195695] by Chris Dumez
  • 27 edits
    1 move
    1 add
    1 delete in trunk

Getting / Setting property on prototype object must throw TypeError
https://bugs.webkit.org/show_bug.cgi?id=153547
<rdar://problem/24370650>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/XMLHttpRequest/interfaces-expected.txt:
  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Gettingi / Setting property on prototype object must throw TypeError as per
Web IDL specification:
http://heycam.github.io/webidl/#dfn-attribute-getter (Step 2.4.2)
http://heycam.github.io/webidl/#dfn-attribute-setter (Step 3.5)

Firefox and Chrome already throw a TypeError in this case, as per
the specification. However, WebKit was returning null and merely
logging a deprecation error message. This patch aligns our behavior
with other browsers and the specification.

This patch also adds support for the [LenientThis] IDL extended
attribute:
http://heycam.github.io/webidl/#LenientThis

For [LenientThis] attributes, we do not throw a TypeError if the
attribute getter / setter is called on an object which does not
implement the expected interface, as per:
http://heycam.github.io/webidl/#dfn-attribute-getter (Step 2.4.1)
http://heycam.github.io/webidl/#dfn-attribute-setter (Step 3.5)

No new tests, already covered by existing tests.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/IDLAttributes.txt:

Add support for [LenientThis]:
http://heycam.github.io/webidl/#LenientThis

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bindings/scripts/test/JS/JSattribute.cpp:
  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:

Rebaseline bindings tests.

  • bindings/scripts/test/TestObj.idl:

Add coverage for [LenientThis] attributes.

  • dom/Document.idl:

Mark 'onreadystatechange' as [LenientThis] as per the HTML
specification:
https://html.spec.whatwg.org/#document

  • dom/GlobalEventHandlers.idl:

Mark 'onmouseeneter' / 'onmouseleave' as [LenientThis] as per the
HTML specification:
https://html.spec.whatwg.org/#globaleventhandlers

LayoutTests:

Update a few layout tests that were expecting getting a property on
the prototype object to return undefined instead of throwing.

  • js/dom/dom-as-prototype-assignment-exception-expected.txt:
  • js/dom/dom-attributes-on-mismatch-type-expected.txt:
  • js/dom/dom-attributes-on-mismatch-type.html:
  • js/dom/script-tests/dom-as-prototype-assignment-exception.js:
2:37 PM Changeset in webkit [195694] by Chris Dumez
  • 15 edits in trunk

window.atob() should ignore spaces in input
https://bugs.webkit.org/show_bug.cgi?id=153522
<rdar://problem/24357822>

Reviewed by Benjamin Poulain.

Source/WebCore:

window.atob() should ignore spaces in input as per:

Previously, WebKit would throw an exception and it was the only browser
to do so. Firefox and Chrome behavior according to the specification.

This was causing us to fail 10 checks in the following W3C HTML test:
http://w3c-test.org/html/webappapis/atob/base64.html

No new tests, updated existing test.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::atob):

  • page/Page.cpp:

(WebCore::Page::userStyleSheetLocationChanged):

  • platform/network/DataURL.cpp:

(WebCore::handleDataURL):

  • platform/network/DataURLDecoder.cpp:

(WebCore::DataURLDecoder::decodeBase64):

Source/WebKit/mac:

  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorFrontendClient::save):

Source/WebKit2:

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformSave):

Source/WTF:

Turn Base64DecodePolicy enum into flags so that the caller can indicate
to both validate padding AND ignore spaces.

Also make sure that the output Vector size is properly shrunk when
spaces are ignored.

  • wtf/text/Base64.cpp:

(WTF::base64DecodeInternal):
(WTF::base64Decode):
(WTF::base64URLDecode):

  • wtf/text/Base64.h:

LayoutTests:

Update window.atob() test to cover cases with spaces in
input.

  • fast/dom/Window/atob-btoa-expected.txt:
  • fast/dom/Window/atob-btoa.html:
2:31 PM Changeset in webkit [195693] by adachan@apple.com
  • 4 edits in trunk/Source/WebCore

Move some logic related to the presentation mode button from mediaControlsiOS.js to mediaControlsApple.js
https://bugs.webkit.org/show_bug.cgi?id=153476

Reviewed by Eric Carlson.

Also, add the necessary styles to support that control in mediaControlsApple.css.

  • Modules/mediacontrols/mediaControlsApple.css:

(video::-webkit-media-controls-panel.picture-in-picture):
(audio::-webkit-media-controls-wireless-playback-status.picture-in-picture):
(audio::-webkit-media-controls-wireless-playback-text-top.picture-in-picture):
(audio::-webkit-media-controls-wireless-playback-text-bottom.picture-in-picture):
(video::-webkit-media-controls-panel .picture-in-picture-button):
Use the same mask image as iOS, but with a different size and a background color specified
(since there's another rule that makes buttons within the panel have a transparent
background color).
(video::-webkit-media-controls-panel .picture-in-picture-button.return-from-picture-in-picture):

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.addVideoListeners):
(Controller.prototype.removeVideoListeners):
Listen for (and stop listening for) the webkitpresentationmodechanged event if presentation
mode is supported for this video element.
(Controller.prototype.createControls):
Add a class name to the pictureInPictureButton so we can query for it in the stylesheet.
(Controller.prototype.configureInlineControls):
Call updatePictureInPictureButton().
(Controller.prototype.presentationMode):
Moved from mediaControlsiOS.js.
(Controller.prototype.isFullScreen):
Ditto, with a bug fix to not call presentationMode(), since that method calls isFullScreen(),
resulting in infinite recursion.
(Controller.prototype.updatePictureInPictureButton):
Ditto.
(Controller.prototype.handlePresentationModeChange):
Ditto.
(Controller.prototype.handleFullscreenChange):
Call handlePresentationModeChanged() if presentation mode is supported for this video element.
(Controller.prototype.controlsAlwaysVisible):
Ditto.
(Controller.prototype.handlePictureInPictureButtonClicked):
Ditto.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.handlePresentationModeChange):
Most logic has been moved to the same method in mediaControlsApple.js, except
updating the style of the panelContainer, which doesn't exist in the Mac controls.
(ControllerIOS.prototype.addVideoListeners): Deleted.
(ControllerIOS.prototype.removeVideoListeners): Deleted.
(ControllerIOS.prototype.presentationMode): Deleted.
(ControllerIOS.prototype.isFullScreen): Deleted.
(ControllerIOS.prototype.handlePictureInPictureButtonClicked): Deleted.
(ControllerIOS.prototype.updatePictureInPictureButton): Deleted.
(ControllerIOS.prototype.handleFullscreenChange): Deleted.
(ControllerIOS.prototype.controlsAlwaysVisible): Deleted.
Delete all code that's already handled in the Controller.

2:23 PM Changeset in webkit [195692] by adachan@apple.com
  • 3 edits in trunk/Source/WebCore

Enable API related to the video fullscreen layer in MediaPlayerPrivateMediaSourceAVFObjC
also on Mac platform with video presentation mode support.
https://bugs.webkit.org/show_bug.cgi?id=153223

Reviewed by Jer Noble.

Reuse VideoFullscreenLayerManager to manage moving the video layer between the fullscreen
layer and the inline layer depending on the current presentation mode.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
Create m_videoFullscreenLayerManager.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::platformLayer):
Return the video inline layer from the VideoFullscreenLayerManager.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer):
Call VideoFullscreenLayerManager::setVideoLayer() with the m_sampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::removeDisplayLayer):
Call VideoFullscreenLayerManager::didDestroyVideoLayer().
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenLayer):
Call VideoFullscreenLayerManager::setVideoFullscreenLayer().
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenFrame):
Call VideoFullscreenLayerManager::setVideoFullscreenFrame().

2:08 PM Changeset in webkit [195691] by peavo@outlook.com
  • 2 edits in trunk/Source/JavaScriptCore

[FTL][Win64] Compile fix.
https://bugs.webkit.org/show_bug.cgi?id=153555

Reviewed by Alex Christensen.

MSVC does not accept preprocessor conditionals in macros.

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

2:04 PM Changeset in webkit [195690] by jmarcell@apple.com
  • 3 edits in trunk/Tools

Fix bugs caused by incorrect usage of "branch" vs. "branchName". https://bugs.webkit.org/show_bug.cgi?id=153330

Reviewed by Daniel Bates.

In an earlier patch we started using the name "branch" to indicate a branch object, whereas
"branchName" implies that the variable or property in question is simply a string. We fixed some
inconsistencies regarding this issue in 152982 but further bugs and inconsistencies were recently
spotted in BuildbotQueueView.js.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:

(BuildbotQueueView.prototype._popoverLinesForCommitRange): Change branchName to branch in method signature.
Changed branchName to branch.name in call to commitsOnBranch.
(BuildbotQueueView.prototype._presentPopoverForPendingCommits): Change branch.name to branch in call to
_popoverLinesForCommitRange.
(BuildbotQueueView.prototype._presentPopoverForRevisionRange): Changed context.branchName to context.branch.name.
(BuildbotQueueView.prototype._revisionContentWithPopoverForIteration): Changed branch.name to branch.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js: Added tests to verify

fix.

1:57 PM Changeset in webkit [195689] by beidson@apple.com
  • 10 edits in trunk

Modern IDB: SQLite backend doesn't update index records as object records are added.
https://bugs.webkit.org/show_bug.cgi?id=153548

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (4 more tests pass, others improve).

  • Modules/indexeddb/server/IDBBackingStore.h:
  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::addRecord):

  • Modules/indexeddb/server/MemoryIDBBackingStore.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::initializeVM):
(WebCore::IDBServer::SQLiteIDBBackingStore::vm):
(WebCore::IDBServer::SQLiteIDBBackingStore::globalObject):
(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedPutIndexKey):
(WebCore::IDBServer::SQLiteIDBBackingStore::updateIndexesForAddRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):

  • Modules/indexeddb/shared/IDBObjectStoreInfo.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
12:47 PM Changeset in webkit [195688] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

LayoutTest fast/loader/stateobjects/replacestate-frequency-iframe.html is flaky on El Cap, always times out on Yosemite.
https://bugs.webkit.org/show_bug.cgi?id=153551

Unreviewed.

The iframe file name is "replacestate-iframe.html", but the main frame src refers to "replaceState-iframe.html"

Notice the case difference on the 'S'.

Apparently some of our bots have case sensitive filesystems, and others do not.

  • fast/loader/stateobjects/replacestate-frequency-iframe.html:
12:37 PM Changeset in webkit [195687] by beidson@apple.com
  • 3 edits in trunk/LayoutTests

Noticed while exploring:
LayoutTest fast/loader/stateobjects/replacestate-frequency-iframe.html is flaky on El Cap, always times out on Yosemite.
https://bugs.webkit.org/show_bug.cgi?id=153551

Unreviewed gardening.

Probably won't fix anything, but hey, let's try.

  • fast/loader/stateobjects/replacestate-frequency-iframe-expected.txt:
  • fast/loader/stateobjects/replacestate-frequency-iframe.html:
12:29 PM Changeset in webkit [195686] by rniwa@webkit.org
  • 12 edits
    1 copy
    1 add in trunk

Add API to access closed shadowRoot in InjectedBundle
https://bugs.webkit.org/show_bug.cgi?id=153533

Reviewed by Antti Koivisto.

Source/WebCore:

Always return the shadow root in Element.shadowRootForBindings when the DOM wrapper world has
shadowRootIsAlwaysOpen set to true. Also renamed bindingShadowRoot to shadowRootForBindings
to be consistent.

  • bindings/js/DOMWrapperWorld.h:

(WebCore::DOMWrapperWorld::setShadowRootIsAlwaysOpen): Added.
(WebCore::DOMWrapperWorld::shadowRootIsAlwaysOpen): Added.

  • dom/Element.cpp:

(WebCore::Element::shadowRootForBindings): Renamed from bindingShadowRoot.

  • dom/Element.h:
  • dom/Element.idl:

Source/WebKit2:

Added WKBundleScriptWorldMakeAllShadowRootsOpen to make all shadow roots open.
This is needed to keep supporting certain browser-level features such as autofill.

  • WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.cpp:

(WKBundleScriptWorldMakeAllShadowRootsOpen): Added.

  • WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.h:
  • WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp:

(WebKit::InjectedBundleScriptWorld::makeAllShadowRootsOpen): Added.

  • WebProcess/InjectedBundle/InjectedBundleScriptWorld.h:

Tools:

Added WebKit2 API test for WKBundleScriptWorldMakeAllShadowRootsOpen.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/InjectedBundleMakeAllShadowRootsOpen.cpp: Added.

(TestWebKitAPI::runJavaScriptAlert):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit2/InjectedBundleMakrAllShadowRootOpen_Bundle.cpp: Added.

(TestWebKitAPI::InjectedBundleMakrAllShadowRootOpenTest::InjectedBundleMakrAllShadowRootOpenTest):
(TestWebKitAPI::InjectedBundleMakrAllShadowRootOpenTest::initialize):

12:24 PM Changeset in webkit [195685] by commit-queue@webkit.org
  • 23 edits
    4 adds in trunk

Need ability to specify alternate image for AutoFill button in input fields.
https://bugs.webkit.org/show_bug.cgi?id=153116.
rdar://problem/23384854.

Patch by Zhuo Li <zachli@apple.com> on 2016-01-27
Reviewed by Darin Adler.

Source/WebCore:

Add a new AutoFill button that can be shown in <input> elements.

Tests: fast/forms/auto-fill-button/input-contacts-auto-fill-button.html

fast/forms/auto-fill-button/show-correct-auto-fill-button-when-auto-fill-button-type-changes.html

  • css/html.css:

(input::-webkit-contacts-auto-fill-button):
(input::-webkit-contacts-auto-fill-button:hover):
(input::-webkit-contacts-auto-fill-button:active):
Add default style rules for the Contacts AutoFill button based on the ones used for
Manual AutoFill button.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setShowAutoFillButton):

  • html/HTMLInputElement.h:

(WebCore::HTMLInputElement::autoFillButtonType):

  • Replace the boolean parameter with a new parameter to specify the type of the AutoFill button.
  • Declare a private variable to keep a record of the type of the current AutoFill

button.
(WebCore::HTMLInputElement::showAutoFillButton): Deleted.

  • html/HTMLTextFormControlElement.h:

Declare enum for AutoFill button type.

  • html/TextFieldInputType.cpp:

(WebCore::autoFillButtonTypeToAutoFillButtonPseudoClassName):
(WebCore::isAutoFillButtonTypeChanged):
(WebCore::TextFieldInputType::shouldDrawAutoFillButton): None means the AutoFill button is not
enabled.
(WebCore::TextFieldInputType::createAutoFillButton): Only create the AutoFill button
if the type is expected.
(WebCore::TextFieldInputType::updateAutoFillButton):
Handle the case where AutoFill button type changes in the text field.

  • html/TextFieldInputType.h:
  • testing/Internals.cpp:

(WebCore::stringToAutoFillButtonType): Convert the string to AutoFill button type.
(WebCore::Internals::setShowAutoFillButton): Add a new parameter to specify the type of the AutoFill button.

  • testing/Internals.h: Ditto.
  • testing/Internals.idl: Ditto.

Source/WebKit2:

  • WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:

(toAutoFillButtonType): Convert the WebKit AutoFill button type enum to WebCore AutoFill button
type enum.
(WKBundleNodeHandleSetHTMLInputElementAutoFillButtonEnabledWithButtonType): Added to be able to specify
what the AutoFill button type is. None means the AutoFill button is not shown.
(WKBundleNodeHandleSetHTMLInputElementAutoFillButtonEnabled): Deprecate this method.

  • WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h: Declare an AutoFill button type enum.
  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutoFillButtonEnabled): None means the AutoFill button is not enabled.
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutoFillButtonEnabledWithButtonType): Use the new parameter to specify
what the AutoFill button type is.

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h: Ditto.

LayoutTests:

  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-disabled.html: The test API has

another parameter to specify what type the AutoFill button is.

  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly.html: Ditto.
  • fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt: Added.
  • fast/forms/auto-fill-button/input-contacts-auto-fill-button.html: Added.
  • fast/forms/auto-fill-button/input-auto-fill-button.html: Ditto.
  • fast/forms/auto-fill-button/input-disabled-auto-fill-button.html: Ditto.
  • fast/forms/auto-fill-button/input-readonly-non-empty-auto-fill-button.html: Ditto.
  • fast/forms/auto-fill-button/mouse-down-input-mouse-release-auto-fill-button.html: Ditto.
  • fast/forms/auto-fill-button/show-correct-auto-fill-button-when-auto-fill-button-type-changes-expected.html: Added.
  • fast/forms/auto-fill-button/show-correct-auto-fill-button-when-auto-fill-button-type-changes.html: Added.
12:12 PM Changeset in webkit [195684] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

[Win] Clean build fix after r195680.

  • PlatformWin.cmake:

Use the post build command for the post build event.

12:10 PM Changeset in webkit [195683] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Air::TmpWidth uses a stale pointer into its HashMap after it calls add()
https://bugs.webkit.org/show_bug.cgi?id=153546

Reviewed by Saam Barati.

  • b3/air/AirTmpWidth.cpp:

(JSC::B3::Air::TmpWidth::recompute):

12:09 PM Changeset in webkit [195682] by rniwa@webkit.org
  • 4 edits
    2 adds in trunk

Add Node.treeRoot
https://bugs.webkit.org/show_bug.cgi?id=153537

Reviewed by Antti Koivisto.

Source/WebCore:

Exposed highestAncestor as Node.prototype.treeRoot, which was added to shadow DOM spec in
https://github.com/w3c/webcomponents/commit/6864a40fe4efa8a737e78512e3c85319ddc5bf8b

See also:
http://w3c.github.io/webcomponents/spec/shadow/#extensions-to-node-interface

Test: fast/shadow-dom/Node-interface-treeRoot.html

  • dom/Node.idl:

LayoutTests:

Added a testharness.js test for Node.treeRoot. Also rebaselined a test.

  • js/dom/dom-static-property-for-in-iteration-expected.txt: Rebaselined.
  • fast/shadow-dom/Node-interface-treeRoot-expected.txt: Added.
  • fast/shadow-dom/Node-interface-treeRoot.html: Added.
12:08 PM Changeset in webkit [195681] by rniwa@webkit.org
  • 6 edits in trunk

Rename HTMLSlotElement.getDistributedNodes to getAssignedNodes
https://bugs.webkit.org/show_bug.cgi?id=153534

Reviewed by Antti Koivisto.

Source/WebCore:

Did the rename.

  • html/HTMLSlotElement.idl:

LayoutTests:

Updated the tests to refect the rename. Also added test cases after r192763
to assert we don't assign comment and processing instruction nodes to a slot.

  • fast/shadow-dom/HTMLSlotElement-interface-expected.txt:
  • fast/shadow-dom/HTMLSlotElement-interface.html:
  • fast/shadow-dom/NonDocumentTypeChildNode-interface-assignedSlot.html:
12:00 PM Changeset in webkit [195680] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix Win EWS after r195545.
https://bugs.webkit.org/show_bug.cgi?id=153434

  • PlatformWin.cmake:

Copy WebKit.h after building WebKitGUID, because it doesn't exist before.
This should fix EWS problems like the one seen in bug 153522.

11:54 AM Changeset in webkit [195679] by jmarcell@apple.com
  • 3 edits in trunk/Tools

Refactor logic for parsing Trac revisions into its own function and add logic for parsing git hashes.
https://bugs.webkit.org/show_bug.cgi?id=153332

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Trac.js:

(Trac.prototype._xmlTimelineURL): Uses new function.
(Trac.prototype._parseRevisionFromURL): Added. Pulled out logic for parsing revisions from a URL. Also added
logic for parsing git hashes.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js: Added tests for

Trac._parseRevisionFromURL.

11:11 AM Changeset in webkit [195678] by timothy_horton@apple.com
  • 7 edits
    4 adds in trunk

Need to be able to specify MIME type for <attachment> without filename or handle
https://bugs.webkit.org/show_bug.cgi?id=153552
<rdar://problem/20145857>

Reviewed by Anders Carlsson.

Tests: fast/attachment/attachment-default-icon.html

fast/attachment/attachment-type-attribute.html

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::parseAttribute):
Invalidate attachment when 'type' attribute changes.

(WebCore::HTMLAttachmentElement::attachmentType):

  • html/HTMLAttachmentElement.h:
  • platform/graphics/Icon.h:
  • platform/graphics/mac/IconMac.mm:

(WebCore::Icon::createIconForUTI):
(WebCore::Icon::createIconForMIMEType):
Add Icon class methods to retrieve an icon given a UTI or MIME type.

  • rendering/RenderThemeMac.mm:

(WebCore::paintAttachmentIcon):
Use the 'type' attribute (a MIME type) if we have one. Otherwise,
use the filename. Lastly fall back to a plain file icon (using the root
file UTI, public.data).

  • fast/attachment/attachment-default-icon-expected.html: Added.
  • fast/attachment/attachment-default-icon.html: Added.
  • fast/attachment/attachment-type-attribute-expected.html: Added.
  • fast/attachment/attachment-type-attribute.html: Added.

Add some tests.

10:38 AM Changeset in webkit [195677] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

More trying to fix the build.

  • Configurations/WebKit.xcconfig:
10:34 AM Changeset in webkit [195676] by ap@apple.com
  • 3 edits in trunk/Tools

Remove Mavericks from the flakiness dashboard
https://bugs.webkit.org/show_bug.cgi?id=153521

Reviewed by Dan Bernstein.

  • TestResultServer/static-dashboards/builders.jsonp:
  • TestResultServer/static-dashboards/flakiness_dashboard.js:
10:24 AM Changeset in webkit [195675] by ap@apple.com
  • 20 edits in trunk

Remove ENABLE_CURRENTSRC
https://bugs.webkit.org/show_bug.cgi?id=153545

Reviewed by Simon Fraser.

.:

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmake/tools/vsprops/FeatureDefines.props:
  • Source/cmake/tools/vsprops/FeatureDefinesCairo.props:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:
10:23 AM Changeset in webkit [195674] by weinig@apple.com
  • 2 edits in trunk/Source/WebKit2

Try to fix the build.

  • Configurations/WebKit.xcconfig:
8:57 AM Changeset in webkit [195673] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Stop echoing echo commands to stdout
https://bugs.webkit.org/show_bug.cgi?id=153531

Reviewed by Csaba Osztrogonác.

  • DerivedSources.make:
7:35 AM Changeset in webkit [195672] by youenn.fablet@crf.canon.fr
  • 1 edit
    3 adds in trunk/LayoutTests

[GTK] Problem running promises code in workers
https://bugs.webkit.org/show_bug.cgi?id=152340

Reviewed by Carlos Garcia Campos.

Test file that creates two testharness promise tests. Each test creates 10000 promises, pushes them into an
array and vends them in a timeout.

  • js/promises-tests/promises-in-workers-expected.txt: Added.
  • js/promises-tests/promises-in-workers.html: Added.
  • js/promises-tests/promises-in-workers.js: Added.
7:20 AM Changeset in webkit [195671] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

Calling video.controls=true during a scrub operation cancels scrub.
https://bugs.webkit.org/show_bug.cgi?id=153494

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-controls-drag-timeline-set-controls-property.html

Verify that the video.controls attribute actually changed before tearing down and
re-adding the media controls to the Shadow DOM.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.handleControlsChange):
(Controller.prototype.hasControls):

LayoutTests:

  • media/media-controls-drag-timeline-set-controls-property-expected.txt: Added.
  • media/media-controls-drag-timeline-set-controls-property.html: Added.
6:34 AM Changeset in webkit [195670] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.10.6

WebKitGTK+ 2.10.6

6:30 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
6:17 AM Changeset in webkit [195669] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.10

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.10.6 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.10.6
5:40 AM Changeset in webkit [195668] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r195586 - [GTK] WebProcess crashes when quickly attempting many DnD operations
https://bugs.webkit.org/show_bug.cgi?id=138468

Reviewed by Michael Catanzaro.

Source/WebKit2:

Do not allow different DnD operations over the same element at the
same time, so that any new attempt to DnD an element happening before
a previous attempt has ended will take precedence, cancelling the older
operation before going ahead with the new one.

This is consistent with how WebCore::EventHandler handles DnD operations,
preventing the web process from crashing in scenarios where the user might
try to perform many DnD operations over the same element very quickly.

  • UIProcess/gtk/DragAndDropHandler.cpp:

(WebKit::DragAndDropHandler::DragAndDropHandler): Initialized new member.
(WebKit::DragAndDropHandler::startDrag): Ensure a previous DnD operation
is cancelled before handling the new one that has just started.
(WebKit::DragAndDropHandler::fillDragData): Protect against calling this
function from webkitWebViewBaseDragDataGet for already cancelled operations.
(WebKit::DragAndDropHandler::finishDrag): Protect against calling this
function from webkitWebViewBaseDragEnd for already cancelled operations.

  • UIProcess/gtk/DragAndDropHandler.h:

LayoutTests:

New test added to check that the web process does not crash when multiple
DnD operations are quickly attempted over the same draggable element.

  • fast/events/drag-and-drop-link-fast-multiple-times-does-not-crash-expected.txt: Added.
  • fast/events/drag-and-drop-link-fast-multiple-times-does-not-crash.html: Added.

Added the new test to the failure expectations for mac-wk2, as there's no
suitable implementation of eventSender in place yet (see bug 42194).

  • platform/mac-wk2/TestExpectations: Added failure expectation for the new test.
5:33 AM Changeset in webkit [195667] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r195537 - REGRESSION(r192773): [GTK] maps.google.com unresponsive/stalls since r192773
https://bugs.webkit.org/show_bug.cgi?id=153194

Reviewed by Michael Catanzaro.

In r192773 we implemented the JavaScriptCore garbage collector
timers for the GTK+ port. Those timers schedule sources in the
current thread default main context, but JS web worker threads
implementation doesn't use WTF::RunLoop, but its own WorkerRunLoop
class that doesn't create a GMainContext for the new thread. This
means that for web sites using workers, we are now doing garbage
collection of worker VMs in the main thread which ends up in a
deadlock at some point. We need to ensure that worker threads
create a GMainContext and push it as the default one for the
thread before the WorkerGlobalScope is created. This way when the
worker Heap is created, the GC timers use the right context to
schedule their sources. And then we need to check if there are
sources pending in the thread main context on every worker run
loop iteration.

  • workers/WorkerRunLoop.cpp:

(WebCore::WorkerRunLoop::runInMode):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::workerThread):

5:31 AM Changeset in webkit [195666] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r195511 - [GTK] Fix media controls displaying without controls attribute
https://bugs.webkit.org/show_bug.cgi?id=152500

Media controls is not displayed without controls attribute by default
when the video element has text track. It'll be displayed on fullscreen
regardless of controls attribute.

Patch by Wonchul Lee <wonchul.lee@collabora.co.uk> on 2016-01-23
Reviewed by Michael Catanzaro.

Source/WebCore:

  • Modules/mediacontrols/mediaControlsGtk.js:

(ControllerGtk.prototype.shouldHaveControls):
(ControllerGtk.prototype.reconnectControls):
(ControllerGtk.prototype.removeControls):
(ControllerGtk.prototype.configureControls): Deleted.

LayoutTests:

  • media/video-controls-no-display-with-text-track-expected.txt: Added.
  • media/video-controls-no-display-with-text-track.html: Added.
5:23 AM Changeset in webkit [195665] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r195453 - Elements with overflow and border-radius don't show in multicolumn properly.
https://bugs.webkit.org/show_bug.cgi?id=152920

Reviewed by Simon Fraser.

Source/WebCore:

Added new test in fast/multicol.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::convertToLayerCoords):
(WebCore::RenderLayer::offsetFromAncestor):
(WebCore::RenderLayer::clipToRect):

  • rendering/RenderLayer.h:

Make sure the crawl up the containing block chain to apply clips properly offsets
to account for columns. convertToLayerCoords could already handle this, so
offsetFromAncestor now takes the same extra argument (whether or not to adjust for
columns) that convertToLayerCoords does.

LayoutTests:

  • fast/multicol/border-radius-overflow-columns-expected.html: Added.
  • fast/multicol/border-radius-overflow-columns.html: Added.
5:21 AM Changeset in webkit [195664] by Carlos Garcia Campos
  • 9 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r195445 - REGRESSION (r168244): Content in horizontal-bt page is offset such that only the end is viewable and there is a white gap at the top
https://bugs.webkit.org/show_bug.cgi?id=136019

Reviewed by Dan Bernstein.

Source/WebCore:

In horizontal-bt documents (where the page starts scrolled to the bottom, and scrolling up goes into negative scroll positions),
the position of the root content layer would be set incorrectly by the scrolling thread, resulting in misplaced
content.

Fix by having the renamed "yPositionForRootContentLayer" take scroll origin into
account, and being more consistent about using scrollOrigin to position this layer.

Test: fast/scrolling/programmatic-horizontal-bt-document-scroll.html

  • page/FrameView.cpp:

(WebCore::FrameView::yPositionForFooterLayer): Moved
(WebCore::FrameView::positionForRootContentLayer): Take scrollOrigin, and subtract it from the computed value.
(WebCore::FrameView::yPositionForRootContentLayer): Renamed.

  • page/FrameView.h:
  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll): We've already pushed the new scrollPosition onto the FrameView,
so we can just use the member function to compute the positionForContentsLayer.

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition): This is the bug fix; FrameView::positionForRootContentLayer()
now takes scrollOrigin into account.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateRootLayerPosition): Rather than using the documentRect, position the root content layer
in terms of the scroll origin (which is -documentRect.location()).

Source/WebKit2:

Now call frameView.positionForRootContentLayer(), and add a FIXME questioning the
behavior in horizontal b-t documents. However, this code isn't hit now that we always
do extended backgrounds, so never have shadow layers.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::shadowLayerPositionForFrame):

LayoutTests:

Test that scrolls a horizontal-bt document.

  • fast/scrolling/programmatic-horizontal-bt-document-scroll-expected.html: Added.
  • fast/scrolling/programmatic-horizontal-bt-document-scroll.html: Added.
4:34 AM Changeset in webkit [195663] by Carlos Garcia Campos
  • 13 edits
    4 adds in releases/WebKitGTK/webkit-2.10

Merge r195411 - A crash reproducible in Path::isEmpty() under RenderSVGShape::paint()
https://bugs.webkit.org/show_bug.cgi?id=149613

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-01-21
Reviewed by Darin Adler.
Source/WebCore:

When RenderSVGRoot::layout() realizes its layout size has changed and
it has resources which have relative sizes, it marks all the clients of
the resources for invalidates regardless whether they belong to the
same RenderSVGRoot or not. But it reruns the layout only for its children.
If one of these clients comes before the current RenderSVGRoot in the render
tree, ee end up having renderer marked for invalidation at rendering time.
This also prevents scheduling the layout if the same renderer is marked
for another invalidation later. We prevent this because we do not want
to schedule another layout for a renderer which is already marked for
invalidation. This can cause crash if the renderer is an RenderSVGPath.

The fix is to mark "only" the clients of a resource which belong to the
same RenderSVGRoot of the resource. Also we need to run the layout for
all the resources which belong to different RenderSVGRoots before running
the layout for an SVG renderer.

Tests: svg/custom/filter-update-different-root.html

svg/custom/pattern-update-different-root.html

  • rendering/svg/RenderSVGResourceContainer.cpp:

(WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
We should not mark any client outside the current root for invalidation

  • rendering/svg/RenderSVGResourceContainer.h: Remove unneeded private keyword.
  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::addResourceForClientInvalidation):
Code clean up; use findTreeRootObject() instead of repeating the same code.

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::isEmpty): Avoid crashing if RenderSVGShape::isEmpty()
is called before calling RenderSVGShape::layout().

  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::layout): findTreeRootObject() now returns a pointer.

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::findTreeRootObject): I do think nothing
guarantees that an SVG renderer has to have an RenderSVGRoot in its
ancestors. So change this function to return a pointer. Also Provide
the non-const version of this function.

(WebCore::SVGRenderSupport::layoutDifferentRootIfNeeded): Runs the layout
if needed for all the resources which belong to different RenderSVGRoots.

(WebCore::SVGRenderSupport::layoutChildren): Make sure all the renderer's
resources which belong to different RenderSVGRoots are laid out before
running the layout for this renderer.

  • rendering/svg/SVGRenderSupport.h: Remove a mysterious comment.
  • rendering/svg/SVGResources.cpp:

(WebCore::SVGResources::layoutDifferentRootIfNeeded): Run the layout for
all the resources which belong to different RenderSVGRoots outside the
context of their RenderSVGRoots.

  • rendering/svg/SVGResources.h:

(WebCore::SVGResources::clipper):
(WebCore::SVGResources::markerStart):
(WebCore::SVGResources::markerMid):
(WebCore::SVGResources::markerEnd):
(WebCore::SVGResources::masker):
(WebCore::SVGResources::filter):
(WebCore::SVGResources::fill):
(WebCore::SVGResources::stroke):
Code clean up; use nullptr instead of 0.

LayoutTests:

When running the layout of an SVG root and it has resources which are
referenced by clients in other SVG roots, make sure we run the layout
for these resources before running the layout for their clients.

  • svg/custom/filter-update-different-root-expected.html: Added.
  • svg/custom/filter-update-different-root.html: Added.

Without this patch this test crashes because we paint a dirty RenderSVGShape.

  • svg/custom/pattern-update-different-root-expected.html: Added.
  • svg/custom/pattern-update-different-root.html: Added.

Without this patch this test works fine but it is good to have it to catch
cases where the SVG root needs to run re-layout for its children resources
and hence their clients if its size has changed.

  • svg/custom/unicode-in-tspan-multi-svg-crash-expected.txt:
  • svg/custom/unicode-in-tspan-multi-svg-crash.html:

This test was ported from Blink in http://trac.webkit.org/changeset/166420.
The expectation of this test was changed in Blink:
https://src.chromium.org/viewvc/blink?revision=158480&view=revision.

4:28 AM Changeset in webkit [195662] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r195397 - http://victordarras.fr/cssgame/ doesn't work in Safari.
https://bugs.webkit.org/show_bug.cgi?id=153285
<rdar://problem/24212369>

Reviewed by Tim Horton.

This patch adds support for hittesting ClipPathOperation::Reference.

Source/WebCore:

Tests: svg/clip-path/hittest-clip-path-reference-miss.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::nodeAtPoint):

  • rendering/RenderObject.h:

(WebCore::RenderObject::isSVGResourceClipper):

  • rendering/svg/RenderSVGResourceClipper.h:

(isType):

LayoutTests:

  • svg/clip-path/hittest-clip-path-reference-miss-expected.html: Added.
  • svg/clip-path/hittest-clip-path-reference-miss.html: Added.
2:32 AM Changeset in webkit [195661] by Carlos Garcia Campos
  • 6 edits
    5 adds
    2 deletes in trunk/Source/WebCore

[GTK][EFL] Rename ScrollAnimationNone as ScrollAnimationSmooth
https://bugs.webkit.org/show_bug.cgi?id=153481

Reviewed by Simon Fraser.

ScrollAnimationNone has always been used by EFL and GTK ports to
implement smooth scrolling. I think it should be possible for
other scroll animators to implement smooth scrolling or even
implement other kind of scroll animations. For example, in the
future I would like to have kinetic scrolling implemented for the
GTK+ port to match all other GTK+ application and decide at
runtime between different animations without having to use a
different scroll animator class. So, this patch also moves the
smooth scrolling animation implementation to its own class
ScrollAnimationSmooth that impements an interface ScrollAnimation
that could be used to implement other animations. This will allow
the GTK+ port to add its own scroll animator class and still
support smooth scrolling sharing the code with the
ScrollAnimationSmooth.

  • PlatformEfl.cmake: Add new files to compilation and remove ScrollAnimationNone.
  • PlatformGTK.cmake: Ditto.
  • platform/ScrollAnimation.h: Added.

(WebCore::ScrollAnimation::serviceAnimation):
(WebCore::ScrollAnimation::ScrollAnimation):

  • platform/ScrollAnimationSmooth.cpp: Added.

(WebCore::ScrollAnimationSmooth::ScrollAnimationSmooth):
(WebCore::ScrollAnimationSmooth::scroll):
(WebCore::ScrollAnimationSmooth::stop):
(WebCore::ScrollAnimationSmooth::updateVisibleLengths):
(WebCore::ScrollAnimationSmooth::setCurrentPosition):
(WebCore::ScrollAnimationSmooth::serviceAnimation):
(WebCore::ScrollAnimationSmooth::~ScrollAnimationSmooth):
(WebCore::curveAt):
(WebCore::attackCurve):
(WebCore::releaseCurve):
(WebCore::coastCurve):
(WebCore::curveIntegralAt):
(WebCore::attackArea):
(WebCore::releaseArea):
(WebCore::getAnimationParametersForGranularity):
(WebCore::ScrollAnimationSmooth::updatePerAxisData):
(WebCore::ScrollAnimationSmooth::animateScroll):
(WebCore::ScrollAnimationSmooth::animationTimerFired):
(WebCore::ScrollAnimationSmooth::startNextTimer):
(WebCore::ScrollAnimationSmooth::animationTimerActive):

  • platform/ScrollAnimationSmooth.h: Added.
  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::scroll):
(WebCore::ScrollAnimator::scrollToOffsetWithoutAnimation):
(WebCore::ScrollAnimator::setCurrentPosition):
(WebCore::ScrollAnimator::updateActiveScrollSnapIndexForOffset):
(WebCore::ScrollAnimator::notifyPositionChanged):
(WebCore::ScrollAnimator::scrollOffsetOnAxis):

  • platform/ScrollAnimator.h:

(WebCore::ScrollAnimator::ScrollAnimator::currentPosition):

  • platform/ScrollAnimatorNone.cpp: Removed.
  • platform/ScrollAnimatorNone.h: Removed.
  • platform/ScrollAnimatorSmooth.cpp: Added.

(WebCore::ScrollAnimator::create):
(WebCore::ScrollAnimatorSmooth::ScrollAnimatorSmooth):
(WebCore::ScrollAnimatorSmooth::~ScrollAnimatorSmooth):
(WebCore::ScrollAnimatorSmooth::scroll):
(WebCore::ScrollAnimatorSmooth::scrollToOffsetWithoutAnimation):
(WebCore::ScrollAnimatorSmooth::cancelAnimations):
(WebCore::ScrollAnimatorSmooth::serviceScrollAnimations):
(WebCore::ScrollAnimatorSmooth::willEndLiveResize):
(WebCore::ScrollAnimatorSmooth::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorSmooth::didAddHorizontalScrollbar):

  • platform/ScrollAnimatorSmooth.h: Added.
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::immediateScrollToPosition):
(WebCore::ScrollAnimatorMac::immediateScrollBy):

2:28 AM Changeset in webkit [195660] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

Overlay scrollbars should always use the whole contents
https://bugs.webkit.org/show_bug.cgi?id=153352

Reviewed by Michael Catanzaro.

In case of having both horizontal and vertical scrollbars, the
scrollbars respect the scroll corner. That looks good for legacy
scrollbars that show the track, but with the overlay indicators
it looks weird that the indicator stops so early before the end of
the contents, giving the impression that there's something else to
scroll. This happens because the scroll corner is transparent, so
it's not obvious that's the scroll corner. It also happens with
the text areas having a resizer. Legacy scrollbars take into
account the resizer, which is good, but I expect overlay
scrollbars to be rendered also over the resizer. The resizer takes
precedence so you can still click and drag to resize the text area.
In the case of main frame scrollbars we are indeed returning an
empty rectangle from ScrollView::scrollCornerRect() when using
overlay scrollbars, but when calculating the size of the
scrollbars we are using the actual width/height instead of the
occupied with/height. For other scrollbars
RenderLayer::scrollCornerRect() is not checking whether scrollbars
are overlay or not and we are always returning a scroll corner
rectangle when scrollbars are present.

  • platform/ScrollView.cpp:

(WebCore::ScrollView::updateScrollbars): Use the occupied
width/height when calculating the space the one scrollbar
should leave for the other.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollCornerRect): Return an empty
rectangle when using overlay scrollbars.

2:24 AM Changeset in webkit [195659] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

ScrollAnimator is not notified when mouse entered, moved or exited a RenderListBox
https://bugs.webkit.org/show_bug.cgi?id=153398

Reviewed by Michael Catanzaro.

EvenHandler is checking whether the enclosing layer of a node is
registered as scrollable area of its frame view. That doesn't work
for list boxes, because they are the scrollable area
themselves. Also when entering a list box the node under mouse is
not usually the list box itself, but any of its children, a
HTMLOptionElement or a HTMLOptGroupElement. Instead of comparing
layers, we should find the enclosing scrollable area of the target
elements and compare them to decide whether the mouse has entered,
left or moved a scrollable area.

  • page/EventHandler.cpp:

(WebCore::enclosingScrollableArea): Return the enclosing
scrollable area of the given node. If the node doesn't have a
renderer, it traverses its parents. If the renderer is a
RenderListBox it is returned, otherwhise the enclosing layer is
returned.
(WebCore::EventHandler::mouseMoved): Use enclosingScrollableArea.
(WebCore::EventHandler::updateMouseEventTargetNode): Ditto.

Jan 26, 2016:

11:43 PM Changeset in webkit [195658] by jmarcell@apple.com
  • 4 edits
    1 add in trunk/Tools

Sort incoming commits via date instead of revision number.
https://bugs.webkit.org/show_bug.cgi?id=153467

Reviewed by Alexey Proskuryakov.

Future Trac instances may use Git or other revision control systems where we cannnot rely on the revision number
for sorting revisions. Instead we use the commit date to sort revisions chronologically.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Trac.js:

(Trac.prototype._loaded): Sort via date instead of revision number.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/MockTrac.js:

(MockTrac): Fix up the mock data to look more like real-world data.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/test-fixture-trac-rss.xml: Added.

Fake RSS feed that adds three more commits.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js: Added unit tests to test

Trac._loaded().

11:13 PM Changeset in webkit [195657] by weinig@apple.com
  • 2 edits in trunk/Source/WebKit2

Attempt to force a rebuild.

  • DerivedSources.make:
10:39 PM Changeset in webkit [195656] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

Try touching DerivedSources.make to force rebuilding.

  • DerivedSources.make:
  • page/DOMWindow.idl:
10:27 PM Changeset in webkit [195655] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Try to force a rebuild.

  • page/DOMWindow.idl:
10:10 PM Changeset in webkit [195654] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] When lowering B3 to Air, preferRightForResult() should prefer values from the same block
https://bugs.webkit.org/show_bug.cgi?id=153477

Reviewed by Filip Pizlo.

In cases like this:

Block #0

@1 = something
@2 = Jump #1

Block #1

@3 = something else
@4 = Add(@3, @1)
...
@42 = Branch(@x, #1, #2)

B3LowerToAir would pick @1 for the argument copied
for what goes into the UseDef side of Add.

This created a bunch of moves that could never be coalesced.
In Kraken's imaging-desaturate, there were enough Moves to slow
down the hot loop.

Ideally, we should not use UseCount for lowering. We should use
the real liveness for preferRightForResult(), and a loop-weighted
use-count for effective addresses. The problem is keeping the cost
low for those simple helpers.

In this patch, I went with a simple heuristic: prioritize the value
defined in the same block for UseDef.

There is one other way that would be cheap but a bit invasive:
-Get rid of UseDef.
-Make every ops, 3 operands.
-Tell the register allocator to attempt aliasing of the 2 uses

with the def.

-If the allocator fails, just add a move as needed.

For now, the simple heuristic seems okay for the cases have.

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::preferRightForResult):

7:49 PM Changeset in webkit [195653] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Tail duplication should break critical edges first
https://bugs.webkit.org/show_bug.cgi?id=153530

Reviewed by Benjamin Poulain.

This speeds up Octane/boyer.

  • b3/B3DuplicateTails.cpp:
7:45 PM Changeset in webkit [195652] by Chris Dumez
  • 5 edits in trunk

fast/history/page-cache-webdatabase-no-transaction-db.html flakily crashes
https://bugs.webkit.org/show_bug.cgi?id=153525

Reviewed by Andreas Kling.

Source/WebCore:

The test was crashing because DatabaseThread::hasPendingDatabaseActivity()
was accessing m_openDatabaseSet from the main thread without any locking
mechanism. This is an issue because m_openDatabaseSet is altered by the
database thread.

No new tests, already covered by fast/history/page-cache-webdatabase-no-transaction-db.html.

  • Modules/webdatabase/DatabaseThread.cpp:

(WebCore::DatabaseThread::databaseThread):
(WebCore::DatabaseThread::recordDatabaseOpen):
(WebCore::DatabaseThread::recordDatabaseClosed):
(WebCore::DatabaseThread::hasPendingDatabaseActivity):

  • Modules/webdatabase/DatabaseThread.h:

LayoutTests:

Unskip fast/history/page-cache-webdatabase-no-transaction-db.html now
that it no longer crashes.

7:16 PM Changeset in webkit [195651] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebKit2

REGRESSION (r194557): Keyboard shortcuts stop working after the WKWebView is unparented and reparented
https://bugs.webkit.org/show_bug.cgi?id=153492
<rdar://problem/24138989>

Reviewed by Dan Bernstein.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView canBecomeFirstResponder]):
(-[WKContentView becomeFirstResponder]):
(-[WKContentView resignFirstResponder]):
When WKWebView is unparented, WKContentView will attempt to resignFirstResponder upwards,
first asking WKWebView. After r194557, WKWebView will accept first responder and forward
it on to the WKContentView, which will happily accept it again, despite being the view
that's trying to resign. This will cause us to completely lose first responder,
where it was actually supposed to propagate up above WKWebView to the client.

Keep track of when WKContentView is resigning first responder, and don't
let it become first responder while it is doing so, breaking the cycle.

  • UIProcess/ios/WKContentView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView canBecomeFirstResponder]):
If the WKContentView is currently in the process of resigning first responder status,
we shouldn't accept it, because clients expect to receive it.

7:05 PM Changeset in webkit [195650] by commit-queue@webkit.org
  • 10 edits
    1 add in trunk

Source/WebKit2:
Implement wildcard matching for plug-in policy host.
https://bugs.webkit.org/show_bug.cgi?id=153090

Patch by I-Ting Liu <iting_liu@apple.com> on 2016-01-26
Reviewed by Darin Adler.

WebPlatformStrategies decides the plug-in load policy for a host by looking
for a matched hostname in the list of plug-in policies sent by Safari. This
patch adds support for wildcard matching -- if there's a policy with hostname
"*.example.com," the policy for "foo.example.com" would be replaced with that
of "*.example.com" if there's no policy for this hostname. If there is more
than one wildcard hostname, the host with the longest wildcard hostname will
be used.

This patch adds a helper function in StringUtilites that matches a string to
another string, which may contain wildcard ('*') characters.

  • Platform/mac/StringUtilities.h:
  • Add WebKit::stringMatchesWildcardString.
  • Remove #if ENABLE(TELEPHONE_NUMBER_DETECTION) && PLATFORM(MAC) flag so that

the compiler allows exposing StringUtilities.h.

  • Add #if OBJC to allow the file to be included in WebPltformStrategies.cpp
  • Platform/mac/StringUtilities.mm:

(WebKit::stringMatchesWildcardString):
Return true if the entire first given String matches the second. The second string
may contain wildcard characters.
(WebKit::wildcardRegexPatternString):
Return the regex expression from a wildcard string by replacing the wildcard
character ('*') with (".*") and escaping regular expression metacharacters.
(WebKit::formattedPhoneNumberString):
To expose StringUtilities.h for tests, we removed #if ENABLE(TELEPHONE_NUMBER_DETECTION)
&& PLATFORM(MAC) flag in the header. Add a function that returns nil for
#if !(ENABLE(TELEPHONE_NUMBER_DETECTION) && PLATFORM(MAC)) to fix the removal
of the flag in the header file.

  • WebKit2.xcodeproj/project.pbxproj:

Change the file attribute of StringUtilities.h from Project to Private for
testing in TestWebKitAPI.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::longestMatchedWildcardHostForHost):
Return the wildcard hostname whose matched substring with the host is the longest.
(WebKit::WebPlatformStrategies::replaceHostWithMatchedWildcardHost):
Replace the look-up host with a matched wildcard host if there is a match and that
the matched wildcard host's plug-in identifier is the same as that of the host.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHost):
Try to replace the look-up host with the wildcard host if there's no policy for
the host. Restructure the function to reduce hashmap lookup.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Declare the methods.

Source/WTF:
Implement wildcard matching for plug-in policy host.
https://bugs.webkit.org/show_bug.cgi?id=153090

Patch by I-Ting Liu <iting_liu@apple.com> on 2016-01-26
Reviewed by Darin Adler.

  • wtf/text/AtomicString.h:

(WTF::AtomicString::AtomicString):
Add bridge to allow compilation.

Tools:
Add a test for WebKit::stringMatchesWildcardString.
https://bugs.webkit.org/show_bug.cgi?id=153090

Patch by I-Ting Liu <iting_liu@apple.com> on 2016-01-26
Reviewed by Darin Adler.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

Add the file to the project.

  • TestWebKitAPI/Tests/WebKit2/mac/StringUtilities.mm: Added.

(TestWebKitAPI::TEST):
Test that a string matches another string that may contain wildcard characters.

6:41 PM Changeset in webkit [195649] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebCore

Unreviewed CMake build fix after r195644.

  • PlatformMac.cmake:
6:25 PM Changeset in webkit [195648] by beidson@apple.com
  • 5 edits in trunk

Modern IDB: Key generator support for SQLite backend.
https://bugs.webkit.org/show_bug.cgi?id=153427

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Existing failing tests now pass, others improved).

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetKeyGeneratorValue):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedSetKeyGeneratorValue):
(WebCore::IDBServer::SQLiteIDBBackingStore::generateKeyNumber):
(WebCore::IDBServer::SQLiteIDBBackingStore::revertGeneratedKeyNumber):
(WebCore::IDBServer::SQLiteIDBBackingStore::maybeUpdateKeyGeneratorNumber):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
6:16 PM Changeset in webkit [195647] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Remove -d flag from make invocation.

  • WebKit2.xcodeproj/project.pbxproj:
5:53 PM Changeset in webkit [195646] by Simon Fraser
  • 8 edits
    2 adds in trunk

Allow canvas to use display-list drawing for testing
https://bugs.webkit.org/show_bug.cgi?id=153475

Reviewed by Dean Jackson.

Source/WebCore:

Optionally have 2D <canvas> use display-list drawing, which is only enabled
via Internals for now.

Support displayListAsText() and replayDisplayListAsText() on canvas, so we can
use it to test playback optimizations. [Note that displayListAsText() always
returns an empty string currently, because the display list is cleared when the
canvas is painted to the page.]

Display list rendering is implemented by giving CanvasRenderingContext2D an
optional DisplayListDrawingContext, which packages up a display list, recorder
and recording context. The existing paintRenderingResultsToCanvas() is overridden
to replay the recorded display list into the primary canvas context.

Tracked replay display lists are stored in a static map, keyed by the CanvasRenderingContext2D.

Test: displaylists/canvas-display-list.html

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::HTMLCanvasElement):
(WebCore::HTMLCanvasElement::getContext):
(WebCore::HTMLCanvasElement::paint):
(WebCore::HTMLCanvasElement::setUsesDisplayListDrawing):
(WebCore::HTMLCanvasElement::setTracksDisplayListReplay):
(WebCore::HTMLCanvasElement::displayListAsText):
(WebCore::HTMLCanvasElement::replayDisplayListAsText):

  • html/HTMLCanvasElement.h:
  • html/canvas/CanvasRenderingContext.h:
  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::DisplayListDrawingContext::DisplayListDrawingContext):
(WebCore::contextDisplayListMap):
(WebCore::CanvasRenderingContext2D::~CanvasRenderingContext2D):
(WebCore::CanvasRenderingContext2D::setTracksDisplayListReplay):
(WebCore::CanvasRenderingContext2D::displayListAsText):
(WebCore::CanvasRenderingContext2D::replayDisplayListAsText):
(WebCore::CanvasRenderingContext2D::paintRenderingResultsToCanvas):
(WebCore::CanvasRenderingContext2D::drawingContext):
(WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D): Deleted.

  • html/canvas/CanvasRenderingContext2D.h:
  • testing/Internals.cpp:

(WebCore::Internals::setElementUsesDisplayListDrawing):
(WebCore::Internals::setElementTracksDisplayListReplay):
(WebCore::Internals::displayListForElement):
(WebCore::Internals::replayDisplayListForElement):

LayoutTests:

Simple canvas-based display list test.

  • displaylists/canvas-display-list-expected.txt: Added.
  • displaylists/canvas-display-list.html: Added.
5:31 PM Changeset in webkit [195645] by commit-queue@webkit.org
  • 2 edits
    4 deletes in trunk/Source/WebInspectorUI

Web Inspector: Remove unused FramesLarge.png variants, only the smaller Frames icon is used for the Rendering Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=153523

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-01-26
Reviewed by Timothy Hatcher.

  • UserInterface/Images/FramesLarge.png: Removed.
  • UserInterface/Images/FramesLarge@2x.png: Removed.
  • UserInterface/Images/gtk/FramesLarge.png: Removed.
  • UserInterface/Images/gtk/FramesLarge@2x.png: Removed.
  • UserInterface/Views/TimelineIcons.css:

(.rendering-frame-icon.large .icon): Deleted.

5:29 PM Changeset in webkit [195644] by Joseph Pecoraro
  • 19 edits
    5 adds in trunk/Source

Generalize ResourceUsageData gathering to be used outside of ResourceUsageOverlay
https://bugs.webkit.org/show_bug.cgi?id=153509
<rdar://problem/24354291>

Reviewed by Andreas Kling.

Source/JavaScriptCore:

  • heap/Heap.h:
  • heap/HeapInlines.h:

(JSC::Heap::didAllocateBlock):
(JSC::Heap::didFreeBlock):
Rename the ENABLE flag.

Source/WebCore:

  • CMakeLists.txt:
  • PlatformMac.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • page/Page.cpp:
  • page/Page.h:
  • page/Settings.cpp:
  • page/Settings.h:
  • page/ResourceUsageOverlay.cpp:
  • page/ResourceUsageOverlay.h:

Add new files to the build and updated ENABLE flag name.

  • page/ResourceUsageData.cpp: Added.

(WebCore::ResourceUsageData::ResourceUsageData):

  • page/ResourceUsageData.h: Added.

(WebCore::MemoryCategoryInfo::MemoryCategoryInfo):
Platform agnostic resource data that may be used by multiple clients,
such as the ResourceUsageOverlay and later the Inspector.

  • page/ResourceUsageThread.h: Added.
  • page/ResourceUsageThread.cpp: Added.

(WebCore::ResourceUsageThread::ResourceUsageThread):
(WebCore::ResourceUsageThread::singleton):
(WebCore::ResourceUsageThread::addObserver):
(WebCore::ResourceUsageThread::removeObserver):
(WebCore::ResourceUsageThread::waitUntilObservers):
(WebCore::ResourceUsageThread::notifyObservers):
(WebCore::ResourceUsageThread::createThreadIfNeeded):
(WebCore::ResourceUsageThread::threadCallback):
(WebCore::ResourceUsageThread::threadBody):
Platform agnostic resource usage thread that can be used to gather data
into a ResourceUsageData struct on a background thread and notify observers
on the main thread. Platforms need only implement ResourceUsageThread::platformThreadBody
to populate the ResourceUsageData struct with data.

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::HistoricMemoryCategoryInfo::HistoricMemoryCategoryInfo):
(WebCore::HistoricResourceUsageData::HistoricResourceUsageData):
(WebCore::historicUsageData):
(WebCore::appendDataToHistory):
(WebCore::ResourceUsageOverlay::platformInitialize):
(WebCore::ResourceUsageOverlay::platformDestroy):
(WebCore::drawMemHistory):
(WebCore::drawMemoryPie):
(WebCore::ResourceUsageOverlay::platformDraw):
Move CPU and memory resource usage calculations to ResourceUsageThread.
The overlay adds itself as an observer, and builds its RingBuffer list
of data from notifications from the ResourceUsageThread. Renamed
some of the fields.

  • page/cocoa/ResourceUsageThreadCocoa.mm: Added.

(WebCore::vmPageSize):
(WebCore::TagInfo::TagInfo):
(WebCore::pagesPerVMTag):
(WebCore::cpuUsage):
(WebCore::categoryForVMTag):
(WebCore::ResourceUsageThread::platformThreadBody):
Extracted from ResourceUsageOverlayCocoa.

  • page/scrolling/ScrollingThread.cpp:

(WebCore::ScrollingThread::dispatch):
Drive-by, don't call singleton again, we already have the result.

Source/WebKit2:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):
Rename the ENABLE flag.

Source/WTF:

  • wtf/Platform.h:

Rename the ENABLE flag.

5:22 PM Changeset in webkit [195643] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Use initializers in HTMLCanvasElement
https://bugs.webkit.org/show_bug.cgi?id=153472

Reviewed by Michael Catanzaro.

Use initializers, and re-order member variables for better packing.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::HTMLCanvasElement):

  • html/HTMLCanvasElement.h:
5:16 PM Changeset in webkit [195642] by Chris Dumez
  • 3 edits
    2 adds in trunk

Setting HTMLInputElement.value to null to set its value to the empty string
https://bugs.webkit.org/show_bug.cgi?id=153519

Reviewed by Ryosuke Niwa.

Source/WebCore:

Setting HTMLInputElement.value to null to set its value to the empty string:

WebKit would previously unset the value attribute instead, which caused
it to fallback to input.defaultValue if set.

Firefox and Chrome behave correctly.

Test: fast/dom/HTMLInputElement/input-value-set-null.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setValue):

LayoutTests:

Add a layout test to make sure that setting HTMLInputElement.value to null
actually sets its value to the empty string.

  • fast/dom/HTMLInputElement/input-value-set-null-expected.txt: Added.
  • fast/dom/HTMLInputElement/input-value-set-null.html: Added.
5:11 PM Changeset in webkit [195641] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

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

broke more than it fixed (Requested by thorton on #webkit).

Reverted changeset:

"REGRESSION (r194557): Keyboard shortcuts stop working after
the WKWebView is unparented and reparented"
https://bugs.webkit.org/show_bug.cgi?id=153492
http://trac.webkit.org/changeset/195602

5:10 PM Changeset in webkit [195640] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[B3] Fix control reaches end of non-void function GCC warning after r195139
https://bugs.webkit.org/show_bug.cgi?id=153426

Reviewed by Michael Catanzaro.

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::cooled):

4:57 PM Changeset in webkit [195639] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

testb3 and testAir should be compiled under -O0
https://bugs.webkit.org/show_bug.cgi?id=153520

Reviewed by Benjamin Poulain.

4:52 PM Changeset in webkit [195638] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, temporarily skip fast/history/page-cache-webdatabase-no-transaction-db.html
https://bugs.webkit.org/show_bug.cgi?id=153525

The test flakily crashes, skip it until I can fix it.

4:49 PM Changeset in webkit [195637] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

B3's integer range analysis should know that Mul'ing two sufficiently small numbers will yield a number that still has a meaningful range
https://bugs.webkit.org/show_bug.cgi?id=153518

Reviewed by Benjamin Poulain.

Octane/encrypt had an addition overflow check that can be proved away by being sufficiently
sneaky about the analysis of adds, multiplies, and shifts.

I almost added these optimizations to the DFG integer range optimization phase. That phase is
very complicated. B3's integer range analysis is trivial. So I added it to B3. Eventually
we'll want this same machinery in the DFG also.

8% speed-up on Octane/encrypt.

  • b3/B3ReduceStrength.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::dump): Dumping a constant value's name now dumps its value. This makes a huge difference for reading IR.
(JSC::B3::Value::cloneImpl):
(JSC::B3::Value::deepDump):

4:33 PM Changeset in webkit [195636] by Ryan Haddad
  • 2 edits
    1 delete in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/html/semantics/interfaces.html for ios-simulator after support
for HTMLDataElement was added in r195627, removing ios-simulator-wk2 specific result.
https://bugs.webkit.org/show_bug.cgi?id=153459

Unreviewed test gardening.

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt: Removed.
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:
4:29 PM Changeset in webkit [195635] by andersca@apple.com
  • 8 edits in trunk/Source

WebKitAdditions should be able to modify derived source rules
https://bugs.webkit.org/show_bug.cgi?id=153514

Reviewed by Tim Horton.

Source/WebCore:

  • DerivedSources.make:

Include WebCoreDerivedSourcesAdditions.make.

  • WebCore.xcodeproj/project.pbxproj:

Pass our WebKitAdditions paths as include paths to make.

Source/WebKit2:

  • Configurations/BaseTarget.xcconfig:
  • Configurations/WebKit.xcconfig:

Set WEBKITADDITIONS_HEADER_SEARCH_PATHS.

  • DerivedSources.make:

Move the path computation earlier and include WebKitDerivedSourcesAdditions.make.

  • WebKit2.xcodeproj/project.pbxproj:

Pass our WebKitAdditions paths as include paths to make.

4:08 PM Changeset in webkit [195634] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skipping tests added with r195625 that are unsupported on ios-simulator

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
4:02 PM Changeset in webkit [195633] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.17.0.2/Source/WTF

Merged r195629. rdar://problem/24322314

4:01 PM Changeset in webkit [195632] by bshafiei@apple.com
  • 11 edits in tags/Safari-602.1.17.0.2

Merged r195582. rdar://problem/24356482

3:59 PM Changeset in webkit [195631] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.17.0.2/Source

Versioning.

3:56 PM Changeset in webkit [195630] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.17.0.2

New tag.

3:46 PM Changeset in webkit [195629] by achristensen@apple.com
  • 2 edits in trunk/Source/WTF

Make HashTable iterators STL iterators compatible
https://bugs.webkit.org/show_bug.cgi?id=153512

Patch by Yusuke Suzuki <Yusuke Suzuki> on 2016-01-26
Reviewed by Alex Christensen.

While r178581 makes many hash table iterators STL compatible, still several iterators are not.
This patch fixes that; inheriting std::iterator correctly to meet STL iterator requirements (like iterator_category etc.)
It could recover Windows build failure.

  • wtf/HashTable.h:
3:22 PM Changeset in webkit [195628] by Chris Dumez
  • 3 edits
    3 adds in trunk

document.open() / write() should be prevented in beforeunload event handlers
https://bugs.webkit.org/show_bug.cgi?id=153432

Reviewed by Ryosuke Niwa.

Source/WebCore:

document.open() / write() should be prevented in beforeunload event handlers:

Test: fast/frames/page-beforeunload-document-open.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::dispatchBeforeUnloadEvent):

LayoutTests:

Add a layout test to check that document.open() / write() is indeed
prevented inside 'beforeunload' event handlers.

  • fast/frames/page-beforeunload-document-open-expected.txt: Added.
  • fast/frames/page-beforeunload-document-open.html: Added.
  • fast/frames/resources/page-beforeunload-document-open-frame.html: Added.
3:21 PM Changeset in webkit [195627] by Chris Dumez
  • 20 edits
    3 adds in trunk

Add support for HTMLDataElement
https://bugs.webkit.org/show_bug.cgi?id=153459

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline existing W3C tests now that more checks are passing.

  • web-platform-tests/dom/nodes/Node-cloneNode-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/semantics/interfaces-expected.txt:

Source/WebCore:

Add support for HTMLDataElement:
https://html.spec.whatwg.org/multipage/semantics.html#the-data-element

Firefox already supports it.

No new tests, already covered by existing tests.

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLDataElement.cpp: Added.

(WebCore::HTMLDataElement::create):
(WebCore::HTMLDataElement::HTMLDataElement):

  • html/HTMLDataElement.h: Added.
  • html/HTMLDataElement.idl: Added.
  • html/HTMLElementsAllInOne.cpp:
  • html/HTMLTagNames.in:

LayoutTests:

Rebaseline existing test now that HTMLDataElement is exposed on the
global Window object.

  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
3:14 PM Changeset in webkit [195626] by Ryan Haddad
  • 3 edits
    2 deletes in trunk

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

The test added with this change is timing out on almost every
run (Requested by ryanhaddad on #webkit).

Reverted changeset:

"Calling video.controls=true during a scrub operation cancels
scrub."
https://bugs.webkit.org/show_bug.cgi?id=153494
http://trac.webkit.org/changeset/195610

Patch by Commit Queue <commit-queue@webkit.org> on 2016-01-26

2:48 PM Changeset in webkit [195625] by beidson@apple.com
  • 6 edits
    26 adds in trunk

History.pushState causes intense memory pressure.
https://bugs.webkit.org/show_bug.cgi?id=153435

Reviewed by Sam Weinig, Oliver Hunt, and Geoff Garen.

Source/WebCore:

Tests: fast/loader/stateobjects/pushstate-frequency-iframe.html

fast/loader/stateobjects/pushstate-frequency-with-user-gesture.html
fast/loader/stateobjects/pushstate-frequency.html
fast/loader/stateobjects/replacestate-frequency-iframe.html
fast/loader/stateobjects/replacestate-frequency-with-user-gesture.html
fast/loader/stateobjects/replacestate-frequency.html
loader/stateobjects/pushstate-size-iframe.html
loader/stateobjects/pushstate-size.html
loader/stateobjects/replacestate-size-iframe.html
loader/stateobjects/replacestate-size.html

Add restrictions on how frequently push/replaceState can be called,
as well as how much of a cumulative payload they can deliver.

  • bindings/js/JSHistoryCustom.cpp:

(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):

  • page/History.cpp:

(WebCore::History::stateObjectAdded):

  • page/History.h:

LayoutTests:

  • fast/loader/stateobjects/pushstate-frequency-expected.txt: Added.
  • fast/loader/stateobjects/pushstate-frequency-iframe-expected.txt: Added.
  • fast/loader/stateobjects/pushstate-frequency-iframe.html: Added.
  • fast/loader/stateobjects/pushstate-frequency-with-user-gesture-expected.txt: Added.
  • fast/loader/stateobjects/pushstate-frequency-with-user-gesture.html: Added.
  • fast/loader/stateobjects/pushstate-frequency.html: Added.
  • fast/loader/stateobjects/replacestate-frequency-expected.txt: Added.
  • fast/loader/stateobjects/replacestate-frequency-iframe-expected.txt: Added.
  • fast/loader/stateobjects/replacestate-frequency-iframe.html: Added.
  • fast/loader/stateobjects/replacestate-frequency-with-user-gesture-expected.txt: Added.
  • fast/loader/stateobjects/replacestate-frequency-with-user-gesture.html: Added.
  • fast/loader/stateobjects/replacestate-frequency.html: Added.
  • fast/loader/stateobjects/resources/pushstate-iframe.html: Added.
  • fast/loader/stateobjects/resources/replacestate-iframe.html: Added.
  • loader/stateobjects/pushstate-size-expected.txt: Added.
  • loader/stateobjects/pushstate-size-iframe-expected.txt: Added.
  • loader/stateobjects/pushstate-size-iframe.html: Added.
  • loader/stateobjects/pushstate-size.html: Added.
  • loader/stateobjects/replacestate-size-expected.txt: Added.
  • loader/stateobjects/replacestate-size-iframe-expected.txt: Added.
  • loader/stateobjects/replacestate-size-iframe.html: Added.
  • loader/stateobjects/replacestate-size.html: Added.
  • loader/stateobjects/resources/pushstate-iframe.html: Added.
  • loader/stateobjects/resources/replacestate-iframe.html: Added.
2:22 PM Changeset in webkit [195624] by Ryan Haddad
  • 1 edit
    2 adds in trunk/LayoutTests

Rebaselining cssom/subpixel-offsetleft-top-width-height-values.html for ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=152308

Unreviewed test gardening.

  • platform/ios-simulator/cssom/subpixel-offsetleft-top-width-height-values-expected.txt: Added.
2:22 PM Changeset in webkit [195623] by andersca@apple.com
  • 5 edits in trunk/Source/WebKit2

Add a private WKUIDelegate method for getting a presenting view controller for a WKWebView on iOS
https://bugs.webkit.org/show_bug.cgi?id=153510

Reviewed by Dan Bernstein.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::presentingViewController):

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::presentingViewController):

2:20 PM Changeset in webkit [195622] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

It should be possible to disable FTL for a range like we disable DFG for a range
https://bugs.webkit.org/show_bug.cgi?id=153511

Reviewed by Geoffrey Garen.

  • dfg/DFGTierUpCheckInjectionPhase.cpp:

(JSC::DFG::TierUpCheckInjectionPhase::run):

  • runtime/Options.h:
2:07 PM Changeset in webkit [195621] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Shifts by an amount computed using BitAnd with a mask that subsumes the shift's own mask should be rewired around the BitAnd
https://bugs.webkit.org/show_bug.cgi?id=153505

Reviewed by Saam Barati.

Turn this: Shl(@x, BitAnd(@y, 63))
Into this: Shl(@x, @y)

It matters for Octane/crypto.

We should also stop FTL from generating such code, but even if we did that, we'd still want
this optimization in case user code did the BitAnd.

Also we can't stop the FTL from generating such code yet, because when targetting LLVM, you
must mask your shifts this way.

  • b3/B3ReduceStrength.cpp:
2:05 PM Changeset in webkit [195620] by fpizlo@apple.com
  • 24 edits
    2 moves
    2 adds in trunk/Source/JavaScriptCore

The thing that B3 uses to describe a stack slot should not be a Value
https://bugs.webkit.org/show_bug.cgi?id=153491
rdar://problem/24349446

Reviewed by Geoffrey Garen and Saam Barati.

Prior to this change, B3 represented stack slots by having a StackSlotValue that carried
two meanings:

  • It represented a stack slot.
  • It was a kind of Value for getting the base of the stack slot.

This seems like a good idea until you consider the following issues.

1) A Value can be killed if it is on an unreachable path, or if it has no effects and

nobody refers to it. But the FTL uses StackSlotValue to allocate space on the stack.
When it does this, it doesn't want it to be killed. It will dereference the object, so
killing it is a bug.

2) A premise of B3 is that it should be always legal to perform the following

transformation on a value:

value->replaceWithIdentity(insertionSet.insertValue(index, proc.clone(value)));

This inserts a new value just before the old one. The new value is a clone of the old
one. Then the old one is essentially deleted (anything that becomes an identity dies
shortly thereafter). Problem (1) prevents this from being legal, which breaks a major
premise of B3 IR.

3) A premise of B3 is that it should be always legal to perform the following

transformation on a value:

Before:

@42 = Thing(...)

After:

Branch(@doesntMatter, #yes, #no)

BB#yes:

@42_one = Thing(...)
Upsilon(@42_one, 42)
Jump(#done)

BB#no:

@42_two = Thing(...)
Upsilon(@42_two, 42)
Jump(#done)

BB#done:

@42 = Phi()

But prior to this change, such a transformation makes absolutely no sense for
StackSlot. It will "work" in the sense that the compiler will proceed undaunted, but
it will disable SSA fix-up for the cloned stack slot and we will end up allocating two
stack slots instead of one, and then we will assume that they both escape, which will
disable efficient stack allocation. Note that the moral equivalent of this
transformation could already happen due to tail duplication, and the only reason why
it's not a bug right now is that we happen to hoist stack slots to the root block. But
the whole point of our stack slots was supposed to be that they do not have to be
hoisted.

This change fixes this issue by splitting StackSlotValue into two things: SlotBaseValue,
which is a pure operation for getting the base address of a StackSlot, and StackSlot,
which is a representation of the actual stack slot. StackSlot cannot get duplicated and
can only be killed if it's anonymous. SlotBaseValue can be killed, moved, cloned,
hoisted, etc. Since it has no effects and it has a ValueKey, it's one of the most
permissive Values in the IR, just as one would hope (after all, there is actually zero
code that needs to execute to evaluate SlotBaseValue).

This fixes a crash that we saw with GuardMalloc and ASan. It also makes the IR a lot more
easy to reason about.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/B3EliminateCommonSubexpressions.cpp:
  • b3/B3FixSSA.cpp:

(JSC::B3::demoteValues):
(JSC::B3::fixSSA):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::run):
(JSC::B3::Air::LowerToAir::effectiveAddr):
(JSC::B3::Air::LowerToAir::lower):

  • b3/B3Opcode.cpp:

(WTF::printInternal):

  • b3/B3Opcode.h:
  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::setBlockOrderImpl):
(JSC::B3::Procedure::addStackSlot):
(JSC::B3::Procedure::addAnonymousStackSlot):
(JSC::B3::Procedure::clone):
(JSC::B3::Procedure::dump):
(JSC::B3::Procedure::blocksInPostOrder):
(JSC::B3::Procedure::deleteStackSlot):
(JSC::B3::Procedure::deleteValue):
(JSC::B3::Procedure::calleeSaveRegisters):
(JSC::B3::Procedure::addStackSlotIndex):
(JSC::B3::Procedure::addValueIndex):

  • b3/B3Procedure.h:

(JSC::B3::Procedure::setBlockOrder):
(JSC::B3::Procedure::StackSlotsCollection::StackSlotsCollection):
(JSC::B3::Procedure::StackSlotsCollection::size):
(JSC::B3::Procedure::StackSlotsCollection::at):
(JSC::B3::Procedure::StackSlotsCollection::operator[]):
(JSC::B3::Procedure::StackSlotsCollection::iterator::iterator):
(JSC::B3::Procedure::StackSlotsCollection::iterator::operator*):
(JSC::B3::Procedure::StackSlotsCollection::iterator::operator++):
(JSC::B3::Procedure::StackSlotsCollection::iterator::operator==):
(JSC::B3::Procedure::StackSlotsCollection::iterator::operator!=):
(JSC::B3::Procedure::StackSlotsCollection::iterator::findNext):
(JSC::B3::Procedure::StackSlotsCollection::begin):
(JSC::B3::Procedure::StackSlotsCollection::end):
(JSC::B3::Procedure::stackSlots):
(JSC::B3::Procedure::ValuesCollection::ValuesCollection):

  • b3/B3ReduceStrength.cpp:
  • b3/B3SlotBaseValue.cpp: Copied from Source/JavaScriptCore/b3/B3StackSlotValue.cpp.

(JSC::B3::SlotBaseValue::~SlotBaseValue):
(JSC::B3::SlotBaseValue::dumpMeta):
(JSC::B3::SlotBaseValue::cloneImpl):
(JSC::B3::StackSlotValue::~StackSlotValue): Deleted.
(JSC::B3::StackSlotValue::dumpMeta): Deleted.
(JSC::B3::StackSlotValue::cloneImpl): Deleted.

  • b3/B3SlotBaseValue.h: Copied from Source/JavaScriptCore/b3/B3StackSlotValue.h.
  • b3/B3StackSlot.cpp: Added.

(JSC::B3::StackSlot::~StackSlot):
(JSC::B3::StackSlot::dump):
(JSC::B3::StackSlot::deepDump):
(JSC::B3::StackSlot::StackSlot):

  • b3/B3StackSlot.h: Added.

(JSC::B3::StackSlot::byteSize):
(JSC::B3::StackSlot::kind):
(JSC::B3::StackSlot::isLocked):
(JSC::B3::StackSlot::index):
(JSC::B3::StackSlot::offsetFromFP):
(JSC::B3::StackSlot::setOffsetFromFP):
(JSC::B3::DeepStackSlotDump::DeepStackSlotDump):
(JSC::B3::DeepStackSlotDump::dump):
(JSC::B3::deepDump):

  • b3/B3StackSlotValue.cpp: Removed.
  • b3/B3StackSlotValue.h: Removed.
  • b3/B3Validate.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::effects):
(JSC::B3::Value::key):
(JSC::B3::Value::checkOpcode):

  • b3/B3ValueKey.cpp:

(JSC::B3::ValueKey::materialize):

  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::addBlock):
(JSC::B3::Air::Code::addStackSlot):
(JSC::B3::Air::Code::addSpecial):

  • b3/air/AirCode.h:
  • b3/air/AirStackSlot.cpp:

(JSC::B3::Air::StackSlot::setOffsetFromFP):
(JSC::B3::Air::StackSlot::dump):
(JSC::B3::Air::StackSlot::deepDump):
(JSC::B3::Air::StackSlot::StackSlot):

  • b3/air/AirStackSlot.h:

(JSC::B3::Air::StackSlot::alignment):
(JSC::B3::Air::StackSlot::b3Slot):
(JSC::B3::Air::StackSlot::offsetFromFP):
(WTF::printInternal):
(JSC::B3::Air::StackSlot::value): Deleted.

  • b3/testb3.cpp:

(JSC::B3::testStackSlot):
(JSC::B3::testStoreLoadStackSlot):

  • ftl/FTLB3Compile.cpp:
  • ftl/FTLB3Output.cpp:

(JSC::FTL::Output::appendTo):
(JSC::FTL::Output::lockedStackSlot):
(JSC::FTL::Output::neg):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::framePointer):
(JSC::FTL::Output::constBool):
(JSC::FTL::Output::constInt32):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::lower):

  • ftl/FTLState.h:
1:55 PM Changeset in webkit [195619] by timothy@apple.com
  • 1 edit
    3 adds in branches/safari-601-branch/Source/WebInspectorUI

Merge r195323. rdar://problem/24302730

1:43 PM Changeset in webkit [195618] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r195606. rdar://problem/24243317

1:38 PM Changeset in webkit [195617] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[webkitdirs] Removed check for bison, gperf, and flex.
https://bugs.webkit.org/show_bug.cgi?id=153496

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-26
Reviewed by Alex Christensen.

This prerequisites are checked in WebKitCommon.cmake and don't
have to be in $PATH.

  • Scripts/webkitdirs.pm:

(checkRequiredSystemConfig):

1:22 PM Changeset in webkit [195616] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Add a Dictionary overload that returns an Optional result
https://bugs.webkit.org/show_bug.cgi?id=153507

Reviewed by Tim Horton.

  • bindings/js/Dictionary.h:

(WebCore::Dictionary::get):

1:19 PM Changeset in webkit [195615] by matthew_hanson@apple.com
  • 6 edits in branches/safari-601.1.46-branch

Re-enable synchronous popstate event for safari-601-branch

1:19 PM Changeset in webkit [195614] by commit-queue@webkit.org
  • 8 edits
    8 adds in trunk

Let SVG images not taint canvases except when containing foreignObjects
https://bugs.webkit.org/show_bug.cgi?id=119639

Patch by Philip Rogers <pdr@chromium.org> on 2016-01-26
Reviewed by Brent Fulgham.

Source/WebCore:

r153876 caused SVG images to not taint canvases but the patch allowed
for subimage resources. This can be a problem if a subimage (e.g., data
uri image) contains a foreignObject which can violate security (e.g.,
visited links).

This patch updates SVGImage::hasSingleSecurityOrigin to check if the
image contains any foreignObjects or images that themselves contain
foreignObjects. SVG images without foreignObjects are allowed to not
taint canvases.

Canvas patterns are problematic because an animated SVG image can switch
between tainting and not tainting the canvas. A FIXME has been added to
solve this, and in the meantime we cause SVG images to taint patterns.

Tests: svg/as-image/svg-canvas-pattern-with-link-tainted.html

svg/as-image/svg-canvas-svg-with-feimage-with-link-tainted.html
svg/as-image/svg-canvas-svg-with-image-with-link-tainted.html

  • html/canvas/CanvasPattern.cpp:

(WebCore::CanvasPattern::CanvasPattern):
(WebCore::CanvasPattern::~CanvasPattern):

  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::~SVGFEImageElement):
(WebCore::SVGFEImageElement::hasSingleSecurityOrigin):
(WebCore::SVGFEImageElement::clearResourceReferences):

  • svg/SVGFEImageElement.h:
  • svg/SVGImageElement.cpp:

(WebCore::SVGImageElement::create):
(WebCore::SVGImageElement::hasSingleSecurityOrigin):
(WebCore::SVGImageElement::isSupportedAttribute):

  • svg/SVGImageElement.h:
  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::hasSingleSecurityOrigin):

LayoutTests:

  • svg/as-image/resources/svg-with-feimage-with-link.svg: Added.
  • svg/as-image/resources/svg-with-image-with-link.svg: Added.
  • svg/as-image/svg-canvas-pattern-with-link-tainted-expected.txt: Added.
  • svg/as-image/svg-canvas-pattern-with-link-tainted.html: Added.
  • svg/as-image/svg-canvas-svg-with-feimage-with-link-tainted-expected.txt: Added.
  • svg/as-image/svg-canvas-svg-with-feimage-with-link-tainted.html: Added.
  • svg/as-image/svg-canvas-svg-with-image-with-link-tainted-expected.txt: Added.
  • svg/as-image/svg-canvas-svg-with-image-with-link-tainted.html: Added.
1:14 PM Changeset in webkit [195613] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[webkitdirs] isCMakeBuild should be true by default
https://bugs.webkit.org/show_bug.cgi?id=153497

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-26
Reviewed by Michael Catanzaro.

  • Scripts/webkitdirs.pm:

(isCMakeBuild):

1:12 PM Changeset in webkit [195612] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

CSSGrammar.y:1742.31-34: warning: unused value: $3
https://bugs.webkit.org/show_bug.cgi?id=153462

Reviewed by Alex Christensen.

This warning indicates that we have a memory leak. From the bison manual:

"Right-hand side symbols of a rule that explicitly triggers a syntax error via YYERROR are
not discarded automatically. As a rule of thumb, destructors are invoked only when user
actions cannot manage the memory."

Arguably a design error, but that's how it is.

  • css/CSSGrammar.y.in:
1:09 PM Changeset in webkit [195611] by andersca@apple.com
  • 2 edits in trunk/Source/WTF

BlockPtr needs boolean operators
https://bugs.webkit.org/show_bug.cgi?id=153506

Reviewed by Tim Horton.

  • wtf/BlockPtr.h:
12:58 PM Changeset in webkit [195610] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

Calling video.controls=true during a scrub operation cancels scrub.
https://bugs.webkit.org/show_bug.cgi?id=153494

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-controls-drag-timeline-set-controls-property.html

Verify that the video.controls attribute actually changed before tearing down and
re-adding the media controls to the Shadow DOM.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.handleControlsChange):
(Controller.prototype.hasControls):

LayoutTests:

  • media/media-controls-drag-timeline-set-controls-property-expected.txt: Added.
  • media/media-controls-drag-timeline-set-controls-property.html: Added.
12:45 PM Changeset in webkit [195609] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[EME][Mac] Crash in [AVStreamSession addStreamDataParser:]; uncaught exception
https://bugs.webkit.org/show_bug.cgi?id=153495

Reviewed by Eric Carlson.

When AVContentKeySession is not available, fall back to pre-AVContentKeySession behavior;
namely, immediately create an AVStreamSession object in
willProvideContentKeyRequestInitializationData, rather than waiting for didProvide.

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

(WebCore::SourceBufferPrivateAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID):

12:30 PM Changeset in webkit [195608] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading.svg as flaky on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=153498

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
12:09 PM Changeset in webkit [195607] by dino@apple.com
  • 10 edits
    3 adds in trunk

[iOS] Documents without an explicit width should not get fast tapping
https://bugs.webkit.org/show_bug.cgi?id=153465
Source/WebCore:

<rdar://problem/23962529>

Reviewed by Simon Fraser (and Wenson Hseih).

As the title says, documents that do not set a viewport should
not get the fast click behaviour. There were complaints that we broke
double-tap to scroll in ImageDocuments where the image was narrow and long.

The fix is to just keep a flag that tells the UI process if the
width was explicit. However, it turns out that those ImageDocuments
are given an explicit device-width, which is fine for scaling but
really should behave as auto for fast tapping. So we also need
to tell the UIProcess if the viewport arguments came from an
ImageDocument.

Test: fast/events/ios/viewport-no-width-value-allows-double-tap.html

  • dom/ViewportArguments.cpp:

(WebCore::findSizeValue): Add a parameter that toggles a flag
if the size was explicitly set.
(WebCore::setViewportFeature): Remember if the width was
explicit.

  • dom/ViewportArguments.h: Add a widthWasExplicit flag.

(WebCore::ViewportArguments::operator==):

Source/WebKit2:

<rdar://problem/23962529>

Reviewed by Simon Fraser (and Wenson Hseih).

As the title says, documents that do not set a viewport should
not get the fast click behaviour. There were complaints that we broke
double-tap to scroll in ImageDocuments where the image was narrow and long.

The fix is to just keep a flag that tells the UI process if the
width was explicit. However, it turns out that those ImageDocuments
are given an explicit device-width, which is fine for scaling but
really should behave as auto for fast tapping. So we also need
to tell the UIProcess if the viewport arguments came from an
ImageDocument.

  • Shared/mac/RemoteLayerTreeTransaction.h: Add two new flags into

the transaction.
(WebKit::RemoteLayerTreeTransaction::viewportMetaTagWidthWasExplicit):
(WebKit::RemoteLayerTreeTransaction::setViewportMetaTagWidthWasExplicit):
(WebKit::RemoteLayerTreeTransaction::viewportMetaTagCameFromImageDocument):
(WebKit::RemoteLayerTreeTransaction::setViewportMetaTagCameFromImageDocument):

  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::encode):
(WebKit::RemoteLayerTreeTransaction::decode):
(WebKit::RemoteLayerTreeTransaction::description):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didCommitLayerTree:]): Notice whether or not the viewport
width was explicit.
(-[WKWebView _allowsDoubleTapGestures]): Return yes if the width
was not explicit, or if the viewport came from an ImageDocument.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::willCommitLayerTree):

LayoutTests:

Reviewed by Simon Fraser (and Wenson Hseih).

  • fast/events/ios/thin-gradient.jpg: Added.
  • fast/events/ios/viewport-no-width-value-allows-double-tap-expected.txt: Added.
  • fast/events/ios/viewport-no-width-value-allows-double-tap.html: Added.
  • platform/ios-simulator/TestExpectations:
12:07 PM Changeset in webkit [195606] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

Speculative fixes for crashing in viewportChangeAffectedPicture
https://bugs.webkit.org/show_bug.cgi?id=153450

Reviewed by Dean Jackson.

Don't attach any conditions to the removal of a picture element from
the document's HashSet. This ensures that if the condition is ever
wrong for any reason, we'll still remove the picture element on
destruction.

Fix the media query evaluation to match the other evaluations (used by
the preload scanner and HTMLImageElement). This includes using the
document element's computed style instead of our own and also null
checking the document element first. This is the likely cause of the
crashes.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

11:57 AM Changeset in webkit [195605] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Make sure a page is still PageCache-able after firing the 'pagehide' events
https://bugs.webkit.org/show_bug.cgi?id=153449

Reviewed by Andreas Kling.

Make sure a page is still PageCache-able after firing the 'pagehide'
events and abort if it isn't. This should improve robustness and it is
easy for pagehide event handlers to do things that would make a Page no
longer PageCache-able and this leads to bugs that are difficult to
investigate.

To achieve this, the 'pagehide' event firing logic was moved out of the
CachedFrame constructor. It now happens earlier in
PageCache::addIfCacheable() after checking if the page is cacheable and
before constructing the CachedPage / CachedFrames. After firing the
'pagehide' event in PageCache::addIfCacheable(), we check again that
the page is still cacheable and we abort early if it is not.

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::CachedFrame):

  • history/PageCache.cpp:

(WebCore::setInPageCache):
(WebCore::firePageHideEventRecursively):
(WebCore::PageCache::addIfCacheable):

  • history/PageCache.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::commitProvisionalLoad):

11:33 AM Changeset in webkit [195604] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Remove a useless #include
https://bugs.webkit.org/show_bug.cgi?id=153474

Reviewed by Alexey Proskuryakov.

  • b3/B3ReduceStrength.cpp:
11:28 AM Changeset in webkit [195603] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Rubber-stamped by Tim Horton.

Add one more bit of SPI.

  • platform/spi/mac/NSSpellCheckerSPI.h:
11:12 AM Changeset in webkit [195602] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

REGRESSION (r194557): Keyboard shortcuts stop working after the WKWebView is unparented and reparented
https://bugs.webkit.org/show_bug.cgi?id=153492
<rdar://problem/24138989>

Reviewed by Dan Bernstein.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView canBecomeFirstResponder]):
(-[WKContentView becomeFirstResponder]):
(-[WKContentView resignFirstResponder]):
When WKWebView is unparented, WKContentView will attempt to resignFirstResponder upwards,
first asking WKWebView. After r194557, WKWebView will accept first responder and forward
it on to the WKContentView, which will happily accept it again, despite being the view
that's trying to resign. This will cause us to completely lose first responder,
where it was actually supposed to propagate up above WKWebView to the client.

Keep track of when WKContentView is resigning first responder, and don't
let it become first responder while it is doing so, breaking the cycle.

11:02 AM Changeset in webkit [195601] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix build with ENABLE_DEVICE_ORIENTATION on non-iOS platforms
https://bugs.webkit.org/show_bug.cgi?id=153490

Patch by Olivier Blin <Olivier Blin> on 2016-01-26
Reviewed by Michael Catanzaro.

This has been broken since r178702, which changed the Page
argument from a pointer to a reference in logCanCachePageDecision().

No new tests since this is a build fix.

  • history/PageCache.cpp:

(WebCore::canCachePage):

10:56 AM Changeset in webkit [195600] by adachan@apple.com
  • 5 edits
    9 moves in trunk/Source

Move WebVideoFullscreenManager and related classes from iOS specific folders to cocoa folders
https://bugs.webkit.org/show_bug.cgi?id=153473

Reviewed by Eric Carlson.

Source/WebCore:

No new tests, just moving files.

  • WebCore.xcodeproj/project.pbxproj:

Update due to changes to the file locations.

  • platform/cocoa/WebVideoFullscreenModel.h: Renamed from Source/WebCore/platform/ios/WebVideoFullscreenModel.h.
  • platform/cocoa/WebVideoFullscreenModelVideoElement.h: Renamed from Source/WebCore/platform/ios/WebVideoFullscreenModelVideoElement.h.

(WebCore::WebVideoFullscreenModelVideoElement::create):
Fix a style error by moving the opening curly brace down one line.

  • platform/cocoa/WebVideoFullscreenModelVideoElement.mm: Renamed from Source/WebCore/platform/ios/WebVideoFullscreenModelVideoElement.mm.

Source/WebKit2:

  • DerivedSources.make:

Add new paths.

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h: Renamed from Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h.
  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in: Renamed from Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in.
  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm: Renamed from Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm.

(WebKit::WebVideoFullscreenManagerProxy::setSeekableRangesVector):
Fix a style error by moving the opening curly brace to the same line as the for statement.

  • WebKit2.xcodeproj/project.pbxproj:

Update due to changes to the file locations.

  • WebProcess/cocoa/WebVideoFullscreenManager.h: Renamed from Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.h.
  • WebProcess/cocoa/WebVideoFullscreenManager.messages.in: Renamed from Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.messages.in.
  • WebProcess/cocoa/WebVideoFullscreenManager.mm: Renamed from Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.mm.

(WebKit::WebVideoFullscreenInterfaceContext::setSeekableRanges):
Fix a style error by adding a missing space after a comma.

10:46 AM Changeset in webkit [195599] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skipping fast/events/drag-and-drop-link-fast-multiple-times-does-not-crash.html on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=138468

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
10:46 AM Changeset in webkit [195598] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking inspector/codemirror/prettyprinting-css-rules.html as flaky on mac-wk1 debug
https://bugs.webkit.org/show_bug.cgi?id=153460

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
10:40 AM Changeset in webkit [195597] by dbates@webkit.org
  • 4 edits
    2 adds
    1 delete in trunk

Add WebKitSystemInterface for iOS 9.2
https://bugs.webkit.org/show_bug.cgi?id=153355

Rubber-stamped by David Kilzer.

Tools:

  • Scripts/copy-webkitlibraries-to-product-directory:

WebKitLibraries:

  • WebKitSystemInterface.h:
  • WebKitSystemInterfaceIOS.h: Removed.
  • libWebKitSystemInterfaceIOSDevice9.2.a: Added.
  • libWebKitSystemInterfaceIOSSimulator9.2.a: Added.
10:37 AM Changeset in webkit [195596] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Do not convert GlyphBufferAdvance to FloatSize
https://bugs.webkit.org/show_bug.cgi?id=153429

GlyphBufferAdvance is not necessaryly convertible to FloatSize.
Also, this code was doing extra work by transforming height value.

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-26
Reviewed by Antti Koivisto.

No new tests needed.

  • rendering/svg/SVGTextRunRenderingContext.cpp:

(WebCore::SVGGlyphToPathTranslator::extents):

10:35 AM Changeset in webkit [195595] by adachan@apple.com
  • 6 edits
    2 adds in trunk/Source/WebCore

Enable API related to the video fullscreen layer in MediaPlayerPrivateAVFoundationObjC
also on Mac with video presentation mode support.
https://bugs.webkit.org/show_bug.cgi?id=153222

Reviewed by Eric Carlson.

No new tests. Covered by existing tests.

Introduce VideoFullscreenLayerManager to deal with the video layer when switching
between inline and fullscreen mode. We'll reuse it in other MediaPlayerPrivateInterface
implementations.

Now that MediaPlayerPrivateAVFoundationObjC's platform layer can be a WebVideoContainerLayer,
this exposes a bug in PlatformCALayerCocoa::clone() where we assumed the platform layer
is always an AVPlayerLayer if the PlatformCALayer's layer type is LayerTypeAVPlayerLayer.
Add a helper method to get an AVPlayerLayer from a PlatformCALayerCocoa (which also handles
WebVideoContainerLayer case) and use it in PlatformCALayerCocoa::clone().

  • WebCore.xcodeproj/project.pbxproj:

Add VideoFullscreenLayerManager to the project.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
Create m_videoFullscreenLayerManager. The video inline layer, video fullscreen layer,
and the video fullscreen frame are now managed by that class.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
Just call VideoFullscreenLayerManager::setVideoLayer() to handle adding the video
layer in either the inline or fullscreen layer.
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer):
Call VideoFullscreenLayerManager::didDestroyVideoLayer().
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformLayer):
Get the video inline layer from VideoFullscreenLayerManager.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
Call VideoFullscreenLayerManager::setVideoFullscreenLayer().
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame):
Call VideoFullscreenLayerManager::setVideoFullscreenFrame().
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenMode):
Guard the iOS specific code properly.
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity):
Get the video fullscreen layer from VideoFullscreenLayerManager.
(WebCore::MediaPlayerPrivateAVFoundationObjC::requiresTextTrackRepresentation):
Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::syncTextTrackBounds):
Get the video fullscreen layer and video fullscreen frame from VideoFullscreenLayerManager.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setTextTrackRepresentation):
Get the video fullscreen layer from VideoFullscreenLayerManager.

  • platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.h: Added.

(WebCore::VideoFullscreenLayerManager::videoInlineLayer):
(WebCore::VideoFullscreenLayerManager::videoFullscreenLayer):
(WebCore::VideoFullscreenLayerManager::videoFullscreenFrame):

  • platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.mm: Added.

(-[WebVideoContainerLayer setBounds:]):
(-[WebVideoContainerLayer setPosition:]):
WebVideoContainerLayer was moved from MediaPlayerPrivateAVFoundationObjC.mm.
(WebCore::VideoFullscreenLayerManager::create):
(WebCore::VideoFullscreenLayerManager::VideoFullscreenLayerManager):
(WebCore::VideoFullscreenLayerManager::setVideoLayer):
Code moved from MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer().
(WebCore::VideoFullscreenLayerManager::setVideoFullscreenLayer):
Code moved from MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer().
(WebCore::VideoFullscreenLayerManager::setVideoFullscreenFrame):
Code moved from MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame().
(WebCore::VideoFullscreenLayerManager::didDestroyVideoLayer):
Code moved from MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer().

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::clone):
Use the new PlatformCALayerCocoa::avPlayerLayer() method to get the AVPlayerLayer from both the
destination and source PlatformCALayers.
(PlatformCALayerCocoa::avPlayerLayer):
Return nil if the layer type is not LayerTypeAVPlayerLayer. Otherwise, return the
platform layer if it is indeed an AVPlayerLayer. If not, it should be a WebVideoContainerLayer
and we should return its sublayer which should be an AVPlayerLayer.

10:04 AM Changeset in webkit [195594] by Chris Dumez
  • 7 edits
    2 adds in trunk

First parameter to window.showModalDialog() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=153436

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Drop temporary WebKit workaround in html/dom/interfaces.html
imported W3C test. This test would previously time out without
the workaround but this is fixed now.

  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces.html:

Source/WebCore:

Make window.showModalDialog()'s first parameter mandatory to match the
last specification containing it:
http://dev.w3.org/html5/spec-preview/user-prompts.html#dialogs-implemented-using-separate-documents

The new behavior also matches Firefox, while Chrome no longer supports
this operation.

With this change, the W3C HTML test suite no longer hangs in the middle
because it mistakenly pops up a modal dialog during testing.

Test: fast/dom/Window/showModalDialog-mandatory-parameter.html

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::showModalDialog):

LayoutTests:

  • fast/dom/Window/showModalDialog-mandatory-parameter-expected.txt: Added.
  • fast/dom/Window/showModalDialog-mandatory-parameter.html: Added.

Add layout test to check that showModalDialog()'s first parameter is indeed
mandatory.

  • fast/dom/null-page-show-modal-dialog-crash.html:

Update existing test now that showModalDialog()'s first parameter is
mandatory.

9:23 AM Changeset in webkit [195593] by achristensen@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[Win] Fix clean build after r195545.
https://bugs.webkit.org/show_bug.cgi?id=153434

  • CMakeLists.txt:
  • PlatformWin.cmake:

Derived sources need to be copied after the build, but everything else should be copied before.
This should fix ews issues like the one seen in bug 153473.

9:17 AM Changeset in webkit [195592] by eric.carlson@apple.com
  • 5 edits in trunk

LayoutTest media/airplay-target-availability.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=153100
<rdar://problem/24346796>

Reviewed by Daniel Bates.

Source/WebCore:

No new tests, media/airplay-target-availability.html was updated

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::clientStateDidChange): Schedule a configuration scan if

any of the config flags have changed.

(WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring): Update logging.

LayoutTests:

  • media/airplay-target-availability-expected.txt:
  • media/airplay-target-availability.html:
9:00 AM Changeset in webkit [195591] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Main frame scrollbars not updated on hovering when using overlay scrollbars
https://bugs.webkit.org/show_bug.cgi?id=153304

Reviewed by Michael Catanzaro.

Legacy scrollbars were fixed in r194155, but overlay scrollbars
are not notified when they are hovered. This is because the layer
hit test in RenderView::hitTest always returns true when using
overlay scrollbars and we are returning early in such case,
ignoring the HitTestRequest::AllowFrameScrollbars flag. So, in
case of using overlay scrollbars we still need to check the
RenderView scrollbars even when the layer hit test succeeded.

  • rendering/RenderView.cpp:

(WebCore::RenderView::hitTest):

8:15 AM Changeset in webkit [195590] by dbates@webkit.org
  • 3 edits
    5 adds in trunk

LayoutTest http/tests/security/xssAuditor/embed-tag-in-path-unterminated.html crashing
https://bugs.webkit.org/show_bug.cgi?id=153250
<rdar://problem/12172843>
And
<rdar://problem/24248040>

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Remove an incorrect assertion that the absolute URL associated with a protection space cannot
contain consecutive forward slash (/) characters. A URL can contain consecutive forward slashes.
This also makes the invariants for CredentialStorage::findDefaultProtectionSpaceForURL() symmetric
with the invariants for WebCore::protectionSpaceMapKeyFromURL().

Tests: http/tests/loading/basic-auth-load-URL-with-consecutive-slashes.html

http/tests/xmlhttprequest/basic-auth-load-URL-with-consecutive-slashes.html

  • platform/network/CredentialStorage.cpp:

(WebCore::CredentialStorage::findDefaultProtectionSpaceForURL):

LayoutTests:

The test case http/tests/xmlhttprequest/basic-auth-load-URL-with-consecutive-slashes.html was derived
from a test case written by Yongjun Zhang in <https://bugs.webkit.org/attachment.cgi?id=65189> (bug #44461).

  • http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt: Added.
  • http/tests/loading/basic-auth-load-URL-with-consecutive-slashes.html: Added.
  • http/tests/xmlhttprequest/basic-auth-load-URL-with-consecutive-slashes-expected.txt: Added.
  • http/tests/xmlhttprequest/basic-auth-load-URL-with-consecutive-slashes.html: Added.
  • platform/wk2/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt: Added.
8:08 AM Changeset in webkit [195589] by dbates@webkit.org
  • 13 edits in trunk

WebKitTestRunner: Credential cache is not cleared between tests
https://bugs.webkit.org/show_bug.cgi?id=153407
<rdar://problem/24280834>

Reviewed by Alexey Proskuryakov.

Source/WebKit2:

Expose SPI to call CredentialStorage::clearCredentials() on the default network storage
session to clear cached credentials.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::clearCachedCredentials): Added.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in: Added message ClearCachedCredentials().
  • UIProcess/API/C/WKContext.cpp:

(WKContextClearCachedCredentials): Added.

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::clearCachedCredentials): Notify all web processes and the
network process to clear cached credentials.

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::clearCachedCredentials): Clear cached credentials in the default
network storage session.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in: Added message ClearCachedCredentials().

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues): Call WKContextClearCachedCredentials()
to clear cached credentials.

8:06 AM Changeset in webkit [195588] by dbates@webkit.org
  • 54 edits
    3 deletes in trunk

Remove XMLHttpRequestException
https://bugs.webkit.org/show_bug.cgi?id=102698
<rdar://problem/24338476>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update test result now that we throw DOMException.{ABORT, NETWORK, TIMEOUT}Error instead of XMLHttpRequestException.{ABORT, NETWORK, TIMEOUT}_ERR.

  • web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-non-same-origin.sub-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-redirect-bogus-sync-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-redirect-infinite-sync-expected.txt:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-network-error-sync-expected.txt:

Source/WebCore:

Inspired by a patch by Erik Arvidsson.

As per <https://xhr.spec.whatwg.org> (21 January 2016) and <https://html.spec.whatwg.org/multipage/workers.html#dom-workerglobalscope-importscripts> (25 January 2016)
XMLHttpRequest and WorkerGlobalScope.importScripts() should throw a DOMException object instead
of a XMLHttpRequestException object when a NetworkError, AbortError, or TimeoutError occur. This
makes the behavior of WebKit more closely conform to these standards as well as the behavior of
other browsers.

  • CMakeLists.txt: Remove entries for XMLHttpRequestException.idl and XMLHttpRequestException.cpp.
  • DerivedSources.make: Remove entry for XMLHttpRequestException.idl.
  • WebCore.order: Remove exported symbols for XMLHttpRequestException.
  • WebCore.vcxproj/WebCore.vcxproj: Remove entries for JSXMLHttpRequestException.{cpp, h}, XMLHttpRequestException.{cpp, h}
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • bindings/js/JSExceptionBase.cpp:

(WebCore::toExceptionBase): Remove logic for XMLHttpRequestException.

  • dom/DOMExceptions.in: Remove entry for XMLHttpRequestException.
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::importScripts): Throw DOMException.NETWORK_ERR instead of XMLHttpRequestException.NETWORK_ERR.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest): Ditto.
(WebCore::XMLHttpRequest::didFail): Throw DOMException.ABORT_ERR instead of XMLHttpRequestException.ABORT_ERR.
(WebCore::XMLHttpRequest::didReachTimeout): Throw DOMException.TIMEOUT_ERR instead of XMLHttpRequestException.TIMEOUT_ERR.

  • xml/XMLHttpRequestException.cpp: Removed.
  • xml/XMLHttpRequestException.h: Removed.
  • xml/XMLHttpRequestException.idl: Removed.

LayoutTests:

Update test result now that we throw DOMException.{ABORT, NETWORK, TIMEOUT}Error instead of XMLHttpRequestException.{ABORT, NETWORK, TIMEOUT}_ERR.

  • fast/dom/Window/resources/window-properties.js:
  • fast/dom/Window/window-lookup-precedence-expected.txt:
  • fast/files/apply-blob-url-to-xhr-expected.txt:
  • fast/files/workers/worker-apply-blob-url-to-xhr-expected.txt:
  • http/tests/appcache/non-html.xhtml:
  • http/tests/appcache/simple.html:
  • http/tests/contentextensions/sync-xhr-blocked-expected.txt:
  • http/tests/local/fileapi/send-sliced-dragged-file-expected.txt:
  • http/tests/workers/worker-importScripts-expected.txt:
  • http/tests/xmlhttprequest/XMLHttpRequestException-expected.txt:
  • http/tests/xmlhttprequest/XMLHttpRequestException.html:
  • http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
  • http/tests/xmlhttprequest/access-control-basic-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-basic-get-fail-non-simple-expected.txt:
  • http/tests/xmlhttprequest/access-control-basic-non-simple-deny-cached-expected.txt:
  • http/tests/xmlhttprequest/access-control-basic-post-fail-non-simple-content-type-expected.txt:
  • http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-without-wildcard-expected.txt:
  • http/tests/xmlhttprequest/connection-error-sync-expected.txt:
  • http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
  • http/tests/xmlhttprequest/origin-exact-matching-expected.txt:
  • http/tests/xmlhttprequest/origin-whitelisting-https-expected.txt:
  • http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains-expected.txt:
  • http/tests/xmlhttprequest/origin-whitelisting-removal-expected.txt:
  • http/tests/xmlhttprequest/workers/access-control-basic-get-fail-non-simple-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-sync-no-progress-events-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/fast/dom/Window/window-lookup-precedence-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/fast/dom/Window/window-lookup-precedence-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/TestExpectations:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
7:47 AM Changeset in webkit [195587] by clopez@igalia.com
  • 2 edits in trunk/Tools

kill-old-processes: allow to specify on the environment of the bot a list of process that should be killed.
https://bugs.webkit.org/show_bug.cgi?id=153483

Reviewed by Csaba Osztrogonác.

  • BuildSlaveSupport/kill-old-processes:

(main): Allow to specify extra tasks to kill via the environment variable WEBKITBOT_TASKSTOKILL

6:48 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
1:45 AM Changeset in webkit [195586] by mario@webkit.org
  • 5 edits
    2 adds in trunk

[GTK] WebProcess crashes when quickly attempting many DnD operations
https://bugs.webkit.org/show_bug.cgi?id=138468

Reviewed by Michael Catanzaro.

Source/WebKit2:

Do not allow different DnD operations over the same element at the
same time, so that any new attempt to DnD an element happening before
a previous attempt has ended will take precedence, cancelling the older
operation before going ahead with the new one.

This is consistent with how WebCore::EventHandler handles DnD operations,
preventing the web process from crashing in scenarios where the user might
try to perform many DnD operations over the same element very quickly.

  • UIProcess/gtk/DragAndDropHandler.cpp:

(WebKit::DragAndDropHandler::DragAndDropHandler): Initialized new member.
(WebKit::DragAndDropHandler::startDrag): Ensure a previous DnD operation
is cancelled before handling the new one that has just started.
(WebKit::DragAndDropHandler::fillDragData): Protect against calling this
function from webkitWebViewBaseDragDataGet for already cancelled operations.
(WebKit::DragAndDropHandler::finishDrag): Protect against calling this
function from webkitWebViewBaseDragEnd for already cancelled operations.

  • UIProcess/gtk/DragAndDropHandler.h:

LayoutTests:

New test added to check that the web process does not crash when multiple
DnD operations are quickly attempted over the same draggable element.

  • fast/events/drag-and-drop-link-fast-multiple-times-does-not-crash-expected.txt: Added.
  • fast/events/drag-and-drop-link-fast-multiple-times-does-not-crash.html: Added.

Added the new test to the failure expectations for mac-wk2, as there's no
suitable implementation of eventSender in place yet (see bug 42194).

  • platform/mac-wk2/TestExpectations: Added failure expectation for the new test.
1:45 AM WebKitGTK/2.10.x edited by mario@webkit.org
(diff)
12:17 AM Changeset in webkit [195585] by fpizlo@apple.com
  • 12 edits
    1 add in trunk/Source

FTLB3Output should maintain good block order like the LLVM one does
https://bugs.webkit.org/show_bug.cgi?id=152222

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

This fixes FTLB3Output to emit an ordered B3 IR. This makes inspecting IR *a lot* easier.
It will also be a performance win whenever we use range-based data structures for
liveness.

Also two small other changes:

  • Added some more dumping in integer range optimization phase.
  • Refined the disassembler's printing of instruction width suffixes so that "jzl" is not a thing. It was using "l" as the suffix because jumps take a 32-bit immediate.
  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::addBlock):
(JSC::B3::Procedure::setBlockOrderImpl):
(JSC::B3::Procedure::clone):

  • b3/B3Procedure.h:

(JSC::B3::Procedure::frontendData):
(JSC::B3::Procedure::setBlockOrder):

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:
  • disassembler/udis86/udis86_syn-att.c:

(ud_translate_att):

  • ftl/FTLB3Output.cpp:

(JSC::FTL::Output::initialize):
(JSC::FTL::Output::newBlock):
(JSC::FTL::Output::applyBlockOrder):
(JSC::FTL::Output::appendTo):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::setFrequency):
(JSC::FTL::Output::insertNewBlocksBefore):
(JSC::FTL::Output::callWithoutSideEffects):
(JSC::FTL::Output::newBlock): Deleted.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::lower):

Source/WTF:

In the FTL we need to be able to construct a list by inserting elements before other
specific elements. We didn't already have a scalable way to do this, so this adds such a
data structure to WTF. This also has changes to SentinelLinkedList to make it support
these kinds of insertions.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/OrderMaker.h: Added.

(WTF::OrderMaker::Node::Node):
(WTF::OrderMaker::OrderMaker):
(WTF::OrderMaker::prepend):
(WTF::OrderMaker::append):
(WTF::OrderMaker::insertBefore):
(WTF::OrderMaker::insertAfter):
(WTF::OrderMaker::iterator::iterator):
(WTF::OrderMaker::iterator::operator*):
(WTF::OrderMaker::iterator::operator++):
(WTF::OrderMaker::iterator::operator==):
(WTF::OrderMaker::iterator::operator!=):
(WTF::OrderMaker::begin):
(WTF::OrderMaker::end):
(WTF::OrderMaker::newNode):

  • wtf/SentinelLinkedList.h:

(WTF::BasicRawSentinelNode::isOnList):
(WTF::BasicRawSentinelNode<T>::remove):
(WTF::BasicRawSentinelNode<T>::prepend):
(WTF::BasicRawSentinelNode<T>::append):
(WTF::RawNode>::SentinelLinkedList):
(WTF::RawNode>::push):
(WTF::RawNode>::append):
(WTF::RawNode>::remove):
(WTF::RawNode>::prepend):
(WTF::RawNode>::isOnList):

Jan 25, 2016:

11:32 PM Changeset in webkit [195584] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk/Source/WebCore

WebCoreJSBuiltins do not use to do conditional include
https://bugs.webkit.org/show_bug.cgi?id=153306

Reviewed by Alex Christensen.

Removing compilation guards as builtin generator adds them in the files themselves.
Fixing MediaDevices.js to generate MEDIA_STREAM compilation guard.

No change in behavior.

  • Modules/mediastream/MediaDevices.js: Changing @optional to @conditional.
  • Modules/mediastream/NavigatorUserMedia.js: Making it @conditional.
  • bindings/js/WebCoreJSBuiltins.cpp:
  • bindings/js/WebCoreJSBuiltins.h:
11:28 PM Changeset in webkit [195583] by youenn.fablet@crf.canon.fr
  • 3 edits
    4 adds in trunk/LayoutTests

imported/w3c/web-platform-tests/streams-api/readable-streams/garbage-collection.html asserts frequently
https://bugs.webkit.org/show_bug.cgi?id=152436

Reviewed by Alexey Proskuryakov.

LayoutTests/imported/w3c:

Adding temporary tests that splits garbage collection readable stream
tests in worker and window mode.

  • web-platform-tests/streams-api/readable-streams/garbage-collection-1-expected.txt: Added.
  • web-platform-tests/streams-api/readable-streams/garbage-collection-1.html: Added.
  • web-platform-tests/streams-api/readable-streams/garbage-collection-2-expected.txt: Added.
  • web-platform-tests/streams-api/readable-streams/garbage-collection-2.html: Added.

LayoutTests:

  • platform/mac/TestExpectations: Marked imported/w3c/web-platform-tests/streams-api/readable-streams/garbage-collection.html as crash/pass.
10:12 PM Changeset in webkit [195582] by commit-queue@webkit.org
  • 11 edits in trunk

Fix internal Windows build
https://bugs.webkit.org/show_bug.cgi?id=153469

Patch by Alex Christensen <achristensen@webkit.org> on 2016-01-25
Reviewed by Brent Fulgham.

.:

  • Source/cmake/WebKitMacros.cmake:

Pass the GPERF_EXECUTABLE that we found to make-hash-tools.pl.

Source/WebCore:

  • CMakeLists.txt:

Pass the GPERF_EXECUTABLE that we found to perl scripts so they can use it instead of just calling gperf.
This is needed for builds where gperf is not in the PATH.

  • DerivedSources.make:

Pass "gperf" as the gperf command to retain existing functionality on mac.

  • bindings/scripts/preprocess-idls.pl:

(CygwinPathIfNeeded):

  • bindings/scripts/preprocessor.pm:

(applyPreprocessor):
Add /cygdrive/c/cygwin/bin to the PATH before calling cygpath.
This is needed for builds where we are using cygwin, but C:/cygwin/bin is not in the PATH.

  • css/makeSelectorPseudoClassAndCompatibilityElementMap.py:
  • css/makeSelectorPseudoElementsMap.py:
  • css/makeprop.pl:
  • platform/network/create-http-header-name-table:

Use the gperf executable passed in as a command line parameter if it is given.

9:43 PM Changeset in webkit [195581] by commit-queue@webkit.org
  • 7 edits
    9 adds in trunk

[ES6] Arrow function syntax. Arrow function specific features. Lexical bind "arguments"
https://bugs.webkit.org/show_bug.cgi?id=145132

Patch by Skachkov Oleksandr <gskachkov@gmail.com> on 2016-01-25
Reviewed by Saam Barati.
Source/JavaScriptCore:

Added support of ES6 arrow function specific feature, lexical bind of arguments.
http://www.ecma-international.org/ecma-262/6.0/#sec-arrow-function-definitions-runtime-semantics-evaluation
'arguments' variable in arrow function must resolve to a binding in a lexically enclosing environment.
In srict mode it points to arguments object, and in non-stric mode it points to arguments object or varible
with name 'arguments' if it was declared.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

  • parser/Parser.h:

(JSC::Scope::Scope):
(JSC::Scope::setSourceParseMode):
(JSC::Scope::isArrowFunction):
(JSC::Scope::collectFreeVariables):
(JSC::Scope::setIsArrowFunction):

  • tests/es6.yaml:
  • tests/stress/arrowfunction-lexical-bind-arguments-non-strict-1.js: Added.
  • tests/stress/arrowfunction-lexical-bind-arguments-non-strict-2.js: Added.
  • tests/stress/arrowfunction-lexical-bind-arguments-strict.js: Added.

Source/WebInspectorUI:

Current patch is implementing lexical bind of arguments, so in this callback we need
to return to ordinary function.

  • UserInterface/Base/Object.js:

(WebInspector.Object.singleFireEventListener.let.wrappedCallback):
(WebInspector.Object.singleFireEventListener):

LayoutTests:

  • js/arrowfunction-lexical-bind-arguments-non-strict-expected.txt: Added.
  • js/arrowfunction-lexical-bind-arguments-non-strict.html: Added.
  • js/arrowfunction-lexical-bind-arguments-strict-expected.txt: Added.
  • js/arrowfunction-lexical-bind-arguments-strict.html: Added.
  • js/script-tests/arrowfunction-lexical-bind-arguments-non-strict.js: Added.
  • js/script-tests/arrowfunction-lexical-bind-arguments-strict.js: Added.
9:41 PM Changeset in webkit [195580] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

DisplayList items can log paths now
https://bugs.webkit.org/show_bug.cgi?id=153417

Reviewed by Zalan Bujtas.

Now that Path supports TextStream logging, clean up its output a little and
enable dumping of Paths in DisplayListItems.

  • platform/graphics/Path.cpp:

(WebCore::operator<<):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::operator<<):

9:40 PM Changeset in webkit [195579] by Simon Fraser
  • 4 edits in trunk

Give the layout test results file a <title> showing the date and time the tests were run
https://bugs.webkit.org/show_bug.cgi?id=153187

Reviewed by Darin Adler.

Tools:

Include a 'date' property in the JSON with the date and time the tests completed.

  • Scripts/webkitpy/layout_tests/models/test_run_results.py:

(summarize_results):

LayoutTests:

Generate a <title> element from the 'date' property in the JSON.

  • fast/harness/results.html:
8:01 PM Changeset in webkit [195578] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] We should never use x18 on iOS ARM64
https://bugs.webkit.org/show_bug.cgi?id=153461

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-01-25
Reviewed by Filip Pizlo.

The register x18 is reserved in the iOS variant of the ARM64 ABI.

The weird thing is: if you use it, its value will change completely
randomly. It looks like it is changed by the system on interrupts.

This patch adds x18 to the reserved register and add assertions
to the assembler to prevent similar problems in the future.

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::xOrSp):
(JSC::ARM64Assembler::xOrZr):

  • assembler/AbstractMacroAssembler.h:

(JSC::isIOS): Deleted.

  • assembler/AssemblerCommon.h:

(JSC::isIOS):

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::reservedHardwareRegisters):

7:13 PM Changeset in webkit [195577] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Fix the comment.

  • rendering/style/RenderStyle.h:
7:12 PM Changeset in webkit [195576] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

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

broke animometer bot (and now we have crash logs!) (Requested
by kling on #webkit).

Reverted changeset:

"Restore CodeBlock jettison code Geoff accidentally removed"
https://bugs.webkit.org/show_bug.cgi?id=151241
http://trac.webkit.org/changeset/195550

6:57 PM Changeset in webkit [195575] by akling@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

MarkedSpace should have more precise allocators.
<https://webkit.org/b/153448>
<rdar://problem/23897477>

Reviewed by Geoffrey Garen.

The four classes responsible for the bulk of MarkedBlock allocations today are:

  • FunctionCodeBlock (640 bytes)
  • UnlinkedFunctionCodeBlock (304 bytes)
  • FunctionExecutable (168 bytes)
  • UnlinkedFunctionExecutable (144 bytes)

Due to the size class distribution in MarkedSpace, we've been wasting quite a lot
of heap space on these objects. Our "precise" allocators allowed allocation sizes
in 16-byte increments up to 128 bytes, but after that point, we'd only allocate
in 256-byte size increments.

Thus each instance of those classes would waste space as follows:

  • FunctionCodeBlock (768-byte cell, 128 bytes wasted)
  • UnlinkedFunctionCodeBlock (512-byte cell, 208 bytes wasted)
  • FunctionExecutable(256-byte cell, 88 bytes wasted)
  • UnlinkedFunctionExecutable(256-byte cell, 112 bytes wasted)

This patch raises the limit for precise allocations from 128 to 768, allowing us
to allocate these objects with far better space efficiency.

The cost of this is 7kB worth of MarkedAllocators and 70 (~2x) more allocators to
iterate whenever we iterate all the allocators.

  • heap/MarkedSpace.h:
  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::MarkedSpace):
(JSC::MarkedSpace::resetAllocators):
(JSC::MarkedSpace::forEachAllocator):
(JSC::MarkedSpace::isPagedOut):

6:18 PM Changeset in webkit [195574] by enrica@apple.com
  • 13 edits
    2 moves in trunk/Source

Add support for DataDetectors in WK (iOS).
https://bugs.webkit.org/show_bug.cgi?id=152989
rdar://problem/22855960

Reviewed by Tim Horton.

Source/WebCore:

Adding new helper functions for data detection related tasks.
The patch also fixes a bug when creating DOM ranges from DDQueryRange
spanning multiple fragments.

  • editing/cocoa/DataDetection.h:
  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::isDataDetectorLink):
(WebCore::DataDetection::dataDetectorIdentifier):
(WebCore::detectItemAtPositionWithRange):
(WebCore::DataDetection::detectItemAroundHitTestResult):
(WebCore::resultIsURL):
(WebCore::removeResultLinksFromAnchor):
(WebCore::searchForLinkRemovingExistingDDLinks):
(WebCore::DataDetection::detectContentInRange):

Source/WebKit2:

Moving InteractionInformationAtPosition files to platform folder,
since this is only used on iOS and changing from .cpp to .mm.
The structure is extended to include data detection specific fields
and the relevant encode/decode functions have been updated to
handle the new fields.
The patch also adds a new WKUIDelegatePrivate method to allow
the client to provide additional context for data detection actions.

  • Platform/spi/ios/UIKitSPI.h:
  • Shared/InteractionInformationAtPosition.cpp: Removed.
  • Shared/InteractionInformationAtPosition.h: Removed.
  • Shared/ios/InteractionInformationAtPosition.h: Copied from Shared/InteractionInformationAtPosition.h.
  • Shared/ios/InteractionInformationAtPosition.mm: Copied from Shared/InteractionInformationAtPosition.cpp.

(WebKit::InteractionInformationAtPosition::encode):
(WebKit::InteractionInformationAtPosition::decode):

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKActionSheetAssistant.h:
  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant showDataDetectorsSheet]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView actionSheetAssistantDidStopInteraction:]):
(-[WKContentView dataDetectionContextForActionSheetAssistant:]):
(-[WKContentView selectedTextForActionSheetAssistant:]):
(-[WKContentView _dataForPreviewItemController:atPosition:type:]):

  • UIProcess/ios/WebPageProxyIOS.mm:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):

5:56 PM Changeset in webkit [195573] by clopez@igalia.com
  • 29 edits
    1 add in trunk/LayoutTests

[GTK] Unreviewed GTK gardening.

Skip all inspector/sampling-profiler tests meanwhile the feature is not enabled on the GTK+ port.
Report and mark a new regression on test inspector/dom-debugger/node-removed.html timing out.
Rebaseline a bunch of tests after r194847.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Rebaseline after r194847.
  • platform/gtk/fast/forms/auto-fill-button/input-auto-fill-button-expected.png: Added. Rebaseline after r194847.
  • platform/gtk/tables/mozilla/bugs/bug1188-expected.png: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/bugs/bug1188-expected.txt: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/bugs/bug18359-expected.png: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/bugs/bug18359-expected.txt: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/bugs/bug2479-3-expected.png: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/bugs/bug2479-3-expected.txt: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/bugs/bug2479-4-expected.png: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/bugs/bug2479-4-expected.txt: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/bugs/bug29326-expected.png: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/bugs/bug29326-expected.txt: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/bugs/bug33855-expected.png: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/bugs/bug33855-expected.txt: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/bugs/bug4382-expected.png: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/bugs/bug4382-expected.txt: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/bugs/bug96334-expected.png: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/bugs/bug96334-expected.txt: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/core/margins-expected.png: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/core/margins-expected.txt: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/dom/tableDom-expected.png: Rebaseline after r194847.
  • platform/gtk/tables/mozilla/dom/tableDom-expected.txt: Rebaseline after r194847.
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug2479-5-expected.png: Rebaseline after r194847.
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt: Rebaseline after r194847.
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug92647-1-expected.png: Rebaseline after r194847.
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt: Rebaseline after r194847.
  • platform/gtk/transforms/2d/zoom-menulist-expected.png: Rebaseline after r194847.
  • platform/gtk/transforms/2d/zoom-menulist-expected.txt: Rebaseline after r194847.
5:56 PM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
5:19 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
sign up for tomorrow since I missed last week too (diff)
4:43 PM Changeset in webkit [195572] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/LayoutTests

Merge r195492. rdar://problem/24001780

4:43 PM Changeset in webkit [195571] by matthew_hanson@apple.com
  • 6 edits
    8 adds in branches/safari-601.1.46-branch

Merge r195477. rdar://problem/24001780

4:43 PM Changeset in webkit [195570] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/WebKit2

Merge r195424. rdar://problem/24222456

4:43 PM Changeset in webkit [195569] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r195393. rdar://problem/24042909

4:43 PM Changeset in webkit [195568] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-601.1.46-branch

Merge r195150. rdar://problem/24208162

4:35 PM Changeset in webkit [195567] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

Remove broken cache from CSSFontFaceSource
https://bugs.webkit.org/show_bug.cgi?id=153440

Reviewed by Simon Fraser.

This cache has been broken since 2013 (r158085). Given we didn't notice a perf
hit when it broke, and the fact it's been broken for years, it clearly isn't
necessary.

https://bugs.webkit.org/show_bug.cgi?id=153414 consists of a fairly invasive
change to CSSFontFaceSource; this patch includes a working version of this
cache, along with an easy way to enable/disable it (to measure possible perf
changes).

This patch is a short-term cleanup patch in the mean time until the above
invasive change gets landed.

No new tests because there is no behavior (or performance!) change.

  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::font):
(WebCore::CSSFontFaceSource::~CSSFontFaceSource): Deleted.
(WebCore::CSSFontFaceSource::pruneTable): Deleted.
(WebCore::CSSFontFaceSource::fontLoaded): Deleted.

  • css/CSSFontFaceSource.h:
4:25 PM Changeset in webkit [195566] by sbarati@apple.com
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Have top-level ScriptTimelineDataGridNode events show sample counts
https://bugs.webkit.org/show_bug.cgi?id=153447
<rdar://problem/24334137>

Reviewed by Joseph Pecoraro.

  • UserInterface/Models/ScriptTimelineRecord.js:

(WebInspector.ScriptTimelineRecord):
(WebInspector.ScriptTimelineRecord.prototype.get profile):
(WebInspector.ScriptTimelineRecord.prototype.get callCount):
(WebInspector.ScriptTimelineRecord.prototype.isGarbageCollection):
(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload):

  • UserInterface/Views/ScriptTimelineDataGridNode.js:

(WebInspector.ScriptTimelineDataGridNode.prototype.get data):

4:16 PM Changeset in webkit [195565] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Try to fix the simulator build.

  • platform/spi/cocoa/DataDetectorsCoreSPI.h:
3:54 PM Changeset in webkit [195564] by weinig@apple.com
  • 5 edits
    2 copies in trunk/Source/WebCore

Roll back in r195559 with a build fix.

  • WebCore.xcodeproj/project.pbxproj:
  • editing/cocoa/DataDetection.mm:
  • platform/cocoa/DataDetectorsCoreSoftLink.mm: Added.
  • platform/cocoa/DataDetectorsCoreSoftLink.h: Added.
  • platform/spi/cocoa/DataDetectorsCoreSPI.h:
3:44 PM Changeset in webkit [195563] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix the comment about FTL_USES_B3.

  • dfg/DFGCommon.h:
3:41 PM Changeset in webkit [195562] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Switch FTL to B3 on X86_64/Mac
https://bugs.webkit.org/show_bug.cgi?id=153445

Rubber stamped by Geoffrey Garen.

This finally switches from LLVM to B3 in the FTL on X86_64 on the Mac. We recommend that other
X86_64 platforms make the switch as well. We will be focusing our performance work on B3 rather
than LLVM in the future. ARM64 support is also coming soon, so we will be able to remove FTL
LLVM code once that lands.

Right now this mostly appears as perf-neutral on the major tests. However, it does have the
following immediate benefits:

  • Dramatic reduction in FTL compile times, on the order of 5x-10x. This means huge speed-ups in shorter-running tests like V8Spider (21%) and JSRegress (8%).
  • It makes the FTL simpler and more robust because we don't have to do stackmap section parsing. This makes it easier to add new FTL features. We are already working on features, like the sampling profiler, which will only have a FTL B3 implementation.
  • Speed-ups on some throughput benchmarks like mandreel, richards, imaging-gaussian-blur. It's still a slow down on other throughput benchmarks, though.

We started writing B3 in October, so it's pretty awesome that the throughput of the code it
generates is already on par with LLVM.

This does not fundamentally change how the FTL works. FTL was built to lower DFG IR to a C-like
SSA IR, and then rely on powerful SSA optimizations and comprehensive instruction selection and
register allocation to turn that code into something that runs fast. B3 also has a C-like SSA
IR, has an instruction selector that is in some ways more powerful than LLVM's (B3 does global
instruction selection rather than block-local like LLVM), and it has a register allocator that
is in some ways more powerful also (B3 uses IRC, a mature graph coloring allocator, while LLVM
does not do graph coloring). We expect FTL B3's performance to improve a lot after we turn it
on and can focus our efforts on tuning it.

I didn't find any test regressions after running both JSC tests and layout tests. Basic
browsing still works. JetStream performance difference is within the margin of error. EWS is
happy.

  • dfg/DFGCommon.h:
3:38 PM Changeset in webkit [195561] by Ryan Haddad
  • 4 edits
    2 deletes in trunk/Source/WebCore

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

This change broke the iOS build (Requested by ryanhaddad on
#webkit).

Reverted changeset:

"Fix the ASAN build."
http://trac.webkit.org/changeset/195559

Patch by Commit Queue <commit-queue@webkit.org> on 2016-01-25

3:33 PM Changeset in webkit [195560] by Antti Koivisto
  • 8 edits in trunk/Source/WebCore

Resolving direction and writing mode properties should not mutate document
https://bugs.webkit.org/show_bug.cgi?id=153446

Reviewed by Andreas Kling.

Replace directionSetOnDocumentElement/writingModeSetOnDocumentElement document flags them with style flags.

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueDirection):
(WebCore::StyleBuilderCustom::resetEffectiveZoom):
(WebCore::StyleBuilderCustom::applyValueWebkitWritingMode):
(WebCore::StyleBuilderCustom::applyValueWebkitTextOrientation):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::styleForElement):

  • dom/Document.cpp:

(WebCore::Document::Document):

  • dom/Document.h:

(WebCore::Document::markers):
(WebCore::Document::directionSetOnDocumentElement): Deleted.
(WebCore::Document::writingModeSetOnDocumentElement): Deleted.
(WebCore::Document::setDirectionSetOnDocumentElement): Deleted.
(WebCore::Document::setWritingModeSetOnDocumentElement): Deleted.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange):

  • rendering/style/RenderStyle.h:
  • style/StyleResolveForDocument.cpp:

(WebCore::Style::resolveForDocument):

3:12 PM Changeset in webkit [195559] by weinig@apple.com
  • 4 edits
    2 adds in trunk/Source/WebCore

Fix the ASAN build.

  • WebCore.xcodeproj/project.pbxproj:
  • editing/cocoa/DataDetection.mm:
  • platform/cocoa/DataDetectorsCoreSoftLink.mm: Added.
  • platform/cocoa/DataDetectorsCoreSoftLink.h: Added.
  • platform/spi/cocoa/DataDetectorsCoreSPI.h:
3:08 PM Changeset in webkit [195558] by commit-queue@webkit.org
  • 13 edits in trunk

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

regressed performance of test bots by ~6% (Requested by dydz
on #webkit).

Reverted changeset:

"WebKitTestRunner: Credential cache is not cleared between
tests"
https://bugs.webkit.org/show_bug.cgi?id=153407
http://trac.webkit.org/changeset/195543

2:37 PM Changeset in webkit [195557] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Failing to upload to flakiness dashboard should not be a hard error
https://bugs.webkit.org/show_bug.cgi?id=153444
<rdar://problem/22146294>

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager._upload_json_files): If JSON file is not generated, do not try to upload it.

2:35 PM Changeset in webkit [195556] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking imported/w3c/indexeddb/keyorder-private.html as flaky on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=153438

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:13 PM Changeset in webkit [195555] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2][NetworkCache] Enable speculative revalidation
https://bugs.webkit.org/show_bug.cgi?id=153443
<rdar://problem/23092196>

Reviewed by Antti Koivisto.

Enable speculative revalidation to better evaluate performance and
robustness.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::registerUserDefaultsIfNeeded):

2:07 PM Changeset in webkit [195554] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking imported/w3c/web-platform-tests/XMLHttpRequest/getresponseheader-chunked-trailer.htm as flaky
on ios-simulator, removing flaky expectation that was incorrectly added for a different WPT LayoutTest.
https://bugs.webkit.org/show_bug.cgi?id=153371

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
1:40 PM Changeset in webkit [195553] by Beth Dakin
  • 2 edits in trunk/Source/WebKit/mac

Build fix.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView initWithFrame:]):
(-[WebHTMLView insertText:]):

1:38 PM Changeset in webkit [195552] by Beth Dakin
  • 4 edits in trunk/Source/WebKit/mac

WK1: Handle soft spaces after accepted candidates
https://bugs.webkit.org/show_bug.cgi?id=153442
-and corresponding-
rdar://problem/23958418

Reviewed by Tim Horton.

The space at the end of candidates is a soft space. If that space exists,
cache the range of the space in m_softSpaceRange.

  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::handleAcceptedCandidate):

New ivar in WebHTMLViewPrivate softSpaceRange keeps track to the NSRange of a
soft space if the last text that was inserted has a soft space at the end.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView initWithFrame:]):
(-[WebHTMLView _setSoftSpaceRange:]):

When new text is inserted, find out if it is being inserted right after a
soft space. If it is, then [NSSpellChecker deletesAutospaceBeforeString] will
tell us if the space needs to be removed. If that is the case, then set the
replacementString to the soft space.
(-[WebHTMLView insertText:]):

  • WebView/WebHTMLViewInternal.h:
1:12 PM Changeset in webkit [195551] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] Another build fix after r195545

  • CMakeLists.txt:

r195548 didn't change all the pre-builds back to post-builds.

1:04 PM Changeset in webkit [195550] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Restore CodeBlock jettison code Geoff accidentally removed
https://bugs.webkit.org/show_bug.cgi?id=151241

Rubber-stamped by Geoffrey Garen.

Geoff meant to add this back in <http://trac.webkit.org/changeset/190827>
but missed.

Then he added it back in, but it was rolled out due to a crash on Animometer.
I can no longer produce a crash on Animometer, either with today's version of
the benchmark, or the one that existed at the time of the rollout.

Given this, let's roll it back in and see how it goes.

  • bytecode/CodeBlock.cpp:

(JSC::timeToLive):
(JSC::CodeBlock::shouldJettisonDueToOldAge):

12:47 PM Changeset in webkit [195549] by fpizlo@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

mandreel should run just as fast in FTL B3 as FTL LLVM
https://bugs.webkit.org/show_bug.cgi?id=153394

Reviewed by Gavin Barraclough.

This fixes two performance bugs and one disassembler bug.

  • B3 now turns Branches into Jumps when they are dominated by a Check on the same condition. This is like the opposite of foldPathConstants() was doing.
  • Air now supports adding to 8-bit or 16-bit memory locations on x86. B3 now knows how to lower Store8(Add(Load8Z(...))) and various other things to these new instructions.
  • Disassembler now knows to print out the instruction's width, whenever it has one. Previously, we'd print movb, movw, movl, and movq as "mov", which is unhelpful if you're storing an immediate, for example.

This adds a bunch of tests for the new instruction forms. This is a big speed-up on
mandreel. It makes us just as fast as LLVM on that benchmark.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::add32):
(JSC::MacroAssemblerX86Common::add8):
(JSC::MacroAssemblerX86Common::add16):
(JSC::MacroAssemblerX86Common::add32AndSetFlags):
(JSC::MacroAssemblerX86Common::clz32AfterBsr):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::addl_rm):
(JSC::X86Assembler::addb_rm):
(JSC::X86Assembler::addw_rm):
(JSC::X86Assembler::addl_ir):
(JSC::X86Assembler::addl_im):
(JSC::X86Assembler::addb_im):
(JSC::X86Assembler::addw_im):
(JSC::X86Assembler::addq_rr):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::addr):
(JSC::B3::Air::LowerToAir::loadPromiseAnyOpcode):
(JSC::B3::Air::LowerToAir::loadPromise):
(JSC::B3::Air::LowerToAir::tryAppendStoreBinOp):
(JSC::B3::Air::LowerToAir::lower):

  • b3/B3PureCSE.cpp:

(JSC::B3::PureCSE::clear):
(JSC::B3::PureCSE::findMatch):
(JSC::B3::PureCSE::process):

  • b3/B3PureCSE.h:
  • b3/B3ReduceStrength.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::testNegPtr):
(JSC::B3::testStoreAddLoad32):
(JSC::B3::testStoreAddLoadImm32):
(JSC::B3::testStoreAddLoad8):
(JSC::B3::testStoreAddLoadImm8):
(JSC::B3::testStoreAddLoad16):
(JSC::B3::testStoreAddLoadImm16):
(JSC::B3::testStoreAddLoad64):
(JSC::B3::testStoreAddLoadImm64):
(JSC::B3::testStoreAddLoad32Index):
(JSC::B3::testStoreAddLoadImm32Index):
(JSC::B3::testStoreAddLoad8Index):
(JSC::B3::testStoreAddLoadImm8Index):
(JSC::B3::testStoreAddLoad16Index):
(JSC::B3::testStoreAddLoadImm16Index):
(JSC::B3::testStoreAddLoad64Index):
(JSC::B3::testStoreAddLoadImm64Index):
(JSC::B3::testStoreSubLoad):
(JSC::B3::run):
(JSC::B3::testStoreAddLoad): Deleted.

  • disassembler/udis86/udis86_syn-att.c:

(ud_translate_att):

12:37 PM Changeset in webkit [195548] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

[Win] Fix clean build after r195545.

  • CMakeLists.txt:
  • PlatformWin.cmake:

I got a little carried away. WebCore already had a pre-build event. It was correct before r195545.

12:29 PM Changeset in webkit [195547] by Beth Dakin
  • 6 edits in trunk/Source

Handle soft spaces after accepted candidates
https://bugs.webkit.org/show_bug.cgi?id=153331
-and corresponding-
rdar://problem/23958418

Reviewed by Darin Adler.

Source/WebCore:

Candidates now come with built-in spaces, so we should not insert a space for
them.

  • editing/Editor.cpp:

(WebCore::Editor::handleAcceptedCandidate):

New SPI to properly handle these soft spaces.

  • platform/spi/mac/NSSpellCheckerSPI.h:

Source/WebKit2:

New member variable m_softSpaceRange keeps track to the NSRange of a soft
space if the last text that was inserted has a soft space at the end.

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::WebViewImpl):

The space at the end of candidates is a soft space. If that space exists,
cache the range of the space in m_softSpaceRange.
(WebKit::WebViewImpl::handleAcceptedCandidate):

When new text is inserted, find out if it is being inserted right after a
soft space. If it is, then [NSSpellChecker deletesAutospaceBeforeString] will
tell us if the space needs to be removed. If that is the case, then set the
replacementString to the soft space.
(WebKit::WebViewImpl::insertText):

12:25 PM Changeset in webkit [195546] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking inspector/heap/garbageCollected.html as flaky on mac-wk1 debug
https://bugs.webkit.org/show_bug.cgi?id=153039

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
12:12 PM Changeset in webkit [195545] by achristensen@apple.com
  • 11 edits in trunk/Source

[Win] Copy forwarding headers before building a project
https://bugs.webkit.org/show_bug.cgi?id=153434

Reviewed by Brent Fulgham.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • PlatformWin.cmake:

Source/WebCore:

  • CMakeLists.txt:
  • PlatformWin.cmake:

Source/WebKit:

  • PlatformWin.cmake:

Source/WTF:

  • wtf/CMakeLists.txt:
  • wtf/PlatformWin.cmake:
11:48 AM Changeset in webkit [195544] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Reduce unnecessary forced layouts in TimelineOverview
https://bugs.webkit.org/show_bug.cgi?id=153392
<rdar://problem/24312344>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-01-25
Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview.prototype.layout):
Ignore setting the scrollLeft if we would be setting it to 0.
This helps avoid a forced layout in common cases.

10:41 AM Changeset in webkit [195543] by dbates@webkit.org
  • 13 edits in trunk

WebKitTestRunner: Credential cache is not cleared between tests
https://bugs.webkit.org/show_bug.cgi?id=153407
<rdar://problem/24280834>

Reviewed by Brady Eidson.

Source/WebKit2:

Add SPI to call NetworkStorageSession::switchToNewTestingSession() to create a new testing session.
The new testing session will have an empty credential cache.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::switchToNewTestingSession): Added.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in: Added message SwitchToNewTestingSession().
  • UIProcess/API/C/WKContext.cpp:

(WKContextResetTestingNetworkSession): Added.

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::resetTestingNetworkSession): Added.

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::switchToNewTestingSession): Added.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in: Added message SwitchToNewTestingSession().

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues): Reset testing network session
to clear cached credentials.

10:38 AM Changeset in webkit [195542] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/loading/preload-no-store-frame-src.html as failing on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=152446

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
10:20 AM Changeset in webkit [195541] by beidson@apple.com
  • 4 edits in trunk

Modern IDB: Implement getIndexRecord in the SQLite backing store.
https://bugs.webkit.org/show_bug.cgi?id=153425

Reviewed by Darin Adler.

Source/WebCore:

No new tests (Some failures now pass, other failures progressed closer to passing).

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::getIndexRecord):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
9:55 AM Changeset in webkit [195540] by eric.carlson@apple.com
  • 3 edits
    2 adds in trunk

Media "ended" event incorrectly fires when currentTime is set
https://bugs.webkit.org/show_bug.cgi?id=150348
<rdar://problem/24247974>

Reviewed by Jer Noble.

Source/WebCore:

Test: media/media-ended-fired-once.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::invalidateCachedTime): Always mark m_cachedTime as invalid.

LayoutTests:

  • media/media-ended-fired-once-expected.txt: Added.
  • media/media-ended-fired-once.html: Added.
9:49 AM Changeset in webkit [195539] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Do not convert GlyphBufferAdvance to FloatSize
https://bugs.webkit.org/show_bug.cgi?id=153421

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-01-25
Reviewed by Simon Fraser.

No new tests needed.

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawGlyphs::computeBounds):

9:23 AM Changeset in webkit [195538] by rniwa@webkit.org
  • 20 edits
    2 adds in trunk

document.createElement should be able to create a custom element
https://bugs.webkit.org/show_bug.cgi?id=153173

Reviewed by Darin Adler.

Source/WebCore:

Added the support for constructing a custom element via document.createElement.

Extracted HTMLElementFactory::createKnownElement, which returns nullptr when the specified name doesn't match
any builtin element instead of out of HTMLUnknownElement, out of HTMLElementFactory::createElement.

Test: fast/custom-elements/Document-createElement.html

  • bindings/js/JSCustomElementInterface.cpp:

(WebCore::JSCustomElementInterface::constructHTMLElement): Added. Constructs a custom element by invoking its
constructor. We allow exceptions to be thrown by the constructor so the caller is responsible for checking
any exceptions in the ExecState before preceeding if the returned value is null.

  • bindings/js/JSCustomElementInterface.h:

(WebCore::JSCustomElementInterface::constructSVGElement): Added.

  • bindings/js/JSElementCustom.cpp:

(WebCore::toJSNewlyCreated): Exit early if the element is a custom element as the wrapper had already been
created by super() call inside the custom element'c constructor.

  • bindings/js/JSMainThreadExecState.h:

(WebCore::JSMainThreadExecState):

  • bindings/js/JSMainThreadExecStateInstrumentation.h:

(WebCore::JSMainThreadExecState::instrumentFunctionInternal): Generalized from instrumentFunctionCall so that
we can use it for both call and construct.
(WebCore::JSMainThreadExecState::instrumentFunctionCall): Specialized the above function for call.
(WebCore::JSMainThreadExecState::instrumentFunctionConstruct): Ditto for construct.

  • dom/CustomElementDefinitions.cpp:

(WebCore::CustomElementDefinitions::findInterface): Added.

  • dom/CustomElementDefinitions.h:
  • dom/Document.cpp:

(WebCore::createHTMLElementWithNameValidation): Extracted from createElement.
(WebCore::Document::createElementForBindings): Renamed from createElement. Specifies
ShouldCreateCustomElement::Create to create a custom element before using fallback elements.

  • dom/Document.h:
  • dom/Document.idl:
  • dom/Node.h:

(WebCore::Node::isCustomElement): Added. This flag is used to identify a custom element.
(WebCore::Node::setIsCustomElement): Added.

  • dom/make_names.pl: Extracted createKnownElement from createElement for createHTMLElementWithNameValidation.
  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument): Use qualified name object to instantiate
a style element and set type content attribute.

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::setNodeName): Use createElementForBindings here since we might be creating an
arbitrary element here. Also use RefPtr instead of raw pointers while mutating DOM for safety.

Source/WebKit/win:

Use createElementForBindings here since this is a C++ binding for Windows.

  • DOMCoreClasses.cpp:

(DOMDocument::createElement):

Source/WebKit2:

Use createElementForBindings here since this is for SPI.

  • WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:

(-[WKDOMDocument createElement:]):
(-[WKDOMDocument createTextNode:]):

LayoutTests:

Add a test for creating a custom elemnet via document.createElement.
The behavior is to be documented later.

  • fast/custom-elements/Document-createElement-expected.txt: Added.
  • fast/custom-elements/Document-createElement.html: Added.
9:13 AM Changeset in webkit [195537] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

REGRESSION(r192773): [GTK] maps.google.com unresponsive/stalls since r192773
https://bugs.webkit.org/show_bug.cgi?id=153194

Reviewed by Michael Catanzaro.

In r192773 we implemented the JavaScriptCore garbage collector
timers for the GTK+ port. Those timers schedule sources in the
current thread default main context, but JS web worker threads
implementation doesn't use WTF::RunLoop, but its own WorkerRunLoop
class that doesn't create a GMainContext for the new thread. This
means that for web sites using workers, we are now doing garbage
collection of worker VMs in the main thread which ends up in a
deadlock at some point. We need to ensure that worker threads
create a GMainContext and push it as the default one for the
thread before the WorkerGlobalScope is created. This way when the
worker Heap is created, the GC timers use the right context to
schedule their sources. And then we need to check if there are
sources pending in the thread main context on every worker run
loop iteration.

  • workers/WorkerRunLoop.cpp:

(WebCore::WorkerRunLoop::runInMode):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::workerThread):

8:19 AM Changeset in webkit [195536] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: timelines clear button should be inactive if nothing can be cleared
https://bugs.webkit.org/show_bug.cgi?id=132756

Patch by Johan K. Jensen <jj@johanjensen.dk> on 2016-01-25
Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype.shown):
Enable clear button if timeline is not readonly and contains data, when switching timelines.
(WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
Enable clear button when a capturing starts.
(WebInspector.TimelineRecordingContentView.prototype._recordingReset):
Disable clear button after resetting recording.

8:18 AM Changeset in webkit [195535] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

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

It is again breaking builds of several ports (Requested by
youenn on #webkit).

Reverted changeset:

"WebCoreJSBuiltins do not use to do conditional include"
https://bugs.webkit.org/show_bug.cgi?id=153306
http://trac.webkit.org/changeset/195533

8:17 AM Changeset in webkit [195534] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Timelines: "Timer Installed150ms delay" — no space before the delay number
https://bugs.webkit.org/show_bug.cgi?id=153416

Reviewed by Timothy Hatcher.

Fix for tree element subtitle rule that regressed in https://bugs.webkit.org/show_bug.cgi?id=153146.

  • UserInterface/Views/TreeOutline.css:

(.tree-outline .item .alternate-subtitle::before):
Em dash should be inserted before both subtitle types.

6:06 AM Changeset in webkit [195533] by youenn.fablet@crf.canon.fr
  • 4 edits in trunk/Source/WebCore

WebCoreJSBuiltins do not use to do conditional include
https://bugs.webkit.org/show_bug.cgi?id=153306

Reviewed by Alex Christensen.

Removing compilation guards as builtin generator adds them in the files themselves.
Fixing MediaDevices.js to generate MEDIA_STREAM compilation guard.

No change in behavior.

  • Modules/mediastream/MediaDevices.js: Changing @optional to @conditional.
  • bindings/js/WebCoreJSBuiltins.cpp:
  • bindings/js/WebCoreJSBuiltins.h:
3:57 AM Changeset in webkit [195532] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

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

It is breaking builds of several ports (Requested by youenn on
#webkit).

Reverted changeset:

"WebCoreJSBuiltins do not use to do conditional include"
https://bugs.webkit.org/show_bug.cgi?id=153306
http://trac.webkit.org/changeset/195531

3:36 AM Changeset in webkit [195531] by youenn.fablet@crf.canon.fr
  • 3 edits in trunk/Source/WebCore

WebCoreJSBuiltins do not use to do conditional include
https://bugs.webkit.org/show_bug.cgi?id=153306

Reviewed by Alex Christensen.

Removing compilation guards as builtin generator adds them in the files themselves.

No change in behavior.

  • bindings/js/WebCoreJSBuiltins.cpp:
  • bindings/js/WebCoreJSBuiltins.h:
2:53 AM Changeset in webkit [195530] by youenn.fablet@crf.canon.fr
  • 21 edits
    22 adds in trunk

[Fetch API] Implement Fetch API Headers
https://bugs.webkit.org/show_bug.cgi?id=152384

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/headers/headers-basic-expected.txt: Added.
  • web-platform-tests/fetch/api/headers/headers-basic.html: Added.
  • web-platform-tests/fetch/api/headers/headers-casing-expected.txt: Added.
  • web-platform-tests/fetch/api/headers/headers-casing.html: Added.
  • web-platform-tests/fetch/api/headers/headers-errors-expected.txt: Added.
  • web-platform-tests/fetch/api/headers/headers-errors.html: Added.
  • web-platform-tests/fetch/api/headers/headers-idl-expected.txt: Added.
  • web-platform-tests/fetch/api/headers/headers-idl.html: Added.
  • web-platform-tests/fetch/api/headers/headers-nameshake-expected.txt: Added.
  • web-platform-tests/fetch/api/headers/headers-nameshake.html: Added.
  • web-platform-tests/fetch/api/headers/headers-normalize-expected.txt: Added.
  • web-platform-tests/fetch/api/headers/headers-normalize.html: Added.
  • web-platform-tests/fetch/api/headers/headers-structure-expected.txt: Added.
  • web-platform-tests/fetch/api/headers/headers-structure.html: Added.

Source/WebCore:

Adding Fetch Headers API as a wapper around HTTPHeaderMap.

Tests: imported/w3c/web-platform-tests/fetch/api/headers/headers-basic.html

imported/w3c/web-platform-tests/fetch/api/headers/headers-casing.html
imported/w3c/web-platform-tests/fetch/api/headers/headers-errors.html
imported/w3c/web-platform-tests/fetch/api/headers/headers-idl.html
imported/w3c/web-platform-tests/fetch/api/headers/headers-nameshake.html
imported/w3c/web-platform-tests/fetch/api/headers/headers-normalize.html
imported/w3c/web-platform-tests/fetch/api/headers/headers-structure.html

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • Modules/fetch/FetchHeaders.cpp: Added.

(WebCore::FetchHeaders::initializeWith):
(WebCore::isForbiddenHeaderName):
(WebCore::isForbiddenResponseHeaderName):
(WebCore::isSimpleHeader):
(WebCore::canWriteHeader):
(WebCore::FetchHeaders::append):
(WebCore::FetchHeaders::remove):
(WebCore::FetchHeaders::get):
(WebCore::FetchHeaders::has):
(WebCore::FetchHeaders::set):

  • Modules/fetch/FetchHeaders.h: Added.

(WebCore::FetchHeaders::create):
(WebCore::FetchHeaders::~FetchHeaders):
(WebCore::FetchHeaders::internalHeaders):
(WebCore::FetchHeaders::FetchHeaders):

  • Modules/fetch/FetchHeaders.idl: Added.
  • Modules/fetch/FetchHeaders.js: Added.

(initializeFetchHeaders):

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • bindings/js/WebCoreJSBuiltins.cpp:
  • bindings/js/WebCoreJSBuiltins.h:

(WebCore::JSBuiltinFunctions::JSBuiltinFunctions):
(WebCore::JSBuiltinFunctions::fetchHeadersBuiltins):

  • platform/network/HTTPHeaderMap.cpp:

(WebCore::HTTPHeaderMap::contains):
(WebCore::HTTPHeaderMap::remove):

  • platform/network/HTTPHeaderMap.h:

LayoutTests:

  • js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
  • js/dom/global-constructors-attributes-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
1:24 AM Changeset in webkit [195529] by svillar@igalia.com
  • 6 edits in trunk

[css-grid] grid shorthand must reset gap properties to their initial values
https://bugs.webkit.org/show_bug.cgi?id=153354

Reviewed by Darin Adler.

Source/WebCore:

Both 'grid-row-gap' & 'grid-column-gap' are considered reset-only subproperties of the
'grid' shorthand meaning that, even thought the shorthand does not offer a way to set
their values, it must in any case reset them to the initial ones.

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseGridShorthand):

  • css/CSSPropertyNames.in:

LayoutTests:

  • fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-shorthand-get-set.html:
12:18 AM Changeset in webkit [195528] by akling@apple.com
  • 24 edits in trunk/Source/JavaScriptCore

Reduce number of Structures created at startup.
<https://webkit.org/b/153399>

Reviewed by Darin Adler.

For *Constructor and *Prototype objects that are only created once per JSGlobalObject,
build up the Structures using addPropertyWithoutTransition() helpers to avoid creating
tons of transitions that would just end up floating around and never getting used.

  • inspector/JSInjectedScriptHostPrototype.cpp:

(Inspector::JSInjectedScriptHostPrototype::finishCreation):

  • inspector/JSJavaScriptCallFramePrototype.cpp:

(Inspector::JSJavaScriptCallFramePrototype::finishCreation):

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):

  • runtime/ConsolePrototype.cpp:

(JSC::ConsolePrototype::finishCreation):

  • runtime/DatePrototype.cpp:

(JSC::DatePrototype::finishCreation):

  • runtime/JSArrayBufferConstructor.cpp:

(JSC::JSArrayBufferConstructor::finishCreation):

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::JSArrayBufferPrototype::finishCreation):

  • runtime/JSObject.cpp:

(JSC::JSObject::putDirectNativeFunctionWithoutTransition):
(JSC::JSObject::putDirectBuiltinFunctionWithoutTransition): Deleted.

  • runtime/JSObject.h:
  • runtime/JSPromiseConstructor.cpp:

(JSC::JSPromiseConstructor::addOwnInternalSlots):

  • runtime/JSPromisePrototype.cpp:

(JSC::JSPromisePrototype::addOwnInternalSlots):

  • runtime/JSTypedArrayViewConstructor.cpp:

(JSC::JSTypedArrayViewConstructor::finishCreation):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::JSTypedArrayViewPrototype::finishCreation):

  • runtime/MapIteratorPrototype.cpp:

(JSC::MapIteratorPrototype::finishCreation):

  • runtime/MapPrototype.cpp:

(JSC::MapPrototype::finishCreation):

  • runtime/NumberPrototype.cpp:

(JSC::NumberPrototype::finishCreation):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::finishCreation):

  • runtime/ObjectPrototype.cpp:

(JSC::ObjectPrototype::finishCreation):

  • runtime/SetIteratorPrototype.cpp:

(JSC::SetIteratorPrototype::finishCreation):

  • runtime/SetPrototype.cpp:

(JSC::SetPrototype::finishCreation):

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):

  • runtime/WeakMapPrototype.cpp:

(JSC::WeakMapPrototype::finishCreation):

  • runtime/WeakSetPrototype.cpp:

(JSC::WeakSetPrototype::finishCreation):

Jan 24, 2016:

11:55 PM Changeset in webkit [195527] by beidson@apple.com
  • 18 edits in trunk

Modern IDB: Implement deleteIndex and getCount for the SQLite backing store.
https://bugs.webkit.org/show_bug.cgi?id=153415

Reviewed by Darin Adler.

Source/WebCore:

No new tests (Handful of tests now pass, improvements on a handful of others).

  • Modules/indexeddb/server/IDBBackingStore.h:
  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::deleteIndex):

  • Modules/indexeddb/server/MemoryIDBBackingStore.h:
  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::takeIndexByIdentifier):
(WebCore::IDBServer::MemoryObjectStore::deleteIndex):
(WebCore::IDBServer::MemoryObjectStore::deleteAllIndexes):
(WebCore::IDBServer::MemoryObjectStore::takeIndexByName): Deleted.

  • Modules/indexeddb/server/MemoryObjectStore.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::getCount):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::maybeCreateBackingStoreCursor):
(WebCore::IDBServer::SQLiteIDBCursor::SQLiteIDBCursor):

  • Modules/indexeddb/server/SQLiteIDBCursor.h:
  • Modules/indexeddb/server/SQLiteIDBTransaction.cpp:

(WebCore::IDBServer::SQLiteIDBTransaction::maybeOpenBackingStoreCursor):

  • Modules/indexeddb/server/SQLiteIDBTransaction.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteIndex):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformDeleteIndex):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:

(WebCore::IDBObjectStoreInfo::deleteIndex):

  • Modules/indexeddb/shared/IDBObjectStoreInfo.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
11:45 PM Changeset in webkit [195526] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit2

Report upload progress to NetworkLoadClient when using NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=153388

Patch by Alex Christensen <achristensen@webkit.org> on 2016-01-24
Reviewed by Darin Adler.

This fixes http/tests/xmlhttprequest/upload-onload-event.html and a few other tests.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didBecomeDownload):
(WebKit::NetworkLoad::didSendData):
(WebKit::NetworkLoad::didReceiveResponseAsync):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSessionTaskClient::~NetworkSessionTaskClient):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate initWithNetworkSession:]):
(-[WKNetworkSessionDelegate URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:]):
(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):

11:04 PM Changeset in webkit [195525] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, speculative fix for:
Modern IDB: Some IDB tests crash in ~SQLiteIDBBackingStore
https://bugs.webkit.org/show_bug.cgi?id=153418

No new tests.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::~SQLiteIDBBackingStore): Clear the global object

before wiping out the VM.

10:13 PM Changeset in webkit [195524] by Gyuyoung Kim
  • 18 edits in trunk/Source

Reduce PassRefPtr uses in dom - 4
https://bugs.webkit.org/show_bug.cgi?id=153270

Reviewed by Darin Adler.

As a step to remove PassRefPtr uses, this patch reduces the uses in WebCore/dom.

Source/WebCore:

  • bindings/js/JSDeviceMotionEventCustom.cpp:

(WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):

  • dom/DeviceMotionData.cpp:

(WebCore::DeviceMotionData::create):
(WebCore::DeviceMotionData::DeviceMotionData):

  • dom/DeviceMotionData.h:
  • dom/Document.cpp:

(WebCore::Document::setBodyOrFrameset):
(WebCore::Document::setFocusedElement):
(WebCore::Document::setDecoder):
(WebCore::Document::pushCurrentScript):

  • dom/Document.h:
  • dom/Event.cpp:

(WebCore::Event::cloneFor):

  • dom/Event.h:
  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::cloneFor):

  • dom/MouseEvent.h:
  • dom/NodeIterator.cpp:

(WebCore::NodeIterator::NodePointer::NodePointer):
(WebCore::NodeIterator::NodeIterator):

  • dom/NodeIterator.h:

(WebCore::NodeIterator::create):

  • html/RadioInputType.cpp:

(WebCore::RadioInputType::handleKeydownEvent):

  • platform/ios/DeviceMotionClientIOS.mm:

(WebCore::DeviceMotionClientIOS::motionChanged):

  • xml/XSLTProcessor.cpp:

(WebCore::XSLTProcessor::createDocumentFromSource):

Source/WebKit/win:

  • Plugins/PluginView.cpp:

(WebCore::PluginView::focusPluginElement):

Source/WebKit2:

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::focusPluginElement):

9:23 PM Changeset in webkit [195523] by mmaxfield@apple.com
  • 9 edits in trunk/Source/WebCore

[Font Loading] General cleanup
https://bugs.webkit.org/show_bug.cgi?id=153403

Reviewed by Darin Adler.

It turns out that CSSFontFaceSource::m_hasExternalSVGFont exactly equals
whether or not CSSFontFaceSource::m_font is a CachedSVGFont. Therefore,
the variable is redundant.

In addition, it was being passed to functions on CSSFontFaceSource::m_font,
which means it was always true inside the CachedSVGFont subclass and
always false for the CachedFont. Therefore, there is no reason pass this
variable to these functions because its value can be determined at
authorship time.

No new tests because there is no behavior change.

  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::font):
(WebCore::CSSFontFaceSource::CSSFontFaceSource): Deleted.

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

(WebCore::createFontFace):

  • loader/cache/CachedFont.cpp:

(WebCore::CachedFont::ensureCustomFontData):
(WebCore::CachedFont::createFont):

  • loader/cache/CachedFont.h:
  • loader/cache/CachedSVGFont.cpp:

(WebCore::CachedSVGFont::createFont):
(WebCore::CachedSVGFont::ensureCustomFontData):

  • loader/cache/CachedSVGFont.h:
  • platform/network/HTTPParsers.cpp:

(WebCore::isValidHTTPToken):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::uppercaseKnownHTTPMethod):

8:00 PM Changeset in webkit [195522] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: add support for placing Views in DataGrid column headers
https://bugs.webkit.org/show_bug.cgi?id=153387
<rdar://problem/24310797>

Reviewed by Timothy Hatcher.

This patch adds a new DataGrid column property, headerView, allowing a
custom View object to be placed in a column's header cell. The grid ensures
that the left and right edges of the view are kept in sync as columns are
resized. As most views use absolute positioning and are styled in CSS, the
vertical position and height of the view isn't set by the grid.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype.insertColumn):
If the new column includes the headerView column data property,
it should take priority over titleDOMFragment and title text.
The specified View object is inserted into the DOM under the
column's <th> element, and added as a subview of the data grid.
(WebInspector.DataGrid.prototype.layout):
Update header views after performing default layout.
(WebInspector.DataGrid.prototype._showColumn):
Set hidden column property false instead of deleting it.
(WebInspector.DataGrid.prototype._positionHeaderViews):
Update the left and right style positions for all Views embedded in
column header cells, then update their layouts.
(WebInspector.DataGrid.prototype.resizerDragging):
Update header views after column resizers are repositioned.

5:19 PM Changeset in webkit [195521] by Chris Dumez
  • 3 edits in trunk/LayoutTests

Unreviewed, update test after r195497

This test did not make much sense as it was, after the behavior change
in r195497.

  • fast/dom/Document/document-charset-expected.txt:
  • fast/dom/Document/document-charset.html:
5:11 PM Changeset in webkit [195520] by Chris Dumez
  • 45 edits
    2 adds in trunk

An XMLDocument interface should be exposed on the global Window object
https://bugs.webkit.org/show_bug.cgi?id=153378
<rdar://problem/24315465>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C DOM and HTML tests now that more checks are
passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/dom/nodes/Document-constructor-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Expose an XMLDocument interface on the global Window object, as per:

DOMImplementation.createDocument() now returns an XMLDocument instead
of a Document, as per:

Previously, WebKit would alias XMLDocument to Document which caused
some W3C tests to fail.

Chrome and Firefox already match the specification here.

No new tests, already covered by existing tests.

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSDocumentCustom.cpp:

(WebCore::createNewDocumentWrapper):

  • dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocument):

  • dom/DOMImplementation.h:
  • dom/DOMImplementation.idl:
  • dom/Document.cpp:

(WebCore::Document::cloneDocumentWithoutChildren):

  • dom/Document.h:

(WebCore::Document::isXMLDocument):
(WebCore::Document::create): Deleted.
(WebCore::Document::createNonRenderedPlaceholder): Deleted.

  • dom/XMLDocument.h: Added.

(WebCore::XMLDocument::create):
(WebCore::XMLDocument::createXHTML):
(WebCore::XMLDocument::XMLDocument):
(isType):

  • dom/XMLDocument.idl: Added.
  • inspector/DOMPatchSupport.cpp:

(WebCore::DOMPatchSupport::patchDocument):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::setOuterHTML):

  • page/DOMWindow.idl:
  • page/PageSerializer.cpp:

(WebCore::SerializerMarkupAccumulator::SerializerMarkupAccumulator):

  • svg/SVGDocument.cpp:

(WebCore::SVGDocument::SVGDocument):

  • svg/SVGDocument.h:
  • svg/SVGDocument.idl:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::responseXML):

  • xml/XSLTProcessor.cpp:

(WebCore::XSLTProcessor::createDocumentFromSource):

LayoutTests:

Rebaseline some layout tests now that XMLDocument is exposed.

  • fast/dom/DOMImplementation/createDocument-namespace-err-expected.txt:
  • fast/dom/DOMImplementation/script-tests/createDocument-namespace-err.js:
  • fast/dom/Document/clone-node-expected.txt:
  • fast/dom/Document/clone-node.html:
  • fast/dom/Document/xml-document-focus-expected.txt:
  • fast/dom/Document/xml-document-focus.xml:
  • fast/dom/dom-parse-serialize-display-expected.txt:
  • fast/dom/dom-parse-serialize-expected.txt:
  • fast/dom/wrapper-classes-expected.txt:
  • fast/dom/wrapper-classes.html:
  • fast/dom/xmlserializer-serialize-to-string-exception-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-bad-mimetype-expected.txt:
  • http/tests/xmlhttprequest/supported-xml-content-types-expected.txt:
  • platform/mac/fast/dom/Window/window-lookup-precedence-expected.txt:
4:58 PM Changeset in webkit [195519] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Highlight timeline range handles on hover
https://bugs.webkit.org/show_bug.cgi?id=153395
<rdar://problem/24312364>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineRuler.css:

(.timeline-ruler > .selection-handle.clamped):
Gardening. No need to repeat "1px solid".

(.timeline-ruler > .selection-handle:hover, .timeline-ruler > .selection-handle:active):
":active" pseudo selector is needed to keep the handle highligted while it's being dragged
regardress if the mouse cursor is hovering over it or not.

3:43 PM Changeset in webkit [195518] by Simon Fraser
  • 3 edits in trunk/LayoutTests

New WK1 baselines.

  • platform/mac-wk1/displaylists/extent-includes-shadow-expected.txt:
  • platform/mac-wk1/displaylists/extent-includes-transforms-expected.txt:
3:42 PM Changeset in webkit [195517] by beidson@apple.com
  • 9 edits in trunk

Modern IDB: Support IDBObjectStore.createIndex in the SQLite backing store.
https://bugs.webkit.org/show_bug.cgi?id=153410

Reviewed by Darin Adler.

Source/WebCore:

No new tests (Covered by unskipping many existing tests).

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::~SQLiteIDBBackingStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedHasIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedPutIndexRecord):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::maybeCreateBackingStoreCursor):
(WebCore::IDBServer::SQLiteIDBCursor::SQLiteIDBCursor):

  • Modules/indexeddb/server/SQLiteIDBCursor.h:
  • Modules/indexeddb/server/SQLiteIDBTransaction.cpp:

(WebCore::IDBServer::SQLiteIDBTransaction::maybeOpenBackingStoreCursor):

  • Modules/indexeddb/server/SQLiteIDBTransaction.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
12:39 PM Changeset in webkit [195516] by Simon Fraser
  • 7 edits in trunk

Make the dumped display list representation a bit more compact
https://bugs.webkit.org/show_bug.cgi?id=153409

Reviewed by Zalan Bujtas.
Source/WebCore:

Don't make a group for every display list item.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::asText):

LayoutTests:

Updated results.

  • displaylists/extent-includes-shadow-expected.txt:
  • displaylists/extent-includes-transforms-expected.txt:
  • displaylists/layer-dispay-list-expected.txt:
  • displaylists/replay-skip-clipped-rect-expected.txt:
12:39 PM Changeset in webkit [195515] by Simon Fraser
  • 14 edits
    3 adds in trunk

Add testing for display list replay, and skip clipped-out items on replay
https://bugs.webkit.org/show_bug.cgi?id=153408

Reviewed by Zalan Bujtas.
Source/WebCore:

Make it possible to save and serialize a DisplayList of Items which were
actually applied on replay, so that replay-time optimizations can be tested.

This exposes internals.setElementTracksDisplayListReplay() and
internals.replayDisplayListForElement().

Do a trivial replay-time optimization, which is to skip items whose extents are
outside the replay clip.

Test: displaylists/replay-skip-clipped-rect.html

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::GraphicsLayer):

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::setIsTrackingDisplayListReplay):
(WebCore::GraphicsLayer::isTrackingDisplayListReplay):
(WebCore::GraphicsLayer::replayDisplayListAsText):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::layerDisplayListMap): Use a singleton map to store the replay display lists
to avoid bloating GraphicsLayerCA for test-only code. The map stores a pair of the
replay list and a clip rect, which are both dumped. Dumping the clip rect ensures that
we're reporting the replay for the correct tile in a test (since there will be a replay
for each tile).
(WebCore::GraphicsLayerCA::~GraphicsLayerCA):
(WebCore::GraphicsLayerCA::platformCALayerPaintContents):
(WebCore::GraphicsLayerCA::setIsTrackingDisplayListReplay):
(WebCore::GraphicsLayerCA::replayDisplayListAsText):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/displaylists/DisplayList.h:

(WebCore::DisplayList::DisplayList::appendItem):

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::replay): In the unlikely event of tracking replays,
allocate a new DisplayList and append to it items which actually get applied.

  • platform/graphics/displaylists/DisplayListReplayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::setIsTrackingDisplayListReplay):
(WebCore::RenderLayerBacking::replayDisplayListAsText):

  • rendering/RenderLayerBacking.h:
  • testing/Internals.cpp:

(WebCore::Internals::setElementTracksDisplayListReplay):
(WebCore::Internals::replayDisplayListForElement):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

Test that a clipped-out rectangle is not painted.

In order to get the rect into the display list, we need to make the target
compositing layer be tiled, and to be clipped by an ancestor so that only the
second tile renders. (This complexity is required because in simpler scenarios,
the rect is clipped out at recording time.)

  • displaylists/replay-skip-clipped-rect-expected.txt: Added.
  • displaylists/replay-skip-clipped-rect.html: Added.
  • displaylists/resources/dump-target-replay-list.js: Added.

(doTest):

12:39 PM Changeset in webkit [195514] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Layout Test displaylists/extent-includes-transforms.html is flaky on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=153308

Reviewed by Dan Bernstein.

Rather than assuming that a zero-delay timer will fire after the next layer flush,
force a flush with testRunner.display(), which fixes flakiness.

  • displaylists/resources/dump-target-display-list.js:

(doTest):

9:06 AM Changeset in webkit [195513] by mitz@apple.com
  • 2 edits in trunk/Tools

Added project.xcworkspace and xcuserdata to this project’s svn:ignore.

  • LayoutTestRelay/LayoutTestRelay.xcodeproj: Added property svn:ignore.

Jan 23, 2016:

6:47 PM Changeset in webkit [195512] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk

Web Inspector: AXI: node-link-list should be collapsible
https://bugs.webkit.org/show_bug.cgi?id=130911

.:

Added a manual test to test the node list in the Accessibility Inspector

Patch by Aaron Chu <arona.chu@gmail.com> on 2016-01-23
Reviewed by Timothy Hatcher.

  • ManualTests/accessibility/collapsible-node-link-list.html: Added.

Source/WebInspectorUI:

Patch by Aaron Chu <arona.chu@gmail.com> on 2016-01-23
Reviewed by Timothy Hatcher.

Accessibility Inspector: for a very long children node list, only the first 5 nodes are shown.
Remaining nodes are hidden by a "# More…" link by which a user can click to reveal the remainder
of the node list.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility.linkListForNodeIds):

  • UserInterface/Views/Main.css:

(.expand-list-button):
(.node-link-list, .node-link-list li:not([hidden])):
(.node-link-list, .node-link-list li): Deleted.

2:51 PM Changeset in webkit [195511] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

[GTK] Fix media controls displaying without controls attribute
https://bugs.webkit.org/show_bug.cgi?id=152500

Media controls is not displayed without controls attribute by default
when the video element has text track. It'll be displayed on fullscreen
regardless of controls attribute.

Patch by Wonchul Lee <wonchul.lee@collabora.co.uk> on 2016-01-23
Reviewed by Michael Catanzaro.

Source/WebCore:

  • Modules/mediacontrols/mediaControlsGtk.js:

(ControllerGtk.prototype.shouldHaveControls):
(ControllerGtk.prototype.reconnectControls):
(ControllerGtk.prototype.removeControls):
(ControllerGtk.prototype.configureControls): Deleted.

LayoutTests:

  • media/video-controls-no-display-with-text-track-expected.txt: Added.
  • media/video-controls-no-display-with-text-track.html: Added.
2:08 AM Changeset in webkit [195510] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

CMake build fix after r195494.

  • PlatformMac.cmake:

WebKit2 needs to be able to find DataDetectors.h.

1:44 AM Changeset in webkit [195509] by commit-queue@webkit.org
  • 8 edits in trunk/Source

Use credentials from a URL with NetworkSession like we did with ResourceHandle
https://bugs.webkit.org/show_bug.cgi?id=153328

Patch by Alex Christensen <achristensen@webkit.org> on 2016-01-23
Reviewed by Alexey Proskuryakov.

Source/WebCore:

This patch fixes at least http/tests/xmlhttprequest/basic-auth-credentials-escaping.html when using NetworkSession.

  • platform/network/ProtectionSpaceBase.h:

(WebCore::ProtectionSpaceBase::encodingRequiresPlatformData):

  • platform/network/ResourceRequestBase.h:

Add some WEBCORE_EXPORT macros for functions that are now used in WebKit2.

Source/WebKit2:

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::NetworkLoad):
createDataTaskWithRequest is being removed, so use std::make_unique<NetworkDataTask> directly instead.
Also, create the task even if we are deferring loading. Don't call resume if we are deferring loading.

  • NetworkProcess/NetworkSession.h:

Callbacks are not just used in NetworkSessionTaskClient, so declare them outside.
The NetworkDataTask now takes a ResourceRequest so we can strip its credentials.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
Try credentials stored with the NetworkDataTask before asking the client for credentials.
(WebKit::NetworkSession::~NetworkSession):
(WebKit::NetworkSession::dataTaskForIdentifier):
(WebKit::NetworkSession::takeDownloadID):
(WebKit::NetworkDataTask::NetworkDataTask):
Strip the credentials from the url before creating the task because we do not know the authentication type.
We will use these credentials when a challenge is received.
(WebKit::NetworkDataTask::~NetworkDataTask):
(WebKit::NetworkDataTask::tryPasswordBasedAuthentication):
If we have credentials from the initial URL, try using them if it is appropriate.
(WebKit::NetworkDataTask::cancel):
(WebKit::NetworkSession::createDataTaskWithRequest): Deleted.

  • Shared/Authentication/AuthenticationManager.h:
12:19 AM Changeset in webkit [195508] by beidson@apple.com
  • 4 edits in trunk

Modern IDB: Implement clearing object stores and opening cursors in the SQLite backend.
https://bugs.webkit.org/show_bug.cgi?id=153396

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Some failing tests now pass, others improved).

Copy more LegacyIDB SQLite backend code over to the new SQLite backend.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::clearObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::openCursor):
(WebCore::IDBServer::SQLiteIDBBackingStore::iterateCursor):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
Note: See TracTimeline for information about the timeline view.