Timeline



Feb 16, 2016:

11:40 PM WebKitGTK/2.10.x edited by Carlos Garcia Campos
(diff)
11:18 PM Changeset in webkit [196689] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r196620): Web Inspector: Selecting last message in the console makes the scrollbar visible
https://bugs.webkit.org/show_bug.cgi?id=154326
<rdar://problem/24692717>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/LogContentView.css:

(.console-item.selected::after):
Make sure the selected message marker (blue vertical line) doesn't
go over the content view.

11:16 PM Changeset in webkit [196688] by Carlos Garcia Campos
  • 22 edits
    13 adds in trunk

Add a way to test ScrollAnimator
https://bugs.webkit.org/show_bug.cgi?id=153479

Reviewed by Michael Catanzaro.

Source/WebCore:

Tests: fast/scrolling/overlay-scrollbars-scroll-corner.html

fast/scrolling/scroll-animator-basic-events.html
fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html
fast/scrolling/scroll-animator-select-list-events.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/FrameView.cpp:

(WebCore::FrameView::usesMockScrollAnimator):
(WebCore::FrameView::logMockScrollAnimatorMessage):

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

(WebCore::Settings::setUsesMockScrollAnimator):
(WebCore::Settings::usesMockScrollAnimator):

  • page/Settings.h:
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::scrollAnimator):

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::usesMockScrollAnimator):
(WebCore::ScrollableArea::logMockScrollAnimatorMessage):

  • platform/mock/ScrollAnimatorMock.cpp: Added.

(WebCore::ScrollAnimatorMock::create):
(WebCore::ScrollAnimatorMock::ScrollAnimatorMock):
(WebCore::ScrollAnimatorMock::~ScrollAnimatorMock):
(WebCore::ScrollAnimatorMock::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorMock::didAddHorizontalScrollbar):
(WebCore::ScrollAnimatorMock::willRemoveVerticalScrollbar):
(WebCore::ScrollAnimatorMock::willRemoveHorizontalScrollbar):
(WebCore::ScrollAnimatorMock::mouseEnteredContentArea):
(WebCore::ScrollAnimatorMock::mouseMovedInContentArea):
(WebCore::ScrollAnimatorMock::mouseExitedContentArea):
(WebCore::ScrollAnimatorMock::mouseEnteredScrollbar):
(WebCore::ScrollAnimatorMock::mouseExitedScrollbar):
(WebCore::ScrollAnimatorMock::mouseIsDownInScrollbar):

  • platform/mock/ScrollAnimatorMock.h: Added.
  • platform/mock/ScrollbarThemeMock.cpp:

(WebCore::ScrollbarThemeMock::usesOverlayScrollbars):

  • platform/mock/ScrollbarThemeMock.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::usesMockScrollAnimator):
(WebCore::RenderLayer::logMockScrollAnimatorMessage):

  • rendering/RenderLayer.h:
  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::usesMockScrollAnimator):
(WebCore::RenderListBox::logMockScrollAnimatorMessage):

  • rendering/RenderListBox.h:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setUsesMockScrollAnimator):

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

LayoutTests:

  • compositing/overflow/overflow-scrollbar-layer-positions-expected.txt:
  • fast/scrolling/overlay-scrollbars-scroll-corner-expected.html: Added.
  • fast/scrolling/overlay-scrollbars-scroll-corner.html: Added.
  • fast/scrolling/scroll-animator-basic-events-expected.txt: Added.
  • fast/scrolling/scroll-animator-basic-events.html: Added.
  • fast/scrolling/scroll-animator-overlay-scrollbars-hovered-expected.txt: Added.
  • fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html: Added.
  • fast/scrolling/scroll-animator-select-list-events-expected.txt: Added.
  • fast/scrolling/scroll-animator-select-list-events.html: Added.
  • fast/scrolling/scrollbar-tickmarks-hittest.html:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/fast/scrolling/scroll-animator-basic-events-expected.txt: Added.
  • platform/mac-wk1/fast/scrolling/scroll-animator-select-list-events-expected.txt: Added.
10:54 PM Changeset in webkit [196687] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Enable overlay scrollbars in GTK+ after r196641.

This was blocked by bug #153404, but the commit that introduced
the regression was rolled out in r196641.

  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::ScrollbarThemeGtk::ScrollbarThemeGtk):

10:13 PM Changeset in webkit [196686] by fpizlo@apple.com
  • 6 edits in trunk/Source

FTL_USES_B3 should be unconditionally true
https://bugs.webkit.org/show_bug.cgi?id=154324

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

  • dfg/DFGCommon.h:

Source/WTF:

  • wtf/Platform.h:
9:29 PM Changeset in webkit [196685] by fpizlo@apple.com
  • 3 edits
    3 adds in trunk/Source/JavaScriptCore

FTL should support CompareEq(String:, String:)
https://bugs.webkit.org/show_bug.cgi?id=154269
rdar://problem/24499921

Reviewed by Benjamin Poulain.

Looks like a slight pdfjs slow-down, probably because we're having some recompilations. I
think we should land the increased coverage first and fix the issues after, especially since
the regression is so small and doesn't have a statistically significant effect on the overall
score.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileCompareEq):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToLLVM::nonSpeculativeCompare):
(JSC::FTL::DFG::LowerDFGToLLVM::stringsEqual):

  • tests/stress/ftl-string-equality.js: Added.
  • tests/stress/ftl-string-ident-equality.js: Added.
  • tests/stress/ftl-string-strict-equality.js: Added.
8:25 PM Changeset in webkit [196684] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

FTL should support NewTypedArray
https://bugs.webkit.org/show_bug.cgi?id=154268

Reviewed by Saam Barati.

3% speed-up on pdfjs. This was already covered by many different tests.

Rolling this back in after fixing the butterfly argument.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewArrayWithSize):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToLLVM::compileAllocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateBasicStorageAndGetEnd):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateBasicStorage):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateObject):

8:11 PM Changeset in webkit [196683] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.101

New tag.

8:04 PM Changeset in webkit [196682] by bshafiei@apple.com
  • 10 edits in tags/Safari-601.1.46.100.1

Merge patch for r192036 and r196679. rdar://problem/24355523

8:03 PM Changeset in webkit [196681] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.46.100.1/Source

Versioning.

7:58 PM Changeset in webkit [196680] by bshafiei@apple.com
  • 10 edits in branches/safari-601.1.46-branch

Merge patch for r192036 and r196679. rdar://problem/24355523

7:27 PM Changeset in webkit [196679] by dino@apple.com
  • 4 edits in trunk/Source/WebKit2

Allow double tap to zoom in fast-click pages
https://bugs.webkit.org/show_bug.cgi?id=154318
<rdar://problem/24223767>

Reviewed by Simon Fraser and Benjamin Poulain.

Most of the patch comes from Jon Lee.

Our fast-click algorithm exposed a number of cases where
people missed the double-tap-to-zoom behaviour. In particular,
when you double tap on a large body of text, typical in
blogs and articles.

This patch enhances the algorithm to have a parallel
double-tap gesture recognizer in the situations where
fast-click is enabled. This new gesture recongizer does
not cause the single tap to block for 350ms, so clicks
are still dispatched fast. If it fires, we already have
some information about whether we have a pending double
tap, based on the first tap.

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::disableDoubleTapGesturesDuringTapIfNecessary): Remove the optimization
that only told the content view to disable on pages that allowed double taps. We now allow
them even on fast click pages.

  • UIProcess/ios/WKContentViewInteraction.h: Add the new UITapGestureRecognizer for double taps

in fast click pages. This is called nonBlockingDoubleTapGestureRecognizer because, unlike
the existing DoubleTapGestureRecognizer, this one does not force the singleTapRecognizer
to wait.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]): Set up the new UITapGestureRecognizer.
(-[WKContentView cleanupInteraction]): And remove it when we're done.
(-[WKContentView _removeDefaultGestureRecognizers]): Ditto.
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView _inspectorNodeSearchRecognized:]): Something happened, we are no longer in
a potential double tap situation.
(-[WKContentView _disableDoubleTapGesturesDuringTapIfNecessary:]): Remove the check
for potential tap in progress.
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView _highlightLongPressRecognized:]): Again, something happened, so we are
no longer in a double tap situation.
(-[WKContentView _longPressRecognized:]): Ditto.
(-[WKContentView _singleTapRecognized:]): Ditto.
(-[WKContentView _doubleTapRecognized:]): Ditto.
(-[WKContentView _resetIsDoubleTapPending]):
(-[WKContentView _fastDoubleTapRecognized:]): We're now pending a double tap.
(-[WKContentView _twoFingerDoubleTapRecognized:]):
(-[WKContentView _didNotHandleTapAsClick:]): If we get here and we have a pending
double tap, then trigger a zoom operation.
(-[WKContentView _setDoubleTapGesturesEnabled:]):

6:34 PM Changeset in webkit [196678] by Chris Dumez
  • 4 edits in trunk/Source

JSDOMWindow::getOwnPropertySlot should just call getStaticPropertySlot
https://bugs.webkit.org/show_bug.cgi?id=154257

Patch by Gavin Barraclough <barraclough@apple.com> on 2016-02-16
Reviewed by Chris Dumez.

Source/JavaScriptCore:

  • runtime/Lookup.h:

(JSC::getStaticPropertySlot):
(JSC::getStaticFunctionSlot):
(JSC::getStaticValueSlot):

  • this could all do with a little more love. But enforce the basic precedence:

(1) regular storage properties always win over static table properties.
(2) if properties have been reified, don't consult the static tables.
(3) only if the property is not present on the object & not reified

should the static hashtable be consulted.

Source/WebCore:

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::getOwnPropertySlot):

  • JSDOMWindow::getOwnPropertySlot should just call getStaticPropertySlot
6:20 PM Changeset in webkit [196677] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.100.1

New tag.

5:37 PM Changeset in webkit [196676] by barraclough@apple.com
  • 8 edits in trunk

JSDOMWindow::getOwnPropertySlot should not search photo chain
https://bugs.webkit.org/show_bug.cgi?id=154102

Reviewed by Chris Dumez.

Should only return *own* properties.

Source/JavaScriptCore:

  • runtime/JSObject.cpp:

(JSC::JSObject::getOwnPropertyDescriptor):

  • remove hack/special-case for DOMWindow; we no longer need this.

Source/WebCore:

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotNamedItemGetter):

LayoutTests:

  • fast/dom/Window/es52-globals-expected.txt:
  • http/tests/security/window-named-valueOf-expected.txt:
  • imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
    • update test results.
5:29 PM Changeset in webkit [196675] by keith_miller@apple.com
  • 12 edits
    1 add in trunk

Spread operator should be allowed when not the first argument of parameter list
https://bugs.webkit.org/show_bug.cgi?id=152721

Reviewed by Saam Barati.

Source/JavaScriptCore:

Spread arguments to functions should now be ES6 compliant. Before we
would only take a spread operator if it was the sole argument to a
function. Additionally, we would not use the Symbol.iterator on the
object to generate the arguments. Instead we would do a loop up to the
length mapping indexed properties to the corresponding argument. We fix
both these issues by doing an AST transformation from foo(...a, b, ...c, d)
to foo(...[...a, b, ...c, d]) (where the spread on the rhs uses the
old spread semantics). This solution has the downside of requiring the
allocation of another object and copying each element twice but avoids a
large change to the vm calling convention.

  • interpreter/Interpreter.cpp:

(JSC::loadVarargs):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createElementList):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseArguments):
(JSC::Parser<LexerType>::parseArgument):
(JSC::Parser<LexerType>::parseMemberExpression):

  • parser/Parser.h:
  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createElementList):

  • tests/es6.yaml:
  • tests/stress/spread-calling.js: Added.

(testFunction):
(testEmpty):
(makeObject):
(otherIterator.return.next):
(otherIterator):
(totalIter):
(throwingIter.return.next):
(throwingIter):
(i.catch):

LayoutTests:

Update tests with new semantics of spread calling.

  • js/basic-spread-expected.txt:
  • js/parser-syntax-check-expected.txt:
  • js/script-tests/basic-spread.js:
  • js/script-tests/parser-syntax-check.js:
5:14 PM Changeset in webkit [196674] by achristensen@apple.com
  • 4 edits in trunk/Source

CMake build fix.

  • PlatformMac.cmake:
5:11 PM Changeset in webkit [196673] by Chris Dumez
  • 10 edits
    2 adds
    3 deletes in trunk

Navigator.geolocation should not be marked a [Replaceable] and should be on the prototype
https://bugs.webkit.org/show_bug.cgi?id=154304
<rdar://problem/24685092>

Reviewed by Gavin Barraclough.

LayoutTests/imported/w3c:

Rebaseline test now that more checks are passing.

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

Source/WebCore:

  1. Drop the [Replaceable] IDL extended attribute for navigator.geolocation as this does not match other browsers or the specification:
  2. Move Navigator attributes to the prototype, where they should be as per the Web IDL specification.

The previous behavior was meant as a workaround for a bug in the Amazon
iOS app (rdar://problem/16332749). However, I have confirmed that the
latest Amazon App no longer has any issue with those changes.

Test: js/navigator-set-geolocation.html

  • Modules/geolocation/NavigatorGeolocation.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(InterfaceRequiresAttributesOnInstanceForCompatibility): Deleted.

LayoutTests:

  • fast/dom/Geolocation/enabled-expected.txt:
  • fast/dom/Geolocation/script-tests/enabled.js:
  • js/dom/delete-syntax-expected.txt:
  • js/dom/script-tests/delete-syntax.js:

Update tests as they expected the navigator properties to be on the
instance rather than the prototype.

  • js/dom/script-tests/shadow-navigator-geolocation-in-strict-mode-does-not-throw.js: Removed.
  • js/dom/shadow-navigator-geolocation-in-strict-mode-does-not-throw-expected.txt: Removed.
  • js/dom/shadow-navigator-geolocation-in-strict-mode-does-not-throw.html: Removed.

Drop outdated test.

  • js/navigator-set-geolocation-expected.txt: Added.
  • js/navigator-set-geolocation.html: Added.

Add test to make sure that Navigator.geolocation cannot be set. I verified that
this test passes in both Firefox and Chrome.

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

[JSC] Enable B3 on ARM64
https://bugs.webkit.org/show_bug.cgi?id=154275

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-02-16
Reviewed by Mark Lam.

The port passes more tests than LLVM now, let's use it by default.

  • dfg/DFGCommon.h:
4:30 PM Changeset in webkit [196671] by achristensen@apple.com
  • 4 edits in trunk/Source/WebKit2

Use NSURLCredential from serverTrust when evaluating server trust AuthenticationChallenges with NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=154316

Reviewed by Brady Eidson.

This fixes http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html
and many other layout tests that use https because it allows https connections with servers
with self-signed certificates when TestController::canAuthenticateAgainstProtectionSpace in
WebKitTestRunner says it's OK, or when any other WKPageNavigationClient says it's ok.

  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::serverTrustCredential):

4:00 PM Changeset in webkit [196670] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

REGRESSION(r196268): WTFCrashWithSecurityImplication on SVG path animation tests
https://bugs.webkit.org/show_bug.cgi?id=154221

Reviewed by Brent Fulgham.

In r196268, a destructor was added to SVGListPropertyTearOff that notifies
its wrapper (the SVGAnimatedListPropertyTearoff) about its deletion. This
allows the wrapper to nullify any references to the wrapped content.

We needed to do the same thing for SVGPathSegListPropertyTearOff. Both
SVGPathSegListPropertyTearOff and SVGListPropertyTearOff inherit from
SVGListProperty and both hold pointers to SVGAnimatedListPropertyTearOff
which needs to be notified.

Tests: exiting svg path animation tests should not crash.

  • svg/properties/SVGPathSegListPropertyTearOff.h:

(WebCore::SVGPathSegListPropertyTearOff::~SVGPathSegListPropertyTearOff):

3:59 PM Changeset in webkit [196669] by Said Abou-Hallawa
  • 4 edits
    2 adds in trunk

REGRESSION (r190430): WTFCrashWithSecurityImplication in:void SVGRootInlineBox::layoutCharactersInTextBoxes()
https://bugs.webkit.org/show_bug.cgi?id=154185

Reviewed by Ryosuke Niwa.
Source/WebCore:

This is a regression caused by adding support for HTMLSlotElement. The
crash happens when adding an HTMLSlotElement to anther element which should
not have it as a child like SVGTextElement for example. In this case, we
were creating a RenderText which should not be happen inside an SVG document.
The RenderText::createTextBox() was creating InlineTextBox for the slot's
text and attach it to the SVGRootInlineBox. In layoutCharactersInTextBoxes(),
the assumption is the inline box is either SVGInlineTextBox or SVGInlineFlowBox.
But since we have an InlineTextBox instead, the crash happens when casting
the InlineTextBox to SVGInlineFlowBox.

The fix is for createRenderTreeForSlotAssignees() to not create a renderer
when the parent element should not have a renderer for the this element.
This is the same thing we do for createRenderer() which handles the non
HTMLSlotElement case and which is called also from createRenderTreeRecursively().

Test: fast/shadow-dom/text-slot-child-crash.svg

  • style/StyleTreeResolver.cpp:

(WebCore::Style::moveToFlowThreadIfNeeded):
(WebCore::Style::TreeResolver::createRenderer): Delete the check for
shouldCreateRenderer() and handling the case when resolvedStyle is null
since these are handled by the caller createRenderTreeRecursively().

(WebCore::Style::TreeResolver::createRenderTreeForSlotAssignees):
Assert shouldCreateRenderer() is true for this element.

(WebCore::Style::TreeResolver::createRenderTreeRecursively): Don't create
the renderer if shouldCreateRenderer() returns false. Also handle the case
when resolvedStyle is null and pass the new style to createRenderer().

  • style/StyleTreeResolver.h:

LayoutTests:


Ensure that adding an HTMLSlotElement with text to an SVGTextElement will
not create a renderer and we won't crash.

  • fast/shadow-dom/text-slot-child-crash-expected.txt: Added.
  • fast/shadow-dom/text-slot-child-crash.svg: Added.
3:47 PM Changeset in webkit [196668] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

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

This change caused LayoutTest crashes (Requested by ryanhaddad
on #webkit).

Reverted changeset:

"FTL should support NewTypedArray"
https://bugs.webkit.org/show_bug.cgi?id=154268
http://trac.webkit.org/changeset/196652

3:45 PM Changeset in webkit [196667] by BJ Burg
  • 4 edits in trunk/Source/JavaScriptCore

RemoteInspector should forward new automation session requests to its client
https://bugs.webkit.org/show_bug.cgi?id=154260
<rdar://problem/24663313>

Reviewed by Timothy Hatcher.

  • inspector/remote/RemoteInspector.h:
  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::xpcConnectionReceivedMessage):
(Inspector::RemoteInspector::listingForAutomationTarget):
Use the correct key for the session identifier in the listing. The name()
override for RemoteAutomationTarget is actually the session identifier.

(Inspector::RemoteInspector::receivedAutomationSessionRequestMessage):

  • inspector/remote/RemoteInspectorConstants.h: Add new constants.
3:24 PM Changeset in webkit [196666] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Every RenderLayer should not have to remove itself from the scrollableArea set
https://bugs.webkit.org/show_bug.cgi?id=154311

Reviewed by Zalan Bujtas.

A subset of RenderLayers are are scrollable, and get registered on the FrameView,
but we pay the cost of a hash lookup for removal on every RenderLayer, which is a waste.

Store a bit that tells RenderLayer that it's in the set and needs to be removed.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::~RenderLayer):
(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLayer.h:
3:24 PM Changeset in webkit [196665] by Simon Fraser
  • 3 edits
    5 adds in trunk/LayoutTests

Add tests for iframe and overflow scrollability after navigating back
https://bugs.webkit.org/show_bug.cgi?id=154300

Reviewed by Brent Fulgham.

Test that sends mousewheel events to overflow and iframe, before and after navigating
forward then back.

These tests detect the regression caused by r188659.

  • fast/scrolling/iframe-scrollable-after-back-expected.txt: Added.
  • fast/scrolling/iframe-scrollable-after-back.html: Added.
  • fast/scrolling/overflow-scrollable-after-back-expected.txt: Added.
  • fast/scrolling/overflow-scrollable-after-back.html: Added.
  • fast/scrolling/resources/scroll-notifying-page.html: Added.
  • platform/ios-simulator/TestExpectations: Skip on iOS.
3:22 PM Changeset in webkit [196664] by dbates@webkit.org
  • 12 edits in trunk

CSP: Update violation report 'Content-Type' header
https://bugs.webkit.org/show_bug.cgi?id=153166
<rdar://problem/24383327>

Reviewed by Brent Fulgham.

Source/WebCore:

Inspired by Blink patch:
<https://src.chromium.org/viewvc/blink?view=rev&revision=154215>

Post the Content Security Policy violation report with Content-Type application/csp-report as
per section Reporting of the Content Security Policy 2.0 spec., <https://www.w3.org/TR/2015/CR-CSP2-20150721/>.

Currently we post CSP violation reports with Content-Type application/json.

  • html/parser/XSSAuditorDelegate.cpp:

(WebCore::XSSAuditorDelegate::didBlockScript): Use report type ViolationReportType::XSSAuditor to PingLoader.

  • loader/PingLoader.cpp:

(WebCore::PingLoader::sendViolationReport): Modified to take argument of type ViolationReportType
to determine the appropriate Content-Type header to use for the report. For a XSS Auditor violation report
we use Content-Type application/json. For a Content Security Policy violation report we use Content-Type
application/csp-report. Additionally, pass a ASCIILiteral() to ResourceRequestBase::setHTTPMethod()
as opposed to a constant string literal to avoid a copy of a constant string literal.

  • loader/PingLoader.h: Add enum class ViolationReportType.
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::reportViolation): Use report type ViolationReportType::ContentSecurityPolicy.

LayoutTests:

Update expected results now that we post the Content Security Policy violation report with
Content-Type application/csp-report.

  • TestExpectations: Update associated bugs for entries that still fail.
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-toggled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-same-origin-no-cookies-when-private-browsing-toggled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-when-private-browsing-enabled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-from-child-frame-expected.txt: Fix up HTTP_REFERER and csp-report

to reflect the correct value for HTTP_REFERER and the correct values for the report-uri and document-uri keys in the CSP
report JSON object.

3:16 PM Changeset in webkit [196663] by rniwa@webkit.org
  • 6 edits
    1 add in trunk/Websites/perf.webkit.org

Extract the code specific to v2 UI out of shared statistics.js
https://bugs.webkit.org/show_bug.cgi?id=154277

Reviewed by Chris Dumez.

Extracted statistics-strategies.js out of statistics.js for v2 UI and detect-changes.js. The intent is to
deprecate this file once we implement refined statistics tools in v3 UI and adopt it in detect-changes.js.

  • public/shared/statistics.js:

(Statistics.movingAverage): Extracted from the "Simple Moving Average" strategy.
(Statistics.cumultaiveMovingAverage): Extracted from the "Cumulative Moving Average" strategy.
(Statistics.exponentialMovingAverage): Extracted from the "Exponential Moving Average" strategy.
Use a temporary "movingAverage" to keep the last moving average instead of relying on the previous
entry in "averages" array to avoid special casing an array of length 1 and starting the loop at i = 1.
(Statistics.segmentTimeSeriesGreedyWithStudentsTTest): Extracted from "Segmentation: Recursive t-test"
strategy. Don't create the list of averages to match segmentTimeSeriesByMaximizingSchwarzCriterion here.
It's done in newly added averagesFromSegments.
(Statistics.segmentTimeSeriesByMaximizingSchwarzCriterion): Extracted from
"Segmentation: Schwarz criterion" strategy.
(.recursivelySplitIntoTwoSegmentsAtMaxTIfSignificantlyDifferent): Just store the start index to match

  • public/v2/app.js:

(App.Pane.updateStatisticsTools):
(App.Pane._computeMovingAverageAndOutliers):

  • public/v2/data.js:
  • public/v2/index.html:
  • public/v2/statistics-strategies.js: Added.

(StatisticsStrategies.MovingAverageStrategies): Added.
(averagesFromSegments): Extracted from "Segmentation: Schwarz criterion" strategy. Now used by both
"Segmentation: Recursive t-test" and "Segmentation: Schwarz criterion" strategies.
(StatisticsStrategies.EnvelopingStrategies): Moved from Statistics.EnvelopingStrategies.
(StatisticsStrategies.TestRangeSelectionStrategies): Moved from Statistics.TestRangeSelectionStrategies.
(createWesternElectricRule): Moved from statistics.js.
(countValuesOnSameSide): Ditto.
(StatisticsStrategies.executeStrategy): Moved from Statistics.executeStrategy.

  • tools/detect-changes.js:

(computeRangesForTesting):

3:13 PM Changeset in webkit [196662] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking pageoverlay/overlay-installation.html as flaky on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=153337

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
2:57 PM Changeset in webkit [196661] by andersca@apple.com
  • 13 edits
    1 delete in trunk/Source/WebKit2

Use pid_t everywhere, instead of PlatformProcessIdentifier
https://bugs.webkit.org/show_bug.cgi?id=154306

Reviewed by Sam Weinig.

  • Platform/IPC/Connection.h:
  • Platform/PlatformProcessIdentifier.h: Removed.
  • UIProcess/API/efl/tests/test_ewk2_context.cpp:

(TEST_F):

  • UIProcess/ChildProcessProxy.h:

(WebKit::ChildProcessProxy::processIdentifier):

  • UIProcess/Launcher/ProcessLauncher.cpp:

(WebKit::ProcessLauncher::didFinishLaunchingProcess):

  • UIProcess/Launcher/ProcessLauncher.h:

(WebKit::ProcessLauncher::processIdentifier):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::processIdentifier):

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

(WebKit::WebProcessPool::networkProcessIdentifier):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.h:
  • WebKit2.xcodeproj/project.pbxproj:
2:54 PM Changeset in webkit [196660] by andersca@apple.com
  • 2 edits
    2 deletes in trunk/Source/WebKit2

Remove WebKit2 header cruft
https://bugs.webkit.org/show_bug.cgi?id=154309

Reviewed by Sam Weinig.

  • WebKit2.xcodeproj/project.pbxproj:
  • mac/WKError.h: Removed.
  • mac/WKPreferences.h: Removed.
2:43 PM Changeset in webkit [196659] by andersca@apple.com
  • 3 edits
    4 deletes in trunk/Source/WebKit2

Remove unused environment variable classes
https://bugs.webkit.org/show_bug.cgi?id=154308

Reviewed by Tim Horton.

  • UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.h: Removed.
  • UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.mm: Removed.

(WebKit::DynamicLinkerEnvironmentExtractor::DynamicLinkerEnvironmentExtractor): Deleted.
(WebKit::DynamicLinkerEnvironmentExtractor::processEnvironmentVariable): Deleted.
(WebKit::DynamicLinkerEnvironmentExtractor::processLoadCommand): Deleted.
(WebKit::DynamicLinkerEnvironmentExtractor::processLoadCommands): Deleted.
(WebKit::DynamicLinkerEnvironmentExtractor::processSingleArchitecture): Deleted.
(WebKit::DynamicLinkerEnvironmentExtractor::processFatFile): Deleted.
(WebKit::DynamicLinkerEnvironmentExtractor::getExtractedEnvironmentVariables): Deleted.

  • UIProcess/Launcher/mac/EnvironmentVariables.cpp: Removed.

(WebKit::EnvironmentVariables::EnvironmentVariables): Deleted.
(WebKit::EnvironmentVariables::~EnvironmentVariables): Deleted.
(WebKit::EnvironmentVariables::set): Deleted.
(WebKit::EnvironmentVariables::get): Deleted.
(WebKit::EnvironmentVariables::appendValue): Deleted.
(WebKit::EnvironmentVariables::valueIfVariableHasName): Deleted.
(WebKit::EnvironmentVariables::createStringForVariable): Deleted.
(WebKit::EnvironmentVariables::copyEnvironmentVariables): Deleted.
(WebKit::EnvironmentVariables::dump): Deleted.

  • UIProcess/Launcher/mac/EnvironmentVariables.h: Removed.

(WebKit::EnvironmentVariables::environmentPointer): Deleted.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:
  • WebKit2.xcodeproj/project.pbxproj:
2:01 PM Changeset in webkit [196658] by sbarati@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

SamplingProfiler still fails with ASan enabled
https://bugs.webkit.org/show_bug.cgi?id=154301
<rdar://problem/24679502>

Reviewed by Filip Pizlo.

To fix this issue, I've come up with unsafe versions
of all operations that load memory from the thread's call
frame. All these new unsafe methods are marked with SUPPRESS_ASAN.

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::callSiteAsRawBits):
(JSC::CallFrame::unsafeCallSiteAsRawBits):
(JSC::CallFrame::callSiteIndex):
(JSC::CallFrame::unsafeCallSiteIndex):
(JSC::CallFrame::stack):
(JSC::CallFrame::callerFrame):
(JSC::CallFrame::unsafeCallerFrame):
(JSC::CallFrame::friendlyFunctionName):

  • interpreter/CallFrame.h:

(JSC::ExecState::calleeAsValue):
(JSC::ExecState::callee):
(JSC::ExecState::unsafeCallee):
(JSC::ExecState::codeBlock):
(JSC::ExecState::unsafeCodeBlock):
(JSC::ExecState::scope):
(JSC::ExecState::callerFrame):
(JSC::ExecState::callerFrameOrVMEntryFrame):
(JSC::ExecState::unsafeCallerFrameOrVMEntryFrame):
(JSC::ExecState::callerFrameOffset):
(JSC::ExecState::callerFrameAndPC):
(JSC::ExecState::unsafeCallerFrameAndPC):

  • interpreter/Register.h:

(JSC::Register::codeBlock):
(JSC::Register::asanUnsafeCodeBlock):
(JSC::Register::unboxedInt32):
(JSC::Register::tag):
(JSC::Register::unsafeTag):
(JSC::Register::payload):

  • interpreter/VMEntryRecord.h:

(JSC::VMEntryRecord::prevTopCallFrame):
(JSC::VMEntryRecord::unsafePrevTopCallFrame):
(JSC::VMEntryRecord::prevTopVMEntryFrame):
(JSC::VMEntryRecord::unsafePrevTopVMEntryFrame):

  • runtime/SamplingProfiler.cpp:

(JSC::FrameWalker::walk):
(JSC::FrameWalker::advanceToParentFrame):
(JSC::FrameWalker::isAtTop):
(JSC::FrameWalker::resetAtMachineFrame):

1:42 PM Changeset in webkit [196657] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator after r196648

Unreviewed test gardening.

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
1:25 PM Changeset in webkit [196656] by achristensen@apple.com
  • 7 edits in trunk/Source

Add checks before redirecting with NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=154298

Reviewed by Andy Estes.

Source/WebCore:

This fixes http/tests/security/cors-post-redirect-307.html and
http/tests/navigation/post-307-response.html when using NetworkSession.

  • platform/network/ResourceRequestBase.h:

WEBCORE_EXPORT some functions newly used in WebKit2.

Source/WebKit2:

  • NetworkProcess/NetworkDataTask.h:

(WebKit::NetworkDataTask::create):
(WebKit::NetworkDataTask::setPendingDownload):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::NetworkLoad):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTask::NetworkDataTask):
(WebKit::NetworkDataTask::~NetworkDataTask):
(WebKit::NetworkDataTask::willPerformHTTPRedirection):
Implemented based on ResourceHandle::willSendRequest but with two notable exceptions:

  1. When using NSURLConnection, the last http method and the current http method are not always equal, and this

check needs to change the current http method to match the last http method when being redirected with an http
status code 307. When using NSURLSession, the current http method is already updated properly.

  1. I did not copy the part of ResourceHandle::willSendRequest that uses a CredentialStorage. I'm trying to avoid

using CredentialStorages with NSURLSession.
(WebKit::NetworkDataTask::scheduleFailure):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):

1:18 PM Changeset in webkit [196655] by dbates@webkit.org
  • 4 edits in trunk

CSP: Fix parsing of 'host/path' source expressions
https://bugs.webkit.org/show_bug.cgi?id=153170
<rdar://problem/24383407>

Reviewed by Brent Fulgham.

Source/WebCore:

Merged from Blink (patch by Mike West):
<https://src.chromium.org/viewvc/blink?revision=154875&view=revision>

Fixes an issue where a source of the form example.com/A/ was incorrectly considered
invalid and hence such a requested resource would be blocked. A source of this form
is valid by the definition of host-source in section Source List Syntax of the Content
Security Policy 2.0 spec., <http://www.w3.org/TR/2015/CR-CSP2-20150721/>.

  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::ContentSecurityPolicySourceList::parseSource):

LayoutTests:

Remove entry for test http/tests/security/contentSecurityPolicy/source-list-parsing-paths-03.html
as it now passes.

1:17 PM Changeset in webkit [196654] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

JSContext Inspector: Support for inline source maps
https://bugs.webkit.org/show_bug.cgi?id=154303
<rdar://problem/24670392>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-02-16
Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Base/URLUtilities.js:

(parseDataURL):
Break a data URL into components.

  • UserInterface/Controllers/SourceMapManager.js:

(WebInspector.SourceMapManager.prototype._loadAndParseSourceMap):
Handle a data URL without using NetworkAgent. Also move references
to a main frame after checking for NetworkAgent.

  • UserInterface/Models/SourceMap.js:

(WebInspector.SourceMap.prototype.get sourceMappingBasePathURLComponents):

  • UserInterface/Models/SourceMapResource.js:

(WebInspector.SourceMapResource.prototype.get sourceMapDisplaySubpath):
Handle JavaScript debuggable script URLs which may not be complete URLs.

(WebInspector.SourceMapResource.prototype.requestContentFromBackend):
Also handle if NetworkAgent does not exist.

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel):
When connected to a JavaScript debuggable we were hiding disclosure
triangles as we did not expect resources to have subresources. If
a SourceMap is added, show them again.

LayoutTests:

  • inspector/unit-tests/url-utilities-expected.txt: Added.
  • inspector/unit-tests/url-utilities.html: Added.
1:16 PM Changeset in webkit [196653] by dbates@webkit.org
  • 4 edits in trunk

CSP: Disallow an empty host in a host-source source expression
https://bugs.webkit.org/show_bug.cgi?id=153168
<rdar://problem/24383366>

Reviewed by Brent Fulgham.

Source/WebCore:

Merged from Blink (patch by rob@robwu.nl):
<https://src.chromium.org/viewvc/blink?revision=180407&view=revision>

  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::ContentSecurityPolicySourceList::parseSource):

LayoutTests:

Remove entry for test http/tests/security/contentSecurityPolicy/source-list-parsing-07.html
as it now passes.

1:12 PM Changeset in webkit [196652] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

FTL should support NewTypedArray
https://bugs.webkit.org/show_bug.cgi?id=154268

Reviewed by Saam Barati.

3% speed-up on pdfjs. This was already covered by many different tests.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewArrayWithSize):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToLLVM::compileAllocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateBasicStorageAndGetEnd):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateBasicStorage):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateObject):

12:58 PM Changeset in webkit [196651] by beidson@apple.com
  • 15 edits
    4 adds in trunk/Source

Modern IDB: WK2 IPC Scaffolding.
https://bugs.webkit.org/show_bug.cgi?id=154296

Reviewed by Alex Christensen.

No change in behavior yet; Just laying the groundwork.

Source/WebCore:

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/server/IDBConnectionToClient.h:
  • Modules/indexeddb/shared/IDBResourceIdentifier.h:

Source/WebKit2:

  • CMakeLists.txt:
  • WebKit2.xcodeproj/project.pbxproj:
  • DatabaseProcess/DatabaseToWebProcessConnection.cpp:

(WebKit::DatabaseToWebProcessConnection::establishIDBConnectionToServer):
(WebKit::DatabaseToWebProcessConnection::removeIDBConnectionToServer):

  • DatabaseProcess/DatabaseToWebProcessConnection.h:
  • DatabaseProcess/DatabaseToWebProcessConnection.messages.in:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp: Added.

(WebKit::WebIDBConnectionToClient::create):
(WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient):
(WebKit::WebIDBConnectionToClient::~WebIDBConnectionToClient):
(WebKit::WebIDBConnectionToClient::disconnectedFromWebProcess):
(WebKit::WebIDBConnectionToClient::messageSenderConnection):
(WebKit::WebIDBConnectionToClient::connectionToClient):
(WebKit::WebIDBConnectionToClient::didDeleteDatabase):
(WebKit::WebIDBConnectionToClient::didOpenDatabase):
(WebKit::WebIDBConnectionToClient::didAbortTransaction):
(WebKit::WebIDBConnectionToClient::didCommitTransaction):
(WebKit::WebIDBConnectionToClient::didCreateObjectStore):
(WebKit::WebIDBConnectionToClient::didDeleteObjectStore):
(WebKit::WebIDBConnectionToClient::didClearObjectStore):
(WebKit::WebIDBConnectionToClient::didCreateIndex):
(WebKit::WebIDBConnectionToClient::didDeleteIndex):
(WebKit::WebIDBConnectionToClient::didPutOrAdd):
(WebKit::WebIDBConnectionToClient::didGetRecord):
(WebKit::WebIDBConnectionToClient::didGetCount):
(WebKit::WebIDBConnectionToClient::didDeleteRecord):
(WebKit::WebIDBConnectionToClient::didOpenCursor):
(WebKit::WebIDBConnectionToClient::didIterateCursor):
(WebKit::WebIDBConnectionToClient::fireVersionChangeEvent):
(WebKit::WebIDBConnectionToClient::didStartTransaction):
(WebKit::WebIDBConnectionToClient::notifyOpenDBRequestBlocked):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h: Added.
  • Platform/Logging.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: Added.

(WebKit::generateConnectionToServerIdentifier):
(WebKit::WebIDBConnectionToServer::create):
(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):
(WebKit::WebIDBConnectionToServer::~WebIDBConnectionToServer):
(WebKit::WebIDBConnectionToServer::messageSenderConnection):
(WebKit::WebIDBConnectionToServer::coreConnectionToServer):
(WebKit::WebIDBConnectionToServer::deleteDatabase):
(WebKit::WebIDBConnectionToServer::openDatabase):
(WebKit::WebIDBConnectionToServer::abortTransaction):
(WebKit::WebIDBConnectionToServer::commitTransaction):
(WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToServer::createObjectStore):
(WebKit::WebIDBConnectionToServer::deleteObjectStore):
(WebKit::WebIDBConnectionToServer::clearObjectStore):
(WebKit::WebIDBConnectionToServer::createIndex):
(WebKit::WebIDBConnectionToServer::deleteIndex):
(WebKit::WebIDBConnectionToServer::putOrAdd):
(WebKit::WebIDBConnectionToServer::getRecord):
(WebKit::WebIDBConnectionToServer::getCount):
(WebKit::WebIDBConnectionToServer::deleteRecord):
(WebKit::WebIDBConnectionToServer::openCursor):
(WebKit::WebIDBConnectionToServer::iterateCursor):
(WebKit::WebIDBConnectionToServer::establishTransaction):
(WebKit::WebIDBConnectionToServer::databaseConnectionClosed):
(WebKit::WebIDBConnectionToServer::abortOpenAndUpgradeNeeded):
(WebKit::WebIDBConnectionToServer::didFireVersionChangeEvent):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: Added.
  • WebProcess/Databases/WebDatabaseProvider.cpp:

(WebKit::WebDatabaseProvider::idbConnectionToServerForSession):

  • WebProcess/Databases/WebDatabaseProvider.h:
  • WebProcess/Databases/WebToDatabaseProcessConnection.cpp:

(WebKit::WebToDatabaseProcessConnection::idbConnectionToServerForSession):

  • WebProcess/Databases/WebToDatabaseProcessConnection.h:
12:50 PM Changeset in webkit [196650] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

stress/sampling-profiler-deep-stack.js fails on ARM 32bit
https://bugs.webkit.org/show_bug.cgi?id=154255
<rdar://problem/24662996>

Reviewed by Mark Lam.

The bug here wasn't in the implementation of the sampling profiler
itself. Rather, it was a bug in the test. JSC wasn't spending a lot
of time in a function that the test assumed a lot of time was spent in.
That's because the DFG was doing a good job at optimizing the function
at the leaf of the recursion. Because of that, we often wouldn't sample it.
I fixed this by making the leaf function do more work.

  • tests/stress/sampling-profiler-deep-stack.js:

(platformSupportsSamplingProfiler.foo):

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

Merged r196645. rdar://problem/24679618

12:23 PM Changeset in webkit [196648] by Chris Dumez
  • 13 edits in trunk

[Web IDL] Operations should be on the instance for global objects or if [Unforgeable]
https://bugs.webkit.org/show_bug.cgi?id=154120
<rdar://problem/24613231>

Reviewed by Gavin Barraclough.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

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

Source/JavaScriptCore:

Have putEntry() take a thisValue parameter in addition to the base,
instead of relying on PropertySlot::thisValue() because this did not
always do the right thing. In particular, when JSDOMWindow::put() was
called to set a function, it would end up setting the new value on the
JSDOMWindowShell instead of the actual JSDOMWindow.
JSDOMWindow::getOwnPropertySlot() would then not be able to find it.
Therefore the following would fail:
$ window.open = "test"
$ console.log(window.open) prints the native function instead of "test"

  • runtime/JSObject.cpp:

(JSC::JSObject::putInlineSlow):

  • runtime/Lookup.h:

(JSC::putEntry):
(JSC::lookupPut):

Source/WebCore:

Operations should be on the instance for global objects or if
[Unforgeable] as per the Web IDL specification:

This patch implements this behavior in order to align
with the specification and other browsers.

No new tests, already covered by existing tests.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
Update function names now that they have "Instance" in their
name instead of "Prototype".

(WebCore::JSDOMWindow::getOwnPropertySlot):

  • Update function names now that they have "Instance" in their name instead of "Prototype".
  • Move the functions hard-coding *before* the static table check now that these functions are in the static table to maintain the previous behavior.
  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::getOwnPropertySlotDelegate):
Update function names now that they have "Instance" in their
name instead of "Prototype".

  • bindings/scripts/CodeGeneratorJS.pm:
  • Move functions to the instance if their interface is a global object or if they are marked as [Unforgeable]. Operations are now treated more like attributes, as they can now be either on the instance or the prototype. In a lot of places, I now use the naming "properties" instead of "attributes" as "properties" refer both "attributes" and "operations" / "functions".
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:

Rebaseline bindings tests.

LayoutTests:

  • inspector/model/remote-object-get-properties-expected.txt:

Rebaseline test because the order of static properties has changed:
functions are now before constants instead of after.

12:18 PM Changeset in webkit [196647] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Add a redirect for B3 documentation
https://bugs.webkit.org/show_bug.cgi?id=154293

Reviewed by Timothy Hatcher.

  • .htaccess:
11:53 AM Changeset in webkit [196646] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking webarchive/loading/missing-data.html as flaky on ios-simulator-wk2
https://bugs.webkit.org/show_bug.cgi?id=153380

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
11:33 AM Changeset in webkit [196645] by weinig@apple.com
  • 3 edits in trunk/Source/WebKit2

Revert r195826.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _createAndConfigureDoubleTapGestureRecognizer]):
(-[WKContentView _singleTapCommited:]):

11:28 AM Changeset in webkit [196644] by keith_miller@apple.com
  • 4 edits
    1 add in trunk

ClonedArguments should not materialize its special properties unless they are being changed or deleted
https://bugs.webkit.org/show_bug.cgi?id=154128

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Before we would materialize ClonedArguments whenever they were being accessed.
However this would cause the IC to miss every time as the structure for
the arguments object would change as we went to IC it. Thus on the next
function call we would miss the cache since the new arguments object
would not have materialized the value.

  • runtime/ClonedArguments.cpp:

(JSC::ClonedArguments::getOwnPropertySlot):

  • tests/stress/cloned-arguments-modification.js: Added.

(foo):

LayoutTests:

Have argumnets-strict-mode test the speed of spreading the arguments object.

  • js/regress/script-tests/arguments-strict-mode.js:

(foo):

11:13 AM Changeset in webkit [196643] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/events/keydown-1.html as flaky on mac-wk1 debug
https://bugs.webkit.org/show_bug.cgi?id=154297

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:12 AM Changeset in webkit [196642] by fpizlo@apple.com
  • 5 edits
    7 adds in trunk

FTL should support StringFromCharCode
https://bugs.webkit.org/show_bug.cgi?id=154267
Source/JavaScriptCore:

rdar://problem/24192536

Reviewed by Mark Lam.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode): Fix a bug preventing the UntypedUse from being effective.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileStringFromCharCode): Implement the opcode.

  • tests/stress/string-from-char-code-slow.js: Added.

LayoutTests:

Reviewed by Mark Lam.

  • js/regress/script-tests/string-from-char-code.js: Added.

(result):

  • js/regress/script-tests/untyped-string-from-char-code.js: Added.

(result):

  • js/regress/string-from-char-code-expected.txt: Added.
  • js/regress/string-from-char-code.html: Added.
  • js/regress/untyped-string-from-char-code-expected.txt: Added.
  • js/regress/untyped-string-from-char-code.html: Added.
10:48 AM Changeset in webkit [196641] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Rollout r188659. This broke scrolling of iframes and overflow when
navigating back to a page in the page cache.

The fix was overly agressive and had no layout test. I will fix the original
issue a different way.

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::CachedFrame):

  • page/FrameView.cpp:

(WebCore::FrameView::clearScrollableAreas): Deleted.

  • page/FrameView.h:
10:15 AM Changeset in webkit [196640] by Carlos Garcia Campos
  • 4 edits
    2 adds in trunk

[GTK] No hover-horizontal scrolling available
https://bugs.webkit.org/show_bug.cgi?id=122859

Reviewed by Michael Catanzaro.

Source/WebCore:

This is a regression of WebKit2, because in WebKit1 we used native
widgets for frame scrollbars that handled this automatically. Now
we need to also check if the mouse is over frame scrollbars to
adjust the wheel event.

Test: platform/gtk/scrollbars/main-frame-scrollbar-horizontal-wheel-scroll.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEvent): Pass the adjusted wheel
event to platformCompleteWheelEvent().

  • page/gtk/EventHandlerGtk.cpp:

(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
Check also frame scrollbars.

LayoutTests:

  • platform/gtk/scrollbars/main-frame-scrollbar-horizontal-wheel-scroll-expected.html: Added.
  • platform/gtk/scrollbars/main-frame-scrollbar-horizontal-wheel-scroll.html: Added.
10:13 AM Changeset in webkit [196639] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601-branch/LayoutTests/loader/stateobjects

Fix pushstate tests. rdar://problem/24527863

10:12 AM Changeset in webkit [196638] by matthew_hanson@apple.com
  • 1 edit
    2 adds in branches/safari-601-branch/LayoutTests

Address Font Variant test failures. rdar://problem/24494903

9:59 AM Changeset in webkit [196637] by matthew_hanson@apple.com
  • 6 edits in branches/safari-601-branch/Source/WebCore

Fix for rdar://problem/24494562

9:24 AM Changeset in webkit [196636] by Antti Koivisto
  • 10 edits
    4 adds in trunk

Factor id mutation style invalidation code into a class
https://bugs.webkit.org/show_bug.cgi?id=154287

Reviewed by Andreas Kling.

Source/WebCore:

Also add a cheap basic optimization that avoids descendant invalidation if they can not be affected.

It would be easy to implement fine grained invalidation like with classes and attribute selectors.
However dynamic id changes are not common enough (nor recommended) to pay the memory cost of
the required data structures.

Test: fast/css/style-invalidation-id-change-descendants.html

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • css/RuleFeature.cpp:

(WebCore::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):
(WebCore::RuleFeatureSet::add):
(WebCore::RuleFeatureSet::clear):

  • css/RuleFeature.h:
  • dom/Element.cpp:

(WebCore::makeIdForStyleResolution):
(WebCore::Element::attributeChanged):
(WebCore::checkNeedsStyleInvalidationForIdChange): Deleted.

  • style/IdChangeInvalidation.cpp: Added.

(WebCore::Style::IdChangeInvalidation::invalidateStyle):

  • style/IdChangeInvalidation.h: Added.

(WebCore::Style::IdChangeInvalidation::IdChangeInvalidation):
(WebCore::Style::IdChangeInvalidation::~IdChangeInvalidation):

LayoutTests:

  • fast/css/style-invalidation-id-change-descendants-expected.txt: Added.
  • fast/css/style-invalidation-id-change-descendants.html: Added.
9:12 AM Changeset in webkit [196635] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator after r196621

Unreviewed test gardening.

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
8:42 AM Changeset in webkit [196634] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Increase the width of the find banner's search field
https://bugs.webkit.org/show_bug.cgi?id=154284

Reviewed by Timothy Hatcher.

  • UserInterface/Views/FindBanner.css:

(.find-banner > input[type="search"]):
Keep the minimum width the same as the current width.

(body .find-banner.console-find-banner):
Overwrite ".navigation-bar .item {flex-wrap: nowrap}".

2:00 AM Changeset in webkit [196633] by akling@apple.com
  • 12 edits in trunk/Source

Drop StyleResolver and SelectorQueryCache when entering PageCache.
<https://webkit.org/b/154238>

Reviewed by Antti Koivisto.

Source/WebCore:

Stop keeping these around for cached pages to save lots of memory.
We can easily rebuild them if a cached navigation occurs, and this
way we also don't need to worry about invalidating style for cached
pages in all the right places.

Restoring a cached page will now lead to a forced style recalc.
We don't try to defer this (beyond a zero-timer) since it's going
to happen anyway, and it's nicer to front-load the cost rather than
stuttering on the first user content interaction.

  • dom/Document.cpp:

(WebCore::Document::setInPageCache):

  • history/CachedPage.cpp:

(WebCore::CachedPage::restore):
(WebCore::CachedPage::clear): Deleted.

  • history/CachedPage.h:

(WebCore::CachedPage::markForVisitedLinkStyleRecalc): Deleted.
(WebCore::CachedPage::markForFullStyleRecalc): Deleted.

  • history/PageCache.cpp:

(WebCore::PageCache::markPagesForVisitedLinkStyleRecalc): Deleted.
(WebCore::PageCache::markPagesForFullStyleRecalc): Deleted.

  • history/PageCache.h:
  • page/Frame.cpp:

(WebCore::Frame::setPageAndTextZoomFactors): Deleted.

  • page/Page.cpp:

(WebCore::Page::setViewScaleFactor): Deleted.
(WebCore::Page::setDeviceScaleFactor): Deleted.
(WebCore::Page::setPagination): Deleted.
(WebCore::Page::setPaginationLineGridEnabled): Deleted.
(WebCore::Page::setVisitedLinkStore): Deleted.

Source/WebKit/win:

  • WebCoreSupport/WebVisitedLinkStore.cpp:

(WebVisitedLinkStore::removeAllVisitedLinks): Deleted.
(WebVisitedLinkStore::addVisitedLinkHash): Deleted.

1:50 AM Changeset in webkit [196632] by Carlos Garcia Campos
  • 14 edits in trunk/Source/WebCore

[GTK] clicking on the scrollbar trough steps rather than jumps to the clicked position
https://bugs.webkit.org/show_bug.cgi?id=115363

Reviewed by Michael Catanzaro.

Allow ScrollbarTheme to decide the behavior of a button press event,
instead of only deciding whether to center on thumb or not. This
way we can match the current GTK+ behavior in WebKit, without
affecting other ports.

  • platform/ScrollTypes.h: Add ScrollbarButtonPressAction enum.
  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::mouseDown): Ask ScrollbarTheme to handle the
event for the pressed part and do the requested action.

  • platform/ScrollbarTheme.cpp:

(WebCore::ScrollbarTheme::handleMousePressEvent): Add default
implementation. It's equivalent to the previous default implementation.

  • platform/ScrollbarTheme.h:
  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::ScrollbarThemeGtk::handleMousePressEvent): Match current
GTK+ behavior: left click centers on thumb and right click
scrolls. Dragging the thumb works for left and middle buttons.

  • platform/gtk/ScrollbarThemeGtk.h:
  • platform/ios/ScrollbarThemeIOS.h: Remove shouldCenterOnThumb,

and don't override handleMousePressEvent since iOS wants the
default behavior.

  • platform/ios/ScrollbarThemeIOS.mm:
  • platform/mac/ScrollbarThemeMac.h: Override handleMousePressEvent

and remove shouldCenterOnThumb.

  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::shouldCenterOnThumb): Same implementation just made it
static to be used as helper.
(WebCore::ScrollbarThemeMac::handleMousePressEvent): Return the
desired action keeping the same behavior.

  • platform/win/ScrollbarThemeWin.cpp:

(WebCore::ScrollbarThemeWin::handleMousePressEvent): Ditto.

  • platform/win/ScrollbarThemeWin.h:
  • rendering/RenderScrollbarTheme.h:
1:45 AM Changeset in webkit [196631] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Mouse cursor doesn't change when entering scrollbars
https://bugs.webkit.org/show_bug.cgi?id=154243

Reviewed by Simon Fraser.

If the scrollbar is over or very close to text or a link, when
entering the scrollbar the cursor is not changed, keeping the beam
or hand cursor when using the scrollbar. Same happens for image
documents where the magnifier cursor is used and it remains when
entering the scrollbars. We should use pointer cursor always for
scrollbars.

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateCursor): Request also to include
frame scrollbars in hit test result.
(WebCore::EventHandler::selectCursor): Use always pointer cursor
for scrollbars.

1:33 AM Changeset in webkit [196630] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

[Mac][cmake] Unreviewed buildfix after r196488. Just for fun.

  • PlatformMac.cmake:
12:20 AM Changeset in webkit [196629] by Antti Koivisto
  • 15 edits
    4 adds in trunk

Optimize style invalidations for attribute selectors
https://bugs.webkit.org/show_bug.cgi?id=154242

Reviewed by Andreas Kling.

Source/WebCore:

Currently we invalidate the whole element subtree if there are any attribute selectors for the changed attribute.
This is slow as generally few if any elements are really affected. Using attribute selectors for dynamic styling
should be performant.

This patch implements optimization strategy for attributes similar to what we already have for classes:

  • Collect a map of all rules that contains descendant-affecting attribute selectors for a given attribute.
  • When an attribute value changes check if there are any such rules for it.
  • Check if the value change affects the results of any of the attribute selectors.
  • Only if it does invalidate the exact descendant elements affected by the rules.

Test: fast/css/style-invalidation-attribute-change-descendants.html

  • WebCore.xcodeproj/project.pbxproj:
  • css/DocumentRuleSets.cpp:

(WebCore::DocumentRuleSets::ancestorClassRules):
(WebCore::DocumentRuleSets::ancestorAttributeRulesForHTML):

Create optimization RuleSets when needed.

  • css/DocumentRuleSets.h:

(WebCore::DocumentRuleSets::uncommonAttribute):
(WebCore::DocumentRuleSets::features):

  • css/RuleFeature.cpp:

(WebCore::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):
(WebCore::makeAttributeSelectorKey):
(WebCore::RuleFeatureSet::collectFeatures):

Collect rules with descendant affecting attribute selectors.

(WebCore::RuleFeatureSet::add):
(WebCore::RuleFeatureSet::clear):
(WebCore::RuleFeatureSet::shrinkToFit):

  • css/RuleFeature.h:
  • css/SelectorChecker.cpp:

(WebCore::anyAttributeMatches):
(WebCore::SelectorChecker::attributeSelectorMatches):

Expose function for matching single attribute selectors.

(WebCore::canMatchHoverOrActiveInQuirksMode):

  • css/SelectorChecker.h:
  • dom/Attr.cpp:

(WebCore::Attr::setValue):
(WebCore::Attr::childrenChanged):

  • dom/Element.cpp:

(WebCore::Element::setAttributeInternal):
(WebCore::makeIdForStyleResolution):
(WebCore::Element::attributeChanged):
(WebCore::Element::removeAttributeInternal):
(WebCore::Element::addAttributeInternal):
(WebCore::Element::removeAttribute):

Add AttributeChangeInvalidation where needed.

(WebCore::Element::needsStyleInvalidation):

Move to Element from ClassChangeInvalidation.

(WebCore::Element::willModifyAttribute):

No more full style invalidation on attribute change.

  • style/AttributeChangeInvalidation.cpp: Added.

(WebCore::Style::AttributeChangeInvalidation::invalidateStyle):

Invalidate local style.
Check if we need to invalidate descendants by looking into ancestorAttributeRules.

(WebCore::Style::AttributeChangeInvalidation::invalidateDescendants):

Use StyleInvalidationAnalysis to invalidate the subtree for the relevant rules.

  • style/AttributeChangeInvalidation.h: Added.

(WebCore::Style::AttributeChangeInvalidation::needsInvalidation):
(WebCore::Style::AttributeChangeInvalidation::AttributeChangeInvalidation):
(WebCore::Style::AttributeChangeInvalidation::~AttributeChangeInvalidation):

If needed, invalidate descendants before and after attribute change to catch rules that start and stop applying.

LayoutTests:

  • fast/css/style-invalidation-attribute-change-descendants-expected.txt: Added.
  • fast/css/style-invalidation-attribute-change-descendants.html: Added.
12:11 AM Changeset in webkit [196628] by Chris Dumez
  • 4 edits
    2 adds in trunk

Do security checks early in JSDOMWindow::put*()
https://bugs.webkit.org/show_bug.cgi?id=154270

Reviewed by Gavin Barraclough.

Source/WebCore:

Do security checks early in JSDOMWindow::put() / JSDOMWindow::putByIndex()
and return as soon as possible. This makes it less error-prone as we need
to do the security check only once, at the top of the function.

Also lock down the security further by calling lookupPut() only if the
property name is "location". The "location" property is the only one that
can be set cross-origin. Previously, trying to set a property such as
"name" (which cannot be set cross-origin) relied on the attribute setter
doing the security check when getting called. The new check is less error
prone and will correctly prevent overriding window's method cross-origin
once these move down from the prototype (Bug 154120).

Finally, the previous code was failing to set the "location" property
cross-origin after the window has been reified. This patch fixes the
issue by always calling the original "location" property setter from the
static table in the cross-origin case.

Test: http/tests/security/cross-origin-reified-window-location-setting.html

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::put):
(WebCore::JSDOMWindow::putByIndex):

LayoutTests:

  • http/tests/security/cross-frame-access-put-expected.txt:

Rebaseline. The extra security warnings are for the following properties:
closed, crypto, frameElement, pageXOffset and pageYOffset.
All these properties are read-only and therefore cannot be set (cross-origin
or not). The previous code was not doing an explicit check and ended up
trying to set these properties. However, since they are read-only, we would
silently fail to set them. The new code does the explicit check and therefore
will warn and NOT attempt to set.

  • http/tests/security/cross-origin-reified-window-location-setting-expected.txt: Added.
  • http/tests/security/cross-origin-reified-window-location-setting.html: Added.

Add test to check that setting window.location cross-origin still works after the
window object has been reified.

Feb 15, 2016:

11:14 PM Changeset in webkit [196627] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.5.17.1.1/Source

Versioning.

11:12 PM Changeset in webkit [196626] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.5.17.1.1

New tag.

11:10 PM Changeset in webkit [196625] by mark.lam@apple.com
  • 14 edits in trunk/LayoutTests

[ARMv7] Some JSC test fails due to exhausting the JIT code heap on the no LLINT test configuration.
https://bugs.webkit.org/show_bug.cgi?id=151611

Reviewed by Saam Barati.

These tests are only failing because they are compiling too much with the LLINT
disabled. As a result, they are using more JIT code heap space than is allowed
by the OS.

This patch excludes these tests from the noLLINT configuration on 32-bit ARM.

  • js/script-tests/dfg-float32array.js:
  • js/script-tests/dfg-float64array.js:
  • js/script-tests/dfg-int16array.js:
  • js/script-tests/dfg-int32array-overflow-values.js:
  • js/script-tests/dfg-int32array.js:
  • js/script-tests/dfg-int8array.js:
  • js/script-tests/dfg-osr-entry-hoisted-clobbered-structure-check.js:
  • js/script-tests/dfg-uint16array.js:
  • js/script-tests/dfg-uint32array-overflow-values.js:
  • js/script-tests/dfg-uint32array.js:
  • js/script-tests/dfg-uint8array.js:
  • js/script-tests/dfg-uint8clampedarray.js:
  • js/script-tests/regress-141098.js:
10:42 PM Changeset in webkit [196624] by mitz@apple.com
  • 2 edits
    4 deletes in trunk/Source/WebKit2

Removed unused files after r196478.

  • Configurations/DatabaseProcess.xcconfig: Removed.
  • Configurations/NetworkProcess.xcconfig: Removed.
  • Configurations/PluginProcess.xcconfig: Removed.
  • Configurations/WebContentProcess.xcconfig: Removed.
  • WebKit2.xcodeproj/project.pbxproj:
9:39 PM Changeset in webkit [196623] by ChangSeok Oh
  • 2 edits in trunk/Source/WebKit2

[ThreadedCompositor] position:fixed elements do not have their own layers when threaded compositor is enabled.
https://bugs.webkit.org/show_bug.cgi?id=154100

Reviewed by Carlos Garcia Campos.

Currently, fixed elements are redrawn to a backing store every time layout or scroll happens.
It results in the bad effect on performance-wise. Letting fixed element have separate layers is
necessary when threaded compositor is enabled at least. Because async scrolling requires it.

  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::updatePreferences):

9:36 PM Changeset in webkit [196622] by Brent Fulgham
  • 27 edits
    8 adds in trunk

[Mac] Gather some rudimentary statistics during resource load
https://bugs.webkit.org/show_bug.cgi?id=153575
<rdar://problem/24075254>

Reviewed by Brady Eidson.

Source/WebCore:

Tested by: http/tests/navigation/statistics.html

  • CMakeLists.txt:
  • PlatformWin.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::updateLastHandledUserGestureTimestamp): Log user interaction
with the ResourceLoadObserver.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest): Track load statistics if the
user interacted with the document.

  • loader/ResourceLoadObserver.cpp: Added.
  • loader/ResourceLoadObserver.h: Added.
  • loader/ResourceLoadStatistics.cpp: Added.
  • loader/ResourceLoadStatistics.h: Added.
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal): Track load statistics.

  • page/Settings.cpp:

(WebCore::Settings::setResourceLoadStatisticsEnabled): Added.

  • page/Settings.h:

(WebCore::Settings::resourceLoadStatisticsEnabled): Added.

  • platform/Logging.h:
  • testing/Internals.cpp:

(WebCore::Internals::resourceLoadStatisticsForOrigin):
(WebCore::Internals::setResourceLoadStatisticsEnabled):

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

Source/WebKit/mac:

  • Misc/WebKitNSStringExtras.h:
  • Misc/WebKitNSStringExtras.mm:

(+[NSString _webkit_localStorageDirectoryWithBundleIdentifier:]): Added.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences resourceLoadStatisticsEnabled]): Added.
(-[WebPreferences setResourceLoadStatisticsEnabled:]): Added.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(WebKitInitializeApplicationCachePathIfNecessary):
(WebKitInitializeApplicationStatisticsStoragePathIfNecessary): Added.
(-[WebView _commonInitializationWithFrameName:groupName:]): Add call to new
initialization method.
(-[WebView _preferencesChanged:]): Track changes in the user's desire to
monitor resource load statistics.
(+[WebView _applicationWillTerminate]): Write statistics to disk (if preferences
say to do so.)

Tools:

  • MiniBrowser/mac/SettingsController.h:
  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController _populateMenu]): Add menu item for new debug flag.
(-[SettingsController toggleResourceLoadStatisticsEnabled:]): Added.
(-[SettingsController resourceLoadStatisticsEnabled]): Added.

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController didChangeSettings]): React to changes in
users's desire to track resource load statistics.

LayoutTests:

  • http/tests/navigation/resources/redirect-on-reload-updates-history-item-statistics.php: Added.
  • http/tests/navigation/resources/redirect-updates-history-item-done-statistics.html: Added.
  • http/tests/navigation/statistics-expected.txt: Added.
  • http/tests/navigation/statistics.html: Added.
9:32 PM Changeset in webkit [196621] by Chris Dumez
  • 12 edits in trunk

The following properties should exist on the global object: AudioTrackList, AudioTrack, VideoTrackList, VideoTrack
https://bugs.webkit.org/show_bug.cgi?id=154250
<rdar://problem/24660829>

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

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

Source/WebCore:

The following properties should exist on the global object:

  • AudioTrackList, AudioTrack, VideoTrackList, VideoTrack

These interfaces are not marked as [NoInterfaceObject] in:

No new tests, already covered by existing tests.

  • html/track/AudioTrack.idl:
  • html/track/AudioTrackList.idl:
  • html/track/VideoTrack.idl:
  • html/track/VideoTrackList.idl:

LayoutTests:

Rebaseline now that AudioTrackList, AudioTrack, VideoTrackList and VideoTrack
are exposed on the global Window object.

  • 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:
9:15 PM Changeset in webkit [196620] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Non-overlay scrollbars obscure the ends of lines in the console and sidebars
https://bugs.webkit.org/show_bug.cgi?id=154276

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DataGrid.css:

(.data-grid .data-container):

  • UserInterface/Views/DatabaseContentView.css:

(.storage-view.query):

  • UserInterface/Views/LogContentView.css:

(.content-view.log):
Replace all occurrences of "overflow-y: overlay" with "overflow-y: auto".

9:11 PM Changeset in webkit [196619] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.18.10

Merged r196589. rdar://problem/24644805

9:11 PM Changeset in webkit [196618] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.18.10/Source

Versioning.

9:08 PM Changeset in webkit [196617] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.18.10

New tag.

8:51 PM Changeset in webkit [196616] by commit-queue@webkit.org
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] BranchAdd can override arguments of its stackmap
https://bugs.webkit.org/show_bug.cgi?id=154274

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-02-15
Reviewed by Filip Pizlo.

With the 3 operands BranchAdd added in r196513, we can run into
a register allocation such that the destination register is also
used by a value in the stack map.

It use to be that BranchAdd was a 2 operand instruction.
In that form, the destination is also one of the source and
can be recovered through Sub. There is no conflict between
destination and the stackmap.

After r196513, the destination has its own value. It is uncommon
on x86 because of the aggressive aliasing but that can happen.
On ARM, that's a standard form since there is no need for aliasing.

Since the arguments of the stackmap are of type EarlyUse,
they appeared as not interfering with the destination. When the register
allocator gives the same register to the destination and something in
the stack map, the result of BranchAdd destroys the value kept alive
for the stackmap.

In this patch, I introduce a concept very similar to ForceLateUse
to keep the argument of the stackmap live in CheckAdd. The new
role is "ForceLateUseUnlessRecoverable".

In this mode, anything that is not also an input argument becomes
LateUse. As such, it interferes with the destination of CheckAdd.
The arguments are recovered by the slow patch of CheckAdd. They
remain Early use.

This new modes ensure that destination can be aliased to the source
when that's useful, while making sure it is not aliased with another
value that needs to be live on exit.

  • b3/B3CheckSpecial.cpp:

(JSC::B3::CheckSpecial::forEachArg):

  • b3/B3LowerToAir.cpp:

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

  • b3/B3PatchpointSpecial.cpp:

(JSC::B3::PatchpointSpecial::forEachArg):

  • b3/B3StackmapSpecial.cpp:

(JSC::B3::StackmapSpecial::forEachArgImpl):
(WTF::printInternal):

  • b3/B3StackmapSpecial.h:
  • b3/B3StackmapValue.h:
8:41 PM Changeset in webkit [196615] by Hunseop Jeong
  • 104 edits
    4 adds in trunk/LayoutTests

[EFL] Rebaseline after r196244.

Unreviewed test gardening.

  • platform/efl/compositing/geometry/clipping-foreground-expected.txt:
  • platform/efl/compositing/geometry/root-layer-update-expected.txt:
  • platform/efl/compositing/overflow/ancestor-overflow-expected.txt:
  • platform/efl/compositing/overflow/nested-scrolling-expected.txt:
  • platform/efl/compositing/overflow/overflow-scroll-expected.txt:
  • platform/efl/compositing/overflow/parent-overflow-expected.txt:
  • platform/efl/compositing/overflow/scrollbar-painting-expected.txt:
  • platform/efl/compositing/reflections/nested-reflection-on-overflow-expected.txt:
  • platform/efl/compositing/sibling-positioning-expected.txt:
  • platform/efl/css3/unicode-bidi-isolate-basic-expected.txt:
  • platform/efl/fast/block/positioning/auto/vertical-rl/007-expected.txt:
  • platform/efl/fast/block/positioning/vertical-rl/fixed-positioning-expected.txt:
  • platform/efl/fast/borders/border-antialiasing-expected.txt:
  • platform/efl/fast/clip/001-expected.txt:
  • platform/efl/fast/clip/013-expected.txt:
  • platform/efl/fast/clip/014-expected.txt:
  • platform/efl/fast/clip/016-expected.txt:
  • platform/efl/fast/clip/outline-overflowClip-expected.txt:
  • platform/efl/fast/css/clip-zooming-expected.txt:
  • platform/efl/fast/forms/validation-message-appearance-expected.txt:
  • platform/efl/fast/inline/left-right-center-inline-alignment-in-ltr-and-rtl-blocks-expected.txt:
  • platform/efl/fast/line-grid/line-grid-inside-columns-expected.txt:
  • platform/efl/fast/line-grid/line-grid-into-columns-expected.txt:
  • platform/efl/fast/lists/scrolled-marker-paint-expected.txt:
  • platform/efl/fast/multicol/client-rects-expected.txt:
  • platform/efl/fast/multicol/column-break-with-balancing-expected.txt:
  • platform/efl/fast/multicol/column-rules-expected.txt:
  • platform/efl/fast/multicol/column-rules-stacking-expected.txt:
  • platform/efl/fast/multicol/columns-shorthand-parsing-expected.txt:
  • platform/efl/fast/multicol/float-paginate-complex-expected.txt:
  • platform/efl/fast/multicol/float-paginate-empty-lines-expected.txt:
  • platform/efl/fast/multicol/float-paginate-expected.txt:
  • platform/efl/fast/multicol/layers-in-multicol-expected.txt:
  • platform/efl/fast/multicol/layers-split-across-columns-expected.txt:
  • platform/efl/fast/multicol/max-height-columns-block-expected.txt:
  • platform/efl/fast/multicol/nested-columns-expected.txt:
  • platform/efl/fast/multicol/newmulticol/client-rects-expected.txt:
  • platform/efl/fast/multicol/overflow-across-columns-expected.txt:
  • platform/efl/fast/multicol/overflow-across-columns-percent-height-expected.txt:
  • platform/efl/fast/multicol/overflow-unsplittable-expected.txt:
  • platform/efl/fast/multicol/paginate-block-replaced-expected.txt:
  • platform/efl/fast/multicol/pagination/BottomToTop-bt-expected.txt:
  • platform/efl/fast/multicol/pagination/BottomToTop-lr-expected.txt:
  • platform/efl/fast/multicol/pagination/BottomToTop-rl-expected.txt:
  • platform/efl/fast/multicol/pagination/BottomToTop-tb-expected.txt:
  • platform/efl/fast/multicol/pagination/LeftToRight-bt-expected.txt:
  • platform/efl/fast/multicol/pagination/LeftToRight-rl-expected.txt:
  • platform/efl/fast/multicol/pagination/LeftToRight-tb-expected.txt:
  • platform/efl/fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt:
  • platform/efl/fast/multicol/pagination/RightToLeft-bt-expected.txt:
  • platform/efl/fast/multicol/pagination/RightToLeft-lr-expected.txt:
  • platform/efl/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.txt:
  • platform/efl/fast/multicol/pagination/RightToLeft-rl-expected.txt:
  • platform/efl/fast/multicol/pagination/RightToLeft-rl-hittest-expected.txt:
  • platform/efl/fast/multicol/pagination/RightToLeft-tb-expected.txt:
  • platform/efl/fast/multicol/pagination/TopToBottom-bt-expected.txt:
  • platform/efl/fast/multicol/pagination/TopToBottom-lr-expected.txt:
  • platform/efl/fast/multicol/pagination/TopToBottom-rl-expected.txt:
  • platform/efl/fast/multicol/positive-leading-expected.txt:
  • platform/efl/fast/multicol/scrolling-column-rules-expected.txt:
  • platform/efl/fast/multicol/scrolling-overflow-expected.txt:
  • platform/efl/fast/multicol/span/span-as-immediate-child-complex-splitting-expected.txt:
  • platform/efl/fast/multicol/span/span-as-immediate-child-generated-content-expected.txt:
  • platform/efl/fast/multicol/span/span-as-immediate-child-property-removal-expected.txt:
  • platform/efl/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.txt:
  • platform/efl/fast/multicol/span/span-as-immediate-columns-child-expected.txt:
  • platform/efl/fast/multicol/span/span-as-immediate-columns-child-removal-expected.txt:
  • platform/efl/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.txt:
  • platform/efl/fast/multicol/span/span-as-nested-columns-child-expected.txt:
  • platform/efl/fast/multicol/span/span-margin-collapsing-expected.txt:
  • platform/efl/fast/multicol/table-vertical-align-expected.txt:
  • platform/efl/fast/multicol/tall-image-behavior-expected.txt:
  • platform/efl/fast/multicol/vertical-lr/column-break-with-balancing-expected.txt:
  • platform/efl/fast/multicol/vertical-lr/column-rules-expected.txt:
  • platform/efl/fast/multicol/vertical-lr/float-multicol-expected.txt:
  • platform/efl/fast/multicol/vertical-lr/float-paginate-complex-expected.txt:
  • platform/efl/fast/multicol/vertical-lr/float-paginate-expected.txt:
  • platform/efl/fast/multicol/vertical-lr/nested-columns-expected.txt:
  • platform/efl/fast/multicol/vertical-rl/column-break-with-balancing-expected.txt:
  • platform/efl/fast/multicol/vertical-rl/column-rules-expected.txt:
  • platform/efl/fast/multicol/vertical-rl/float-multicol-expected.txt:
  • platform/efl/fast/multicol/vertical-rl/float-paginate-complex-expected.txt:
  • platform/efl/fast/multicol/vertical-rl/float-paginate-expected.txt:
  • platform/efl/fast/multicol/vertical-rl/nested-columns-expected.txt:
  • platform/efl/fast/overflow/clip-rects-fixed-ancestor-expected.txt:
  • platform/efl/fast/overflow/float-in-relpositioned-expected.txt:
  • platform/efl/fast/overflow/overflow-auto-position-absolute-expected.txt:
  • platform/efl/fast/overflow/overflow-rtl-expected.txt:
  • platform/efl/fast/overflow/paged-x-div-expected.txt:
  • platform/efl/fast/overflow/paged-x-div-with-column-gap-expected.txt:
  • platform/efl/fast/overflow/paged-x-on-root-expected.txt:
  • platform/efl/fast/overflow/paged-x-with-column-gap-expected.txt:
  • platform/efl/fast/overflow/paged-y-div-expected.txt:
  • platform/efl/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
  • platform/efl/fast/regions/repaint/region-painting-via-layout-expected.txt:
  • platform/efl/fast/repaint/box-shadow-h-expected.txt:
  • platform/efl/fast/repaint/box-shadow-v-expected.txt:
  • platform/efl/fast/repaint/layer-outline-expected.txt:
  • platform/efl/fast/repaint/layer-outline-horizontal-expected.txt:
  • platform/efl/fast/table/edge-offsets-expected.txt:
  • platform/efl/fast/transforms/overflow-with-transform-expected.txt:
  • platform/efl/fast/transforms/rotated-transform-affects-scrolling-1-expected.txt: Added.
  • platform/efl/fast/transforms/rotated-transform-affects-scrolling-2-expected.txt: Added.
  • platform/efl/printing/single-line-must-not-be-split-into-two-pages-expected.txt:
  • platform/efl/scrollbars/scrollbars-on-positioned-content-expected.txt:
  • platform/efl/svg/custom/getscreenctm-in-scrollable-div-area-nested-expected.txt: Added.
  • platform/efl/svg/custom/image-rescale-clip-expected.txt: Added.
8:07 PM Changeset in webkit [196614] by weinig@apple.com
  • 6 edits
    1 delete in trunk/Source/WebCore

Stop using NSMapTable in places where we were only using it to be GC safe
<rdar://problem/24063723>
https://bugs.webkit.org/show_bug.cgi?id=154264

Reviewed by Dan Bernstein.

Switch from NSMapTable to HashMap.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMInternal.h:
  • bindings/objc/DOMInternal.mm:
  • bindings/objc/WebScriptObject.mm:
  • bridge/objc/objc_instance.mm:
  • platform/spi/cocoa/NSPointerFunctionsSPI.h: Removed. No longer used.
6:32 PM Changeset in webkit [196613] by commit-queue@webkit.org
  • 2 edits in trunk

Re-enable INTL on WinCairo
https://bugs.webkit.org/show_bug.cgi?id=154256

Patch by Alex Christensen <achristensen@webkit.org> on 2016-02-15
Reviewed by Michael Catanzaro.

  • Source/cmake/OptionsWin.cmake:

Peavo updated icu and it works, so let's re-enable INTL on WinCairo to catch Windows build failures.

6:22 PM Changeset in webkit [196612] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

5:53 PM Changeset in webkit [196611] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator after r196607

Unreviewed test gardening.

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
4:50 PM Changeset in webkit [196610] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Visual sidebar minor regression fixes
https://bugs.webkit.org/show_bug.cgi?id=154237
<rdar://problem/24653135>

Patch by Devin Rousso <Devin Rousso> on 2016-02-15
Reviewed by Timothy Hatcher.

  • UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:

(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-special-property-placeholder):
Do not display the placeholder, as it is not used in comma separated value
property editors.

(.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 > .subtitle::before):
(.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 > .subtitle): Deleted.
Added ::before to get rid of the "-" on subtitle elements (r196266).

  • UserInterface/Views/VisualStyleDetailsPanel.js:

(WebInspector.VisualStyleDetailsPanel.prototype.widthDidChange):
Recalculates the width for all comma separated value elements (r196266).

(WebInspector.VisualStyleDetailsPanel.prototype._updateSections):
Only open/close sections with properties that have values when a new node
or selector item is selected.

(WebInspector.VisualStyleDetailsPanel.prototype._populateBorderSection):
Make copies of the default unit lists to prevent modifying the values used
later in other sections (r194728).

4:20 PM Changeset in webkit [196609] by achristensen@apple.com
  • 4 edits in trunk/Source/WebKit2

Implement content sniffing check with NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=154261

Reviewed by Andy Estes.

This fixes http/tests/xmlhttprequest/small-chunks-response-text.html when using NetworkSession.

  • NetworkProcess/NetworkDataTask.h:

(WebKit::NetworkDataTask::create):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::NetworkLoad):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTask::NetworkDataTask):
Content sniffing is enabled by default. Disable it if the NetworkLoadParameters say not to.
This is analogous to behavior in ResourceHandle::createNSURLConnection.

4:17 PM Changeset in webkit [196608] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.100

New tag.

3:58 PM Changeset in webkit [196607] by Chris Dumez
  • 3 edits in trunk/LayoutTests/imported/w3c

Re-sync W3C web-platform-tests' html/dom/interfaces.html
https://bugs.webkit.org/show_bug.cgi?id=154259

Reviewed by Ryosuke Niwa.

Re-sync W3C web-platform-tests' html/dom/interfaces.html after:

  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces.html:
3:57 PM Changeset in webkit [196606] by Matt Baker
  • 9 edits
    2 deletes in trunk/Source/WebInspectorUI

Web Inspector: eliminate the linear and rendering frames TimelineOverview subclasses
https://bugs.webkit.org/show_bug.cgi?id=154000
<rdar://problem/24553105>

Reviewed by Timothy Hatcher.

This patch eliminates the TimelineOverview subclasses, and moves logic for switching between
a time-based or frame-based graph into the overview itself. The values of the overview's start
time, current time, and end time now match the values in the timeline recording regardless of the
current view mode. When viewing the rendering frames graph, the recording times are ignored and
all frames are included. The overview maintains separate zoom level and ruler selection settings
for each view mode.

  • UserInterface/Main.html:
  • UserInterface/Views/LinearTimelineOverview.js: Removed.
  • UserInterface/Views/RenderingFrameTimelineOverview.js: Removed.

Removed TimelineOverview subclasses.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:

(WebInspector.RenderingFrameTimelineOverviewGraph.prototype.get height):
Set FPS graph height to 108 pixels.

  • UserInterface/Views/TimelineOverview.css:

(.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:nth-child(even)):
(.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:not(:first-child)):
(.timeline-overview > .graphs-container > .timeline-overview-graph:nth-child(even)): Deleted.
(.timeline-overview > .graphs-container > .timeline-overview-graph:not(:first-child)): Deleted.
Disable alternating graph styles when showing FPS instrument.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview):
Create separate settings for timelines and FPS view modes.
(WebInspector.TimelineOverview.prototype.get viewMode):
(WebInspector.TimelineOverview.prototype.set viewMode):
(WebInspector.TimelineOverview.prototype.set startTime):
Adjust the current ruler selection when start time changes. Not necessary
when showing the FPS instrument, which doesn't have a start time.
(WebInspector.TimelineOverview.prototype.get secondsPerPixel):
(WebInspector.TimelineOverview.prototype.set secondsPerPixel):
Now a wrapper around the corresponding view mode setting.
(WebInspector.TimelineOverview.prototype.set pixelAlignDuration):
(WebInspector.TimelineOverview.prototype.get scrollStartTime):
(WebInspector.TimelineOverview.prototype.set scrollStartTime):
Now a wrapper around the corresponding view mode setting.
(WebInspector.TimelineOverview.prototype.get visibleDuration):
(WebInspector.TimelineOverview.prototype.get height):
Return the sum height of all visible overview graphs.
(WebInspector.TimelineOverview.prototype.shown):
Show overview graphs for the current view mode.
(WebInspector.TimelineOverview.prototype.hidden):
(WebInspector.TimelineOverview.prototype.reset):
(WebInspector.TimelineOverview.prototype.recordWasFiltered):
(WebInspector.TimelineOverview.prototype.selectRecord):
(WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
(WebInspector.TimelineOverview.prototype.layout):
Layout for both view modes is largely identical, and differs only in the treatment
of the overview's start time, current time, and end time. Time-based instruments
use time values from the recording, while the FPS instrument has a fixed start time
of zero, and a current and end time pinned to the last rendering frame.
(WebInspector.TimelineOverview.prototype._handleScrollEvent):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
(WebInspector.TimelineOverview._handleGestureStart):
(WebInspector.TimelineOverview.prototype._handleGestureChange):
(WebInspector.TimelineOverview.prototype._instrumentAdded):
(WebInspector.TimelineOverview.prototype._instrumentRemoved):
(WebInspector.TimelineOverview.prototype._timelineRulerMouseClicked):
(WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
Save the selection for the current view mode.
(WebInspector.TimelineOverview.prototype._recordSelected):
(WebInspector.TimelineOverview.prototype._resetSelection.reset):
(WebInspector.TimelineOverview.prototype._resetSelection):
(WebInspector.TimelineOverview.prototype._canShowTimelineType):
(WebInspector.TimelineOverview.prototype._viewModeDidChange):
Sets zoom level, ruler selection, and graph visibility based on current view mode.
(WebInspector.TimelineOverview.prototype._createViewModeSettings):
Helper function for creating an object to track the zoom level and ruler
selection of each view mode.
(WebInspector.TimelineOverview.prototype.get _currentSettings):
Internal getter for retrieving the settings for the current view mode.
(WebInspector.TimelineOverview.prototype.canShowTimeline): Deleted.
Not needed now that the overview contains all timelines.

  • UserInterface/Views/TimelineOverviewGraph.js:

(WebInspector.TimelineOverviewGraph):
(WebInspector.TimelineOverviewGraph.prototype.shown):
(WebInspector.TimelineOverviewGraph.prototype.hidden):
Toggle CSS hidden class.

  • UserInterface/Views/TimelineRecordFrame.js:

No need to query offsetHeight now that TimelineOverviewGraph has a height property.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):
Create a single timeline overview.
(WebInspector.TimelineRecordingContentView.prototype.get timelineOverviewHeight):
(WebInspector.TimelineRecordingContentView.prototype.shown):
(WebInspector.TimelineRecordingContentView.prototype.hidden):
(WebInspector.TimelineRecordingContentView.prototype.recordWasFiltered):
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
Update the timeline overview's mode based on the current timeline view.
(WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
Removed special handling for the FPS overview.
Removed selection start time adjustment, which is now handled internally by TimelineOverview.
(WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
(WebInspector.TimelineRecordingContentView.prototype._recordingReset):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineRecordingContentView.prototype._updateFrameSelection):

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie):
(WebInspector.TimelineSidebarPanel.prototype._renderingFrameTimelineTimesUpdated):
(WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
Refresh the view mode when the content view changes.
(WebInspector.TimelineSidebarPanel.prototype._recordingSelected):
(WebInspector.TimelineSidebarPanel.prototype._viewModeSelected):
(WebInspector.TimelineSidebarPanel.prototype._viewModeForTimeline):
(WebInspector.TimelineSidebarPanel.prototype._updateViewModeIfNeeded):
Sync the tree outline, frames chart, and navigation bar with the current view mode.
(WebInspector.TimelineSidebarPanel.prototype.shown):
Refreshing the frame selection is unnecessary. It's updated by the recording content
view whenever the ruler selection changes.
(WebInspector.TimelineSidebarPanel.prototype.get viewMode): Deleted.
No longer public, since the timeline overview now owns the view mode. Internally the sidebar
still tracks the current state so it can determine when the value has changed.
(WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
(WebInspector.TimelineSidebarPanel.prototype.showTimelineViewForTimeline):
The sidebar should only be synced to the overview after the content view has changed.
(WebInspector.TimelineSidebarPanel.prototype.updateFrameSelection):
Removed unnecessary assertion.
(WebInspector.TimelineSidebarPanel.prototype._changeViewMode): Deleted.
Replaced by _updateViewModeIfNeeded.

3:57 PM Changeset in webkit [196605] by rniwa@webkit.org
  • 5 edits
    1 move
    1 add
    2 deletes in trunk/Websites/perf.webkit.org

v1 UI and v2 UI should share statistics.js
https://bugs.webkit.org/show_bug.cgi?id=154262

Reviewed by Chris Dumez.

Share statistics.js between v1 and v2 UI.

  • public/index.html:
  • public/js/shared.js: Deleted.
  • public/js/statistics.js: Removed.
  • public/shared: Added.
  • public/shared/statistics.js: Moved from Websites/perf.webkit.org/public/v2/js/statistics.js.
  • public/v2/index.html:
  • public/v2/js/statistics.js: Removed.
  • public/v3/index.html:
  • tools/detect-changes.js:
3:39 PM Changeset in webkit [196604] by mmaxfield@apple.com
  • 24 edits
    2 copies
    2 adds in trunk

[Font Loading] Implement FontFace JavaScript object
https://bugs.webkit.org/show_bug.cgi?id=153345

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/text/font-face-javascript.html

This patch implements the FontFace Javascript object. This object mostly consists of
style getters / setters, which we implement by parsing input strings and generating
output strings similarly to getComputedStyle(). This object also has a load() function
which returns a promise which will be fulfilled or rejected depending on the load.
There is also a "loaded" attribute which exposes this promise directly. Also, a status
field is exposed so script knows what the state of the load is.

Currently, loading depends on our CachedResourceLoader which is part of the Document,
so this API is not available in a non-document context.

Another caveat is that immediate-mode font loading (where the content provides an
ArrayBuffer containing the bytes of the font file) is forthcoming. This requires
changing the relationship between CSSFontFaceSource and CachedFont.

CSSFontFace has been modified to keep a strong reference to the CSSFontSelector. This
is because the lifetime of the CSSFontFace can now outlive the CSSFontSelector. When
the CSSFontSelector is removed from the Document, it explicitly clears its constituent
CSSFontFaces, thereby breaking the reference cycle.

Test: fast/text/font-face-javascript-expected.html

  • CMakeLists.txt: Add new files.
  • DerivedSources.cpp: Ditto.
  • DerivedSources.make: Ditto.
  • WebCore.vcxproj/WebCore.vcxproj: Ditto.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • bindings/js/JSDOMPromise.cpp:

(WebCore::DeferredWrapper::globalObject): Remove whitespace.
(WebCore::DeferredWrapper::deferred): Allow access to the inner JSC object.

  • bindings/js/JSDOMPromise.h:

(WebCore::DOMPromise::deferred): Ditto.

  • bindings/js/JSFontFaceCustom.cpp: Copied from Source/WebCore/bindings/js/JSDOMPromise.cpp.

(WebCore::JSFontFace::loaded):
(WebCore::JSFontFace::load):

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::adoptSource):
(WebCore::CSSFontFace::updateStatus): Enforce the state machine's transitions.
(WebCore::CSSFontFace::fontLoaded):
(WebCore::CSSFontFace::pump):
(WebCore::CSSFontFace::load):

  • css/CSSFontFace.h:

(WebCore::CSSFontFaceClient::~CSSFontFaceClient):
(WebCore::CSSFontFace::create):
(WebCore::CSSFontFace::status):

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::appendSources): Update for new CSSFontFace API.
(WebCore::CSSFontSelector::registerLocalFontFacesForFamily): Ditto.
(WebCore::CSSFontSelector::addFontFaceRule): Ditto.
(WebCore::CSSFontSelector::kick): Ditto.
(WebCore::appendSources): Deleted.
(WebCore::registerLocalFontFacesForFamily): Deleted.

  • css/CSSFontSelector.h:
  • css/CSSUnicodeRangeValue.cpp: Use for serializing the "unicodeRange" property.
  • css/FontFace.cpp:

(WebCore::createPromise): Implement the remaining Javascript API functions.
(WebCore::valueFromDictionary):
(WebCore::FontFace::create):
(WebCore::FontFace::FontFace):
(WebCore::FontFace::parseString):
(WebCore::FontFace::status):
(WebCore::FontFace::kick):
(WebCore::FontFace::load):
(WebCore::FontFace::fulfillPromise):
(WebCore::FontFace::rejectPromise):
(WebCore::parseString): Deleted.

  • css/FontFace.h:

(WebCore::FontFace::promise):
(WebCore::FontFace::backing):
(WebCore::FontFace::create): Deleted.

  • css/FontFace.idl: Copied from Source/WebCore/bindings/js/JSDOMPromise.cpp.

LayoutTests:

  • fast/text/font-face-javascript-expected.txt: Added.
  • fast/text/font-face-javascript.html: Added.
  • 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:
2:37 PM Changeset in webkit [196603] by jer.noble@apple.com
  • 61 edits in trunk/Source/WebCore

Null-deref crash in DefaultAudioDestinationNode::suspend()
https://bugs.webkit.org/show_bug.cgi?id=154248

Reviewed by Alex Christensen.

Drive-by fix: AudioContext should be a reference, not a pointer.

  • Modules/webaudio/AnalyserNode.cpp:

(WebCore::AnalyserNode::AnalyserNode):

  • Modules/webaudio/AnalyserNode.h:

(WebCore::AnalyserNode::create):

  • Modules/webaudio/AudioBasicInspectorNode.cpp:

(WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):
(WebCore::AudioBasicInspectorNode::connect):
(WebCore::AudioBasicInspectorNode::disconnect):
(WebCore::AudioBasicInspectorNode::checkNumberOfChannelsForInput):
(WebCore::AudioBasicInspectorNode::updatePullStatus):

  • Modules/webaudio/AudioBasicInspectorNode.h:
  • Modules/webaudio/AudioBasicProcessorNode.cpp:

(WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):
(WebCore::AudioBasicProcessorNode::checkNumberOfChannelsForInput):

  • Modules/webaudio/AudioBasicProcessorNode.h:
  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::create):
(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
(WebCore::AudioBufferSourceNode::renderFromBuffer):
(WebCore::AudioBufferSourceNode::setBuffer):
(WebCore::AudioBufferSourceNode::startPlaying):
(WebCore::AudioBufferSourceNode::looping):
(WebCore::AudioBufferSourceNode::setLooping):

  • Modules/webaudio/AudioBufferSourceNode.h:
  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::createBufferSource):
(WebCore::AudioContext::createMediaElementSource):
(WebCore::AudioContext::createMediaStreamDestination):
(WebCore::AudioContext::createScriptProcessor):
(WebCore::AudioContext::createBiquadFilter):
(WebCore::AudioContext::createWaveShaper):
(WebCore::AudioContext::createPanner):
(WebCore::AudioContext::createConvolver):
(WebCore::AudioContext::createDynamicsCompressor):
(WebCore::AudioContext::createAnalyser):
(WebCore::AudioContext::createGain):
(WebCore::AudioContext::createDelay):
(WebCore::AudioContext::createChannelSplitter):
(WebCore::AudioContext::createChannelMerger):
(WebCore::AudioContext::createOscillator):

  • Modules/webaudio/AudioContext.h:

(WebCore::operator==):
(WebCore::operator!=):

  • Modules/webaudio/AudioDestinationNode.cpp:

(WebCore::AudioDestinationNode::AudioDestinationNode):
(WebCore::AudioDestinationNode::render):
(WebCore::AudioDestinationNode::updateIsEffectivelyPlayingAudio):

  • Modules/webaudio/AudioDestinationNode.h:
  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::AudioNode):
(WebCore::AudioNode::connect):
(WebCore::AudioNode::disconnect):
(WebCore::AudioNode::setChannelCount):
(WebCore::AudioNode::setChannelCountMode):
(WebCore::AudioNode::setChannelInterpretation):
(WebCore::AudioNode::scriptExecutionContext):
(WebCore::AudioNode::processIfNecessary):
(WebCore::AudioNode::checkNumberOfChannelsForInput):
(WebCore::AudioNode::propagatesSilence):
(WebCore::AudioNode::pullInputs):
(WebCore::AudioNode::enableOutputsIfNecessary):
(WebCore::AudioNode::deref):
(WebCore::AudioNode::finishDeref):

  • Modules/webaudio/AudioNode.h:

(WebCore::AudioNode::context):

  • Modules/webaudio/AudioNodeInput.cpp:

(WebCore::AudioNodeInput::connect):
(WebCore::AudioNodeInput::disconnect):
(WebCore::AudioNodeInput::disable):
(WebCore::AudioNodeInput::enable):
(WebCore::AudioNodeInput::updateInternalBus):
(WebCore::AudioNodeInput::bus):
(WebCore::AudioNodeInput::internalSummingBus):
(WebCore::AudioNodeInput::sumAllConnections):
(WebCore::AudioNodeInput::pull):

  • Modules/webaudio/AudioNodeOutput.cpp:

(WebCore::AudioNodeOutput::setNumberOfChannels):
(WebCore::AudioNodeOutput::updateNumberOfChannels):
(WebCore::AudioNodeOutput::propagateChannelCount):
(WebCore::AudioNodeOutput::pull):
(WebCore::AudioNodeOutput::bus):
(WebCore::AudioNodeOutput::fanOutCount):
(WebCore::AudioNodeOutput::paramFanOutCount):
(WebCore::AudioNodeOutput::addInput):
(WebCore::AudioNodeOutput::removeInput):
(WebCore::AudioNodeOutput::disconnectAllInputs):
(WebCore::AudioNodeOutput::addParam):
(WebCore::AudioNodeOutput::removeParam):
(WebCore::AudioNodeOutput::disconnectAllParams):
(WebCore::AudioNodeOutput::disable):
(WebCore::AudioNodeOutput::enable):

  • Modules/webaudio/AudioNodeOutput.h:

(WebCore::AudioNodeOutput::context):

  • Modules/webaudio/AudioParam.cpp:

(WebCore::AudioParam::value):
(WebCore::AudioParam::smooth):
(WebCore::AudioParam::calculateSampleAccurateValues):
(WebCore::AudioParam::calculateFinalValues):
(WebCore::AudioParam::calculateTimelineValues):
(WebCore::AudioParam::connect):
(WebCore::AudioParam::disconnect):

  • Modules/webaudio/AudioParam.h:

(WebCore::AudioParam::create):
(WebCore::AudioParam::AudioParam):

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::valueForContextTime):

  • Modules/webaudio/AudioParamTimeline.h:
  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):
(WebCore::AudioScheduledSourceNode::updateSchedulingInfo):
(WebCore::AudioScheduledSourceNode::start):
(WebCore::AudioScheduledSourceNode::finish):

  • Modules/webaudio/AudioScheduledSourceNode.h:
  • Modules/webaudio/AudioSummingJunction.cpp:

(WebCore::AudioSummingJunction::AudioSummingJunction):
(WebCore::AudioSummingJunction::~AudioSummingJunction):
(WebCore::AudioSummingJunction::changedOutputs):
(WebCore::AudioSummingJunction::updateRenderingState):

  • Modules/webaudio/AudioSummingJunction.h:

(WebCore::AudioSummingJunction::context):

  • Modules/webaudio/BiquadFilterNode.cpp:

(WebCore::BiquadFilterNode::BiquadFilterNode):

  • Modules/webaudio/BiquadFilterNode.h:

(WebCore::BiquadFilterNode::create):

  • Modules/webaudio/BiquadProcessor.cpp:

(WebCore::BiquadProcessor::BiquadProcessor):

  • Modules/webaudio/BiquadProcessor.h:
  • Modules/webaudio/ChannelMergerNode.cpp:

(WebCore::ChannelMergerNode::create):
(WebCore::ChannelMergerNode::ChannelMergerNode):
(WebCore::ChannelMergerNode::checkNumberOfChannelsForInput):

  • Modules/webaudio/ChannelMergerNode.h:
  • Modules/webaudio/ChannelSplitterNode.cpp:

(WebCore::ChannelSplitterNode::create):
(WebCore::ChannelSplitterNode::ChannelSplitterNode):

  • Modules/webaudio/ChannelSplitterNode.h:
  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::ConvolverNode):
(WebCore::ConvolverNode::setBuffer):

  • Modules/webaudio/ConvolverNode.h:

(WebCore::ConvolverNode::create):

  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
(WebCore::DefaultAudioDestinationNode::resume):
(WebCore::DefaultAudioDestinationNode::suspend):
(WebCore::DefaultAudioDestinationNode::close):

  • Modules/webaudio/DefaultAudioDestinationNode.h:

(WebCore::DefaultAudioDestinationNode::create):

  • Modules/webaudio/DelayNode.cpp:

(WebCore::DelayNode::DelayNode):

  • Modules/webaudio/DelayNode.h:

(WebCore::DelayNode::create):

  • Modules/webaudio/DelayProcessor.cpp:

(WebCore::DelayProcessor::DelayProcessor):

  • Modules/webaudio/DelayProcessor.h:
  • Modules/webaudio/DynamicsCompressorNode.cpp:

(WebCore::DynamicsCompressorNode::DynamicsCompressorNode):

  • Modules/webaudio/DynamicsCompressorNode.h:

(WebCore::DynamicsCompressorNode::create):

  • Modules/webaudio/GainNode.cpp:

(WebCore::GainNode::GainNode):
(WebCore::GainNode::checkNumberOfChannelsForInput):

  • Modules/webaudio/GainNode.h:

(WebCore::GainNode::create):

  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::create):
(WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
(WebCore::MediaElementAudioSourceNode::setFormat):

  • Modules/webaudio/MediaElementAudioSourceNode.h:
  • Modules/webaudio/MediaStreamAudioDestinationNode.cpp:

(WebCore::MediaStreamAudioDestinationNode::create):
(WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):

  • Modules/webaudio/MediaStreamAudioDestinationNode.h:
  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):
(WebCore::MediaStreamAudioSourceNode::setFormat):

  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):
(WebCore::OfflineAudioDestinationNode::offlineRender):
(WebCore::OfflineAudioDestinationNode::notifyComplete):

  • Modules/webaudio/OfflineAudioDestinationNode.h:

(WebCore::OfflineAudioDestinationNode::create):

  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::create):
(WebCore::OscillatorNode::OscillatorNode):

  • Modules/webaudio/OscillatorNode.h:
  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::PannerNode):
(WebCore::PannerNode::pullInputs):
(WebCore::PannerNode::process):
(WebCore::PannerNode::listener):
(WebCore::PannerNode::setPanningModel):

  • Modules/webaudio/PannerNode.h:

(WebCore::PannerNode::create):

  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::create):
(WebCore::ScriptProcessorNode::ScriptProcessorNode):
(WebCore::ScriptProcessorNode::initialize):
(WebCore::ScriptProcessorNode::fireProcessEvent):

  • Modules/webaudio/ScriptProcessorNode.h:
  • Modules/webaudio/WaveShaperNode.cpp:

(WebCore::WaveShaperNode::WaveShaperNode):
(WebCore::WaveShaperNode::setOversample):

  • Modules/webaudio/WaveShaperNode.h:

(WebCore::WaveShaperNode::create):

2:36 PM Changeset in webkit [196602] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Null-deref crash in DefaultAudioDestinationNode::suspend()
https://bugs.webkit.org/show_bug.cgi?id=154248

Reviewed by Alex Christensen.

Null-check scriptExecutionContext() before deref.

  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::resume):
(WebCore::DefaultAudioDestinationNode::suspend):
(WebCore::DefaultAudioDestinationNode::close):

2:33 PM Changeset in webkit [196601] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[EFL] Update Tools/efl/install-dependencies
https://bugs.webkit.org/show_bug.cgi?id=154239

Reviewed by Michael Catanzaro.

  • efl/install-dependencies:
2:25 PM Changeset in webkit [196600] by achristensen@apple.com
  • 11 edits
    4 adds in trunk/Source/WebKit2

Move Download authentication code to AuthenticationManager
https://bugs.webkit.org/show_bug.cgi?id=154132

Reviewed by Sam Weinig.

When a video element makes a request that receives an authentication challenge, the
AuthenticationManager receives an AuthenticationChallenge without an AuthenticationClient.
As a result, Download::receivedCredential and other functions were being called, which
sent a message to the challenge's sender. This functionality is not specific to downloads,
so I moved it from Download to AuthenticationManager.

This fixes http/tests/media/video-auth.html when using NetworkSession
because I use AuthenticationManager::receivedCredential if there is no AuthenticationClient
instead of improperly asserting that there is always an AuthenticationClient if there is no
completionHandler.

  • NetworkProcess/Downloads/Download.h:
  • NetworkProcess/Downloads/ios/DownloadIOS.mm:

(WebKit::Download::platformDidFinish):
(WebKit::Download::receivedCredential): Deleted.
(WebKit::Download::receivedRequestToContinueWithoutCredential): Deleted.
(WebKit::Download::receivedCancellation): Deleted.
(WebKit::Download::receivedRequestToPerformDefaultHandling): Deleted.
(WebKit::Download::receivedChallengeRejection): Deleted.

  • NetworkProcess/Downloads/mac/DownloadMac.mm:

(WebKit::Download::platformDidFinish):
(WebKit::Download::receivedCredential): Deleted.
(WebKit::Download::receivedRequestToContinueWithoutCredential): Deleted.
(WebKit::Download::receivedCancellation): Deleted.
(WebKit::Download::receivedRequestToPerformDefaultHandling): Deleted.
(WebKit::Download::receivedChallengeRejection): Deleted.

  • NetworkProcess/Downloads/soup/DownloadSoup.cpp:

(WebKit::Download::platformDidFinish):
(WebKit::Download::receivedCredential): Deleted.
(WebKit::Download::receivedRequestToContinueWithoutCredential): Deleted.
(WebKit::Download::receivedCancellation): Deleted.
(WebKit::Download::continueWithoutCredential): Deleted.
(WebKit::Download::useCredential): Deleted.
(WebKit::Download::cancelAuthenticationChallenge): Deleted.
(WebKit::Download::receivedRequestToPerformDefaultHandling): Deleted.
(WebKit::Download::receivedChallengeRejection): Deleted.

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
(WebKit::AuthenticationManager::useCredentialForSingleChallenge):
(WebKit::AuthenticationManager::continueWithoutCredentialForChallenge):
(WebKit::AuthenticationManager::continueWithoutCredentialForSingleChallenge):
(WebKit::AuthenticationManager::cancelChallenge):
(WebKit::AuthenticationManager::cancelSingleChallenge):
(WebKit::AuthenticationManager::performDefaultHandling):
(WebKit::AuthenticationManager::performDefaultHandlingForSingleChallenge):
(WebKit::AuthenticationManager::rejectProtectionSpaceAndContinue):
(WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge):

  • Shared/Authentication/AuthenticationManager.h:

(WebKit::AuthenticationManager::outstandingAuthenticationChallengeCount):

  • Shared/Authentication/cocoa: Added.
  • Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm: Added.

(WebKit::AuthenticationManager::receivedCredential):
(WebKit::AuthenticationManager::receivedRequestToContinueWithoutCredential):
(WebKit::AuthenticationManager::receivedCancellation):
(WebKit::AuthenticationManager::receivedRequestToPerformDefaultHandling):
(WebKit::AuthenticationManager::receivedChallengeRejection):

  • Shared/Authentication/soup: Added.
  • Shared/Authentication/soup/AuthenticationManagerSoup.cpp: Added.

(WebKit::AuthenticationManager::receivedCredential):
(WebKit::AuthenticationManager::receivedRequestToContinueWithoutCredential):
(WebKit::AuthenticationManager::receivedCancellation):
(WebKit::AuthenticationManager::receivedRequestToPerformDefaultHandling):
(WebKit::AuthenticationManager::receivedChallengeRejection):

  • WebKit2.xcodeproj/project.pbxproj:
2:03 PM Changeset in webkit [196599] by Chris Dumez
  • 22 edits
    1 copy
    1 add in trunk

XMLHttpRequest / XMLHttpRequestUpload should inherit XMLHttpRequestEventTarget
https://bugs.webkit.org/show_bug.cgi?id=154230

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

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

Source/WebCore:

MLHttpRequest / XMLHttpRequestUpload should inherit XMLHttpRequestEventTarget
as per:
https://xhr.spec.whatwg.org/#xmlhttprequesteventtarget

Firefox and Chrome already match the specification.

No new tests, already covered by existing tests.

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • xml/XMLHttpRequest.h:
  • xml/XMLHttpRequest.idl:
  • xml/XMLHttpRequestEventTarget.h: Added.
  • xml/XMLHttpRequestEventTarget.idl: Copied from Source/WebCore/xml/XMLHttpRequestUpload.idl.
  • xml/XMLHttpRequestUpload.h:
  • xml/XMLHttpRequestUpload.idl:

LayoutTests:

Rebaseline tests now that XMLHttpRequestEventTarget is exposed on the
global objects.

  • 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:38 PM Changeset in webkit [196598] by jiewen_tan@apple.com
  • 13 edits
    2 adds in trunk

Refine SimulatedMouseEvent to support Event.isTrusted
https://bugs.webkit.org/show_bug.cgi?id=154133
<rdar://problem/24616246>

Reviewed by Darin Adler.

Source/WebCore:

This patch extracts everything related to create/dispatch SimulatedMouseEvent from MouseEvent.h/cpp
and EventDispatcher.h/cpp, and produces SimulateClick.h/cpp which will handle simulated click solely.
After that, we hide the SimulatedMouseEvent and only expose simulateClick to be called. The reason is
that we both want to tell whether the call sites are from user agent/bindings and keep the
SimulatedMouseEvent intact.

Also, this patch separate Element::dispatchSimulatedClick into two: one for the user agent, and another
for the bindings. Therefore, HTMLElement.click will be treated as untrusted.

Some of the changes in this patch referred Blink r200401:
https://codereview.chromium.org/1285793004

Modified test:
LayoutTests/imported/blink/fast/events/event-trusted.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Element.cpp:

(WebCore::Element::dispatchSimulatedClick):
(WebCore::Element::dispatchSimulatedClickForBindings):

  • dom/Element.h:
  • dom/EventDispatcher.cpp:

(WebCore::EventDispatcher::dispatchSimulatedClick): Deleted.

  • dom/EventDispatcher.h:
  • dom/MouseEvent.cpp:

(WebCore::SimulatedMouseEvent::create): Deleted.
(WebCore::SimulatedMouseEvent::~SimulatedMouseEvent): Deleted.
(WebCore::SimulatedMouseEvent::SimulatedMouseEvent): Deleted.

  • dom/MouseEvent.h:
  • dom/SimulatedClick.cpp: Added.

(WebCore::simulateMouseEvent):
(WebCore::simulateClick):

  • dom/SimulatedClick.h: Added.
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::click):

LayoutTests:

  • imported/blink/fast/events/event-trusted-expected.txt:
  • imported/blink/fast/events/event-trusted.html:
1:37 PM Changeset in webkit [196597] by timothy@apple.com
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Show inherited CSS variables in the Style sidebar
https://bugs.webkit.org/show_bug.cgi?id=154215
rdar://problem/24644058

Reviewed by Joseph Pecoraro.

  • UserInterface/Models/CSSProperty.js:

(WebInspector.CSSProperty.isInheritedPropertyName): Added.
(WebInspector.CSSProperty.prototype.update): Use WebInspector.CSSProperty.isInheritedPropertyName.

  • UserInterface/Models/DOMNodeStyles.js:

(WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload): Use WebInspector.CSSProperty.isInheritedPropertyName.

1:30 PM Changeset in webkit [196596] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Sidebars are defaulting to their minimum width, instead of a good width
https://bugs.webkit.org/show_bug.cgi?id=154218
rdar://problem/24644192

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/SidebarPanel.js:

(WebInspector.SidebarPanel): Default the setting value to 300 instead of 0, so the minimum isn't used.

1:25 PM Changeset in webkit [196595] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Marking animations/animation-delay-changed.html as flaky on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=154253

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
1:23 PM Changeset in webkit [196594] by commit-queue@webkit.org
  • 12 edits
    5 adds in trunk

Web Inspector: Web Workers have no access to console for debugging
https://bugs.webkit.org/show_bug.cgi?id=26237

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-02-15
Reviewed by Timothy Hatcher.

LayoutTests/imported/w3c:

  • web-platform-tests/streams-api/readable-streams/garbage-collection-expected.txt:

Update test results for a console.warn message that the test produces from a Worker.

Source/JavaScriptCore:

  • inspector/ConsoleMessage.h:

Add accessor for MessageLevel.

Source/WebCore:

This adds the most basic console message support to Workers.
Messages logged from workers get surfaced through the Page's console.
This lacks support for logging and interacting with arguments,
which would be addressed when adding more complete Worker
debugging tools.

Test: inspector/console/messageAdded-from-worker.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add new files.

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::~WorkerScriptController):
(WebCore::WorkerScriptController::initScript):
Set the ConsoleClient for the Worker's global object. We route
the messages to the Page's console.

  • bindings/js/WorkerScriptController.h:
  • workers/WorkerConsoleClient.h: Added.
  • workers/WorkerConsoleClient.cpp: Added.

(WebCore::WorkerConsoleClient::WorkerConsoleClient):
(WebCore::WorkerConsoleClient::~WorkerConsoleClient):
(WebCore::WorkerConsoleClient::profile):
(WebCore::WorkerConsoleClient::profileEnd):
(WebCore::WorkerConsoleClient::count):
(WebCore::WorkerConsoleClient::time):
(WebCore::WorkerConsoleClient::timeEnd):
(WebCore::WorkerConsoleClient::timeStamp):
Stub most console methods in a Worker.

(WebCore::WorkerConsoleClient::messageWithTypeAndLevel):
Send worker log messages to the global scope and on to the main page.

  • workers/WorkerGlobalScope.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::addConsoleMessage):
(WebCore::WorkerGlobalScope::addMessageToWorkerConsole):
Ideally we want to converge on simple addConsoleMessage
APIs that just take a ConsoleMessage, without a barrage
of parameters. Add these versions now.

LayoutTests:

  • inspector/console/messageAdded-from-worker-expected.txt: Added.
  • inspector/console/messageAdded-from-worker.html: Added.
  • inspector/console/resources/worker-console-log.js: Added.
1:16 PM Changeset in webkit [196593] by timothy@apple.com
  • 5 edits
    2 adds in trunk

Web Inspector: CSS variables are not formatted correctly
https://bugs.webkit.org/show_bug.cgi?id=154217
rdar://problem/24644154

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Views/CodeMirrorFormatters.js:

(newlineBeforeToken): Check for variable-2 token in the maybeprop state.

LayoutTests:

  • inspector/codemirror/prettyprinting-css-rules-expected.txt:
  • inspector/codemirror/prettyprinting-css-rules.html:
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/css-variables-expected.css: Added.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/css-variables.css: Added.
1:13 PM Changeset in webkit [196592] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: CodeMirror styles needs updated for CSS variables
https://bugs.webkit.org/show_bug.cgi?id=154216
rdar://problem/24644146

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/SyntaxHighlightingDefaultTheme.css:

(.cm-s-default .cm-m-css:matches(.cm-atom, .cm-meta, .cm-variable-2, .cm-variable-3, .cm-property)): Added .cm-variable-2.
(.cm-s-default .basic-block-has-not-executed.cm-m-css:matches(.cm-atom, .cm-meta, .cm-variable-2, .cm-variable-3, .cm-property)): Ditto.

1:08 PM Changeset in webkit [196591] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[ARMv7] stress/op_rshift.js and stress/op_urshift.js are failing.
https://bugs.webkit.org/show_bug.cgi?id=151514

Reviewed by Filip Pizlo.

The issue turns out to be trivial: on ARMv7 (and traditional ARM too), arithmetic
shift right (ASR) and logical shift right (LSR) takes an immediate shift amount
from 1-32. See http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204j/Cjacbgca.html.
An immediate shift amount of 0 is interpreted as a shift of 32 bits.

Meanwhile, our macro assembler is expecting the immediate shift value to be
between 0-31. As a result, a shift amount of 0 is being wrongly encoded with 0
bits which means shift right by 32 bits.

The fix is to check if the shift amount is 0, and if so, emit a move. Else,
emit the right shift as usual.

This issue does not affect left shifts, as the immediate shift amount for left
shifts is between 0-31 as our macro assembler expects.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::rshift32):
(JSC::MacroAssemblerARM::urshift32):
(JSC::MacroAssemblerARM::sub32):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::rshift32):
(JSC::MacroAssemblerARMv7::urshift32):

  • tests/stress/op_rshift.js:
  • tests/stress/op_urshift.js:
  • Un-skip these tests. They should always pass now.
12:49 PM Changeset in webkit [196590] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

CMake build fix.

  • PlatformMac.cmake:
12:30 PM Changeset in webkit [196589] by achristensen@apple.com
  • 5 edits in trunk

Fix internal Windows build of projects built after WebKit
https://bugs.webkit.org/show_bug.cgi?id=154249
rdar://problem/24644805

Reviewed by Chris Dumez.

Source/WebKit:

  • PlatformWin.cmake:

Copy all generated headers to ForwardingHeaders/WebKit, not just WebKit.h.
This should fix problems related to not finding headers from other projects, such as AccessibleApplication.h.
WebKit.h, WebKitCOMAPI.h, and CFDictionaryPropertyBag.h were copied correctly, so this should copy the rest
of the needed headers.

Tools:

  • DumpRenderTree/PlatformWin.cmake:
  • MiniBrowser/win/CMakeLists.txt:

Don't include DerivedSources/WebKit/Interfaces to make MiniBrowser and DumpRenderTree
more like projects built internally after WebKit. They should only need to use what
is in ForwardingHeaders/WebKit.

12:09 PM Changeset in webkit [196588] by Chris Dumez
  • 3 edits
    2 adds in trunk

Regression(r196563): It is no longer possible to call window.addEventListener without an explicit 'this'
https://bugs.webkit.org/show_bug.cgi?id=154245

Reviewed by Ryosuke Niwa.

Source/WebCore:

This patch adds support for calling the EventListener API without an
explicit 'this' value. If no explicit 'this' value is passed, then we
fall back to using the global object. This matches Chrome and Firefox's
behavior. It also fixes the Dromaeo/cssquery-dojo.html test.

Test: fast/dom/Window/addEventListener-implicit-this.html

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateFunctionCastedThis):

LayoutTests:

Add a layout test to cover the use of the EventListener API without an
explicit 'this' value.

  • fast/dom/Window/addEventListener-implicit-this-expected.txt: Added.
  • fast/dom/Window/addEventListener-implicit-this.html: Added.
12:09 PM Changeset in webkit [196587] by fpizlo@apple.com
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

Parser::parseVariableDeclarationList should null check the node before attempting to create a new CommaExpr
https://bugs.webkit.org/show_bug.cgi?id=154244
rdar://problem/24290670

Reviewed by Michael Saboff.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::appendToCommaExpr): Catch the bug sooner in debug.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseVariableDeclarationList): Fix the bug.

  • tests/stress/for-let-comma.js: Added. This used to crash in debug and release.
12:01 PM Changeset in webkit [196586] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source/bmalloc

Merged r196536. rdar://problem/24620164

11:59 AM Changeset in webkit [196585] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/bmalloc

Merged r196424. rdar://problem/24620164

11:58 AM Changeset in webkit [196584] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/bmalloc

Merged r196421. rdar://problem/24620164

11:56 AM Changeset in webkit [196583] by barraclough@apple.com
  • 2 edits in trunk/Source/WebCore

Organize, deduplicate & comment JSDOMWindowCustom getOwnPropertySlot
https://bugs.webkit.org/show_bug.cgi?id=154224

Reviewed by Chris Dumez.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
(WebCore::jsDOMWindowGetOwnPropertySlotNamedItemGetter):
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):

  • organized property access sequence into a more logical order, removed duplicated code & added comments.

(WebCore::namedItemGetter): Deleted.

  • there was no need for a custom callback here; merged functionality into jsDOMWindowGetOwnPropertySlotNamedItemGetter.

(WebCore::jsDOMWindowGetOwnPropertySlotCrossOrigin): Deleted.

  • renamed to jsDOMWindowGetOwnPropertySlotRestrictedAccess (this now also handles frameless access).
10:54 AM Changeset in webkit [196582] by dbates@webkit.org
  • 6 edits in trunk

CSP: 'sandbox' should be ignored in report-only mode
https://bugs.webkit.org/show_bug.cgi?id=153167
<rdar://problem/22708669>

Reviewed by Brent Fulgham.

Source/WebCore:

Merged from Blink (patch by Mike West):
<https://src.chromium.org/viewvc/blink?revision=165322&view=revision>

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::reportInvalidDirectiveInReportOnlyMode): Added. Logs a
console message to the console to explain that the specified directive is invalid in
report-only mode.

  • page/csp/ContentSecurityPolicy.h:
  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::ContentSecurityPolicyDirectiveList::applySandboxPolicy): Do not apply sandbox
policy when in report-only mode and call ContentSecurityPolicy::reportInvalidDirectiveInReportOnlyMode()
to log a message to the console.

LayoutTests:

Remove the entry from the TestExpectations file for the test
http/tests/security/contentSecurityPolicy/sandbox-report-only.html as it now passes.

10:53 AM Changeset in webkit [196581] by dbates@webkit.org
  • 5 edits in trunk

CSP: Allow schemeless source expressions to match an HTTP or HTTPS resource
https://bugs.webkit.org/show_bug.cgi?id=154177
<rdar://problem/22708772>

Reviewed by Brent Fulgham.

Source/WebCore:

Allow a schemeless source expression to match an HTTP or HTTPS subresource when the page is
delivered over HTTP as per section Matching Source Expressions of the Content Security Policy
2.0 spec., <https://www.w3.org/TR/2015/CR-CSP2-20150721/> (21 July 2015).

Currently we have logic that implements this functionality, but it is guarded behind the compile-
time macro ENABLE(CSP_NEXT) that is disabled by default. Instead we should always compile such
code. In subsequent commits we will move more code out from under the ENABLE(CSP_NEXT)-guard
towards removing the ENABLE_CSP_NEXT macro entirely.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::protocolMatchesSelf):

LayoutTests:

Update test case and expected result to test that a schemeless source expression
matches an HTTPS subresource (and does not trigger a Content Security Policy violation)
when the page is served over HTTP.

  • http/tests/security/contentSecurityPolicy/source-list-parsing-10-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-10.html: Change "no" to "yes"

so that we consider it a success (and continue printing "PASS") when we load and execute the
script, <https://127.0.0.1:8443/security/contentSecurityPolicy/resources/script.js>.

9:52 AM Changeset in webkit [196580] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Fix byline to avoid bumping into content sticks out.

  • wp-content/themes/webkit/style.css:

(article .byline): Bump padding to avoid content with negative margins.

9:44 AM Changeset in webkit [196579] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator after r196563

Unreviewed test gardening.

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
7:53 AM Changeset in webkit [196578] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Source/WebCore

[cmake] Consolidated Linux-specific file lists.
https://bugs.webkit.org/show_bug.cgi?id=154219

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-02-15
Reviewed by Gyuyoung Kim.

No new tests needed.

  • PlatformEfl.cmake: Moved Linux files and include dir to Linux.cmake.
  • PlatformGTK.cmake: Ditto.
  • platform/Linux.cmake: Added.
5:30 AM Changeset in webkit [196577] by Hunseop Jeong
  • 344 edits in trunk/LayoutTests

Unreviewed. EFL gardening after r195740.

  • platform/efl/tables/mozilla/bugs/bug10269-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug10269-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug10296-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug103533-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug106158-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug108340-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug110566-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug11321-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug113235-3-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug11944-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug119786-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug1261-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug12910-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug13105-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug13118-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug133756-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug133756-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug13484-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug13526-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug138725-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug14159-3-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug149275-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug17130-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug1828-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug18558-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2050-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug20579-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug21299-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug21918-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug221784-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug221784-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug22246-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug22246-2a-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2267-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug23072-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug23151-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug23299-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug24503-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug24627-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2469-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2479-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug24880-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug25086-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2516-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug25367-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2585-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug26178-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug27038-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug27038-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug275625-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2757-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug278266-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug278385-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2886-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug29157-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug2973-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug3037-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug3037-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug30418-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug30985-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug3191-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug32205-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug32205-5-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug32447-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug3263-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug3309-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug34538-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug35662-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug3718-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug39209-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug40828-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug4284-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug4429-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug44523-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug45055-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug4520-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug46268-3-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug46268-5-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug46268-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug46480-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug46480-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug4739-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug48028-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug48028-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug51140-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug55527-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug55694-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug56405-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug57300-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug57378-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug57828-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug5798-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug5799-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug5838-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug58402-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug60013-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug60749-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug60992-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug63785-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug650-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug67864-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug67915-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug69187-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug709-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug7112-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug7112-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug75250-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug8032-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug82946-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug8361-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug83786-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug8381-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug9072-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug9271-1-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug93363-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug96343-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug965-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug97138-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug99923-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/efl/tables/mozilla/collapsing_borders/bug127040-expected.txt:
  • platform/efl/tables/mozilla/collapsing_borders/bug41262-4-expected.txt:
  • platform/efl/tables/mozilla/core/captions-expected.txt:
  • platform/efl/tables/mozilla/core/col_widths_auto_auto-expected.txt:
  • platform/efl/tables/mozilla/core/col_widths_auto_autoPer-expected.txt:
  • platform/efl/tables/mozilla/core/col_widths_fix_autoPer-expected.txt:
  • platform/efl/tables/mozilla/core/row_span-expected.txt:
  • platform/efl/tables/mozilla/dom/appendCol2-expected.txt:
  • platform/efl/tables/mozilla/dom/appendRowsExpand1-expected.txt:
  • platform/efl/tables/mozilla/dom/appendTbodyExpand1-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteCellsRebuild1-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteCellsShrink1-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteCellsShrink2-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteCol1-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteCol2-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteCol3-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteColGroup1-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteColGroup2-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteRowsRebuild1-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteRowsShrink1-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteTbodyExpand1-expected.txt:
  • platform/efl/tables/mozilla/dom/deleteTbodyRebuild1-expected.txt:
  • platform/efl/tables/mozilla/dom/insertCellsExpand1-expected.txt:
  • platform/efl/tables/mozilla/dom/insertCellsExpand2-expected.txt:
  • platform/efl/tables/mozilla/dom/insertCellsRebuild1-expected.txt:
  • platform/efl/tables/mozilla/dom/insertCellsRebuild2-expected.txt:
  • platform/efl/tables/mozilla/dom/insertRowsExpand1-expected.txt:
  • platform/efl/tables/mozilla/dom/insertRowsRebuild1-expected.txt:
  • platform/efl/tables/mozilla/dom/tableDom-expected.txt:
  • platform/efl/tables/mozilla/marvin/body_col-expected.txt:
  • platform/efl/tables/mozilla/marvin/body_tbody-expected.txt:
  • platform/efl/tables/mozilla/marvin/body_tfoot-expected.txt:
  • platform/efl/tables/mozilla/marvin/body_thead-expected.txt:
  • platform/efl/tables/mozilla/marvin/col_span-expected.txt:
  • platform/efl/tables/mozilla/marvin/table_frame_border-expected.txt:
  • platform/efl/tables/mozilla/marvin/table_frame_box-expected.txt:
  • platform/efl/tables/mozilla/marvin/table_rules_all-expected.txt:
  • platform/efl/tables/mozilla/marvin/table_rules_none-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_border_0-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_border_1-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_border_2-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_border_3-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_caption_align_bot-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_caption_align_top-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_cellspacing-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_default-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_id-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_row_th_nowrap-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_td_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_td_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_td_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_td_colspan-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_td_height-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_td_nowrap-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_td_rowspan-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_th_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_th_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_th_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_th_colspan-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_th_height-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_th_rowspan-expected.txt:
  • platform/efl/tables/mozilla/marvin/tbody_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/tbody_align_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/tbody_align_justify-expected.txt:
  • platform/efl/tables/mozilla/marvin/tbody_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/tbody_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/tbody_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/tfoot_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/tfoot_align_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/tfoot_align_justify-expected.txt:
  • platform/efl/tables/mozilla/marvin/tfoot_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/tfoot_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/tfoot_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/thead_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/thead_align_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/thead_align_justify-expected.txt:
  • platform/efl/tables/mozilla/marvin/thead_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/thead_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/thead_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_caption_align_bottom-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_caption_align_top-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_bgcolor_name-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_bgcolor_rgb-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_border-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_border_none-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_border_px-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_cellpadding-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_cellpadding_pct-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_cellspacing-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_cellspacing_pct-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_frame_void-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_rules_groups-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_rules_none-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_table_style-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tbody_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tbody_align_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tbody_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tbody_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tbody_class-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tbody_id-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tbody_style-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_bgcolor_name-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_bgcolor_rgb-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_class-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_colspan-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_height-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_id-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_nowrap-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_rowspan-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_td_style-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tfoot_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tfoot_align_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tfoot_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tfoot_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tfoot_class-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tfoot_id-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tfoot_style-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_th_bgcolor_name-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_th_bgcolor_rgb-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_th_class-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_th_colspan-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_th_height-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_th_id-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_th_nowrap-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_th_style-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_thead_align_center-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_thead_align_char-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_thead_align_left-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_thead_align_right-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_thead_class-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_thead_id-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_thead_style-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tr_bgcolor_name-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tr_bgcolor_rgb-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tr_class-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tr_id-expected.txt:
  • platform/efl/tables/mozilla/marvin/x_tr_style-expected.txt:
  • platform/efl/tables/mozilla/other/body_col-expected.txt:
  • platform/efl/tables/mozilla/other/cellspacing-expected.txt:
  • platform/efl/tables/mozilla/other/move_row-expected.txt:
  • platform/efl/tables/mozilla/other/padding-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug10140-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug101759-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug10216-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug104898-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug1055-2-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug106336-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug11945-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug131020-3-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug14159-2-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug178855-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug18770-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug24880-1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug25707-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug3166-11-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug3166-12-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug3166-13-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug3166-14-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug3166-16-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug3166-17-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug3166-18-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug32205-1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug32205-4-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug4294-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug46268-4-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug51000-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug65372-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug6933-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug7113-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug73629-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug92868_1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/core/backgrounds-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/core/captions3-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/core/conflicts-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/dom/appendCells1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/dom/appendCellsRebuild1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/dom/appendCol1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/dom/insertTbodyExpand1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/dom/insertTbodyRebuild1-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_frame_above-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_frame_below-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_frame_hsides-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_frame_lhs-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_frame_rhs-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_frame_void-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_frame_vsides-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_row-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_rules_cols-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/table_rules_rows-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/tables_caption_align_left-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/tables_caption_align_right-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_caption_align_left-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_caption_align_right-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_colgroup_width_px-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_above-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_below-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_border-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_box-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_hsides-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_lhs-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_rhs-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_frame_vsides-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_rules_all-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_rules_cols-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/marvin/x_table_rules_rows-expected.txt:
4:28 AM Changeset in webkit [196576] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore
Fix the !(ENABLE(SVG_FONTS)
ENABLE(SVG_OTF_CONVERTER)) build after r196322

https://bugs.webkit.org/show_bug.cgi?id=154104

Reviewed by Myles C. Maxfield.

  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::CSSFontFaceSource):

2:30 AM Changeset in webkit [196575] by Antti Koivisto
  • 5 edits
    2 adds in trunk

Add test for class change style invalidation optimization
https://bugs.webkit.org/show_bug.cgi?id=154226

Reviewed by Myles Maxfield.

Test for https://trac.webkit.org/r196383

Source/WebCore:

Add internals.styleChangeType function.

Test: fast/css/style-invalidation-class-change-descendants.html

  • testing/Internals.cpp:

(WebCore::Internals::nodeNeedsStyleRecalc):
(WebCore::asString):
(WebCore::Internals::styleChangeType):
(WebCore::Internals::description):

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

LayoutTests:

  • fast/css/style-invalidation-class-change-descendants-expected.txt: Added.
  • fast/css/style-invalidation-class-change-descendants.html: Added.
1:50 AM Changeset in webkit [196574] by Hunseop Jeong
  • 2 edits in trunk/LayoutTests

Unreviewed. EFL gardening. Mark more video tests to failure.

  • platform/efl/TestExpectations: Added more crash tests and moved the tests to upper position.
1:12 AM Changeset in webkit [196573] by commit-queue@webkit.org
  • 9 edits in trunk/Source/JavaScriptCore

[JSC] Improve the interface of Inst::shouldTryAliasingDef()
https://bugs.webkit.org/show_bug.cgi?id=154227

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-02-15
Reviewed by Andreas Kling.

Using Optional<> instead of a bool+reference looks cleaner
at the call sites.

  • b3/B3CheckSpecial.cpp:

(JSC::B3::CheckSpecial::shouldTryAliasingDef):

  • b3/B3CheckSpecial.h:
  • b3/air/AirCustom.h:

(JSC::B3::Air::PatchCustom::shouldTryAliasingDef):

  • b3/air/AirInst.h:
  • b3/air/AirInstInlines.h:

(JSC::B3::Air::Inst::shouldTryAliasingDef):

  • b3/air/AirIteratedRegisterCoalescing.cpp:
  • b3/air/AirSpecial.cpp:

(JSC::B3::Air::Special::shouldTryAliasingDef):

  • b3/air/AirSpecial.h:
12:39 AM Changeset in webkit [196572] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

[CMake][Mac] Remove WKNPAPIPlugInContainer.mm in WebKit2/PlatformMac.cmake
https://bugs.webkit.org/show_bug.cgi?id=154234

Reviewed by Csaba Osztrogonác.

  • PlatformMac.cmake: Remove WKNPAPIPlugInContainer.mm.

Feb 14, 2016:

9:10 PM Changeset in webkit [196571] by Simon Fraser
  • 3 edits
    2 adds in trunk

[CSS Filters] When applying an SVG filter on a composited image using CSS the image is rendered without the filter
https://bugs.webkit.org/show_bug.cgi?id=154108

Reviewed by Sam Weinig.
Source/WebCore:

When checking whether we can directly composite an image, we need to check for software-rendered
filters.

Test: compositing/filters/simple-image-with-svg-filter.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::isDirectlyCompositedImage):

LayoutTests:

  • compositing/filters/simple-image-with-svg-filter-expected.html: Added.
  • compositing/filters/simple-image-with-svg-filter.html: Added.
8:49 PM Changeset in webkit [196570] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Unreviewed, land an additional Mac CMake build fix.

  • PlatformMac.cmake:
8:47 PM Changeset in webkit [196569] by Chris Dumez
  • 3 edits in trunk/Source/WebKit/win

Unreviewed Window build fix.

  • WebCoreStatistics.cpp:
  • WebJavaScriptCollector.cpp:
8:43 PM Changeset in webkit [196568] by Chris Dumez
  • 46 edits in trunk/Source/WebCore

Drop the [EventTarget] WebKit-specific IDL extended attribute
https://bugs.webkit.org/show_bug.cgi?id=154171

Reviewed by Sam Weinig.

Drop the [EventTarget] WebKit-specific IDL extended attribute now that
all interfaces inherit EventTarget when they should.

No new tests, no Web-Exposed behavior change.

  • Modules/battery/BatteryManager.idl:
  • Modules/encryptedmedia/MediaKeySession.idl:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/indexeddb/IDBOpenDBRequest.idl:
  • Modules/indexeddb/IDBRequest.idl:
  • Modules/indexeddb/IDBTransaction.idl:
  • Modules/mediasession/MediaRemoteControls.idl:
  • Modules/mediasource/MediaSource.idl:
  • Modules/mediasource/SourceBuffer.idl:
  • Modules/mediasource/SourceBufferList.idl:
  • Modules/mediastream/MediaStream.idl:
  • Modules/mediastream/MediaStreamTrack.idl:
  • Modules/mediastream/RTCDTMFSender.idl:
  • Modules/mediastream/RTCDataChannel.idl:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/notifications/Notification.idl:
  • Modules/speech/SpeechSynthesisUtterance.idl:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/AudioNode.idl:
  • Modules/webaudio/OfflineAudioContext.idl:
  • Modules/websockets/WebSocket.idl:
  • bindings/scripts/CodeGeneratorGObject.pm:

(ImplementsInterface):
(SkipFunction): Deleted.
(GenerateCFile): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(InstanceNeedsVisitChildren):
(GenerateImplementation):

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/test/TestEventTarget.idl:
  • bindings/scripts/test/TestNode.idl:
  • css/FontLoader.idl:
  • dom/EventTarget.idl:
  • dom/MessagePort.idl:
  • dom/Node.idl:
  • dom/WebKitNamedFlow.idl:
  • fileapi/FileReader.idl:
  • html/MediaController.idl:
  • html/track/AudioTrackList.idl:
  • html/track/TextTrack.idl:
  • html/track/TextTrackCue.idl:
  • html/track/TextTrackList.idl:
  • html/track/VideoTrackList.idl:
  • loader/appcache/DOMApplicationCache.idl:
  • page/DOMWindow.idl:
  • page/EventSource.idl:
  • page/Performance.idl:
  • workers/WorkerGlobalScope.idl:
  • xml/XMLHttpRequest.idl:
  • xml/XMLHttpRequestUpload.idl:
7:53 PM Changeset in webkit [196567] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix the Mac CMake build after r196136

  • PlatformMac.cmake:
7:47 PM Changeset in webkit [196566] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Unreviewed attempt to fix the Windows build.

  • Modules/webdatabase/Database.cpp:
  • bridge/c/c_utility.cpp:
  • platform/MemoryPressureHandler.cpp:
6:23 PM Changeset in webkit [196565] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.5.17.1/Source

Versioning.

6:22 PM Changeset in webkit [196564] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.5.17.1

New tag.

6:17 PM Changeset in webkit [196563] by Chris Dumez
  • 29 edits
    3 adds in trunk

Window and WorkerGlobalScope should inherit EventTarget
https://bugs.webkit.org/show_bug.cgi?id=154170
<rdar://problem/24642377>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline now that a couple of checks are passing.

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

Source/WebCore:

Window and WorkerGlobalScope should inherit EventTarget instead of
duplicating the EventTarget API in their IDL. These were the last
interfaces that needed fixing. The next step will be to get rid
of the [EventTarget] IDL extended attribute and rely entirely
on the EventTarget inheritance.

Test:

  • fast/frames/detached-frame-eventListener.html
  • Covered by existing tests.
  • WebCore.xcodeproj/project.pbxproj:

Add JSEventTargetCustom.h header to the project.

  • bindings/js/JSDOMWindowCustom.cpp:

Drop custom bindings for Window's addEventListener() and
removeEventListener(). The only reason these needed custom
code was to add a check for frameless windows. The frameless
Window checks was moved to the respective methods in the
JSEventTarget generated bindings.

  • bindings/js/JSDOMWindowShell.cpp:

(WebCore::JSDOMWindowShell::setWindow):
Set WindowPrototype's prototype to EventTarget's prototype.

  • bindings/js/JSDOMWindowShell.h:
  • bindings/js/JSDictionary.cpp:

Include "DOMWindow.h" to fix the build.

  • bindings/js/JSEventTargetCustom.cpp:

(WebCore::JSEventTarget::toWrapped):
Handle DOMWindow and WorkerGlobalScope explicitely in toWrapped()
and get rid of the DOM_EVENT_TARGET_INTERFACES_FOR_EACH(TRY_TO_UNWRAP_WITH_INTERFACE)
now that all interfaces inherit EventTarget when they should.
The reason DOMWindow and WorkerGlobalScope still need special
handling is because their wrappers (JSDOMWindow /
JSWorkerGlobalScope) do not subclass JSEventTarget.

(WebCore::JSEventTargetOrGlobalScope::create):

  • bindings/js/JSEventTargetCustom.h: Added.

(WebCore::JSEventTargetOrGlobalScope::wrapped):
(WebCore::JSEventTargetOrGlobalScope::operator JSC::JSObject&):
(WebCore::JSEventTargetOrGlobalScope::JSEventTargetOrGlobalScope):
Add a wrapper type for JSEventTarget / JSDOMWindow and
JSWorkerGlobalScope for use in the generated bindings. This is
needed because JSDOMWindow and JSWorkerGlobalScope do not
subclass JSEventTarget. Subclassing JSEventTarget would be
complicated for them because they already subclass
JSDOMWindowBase / JSWorkerGlobalScopeBase, which subclasses
JSDOMGlobalObject.

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::initScript):
Set WorkerGlobalScopePrototype's prototype to EventTarget's prototype.

  • bindings/scripts/CodeGeneratorJS.pm:

(ShouldGenerateToJSDeclaration):
Do not generate to toJS() implementation for interfaces that use
the [CustomProxyToJSObject] IDL extended attribute, even if they
inherit EventTarget.

(GetCastingHelperForThisObject):
To initialize castedThis from thisValue JSValue, we now use the
JSEventTargetOrGlobalScope wrapper for the EventTarget
implementation. This is to work around the fact that JSDOMWindow
and JSWorkerGlobalScope do not subclass JSEventTarget.

(GenerateFunctionCastedThis):

  • Drop code handling [WorkerGlobalScope] IDL extended attribute as there is no such attribute.
  • Use auto instead of auto* type for castedThis because JSEventTargetOrGlobalScope::create() returns a unique_ptr.
  • Do not check that castedThis inherits JSEventTarget in the EventTarget bindings code as this no longer holds true.

(GenerateImplementation):
Generate frameless window() and security checks for EventTarget
methods when thisValue is a JSDOMWindow.

  • dom/EventTarget.idl:

Add [JSCustomHeader] IDL Extended attribute as we need a header
to expose JSEventTargetOrGlobalScope class.

  • page/DOMWindow.idl:
  • workers/WorkerGlobalScope.idl:

Inherit EventTarget and stop duplicating the EventTarget API.
This matches the HTML specification.

LayoutTests:

  • fast/frames/detached-frame-eventListener-expected.txt: Added.
  • fast/frames/detached-frame-eventListener.html: Added.

Add test case to cover the use of the EventListener API on a detached
frame.

  • fast/loader/window-clearing-expected.txt:

Rebaseline now that window has one more object in its prototype chain.

  • http/tests/security/cross-frame-access-call-expected.txt:
  • http/tests/security/cross-frame-access-call.html:

Add test coverage for cross-origin access to window.dispatchEvent() which
should not be allowed, in addition to window.addEventListener() and
window.removeEventListener() which were already tested.

5:42 PM Changeset in webkit [196562] by BJ Burg
  • 7 edits in trunk/Source

WKAutomationDelegate's requestAutomationSession should take a suggested session identifier
https://bugs.webkit.org/show_bug.cgi?id=154012
<rdar://problem/24557697>

Reviewed by Darin Adler.

Source/JavaScriptCore:

Add a string parameter to the client method for requesting a new session.

  • inspector/remote/RemoteInspector.h:

Source/WebKit2:

Add a string parameter to the delegate method for requesting a new session.

  • UIProcess/API/APIAutomationClient.h:

(API::AutomationClient::didRequestAutomationSession):
(API::AutomationClient::requestAutomationSession): Deleted.
Rename the client method to better match the delegate method's name.

  • UIProcess/API/Cocoa/_WKAutomationDelegate.h:
  • UIProcess/Cocoa/AutomationClient.h:
  • UIProcess/Cocoa/AutomationClient.mm:

(WebKit::AutomationClient::AutomationClient):
(WebKit::AutomationClient::requestAutomationSession):

5:26 PM Changeset in webkit [196561] by Darin Adler
  • 3 edits in trunk/Source/WebCore

Small tweaks to some SimpleLineLayout code
https://bugs.webkit.org/show_bug.cgi?id=154229

Reviewed by Zalan Bujtas.

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::paintFlow): Use std::ceil instead of ceilf.
Use auto instead of const auto& for a for loop where the local object is
copied and not a reference.
(WebCore::SimpleLineLayout::hitTestFlow): Use modern for loop.
(WebCore::SimpleLineLayout::collectFlowOverflow): Use std::ceil instead of
ceilf. Use a modern for loop, and use slightly more descriptive local
variable names.
(WebCore::SimpleLineLayout::computeBoundingBox): Use auto instead of
const auto& as above.
(WebCore::SimpleLineLayout::computeFirstRunLocation): Use auto and use
the name "range" for the range rather than the name "it", since the range
is not an iterator.
(WebCore::SimpleLineLayout::collectAbsoluteRects): Use auto instead of
const auto& as above.
(WebCore::SimpleLineLayout::collectAbsoluteQuads): Ditto.
(WebCore::SimpleLineLayout::showLineLayoutForFlow): Use modern for loop.

  • rendering/SimpleLineLayoutResolver.cpp:

(WebCore::SimpleLineLayout::RunResolver::Run::text): Convert from a String
to a StringView using the StringView constructor instead of writing out
explicit 8-bit and 16-bit cases.

1:57 AM Changeset in webkit [196560] by Antti Koivisto
  • 5 edits
    2 adds in trunk/Source/WebCore

Factor class change style invalidation code into a class
https://bugs.webkit.org/show_bug.cgi?id=154163

Reviewed by Andreas Kling.

Factor this piece of functionality out of Element and into ClassChangeInvalidation class.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Element.cpp:

(WebCore::classStringHasClassName):
(WebCore::Element::classAttributeChanged):
(WebCore::collectClasses): Deleted.
(WebCore::computeClassChange): Deleted.
(WebCore::invalidateStyleForClassChange): Deleted.

  • style/ClassChangeInvalidation.cpp: Added.

(WebCore::Style::ClassChangeInvalidation::computeClassChange):
(WebCore::Style::ClassChangeInvalidation::invalidateStyle):

  • style/ClassChangeInvalidation.h: Added.

(WebCore::Style::ClassChangeInvalidation::needsInvalidation):
(WebCore::Style::ClassChangeInvalidation::ClassChangeInvalidation):
(WebCore::Style::ClassChangeInvalidation::~ClassChangeInvalidation):

Feb 13, 2016:

6:20 PM Changeset in webkit [196559] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] [SVG -> OTF Converter] SVG fonts drawn into ImageBuffers are invisible
https://bugs.webkit.org/show_bug.cgi?id=154222

Reviewed by Antti Koivisto.

Windows ImageBuffer code is sensitive to broken bounding box and
descent code.

Covered by existing tests.

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::appendHHEATable):
(WebCore::SVGToOTFFontConverter::appendOS2Table):
(WebCore::SVGToOTFFontConverter::processGlyphElement):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):

6:17 PM Changeset in webkit [196558] by mitz@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Removed the unused Frameworks group.

Rubber-stamped by Sam Weinig.

  • WebInspectorUI.xcodeproj/project.pbxproj:
5:47 PM Changeset in webkit [196557] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Adjust the appearance of mattewhite figures that are not widescreen.

  • wp-content/themes/webkit/style.css:

(article .mattewhite:not(.widescreen):

2:48 PM Changeset in webkit [196556] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

v3 UI sometimes shows same dates twice on the x-axis of time series charts
https://bugs.webkit.org/show_bug.cgi?id=154210

Reviewed by Chris Dumez.

The bug was caused by the label generation code in TimeSeriesChart.computeTimeGrid never emitting hours.

Use hours instead of dates as labels when the current time's date is same as the previous label's date.
Always include dates before entering this mode to avoid just having hours as labels on the entire x-axis.

  • public/v3/components/time-series-chart.js:

(TimeSeriesChart.prototype._renderXAxis): Slightly increase the "average" width of x-axis label.
(TimeSeriesChart.computeTimeGrid): See above. Also assert that the number of labels we generate never
exceeds maxLabels as a sanity check.
(TimeSeriesChart._timeIterators): Added an iterator that increments by two hours for zoomed graphs.

2:45 PM Changeset in webkit [196555] by Antti Koivisto
  • 6 edits in trunk/Source/WebCore

Add version number for default stylesheet
https://bugs.webkit.org/show_bug.cgi?id=154220

Reviewed by Ryosuke Niwa.

We currently fail to update RuleFeatureSets for shadow trees when the default stylesheet grows
(for example when media controls stylesheet is initialized).

No test since this is not causing known bugs. It is blocking optimizations in shadow trees that
rely on rule features being up-to-date.

  • css/CSSDefaultStyleSheets.cpp:

(WebCore::CSSDefaultStyleSheets::loadSimpleDefaultStyle):
(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):

Increment version number when the default stylesheet changes.

  • css/CSSDefaultStyleSheets.h:
  • css/DocumentRuleSets.cpp:

(WebCore::DocumentRuleSets::appendAuthorStyleSheets):
(WebCore::DocumentRuleSets::collectFeatures):

Store the current default stylesheet version number.

  • css/DocumentRuleSets.h:

(WebCore::DocumentRuleSets::features):

Collect features again if the default stylesheet has changed.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::styleForElement):

2:39 PM Changeset in webkit [196554] by mark.lam@apple.com
  • 3 edits in trunk/Source/WTF

Eliminate the need for WTFCrashImpl().
https://bugs.webkit.org/show_bug.cgi?id=154202

Reviewed by Alexey Proskuryakov.

  • wtf/Assertions.cpp:
  • wtf/Assertions.h:
1:30 PM Changeset in webkit [196553] by rniwa@webkit.org
  • 7 edits in trunk/Websites/perf.webkit.org

v3 UI should show status and associated bugs on analysis task pages
https://bugs.webkit.org/show_bug.cgi?id=154212

Reviewed by Chris Dumez.

Added the capability to see and modify the status and the list of associated of bugs on analysis task pages.

Also added the list of related tasks, which are analysis tasks associated with the same bug or have
overlapping time ranges with the same test metric but on a potentially different platform.

In addition, categorize analysis tasks with the status of "no change" or "inconclusive" as "closed" as no
further action can be taken (users can bring them back to non-closed state without any restrictions).

  • public/api/analysis-tasks.php:

(format_task): Categorize 'unchanged' and 'inconclusive' analysis tasks as closed.

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

(main): Added shouldDelete as a new mechanism to disassociate a bug since v3 UI shares a single Bug object
between multiple analysis tasks (as it should have been in the first place).

  • public/v3/components/chart-pane-base.js:

(ChartPaneBase):
(ChartPaneBase.prototype._fetchAnalysisTasks): Since each analysis task's change type (status/result) could
change, we need to create annotation objects during each render() call.
(ChartPaneBase.prototype.render):
(ChartPaneBase.prototype._renderAnnotations): Extracted from ChartPaneBase.prototype._fetchAnalysisTasks to
do that. I was afraid of the perf impact of this but it doesn't seem to be an issue in my testing.
(ChartPaneBase.cssTemplate): Removed superfluous margins (moved to ChartPane.cssTemplate) around the charts
since they are only useful in the charts page.

  • public/v3/models/analysis-task.js:

(AnalysisTask):
(AnalysisTask.prototype.updateSingleton): Added a comment as to why object.result cannot be renamed to
object.changeType in the JSON API.
(AnalysisTask.prototype.updateName): Added.
(AnalysisTask.prototype.updateChangeType): Added.
(AnalysisTask.prototype._updateRemoteState): Added.
(AnalysisTask.prototype.associateBug): Added.
(AnalysisTask.prototype.disassociateBug): Added.
(AnalysisTask.fetchRelatedTasks): Added. See above for the criteria of related-ness.

  • public/v3/pages/analysis-task-page.js:

(AnalysisTaskPage):
(AnalysisTaskPage.prototype.updateFromSerializedState):
(AnalysisTaskPage.prototype._fetchRelatedInfoForTaskId): Extracted from updateFromSerializedState.
(AnalysisTaskPage.prototype._didFetchRelatedAnalysisTasks): Added.
(AnalysisTaskPage.prototype.render): Render the list of associated bugs, the list of bug trackers (so that
users can use it to associate with a new bug), and the list of related analysis tasks.
(AnalysisTaskPage.prototype._renderTestGroupList): Extracted from render since it was getting too long.
(AnalysisTaskPage.prototype._renderTestGroupDetails): Ditto.
(AnalysisTaskPage.prototype._updateChangeType): Added.
(AnalysisTaskPage.prototype._associateBug): Added.
(AnalysisTaskPage.prototype._disassociateBug): Added.
(AnalysisTaskPage.htmlTemplate): Added various elements to show and modify the status, associate bugs,
and a list of related analysis tasks.
(AnalysisTaskPage.cssTemplate): Added various styles for those form controls.

  • public/v3/pages/chart-pane.js:

(ChartPane.cssTemplate): Moved the margins from ChartPaneBase.cssTemplate.

11:12 AM Changeset in webkit [196552] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Source/WebCore

[cmake] Consolidate building of GStreamer and OpenWebRTC code.
https://bugs.webkit.org/show_bug.cgi?id=154116

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-02-13
Reviewed by Michael Catanzaro.

No new tests needed.

  • PlatformEfl.cmake: Migrated shared code to GStreamer.cmake.
  • PlatformGTK.cmake: Ditto.
  • platform/GStreamer.cmake: Added.
9:41 AM Changeset in webkit [196551] by mark.lam@apple.com
  • 7 edits in trunk/Source

Add thread violation checks to WebView public APIs.
https://bugs.webkit.org/show_bug.cgi?id=154183

Reviewed by Timothy Hatcher.

Source/WebCore:

No new tests. Just adding a new thread violation round.

  • platform/ThreadCheck.h:
  • platform/mac/ThreadCheck.mm:
  • Adding WebCoreThreadViolationCheckRoundThree().

Source/WebKit/mac:

Re-landing r196527 with a newly added WebCoreThreadViolationCheckRoundThree().
Previously was using WebCoreThreadViolationCheckRoundTwo().

  • Misc/WebKitVersionChecks.h:
  • WebView/WebFrameView.mm:

(-[WebFrameView initWithFrame:]):

  • WebView/WebView.mm:

(-[WebView setCustomTextEncodingName:]):
(-[WebView stringByEvaluatingJavaScriptFromString:]):
(-[WebView windowScriptObject]):
(-[WebView setGroupName:]):
(-[WebView setMainFrameURL:]):
(-[WebView mainFrameTitle]):
(-[WebView mainFrameIcon]):
(-[WebView setDrawsBackground:]):
(-[WebView setShouldUpdateWhileOffscreen:]):

5:38 AM Changeset in webkit [196550] by timothy@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix WebAssembly bug URL in the feature list.

  • features.json:
1:23 AM Changeset in webkit [196549] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: DataGrid Header Cells should have Context Menu for Sorting
https://bugs.webkit.org/show_bug.cgi?id=154050

Patch by Devin Rousso <Devin Rousso> on 2016-02-13
Reviewed by Joseph Pecoraro.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype.set sortOrder):
(WebInspector.DataGrid.prototype._toggledSortOrder):
Returns the opposite sort order from the current order.

(WebInspector.DataGrid.prototype._selectSortColumnAndSetOrder):
Changes the selected column to the one with the specified identifier and
then switches the sort order to the given order.

(WebInspector.DataGrid.prototype._headerCellClicked):
Moved logic for switching cells/sort-order to a separate function for
better reusability.

(WebInspector.DataGrid.prototype._contextMenuInHeader):
Adds context menu items on DataGrid header items to change the current
sort order to the specified order. If the context menu is on the selected
header item, only show the sort order that is not currently applied.

12:49 AM Changeset in webkit [196548] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2

Unreviewed. Fix GTK+ and hopefully EFL build after r196499.

  • UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:

(WebKit::PluginProcessProxy::platformGetLaunchOptions):

Feb 12, 2016:

11:21 PM Changeset in webkit [196547] by Sukolsak Sakshuwong
  • 2 edits in trunk/Source/JavaScriptCore

Change the last RefPtr::get() to release() in String.prototype.normalize
https://bugs.webkit.org/show_bug.cgi?id=154211

Reviewed by Ryosuke Niwa.

Change the last RefPtr::get() to release() in String.prototype.normalize.

  • runtime/StringPrototype.cpp:

(JSC::normalize):

9:24 PM Changeset in webkit [196546] by n_wang@apple.com
  • 20 edits
    2 adds in trunk

AX: Implement paragraph related text marker functions using TextIterator
https://bugs.webkit.org/show_bug.cgi?id=154098
<rdar://problem/24269675>

Reviewed by Chris Fleizach.

Source/WebCore:

Using CharacterOffset to implement paragraph related text marker calls. Reused
logic from VisibleUnits class. And refactored textMarkerForCharacterOffset method
to get better performance. Also fixed an issue where we can't navigate through a text
node with line breaks in it using next/previousCharacterOffset call.

Test: accessibility/mac/text-marker-paragraph-nav.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::traverseToOffsetInRange):
(WebCore::AXObjectCache::startOrEndTextMarkerDataForRange):
(WebCore::AXObjectCache::characterOffsetForNodeAndOffset):
(WebCore::AXObjectCache::textMarkerDataForCharacterOffset):
(WebCore::AXObjectCache::textMarkerDataForNextCharacterOffset):
(WebCore::AXObjectCache::textMarkerDataForPreviousCharacterOffset):
(WebCore::AXObjectCache::nextNode):
(WebCore::AXObjectCache::textMarkerDataForVisiblePosition):
(WebCore::AXObjectCache::nextCharacterOffset):
(WebCore::AXObjectCache::previousCharacterOffset):
(WebCore::startWordBoundary):
(WebCore::AXObjectCache::startCharacterOffsetOfWord):
(WebCore::AXObjectCache::endCharacterOffsetOfWord):
(WebCore::AXObjectCache::previousWordStartCharacterOffset):
(WebCore::AXObjectCache::previousWordBoundary):
(WebCore::AXObjectCache::startCharacterOffsetOfParagraph):
(WebCore::AXObjectCache::endCharacterOffsetOfParagraph):
(WebCore::AXObjectCache::paragraphForCharacterOffset):
(WebCore::AXObjectCache::nextParagraphEndCharacterOffset):
(WebCore::AXObjectCache::previousParagraphStartCharacterOffset):
(WebCore::AXObjectCache::rootAXEditableElement):

  • accessibility/AXObjectCache.h:

(WebCore::CharacterOffset::remaining):
(WebCore::CharacterOffset::isNull):
(WebCore::CharacterOffset::isEqual):
(WebCore::AXObjectCache::isNodeInUse):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(+[WebAccessibilityTextMarker textMarkerWithCharacterOffset:cache:]):
(-[WebAccessibilityObjectWrapper nextMarkerForCharacterOffset:]):
(-[WebAccessibilityObjectWrapper previousMarkerForCharacterOffset:]):
(-[WebAccessibilityObjectWrapper rangeForTextMarkers:]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(startOrEndTextmarkerForRange):
(nextTextMarkerForCharacterOffset):
(previousTextMarkerForCharacterOffset):
(-[WebAccessibilityObjectWrapper nextTextMarkerForCharacterOffset:]):
(-[WebAccessibilityObjectWrapper previousTextMarkerForCharacterOffset:]):
(-[WebAccessibilityObjectWrapper textMarkerForCharacterOffset:]):
(textMarkerForCharacterOffset):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
(-[WebAccessibilityObjectWrapper nextTextMarkerForNode:offset:]): Deleted.
(-[WebAccessibilityObjectWrapper previousTextMarkerForNode:offset:]): Deleted.
(-[WebAccessibilityObjectWrapper textMarkerForNode:offset:ignoreStart:]): Deleted.
(-[WebAccessibilityObjectWrapper textMarkerForNode:offset:]): Deleted.

  • editing/VisibleUnits.cpp:

(WebCore::nextSentencePosition):
(WebCore::findStartOfParagraph):
(WebCore::findEndOfParagraph):
(WebCore::startOfParagraph):
(WebCore::endOfParagraph):

  • editing/VisibleUnits.h:

Tools:

  • DumpRenderTree/AccessibilityUIElement.cpp:

(nextWordEndTextMarkerForTextMarkerCallback):
(paragraphTextMarkerRangeForTextMarkerCallback):
(previousParagraphStartTextMarkerForTextMarkerCallback):
(nextParagraphEndTextMarkerForTextMarkerCallback):
(setSelectedVisibleTextRangeCallback):
(AccessibilityUIElement::nextWordEndTextMarkerForTextMarker):
(AccessibilityUIElement::paragraphTextMarkerRangeForTextMarker):
(AccessibilityUIElement::previousParagraphStartTextMarkerForTextMarker):
(AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):
(AccessibilityUIElement::getJSClass):

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::nextWordEndTextMarkerForTextMarker):
(AccessibilityUIElement::paragraphTextMarkerRangeForTextMarker):
(AccessibilityUIElement::previousParagraphStartTextMarkerForTextMarker):
(AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::nextWordEndTextMarkerForTextMarker):
(AccessibilityUIElement::paragraphTextMarkerRangeForTextMarker):
(AccessibilityUIElement::previousParagraphStartTextMarkerForTextMarker):
(AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):
(AccessibilityUIElement::supportedActions):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::rightWordTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::previousWordStartTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::nextWordEndTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::paragraphTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::previousParagraphStartTextMarkerForTextMarker):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::nextWordEndTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::paragraphTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::previousParagraphStartTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::mathPostscriptsDescription):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::nextWordEndTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::paragraphTextMarkerRangeForTextMarker):
(WTR::AccessibilityUIElement::previousParagraphStartTextMarkerForTextMarker):
(WTR::AccessibilityUIElement::nextParagraphEndTextMarkerForTextMarker):
(WTR::_convertMathMultiscriptPairsToString):

LayoutTests:

  • accessibility/mac/text-marker-paragraph-nav-expected.txt: Added.
  • accessibility/mac/text-marker-paragraph-nav.html: Added.
  • accessibility/text-marker/text-marker-previous-next-expected.txt:
  • accessibility/text-marker/text-marker-previous-next.html:
8:52 PM Changeset in webkit [196545] by sbarati@apple.com
  • 7 edits in trunk

[ES6] we have an incorrect syntax error when a callee of a function expression has the same name as a top-level lexical declaration
https://bugs.webkit.org/show_bug.cgi?id=154143

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

We were raising syntax errors on the following type of programs when
we shouldn't have been.
`
(function foo() { const foo = 20; });
`

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseFunctionInfo):

  • parser/Parser.h:

(JSC::Scope::computeLexicallyCapturedVariablesAndPurgeCandidates):
(JSC::Scope::declareCallee):
(JSC::Scope::declareVariable):
(JSC::Scope::hasDeclaredVariable):
(JSC::Scope::hasLexicallyDeclaredVariable):
(JSC::Scope::hasDeclaredParameter):
(JSC::Scope::declareWrite):
(JSC::Scope::getCapturedVars):

LayoutTests:

  • js/basic-strict-mode-expected.txt:
  • js/let-syntax-expected.txt:
  • js/script-tests/let-syntax.js:
8:48 PM Changeset in webkit [196544] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] ZeroExtend and SignExtend use incorrect addressing on ARM64
https://bugs.webkit.org/show_bug.cgi?id=154208

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-02-12
Reviewed by Filip Pizlo.

When lowering:

@1 = Load32(@x)
@2 = SExt8(@1)

LowerToAir would see there is a form of SignExtend8To32 (an alias for Load8S)
and use that.

There are two problems with that:
1) If we have an Addr, it went through legalizeMemoryOffsets() for a 32bits

load. If used on an other kind of load, there is no guarantee the addressing
is still valid.

2) If we have an Index, it is computed for the 32bits MemoryValue.

The computed index is not valid for the 8bits load.

(2) could be fixed by changing LowerToAir to use the current instruction width
instead of the B3ValueWidth but that's a bit tricky. We should just embrace
that one of our target is a Load-Store architecture.

In this patch, I just disabled the faulty forms on ARM64. We still need those operations
to be fast, this will be addressed in: https://bugs.webkit.org/show_bug.cgi?id=154207

I also strengthened the m_allowScratchRegister assertion. The instructions that do not
invalidate the temporary did not run the assertion, making this harder to debug.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::load8):
(JSC::MacroAssemblerARM64::store64):
(JSC::MacroAssemblerARM64::store32):
(JSC::MacroAssemblerARM64::loadDouble):
(JSC::MacroAssemblerARM64::storeDouble):
(JSC::MacroAssemblerARM64::branch32):
(JSC::MacroAssemblerARM64::branch64):
(JSC::MacroAssemblerARM64::getCachedDataTempRegisterIDAndInvalidate):
(JSC::MacroAssemblerARM64::getCachedMemoryTempRegisterIDAndInvalidate):
(JSC::MacroAssemblerARM64::dataMemoryTempRegister):
(JSC::MacroAssemblerARM64::cachedMemoryTempRegister):
(JSC::MacroAssemblerARM64::load):
(JSC::MacroAssemblerARM64::store):

  • b3/air/AirOpcode.opcodes:
7:18 PM Changeset in webkit [196543] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

7:13 PM Changeset in webkit [196542] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Add a CSS class to remove padding when using mattewhite class for figures
https://bugs.webkit.org/show_bug.cgi?id=154206

Reviewed by Filip Pizlo.

  • wp-content/themes/webkit/style.css:

(article .two-columns):
(article .two-columns h6):
(article .two-columns p):
(article .mattewhite):
(article .mattewhite.tightwad):
(article figure):

6:37 PM Changeset in webkit [196541] by msaboff@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

offlineasm: Emit Dwarf2 file and location directives to allow for debugging .asm files
https://bugs.webkit.org/show_bug.cgi?id=152703

Reviewed by Mark Lam.

Added support to output Dwarf2 .file and .loc assembler directives to provide the debugging
information needed to correlate the offline assembler generated code with the source lines
in the .asm files.

Changed the tracking of file data to include a file index that was provided to the .file
directive. That index is used when emitting the .loc directives.

  • offlineasm/arm.rb:
  • offlineasm/arm64.rb:
  • offlineasm/asm.rb:
  • offlineasm/backends.rb:
  • offlineasm/config.rb:
  • offlineasm/parser.rb:
  • offlineasm/x86.rb:
6:07 PM Changeset in webkit [196540] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.5.17

New tag.

6:00 PM Changeset in webkit [196539] by fpizlo@apple.com
  • 1 edit
    14 adds in trunk/Websites/webkit.org

Unreviewed, upload some blog files.

  • blog-files/compile-times.png: Added.
  • blog-files/fast-isel.png: Added.
  • blog-files/jetstream-latency.png: Added.
  • blog-files/jetstream-throughput.png: Added.
  • blog-files/jetstream.png: Added.
  • blog-files/kraken.png: Added.
  • blog-files/low-compile-times.png: Added.
  • blog-files/low-fast-isel.png: Added.
  • blog-files/low-jetstream-latency.png: Added.
  • blog-files/low-jetstream-throughput.png: Added.
  • blog-files/low-jetstream.png: Added.
  • blog-files/low-kraken.png: Added.
  • blog-files/low-octane.png: Added.
  • blog-files/octane.png: Added.
5:49 PM Changeset in webkit [196538] by jiewen_tan@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed, build fix after r196520

  • inspector/model/remote-object-get-properties-expected.txt:
  • platform/mac/inspector/model/remote-object-expected.txt:
5:39 PM Changeset in webkit [196537] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

5:10 PM Changeset in webkit [196536] by msaboff@apple.com
  • 5 edits in trunk/Source/bmalloc

BASSERTs added in r196421 are causing debug test failures
https://bugs.webkit.org/show_bug.cgi?id=154113

Reviewed by Geoffrey Garen.

In VMHeap::deallocateLargeObject(), we drop the lock to deallocate the physical pages.
If the scavenger thread is running at the same time a synchronous call to scavenge()
comes in, we could call VMHeap::deallocateLargeObject() for an adjacent object while the
lock in the other thread is dropped. We fix this by checking for adjacent objects we
can merge with and loop if we have one.

  • bmalloc/FreeList.h:

(bmalloc::FreeList::push): Added BASSERT to catch adding unmerged free objects

  • bmalloc/Heap.cpp:

(bmalloc::Heap::allocateLarge): Changed to use nextCanMerge().

  • bmalloc/LargeObject.h:

(bmalloc::LargeObject::prevCanMerge): Repurposed prevIsAllocated.
(bmalloc::LargeObject::nextCanMerge): Repurposed nextIsAllocated.
(bmalloc::LargeObject::prevIsAllocated): Deleted.
(bmalloc::LargeObject::nextIsAllocated): Deleted.

  • bmalloc/VMHeap.h:

(bmalloc::VMHeap::allocateLargeObject): Moved adding the extra object back to the free list
to after we set the object we'll return as being allocated.
(bmalloc::VMHeap::deallocateLargeObject):

5:05 PM Changeset in webkit [196535] by mark.lam@apple.com
  • 3 edits in trunk/Source/bmalloc

Make BCRASH() use breakpoint traps too for non-debug OS(DARWIN).
https://bugs.webkit.org/show_bug.cgi?id=154184

Reviewed by Saam Barati.

This makes it behave consistently with WTFCrash().

  • bmalloc/BAssert.h:
  • bmalloc/BPlatform.h:
4:42 PM Changeset in webkit [196534] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator after r196520

Unreviewed test gardening.

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
4:40 PM Changeset in webkit [196533] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.99

New tag.

4:36 PM Changeset in webkit [196532] by Ryan Haddad
  • 3 edits in trunk/Source/WebCore

Reset results for bindings tests after r196520

Unreviewed test gardening.

No new tests needed.

  • bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:

(webkit_dom_test_event_target_dispatch_event):

  • bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:

(webkit_dom_test_node_dispatch_event):

4:36 PM Changeset in webkit [196531] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/mac

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

"Need to redo as WebCoreThreadViolationCheckRoundThree"
(Requested by mlam on #webkit).

Reverted changeset:

"Add thread violation checks to WebView public APIs."
https://bugs.webkit.org/show_bug.cgi?id=154183
http://trac.webkit.org/changeset/196527

4:32 PM Changeset in webkit [196530] by sbarati@apple.com
  • 2 edits in trunk/Source/WebCore

Attempting build fix from https://bugs.webkit.org/show_bug.cgi?id=154144.

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals):

4:30 PM Changeset in webkit [196529] by bshafiei@apple.com
  • 15 edits in branches/safari-601-branch/Source

Merge patch for rdar://problem/24626412.

4:24 PM Changeset in webkit [196528] by dbates@webkit.org
  • 4 edits
    4 adds
    2 deletes in trunk

CSP: 'blob:' URLs should not match 'self' in CSP source expression lists.
https://bugs.webkit.org/show_bug.cgi?id=153158
<rdar://problem/24383264>

Reviewed by Brent Fulgham.

Source/WebCore:

A blob URL should not match source 'self' by section Security Considerations for GUID URL schemes
of the Content Security Policy 2.0 spec., <https://www.w3.org/TR/CSP2/> (21 July 2015).

Tests: http/tests/security/contentSecurityPolicy/blob-url-does-not-match-source-self.html

http/tests/security/contentSecurityPolicy/blob-url-matches-source-blob.html

  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::ContentSecurityPolicySourceList::matches): Do not make a distinction between URLs that
contain a nested URL (e.g. blob://http://www.example.com/...) and URLs that do not contain a nested
URL. The URL of the requested resource should be matched against the source list source expressions.

LayoutTests:

Add test http/tests/security/contentSecurityPolicy/blob-url-matches-source-blob.html to ensure that a
blob URL matches source "blob:".

Replaced text-only test http/tests/security/contentSecurityPolicy/blob-urls-match-self.html with an
analogous reference test http/tests/security/contentSecurityPolicy/blob-url-does-not-match-source-self.html
so as ensure that we do not regress the behavior that source 'self' should not match a blob URL
without considering the Content Security Policy violation message as part of the expected result.
The Content Security Policy violation message will differ between test runs because it references
the blob URL that triggered the violation, which is cryptographically random.

  • TestExpectations: Remove entry for test http/tests/security/contentSecurityPolicy/blob-urls-match-self.html as the analogous test

blob-url-does-not-match-source-self.htm now passes.

  • http/tests/security/contentSecurityPolicy/blob-url-does-not-match-source-self-expected.html: Added.
  • http/tests/security/contentSecurityPolicy/blob-url-does-not-match-source-self.html: Added.
  • http/tests/security/contentSecurityPolicy/blob-url-matches-source-blob-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/blob-url-matches-source-blob.html: Added.
  • http/tests/security/contentSecurityPolicy/blob-urls-match-self-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/blob-urls-match-self.html: Removed. See the analogous test blob-url-does-not-match-source-self.html.
4:22 PM Changeset in webkit [196527] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Add thread violation checks to WebView public APIs.
https://bugs.webkit.org/show_bug.cgi?id=154183

Reviewed by Geoffrey Garen.

This will help clients of the API detect the violations sooner rather than
having to debug mysterious crashes / failures later.

To that end, I've added thread violation checks to the following functions
because ...

  • WebView/WebView.mm:

(-[WebView setCustomTextEncodingName:]):

  • Uses the FrameLoader (which is for the main thread only).

(-[WebView stringByEvaluatingJavaScriptFromString:]):

  • Invokes JavaScript (which is for the main thread only).

(-[WebView windowScriptObject]):

  • Invokes ScriptController::windowScriptObject() which requires the JSLock.

(-[WebView setGroupName:]):

  • Manipulates the PageGroup and Page (which is for the main thread only).

(-[WebView setMainFrameURL:]):

  • Uses the FrameLoader (which is for the main thread only).

(-[WebView mainFrameTitle]):

  • Uses the FrameLoader::documentLoader() (via [WebFrame _dataSource]) which is RefPtr, and therefore not safe for other threads to access.

(-[WebView mainFrameIcon]):

  • Uses the FrameLoader::documentLoader() (via [WebFrame _dataSource]) which is RefPtr, and therefore not safe for other threads to access.
  • Uses [WebIconDatabase sharedIconDatabase] which does a singleton instantiation but is not protected by a lock.

(-[WebView setDrawsBackground:]):

  • Potentially manipulates a RenderView (via FrameView::setBaseBackgroundColor, via [WebFrame _updateBackgroundAndUpdatesWhileOffscreen]), and RenderView is for main thread only use.

(-[WebView setShouldUpdateWhileOffscreen:]):

  • Uses [WebFrame _updateBackgroundAndUpdatesWhileOffscreen]. Hence, for the main thread only.
4:18 PM Changeset in webkit [196526] by dbates@webkit.org
  • 34 edits
    5 copies
    5 adds
    4 deletes in trunk

CSP: Implement child-src directive
https://bugs.webkit.org/show_bug.cgi?id=153562
<rdar://problem/24610087>

Reviewed by Brent Fulgham.

Source/WebCore:

Add support for the child-src directive, <https://w3c.github.io/webappsec-csp/2/#child_src> (29 August 2015),
which formally replaces the deprecated frame-src directive as of the Content Security Policy 2.0 spec. The
child-src directive was first introduced in the Content Security Policy 1.1 spec, <https://www.w3.org/TR/2014/WD-CSP11-20140211/>.

As a side effect of this change, the script URL for a Web Worker is checked against the child-src directive
as opposed to the script-src directive. This is a backward incompatible change from the CSP 1.0 spec.

Tests: http/tests/security/contentSecurityPolicy/1.1/child-src/frame-fires-load-event-when-blocked.html

http/tests/security/contentSecurityPolicy/1.1/child-src/frame-fires-load-event-when-redirect-blocked.html
http/tests/security/contentSecurityPolicy/1.1/child-src/frame-src-takes-precedence-over-child-src.html
http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked.html
http/tests/security/isolatedWorld/bypass-main-world-csp-worker-redirect.html

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy): Check child-src directive (if applicable).

  • loader/ThreadableLoader.h: Add enum value EnforceChildSrcDirective to enum class ContentSecurityPolicyEnforcement to

enforce the child-src directive on redirect.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowChildContextFromSource): Added.

  • page/csp/ContentSecurityPolicy.h:
  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::ContentSecurityPolicyDirectiveList::checkSourceAndReportViolation): Add message prefix for a child-src violation.
We use the same message prefix as used by Blink.
(WebCore::ContentSecurityPolicyDirectiveList::allowChildContextFromSource): Added.
(WebCore::ContentSecurityPolicyDirectiveList::allowChildFrameFromSource): Modified to check the frame-src
directive (if specified) before checking the child-src directive by <https://w3c.github.io/webappsec-csp/2/#directive-child-src-nested>.
(WebCore::ContentSecurityPolicyDirectiveList::addDirective): Parse the child-src directive.

  • page/csp/ContentSecurityPolicyDirectiveList.h:
  • workers/AbstractWorker.cpp:

(WebCore::AbstractWorker::resolveURL): Check if the script URL for the worker is allowed by the child-src directive
as opposed to the script-src directive. This is a backwards incompatible change from the CSP 1.0 spec.

  • workers/Worker.cpp:

(WebCore::Worker::create): Enforce the child-src directive on redirects (if applicable).

LayoutTests:

Add new tests, un-skip now passing tests and update incorrect expected result for test http/tests/security/contentSecurityPolicy/1.1/child-src/worker-blocked.html.

  • TestExpectations: Remove entry for test http/tests/security/contentSecurityPolicy/worker-script-src.html as it now passes.

Mark all tests in http/tests/security/contentSecurityPolicy/1.1/child-src as PASS so that we run them except for tests
frame-fires-load-event-when-blocked.html and frame-fires-load-event-when-redirect-blocked.html (formerly named frame-blocked.html
and frame-redirect-blocked.html, respectively) as they depend on the fix for <https://bugs.webkit.org/show_bug.cgi?id=153150>.
Skip all other CSP 1.1 tests until we fix <https://bugs.webkit.org/show_bug.cgi?id=85558>. Group some CSP 1.1 entries together.

  • fast/workers/worker-inherits-csp-blocks-eval-expected.txt: Update expected result based on change to worker-inherits-csp-blocks-eval.html.
  • fast/workers/worker-inherits-csp-blocks-eval.html: Remove source 'self' from script-src directive. This was needed as

a workaround for <https://bugs.webkit.org/show_bug.cgi?id=153158> when the script URL for a worker was checked against the
script-src directive. Now that the script URL is checked against the child-src directive we do not need this workaround.

  • fast/workers/worker-inherits-csp-blocks-xhr.html: Ditto.
  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-about-blank-allowed.html: Use js-test-{pre, post}.js as opposed to

js-test.js to avoid duplicate "TEST COMPLETE" output.

  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-allowed.html: Ditto.
  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-blocked-expected.txt: Update expected result based on changes to frame-blocked.html.
  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-blocked.html: Update test to work without the fix for <https://bugs.webkit.org/show_bug.cgi?id=153150>.
  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-fires-load-event-when-blocked-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/1.1/child-src/frame-blocked-expected.txt.
  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-fires-load-event-when-blocked.html: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/1.1/child-src/frame-blocked.html.

Keep a copy of the original test for when we fix <https://bugs.webkit.org/show_bug.cgi?id=153150>.

  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-fires-load-event-when-redirect-blocked-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/1.1/child-src/frame-redirect-blocked-expected.txt.
  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-fires-load-event-when-redirect-blocked.html: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/1.1/child-src/frame-redirect-blocked.html.

Keep a copy of the original test for when we fix <https://bugs.webkit.org/show_bug.cgi?id=153150>.

  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-redirect-blocked-expected.txt: Update expected result based on changes to frame-redirect-blocked.html.
  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-redirect-blocked.html: Update test to work without the fix for <https://bugs.webkit.org/show_bug.cgi?id=153150>.
  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-src-takes-precedence-over-child-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-src-takes-precedence-over-child-src.html: Added.
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-allowed.html: Use js-test-{pre, post}.js as opposed to

js-test.js to avoid duplicate "TEST COMPLETE" output.

  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-blocked-expected.txt: Update incorrect expected result to

reflect WebKit error message. The current result reflects the error message used by Blink.

  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-blocked.html: Use js-test-{pre, post}.js as opposed to

js-test.js to avoid duplicate "TEST COMPLETE" output.

  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked.html: Added.
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-shared-allowed-expected.txt: Removed; WebKit does not support shared Web Workers.
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-shared-allowed.html: Removed; WebKit does not support shared Web Workers.
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-shared-blocked-expected.txt: Removed; WebKit does not support shared Web Workers.
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-shared-blocked.html: Removed; WebKit does not support shared Web Workers.
  • http/tests/security/contentSecurityPolicy/resources/child-src-test.js: Remove logic for testing shared Web Workers as WebKit does not support such workers.

(window.onload): Deleted.
(injectSharedWorker): Deleted.

  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-blocks-eval-expected.txt: Update expected result based on change to worker-blob-inherits-csp-blocks-eval.html.
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-blocks-eval.html: Remove source 'self' from script-src directive.

This was needed as a workaround for <https://bugs.webkit.org/show_bug.cgi?id=153158> when the script URL for a worker was checked
against the script-src directive. Now that the script URL is checked against the child-src directive we do not need this workaround.

  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-block-aborts-all-subsequent-imports-expected.txt: Update

expected result based on change to worker-blob-inherits-csp-importScripts-block-aborts-all-subsequent-imports.html.

  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-block-aborts-all-subsequent-imports.html:

Remove source 'self' from script-src directive. This was needed as a workaround for <https://bugs.webkit.org/show_bug.cgi?id=153158> when
the script URL for a worker was checked against the script-src directive. Now that the script URL is checked against the child-src directive
we do not need this workaround.

  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked.html: Ditto.
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker.html: Add child-src 'none' and remove FIXME comment.
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker-redirect-expected.txt: Added.
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker-redirect.html: Added.
  • platform/ios-simulator/TestExpectations: Remove skip entry for tests in http/tests/security/contentSecurityPolicy/1.1 from this file.

Instead we will skip these tests from LayoutTests/TestExpectations since they fail for all ports.

  • platform/mac/TestExpectations: Ditto.
  • platform/win/TestExpectations: Ditto.
  • platform/wk2/TestExpectations: Ditto.
4:12 PM Changeset in webkit [196525] by sbarati@apple.com
  • 18 edits in trunk/Source

The parser doesn't properly protect against global variable references in builtins
https://bugs.webkit.org/show_bug.cgi?id=154144

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

This patch fixes our global variable reference detection
algorithm that was broken. After fixing the algorithm, I
detected many places where we were incorrectly using global
variables. I've fixed all those.

  • builtins/BuiltinExecutables.cpp:

(JSC::createExecutableInternal):

  • builtins/NumberPrototype.js:

(toLocaleString):

  • builtins/PromiseConstructor.js:

(race):
(reject):
(resolve):

  • parser/Nodes.cpp:

(JSC::ProgramNode::ProgramNode):
(JSC::ModuleProgramNode::ModuleProgramNode):
(JSC::ProgramNode::setClosedVariables): Deleted.

  • parser/Nodes.h:

(JSC::ScopeNode::setClosedVariables): Deleted.
(JSC::ProgramNode::closedVariables): Deleted.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::didFinishParsing):

  • parser/Parser.h:

(JSC::Scope::setIsLexicalScope):
(JSC::Scope::isLexicalScope):
(JSC::Scope::closedVariableCandidates):
(JSC::Scope::declaredVariables):
(JSC::Scope::lexicalVariables):
(JSC::Scope::finalizeLexicalEnvironment):
(JSC::Parser::positionBeforeLastNewline):
(JSC::Parser::locationBeforeLastToken):
(JSC::Parser::isFunctionMetadataNode):
(JSC::parse):
(JSC::Parser::closedVariables): Deleted.

Source/WebCore:

Change JS builtins to no longer reference global variables.

No new tests because old tests cover the issues here.

  • Modules/mediastream/NavigatorUserMedia.js:

(webkitGetUserMedia):

  • Modules/mediastream/RTCPeerConnection.js:

(addIceCandidate):
(getStats):

  • Modules/mediastream/RTCPeerConnectionInternals.js:

(setLocalOrRemoteDescription):

  • Modules/plugins/QuickTimePluginReplacement.js:

(Replacement.prototype.handleEvent):

  • Modules/streams/ByteLengthQueuingStrategy.js:

(initializeByteLengthQueuingStrategy):

  • Modules/streams/CountQueuingStrategy.js:

(initializeCountQueuingStrategy):

  • Modules/streams/ReadableStreamInternals.js:

(teeReadableStream):

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals):

  • bindings/js/WebCoreBuiltinNames.h:
4:07 PM Changeset in webkit [196524] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

JSObject::putByIndexBeyondVectorLengthWithoutAttributes needs to go to the sparse map based on MAX_STORAGE_VECTOR_INDEX
https://bugs.webkit.org/show_bug.cgi?id=154201
rdar://problem/24291387

Reviewed by Saam Barati.

I decided against adding a test for this, because it runs for a very long time.

  • runtime/JSObject.cpp:

(JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes): Fix the bug.

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncSplit): Fix a related bug: if this code creates an array that would have

hit the above bug, then it would probably manifest as a spin or as swapping.

4:06 PM Changeset in webkit [196523] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Re-enable skipped animations tests on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=152131

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
3:34 PM Changeset in webkit [196522] by Jon Davis
  • 2 edits in trunk/Source/JavaScriptCore

Add WebAssembly to the status page
https://bugs.webkit.org/show_bug.cgi?id=154199

Reviewed by Timothy Hatcher.

  • features.json:
3:33 PM Changeset in webkit [196521] by rniwa@webkit.org
  • 10 edits
    2 adds in trunk/Websites/perf.webkit.org

Perf dashboard should allow renaming analysis tasks and test groups
https://bugs.webkit.org/show_bug.cgi?id=154200

Reviewed by Chris Dumez.

Allow editing names of analysis tasks and A/B testing groups in the v3 UI.

Added the support for updating the name to the privileged API at /privileged-api/update-analysis-task
and added a new prevailed API to update A/B testing groups at /privileged-api/update-test-group.

  • public/privileged-api/update-analysis-task.php: Added the support for renaming the analysis task.

(main):

  • public/privileged-api/update-test-group.php: Added. Supports updating the test group's name.

(main):

  • public/v3/components/editable-text.js: Added.

(EditableText): Added. A new editable text label control. It looks like a text node with "(Edit)" link
at the end which allow users to go into the "editing mode", which reveals an input element.
The user can exit the editing mode by either moving the focus away from the control or clicking on
"(Save)" at the end. It calls _updateCallback in the latter case.
(EditableText.prototype.editedText): Returns the current value of the input element user.
(EditableText.prototype.setText): Sets the label. This does not live-update the input element until
the user exists the current editing mode and re-enters it.
(EditableText.prototype.setStartedEditingCallback): Sets a callback which gets called when the user
requested to enter the editing mode. Since EditableText relies on AnalysisTaskPage to render, this
callback only exits to call EditableText.render() in AnalysisTask._didStartEditingTaskName.
(EditableText.prototype.setUpdateCallback): Sets a callback which gets called when the user exits
the editing mode by activating the "(Save)" link. This callback MUST return a promise upon resolution
of which the control gets out of the editing mode. While the promise is in flight, the input element
becomes readonly.
(EditableText.prototype.render): Updates various states of the elements. When _updatingPromise is not
falsy, we make the input element readonly and show '(...)' on the link. Don't show the action link
if the label is empty (e.g. analysis task or test group is still being fetched).
(EditableText.prototype._didClick): Called when the user clicked on the action link. Enter the editing
mode or save the edited label via _updateCallback.
(EditableText.prototype._didBlur): Exit the editing mode without saving if the input element is not
focused, there is no inflight promise returned by _updateCallback, and the action link "(Save)" does
not have the focus.
(EditableText.prototype._didUpdate): Called when exiting the editing mode.
(EditableText.htmlTemplate):
(EditableText.cssTemplate):

  • public/v3/index.html: Include newly added editable-text.js.
  • public/v3/models/analysis-task.js:

(AnalysisTask.prototype.updateSingleton): Added.
(AnalysisTask.prototype.updateName): Added. Uses PrivilegedAPI to update the name and re-fetches
the analysis task from the sever.
(AnalysisTask._constructAnalysisTasksFromRawData): Use ensureSingleton instead of manually calling
findById since we need to update the name of the singleton object we found (via updateSingleton).

  • public/v3/models/bug.js:

(Bug.ensureSingleton): Moved the code to compute the synthetic id from AnalysisTask's
_constructAnalysisTasksFromRawData.
(Bug.prototype.updateSingleton): Added. Just assert that nothing changes.

  • public/v3/models/build-request.js:

(BuildRequest.prototype.updateSingleton): Added. Assert that the intrinsic values of a build request
doesn't change and update status text, status url, and build id as they could change.

  • public/v3/models/commit-log.js:

(CommitLog): Made the constructor argument conform to the convention of id, object pair so that we can
use DataModelObject.ensureSingleton.
(CommitLog.ensureSingleton):
(CommitLog.prototype.updateSingleton): Extracted from CommitLog.ensureSingleton.

  • public/v3/models/data-model.js:

(DataModelObject.ensureSingleton): Call newly added updateSingleton.
(DataModelObject.prototype.updateSingleton):
(LabeledObject): Removed the name map since it's never used (findByName is never called anywhere).
(LabeledObject.prototype.updateSingleton): Added. Updates _name.
(LabeledObject.findByName): Deleted.

  • public/v3/models/test-group.js:

(TestGroup.prototype.updateName): Added. Uses PrivilegedAPI to update the name and re-fetches
the test group from the sever.
(TestGroup._createModelsFromFetchedTestGroups): Removed bogus code. A root set doesn't have a test
group associated with it since multiple test groups can share a single root set (this property doesn't
even exist).

  • public/v3/pages/analysis-task-page.js:

(AnalysisTaskPage): Removed useless _taskId and added this._testGroupLabelMap and this._taskNameLabel.
(AnalysisTaskPage.prototype.updateFromSerializedState): Cleanup.
(AnalysisTaskPage.prototype._didFetchTask): Assert that this function is called exactly once.
(AnalysisTaskPage.prototype.render): Use this._task.id() to show the v2 link. Use EditableText to show
the names of the analysis task and the associated test groups. Hide the overview chart and the list of
test groups (along with the retry/confirm button) when the analysis task failed to fetch. We always
update the names of the analysis task and the associated test groups since they could be updated by
the server.
(AnalysisTaskPage.prototype._didStartEditingTaskName): Added.
(AnalysisTaskPage.prototype._updateTaskName): Added.
(AnalysisTaskPage.prototype._updateTestGroupName): Added.
(AnalysisTaskPage.htmlTemplate): Updated the style.

3:25 PM Changeset in webkit [196520] by jiewen_tan@apple.com
  • 27 edits
    2 adds in trunk

WebKit should expose the DOM 4 Event.isTrusted property
https://bugs.webkit.org/show_bug.cgi?id=76121
<rdar://problem/22558494>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/events/Event-constructors-expected.txt:
  • web-platform-tests/dom/events/Event-dispatch-redispatch-expected.txt:
  • web-platform-tests/dom/events/Event-initEvent-expected.txt:
  • web-platform-tests/dom/events/ProgressEvent-expected.txt:
  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/dom/nodes/Document-createEvent-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/semantics/forms/the-button-element/button-events-expected.txt:

Source/WebCore:

Implements Event.isTrusted. The implementation here is slitely different from and better than
the DOM specification. Here Event.isTrusted will be initialized differently depending on the
callers of the constructors/create methods. If the caller is from user agent, the isTrusted
will be true. Otherwise, it will be false. Since a user agent dispatched event can be catched
and re-initialized/redispatched by the bindings, the flag will be unset at *Event::init*Event
and EventTarget::dispatchEventForBindings. As currently there is no way to let user agent to
dispatch a bindings created event, therefore we ensure that the Event.isTrusted is set for
events dispatched by user agent, and unset for those by bindings.

EventTarget::dispatchEvent(Event*, ExceptionCode&) is renamed to EventTarget::dispatchEventForBindings
in this patch as well. So that, together with the improved design of the API, developers in
the future will be less likely using a wrong dispatchEvent method and setting Event.isTrusted
incorrectly comparing to the DOM design.

After this patch, all events that are created by user agent should be dispatched by
EventTarget::dispatchEvent, and those are created by bindings should be dispatched by
EventTarget::dispatchEventForBindings.

Some of the changes in this patch referred Blink r198996:
https://codereview.chromium.org/1241613004

Test: imported/blink/fast/events/event-trusted.html

  • bindings/scripts/CodeGeneratorGObject.pm:

(GenerateEventTargetIface):

  • dom/Event.cpp:

(WebCore::Event::Event):
(WebCore::Event::initEvent):

  • dom/Event.h:

(WebCore::Event::isTrusted):
(WebCore::Event::setUntrusted):

  • dom/Event.idl:
  • dom/EventTarget.cpp:

(WebCore::EventTarget::dispatchEventForBindings):
(WebCore::EventTarget::dispatchEvent): Deleted.

  • dom/EventTarget.h:
  • dom/EventTarget.idl:
  • page/DOMWindow.idl:
  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchDragEvent):

  • workers/WorkerGlobalScope.idl:

Source/WebKit/win:

  • DOMCoreClasses.cpp:

(DOMNode::dispatchEvent):
(DOMWindow::dispatchEvent):

LayoutTests:

  • fast/dom/unforgeable-attributes-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-get-expected.txt:
  • http/tests/workers/worker-importScriptsOnError-expected.txt:
  • imported/blink/fast/events/event-trusted-expected.txt: Added.
  • imported/blink/fast/events/event-trusted.html: Added.
  • platform/ios-simulator/TestExpectations:
3:16 PM Changeset in webkit [196519] by beidson@apple.com
  • 6 edits in trunk/Source/WebCore

Modern IDB: IDBObjectStore and IDBIndex need to be ActiveDOMObjects.
https://bugs.webkit.org/show_bug.cgi?id=154153

Reviewed by Alex Christensen.

No new tests (No testable change in behavior).

This is needed so that IDBObjectStore and IDBIndex JS wrappers are not garbage collected
while their IDBTransaction is still in progress.

  • Modules/indexeddb/client/IDBIndexImpl.cpp:

(WebCore::IDBClient::IDBIndex::IDBIndex):
(WebCore::IDBClient::IDBIndex::activeDOMObjectName):
(WebCore::IDBClient::IDBIndex::canSuspendForDocumentSuspension):
(WebCore::IDBClient::IDBIndex::hasPendingActivity):

  • Modules/indexeddb/client/IDBIndexImpl.h:
  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::create):
(WebCore::IDBClient::IDBObjectStore::IDBObjectStore):
(WebCore::IDBClient::IDBObjectStore::activeDOMObjectName):
(WebCore::IDBClient::IDBObjectStore::canSuspendForDocumentSuspension):
(WebCore::IDBClient::IDBObjectStore::hasPendingActivity):
(WebCore::IDBClient::IDBObjectStore::index):

  • Modules/indexeddb/client/IDBObjectStoreImpl.h:
  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::objectStore):
(WebCore::IDBClient::IDBTransaction::createObjectStore):
(WebCore::IDBClient::IDBTransaction::createIndex):

3:01 PM Changeset in webkit [196518] by beidson@apple.com
  • 6 edits
    5 adds in trunk

Modern IDB: Simplify the relationship between IDBObjectStore and IDBIndex.
https://bugs.webkit.org/show_bug.cgi?id=154187

Reviewed by Alex Christensen.

Source/WebCore:

Tests: storage/indexeddb/modern/deleteindex-3-private.html

storage/indexeddb/modern/deleteindex-3.html

Instead of allowing IDBIndex to have two different lifecycle modes, it is now always
owned by an IDBObjectStore.

To support the case where an IDBIndex is deleted from its IDBObjectStore, the object
store simply hangs on to deleted indexes until it is destroyed itself.

  • Modules/indexeddb/client/IDBIndexImpl.cpp:

(WebCore::IDBClient::IDBIndex::markAsDeleted):
(WebCore::IDBClient::IDBIndex::ref):
(WebCore::IDBClient::IDBIndex::deref):

  • Modules/indexeddb/client/IDBIndexImpl.h:
  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::deleteIndex):

  • Modules/indexeddb/client/IDBObjectStoreImpl.h:

LayoutTests:

  • storage/indexeddb/modern/deleteindex-3-expected.txt: Added.
  • storage/indexeddb/modern/deleteindex-3-private-expected.txt: Added.
  • storage/indexeddb/modern/deleteindex-3-private.html: Added.
  • storage/indexeddb/modern/deleteindex-3.html: Added.
  • storage/indexeddb/modern/resources/deleteindex-3.js: Added.
2:44 PM Changeset in webkit [196517] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Rename domAgent to domTreeManager in DOMNode
https://bugs.webkit.org/show_bug.cgi?id=154194

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-02-12
Reviewed by Timothy Hatcher.

  • UserInterface/Models/DOMNode.js:

(WebInspector.DOMNode):

2:37 PM Changeset in webkit [196516] by jmarcell@apple.com
  • 2 edits in trunk/Tools

Open source bot watcher's dashboard fails assertion in BuildbotQueue.prototype.compareIterationsByRevisions
https://bugs.webkit.org/show_bug.cgi?id=154180

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js: Remove reference to Internal

repository.

2:35 PM Changeset in webkit [196515] by BJ Burg
  • 8 edits in trunk/Source/JavaScriptCore

Web Inspector: disambiguate the various identifier and connection types in RemoteInspector
https://bugs.webkit.org/show_bug.cgi?id=154130

Reviewed by Joseph Pecoraro.

There are multiple identifier types:

  • connection identifier, a string UUID for a remote debugger process.
  • session identifier, a string UUID for a remote driver/debugger instance.
  • page/target identifier, a number unique within a single process.

There are multiple connection types:

  • RemoteInspectorXPCConnection, a connection from RemoteInspectorXPCConnectionor to a relay.
  • RemoteConnectionToTarget, a class that bridges to targets' dispatch queues.

Use consistent variable and getter names so that these don't get confused and
so that the code is easier to read. This is especially an improvement when working
with multiple target types or connection types within the same function.

  • inspector/remote/RemoteConnectionToTarget.h:
  • inspector/remote/RemoteConnectionToTarget.mm:

Remove the member for m_identifier since we can ask the target for its target identifier
or use a default value via WTF::Optional. There's no reason to cache the value.

(Inspector::RemoteTargetHandleRunSourceWithInfo):
(Inspector::RemoteConnectionToTarget::targetIdentifier):
(Inspector::RemoteConnectionToTarget::destination):
(Inspector::RemoteConnectionToTarget::setup):
(Inspector::RemoteConnectionToTarget::sendMessageToFrontend):
Bail out if the target pointer was somehow cleared and we can't get a useful target identifier.

(Inspector::RemoteConnectionToTarget::RemoteConnectionToTarget): Deleted.

  • inspector/remote/RemoteControllableTarget.h:
  • inspector/remote/RemoteInspectionTarget.cpp:

(Inspector::RemoteInspectionTarget::pauseWaitingForAutomaticInspection):
(Inspector::RemoteInspectionTarget::unpauseForInitializedInspector):

  • inspector/remote/RemoteInspector.h:
  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::nextAvailableTargetIdentifier):
(Inspector::RemoteInspector::registerTarget):
(Inspector::RemoteInspector::unregisterTarget):
(Inspector::RemoteInspector::updateTarget):
(Inspector::RemoteInspector::updateAutomaticInspectionCandidate):
(Inspector::RemoteInspector::sendAutomaticInspectionCandidateMessage):
(Inspector::RemoteInspector::sendMessageToRemote):
(Inspector::RemoteInspector::setupFailed):
(Inspector::RemoteInspector::setupCompleted):
(Inspector::RemoteInspector::stopInternal):
(Inspector::RemoteInspector::setupXPCConnectionIfNeeded):
(Inspector::RemoteInspector::xpcConnectionFailed):
(Inspector::RemoteInspector::listingForInspectionTarget):
(Inspector::RemoteInspector::listingForAutomationTarget):
(Inspector::RemoteInspector::pushListingsNow):
(Inspector::RemoteInspector::pushListingsSoon):
(Inspector::RemoteInspector::updateHasActiveDebugSession):
(Inspector::RemoteInspector::receivedSetupMessage):
(Inspector::RemoteInspector::receivedDataMessage):
(Inspector::RemoteInspector::receivedDidCloseMessage):
(Inspector::RemoteInspector::receivedIndicateMessage):
(Inspector::RemoteInspector::receivedProxyApplicationSetupMessage):
(Inspector::RemoteInspector::receivedConnectionDiedMessage):
(Inspector::RemoteInspector::receivedAutomaticInspectionRejectMessage):
(Inspector::RemoteInspector::nextAvailableIdentifier): Deleted.

  • inspector/remote/RemoteInspectorConstants.h:
2:34 PM Changeset in webkit [196514] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

REGRESSION: Link preview is slow and unreliable
https://bugs.webkit.org/show_bug.cgi?id=154197
-and corresponding-
rdar://problem/24428064

Reviewed by Tim Horton.

This patch rolls http://trac.webkit.org/changeset/187471 back in. That was
how we fixed this problem ages ago. We rolled it out because it very
mysteriously seemed to cause a memory regression, but we want to track that
separately and not leave this performance regression in its place in the
meantime.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateViewState):
(WebKit::WebPageProxy::dispatchViewStateChange):
(WebKit::WebPageProxy::updateActivityToken):

2:32 PM Changeset in webkit [196513] by benjamin@webkit.org
  • 18 edits in trunk/Source/JavaScriptCore

[JSC] On x86, improve the selection of which value are selected for the UseDef part of commutative operations
https://bugs.webkit.org/show_bug.cgi?id=154151

Reviewed by Filip Pizlo.

Previously, when an instruction destroy an argument with
a UseDef use, we would try to pick a good target for the UseDef
while doing instruction selection.

For example:

@x = Add(@1, @2)

can be lowered to:

Move @1 Tmp3
Add @2 Tmp3

or

Move @2 Tmp3
Add @1 Tmp3

The choice of which value ends up copied is done by preferRightForResult()
at lowering time.

There are two common problems with the code we generate:
1) It is based on UseCount. If a value is at its last use,

it is a good target for coalescing even with a use-count > 1.

2) When both values are at their last use, the best choice

depends on the register pressure of each. We don't have that information
until we do register allocation.

This patch implements a simple idea to minimize how many of those Moves are needed.
Each commutative operation gets a 3 op variant. The register allocator then attempts
to alias *both* of them to the destination.
Since our aliasing is conservative, it removes as many copy as possible without causing
spilling.

There was an unexpected cool impovement too. If you have:

Move Tmp1, Tmp2
BranchAdd32 Tmp3, Tmp2

we would previously restore Tmp2 by substracting Tmp3 from the result.
We can now just use Tmp1. That removes quite a few Sub from the slow paths.

The problem is that simple idea uncoverred a bunch of issues that had to be fixed too.
I detail them inline below.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::and64):

  • assembler/MacroAssemblerX86Common.h:

Most addition are adding an Address version of the 3 operands opcodes.
The reason for this is allow the complex addressing forms of instructions
when spilling.

(JSC::MacroAssemblerX86Common::and32):
(JSC::MacroAssemblerX86Common::mul32):
(JSC::MacroAssemblerX86Common::or32):
(JSC::MacroAssemblerX86Common::xor32):
(JSC::MacroAssemblerX86Common::moveDouble):
This was an unexpected discovery: removing tons of Move32 made floating-point heavy
code much slower.

It turns out the MoveDouble we were using has partial register dependencies.

The x86 optimization manual, Chapter 3, section 3.4.1.13 lists the move instructions executed
directly on the frontend. That's what we use now.

(JSC::MacroAssemblerX86Common::addDouble):
(JSC::MacroAssemblerX86Common::addFloat):
(JSC::MacroAssemblerX86Common::mulDouble):
(JSC::MacroAssemblerX86Common::mulFloat):
(JSC::MacroAssemblerX86Common::andDouble):
(JSC::MacroAssemblerX86Common::andFloat):
(JSC::MacroAssemblerX86Common::xorDouble):
(JSC::MacroAssemblerX86Common::xorFloat):
If the destination is not aliased, the version taking an address
use LoadFloat/LoadDouble instead of direct addressing.

That is because this:

Move Tmp1, Tmp2
Op [Tmp3], Tmp2

is slower than

Move [Tmp3] Tmp2
Op Tmp1, Tmp2

(sometimes significantly).

I am not exactly sure why.

(JSC::MacroAssemblerX86Common::branchAdd32):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::and64):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::and64):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::and32):
(JSC::MacroAssemblerX86Common::mul32):
(JSC::MacroAssemblerX86Common::or32):
(JSC::MacroAssemblerX86Common::xor32):
(JSC::MacroAssemblerX86Common::moveDouble):
(JSC::MacroAssemblerX86Common::addDouble):
(JSC::MacroAssemblerX86Common::addFloat):
(JSC::MacroAssemblerX86Common::mulDouble):
(JSC::MacroAssemblerX86Common::mulFloat):
(JSC::MacroAssemblerX86Common::andDouble):
(JSC::MacroAssemblerX86Common::andFloat):
(JSC::MacroAssemblerX86Common::xorDouble):
(JSC::MacroAssemblerX86Common::xorFloat):
(JSC::MacroAssemblerX86Common::branchAdd32):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::and64):
(JSC::MacroAssemblerX86_64::mul64):
(JSC::MacroAssemblerX86_64::xor64):
(JSC::MacroAssemblerX86_64::branchAdd64):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::movapd_rr):
(JSC::X86Assembler::movaps_rr):

  • b3/B3CheckSpecial.cpp:

(JSC::B3::CheckSpecial::shouldTryAliasingDef):
(JSC::B3::CheckSpecial::generate):

  • b3/B3CheckSpecial.h:
  • b3/B3LowerToAir.cpp:

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

  • b3/air/AirCustom.h:

(JSC::B3::Air::PatchCustom::shouldTryAliasingDef):

  • b3/air/AirInst.h:
  • b3/air/AirInstInlines.h:

(JSC::B3::Air::Inst::shouldTryAliasingDef):

  • b3/air/AirIteratedRegisterCoalescing.cpp:

Aliasing the operands is done the same way as any coalescing.

There were problem with considering all those coalescing
as equivalent for the result.

Moves are mostly generated for Upsilon-Phis. Getting rid of
those tends to give better loops.

Sometimes, blocks have only Phis and a Jump. Coalescing
those moves gets rids of the block entirely.

Where it go interesting was that something like:

Move Tmp1, Tmp2
Op Tmp3, Tmp2

was significantly better than:

Op Tmp1, Tmp3
Move Tmp1, Tmp4

even in the same basic block.

To get back to the same performance when, I had to prioritize
regular Moves operations over argument coalescing.

Another argument for doing this is that the alias has a shorter
life in the hardware because the operation itself gets a new
virtual register from the bank.

  • b3/air/AirOpcode.opcodes:
  • b3/air/AirSpecial.cpp:

(JSC::B3::Air::Special::shouldTryAliasingDef):

  • b3/air/AirSpecial.h:
  • b3/testb3.cpp:

(JSC::B3::testCheckAddArgumentAliasing64):
(JSC::B3::testCheckAddArgumentAliasing32):
(JSC::B3::testCheckAddSelfOverflow64):
(JSC::B3::testCheckAddSelfOverflow32):
(JSC::B3::testCheckMulArgumentAliasing64):
(JSC::B3::testCheckMulArgumentAliasing32):
(JSC::B3::run):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitSaveOrCopyCalleeSavesFor):
This ruined my week.

When regenerating the frame of an inlined function that
was called through a tail call, we were ignoring r13 for some reason.

Since this patch makes it more likely to increase the degree
of each Tmp, the number of register used increased and r13 was more
commonly used.

When getting out of OSRExit, we would have that value trashed :(

The fix is simply to restore it like the other two Baseline callee saved
register.

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

Web Inspector: Avoid including ESLint until it is used
https://bugs.webkit.org/show_bug.cgi?id=154196

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-02-12
Reviewed by Timothy Hatcher.

  • Scripts/copy-user-interface-resources.pl:

Do not include ESLint in optimized output yet.

  • UserInterface/Controllers/AnalyzerManager.js:

Do not reference eslint until we use it.

  • UserInterface/Main.html:

Remove include to ESLint until we need it.

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

Get rid of a 6 year old compiler workaround
https://bugs.webkit.org/show_bug.cgi?id=154198

Reviewed by Sam Weinig.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::connectToService):
(WebKit::createService):

2:22 PM Changeset in webkit [196510] by mmaxfield@apple.com
  • 12 edits
    3 adds in trunk/Source/WebCore

[CSS Font Loading] Implement CSSFontFace Boilerplate
https://bugs.webkit.org/show_bug.cgi?id=154145

Reviewed by Dean Jackson.

The CSS Font Loading spec[1] dictates that the FontFace object needs to have string
accessors and mutators for a bunch of properties. Our CSSFontFace object currently
contains this parsed information, but it isn't accessible via string-based methods.
This patch adds the necessary accessors and mutators, and migrates CSSFontSelector
to use these mutators where necessary.

There is more work to come on CSSFontFace; the next step is to create an .idl file
and hook it up to our CSSFontFace object. In this patch I have left some
unimplemented pieces (for example: where the spec dictates that some operation should
throw a JavaScript exception) which will be implemented in a follow-up patch. This
patch does not have any visible behavior change; I'm separating out the boilerplate
into this patch in order to ease reviewing burden.

This patch separates the externally-facing JavaScript API into a new class, FontFace.
This class owns a CSSFontFace, which provides the backing implementation. There will
be a system of shared ownership of these objects once FontFaceSet is implemented.

No new tests because there is no behavior change.

  • CMakeLists.txt: Add new files to CMake builds.
  • WebCore.vcxproj/WebCore.vcxproj: Ditto for Windows.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto for Cocoa.
  • css/CSSAllInOne.cpp: Ditto for All-In-One builds.
  • css/CSSFontFace.cpp: Move shared code from CSSFontSelector into CSSFontFace.

(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::~CSSFontFace):
(WebCore::CSSFontFace::setFamilies):
(WebCore::CSSFontFace::setStyle):
(WebCore::CSSFontFace::setWeight):
(WebCore::CSSFontFace::setUnicodeRange):
(WebCore::CSSFontFace::setVariantLigatures):
(WebCore::CSSFontFace::setVariantPosition):
(WebCore::CSSFontFace::setVariantCaps):
(WebCore::CSSFontFace::setVariantNumeric):
(WebCore::CSSFontFace::setVariantAlternates):
(WebCore::CSSFontFace::setVariantEastAsian):
(WebCore::CSSFontFace::setFeatureSettings):

  • css/CSSFontFace.h: Clean up.

(WebCore::CSSFontFace::create):
(WebCore::CSSFontFace::families):
(WebCore::CSSFontFace::traitsMask):
(WebCore::CSSFontFace::featureSettings):
(WebCore::CSSFontFace::variantSettings):
(WebCore::CSSFontFace::setVariantSettings):
(WebCore::CSSFontFace::setTraitsMask):
(WebCore::CSSFontFace::isLocalFallback):
(WebCore::CSSFontFace::addRange): Deleted.
(WebCore::CSSFontFace::insertFeature): Deleted.
(WebCore::CSSFontFace::setVariantCommonLigatures): Deleted.
(WebCore::CSSFontFace::setVariantDiscretionaryLigatures): Deleted.
(WebCore::CSSFontFace::setVariantHistoricalLigatures): Deleted.
(WebCore::CSSFontFace::setVariantContextualAlternates): Deleted.
(WebCore::CSSFontFace::setVariantPosition): Deleted.
(WebCore::CSSFontFace::setVariantCaps): Deleted.
(WebCore::CSSFontFace::setVariantNumericFigure): Deleted.
(WebCore::CSSFontFace::setVariantNumericSpacing): Deleted.
(WebCore::CSSFontFace::setVariantNumericFraction): Deleted.
(WebCore::CSSFontFace::setVariantNumericOrdinal): Deleted.
(WebCore::CSSFontFace::setVariantNumericSlashedZero): Deleted.
(WebCore::CSSFontFace::setVariantAlternates): Deleted.
(WebCore::CSSFontFace::setVariantEastAsianVariant): Deleted.
(WebCore::CSSFontFace::setVariantEastAsianWidth): Deleted.
(WebCore::CSSFontFace::setVariantEastAsianRuby): Deleted.
(WebCore::CSSFontFace::CSSFontFace): Deleted.

  • css/CSSFontSelector.cpp: Migrate shared code into CSSFontFace, and udpate

to use the new API.
(WebCore::appendSources):
(WebCore::registerLocalFontFacesForFamily):
(WebCore::CSSFontSelector::addFontFaceRule):
(WebCore::computeTraitsMask): Deleted.
(WebCore::createFontFace): Deleted.

  • css/FontFace.cpp: Added. External JavaScript API. Owns a CSSFontFace.

(WebCore::FontFace::FontFace):
(WebCore::FontFace::~FontFace):
(WebCore::parseString):
(WebCore::FontFace::setFamily):
(WebCore::FontFace::setStyle):
(WebCore::FontFace::setWeight):
(WebCore::FontFace::setStretch):
(WebCore::FontFace::setUnicodeRange):
(WebCore::FontFace::setVariant):
(WebCore::FontFace::setFeatureSettings):
(WebCore::FontFace::family):
(WebCore::FontFace::style):
(WebCore::FontFace::weight):
(WebCore::FontFace::stretch):
(WebCore::FontFace::unicodeRange):
(WebCore::FontFace::variant):
(WebCore::FontFace::featureSettings):

  • css/FontFace.h: Added. Ditto.

(WebCore::FontFace::create):

  • css/FontVariantBuilder.cpp: Added. Moved code here from FontVariantBuilder.h.

Refactored to support a new client (CSSFontFace).
(WebCore::extractFontVariantLigatures):
(WebCore::extractFontVariantNumeric):
(WebCore::extractFontVariantEastAsian):
(WebCore::computeFontVariant):

  • css/FontVariantBuilder.h: Moved code from here into FontVariantBuilder.cpp.

(WebCore::applyValueFontVariantLigatures): Deleted.
(WebCore::applyValueFontVariantNumeric): Deleted.
(WebCore::applyValueFontVariantEastAsian): Deleted.

  • css/StyleBuilderCustom.h: Update for new FontVariantBuilder API.

(WebCore::StyleBuilderCustom::applyValueFontVariantLigatures):
(WebCore::StyleBuilderCustom::applyValueFontVariantNumeric):
(WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian):

  • platform/text/TextFlags.h: Provide convenience classes.

(WebCore::FontVariantLigaturesValues::FontVariantLigaturesValues):
(WebCore::FontVariantNumericValues::FontVariantNumericValues):
(WebCore::FontVariantEastAsianValues::FontVariantEastAsianValues):

2:17 PM Changeset in webkit [196509] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix after r196506; publish MediaResourceLoader.h as a private header so it can be used by
TestWebKitAPI.

  • WebCore.xcodeproj/project.pbxproj:
2:15 PM Changeset in webkit [196508] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Tabs: Conflicts with multiple Formatters per SourceCode
https://bugs.webkit.org/show_bug.cgi?id=144717
<rdar://problem/20845163>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-02-12
Reviewed by Timothy Hatcher.

The underlying issue here is that each tab may create its own ContentView,
and therefore SourceCodeTextEditor, per-SourceCode. Each SourceCodeTextEditor
was mutating the SourceCode's state without listening for or expecting
updates from the other. This causes a bunch of different issues:

  • editing in one tab does not get reflected in another tab for the same resource. This is common when using the Search tab to find and make an edit, then debug in another tab.
  • one tab may auto format (pretty print) a resource and set the formatter on the SourceCode to make SourceCodeLocations know about formatted locations. However, a jump to location that opens a new ContentView for the same Resource will start out un-formatted, and misunderstand the location. This often results in an unexpected jump to 0:0.

The solution taken by this change is to have a single ContentView
per represented object. When that ContentView gets shown in a new
ContentViewContainer it gets transferred, leaving a tombstone in the
previous ContentViewContainer that can be revived later. This keeps
back foward lists with expected values. It also means there is a
single ContentView that doesn't need to worry about having the
state of its represented object getting overrun.

Currently this makes the assumption that we won't ever show multiple
ContentViews for the same represented object at the same time. This
may need to change if we were to support split pane editor or
something like that.

This also makes the assumption that ContentViewContainer's showEntry
and hideEntry do not modify the back forward list. That has not been
the case, and I think it is safe to assume it will never be the case.

The contracts this patch maintains:

  • a ContentView is always owned by one ViewContainer. This ViewContainer is the one showing the ContentView.
  • when another ViewContainer wants to share the ContentView ownership is transferred. Creating tombstones in the old ViewContainer and Reviving tombstones in the new ViewContainer.
  • ViewContainer's have a tombstone per-BackForwardEntry that references the ContentView.
  • In order to ensure a ContentView always gets closed, when the owning ViewContainer would close the ContentView it checks if it should instead transfer ownership of the ContentView to another interested ViewContainer.

This also maintains the contract that a ContentView should only be
closed once. When the ContentView is transferred between two
ContentViewContainers it should hide/show from the old to the new.
The last ContentViewContainer to reference a ContentView should
be the one to close the ContentView.

  • UserInterface/Models/BackForwardEntry.js:

(WebInspector.BackForwardEntry):
(WebInspector.BackForwardEntry.prototype.get tombstone):
(WebInspector.BackForwardEntry.prototype.set tombstone):
(WebInspector.BackForwardEntry.prototype.prepareToShow):
(WebInspector.BackForwardEntry.prototype.prepareToHide):
Tombstone state and assertions that we don't show/hide tombstones,
that should all be done before a back forward entry has become a tombstone.

  • UserInterface/Views/ContentView.js:

(WebInspector.ContentView.contentViewForRepresentedObject):
(WebInspector.ContentView.closedContentViewForRepresentedObject):
(WebInspector.ContentView.resolvedRepresentedObjectForRepresentedObject):
Helpers for getting / creating / clearing the single ContentView that
is associated with a represented object.

  • UserInterface/Views/ContentViewContainer.js:

(WebInspector.ContentViewContainer.prototype.contentViewForRepresentedObject):
(WebInspector.ContentViewContainer.prototype.showContentView):
Eliminate code that dealt with multiple content views per represented object.
That is replaced by multiple ContentViewContainers per ContentView.

(WebInspector.ContentViewContainer.prototype.replaceContentView):
This is called in special places where we don't need to worry about a tombstone.
It is an in replace of a content view.

(WebInspector.ContentViewContainer.closeAllContentViewsOfPrototype):
(WebInspector.ContentViewContainer.prototype.closeContentView):
(WebInspector.ContentViewContainer.prototype.closeAllContentViews):
(WebInspector.ContentViewContainer.prototype._disassociateFromContentView):
Deal with closing BackForwardEntrys that are tombstones.

(WebInspector.ContentViewContainer.prototype._takeOwnershipOfContentView):
(WebInspector.ContentViewContainer.prototype._placeTombstonesForContentView):
(WebInspector.ContentViewContainer.prototype._clearTombstonesForContentView):
Helpers for transfering ownership of a ContentView to a ContentViewContainer.
There is always one owner of the ContentView. Non-owners have tombstone
BackForward entries.

(WebInspector.ContentViewContainer.prototype._showEntry):
If we are showing a tombstone, gain ownership.

(WebInspector.ContentViewContainer.prototype._hideEntry):
This may happen in closing, for simplicity we bail here instead of include
messy logic at the call site. We would have already hidden this entry
when making it a tombstone.

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

Fix ASan build.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::copyASanDynamicLibraryPath): Deleted.

2:13 PM Changeset in webkit [196506] by jer.noble@apple.com
  • 7 edits in trunk

[Mac] Adopt MediaResourceLoader (instead of CachedResourceLoader) in WebCoreNSURLSession.
https://bugs.webkit.org/show_bug.cgi?id=154136

Reviewed by Alex Christensen.

Source/WebCore:

MediaResourceLoader already supports using CORS attribute to verify CORS access requirements
when loading media resources, so use it, rather than CachedResourceLoader, as the backing for
WebCoreNSURLSession.

  • platform/network/cocoa/WebCoreNSURLSession.h:
  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession delegateQueue]):
(-[WebCoreNSURLSession streamTaskWithNetService:]):
(-[WebCoreNSURLSession isKindOfClass:]):
(-[WebCoreNSURLSessionDataTask initWithSession:identifier:request:]):
(-[WebCoreNSURLSessionDataTask _restart]):
(-[WebCoreNSURLSessionDataTask _cancel]):
(-[WebCoreNSURLSessionDataTask resume]):
(-[WebCoreNSURLSessionDataTask _timingData]):
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:]):
(-[WebCoreNSURLSessionDataTask resource:receivedData:length:]):
(-[WebCoreNSURLSession initWithResourceLoader:delegate:delegateQueue:]): Deleted.
(-[WebCoreNSURLSession loader]): Deleted.
(WebCore::WebCoreNSURLSessionDataTaskClient::dataSent): Deleted.
(WebCore::WebCoreNSURLSessionDataTaskClient::responseReceived): Deleted.
(WebCore::WebCoreNSURLSessionDataTaskClient::dataReceived): Deleted.
(WebCore::WebCoreNSURLSessionDataTaskClient::redirectReceived): Deleted.
(WebCore::WebCoreNSURLSessionDataTaskClient::notifyFinished): Deleted.
(-[WebCoreNSURLSessionDataTask initWithSession:identifier:URL:]): Deleted.
(-[WebCoreNSURLSessionDataTask _finish]): Deleted.
(-[WebCoreNSURLSessionDataTask _setDefersLoading:]): Deleted.
(-[WebCoreNSURLSessionDataTask resource:sentBytes:totalBytesToBeSent:]): Deleted.
(-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:]): Deleted.
(-[WebCoreNSURLSessionDataTask resourceFinished:]): Deleted.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):

Tools:

Use a MediaResourceLoader instead of a CachedResourceLoader for WebCoreNSURLSession.

Drive-by fix: generate USE and ENABLE macros for TestWebKitAPI by adding FEATURE_DEFINES
to GCC_PREPROCESSOR_DEFINES.

  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/Tests/WebCore/WebCoreNSURLSession.mm:

(TestWebKitAPI::WebCoreNSURLSessionTest::SetUp):
(TestWebKitAPI::WebCoreNSURLSessionTest::TearDown):
(TestWebKitAPI::TEST_F):

2:04 PM Changeset in webkit [196505] by andersca@apple.com
  • 15 edits
    3 deletes in trunk/Source/WebKit2

Remove NPAPI for showing preference panes
https://bugs.webkit.org/show_bug.cgi?id=154193

Reviewed by Dan Bernstein.

No plug-ins ended up adopting this API, so there's no point in keeping it around.

  • PluginProcess/PluginControllerProxy.h:
  • PluginProcess/mac/PluginControllerProxyMac.mm:

(WebKit::PluginControllerProxy::openPluginPreferencePane): Deleted.

  • Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:

(WebKit::NetscapePluginModule::getPluginInfo): Deleted.

  • Shared/Plugins/PluginModuleInfo.h:
  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/Plugins/PluginProcessProxy.messages.in:
  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

(WebKit::PluginProcessProxy::openPluginPreferencePane): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:

(WebKit::NPN_GetValue): Deleted.

  • WebProcess/Plugins/Netscape/NetscapePlugin.h:
  • WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:

(WebKit::NetscapePlugin::openPluginPreferencePane): Deleted.
(WebKit::NetscapePlugin::plugInContainer): Deleted.
(WebKit::NetscapePlugin::platformDestroy): Deleted.

  • WebProcess/Plugins/Netscape/mac/WKNPAPIPlugInContainer.h: Removed.
  • WebProcess/Plugins/Netscape/mac/WKNPAPIPlugInContainer.mm: Removed.

(-[WKNPAPIPlugInContainer dealloc]): Deleted.
(-[WKNPAPIPlugInContainer _invalidate]): Deleted.
(-[WKNPAPIPlugInContainer openPlugInPreferencePane]): Deleted.

  • WebProcess/Plugins/Netscape/mac/WKNPAPIPlugInContainerInternal.h: Removed.
  • WebProcess/Plugins/PluginController.h:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::openPluginPreferencePane): Deleted.

  • WebProcess/Plugins/PluginView.h:
1:54 PM Changeset in webkit [196504] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.18.9/Source/WebKit

Merged r196502. rdar://problem/24635219

1:52 PM Changeset in webkit [196503] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix non-internal builds when using NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=152285

  • platform/spi/cf/CFNetworkSPI.h:

Add SPI declaration used in r194156.

1:43 PM Changeset in webkit [196502] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix internal Windows WebKit debug build.
rdar://problem/24635219

  • PlatformWin.cmake:

We were making WebKit.dll instead of WebKit_debug.dll.

1:39 PM Changeset in webkit [196501] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Remove PowerPC cruft
https://bugs.webkit.org/show_bug.cgi?id=154191

Reviewed by Dan Bernstein.

  • Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:

(WebKit::getPluginArchitecture): Deleted.

1:25 PM Changeset in webkit [196500] by andersca@apple.com
  • 11 edits
    1 delete in trunk/Source/WebKit2

Remove more unneeded process launching code
https://bugs.webkit.org/show_bug.cgi?id=154190

Reviewed by Tim Horton.

  • UIProcess/Databases/DatabaseProcessProxy.cpp:

(WebKit::DatabaseProcessProxy::getLaunchOptions): Deleted.

  • UIProcess/Databases/mac/DatabaseProcessProxyMac.mm: Removed.

(WebKit::DatabaseProcessProxy::platformGetLaunchOptions): Deleted.

  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::getLaunchOptions): Deleted.

  • UIProcess/Network/mac/NetworkProcessProxyMac.mm:

(WebKit::NetworkProcessProxy::platformGetLaunchOptions): Deleted.

  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

(WebKit::PluginProcessProxy::pluginNeedsExecutableHeap): Deleted.
(WebKit::PluginProcessProxy::platformGetLaunchOptions): Deleted.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getLaunchOptions): Deleted.

  • UIProcess/mac/WebProcessProxyMac.mm:

(WebKit::WebProcessProxy::platformGetLaunchOptions): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:
1:11 PM Changeset in webkit [196499] by andersca@apple.com
  • 8 edits in trunk/Source/WebKit2

Use different process types for 32-bit and 64-bit plug-ins
https://bugs.webkit.org/show_bug.cgi?id=154186

Reviewed by Tim Horton.

  • UIProcess/Databases/DatabaseProcessProxy.cpp:

(WebKit::DatabaseProcessProxy::getLaunchOptions):

  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::serviceName):
(WebKit::shouldLeakBoost):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::getLaunchOptions):

  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::getLaunchOptions): Deleted.

  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

(WebKit::PluginProcessProxy::platformGetLaunchOptions):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getLaunchOptions):

12:46 PM Changeset in webkit [196498] by Yusuke Suzuki
  • 20 edits
    4 adds in trunk

[ES6] Implement @@search
https://bugs.webkit.org/show_bug.cgi?id=143889

Reviewed by Darin Adler.

Source/JavaScriptCore:

Implement RegExp.prototype[@@search].
In ES6, String.prototype.search delegates the actual matching to it
instead of executing RegExp matching inside String.prototype.search method itself.
By customizing @@search method, we can change the behavior of String.prototype.search for
derived / customized RegExp object.

  • CMakeLists.txt:
  • DerivedSources.make:
  • builtins/BuiltinNames.h:

(JSC::BuiltinNames::BuiltinNames): Deleted.

  • builtins/BuiltinUtils.h:
  • builtins/StringPrototype.js:

(search):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::finishCreation):
(JSC::regExpProtoFuncSearch):

  • runtime/RegExpPrototype.h:

(JSC::RegExpPrototype::create):

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::getOwnPropertySlot):
(JSC::StringPrototype::finishCreation): Deleted.
(JSC::stringProtoFuncSearch): Deleted.

  • runtime/StringPrototype.h:
  • tests/es6.yaml:
  • tests/stress/regexp-search.js: Added.

(shouldBe):
(shouldThrow):
(errorKey.toString):
(primitive.of.primitives.shouldThrow):
(testRegExpSearch):
(testSearch):
(testBoth):
(alwaysUnmatch):

LayoutTests:

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/dom/string-prototype-properties-expected.txt:
  • js/regress/script-tests/v8-regexp-search.js: Added.

(runRegExpBenchmark.runBlock0):
(runRegExpBenchmark.runBlock1):
(runRegExpBenchmark):
(runRegExpBenchmark.runBlock3):
(runRegExpBenchmark.runBlock4):

  • js/regress/v8-regexp-search-expected.txt: Added.
  • js/regress/v8-regexp-search.html: Added.
  • js/script-tests/Object-getOwnPropertyNames.js:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.12_String.prototype.search/S15.5.4.12_A1_T3-expected.txt:
12:44 PM Changeset in webkit [196497] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

AdaptiveInferredPropertyValueWatchpoint can trigger a GC that frees its CodeBlock and thus itself
https://bugs.webkit.org/show_bug.cgi?id=154146

Reviewed by Filip Pizlo.

Consider the following: there is some CodeBlock, C, that is watching some object, O, with a
structure, S, for replacements. Also, suppose that C has no references anymore and is due to
be GCed. Now, when some new property is added to O, S will create a new structure S' and
fire its transition watchpoints. Since C is watching S for replacements it will attempt to
have its AdaptiveInferredPropertyValueWatchpoint relocate itself to S'. To do so, it needs
it allocate RareData on S'. This allocation may cause a GC, which frees C while still
executing its watchpoint handler. The solution to this is to defer GC while running
AdaptiveInferredPropertyValueWatchpointBase handlers.

  • bytecode/AdaptiveInferredPropertyValueWatchpointBase.cpp:

(JSC::AdaptiveInferredPropertyValueWatchpointBase::fire):

12:31 PM Changeset in webkit [196496] by Beth Dakin
  • 5 edits in trunk/Source/WebKit2

Re-name isClickableElement in InteractionInformationAtPosition to isElement
https://bugs.webkit.org/show_bug.cgi?id=154179

Reviewed by Enrica Casucci.

The bool is set for all elements, so it’s just confusing to call it a
clickableElement instead of just element.

  • Shared/ios/InteractionInformationAtPosition.h:
  • Shared/ios/InteractionInformationAtPosition.mm:

(WebKit::InteractionInformationAtPosition::encode):
(WebKit::InteractionInformationAtPosition::decode):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView _highlightLongPressRecognized:]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):

12:22 PM Changeset in webkit [196495] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Throw out all live resource decoded data on memory pressure / suspension.
<https://webkit.org/b/154176>

Reviewed by Antti Koivisto.

When pruning live resource decoded data from the memory cache,
we normally avoid pruning anything that's been painted in the last second.
This is an optimization to avoid getting into image decoding loops.

For memory pressure / process suspension scenarios this doesn't really
make sense though:

  • In the pressure case, if we have to render again soon it'll likely be a new GIF frame which we have to decode anyway.
  • In the process suspension case, we might *never* render again, so we should be good citizens and drop all the decoded data we can.

This patch makes us drop all the decoded data, recently painted or not.

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseCriticalMemory):

12:20 PM Changeset in webkit [196494] by barraclough@apple.com
  • 6 edits in trunk/Source

Separate out !allowsAccess path in JSDOMWindowCustom getOwnPropertySlot
https://bugs.webkit.org/show_bug.cgi?id=154156

Reviewed by Chris Dumez.

Source/JavaScriptCore:

  • runtime/CommonIdentifiers.h:
    • added new property names, needed by jsDOMWindowGetOwnPropertySlotDisallowAccess.

Source/WebCore:

JSDOMWindowCustom getOwnPropertySlot currently allows cross-origin access to all
static properties, relying on the property to perform the access check. This is
a little insecure, since it is error prone - someone could easily add a property
to the static table without realizing it would be automatcially exposed.

Instead, add a hard-coded filter to restrict access. As a future implementation
we might consider autogenerating this (the properties are already tagged in IDL,
we might be able to track this in a flag on the static table).

By separating out the handling of the same- and cross-origin access we can
simplify & make the policy being enforced much clearer.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::objectToStringFunctionGetter): Deleted.

  • removed objectToStringFunctionGetter - this duplicated functionality of nonCachingStaticFunctionGetter.
  • bindings/js/JSDOMBinding.h:

(WebCore::objectToStringFunctionGetter): Deleted.

  • removed objectToStringFunctionGetter - this duplicated functionality of nonCachingStaticFunctionGetter.
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotDisallowAccess):

  • explicitly handle providing access to only the things we do want to allow cross-origin.

(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):

  • push all !allowsAccess handling to jsDOMWindowGetOwnPropertySlotDisallowAccess

(WebCore::childFrameGetter): Deleted.

  • this was just a deoptimiztion - moving access into a callback saved very little & caused more work to be duplicated.
12:17 PM Changeset in webkit [196493] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Remove more unused process launcher code
https://bugs.webkit.org/show_bug.cgi?id=154181

Reviewed by Tim Horton.

  • UIProcess/Launcher/ProcessLauncher.cpp:

(WebKit::ProcessLauncher::processTypeAsString): Deleted.
(WebKit::ProcessLauncher::getProcessTypeFromString): Deleted.

  • UIProcess/Launcher/ProcessLauncher.h:
12:15 PM Changeset in webkit [196492] by Sukolsak Sakshuwong
  • 122 edits
    2 adds in trunk/Source

Update ICU header files to version 52
https://bugs.webkit.org/show_bug.cgi?id=154160

Reviewed by Alex Christensen.

Update ICU header files to version 52 to allow the use of newer APIs.

Source/JavaScriptCore:

  • icu/unicode/localpointer.h:
  • icu/unicode/platform.h:
  • icu/unicode/ptypes.h:
  • icu/unicode/putil.h:
  • icu/unicode/ucal.h:
  • icu/unicode/uchar.h:
  • icu/unicode/ucnv.h:
  • icu/unicode/ucol.h:
  • icu/unicode/uconfig.h:
  • icu/unicode/udat.h:
  • icu/unicode/udatpg.h:
  • icu/unicode/udisplaycontext.h: Added.
  • icu/unicode/uenum.h:
  • icu/unicode/uformattable.h: Added.
  • icu/unicode/uiter.h:
  • icu/unicode/uloc.h:
  • icu/unicode/umachine.h:
  • icu/unicode/unorm2.h:
  • icu/unicode/unum.h:
  • icu/unicode/urename.h:
  • icu/unicode/uscript.h:
  • icu/unicode/uset.h:
  • icu/unicode/ustring.h:
  • icu/unicode/utf.h:
  • icu/unicode/utf16.h:
  • icu/unicode/utf8.h:
  • icu/unicode/utf_old.h:
  • icu/unicode/utypes.h:
  • icu/unicode/uvernum.h:
  • icu/unicode/uversion.h:

Source/WebCore:

No new tests because there is no behavior change.

  • icu/unicode/bytestream.h:
  • icu/unicode/chariter.h:
  • icu/unicode/localpointer.h:
  • icu/unicode/platform.h:
  • icu/unicode/ptypes.h:
  • icu/unicode/putil.h:
  • icu/unicode/rep.h:

(Replaceable::Replaceable):

  • icu/unicode/std_string.h:
  • icu/unicode/strenum.h:
  • icu/unicode/stringpiece.h:
  • icu/unicode/ubrk.h:
  • icu/unicode/uchar.h:
  • icu/unicode/ucnv.h:
  • icu/unicode/ucol.h:
  • icu/unicode/ucoleitr.h:
  • icu/unicode/uconfig.h:
  • icu/unicode/ucsdet.h:
  • icu/unicode/uenum.h:
  • icu/unicode/uidna.h:
  • icu/unicode/uiter.h:
  • icu/unicode/uloc.h:
  • icu/unicode/umachine.h:
  • icu/unicode/unistr.h:

(UnicodeString::UnicodeString):
(UnicodeString::operator== ):
(UnicodeString::startsWith):
(UnicodeString::setTo):
(UnicodeString::remove):
(UnicodeString::replace): Deleted.
(UnicodeString::extract): Deleted.
(UnicodeString::char32At): Deleted.
(UnicodeString::getChar32Start): Deleted.
(UnicodeString::getChar32Limit): Deleted.
(UnicodeString::getTerminatedBuffer): Deleted.
(UnicodeString::append): Deleted.
(UnicodeString::truncate): Deleted.

  • icu/unicode/unorm2.h:
  • icu/unicode/uobject.h:
  • icu/unicode/urename.h:
  • icu/unicode/uscript.h:
  • icu/unicode/usearch.h:
  • icu/unicode/uset.h:
  • icu/unicode/ushape.h:
  • icu/unicode/ustring.h:
  • icu/unicode/utext.h:
  • icu/unicode/utf.h:
  • icu/unicode/utf16.h:
  • icu/unicode/utf8.h:
  • icu/unicode/utf_old.h:
  • icu/unicode/utypes.h:
  • icu/unicode/uvernum.h:
  • icu/unicode/uversion.h:

Source/WebKit/mac:

  • icu/unicode/localpointer.h:
  • icu/unicode/platform.h:
  • icu/unicode/ptypes.h:
  • icu/unicode/putil.h:
  • icu/unicode/uchar.h:
  • icu/unicode/uconfig.h:
  • icu/unicode/uidna.h:
  • icu/unicode/uiter.h:
  • icu/unicode/umachine.h:
  • icu/unicode/unorm2.h:
  • icu/unicode/urename.h:
  • icu/unicode/uscript.h:
  • icu/unicode/ustring.h:
  • icu/unicode/utf.h:
  • icu/unicode/utf16.h:
  • icu/unicode/utf8.h:
  • icu/unicode/utf_old.h:
  • icu/unicode/utypes.h:
  • icu/unicode/uvernum.h:
  • icu/unicode/uversion.h:

Source/WTF:

  • icu/unicode/bytestream.h:
  • icu/unicode/localpointer.h:
  • icu/unicode/platform.h:
  • icu/unicode/ptypes.h:
  • icu/unicode/putil.h:
  • icu/unicode/rep.h:

(Replaceable::Replaceable):

  • icu/unicode/std_string.h:
  • icu/unicode/strenum.h:
  • icu/unicode/stringpiece.h:
  • icu/unicode/uchar.h:
  • icu/unicode/ucnv.h:
  • icu/unicode/ucol.h:
  • icu/unicode/uconfig.h:
  • icu/unicode/uenum.h:
  • icu/unicode/uiter.h:
  • icu/unicode/uloc.h:
  • icu/unicode/umachine.h:
  • icu/unicode/unistr.h:

(UnicodeString::UnicodeString):
(UnicodeString::operator== ):
(UnicodeString::startsWith):
(UnicodeString::setTo):
(UnicodeString::remove):
(UnicodeString::replace): Deleted.
(UnicodeString::extract): Deleted.
(UnicodeString::char32At): Deleted.
(UnicodeString::getChar32Start): Deleted.
(UnicodeString::getChar32Limit): Deleted.
(UnicodeString::getTerminatedBuffer): Deleted.
(UnicodeString::append): Deleted.
(UnicodeString::truncate): Deleted.

  • icu/unicode/unorm2.h:
  • icu/unicode/uobject.h:
  • icu/unicode/urename.h:
  • icu/unicode/uscript.h:
  • icu/unicode/uset.h:
  • icu/unicode/ustring.h:
  • icu/unicode/utf.h:
  • icu/unicode/utf16.h:
  • icu/unicode/utf8.h:
  • icu/unicode/utf_old.h:
  • icu/unicode/utypes.h:
  • icu/unicode/uvernum.h:
  • icu/unicode/uversion.h:
11:58 AM Changeset in webkit [196491] by andersca@apple.com
  • 10 edits in trunk/Source/WebKit2

Remove more unused process launching code
https://bugs.webkit.org/show_bug.cgi?id=154178

Reviewed by Tim Horton.

  • UIProcess/Databases/mac/DatabaseProcessProxyMac.mm:

(WebKit::shouldUseXPC): Deleted.
(WebKit::DatabaseProcessProxy::platformGetLaunchOptions): Deleted.

  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/mac/EnvironmentVariables.cpp:

(WebKit::EnvironmentVariables::preexistingProcessServiceNameKey): Deleted.
(WebKit::EnvironmentVariables::preexistingProcessTypeKey): Deleted.

  • UIProcess/Launcher/mac/EnvironmentVariables.h:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):
(WebKit::setUpTerminationNotificationHandler): Deleted.
(WebKit::addDYLDEnvironmentAdditions): Deleted.
(WebKit::tryPreexistingProcess): Deleted.
(WebKit::createProcess): Deleted.

  • UIProcess/Network/mac/NetworkProcessProxyMac.mm:

(WebKit::shouldUseXPC): Deleted.
(WebKit::NetworkProcessProxy::platformGetLaunchOptions): Deleted.

  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

(WebKit::PluginProcessProxy::platformGetLaunchOptions): Deleted.

  • UIProcess/ios/WebProcessProxyIOS.mm:

(WebKit::WebProcessProxy::platformGetLaunchOptions): Deleted.

  • UIProcess/mac/WebProcessProxyMac.mm:

(WebKit::shouldUseXPC): Deleted.
(WebKit::WebProcessProxy::platformGetLaunchOptions): Deleted.

11:50 AM Changeset in webkit [196490] by fpizlo@apple.com
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

Fast path in JSObject::defineOwnIndexedProperty() forgets to check for the posibility of a descriptor that doesn't have a value
https://bugs.webkit.org/show_bug.cgi?id=154175
rdar://problem/24291497

Reviewed by Geoffrey Garen.

  • runtime/JSObject.cpp:

(JSC::JSObject::defineOwnIndexedProperty): Fix the bug.

  • runtime/SparseArrayValueMap.cpp:

(JSC::SparseArrayValueMap::putEntry): Catch the bug sooner in debug.
(JSC::SparseArrayValueMap::putDirect):

  • tests/stress/sparse-define-empty-descriptor.js: Added. This used to crash in release.
11:43 AM Changeset in webkit [196489] by Beth Dakin
  • 4 edits in trunk/Source/WebKit/mac

NSRangeIsRelativeTo should not have NS prefix
https://bugs.webkit.org/show_bug.cgi?id=154174

Reviewed by Tim Horton.

NSRangeIsRelativeTo -> WebRangeIsRelativeTo

  • WebView/WebFrame.mm:

(-[WebFrame _convertToDOMRange:]):
(-[WebFrame _convertToDOMRange:rangeIsRelativeTo:]):

  • WebView/WebFrameInternal.h:
  • WebView/WebHTMLView.mm:

(-[WebHTMLView insertText:]):

11:28 AM Changeset in webkit [196488] by BJ Burg
  • 8 edits
    9 adds in trunk/Source/WebKit2

Add a WebKit SPI for creating an automation session and advertise the active session via RemoteInspector
https://bugs.webkit.org/show_bug.cgi?id=153934

Reviewed by Dan Bernstein and Joseph Pecoraro.

An automation session is the main place where WebKit support for user agent automation is implemented.
A session encapsulates the state (default timeouts, page identifier mappings), objects (active automation
WebPages) and logic (how to open a window, run JS, send user input, etc.) used to implement automation
commands.

A process pool can only have one session at a time. The session is created by the WebKit client in
response to a request that comes through _WKAutomationDelegate. When a session is set on the process pool,
it is advertised to remote drivers and debuggers as a RemoteControllableTarget. A remote driver can use
the existing RemoteInspector API to connect to the session and send it automation commands.

The session has a delegate so that WebKit clients can perform actions that are outside the scope of WebKit,
such as creating new tabs, enumerating windows, or sending native user inputs.

This patch adds AutomationSession classes at the API and implementation level in WebKit2. The
implementation class contains RemoteInspector support, which cannot be used directly by WebKit clients.
AutomationSessionDelegate classes exist at both the API and implementation level to bridge between
Objective-C delegates and C++ clients. All code related to RemoteInspector and RemoteAutomationTarget
must be guarded by ENABLE(REMOTE_INSPECTOR).

  • Shared/API/APIObject.h: Add new API type 'AutomationSession'.
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject): Allocate in the wrapper.

  • UIProcess/API/APIAutomationSessionClient.h: Added.

(API::AutomationSessionClient::~AutomationSessionClient):
(API::AutomationSessionClient::didRequestNewWindow): Delegate window creation to the client.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _setAutomationSession:]): Keep at most one WebAutomationSession at a time.

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/API/Cocoa/_WKAutomationSession.h: Added.
  • UIProcess/API/Cocoa/_WKAutomationSession.mm: Added.

(-[_WKAutomationSession init]): Construct the API object in the implementation wrapper.
(-[_WKAutomationSession dealloc]): Clear the client before calling the implementation destructor.

(-[_WKAutomationSession sessionIdentifier]):
(-[_WKAutomationSession setSessionIdentifier:]):
Store the session identifier string in the implementation.

(-[_WKAutomationSession delegate]):
(-[_WKAutomationSession setDelegate:]):
Create an Objective-C adapter for the delegate if not nil and set it as the implementation's client.

(-[_WKAutomationSession _apiObject]):

  • UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: Added.
  • UIProcess/API/Cocoa/_WKAutomationSessionInternal.h: Added.

(wrapper):

  • UIProcess/Cocoa/AutomationSessionClient.h: Added.

Set up the boilerplate for caching delegate method availability. It will include more methods later.

  • UIProcess/Cocoa/AutomationSessionClient.mm: Added. Forward requests to the SPI delegate.

(WebKit::AutomationSessionClient::AutomationSessionClient):
(WebKit::AutomationSessionClient::didRequestNewWindow): Delegate window creation to the client.

  • UIProcess/WebAutomationSession.cpp: Added.

(WebKit::WebAutomationSession::WebAutomationSession):
By default, a session should be available and not paired to any particular remote driver.

(WebKit::WebAutomationSession::~WebAutomationSession): Require callers to clear the client first.
(WebKit::WebAutomationSession::setClient):
(WebKit::WebAutomationSession::dispatchMessageFromRemote): Stub this out for now.

(WebKit::WebAutomationSession::connect):
(WebKit::WebAutomationSession::disconnect):
To prevent multiple connection attempts, mark the target as paired when a remote client has connected.

  • UIProcess/WebAutomationSession.h: Added.
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setAutomationSession):
Store the session object and tell it to register itself. Unregistering happens automatically
in RemoteControllableTarget::~RemoteControllableTarget.

  • UIProcess/WebProcessPool.h:
  • WebKit2.xcodeproj/project.pbxproj: Add files and headers.
11:18 AM Changeset in webkit [196487] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.18.9/Source/WebKit

Merged r196462. rdar://problem/24622882

11:07 AM Changeset in webkit [196486] by bshafiei@apple.com
  • 3 edits in tags/Safari-602.1.18.9/Source/WebCore

Merged r196023. rdar://problem/24411911

11:06 AM Changeset in webkit [196485] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.18.9/Source

Versioning.

11:02 AM Changeset in webkit [196484] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.18.9

New tag.

10:34 AM Changeset in webkit [196483] by akling@apple.com
  • 9 edits in trunk/Source/WebCore

[Mac] BitmapImage::decodedDataIsPurgeable() is telling lies and causing massive memory usage.
<https://webkit.org/b/154172>

Reviewed by Antti Koivisto.

The underlying mechanism in CoreAnimation that made this work is no longer in place.

Instead of keeping purgeable frames and juggling volatility bits, we were simply caching
every single frame of large GIF animations, sometimes leading to monstrous memory usage.

Remove the code from WebCore since it's not doing at all what it means to.

Now iOS and Mac will behave the same again, and frame caching decisions will be
made by WebKit, based on total pixel byte size.

  • loader/cache/CachedImage.h:
  • loader/cache/CachedResource.h:

(WebCore::CachedResource::decodedDataIsPurgeable): Deleted.

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::pruneLiveResourcesToSize): Deleted.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::decodedDataIsPurgeable): Deleted.
(WebCore::BitmapImage::destroyDecodedDataIfNecessary): Deleted.

  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.h:

(WebCore::Image::decodedDataIsPurgeable): Deleted.

  • platform/graphics/cg/BitmapImageCG.cpp:

(WebCore::BitmapImage::decodedDataIsPurgeable): Deleted.

  • platform/graphics/cg/ImageSourceCG.cpp:

(WebCore::ImageSource::createFrameAtIndex): Deleted.

10:30 AM Changeset in webkit [196482] by beidson@apple.com
  • 16 edits
    1 add in trunk/Source/WebCore

Modern IDB: Ref cycle between IDBObjectStore and IDBIndex.
https://bugs.webkit.org/show_bug.cgi?id=154110

Reviewed by Darin Adler.

No new tests (Currently untestable).

The lifetime of IDBObjectStore and IDBIndex are closely intertwined, but we have to break the ref cycle.

This patch does a few semi-gnarly things:
1 - Makes both IDBIndex and IDBObjectStore have a custom marking function so they can add each other as

opaque roots.

2 - Adds a lock to protect IDBObjectStore's collection of referenced indexes to support #1, as GC marking

can happen on any thread.

3 - Makes IDBIndex not be traditionally RefCounted; Instead, IDBIndex::ref()/deref() simply ref()/deref()

the owning IDBObjectStore.

4 - ...Except when somebody deletes an IDBIndex from its IDBObjectStore. Once that happens, the object

store no longer has a reference back to the index, but the index still needs a reference back to the
object store. To support this, the IDBIndex becomes "traditionally RefCounted" while holding a ref to
its IDBObjectStore.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • Modules/indexeddb/IDBIndex.h:

(WebCore::IDBIndex::isModern):

  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBObjectStore.h:

(WebCore::IDBObjectStore::isModern):

  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/indexeddb/client/IDBIndexImpl.cpp:

(WebCore::IDBClient::IDBIndex::objectStore):
(WebCore::IDBClient::IDBIndex::openCursor):
(WebCore::IDBClient::IDBIndex::doCount):
(WebCore::IDBClient::IDBIndex::openKeyCursor):
(WebCore::IDBClient::IDBIndex::doGet):
(WebCore::IDBClient::IDBIndex::doGetKey):
(WebCore::IDBClient::IDBIndex::markAsDeleted):
(WebCore::IDBClient::IDBIndex::ref):
(WebCore::IDBClient::IDBIndex::deref):
(WebCore::IDBClient::IDBIndex::create): Deleted.

  • Modules/indexeddb/client/IDBIndexImpl.h:

(WebCore::IDBClient::IDBIndex::modernObjectStore):

  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::createIndex):
(WebCore::IDBClient::IDBObjectStore::index):
(WebCore::IDBClient::IDBObjectStore::deleteIndex):
(WebCore::IDBClient::IDBObjectStore::visitReferencedIndexes):

  • Modules/indexeddb/client/IDBObjectStoreImpl.h:
  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::createIndex):

  • Modules/indexeddb/client/IDBTransactionImpl.h:
  • Modules/indexeddb/legacy/LegacyIndex.cpp:

(WebCore::LegacyIndex::ref):
(WebCore::LegacyIndex::deref):

  • Modules/indexeddb/legacy/LegacyIndex.h:
  • bindings/js/JSIDBIndexCustom.cpp: Added.

(WebCore::JSIDBIndex::visitAdditionalChildren):

  • bindings/js/JSIDBObjectStoreCustom.cpp:

(WebCore::JSIDBObjectStore::visitAdditionalChildren):

9:33 AM Changeset in webkit [196481] by Csaba Osztrogonác
  • 8 edits in trunk

[EFL][GTK] Fix ENABLE(SVG_OTF_CONVERTER) build
https://bugs.webkit.org/show_bug.cgi?id=154165

Reviewed by Alex Christensen.

.:

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

  • CMakeLists.txt:
  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::font):

  • svg/SVGToOTFFontConversion.cpp:
  • svg/SVGToOTFFontConversion.h:
9:24 AM Changeset in webkit [196480] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Get rid of NetscapePluginModule::createPluginMIMETypesPreferences
https://bugs.webkit.org/show_bug.cgi?id=154173

Reviewed by Dan Bernstein.

  • Shared/Plugins/Netscape/NetscapePluginModule.h:
  • Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:

(WebKit::NetscapePluginModule::createPluginMIMETypesPreferences): Deleted.

9:23 AM Changeset in webkit [196479] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator after r196466

Unreviewed test gardening.

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
9:10 AM Changeset in webkit [196478] by andersca@apple.com
  • 2 edits
    6 deletes in trunk/Source/WebKit2

Remove legacy processes from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=154119

Reviewed by Darin Adler.

  • Configurations/BaseLegacyProcess.xcconfig: Removed.
  • DatabaseProcess/EntryPoint/mac/LegacyProcess/DatabaseProcessMain.mm: Removed.

(DatabaseProcessMain): Deleted.

  • DatabaseProcess/EntryPoint/mac/LegacyProcess/Info.plist: Removed.
  • NetworkProcess/EntryPoint/mac/LegacyProcess/Info.plist: Removed.
  • NetworkProcess/EntryPoint/mac/LegacyProcess/NetworkProcessMain.mm: Removed.

(NetworkProcessMain): Deleted.

  • PluginProcess/EntryPoint/mac/LegacyProcess/Info.plist: Removed.
  • PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm: Removed.

(WebKit::PluginProcessMainDelegate::PluginProcessMainDelegate): Deleted.
(PluginProcessMain): Deleted.

  • Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.h: Removed.

(WebKit::ChildProcessMainDelegate::ChildProcessMainDelegate): Deleted.
(WebKit::ChildProcessMain): Deleted.

  • Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.mm: Removed.

(WebKit::ChildProcessMainDelegate::~ChildProcessMainDelegate): Deleted.
(WebKit::ChildProcessMainDelegate::installSignalHandlers): Deleted.
(WebKit::ChildProcessMainDelegate::doPreInitializationWork): Deleted.
(WebKit::ChildProcessMainDelegate::getConnectionIdentifier): Deleted.
(WebKit::ChildProcessMainDelegate::getClientIdentifier): Deleted.
(WebKit::ChildProcessMainDelegate::getClientProcessName): Deleted.
(WebKit::ChildProcessMainDelegate::getExtraInitializationData): Deleted.
(WebKit::ChildProcessMainDelegate::startRunLoop): Deleted.
(WebKit::ChildProcessMainDelegate::doPostRunWork): Deleted.

  • Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMain.mm: Removed.

(WebKit::closeUnusedFileDescriptors): Deleted.
(WebKit::BootstrapMain): Deleted.
(main): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/EntryPoint/mac/LegacyProcess/Info.plist: Removed.
  • WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm: Removed.

(WebKit::WebContentProcessMainDelegate::WebContentProcessMainDelegate): Deleted.
(WebContentProcessMain): Deleted.

9:00 AM Changeset in webkit [196477] by bshafiei@apple.com
  • 12 edits in branches/safari-601.1.46-branch

Merged r196401. rdar://problem/24611749

8:49 AM Changeset in webkit [196476] by Chris Dumez
  • 22 edits in trunk/Source/WebCore

Unreviewed nit fixes after r196466.

  • Modules/speech/SpeechSynthesisUtterance.idl: Fix curly bracket placement.
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader): Use wrappableObject instead of domObject.

  • bindings/scripts/test/*: Rebaseline.
  • dom/WebKitNamedFlow.idl: Drop unnecessary #if case.
8:40 AM Changeset in webkit [196475] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] HTTP auth dialog incorrectly rendered with Accelerated Compositing enabled
https://bugs.webkit.org/show_bug.cgi?id=154159

Reviewed by Michael Catanzaro.

There are two problems here, first we are changing the cairo
operator when rendering the xcomposite window pixmap without a
proper save/restore, so it affects the drawing that happens after
that, and second problem is that we are not rendering the gray
background in AC mode because we are returning earlier.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewRenderAcceleratedCompositingResults):
(webkitWebViewBaseDraw):

8:37 AM Changeset in webkit [196474] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK] Properly handle classes inheriting from EventTarget
https://bugs.webkit.org/show_bug.cgi?id=154158

Reviewed by Michael Catanzaro.

Instead of removing its parent we now handle the case of classes
having EventTarget as parent to make them implement the interface
instead.

  • bindings/scripts/CodeGeneratorGObject.pm:

(ShouldBeExposedAsInterface): Whether the parent given class
should be exposed as an interface instead of a parent class.
(GetParentClassName): Return Object as parent for classes having
a parent that should be exposed as an interface.
(GetParentImplClassName): Ditto.
(GetBaseClass): Ditto.
(GetParentGObjType): Ditto.
(SkipFunction): Add FIXME comment.
(ImplementsInterface): Helper function to check if a class
implements the given interface.
(GenerateCFile): Check whether the class implements EventTarget to
generate the interface implementation.
(GenerateInterface): Do not remove the parent class when it's EventTarget.

7:49 AM Changeset in webkit [196473] by commit-queue@webkit.org
  • 5 edits
    2 deletes in trunk/Source/WebCore

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

Broke some tests (Requested by anttik on #webkit).

Reverted changeset:

"Factor class change style invalidation code into a class"
https://bugs.webkit.org/show_bug.cgi?id=154163
http://trac.webkit.org/changeset/196470

7:37 AM Changeset in webkit [196472] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r196362. rdar://problem/24611811

7:37 AM Changeset in webkit [196471] by matthew_hanson@apple.com
  • 12 edits in branches/safari-601-branch

Merge r196401. rdar://problem/24611749

7:05 AM Changeset in webkit [196470] by Antti Koivisto
  • 5 edits
    2 adds in trunk/Source/WebCore

Factor class change style invalidation code into a class
https://bugs.webkit.org/show_bug.cgi?id=154163

Reviewed by Andreas Kling.

Factor this piece of functionality out of Element and into ClassChangeInvalidation class.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Element.cpp:

(WebCore::classStringHasClassName):
(WebCore::Element::classAttributeChanged):
(WebCore::collectClasses): Deleted.
(WebCore::computeClassChange): Deleted.
(WebCore::invalidateStyleForClassChange): Deleted.

  • style/ClassChangeInvalidation.cpp: Added.

(WebCore::Style::ClassChangeInvalidation::computeClassChange):
(WebCore::Style::ClassChangeInvalidation::invalidateStyle):

  • style/ClassChangeInvalidation.h: Added.

(WebCore::Style::ClassChangeInvalidation::needsInvalidation):
(WebCore::Style::ClassChangeInvalidation::ClassChangeInvalidation):
(WebCore::Style::ClassChangeInvalidation::~ClassChangeInvalidation):

5:52 AM Changeset in webkit [196469] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

GCC buildfix in Source/WebCore/svg/SVGToOTFFontConversion.cpp
https://bugs.webkit.org/show_bug.cgi?id=154162

Reviewed by Andreas Kling.

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::finishAppendingKERNSubtable):

4:39 AM Changeset in webkit [196468] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Don't invalidate the FontCache on memory pressure.
<https://webkit.org/b/154161>

Reviewed by Antti Koivisto.

Invalidating the FontCache does more harm than good:

  • Anything that's still in the cache at this point is also referenced outside the cache, thus will not actually get deleted.
  • Future deduplication will fail, leading to more objects.
  • The global FontCache generation gets bumped, causing future style recalcs to be less efficient and breaking style sharing.
  • All FontSelector invalidation callbacks will fire, potentially causing forced full-document style recalcs.

In fact, the only win from invalidating the FontCache comes from some
minor shrinkage in the containers that make up the cache itself.

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseCriticalMemory): Deleted.

3:37 AM Changeset in webkit [196467] by clopez@igalia.com
  • 2 edits in trunk/Source/WebKit2

[GTK] Allow applications to disable Accelerated Compositing mode.
https://bugs.webkit.org/show_bug.cgi?id=154147

Reviewed by Carlos Garcia Campos.

  • UIProcess/gtk/WebPreferencesGtk.cpp:

(WebKit::WebPreferences::platformInitializeStore): if the environment
variable WEBKIT_DISABLE_COMPOSITING_MODE is defined, then disable AC.

Note: See TracTimeline for information about the timeline view.