Timeline



Jan 12, 2015:

11:58 PM Changeset in webkit [178318] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r176768 - List markers in RTL languages do not draw the first character.
https://bugs.webkit.org/show_bug.cgi?id=139244

Reviewed by Simon Fraser.

Source/WebCore:

Off-by-one error when reversing the string (from LTR to RTL)

Test: fast/lists/rtl-marker.html

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::paint):

LayoutTests:

  • fast/lists/rtl-marker-expected.html: Added.
  • fast/lists/rtl-marker.html: Added.
11:54 PM Changeset in webkit [178317] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r176750 - ASSERTION: RenderMultiColumnFlowThread::processPossibleSpannerDescendant() when column spanner's parent is not a RenderBlockFlow.
https://bugs.webkit.org/show_bug.cgi?id=139188
rdar://problem/18502182

Reviewed by David Hyatt.

This patch ensures that the validation check for spanner in isValidColumnSpanner() is in synch
with the expectation in RenderMultiColumnFlowThread::processPossibleSpannerDescendant().
(descendant's parent is expected to be a RenderBlockFlow)

Source/WebCore:

Test: fast/multicol/svg-content-as-column-spanner-crash.html

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::isValidColumnSpanner):

LayoutTests:

  • fast/multicol/svg-content-as-column-spanner-crash-expected.txt: Added.
  • fast/multicol/svg-content-as-column-spanner-crash.html: Added.
10:23 PM Changeset in webkit [178316] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[EFL][GTK] Fix build after r178309
https://bugs.webkit.org/show_bug.cgi?id=140381

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-01-12
Reviewed by Gyuyoung Kim.

  • TestWebKitAPI/CMakeLists.txt: Added the API directory
9:18 PM Changeset in webkit [178315] by jonowells@apple.com
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Timeline: when Network Requests view is selected, in progress requests are absent.
https://bugs.webkit.org/show_bug.cgi?id=140090

Reviewed by Timothy Hatcher.

TimelineContentView#_updateTimes() changed to call WebInspector.timelineSidebarPanel.updateFilter() in addition
to updating the layout of the current timeline view. TimelineSidebarPanel.updateFilter() now responsible for
updating filtered resources in a TimelineView.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
Now handles updating the UI associated with filtering of navigation sidebar tree elements.

  • UserInterface/Views/OverviewTimelineView.js:

(WebInspector.OverviewTimelineView.prototype.updateLayout):
No longer handles updating other UI along with the navigation sidebar tree elements. That is now handled by
WebInspector.TimelineView.prototype.filterUpdated.
(WebInspector.OverviewTimelineView.prototype._compareTreeElementsByDetails): Drive-by fix. Missing vars.

  • UserInterface/Views/TimelineContentView.js:

(WebInspector.TimelineContentView.prototype._updateTimes): Add call to updateFilter().

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView.prototype.filterUpdated):
Function added to dispatch a SelectionPathComponentsDidChange event.

7:26 PM Changeset in webkit [178314] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix a typo in r178313

  • contentextensions/URLFilterParser.cpp:

(WebCore::ContentExtensions::GraphBuilder::atomPatternCharacter):

5:37 PM Changeset in webkit [178313] by benjamin@webkit.org
  • 10 edits
    2 adds in trunk/Source

Add basic pattern matching support to the url filters
https://bugs.webkit.org/show_bug.cgi?id=140283

Reviewed by Andreas Kling.

Source/JavaScriptCore:

Make YarrParser.h private in order to use it from WebCore.

Source/WebCore:

This patch adds some basic generic pattern support for the url filters
of ContentExtensions.

Instead of writting a new parser, I re-used Gavin's parser for JavaScript
RegExp.

This patch only implements the very basic stuffs: transition on any character
and repetition.

  • WebCore.xcodeproj/project.pbxproj:
  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::setRuleList):
Use the new parser.

  • contentextensions/DFA.cpp:

(WebCore::ContentExtensions::DFA::DFA):
(WebCore::ContentExtensions::printRange):
(WebCore::ContentExtensions::printTransition):
(WebCore::ContentExtensions::DFA::debugPrintDot):

  • contentextensions/NFA.cpp:

(WebCore::ContentExtensions::printRange):
(WebCore::ContentExtensions::printTransition):
(WebCore::ContentExtensions::NFA::debugPrintDot):
The graphs generated with the extended patterns are vastly more complicated
than the old prefix matcher.
I changed the debug output to have a single link between any two nodes
instead of one per transition. This makes the graph a little more manageable.

  • contentextensions/NFA.cpp:

(WebCore::ContentExtensions::NFA::addTransition):
(WebCore::ContentExtensions::NFA::addEpsilonTransition):
(WebCore::ContentExtensions::NFA::graphSize):
(WebCore::ContentExtensions::NFA::restoreToGraphSize):

  • contentextensions/NFA.h:
  • contentextensions/NFANode.h:

(WebCore::ContentExtensions::epsilonClosure):
The new parser can generate transitions back to the root node of index zero.
All the hash structures had to be updated to support this kind of key.

  • contentextensions/NFAToDFA.cpp:

(WebCore::ContentExtensions::HashableNodeIdSetHash::hash):
Two tiny improvements:
-Don't hash zero to zero, it causes more conflicts that needed.
-The hash operation must use a commutative operation, otherwise the order

of elements can affect the hash, which is undesired for a set.

I'll improve this further later.

(WebCore::ContentExtensions::NFAToDFA::convert):

  • contentextensions/URLFilterParser.cpp: Added.

(WebCore::ContentExtensions::GraphBuilder::GraphBuilder):
(WebCore::ContentExtensions::GraphBuilder::m_lastAtom):
(WebCore::ContentExtensions::GraphBuilder::finalize):
(WebCore::ContentExtensions::GraphBuilder::errorMessage):
(WebCore::ContentExtensions::GraphBuilder::atomPatternCharacter):
(WebCore::ContentExtensions::GraphBuilder::atomBuiltInCharacterClass):
(WebCore::ContentExtensions::GraphBuilder::quantifyAtom):
(WebCore::ContentExtensions::GraphBuilder::atomBackReference):
(WebCore::ContentExtensions::GraphBuilder::atomCharacterClassAtom):
(WebCore::ContentExtensions::GraphBuilder::assertionBOL):
(WebCore::ContentExtensions::GraphBuilder::assertionEOL):
(WebCore::ContentExtensions::GraphBuilder::assertionWordBoundary):
(WebCore::ContentExtensions::GraphBuilder::atomCharacterClassBegin):
(WebCore::ContentExtensions::GraphBuilder::atomCharacterClassRange):
(WebCore::ContentExtensions::GraphBuilder::atomCharacterClassBuiltIn):
(WebCore::ContentExtensions::GraphBuilder::atomCharacterClassEnd):
(WebCore::ContentExtensions::GraphBuilder::atomParenthesesSubpatternBegin):
(WebCore::ContentExtensions::GraphBuilder::atomParentheticalAssertionBegin):
(WebCore::ContentExtensions::GraphBuilder::atomParenthesesEnd):
(WebCore::ContentExtensions::GraphBuilder::disjunction):
(WebCore::ContentExtensions::GraphBuilder::hasError):
(WebCore::ContentExtensions::GraphBuilder::fail):
(WebCore::ContentExtensions::URLFilterParser::parse):

  • contentextensions/URLFilterParser.h:

(WebCore::ContentExtensions::URLFilterParser::hasError):
(WebCore::ContentExtensions::URLFilterParser::errorMessage):

5:20 PM Changeset in webkit [178312] by clopez@igalia.com
  • 2 edits in trunk/Source/WebKit2

[CMake] Unreviewed build fix after r178309.

  • CMakeLists.txt: Rename moved files at r178309.
5:04 PM Changeset in webkit [178311] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Out of bounds read in IdentifierArena::makeIdentifier
https://bugs.webkit.org/show_bug.cgi?id=140376

Patch by Alexey Proskuryakov.

Reviewed and ChangeLogged by Geoffrey Garen.

No test, since this is a small past-the-end read, which is very
difficult to turn into a reproducible failing test -- and existing tests
crash reliably using ASan.

  • parser/ParserArena.h:

(JSC::IdentifierArena::makeIdentifier):
(JSC::IdentifierArena::makeIdentifierLCharFromUChar): Check for a
zero-length string input, like we do in the literal parser, since it is
not valid to dereference characters in a zero-length string.

A zero-length string is allowed in JavaScript -- for example, "".

4:40 PM Changeset in webkit [178310] by weinig@apple.com
  • 82 edits
    116 deletes in trunk

Remove support for SharedWorkers
https://bugs.webkit.org/show_bug.cgi?id=140344

Reviewed by Anders Carlsson.

.:

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmakeconfig.h.cmake:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • CMakeLists.txt:
  • Configurations/FeatureDefines.xcconfig:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/generic/RuntimeEnabledFeatures.cpp:

(WebCore::RuntimeEnabledFeatures::sharedWorkerEnabled): Deleted.

  • bindings/generic/RuntimeEnabledFeatures.h:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSDOMWindowCustom.cpp:
  • bindings/js/JSSharedWorkerCustom.cpp: Removed.
  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::toJSWorkerGlobalScope):
(WebCore::toJSSharedWorkerGlobalScope): Deleted.

  • bindings/js/JSWorkerGlobalScopeBase.h:
  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::initScript):

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/preprocess-idls.pl:
  • dom/Document.cpp:

(WebCore::Document::prepareForDestruction):

  • dom/EventTarget.h:
  • dom/EventTargetFactory.in:
  • history/PageCache.cpp:

(WebCore::logCanCacheFrameDecision):
(WebCore::PageCache::canCachePageContainingThisFrame):

  • loader/FrameLoader.cpp:
  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::canAccessLocalStorage):
(WebCore::SecurityOrigin::canAccessSharedWorkers): Deleted.

  • platform/FeatureCounterKeys.h:
  • platform/PlatformStrategies.h:

(WebCore::PlatformStrategies::PlatformStrategies):
(WebCore::PlatformStrategies::sharedWorkerStrategy): Deleted.

  • workers/DefaultSharedWorkerRepository.cpp: Removed.
  • workers/DefaultSharedWorkerRepository.h: Removed.
  • workers/SharedWorker.cpp: Removed.
  • workers/SharedWorker.h: Removed.
  • workers/SharedWorker.idl: Removed.
  • workers/SharedWorkerGlobalScope.cpp: Removed.
  • workers/SharedWorkerGlobalScope.h: Removed.
  • workers/SharedWorkerGlobalScope.idl: Removed.
  • workers/SharedWorkerRepository.cpp: Removed.
  • workers/SharedWorkerRepository.h: Removed.
  • workers/SharedWorkerStrategy.h: Removed.
  • workers/SharedWorkerThread.cpp: Removed.
  • workers/SharedWorkerThread.h: Removed.
  • workers/WorkerGlobalScope.h:

(WebCore::WorkerGlobalScope::isSharedWorkerGlobalScope): Deleted.

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:
  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::createSharedWorkerStrategy): Deleted.

Source/WebKit/win:

  • WebCoreSupport/WebPlatformStrategies.cpp:

(WebPlatformStrategies::createSharedWorkerStrategy): Deleted.

  • WebCoreSupport/WebPlatformStrategies.h:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:
  • NetworkProcess/NetworkProcessPlatformStrategies.cpp:

(WebKit::NetworkProcessPlatformStrategies::createSharedWorkerStrategy): Deleted.

  • NetworkProcess/NetworkProcessPlatformStrategies.h:
  • WebKit2Prefix.h:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::createSharedWorkerStrategy): Deleted.
(WebKit::WebPlatformStrategies::isAvailable): Deleted.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:

LayoutTests:

Remove shared worker specific tests and update others to remove references to shared workers.

  • fast/constructors/constructor-as-function-crash-expected.txt:
  • fast/constructors/constructor-as-function-crash.html:
  • fast/dom/call-a-constructor-as-a-function-expected.txt:
  • fast/dom/call-a-constructor-as-a-function.html:
  • fast/workers/resources/create-shared-worker-frame.html: Removed.
  • fast/workers/resources/shared-worker-common.js: Removed.
  • fast/workers/resources/shared-worker-count-connections.js: Removed.
  • fast/workers/resources/shared-worker-create-common.js: Removed.
  • fast/workers/resources/shared-worker-exception.js: Removed.
  • fast/workers/resources/shared-worker-iframe.html: Removed.
  • fast/workers/resources/shared-worker-lifecycle.js: Removed.
  • fast/workers/resources/shared-worker-name.js: Removed.
  • fast/workers/resources/shared-worker-script-error.js: Removed.
  • fast/workers/shared-worker-constructor-expected.txt: Removed.
  • fast/workers/shared-worker-constructor.html: Removed.
  • fast/workers/shared-worker-context-gc-expected.txt: Removed.
  • fast/workers/shared-worker-context-gc.html: Removed.
  • fast/workers/shared-worker-event-listener-expected.txt: Removed.
  • fast/workers/shared-worker-event-listener.html: Removed.
  • fast/workers/shared-worker-exception-expected.txt: Removed.
  • fast/workers/shared-worker-exception.html: Removed.
  • fast/workers/shared-worker-frame-lifecycle-expected.txt: Removed.
  • fast/workers/shared-worker-frame-lifecycle.html: Removed.
  • fast/workers/shared-worker-gc-expected.txt: Removed.
  • fast/workers/shared-worker-gc.html: Removed.
  • fast/workers/shared-worker-in-iframe-expected.txt: Removed.
  • fast/workers/shared-worker-in-iframe.html: Removed.
  • fast/workers/shared-worker-lifecycle-expected.txt: Removed.
  • fast/workers/shared-worker-lifecycle.html: Removed.
  • fast/workers/shared-worker-load-error-expected.txt: Removed.
  • fast/workers/shared-worker-load-error.html: Removed.
  • fast/workers/shared-worker-location-expected.txt: Removed.
  • fast/workers/shared-worker-location.html: Removed.
  • fast/workers/shared-worker-messageevent-source-expected.txt: Removed.
  • fast/workers/shared-worker-messageevent-source.html: Removed.
  • fast/workers/shared-worker-name-expected.txt: Removed.
  • fast/workers/shared-worker-name.html: Removed.
  • fast/workers/shared-worker-navigator-expected.txt: Removed.
  • fast/workers/shared-worker-navigator.html: Removed.
  • fast/workers/shared-worker-replace-global-constructor-expected.txt: Removed.
  • fast/workers/shared-worker-replace-global-constructor.html: Removed.
  • fast/workers/shared-worker-replace-self-expected.txt: Removed.
  • fast/workers/shared-worker-replace-self.html: Removed.
  • fast/workers/shared-worker-script-error-expected.txt: Removed.
  • fast/workers/shared-worker-script-error.html: Removed.
  • fast/workers/shared-worker-shared-expected.txt: Removed.
  • fast/workers/shared-worker-shared.html: Removed.
  • fast/workers/shared-worker-simple-expected.txt: Removed.
  • fast/workers/shared-worker-simple.html: Removed.
  • fast/workers/shared-worker-storagequota-query-usage-expected.txt: Removed.
  • fast/workers/shared-worker-storagequota-query-usage.html: Removed.
  • fast/workers/worker-crash-with-invalid-location-expected.txt:
  • fast/workers/worker-crash-with-invalid-location.html:
  • http/tests/resources/js-test-pre.js:

(startWorker):
(.worker.port.onmessage): Deleted.
(.self.onconnect.workerPort.onmessage): Deleted.
(.self.onconnect): Deleted.

  • http/tests/security/contentSecurityPolicy/resources/shared-worker-make-xhr.js: Removed.
  • http/tests/security/contentSecurityPolicy/shared-worker-connect-src-allowed-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/shared-worker-connect-src-allowed.html: Removed.
  • http/tests/security/contentSecurityPolicy/shared-worker-connect-src-blocked-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/shared-worker-connect-src-blocked.html: Removed.
  • http/tests/security/cross-origin-shared-worker-allowed-expected.txt: Removed.
  • http/tests/security/cross-origin-shared-worker-allowed.html: Removed.
  • http/tests/security/cross-origin-shared-worker-expected.txt: Removed.
  • http/tests/security/cross-origin-shared-worker.html: Removed.
  • http/tests/security/resources/cross-origin-iframe-for-shared-worker.html: Removed.
  • http/tests/security/resources/iframe-for-storage-blocking-changed-shared-worker.html: Removed.
  • http/tests/security/resources/shared-worker.js: Removed.
  • http/tests/security/same-origin-shared-worker-blocked-expected.txt: Removed.
  • http/tests/security/same-origin-shared-worker-blocked.html: Removed.
  • http/tests/security/storage-blocking-loosened-shared-worker-expected.txt: Removed.
  • http/tests/security/storage-blocking-loosened-shared-worker.html: Removed.
  • http/tests/security/storage-blocking-strengthened-shared-worker-expected.txt: Removed.
  • http/tests/security/storage-blocking-strengthened-shared-worker.html: Removed.
  • http/tests/websocket/tests/hybi/workers/close-in-shared-worker-expected.txt: Removed.
  • http/tests/websocket/tests/hybi/workers/close-in-shared-worker.html: Removed.
  • http/tests/websocket/tests/hybi/workers/shared-worker-simple-expected.txt: Removed.
  • http/tests/websocket/tests/hybi/workers/shared-worker-simple.html: Removed.
  • http/tests/workers/shared-worker-importScripts-expected.txt: Removed.
  • http/tests/workers/shared-worker-importScripts.html: Removed.
  • http/tests/workers/shared-worker-invalid-url-expected.txt: Removed.
  • http/tests/workers/shared-worker-invalid-url.html: Removed.
  • http/tests/workers/shared-worker-redirect-expected.txt: Removed.
  • http/tests/workers/shared-worker-redirect.html: Removed.
  • http/tests/xmlhttprequest/workers/resources/shared-worker-create.js: Removed.
  • http/tests/xmlhttprequest/workers/shared-worker-access-control-basic-get-fail-non-simple-expected.txt: Removed.
  • http/tests/xmlhttprequest/workers/shared-worker-access-control-basic-get-fail-non-simple.html: Removed.
  • http/tests/xmlhttprequest/workers/shared-worker-close-expected.txt: Removed.
  • http/tests/xmlhttprequest/workers/shared-worker-close.html: Removed.
  • http/tests/xmlhttprequest/workers/shared-worker-methods-async-expected.txt: Removed.
  • http/tests/xmlhttprequest/workers/shared-worker-methods-async.html: Removed.
  • http/tests/xmlhttprequest/workers/shared-worker-methods-expected.txt: Removed.
  • http/tests/xmlhttprequest/workers/shared-worker-methods.html: Removed.
  • http/tests/xmlhttprequest/workers/shared-worker-referer-expected.txt: Removed.
  • http/tests/xmlhttprequest/workers/shared-worker-referer.html: Removed.
  • http/tests/xmlhttprequest/workers/shared-worker-xhr-file-not-found-expected.txt: Removed.
  • http/tests/xmlhttprequest/workers/shared-worker-xhr-file-not-found.html: Removed.
  • js/dom/constructor-length.html:
  • js/dom/global-constructors-attributes-expected.txt:
  • js/dom/global-constructors-attributes-shared-worker-expected.txt: Removed.
  • js/dom/global-constructors-attributes-shared-worker.html: Removed.
  • platform/efl/http/tests/xmlhttprequest/workers/shared-worker-methods-async-expected.txt: Removed.
  • platform/efl/http/tests/xmlhttprequest/workers/shared-worker-methods-expected.txt: Removed.
  • platform/efl/js/dom/constructor-length-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-shared-worker-expected.txt: Removed.
  • platform/gtk/http/tests/xmlhttprequest/workers/shared-worker-methods-async-expected.txt: Removed.
  • platform/gtk/http/tests/xmlhttprequest/workers/shared-worker-methods-expected.txt: Removed.
  • platform/gtk/js/dom/constructor-length-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/ios-sim-deprecated/fast/dom/Window/window-property-descriptors-expected.txt:
  • platform/ios-sim-deprecated/fast/js/constructor-length-expected.txt:
  • platform/ios-sim-deprecated/fast/js/global-constructors-expected.txt:
  • platform/ios-sim-deprecated/fast/workers/shared-worker-storagequota-query-usage-expected.txt: Removed.
  • platform/ios-sim-deprecated/http/tests/security/cross-origin-shared-worker-allowed-expected.txt: Removed.
  • platform/ios-sim-deprecated/http/tests/security/cross-origin-shared-worker-expected.txt: Removed.
  • platform/ios-sim-deprecated/js/dom/global-constructors-attributes-expected.txt:
  • platform/ios-sim-deprecated/storage/indexeddb/basics-shared-workers-expected.txt: Removed.
  • platform/ios-simulator/js/dom/constructor-length-expected.txt:
  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-mountainlion/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/js/dom/constructor-length-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/fast/dom/call-a-constructor-as-a-function-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-shared-worker-expected.txt: Removed.
  • resources/js-test-pre.js:

(startWorker):
(.worker.port.onmessage): Deleted.
(.self.onconnect.workerPort.onmessage): Deleted.
(.self.onconnect): Deleted.

  • resources/js-test.js:

(startWorker):
(.worker.port.onmessage): Deleted.
(.self.onconnect.workerPort.onmessage): Deleted.
(.self.onconnect): Deleted.

  • storage/indexeddb/basics-shared-workers-expected.txt: Removed.
  • storage/indexeddb/basics-shared-workers.html: Removed.
4:35 PM Changeset in webkit [178309] by andersca@apple.com
  • 2 edits
    6 moves in trunk/Source/WebKit2

Move a couple of API files to UIProcess/API.

Rubber-stamped by Tim Horton.

  • UIProcess/API/APINavigationData.cpp: Renamed from Source/WebKit2/UIProcess/APINavigationData.cpp.
  • UIProcess/API/APINavigationData.h: Renamed from Source/WebKit2/UIProcess/APINavigationData.h.
  • UIProcess/API/APIProcessPoolConfiguration.cpp: Renamed from Source/WebKit2/UIProcess/APIProcessPoolConfiguration.cpp.
  • UIProcess/API/APIProcessPoolConfiguration.h: Renamed from Source/WebKit2/UIProcess/APIProcessPoolConfiguration.h.
  • UIProcess/API/APISession.cpp: Renamed from Source/WebKit2/UIProcess/APISession.cpp.
  • UIProcess/API/APISession.h: Renamed from Source/WebKit2/UIProcess/APISession.h.
  • WebKit2.xcodeproj/project.pbxproj:
4:35 PM Changeset in webkit [178308] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION(r178029): [GTK][EFL] Caused no-backing-for-clip-overlap test failures
https://bugs.webkit.org/show_bug.cgi?id=140336

Patch by Byungseon Shin <sun.shin@lge.com> on 2015-01-12
Reviewed by Simon Fraser.

Avoid creating childClippingMaskLayer when renderer has not border radius nor clip path.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateChildClippingStrategy):

4:30 PM Changeset in webkit [178307] by mhock@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS][WK2] Push content bounds on layer tree commit to prevent drawing stale fixed position rects
https://bugs.webkit.org/show_bug.cgi?id=140264
<rdar://problem/18873545>

Reviewed by Benjamin Poulain.

When a resize occurs, we need to push the new content bounds to the web
process or stale fixed position rects may draw incorrectly.

As an example, suppose that WKWebView in UIProcess performs
_frameOrBoundsChanged with new view bounds.
Meanwhile, we'll switch to WebContentProcess and perform layout.
Switching back to UIProcess, _frameOrBoundsChanged calls WKWebView
_updateVisibleContentRects.
_updateVisibleContentRects calls WKContentView didUpdateVisibleRect with
the new bounds.
didUpdateVisibleRects in turn calls WebPageProxyIOS
computeCustomFixedPositionRect.
computeCustomFixedPositionRect asks for the content bounds from
PageClientImplIOS contentsSize which queries WKContentView's bounds
size. But those bounds are stale because the layer tree commit hasn't
occurred yet.

By informing the WKWebView of the updated content size on layer tree
commit, we ensure that the fixed position rects will be drawn correctly.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _didCommitLayerTree:]): Push new content bounds to the web process.

4:30 PM Changeset in webkit [178306] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[Apple] Squelch stderr log regarding negative stroke thickness
https://bugs.webkit.org/show_bug.cgi?id=140372
<rdar://problem/19426485>

Reviewed by Eric Carlson.

No new tests because there is no visible behavior change.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::setPlatformStrokeThickness):

4:25 PM Changeset in webkit [178305] by timothy_horton@apple.com
  • 5 edits in trunk/Source

Get rid of unnecessary reimplementations of CGFloor/Ceiling
https://bugs.webkit.org/show_bug.cgi?id=140375

Reviewed by Simon Fraser.

  • platform/mac/DragImageMac.mm:

(WebCore::widthWithFont):
(WebCore::drawAtPoint):
(WebCore::webkit_CGCeiling): Deleted.

  • platform/mac/WebVideoFullscreenHUDWindowController.mm:

(-[WebVideoFullscreenHUDWindowController windowDidLoad]):
(webkit_CGFloor): Deleted.
Delete unnecessary code, use the real CGFloor/Ceiling instead.

  • Misc/WebKitNSStringExtras.mm:

(-[NSString _web_drawAtPoint:font:textColor:allowingFontSmoothing:]):
(webkit_CGCeiling): Deleted.
Delete unnecessary code, use the real CGFloor/Ceiling instead.

3:57 PM Changeset in webkit [178304] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION (r177656): Text in find-in-page yellow bouncy rectangle is not crisp
https://bugs.webkit.org/show_bug.cgi?id=140373
<rdar://problem/19447156>

Reviewed by Simon Fraser.

  • page/mac/TextIndicatorWindow.mm:

(WebCore::TextIndicatorWindow::setTextIndicator):
Expand the window margin to the nearest integer.
The window was already being pixel-snapped, but then we'd translate by
the non-integral margin when building up the layer tree.
It's OK to do this on 2x because it's fine to have the margin be bigger
than needed.

  • platform/spi/cg/CoreGraphicsSPI.h:

Add a CGCeiling to match CGFloor.

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

Guard web thread stuff with USE(WEB_THREAD) instead of PLATFORM(IOS).

Dan pointed out that we should guard WebThreadIsLockedOrDisabled() with
USE(WEB_THREAD) to communicate our ambitions to someday have an iOS
build of WebKit that doesn't need any of that.

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::resume):

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

Fix build for non-iOS platforms. :|

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::resume):

3:32 PM Changeset in webkit [178301] by clopez@igalia.com
  • 2 edits in trunk/Source/WebCore

[Freetype] Don't use non-scalable fonts.
https://bugs.webkit.org/show_bug.cgi?id=31931

Reviewed by Martin Robinson.

No new tests needed.

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::FontCache::createFontPlatformData): Prefer scalable fonts.

3:14 PM Changeset in webkit [178300] by akling@apple.com
  • 5 edits
    2 moves
    1 add
    7 deletes in trunk

Geolocation objects shouldn't prevent page caching.
<https://webkit.org/b/140369>

Reviewed by Joseph Pecoraro.

Source/WebCore:

Enable the code for suspend/resume of Geolocation objects on all platforms
instead of just iOS. This allows pages using geolocation to use page cache
instead of reloading on back/forward navigation.

Test: fast/history/page-cache-geolocation.html

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::Geolocation):
(WebCore::Geolocation::resetAllGeolocationPermission):
(WebCore::Geolocation::stop):
(WebCore::Geolocation::setIsAllowed):
(WebCore::Geolocation::positionChanged):
(WebCore::Geolocation::setError):

  • Modules/geolocation/Geolocation.h:

LayoutTests:

Take the existing test for this and make it not-specific-to-iOS.
Also remove a test whose only purpose was confirming that we don't cache these pages.

  • fast/dom/Geolocation/no-page-cache-expected.txt: Removed.
  • fast/dom/Geolocation/no-page-cache.html: Removed.
  • fast/dom/Geolocation/script-tests/no-page-cache.js: Removed.
  • fast/history/page-cache-geolocation-expected.txt: Renamed from LayoutTests/platform/ios-simulator/ios/fast/history/page-cache-geolocation-expected.txt.
  • fast/history/page-cache-geolocation.html: Renamed from LayoutTests/platform/ios-simulator/ios/fast/history/script-tests/page-cache-geolocation.js.
  • fast/history/resources/page-cache-helper.html: Added.
  • platform/ios-sim-deprecated/iphone/fast/history/page-cache-geolocation-expected.txt: Removed.
  • platform/ios-sim-deprecated/iphone/fast/history/page-cache-geolocation.html: Removed.
  • platform/ios-sim-deprecated/iphone/fast/history/script-tests/page-cache-geolocation.js: Removed.
  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator/ios/fast/history/page-cache-geolocation.html: Removed.
2:40 PM Changeset in webkit [178299] by Manuel Rego Casasnovas
  • 1 edit
    1 add
    9 deletes in trunk/LayoutTests

Make fast/css/first-letter-skip-out-of-flow.html a ref-test
https://bugs.webkit.org/show_bug.cgi?id=140324

Reviewed by Andreas Kling.

  • fast/css/first-letter-skip-out-of-flow-expected.html: Added.
  • platform/efl/fast/css/first-letter-skip-out-of-flow-expected.png: Removed.
  • platform/efl/fast/css/first-letter-skip-out-of-flow-expected.txt: Removed.
  • platform/gtk/fast/css/first-letter-skip-out-of-flow-expected.png: Removed.
  • platform/gtk/fast/css/first-letter-skip-out-of-flow-expected.txt: Removed.
  • platform/ios-sim-deprecated/fast/css/first-letter-skip-out-of-flow-expected.txt: Removed.
  • platform/ios-simulator-wk2/fast/css/first-letter-skip-out-of-flow-expected.txt: Removed.
  • platform/mac-mountainlion/fast/css/first-letter-skip-out-of-flow-expected.txt: Removed.
  • platform/mac/fast/css/first-letter-skip-out-of-flow-expected.png: Removed.
  • platform/mac/fast/css/first-letter-skip-out-of-flow-expected.txt: Removed.
2:30 PM Changeset in webkit [178298] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Log navigation types using DiagnosticLoggingClient
https://bugs.webkit.org/show_bug.cgi?id=140323

Reviewed by Darin Adler.

Log navigation types using DiagnosticLoggingClient to help us understand
what types of navigations are common and give us an estimate on the
total number of navigations.

  • loader/FrameLoader.cpp:

(WebCore::logNavigation):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::logNavigationWithFeatureCounter): Deleted.

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::navigationKey):

  • page/DiagnosticLoggingKeys.h:
2:02 PM Changeset in webkit [178297] by Brian Burg
  • 2 edits in trunk/Source/WebCore

Web Inspector: ASSERT under WebCore::InspectorResourceAgent::loadResource
https://bugs.webkit.org/show_bug.cgi?id=140367

Reviewed by Andreas Kling.

  • inspector/InspectorResourceAgent.cpp:

(WebCore::InspectorResourceAgent::loadResource): use copyRef() instead of move(),
since we check the callback after giving it to the loader client.

1:58 PM Changeset in webkit [178296] by andersca@apple.com
  • 10 edits in trunk/Source/WebCore

Move DatabaseBackend functions back to Database
https://bugs.webkit.org/show_bug.cgi?id=140368

Reviewed by Sam Weinig.

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::openAndVerifyVersion):
(WebCore::Database::close):
(WebCore::Database::performOpenAndVerify):
(WebCore::Database::scheduleTransaction):
(WebCore::Database::runTransaction):
(WebCore::Database::scheduleTransactionStep):
(WebCore::Database::inProgressTransactionCompleted):
(WebCore::Database::transactionClient):
(WebCore::Database::transactionCoordinator):

  • Modules/webdatabase/Database.h:
  • Modules/webdatabase/DatabaseBackend.cpp:

(WebCore::DatabaseBackend::openAndVerifyVersion): Deleted.
(WebCore::DatabaseBackend::performOpenAndVerify): Deleted.
(WebCore::DatabaseBackend::close): Deleted.
(WebCore::DatabaseBackend::runTransaction): Deleted.
(WebCore::DatabaseBackend::inProgressTransactionCompleted): Deleted.
(WebCore::DatabaseBackend::scheduleTransaction): Deleted.
(WebCore::DatabaseBackend::scheduleTransactionStep): Deleted.
(WebCore::DatabaseBackend::transactionClient): Deleted.
(WebCore::DatabaseBackend::transactionCoordinator): Deleted.

  • Modules/webdatabase/DatabaseBackend.h:
  • Modules/webdatabase/DatabaseThread.cpp:

(WebCore::DatabaseThread::recordDatabaseOpen):
(WebCore::DatabaseThread::recordDatabaseClosed):
(WebCore::SameDatabasePredicate::SameDatabasePredicate):
(WebCore::DatabaseThread::unscheduleDatabaseTasks):

  • Modules/webdatabase/DatabaseThread.h:
  • Modules/webdatabase/SQLTransactionBackend.cpp:

(WebCore::SQLTransactionBackend::create):
(WebCore::SQLTransactionBackend::SQLTransactionBackend):

  • Modules/webdatabase/SQLTransactionBackend.h:

(WebCore::SQLTransactionBackend::database):

1:41 PM Changeset in webkit [178295] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.15.1

New tag.

1:12 PM Changeset in webkit [178294] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Addressing post-review comment after r178292
https://bugs.webkit.org/show_bug.cgi?id=136769

Unreviewed.

  • loader/cache/CachedFont.cpp:

(WebCore::CachedFont::ensureCustomFontData):

1:07 PM Changeset in webkit [178293] by andersca@apple.com
  • 40 edits in trunk

Make delegates conform to formal delegate protocols
https://bugs.webkit.org/show_bug.cgi?id=140370

Reviewed by Dan Bernstein.

Source/WebKit/mac:

  • DefaultDelegates/WebDefaultPolicyDelegate.h:
  • WebCoreSupport/WebInspectorClient.mm:

Add protocols to the interface declarations.

  • WebView/WebActionMenuController.mm:

(-[WebActionMenuController prepareForMenu:withEvent:]):
(-[WebActionMenuController _defaultMenuItemsForDataDetectedText]):

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _updateImmediateActionItem]):
(-[WebImmediateActionController _menuItemForDataDetectedText]):
Cast to id when trying to invoke delegate methods that aren't on WebUIDelegate.

Tools:

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::numberOfPendingGeolocationPermissionRequests):
(TestRunner::setGeolocationPermission):

12:55 PM Changeset in webkit [178292] by mmaxfield@apple.com
  • 15 edits in trunk/Source

Allow targetting the SVG->OTF font converter with ENABLE(SVG_OTF_CONVERTER)
https://bugs.webkit.org/show_bug.cgi?id=136769

Reviewed by Antti Koivisto.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

If ENABLE(SVG_OTF_CONVERTER) is defined, use the converter. It can be defined at the same
time as ENABLE(SVG_FONTS) but, if so, the SVG font code will be dead code.

No new tests because the define is off by default. Tests will come soon, I promise.

  • Configurations/FeatureDefines.xcconfig:
  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::getFontData): When creating a font, if the ENABLE is on,
do the transcode and take the non-SVG path.
(WebCore::CSSFontFaceSource::ensureFontData): Pass extra arguments to
CachedFont::ensureCustomFontData()

  • css/CSSFontFaceSource.h: For the case of in-document SVG fonts, keep the transcoded

bytes around.

  • loader/cache/CachedFont.cpp:

(WebCore::CachedFont::ensureCustomFontData): For out-of-document SVG fonts, do the
transcode if the ENABLE is on, then treat as if the font is any old webfont.
(WebCore::CachedFont::getSVGFontById): This function looks up the relevant <font>
element. Modify it to take a pointer to a (possibly external) document within which
to search.

  • loader/cache/CachedFont.h: Extra arguments to CachedFont::ensureCustomFontData()

and CachedFont::getSVGFontById()

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:
12:22 PM Changeset in webkit [178291] by zandobersek@gmail.com
  • 6 edits in trunk/Source

Clean up FrameTree::traverseNext() traversals of main frames
https://bugs.webkit.org/show_bug.cgi?id=140338

Reviewed by Andreas Kling.

There's no reason to pass the main frame as the stayWithin parameter
to FrameTree::traverseNext() when traversing over that same main frame.

Source/WebCore:

  • inspector/InspectorApplicationCacheAgent.cpp:

(WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::getCookies):
(WebCore::InspectorPageAgent::deleteCookie):
(WebCore::InspectorPageAgent::searchInResources):

  • replay/SerializationMethods.cpp:

(WebCore::frameIndexFromFrame):
(WebCore::frameFromFrameIndex):

Source/WebKit2:

  • WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:

(WebKit::WebContextMenuClient::searchWithSpotlight):

12:22 PM Changeset in webkit [178290] by timothy_horton@apple.com
  • 10 edits in trunk/Source

Multi-rect TextIndicators are vertically flipped in WebKit1
https://bugs.webkit.org/show_bug.cgi?id=140350
<rdar://problem/19441243>

Reviewed by Beth Dakin.

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithSelectionInFrame):
(WebCore::TextIndicator::TextIndicator):

  • page/TextIndicator.h:

(WebCore::TextIndicator::selectionRectInRootViewCoordinates):
(WebCore::TextIndicator::textBoundingRectInRootViewCoordinates):
(WebCore::TextIndicator::selectionRectInWindowCoordinates): Deleted.
(WebCore::TextIndicator::textBoundingRectInWindowCoordinates): Deleted.

  • page/mac/TextIndicatorWindow.mm:

(-[WebTextIndicatorView initWithFrame:textIndicator:margin:]):
(WebCore::TextIndicatorWindow::setTextIndicator):
Compute, store, and use TextIndicator's selectionRect and textBoundingRect
in root view coordinates instead of window coordinates; this way, each
WebKit can do the conversion itself, and the rootView vs. window flipping
isn't wrongly factored into textRectsInBoundingRectCoordinates.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<TextIndicatorData>::encode):
(IPC::ArgumentCoder<TextIndicatorData>::decode):
Adjust to the field name changes.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _setTextIndicator:fadeOut:]):
Convert the textBoundingRect from root view to screen coordinates.

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::updateFindIndicator):
(WebKit::FindController::drawRect):
Adjust to the new name, and use contentsToRootView when comparing against
the stored m_findIndicatorRect.

  • WebView/WebView.mm:

(-[WebView _setTextIndicator:fadeOut:]):
Convert the textBoundingRect from root view to screen coordinates.

12:02 PM Changeset in webkit [178289] by commit-queue@webkit.org
  • 15 edits
    2 deletes in trunk

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

Broke many media tests (Requested by ap on #webkit).

Reverted changeset:

"defaultPlaybackRate not respected when set before source is
loaded"
https://bugs.webkit.org/show_bug.cgi?id=140282
http://trac.webkit.org/changeset/178281

11:43 AM Changeset in webkit [178288] by andersca@apple.com
  • 21 edits
    2 deletes in trunk/Source/WebCore

Merge DatabaseBackendContext into DatabaseContext
https://bugs.webkit.org/show_bug.cgi?id=140365

Reviewed by Antti Koivisto.

  • CMakeLists.txt:
  • Modules/webdatabase/AbstractDatabaseServer.h:
  • Modules/webdatabase/Database.cpp:

(WebCore::Database::Database):

  • Modules/webdatabase/Database.h:
  • Modules/webdatabase/DatabaseBackend.cpp:

(WebCore::DatabaseBackend::DatabaseBackend):

  • Modules/webdatabase/DatabaseBackend.h:
  • Modules/webdatabase/DatabaseBackendBase.cpp:

(WebCore::DatabaseBackendBase::DatabaseBackendBase):

  • Modules/webdatabase/DatabaseBackendBase.h:

(WebCore::DatabaseBackendBase::databaseContext):

  • Modules/webdatabase/DatabaseBackendContext.cpp: Removed.
  • Modules/webdatabase/DatabaseBackendContext.h: Removed.
  • Modules/webdatabase/DatabaseContext.cpp:

(WebCore::DatabaseContext::securityOrigin):
(WebCore::DatabaseContext::isContextThread):
(WebCore::DatabaseContext::backend): Deleted.

  • Modules/webdatabase/DatabaseContext.h:
  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::openDatabaseBackend):
(WebCore::DatabaseManager::interruptAllDatabasesForContext):

  • Modules/webdatabase/DatabaseServer.cpp:

(WebCore::DatabaseServer::interruptAllDatabasesForContext):
(WebCore::DatabaseServer::openDatabase):
(WebCore::DatabaseServer::createDatabase):

  • Modules/webdatabase/DatabaseServer.h:
  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::retryCanEstablishDatabase):
(WebCore::DatabaseTracker::interruptAllDatabasesForContext):

  • Modules/webdatabase/DatabaseTracker.h:
  • Modules/webdatabase/SQLTransactionBackend.cpp:
  • Modules/webdatabase/SQLTransactionClient.cpp:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
10:50 AM Changeset in webkit [178287] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Make WebResourceDelegate a formal protocol as well
https://bugs.webkit.org/show_bug.cgi?id=140364

Reviewed by Dan Bernstein.

  • WebView/WebResourceLoadDelegate.h:
10:47 AM Changeset in webkit [178286] by Carlos Garcia Campos
  • 4 edits
    1 add in releases/WebKitGTK/webkit-2.6/Source/JavaScriptCore

Merge r176676 - Fixes inline cache fast path accessing nonexistant getters.
<rdar://problem/18416918>
https://bugs.webkit.org/show_bug.cgi?id=136961

Reviewed by Filip Pizlo.

Fixes a bug in inline caching where getters would have been able to
modify the property they are getting during
building the inline cache and then accessing that
property through the inline cache site causing a recursive
inline cache building and allowing the fast path of the cache to
try to load a getter for the property that no longer exists.

  • jit/JITOperations.cpp: Switched use of get to getPropertySlot.
  • runtime/JSCJSValue.h:

added getPropertySlot for when you don't want to perform the get quite yet but want
to fill out the slot.

  • runtime/JSCJSValueInlines.h: Added implementation for getPropertySlot

(JSC::JSValue::get): changed to simply call getPropertySlot
(JSC::JSValue::getPropertySlot): added.

  • tests/stress/recursive_property_redefine_during_inline_caching.js: Added test case for bug.

(test):

10:41 AM Changeset in webkit [178285] by andersca@apple.com
  • 7 edits in trunk/Source/WebKit/mac

Delegates should be formal protocols
https://bugs.webkit.org/show_bug.cgi?id=140360
rdar://problem/17380856

Reviewed by Dan Bernstein.

This is the first half of this change. The second half involves actually changing the delegate properties to be protocols.

  • DefaultDelegates/WebDefaultUIDelegate.h:
  • Misc/WebDownload.h:
  • WebView/WebEditingDelegate.h:
  • WebView/WebFrameLoadDelegate.h:
  • WebView/WebPolicyDelegate.h:
  • WebView/WebUIDelegate.h:
10:26 AM Changeset in webkit [178284] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

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

Broke a JSC test (Requested by ap on #webkit).

Reverted changeset:

"Local JSArray* "keys" in objectConstructorKeys() is not
marked during garbage collection"
https://bugs.webkit.org/show_bug.cgi?id=140348
http://trac.webkit.org/changeset/178266

10:20 AM Changeset in webkit [178283] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/JavaScriptCore

Merge r176624 - Crash (integer overflow) beneath ByteCodeParser::handleGetById typing in search field on weather.com
https://bugs.webkit.org/show_bug.cgi?id=139165

Reviewed by Oliver Hunt.

If we don't have any getById or putById variants, emit non-cached versions of these operations.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::handlePutById):

10:17 AM Changeset in webkit [178282] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r176619 - Twitter avatar moves when hovering/unhovering the "follow" button.
https://bugs.webkit.org/show_bug.cgi?id=139147
rdar://problem/19096508

Reviewed by Simon Fraser.

This patch ensures that the out of flow positioned render boxes (RenderReplaced) do not
get repositioned when their inline box wrappers move.
Ideally, out of flow positioned renderers do not have inline wrappers by the time we start
placing inline boxes, but in certain case (optimized code path for descendantsHaveSameLineHeightAndBaseline()),
they are still part of the inline box tree.
This patch prevents those renderer boxes from getting positioned as part of the inline box placement.
They will get removed later at RenderBlockFlow::computeBlockDirectionPositionsForLine().

Source/WebCore:

Test: fast/inline/out-of-flow-positioned-render-replaced-box-moves.html

  • rendering/InlineBox.cpp:

(WebCore::InlineBox::adjustPosition):

LayoutTests:

  • fast/inline/out-of-flow-positioned-render-replaced-box-moves-expected.html: Added.
  • fast/inline/out-of-flow-positioned-render-replaced-box-moves.html: Added.
10:15 AM Changeset in webkit [178281] by jer.noble@apple.com
  • 15 edits
    2 adds in trunk

defaultPlaybackRate not respected when set before source is loaded
https://bugs.webkit.org/show_bug.cgi?id=140282

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-defaultplaybackrate-before-load.html

When the HTMLMediaElement is notified that the media player's rate has changed, it asks
for the rate from MediaPlayer. However, MediaPlayer never requests the playback rate
from the underlying MediaPlayerPrivate; it just returns the last rate which was set, or
1 if no rate was set. HTMLMediaElement then sets its playbackRate to the returned
value. So the end result is that the value from defaultPlaybackRate is overwritten by
the default value of 1 in MediaPlayer.

Rather than caching the requested rate in MediaPlayer, cache the value reported by
MediaPlayer inside HTMLMediaElement. And instead of returning the reported playback
rate from HTMLMediaElement.playbackRate, just return the last value set. The reported
value is still used for estimating the current time during playback.

Add MediaPlayerPrivate interface method to return the current playback rate.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_reportedPlaybackRate.
(WebCore::HTMLMediaElement::effectivePlaybackRate): Return m_reportedPlaybackRate.
(WebCore::HTMLMediaElement::requestedPlaybackRate): Return m_playbackRate.
(WebCore::HTMLMediaElement::updatePlaybackRate): Use requestedPlaybackRate() instead

of effectivePlaybackRate();

(WebCore::HTMLMediaElement::ended): Ditto.
(WebCore::HTMLMediaElement::playbackProgressTimerFired): Ditto.
(WebCore::HTMLMediaElement::endedPlayback): Ditto.
(WebCore::HTMLMediaElement::updatePlayState): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerRateChanged): Set m_reportedPlaybackRate.
(WebCore::HTMLMediaElement::mediaPlayerRequestedPlaybackRate): Return

requestedPlaybackRate() if playing and 0 if not.

  • html/HTMLMediaElement.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::MediaPlayer): Removed m_rate.
(WebCore::MediaPlayer::rate): Pass to MediaPlayerPrivate.
(WebCore::MediaPlayer::setRate): Do not cache the rate.
(WebCore::MediaPlayer::requestedRate): Added; ask HTMLMediaElement.

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerRequestedPlaybackRate): Added.

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::rate): Added.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):

Do not cache the requested rate.

(WebCore::MediaPlayerPrivateAVFoundation::requestedRate): Pass to MediaPlayer.
(WebCore::MediaPlayerPrivateAVFoundation::setRate): Deleted.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:

(WebCore::MediaPlayerPrivateAVFoundation::requestedRate): Deleted.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::setRate): Renamed from updateRate.
(WebCore::MediaPlayerPrivateAVFoundationCF::rate): Fetch the rate from the player.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::setRateDouble): Renamed from updateRate.
(WebCore::MediaPlayerPrivateAVFoundationObjC::rate): Fetch the rate from the player.

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

(WebCore::MediaPlayerPrivateQTKit::rate): Fetch the rate from the QTMovie.

LayoutTests:

  • media/video-defaultplaybackrate-before-load-expected.txt: Added.
  • media/video-defaultplaybackrate-before-load.html: Added.
10:10 AM Changeset in webkit [178280] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r176574 - Crash when calling WKPageClose on the originated page from within createNewPage callback
https://bugs.webkit.org/show_bug.cgi?id=139099
<rdar://problem/19052564>

Reviewed by Sam Weinig.

Source/WebKit2:

Null check the namespace ID.

  • UIProcess/Storage/StorageManager.cpp:

(WebKit::StorageManager::cloneSessionStorageNamespaceInternal):

Tools:

Add a test.

  • TestWebKitAPI/PlatformWebView.h:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/CloseFromWithinCreatePage.cpp: Added.

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

  • TestWebKitAPI/Tests/WebKit2/close-from-within-create-page.html: Added.
  • TestWebKitAPI/mac/PlatformWebViewMac.mm:

(TestWebKitAPI::PlatformWebView::PlatformWebView):

10:09 AM Changeset in webkit [178279] by andersca@apple.com
  • 9 edits
    2 deletes in trunk/Source/WebCore

Merge DatabaseBase into Database
https://bugs.webkit.org/show_bug.cgi?id=140345

Reviewed by Antti Koivisto.

  • CMakeLists.txt:
  • Modules/webdatabase/Database.cpp:

(WebCore::Database::Database):
(WebCore::Database::runTransaction):
(WebCore::Database::logErrorMessage):

  • Modules/webdatabase/Database.h:

(WebCore::Database::scriptExecutionContext):

  • Modules/webdatabase/DatabaseBackendBase.cpp:
  • Modules/webdatabase/DatabaseBackendBase.h:

(WebCore::DatabaseBackendBase::setFrontend):

  • Modules/webdatabase/DatabaseBase.cpp: Removed.
  • Modules/webdatabase/DatabaseBase.h: Removed.
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
10:06 AM Changeset in webkit [178278] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6

Merge r176565 - [CMake] Build failure against GStreamer git master
https://bugs.webkit.org/show_bug.cgi?id=138872

Reviewed by Csaba Osztrogon.

  • Source/cmake/FindGStreamer.cmake: Simplified the

FIND_GSTREAMER_COMPONENT macro. Trust pkg-config for include
headers lookup, there's no need to do this manually. Also
explicitely check the version specified in GStreamer_FIND_VERSION.

10:04 AM Changeset in webkit [178277] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r176561 - [GStreamer] HTTP source element lacks SCHEDULING query support
https://bugs.webkit.org/show_bug.cgi?id=139064

Reviewed by Carlos Garcia Campos.

No new tests, covered by http/tests/media/hls.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcQueryWithParent): Make the element handle SCHEDULING
queries with the BANDWIDTH_LIMITED flag. This helps uridecodebin
to configure itself for adaptive streaming playback scenarios.

10:02 AM Changeset in webkit [178276] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r176554 - CrashTracer: com.apple.WebKit.WebContent at com.apple.WebCore: WebCore::HTMLPlugInImageElement::updateSnapshot + 108
https://bugs.webkit.org/show_bug.cgi?id=139057

Reviewed by Anders Carlsson.

No test, don't know how to repro.

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::updateSnapshot): Null check the renderer.

9:57 AM Changeset in webkit [178275] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebInspectorUI

Merge r176548 - Web Inspector: Update NavigationItemProbes icon for the GTK+ port
https://bugs.webkit.org/show_bug.cgi?id=139074

Reviewed by Carlos Garcia Campos.

NavigationItemProbes was updated for the Mac port and we are now
having a similar ideogram in GTK+.

  • UserInterface/Images/gtk/NavigationItemProbes.svg: Updated.
9:56 AM Changeset in webkit [178274] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r176541 - [GStreamer] gstmpegts is not initialized
https://bugs.webkit.org/show_bug.cgi?id=139039

Reviewed by Carlos Garcia Campos.

  • platform/graphics/gstreamer/GStreamerUtilities.cpp:

(WebCore::initializeGStreamer): Initialize the gstmpegts library.

9:55 AM WebKitGTK/2.6.x edited by Carlos Garcia Campos
(diff)
9:54 AM Changeset in webkit [178273] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebKit2

Merge r176540 - [GTK] Use LD_LIBRARY_PATH to make g-ir-scanner use the newly-built
version of libraries when running the temporary executable
https://bugs.webkit.org/show_bug.cgi?id=138833

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2014-11-25
Reviewed by Carlos Garcia Campos.

This patch modifies LD_LIBRARY_PATH to make sure the dynamic linker
find the correct version of libraries when running the temporary
executable to generate the .gir file.

  • PlatformGTK.cmake:
9:50 AM WebKitGTK/2.6.x edited by Carlos Garcia Campos
(diff)
9:48 AM Changeset in webkit [178272] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebKit2

Merge r176519 - Webkit2 doesnt build on powerpc 32 bits
https://bugs.webkit.org/show_bug.cgi?id=130837

Reviewed by Carlos Garcia Campos.

Check if libatomic is needed in order to use std::atomic, and add
it to the list of WebKit2 libraries.

  • PlatformGTK.cmake:
9:45 AM Changeset in webkit [178271] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/JavaScriptCore

Merge r176506 - r176455: ASSERT(!m_vector.isEmpty()) in IntendedStructureChain.cpp(143)
https://bugs.webkit.org/show_bug.cgi?id=139000

Reviewed by Darin Adler.

Check that the chainCount is non-zero before using a StructureChain.

  • bytecode/ComplexGetStatus.cpp:

(JSC::ComplexGetStatus::computeFor):

9:28 AM Changeset in webkit [178270] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r176458 - Crash when setting 'transition-delay' CSS property to a calculated value
https://bugs.webkit.org/show_bug.cgi?id=138784

Reviewed by Sam Weinig.

Source/WebCore:

Update CSSPrimitiveValue::computeTime() to use primitiveType() instead
of m_primitiveUnitType so that it properly handles calculated values.
Without this, we would hit the ASSERT_NOT_REACHED() assertion in
computeTime() for calculated values.

Test: fast/css/transition-delay-calculated-value.html

  • css/CSSPrimitiveValue.h:

(WebCore::CSSPrimitiveValue::computeTime):

LayoutTests:

Add a layout test to check that setting the 'transition-delay' CSS
property to a calculated value does not crash and works as intended.

  • fast/css/transition-delay-calculated-value-expected.txt: Added.
  • fast/css/transition-delay-calculated-value.html: Added.
8:54 AM Changeset in webkit [178269] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r176171 - Crash when setting 'order' CSS property to a calculated value
https://bugs.webkit.org/show_bug.cgi?id=138780

Reviewed by Darin Adler.

Source/WebCore:

CSS Calculated values were not handled by the CSS parser for 'order'
CSS property. As a result, using calculated values wouldn't work in
release builds and would hit an assertion in debug builds.

This patch updates the CSS parser to directly convert the
CSS Calculated value into a simple integer CSSPrimitiveValue for
'order' property. We could have marked CSS Calculated values as
valid in the CSS Parser instead but this would have brought issues:

  • The calculated value needs to be adjusted to INT_MIN + 2 if it is less than that. This would force us to calculate the expression anyway.
  • The StyleBuilder would need updating to properly handle CSS Calculated values for 'order'.

Test: fast/css/order-calculated-value.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseValue):

LayoutTests:

Add a layout test to validate that setting a calculated value to the
'order' CSS property does not crash and behaves as expected.

  • fast/css/order-calculated-value-expected.txt: Added.
  • fast/css/order-calculated-value.html: Added.
8:50 AM Changeset in webkit [178268] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r176454 - Crash when setting 'font' CSS property to 'calc(2 * 3)'
https://bugs.webkit.org/show_bug.cgi?id=138933

Reviewed by Darin Adler.

Source/WebCore:

The CSS Parser was not handling calculated values when parsing the font
weight. This would lead us to hit an assertion when parsing a font
property whose weight is set to a calculated value.

This patch updates parseFontWeight() to properly handle calculated
values.

Test: fast/css/font-calculated-value.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseFontWeight):

LayoutTests:

Add a layout test to cover the case where the 'font' CSS property is
set to a value whose weight is a calculated value, to make sure it
does not crash and behaves as intended.

  • fast/css/font-calculated-value-expected.txt: Added.
  • fast/css/font-calculated-value.html: Added.
8:47 AM Changeset in webkit [178267] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r176432 - REGRESSION (174986): CSS clip property is ignored when border-radius is present.
https://bugs.webkit.org/show_bug.cgi?id=138935
rdar://problem/18965984

Reviewed by Simon Fraser.

Revert back to r163382 and fix bug 127729 properly. Save the graphics context when paint and clip rects are
the same, but the clip rect has radius.
Each iteration on ::clipRect() from r163382 onwards just introduced yet another regression.

Source/WebCore:

Test: fast/clip/css-clip-does-not-work-when-border-radius-is-present.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::clipToRect):

LayoutTests:

  • fast/clip/css-clip-does-not-work-when-border-radius-is-present-expected.html: Added.
  • fast/clip/css-clip-does-not-work-when-border-radius-is-present.html: Added.
8:29 AM Changeset in webkit [178266] by msaboff@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Local JSArray* "keys" in objectConstructorKeys() is not marked during garbage collection
https://bugs.webkit.org/show_bug.cgi?id=140348

Reviewed by Mark Lam.

Move the address of the local variable that is used to demarcate the top of the stack for
conservative roots down to MachineThreads::gatherFromCurrentThread() since it also gets
the register values using setjmp(). That way we don't lose any callee save register
contents between Heap::markRoots(), where it was set, and gatherFromCurrentThread().
If we lose any JSObject* that are only in callee save registers, they will be GC'ed
erroneously.

  • heap/Heap.cpp:

(JSC::Heap::markRoots):
(JSC::Heap::gatherStackRoots):

  • heap/Heap.h:
  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::gatherFromCurrentThread):
(JSC::MachineThreads::gatherConservativeRoots):

  • heap/MachineStackMarker.h:
8:22 AM Changeset in webkit [178265] by Darin Adler
  • 30 edits in trunk/Source

Modernize and streamline HTMLTokenizer
https://bugs.webkit.org/show_bug.cgi?id=140166

Reviewed by Sam Weinig.

Source/WebCore:

  • html/parser/AtomicHTMLToken.h:

(WebCore::AtomicHTMLToken::initializeAttributes): Removed unneeded assertions
based on fields I removed.

  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::HTMLDocumentParser): Change to use updateStateFor
to set the initial state when parsing a fragment, since it implements the same
rule taht the tokenizerStateForContextElement function did.
(WebCore::HTMLDocumentParser::pumpTokenizer): Updated to use the revised
interfaces for HTMLSourceTracker and HTMLTokenizer.
(WebCore::HTMLDocumentParser::constructTreeFromHTMLToken): Changed to take a
TokenPtr instead of an HTMLToken, so we can clear out the TokenPtr earlier
for non-character tokens, and let them get cleared later for character tokens.
(WebCore::HTMLDocumentParser::insert): Pass references.
(WebCore::HTMLDocumentParser::append): Ditto.
(WebCore::HTMLDocumentParser::appendCurrentInputStreamToPreloadScannerAndScan): Ditto.

  • html/parser/HTMLDocumentParser.h: Updated argument type for constructTreeFromHTMLToken

and removed now-unneeded m_token data members.

  • html/parser/HTMLEntityParser.cpp: Removed unneeded uses of the inline keyword.

(WebCore::HTMLEntityParser::consumeNamedEntity): Replaced two uses of
advanceAndASSERT with just plain advance; there's really no need to assert the
character is the one we just got out of the string.

  • html/parser/HTMLInputStream.h: Moved the include of TextPosition.h here from

its old location since this class has two data members that are OrdinalNumber.

  • html/parser/HTMLMetaCharsetParser.cpp:

(WebCore::HTMLMetaCharsetParser::HTMLMetaCharsetParser): Removed most of the
initialization, since it's now done by defaults.
(WebCore::extractCharset): Rewrote this to be a non-member function, and to
use a for loop, and to handle quote marks in a simpler way. Also changed it
to return a StringView so we don't have to allocate a new string.
(WebCore::HTMLMetaCharsetParser::processMeta): Use a modern for loop, and
also take a token argument since it's no longer a data member.
(WebCore::HTMLMetaCharsetParser::encodingFromMetaAttributes): Use a modern for
loop, StringView instead of string, and don't bother naming the local enum.
(WebCore::HTMLMetaCharsetParser::checkForMetaCharset): Updated for the new
way of getting tokens from the tokenizer.

  • html/parser/HTMLMetaCharsetParser.h: Got rid of some data members and

tightened up the formatting a little. Don't bother allocating the tokenizer
on the heap.

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::TokenPreloadScanner): Removed unneeded
initialization.
(WebCore::HTMLPreloadScanner::HTMLPreloadScanner): Ditto.
(WebCore::HTMLPreloadScanner::scan): Changed to take a reference.

  • html/parser/HTMLPreloadScanner.h: Removed unneeded includes, typedefs,

and forward declarations. Removed explicit declaration of the destructor,
since the default one works. Removed unused createCheckpoint and rewindTo
functions. Gave initial values for various data members. Marked the device
scale factor const beacuse it's set in the constructor and never changed.
Also removed the unneeded isSafeToSendToAnotherThread.

  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::PreloadRequest::isSafeToSendToAnotherThread): Deleted.

  • html/parser/HTMLResourcePreloader.h:

(WebCore::PreloadRequest::PreloadRequest): Removed unneeded calls to
isolatedCopy. Also removed isSafeToSendToAnotherThread.

  • html/parser/HTMLSourceTracker.cpp:

(WebCore::HTMLSourceTracker::startToken): Renamed. Changed to keep state

in the source tracker itself, not the token.

(WebCore::HTMLSourceTracker::endToken): Ditto.
(WebCore::HTMLSourceTracker::source): Renamed. Changed to use the state
from the source tracker.

  • html/parser/HTMLSourceTracker.h: Removed unneeded include of HTMLToken.h.

Renamed functions, removed now-unneeded comment.

  • html/parser/HTMLToken.h: Cut down on the fields used by the source tracker.

It only needs to know the start and end of each attribute, not each part of
each attribute. Removed setBaseOffset, setEndOffset, length, addNewAttribute,
beginAttributeName, endAttributeName, beginAttributeValue, endAttributeValue,
m_baseOffset and m_length. Added beginAttribute and endAttribute.
(WebCore::HTMLToken::clear): No need to zero m_length or m_baseOffset any more.
(WebCore::HTMLToken::length): Deleted.
(WebCore::HTMLToken::setBaseOffset): Deleted.
(WebCore::HTMLToken::setEndOffset): Deleted.
(WebCore::HTMLToken::beginStartTag): Only null out m_currentAttribute if we
are compiling in assertions.
(WebCore::HTMLToken::beginEndTag): Ditto.
(WebCore::HTMLToken::addNewAttribute): Deleted.
(WebCore::HTMLToken::beginAttribute): Moved the code from addNewAttribute in
here and set the start offset.
(WebCore::HTMLToken::beginAttributeName): Deleted.
(WebCore::HTMLToken::endAttributeName): Deleted.
(WebCore::HTMLToken::beginAttributeValue): Deleted.
(WebCore::HTMLToken::endAttributeValue): Deleted.

  • html/parser/HTMLTokenizer.cpp:

(WebCore::HTMLToken::endAttribute): Added. Sets the end offset.
(WebCore::HTMLToken::appendToAttributeName): Updated assertion.
(WebCore::HTMLToken::appendToAttributeValue): Ditto.
(WebCore::convertASCIIAlphaToLower): Renamed from toLowerCase and changed
so it's legal to call on lower case letters too.
(WebCore::vectorEqualsString): Changed to take a string literal rather than
a WTF::String.
(WebCore::HTMLTokenizer::inEndTagBufferingState): Made this a member function.
(WebCore::HTMLTokenizer::HTMLTokenizer): Updated for data member changes.
(WebCore::HTMLTokenizer::bufferASCIICharacter): Added. Optimized version of
bufferCharacter for the common case where we know the character is ASCII.
(WebCore::HTMLTokenizer::bufferCharacter): Moved this function here from the
header since it's only used inside the class.
(WebCore::HTMLTokenizer::emitAndResumeInDataState): Moved this here, renamed
it and removed the state argument.
(WebCore::HTMLTokenizer::emitAndReconsumeInDataState): Ditto.
(WebCore::HTMLTokenizer::emitEndOfFile): More of the same.
(WebCore::HTMLTokenizer::saveEndTagNameIfNeeded): Ditto.
(WebCore::HTMLTokenizer::haveBufferedCharacterToken): Ditto.
(WebCore::HTMLTokenizer::flushBufferedEndTag): Updated since m_token is now
the actual token, not just a pointer.
(WebCore::HTMLTokenizer::flushEmitAndResumeInDataState): Renamed this and
removed the state argument.
(WebCore::HTMLTokenizer::processToken): This function, formerly nextToken,
is now the internal function used by nextToken. Updated its contents to use
simpler macros, changed code to set m_state when returning, rather than
constantly setting it when cycling through states, switched style to use
early return/goto rather than lots of else statements, took out unneeded
braces now that BEGIN/END_STATE handles the braces, collapsed upper and
lower case letter handling in many states, changed lookAhead call sites to
use the new advancePast function instead.
(WebCore::HTMLTokenizer::updateStateFor): Set m_state directly instead of
calling a setstate function.
(WebCore::HTMLTokenizer::appendToTemporaryBuffer): Moved here from header.
(WebCore::HTMLTokenizer::temporaryBufferIs): Changed argument type to
a literal instead of a WTF::String.
(WebCore::HTMLTokenizer::appendToPossibleEndTag): Renamed and changed type
to be a UChar instead of LChar, although all characters will be ASCII.
(WebCore::HTMLTokenizer::isAppropriateEndTag): Marked const, and changed
type from size_t to unsigned.

  • html/parser/HTMLTokenizer.h: Changed interface of nextToken so it returns

a TokenPtr so code doesn't have to understand special rules about when to
work with an HTMLToken and when to clear it. Made most functions private,
and made the State enum private as well. Replaced the state and setState
functions with more specific functions for the few states we need to deal
with outside the class. Moved function bodies outside the class definition
so it's easier to read the class definition.

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::processStartTagForInBody): Updated to use the
new set state functions instead of setState.
(WebCore::HTMLTreeBuilder::processEndTag): Ditto.
(WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag): Ditto.
(WebCore::HTMLTreeBuilder::processGenericRawTextStartTag): Ditto.
(WebCore::HTMLTreeBuilder::processScriptStartTag): Ditto.

  • html/parser/InputStreamPreprocessor.h: Marked the constructor explicit,

and mde it take a reference rather than a pointer.

  • html/parser/TextDocumentParser.cpp:

(WebCore::TextDocumentParser::insertFakePreElement): Updated to use the
new set state functions instead of setState.

  • html/parser/XSSAuditor.cpp:

(WebCore::XSSAuditor::decodedSnippetForName): Updated for name change.
(WebCore::XSSAuditor::decodedSnippetForAttribute): Updated for changes to
attribute range tracking.
(WebCore::XSSAuditor::decodedSnippetForJavaScript): Updated for name change.
(WebCore::XSSAuditor::isSafeToSendToAnotherThread): Deleted.

  • html/parser/XSSAuditor.h: Deleted isSafeToSendToAnotherThread.
  • html/track/WebVTTTokenizer.cpp: Removed the local state variable from

WEBVTT_ADVANCE_TO; there is no need for it.
(WebCore::WebVTTTokenizer::WebVTTTokenizer): Use a reference instead of a
pointer for the preprocessor.
(WebCore::WebVTTTokenizer::nextToken): Ditto. Also removed the state local
variable and the switch statement, replacing with labels instead since we
go between states with goto.

  • platform/text/SegmentedString.cpp:

(WebCore::SegmentedString::operator=): Changed the return type to be non-const
to match normal C++ design rules.
(WebCore::SegmentedString::pushBack): Renamed from prepend since this is not a
general purpose prepend function. Also fixed assertions to not use the strangely
named "escaped" function, since we are deleting it.
(WebCore::SegmentedString::append): Ditto.
(WebCore::SegmentedString::advancePastNonNewlines): Renamed from advance, since
the function only works for non-newlines.
(WebCore::SegmentedString::currentColumn): Got rid of unneeded local variable.
(WebCore::SegmentedString::advancePastSlowCase): Moved here from header and
renamed. This function now consumes the characters if they match.

  • platform/text/SegmentedString.h: Made the changes mentioned above.

(WebCore::SegmentedString::excludeLineNumbers): Deleted.
(WebCore::SegmentedString::advancePast): Renamed from lookAhead. Also changed
behavior so the characters are consumed.
(WebCore::SegmentedString::advancePastIgnoringCase): Ditto.
(WebCore::SegmentedString::advanceAndASSERT): Deleted.
(WebCore::SegmentedString::advanceAndASSERTIgnoringCase): Deleted.
(WebCore::SegmentedString::escaped): Deleted.

  • xml/parser/CharacterReferenceParserInlines.h:

(WebCore::isHexDigit): Deleted.
(WebCore::unconsumeCharacters): Updated for name change.
(WebCore::consumeCharacterReference): Removed unneeded name for local enum,
renamed local variable "cc" to character. Changed code to use helpers like
isASCIIAlpha and toASCIIHexValue. Removed unneeded use of advanceAndASSERT,
since we don't really need to assert the character we just extracted.

  • xml/parser/MarkupTokenizerInlines.h:

(WebCore::isTokenizerWhitespace): Renamed argument to character.
(WebCore::advanceStringAndASSERTIgnoringCase): Deleted.
(WebCore::advanceStringAndASSERT): Deleted.
Changed all the macro implementations so they set m_state only when
returning from the function and just use goto inside the state machine.

Source/WTF:

  • wtf/Forward.h: Removed PassRef, added OrdinalNumber and TextPosition.
8:20 AM WebKitGTK/2.6.x edited by Michael Catanzaro
Propose devhelp fix for 2.6.5 (diff)
6:48 AM Changeset in webkit [178264] by Carlos Garcia Campos
  • 4 edits
    3 adds in releases/WebKitGTK/webkit-2.6

Merge r176399 - WTFCrashWithSecurityImplication under SpeculativeJIT::compile() when loading a page from theblaze.com.
<https://webkit.org/b/137642>

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

In the DFG, we have a ConstantFolding phase that occurs after all LocalCSE
phases have already transpired. Hence, Identity nodes introduced in the
ConstantFolding phase will be left in the node graph. Subsequently, the
DFG code generator asserts that CSE phases have consumed all Identity nodes.
This turns out to not be true. Hence, the crash. We fix this by teaching
the DFG code generator to emit code for Identity nodes.

Unlike the DFG, the FTL does not have this issue. That is because the FTL
plan has GlobalCSE phases that come after ConstantFolding and any other
phases that can generate Identity nodes. Hence, for the FTL, it is true that
CSE will consume all Identity nodes, and the code generator should not see any
Identity nodes.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

LayoutTests:

  • js/dfg-inline-identity-expected.txt: Added.
  • js/dfg-inline-identity.html: Added.
  • js/script-tests/dfg-inline-identity.js: Added.

(o.toKey):
(foo):
(test):

6:41 AM Changeset in webkit [178263] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r176384 - REGRESSION (r172854): Web Viewer in FileMaker does not render a Base64 encoded animated-GIF
https://bugs.webkit.org/show_bug.cgi?id=138807
<rdar://problem/18829540>

Reviewed by Simon Fraser.

Animation gets paused because WebKit thinks the GIF is outside of the view.

  • page/FrameView.cpp:

(WebCore::FrameView::windowClipRect):

We need to convert to window coordinates in paintsEntireContents mode too so these functions are consistent.
This matters with some WK1 API clients.

6:25 AM Changeset in webkit [178262] by Carlos Garcia Campos
  • 3 edits
    4 adds in releases/WebKitGTK/webkit-2.6

Merge r176301 - Crash when setting 'z-index' / 'flex-shrink' CSS properties to a calculated value
https://bugs.webkit.org/show_bug.cgi?id=138783

Reviewed by Andreas Kling.

Source/WebCore:

Update operators converting CSSPrimitiveValue to integer / floating
point types to properly handle calculated values (e.g. 'calc(2 * 3)').
Previously, this was not working in release builds and we would hit an
ASSERT_NOT_REACHED() in debug builds.

Tests: fast/css/flex-shrink-calculated-value.html

fast/css/z-index-calculated-value.html

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::operator unsigned short):
(WebCore::CSSPrimitiveValue::operator int):
(WebCore::CSSPrimitiveValue::operator unsigned):
(WebCore::CSSPrimitiveValue::operator float):

LayoutTests:

Add layout tests to check that settings 'z-index' / 'flex-shrink' CSS
properties to a calculated value does not crash and behaves as
expected.

  • fast/css/flex-shrink-calculated-value-expected.txt: Added.
  • fast/css/flex-shrink-calculated-value.html: Added.
  • fast/css/z-index-calculated-value-expected.txt: Added.
  • fast/css/z-index-calculated-value.html: Added.
6:22 AM Changeset in webkit [178261] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r176295 - REGRESSION (r167210): Invalid cast in WebCore::RenderBlock::blockSelectionGaps
https://bugs.webkit.org/show_bug.cgi?id=137590

Reviewed by Dean Jackson.

Source/WebCore:

Added fast/block/selection-block-gaps-crash.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::blockSelectionGaps):
Check that we really are a RenderBlock before recurring.

LayoutTests:

  • fast/block/selection-block-gap-crash-expected.txt: Added.
  • fast/block/selection-block-gap-crash.html: Added.
6:20 AM Changeset in webkit [178260] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r176287 - REGRESSION(r152313): Inline-block element doesn't wrap properly
https://bugs.webkit.org/show_bug.cgi?id=138846 - <rdar://problem/18838703>

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/inline-block/inline-block-empty-spans.html

  • rendering/line/BreakingContextInlineHeaders.h:

(WebCore::BreakingContext::canBreakAtThisPosition):

LayoutTests:

  • fast/inline-block/inline-block-empty-spans-expected.html: Added.
  • fast/inline-block/inline-block-empty-spans.html: Added.
6:16 AM Changeset in webkit [178259] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r176285 - Multicolumn layout with negative line spacing and orphans causes pieces of letters to be shown at the bottom of columns
https://bugs.webkit.org/show_bug.cgi?id=138204

Source/WebCore:

Reviewed by Dave Hyatt.

This code is responsible for pushing block elements to the next column if
the "orphans" CSS property is triggered. The mechanism by which this is
achieved is to push the block down such that the origin of the block is
at the origin of the next column. However, if there is negative line
spacing, the top portion of the text might actually be on top of the
origin of the block. Therefore, the block wasn't being pushed down enough
to entirely contain its text, so the top pieces were being drawn on the
previous column.

Test: fast/multicol/orphans-negative-line-spacing.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::adjustLinePositionForPagination):

LayoutTests:

Patch by Myles C. Maxfield <litherum@gmail.com> on 2014-11-18
Reviewed by Dave Hyatt.

Create a layout where the "orphans" css property causes a block element to
be pushed to the next column.

  • fast/multicol/orphans-negative-line-spacing-expected.html: Added.
  • fast/multicol/orphans-negative-line-spacing.html: Added.
6:14 AM Changeset in webkit [178258] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r176322 - Missing NULL-check in VideoTrack::setLanguage
https://bugs.webkit.org/show_bug.cgi?id=138867

Reviewed by Jer Noble.

  • html/track/VideoTrack.cpp:

(WebCore::VideoTrack::setLanguage): Prevent change event creation
on an empty video track list.

6:13 AM Changeset in webkit [178257] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.6

Merge r176311 - start/stop method for AudioBufferSourceNodes and OscillatorNodes can take no args
https://bugs.webkit.org/show_bug.cgi?id=138739

Reviewed by Darin Adler.

Source/WebCore:

The patch is inspired by the following Blink revision by
<Raymond Toy>:
<https://src.chromium.org/viewvc/blink?view=rev&revision=160845>

Test: webaudio/dom-exceptions.html

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::start):
(WebCore::AudioBufferSourceNode::startPlaying):
(WebCore::AudioBufferSourceNode::noteGrainOn):
(WebCore::AudioBufferSourceNode::startGrain): Deleted.

  • Modules/webaudio/AudioBufferSourceNode.h:
  • Modules/webaudio/AudioBufferSourceNode.idl:
  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::start):
(WebCore::AudioScheduledSourceNode::stop):

  • Modules/webaudio/AudioScheduledSourceNode.h:
  • Modules/webaudio/OscillatorNode.idl:

LayoutTests:

  • webaudio/dom-exceptions-expected.txt: Added.
  • webaudio/dom-exceptions.html: Added.
6:06 AM Changeset in webkit [178256] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r176259 - HRTFDatabaseLoader is not an absolute condition to run audioContext
https://bugs.webkit.org/show_bug.cgi?id=138829

Reviewed by Jer Noble.

This patch is a port of the following Blink revision by
<keonho07.kim@samsung.com>:
<https://src.chromium.org/viewvc/blink?revision=167887&view=revision>

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::isRunnable): Deleted.

  • Modules/webaudio/AudioContext.h:

(WebCore::AudioContext::hrtfDatabaseLoader): Deleted.

  • Modules/webaudio/AudioDestinationNode.cpp:

(WebCore::AudioDestinationNode::render):

  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::offlineRender):

  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::PannerNode):
(WebCore::PannerNode::process):
(WebCore::PannerNode::initialize):
(WebCore::PannerNode::setPanningModel):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/RealtimeAnalyser.cpp:
  • Modules/webaudio/RealtimeAnalyser.h:
  • platform/audio/HRTFDatabaseLoader.cpp:

(WebCore::HRTFDatabaseLoader::createAndLoadAsynchronouslyIfNecessary):

5:50 AM Changeset in webkit [178255] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk/LayoutTests

AX: [ATK] Whether to show the title attribute, if there is a label with the attribute for?
https://bugs.webkit.org/show_bug.cgi?id=139986

Patch by Andrzej Badowski <a.badowski@samsung.com> on 2015-01-12
Reviewed by Chris Fleizach.

  • accessibility/radio-button-title-label.html:

This test is also suitable for EFL and GTK port.

  • platform/efl/TestExpectations:
  • platform/efl/accessibility/radio-button-title-label-expected.txt: Added.
  • platform/gtk/TestExpectations:
  • platform/gtk/accessibility/radio-button-title-label-expected.txt: Added.
2:42 AM Changeset in webkit [178254] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Fix lint-test-files warnings in TestExpectations files.
https://bugs.webkit.org/show_bug.cgi?id=140351

Unreviewed gardening.

Removed the test cases from TestExpectations files.

Patch by Shivakumar JM <shiva.jm@samsung.com> on 2015-01-12

  • platform/efl/TestExpectations:
  • platform/wk2/TestExpectations:

Jan 11, 2015:

8:33 PM Changeset in webkit [178253] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Enable Vector bounds checking for ElementDescendantIterator.
<https://webkit.org/b/140346>

Reviewed by Sam Weinig.

I had originally disabled Vector bounds checking for
ElementDescendantIterator's internal ancestor stack, but upon
re-running performance benchmarks, it appears to have little-to-no
measurable benefit.

This change adds back the bounds checking.

  • dom/ElementDescendantIterator.h:
6:47 PM Changeset in webkit [178252] by ryuan.choi@navercorp.com
  • 3 edits in trunk/Source/WebKit2

[CoordinatedGraphics] Suspend or resume when visibility is changed
https://bugs.webkit.org/show_bug.cgi?id=140285

Reviewed by Gyuyoung Kim.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp: Copied the logic from TiledCoreAnimationDrawingArea.

(WebKit::CoordinatedDrawingArea::viewStateDidChange):

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
4:17 PM Changeset in webkit [178251] by Chris Dumez
  • 10 edits
    1 delete in trunk/Source/WebCore

Drop legacy SVGCSSStyleSelector.cpp
https://bugs.webkit.org/show_bug.cgi?id=140342

Reviewed by Antti Koivisto.

Drop legacy SVGCSSStyleSelector.cpp by porting the remaining SVG CSS
properties to the generated StyleBuilder. This patch also removes
support for the "LegacyStyleBuilder" option in CSSPropertyNames.in
as all properties have now been ported over.

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

Drop SVGCSSStyleSelector.cpp file as it was removed.

  • css/CSSPropertyNames.in:
  • css/SVGCSSStyleSelector.cpp: Removed.
  • css/StyleBuilder.h:

StyleBuilder::applyProperty() no longer need to return a boolean as
it now handles ALL CSS properties.

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueBaselineShift):
(WebCore::StyleBuilderCustom::applyInitialFill):
(WebCore::StyleBuilderCustom::applyInheritFill):
(WebCore::StyleBuilderCustom::applyValueFill):
(WebCore::StyleBuilderCustom::applyInitialStroke):
(WebCore::StyleBuilderCustom::applyInheritStroke):
(WebCore::StyleBuilderCustom::applyValueStroke):
(WebCore::StyleBuilderCustom::applyInitialWebkitSvgShadow):
(WebCore::StyleBuilderCustom::applyInheritWebkitSvgShadow):
(WebCore::StyleBuilderCustom::applyValueWebkitSvgShadow):
Move 'fill', 'stroke' and '-webkit-svg-shadow' to the new
StyleBuilder.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyProperty):

  • css/makeprop.pl:
2:58 PM Changeset in webkit [178250] by Antti Koivisto
  • 23 edits in trunk/Source

Remove FontCachePurgePreventer
https://bugs.webkit.org/show_bug.cgi?id=139628

Reviewed by Anders Carlsson.

This stack type is bug prone and invasive. A missing FontCachePurgePreventer in a code that touches fonts is always
a hard-to-detect bug and there are many places that need it. Instead purge the font cache on top of the runloop.

The purge timer could in principle fire in a nested runloop. However we should never have unreferenced
SimpleFontData objects in the stack in such case (GlyphData objects don't currently ref the font) because those
only occur during layout and painting. Layout and painting can't trigger a nested runloops as there would be
bigger problems.

Purging may also be triggered synchronously by a memory notification. That case won't have any GlyphDatas in the stack either.

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::measureText):
(WebCore::CanvasRenderingContext2D::drawTextInternal):

  • page/FrameView.cpp:

(WebCore::FrameView::layout):
(WebCore::FrameView::paintContents):

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::FontCache):
(WebCore::FontCache::fontForFamily):
(WebCore::FontCache::purgeTimerFired):
(WebCore::FontCache::purgeInactiveFontData):

  • platform/graphics/FontCache.h:

(WebCore::FontCache::disablePurging): Deleted.
(WebCore::FontCache::enablePurging): Deleted.
(WebCore::FontCachePurgePreventer::FontCachePurgePreventer): Deleted.
(WebCore::FontCachePurgePreventer::~FontCachePurgePreventer): Deleted.

  • platform/graphics/FontFastPath.cpp:

(WebCore::Font::emphasisMarkAscent):
(WebCore::Font::emphasisMarkDescent):
(WebCore::Font::emphasisMarkHeight):
(WebCore::Font::drawEmphasisMarks):

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

(PlatformCALayerWinInternal::displayCallback):

  • platform/mac/DragImageMac.mm:

(WebCore::widthWithFont):
(WebCore::drawAtPoint):
(WebCore::createDragImageForLink):

  • platform/win/DragImageWin.cpp:

(WebCore::createDragImageForLink):

  • platform/win/WebCoreTextRenderer.cpp:

(WebCore::doDrawTextAtPoint):
(WebCore::WebCoreTextFloatWidth):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::localSelectionRect):
(WebCore::InlineTextBox::offsetForPosition):
(WebCore::InlineTextBox::positionForOffset):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::setImageSizeForAltText):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::paintIntoLayer):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::updateFromElement):
(WebCore::RenderListBox::paintItemForeground):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::updateOptionsWidth):

  • rendering/RenderThemeIOS.mm:

(WebCore::adjustInputElementButtonStyle):

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::updateStyle):

  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::subtreeChildWasAdded):
(WebCore::RenderSVGText::subtreeStyleDidChange):
(WebCore::RenderSVGText::subtreeTextDidChange):
(WebCore::RenderSVGText::removeChild):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::selectionRectForTextFragment):

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

[SVG -> OTF Converter] Implement ligatures
https://bugs.webkit.org/show_bug.cgi?id=137094

Reviewed by Dan Bernstein.

Use the "liga" OpenType feature to implement ligatures inside the GSUB table.

Tests: svg/W3C-SVG-1.1/fonts-glyph-04-t.svg

svg/W3C-SVG-1.1/text-text-06-t.svg
svg/text/kerning.svg
svg/text/multichar-glyph.svg

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::grow):
(WebCore::SVGToOTFFontConverter::appendCMAPTable): Use StringView::codePoints().
(WebCore::SVGToOTFFontConverter::firstGlyph): Returns the first element of the input
vector, along with some ASSERTs.
(WebCore::SVGToOTFFontConverter::appendLigatureSubtable):
(WebCore::SVGToOTFFontConverter::appendScriptSubtable): Used inside appendGSUBTable.
(WebCore::SVGToOTFFontConverter::appendGSUBTable): Updating for ligatures.
(WebCore::codepointToString): Wrapper around U16_APPEND().
(WebCore::SVGToOTFFontConverter::glyphsForCodepoint): Call codepointToString and look
in internal map.
(WebCore::SVGToOTFFontConverter::addCodepointRanges): Use glyphsForCodepoint().
(WebCore::SVGToOTFFontConverter::appendLigatureGlyphs): Ligatures are implemented as
mapping a sequence of glyphs to another glyph inside OpenType. However, SVG models
ligatures as mapping a sequence of codepoints to a glyph. This function makes dummy
glyphs for all the codepoints that we don't have glyphs for and appends them to
m_glyphs.
(WebCore::SVGToOTFFontConverter::compareCodepointsLexicographically):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter): Use appendEmptyGlyph() and
call appendLigatureGlyphs().

2:39 PM Changeset in webkit [178248] by mark.lam@apple.com
  • 4 edits in branches/safari-600.1.4.15-branch/Source/JavaScriptCore

Update WebKit branch to build with newer LLVM.
<https://webkit.org/b/140341>

Reviewed by Filip Pizlo.

  • Configurations/LLVMForJSC.xcconfig:
  • Add the ability to pick up LLVM_LIBS_iphoneos from AspenLLVM.xcconfig.
  • llvm/LLVMAPIFunctions.h:
  • Removed some erroneous and unused APIs.
  • llvm/library/LLVMExports.cpp:

(initializeAndGetJSCLLVMAPI):

  • Removed an unneeded option that is also not supported by the new LLVM.
2:14 PM Changeset in webkit [178247] by eric.carlson@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix typo in testate.c error messages
https://bugs.webkit.org/show_bug.cgi?id=140305

Reviewed by Geoffrey Garen.

  • API/tests/testapi.c:

(main): "... script did not timed out ..." -> "... script did not time out ..."

12:04 PM Changeset in webkit [178246] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Move more SVG CSS properties to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=140340

Reviewed by Antti Koivisto.

Move more SVG CSS properties to the new StyleBuilder by introducing
the necessary converters in StyleBuilderConverter.

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

(WebCore::StyleResolver::applySVGProperty):
(WebCore::roundToNearestGlyphOrientationAngle): Deleted.
(WebCore::angleToGlyphOrientation): Deleted.
(WebCore::colorFromSVGColorCSSValue): Deleted.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertNumber):
(WebCore::StyleBuilderConverter::convertNumberOrAuto):
(WebCore::StyleBuilderConverter::convertOpacity):
(WebCore::StyleBuilderConverter::convertSVGURIReference):
(WebCore::StyleBuilderConverter::convertSVGColor):
(WebCore::StyleBuilderConverter::convertGlyphOrientation):
(WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto):

  • rendering/style/RenderStyle.h:
10:20 AM Changeset in webkit [178245] by mitz@apple.com
  • 2 edits in trunk/Source/bmalloc

Geoff is organized, but he is not an organization.

Rubber-stamped by Anders Carlsson.

  • bmalloc.xcodeproj/project.pbxproj: Removed the ORGANIZATIONNAME project attribute.
1:17 AM Changeset in webkit [178244] by ap@apple.com
  • 2 edits in trunk/LayoutTests

editing/spelling/grammar-paste.html is flaky in debug after r177682
https://bugs.webkit.org/show_bug.cgi?id=139903

  • TestExpectations: The test if flaky on release bots too, updating expectations.
Note: See TracTimeline for information about the timeline view.