Timeline


and

04/29/16: Yesterday

22:40 Changeset [200289] by cdumez@apple.com
  • 31 edits in trunk/Source

[Web IDL] Specify default parameter values for callback parameters
https://bugs.webkit.org/show_bug.cgi?id=157188

Reviewed by Darin Adler.

Specify default parameter values for callback parameters.

  • Modules/geolocation/Geolocation.idl:
  • Modules/notifications/Notification.cpp:

(WebCore::Notification::requestPermission):

  • Modules/notifications/Notification.h:
  • Modules/notifications/Notification.idl:
  • Modules/notifications/NotificationCenter.idl:
  • Modules/quota/StorageInfo.cpp:

(WebCore::StorageInfo::queryUsageAndQuota):
(WebCore::StorageInfo::requestQuota):

  • Modules/quota/StorageInfo.h:
  • Modules/quota/StorageInfo.idl:
  • Modules/quota/StorageQuota.h:
  • Modules/quota/StorageQuota.idl:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webdatabase/DOMWindowWebDatabase.cpp:

(WebCore::DOMWindowWebDatabase::openDatabase):

  • Modules/webdatabase/DOMWindowWebDatabase.h:

(WebCore::DOMWindowWebDatabase::DOMWindowWebDatabase):
(WebCore::DOMWindowWebDatabase::~DOMWindowWebDatabase):

  • Modules/webdatabase/DOMWindowWebDatabase.idl:
  • Modules/webdatabase/Database.cpp:

(WebCore::Database::runTransaction):
(WebCore::Database::changeVersion):
(WebCore::Database::transaction):
(WebCore::Database::readTransaction):

  • Modules/webdatabase/Database.h:
  • Modules/webdatabase/Database.idl:
  • Modules/webdatabase/SQLTransaction.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
(CanUseWTFOptionalForParameter): Deleted.

  • bindings/scripts/test/TestObj.idl:
  • dom/DataTransferItem.h:
  • dom/DataTransferItem.idl:
22:09 Changeset [200288] by darin@apple.com
  • 18 edits in trunk/Source

First step in using "enum class" instead of "String" for enumerations in DOM
https://bugs.webkit.org/show_bug.cgi?id=157163

Reviewed by Chris Dumez.

Source/JavaScriptCore:

  • runtime/JSString.h:

(JSC::jsStringWithCache): Deleted unneeded overload for AtomicString.

Source/WebCore:

This patch adds the basic support for using "enum class" to implement enumerations
in the C++ DOM. This is enough so we can use it for one case, but not enough for
others. For example, it correctly generates code to get an attribute, but likely
does not correctly generate code to set an attribute or call a function with an
argument type that is the new style of enum.

  • bindings/scripts/CodeGenerator.pm: Cleaned up the formatting of the hashes

at the start of this file. Added a new one named stringBasedEnumerationHash
and a comment explaining that we need to eventually make it empty.
(ProcessDocument): Pass the enumerations into the GenerateInterface function.
(IsStringBasedEnumType): Added. Returns 1 for the old-style string-based enumerations,
as opposed to enumerations we use "enum class" for.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateInterface): Take the enumerations argument and pass it along to the
functions that generate headers and implementation files.
(EnumerationClassName): Added. Maps from an enumeration type name as seen
in the IDL file to the enumeration class name used in the C++ DOM implementation.
(EnumerationValueName): Added. Maps from an anumeration string value as seen
in the IDL file to an enumeration value name used in the C++ DOM implementatino.
(EnumerationImplementationContent): Added. Generates a string with all the content
needed in the implementation file to define the helper functions for enumerations.
(GenerateHeader): Tweak.
(GenerateImplementation): Added call to EnumerationImplementationContent.
(GenerateParametersCheck): Use toWTFString instead of toString/value, which is a
longer way of writing out the same thing.
(GenerateCallbackHeader): Tweak.
(GenerateCallbackImplementation): Added call to EnumerationImplementationContent.
(GetNativeType): Continue to return String for string-based enum types, but for
other enum types, return the result of EnumerationClassName instead.
(JSValueToNative): Use toWTFString instead of toString/value (see above), convert
to a string only for string-based enum types, and add a preliminary, probably not
yet working, version of the code for non-string-based enum types. Will finish this
in the next patch when we are trying to use one of the new enumerations for a setter
or a function argument.
(NativeToJSValue): Call the stringValue function to convert an enumeration value
into a string when it's not a string-based enumeration.

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

Regenerated.

  • css/FontFace.cpp:

(WebCore::FontFace::status): Updated to return enum values rather than strings.

  • css/FontFace.h: Removed unneeded forward declaration of Deprecated::ScriptValue.

Added enum class for FontFaceLoadStatus, with names that match the names from the
enumeration in the IDL, but with our standard enum capitalization style. Changed
the return value of the status function to FontFaceLoadStatus.

21:51 Changeset [200287] by cdumez@apple.com
  • 16 edits in trunk/Source/WebCore

Get rid of unnecessary null check in wrap(JSDOMGlobalObject*, DOMClass*)
https://bugs.webkit.org/show_bug.cgi?id=157224

Reviewed by Ryosuke Niwa.

Get rid of unnecessary null check in wrap(JSDOMGlobalObject*, DOMClass*)
since all the call sites already do a null check. Also update the function
to take the implementation object by reference instead of pointer. Finally,
use is<>() / downcast<>() more at the call sites.

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::update):
(WebCore::IDBCursor::deleteFunction):
(WebCore::IDBCursor::setGetResult):

  • Modules/indexeddb/IDBCursor.h:

(WebCore::IDBCursor::isKeyCursorWithValue):
(WebCore::IDBCursor::isKeyCursor): Deleted.

  • Modules/indexeddb/IDBCursorWithValue.h:

(isType):

  • bindings/js/JSBlobCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSCanvasRenderingContextCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSDOMBinding.h:

(WebCore::wrap):

  • bindings/js/JSIDBCursorCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSMediaStreamCapabilitiesCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSPerformanceEntryCustom.cpp:

(WebCore::toJS):

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLRenderingContext.h:
  • page/PerformanceMark.h:

(isType):
(WebCore::PerformanceMark::isMark): Deleted.

  • page/PerformanceMeasure.h:

(isType):
(WebCore::PerformanceMeasure::isMeasure): Deleted.

  • page/PerformanceResourceTiming.h:

(isType):
(WebCore::PerformanceResourceTiming::isResource): Deleted.

21:48 Changeset [200286] by cdumez@apple.com
  • 24 edits in trunk/Source/WebCore

Use LIKELY() / UNLIKELY() hints when suitable in the JavaScript bindings
https://bugs.webkit.org/show_bug.cgi?id=157210

Reviewed by Darin Adler.

Use LIKELY() / UNLIKELY() hints when suitable in the JavaScript bindings.
We already make use of them in the JS bindings but they are some cases
where we don't and they may be useful.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateOverloadedFunction):
(GenerateImplementation):
(GenerateParametersCheck):
(GenerateImplementationFunctionCall):
(GenerateOverloadedConstructorDefinition):
(GenerateConstructorDefinition):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::jsTestActiveDOMObjectConstructor):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:

(WebCore::jsTestClassWithJSBuiltinConstructorConstructor):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:

(WebCore::jsTestCustomConstructorWithNoInterfaceObjectConstructor):

  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:

(WebCore::jsTestCustomNamedGetterConstructor):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::jsTestEventConstructorConstructor):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::JSTestEventTarget::getOwnPropertySlotByIndex):
(WebCore::jsTestEventTargetConstructor):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::jsTestExceptionConstructor):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::jsTestGenerateIsReachableConstructor):

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::jsTestGlobalObjectConstructor):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterfaceConstructor::construct):
(WebCore::jsTestInterfaceConstructor):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:

(WebCore::jsTestJSBuiltinConstructorConstructor):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:

(WebCore::jsTestMediaQueryListListenerConstructor):
(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::JSTestNamedConstructorNamedConstructor::construct):
(WebCore::jsTestNamedConstructorConstructor):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::jsTestNodeConstructor):

  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:

(WebCore::jsTestNondeterministicConstructor):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjConstructor::construct):
(WebCore::JSTestObj::getOwnPropertySlotByIndex):
(WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
(WebCore::jsTestObjConstructor):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArg):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionConvert1):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Promise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Promise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors3):
(WebCore::JSTestOverloadedConstructorsConstructor::construct):
(WebCore::jsTestOverloadedConstructorsConstructor):

  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:

(WebCore::jsTestOverrideBuiltinsConstructor):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::jsTestSerializedScriptValueInterfaceConstructor):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefsConstructor::construct):
(WebCore::jsTestTypedefsConstructor):

  • bindings/scripts/test/JS/JSattribute.cpp:

(WebCore::jsattributeConstructor):

  • bindings/scripts/test/JS/JSreadonly.cpp:

(WebCore::jsreadonlyConstructor):

21:19 Changeset [200285] by rniwa@webkit.org
  • 7 edits in trunk

Rename getAssignedNodes to assignedNodes and support flattened option
https://bugs.webkit.org/show_bug.cgi?id=157225

Reviewed by Antti Koivisto.

Source/WebCore:

Renamed getAssignedNodes and added the the support for {flattened: true/false} as spec'ed at
http://w3c.github.io/webcomponents/spec/shadow/#widl-HTMLSlotElement-assignedNodes-sequence-Node--AssignedNodesOptions-options

Test: fast/shadow-dom/HTMLSlotElement-interface.html

  • html/HTMLSlotElement.cpp:

(WebCore::flattenAssignedNodes): Added.
(WebCore::HTMLSlotElement::assignedNodesForBindings): Added.

  • html/HTMLSlotElement.h:
  • html/HTMLSlotElement.idl:

LayoutTests:

  • fast/shadow-dom/HTMLSlotElement-interface-expected.txt:
  • fast/shadow-dom/HTMLSlotElement-interface.html:
21:13 Changeset [200284] by simon.fraser@apple.com
  • 3 edits in trunk/Source/WebCore

Make clipToRect() and restoreClip() have similar signatures
https://bugs.webkit.org/show_bug.cgi?id=157229

Reviewed by Zalan Bujtas.

clipToRect() and restoreClip() are always called in pairs, but had different
parameter order, and parameter types. So make them more similar.

In future we could use them in a stack-based class.

No behavior change.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::clipToRect):
(WebCore::RenderLayer::restoreClip):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::applyFilters):
(WebCore::RenderLayer::paintTransformedLayerIntoFragments):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
(WebCore::RenderLayer::paintOutlineForFragments):
(WebCore::RenderLayer::paintMaskForFragments):
(WebCore::RenderLayer::paintChildClippingMaskForFragments):
(WebCore::RenderLayer::paintOverflowControlsForFragments):
(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLayer.h:
21:13 Changeset [200283] by simon.fraser@apple.com
  • 7 edits
    8 adds in trunk

Blur filter escapes an enclosing overflow:hidden
https://bugs.webkit.org/show_bug.cgi?id=155029

Reviewed by Zalan Bujtas.

Source/WebCore:

The clipping that was applied when drawing the results of filters was wrong for two reasons.

First, it used localPaintingInfo which has already been contaminated when setting up the filters.
When painting the result, we need to use the original paintingInfo, to get the right paintDirtyRect.

Secondly, when setting up the clip to paint the filter result, it was relying on layerFragments[0].backgroundRect.
However, that was also contaminated by filter setup, since calculateRects() intersects with paintDirtyRect to
compute that backgroundRect, and that paintDirtyRect came from filterPainter->repaintRect().

Fix this second issue by re-running collectFragments(), which computes a fragment backgroundRect using
the original paintDirtyRect.

Tests: css3/filters/blur-clipped-by-ancestor.html

css3/filters/blur-clipped-with-overflow.html
css3/filters/drop-shadow-with-overflow-hidden.html
css3/filters/drop-shadow.html

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::clearResult): Unconditionally null these out.

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRendererHelper::beginFilterEffect): Typo fix.

  • rendering/FilterEffectRenderer.h:

(WebCore::FilterEffectRendererHelper::FilterEffectRendererHelper): C++11 initialization.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::applyFilters):
(WebCore::RenderLayer::paintLayerContents):

  • rendering/RenderLayer.h: const

LayoutTests:

  • css3/filters/blur-clipped-by-ancestor-expected.html: Added.
  • css3/filters/blur-clipped-by-ancestor.html: Added.
  • css3/filters/blur-clipped-with-overflow-expected.html: Added.
  • css3/filters/blur-clipped-with-overflow.html: Added.
  • css3/filters/drop-shadow-expected.html: Added.
  • css3/filters/drop-shadow-with-overflow-hidden-expected.html: Added.
  • css3/filters/drop-shadow-with-overflow-hidden.html: Added.
  • css3/filters/drop-shadow.html: Added.
20:54 Changeset [200282] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

REGRESSION(194502): overflow: scroll; direction: rtl; divs jump horizontally when scrolled vertically
https://bugs.webkit.org/show_bug.cgi?id=157201

Reviewed by Simon Fraser.

Source/WebCore:

ScrollableArea::scrollToOffsetWithoutAnimation() was mistakenly conflating scroll offsets with
scroll positions.

Test: fast/scrolling/rtl-drag-vertical-scroller.html

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::scrollToOffsetWithoutAnimation):

LayoutTests:

  • fast/scrolling/rtl-drag-vertical-scroller-expected.txt: Added.
  • fast/scrolling/rtl-drag-vertical-scroller.html: Added.
20:36 Changeset [200281] by cdumez@apple.com
  • 2 edits in trunk/Source/WebKit2

Drop useless check in SpeculativeLoadManager::registerLoad()
https://bugs.webkit.org/show_bug.cgi?id=157204

Reviewed by Antti Koivisto.

Drop useless check in SpeculativeLoadManager::registerLoad(). There is
no way to end up this code path with a non-HTTP family request.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):

20:21 Changeset [200280] by bburg@apple.com
  • 5 edits in trunk/Source/WebKit2

Web Automation: add SPI to mark an existing NSEvent as synthesized for automation
https://bugs.webkit.org/show_bug.cgi?id=157221
<rdar://problem/26019356>

Reviewed by Timothy Hatcher.

In cases where an NSEvent is duplicated, clients need to re-mark an NSEvent
as synthesized for automation if the original NSEvent was marked as such.

  • UIProcess/API/Cocoa/_WKAutomationSession.h:
  • UIProcess/API/Cocoa/_WKAutomationSession.mm:

(-[_WKAutomationSession markEventAsSynthesizedForAutomation:]):

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Cocoa/WebAutomationSessionCocoa.mm:

(WebKit::WebAutomationSession::sendSynthesizedEventsToPage):
(WebKit::WebAutomationSession::markEventAsSynthesizedForAutomation):

19:55 Changeset [200279] by simon.fraser@apple.com
  • 4 edits in trunk/Source/WebCore

Clean up GraphicsContext use in RenderLayer::paintLayerContents()
https://bugs.webkit.org/show_bug.cgi?id=157193

Reviewed by Zalan Bujtas.

Make the lifetime of the temporary GraphicsContext used to paint filters more explicit
by putting it in an inner scope.

Make currentContext a reference.

transparencyLayerContext was a confusing name (it doens't mean we've started a
transparency layer), so just use "context" to refer to the original context. When
passed to other functions, this is called "contextForTransparencyLayer".

No longer leaves "context" as a null pointer if filterPainter->filterContext() returns
a null pointer. It's unclear if this ever happened.

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRendererHelper::filterContext):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::RenderLayer::applyFilters):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragments):

  • rendering/RenderLayer.h:
19:37 Changeset [200278] by bburg@apple.com
  • 2 edits in trunk/Source/WebKit2

Web Automation: use a magic eventNumber as a fallback for detecting NSEvents synthesized for automation
https://bugs.webkit.org/show_bug.cgi?id=157222

Reviewed by Timothy Hatcher.

Sometimes events are copied and redelivered in a way that can't be reliably intercepted,
so use eventNumber as an alternate means of detecting synthesized mouse NSEvents.

  • UIProcess/Cocoa/WebAutomationSessionCocoa.mm:

(WebKit::WebAutomationSession::wasEventSynthesizedForAutomation):
If it's a mouse-related event, check the eventNumber if the associated object was missing.

(WebKit::WebAutomationSession::platformSimulateMouseInteraction):
Most real events from input devices fill in eventNumber with a non-zero value.
In my testing, using zero did not seem to adversely affect event delivery.

18:50 Changeset [200277] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

[JSC][ARMv7S] Arithmetic module results change when tiering up to DFG
https://bugs.webkit.org/show_bug.cgi?id=157217
rdar://problem/24733432

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

ARMv7's fmod() returns less accurate results than an integer division.
Since we have integer div on ARMv7s, the results start changing when
we reach DFG.

In this patch, I change our fmod slow path to behave like the fast path
on ARMv7s.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithMod):
(JSC::DFG::fmodAsDFGOperation): Deleted.

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/MathCommon.cpp:

(JSC::isStrictInt32):

  • runtime/MathCommon.h:
18:47 Changeset [200276] by commit-queue@webkit.org
  • 14 edits in trunk/Source

Web Inspector: Issues inspecting the inspector, pausing on breakpoints causes content to not load
https://bugs.webkit.org/show_bug.cgi?id=157198
<rdar://problem/26011049>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-04-29
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/InspectorBackendDispatcher.cpp:

(Inspector::BackendDispatcher::sendResponse):
While auditing the code, add a WTFMove.

Source/WebCore:

No new tests. This only affects inspecting an inspector.

  • inspector/InspectorController.h:
  • inspector/InspectorFrontendClient.h:

(WebCore::InspectorFrontendClient::pagePaused):
(WebCore::InspectorFrontendClient::pageUnpaused):

  • inspector/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::setJavaScriptPaused):
Inform a frontend client if the frontend page itself pauses/unpauses.

Source/WebInspectorUI:

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackendClass.prototype._sendCommandToBackendWithCallback):
(InspectorBackendClass.prototype._sendCommandToBackendExpectingPromise):
While auditing, use simpler check.

  • UserInterface/Proxies/FormatterWorkerProxy.js:

(WebInspector.FormatterWorkerProxy.canFormat): Deleted.
While auditing, remove dead code.

Source/WebKit2:

  • WebProcess/WebPage/WebInspectorFrontendAPIDispatcher.h:
  • WebProcess/WebPage/WebInspectorFrontendAPIDispatcher.cpp:

(WebKit::WebInspectorFrontendAPIDispatcher::reset):
(WebKit::WebInspectorFrontendAPIDispatcher::frontendLoaded):
(WebKit::WebInspectorFrontendAPIDispatcher::suspend):
(WebKit::WebInspectorFrontendAPIDispatcher::unsuspend):
(WebKit::WebInspectorFrontendAPIDispatcher::dispatchCommand):
(WebKit::WebInspectorFrontendAPIDispatcher::dispatchMessageAsync):
(WebKit::WebInspectorFrontendAPIDispatcher::evaluateOrQueueExpression):
(WebKit::WebInspectorFrontendAPIDispatcher::evaluateQueuedExpressions):
Avoid evaluating expressions when the page is paused. Generalize the
message queueing and dispatching for pause/suspend that we already
had for waiting for the frontend page to be loaded.

  • WebProcess/WebPage/WebInspectorUI.h:
  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::pagePaused):
(WebKit::WebInspectorUI::pageUnpaused):
When the frontend page pauses/unpauses, suspend/resume the dispatcher.

18:28 Changeset [200275] by cdumez@apple.com
  • 2 edits in trunk/Source/WebKit2

Remove unnecessary isolated String copying from one of NetworkCache::Key's constructor
https://bugs.webkit.org/show_bug.cgi?id=157207

Reviewed by Antti Koivisto.

Remove unnecessary isolated String copying from one of NetworkCache::Key's
constructor. We are anyway going to create isolated copies if the Key ends
up getting copied.

  • NetworkProcess/cache/NetworkCacheKey.cpp:

(WebKit::NetworkCache::Key::Key):

18:14 Changeset [200274] by bburg@apple.com
  • 2 edits in trunk/Source/WebKit2

Web Automation: performMouseInteraction command computes mouse event coordinates incorrectly
https://bugs.webkit.org/show_bug.cgi?id=157218
<rdar://problem/26018230>

Reviewed by Timothy Hatcher.

This patch fixes two issues: the min/max clamp was in the wrong order,
and the y-value did not account for the window's top content inset.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::performMouseInteraction):

17:52 Changeset [200273] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS] do not exit AirPlay when the screen locks
https://bugs.webkit.org/show_bug.cgi?id=156502
<rdar://problem/24616592>

Reviewed by Dean Jackson

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::pendingActionTimerFired): Use m_isPlayingToWirelessTarget.
(WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsWireless): Ditto.
(WebCore::HTMLMediaElement::wirelessRoutesAvailableDidChange): Set m_isPlayingToWirelessTarget.
(WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Use

m_isPlayingToWirelessTarget.

(WebCore::HTMLMediaElement::isPlayingToWirelessPlaybackTarget): Ditto.
(WebCore::HTMLMediaElement::configureMediaControls): Ditto.
(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction): Add logging.
(WebCore::HTMLMediaElement::purgeBufferedDataIfPossible): Don't tell the media engine to purge

data if it is playing to a wireless target because that will drop the connection.

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

(WebCore::MediaElementSession::playbackPermitted): Add logging.
(WebCore::MediaElementSession::canPlayToWirelessPlaybackTarget): Drive by fix: iOS doesn't

have an explicit playbackTarget, don't test for it.

(WebCore::MediaElementSession::isPlayingToWirelessPlaybackTarget): Ditto.

17:34 Changeset [200272] by mark.lam@apple.com
  • 11 edits
    12 adds in trunk

Make RegExp.prototype.test spec compliant.
https://bugs.webkit.org/show_bug.cgi?id=155862

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • builtins/RegExpPrototype.js:

(intrinsic.RegExpTestIntrinsic.test):

  • create_hash_table:
  • Delete obsoleted code.
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::addToGraph):
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • We now have 2 intrinsics for RegExp.prototype.test: RegExpTestIntrinsic and RegExpTestFastIntrinsic.

RegExpTestIntrinsic maps to the entry at the top of the builtin ES6
RegExp.prototype.test.
RegExpTestFastIntrinsic maps to the fast path in the builtin ES6
RegExp.prototype.test.

Both will end up using the RegExpTest DFG node to implement the fast path
of RegExp.prototype.test. RegExpTestIntrinsic will have some additional checks
before the RegExpTest node. Those checks are for speculating that it is ok for
us to take the fast path.

  • runtime/CommonIdentifiers.h:
  • runtime/Intrinsic.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • Added the regExpTestFast function.
  • Also fixed the parameter length on 2 other functions that were erroneous.
  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::finishCreation):
(JSC::regExpProtoFuncTestFast):
(JSC::regExpProtoFuncTest): Deleted.

  • runtime/RegExpPrototype.h:
  • tests/es6.yaml:

LayoutTests:

  • js/regress/regexp-prototype-test-observable-side-effects-expected.txt: Added.
  • js/regress/regexp-prototype-test-observable-side-effects.html: Added.
  • js/regress/regexp-prototype-test-observable-side-effects2-expected.txt: Added.
  • js/regress/regexp-prototype-test-observable-side-effects2.html: Added.
  • js/regress/script-tests/regexp-prototype-test-observable-side-effects.js: Added.
  • js/regress/script-tests/simple-regexp-test-folding-fail-with-hoisted-regexp.js: Added.
  • js/regress/script-tests/simple-regexp-test-folding-with-hoisted-regexp.js: Added.
  • js/regress/simple-regexp-test-folding-fail-with-hoisted-regexp-expected.txt: Added.
  • js/regress/simple-regexp-test-folding-fail-with-hoisted-regexp.html: Added.
  • js/regress/simple-regexp-test-folding-with-hoisted-regexp-expected.txt: Added.
  • js/regress/simple-regexp-test-folding-with-hoisted-regexp.html: Added.
17:12 Changeset [200271] by cdumez@apple.com
  • 2 edits in trunk/Source/WebCore

Node.nodeName should not be nullable
https://bugs.webkit.org/show_bug.cgi?id=157211

Reviewed by Ryosuke Niwa.

Node.nodeName should not be nullable as per the specification:
https://dom.spec.whatwg.org/#interface-node

Our implementation never returns null anyway. However, having
it as nullable in the IDL means we use jsStringOrNull() instead
of jsStringWithCache(), thus doing an unnecessary null check.

This should not be observable by JS.

  • dom/Node.idl:
17:10 Changeset [200270] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Scrolling in Timelines causes flashing of the DataGrid
https://bugs.webkit.org/show_bug.cgi?id=157212
rdar://problem/25994717

Listen for mousewheel events too so we can update the visible rows sooner.

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid): Call _updateScrollListeners.
(WebInspector.DataGrid.prototype.set inline): Use _updateScrollListeners.
(WebInspector.DataGrid.prototype.set variableHeightRows): Use _updateScrollListeners.
(WebInspector.DataGrid.prototype._updateScrollListeners): Added. Listen for mousewheel too.

16:56 Changeset [200269] by ryanhaddad@apple.com
  • 4 edits in trunk

Unreviewed, rolling out r200150 and r200256.
https://bugs.webkit.org/show_bug.cgi?id=157216

This change introduced flakiness in existing CJK LayoutTests.
Also reverting the change that marked the tests as flaky.
(Requested by ryanhaddad on #webkit).

Reverted changesets:

"Clean up Font::removeFromSystemFallbackCache()"
https://bugs.webkit.org/show_bug.cgi?id=157093
http://trac.webkit.org/changeset/200150

"Marking fast/ruby/ruby-expansion-cjk.html and fast/ruby/ruby-
expansion-cjk-4.html as flaky on Mac"
https://bugs.webkit.org/show_bug.cgi?id=157197
http://trac.webkit.org/changeset/200256

Patch by Commit Queue <commit-queue@webkit.org> on 2016-04-29

16:54 Changeset [200268] by dino@apple.com
  • 4 edits in trunk/Source

RTL <select> popup menu is in the wrong location
https://bugs.webkit.org/show_bug.cgi?id=157159
<rdar://problem/25894451>

Reapply http://trac.webkit.org/changeset/200217
but with changes that will allow it to build on Yosemite.

16:43 Changeset [200267] by ryanhaddad@apple.com
  • 2 edits in trunk/LayoutTests

Change ios-simulator expectation for tests added with r200265 from ImageOnlyFailure to Failure

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
15:40 Changeset [200266] by eric.carlson@apple.com
  • 3 edits in trunk/LayoutTests

[Mac] AirPlay fails if target is set before AVPlayer has been created
https://bugs.webkit.org/show_bug.cgi?id=157147
<rdar://problem/24197592>

Unreviewed, update test so the results are consistent on different machines.

  • media/media-source/media-source-airplay-expected.txt:
  • media/media-source/media-source-airplay.html:
14:48 Changeset [200265] by tonikitoo@webkit.org
  • 5 edits
    4 adds in trunk

<select multiple> padding should react when scrolling
Source/WebCore:

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

Reviewed by Reviewed by Darin Adler.

Tests: fast/forms/listbox-respects-padding-bottom.html

fast/forms/listbox-top-padding-do-not-clip-items.html

Non-dropdown listboxes have support to padding-{top,bottom} implemented similarly
to the border model: the padding area does not move when the listbox' content gets scrolled,
but instead it clips out its content.
This is not consistent with other browsers and is not consistent with the CSS box model.

This in practice, if a <select> has padding-top set, the padding-top area will clip out listbox'
content as one scrolls upwards.
It also means that if padding-bottom is set, when one scrolls all the way to the bottom
of the listbox content, padding-bottom is not respected.

In order to fix these two problems, and make WebKit match Blink with respect to the the way
padding-{top,bottom} are handled, patch adds two class member variables that control the number
of list items (i.e. <option>s) that can be painted over the current listbox' padding area.

In short, depending on the scroll position and the amount of space available in the padding top/bottom
areas, items are painted or not on top of it, mimic'ing the CSS box model behavior of other browsers.

Note that this is specific solution is worth it to pursue on the short/mid term, but a long-term solution
to this problem and many other listbox discrepancies on WebKit's implementation, would be to reimplement
RenderListBox class in terms of RenderLayer. This will be a follow up work.

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::updateFromElement):
(WebCore::RenderListBox::numVisibleItems):
(WebCore::RenderListBox::paintObject):
(WebCore::RenderListBox::scrollToRevealElementAtListIndex):
(WebCore::RenderListBox::listIndexIsVisible):
(WebCore::RenderListBox::maximumNumberOfItemsThatFitInPaddingBottomArea):
(WebCore::RenderListBox::numberOfVisibleItemsInPaddingTop):
(WebCore::RenderListBox::numberOfVisibleItemsInPaddingBottom):
(WebCore::RenderListBox::computeFirstIndexesVisibleInPaddingTopBottomAreas):
(WebCore::RenderListBox::scrollTo):

  • rendering/RenderListBox.h:

LayoutTests:

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

Reviewed by Reviewed by Darin Adler.

  • fast/forms/listbox-respects-padding-bottom-expected.txt: Added.
  • fast/forms/listbox-respects-padding-bottom.html: Added.
  • fast/forms/listbox-top-padding-do-not-clip-items-expected.txt: Added.
  • fast/forms/listbox-top-padding-do-not-clip-items.html: Added.
14:29 Changeset [200264] by eric.carlson@apple.com
  • 12 edits
    2 adds in trunk

[Mac] AirPlay fails if target is set before AVPlayer has been created
https://bugs.webkit.org/show_bug.cgi?id=157147
<rdar://problem/24197592>

Reviewed by Jer Noble.

Source/WebCore:

Test: media/media-source/media-source-airplay.html

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Clear flag before calling

setShouldPlayToPlaybackTarget so it does the necessary setup.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isAvailable): Return false if the mock

MSE source has been registered.

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType): Return 'not supported' if

isAvailable is false.

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): Fail if isAvailable is false.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isCurrentPlaybackTargetWireless): Cleanup.

  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::registered): Global accessor.
(WebCore::MockMediaPlayerMediaSource::isRegistered):
(WebCore::MockMediaPlayerMediaSource::registerMediaEngine): Set registered to true.
(WebCore::MockMediaPlayerMediaSource::setWirelessPlaybackTarget): New, remember the target.
(WebCore::MockMediaPlayerMediaSource::setShouldPlayToPlaybackTarget): New, remember the setting.
(WebCore::MockMediaPlayerMediaSource::isCurrentPlaybackTargetWireless):

  • platform/mock/mediasource/MockMediaPlayerMediaSource.h:
  • testing/Internals.cpp:

(WebCore::Internals::initializeMockMediaSource): Don't disable AVFoundation.

LayoutTests:

  • media/media-source/media-source-airplay-expected.txt: Added.
  • media/media-source/media-source-airplay.html: Added.
  • platform/efl/TestExpectations: Skip Mac-only test.
  • platform/gtk/TestExpectations: Ditto.
  • platform/ios-simulator/TestExpectations: Ditto.
  • platform/mac/TestExpectations: Skipped new tests on older versions of OS X.
  • platform/win/TestExpectations: Skip Mac-only test.
14:17 Changeset [200263] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Extend math-pow-stable-results.js to get more information about the failure

  • tests/stress/math-pow-stable-results.js:
14:08 Changeset [200262] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Jump to Line in auto formatted JavaScript does not work the first time
https://bugs.webkit.org/show_bug.cgi?id=157194
<rdar://problem/26008471>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-04-29
Reviewed by Timothy Hatcher.

When doing asynchronous formatting we set the content of the editor
twice. First to prime the editors back/foward list with the original
content, and then again after we get the formatted content from the
Worker, and then display the content.

The TextEditor attempts to reveal a position when the initial string
has been set. Back when autoformatting was synchronous this was fine.
Asynchronously however, this ends up happening between the original
and formatted value. Also, the TextEditor has no idea that the
SourceCodeTextEditor is going to format / defer displaying the
contents. Add a "defer" property to the TextEditor that the
SourceCodeTextEditor can use in this circumstance.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._populateWithContent):
Avoid revealing a position when setting the original content. We will
be formatting and we will want to reveal the position afterwards.

  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor):
(WebInspector.TextEditor.prototype.set deferReveal):
Provide another reason to defer revealing.

13:33 Changeset [200261] by mmaxfield@apple.com
  • 7 edits
    2 adds in trunk

[RTL Scrollbars] REGRESSION(r200116): Positioned contents can overlap RTL scrollbars
https://bugs.webkit.org/show_bug.cgi?id=157164
<rdar://problem/25993610>

Reviewed by Darin Adler.

Source/WebCore:

There was some code left over from the old implementation of RTL_SCROLLBARS
which had some faulty assumptions about the interaction between direction
and scrollbar placement. In particular, once we began obeying the "dir"
attribute in r200116, these assumptions were no longer valid.

Test: fast/scrolling/rtl-scrollbars-positioned-intersect-scrollbars.html

scrollbars/rtl/div-absolute.html
scrollbars/rtl/div-horizontal.html

  • rendering/InlineFlowBox.h:

(WebCore::InlineFlowBox::layoutOverflowRect):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computeOverflow): Deleted.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::layoutOverflowRectForPropagation):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::computeScrollDimensions):

LayoutTests:

  • TestExpectations:
  • fast/scrolling/rtl-scrollbars-positioned-intersect-scrollbars-expected.html: Added.
  • fast/scrolling/rtl-scrollbars-positioned-intersect-scrollbars.html: Added.
13:29 Changeset [200260] by jdiggs@igalia.com
  • 6 edits in trunk/LayoutTests

[GTK] r65681 broke a couple GTK+ a11y tests
https://bugs.webkit.org/show_bug.cgi?id=44316

Reviewed by Martin Robinson.

The original regression has apparently been fixed, possibly quite some time
ago. Updating both tests and associated expectations to reflect what has
changed over the years. Leaving title-and-alt.html as skipped, but marked
as failing due to a different bug (157187).

  • accessibility/gtk/object-attributes-expected.txt:
  • accessibility/gtk/object-attributes.html:
  • accessibility/gtk/title-and-alt-expected.txt:
  • accessibility/gtk/title-and-alt.html:
  • platform/gtk/TestExpectations:
13:11 Changeset [200259] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Fix a typo in r200255.

  • resources/testharnessreport.js:

(self.testRunner.add_completion_callback):

13:05 Changeset [200258] by n_wang@apple.com
  • 6 edits in trunk

AX: CharacterOffset not working correctly with composed characters and collapsed white spaces
https://bugs.webkit.org/show_bug.cgi?id=157190

Reviewed by Chris Fleizach.

Source/WebCore:

When navigating emoji, next/previous text marker call is only moving by one character. Fixed it by
using the helper function in Position to get the real character count for the composed character sequence.
Also there's another issue with collapsed white spaces, TextIterator emits only one space. So we have to
use the actual space length to create the CharacterOffset in order to generate valid Range object from it.

New test cases in accessibility/text-marker/text-marker-previous-next.html.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::traverseToOffsetInRange):
(WebCore::AXObjectCache::textMarkerDataForNextCharacterOffset):
(WebCore::AXObjectCache::textMarkerDataForPreviousCharacterOffset):
(WebCore::AXObjectCache::nextNode):
(WebCore::AXObjectCache::characterOffsetFromVisiblePosition):
(WebCore::AXObjectCache::nextCharacterOffset):
(WebCore::AXObjectCache::previousCharacterOffset):
(WebCore::AXObjectCache::startCharacterOffsetOfWord):

LayoutTests:

  • accessibility/mac/text-marker-word-nav.html:
  • accessibility/text-marker/text-marker-previous-next-expected.txt:
  • accessibility/text-marker/text-marker-previous-next.html:
13:01 Changeset [200257] by utatane.tea@gmail.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Assertion failure for exception in "prototype" property getter and Reflect.construct
https://bugs.webkit.org/show_bug.cgi?id=157084

Reviewed by Mark Lam.

InternalFunction::createSubclassStrucuture may throw exceptions because it performs Get? to
look up the "prototype" object. The current assertion is invalid.
We also found that Object constructor is not aware of new.target. This is filed[1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=157196

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::createSubclassStructure):

  • tests/stress/create-subclass-structure-may-throw-exception-when-getting-prototype.js: Added.

(shouldThrow):
(bf):

12:58 Changeset [200256] by ryanhaddad@apple.com
  • 2 edits in trunk/LayoutTests

Marking fast/ruby/ruby-expansion-cjk.html and fast/ruby/ruby-expansion-cjk-4.html as flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=157197

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:39 Changeset [200255] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

test harness tests complain about testRunner not being declared inside a browser
https://bugs.webkit.org/show_bug.cgi?id=157056

Reviewed by Alex Christensen.

Don't run the code meant to re-format results for DRT/WTR when testRunner is not defined (i.e. inside a browser).
Also fixed various styling issues with this JavaScript file and removed useless comments.

  • resources/testharnessreport.js:
11:24 Changeset [200254] by jer.noble@apple.com
  • 4 edits
    2 adds in trunk/Source/WebCore

WebPlaybackControlsManager should not be owned by the WebPlaybackSessionInterfaceMac.
https://bugs.webkit.org/show_bug.cgi?id=157155
<rdar://problem/25991724>

Reviewed by Beth Dakin.

Move the WebPlaybackControlsManager class into its own header and implementation files.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mac/WebPlaybackControlsManager.h: Added.
  • platform/mac/WebPlaybackControlsManager.mm: Added.

(-[WebPlaybackControlsManager timing]): Moved from WebPlaybackSessionInterfaceMac.
(-[WebPlaybackControlsManager setTiming:]): Ditto.
(-[WebPlaybackControlsManager seekableTimeRanges]): Ditto.
(-[WebPlaybackControlsManager setSeekableTimeRanges:]): Ditto.
(-[WebPlaybackControlsManager setAudioMediaSelectionOptions:withSelectedIndex:]): Ditto.
(-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:withSelectedIndex:]): Ditto.

  • platform/mac/WebPlaybackSessionInterfaceMac.h:
  • platform/mac/WebPlaybackSessionInterfaceMac.mm:

(WebCore::WebPlaybackSessionInterfaceMac::setPlayBackControlsManager):
(-[WebPlaybackControlsManager initWithWebPlaybackSessionInterfaceMac:]): Deleted.
(-[WebPlaybackControlsManager timing]): Deleted.
(-[WebPlaybackControlsManager setTiming:]): Deleted.
(-[WebPlaybackControlsManager seekableTimeRanges]): Deleted.
(-[WebPlaybackControlsManager setSeekableTimeRanges:]): Deleted.
(-[WebPlaybackControlsManager setAudioMediaSelectionOptions:withSelectedIndex:]): Deleted.
(-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:withSelectedIndex:]): Deleted.
(WebCore::WebPlaybackSessionInterfaceMac::playBackControlsManager): Deleted.

11:23 Changeset [200253] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Add JSC test results in JSON format to a Buildbot log.
https://bugs.webkit.org/show_bug.cgi?id=156920

Patch by Srinivasan Vijayaraghavan <svijayaraghavan@apple.com> on 2016-04-29
Reviewed by Daniel Bates.

Generate JSON results for JSC tests and upload them to the master
using Buildbot's logfiles machinery.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(RunJavaScriptCoreTests): Use --json-output option when invoking the
run-javascriptcore-tests Perl script, and expose this JSON output as a
Buildbot log.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests): Change key names and remove redundant count key.

10:44 Changeset [200252] by ryanhaddad@apple.com
  • 32 edits
    3 deletes in trunk

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

This change broke the Mac CMake build and its LayoutTest is
failing and/or flaky on all platforms (Requested by ryanhaddad
on #webkit).

Reverted changeset:

"Move ResourceTiming behind a runtime flag"
https://bugs.webkit.org/show_bug.cgi?id=157133
http://trac.webkit.org/changeset/200232

Patch by Commit Queue <commit-queue@webkit.org> on 2016-04-29

10:29 Changeset [200251] by adachan@apple.com
  • 2 edits in trunk/Source/WebKit2

Indicate we are processing user gesture when handling messages from WebPlaybackSessionManagerProxy to WebPlaybackSessionManager
https://bugs.webkit.org/show_bug.cgi?id=157151

Reviewed by Jer Noble.

Messages from WebPlaybackSessionManagerProxy to WebPlaybackSessionManager are triggered by
user actions, so add a UserGestureIndicator in the methods that handle those messages.

  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionManager::play):
(WebKit::WebPlaybackSessionManager::pause):
(WebKit::WebPlaybackSessionManager::togglePlayState):
(WebKit::WebPlaybackSessionManager::beginScrubbing):
(WebKit::WebPlaybackSessionManager::endScrubbing):
(WebKit::WebPlaybackSessionManager::seekToTime):
(WebKit::WebPlaybackSessionManager::fastSeek):
(WebKit::WebPlaybackSessionManager::beginScanningForward):
(WebKit::WebPlaybackSessionManager::beginScanningBackward):
(WebKit::WebPlaybackSessionManager::endScanning):
(WebKit::WebPlaybackSessionManager::selectAudioMediaOption):
(WebKit::WebPlaybackSessionManager::selectLegibleMediaOption):

10:20 Changeset [200250] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Fix build failure introduced by r199738
https://bugs.webkit.org/show_bug.cgi?id=157182

Patch by Jeremy Huddleston Sequoia <jeremyhu@apple.com> on 2016-04-29
Reviewed by Alex Christensen.

  • CMakeLists.txt:
10:05 Changeset [200249] by beidson@apple.com
  • 6 edits in trunk/Source

Add a default ".isolatedCopy()" specialization to CrossThreadCopier, and other small cleanup.
https://bugs.webkit.org/show_bug.cgi?id=157185

Reviewed by Anders Carlsson.

Source/WebCore:

No new tests (Code cleanup, no change in behavior).

  • platform/CrossThreadCopier.cpp:

(WebCore::IndexedDB::TransactionMode>::copy): Deleted.
(WebCore::IndexedDB::CursorDirection>::copy): Deleted.
(WebCore::IndexedDB::CursorType>::copy): Deleted.
(WebCore::IDBGetResult>::copy): Deleted.
(WebCore::IDBKeyData>::copy): Deleted.
(WebCore::IDBKeyRangeData>::copy): Deleted.
(WebCore::IDBDatabaseInfo>::copy): Deleted.
(WebCore::IDBDatabaseIdentifier>::copy): Deleted.
(WebCore::IDBTransactionInfo>::copy): Deleted.
(WebCore::IDBResourceIdentifier>::copy): Deleted.
(WebCore::IDBError>::copy): Deleted.
(WebCore::IDBObjectStoreInfo>::copy): Deleted.
(WebCore::IDBIndexInfo>::copy): Deleted.
(WebCore::IDBCursorInfo>::copy): Deleted.
(WebCore::IDBValue>::copy): Deleted.

  • platform/CrossThreadCopier.h:

(WebCore::AllowCrossThreadAccessWrapper::AllowCrossThreadAccessWrapper): Deleted dead code.
(WebCore::AllowCrossThreadAccessWrapper::value): Deleted dead code.
(WebCore::AllowCrossThreadAccess): Deleted dead code.
(WebCore::AllowAccessLaterWrapper::AllowAccessLaterWrapper): Deleted dead code.
(WebCore::AllowAccessLaterWrapper::value): Deleted dead code.
(WebCore::AllowAccessLater): Deleted dead code.

Source/WebKit2:

  • Shared/WebCrossThreadCopier.cpp:

(WebCore::Vector<char>>::copy): reserveInitialCapacity() before creating the copy.
(WebCore::Vector<int64_t>>::copy): Ditto.
(WebCore::Vector<uint8_t>>::copy): Ditto.
(WebCore::Vector<Vector<IDBKeyData>>>::copy): Deleted dead code.

  • Shared/WebCrossThreadCopier.h:
09:54 Changeset [200248] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed gardening: update expectations after r200234
https://bugs.webkit.org/show_bug.cgi?id=157181

Unreviewed gardening.

Patch by Miguel Gomez <magomez@igalia.com> on 2016-04-29

  • platform/gtk/TestExpectations:
09:54 Changeset [200247] by simon.fraser@apple.com
  • 4 edits
    2 adds in trunk

Wheel Event Not Fired For body,html { height:100% }
https://bugs.webkit.org/show_bug.cgi?id=148450

Reviewed by Brent Fulgham.

Source/WebCore:

EventHandler::handleWheelEvent() didn't pass the Active flag in the HitTestRequest,
which causes code in RenderLayer::hitTest() to fail to fall back to returning the
root layer if no other element is hit. "Active" is in the default flags,
so just create the HitTestRequest with the default flags.

Test: fast/events/wheel-event-outside-body.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEvent):

LayoutTests:

Testcase, skipped on iOS which doesn't support wheel events.

  • fast/events/wheel-event-outside-body-expected.txt: Added.
  • fast/events/wheel-event-outside-body.html: Added.
  • platform/ios-simulator/TestExpectations:
09:51 Changeset [200246] by cdumez@apple.com
  • 31 edits in trunk

[Web IDL] Specify default values for optional parameters of wrapper types
https://bugs.webkit.org/show_bug.cgi?id=157161

Reviewed by Darin Adler.

Source/WebCore:

Specify default values for optional parameters of wrapper types.

  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::count): Deleted.

  • Modules/indexeddb/IDBIndex.h:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::count): Deleted.

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::createDataChannel): Deleted.

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(WillConvertUndefinedToDefaultParameterValue):
Optimization to avoid generating a ternary if the default
value of a wrapper type parameter is null, since undefined
will already convert to null for those.

(GenerateParametersCheck):
Use null as implicit default value for nullable parameters, given that Web IDL
converts undefined to null for such parameters:
http://heycam.github.io/webidl/#es-nullable-type

(CanUseWTFOptionalForParameter):
Drop the check for wrapper types.

  • bindings/scripts/test/*:

Improve bindings tests coverage / rebaseline.

  • css/MediaQueryList.idl:
  • css/MediaQueryListListener.idl:
  • dom/Document.idl:
  • html/canvas/DOMPath.idl:

The previous syntax was working because the bindings was generating an early
return if addPath() was called with only one parameter, calling the
implementation method with only 1 parameter. However, since we no longer
generate early returns for optional parameters, we now have to use a slightly
different syntax to maintain the previous behavior. This is only temporary,
I just did not want to deal with SVG tear off types in this patch since they
are very special in the bindings generator.

  • page/DOMSelection.idl:

The node parameter to extend() was confusingly marked as optional. However,
when omitted, it would get translated into null, which would throw an
exception since the type is not nullable. Since the specification says 'node'
should not be optional, and since there is no behavior change, I dropped
the 'optional'. The only web-exposed difference is the message provided with
the TypeError that is thrown when called without enough parameters. The new
message is more accurate (see rebaselined layout test).

  • svg/SVGMarkerElement.idl:

The parameter for setOrientToAngle() was confusingly marked as optional and
having a default value of null. However, the bindings would throw a TypeError
if called with no parameters or when calling it with null. This is because
this is an SVG Tear off type and the bindings always throw when passing null
for an SVG Tear off type. I therefore updated the IDL to reflect the actual
behavior (no actual behavior change). The new IDL also now matches the spec:
http://www.w3.org/TR/SVG2/painting.html#InterfaceSVGMarkerElement

  • svg/SVGSVGElement.idl:

Same comments as for SVGMarkerElement. The new IDL matches the actual
behavior and is closer to the specification. I added FIXME comments for when
it does not match the specification:
http://www.w3.org/TR/SVG2/struct.html#InterfaceSVGSVGElement
I did not change web-exposed behavior in this patch.

  • svg/SVGTextContentElement.idl:

Same as above. No actual behavior change.

  • testing/Internals.cpp:
  • testing/Internals.h:
  • testing/Internals.idl:
  • xml/XPathEvaluator.idl:

LayoutTests:

Rebaseline as a different exception message is now given when calling
Selection.extend() without enough parameters.

  • editing/selection/extend-expected.txt:
09:44 Changeset [200245] by jdiggs@igalia.com
  • 6 edits
    1 add in trunk

[ATK] Expose the value of aria-roledescription via an AtkObject attribute
https://bugs.webkit.org/show_bug.cgi?id=146719

Reviewed by Chris Fleizach.

Source/WebCore:

The author-provided value is now exposed via an AtkObject attribute.

Implementation is already covered by aria-roledescription.html. The ATK
expectations are slightly different than those for AX API because falling
back on the default role description is done by assistive technologies.
That this fall back is needed is identified by the lack of an author-
provided value. Thus we do not wish to expose the default role description
in our implementation.

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(webkitAccessibleGetAttributes):

Tools:

Implement roleDescription() so that the implementation can be tested.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::roleDescription):

LayoutTests:

Platform-specific expectations are needed because falling back on the default
role description is done by assistive technologies. That this fall back is needed
is identified by the lack of an author-provided value. Thus we do not wish to
expose the default role description in our implementation.

  • platform/gtk/TestExpectations: Unskipped the failing test.
  • platform/gtk/accessibility/aria-roledescription-expected.txt: Added.
09:39 Changeset [200244] by jdiggs@igalia.com
  • 4 edits in trunk

[ATK] accessibility/aria-current-global-attribute.html has been failed since r198303
https://bugs.webkit.org/show_bug.cgi?id=155935

Reviewed by Chris Fleizach.

Source/WebCore:

In ATK, the text of span elements is typically exposed through the parent
element, unless the span has some attribute requiring inclusion in the
accessibility tree. We were not checking for the presence of global ARIA
attributes (including aria-current), other than describedby and role.
The fix is to also check AccessibilityObject::supportsARIAAttributes().

No new tests. This issue was caught as a result of a failing test.

  • accessibility/atk/AccessibilityObjectAtk.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):

LayoutTests:

  • platform/efl/TestExpectations: Unskipped the failing test.
09:35 Changeset [200243] by ryanhaddad@apple.com
  • 4 edits in trunk/Source

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

This change broke the Yosemite build. (Requested by ryanhaddad
on #webkit).

Reverted changeset:

"RTL <select> popup menu is in the wrong location"
https://bugs.webkit.org/show_bug.cgi?id=157159
http://trac.webkit.org/changeset/200217

Patch by Commit Queue <commit-queue@webkit.org> on 2016-04-29

09:26 WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
09:13 WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
09:08 Changeset [200242] by cdumez@apple.com
  • 14 edits in trunk/Source/WebCore

[Web IDL] Drop 'any' type handling from CanUseWTFOptionalForParameter()
https://bugs.webkit.org/show_bug.cgi?id=157152

Reviewed by Darin Adler.

Drop 'any' type handling from CanUseWTFOptionalForParameter(). Always
use undefined as default value for parameters of type 'any' unless
specified otherwise.

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::continueFunction): Deleted.

  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::add): Deleted.
(WebCore::IDBObjectStore::putOrAdd): Deleted.

  • Modules/indexeddb/IDBObjectStore.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(WillConvertUndefinedToDefaultParameterValue):
Fix optimization for optional DOMString attributes whose default value
is the string "undefined". I also added bindings test coverage for it.

(GenerateParametersCheck):
(CanUseWTFOptionalForParameter): Deleted.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_method_with_optional_string_is_undefined):
(webkit_dom_test_obj_method_with_optional_any):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAny):

  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:

(-[DOMTestObj methodWithOptionalStringIsUndefined:]):
(-[DOMTestObj methodWithOptionalAny:]):

  • bindings/scripts/test/TestObj.idl:
  • testing/Internals.h:
06:10 Changeset [200241] by jdiggs@igalia.com
  • 2 edits
    2 adds in trunk/LayoutTests

[ATK] accessibility/double-nested-inline-element-missing-from-tree.html has been failed since r198219
https://bugs.webkit.org/show_bug.cgi?id=155939

Reviewed by Darin Adler.

Platform-specific expectations were needed because the ATK accessibility tree folds
certain elements, including spans, into the parent element.

  • platform/efl/TestExpectations: Unskipped the failing test.
  • platform/efl/accessibility/double-nested-inline-element-missing-from-tree-expected.txt: Added.
  • platform/gtk/accessibility/double-nested-inline-element-missing-from-tree-expected.txt: Added.
06:08 Changeset [200240] by jdiggs@igalia.com
  • 7 edits in trunk

AX: [ATK] Expose elements with ARIA's "text" role
https://bugs.webkit.org/show_bug.cgi?id=157160

Reviewed by Chris Fleizach.

Source/WebCore:

WebCore Accessibility's StaticTextRole is used for exposed RenderText
objects and for the ARIA "text" role. The former should be folded into
the parent element; the latter should not be, but was. Now we check to
see which type we have when building the accessibility tree. Also map
the "text" role to ATK_ROLE_STATIC.

We already have sufficient test coverage. Three previously-failing tests
are now passing.

  • accessibility/atk/AccessibilityObjectAtk.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(atkRole):

LayoutTests:

  • accessibility/aria-text-role.html: Modified to do platform-specific role checks.
  • platform/gtk/TestExpectations: Unskipped three previously-failing tests.
  • platform/gtk/accessibility/roles-computedRoleString-expected.txt: Updated for new behavior.
04:36 Changeset [200239] by utatane.tea@gmail.com
  • 2 edits
    2 adds in trunk/Source/JavaScriptCore

[ES6] RegExp.prototype.@@replace should use @isObject instead of instanceof for object guard
https://bugs.webkit.org/show_bug.cgi?id=157124

Reviewed by Keith Miller.

Use @isObject instead of instanceof @Object.
The instanceof check is not enough to check Object Type.
This fix itself is the same to r199647, and this patch is for RegExp.prototype.@@replace.

  • builtins/RegExpPrototype.js:

(replace):

  • tests/stress/regexp-replace-in-other-realm-should-work.js: Added.

(shouldBe):

  • tests/stress/regexp-replace-should-work-with-objects-not-inheriting-object-prototype.js: Added.

(shouldBe):
(regexp.exec):

04:27 Changeset [200238] by youenn.fablet@crf.canon.fr
  • 164 edits in trunk/LayoutTests/imported/w3c

Regnerate w3c-import.log files after r200109
https://bugs.webkit.org/show_bug.cgi?id=157171

Unreviewed.

Changing only log files.

  • web-platform-tests/XMLHttpRequest/resources/auth1/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/resources/auth2/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/resources/auth3/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/resources/auth4/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/resources/auth5/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/resources/auth6/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/resources/nocors/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/resources/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/w3c-import.log:
  • web-platform-tests/common/w3c-import.log:
  • web-platform-tests/dom/collections/w3c-import.log:
  • web-platform-tests/dom/events/w3c-import.log:
  • web-platform-tests/dom/lists/w3c-import.log:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/w3c-import.log:
  • web-platform-tests/dom/nodes/Document-contentType/resources/w3c-import.log:
  • web-platform-tests/dom/nodes/Document-contentType/support/w3c-import.log:
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/w3c-import.log:
  • web-platform-tests/dom/nodes/w3c-import.log:
  • web-platform-tests/dom/ranges/w3c-import.log:
  • web-platform-tests/dom/traversal/w3c-import.log:
  • web-platform-tests/dom/w3c-import.log:
  • web-platform-tests/domparsing/w3c-import.log:
  • web-platform-tests/fetch/api/basic/w3c-import.log:
  • web-platform-tests/fetch/api/cors/w3c-import.log:
  • web-platform-tests/fetch/api/credentials/w3c-import.log:
  • web-platform-tests/fetch/api/headers/w3c-import.log:
  • web-platform-tests/fetch/api/policies/w3c-import.log:
  • web-platform-tests/fetch/api/redirect/w3c-import.log:
  • web-platform-tests/fetch/api/request/w3c-import.log:
  • web-platform-tests/fetch/api/resources/w3c-import.log:
  • web-platform-tests/fetch/api/response/w3c-import.log:
  • web-platform-tests/fetch/nosniff/resources/w3c-import.log:
  • web-platform-tests/fetch/nosniff/w3c-import.log:
  • web-platform-tests/fetch/w3c-import.log:
  • web-platform-tests/fonts/w3c-import.log:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/w3c-import.log:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/w3c-import.log:
  • web-platform-tests/html/dom/documents/resource-metadata-management/w3c-import.log:
  • web-platform-tests/html/dom/dynamic-markup-insertion/closing-the-input-stream/w3c-import.log:
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/w3c-import.log:
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/w3c-import.log:
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/w3c-import.log:
  • web-platform-tests/html/dom/elements/content-models/w3c-import.log:
  • web-platform-tests/html/dom/elements/element-definitions/w3c-import.log:
  • web-platform-tests/html/dom/elements/elements-in-the-dom/w3c-import.log:
  • web-platform-tests/html/dom/elements/global-attributes/w3c-import.log:
  • web-platform-tests/html/dom/elements/wai-aria/w3c-import.log:
  • web-platform-tests/html/dom/w3c-import.log:
  • web-platform-tests/html/resources/w3c-import.log:
  • web-platform-tests/html/semantics/disabled-elements/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/styling/support/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/styling/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/the-base-element/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/the-style-element/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/the-title-element/w3c-import.log:
  • web-platform-tests/html/semantics/edits/the-del-element/w3c-import.log:
  • web-platform-tests/html/semantics/edits/the-ins-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/image-maps/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLMediaElement/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCueList/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackList/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TrackEvent/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/offsets-into-the-media-resource/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/playing-the-media-resource/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/user-interface/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-area-element/support/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-area-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-audio-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/current-pixel-density/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-video-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/w3c-import.log:
  • web-platform-tests/html/semantics/forms/constraints/support/w3c-import.log:
  • web-platform-tests/html/semantics/forms/constraints/w3c-import.log:
  • web-platform-tests/html/semantics/forms/form-control-infrastructure/w3c-import.log:
  • web-platform-tests/html/semantics/forms/form-submission-0/w3c-import.log:
  • web-platform-tests/html/semantics/forms/introduction-1/w3c-import.log:
  • web-platform-tests/html/semantics/forms/resetting-a-form/w3c-import.log:
  • web-platform-tests/html/semantics/forms/textfieldselection/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-button-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-datalist-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-fieldset-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-form-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-input-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-label-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-legend-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-meter-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-option-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-output-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-progress-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-select-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-textarea-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-dd-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-div-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-dl-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-dt-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-figcaption-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-figure-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-hr-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-li-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-p-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-pre-element/w3c-import.log:
  • web-platform-tests/html/semantics/grouping-content/the-ul-element/w3c-import.log:
  • web-platform-tests/html/semantics/interactive-elements/commands/w3c-import.log:
  • web-platform-tests/html/semantics/interactive-elements/the-details-element/w3c-import.log:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
  • web-platform-tests/html/semantics/interactive-elements/the-menu-element/w3c-import.log:
  • web-platform-tests/html/semantics/links/downloading-resources/w3c-import.log:
  • web-platform-tests/html/semantics/links/linktypes/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log:
  • web-platform-tests/html/semantics/sections/headings-and-sections/w3c-import.log:
  • web-platform-tests/html/semantics/sections/the-h1-h2-h3-h4-h5-and-h6-elements/w3c-import.log:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/attributes-common-to-td-and-th-elements/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/processing-model-1/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/the-caption-element/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/the-table-element/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/the-tbody-element/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/the-tfoot-element/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/the-thead-element/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/the-tr-element/w3c-import.log:
  • web-platform-tests/html/semantics/tabular-data/w3c-import.log:
  • web-platform-tests/html/semantics/text-level-semantics/the-a-element/w3c-import.log:
  • web-platform-tests/html/semantics/text-level-semantics/the-bdi-element/w3c-import.log:
  • web-platform-tests/html/semantics/text-level-semantics/the-bdo-element/w3c-import.log:
  • web-platform-tests/html/semantics/text-level-semantics/the-br-element/w3c-import.log:
  • web-platform-tests/html/semantics/text-level-semantics/the-time-element/w3c-import.log:
  • web-platform-tests/html/semantics/text-level-semantics/the-wbr-element/w3c-import.log:
  • web-platform-tests/html/semantics/w3c-import.log:
  • web-platform-tests/html/w3c-import.log:
  • web-platform-tests/images/w3c-import.log:
  • web-platform-tests/media/w3c-import.log:
  • web-platform-tests/service-workers/cache-storage/resources/w3c-import.log:
  • web-platform-tests/service-workers/cache-storage/script-tests/w3c-import.log:
  • web-platform-tests/service-workers/cache-storage/serviceworker/w3c-import.log:
  • web-platform-tests/service-workers/cache-storage/w3c-import.log:
  • web-platform-tests/service-workers/cache-storage/window/w3c-import.log:
  • web-platform-tests/service-workers/cache-storage/worker/w3c-import.log:
  • web-platform-tests/service-workers/service-workers/resources/w3c-import.log:
  • web-platform-tests/service-workers/tools/w3c-import.log:
  • web-platform-tests/service-workers/w3c-import.log:
  • web-platform-tests/streams/readable-streams/w3c-import.log:
  • web-platform-tests/streams/resources/w3c-import.log:
  • web-platform-tests/streams/w3c-import.log:
  • web-platform-tests/w3c-import.log:
02:57 Changeset [200237] by carlosgc@webkit.org
  • 7 edits in trunk/Source/WebCore

[FreeType] ASSERTION FAILED: !lookupForWriting(Extractor::extract(entry)).second in FontCache::getVerticalData()
https://bugs.webkit.org/show_bug.cgi?id=157132

Reviewed by Darin Adler.

I've noticed that some tests fail randomly in the GTK+ debug bot due to an assertion in HashMap when getting
vertical data from the FontCache. I don't know exactly what's wrong, but looks like a problem with the
FontVerticalDataCache hash traits implementation. Looking at the code, I've realized that we could simplify
everything by reusing the FontDataCache hash and traits, since we are actually using the
FontPlatformData::hash() in the end in both cases. Also, I don't see why we need to get the vertical data from
the FontPlatformData while it's actually cached by the font cache. We could just use the FontCache directly
passing only the FontPlatformData. These changes seem to fix the crashes and make the code a lot simpler.

  • platform/graphics/Font.cpp:

(WebCore::Font::Font): Use FontCache::verticalData().

  • platform/graphics/FontCache.cpp:

(WebCore::fontVerticalDataCache):
(WebCore::FontCache::verticalData):
(WebCore::FontCache::purgeInactiveFontData): Also remove the cached vertical data when removing a font.
(WebCore::FontCache::invalidate): Clear also the vertical data.

  • platform/graphics/FontCache.h:
  • platform/graphics/FontPlatformData.h:
  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::openTypeTable): Deleted.

  • platform/graphics/opentype/OpenTypeVerticalData.h: Remove the m_inFontCache member that is now unused.
01:29 Changeset [200236] by youenn.fablet@crf.canon.fr
  • 3 edits in trunk/Source/WebCore

Remove UsePointersEvenForNonNullableObjectArguments keyword
https://bugs.webkit.org/show_bug.cgi?id=156844

Reviewed by Darin Adler.

No change of behavior.

  • bindings/scripts/CodeGenerator.pm:

(ShouldPassWrapperByReference): Removed UsePointersEvenForNonNullableObjectArguments support.

  • bindings/scripts/IDLAttributes.txt: Removed UsePointersEvenForNonNullableObjectArguments.
01:15 Changeset [200235] by youenn.fablet@crf.canon.fr
  • 7 edits in trunk

FetchResponse should return a ReadableStream even if disturbed
https://bugs.webkit.org/show_bug.cgi?id=156911

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/response/response-stream-disturbed-5-expected.txt: Rebasing test.

Source/WebCore:

Covered by rebased test.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::createReadableStreamSource): Asserting in case response is disturbed.

  • bindings/js/JSFetchResponseCustom.cpp:

(WebCore::JSFetchResponse::body): Creating a locked empty readable stream if response is disturbed.

  • bindings/js/ReadableStreamController.cpp:

(WebCore::createReadableStream): Constructing a readable stream even if source is null.
(WebCore::getReadableStreamReader): Retrieving the reader from a readable stream. Stream must not be locked.

  • bindings/js/ReadableStreamController.h:
01:09 Changeset [200234] by rniwa@webkit.org
  • 2 edits
    29 moves
    6 adds
    1 delete in trunk/LayoutTests

Import W3C CSS WG tests for shadow DOM
https://bugs.webkit.org/show_bug.cgi?id=157063

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Imported CSS WG's Scoping Level 1 tests from https://github.com/w3c/csswg-test
as of b2daa426addd5ccb8e9ce1c5d800f9d82603f1ec. Most of these tests are actually ours
except shadow-cascade-order-001.html.

  • csswg-test: Added.
  • csswg-test/css-scoping-1: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-before-after-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-before-after.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-rules-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-rules.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-host-functional-rule-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-host-functional-rule.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-host-rule-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-host-rule.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-host-with-before-after-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-host-with-before-after.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-invisible-slot-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-invisible-slot.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-root-hides-children-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-root-hides-children.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slot-display-override-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slot-display-override.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slot-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slot-fallback-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slot-fallback.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slot.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slotted-nested-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slotted-nested.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slotted-rule-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-slotted-rule.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-with-outside-rules-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-with-outside-rules.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-with-rules-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-with-rules-no-style-leak-expected.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-with-rules-no-style-leak.html: Added.
  • csswg-test/css-scoping-1/css-scoping-shadow-with-rules.html: Added.
  • csswg-test/css-scoping-1/shadow-cascade-order-001-expected.txt: Added.
  • csswg-test/css-scoping-1/shadow-cascade-order-001.html: Added.
  • csswg-test/css-scoping-1/w3c-import.log: Added.

LayoutTests:

Remove tests that have been upstreamed and imported under imported/w3c/csswg-test/css-scoping-1.

  • fast/shadow-dom/css-scoping-shadow-assigned-node-with-before-after-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-assigned-node-with-before-after.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-assigned-node-with-rules-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-assigned-node-with-rules.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-host-functional-rule-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-host-functional-rule.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-host-rule-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-host-rule.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-host-with-before-after-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-host-with-before-after.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-invisible-slot-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-invisible-slot.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-root-hides-children-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-root-hides-children.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slot-display-override-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slot-display-override.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slot-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slot-fallback-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slot-fallback.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slot.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slotted-nested-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slotted-nested.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slotted-rule-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-slotted-rule.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-with-outside-rules-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-with-outside-rules.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-with-rules-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-with-rules-no-style-leak-expected.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-with-rules-no-style-leak.html: Removed.
  • fast/shadow-dom/css-scoping-shadow-with-rules.html: Removed.
00:46 Changeset [200233] by csaavedra@igalia.com
  • 2 edits
    2 copies
    1 add
    2 deletes in trunk/Source/WebKit2

[GTK] Move WK2 shareable code out from gtk directories
https://bugs.webkit.org/show_bug.cgi?id=157135

Reviewed by Darin Adler.

Both NetworkProcessMain and InjectedBundle can go out from their respective gtk directories.

  • NetworkProcess/gtk/NetworkProcessMainGtk.cpp:

(WebKit::NetworkProcessMainUnix): Deleted.

  • NetworkProcess/soup/NetworkProcessMainSoup.cpp: Renamed from Source/WebKit2/NetworkProcess/gtk/NetworkProcessMainGtk.cpp.

(WebKit::NetworkProcessMainUnix):

  • PlatformGTK.cmake: Update.
  • WebProcess/InjectedBundle/glib/InjectedBundleGlib.cpp: Renamed from Source/WebKit2/WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp.

(WebKit::InjectedBundle::initialize):
(WebKit::InjectedBundle::setBundleParameter):
(WebKit::InjectedBundle::setBundleParameters):

  • WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp:

(WebKit::InjectedBundle::initialize): Deleted.
(WebKit::InjectedBundle::setBundleParameter): Deleted.
(WebKit::InjectedBundle::setBundleParameters): Deleted.

00:33 Changeset [200232] by yoav@yoav.ws
  • 32 edits
    1 copy
    4 adds in trunk

Move ResourceTiming behind a runtime flag
https://bugs.webkit.org/show_bug.cgi?id=157133

Reviewed by Alex Christensen.

.:

  • Source/cmake/WebKitFeatures.cmake: Remove the PERFORMANCE_TIMELINE build flag.

Source/JavaScriptCore:

  • runtime/CommonIdentifiers.h: Added PerformanceEntry, PerformanceEntryList and PerformanceResourceTiming as property names.

Source/WebCore:

Move the ResourceTiming API from being behind a build time flag to be behind an
off-by-default runtime flag, that can be turned on using internals.

Tests: fast/dom/Window/window-properties-performance-resource-timing.html

http/tests/performance/performance-resource-timing-entries.html

  • DerivedSources.make: Added idl files for PerformanceEntry, PerformanceEntryList and PerformanceResourceTiming.
  • WebCore.xcodeproj/project.pbxproj: Added the various Performance* files to the project.
  • bindings/generic/RuntimeEnabledFeatures.cpp: Added ResourceTiming as a runtime flag.

(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):

  • bindings/generic/RuntimeEnabledFeatures.h: Added ResourceTiming as a runtime flag.

(WebCore::RuntimeEnabledFeatures::setResourceTimingEnabled):
(WebCore::RuntimeEnabledFeatures::resourceTimingEnabled):

  • bindings/js/JSPerformanceEntryCustom.cpp: Removed #if for ResourceTiming. Added build flag around UserTiming related h files.

(WebCore::toJS): Deleted.

  • dom/EventNames.h: Renamed webkitresourcetimingbufferfull to resourcetimingbufferfull.
  • loader/DocumentThreadableLoader.cpp: Replace #if for ResourceTiming with runtime flag.

(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/ResourceLoadNotifier.cpp: Replace #if for ResourceTiming with runtime flag.

(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):

  • loader/cache/CachedResourceLoader.cpp: Replace #if for ResourceTiming with runtime flag.

(WebCore::CachedResourceLoader::revalidateResource):
(WebCore::CachedResourceLoader::loadResource):
(WebCore::CachedResourceLoader::storeResourceTimingInitiatorInformation):
(WebCore::CachedResourceLoader::loadDone):

  • loader/cache/CachedResourceLoader.h: Remove #if for ResourceTiming.
  • page/Performance.cpp: Remove #if for ResourceTiming.

(WebCore::Performance::Performance): Removed #if for ResourceTiming related initialization.
(WebCore::Performance::webkitGetEntries): Renamed to getEntries.
(WebCore::Performance::webkitGetEntriesByType): Renamed to getEntriesByType.
(WebCore::Performance::webkitGetEntriesByName): Renamed to getEntriesByName.

  • page/Performance.h: Remove #if for ResourceTiming.
  • page/Performance.idl: Replace #if for ResourceTiming with runtime flag.
  • page/PerformanceEntry.cpp: Remove the PERFORMANCE_TIMELINE build flag.
  • page/PerformanceEntry.h: Remove the PERFORMANCE_TIMELINE build flag.
  • page/PerformanceEntry.idl: Replace the PERFORMANCE_TIMELINE build flag with runtime flag.
  • page/PerformanceEntryList.cpp: Remove the PERFORMANCE_TIMELINE build flag.
  • page/PerformanceEntryList.h: Remove the PERFORMANCE_TIMELINE build flag.
  • page/PerformanceEntryList.idl: Replace the PERFORMANCE_TIMELINE build flag with runtime flag.
  • page/PerformanceResourceTiming.cpp: Remove the RESOURCE_TIMING build flag.
  • page/PerformanceResourceTiming.h: Remove the RESOURCE_TIMING build flag.
  • page/PerformanceResourceTiming.idl: Replace the RESOURCE_TIMING build flag with runtime flag.
  • testing/Internals.cpp: Add a method that enables ResourceTiming.

(WebCore::Internals::setResourceTimingSupport):

  • testing/Internals.h: Add a method that enables ResourceTiming.
  • testing/Internals.idl: Add a method that enables ResourceTiming.

LayoutTests:

Added tests that make sure ResourceTiming APIs are exposed and that resources
show up as entries in the performance timeline.

  • fast/dom/Window/window-properties-performance-resource-timing-expected.txt: Added.
  • fast/dom/Window/window-properties-performance-resource-timing.html: Added.
  • fast/dom/Window/window-properties-performance.html: Removed ";".
  • http/tests/performance/performance-resource-timing-entries-expected.txt: Added.
  • http/tests/performance/performance-resource-timing-entries.html: Added.
00:18 Changeset [200231] by youenn.fablet@crf.canon.fr
  • 21 edits
    2 adds in trunk

Drop [UsePointersEvenForNonNullableObjectArguments] from MediaStream interfaces
https://bugs.webkit.org/show_bug.cgi?id=156905

Reviewed by Darin Adler.

Source/WebCore:

Removing UsePointersEvenForNonNullableObjectArguments from MediaStream, RTCPeerConnection and RTCRtpSender.
Updating methods to take references and making some related refactoring.

Test: fast/mediastream/MediaStream-add-remove-null-undefined-tracks.html
Changes also covered by updated tests.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::createOfferTask):

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::create):
(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::removeTrack):
(WebCore::MediaStream::didAddTrack):
(WebCore::MediaStream::didRemoveTrack):
(WebCore::MediaStream::internalAddTrack):
(WebCore::MediaStream::internalRemoveTrack):

  • Modules/mediastream/MediaStream.h:
  • Modules/mediastream/MediaStream.idl:
  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::send):

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

(WebCore::RTCPeerConnection::addTrack):
(WebCore::RTCPeerConnection::removeTrack):
(WebCore::RTCPeerConnection::queuedSetLocalDescription):
(WebCore::RTCPeerConnection::queuedSetRemoteDescription):
(WebCore::RTCPeerConnection::queuedAddIceCandidate):
(WebCore::RTCPeerConnection::privateGetStats):
(WebCore::RTCPeerConnection::queuedCreateOffer): Deleted.
(WebCore::RTCPeerConnection::localDescription): Deleted.
(WebCore::RTCPeerConnection::currentLocalDescription): Deleted.
(WebCore::RTCPeerConnection::remoteDescription): Deleted.
(WebCore::RTCPeerConnection::currentRemoteDescription): Deleted.
(WebCore::RTCPeerConnection::signalingState): Deleted.
(WebCore::RTCPeerConnection::createDataChannel): Deleted.
(WebCore::RTCPeerConnection::close): Deleted.

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCRtpReceiver.cpp:

(WebCore::RTCRtpReceiver::RTCRtpReceiver):

  • Modules/mediastream/RTCRtpReceiver.h:

(WebCore::RTCRtpReceiver::create):

  • Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::RTCRtpSender):
(WebCore::RTCRtpSender::replaceTrack):

  • Modules/mediastream/RTCRtpSender.h:

(WebCore::RTCRtpSender::create):

  • Modules/mediastream/RTCRtpSender.idl:
  • Modules/mediastream/RTCRtpSenderReceiverBase.h:

(WebCore::RTCRtpSenderReceiverBase::track):
(WebCore::RTCRtpSenderReceiverBase::RTCRtpSenderReceiverBase):

LayoutTests:

  • fast/mediastream/MediaStream-add-remove-null-undefined-tracks-expected.txt: Added.
  • fast/mediastream/MediaStream-add-remove-null-undefined-tracks.html: Added.
  • fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt: Rebasing.
  • fast/mediastream/RTCPeerConnection-add-removeTrack.html: Adding null/undefined tests for addTrack/removeTrack.
  • fast/mediastream/RTCPeerConnection-datachannel.html: Adding test for send() method.

Test expectation is not rebased as test is timing out and marked as skip.

04/28/16:

23:04 Changeset [200230] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove extraneous space characters from parameter list for RenderListBox::paintItem()
that were added in r200190 (https://bugs.webkit.org/show_bug.cgi?id=157117).

  • rendering/RenderListBox.h:
22:23 Changeset [200229] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: FormatterWorker fails to find "External/Esprima.js" in Production builds
https://bugs.webkit.org/show_bug.cgi?id=157162
<rdar://problem/25996556>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-04-28
Reviewed by Timothy Hatcher.

Workers have relative include paths. FormatterWorker has an includes
that looks like:

importScripts(...[

"../../External/Esprima/esprima.js",
...

]);

In optimized builds (Production) the esprima resources are combined
and moved out of an External directory to "Esprima.js". We need to
update the path of this include in optimized builds.

This adds a script to do some basic rewrites of paths. It will also
produce a build error if there are any other External paths that
may have been unhandled.

  • Scripts/copy-user-interface-resources.pl:

Run a new script to fix up the Worker imports for new pathes.

  • Scripts/fix-worker-imports-for-optimized-builds.pl: Added.

(fixWorkerImportsInFile):
(fixWorkerImportsInDirectory):
Replace "/External/Esprima/esprima.js" with "/Esprima.js" in imports.
Fatal error for any unhandled "/External" lines that were not replaced.

20:01 Changeset [200228] by matthew_hanson@apple.com
  • 8 edits in tags/Safari-602.1.30/Source

Roll out r200201. rdar://problem/25995376

19:48 Changeset [200227] by matthew_hanson@apple.com
  • 5 edits in tags/Safari-602.1.30/Source

Unversioning.

19:47 Changeset [200226] by matthew_hanson@apple.com
  • 5 edits in tags/Safari-602.1.30.1/Source

Versioning.

19:44 Changeset [200225] by matthew_hanson@apple.com
  • 5 edits in tags/Safari-602.1.30/Source

Versioning.

19:38 Changeset [200224] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-602.1.30.1

New Tag.

19:38 Changeset [200223] by matthew_hanson@apple.com
  • 8 edits in tags/Safari-602.1.30/Source

Merge r200201. rdar://problem/25995376

18:30 Changeset [200222] by jdiggs@igalia.com
  • 7 edits in trunk

AX: [ATK] Expose subscript and superscript format style groups using ATK_ROLE_SUBSCRIPT and ATK_ROLE_SUPERSCRIPT
https://bugs.webkit.org/show_bug.cgi?id=157158

Reviewed by Chris Fleizach.

Source/WebCore:

r200214 caused the sup and sub elements to be exposed as ATK_ROLE_STATIC.
While this exposure is much better than folding the text into the parent
element, ATK has roles for subscript and superscript, so use them instead.

The roles-exposed.html and roles-computedRoleString.html tests were updated
to reflect the new behavior.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isSubscriptStyleGroup):
(WebCore::AccessibilityObject::isSuperscriptStyleGroup):

  • accessibility/AccessibilityObject.h:
  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(atkRole):

LayoutTests:

  • platform/gtk/accessibility/roles-computedRoleString-expected.txt: Updated for new behavior.
  • platform/gtk/accessibility/roles-exposed-expected.txt: Updated for new behavior.
18:13 Changeset [200221] by dino@apple.com
  • 6 edits in trunk/WebKitLibraries

Update WebKitSystemInterface to internal version 82799.

  • WebKitSystemInterface.h:
  • libWebKitSystemInterfaceElCapitan.a:
  • libWebKitSystemInterfaceIOSDevice9.2.a:
  • libWebKitSystemInterfaceIOSSimulator9.2.a:
  • libWebKitSystemInterfaceYosemite.a:
18:11 Changeset [200220] by zalan@apple.com
  • 7 edits
    2 adds in trunk

Content disappears on mouse over.
https://bugs.webkit.org/show_bug.cgi?id=157073
<rdar://problem/24389168>

Reviewed by Simon Fraser.

When a redundant inlinebox is found after constructing the line, we remove it from the tree.
The remove operation marks the ancestor tree dirty (and this newly constructed line is supposed to be clean).
This patch resets this dirty flag on the boxes all the way up to the rootlinebox.
Previously we only cleared the rootinlinebox and we ended up with dirty inlineflowboxes.

Source/WebCore:

Test: fast/text/text-node-remains-dirty-after-calling-surroundContents.html

  • rendering/BidiRun.h:

(WebCore::BidiRun::setBox):

  • rendering/RenderBlockFlow.h:
  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::constructLine):
(WebCore::RenderBlockFlow::removeLineBoxIfNeeded):
(WebCore::RenderBlockFlow::computeBlockDirectionPositionsForLine):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::positionLineBox): Deleted.

  • rendering/RenderText.cpp:

(WebCore::RenderText::setText):
(WebCore::RenderText::positionLineBox): Deleted.

LayoutTests:

  • fast/text/text-node-remains-dirty-after-calling-surroundContents-expected.html: Added.
  • fast/text/text-node-remains-dirty-after-calling-surroundContents.html: Added.
18:07 Changeset [200219] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Allow non-standard HTTP headers in WebSocket handshake
https://bugs.webkit.org/show_bug.cgi?id=157157

Patch by John Wilander <wilander@apple.com> on 2016-04-28
Reviewed by Brent Fulgham.

No new tests since https://bugs.webkit.org/show_bug.cgi?id=157095
tests that non-standard headers are allowed.

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::readHTTPHeaders):

Changed from fail to allow for unrecognized headers.
This was the behavior before https://bugs.webkit.org/show_bug.cgi?id=155602.

  • platform/network/HTTPHeaderNames.in:

Removed whitelisted legacy headers since we now allow all non-standard headers.

17:53 Changeset [200218] by commit-queue@webkit.org
  • 6 edits in trunk/Source/JavaScriptCore

Remove unused bool parameter in CodeCache::getGlobalCodeBlock
https://bugs.webkit.org/show_bug.cgi?id=157156

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-04-28
Reviewed by Mark Lam.

The bool parameter appears to be isArrowFunctionContext, but the method's
contents just get that property from the Executable, so the parameter is
unnecessary and unused.

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getModuleProgramCodeBlock):

  • runtime/CodeCache.h:
  • runtime/Executable.cpp:

(JSC::EvalExecutable::create):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::createEvalCodeBlock):

  • runtime/JSGlobalObject.h:
17:41 Changeset [200217] by dino@apple.com
  • 4 edits in trunk/Source

RTL <select> popup menu is in the wrong location
https://bugs.webkit.org/show_bug.cgi?id=157159
<rdar://problem/25894451>

Reviewed by Simon Fraser.

Source/WebKit/mac:

Make sure both the NSPopupMenuCell and the NSPopupMenu take
the text direction into account, and offset the position
of the menu slightly if we're in RTL mode.

Unfortunately our test infrastructure is unable to exercise
this because it runs without a window, and the popup menu
is not captured in the screenshot.

  • WebCoreSupport/PopupMenuMac.mm:

(PopupMenuMac::show):

Source/WebKit2:

Make sure the NSPopupMenu takes the text direction
into account, and offset the position
of the menu slightly if we're in RTL mode.

Unfortunately our test infrastructure is unable to exercise
this because it runs without a window, and the popup menu
is not captured in the screenshot.

  • UIProcess/mac/WebPopupMenuProxyMac.mm:

(WebKit::WebPopupMenuProxyMac::showPopupMenu):

16:38 Changeset [200216] by bfulgham@apple.com
  • 4 edits
    3 adds in trunk

Make sure we don't mishandle HTMLFrameOwnerElement lifecycle
https://bugs.webkit.org/show_bug.cgi?id=157040

Reviewed by Chris Dumez.

Source/WebCore:

Protect a couple of sites where event handling could result in the owning frame
being destroyed during execution.

Tested by fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash.html.

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::didCommitLoad):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible):

LayoutTests:

  • fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash-expected.txt: Added.
  • fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash.html: Added.
  • fast/dom/HTMLAnchorElement/resources/iframe-with-anchor-crash.html: Added.
16:13 Changeset [200215] by rego@igalia.com
  • 23 edits
    2 adds in trunk

[css-grid] Add CSS Grid Layout runtime flag
https://bugs.webkit.org/show_bug.cgi?id=157134

Reviewed by Simon Fraser.

Source/WebCore:

Add CSS Grid Layout runtime flag enabled by default.
Disable parsing of CSS Grid Layout properties
if the runtime flag is not enabled.
Expose runtime flag through internals to verify that
it's working as expected.

Test: fast/css-grid-layout/grid-disable.html

  • bindings/generic/RuntimeEnabledFeatures.cpp:

(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):

  • bindings/generic/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setCSSGridLayoutEnabled):
(WebCore::RuntimeEnabledFeatures::isCSSGridLayoutEnabled):

  • css/CSSParser.cpp:

(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseIntegerOrCustomIdentFromGridPosition):
(WebCore::CSSParser::parseGridPosition):
(WebCore::CSSParser::parseGridItemPositionShorthand):
(WebCore::CSSParser::parseGridGapShorthand):
(WebCore::CSSParser::parseGridTemplateColumns):
(WebCore::CSSParser::parseGridTemplateRowsAndAreasAndColumns):
(WebCore::CSSParser::parseGridTemplateShorthand):
(WebCore::CSSParser::parseGridShorthand):
(WebCore::CSSParser::parseGridAreaShorthand):
(WebCore::CSSParser::parseSingleGridAreaLonghand):
(WebCore::CSSParser::parseGridLineNames):
(WebCore::CSSParser::parseGridTrackList):
(WebCore::CSSParser::parseGridTrackRepeatFunction):
(WebCore::CSSParser::parseGridTrackSize):
(WebCore::CSSParser::parseGridBreadth):
(WebCore::CSSParser::parseGridAutoFlow):
(WebCore::CSSParser::parseGridTemplateAreasRow):
(WebCore::CSSParser::parseGridTemplateAreas):
(WebCore::CSSParser::iscSSGridLayoutEnabled):

  • css/CSSParser.h:
  • css/CSSParserMode.h:
  • dom/Document.cpp:

(WebCore::Document::isCSSGridLayoutEnabled):

  • dom/Document.h:
  • testing/Internals.cpp:

(WebCore::Internals::setCSSGridLayoutEnabled):

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

Source/WebKit/mac:

Add CSS Grid Layout runtime flag based on preferences,
enabled by default.

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

(+[WebPreferences initialize]):
(-[WebPreferences isCSSGridLayoutEnabled]):
(-[WebPreferences setCSSGridLayoutEnabled:]):

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

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Add CSS Grid Layout runtime flag based on preferences,
enabled by default.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetCSSGridLayoutEnabled):
(WKPreferencesGetCSSGridLayoutEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

LayoutTests:

Add test to verify that CSS Grid Layout is disabled if the flag is off.

  • fast/css-grid-layout/grid-disable-expected.txt: Added.
  • fast/css-grid-layout/grid-disable.html: Added.
16:12 Changeset [200214] by cfleizach@apple.com
  • 8 edits in trunk

AX: superscript content exposed as plain text; VoiceOver does not speak or pause to make this understandable
https://bugs.webkit.org/show_bug.cgi?id=157122
<rdar://problem/21231487>

Reviewed by Daniel Bates.

Expose role types for subscript and superscript.

Modified: accessibility/mac/subroles-for-formatted-groups.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isStyleFormatGroup):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper subrole]):

LayoutTests:
AX: superscript content exposed as plain text; VoiceOver does not speak or pause to make this understandable
https://bugs.webkit.org/show_bug.cgi?id=157122
<rdar://problem/21231487>

Reviewed by Daniel Bates.

  • accessibility/mac/subroles-for-formatted-groups-expected.txt:
  • accessibility/mac/subroles-for-formatted-groups.html:
  • platform/mac/accessibility/accessibility/roles-exposed-expected.txt:
  • accessibility/roles-computedRoleString-expected.txt:
15:55 Changeset [200213] by simon.fraser@apple.com
  • 2 edits in trunk/LayoutTests

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

Attempted to reduce the flakiness of this test by making the animation longer, to give
enough time for the iteration event to fire.

  • animations/animation-events-not-cancelable.html:
15:10 Changeset [200212] by beidson@apple.com
  • 3 edits
    2 adds in trunk

inspector/indexeddb/requestDatabaseNames.html is flaky on Mac.
https://bugs.webkit.org/show_bug.cgi?id=157141

Reviewed by Alex Christensen.

Source/WebCore:

Test: inspector/indexeddb/deleteDatabaseNamesWithSpace.html

  • platform/FileSystem.cpp:

(WebCore::decodeFromFilename): Advance iterator after decoding.

LayoutTests:

  • inspector/indexeddb/deleteDatabaseNamesWithSpace-expected.txt: Added.
  • inspector/indexeddb/deleteDatabaseNamesWithSpace.html: Added.
14:41 Changeset [200211] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit/mac

Another fix for the Apple Internal OS X build
<rdar://problem/25989808>

Reviewed by Anders Carlsson.

  • WebView/WebPDFView.h:
14:39 Changeset [200210] by caitp@igalia.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] re-implement String#padStart and String#padEnd in JavaScript
https://bugs.webkit.org/show_bug.cgi?id=157146

Reviewed by Saam Barati.

  • builtins/StringPrototype.js:

(repeatCharactersSlowPath):
(padStart):
(padEnd):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation): Deleted.
(JSC::repeatStringPattern): Deleted.
(JSC::padString): Deleted.
(JSC::stringProtoFuncPadEnd): Deleted.
(JSC::stringProtoFuncPadStart): Deleted.

14:28 Changeset [200209] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Web Inspector: Tweak auto attach initialization on some platforms
https://bugs.webkit.org/show_bug.cgi?id=157150
<rdar://problem/21222045>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-04-28
Reviewed by Timothy Hatcher.

  • inspector/EventLoop.cpp:

(Inspector::EventLoop::cycle):

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::updateAutomaticInspectionCandidate):

13:50 Changeset [200208] by benjamin@webkit.org
  • 13 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Unify Math.pow() accross all tiers
https://bugs.webkit.org/show_bug.cgi?id=157121

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-04-28
Reviewed by Geoffrey Garen.

My previous optimizations of DFG compile time have slowly
regressed Sunspider's math-partial-sums.

What is happenning is baseline used a thunk for Math.pow()
that has a special case for an exponent of -0.5, while
DFG/FTL have other special cases for other exponents.
The faster we get to DFG, the less time we spend in that fast
case for -0.5.

While looking into this, I discovered some correctness issues. Baseline
optimizes y=-0.5 by turning it into 1/sqrt(). DFG/FTL optimize constant
y=0.5 by turning it into sqrt(). The problem is sqrt() behaves differently
for -0 and -Infinity. With sqrt(), negative numbers are undefined,
and the result is NaN. With pow(), they have a result.

Something else that has bothered me for a while is that Math.pow()
with the same arguments give you different results in LLINT, Baseline,
and DFG/FTL. This seems a bit dangerous for numerical stability.

With this patch, I unify the behaviors for all tiers while keeping
the "special cases".

We have pow() that is super slow, but most callers don't need the
full power. We have:
-pow() with an exponent between 0 and 1000 is a fast path implemented

by multiplication only.

-pow(x, 0.5) is sqrt with special checks for negative values.
-pow(x, -0.5) is sqrt with special checks for negative values.

The C++ implementation handles all those optimizations too. This ensure
you get the same results from LLINT to FTL.

The thunk is eliminated, it was producing incorrect results and only
optimized Sunspider's partial-sums.

DFG gets the optimized integer, 0.5 and -0.5 cases since those are important
for somewhat-hot code. DFG falls back to the C++ code for any non-obvious case.

FTL gets the full C++ implementation inlined in B3. B3 knows how to eliminate
all the dead cases so you get the best if your code is hot enough to reach FTL.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode): Deleted.

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToArithSqrt): Deleted.

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

(JSC::DFG::compileArithPowIntegerFastPath):
(JSC::DFG::SpeculativeJIT::compileArithPow):

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileArithPow):

  • jit/ThunkGenerators.cpp:

(JSC::powThunkGenerator): Deleted.

  • jit/ThunkGenerators.h:
  • runtime/MathCommon.cpp:

(JSC::operationMathPow):

  • runtime/MathCommon.h:
  • runtime/VM.cpp:

(JSC::thunkGeneratorForIntrinsic): Deleted.

  • tests/stress/math-pow-stable-results.js: Added.

Getting consistent results when tiering up is new.
This test verify that results always remains the same as LLINT.

  • tests/stress/math-pow-with-constants.js:

(testPowUsedAsSqrt):
(powUsedAsOneOverSqrt):
(testPowUsedAsOneOverSqrt):
(powUsedAsSquare):
(testPowUsedAsSquare):

13:31 Changeset [200207] by ryanhaddad@apple.com
  • 1 edit
    1 add in trunk/LayoutTests

Add ios-simulator baseline for fast/forms/select-non-native-rendering-direction.html
https://bugs.webkit.org/show_bug.cgi?id=157112

Unreviewed test gardening.

  • platform/ios-simulator/fast/forms/select-non-native-rendering-direction-expected.txt: Added.
12:58 Changeset [200206] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.30/Source/WebCore

Merged r200205. rdar://problem/25986324

12:52 Changeset [200205] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

<rdar://problem/25986324> WebKit build broken with error: undeclared selector 'childViewControllerForWhitePointAdaptivityStyle'

Fixed the build by removing use of API that no longer does anything.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::setupFullscreen): Revert to using a plain UIViewController.
(createFullScreenVideoRootViewControllerClass): Deleted.
(allocWebFullScreenVideoRootViewControllerInstance): Deleted.

12:35 Changeset [200204] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/fetch/nosniff/stylesheet.html is failing on some bots
https://bugs.webkit.org/show_bug.cgi?id=157145

Unreviewed.

  • TestExpectations: Marking imported/w3c/web-platform-tests/fetch/nosniff/stylesheet.html as failing and passing.
12:22 Changeset [200203] by beidson@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION(r200163): inspector/indexeddb/requestDatabaseNames.html is flaky on Mac.
https://bugs.webkit.org/show_bug.cgi?id=157141

Unreviewed.

Add one more chunk of logging here to add even more supporting evidence to our theory.

  • inspector/indexeddb/requestDatabaseNames-expected.txt:
  • inspector/indexeddb/requestDatabaseNames.html:
11:47 Changeset [200202] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Modern IDB: Reimplement Web Inspector code that was tied to Legacy IDB.
https://bugs.webkit.org/show_bug.cgi?id=154686

Reviewed by Alex Christensen.

No new tests (Inspector folks will have to write them if they're possible).

11:41 Changeset [200201] by dbates@webkit.org
  • 8 edits in trunk/Source

Fix the Apple Internal OS X build

Source/WebCore:

  • platform/graphics/mac/PDFDocumentImageMac.mm:

(WebCore::PDFDocumentImage::drawPDFPage): Ignore deprecation warning for -[PDFPage drawWithBox:].

Source/WebKit/mac:

  • WebView/WebPDFView.h: Import PDFKit for definition of protocol PDFViewDelegate.

Forward declare protocol PDFViewDelegate as appropriate. Mark WebPDFView as implementing
protocol PDFViewDelegate.

  • WebView/WebPDFView.mm: Move import of PDFKit from here to the header.

Source/WebKit2:

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _drawPDFDocument:page:atPoint:]): Ignore deprecation warning for -[PDFPage drawWithBox:].

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::drawPDFPage): Ditto.

11:18 Changeset [200200] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DebuggerScope::className() should not assert scope->isValid().
https://bugs.webkit.org/show_bug.cgi?id=157143

Reviewed by Keith Miller.

DebuggerScope::className() should not assert scope->isValid() because the
TypeProfiler logs objects it encounters, and may indirectly call
JSObject::calculatedClassName() on those objects later, thereby calling
DebuggerScope::className() on an invalidated DebuggerScope.

The existing handling in DebuggerScope::className() for an invalidated scope
(that returns a null string) is sufficient.

  • debugger/DebuggerScope.cpp:

(JSC::DebuggerScope::className):

10:58 Changeset [200199] by ryanhaddad@apple.com
  • 3 edits in trunk/LayoutTests

Skipping media/video-with-file-url-allowed-by-csp-media-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html
https://bugs.webkit.org/show_bug.cgi?id=155196

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
10:36 Changeset [200198] by youenn.fablet@crf.canon.fr
  • 15 edits in trunk

Drop [UsePointersEvenForNonNullableObjectArguments] from MediaSource interfaces
https://bugs.webkit.org/show_bug.cgi?id=156904

Reviewed by Darin Adler.

Source/WebCore:

MediaSource::addSourceBuffer will now throw a TypeError if a null parameter is passed.
MediaSource::removeSourceBuffer will now throw a TypeError if a null parameter is passed.
SourceBuffer::appendBuffer will now throw a TypeError if a null parameter is passed.

Did some refactoring to use more references.

Covered by updated test.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::endOfStream):
(WebCore::MediaSource::addSourceBuffer):
(WebCore::MediaSource::removeSourceBuffer):

  • Modules/mediasource/MediaSource.h:
  • Modules/mediasource/MediaSource.idl:
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::appendBuffer):

  • Modules/mediasource/SourceBuffer.h:
  • Modules/mediasource/SourceBuffer.idl:
  • Modules/mediasource/SourceBufferList.cpp:

(WebCore::SourceBufferList::add):
(WebCore::SourceBufferList::remove):

  • Modules/mediasource/SourceBufferList.h:

LayoutTests:

  • http/tests/media/media-source/mediasource-addsourcebuffer.html: Changing expected exception to TypeError.
  • http/tests/media/media-source/mediasource-append-buffer-expected.txt:
  • http/tests/media/media-source/mediasource-append-buffer.html: Checking passing null or undefined to

appendBuffer, addSourceBuffer and removeSourceBuffer.

  • media/media-source/media-source-addsourcebuffer-expected.txt:
  • media/media-source/media-source-addsourcebuffer.html: Removing redundant test.
10:35 Changeset [200197] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Source/WebCore

Drop [UsePointersEvenForNonNullableObjectArguments] from Node
https://bugs.webkit.org/show_bug.cgi?id=156978

Reviewed by Chris Dumez.

No change of behavior.

  • dom/Node.idl: Marking some parameters nullable.
10:34 Changeset [200196] by adachan@apple.com
  • 7 edits
    2 adds in trunk

Set overflow: hidden on ::-webkit-media-controls in mediaControlsApple.css
https://bugs.webkit.org/show_bug.cgi?id=157110

Reviewed by Eric Carlson.

Source/WebCore:

Test: fast/regions/inline-block-inside-anonymous-overflow-with-covered-controls.html

This matches what we do in mediaControlsiOS.css.

  • Modules/mediacontrols/mediaControlsApple.css:

(::-webkit-media-controls):

LayoutTests:

The style change caused an image only failure for fast/regions/inline-block-inside-anonymous-overflow.html.
Mark that test as image-failure-only and add a new test that's basically a copy of inline-block-inside-anonymous-overflow.html
with the default controls covered so we can still catch layout regressions related to flowing content from region to region.

  • fast/regions/inline-block-inside-anonymous-overflow-with-covered-controls-expected.html: Added.
  • fast/regions/inline-block-inside-anonymous-overflow-with-covered-controls.html: Added.
  • platform/ios-simulator/TestExpectations:

fast/regions/inline-block-inside-anonymous-overflow.html is already marked as image-failure-only
so this new test needs to be marked too.

  • platform/mac/TestExpectations:
  • platform/mac/media/media-document-audio-repaint-expected.txt:
  • platform/mac/media/video-zoom-controls-expected.txt:

Rebaseline test due to style change in mediaControlsApple.css.

10:12 Changeset [200195] by youenn.fablet@crf.canon.fr
  • 4 edits
    164 adds in trunk/LayoutTests

[Fetch API] Import remaining fetch tests
https://bugs.webkit.org/show_bug.cgi?id=156914

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • resources/ImportExpectations:
  • web-platform-tests/fetch/api/cors/cors-basic-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-basic-worker.html: Added.
  • web-platform-tests/fetch/api/cors/cors-basic.html: Added.
  • web-platform-tests/fetch/api/cors/cors-basic.js: Added.
  • web-platform-tests/fetch/api/cors/cors-cookies-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-cookies-worker.html: Added.
  • web-platform-tests/fetch/api/cors/cors-cookies.html: Added.
  • web-platform-tests/fetch/api/cors/cors-cookies.js: Added.
  • web-platform-tests/fetch/api/cors/cors-filtering-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-filtering-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-filtering-worker.html: Added.
  • web-platform-tests/fetch/api/cors/cors-filtering.html: Added.
  • web-platform-tests/fetch/api/cors/cors-filtering.js: Added.
  • web-platform-tests/fetch/api/cors/cors-multiple-origins-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-multiple-origins-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-multiple-origins-worker.html: Added.
  • web-platform-tests/fetch/api/cors/cors-multiple-origins.html: Added.
  • web-platform-tests/fetch/api/cors/cors-multiple-origins.js: Added.
  • web-platform-tests/fetch/api/cors/cors-no-preflight-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-no-preflight-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-no-preflight-worker.html: Added.
  • web-platform-tests/fetch/api/cors/cors-no-preflight.html: Added.
  • web-platform-tests/fetch/api/cors/cors-no-preflight.js: Added.
  • web-platform-tests/fetch/api/cors/cors-origin-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-origin-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-origin-worker.html: Added.
  • web-platform-tests/fetch/api/cors/cors-origin.html: Added.
  • web-platform-tests/fetch/api/cors/cors-origin.js: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-redirect-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-redirect-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-redirect-worker.html: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-redirect.html: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-redirect.js: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer-worker.html: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer.html: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer.js: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-status-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-status-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-status-worker.html: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-status.html: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-status.js: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight-worker.html: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight.html: Added.
  • web-platform-tests/fetch/api/cors/cors-preflight.js: Added.
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker.html: Added.
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials.html: Added.
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials.js: Added.
  • web-platform-tests/fetch/api/cors/cors-redirect-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-redirect-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/cors/cors-redirect-worker.html: Added.
  • web-platform-tests/fetch/api/cors/cors-redirect.html: Added.
  • web-platform-tests/fetch/api/cors/cors-redirect.js: Added.
  • web-platform-tests/fetch/api/cors/w3c-import.log: Added.
  • web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Added.
  • web-platform-tests/fetch/api/credentials/authentication-basic-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/credentials/authentication-basic-worker.html: Added.
  • web-platform-tests/fetch/api/credentials/authentication-basic.html: Added.
  • web-platform-tests/fetch/api/credentials/authentication-basic.js: Added.
  • web-platform-tests/fetch/api/credentials/cookies-expected.txt: Added.
  • web-platform-tests/fetch/api/credentials/cookies-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/credentials/cookies-worker.html: Added.
  • web-platform-tests/fetch/api/credentials/cookies.html: Added.
  • web-platform-tests/fetch/api/credentials/cookies.js: Added.
  • web-platform-tests/fetch/api/credentials/w3c-import.log: Added.
  • web-platform-tests/fetch/api/policies/csp-blocked-expected.txt: Added.
  • web-platform-tests/fetch/api/policies/csp-blocked-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/policies/csp-blocked-worker.html: Added.
  • web-platform-tests/fetch/api/policies/csp-blocked.html: Added.
  • web-platform-tests/fetch/api/policies/csp-blocked.html.headers: Added.
  • web-platform-tests/fetch/api/policies/csp-blocked.js: Added.
  • web-platform-tests/fetch/api/policies/csp-blocked.js.headers: Added.
  • web-platform-tests/fetch/api/policies/referrer-no-referrer-expected.txt: Added.
  • web-platform-tests/fetch/api/policies/referrer-no-referrer-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/policies/referrer-no-referrer-worker.html: Added.
  • web-platform-tests/fetch/api/policies/referrer-no-referrer.html: Added.
  • web-platform-tests/fetch/api/policies/referrer-no-referrer.html.headers: Added.
  • web-platform-tests/fetch/api/policies/referrer-no-referrer.js: Added.
  • web-platform-tests/fetch/api/policies/referrer-no-referrer.js.headers: Added.
  • web-platform-tests/fetch/api/policies/referrer-origin-expected.txt: Added.
  • web-platform-tests/fetch/api/policies/referrer-origin-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/policies/referrer-origin-worker.html: Added.
  • web-platform-tests/fetch/api/policies/referrer-origin.html: Added.
  • web-platform-tests/fetch/api/policies/referrer-origin.html.headers: Added.
  • web-platform-tests/fetch/api/policies/referrer-origin.js: Added.
  • web-platform-tests/fetch/api/policies/referrer-origin.js.headers: Added.
  • web-platform-tests/fetch/api/policies/referrer-unsafe-url-expected.txt: Added.
  • web-platform-tests/fetch/api/policies/referrer-unsafe-url-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/policies/referrer-unsafe-url-worker.html: Added.
  • web-platform-tests/fetch/api/policies/referrer-unsafe-url.html: Added.
  • web-platform-tests/fetch/api/policies/referrer-unsafe-url.html.headers: Added.
  • web-platform-tests/fetch/api/policies/referrer-unsafe-url.js: Added.
  • web-platform-tests/fetch/api/policies/referrer-unsafe-url.js.headers: Added.
  • web-platform-tests/fetch/api/policies/w3c-import.log: Added.
  • web-platform-tests/fetch/api/redirect/redirect-count-expected.txt: Added.
  • web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/redirect/redirect-count-worker.html: Added.
  • web-platform-tests/fetch/api/redirect/redirect-count.html: Added.
  • web-platform-tests/fetch/api/redirect/redirect-count.js: Added.
  • web-platform-tests/fetch/api/redirect/redirect-location-expected.txt: Added.
  • web-platform-tests/fetch/api/redirect/redirect-location-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/redirect/redirect-location-worker.html: Added.
  • web-platform-tests/fetch/api/redirect/redirect-location.html: Added.
  • web-platform-tests/fetch/api/redirect/redirect-location.js: Added.
  • web-platform-tests/fetch/api/redirect/redirect-method-expected.txt: Added.
  • web-platform-tests/fetch/api/redirect/redirect-method-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/redirect/redirect-method-worker.html: Added.
  • web-platform-tests/fetch/api/redirect/redirect-method.html: Added.
  • web-platform-tests/fetch/api/redirect/redirect-method.js: Added.
  • web-platform-tests/fetch/api/redirect/redirect-mode-expected.txt: Added.
  • web-platform-tests/fetch/api/redirect/redirect-mode-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/redirect/redirect-mode-worker.html: Added.
  • web-platform-tests/fetch/api/redirect/redirect-mode.html: Added.
  • web-platform-tests/fetch/api/redirect/redirect-mode.js: Added.
  • web-platform-tests/fetch/api/redirect/w3c-import.log: Added.
  • web-platform-tests/fetch/nosniff/image-expected.txt: Added.
  • web-platform-tests/fetch/nosniff/image.html: Added.
  • web-platform-tests/fetch/nosniff/importscripts-expected.txt: Added.
  • web-platform-tests/fetch/nosniff/importscripts.html: Added.
  • web-platform-tests/fetch/nosniff/importscripts.js: Added.
  • web-platform-tests/fetch/nosniff/parsing-nosniff-expected.txt: Added.
  • web-platform-tests/fetch/nosniff/parsing-nosniff.html: Added.
  • web-platform-tests/fetch/nosniff/resources/css.py: Added.
  • web-platform-tests/fetch/nosniff/resources/image.py: Added.
  • web-platform-tests/fetch/nosniff/resources/js.py: Added.
  • web-platform-tests/fetch/nosniff/resources/nosniff-first.asis: Added.
  • web-platform-tests/fetch/nosniff/resources/nosniff-last.asis: Added.
  • web-platform-tests/fetch/nosniff/resources/nosniff-no-x.asis: Added.
  • web-platform-tests/fetch/nosniff/resources/nosniff-quoted-single.asis: Added.
  • web-platform-tests/fetch/nosniff/resources/nosniff-quoted.asis: Added.
  • web-platform-tests/fetch/nosniff/resources/nosniff-uppercase.asis: Added.
  • web-platform-tests/fetch/nosniff/resources/w3c-import.log: Added.
  • web-platform-tests/fetch/nosniff/resources/worker.py: Added.
  • web-platform-tests/fetch/nosniff/script-expected.txt: Added.
  • web-platform-tests/fetch/nosniff/script.html: Added.
  • web-platform-tests/fetch/nosniff/stylesheet-expected.txt: Added.
  • web-platform-tests/fetch/nosniff/stylesheet.html: Added.
  • web-platform-tests/fetch/nosniff/w3c-import.log: Added.
  • web-platform-tests/fetch/nosniff/worker.html: Added.

LayoutTests:

causing other tests to crash (see bug 156737 and bug 157068).

  • platform/gtk/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/fetch/nosniff/stylesheet-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Added.
10:05 Changeset [200194] by caitp@igalia.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] implement spec changes for String#padStart and String#padEnd
https://bugs.webkit.org/show_bug.cgi?id=157139

Reviewed by Keith Miller.

Previously, if the fill string was the empty string, it was treated as a
single U+0020 SPACE character. Now, if this occurs, the original string
is returned instead.

Change was discussed at TC39 in March [1], and is reflected in new
test262 tests for the feature.

[1] https://github.com/tc39/tc39-notes/blob/master/es7/2016-03/march-29.md#stringprototypepadstartpadend

  • runtime/StringPrototype.cpp:

(JSC::padString):

  • tests/es6/String.prototype_methods_String.prototype.padEnd.js:

(TestFillerToString):
(TestFillerEmptyString):

  • tests/es6/String.prototype_methods_String.prototype.padStart.js:

(TestFillerToString):
(TestFillerEmptyString):

10:03 Changeset [200193] by rego@igalia.com
  • 2 edits in trunk/Source/WebKit2

Fix mistake in custom elements runtime flag
https://bugs.webkit.org/show_bug.cgi?id=157130

Reviewed by Chris Dumez.

The methods for the custom elements runtime flag were using
the Shadow DOM flag instead.
These methods were introduced in r197921,
it seems it was just a copy&paste mistake.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetCustomElementsEnabled):
(WKPreferencesGetCustomElementsEnabled):

08:41 Changeset [200192] by cdumez@apple.com
  • 44 edits in trunk

[Web IDL] Specify default values for optional parameters of type 'DOMString'
https://bugs.webkit.org/show_bug.cgi?id=157116

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLMediaElement/addTextTrack-expected.txt:

Source/WebCore:

Specify default values for optional parameters of type 'DOMString' so
that this default value is used if the parameter is either omitted or
undefined. For parameters of type DOMString and that are not nullable,
the bindings generator now uses the null string as implicit default
value (unless explicitely specified otherwise in the IDL). This
simplifies the IDL a little and makes it a bit less confusing (it is
a bit weird to see something like "optional DOMString param = null",
considering the parameter is not nullable). I also think it makes
more sense to use the null String() rather than Optional<String> in
this case.

No new tests, existing tests were rebaselined.

  • Modules/encryptedmedia/MediaKeys.idl:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/indexeddb/IDBIndex.h:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::openCursor): Deleted.

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/speech/SpeechSynthesisUtterance.idl:
  • Modules/websockets/WebSocket.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
(CanUseWTFOptionalForParameter): Deleted.

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomicString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValue): Deleted.

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::jsTestTypedefsPrototypeFunctionSetShadow):

  • bindings/scripts/test/TestNamedConstructor.idl:
  • css/FontFaceSet.cpp:
  • css/FontFaceSet.h:
  • css/FontFaceSet.idl:
  • css/WebKitCSSMatrix.idl:
  • dom/Comment.idl:
  • dom/DOMImplementation.idl:
  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::clearData):
(WebCore::DataTransfer::getData): Deleted.

  • dom/DataTransfer.h:
  • dom/Document.idl:
  • dom/Text.idl:
  • fileapi/FileReader.cpp:

(WebCore::FileReader::readAsDataURL): Deleted.

  • fileapi/FileReader.h:
  • fileapi/FileReaderSync.h:
  • fileapi/FileReaderSync.idl:
  • html/HTMLAudioElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::addTextTrack):
Throw a TypeError if the 'kind' parameter is not a valid string in the
TextTrackKind enum:
https://html.spec.whatwg.org/multipage/embedded-content.html#htmlmediaelement

We previously threw a SYNTAX_ERR instead of a TypeError in such case,
which was not correct as per Web IDL specification.

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElement.idl:
  • html/HTMLOptionElement.idl:
  • html/HTMLTextAreaElement.idl:
  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::setShadow):

  • html/canvas/CanvasRenderingContext2D.h:
  • page/Performance.idl:

LayoutTests:

  • media/track/w3c/interfaces/HTMLMediaElement/addTextTrack.html:

Resync test from upstream so that it expects a TypeError to be thrown if a
wrong 'kind' parameter is passed, and so that it expects the label / language
parameter to have the empty string as default value.

08:12 Changeset [200191] by gskachkov@gmail.com
  • 5 edits in trunk

Crash for non-static super property call in derived class constructor
https://bugs.webkit.org/show_bug.cgi?id=157089

Reviewed by Darin Adler.
Source/JavaScriptCore:

Added tdz check of the 'this' before access to the 'super' for FunctionCallBracketNode,
the same as it was done for FunctionCallDotNode.

  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionCallBracketNode::emitBytecode):

LayoutTests:

  • js/class-syntax-super-expected.txt:
  • js/script-tests/class-syntax-super.js:
07:35 Changeset [200190] by tonikitoo@webkit.org
  • 3 edits in trunk/Source/WebCore

Factor out the "paint item" logic in RenderListBox into a helper
https://bugs.webkit.org/show_bug.cgi?id=157117

Reviewed by Daniel Bates.

Patch factors out the duplicated painting logic in RenderListBox::paintObject()
into a member function named paintItem.

This is in preparation for bug 156590.
No new tests, since there is no behavior change.

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::paintItem):
(WebCore::RenderListBox::paintObject):

  • rendering/RenderListBox.h:
07:02 Changeset [200189] by rego@igalia.com
  • 2 edits in trunk/LayoutTests

[css-grid] Fix typo in CSS class for layout tests
https://bugs.webkit.org/show_bug.cgi?id=157129

Reviewed by Sergio Villar Senin.

CSS class "secondRowFourthColumn" was not actually setting
the second row due to a typo.

The change doesn't affect any test just by chance,
as the auto-placement algorithm is already positioning
those items on the second row.

  • fast/css-grid-layout/resources/grid.css:

(.secondRowFourthColumn):

06:46 WebKitGTK/2.10.x edited by jdiggs@igalia.com
(diff)
06:32 WebKitGTK/2.12.x edited by jdiggs@igalia.com
(diff)
06:12 Changeset [200188] by jdiggs@igalia.com
  • 8 edits
    4 adds in trunk

AX: [ATK] We need to be smarter about flattening and the accessible text implementation
https://bugs.webkit.org/show_bug.cgi?id=144639

Reviewed by Chris Fleizach.

Source/WebCore:

Defer to WebCore Accessibility more regarding when to include anonymous blocks in the
accessibility tree. Explicitly flatten menu items, headings, list items, and paragraphs
in order to preserve the expected platform behavior for backwards compatibility. Also
map anonymous table parts to DivRole rather than GroupRole for GTK and EFL because ATK
has separate roles for generic text block elements and other generic containers.

Tests: accessibility/gtk/nested-block-element-children.html

accessibility/gtk/spans-paragraphs-and-divs-tree.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/atk/AccessibilityObjectAtk.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):

LayoutTests:

Added two new tests and updated three existing tests to reflect the new behavior
regarding inclusion of elements in the accessibility tree and the text value of
included elements.

  • accessibility/gtk/nested-block-element-children-expected.txt: Added.
  • accessibility/gtk/nested-block-element-children.html: Added.
  • accessibility/gtk/spans-paragraphs-and-divs-expected.txt: Updated for new behavior.
  • accessibility/gtk/spans-paragraphs-and-divs-tree-expected.txt: Added.
  • accessibility/gtk/spans-paragraphs-and-divs-tree.html: Added.
  • accessibility/gtk/spans-paragraphs-and-divs.html: Updated for new behavior.
  • platform/gtk/accessibility/generated-content-with-display-table-crash-expected.txt: Updated for new behavior.
  • platform/gtk/accessibility/gtk/replaced-objects-in-anonymous-blocks-expected.txt: Updated for new behavior.
05:20 Changeset [200187] by fred.wang@free.fr
  • 3 edits in trunk/Source/WebCore

RenderMathMLOperator refactoring: introduce getBaseGlyph and remove parameter from getDisplayStyleLargeOperator
https://bugs.webkit.org/show_bug.cgi?id=156910

Reviewed by Alejandro G. Castro.

No new tests, the behavior is not changed.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::italicCorrection): We do not need to pass m_textContent to
getDisplayStyleLargeOperator.
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): We use getBaseGlyph and do
not pass m_textContent to getDisplayStyleLargeOperator or findStretchyData.
(WebCore::RenderMathMLOperator::getBaseGlyph): Introduce a helper function to retrieve the
base glyph and do some validity checks.
(WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator): We remove the character
parameter as it is always m_textContent.
We use getBaseGlyph and replace primaryFont with baseGlyph.font.
(WebCore::RenderMathMLOperator::findStretchyData): Ditto.
(WebCore::RenderMathMLOperator::updateStyle): We do not pass m_textContent to
getDisplayStyleLargeOperator or findStretchyData.

  • rendering/mathml/RenderMathMLOperator.h: Declare getBaseGlyph and remove the parameter

from getDisplayStyleLargeOperator and findStretchyData.

05:18 Changeset [200186] by commit-queue@webkit.org
  • 4 edits
    1 delete in trunk

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

Bad temporary file added unintentionally (Requested by fredw
on #webkit).

Reverted changeset:

"RenderMathMLOperator refactoring: introduce getBaseGlyph and
remove parameter from getDisplayStyleLargeOperator"
https://bugs.webkit.org/show_bug.cgi?id=156910
http://trac.webkit.org/changeset/200185

05:09 Changeset [200185] by fred.wang@free.fr
  • 3 edits
    5 adds in trunk/Source

RenderMathMLOperator refactoring: introduce getBaseGlyph and remove parameter from getDisplayStyleLargeOperator
https://bugs.webkit.org/show_bug.cgi?id=156910

Reviewed by Alejandro G. Castro.

No new tests, the behavior is not changed.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::italicCorrection): We do not need to pass m_textContent
to getDisplayStyleLargeOperator.
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): We use getBaseGlyph and do
not pass m_textContent to getDisplayStyleLargeOperator or findStretchyData.
(WebCore::RenderMathMLOperator::getBaseGlyph): Introduce a helper function to retrieve the
base glyph and do some validity checks.
(WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator): We remove the character
parameter as it is always m_textContent.
We use getBaseGlyph and replace primaryFont with baseGlyph.font.
(WebCore::RenderMathMLOperator::findStretchyData): Ditto.
(WebCore::RenderMathMLOperator::updateStyle): We do not pass m_textContent to
getDisplayStyleLargeOperator or findStretchyData.

  • rendering/mathml/RenderMathMLOperator.h: Declare getBaseGlyph and remove the parameter

from getDisplayStyleLargeOperator and findStretchyData.

03:07 Changeset [200184] by carlosgc@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION(r199659): Web Process crash when RenderTheme::adjustMenuListStyle is called with a null element
https://bugs.webkit.org/show_bug.cgi?id=157127

Reviewed by Sergio Villar Senin.

This happens for example with tests fast/css/appearance-with-pseudo-elements-in-quirks-mode.html and
fast/css/appearance-with-pseudo-elements.html.

  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::adjustMenuListStyle): Do not change the style color if the given element is nullptr.

03:01 Changeset [200183] by carlosgc@webkit.org
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Add missing files to the compilation of GTK+ inspector.

  • PlatformGTK.cmake:
02:27 Changeset [200182] by svillar@igalia.com
  • 8 edits in trunk/Source/WebCore

[css-grid] Store auto-repeat information in style
https://bugs.webkit.org/show_bug.cgi?id=157097

Reviewed by Darin Adler.

This is the second step to implement auto-repeat. This patch provides the necessary
machinery to store the auto-repeat data extracted by the parser in the RenderStyle class. We
are not doing anything with that information yet, it will be used later to compute the
number of auto-repeat tracks in a follow up patch.

No new tests required as there is no change in behavior yet (we're just storing the info we
already get from the parser).

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForGridTrackList): Check also that the auto-repeat list of tracks is empty.

  • css/StyleBuilderConverter.h:

(WebCore::createGridLineNamesList): Refactored from createGridTrackList.
(WebCore::StyleBuilderConverter::createGridTrackList): Extract auto-repeat data from the
parser. Also gathered all the out arguments in a single new struct called TracksData.

  • css/StyleBuilderCustom.h: Added new macro SET_TRACKS_DATA which properly sets the info

from TracksData struct into style.
(WebCore::StyleBuilderCustom::applyValueWebkitGridTemplateColumns): Store auto-repeat data
in RenderStyle.
(WebCore::StyleBuilderCustom::applyValueWebkitGridTemplateRows): Ditto.

  • rendering/style/RenderStyle.h: Add methods and attributes for auto-repeat data.
  • rendering/style/RenderStyleConstants.h: New AutoRepeatType enumerated type.
  • rendering/style/StyleGridData.cpp:

(WebCore::StyleGridData::StyleGridData): Add auto-repeat data.

  • rendering/style/StyleGridData.h:

(WebCore::StyleGridData::operator==): Check also auto-repeat data.

01:54 Changeset [200181] by rego@igalia.com
  • 5 edits
    2 copies in trunk

[css-grid] Fix alignment with content distribution
https://bugs.webkit.org/show_bug.cgi?id=156623

Reviewed by Sergio Villar Senin.

Source/WebCore:

We were only subtracting the distribution offset for items spanning
several tracks, but not for items in a single cell.
We should actually subtract the offset in that situation too,
the same that we do for the grid gaps.

Test: fast/css-grid-layout/grid-content-alignment-and-self-alignment-spanning.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::columnAxisOffsetForChild): Subtract distribution
offset like we do for gaps.
(WebCore::RenderGrid::rowAxisOffsetForChild): Ditto.

LayoutTests:

Created new test and renamed the old one as it was only testing
items spanning several cells.

  • fast/css-grid-layout/grid-content-alignment-and-self-alignment-expected.txt:
  • fast/css-grid-layout/grid-content-alignment-and-self-alignment-spanning-expected.txt:

Renamed from fast/css-grid-layout/grid-content-alignment-and-self-alignment-expected.txt.

  • fast/css-grid-layout/grid-content-alignment-and-self-alignment-spanning.html:

Renamed from fast/css-grid-layout/grid-content-alignment-and-self-alignment.html.

  • fast/css-grid-layout/grid-content-alignment-and-self-alignment.html:
01:30 WebKitGTK/2.12.x edited by carlosgc@webkit.org
(diff)
01:03 Changeset [200180] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

Skip test LayoutTests/media/video-with-file-url-allowed-by-csp-media-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html
as it is flaky on the WebKit1 bots.

For completeness, the test video-with-file-url-allowed-by-csp-media-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html
was added in r200155 (<https://bugs.webkit.org/show_bug.cgi?id=157100>). We will look to fix this test in <https://bugs.webkit.org/show_bug.cgi?id=155196>.

  • platform/mac-wk1/TestExpectations:
00:44 Changeset [200179] by carlosgc@webkit.org
  • 1 copy in releases/WebKitGTK/webkit-2.12.2

WebKitGTK+ 2.12.2

00:43 Changeset [200178] by carlosgc@webkit.org
  • 4 edits in releases/WebKitGTK/webkit-2.12

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

.:

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

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.12.2.

04/27/16:

23:54 Changeset [200177] by mark.lam@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

The GetterSetter structure needs a globalObject.
https://bugs.webkit.org/show_bug.cgi?id=157120

Reviewed by Filip Pizlo.

In r199170: <http://trac.webkit.org/r199170>, GetterSetter was promoted from
being a JSCell to a JSObject. JSObject methods expect their structure to have a
globalObject. For example, see JSObject::calculatedClassName(). GetterSetter
was previously using a singleton getterSetterStructure owned by the VM. That
singleton getterSetterStructure is not associated with any globalObjects. As a
result, JSObject::calculatedClassName() will run into a null globalObject when it
is called on a GetterSetter object.

This patch removes the VM singleton getterSetterStructure, and instead, creates
a getterSetterStructure for each JSGlobalObject.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGStructureRegistrationPhase.cpp:

(JSC::DFG::StructureRegistrationPhase::run):

  • runtime/GetterSetter.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::functionStructure):
(JSC::JSGlobalObject::boundFunctionStructure):
(JSC::JSGlobalObject::boundSlotBaseFunctionStructure):
(JSC::JSGlobalObject::getterSetterStructure):
(JSC::JSGlobalObject::nativeStdFunctionStructure):
(JSC::JSGlobalObject::namedFunctionStructure):
(JSC::JSGlobalObject::functionNameOffset):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
23:49 Changeset [200176] by carlosgc@webkit.org
  • 7 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r200173 - [GTK] Overlay scrollbars with steppers enabled render incorrectly
https://bugs.webkit.org/show_bug.cgi?id=156988

Reviewed by Michael Catanzaro.

Fix rendering of scrollbars when using GTK+ themes having stepper buttons.

  • platform/gtk/RenderThemeGadget.cpp:

(WebCore::RenderThemeBoxGadget::RenderThemeBoxGadget): Receive the box orientation as constructor parameter.
(WebCore::RenderThemeBoxGadget::preferredSize): Fix the preferred size calculation taking into account the box orientation.
(WebCore::RenderThemeScrollbarGadget::renderStepper): New method to render scrollbar steppers.

  • platform/gtk/RenderThemeGadget.h:

(WebCore::RenderThemeGadget::context): Make this public instead of protected.

  • platform/gtk/ScrollAnimatorGtk.cpp:

(WebCore::ScrollAnimatorGtk::updateOverlayScrollbarsOpacity): Invalidate the whole scrollbars instead of just
the thumb when opacity changes, because themes can actually render the trough or even stepper buttons when in
indicator mode too.

  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::ScrollbarThemeGtk::hasButtons): Properly implement this method instead of returning true unconditionally.
(WebCore::contentsGadgetForLayout): Pass orientation to RenderThemeBoxGadget constructor.
(WebCore::ScrollbarThemeGtk::trackRect): Fix the calculation of the track rect taking stepper buttons into account.
(WebCore::ScrollbarThemeGtk::backButtonRect): Fix the calculation of the stepper button rectangle.
(WebCore::ScrollbarThemeGtk::forwardButtonRect): Ditto.
(WebCore::ScrollbarThemeGtk::paint): Use RenderThemeScrollbarGadget::renderStepper() to render the stepper
buttons, and fix the calculation of the steppers button rectangle.
(WebCore::ScrollbarThemeGtk::handleMousePressEvent): Handle clicks on stepper buttons.
(WebCore::ScrollbarThemeGtk::scrollbarThickness): Fix the calculation of the scrollbar thickness.
(WebCore::ScrollbarThemeGtk::minimumThumbLength): Pass orientation to RenderThemeBoxGadget constructor.

  • platform/gtk/ScrollbarThemeGtk.h:
  • rendering/RenderThemeGtk.cpp:

(WebCore::menuListColor): Ditto.
(WebCore::RenderThemeGtk::popupInternalPaddingBox): Ditto.
(WebCore::RenderThemeGtk::paintMenuList): Ditto.

23:46 Changeset [200175] by ap@apple.com
  • 2 edits in trunk/Tools

Don't throttle GuardMalloc on 8-core Macs
https://bugs.webkit.org/show_bug.cgi?id=157108

Reviewed by Alex Christensen.

This was making them slower unnecessarily.

  • Scripts/webkitpy/port/mac.py: (MacPort.default_child_processes):
23:23 Changeset [200174] by carlosgc@webkit.org
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/JavaScriptCore

Merge r200125 - [GTK] Fails to build randomly when generating LLIntDesiredOffsets.h
https://bugs.webkit.org/show_bug.cgi?id=155427

Reviewed by Carlos Garcia Campos.

If the build directory contains the -I string, the script that
generates LLIntDesiredOffsets.h will confuse it with an option to
declare an include directory.

In order to avoid that we should only use the arguments that start
with -I when extracting the list of include directories, instead
of using the ones that simply contain that string.

  • offlineasm/parser.rb:
23:20 Changeset [200173] by carlosgc@webkit.org
  • 7 edits in trunk/Source/WebCore

[GTK] Overlay scrollbars with steppers enabled render incorrectly
https://bugs.webkit.org/show_bug.cgi?id=156988

Reviewed by Michael Catanzaro.

Fix rendering of scrollbars when using GTK+ themes having stepper buttons.

  • platform/gtk/RenderThemeGadget.cpp:

(WebCore::RenderThemeBoxGadget::RenderThemeBoxGadget): Receive the box orientation as constructor parameter.
(WebCore::RenderThemeBoxGadget::preferredSize): Fix the preferred size calculation taking into account the box orientation.
(WebCore::RenderThemeScrollbarGadget::renderStepper): New method to render scrollbar steppers.

  • platform/gtk/RenderThemeGadget.h:

(WebCore::RenderThemeGadget::context): Make this public instead of protected.

  • platform/gtk/ScrollAnimatorGtk.cpp:

(WebCore::ScrollAnimatorGtk::updateOverlayScrollbarsOpacity): Invalidate the whole scrollbars instead of just
the thumb when opacity changes, because themes can actually render the trough or even stepper buttons when in
indicator mode too.

  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::ScrollbarThemeGtk::hasButtons): Properly implement this method instead of returning true unconditionally.
(WebCore::contentsGadgetForLayout): Pass orientation to RenderThemeBoxGadget constructor.
(WebCore::ScrollbarThemeGtk::trackRect): Fix the calculation of the track rect taking stepper buttons into account.
(WebCore::ScrollbarThemeGtk::backButtonRect): Fix the calculation of the stepper button rectangle.
(WebCore::ScrollbarThemeGtk::forwardButtonRect): Ditto.
(WebCore::ScrollbarThemeGtk::paint): Use RenderThemeScrollbarGadget::renderStepper() to render the stepper
buttons, and fix the calculation of the steppers button rectangle.
(WebCore::ScrollbarThemeGtk::handleMousePressEvent): Handle clicks on stepper buttons.
(WebCore::ScrollbarThemeGtk::scrollbarThickness): Fix the calculation of the scrollbar thickness.
(WebCore::ScrollbarThemeGtk::minimumThumbLength): Pass orientation to RenderThemeBoxGadget constructor.

  • platform/gtk/ScrollbarThemeGtk.h:
  • rendering/RenderThemeGtk.cpp:

(WebCore::menuListColor): Ditto.
(WebCore::RenderThemeGtk::popupInternalPaddingBox): Ditto.
(WebCore::RenderThemeGtk::paintMenuList): Ditto.

22:41 Changeset [200172] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

<rdar://problem/25915253> REGRESSION (r199628): Netflix playback fails in Safari Technology Preview with error code S7363-1260-FFFF58D8

Rubber-stamped by Tim Horton.

Reverted r199628.

  • Configurations/WebContentService.xcconfig:
22:27 Changeset [200171] by simon.fraser@apple.com
  • 4 edits in trunk/Source/WebCore

SVG SMIL animations run at less than 60fps
https://bugs.webkit.org/show_bug.cgi?id=157119
rdar://problem/25971304

Reviewed by Tim Horton.

If you re-fetch current time while doing animation computations you're gonna have
a bad time.

More specifically, SMILTimeContainer::startTimer() re-fetched elapsedTime() when
computing the delay for the next timer fire, then clamped to 16.667ms, so the timer
would actually be scheduled at intervals greater than desired, causing a ~54fps framerate.

Fix by using the elapsedTime fetched at the start of animation processing.

Tested by iOS content-animation performance tests.

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::SVGSVGElement): Just cleanup.

  • svg/animation/SMILTimeContainer.cpp:

(WebCore::SMILTimeContainer::notifyIntervalsChanged):
(WebCore::SMILTimeContainer::resume):
(WebCore::SMILTimeContainer::startTimer):
(WebCore::SMILTimeContainer::updateAnimations):

  • svg/animation/SMILTimeContainer.h:
21:57 Changeset [200170] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.30/Source/WebCore

Merged r200151. rdar://problem/25964854

21:55 Changeset [200169] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.30/Source/JavaScriptCore

Merged r200147. rdar://problem/25963453

20:33 Changeset [200168] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix followup to r200163

Unreviewed.

  • platform/efl/FileSystemEfl.cpp:

(WebCore::stringFromFileSystemRepresentation): At least stub this out for now until EFL folks can do better.

19:11 Changeset [200167] by ggaren@apple.com
  • 5 edits in trunk/Source/bmalloc

Assertion failure in bmalloc::vmRevokePermissions(void*, unsigned long).
https://bugs.webkit.org/show_bug.cgi?id=157047

Reviewed by Darin Adler.

  • bmalloc/Chunk.h:

(bmalloc::Chunk::Chunk):
(bmalloc::Chunk::get):
(bmalloc::Chunk::offset):
(bmalloc::Chunk::address):
(bmalloc::Object::Object):
(bmalloc::Object::address):
(bmalloc::Object::line):
(bmalloc::Chunk::object): Deleted.
(bmalloc::Object::begin): Deleted.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::allocateSmallBumpRangesByObject):

  • bmalloc/Object.h:

(bmalloc::Object::chunk):
(bmalloc::Object::offset): Renamed begin() to address() because this is
not an iterator.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::allocateSmallChunk): Round up pageSize to a vmPageSize
multiple because pageSize might be smaller than vmPageSize, but we
think the VM system requires vmPageSize-aligned values.

18:54 Changeset [200166] by sbarati@apple.com
  • 3 edits in trunk/Source/WebCore

Move the implementation of Settings::globalConstRedeclarationShouldThrow into the cpp file
https://bugs.webkit.org/show_bug.cgi?id=157109

Rubber-stamped by Geoffrey Garen.

  • page/Settings.cpp:

(WebCore::Settings::networkInterfaceName):
(WebCore::Settings::globalConstRedeclarationShouldThrow):

  • page/Settings.h:

(WebCore::Settings::shouldUseHighResolutionTimers):
(WebCore::Settings::backgroundShouldExtendBeyondPage):
(WebCore::Settings::globalConstRedeclarationShouldThrow): Deleted.

18:53 Changeset [200165] by dino@apple.com
  • 4 edits
    3 adds in trunk

RTL non-native <select> buttons should have arrows on the left
https://bugs.webkit.org/show_bug.cgi?id=157112
<rdar://problem/25894441>

Reviewed by Simon Fraser.

Source/WebCore:

The <select> elements that are completely rendered by WebCore
(i.e. not the native controls) always assumed that they
were left-to-right.

This change allows the button to handle both directions,
swapping the side the little arrows are rendered on, as
well as the padding of the text label.

Test: fast/forms/select-non-native-rendering-direction.html

  • rendering/RenderMenuList.cpp:

(RenderMenuList::clientPaddingLeft): This must take into account
the direction of the element.
(RenderMenuList::clientPaddingRight): Ditto.

  • rendering/RenderThemeMac.mm: Change the left and right constants

to use the terms before and after.
(WebCore::RenderThemeMac::paintMenuListButtonDecorations): The left
and right positions must take the direction into account, which
means different calculations.
(WebCore::RenderThemeMac::popupInternalPaddingBox): Similarly for
the padding that is used to position the text label.

LayoutTests:

New test that checks the layout of WebCore-drawn <select>
elements in right-to-left mode.

  • fast/forms/select-non-native-rendering-direction.html: Added.
  • platform/mac/fast/forms/select-non-native-rendering-direction-expected.png: Added.
  • platform/mac/fast/forms/select-non-native-rendering-direction-expected.txt: Added.
18:33 Changeset [200164] by simon.fraser@apple.com
  • 5 edits in trunk/Source/WebCore

CSS and SVG animations should run at 60fps
https://bugs.webkit.org/show_bug.cgi?id=157113
rdar://problem/24337280
rdar://problem/24337328

Reviewed by Dean Jackson.

For both CSS and SVG animations we used a 0.025s frame interval, which translates to
40fps. That caused these animations to look extra janky compared with accelerated
animations.

So use a 16.667ms frame interval for both.

Tested by content-animation benchmark tests.

  • page/animation/AnimationController.cpp:
  • svg/animation/SMILTime.h:
  • svg/animation/SMILTimeContainer.cpp:

(WebCore::SMILTimeContainer::updateAnimations):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::calculateNextProgressTime):

18:16 Changeset [200163] by beidson@apple.com
  • 45 edits in trunk

Modern IDB: Implement native IDBFactory.getAllDatabaseNames for WebInspector.
https://bugs.webkit.org/show_bug.cgi?id=157072

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Covered by changes to existing test).

Implement a new "getAllDatabaseNames" call on IDBFactory.

It is not exposed to the DOM, and is meant solely for internal WebInspector use.

  • Modules/indexeddb/DOMWindowIndexedDatabase.h: Export some stuff to WebCoreTestSupport
  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::createObjectStore):

  • Modules/indexeddb/IDBDatabaseIdentifier.cpp:

(WebCore::IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot):

  • Modules/indexeddb/IDBDatabaseIdentifier.h:
  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::getAllDatabaseNames):

  • Modules/indexeddb/IDBFactory.h:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::getAllDatabaseNames):

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::getAllDatabaseNames):
(WebCore::IDBClient::IDBConnectionToServer::didGetAllDatabaseNames):

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
  • Modules/indexeddb/server/IDBConnectionToClient.cpp:

(WebCore::IDBServer::IDBConnectionToClient::didGetAllDatabaseNames):

  • Modules/indexeddb/server/IDBConnectionToClient.h:
  • Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::getAllDatabaseNames):
(WebCore::IDBServer::IDBServer::performGetAllDatabaseNames): Do the actual work of getting

the appropriate directory listing and converting the paths to database names.

(WebCore::IDBServer::IDBServer::didGetAllDatabaseNames):

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

(WebCore::IDBServer::SQLiteIDBBackingStore::databaseNameFromEncodedFilename): Helper for IDBServer.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/shared/InProcessIDBServer.cpp:

(WebCore::InProcessIDBServer::getAllDatabaseNames):
(WebCore::InProcessIDBServer::didGetAllDatabaseNames):

  • Modules/indexeddb/shared/InProcessIDBServer.h:
  • inspector/InspectorIndexedDBAgent.cpp:

(WebCore::InspectorIndexedDBAgent::requestDatabaseNames): Use the new IDBFactory API to

asynchronously get the list of database names.

  • platform/CrossThreadCopier.cpp:

(WebCore::SecurityOriginData>::copy):
(WebCore::Vector<String>>::copy):

  • platform/CrossThreadCopier.h:
  • platform/FileSystem.cpp:

(WebCore::decodeFromFilename): Perform the reverse of encodeForFilename.

  • platform/FileSystem.h:
  • platform/cf/FileSystemCF.cpp:

(WebCore::stringFromFileSystemRepresentation):

  • platform/glib/FileSystemGlib.cpp:

(WebCore::stringFromFileSystemRepresentation):

  • platform/posix/FileSystemPOSIX.cpp:

(WebCore::lastComponentOfPathIgnoringTrailingSlash): Utility for peeling off the last component

of a multi-component path.

(WebCore::listDirectory): This was broken when returning filenames with UTF in them. Fix it.

  • platform/mac/WebCoreNSURLExtras.mm: Move the static hex digit utility functions to WTF.

(WebCore::userVisibleString):
(WebCore::isUserVisibleURL):
(WebCore::isHexDigit): Deleted.
(WebCore::hexDigit): Deleted.
(WebCore::hexDigitValue): Deleted.

Source/WebKit2:

Handle the process hop for the new getAllDatabaseNames call.

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::didGetAllDatabaseNames):
(WebKit::WebIDBConnectionToClient::getAllDatabaseNames):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
  • Shared/WebCrossThreadCopier.cpp:

(WebCore::SecurityOriginData>::copy): Deleted, as its in WebCore now.

  • Shared/WebCrossThreadCopier.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::getAllDatabaseNames):
(WebKit::WebIDBConnectionToServer::didGetAllDatabaseNames):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:

Source/WTF:

Moved these Hex Digit utilities from WebCore URL code (???),
and add a checked version of getting the hex digit value.

  • wtf/HexNumber.h:

(WTF::isHexDigit):
(WTF::uncheckedHexDigit):
(WTF::hexDigitValue):
(WTF::uncheckedHexDigitValue):

LayoutTests:

Add more to this test and re-enable it.

  • TestExpectations:
  • inspector/indexeddb/requestDatabaseNames-expected.txt:
  • inspector/indexeddb/requestDatabaseNames.html:
16:53 Changeset [200162] by enrica@apple.com
  • 5 edits in trunk/Source/WebCore

Refactor findExplodedTextNodeAtPoint to move core functionality in RenderBlockFlow.
https://bugs.webkit.org/show_bug.cgi?id=157076

Reviewed by Simon Fraser.

  • bindings/objc/DOMUIKitExtensions.mm:

(-[DOMNode findExplodedTextNodeAtPoint:]):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::findClosestTextAtAbsolutePoint):

  • rendering/RenderBlockFlow.h:
  • rendering/RenderText.h:
16:51 Changeset [200161] by simon.fraser@apple.com
  • 10 edits in trunk/Source

[iOS WK2] When determining tile size, check whether ancestor UIScrollViews are actually scrollable
https://bugs.webkit.org/show_bug.cgi?id=157107
rdar://problem/25943577

Reviewed by Tim Horton.
Source/WebCore:

Rename "enclosedInScrollView" to "enclosedInScrollableAncestorView" everywhere.

  • page/FrameView.cpp:

(WebCore::FrameView::adjustTiledBackingScrollability):

  • page/Page.h:

(WebCore::Page::enclosedInScrollableAncestorView):
(WebCore::Page::setEnclosedInScrollableAncestorView):
(WebCore::Page::enclosedInScrollView): Deleted.
(WebCore::Page::setEnclosedInScrollView): Deleted.

Source/WebKit2:

We should only fall back to 512x512 tiles if the WKWebView has a UIScrollView ancestor,
and that UIScrollView actually scrolls. This avoids falling back to small tiles in
MobileSafari.

Rename "enclosedInScrollView" to "enclosedInScrollableAncestorView" everywhere.

  • Shared/VisibleContentRectUpdateInfo.cpp:

(WebKit::VisibleContentRectUpdateInfo::encode):
(WebKit::VisibleContentRectUpdateInfo::decode):

  • Shared/VisibleContentRectUpdateInfo.h:

(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::enclosedInScrollableAncestorView):
(WebKit::operator==):
(WebKit::VisibleContentRectUpdateInfo::enclosedInScrollView): Deleted.

  • UIProcess/API/Cocoa/WKWebView.mm:

(scrollViewCanScroll):
(-[WKWebView _updateContentRectsWithState:]):

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

(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):
(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollView:]): Deleted.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateVisibleContentRects):

16:51 Changeset [200160] by simon.fraser@apple.com
  • 6 edits
    1 add in trunk/LayoutTests

Test gardening; update results of tests that are marked as flakey.

  • TestExpectations:
  • platform/mac/transitions/cross-fade-background-image-expected.png:
  • platform/mac/transitions/cross-fade-background-image-expected.txt: Added.
  • platform/mac/transitions/cross-fade-border-image-expected.png:
  • platform/mac/transitions/cross-fade-border-image-expected.txt:
  • platform/mac/transitions/move-after-transition-expected.png:
  • platform/mac/transitions/move-after-transition-expected.txt:
16:32 Changeset [200159] by mcatanzaro@igalia.com
  • 2 edits in trunk/Source/WebCore

[SOUP] Implement PlatformCookieJar::addCookie
https://bugs.webkit.org/show_bug.cgi?id=156295

Reviewed by Carlos Garcia Campos.

  • platform/network/soup/CookieJarSoup.cpp:

(WebCore::msToSoupDate):
(WebCore::toSoupCookie):
(WebCore::addCookie):

16:31 Changeset [200158] by cdumez@apple.com
  • 6 edits in trunk/Source/WebCore

Let the bindings generator use WTF::Optional for optional parameters using [Clamp]
https://bugs.webkit.org/show_bug.cgi?id=157077

Reviewed by Darin Adler.

Let the bindings generator use WTF::Optional for optional parameters using [Clamp],
if they do not have a default value.

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::close):

  • Modules/websockets/WebSocket.h:
  • Modules/websockets/WebSocket.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(CanUseWTFOptionalForParameter): Deleted.

16:24 Changeset [200157] by adachan@apple.com
  • 10 edits in trunk/Source

Set WebVideoFullscreenInterfaceMac up as a client of WebPlaybackSessionInterfaceMac to listen for playback state changes
https://bugs.webkit.org/show_bug.cgi?id=157008

Reviewed by Jer Noble.

Source/WebCore:

For WebVideoFullscreenInterfaceMac to be notified when the playback rate changes in
WebPlaybackSessionInterfaceMac, add a new WebPlaybackSessionInterfaceMacClient base
class that WebVideoFullscreenInterfaceMac implements, similar to the WebPlaybackSessionInterfaceAVKitClient
on iOS. WebVideoFullscreenInterfaceMac sets itself as a client of WebPlaybackSessionInterfaceMac
so WebPlaybackSessionInterfaceMac can notify WebVideoFullscreenInterfaceMac whenever the
playback rate changes.

  • platform/cocoa/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::setWebVideoFullscreenInterface):
We should not change the WebPlaybackSessionModelMediaElement's interface here since WebPlaybackSessionManager
has already set that up when creating the context for this media element.
(WebVideoFullscreenModelVideoElement::setVideoElement):
We should not change the WebPlaybackSessionModelMediaElement's media element here because
this will be called with NULL when the fullscreen context is cleaned up, but the
WebPlaybackSessionModelMediaElement might still need to stay around. We'll make sure the
WebPlaybackSessionModelMediaElement's media element is set when setting up the fullscreen
context in WebVideoFullscreenManager::enterVideoFullscreenForVideoElement().

  • platform/mac/WebPlaybackSessionInterfaceMac.h:

(WebCore::WebPlaybackSessionInterfaceMacClient::~WebPlaybackSessionInterfaceMacClient):

  • platform/mac/WebPlaybackSessionInterfaceMac.mm:

(WebCore::WebPlaybackSessionInterfaceMac::setClient):
Set the client. Notify the client about the current playback state.
(WebCore::WebPlaybackSessionInterfaceMac::setRate):
If a client is set, let that client know about the change in playback rate.

  • platform/mac/WebVideoFullscreenInterfaceMac.h:
  • platform/mac/WebVideoFullscreenInterfaceMac.mm:

(WebCore::WebVideoFullscreenInterfaceMac::WebVideoFullscreenInterfaceMac):
Set itself as a client of WebPlaybackSessionInterfaceMac.
(WebCore::WebVideoFullscreenInterfaceMac::~WebVideoFullscreenInterfaceMac):
Make sure WebPlaybackSessionInterfaceMac won't hold onto a stale pointer to itself.
(WebCore::WebVideoFullscreenInterfaceMac::setRate):
We don't have to update the WebVideoFullscreenInterfaceMac's rate here anymore. The change
in playback rate in WebPlaybackSessionInterfaceMac should trigger
WebVideoFullscreenInterfaceMac::rateChanged() to be called.
(WebCore::WebVideoFullscreenInterfaceMac::rateChanged):
Pass in both the isPlaying state and the playback rate to WebVideoFullscreenInterfaceMacObjC.

Source/WebKit2:

Since WebVideoFullscreenInterfaceMac holds onto WebPlaybackSessionInterfaceMac, we can't let
WebPlaybackSessionManagerProxy unregister the context for that media element while
WebVideoFullscreenInterfaceMac is still using it. WebVideoFullscreenInterfaceMac should add
to the client count for that WebPlaybackSession context.

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::createModelAndInterface):
When the context for the media element is created with the WebVideoFullscreenManagerProxy, it should
add one to the client count for the media element context in WebPlaybackSessionManagerProxy.
(WebKit::WebVideoFullscreenManagerProxy::removeClientForContext):
When WebVideoFullscreenManagerProxy unregisters the context for this media element, it should
subtract one from the client count for the media element context in WebPlaybackSessionManagerProxy.

  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionManager::clearPlaybackControlsManager):
Bail early if m_controlsManagerContextId is zero. Otherwise, we'd end up sending a
ClearPlaybackControlsManager message to the UI process inadvertently.
(WebKit::WebPlaybackSessionManager::contextIdForMediaElement):
Make sure the model element for the context ID is set to the media element.

  • WebProcess/cocoa/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenManager::createModelAndInterface):
When the context for the media element is created with the WebVideoFullscreenManager, it should
add one to the client count for the media element context in WebPlaybackSessionManager.
(WebKit::WebVideoFullscreenManager::removeContext):
When WebVideoFullscreenManager unregisters the context for this media element, it should
subtract one from the client count for the media element context in WebPlaybackSessionManager.

15:53 Changeset [200156] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Modernize platform/CrossThreadCopier.h style.
https://bugs.webkit.org/show_bug.cgi?id=157106

Reviewed by Alex Christensen.

No new tests (No change in behavior).

  • platform/CrossThreadCopier.h:

(WebCore::CrossThreadCopierPassThrough::copy):
(WebCore::AllowCrossThreadAccessWrapper::AllowCrossThreadAccessWrapper):
(WebCore::AllowCrossThreadAccessWrapper::value):
(WebCore::AllowCrossThreadAccess):
(WebCore::AllowAccessLaterWrapper::AllowAccessLaterWrapper):
(WebCore::AllowAccessLaterWrapper::value):
(WebCore::AllowAccessLater):

15:50 Changeset [200155] by dbates@webkit.org
  • 4 edits
    2 copies
    11 adds in trunk/LayoutTests

CSP: Add tests for setting allowContentSecurityPolicySourceStarToMatchAnyProtocol
https://bugs.webkit.org/show_bug.cgi?id=157100

Reviewed by Brent Fulgham.

Add tests to ensure that we do not regress the behavior of setting allowContentSecurityPolicySourceStarToMatchAnyProtocol.
For completeness, this setting was added in r200130 (https://bugs.webkit.org/show_bug.cgi?id=157005) to enable or disable
whether source * can match any protocol as part of a workaround for the iOS apps Ecobee and Quora.

  • fast/dom/HTMLImageElement/image-with-blob-url-allowed-by-csp-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Added.
  • fast/dom/HTMLImageElement/image-with-blob-url-allowed-by-csp-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Added.
  • fast/dom/HTMLImageElement/image-with-file-url-allowed-by-csp-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Added.
  • fast/dom/HTMLImageElement/image-with-file-url-allowed-by-csp-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Added.
  • fast/dom/HTMLLinkElement/link-with-blob-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Added.
  • fast/dom/HTMLLinkElement/link-with-blob-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Added.
  • fast/dom/HTMLLinkElement/link-with-data-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Added.
  • fast/dom/HTMLLinkElement/link-with-data-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Added.
  • fast/dom/HTMLLinkElement/link-with-file-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Added.
  • fast/dom/HTMLLinkElement/link-with-file-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Added.
  • fast/dom/HTMLLinkElement/resources/green-background-color.css: Added.

(#test):

  • media/video-with-file-url-allowed-by-csp-media-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Copied from LayoutTests/media/video-with-file-url-blocked-by-csp-media-src-star.html.
  • media/video-with-file-url-allowed-by-csp-media-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Copied from LayoutTests/media/video-with-file-url-blocked-by-csp-media-src-star.html.
  • media/video-with-file-url-blocked-by-csp-media-src-star-expected.html: Substitute "blocked" for "allowed" since the purpose of the corresponding

test is to ensure that we block loading a file URL video.

  • media/video-with-file-url-blocked-by-csp-media-src-star.html: Substitute "blocked" for "allowed" since the purpose of this test is to ensure

that we block loading a file URL video. Additionally, register an oncanplaythrough handler instead of an onloadedmetadata handler and call testFinished()
to signal test completion on a zero timer as a means to help ensure that the first frame of the video is drawn should we regress the blocking of a video file URL.

  • platform/wk2/TestExpectations: Skip test LayoutTests/fast/dom/HTMLImageElement/image-with-blob-url-allowed-by-csp-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html

when using WebKitTestRunner because WebKitTestRunner does not support eventSender.beginDragWithFiles(). See need to fix
<https://bugs.webkit.org/show_bug.cgi?id=64285>.

15:48 Changeset [200154] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Missing CSS autocompletion suggestions for -webkit-user-select
https://bugs.webkit.org/show_bug.cgi?id=157104

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-04-27
Reviewed by Timothy Hatcher.

  • UserInterface/Models/CSSKeywordCompletions.js:
15:36 Changeset [200153] by ryanhaddad@apple.com
  • 2 edits in trunk/LayoutTests

Marking compositing/contents-scale/incremental-change.html as a flaky failure on ios-simulator-wk2
https://bugs.webkit.org/show_bug.cgi?id=157105

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
14:39 Changeset [200152] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Remove download message receiver when NetworkProcess crashes
https://bugs.webkit.org/show_bug.cgi?id=157102
<rdar://problem/25550106>

Reviewed by Anders Carlsson.

  • UIProcess/Downloads/DownloadProxyMap.cpp:

(WebKit::DownloadProxyMap::processDidClose):
When the NetworkProcess crashes during a download, we want to remove the message receiver from the map
so we don't get an assertion in ~MessageReceiver in the UIProcess so we do not have a freed
message receiver in the map.

14:25 Changeset [200151] by fpizlo@apple.com
  • 2 edits in trunk/Source/WebCore

Speculative fix for null pointer dereference.
rdar://problem/25964854

Reviewed by Michael Saboff.

  • platform/mac/Language.mm:

(WebCore::isValidICUCountryCode):

14:07 Changeset [200150] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Clean up Font::removeFromSystemFallbackCache()
https://bugs.webkit.org/show_bug.cgi?id=157093

Reviewed by Darin Adler.

Fonts have a bit which represents whether or not the system fallback cache references them.
This bit gets set to 1 when they are inserted into the system fallback cache, but was not
being reset back to 0 when it was removed.

This is benign, since the old codepath has no effect. However, we can speed up the function
by properly updating this bit.

No new tests because there is no behavior change.

  • platform/graphics/Font.cpp:

(WebCore::Font::removeFromSystemFallbackCache):

13:54 Changeset [200149] by keith_miller@apple.com
  • 40 edits
    5 deletes in trunk

Unreviewed, Revert r199397 due to PLT regressions

Source/JavaScriptCore:

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/ArrayPrototype.js:

(concatSlowPath): Deleted.
(concat): Deleted.

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry): Deleted.

  • bytecode/BytecodeIntrinsicRegistry.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):
(JSC::DFG::ByteCodeParser::handleIntrinsicCall): Deleted.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC): Deleted.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute): Deleted.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::compileIsJSArray): Deleted.
(JSC::DFG::SpeculativeJIT::compileIsArrayObject): Deleted.
(JSC::DFG::SpeculativeJIT::compileIsArrayConstructor): Deleted.
(JSC::DFG::SpeculativeJIT::compileCallObjectConstructor): Deleted.

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation): Deleted.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile): Deleted.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile): Deleted.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::compileCallObjectConstructor): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::compileIsArrayObject): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::compileIsJSArray): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::compileIsArrayConstructor): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::isArray): Deleted.

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

(GlobalObject::finishCreation):
(functionDataLogValue): Deleted.

  • runtime/ArrayConstructor.cpp:

(JSC::ArrayConstructor::finishCreation):
(JSC::arrayConstructorPrivateFuncIsArrayConstructor):

  • runtime/ArrayConstructor.h:

(JSC::isArrayConstructor): Deleted.

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):
(JSC::arrayProtoFuncConcat):
(JSC::arrayProtoPrivateFuncIsJSArray): Deleted.
(JSC::moveElements): Deleted.
(JSC::arrayProtoPrivateFuncConcatMemcpy): Deleted.
(JSC::arrayProtoPrivateFuncAppendMemcpy): Deleted.

  • runtime/ArrayPrototype.h:
  • runtime/CommonIdentifiers.h:
  • runtime/Intrinsic.h:
  • runtime/JSArray.cpp:

(JSC::JSArray::fastConcatWith):
(JSC::JSArray::appendMemcpy): Deleted.

  • runtime/JSArray.h:

(JSC::JSArray::fastConcatType):
(JSC::JSArray::createStructure):
(JSC::isJSArray):

  • runtime/JSArrayInlines.h: Removed.

(JSC::JSArray::memCopyWithIndexingType): Deleted.
(JSC::JSArray::canFastCopy): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSType.h:
  • runtime/ObjectConstructor.h:

(JSC::constructObject): Deleted.

  • tests/es6.yaml:
  • tests/stress/array-concat-spread-object.js: Removed.

(arrayEq): Deleted.

  • tests/stress/array-concat-spread-proxy-exception-check.js: Removed.

(arrayEq): Deleted.

  • tests/stress/array-concat-spread-proxy.js: Removed.

(arrayEq): Deleted.

  • tests/stress/array-concat-with-slow-indexingtypes.js: Removed.

(arrayEq): Deleted.

  • tests/stress/array-species-config-array-constructor.js:

LayoutTests:

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/dom/array-prototype-properties-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
13:49 Changeset [200148] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Fix client certificate authentication with NSURLSession on iOS
https://bugs.webkit.org/show_bug.cgi?id=157094
<rdar://problem/25946859>

Patch by Alex Christensen <achristensen@webkit.org> on 2016-04-27
Reviewed by Darin Adler.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
We only want to create a non-persistent credential with the given user and password
and store the user and password in the CredentialStorage if there is a user and password.
We previously only skipped this if we were doing server trust evaluation, in which case
we will have a credential from serverTrustCredential which has no user or password.
When doing client certificate authentication on iOS, this completion handler is called with
a credential with session persistence and also no user or password, so we need to do the same thing.
The reason this was never hit on Mac was because the credential came from tryUseCertificateInfoForChallenge,
which always had persistence none.

13:37 Changeset [200147] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r200117): Crash in lowerDFGToB3::compileStringReplace()
https://bugs.webkit.org/show_bug.cgi?id=157099

Reviewed by Saam Barati.

Given that the DFGFixupPhase could mark the edge of child2 as StringUse,
we need to lower that edge appropriately.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileStringReplace):

13:11 Changeset [200146] by ryanhaddad@apple.com
  • 4 edits in trunk/LayoutTests

Remove failure expectation for tests that now pass on ios-simulator.

Unreviewed test gardening.

I evaluated all of the unexpected passes from ios-simulator-wk2 and removed failure
expectations where appropriate. Some of the tests only pass on wk2, so some expectations
were moved to the ios-simulator-wk1 file.

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
12:45 Changeset [200145] by commit-queue@webkit.org
  • 1 edit
    6 adds in trunk/LayoutTests

Add layout tests for legacy HTTP headers in WebSockets
https://bugs.webkit.org/show_bug.cgi?id=157095

Patch by John Wilander <wilander@apple.com> on 2016-04-27
Reviewed by Alexey Proskuryakov.

  • http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers-expected.txt: Added.
  • http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers.html: Added.
  • http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers_wsh.py: Added.

(web_socket_do_extra_handshake):
(web_socket_transfer_data):

Test for legacy response headers 'Sec-WebSocket-Location' and 'Sec-WebSocket-Origin'.

  • http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers-expected.txt: Added.
  • http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers.html: Added.
  • http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers_wsh.py: Added.

(web_socket_do_extra_handshake):
(web_socket_transfer_data):

Test for legacy response headers 'WebSocket-Location' and 'WebSocket-Origin'.

12:40 Changeset [200144] by adam.bergkvist@ericsson.com
  • 6 edits
    1 delete in trunk

WebRTC: RTCIceCandidate don't need a custom bindings
https://bugs.webkit.org/show_bug.cgi?id=157074

Reviewed by Eric Carlson.

Source/WebCore:

Removed custom constructor and replaced custom attribute getters with
nullable types. Removed custom binding from builds.

Testing: Updated existing test.

  • CMakeLists.txt:
  • Modules/mediastream/RTCIceCandidate.idl:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSRTCIceCandidateCustom.cpp: Removed.

(WebCore::constructJSRTCIceCandidate): Deleted.
(WebCore::JSRTCIceCandidate::sdpMid): Deleted.
(WebCore::JSRTCIceCandidate::sdpMLineIndex): Deleted.

LayoutTests:

  • fast/mediastream/RTCIceCandidate-expected.txt:

Updated with error messages from generated constructor binding.

12:39 Changeset [200143] by csaavedra@igalia.com
  • 3 edits
    2 copies
    1 add
    2 deletes in trunk/Source/WebKit2

[GTK][EFL] Move WK2 platform code to a common place
https://bugs.webkit.org/show_bug.cgi?id=157069

Reviewed by Carlos Garcia Campos.

Logging implementation can be shared between EFL and GTK, so move it to unix.
The GTK Module implementation doesn't depend on GTK anyhow so move it to glib.

  • Platform/efl/LoggingEfl.cpp: Removed.

(WebKit::logLevelString): Deleted.

  • Platform/glib/ModuleGlib.cpp: Renamed from Source/WebKit2/Platform/gtk/ModuleGtk.cpp.

(WebKit::Module::load):
(WebKit::Module::unload):
(WebKit::Module::platformFunctionPointer):

  • Platform/gtk/LoggingGtk.cpp:

(WebKit::logLevelString): Deleted.

  • Platform/gtk/ModuleGtk.cpp:

(WebKit::Module::load): Deleted.
(WebKit::Module::unload): Deleted.
(WebKit::Module::platformFunctionPointer): Deleted.

  • Platform/unix/LoggingUnix.cpp: Renamed from Source/WebKit2/Platform/gtk/LoggingGtk.cpp.

(WebKit::logLevelString):

  • PlatformEfl.cmake: Update.
  • PlatformGTK.cmake: Update
12:30 Changeset [200142] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Fix assertion when downloading with NSURLSession after r198955
https://bugs.webkit.org/show_bug.cgi?id=157051

Patch by Alex Christensen <achristensen@webkit.org> on 2016-04-27
Reviewed by Brady Eidson.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::continueDecidePendingDownloadDestination):

12:01 Changeset [200141] by cdumez@apple.com
  • 3 edits in trunk/Source/WebCore

Unreviewed, rolling out r199383.

Seems to have caused a 0.5% PLT regression on iOS

Reverted changeset:

"[iOS] do not exit AirPlay when the screen locks"
https://bugs.webkit.org/show_bug.cgi?id=156502
http://trac.webkit.org/changeset/199383

12:00 Changeset [200140] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

Remove unnecessary HashMap from Font
https://bugs.webkit.org/show_bug.cgi?id=157090

Reviewed by Darin Adler.

There were only ever a maximum of 2 keys in the hashmap.

No new tests because there is no behavior change.

  • platform/graphics/Font.h:
  • platform/graphics/mac/SimpleFontDataCoreText.cpp:

(WebCore::Font::getCFStringAttributes):

12:00 Changeset [200139] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Address feedback from https://bugs.webkit.org/show_bug.cgi?id=157048#c5.
https://bugs.webkit.org/show_bug.cgi?id=157096

Reviewed by Geoffrey Garen.

  1. Check for USE(APPLE_INTERNAL_SDK) instead of has_include(<mach-o/dyld_priv.h>).
  2. Rename webkitFirstSDKVersionWithInitConstructorSupport to firstSDKVersionWithInitConstructorSupport.
  • API/JSWrapperMap.mm:

(supportsInitMethodConstructors):

11:59 Changeset [200138] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

Rename DerivedFontData to DerivedFonts
https://bugs.webkit.org/show_bug.cgi?id=157092

Reviewed by Darin Adler.

This is a follow-up to r178510 where we named SimpleFontData to Font.
This patch didn't include renaming DerivedFontData to DerivedFonts.

No new tests because there is no behavior change.

  • platform/graphics/Font.cpp:

(WebCore::Font::verticalRightOrientationFont):
(WebCore::Font::uprightOrientationFont):
(WebCore::Font::smallCapsFont):
(WebCore::Font::noSynthesizableFeaturesFont):
(WebCore::Font::emphasisMarkFont):
(WebCore::Font::brokenIdeographFont):
(WebCore::Font::nonSyntheticItalicFont):
(WebCore::Font::DerivedFonts::~DerivedFonts):
(WebCore::Font::DerivedFontData::~DerivedFontData): Deleted.

  • platform/graphics/Font.h:

(WebCore::Font::DerivedFonts::DerivedFonts):
(WebCore::Font::DerivedFontData::DerivedFontData): Deleted.

11:57 Changeset [200137] by eric.carlson@apple.com
  • 4 edits in trunk/LayoutTests

media/video-fullscreen-restriction-removed.html is flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=156983

Reviewed by Darin Adler.

  • media/video-fullscreen-restriction-removed-expected.txt:
  • media/video-fullscreen-restriction-removed.html: Start the test on 'canplaythrough' instead of 'loadedmetadata' so playback can begin immediately.
11:36 Changeset [200136] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Restrict the availability of some JSC options to local debug builds only.
https://bugs.webkit.org/show_bug.cgi?id=157058

Reviewed by Geoffrey Garen.

  1. Each option will be given an availability flag.
  2. The functionOverrides and useDollarVM (along with its alias, enableDollarVM) will have "Restricted" availability.
  3. All other options will have “Normal” availability.
  4. Any options with "Restricted" availability will only be accessible if function allowRestrictedOptions() returns true.
  5. For now, allowRestrictedOptions() always returns false for release builds, and true for debug builds.

If an option is "Restricted" and restricted options are not allowed, the VM will
behave semantically as if that option does not exist at all:

  1. Option dumps will not show the option.
  2. Attempts to set the option will fail as if the option does not exist.

Behind the scene, the option does exist, and is set to its default value
(whatever that may be) once and only once on options initialization.

  • runtime/Options.cpp:

(JSC::allowRestrictedOptions):
(JSC::parse):
(JSC::overrideOptionWithHeuristic):
(JSC::Options::initialize):
(JSC::Options::setOptionWithoutAlias):
(JSC::Options::dumpOption):

  • runtime/Options.h:

(JSC::Option::type):
(JSC::Option::availability):
(JSC::Option::isOverridden):

11:21 Changeset [200135] by ryanhaddad@apple.com
  • 1 edit
    1 add in trunk/LayoutTests

Add ios-simulator baseline for LayoutTest fast/text/hyphenate-avoid-orphaned-word.html

Unreviewed test gardening.

  • platform/ios-simulator/fast/text/hyphenate-avoid-orphaned-word-expected.txt: Added.
11:03 Changeset [200134] by barraclough@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Enable separated heap by default on ios
https://bugs.webkit.org/show_bug.cgi?id=156720
<rdar://problem/25841790>

Unreviewed rollout - caused memory regression.

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

10:58 Changeset [200133] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Follow up for r200113 on 32bit

I forgot to do the 32bit counterpart of r200113.
The test fails on the bots.

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-04-27

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

10:53 Changeset [200132] by caitp@igalia.com
  • 1 edit in trunk/Tools/Scripts/webkitpy/common/config/contributors.json

Add Caitlin Potter (:caitp) as a committer.

10:05 Changeset [200131] by cdumez@apple.com
  • 11 edits in trunk/Source/WebCore

[Web IDL] Clean up support for [Clamp] IDL extended attribute
https://bugs.webkit.org/show_bug.cgi?id=157060

Reviewed by Darin Adler.

Clean up support for [Clamp] IDL extended attribute:

  1. Move [Clamp] handling in the bindings generator from the parameter

conversion to JSValueToNative(). This has the benefit of
simplifying the parameter conversion code, adding support for [Clamp]
on non-readonly attributes, and improving consistency by handling
this in the same place as [EnforceRange].

  1. Add 'Clamp' to the IntegerConversionConfiguration enumeration in

JSDOMbindings.h and add support for it to the various toInt*() /
toUInt*() functions, similary to [EnforceRange]. Call these from
the generated bindings.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::toSmallerInt):
(WebCore::toSmallerUInt):
(WebCore::toInt32EnforceRange):
(WebCore::toInt32Clamp):
(WebCore::toUInt32Clamp):
(WebCore::toUInt32EnforceRange):
(WebCore::toInt64):
(WebCore::toUInt64):
(WebCore::toUInt8): Deleted.
(WebCore::toUInt16): Deleted.

  • bindings/js/JSDOMBinding.h:

(WebCore::toInt32):
(WebCore::toUInt32):

  • bindings/scripts/CodeGeneratorJS.pm:

(JSValueToNative):
(GenerateParametersCheck): Deleted.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_set_property):
(webkit_dom_test_obj_get_property):
(webkit_dom_test_obj_class_init):
(webkit_dom_test_obj_class_method_with_enforce_range):
(webkit_dom_test_obj_get_clamped_short_attr):
(webkit_dom_test_obj_set_clamped_short_attr):
(webkit_dom_test_obj_get_enforce_range_short_attr):
(webkit_dom_test_obj_set_enforce_range_short_attr):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjClampedShortAttr):
(WebCore::jsTestObjEnforceRangeShortAttr):
(WebCore::setJSTestObjClampedShortAttr):
(WebCore::setJSTestObjEnforceRangeShortAttr):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRange):
(WebCore::jsTestObjConstructorFunctionClassMethodWithOptional): Deleted.
(WebCore::jsTestObjConstructorFunctionClassMethod2): Deleted.

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
(WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction): Deleted.

  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:

(-[DOMTestObj clampedShortAttr]):
(-[DOMTestObj setClampedShortAttr:]):
(-[DOMTestObj enforceRangeShortAttr]):
(-[DOMTestObj setEnforceRangeShortAttr:]):
(-[DOMTestObj classMethodWithEnforceRange:objArgsLong:]):

  • bindings/scripts/test/TestObj.idl:
09:48 Changeset [200130] by dbates@webkit.org
  • 10 edits in trunk/Source

CSP: Add app-specific workaround for Ecobee and Quora
https://bugs.webkit.org/show_bug.cgi?id=157005
<rdar://problem/25560776>

Reviewed by Brent Fulgham.

Source/WebCore:

  • page/Settings.in: Add setting allowContentSecurityPolicySourceStarToMatchAnyProtocol (disabled by default).
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowContentSecurityPolicySourceStarToMatchAnyProtocol): Added.

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

(WebCore::ContentSecurityPolicySourceList::isProtocolAllowedByStar): Modified to return true
if ContentSecurityPolicy::allowContentSecurityPolicySourceStarToMatchAnyProtocol() evaluates to true.

  • platform/RuntimeApplicationChecks.h:
  • platform/RuntimeApplicationChecks.mm:

(WebCore::IOSApplication::isEcobee): Added.
(WebCore::IOSApplication::isQuora): Added.

Source/WebKit/mac:

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

(shouldAllowContentSecurityPolicySourceStarToMatchAnyProtocol): Added.
(-[WebView _preferencesChanged:]): Enable setting allowContentSecurityPolicySourceStarToMatchAnyProtocol
if applicable.

09:47 Changeset [200129] by carlosgc@webkit.org
  • 15 edits
    1 delete in trunk/Source

REGRESSION(r200094): [FreeType] Vertical text is broken after r200094
https://bugs.webkit.org/show_bug.cgi?id=157066

Reviewed by Martin Robinson.

Source/WebCore:

The problem is that Freetype implementation needs to call buildScaledFont() when orientation, SyntheticOblique
or size change, but the new static clone methods don't do that. I think it's the time to stop using our own
header for FontPlatformData for the FreeType implementation to make cross-platform changes easier and prevent
regressions like this in the future.

  • CMakeLists.txt: Compile FontPlatformData.cpp for all ports.
  • PlatformMac.cmake: Remove FontPlatformData.cpp.
  • PlatformWin.cmake: Ditto.
  • platform/graphics/FontPlatformData.cpp: We need our own clone methods in the FreeType backend.
  • platform/graphics/FontPlatformData.h: Move FreeType specific methods and members from the old header file.
  • platform/graphics/cairo/CairoUtilities.cpp:

(WebCore::CairoFtFaceLocker::CairoFtFaceLocker): Move CairoFtFaceLocker implementation here from
HarfBuzzFaceCairo.cpp to make it available to other classes, and make it handle the case of
cairo_ft_scaled_font_lock_face() returning nullptr.
(WebCore::CairoFtFaceLocker::~CairoFtFaceLocker):

  • platform/graphics/cairo/CairoUtilities.h:

(WebCore::CairoFtFaceLocker::ftFace):

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::findBestFontGivenFallbacks): Move the fallbacks implementation to FontPlatformData where it belongs
and here simply use FontPlatformData::fallbacks().

  • platform/graphics/freetype/FontPlatformData.h: Removed.
  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::FontPlatformData): Remove members already initialized in the header.
(WebCore::FontPlatformData::operator=): Add missing members to be copied.
(WebCore::FontPlatformData::~FontPlatformData): Do not free m_scaledFont manually since we are now using a smart pointer.
(WebCore::FontPlatformData::cloneWithOrientation): Call buildScaledFont() like setOrientation() did.
(WebCore::FontPlatformData::cloneWithSyntheticOblique): Call buildScaledFont() like setSyntheticOblique() did.
(WebCore::FontPlatformData::cloneWithSize): Call buildScaledFont().
(WebCore::FontPlatformData::fallbacks): Lazily initialize fallbacks if needed and return it.
(WebCore::FontPlatformData::platformIsEqual): Only compare FreeType specific members.
(WebCore::FontPlatformData::buildScaledFont): Use RefPtr for m_scaledFont.
(WebCore::FontPlatformData::hasCompatibleCharmap): Use CairoFtFaceLocker.
(WebCore::FontPlatformData::openTypeTable): Update to return RefPtr instead of PassRefPtr and use CairoFtFaceLocker.
(WebCore::FontPlatformData::operator==): Deleted.
(WebCore::FontPlatformData::setOrientation): Deleted.
(WebCore::FontPlatformData::setSyntheticOblique): Deleted.

  • platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:

(WebCore::GlyphPage::fill): Use CairoFtFaceLocker.

  • platform/graphics/freetype/SimpleFontDataFreeType.cpp:

(WebCore::Font::platformInit): Ditto.
(WebCore::Font::canRenderCombiningCharacterSequence): Ditto.

  • platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:

(WebCore::harfBuzzCairoGetTable): Ditto.
(WebCore::CairoFtFaceLocker::CairoFtFaceLocker): Deleted.
(WebCore::CairoFtFaceLocker::lock): Deleted.
(WebCore::CairoFtFaceLocker::~CairoFtFaceLocker): Deleted.

Source/WebKit2:

Add Source/WebCore/platform/graphics/freetype to the list of include dirs, because now FontPlatformData.h
includes FcUniquePtr.h.

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
08:58 Changeset [200128] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

08:57 Changeset [200127] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.30

New tag.

06:14 Changeset [200126] by hs85.jeong@samsung.com
  • 5 edits in trunk

[EFL][GTK] Volume slider only changes volume when thumb is released, not while dragging
https://bugs.webkit.org/show_bug.cgi?id=156970

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Volume slider have to change the volume while dragging the thumb.

Test: media/video-volume-slider-drag.html

  • Modules/mediacontrols/mediaControlsBase.js:

(Controller.prototype.createControls): Use the 'input' event instead of the 'change' to
check the changed value correctly.
(Controller.prototype.handleMaxButtonClicked):
(Controller.prototype.handleVolumeSliderInput): Renamed from handleVolumeSliderChange.
(Controller.prototype.handleVolumeSliderChange): Deleted.

LayoutTests:

Removed the passed test.

  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
04:33 WebKitGTK/2.12.x edited by berto@igalia.com
(diff)
04:12 Changeset [200125] by berto@igalia.com
  • 2 edits in trunk/Source/JavaScriptCore

[GTK] Fails to build randomly when generating LLIntDesiredOffsets.h
https://bugs.webkit.org/show_bug.cgi?id=155427

Reviewed by Carlos Garcia Campos.

If the build directory contains the -I string, the script that
generates LLIntDesiredOffsets.h will confuse it with an option to
declare an include directory.

In order to avoid that we should only use the arguments that start
with -I when extracting the list of include directories, instead
of using the ones that simply contain that string.

  • offlineasm/parser.rb:
03:02 Changeset [200124] by carlosgc@webkit.org
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Unreviewed. Fix compatibility issue with 2.12.1 regarding local storage access from file URLs.

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::canAccessStorage):

02:37 Changeset [200123] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Source/WebCore

[Fetch API] Remove FetchResponse::redirect overload
https://bugs.webkit.org/show_bug.cgi?id=157034

Reviewed by Darin Adler.

No change of behavior.

  • Modules/fetch/FetchResponse.h:
01:35 Changeset [200122] by ossy@webkit.org
  • 2 edits in trunk/Source/WebCore

[Mac][cmake] Unreviewed speculative buildfix after r200116, just for fun.

  • PlatformMac.cmake:
00:12 Changeset [200121] by sbarati@apple.com
  • 9 edits
    10 adds in trunk/Source

JSC should have an option to allow global const redeclarations
https://bugs.webkit.org/show_bug.cgi?id=157006

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

This patch implements an option that dictates whether
const redeclarations at the program level will throw.
This option defaults to true but allows users of JSC
to set it to false. This option is per VM. This is needed
for backwards compatibility with our old const implementation.

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionShadowChickenFunctionsOnStack):
(functionSetGlobalConstRedeclarationShouldNotThrow):
(functionReadline):

  • runtime/Executable.cpp:

(JSC::ProgramExecutable::initializeGlobalProperties):

  • runtime/JSGlobalLexicalEnvironment.cpp:

(JSC::JSGlobalLexicalEnvironment::put):
(JSC::JSGlobalLexicalEnvironment::isConstVariable):

  • runtime/JSGlobalLexicalEnvironment.h:

(JSC::JSGlobalLexicalEnvironment::isEmpty):

  • runtime/VM.h:

(JSC::VM::setGlobalConstRedeclarationShouldThrow):
(JSC::VM::globalConstRedeclarationShouldThrow):

  • tests/stress/global-const-redeclaration-setting: Added.
  • tests/stress/global-const-redeclaration-setting-2.js: Added.

(assert):

  • tests/stress/global-const-redeclaration-setting-3.js: Added.

(assert):
(catch):

  • tests/stress/global-const-redeclaration-setting-4.js: Added.

(assert):
(catch):

  • tests/stress/global-const-redeclaration-setting-5.js: Added.

(assert):
(catch):

  • tests/stress/global-const-redeclaration-setting.js: Added.

(assert):

  • tests/stress/global-const-redeclaration-setting/first.js: Added.
  • tests/stress/global-const-redeclaration-setting/let.js: Added.
  • tests/stress/global-const-redeclaration-setting/second.js: Added.
  • tests/stress/global-const-redeclaration-setting/strict.js: Added.

Source/WebCore:

This patch makes the JS VM not throw global const redeclaration
errors when the application is iBooks.

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::commonVM):

  • page/Settings.h:

(WebCore::Settings::shouldUseHighResolutionTimers):
(WebCore::Settings::globalConstRedeclarationShouldThrow):
(WebCore::Settings::backgroundShouldExtendBeyondPage):

04/26/16:

20:21 Changeset [200120] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Support legacy HTTP headers in WebSockets
https://bugs.webkit.org/show_bug.cgi?id=157057

Patch by John Wilander <wilander@apple.com> on 2016-04-26
Reviewed by Brent Fulgham.

No new tests since these headers are not officially supported and should not be used.

  • platform/network/HTTPHeaderNames.in:

Added four legacy headers needed to support older WebSockets servers.
Two of them are in the draft from August 2010: https://whatwg.org/specs/web-socket-protocol/

19:14 Changeset [200119] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Uncaught Exception: SecurityError: DOM Exception 18: An attempt was made to break through the security policy of the user agent.
https://bugs.webkit.org/show_bug.cgi?id=156991
<rdar://problem/25913475>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-04-26
Reviewed by Timothy Hatcher.

Source/WebKit/mac:

  • WebCoreSupport/WebInspectorClient.mm:

(-[WebInspectorWindowController init]):
Apply the same universal file access to WebKit1 Web Inspector views that
we apply to WebKit2 views. Explicitly always allow access to storage
for Web Inspector content just in case as we already allow universal
file access.

Source/WebKit2:

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):
Explicitly always allow access to storage for Web Inspector content just
in case, as we already allow universal file access.

19:02 Changeset [200118] by dino@apple.com
  • 12 edits in trunk

RTL native <select> buttons should have arrows on left
https://bugs.webkit.org/show_bug.cgi?id=157055
<rdar://problem/25894428>

Source/WebCore:

Reviewed by Myles Maxfield.

If the text direction is right-to-left, the select popup
buttons should have the arrows on the left side.

Test: fast/forms/select-writing-direction-natural.html

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::popupButtonPadding): Takes a direction parameter.
(WebCore::RenderThemeMac::popupInternalPaddingBox): Checks the direction for the padding.
(WebCore::RenderThemeMac::setPopupButtonCellState): Tell the button to put the
arrows on the correct side.
(WebCore::RenderThemeMac::popupButton): Deleted an unnecessary comment.

LayoutTests:

Reviewed by Myles Maxfield.

  • fast/forms/select-writing-direction-natural.html: Removed some incorrect

text in the test.

  • platform/ios-simulator/fast/forms/select-writing-direction-natural-expected.txt:
  • platform/mac/fast/forms/select-writing-direction-natural-expected.png:
  • platform/mac/fast/forms/select-writing-direction-natural-expected.txt:
  • platform/mac/fast/text/international/bidi-menulist-expected.png:
  • platform/mac/fast/text/international/bidi-menulist-expected.txt:
  • platform/mac/fast/text/international/pop-up-button-text-alignment-and-direction-expected.png:
  • platform/mac/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
18:28 Changeset [200117] by msaboff@apple.com
  • 36 edits
    2 adds in trunk

[ES] Implement RegExp.prototype.@@replace and use it for String.prototype.replace
https://bugs.webkit.org/show_bug.cgi?id=156562

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Added builtins for String.prototype.replace as well as RegExp.prototype[Symbol.replace].

The String.prototype.replace also has an intrinsic, StringPrototypeReplaceIntrinsic.
This original intrinsic was copied to make StringPrototypeReplaceRegExpIntrinsic.
The difference between the two intrinsics is that StringPrototypeReplaceIntrinsic has
the same checks found in the new builtin hasObservableSideEffectsForStringReplace.
We implement these primordial checks for StringPrototypeReplaceIntrinsic in two places.
First, we do a trial check during ByteCode parsing time to see if the current
RegExp.prototype properties have changed from the original. If they have, we don't
inline the intrinsic. Later, in the fixup phase, we add nodes to the IR to emit the
checks at runtime.

The new intrinsic StringPrototypeReplaceRegExpIntrinsic is only available via the
private @replaceUsingRegExp, which is called in the String.prototype.replace builtin.
It is only called after hasObservableSideEffectsForStringReplace has been called

Both of these intrinsics are needed, because the JS code containing String.replace() calls
runs initially in the LLint and then the baseline JIT. Even after the function tiers up
to the DFG JIT, the inlining budget may not allow StringPrototypeReplaceIntrinsic to be inlined.
Having StringPrototypeReplaceRegExpIntrinsic allows for the String.prototype.replace builtin to
get reasonable performance before the other intrinsic is inlined or when it can't.

  • builtins/RegExpPrototype.js:

(match):
(getSubstitution):
(replace):
(search):
(split):

  • builtins/StringPrototype.js:

(repeat):
(hasObservableSideEffectsForStringReplace):
(intrinsic.StringPrototypeReplaceIntrinsic.replace):
(localeCompare):
New builtins for String.prototype.replace and RegExp.prototype[Symbol.replace].

  • bytecode/BytecodeIntrinsicRegistry.cpp:
  • bytecode/BytecodeIntrinsicRegistry.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupGetAndSetLocalsInBlock):
(JSC::DFG::FixupPhase::tryAddStringReplacePrimordialChecks):
(JSC::DFG::FixupPhase::checkArray):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::getRegExpPrototypeProperty):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::getRegExpPrototypeProperty):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasHeapPrediction):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):

  • runtime/CommonIdentifiers.h:
  • runtime/Intrinsic.h:
  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::finishCreation):

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):
(JSC::replace):
(JSC::stringProtoFuncReplaceUsingRegExp):
(JSC::stringProtoFuncReplaceUsingStringSearch):
(JSC::operationStringProtoFuncReplaceGeneric):
(JSC::stringProtoFuncReplace): Deleted.
Added StringReplaceRegExp intrinsic. Added checks for RegExp profiled arguments to StringReplace
that mirror what is in hasObservableSideEffectsForStringReplace(). If we aren't able to add the
checks, we OSR exit. Add Graph::getPrimordialRegExpPrototypeProperty() as a helper to get the
primordial values from RegExp.prototype.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init): Added @regExpPrototypeSymbolReplace and
@hasObservableSideEffectsForStringReplace here instead og String.prototype so that we reduce the
number of objects we have to traverse.

  • tests/es6.yaml: Changed expectations for the various replace related tests to passing.
  • tests/stress/regexp-replace-proxy.js:

(assert):
(let.getProxyNullExec.new.Proxy):
(let.getSetProxyNullExec.new.Proxy):
(get resetTracking):
(let.getSetProxyMatches_comma.new.Proxy):
(set get getSetProxyNullExec):
(let.getSetProxyReplace_phoneNumber.new.Proxy):
(set get getSetProxyMatches_comma):
(let.getSetProxyReplaceUnicode_digit_nonGreedy.new.Proxy):
(set get resetTracking):

  • tests/stress/string-replace-proxy.js:

(assert):
(let.getSetProxyReplace.new.Proxy.replace):
New tests.

LayoutTests:

Updated tests. Needed to update js/regress-141098.js test, because builtins are
only compilied when called. This test checks behavior at or near running out of
stack space. It turns out that String.replace is used by the -pre.js test harness
and I was running out of stack space when compiling the String.prototype.replace
builting. Therefore, I added a call to testPassed() to precompile String.replace.

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/regress-141098-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
  • js/script-tests/regress-141098.js:

(probeAndRecurse):

  • fast/profiler/nested-start-and-stop-profiler-expected.txt:
  • js/Object-getOwnPropertyNames-expected.txt:
  • js/dom/string-prototype-properties-expected.txt:
  • js/regress-141098-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
  • js/script-tests/regress-141098.js:

(probeAndRecurse):

  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.11_String.prototype.replace/S15.5.4.11_A1_T3-expected.txt:
18:25 Changeset [200116] by mmaxfield@apple.com
  • 102 edits
    1 add
    1 delete in trunk

[WK2] [OS X] Create API for switching RTL scrollbar policy
https://bugs.webkit.org/show_bug.cgi?id=156948
<rdar://problem/25707757>

Reviewed by Darin Adler.

Source/WebCore:

There are two schools of thought for where to put scrollbars in RTL environments.
The first is that we should obey the content's "dir" attribute, specified on each
element. The second is that we should be consistent with the platform (AppKit's)
behavior.

There are some situations where the placement should be done according to the
content. For example, this policy would be used in web browsers.

However, there are also places where web content is designed to fit seamlessly
amongst native content. In this situation, the placement of the scrollbars should
be done according to the view.

Because WebKit doesn't know which of these situations it is operating within, this
patch adds a new API property, userInterfaceDirectionPolicy, to
WKWebViewConfigurationPolicy. This allows clients to instruct us which policy to
abide by. It is plumbed to the web process inside the WebPreferencesStore and is
ultimately held inside the Page's Settings object.

This Setting is consulted by RenderLayerModelObject, which serves as a good
centralized place for this policy implementation. This is the class which decides
if we should be consulting its RenderStyle or the platform itself when we decide
where to put the scrollbars.

Putting this decision inside the renderer is important because ScrollableArea
often needs to know if scrollbars should be put on the left, but ScrollableArea
doesn't know anything about RenderStyles. Therefore, the renderer must be the
intermediary between ScrollableArea and the RenderStyle. (ScrollableArea also
doesn't directly know anything about renderers either; however, each of the
subclasses knows about an appropriate renderer.) Therefore, ScrollableArea gets
a new virtual method which is implemented by the RenderLayerModelObject.

Tests: fast/scrolling/rtl-scrollbars*.html

  • WebCore.xcodeproj/project.pbxproj: ScrollableAreaMac.mm is no longer necessary.
  • page/FrameView.cpp:

(WebCore::FrameView::shouldPlaceBlockDirectionScrollbarOnLeft): Overridden
ScrollableArea function.

  • page/FrameView.h:
  • page/Settings.h:
  • page/Settings.in:
  • platform/ScrollView.cpp: Adding two new settings: One to know if we should

consult with the RenderStyle or the platform, and the other is whether or not
the platform considers itself to be RTL.
(WebCore::ScrollView::documentScrollPositionRelativeToViewOrigin): Update to
use new mechanism.
(WebCore::ScrollView::updateScrollbars): Ditto.
(WebCore::ScrollView::scrollCornerRect): Ditto.
(WebCore::ScrollView::locationOfContents): Ditto.

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::verticalScrollbarIsOnLeft): Deleted. This was the old
mechanism.
(WebCore::ScrollableArea::systemLanguageIsRTL): Deleted. Ditto.

  • platform/ScrollableArea.h:
  • platform/mac/ScrollableAreaMac.mm: Removed.

(WebCore::ScrollableArea::verticalScrollbarIsOnLeft): Deleted.
(WebCore::ScrollableArea::systemLanguageIsRTL): Deleted.

  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::ScrollbarThemeMac::didCreateScrollerImp): Update to use new
mechanism.

  • platform/text/WritingMode.h: These enums should match what's in WebKit2.
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::logicalLeftOffsetForContent): Update to use new mechanism.
(WebCore::RenderBlock::logicalRightOffsetForContent): Ditto.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::determineLogicalLeftPositionForChild): Ditto.

  • rendering/RenderBox.cpp: Ditto.

(WebCore::RenderBox::contentBoxRect):
(WebCore::RenderBox::overflowClipRect):
(WebCore::RenderBox::computePositionedLogicalWidth):
(WebCore::RenderBox::layoutOverflowRectForPropagation):

  • rendering/RenderBoxModelObject.cpp: Ditto.

(WebCore::RenderBoxModelObject::constrainingRectForStickyPosition):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::resize): Ditto.
(WebCore::cornerStart): Migrate to use references.
(WebCore::cornerRect): Ditto.
(WebCore::RenderLayer::scrollCornerRect): Ditto.
(WebCore::resizerCornerRect): Ditto.
(WebCore::RenderLayer::scrollCornerAndResizerRect): Ditto.
(WebCore::RenderLayer::verticalScrollbarStart): Update to use new mechanism.
(WebCore::RenderLayer::horizontalScrollbarStart): Ditto.
(WebCore::RenderLayer::offsetFromResizeCorner): Ditto.
(WebCore::RenderLayer::positionOverflowControls): Migrate to use references.
(WebCore::RenderLayer::computeScrollDimensions): Ditto.
(WebCore::RenderLayer::overflowControlsIntersectRect): Ditto.
(WebCore::RenderLayer::drawPlatformResizerImage): Update to use new mechanism.
(WebCore::RenderLayer::paintResizer): Migrate to use references.
(WebCore::RenderLayer::isPointInResizeControl): Ditto.
(WebCore::RenderLayer::hitTestOverflowControls): Ditto.
(WebCore::RenderLayer::hitTestResizerInFragments): Ditto.

  • rendering/RenderLayer.h: ScrollableArea override
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::positionForClipLayer): Update to use new
mechanism.

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::shouldPlaceBlockDirectionScrollbarOnLeft):
This is the meat of this patch. This is where we decide if we should be
interrogating the RenderStyle or the underlying platform.

  • rendering/RenderLayerModelObject.h:
  • rendering/RenderListBox.cpp: Update to use new mechanism.

(WebCore::RenderListBox::itemBoundingBoxRect):
(WebCore::RenderListBox::paintScrollbar):
(WebCore::RenderListBox::isPointInOverflowControl):
(WebCore::RenderListBox::listIndexAtOffset):
(WebCore::RenderListBox::controlClipRect):
(WebCore::RenderListBox::invalidateScrollbarRect):
(WebCore::RenderListBox::convertFromScrollbarToContainingView):
(WebCore::RenderListBox::convertFromContainingViewToScrollbar):

  • rendering/RenderListBox.h:
  • rendering/RenderView.cpp: Ditto.

(WebCore::RenderView::repaintViewRectangle):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::shouldPlaceBlockDirectionScrollbarOnLeft): This
function is now much dumber. It just inspects its own style.

  • testing/InternalSettings.cpp: Allow mocking.

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::verticalScrollbarLocationPolicy):
(WebCore::InternalSettings::setVerticalScrollbarLocationPolicy):
(WebCore::InternalSettings::systemLayoutDirection):
(WebCore::InternalSettings::setSystemLayoutDirection):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebKit2:

Add the new API.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):

  • UIProcess/WebPageProxy.cpp:
  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

LayoutTests:

Update tests to use new RTL scrollbar mechanism.

  • fast/scrolling/rtl-scrollbars-animation-property.html:
  • fast/scrolling/rtl-scrollbars-elementFromPoint-static.html:
  • fast/scrolling/rtl-scrollbars-elementFromPoint.html:
  • fast/scrolling/rtl-scrollbars-expected.html:
  • fast/scrolling/rtl-scrollbars-iframe-offset-expected.html:
  • fast/scrolling/rtl-scrollbars-iframe-offset.html:
  • fast/scrolling/rtl-scrollbars-iframe-position-absolute.html:
  • fast/scrolling/rtl-scrollbars-iframe-scrolled-expected.html:
  • fast/scrolling/rtl-scrollbars-iframe-scrolled.html:
  • fast/scrolling/rtl-scrollbars-iframe.html:
  • fast/scrolling/rtl-scrollbars-listbox-expected.html:
  • fast/scrolling/rtl-scrollbars-listbox-scroll-expected.html:
  • fast/scrolling/rtl-scrollbars-listbox-scroll.html:
  • fast/scrolling/rtl-scrollbars-listbox-select-left-expected.html:
  • fast/scrolling/rtl-scrollbars-listbox-select-left.html:
  • fast/scrolling/rtl-scrollbars-listbox-select-right-expected.html:
  • fast/scrolling/rtl-scrollbars-listbox-select-right.html:
  • fast/scrolling/rtl-scrollbars-listbox-simple-expected-mismatch.html:
  • fast/scrolling/rtl-scrollbars-listbox-simple.html:
  • fast/scrolling/rtl-scrollbars-listbox.html:
  • fast/scrolling/rtl-scrollbars-overflow-contents-expected.html:
  • fast/scrolling/rtl-scrollbars-overflow-contents.html:
  • fast/scrolling/rtl-scrollbars-overflow-dir-rtl-expected.html:
  • fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html:
  • fast/scrolling/rtl-scrollbars-overflow-elementFromPoint.html:
  • fast/scrolling/rtl-scrollbars-overflow-expected.html:
  • fast/scrolling/rtl-scrollbars-overflow-padding-expected.html:
  • fast/scrolling/rtl-scrollbars-overflow-padding.html:
  • fast/scrolling/rtl-scrollbars-overflow-position-absolute-expected.html:
  • fast/scrolling/rtl-scrollbars-overflow-position-absolute.html:
  • fast/scrolling/rtl-scrollbars-overflow-simple-expected-mismatch.html:
  • fast/scrolling/rtl-scrollbars-overflow-simple.html:
  • fast/scrolling/rtl-scrollbars-overflow-text-selection-scrolled-expected.html:
  • fast/scrolling/rtl-scrollbars-overflow-text-selection-scrolled.html:
  • fast/scrolling/rtl-scrollbars-overflow.html:
  • fast/scrolling/rtl-scrollbars-overlay-no-push-contents-expected.html:
  • fast/scrolling/rtl-scrollbars-overlay-no-push-contents.html:
  • fast/scrolling/rtl-scrollbars-position-absolute-expected.html:
  • fast/scrolling/rtl-scrollbars-position-absolute.html:
  • fast/scrolling/rtl-scrollbars-position-fixed-expected.html:
  • fast/scrolling/rtl-scrollbars-position-fixed.html:
  • fast/scrolling/rtl-scrollbars-positioning-expected.html:
  • fast/scrolling/rtl-scrollbars-positioning.html:
  • fast/scrolling/rtl-scrollbars-simple-expected-mismatch.html:
  • fast/scrolling/rtl-scrollbars-simple.html:
  • fast/scrolling/rtl-scrollbars-sticky-document-2-expected.html:
  • fast/scrolling/rtl-scrollbars-sticky-document-2.html:
  • fast/scrolling/rtl-scrollbars-sticky-document-expected.html:
  • fast/scrolling/rtl-scrollbars-sticky-document.html:
  • fast/scrolling/rtl-scrollbars-sticky-iframe-2-expected.html:
  • fast/scrolling/rtl-scrollbars-sticky-iframe-2.html:
  • fast/scrolling/rtl-scrollbars-sticky-iframe-expected.html:
  • fast/scrolling/rtl-scrollbars-sticky-iframe.html:
  • fast/scrolling/rtl-scrollbars-sticky-overflow-scroll-2-expected.html:
  • fast/scrolling/rtl-scrollbars-sticky-overflow-scroll-2.html:
  • fast/scrolling/rtl-scrollbars-sticky-overflow-scroll-expected.html:
  • fast/scrolling/rtl-scrollbars-sticky-overflow-scroll.html:
  • fast/scrolling/rtl-scrollbars-text-selection-expected.html:
  • fast/scrolling/rtl-scrollbars-text-selection-scrolled-expected.html:
  • fast/scrolling/rtl-scrollbars-text-selection-scrolled.html:
  • fast/scrolling/rtl-scrollbars-text-selection.html:
  • fast/scrolling/rtl-scrollbars.html:
  • platform/mac/fast/scrolling/rtl-scrollbars-animation-property-expected.png: Added.
17:47 Changeset [200115] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: speculative build fix.

Not reviewed.

  • API/JSWrapperMap.mm:
17:30 Changeset [200114] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Update the compatibility version check for the ObjC API's InitConstructorSupport to use dyld_get_program_sdk_version().
https://bugs.webkit.org/show_bug.cgi?id=157048

Reviewed by Geoffrey Garen.

  • API/JSWrapperMap.mm:

(supportsInitMethodConstructors):
(getJSExportProtocol):

16:26 Changeset [200113] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] GetByVal on Undecided use its children before its OSR Exit
https://bugs.webkit.org/show_bug.cgi?id=157046

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

Very silly bug: GetByVal on Undecided uses its children before
the speculationCheck(). If we fail the speculation, we have already
lost how to recover the values.

The existing tests did not catch this because we tier up to B3
before such Exits happen. B3 has explicit liveness and did not suffer
from this bug.
The new test has a smaller warmup to exercise the OSR Exit in DFG
instead of FTL.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • tests/stress/get-by-val-on-undecided-out-of-bounds.js: Added.

(string_appeared_here.opaqueGetByValKnownArray):

16:09 Changeset [200112] by annulen@yandex.ru
  • 2 edits in trunk/Tools

Unreviewed: add myself to the committers list.

  • Scripts/webkitpy/common/config/contributors.json:
16:03 Changeset [200111] by rniwa@webkit.org
  • 32 edits
    50 adds in trunk/LayoutTests/imported/w3c

Update tests in web-platform-tests/html/semantics/scripting-1/
https://bugs.webkit.org/show_bug.cgi?id=157026

Reviewed by Darin Adler.

Reimported tests under web-platform-tests/html/semantics/scripting-1/ as of d5a4c5bdf8a1837b4fcf50bbd2efd4150ddafa99.

  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_001-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_001.htm: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_002-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_002.htm: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_003-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_003.htm: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_004-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_004.htm: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_005-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_005.htm: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_006-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_006.htm: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_007-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_007.htm: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_008-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_008.htm: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_009-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_009.htm: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_010-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_010.htm: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_011-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_011.htm: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/external-script-utf8.js: Added.

(window.getSomeString):

  • web-platform-tests/html/semantics/scripting-1/the-script-element/external-script-windows1250.js: Added.

(window.getSomeString):

  • web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/alpha: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/alpha/base-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/alpha/base.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/alpha/test.js: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/alpha/w3c-import.log: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/beta: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/beta/test.js: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/beta/w3c-import.log: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/empty-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/empty-with-base-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/empty-with-base.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/empty.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/failure-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/failure.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/unreachable.js: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/fetch-src/w3c-import.log: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-charset-01-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-charset-01.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-charset-02-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-charset-02.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-not-found-not-executed-2.py: Added.

(main):

  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-not-found-not-executed-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-not-found-not-executed.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-not-found-not-executed.py: Added.

(main):

  • web-platform-tests/html/semantics/scripting-1/the-script-element/serve-with-content-type.py: Added.

(main):

  • web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/additions-to-parsing-xhtml-documents/node-document-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/additions-to-parsing-xhtml-documents/node-document.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/additions-to-parsing-xhtml-documents/template-child-nodes.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/additions-to-parsing-xhtml-documents/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/additions-to-serializing-xhtml-documents/outerhtml.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/additions-to-serializing-xhtml-documents/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/additions-to-the-css-user-agent-style-sheet/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/additions-to-the-steps-to-clone-a-node/template-clone-children.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/additions-to-the-steps-to-clone-a-node/templates-copy-document-owner.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/additions-to-the-steps-to-clone-a-node/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/definitions/template-contents-owner-document-type.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/definitions/template-contents-owner-test-001.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/definitions/template-contents-owner-test-002.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/definitions/template-contents.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/definitions/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/innerhtml-on-templates/innerhtml.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/innerhtml-on-templates/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/resources/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/serializing-html-templates/outerhtml.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/serializing-html-templates/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/content-attribute.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/node-document-changes.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-as-a-descendant-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-as-a-descendant.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-content-node-document.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-content.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-descendant-body.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-descendant-frameset.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-descendant-head.html:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/w3c-import.log:
15:53 Changeset [200110] by cdumez@apple.com
  • 8 edits in trunk/Source/WebCore

[Web IDL] Specify default values for optional parameters of type 'unsigned long'
https://bugs.webkit.org/show_bug.cgi?id=157043

Reviewed by Alex Christensen.

Specify default values for optional parameters of type 'unsigned long' and let
the bindings generator use WTF::Optional<> for the parameters that do not have
such default value.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::createScriptProcessor): Deleted.
(WebCore::AudioContext::createChannelSplitter): Deleted.
(WebCore::AudioContext::createChannelMerger): Deleted.

  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/AudioContext.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(CanUseWTFOptionalForParameter): Deleted.

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::addRule):

  • css/CSSStyleSheet.h:
  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheet::addRule):

15:16 Changeset [200109] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Fix text in log files autogenerated by import-w3c-tests
https://bugs.webkit.org/show_bug.cgi?id=157021

Unreviewed. Fixing the second typo.

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.write_import_log):

15:07 Changeset [200108] by rniwa@webkit.org
  • 9 edits
    2 adds in trunk

ASSERTION FAILED: m_templateInsertionModes.isEmpty() in WebCore::HTMLTreeBuilder::finished
https://bugs.webkit.org/show_bug.cgi?id=143519

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaselined the tests.

  • web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-as-a-descendant-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-descendant-frameset-expected.txt:
  • web-platform-tests/html/syntax/parsing/template/additions-to-the-in-frameset-insertion-mode/end-tag-frameset-expected.txt:

Source/WebCore:

The assertion failure was caused by our parser inconsistently following the spec. Fixed it by making our HTML parser
match the latest HTML5 specification. See inline comments below.

Tests: fast/dom/HTMLTemplateElement/parsing-template-with-frameset.html

html5lib/generated/run-template-data.html
html5lib/generated/run-template-write.html
imported/w3c/web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-as-a-descendant.html
imported/w3c/web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-descendant-frameset.html
imported/w3c/web-platform-tests/html/syntax/parsing/template/additions-to-the-in-frameset-insertion-mode/end-tag-frameset.html

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::processStartTagForInBody): When parsing a template element for 'in body' insertion mode,
we process the token using the rules for 'in head' insertion mode, which sets the frameset-ok flag to "not ok".
In addition, 'in template' insertion mode should not special case a start tag whose tag name is "frame". Instead,
fallback to using 'in body' insertion mode.
https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody
(WebCore::HTMLTreeBuilder::processStartTag): 'in frameset' insertion mode should not special case a start tag whose
tag name is "template": https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inframeset
(WebCore::HTMLTreeBuilder::processEndTag): Ditto for an end tag whose name is "template".
(WebCore::HTMLTreeBuilder::processStartTagForInHead): When parsing a template element in 'in head' inserting mode,
we set the frameset-ok flag to "not ok": https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead

LayoutTests:

Rebaselined the html5lib tests (now passes all the test cases!) and added a regression test for an assertion.

  • fast/dom/HTMLTemplateElement/parsing-template-with-frameset-expected.txt: Added.
  • fast/dom/HTMLTemplateElement/parsing-template-with-frameset.html: Added.
  • html5lib/generated/run-template-data-expected.txt:
  • html5lib/generated/run-template-write-expected.txt:
14:47 Changeset [200107] by peavo@outlook.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

[WinCairo][ANGLE] Display object is not created.
https://bugs.webkit.org/show_bug.cgi?id=157042

Reviewed by Alex Christensen.

The CreateDisplayFromAttribs function will not create a DisplayD3D object when the requested
type is EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE, because ANGLE_ENABLE_OPENGL is not defined.
We should be able to create a DisplayD3D object without defining ANGLE_ENABLE_OPENGL.

  • src/libANGLE/Display.cpp:
13:09 Changeset [200106] by bdakin@apple.com
  • 8 edits in trunk/Source

Check to make sure shouldRequestCandidates() before requesting candidates
https://bugs.webkit.org/show_bug.cgi?id=157038
-and corresponding-
rdar://problem/25910418

Reviewed by Tim Horton.

This patch limits requesting and showing candidates to cases where
shouldRequestCandidates() is true. This patch also caches the sequence number
returned by [NSSpellChecker requestCandidatesForSelectedRange:] to make sure
it is equal to the sequence number sent to the callback handler so that we do
not show candidates for old requests.

Source/WebKit/mac:

  • WebCoreSupport/WebEditorClient.h:
  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::requestCandidatesForSelection):
(WebEditorClient::handleRequestedCandidates):

  • WebView/WebView.mm:

(-[WebView showCandidates:forString:inRect:forSelectedRange:view:completionHandler:]):
(-[WebView shouldRequestCandidates]):

  • WebView/WebViewInternal.h:

Source/WebKit2:

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateWebViewImplAdditions):
(WebKit::WebViewImpl::shouldRequestCandidates):
(WebKit::WebViewImpl::showCandidates):
(WebKit::WebViewImpl::requestCandidatesForSelectionIfNeeded):
(WebKit::WebViewImpl::handleRequestedCandidates):

13:01 Changeset [200105] by fpizlo@apple.com
  • 4 edits in trunk

WebCore on Mac ignores the user's preferred region (country) while getting the language
https://bugs.webkit.org/show_bug.cgi?id=156993

Reviewed by Geoffrey Garen.

Source/WebCore:

This is tested by the NavigatorLanguage API test.

WebCore was previously getting the list of preferred languages, and for each one, deducing
the default region. That's wrong, since for example it doesn't respect the user's choice (in
System Preferences) to display dates/calenders/etc according to a different region (like how
I have my machine set to en-pl right now).

It might be possible for the country code we get via kCFLocaleCountryCode to be something
that our ICU doesn't handle. To defend against this, we search for the resulting country
code in ICU's ISO countries list. If it doesn't appear in that list, we fall back on old
behavior.

  • platform/mac/Language.mm:

(WebCore::httpStyleLanguageCode):
(WebCore::isValidICUCountryCode):
(WebCore::platformUserPreferredLanguages):

Tools:

Change the test expectations for this test. If the variant is not explicitly specified in
the AppleLanguage, then we use the locale's country code, which this test assumes is US.

  • TestWebKitAPI/Tests/mac/NavigatorLanguage.mm:

(TestWebKitAPI::languageForSystemLanguage):
(TestWebKitAPI::TEST):

12:49 Changeset [200104] by mmaxfield@apple.com
  • 7 edits in trunk/Source/WebCore

Use auto-generated operators in FontPlatformData
https://bugs.webkit.org/show_bug.cgi?id=157037

Reviewed by Geoffrey Garen.

The only reason why they weren't used before is because Cairo was
using a raw pointer. However, RefPtr supports Cairo types, so this
patch migrates that pointer to a RefPtr. Therefore, we can remove
our custom operators (because they work the same way as auto-
generated ones do).

No new tests because there is no behavior change.

  • platform/graphics/FontPlatformData.cpp:

(WebCore::FontPlatformData::FontPlatformData): Deleted.
(WebCore::FontPlatformData::operator=): Deleted.

  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::scaledFont):
(WebCore::FontPlatformData::hash):

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::~FontPlatformData): Deleted.
(WebCore::FontPlatformData::platformDataInit): Deleted.
(WebCore::FontPlatformData::platformDataAssign): Deleted.

  • platform/graphics/win/FontPlatformDataCGWin.cpp:

(WebCore::FontPlatformData::~FontPlatformData): Deleted.
(WebCore::FontPlatformData::platformDataInit): Deleted.
(WebCore::FontPlatformData::platformDataAssign): Deleted.

  • platform/graphics/win/FontPlatformDataCairoWin.cpp:

(WebCore::FontPlatformData::platformDataInit):
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::~FontPlatformData): Deleted.
(WebCore::FontPlatformData::platformDataAssign): Deleted.

  • platform/graphics/win/FontPlatformDataWin.cpp:

(WebCore::FontPlatformData::FontPlatformData): Deleted.

12:07 Changeset [200103] by zalan@apple.com
  • 4 edits in trunk/Source/WebCore

Add renderer address and needslayout state to inlineboxtree dump.
https://bugs.webkit.org/show_bug.cgi?id=157035

Reviewed by Simon Fraser.

  • rendering/InlineBox.cpp:

(WebCore::InlineBox::showLineBox):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::showLineBox):

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::printPrefix):

11:40 Changeset [200102] by gskachkov@gmail.com
  • 29 edits
    1 add in trunk

calling super() a second time in a constructor should throw
https://bugs.webkit.org/show_bug.cgi?id=151113

Reviewed by Saam Barati and Keith Miller.

Source/JavaScriptCore:

Currently, our implementation checks if 'super()' was called in a constructor more
than once and raises a RuntimeError before the second call. According to the spec
we need to raise an error just after the second super() is finished and before
the new 'this' is assigned https://esdiscuss.org/topic/duplicate-super-call-behaviour.
To implement this behavior this patch adds a new op code, op_is_empty, that is used
to check if 'this' is empty.

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitIsEmpty):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionCallValueNode::emitBytecode):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileIsEmpty):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_is_empty):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_is_empty):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • tests/stress/class-syntax-double-constructor.js: Added.

LayoutTests:

  • js/class-syntax-super-expected.txt:
  • js/script-tests/class-syntax-super.js:
11:35 Changeset [200101] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Changed jsc options title to be more descriptive.
https://bugs.webkit.org/show_bug.cgi?id=157036

Reviewed by Joseph Pecoraro.

Let the title for --dumpOptions be "Modified JSC runtime options:" since it only
dumps overridden options. The title for --options will remain "All JSC runtime
options:" since it dumps all all options with verbose detail.

  • jsc.cpp:

(CommandLine::parseArguments):

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

[curl] Requests interrupted when using https via proxy
https://bugs.webkit.org/show_bug.cgi?id=157028

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2016-04-26
Reviewed by Alex Christensen.

A proxy responds "200 Connection Established" to a CONNECT
method. This response doesn't have Content-Type, then the
request is canceled due to a unsupported MIME type. This is not
a real response from the recipient server. It should not be
processed normally. Just ignore the response.

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::headerCallback):
Do nothing if httpCode is 0. This is the case of "200 Connection Established".

11:22 Changeset [200099] by cdumez@apple.com
  • 4 edits in trunk/Source/WebCore

Drop Dictionary from CanUseWTFOptionalForParameter()
https://bugs.webkit.org/show_bug.cgi?id=157023

Reviewed by Darin Adler.

As per Web IDL, optional dictionary parameters are always considered to have
a default value of an empty dictionary, unless otherwise specified. There is
therefore never any need to use Optional<> for it. Just implement this
behavior in the bindings generator and drop blacklisting of Dictionary from
CanUseWTFOptionalForParameter().

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
(CanUseWTFOptionalForParameter): Deleted.

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionOptionsObject):

11:20 Changeset [200098] by antti@apple.com
  • 117 edits in trunk/Source

RenderElement::style() should return const RenderStyle
https://bugs.webkit.org/show_bug.cgi?id=157016

Reviewed by Geoff Garen.

Style should be changed via setStyle, not by mutating it directly.

Pulling this string turns RenderStyle const in many places.

  • accessibility/AccessibilityObject.cpp:

(WebCore::startOfStyleRange):

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(getAttributeSetForAccessibilityObject):

  • bindings/objc/DOM.mm:

(-[DOMNode innerFrameQuad]):
(-[DOMNode computedFontSize]):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::createPositionListForLayer):
(WebCore::positionOffsetValue):
(WebCore::ComputedStyleExtractor::currentColorOrValidColor):
(WebCore::getTransitionPropertyValue):
(WebCore::scrollSnapDestination):
(WebCore::scrollSnapPoints):
(WebCore::scrollSnapCoordinates):
(WebCore::logUnimplementedPropertyID):
(WebCore::fontFamilyFromStyle):
(WebCore::lineHeightFromStyle):
(WebCore::fontSizeFromStyle):
(WebCore::fontStyleFromStyle):
(WebCore::fontVariantFromStyle):
(WebCore::fontWeightFromStyle):
(WebCore::fontSynthesisFromStyle):
(WebCore::zoomAdjustedPaddingOrMarginPixelValue):
(WebCore::paddingOrMarginIsRendererDependent):
(WebCore::convertToRegionBreak):
(WebCore::isLayoutDependent):
(WebCore::updateStyleIfNeededForNode):
(WebCore::computeRenderStyleForProperty):
(WebCore::ComputedStyleExtractor::propertyValue):
(WebCore::CSSComputedStyleDeclaration::length):
(WebCore::CSSComputedStyleDeclaration::item):
(WebCore::ComputedStyleExtractor::propertyMatches):

  • css/CSSComputedStyleDeclaration.h:
  • css/CSSToLengthConversionData.cpp:

(WebCore::CSSToLengthConversionData::viewportWidthFactor):
(WebCore::CSSToLengthConversionData::viewportHeightFactor):
(WebCore::CSSToLengthConversionData::viewportMinFactor):
(WebCore::CSSToLengthConversionData::viewportMaxFactor):

  • css/CSSToLengthConversionData.h:

(WebCore::CSSToLengthConversionData::CSSToLengthConversionData):
(WebCore::CSSToLengthConversionData::style):
(WebCore::CSSToLengthConversionData::rootStyle):
(WebCore::CSSToLengthConversionData::computingFontSize):
(WebCore::CSSToLengthConversionData::copyWithAdjustedZoom):

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::style):
(WebCore::CSSToStyleMap::rootElementStyle):

  • css/CSSToStyleMap.h:
  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::MediaQueryEvaluator):

  • css/MediaQueryEvaluator.h:
  • css/SVGCSSComputedStyleDeclaration.cpp:

(WebCore::strokeDashArrayToCSSValueList):
(WebCore::ComputedStyleExtractor::adjustSVGPaintForCurrentColor):
(WebCore::ComputedStyleExtractor::svgPropertyValue):

  • css/SourceSizeList.cpp:

(WebCore::match):
(WebCore::defaultLength):
(WebCore::computeLength):
(WebCore::parseSizesAttribute):

  • css/StyleBuilderCustom.h:

(WebCore::ApplyPropertyBorderImageModifier::applyValue):
(WebCore::ApplyPropertyBorderImageModifier::getValue):
(WebCore::StyleBuilderCustom::applyInheritClip):
(WebCore::StyleBuilderCustom::applyInheritCounter):
(WebCore::StyleBuilderCustom::applyValueContent):
(WebCore::StyleBuilderCustom::applyValueAlt):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::sweepMatchedPropertiesCache):
(WebCore::StyleResolver::State::State):
(WebCore::isAtShadowBoundary):
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::keyframeStylesForAnimation):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::checkForTextSizeAdjust):
(WebCore::StyleResolver::checkForZoomChange):
(WebCore::StyleResolver::checkForGenericFamilyChange):

  • css/StyleResolver.h:

(WebCore::StyleResolver::style):
(WebCore::StyleResolver::parentStyle):
(WebCore::StyleResolver::rootElementStyle):
(WebCore::StyleResolver::element):
(WebCore::StyleResolver::document):
(WebCore::StyleResolver::documentSettings):
(WebCore::StyleResolver::State::State):
(WebCore::StyleResolver::State::takeStyle):
(WebCore::StyleResolver::State::parentStyle):
(WebCore::StyleResolver::State::rootElementStyle):
(WebCore::StyleResolver::State::regionForStyling):
(WebCore::StyleResolver::State::elementLinkState):

  • dom/Document.cpp:

(WebCore::Document::updateLayoutIgnorePendingStylesheets):
(WebCore::Document::styleForElementIgnoringPendingStylesheets):
(WebCore::Document::setVisuallyOrdered):
(WebCore::Document::createParser):

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

(WebCore::Element::styleResolver):
(WebCore::Element::resolveStyle):
(WebCore::checkForEmptyStyleChange):
(WebCore::checkForSiblingStyleChanges):
(WebCore::beforeOrAfterPseudoElement):
(WebCore::Element::existingComputedStyle):
(WebCore::Element::resolveComputedStyle):
(WebCore::Element::computedStyle):
(WebCore::Element::didDetachRenderers):
(WebCore::Element::resolveCustomStyle):

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

(WebCore::computeEditabilityFromComputedStyle):
(WebCore::Node::pseudoAwareLastChild):
(WebCore::Node::computedStyle):

  • dom/Node.h:
  • dom/NodeRenderStyle.h:

(WebCore::Node::renderStyle):

  • dom/PseudoElement.cpp:

(WebCore::PseudoElement::clearHostElement):
(WebCore::PseudoElement::resolveCustomStyle):

  • dom/PseudoElement.h:
  • editing/ApplyBlockElementCommand.cpp:

(WebCore::isNewLineAtPosition):
(WebCore::ApplyBlockElementCommand::renderStyleOfEnclosingTextNode):
(WebCore::ApplyBlockElementCommand::rangeForParagraphSplittingTextNodesIfNeeded):
(WebCore::ApplyBlockElementCommand::endOfNextParagraphSplittingTextNodesIfNeeded):

  • editing/ApplyBlockElementCommand.h:
  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::init):
(WebCore::EditingStyle::removeTextFillAndStrokeColorsIfNeeded):

  • editing/EditingStyle.h:
  • editing/Editor.h:
  • editing/SimplifyMarkupCommand.cpp:

(WebCore::SimplifyMarkupCommand::doApply):

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::styleForSelectionStart):
(WebCore::Editor::getTextDecorationAttributesRespectingTypingStyle):

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::fontForSelection):
(WebCore::Editor::fontAttributesForSelectionStart):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::fontForSelection):
(WebCore::Editor::fontAttributesForSelectionStart):

  • html/HTMLTitleElement.cpp:

(WebCore::HTMLTitleElement::computedTextWithDirection):

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::FontProxy::fontsNeedUpdate):
(WebCore::CanvasRenderingContext2D::FontProxy::initialize):
(WebCore::CanvasRenderingContext2D::setFont):
(WebCore::CanvasRenderingContext2D::setTextBaseline):
(WebCore::CanvasRenderingContext2D::toTextDirection):
(WebCore::CanvasRenderingContext2D::drawTextInternal):

  • html/canvas/CanvasRenderingContext2D.h:
  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::HTMLResourcePreloader::preload):
(WebCore::mediaAttributeMatches):

  • html/shadow/SliderThumbElement.cpp:

(WebCore::RenderSliderThumb::RenderSliderThumb):
(WebCore::RenderSliderThumb::updateAppearance):
(WebCore::RenderSliderContainer::layout):
(WebCore::SliderThumbElement::hostInput):
(WebCore::SliderThumbElement::resolveCustomStyle):
(WebCore::SliderContainerElement::createElementRenderer):
(WebCore::SliderContainerElement::resolveCustomStyle):

  • html/shadow/SliderThumbElement.h:
  • html/shadow/TextControlInnerElements.cpp:

(WebCore::TextControlInnerElement::create):
(WebCore::TextControlInnerElement::resolveCustomStyle):
(WebCore::TextControlInnerTextElement::renderer):
(WebCore::TextControlInnerTextElement::resolveCustomStyle):
(WebCore::TextControlPlaceholderElement::TextControlPlaceholderElement):
(WebCore::TextControlPlaceholderElement::resolveCustomStyle):

  • html/shadow/TextControlInnerElements.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::selectCursor):

  • page/animation/AnimationBase.cpp:

(WebCore::solveStepsFunction):
(WebCore::AnimationBase::AnimationBase):

  • page/animation/AnimationBase.h:

(WebCore::AnimationBase::~AnimationBase):
(WebCore::AnimationBase::renderer):
(WebCore::AnimationBase::animation):
(WebCore::AnimationBase::setAnimation):

  • page/animation/AnimationController.cpp:

(WebCore::AnimationController::cancelAnimations):
(WebCore::AnimationController::updateAnimations):

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

(WebCore::CompositeAnimation::clearRenderer):
(WebCore::CompositeAnimation::updateTransitions):
(WebCore::CompositeAnimation::updateKeyframeAnimations):
(WebCore::CompositeAnimation::animate):

  • page/animation/CompositeAnimation.h:
  • page/animation/ImplicitAnimation.cpp:

(WebCore::ImplicitAnimation::ImplicitAnimation):
(WebCore::ImplicitAnimation::shouldSendEventForListener):
(WebCore::ImplicitAnimation::animate):
(WebCore::ImplicitAnimation::sendTransitionEvent):
(WebCore::ImplicitAnimation::reset):

  • page/animation/ImplicitAnimation.h:

(WebCore::ImplicitAnimation::create):

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::KeyframeAnimation):
(WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty):
(WebCore::KeyframeAnimation::animate):

  • page/animation/KeyframeAnimation.h:
  • page/ios/FrameIOS.mm:

(WebCore::ancestorRespondingToScrollWheelEvents):

  • rendering/FlowThreadController.cpp:

(WebCore::FlowThreadController::styleDidChange):

  • rendering/InlineFlowBox.cpp:

(WebCore::clipRectForNinePieceImageStrip):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::styleDidChange):
(WebCore::RenderBlock::lineHeight):
(WebCore::RenderBlock::firstLineBlock):
(WebCore::styleForFirstLetter):
(WebCore::RenderBlock::updateFirstLetterStyle):
(WebCore::RenderBlock::createFirstLetterRenderer):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::calculateMinimumPageHeight):
(WebCore::RenderBlockFlow::adjustComputedFontSizes):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange):
(WebCore::RenderBox::borderRadii):
(WebCore::RenderBox::enclosingFloatPaintingLayer):
(WebCore::RenderBox::logicalVisualOverflowRectForPropagation):
(WebCore::RenderBox::visualOverflowRectForPropagation):
(WebCore::RenderBox::logicalLayoutOverflowRectForPropagation):
(WebCore::RenderBox::layoutOverflowRectForPropagation):

  • rendering/RenderBox.h:

(WebCore::RenderBox::applyTopLeftLocationOffset):
(WebCore::RenderBox::hasRenderOverflow):
(WebCore::RenderBox::hasVisualOverflow):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance):
(WebCore::applyBoxShadowForBackground):

  • rendering/RenderButton.cpp:

(WebCore::RenderButton::addChild):
(WebCore::RenderButton::styleWillChange):
(WebCore::RenderButton::styleDidChange):
(WebCore::RenderButton::setupInnerStyle):
(WebCore::RenderButton::layout):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::styleWillChange):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::createFor):
(WebCore::RenderElement::uncachedFirstLineStyle):
(WebCore::RenderElement::cachedFirstLineStyle):
(WebCore::RenderElement::firstLineStyle):
(WebCore::RenderElement::styleWillChange):
(WebCore::RenderElement::addControlStatesForRenderer):
(WebCore::RenderElement::getCachedPseudoStyle):
(WebCore::RenderElement::getMutableCachedPseudoStyle):
(WebCore::RenderElement::getUncachedPseudoStyle):
(WebCore::RenderElement::paintOutline):

  • rendering/RenderElement.h:

(WebCore::RenderElement::hasInitializedStyle):
(WebCore::RenderElement::style):
(WebCore::RenderElement::mutableStyle):
(WebCore::RenderElement::element):
(WebCore::RenderObject::isRenderInline):
(WebCore::RenderObject::style):
(WebCore::RenderObject::firstLineStyle):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::layout):

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::RenderFlowThread):
(WebCore::RenderFlowThread::createFlowThreadStyle):

  • rendering/RenderFlowThread.h:
  • rendering/RenderImage.cpp:

(WebCore::RenderImage::layoutShadowControls):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::styleDidChange):
(WebCore::RenderInline::updateAlwaysCreateLineBoxes):
(WebCore::RenderInline::paintOutline):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setupClipPath):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::paintScrollbar):
(WebCore::itemOffsetForAlignment):
(WebCore::RenderListBox::paintItemForeground):
(WebCore::RenderListBox::paintItemBackground):

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::updateMargins):
(WebCore::RenderListMarker::lineHeight):

  • rendering/RenderMarquee.cpp:

(WebCore::RenderMarquee::computePosition):
(WebCore::RenderMarquee::updateMarqueeStyle):

  • rendering/RenderMenuList.cpp:

(WebCore::RenderMenuList::adjustInnerStyle):
(RenderMenuList::updateOptionsWidth):
(RenderMenuList::itemStyle):

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::isValidColumnSpanner):

  • rendering/RenderMultiColumnSpannerPlaceholder.cpp:

(WebCore::RenderMultiColumnSpannerPlaceholder::createAnonymous):

  • rendering/RenderMultiColumnSpannerPlaceholder.h:
  • rendering/RenderNamedFlowFragment.cpp:

(WebCore::RenderNamedFlowFragment::checkRegionStyle):
(WebCore::RenderNamedFlowFragment::computeStyleInRegion):

  • rendering/RenderNamedFlowFragment.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::innerLineHeight):
(WebCore::decorationColor):
(WebCore::RenderObject::getTextDecorationColorsAndStyles):

  • rendering/RenderObject.h:

(WebCore::RenderObject::minPreferredLogicalWidth):
(WebCore::RenderObject::maxPreferredLogicalWidth):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::computePreferredLogicalWidths):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::paintRowGroupBorderIfRequired):
(WebCore::physicalBorderForDirection):

  • rendering/RenderText.h:

(WebCore::RenderText::characterAt):
(WebCore::RenderText::style):
(WebCore::RenderText::firstLineStyle):
(WebCore::RenderText::getCachedPseudoStyle):

  • rendering/RenderTextControl.cpp:

(WebCore::RenderTextControl::styleDidChange):

  • rendering/RenderTextControlMultiLine.cpp:

(WebCore::RenderTextControlMultiLine::layoutSpecialExcludedChild):

  • rendering/RenderTextControlSingleLine.cpp:

(WebCore::RenderTextControlSingleLine::layout):
(WebCore::RenderTextControlSingleLine::styleDidChange):

  • rendering/RenderTextFragment.cpp:

(WebCore::RenderTextFragment::styleDidChange):

  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::paintMediaToggleClosedCaptionsButton):
(WebCore::borderRadiiFromStyle):
(WebCore::RenderThemeGtk::paintMediaSliderTrack):
(WebCore::RenderThemeGtk::paintMediaSliderThumb):
(WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack):

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::paintFlow):
(WebCore::SimpleLineLayout::hitTestFlow):

  • rendering/TextAutoSizing.cpp:

(WebCore::TextAutoSizingKey::TextAutoSizingKey):

  • rendering/TextAutoSizing.h:

(WebCore::TextAutoSizingKey::style):
(WebCore::TextAutoSizingKey::isDeleted):

  • rendering/TextPaintStyle.cpp:

(WebCore::computeTextSelectionPaintStyle):

  • rendering/line/BreakingContext.h:
  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::layout):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setColumnRuleWidth):
(WebCore::RenderStyle::resetColumnRule):
(WebCore::RenderStyle::setColumnSpan):
(WebCore::RenderStyle::inheritColumnPropertiesFrom):
(WebCore::RenderStyle::setTransform):
(WebCore::RenderStyle::setTransformOriginX):
(WebCore::RenderStyle::setTransformOriginY):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::positionForOffset):
(WebCore::SVGInlineTextBox::selectionRectForTextFragment):
(WebCore::SVGInlineTextBox::localSelectionRect):
(WebCore::SVGInlineTextBox::paintSelectionBackground):
(WebCore::SVGInlineTextBox::paint):
(WebCore::SVGInlineTextBox::acquirePaintingResource):
(WebCore::SVGInlineTextBox::releasePaintingResource):
(WebCore::SVGInlineTextBox::prepareGraphicsContextForTextPainting):
(WebCore::SVGInlineTextBox::restoreGraphicsContextAfterTextPainting):
(WebCore::SVGInlineTextBox::constructTextRun):
(WebCore::SVGInlineTextBox::paintDecorationWithStyle):
(WebCore::SVGInlineTextBox::paintTextWithShadows):
(WebCore::SVGInlineTextBox::paintText):

  • rendering/svg/SVGInlineTextBox.h:
  • rendering/svg/SVGPathData.cpp:

(WebCore::updatePathFromCircleElement):
(WebCore::updatePathFromEllipseElement):
(WebCore::updatePathFromRectElement):

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::prepareToRenderSVGContent):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::Parent::Parent):
(WebCore::Style::TreeResolver::popScope):
(WebCore::Style::TreeResolver::styleForElement):
(WebCore::Style::TreeResolver::pushParent):
(WebCore::Style::TreeResolver::resolveComposedTree):

  • style/StyleTreeResolver.h:

(WebCore::Style::TreeResolver::scope):

  • style/StyleUpdate.cpp:

(WebCore::Style::Update::textUpdate):
(WebCore::Style::Update::elementStyle):
(WebCore::Style::Update::addElement):

  • style/StyleUpdate.h:

(WebCore::Style::Update::document):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::synchronizeSystemLanguage):
(WebCore::SVGElement::resolveCustomStyle):
(WebCore::SVGElement::setUseOverrideComputedStyle):
(WebCore::SVGElement::computedStyle):

  • svg/SVGElement.h:
  • svg/SVGElementRareData.h:

(WebCore::SVGElementRareData::ensureAnimatedSMILStyleProperties):
(WebCore::SVGElementRareData::overrideComputedStyle):

  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::animatedLocalTransform):

  • svg/SVGLengthContext.cpp:

(WebCore::SVGLengthContext::convertValueFromPercentageToUserUnits):
(WebCore::renderStyleForLengthResolving):
(WebCore::SVGLengthContext::convertValueFromUserUnitsToEMS):
(WebCore::SVGLengthContext::convertValueFromEMSToUserUnits):
(WebCore::SVGLengthContext::convertValueFromUserUnitsToEXS):
(WebCore::SVGLengthContext::convertValueFromEXSToUserUnits):

  • svg/SVGStopElement.cpp:

(WebCore::SVGStopElement::stopColorIncludingOpacity):

  • svg/SVGTextElement.cpp:

(WebCore::SVGTextElement::animatedLocalTransform):

10:46 Changeset [200097] by oliver@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

2016-04-26 Oliver Hunt <oliver@apple.com>

Enable separated heap by default on ios
https://bugs.webkit.org/show_bug.cgi?id=156720

Unreviewed roll-in of this change. There is only one
additional allocation involved in this logic, and that
is a duplicate mapping.

Either our tools are not report real memory usage
or this revision is not responsible for the regression.

  • runtime/Options.cpp: (JSC::recomputeDependentOptions):
10:38 Changeset [200096] by fpizlo@apple.com
  • 6 edits
    1 add in trunk/Source/JavaScriptCore

DFG backends shouldn't emit type checks at KnownBlah edges
https://bugs.webkit.org/show_bug.cgi?id=157025

Reviewed by Michael Saboff.

This fixes a crash I found when browsing Bing maps with forceEagerCompilation. I include a
100% repro test case.

The issue is that our code still doesn't fully appreciate the devious implications of
KnownBlah use kinds. Consider KnownCell for example. It means: "trust me, I know that this
value will be a cell". You aren't required to provide a proof when you use KnownCell. Often,
we use it as a result of a path-sensitive proof. The abstract interpreter is not
path-sensitive, so AI will be absolutely sure that the KnownCell use might see a non-cell.
This can lead to debug assertions (which this change removes) and it can lead to the backends
emitting a type check. That type check can be pure evil if the node that has this edge does
not have an exit origin. Such a node would have passed validation because the validater would
have thought that the node cannot exit (after all, according to the IR semantics, there is no
speculation at KnownCell).

This comprehensively fixes the issue by recognizing that Foo(KnownCell:@x) means: I have
already proved that by the time you start executing Foo, @x will already be a cell. I cannot
tell you how I proved this but you can rely on it anyway. AI now takes advantage of this
meaning and will always do filtering of KnownBlah edges regardless of whether the backend
actually emits any type checks for those edges. Since the filtering runs before the backend,
the backend will not emit any checks because it will know that the edge was already checked
(by whatever mechanism we used when we made the edge KnownBlah).

Note that it's good that we found this bug now. The DFG currently does very few
sparse-conditional or path-sensitive optimizations, but it will probably do more in the
future. The bug happens because GetByOffset and friends can achieve path-sensitive proofs via
watchpoints on the inferred type. Normally, AI can follow along with this proof. But in the
example program, and on Bing maps, we would GCSE one GetByOffset with another that had a
weaker proven type. That turned out to be completely sound - between the two GetByOffset's
there was a Branch to null check it. The inferred type of the second GetByOffset ended up
knowing that it cannot be null because null only occurred in some structures but not others.
If we added more sparse-conditional stuff to Branch, then AI would know how to follow along
with the proof but it would also create more situations where we'd have a path-sensitive
proof. So, it's good that we're now getting this right.

  • dfg/DFGAbstractInterpreter.h:

(JSC::DFG::AbstractInterpreter::filterEdgeByUse):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEdges):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeKnownEdgeTypes):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::verifyEdge):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):

  • tests/stress/path-sensitive-known-cell-crash.js: Added.

(bar):
(foo):

10:28 Changeset [200095] by barraclough@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Enable separated heap by default on ios
https://bugs.webkit.org/show_bug.cgi?id=156720

Unreviewed rollout - caused memory regression.

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

10:20 Changeset [200094] by mmaxfield@apple.com
  • 13 edits in trunk/Source/WebCore

Make FontPlatformData immutable
https://bugs.webkit.org/show_bug.cgi?id=157024

Reviewed by Darin Adler.

This patch deletes all functions which modify a FontPlatformData once
it has been created. This makes for a cleaner design.

No new tests because there is no behavior change.

  • platform/graphics/Font.cpp:

(WebCore::Font::verticalRightOrientationFont):
(WebCore::Font::nonSyntheticItalicFont):

  • platform/graphics/FontPlatformData.cpp:

(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::cloneWithOrientation):
(WebCore::FontPlatformData::cloneWithSyntheticOblique):

  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::setIsSystemFont): Deleted.
(WebCore::FontPlatformData::setSize): Deleted.
(WebCore::FontPlatformData::setOrientation): Deleted.
(WebCore::FontPlatformData::setSyntheticOblique): Deleted.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::systemFallbackForCharacters):

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::drawGlyphs):

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformInit):
(WebCore::Font::platformCharWidthInit):
(WebCore::createDerivativeFont):
(WebCore::Font::createFontWithoutSynthesizableFeatures):
(WebCore::Font::platformCreateScaledFont):
(WebCore::Font::platformWidthForGlyph):

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::openTypeTable):

  • platform/graphics/win/FontPlatformDataCairoWin.cpp:

(WebCore::FontPlatformData::platformDataInit):

10:19 MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
10:17 Changeset [200093] by ryanhaddad@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r200089.

This change causes API test failures

Reverted changeset:

"WebCore on Mac ignores the user's preferred region (country)
while getting the language"
https://bugs.webkit.org/show_bug.cgi?id=156993
http://trac.webkit.org/changeset/200089

09:47 Changeset [200092] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

Improve jsc --help and making sampling options
https://bugs.webkit.org/show_bug.cgi?id=157015

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-04-26
Reviewed by Saam Barati.

Simplify sampling options to be easier to remember:

  • --reportSamplingProfilerData => --sample
  • --samplingProfilerTimingInterval => --sampleInterval

Update the --help to mention --sample, and restore the behavior of
--options outputing all possible options so you can discover which
options are available.

  • jsc.cpp:

(printUsageStatement):
(CommandLine::parseArguments):
Improve help and modify option dumping.

  • runtime/Options.h:
  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::SamplingProfiler):
Rename the sampling interval option.

09:45 Changeset [200091] by bfulgham@apple.com
  • 2 edits in trunk/Source/WebCore

GuardMalloc crash in WebCore::HTMLFrameElementBase::marginHeight()
https://bugs.webkit.org/show_bug.cgi?id=157020
<rdar://problem/25148315>

Reviewed by Darin Adler.

Calls to setIntegralAttribute triggers event handling code, which can cause
the underlying m_frameOwnerElement member to be deleted. We could clone this
object, but since we only want the width and height we should just read them
while we know the object is in a good state, then execute the potentially
mutating methods.

Tested by imported/blink/fast/dom/HTMLBodyElement/body-inserting-iframe-crash.html.

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::insertedInto): Read margin width and height before
calling setIntegralAttribute.

09:33 Changeset [200090] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Chart status should always be computed against prior values
https://bugs.webkit.org/show_bug.cgi?id=157014

Reviewed by Darin Adler.

Compare the current value against the last baseline or target value that appear before the current value in time
so that the comparison stay the same even when new baseline and target values are reported. Also include the compared
baseline or target value in the label for clarity.

  • public/v3/components/chart-status-view.js:

(ChartStatusView.prototype._computeChartStatus):
(ChartStatusView.prototype._computeChartStatus.labelForDiff):
(ChartStatusView.prototype._findLastPointPriorToTime): Extracted from _relativeDifferenceToLaterPointInTimeSeries.
Now finds the last point before the current point's time if there is any, or the last point in baseline / target.
(ChartStatusView.prototype._relativeDifferenceToLaterPointInTimeSeries): Deleted.

  • public/v3/models/metric.js:

(Metric.prototype.makeFormatter): Don't use SI units for unit-less metrics.

09:22 Changeset [200089] by fpizlo@apple.com
  • 2 edits in trunk/Source/WebCore

WebCore on Mac ignores the user's preferred region (country) while getting the language
https://bugs.webkit.org/show_bug.cgi?id=156993

Reviewed by Geoffrey Garen.

I don't know how to test this since this depends on user settings.

WebCore was previously getting the list of preferred languages, and for each one, deducing
the default region. That's wrong, since for example it doesn't respect the user's choice (in
System Preferences) to display dates/calenders/etc according to a different region (like how
I have my machine set to en-pl right now).

It might be possible for the country code we get via kCFLocaleCountryCode to be something
that our ICU doesn't handle. To defend against this, we search for the resulting country
code in ICU's ISO countries list. If it doesn't appear in that list, we fall back on old
behavior.

  • platform/mac/Language.mm:

(WebCore::httpStyleLanguageCode):
(WebCore::platformUserPreferredLanguages):

09:12 Changeset [200088] by cdumez@apple.com
  • 5 edits in trunk/Source/WebCore

[Web IDL] Specify default values for optional parameters of TypedArray types
https://bugs.webkit.org/show_bug.cgi?id=157017

Reviewed by Darin Adler.

Specify default values for optional parameters of TypedArray types and let
the bindings generator use WTF::Optional<> for the ones that do not have a
default value.

  • bindings/scripts/CodeGeneratorJS.pm:

(CanUseWTFOptionalForParameter): Deleted.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::webkitGenerateKeyRequest):
(WebCore::HTMLMediaElement::webkitAddKey):
(WebCore::HTMLMediaElement::webkitCancelKeyRequest): Deleted.

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElement.idl:
09:07 Changeset [200087] by cdumez@apple.com
  • 17 edits in trunk/Source/WebCore

[Web IDL] Specify default values for optional parameters of type 'long' / 'unrestricted double'
https://bugs.webkit.org/show_bug.cgi?id=157012

Reviewed by Darin Adler.

Specify default values for optional parameters of type 'long' / 'unrestricted double'
and let the bindings generator use WTF::Optional<> for the ones that do not have a
default value.

  • Modules/mediastream/RTCDTMFSender.cpp:

(WebCore::RTCDTMFSender::insertDTMF):
(WebCore::RTCDTMFSender::didPlayTone): Deleted.

  • Modules/mediastream/RTCDTMFSender.h:
  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::start):
(WebCore::AudioBufferSourceNode::startPlaying): Deleted.

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

(WebCore::AudioContext::createDelay): Deleted.

  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::start): Deleted.
(WebCore::AudioScheduledSourceNode::stop): Deleted.

  • Modules/webaudio/AudioScheduledSourceNode.h:
  • Modules/webaudio/OscillatorNode.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(CanUseWTFOptionalForParameter): Deleted.

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2):
(WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentPromise):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgAndDefaultValue): Deleted.
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString): Deleted.
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4): Deleted.
(WebCore::jsTestObjConstructorFunctionClassMethod2): Deleted.
(WebCore::jsTestObjConstructorFunctionOverloadedMethod1): Deleted.
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Promise): Deleted.

  • html/HTMLInputElement.idl:
  • page/WindowTimers.idl:
  • testing/Internals.h:
  • testing/Internals.idl:
08:03 Changeset [200086] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Clarify Heap Snapshot instance Retained Size by hiding retained size of non-dominated children
https://bugs.webkit.org/show_bug.cgi?id=157018

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-04-26
Reviewed by Timothy Hatcher.

  • UserInterface/Proxies/HeapSnapshotNodeProxy.js:

(WebInspector.HeapSnapshotNodeProxy):
(WebInspector.HeapSnapshotNodeProxy.deserialize):

  • UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:

(HeapSnapshot.prototype.serializeNode):
Include dominatorNodeIdentifier in the default proxy properties.

  • UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:

(WebInspector.HeapSnapshotInstanceDataGridNode):
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype.get node):
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype.createCellContent):
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._isDominatedByBase):
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._isDominatedByNonBaseParent):
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._populate):

  • UserInterface/Views/HeapSnapshotInstancesContentView.css:

(.heap-snapshot > .data-grid td .sub-retained):
Save the base HeapSnapshotInstanceDataGridNode so that it can be referenced by
children. When expanding an instance, hide the retained size for children
that are not dominated by the base object. Show the retained size for children
for children that are dominated. If dominated directly, show the size in the
normal black. If dominated transitively, show the size in a dimmed gray.

07:58 Changeset [200085] by peavo@outlook.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

[WinCairo][WebGL] Enable ESSL and GLSL translators.
https://bugs.webkit.org/show_bug.cgi?id=157002

Reviewed by Darin Adler.

Enable support for ESSL and GLSL translators, and add missing files.

  • CMakeLists.txt:
07:49 Changeset [200084] by gskachkov@gmail.com
  • 28 edits
    1 delete in trunk

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

It brokes the debug build (Requested by gskachkov on

#webkit).

Reverted changeset:

"calling super() a second time in a constructor should throw"
https://bugs.webkit.org/show_bug.cgi?id=151113
http://trac.webkit.org/changeset/200083

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

07:19 Changeset [200083] by gskachkov@gmail.com
  • 28 edits
    1 add in trunk

calling super() a second time in a constructor should throw
https://bugs.webkit.org/show_bug.cgi?id=151113

Reviewed by Saam Barati and Keith Miller.

Source/JavaScriptCore:

Currently, our implementation checks if 'super()' was called in a constructor more
than once and raises a RuntimeError before the second call. According to the spec
we need to raise an error just after the second super() is finished and before
the new 'this' is assigned https://esdiscuss.org/topic/duplicate-super-call-behaviour.
To implement this behavior this patch adds a new op code, op_is_empty, that is used
to check if 'this' is empty.

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitIsEmpty):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionCallValueNode::emitBytecode):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNodeType.h:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileIsEmpty):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_is_empty):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_is_empty):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • tests/stress/class-syntax-double-constructor.js: Added.

LayoutTests:

  • js/class-syntax-super-expected.txt:
  • js/script-tests/class-syntax-super.js:
06:52 Changeset [200082] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Remove hard-wraps from the feature policy markdown so it renders full width on the site.

  • feature-policy.md:
06:34 WebKitGTK/2.12.x edited by carlosgc@webkit.org
(diff)
06:32 Changeset [200081] by carlosgc@webkit.org
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r200046 - [GTK] Crashes if DISPLAY is unset
https://bugs.webkit.org/show_bug.cgi?id=156972

Reviewed by Carlos Garcia Campos.

If DISPLAY is unset then m_display will be NULL, crashing WebKit
when XCloseDisplay is called in the PlatformDisplayX11 destructor.

  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::~PlatformDisplayX11):

06:20 Changeset [200080] by youenn.fablet@crf.canon.fr
  • 7 edits in trunk

Drop [UsePointersEvenForNonNullableObjectArguments] from SpeechSynthesis
https://bugs.webkit.org/show_bug.cgi?id=156901

Reviewed by Darin Adler.

Source/WebCore:

SpeechSynthesis.speak will now throw in case of bad parameters instead of silently failing.
Started refactoring to use more references where possible.

Covered by updated test.

  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::startSpeakingImmediately): Refactored to get a reference.
(WebCore::SpeechSynthesis::speak):
(WebCore::SpeechSynthesis::fireEvent):
(WebCore::SpeechSynthesis::handleSpeakingCompleted): Removing first item in utteranceQueue unconditionally,
since that would crash in Debug mode otherwise.
(WebCore::SpeechSynthesis::boundaryEventOccurred):
(WebCore::SpeechSynthesis::didStartSpeaking):
(WebCore::SpeechSynthesis::didPauseSpeaking):
(WebCore::SpeechSynthesis::didResumeSpeaking):
(WebCore::SpeechSynthesis::didFinishSpeaking):
(WebCore::SpeechSynthesis::speakingErrorOccurred):

  • Modules/speech/SpeechSynthesis.h:
  • Modules/speech/SpeechSynthesis.idl:

LayoutTests:

Updated test to handle speak throwing behavior in case of bad parameters.

  • fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt:
  • fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html:
06:17 Changeset [200079] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Source/WebCore

Drop [UsePointersEvenForNonNullableObjectArguments] from WebKitNamedFlow
https://bugs.webkit.org/show_bug.cgi?id=156979

Reviewed by Chris Dumez.

No change of behavior.

  • dom/WebKitNamedFlow.idl: Marking contentNode parameter as nullable.
06:03 Changeset [200078] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk

Drop [UsePointersEvenForNonNullableObjectArguments] from EventTarget
https://bugs.webkit.org/show_bug.cgi?id=156977

Reviewed by Chris Dumez.

Source/WebCore:

No change of behavior.

  • dom/EventTarget.idl:

LayoutTests:

  • fast/events/dispatchEvent-crash-expected.txt:
  • fast/events/dispatchEvent-crash.html: Ensuring exceptions are logged.
01:16 Changeset [200077] by gyuyoung.kim@webkit.org
  • 2 edits in trunk/Source/WebKit2

[EFL] Update expectation result in ewk_context_preferred_languages API test
https://bugs.webkit.org/show_bug.cgi?id=157027

Reviewed by Carlos Garcia Campos.

platformLanguage() has been returning lower case value since r199815. Thus existing expected result
needs to be updated together.

  • UIProcess/API/efl/tests/test_ewk2_context.cpp: Change en-US with en-us.

(TEST_F):

00:28 Changeset [200076] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit2

Mark two methods in the CoordinatedGraphicsScene and the
ThreadedCoordinatedLayerTreeHost classes as overrides, fixing
the compiler warnings.

Rubber-stamped by Carlos Garcia Campos.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
Note: See TracTimeline for information about the timeline view.