⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Sep 19, 2016:

11:02 PM Changeset in webkit [206141] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14

Merge r206095 - [GTK] Make ENABLE_THREADED_COMPOSITOR a public option
https://bugs.webkit.org/show_bug.cgi?id=162148

Reviewed by Carlos Garcia Campos.

  • Source/cmake/OptionsGTK.cmake:
9:22 PM Changeset in webkit [206140] by Chris Dumez
  • 4 edits in trunk

Add support for HTMLSourceElement.prototype.sizes / HTMLSourceElement.prototype.srcset
https://bugs.webkit.org/show_bug.cgi?id=162244

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

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

Source/WebCore:

Add support for HTMLPrototype.prototype.sizes / HTMLPrototype.prototype.srcset:

We already support the corresponding content attributes internally. However, we
are missing the corresponding IDL attributes that are supposed to reflect them.

Chrome and Firefox support them. We already had those IDL attributes on
HTMLImageElement.

No new tests, rebaselined existing test.

  • html/HTMLSourceElement.idl:
8:38 PM Changeset in webkit [206139] by bshafiei@apple.com
  • 5 edits in tags/Safari-603.1.5.2/Source

Versioning.

8:34 PM Changeset in webkit [206138] by bshafiei@apple.com
  • 1 copy in tags/Safari-603.1.5.2

New tag.

7:00 PM Changeset in webkit [206137] by Wenson Hsieh
  • 2 edits in trunk/Tools

Unreviewed build fix after r206135

NSEventMaskLeftMouseDown and friends are only available on 10.12.

  • TestWebKitAPI/mac/TestWKWebViewMac.mm:

(simulated_forceClickAssociatedEventsMask):

6:05 PM Changeset in webkit [206136] by sbarati@apple.com
  • 29 edits
    6 adds in trunk

Make HasOwnProperty faster
https://bugs.webkit.org/show_bug.cgi?id=161708

Reviewed by Geoffrey Garen.

JSTests:

  • microbenchmarks/has-own-property-name-cache.js: Added.

(foo):

  • stress/has-own-property-cache-basics.js: Added.

(assert):
(foo):

  • stress/has-own-property-name-cache-string-keys.js: Added.

(assert):
(foo):

  • stress/has-own-property-name-cache-symbol-keys.js: Added.

(assert):
(foo):

  • stress/has-own-property-name-cache-symbols-and-strings.js: Added.

(assert):
(foo):

Source/JavaScriptCore:

This patch adds a cache for HasOwnProperty. The cache holds tuples
of {StructureID, UniquedStringImpl*, boolean} where the boolean indicates
the result of performing hasOwnProperty on an object with StructureID and
UniquedStringImpl*. If the cache contains an item, we can be guaranteed
that it contains the same result as performing hasOwnProperty on an
object O with a given structure and key. To guarantee this, we only add
items into the cache when the Structure of the given item is cacheable.

The caching strategy is simple: when adding new items into the cache,
we will evict any item that was in the location that the new item
is hashed into. We also clear the cache on every GC. This strategy
proves to be successful on speedometer, which sees a cache hit rate
over 90%. This caching strategy is now inlined into the DFG/FTL JITs
by now recognizing hasOwnProperty as an intrinsic with the corresponding
HasOwnProperty node. The goal of the node is to emit inlined code for
the cache lookup to prevent the overhead of the call for the common
case where we get a cache hit.

I'm seeing around a 1% to 1.5% percent improvement on Speedometer on
my machine. Hopefully the perf bots agree with my machine.

This patch also speeds up the microbenchmark I added by 2.5x.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • 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):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::SpeculateCellOperand::SpeculateCellOperand):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGValidate.cpp:
  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileHasOwnProperty):

  • heap/Heap.cpp:

(JSC::Heap::collectImpl):

  • jit/JITOperations.h:
  • runtime/HasOwnPropertyCache.h: Added.

(JSC::HasOwnPropertyCache::Entry::offsetOfStructureID):
(JSC::HasOwnPropertyCache::Entry::offsetOfImpl):
(JSC::HasOwnPropertyCache::Entry::offsetOfResult):
(JSC::HasOwnPropertyCache::operator delete):
(JSC::HasOwnPropertyCache::create):
(JSC::HasOwnPropertyCache::hash):
(JSC::HasOwnPropertyCache::get):
(JSC::HasOwnPropertyCache::tryAdd):
(JSC::HasOwnPropertyCache::clear):
(JSC::VM::ensureHasOwnPropertyCache):

  • runtime/Intrinsic.h:
  • runtime/JSObject.h:
  • runtime/JSObjectInlines.h:

(JSC::JSObject::hasOwnProperty):

  • runtime/ObjectPrototype.cpp:

(JSC::ObjectPrototype::finishCreation):
(JSC::objectProtoFuncHasOwnProperty):

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

(JSC::VM::hasOwnPropertyCache):

6:02 PM Changeset in webkit [206135] by Wenson Hsieh
  • 9 edits
    2 adds in trunk

Add a unit test covering <https://trac.webkit.org/changeset/205983>
https://bugs.webkit.org/show_bug.cgi?id=162112

Reviewed by Beth Dakin.

Source/WebKit2:

Adds some a test support method as SPI on WKWebView to determine whether to request candidates. See
Tools/ChangeLog for more details.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _shouldRequestCandidates]):
(-[WKWebView _forceRequestCandidates]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Tools:

Adds a new unit test covering the changes in r205983 along with the infrastructure needed to support it. Also
further refactors the TestWKWebView used by VideoControlsManager and WKWebViewCandidateTests so that in both
cases, we add the WKWebView to a visible key window, and when sending a mouse down event, we propagate the event
at the window level rather than the view level, allowing greater flexibility to simulate behaviors such as
pressure-sensitive events that are needed for the new test.

Also rewrites currently disabled unit tests in CandidateTests as WebKit2 unit tests in WKWebViewCandidateTests,
checking whether or not to should be requesting candidates in password and non-password fields.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:

(TestWebKitAPI::setUpWebViewForTestingVideoControlsManager):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewCandidateTests.mm:

(-[CandidateTestWebView typeString:inputMessage:]):
(+[CandidateTestWebView setUpWithFrame:testPage:]):

  • TestWebKitAPI/Tests/WebKit2Cocoa/large-input-field-focus-onload.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/text-and-password-inputs.html: Added.
  • TestWebKitAPI/mac/TestWKWebViewMac.h:
  • TestWebKitAPI/mac/TestWKWebViewMac.mm:

(simulated_forceClickAssociatedEventsMask):
(-[TestWKWebViewHostWindow _mouseDownAtPoint:simulatePressure:]):
(-[TestWKWebView initWithFrame:]):
(-[TestWKWebView initWithFrame:configuration:]):
(-[TestWKWebView _setUpTestWindow:]):
(-[TestWKWebView mouseDownAtPoint:simulatePressure:]):
(-[TestWKWebView typeCharacter:]):
(-[TestWKWebView mouseDownAtPoint:]): Deleted.

5:48 PM Changeset in webkit [206134] by commit-queue@webkit.org
  • 13 edits
    4 adds in trunk

[JSC] Make the rounding-related nodes support any type
https://bugs.webkit.org/show_bug.cgi?id=161895

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

JSTests:

  • stress/arith-ceil-on-various-types.js: Added.
  • stress/arith-floor-on-various-types.js: Added.
  • stress/arith-round-on-various-types.js: Added.
  • stress/arith-trunc-on-various-types.js: Added.

Source/JavaScriptCore:

This patch changes ArithRound, ArithFloor, ArithCeil and ArithTrunc
to support polymorphic input without exiting on entry.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
The 4 functions ignore any input past the first argument. It is okay
to use the nodes with the first argument and let the Phantoms keep
the remaining arguments live.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
Our fixup had the issue we have seen on previous nodes: unaryArithShouldSpeculateInt32()
prevents us from picking a good type if we do not see any double.

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

Prediction propagation of those nodes are fully determined
from their flags and results's prediction. They are moved
to the invariant processing.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithRounding):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileArithRound):
(JSC::FTL::DFG::LowerDFGToB3::compileArithFloor):
(JSC::FTL::DFG::LowerDFGToB3::compileArithCeil):
(JSC::FTL::DFG::LowerDFGToB3::compileArithTrunc):

4:51 PM Changeset in webkit [206133] by commit-queue@webkit.org
  • 8 edits in trunk/LayoutTests

Web Inspector: adopt Object.awaitEvent in LayoutTests/inspector/css
https://bugs.webkit.org/show_bug.cgi?id=162071

Patch by Devin Rousso <Devin Rousso> on 2016-09-19
Reviewed by Brian Burg.

Replace instances of singleFireEventListener with awaitEvent and use promise logic to make
tests more readable.

  • inspector/css/createStyleSheet.html:
  • inspector/css/generate-css-rule-string.html:
  • inspector/css/manager-preferredInspectorStyleSheetForFrame-expected.txt:
  • inspector/css/manager-preferredInspectorStyleSheetForFrame.html:
  • inspector/css/stylesheet-events-basic.html:
  • inspector/css/stylesheet-events-inspector-stylesheet.html:
  • inspector/css/stylesheet-events-multiple-documents.html:
4:46 PM Changeset in webkit [206132] by andersca@apple.com
  • 5 edits in trunk/Source

Suppress JavaScript prompts early on in certain cases
https://bugs.webkit.org/show_bug.cgi?id=162243
rdar://problem/27661602

Reviewed by Geoffrey Garen.

Source/WebCore:

Export symbols needed by WebKit2.

  • loader/FrameLoader.h:
  • loader/FrameLoaderStateMachine.h:

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::shouldSuppressJavaScriptDialogs):
Add helper function.

(WebKit::WebChromeClient::runJavaScriptAlert):
(WebKit::WebChromeClient::runJavaScriptConfirm):
(WebKit::WebChromeClient::runJavaScriptPrompt):
Call helper function and return early if we should supress dialogs.

4:45 PM Changeset in webkit [206131] by Chris Dumez
  • 10 edits
    12 deletes in trunk

Align HTMLAppletElement with the specification
https://bugs.webkit.org/show_bug.cgi?id=162240

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline W3C test now that all checks are passing.

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

Source/WebCore:

Align HTMLAppletElement with the specification:

In particular:

  • space / vspace should be of type "unsigned long", not DOMString
  • codeBase and object should reflect as URLs

Firefox agree with the specification. Chrome does not have
HTMLAppletElement anymore.

No new tests, rebaselined existing test.

  • html/HTMLAppletElement.cpp:

(WebCore::HTMLAppletElement::isURLAttribute):

  • html/HTMLAppletElement.h:
  • html/HTMLAppletElement.idl:

LayoutTests:

Drop outdated tests. Update existing tests to reflect behavior change.

  • dom/html/level2/html/HTMLAppletElement11-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement11.html: Removed.
  • dom/html/level2/html/HTMLAppletElement11.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement11-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement11.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement11.xhtml: Removed.
  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
4:36 PM Changeset in webkit [206130] by commit-queue@webkit.org
  • 6 edits in trunk/LayoutTests

Web Inspector: adopt Object.awaitEvent in LayoutTests/http/tests/inspector
https://bugs.webkit.org/show_bug.cgi?id=162069

Patch by Devin Rousso <Devin Rousso> on 2016-09-19
Reviewed by Brian Burg.

Replace instances of singleFireEventListener with awaitEvent and use promise logic to make
tests more readable.

  • http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html:
  • http/tests/inspector/network/copy-as-curl.html:
  • http/tests/inspector/network/resource-timing-expected.txt:
  • http/tests/inspector/network/resource-timing.html:
  • http/tests/inspector/network/xhr-request-data-encoded-correctly.html:
4:30 PM Changeset in webkit [206129] by jer.noble@apple.com
  • 26 edits
    2 adds in trunk/LayoutTests/imported/w3c

Unreviewed gardening; update LayoutTests/media-source to the most recent version (5a011ca).

  • resources/TestRepositories:
  • web-platform-tests/media-source/OWNERS:
  • web-platform-tests/media-source/interfaces.html:
  • web-platform-tests/media-source/manifest.txt:
  • web-platform-tests/media-source/mediasource-appendbuffer-quota-exceeded.html:
  • web-platform-tests/media-source/mediasource-attach-stops-delaying-load-event.html: Added.
  • web-platform-tests/media-source/mediasource-avtracks.html:
  • web-platform-tests/media-source/mediasource-detach.html:
  • web-platform-tests/media-source/mediasource-duration-expected.txt:
  • web-platform-tests/media-source/mediasource-duration.html:
  • web-platform-tests/media-source/mediasource-endofstream.html:
  • web-platform-tests/media-source/mediasource-errors.html:
  • web-platform-tests/media-source/mediasource-getvideoplaybackquality-expected.txt:
  • web-platform-tests/media-source/mediasource-getvideoplaybackquality.html:
  • web-platform-tests/media-source/mediasource-is-type-supported.html:
  • web-platform-tests/media-source/mediasource-liveseekable.html:
  • web-platform-tests/media-source/mediasource-remove-expected.txt:
  • web-platform-tests/media-source/mediasource-remove.html:
  • web-platform-tests/media-source/mediasource-removesourcebuffer.html:
  • web-platform-tests/media-source/mediasource-seekable.html:
  • web-platform-tests/media-source/mediasource-sourcebuffer-mode-timestamps.html: Added.
  • web-platform-tests/media-source/mediasource-sourcebuffer-mode.html:
  • web-platform-tests/media-source/mediasource-sourcebuffer-trackdefaults.html:
  • web-platform-tests/media-source/mediasource-timestamp-offset.html:
  • web-platform-tests/media-source/mediasource-trackdefault.html:
  • web-platform-tests/media-source/mediasource-trackdefaultlist.html:
  • web-platform-tests/media-source/mediasource-util.js:
4:27 PM Changeset in webkit [206128] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, build fix for Win64
https://bugs.webkit.org/show_bug.cgi?id=162132

In Windows 64bit, t3 register in LLInt is not r[a-d]x.
It means that this cannot be used for byte operation.

  • llint/LowLevelInterpreter64.asm:
4:24 PM Changeset in webkit [206127] by jer.noble@apple.com
  • 9 edits
    1 add in trunk

[media-source] Fix imported/w3c/web-platform-tests/media-source/mediasource-avtracks.html
https://bugs.webkit.org/show_bug.cgi?id=162104

Reviewed by Eric Carlson.

Source/WebCore:

Fixes test: imported/w3c/web-platform-tests/media-source/mediasource-avtracks.html

Multiple overlapping issues are causing this test to fail:

  • When a MediaSource object is not attached from a HTMLMediaElement, it's SourceBuffer objects will return null from .videoTracks and .audioTracks, foiling the tests ability to assert that sourceBuffer.videoTracks.length == 0.
  • When a MediaSource object is detached from a HTMLMediaElement, it's tracks are removed but do not generate 'removedtrack' events.

When these bugs were fixed, a few more popped up:

  • The HTMLMediaElement removes its tracks before it closes the MediaSource, which causes an assertion when the MediaSource tells the HTMLMediaElement to remove its copy of the source's tracks (which have already been removed).
  • When the HTMLMediaElement is stop()-ed due to its ScriptExecutionContext being destroyed, it tries to close its MediaSource, which has itself already been stop()-ed and thus asserts.

To eliminate all these bugs and make the code more self explanatory, we will rename the
HTMLMediaElement's closeMediaSource() method to detachMediaSource(), and the MediaSource's
close() method to detachFromElement(). The only way to close a MediaSource is now by calling
detachMediaSource() from the HTMLMediaElement. The parts of the "Detaching from a media
element" algorithm which were previously spread across setReadyState() and onReadyStateChange()
are now unified in the newly renamed detachFromElement() method. The HTMLMediaElement will
first detach its MediaSource, and only after that remove all its tracks.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::setReadyState): Move steps into detachFromElement().
(WebCore::MediaSource::onReadyStateChange): Ditto.
(WebCore::MediaSource::detachFromElement): Perform the steps as specified.
(WebCore::MediaSource::attachToElement): Takes a reference rather than a bare pointer.
(WebCore::MediaSource::stop): Ask the media elemnet to detach.
(WebCore::MediaSource::close): Renamed to detachFromElement().

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

(WebCore::SourceBuffer::videoTracks): Always return a valid TrackList object.
(WebCore::SourceBuffer::audioTracks): Ditto.
(WebCore::SourceBuffer::textTracks): Ditto.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::~HTMLMediaElement): Renamed closeMediaSource() -> detachMediaSource().
(WebCore::HTMLMediaElement::prepareForLoad): Ditto.
(WebCore::HTMLMediaElement::loadResource): Ditto.
(WebCore::HTMLMediaElement::noneSupported): Ditto.
(WebCore::HTMLMediaElement::mediaLoadingFailedFatally): Ditto.
(WebCore::HTMLMediaElement::detachMediaSource): Ditto.
(WebCore::HTMLMediaElement::userCancelledLoad): Ditto.
(WebCore::HTMLMediaElement::createMediaPlayer): Ditto.
(WebCore::HTMLMediaElement::clearMediaPlayer): Ditto. Also, detach from the MediaSource before

removing tracks.

(WebCore::HTMLMediaElement::closeMediaSource): Deleted.

  • html/HTMLMediaElement.h:
  • html/track/TrackListBase.cpp:

(TrackListBase::remove): Only try to clear the media element from Tracks that have one.

LayoutTests:

  • imported/w3c/web-platform-tests/media-source/mediasource-avtracks-expected.txt
  • platform/mac/TestExpectations:
4:05 PM Changeset in webkit [206126] by achristensen@apple.com
  • 4 edits in trunk

URLParser can read memory out of bounds
https://bugs.webkit.org/show_bug.cgi?id=162206

Reviewed by Geoff Garen.

Source/WebCore:

Covered by new API tests.
URLParser is disabled by default still.

  • platform/URLParser.cpp:

(WebCore::parseIPv4Host):
If there are fewer than two numbers in an ipv4 address, we would subtract two from the Vector's size,
causing us to read memory up to std::numeric_limits<size_t>::max() - 2. Added a bounds check and many tests.

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

4:03 PM Changeset in webkit [206125] by achristensen@apple.com
  • 4 edits in trunk/Source/WebCore

URLParser should parse serialized valid URLs faster than unknown input
https://bugs.webkit.org/show_bug.cgi?id=162228

Reviewed by Chris Dumez.

The URL constructor with ParsedURLStringTag is almost twice as fast as the other URL constructors.
Assuming there are no tabs or newlines, and assuming characters are already encoded decreases the URLParser
runtime by over 25% and adds infrastructure for more optimizations.

No new tests. No change in behaviour.

  • platform/URL.cpp:

(WebCore::URL::URL):

  • platform/URLParser.cpp:

(WebCore::utf8PercentEncode):
(WebCore::utf8PercentEncodeQuery):
(WebCore::URLParser::parse):
(WebCore::URLParser::parseSerializedURL):
(WebCore::incrementIterator):
(WebCore::URLParser::parseAuthority):
(WebCore::URLParser::parsePort):
(WebCore::URLParser::parseHost):

  • platform/URLParser.h:

(WebCore::URLParser::parse): Deleted.

4:02 PM Changeset in webkit [206124] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.2.10

New tag.

3:53 PM Changeset in webkit [206123] by Keith Rollin
  • 3 edits in trunk/Source/WebKit2

Reduce logging from WebResourceLoader::didReceiveData
https://bugs.webkit.org/show_bug.cgi?id=162233

Reviewed by Antti Koivisto.

Only log once even if called multiple times for a single resource.

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveData):

  • WebProcess/Network/WebResourceLoader.h:
3:33 PM Changeset in webkit [206122] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Cleanup: Remove an extraneous copy of SecurityOrigin
https://bugs.webkit.org/show_bug.cgi?id=162118

Reviewed by Youenn Fablet.

Share one isolated copy of the SecurityOrigin between the ContentSecurityPolicy and
LoaderTaskOptions objects instead of creating two isolated copies of the SecurityOrigin.
This is safe because both ContentSecurityPolicy and LoaderTaskOptions are instantiated
in WorkerThreadableLoader::MainThreadBridge for use on the main thread only.

  • loader/WorkerThreadableLoader.cpp:

(WebCore::LoaderTaskOptions::LoaderTaskOptions):
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):

3:12 PM Changeset in webkit [206121] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

Add size assert for RenderElement
https://bugs.webkit.org/show_bug.cgi?id=162096

Reviewed by Simon Fraser.

Also remove the unused m_visibleInViewportState field.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::unregisterForVisibleInViewportCallback):

  • rendering/RenderElement.h:
2:59 PM Changeset in webkit [206120] by Keith Rollin
  • 4 edits in trunk/Source/WebCore

REGRESSION (r205275): LOG_WITH_STREAM() macros are all compiled in release builds now
https://bugs.webkit.org/show_bug.cgi?id=162180

Reviewed by Simon Fraser.

Disable LOG_WITH_STREAM in release mode. Along with this, remove a
local variable in GraphcsContextCG.cpp in release mode that's no
longer referenced. And adjust logFunctionResult so that it gets
defined only in debug mode, too, to match its declaration in
LogMacros.h.

No new tests -- there are no tests for logging.

  • platform/LogMacros.h:
  • platform/Logging.cpp:
  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawNativeImage):

2:25 PM Changeset in webkit [206119] by dbates@webkit.org
  • 44 edits
    112 deletes in trunk

Remove ENABLE(TEXT_AUTOSIZING) automatic text size adjustment code
https://bugs.webkit.org/show_bug.cgi?id=162167

Reviewed by Simon Fraser.

.:

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Remove the automatic text size adjustment code guarded by ENABLE(TEXT_AUTOSIZING)
because it is not used by any port. On Mac and iOS, analogous code guarded by
ENABLE(IOS_TEXT_AUTOSIZING) is used.

  • CMakeLists.txt:
  • Configurations/FeatureDefines.xcconfig:
  • dom/Document.cpp:

(WebCore::Document::Document):

  • dom/Document.h:

(WebCore::Document::textAutosizer): Deleted.

  • page/FrameView.cpp:

(WebCore::FrameView::setFrameRect):
(WebCore::FrameView::layout):

  • page/Settings.cpp:

(WebCore::Settings::Settings):
(WebCore::Settings::setTextAutosizingFontScaleFactor): Deleted.

  • page/Settings.h:

(WebCore::Settings::textAutosizingFontScaleFactor): Deleted.

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/RenderingAllInOne.cpp:
  • rendering/TextAutosizer.cpp: Removed.
  • rendering/TextAutosizer.h: Removed.
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresLayout):
(WebCore::RenderStyle::lineHeight):
(WebCore::RenderStyle::setFontSize):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::textAutosizingMultiplier): Deleted.
(WebCore::RenderStyle::setTextAutosizingMultiplier): Deleted.

  • rendering/style/StyleVisualData.cpp:

(WebCore::StyleVisualData::StyleVisualData):

  • rendering/style/StyleVisualData.h:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setTextAutosizingEnabled):
(WebCore::InternalSettings::setTextAutosizingWindowSizeOverride):
(WebCore::InternalSettings::setTextAutosizingFontScaleFactor): Deleted.

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

  • TestExpectations:
  • fast/text-autosizing/cluster-inline-block-or-table-expected.html: Removed.
  • fast/text-autosizing/cluster-inline-block-or-table.html: Removed.
  • fast/text-autosizing/cluster-inline-grid-flex-box-expected.html: Removed.
  • fast/text-autosizing/cluster-inline-grid-flex-box.html: Removed.
  • fast/text-autosizing/cluster-list-item-expected.html: Removed.
  • fast/text-autosizing/cluster-list-item.html: Removed.
  • fast/text-autosizing/cluster-narrow-in-wide-expected.html: Removed.
  • fast/text-autosizing/cluster-narrow-in-wide-ohidden-expected.html: Removed.
  • fast/text-autosizing/cluster-narrow-in-wide-ohidden.html: Removed.
  • fast/text-autosizing/cluster-narrow-in-wide.html: Removed.
  • fast/text-autosizing/cluster-wide-in-narrow-expected.html: Removed.
  • fast/text-autosizing/cluster-wide-in-narrow.html: Removed.
  • fast/text-autosizing/cluster-with-narrow-lca-and-cluster-expected.html: Removed.
  • fast/text-autosizing/cluster-with-narrow-lca-and-cluster.html: Removed.
  • fast/text-autosizing/cluster-with-narrow-lca-expected.html: Removed.
  • fast/text-autosizing/cluster-with-narrow-lca.html: Removed.
  • fast/text-autosizing/cluster-with-wide-lca-expected.html: Removed.
  • fast/text-autosizing/cluster-with-wide-lca.html: Removed.
  • fast/text-autosizing/clusters-insufficient-text-expected.html: Removed.
  • fast/text-autosizing/clusters-insufficient-text.html: Removed.
  • fast/text-autosizing/clusters-insufficient-width-expected.html: Removed.
  • fast/text-autosizing/clusters-insufficient-width.html: Removed.
  • fast/text-autosizing/clusters-sufficient-text-except-in-root-expected.html: Removed.
  • fast/text-autosizing/clusters-sufficient-text-except-in-root.html: Removed.
  • fast/text-autosizing/clusters-sufficient-width-expected.html: Removed.
  • fast/text-autosizing/clusters-sufficient-width.html: Removed.
  • fast/text-autosizing/constrained-and-overflow-auto-ancestor-expected.html: Removed.
  • fast/text-autosizing/constrained-and-overflow-auto-ancestor.html: Removed.
  • fast/text-autosizing/constrained-and-overflow-hidden-ancestor-expected.html: Removed.
  • fast/text-autosizing/constrained-and-overflow-hidden-ancestor.html: Removed.
  • fast/text-autosizing/constrained-and-overflow-paged-x-ancestor-expected.html: Removed.
  • fast/text-autosizing/constrained-and-overflow-paged-x-ancestor.html: Removed.
  • fast/text-autosizing/constrained-and-overflow-scroll-ancestor-expected.html: Removed.
  • fast/text-autosizing/constrained-and-overflow-scroll-ancestor.html: Removed.
  • fast/text-autosizing/constrained-height-ancestor-expected.html: Removed.
  • fast/text-autosizing/constrained-height-ancestor.html: Removed.
  • fast/text-autosizing/constrained-height-body-expected.html: Removed.
  • fast/text-autosizing/constrained-height-body.html: Removed.
  • fast/text-autosizing/constrained-maxheight-ancestor-expected.html: Removed.
  • fast/text-autosizing/constrained-maxheight-ancestor.html: Removed.
  • fast/text-autosizing/constrained-maxheight-expected.html: Removed.
  • fast/text-autosizing/constrained-maxheight.html: Removed.
  • fast/text-autosizing/constrained-out-of-flow-expected.html: Removed.
  • fast/text-autosizing/constrained-out-of-flow.html: Removed.
  • fast/text-autosizing/constrained-percent-maxheight-expected.html: Removed.
  • fast/text-autosizing/constrained-percent-maxheight.html: Removed.
  • fast/text-autosizing/constrained-percent-of-viewport-maxheight-expected.html: Removed.
  • fast/text-autosizing/constrained-percent-of-viewport-maxheight.html: Removed.
  • fast/text-autosizing/constrained-then-float-ancestors-expected.html: Removed.
  • fast/text-autosizing/constrained-then-float-ancestors.html: Removed.
  • fast/text-autosizing/constrained-then-overflow-ancestors-expected.html: Removed.
  • fast/text-autosizing/constrained-then-overflow-ancestors.html: Removed.
  • fast/text-autosizing/constrained-then-position-absolute-ancestors-expected.html: Removed.
  • fast/text-autosizing/constrained-then-position-absolute-ancestors.html: Removed.
  • fast/text-autosizing/constrained-then-position-fixed-ancestors-expected.html: Removed.
  • fast/text-autosizing/constrained-then-position-fixed-ancestors.html: Removed.
  • fast/text-autosizing/constrained-within-overflow-ancestor-expected.html: Removed.
  • fast/text-autosizing/constrained-within-overflow-ancestor.html: Removed.
  • fast/text-autosizing/em-margin-border-padding-expected.html: Removed.
  • fast/text-autosizing/em-margin-border-padding.html: Removed.
  • fast/text-autosizing/font-scale-factor-expected.html: Removed.
  • fast/text-autosizing/font-scale-factor.html: Removed.
  • fast/text-autosizing/form-controls-autosizing-button-input-elements-expected.html: Removed.
  • fast/text-autosizing/form-controls-autosizing-button-input-elements.html: Removed.
  • fast/text-autosizing/form-controls-autosizing-checkbox-input-element-expected.html: Removed.
  • fast/text-autosizing/form-controls-autosizing-checkbox-input-element.html: Removed.
  • fast/text-autosizing/form-controls-autosizing-radio-input-element-expected.html: Removed.
  • fast/text-autosizing/form-controls-autosizing-radio-input-element.html: Removed.
  • fast/text-autosizing/form-controls-autosizing-select-element-expected.html: Removed.
  • fast/text-autosizing/form-controls-autosizing-select-element.html: Removed.
  • fast/text-autosizing/form-controls-autosizing-textfield-input-elements-expected.html: Removed.
  • fast/text-autosizing/form-controls-autosizing-textfield-input-elements.html: Removed.
  • fast/text-autosizing/header-li-links-autosizing-expected.html: Removed.
  • fast/text-autosizing/header-li-links-autosizing.html: Removed.
  • fast/text-autosizing/header-links-autosizing-different-fontsize-expected.html: Removed.
  • fast/text-autosizing/header-links-autosizing-different-fontsize.html: Removed.
  • fast/text-autosizing/header-links-autosizing-expected.html: Removed.
  • fast/text-autosizing/header-links-autosizing.html: Removed.
  • fast/text-autosizing/narrow-child-expected.html: Removed.
  • fast/text-autosizing/narrow-child.html: Removed.
  • fast/text-autosizing/narrow-descendants-combined-expected.html: Removed.
  • fast/text-autosizing/narrow-descendants-combined.html: Removed.
  • fast/text-autosizing/narrow-iframe-expected.html: Removed.
  • fast/text-autosizing/narrow-iframe-flattened-expected.html: Removed.
  • fast/text-autosizing/narrow-iframe-flattened.html: Removed.
  • fast/text-autosizing/narrow-iframe.html: Removed.
  • fast/text-autosizing/nested-child-expected.html: Removed.
  • fast/text-autosizing/nested-child.html: Removed.
  • fast/text-autosizing/nested-em-line-height-expected.html: Removed.
  • fast/text-autosizing/nested-em-line-height.html: Removed.
  • fast/text-autosizing/oscillation-javascript-fontsize-change-expected.html: Removed.
  • fast/text-autosizing/oscillation-javascript-fontsize-change.html: Removed.
  • fast/text-autosizing/simple-paragraph-expected.html: Removed.
  • fast/text-autosizing/simple-paragraph.html: Removed.
  • fast/text-autosizing/span-child-expected.html: Removed.
  • fast/text-autosizing/span-child.html: Removed.
  • fast/text-autosizing/unwrappable-blocks-expected.html: Removed.
  • fast/text-autosizing/unwrappable-blocks.html: Removed.
  • fast/text-autosizing/unwrappable-inlines-expected.html: Removed.
  • fast/text-autosizing/unwrappable-inlines.html: Removed.
  • fast/text-autosizing/various-font-sizes-expected.html: Removed.
  • fast/text-autosizing/various-font-sizes.html: Removed.
  • fast/text-autosizing/wide-block-expected.html: Removed.
  • fast/text-autosizing/wide-block.html: Removed.
  • fast/text-autosizing/wide-child-expected.html: Removed.
  • fast/text-autosizing/wide-child.html: Removed.
  • fast/text-autosizing/wide-iframe-expected.html: Removed.
  • fast/text-autosizing/wide-iframe.html: Removed.
  • fast/text-autosizing/wide-in-narrow-overflow-scroll-expected.html: Removed.
  • fast/text-autosizing/wide-in-narrow-overflow-scroll.html: Removed.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator-wk1/TestExpectations: Move Failure entry for test

fast/text-autosizing/ios/line-height-text-autosizing.html from here to platform/ios-simulator/TestExpectations.

  • platform/ios-simulator-wk2/TestExpectations: Ditto.
  • platform/ios-simulator/TestExpectations: Associated failure of test

fast/text-autosizing/ios/line-height-text-autosizing.html with <https://bugs.webkit.org/show_bug.cgi?id=162236>.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wk2/TestExpectations:
2:10 PM Changeset in webkit [206118] by Chris Dumez
  • 3 edits
    5 adds in trunk

Update XHTMLParser to recognize "-W3CDTD MathML 2.0EN" public identifier
https://bugs.webkit.org/show_bug.cgi?id=162166

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Import test coverage from W3C web-platform-tests.

  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/w3c-import.log: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support-expected.txt: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support.htm: Added.

Source/WebCore:

Update XHTMLParser to recognize "-W3CDTD MathML 2.0EN" public identifier as
per the latest HTML specification.

Firefox already recognizes it properly.

Test: imported/w3c/web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support.htm

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::convertUTF16EntityToUTF8):
Fix assertion that was causing the new test to crash in debug. The input '\u0026'
gets converted to '&' which is only 1 character. However, the assertion wrongly
expected WTF::Unicode::convertUTF16ToUTF8() to generate more than 1 character.

(WebCore::externalSubsetHandler):
Add "-W3CDTD MathML 2.0EN" to the list.

2:07 PM Changeset in webkit [206117] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Web Inspector: adopt Object.awaitEvent in LayoutTests/inspector/unit-tests
https://bugs.webkit.org/show_bug.cgi?id=162103

Patch by Devin Rousso <Devin Rousso> on 2016-09-19
Reviewed by Brian Burg.

Replace instances of singleFireEventListener with awaitEvent and use promise logic to make
tests more readable.

  • inspector/unit-tests/inspector-test-dispatch-event-to-frontend.html:
  • inspector/unit-tests/protocol-test-dispatch-event-to-frontend.html:
1:49 PM Changeset in webkit [206116] by commit-queue@webkit.org
  • 8 edits in trunk/LayoutTests

Web Inspector: adopt Object.awaitEvent in LayoutTests/inspector/console
https://bugs.webkit.org/show_bug.cgi?id=162070

Patch by Devin Rousso <Devin Rousso> on 2016-09-19
Reviewed by Brian Burg.

Replace instances of singleFireEventListener with awaitEvent and use promise logic to make
tests more readable.

  • inspector/console/clearMessages.html:
  • inspector/console/command-line-api.html:
  • inspector/console/console-time.html:
  • inspector/console/messageAdded-from-named-evaluations.html:
  • inspector/console/messageAdded-from-worker.html:
  • inspector/console/messageRepeatCountUpdated.html:
  • inspector/console/messagesCleared.html:
1:47 PM Changeset in webkit [206115] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Web Inspector: adopt Object.awaitEvent in LayoutTests/inspector/script-profiler
https://bugs.webkit.org/show_bug.cgi?id=162101

Patch by Devin Rousso <Devin Rousso> on 2016-09-19
Reviewed by Brian Burg.

Replace instances of singleFireEventListener with awaitEvent and use promise logic to make
tests more readable.

  • inspector/script-profiler/event-type-Other.html:
1:46 PM Changeset in webkit [206114] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Web Inspector: adopt Object.awaitEvent in LayoutTests/inspector/page
https://bugs.webkit.org/show_bug.cgi?id=162100

Patch by Devin Rousso <Devin Rousso> on 2016-09-19
Reviewed by Brian Burg.

Replace instances of singleFireEventListener with awaitEvent and use promise logic to make
tests more readable.

  • inspector/page/searchInResources.html:
1:45 PM Changeset in webkit [206113] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Web Inspector: adopt Object.awaitEvent in LayoutTests/inspector/storage
https://bugs.webkit.org/show_bug.cgi?id=162102

Patch by Devin Rousso <Devin Rousso> on 2016-09-19
Reviewed by Brian Burg.

Replace instances of singleFireEventListener with awaitEvent and use promise logic to make
tests more readable.

  • inspector/storage/domStorage-events.html:
1:45 PM Changeset in webkit [206112] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

Web Inspector: adopt Object.awaitEvent in LayoutTests/inspector/network
https://bugs.webkit.org/show_bug.cgi?id=162099

Patch by Devin Rousso <Devin Rousso> on 2016-09-19
Reviewed by Brian Burg.

Replace instances of singleFireEventListener with awaitEvent and use promise logic to make
tests more readable.

  • inspector/network/client-blocked-load-expected.txt:
  • inspector/network/client-blocked-load.html:
  • inspector/network/xhr-json-blob-has-content.html:
1:41 PM Changeset in webkit [206111] by commit-queue@webkit.org
  • 5 edits in trunk/LayoutTests

Web Inspector: adopt Object.awaitEvent in LayoutTests/inspector/indexeddb
https://bugs.webkit.org/show_bug.cgi?id=162073

Patch by Devin Rousso <Devin Rousso> on 2016-09-19
Reviewed by Brian Burg.

Replace instances of singleFireEventListener with awaitEvent and use promise logic to make
tests more readable.

  • inspector/indexeddb/clearObjectStore.html:
  • inspector/indexeddb/deleteDatabaseNamesWithSpace.html:
  • inspector/indexeddb/requestDatabase.html:
  • inspector/indexeddb/requestDatabaseNames.html:
1:39 PM Changeset in webkit [206110] by keith_miller@apple.com
  • 9 edits
    1 delete in trunk/Source/JavaScriptCore

Update WASM towards 0xc
https://bugs.webkit.org/show_bug.cgi?id=162067

Reviewed by Geoffrey Garen.

This patch updates some of the core parts of the WASM frontend to the 0xc standard.
First, it changes the section names from strings to bytecodes. It also adds support
for inline block signatures. This is a change from the old version that used to have
each branch indicate the arity. Finally, this patch updates all the tests and deletes
a duplicate test.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • testWASM.cpp:

(runWASMTests):

  • wasm/WASMB3IRGenerator.cpp:
  • wasm/WASMFormat.h:
  • wasm/WASMFunctionParser.h:

(JSC::WASM::FunctionParser<Context>::FunctionParser):
(JSC::WASM::FunctionParser<Context>::parseBlock):
(JSC::WASM::FunctionParser<Context>::parseExpression):

  • wasm/WASMModuleParser.cpp:

(JSC::WASM::ModuleParser::parse):

  • wasm/WASMSections.cpp: Removed.

(JSC::WASM::Sections::lookup): Deleted.

  • wasm/WASMSections.h:

(JSC::WASM::Sections::validateOrder):

1:35 PM Changeset in webkit [206109] by Chris Dumez
  • 11 edits in trunk

Window's pageXOffset / pageYOffset attributes should be replaceable
https://bugs.webkit.org/show_bug.cgi?id=162046

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/browsers/the-window-object/window-properties-expected.txt:

Source/WebCore:

Window's pageXOffset / pageYOffset attributes should be replaceable as per:

Firefox agrees with the specification.

No new tests, rebaselined existing test.

  • page/DOMWindow.h:
  • page/DOMWindow.idl:

LayoutTests:

Update existing tests to reflect behavior change.

  • fast/dom/Window/get-set-properties-expected.txt:
  • fast/dom/Window/get-set-properties.html:
  • js/dom/var-declarations-shadowing-expected.txt:
  • js/dom/var-declarations-shadowing.html:
1:22 PM Changeset in webkit [206108] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

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

still failing on armv7 for some reason (Requested by anttik on
#webkit).

Reverted changeset:

"Add size assert for RenderElement"
https://bugs.webkit.org/show_bug.cgi?id=162096
http://trac.webkit.org/changeset/206107

12:26 PM Changeset in webkit [206107] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

Add size assert for RenderElement
https://bugs.webkit.org/show_bug.cgi?id=162096

Reviewed by Simon Fraser.

Also remove the unused m_visibleInViewportState field.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::unregisterForVisibleInViewportCallback):

  • rendering/RenderElement.h:
12:08 PM Changeset in webkit [206106] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Unreviewed, reverting changeset https://trac.webkit.org/changeset/206101.

Revert https://bugs.webkit.org/show_bug.cgi?id=162165:
Web Inspector: Make it easier to create a view from an existing DOM element.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):

  • UserInterface/Views/View.js:

(WebInspector.View):

11:59 AM Changeset in webkit [206105] by commit-queue@webkit.org
  • 6 edits in trunk

Web Inspector: Scope sidebar shows "Closure" instead of "Local" when paused in anonymous function
https://bugs.webkit.org/show_bug.cgi?id=162113
<rdar://problem/28348954>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-09-19
Reviewed by Brian Burg.

Source/WebInspectorUI:

  • UserInterface/Models/CallFrame.js:

(WebInspector.CallFrame):
Default the functionName to the empty string. This will compare
favorably against other empty function names instead of null.

LayoutTests:

  • inspector/debugger/paused-scopes-expected.txt:
  • inspector/debugger/paused-scopes.html:
  • inspector/debugger/resources/paused-scopes.js:

Add a third pause to test behavior paused inside an
unnamed anonymous function.

11:46 AM Changeset in webkit [206104] by Yusuke Suzuki
  • 15 edits in trunk/Source/JavaScriptCore

[JSC] Use is_cell_with_type for @isRegExpObject, @isMap, and @isSet
https://bugs.webkit.org/show_bug.cgi?id=162142

Reviewed by Michael Saboff.

Use is_cell_with_type for @isRegExpObject, @isMap and @isSet.
Previously, they were implemented as functions and only @isRegExpObject was handled in the DFG and FTL.
The recently added op_is_cell_with_type bytecode and DFG IsCellWithType node allows us to simplify the above checks in all JIT tiers.
Changed these checks to bytecode intrinsics using op_is_cell_with_type.

  • builtins/BuiltinNames.h:
  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecode/SpeculatedType.cpp:

(JSC::speculationFromJSType):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitIsRegExpObject):
(JSC::BytecodeGenerator::emitIsMap):
(JSC::BytecodeGenerator::emitIsSet):
(JSC::BytecodeGenerator::emitIsProxyObject): Deleted.

  • bytecompiler/NodesCodegen.cpp:

(JSC::BytecodeIntrinsicNode::emit_intrinsic_isRegExpObject):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isMap):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isSet):

  • dfg/DFGByteCodeParser.cpp:

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

  • runtime/ECMAScriptSpecInternalFunctions.cpp:

(JSC::esSpecIsRegExpObject): Deleted.

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

(JSC::JSGlobalObject::init):

  • runtime/MapPrototype.cpp:

(JSC::privateFuncIsMap): Deleted.

  • runtime/MapPrototype.h:
  • runtime/SetPrototype.cpp:

(JSC::privateFuncIsSet): Deleted.

  • runtime/SetPrototype.h:
11:38 AM Changeset in webkit [206103] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

11:32 AM Changeset in webkit [206102] by n_wang@apple.com
  • 6 edits
    2 adds in trunk

AX: Add accessibility support for details element on iOS
https://bugs.webkit.org/show_bug.cgi?id=162041

Reviewed by Chris Fleizach.

Source/WebCore:

The details and summary elements are poorly supported on iOS.
Two major issues:

  1. Assistive technologies taking focus onto details/summary elements will cause unexpected behavior.
  2. VoiceOver is not speaking the expanded status of the details element.

Fixed them by not setting focus onto elements inside details and exposing the details element's expanded
status to its summary's accessible children.

Test: accessibility/ios-simulator/detail-summary-ios.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(matchedParent):
(-[WebAccessibilityObjectWrapper _accessibilityListAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityLandmarkAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityFieldsetAncestor]):
(-[WebAccessibilityObjectWrapper tableCellParent]):
(-[WebAccessibilityObjectWrapper tableParent]):
(-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
(-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]):
(-[WebAccessibilityObjectWrapper detailParentForSummaryObject:]):
(-[WebAccessibilityObjectWrapper detailParentForObject:]):
(-[WebAccessibilityObjectWrapper accessibilityElementDidBecomeFocused]):
(-[WebAccessibilityObjectWrapper accessibilitySupportsARIAExpanded]):
(-[WebAccessibilityObjectWrapper accessibilityIsExpanded]):

Tools:

  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::isExpanded):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::isExpanded):

LayoutTests:

  • accessibility/ios-simulator/detail-summary-ios-expected.txt: Added.
  • accessibility/ios-simulator/detail-summary-ios.html: Added.
10:53 AM Changeset in webkit [206101] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Make it easier to create a view from an existing DOM element
https://bugs.webkit.org/show_bug.cgi?id=162165
<rdar://problem/28365848>

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
Pass id string for views created from existing DOM elements.

  • UserInterface/Views/View.js:

(WebInspector.View):
Change element to elementOrIdentifier. If the value is a string,
treat it as an element identifier. If the identifier is invalid, create
a default element.

10:36 AM Changeset in webkit [206100] by Alan Bujtas
  • 3 edits
    2 adds in trunk

ASSERTION FAILED: clipRectsContext.rootLayer == m_clipRectsCache->m_clipRectsRoot[clipRectsType] while loading guardian.co.uk
https://bugs.webkit.org/show_bug.cgi?id=162129
<rdar://problem/28353350>

Reviewed by Antti Koivisto.

Source/WebCore:

Neither ::localClipRect() nor ::selfClipRect() accounts for paginated context while computing the cliprects (See FIXMEs).
This patch ensures that we don't end up caching these invalid cliprects.

Test: fast/multicol/assert-on-cliprect-caching-when-paginated.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects):

LayoutTests:

  • fast/multicol/assert-on-cliprect-caching-when-paginated-expected.txt: Added.
  • fast/multicol/assert-on-cliprect-caching-when-paginated.html: Added.
10:16 AM Changeset in webkit [206099] by BJ Burg
  • 8 edits in trunk/Source/JavaScriptCore

Web Replay: teach the replay inputs generator to encode and decode OptionSet<T>
https://bugs.webkit.org/show_bug.cgi?id=162107

Reviewed by Anders Carlsson.

Add a new type flag OPTION_SET. This means that the type is a typechecked enum class
declaration, but it's stored in an OptionSet object and can contain multiple
distinct enumeration values like an untyped enum declaration.

Do some cleanup since the generator now supports three different enumerable types:
'enum', 'enum class', and 'OptionSet<T>' where T is an enum class.

Also clean up some sloppy variable names. Using an 'enum_' prefix is really confusing now.

  • replay/scripts/CodeGeneratorReplayInputs.py:

(Type.is_enum_declaration):
(Type.is_enum_class_declaration):
(Type.is_option_set):
(Type):
(Type.is_enumerable):
When we want all enumerable types, this property includes all three variants.

(Type.declaration_kind): Forward-declare OptionSet's type parameter as an enum class.
(VectorType.is_enum_declaration): Renamed from is_enum().
(VectorType.is_enum_class_declaration): Renamed from is_enum_class().
(VectorType.is_option_set): Added.
(InputsModel.enumerable_types): Added.
(InputsModel.parse_type_with_framework):
(Generator.generate_header):
(Generator.generate_implementation):
(Generator.generate_includes):
(Generator.generate_type_forward_declarations):
(Generator.generate_enumerable_type_trait_declaration):
(Generator.generate_enum_trait_declaration): Renamed.
(Generator.generate_enum_trait_implementation): Renamed.

  • replay/scripts/CodeGeneratorReplayInputsTemplates.py:

Add new templates for OptionSet types. Clean up parameter names and simplify the
enumerable type declaration template, which is the same for all enumerable type variants.

  • replay/scripts/tests/expected/fail-on-c-style-enum-no-storage.json-error:
  • replay/scripts/tests/expected/generate-enum-encoding-helpers.json-TestReplayInputs.cpp:

(JSC::EncodingTraits<Test::PlatformEvent::OtherType>::encodeValue):
(JSC::EncodingTraits<Test::PlatformEvent::OtherType>::decodeValue):

  • replay/scripts/tests/expected/generate-enum-encoding-helpers.json-TestReplayInputs.h:
  • replay/scripts/tests/expected/generate-enum-with-guard.json-TestReplayInputs.h:

Rebaseline test results.

  • replay/scripts/tests/generate-enum-encoding-helpers.json:

Add a new type for OptionSet<PlatformEvent::Modifier> to capture generated encode/decode methods.

10:00 AM Changeset in webkit [206098] by Yusuke Suzuki
  • 29 edits in trunk/Source/JavaScriptCore

[JSC][LLInt] Introduce is_cell_with_type
https://bugs.webkit.org/show_bug.cgi?id=162132

Reviewed by Sam Weinig.

In this patch, we introduce is_cell_with_type bytecode. This bytecode can unify the following predicates,
op_is_string, op_is_jsarray, op_is_proxy_object, and op_is_derived_array!
And we now drop DFG node IsString since we can use IsCellWithType instead.
This automatically offers optimization to previous IsString node: dropping cell check by using CellUse edge filter.

Later, we are planning to use this is_cell_with_type to optimize @isRegExpObject, @isSet, and @isMap[1].

The performance results are neutral.

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

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecode/SpeculatedType.cpp:

(JSC::speculationFromJSType):

  • bytecode/SpeculatedType.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitEqualityOp):
(JSC::BytecodeGenerator::emitIsCellWithType):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitIsJSArray):
(JSC::BytecodeGenerator::emitIsProxyObject):
(JSC::BytecodeGenerator::emitIsDerivedArray):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
(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):
(JSC::DFG::FixupPhase::fixupIsCellWithType):

  • dfg/DFGNode.h:

(JSC::DFG::Node::speculatedTypeForQuery):

  • 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::compileIsString): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_is_cell_with_type):
(JSC::JIT::emitIsCellWithType): Deleted.
(JSC::JIT::emit_op_is_string): Deleted.
(JSC::JIT::emit_op_is_jsarray): Deleted.
(JSC::JIT::emit_op_is_proxy_object): Deleted.
(JSC::JIT::emit_op_is_derived_array): Deleted.

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_is_cell_with_type):
(JSC::JIT::emitIsCellWithType): Deleted.
(JSC::JIT::emit_op_is_string): Deleted.
(JSC::JIT::emit_op_is_jsarray): Deleted.
(JSC::JIT::emit_op_is_proxy_object): Deleted.
(JSC::JIT::emit_op_is_derived_array): Deleted.

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
9:01 AM Changeset in webkit [206097] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Only override URLParser::enabled if NSUserDefaults object exists
https://bugs.webkit.org/show_bug.cgi?id=162131

Patch by Alex Christensen <achristensen@webkit.org> on 2016-09-19
Reviewed by Sam Weinig.

  • Shared/Cocoa/WebKit2InitializeCocoa.mm:

(WebKit::platformInitializeWebKit2):

  • Shared/WebKit2Initialize.cpp:

When I enable URLParser by default, I will want the default to only be overwritten if there is a
NSUserDefaults key for URLParserEnabled. Right now it is setting URLParser::enabled to false always,
which isn't a problem because the default is also false. When the default is true, that will overwrite the default.

7:31 AM Changeset in webkit [206096] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Clean-up after r206014
https://bugs.webkit.org/show_bug.cgi?id=162140

Patch by Youenn Fablet <youenn@apple.com> on 2016-09-19
Reviewed by Sam Weinig.

Covered by existing tests.

  • platform/network/HTTPHeaderMap.cpp:

(WebCore::HTTPHeaderMap::add):

6:30 AM Changeset in webkit [206095] by Michael Catanzaro
  • 2 edits in trunk

[GTK] Make ENABLE_THREADED_COMPOSITOR a public option
https://bugs.webkit.org/show_bug.cgi?id=162148

Reviewed by Carlos Garcia Campos.

  • Source/cmake/OptionsGTK.cmake:
5:30 AM Changeset in webkit [206094] by nael.ouedraogo@crf.canon.fr
  • 4 edits in trunk/Source/WebCore

If a host object is only used as a variadic argument, its bindings header isn't properly included
https://bugs.webkit.org/show_bug.cgi?id=150121

Reviewed by Youenn Fablet.

Modify JS binding generator to include binding headers of objects passed
as variadic argument.

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

(AddVariadicToImplIncludes):
(GenerateParametersCheck):

  • bindings/scripts/test/JS/JSTestObj.cpp:
4:30 AM Changeset in webkit [206093] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Web Inspector: ⇧⌘C should highlight node under cursor without re-moving mouse
https://bugs.webkit.org/show_bug.cgi?id=162128

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-09-19
Reviewed by Brian Burg.

  • inspector/InspectorDOMAgent.h:
  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorDOMAgent::mouseDidMoveOverElement):
(WebCore::InspectorDOMAgent::highlightMousedOverNode):
(WebCore::InspectorDOMAgent::setSearchingForNode):
When the inspector is connected, remember the last moused over node.
This produces far more consistent results of highlighting under
the cursor when pressing and releasing the keyboard shortcut keys,
without having to move the mouse. Even when using the shortcut to
first connect the inspector this produces far more consistent
results because releasing the keys for the shortcut produce new
mouseDidMoveOverElement events.

4:29 AM Changeset in webkit [206092] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Color picker in Style sidebar stops working after 1st color change
https://bugs.webkit.org/show_bug.cgi?id=162115
<rdar://problem/28349875>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-09-19
Reviewed by Brian Burg.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers.createSwatch):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._inlineSwatchActivated):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._inlineSwatchDeactivated):
Listen for swatch activated / inactivated events to set some state.

(WebInspector.CSSStyleDeclarationTextEditor.prototype._propertiesChanged):
Do not wipe markers if there is an active inline swatch. That
would break behavior for that active swatch.

(WebInspector.CSSStyleDeclarationTextEditor.prototype._inlineSwatchValueChanged):
Eliminate old, incorrect, and now unnecessary code for trying to recover
a textMarker for an inline swatch if the textMarker went away. Besides being
incorrect, if an inline swatch's textMarker goes away, then we will already
have issues, because any active popover will still be connected to the
original marker and swatch element that no longer appear in the editor.

  • UserInterface/Views/ColorPicker.js:

(WebInspector.ColorPicker):
(WebInspector.ColorPicker.prototype.set color):

  • UserInterface/Views/InlineSwatch.js:

(WebInspector.InlineSwatch.prototype.didDismissPopover):
(WebInspector.InlineSwatch.prototype._swatchElementClicked):

2:39 AM Changeset in webkit [206091] by commit-queue@webkit.org
  • 8 edits in trunk/Source

Web Inspector: Bring the inspected page's window forward when activating element search
https://bugs.webkit.org/show_bug.cgi?id=162114
<rdar://problem/28349357>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-09-19
Reviewed by Brian Burg.

Source/WebKit/mac:

  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorClient::didSetSearchingForNode):
When element search is activated bring the window
containing the inspected page to the foreground.

Source/WebKit2:

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::elementSelectionChanged):
When element search is activated allow the platform to bring
the window containing the inspected page to the foreground.

(WebKit::WebInspectorProxy::platformBringInspectedPageToFront):

  • UIProcess/efl/WebInspectorProxyEfl.cpp:

(WebKit::WebInspectorProxy::platformBringInspectedPageToFront):

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformBringInspectedPageToFront):
Default empty implementation for ports.

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformBringInspectedPageToFront):
Bring the window containing the inspected page to the foreground.

2:00 AM Changeset in webkit [206090] by nael.ouedraogo@crf.canon.fr
  • 4 edits in trunk/Source/WebCore

JSDOMBindings' toArguments() should return a more descriptive object
https://bugs.webkit.org/show_bug.cgi?id=161793

Reviewed by Youenn Fablet.

Replace std::pair with new VariadicHelperResult class with more
readable members names.

No additional tests required.

  • bindings/js/JSDOMBinding.h:

(WebCore::VariadicHelper::Result::Result):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):

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

(WebCore::jsTestObjPrototypeFunctionOverloadedMethod12):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):

12:23 AM Changeset in webkit [206089] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r206080 - [GTK] Stop using glReadPixels() to blit AC surfaces in the UIProcess under Wayland
https://bugs.webkit.org/show_bug.cgi?id=161530

Reviewed by Carlos Garcia Campos.

Use gdk_cairo_draw_from_gl when all necessary conditions exist.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::create): take TextureMapper::PaintFlags as optional argument.
(WebKit::ThreadedCompositor::ThreadedCompositor): ditto.
(WebKit::ThreadedCompositor::renderLayerTree): relay paint flags to TextureMapper::beginPaint.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::paint): use the faster gdk_cairo_draw_from_gl when a new
enough GTK+ is in use.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): create compositor
with PaintingMirrored flag if we have recent GTK+ and are running under Wayland.

  • WebProcess/WebPage/gtk/AcceleratedSurfaceX11.h: implement shouldPaintMirrored by always

returning false.

  • WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.h: implement shouldPaintMirrored by always

returning true.

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::compositeLayersToContext): pass PaintingMirror flag to TextureMapper
when under a recent enough GTK+ and Wayland.

12:22 AM Changeset in webkit [206088] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore/platform/gtk/po

Merge r206079 - [GTK] [l10n] Updated Ukrainian translation of WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=162136

Patch by Yuri Chornoivan <yurchor@ukr.net> on 2016-09-18
Rubber-stamped by Michael Catanzaro.

  • uk.po:
12:21 AM Changeset in webkit [206087] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r206086 - [GTK] Empty referer header after WebKit session state restoration trips Bad Behavior Wordpress plugin
https://bugs.webkit.org/show_bug.cgi?id=159606

Reviewed by Carlos Garcia Campos.

Leave the referrer member of FrameState unset when restoring from session state, unless
there is actually a nonempty referrer saved in the state. If we set it to an empty string,
then an empty referrer gets sent to the server, which some servers do not accept. It
triggers the Bad Behavior plugin on my WordPress blog, for instance. It also breaks vox.com.

  • UIProcess/API/gtk/WebKitWebViewSessionState.cpp:

(decodeFrameState):

Sep 18, 2016:

11:51 PM Changeset in webkit [206086] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

[GTK] Empty referer header after WebKit session state restoration trips Bad Behavior Wordpress plugin
https://bugs.webkit.org/show_bug.cgi?id=159606

Reviewed by Carlos Garcia Campos.

Leave the referrer member of FrameState unset when restoring from session state, unless
there is actually a nonempty referrer saved in the state. If we set it to an empty string,
then an empty referrer gets sent to the server, which some servers do not accept. It
triggers the Bad Behavior plugin on my WordPress blog, for instance. It also breaks vox.com.

  • UIProcess/API/gtk/WebKitWebViewSessionState.cpp:

(decodeFrameState):

12:49 PM Changeset in webkit [206085] by Matt Baker
  • 3 edits in trunk/LayoutTests

Web Inspector: Add test coverage for all array utility functions
https://bugs.webkit.org/show_bug.cgi?id=162044
<rdar://problem/28330846>

Reviewed by Joseph Pecoraro.

New test cases and expectations for Array utility functions.

  • inspector/unit-tests/array-utilities-expected.txt:
  • inspector/unit-tests/array-utilities.html:
12:04 PM Changeset in webkit [206084] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS] Remove unused methods from _WKInputDelegate
https://bugs.webkit.org/show_bug.cgi?id=162098

Patch by Chelsea Pugh <cpugh@apple.com> on 2016-09-18
Reviewed by Anders Carlsson.

  • UIProcess/API/Cocoa/_WKInputDelegate.h:
11:03 AM Changeset in webkit [206083] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Assert length of LLInt opcodes using isCellWithType is 3
https://bugs.webkit.org/show_bug.cgi?id=162134

Reviewed by Saam Barati.

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

10:40 AM Changeset in webkit [206082] by Yusuke Suzuki
  • 3 edits
    1 add in trunk

[JSC] Do not need to use defineProperty to define methods for object literals
https://bugs.webkit.org/show_bug.cgi?id=162111

Reviewed by Saam Barati.

JSTests:

  • stress/object-literal-methods.js: Added.

(shouldBe):
(throw.new.Error.let.object.get name):
(throw.new.Error):
(shouldBe.let.object.get name):
(shouldBe.let.object.get prototype):
(shouldBe.let.object.get 42):

Source/JavaScriptCore:

When we receive the following code,

var object = { method() { } };

currently, we use defineProperty to define "method" function for "object".
This patch replaces it with the ordinary put_by_id_direct / put_by_val_direct
because the following 2 conditions are met.

  1. While methods in classes have special attributes ({configurable: true, writable: true, enumerable: false}), the attributes of methods in object literals is just the same to the other normal properties ({configurable: true, writable: true, enumerable: true}). This means that we can use the usual put_by_id_direct / put_by_val_direct to define method properties for object literals.
  1. Furthermore, all the own properties that can reside in objects created by object literals have {configurable: true}. So there is no need to check conflict by defineProperty. Always overwriting is OK.

let name = 'method';
var object = { get [name]() { }, method() { } };
Latter method wins.

On the other hand, in class syntax, conflict check is necessary since "prototype" own property is defined as {configurable: false}.

class Hello { static prototype() { } } Should throw error by defineProperty's check.

This means that conflict check done in defneProperty is not necessary for object literals' properties.

  • bytecompiler/NodesCodegen.cpp:

(JSC::PropertyListNode::emitPutConstantProperty):

10:36 AM Changeset in webkit [206081] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Uncaught Exception: null is not an object (evaluating 'this.listItemElement.classList')
https://bugs.webkit.org/show_bug.cgi?id=162123
<rdar://problem/28352900>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-09-18
Reviewed by Matt Baker.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype.onexpand):
If not attached yet, don't update title. We will update title
when attaching, so this avoids work and avoids doing that
work when the tree element is not fully setup.

(WebInspector.DOMTreeElement.prototype._startEditing):
(WebInspector.DOMTreeElement.prototype._nodeTitleInfo):
(WebInspector.DOMTreeElement.prototype._nodePseudoClassesDidChange):
Switch to the public name instead of the private name.

8:10 AM Changeset in webkit [206080] by Gustavo Noronha Silva
  • 9 edits in trunk/Source/WebKit2

[GTK] Stop using glReadPixels() to blit AC surfaces in the UIProcess under Wayland
https://bugs.webkit.org/show_bug.cgi?id=161530

Reviewed by Carlos Garcia Campos.

Use gdk_cairo_draw_from_gl when all necessary conditions exist.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::create): take TextureMapper::PaintFlags as optional argument.
(WebKit::ThreadedCompositor::ThreadedCompositor): ditto.
(WebKit::ThreadedCompositor::renderLayerTree): relay paint flags to TextureMapper::beginPaint.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::paint): use the faster gdk_cairo_draw_from_gl when a new
enough GTK+ is in use.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): create compositor
with PaintingMirrored flag if we have recent GTK+ and are running under Wayland.

  • WebProcess/WebPage/gtk/AcceleratedSurfaceX11.h: implement shouldPaintMirrored by always

returning false.

  • WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.h: implement shouldPaintMirrored by always

returning true.

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::compositeLayersToContext): pass PaintingMirror flag to TextureMapper
when under a recent enough GTK+ and Wayland.

7:03 AM Changeset in webkit [206079] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK] [l10n] Updated Ukrainian translation of WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=162136

Patch by Yuri Chornoivan <yurchor@ukr.net> on 2016-09-18
Rubber-stamped by Michael Catanzaro.

  • uk.po:
6:47 AM Changeset in webkit [206078] by Gyuyoung Kim
  • 4 edits in trunk

[EFL] Bump efl library to 1.18.1
https://bugs.webkit.org/show_bug.cgi?id=162120

Patch by Gyuyoung Kim <gyuyoung.kim@navercorp.com> on 2016-09-18
Reviewed by Michael Catanzaro.

.:

  • Source/cmake/OptionsEfl.cmake: Use efl-1.18.1 instead of 1.18.

Tools:

  • efl/jhbuild.modules: Use efl-1.18.1 instead of 1.18.
6:13 AM Changeset in webkit [206077] by Gyuyoung Kim
  • 3 edits in trunk/Tools

[EFL] Adjust EFL coding style to EFL MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=162119

Reviewed by Michael Catanzaro.

Apply EFL coding style to main.c for MiniBrowser.

  • Use _foo_cb instead of on_foo for callback function
  • Use 3 spaces and use 2 spaces in keywords.

Additionally this patch adds an exception rule that style checker doesn't
check indentation rule in EFL MiniBrowser.

  • MiniBrowser/efl/main.c:

(miniBrowserViewSmartClass):
(window_find_with_ewk_view):
(_tooltip_show):
(window_tooltip_hide):
(window_tooltip_update):
(_mouse_in_cb):
(_mouse_move_cb):
(_mouse_out_cb):
(_mouse_wheel_cb):
(_window_resize_cb):
(update_view_favicon):
(_icon_changed_cb):
(window_free):
(window_close):
(search_icon_show):
(search_box_show):
(search_box_hide):
(history_list_hide):
(save_page_contents_callback):
(script_execute_callback):
(toggle_window_fullscreen):
(_key_down_cb):
(_mouse_down_cb):
(_title_changed_cb):
(_url_changed_cb):
(_back_forward_list_changed_cb):
(_progress_cb):
(_error_cb):
(_download_request_cb):
(close_file_picker):
(_filepicker_parent_deletion_cb):
(_filepicker_deletion_cb):
(_fileselector_done_cb):
(_file_chooser_request_cb):
(_download_finished_cb):
(_download_failed_cb):
(_color_changed_cb):
(_color_item_selected_cb):
(_color_picker_ok_clicked_cb):
(_color_picker_cancel_clicked_cb):
(_color_picker_dismiss_cb):
(_color_picker_request_cb):
(_url_bar_activated_cb):
(_url_bar_clicked_cb):
(_search_field_aborted_cb):
(_search_field_activated_cb):
(_search_field_clicked_cb):
(_back_button_clicked_cb):
(_forward_button_clicked_cb):
(_search_backward_button_clicked_cb):
(_search_forward_button_clicked_cb):
(_search_case_option_changed):
(_search_word_start_option_changed_cb):
(_search_close_button_clicked_cb):
(_refresh_button_clicked_cb):
(_stop_button_clicked_cb):
(_list_item_select_cb):
(navigation_button_longpress_process):
(_forward_button_longpress_cb):
(_back_button_longpress_cb):
(_ok_clicked_cb):
(_file_entry_dialog_show):
(_javascript_alert_cb):
(_javascript_confirm_cb):
(_javascript_prompt_cb):
(_javascript_before_unload_confirm_cb):
(_popup_menu_item_clicked_cb):
(popup_menu_populate):
(_popup_menu_show):
(_popup_menu_hide):
(_window_geometry_get):
(_window_geometry_set):
(_fullscreen_accept_cb):
(_fullscreen_deny_cb):
(_fullscreen_enter_cb):
(_fullscreen_exit_cb):
(_window_create_cb):
(_window_close_cb):
(_context_menu_item_selected_cb):
(context_menu_populate):
(_context_menu_show):
(_context_menu_hide):
(auth_popup_close):
(_auth_cancel_cb):
(_auth_ok_cb):
(_authentication_request_cb):
(_search_text_found_cb):
(_tooltip_text_set):
(_tooltip_text_unset):
(_navigation_policy_decision_cb):
(_home_button_clicked_cb):
(_window_deletion_cb):
(create_toolbar_button):
(window_create):
(configuration):
(parse_cookies_policy):
(parse_window_size):
(elm_main):
(on_tooltip_show): Deleted.
(on_mouse_in): Deleted.
(on_mouse_move): Deleted.
(on_mouse_out): Deleted.
(on_mouse_wheel): Deleted.
(on_window_resize): Deleted.
(on_icon_changed_cb): Deleted.
(on_key_down): Deleted.
(on_mouse_down): Deleted.
(on_title_changed): Deleted.
(on_url_changed): Deleted.
(on_back_forward_list_changed): Deleted.
(on_progress): Deleted.
(on_error): Deleted.
(on_download_request): Deleted.
(on_filepicker_parent_deletion): Deleted.
(on_filepicker_deletion): Deleted.
(on_fileselector_done): Deleted.
(on_file_chooser_request): Deleted.
(on_download_finished): Deleted.
(on_download_failed): Deleted.
(on_color_changed): Deleted.
(on_color_item_selected): Deleted.
(on_color_picker_ok_clicked): Deleted.
(on_color_picker_cancel_clicked): Deleted.
(on_color_picker_dismiss): Deleted.
(on_color_picker_request): Deleted.
(on_url_bar_activated): Deleted.
(on_url_bar_clicked): Deleted.
(on_search_field_aborted): Deleted.
(on_search_field_activated): Deleted.
(on_search_field_clicked): Deleted.
(on_back_button_clicked): Deleted.
(on_forward_button_clicked): Deleted.
(on_search_backward_button_clicked): Deleted.
(on_search_forward_button_clicked): Deleted.
(on_search_case_option_changed): Deleted.
(on_search_word_start_option_changed): Deleted.
(on_search_close_button_clicked): Deleted.
(on_refresh_button_clicked): Deleted.
(on_stop_button_clicked): Deleted.
(on_list_item_select): Deleted.
(on_forward_button_longpress): Deleted.
(on_back_button_longpress): Deleted.
(on_ok_clicked): Deleted.
(show_file_entry_dialog): Deleted.
(on_javascript_alert): Deleted.
(on_javascript_confirm): Deleted.
(on_javascript_prompt): Deleted.
(on_javascript_before_unload_confirm): Deleted.
(on_popup_menu_item_clicked): Deleted.
(on_popup_menu_show): Deleted.
(on_popup_menu_hide): Deleted.
(on_window_geometry_get): Deleted.
(on_window_geometry_set): Deleted.
(on_fullscreen_accept): Deleted.
(on_fullscreen_deny): Deleted.
(on_fullscreen_enter): Deleted.
(on_fullscreen_exit): Deleted.
(on_window_create): Deleted.
(on_window_close): Deleted.
(context_menu_item_selected_cb): Deleted.
(on_context_menu_show): Deleted.
(on_context_menu_hide): Deleted.
(on_auth_cancel): Deleted.
(on_auth_ok): Deleted.
(on_authentication_request): Deleted.
(on_search_text_found): Deleted.
(on_tooltip_text_set): Deleted.
(on_tooltip_text_unset): Deleted.
(on_navigation_policy_decision): Deleted.
(on_home_button_clicked): Deleted.
(on_window_deletion): Deleted.

  • Scripts/webkitpy/style/checker.py:
1:01 AM Changeset in webkit [206076] by achristensen@apple.com
  • 4 edits in trunk/Source/WebCore

Remove unnecessary String allocations in URLParser
https://bugs.webkit.org/show_bug.cgi?id=162089

Reviewed by Chris Dumez.

No change in behavior except a performance improvement.

  • platform/URL.cpp:

(WebCore::assertProtocolIsGood):
(WebCore::URL::protocolIs):
(WebCore::protocolIs):

  • platform/URL.h:

Added a new protocolIs for non-null-terminated strings from user input.

  • platform/URLParser.cpp:

(WebCore::URLParser::parse):
Don't make a String to compare protocols.

Note: See TracTimeline for information about the timeline view.