Timeline



Dec 4, 2015:

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

Remove CORETEXT_WEB_FONTS
https://bugs.webkit.org/show_bug.cgi?id=151891

Reviewed by Simon Fraser.

The only platform where this was turned off (Mavericks) is no longer supported.

No new tests because there is no behavior difference.

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformCreateScaledFont): Deleted.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::registeredFont):
(WebCore::FontPlatformData::ctFont):

  • platform/graphics/mac/FontCustomPlatformData.cpp:

(WebCore::FontCustomPlatformData::fontPlatformData): Deleted.
(WebCore::createFontCustomPlatformData): Deleted.

  • platform/graphics/mac/FontCustomPlatformData.h:

(WebCore::FontCustomPlatformData::FontCustomPlatformData): Deleted.

  • platform/text/TextFlags.h:
11:11 PM Changeset in webkit [193511] by Alan Bujtas
  • 7 edits in trunk

Garbage in page tiles when document is too long.
https://bugs.webkit.org/show_bug.cgi?id=151906
rdar://problem/23695858

Reviewed by Simon Fraser.

Source/WebCore:

This patch partially fixes the broken concept(webkit.org/b/151908) of having a nearlyMax/2 sized rectangle to define infiniteness.
(see LayoutRect::infiniteRect() and ClipRect::isInfinite())

Covered by existing test.

  • rendering/ClipRect.h: Branch for infinite clipping.

(WebCore::ClipRect::intersect):
(WebCore::ClipRect::intersects):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::clipToRect): Do not clip when clipping is infinite.
(WebCore::RenderLayer::restoreClip):
(WebCore::RenderLayer::calculateClipRects):

LayoutTests:

  • platform/ios-simulator/fast/block/float/overhanging-tall-block-expected.txt:
  • platform/mac-mavericks/fast/block/float/overhanging-tall-block-expected.txt:
  • platform/mac/fast/block/float/overhanging-tall-block-expected.txt:
9:25 PM Changeset in webkit [193510] by beidson@apple.com
  • 12 edits in trunk

Modern IDB: Add some more custom exception messages, passing some more tests.
https://bugs.webkit.org/show_bug.cgi?id=151898

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Some failing tests now pass).

  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::objectStore):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/keypath-arrays-expected.txt:
  • storage/indexeddb/noblobs-expected.txt:
  • storage/indexeddb/object-lookups-in-versionchange-expected.txt:
  • storage/indexeddb/request-result-cache-expected.txt:
  • storage/indexeddb/transaction-after-close-expected.txt:
  • storage/indexeddb/transaction-and-objectstore-calls-expected.txt:
  • storage/indexeddb/transaction-read-only-expected.txt:
8:31 PM Changeset in webkit [193509] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

TestNetscapePlugIn: Fix remaining static analyzer warnings
<http://webkit.org/b/151888>

Reviewed by Alexey Proskuryakov.

Fixes the following static analyzer warnings:

Tools/DumpRenderTree/TestNetscapePlugIn/main.cpp:101:9: warning: Called function pointer is null (null dereference)

CRASH();

Tools/DumpRenderTree/TestNetscapePlugIn/main.cpp:46:5: note: expanded from macro 'CRASH'

((void(*)())0)(); /* More reliable, but doesn't say BBADBEEF */ \
~

Tools/DumpRenderTree/TestNetscapePlugIn/main.cpp:375:12: warning: Access to field 'pluginTest' results in a dereference of a null pointer (loaded from variable 'obj')

return obj->pluginTest->NPP_SetWindow(window);


2 warnings generated.

  • DumpRenderTree/TestNetscapePlugIn/main.cpp:

(CRASH): Use builtin_trap() for gcc/clang.
(NPP_SetWindow): Add early return if obj is nullptr.

7:29 PM Changeset in webkit [193508] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

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

Causes Infinite Recursion in Timeline Recording (Requested by
JoePeck on #webkit).

Reverted changeset:

"Web Inspector: when a marked-dirty subview is attached to a
parent View, dirtyDescendantsCount gets out of sync"
https://bugs.webkit.org/show_bug.cgi?id=151876
http://trac.webkit.org/changeset/193486

7:20 PM Changeset in webkit [193507] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception with Reload shortcut in JSContext Inspector
https://bugs.webkit.org/show_bug.cgi?id=151896

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-12-04
Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
Do not implicitly prevent default on these keyboard shortcuts
so we can system beep if we do not do anything.

(WebInspector._reloadPage):
(WebInspector._reloadPageIgnoringCache):
Bail if there is no PageAgent without preventing default for
a beep system beep. Prevent default if we did something.

6:57 PM Changeset in webkit [193506] by benjamin@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Some more cleanup of FTLB3Output
https://bugs.webkit.org/show_bug.cgi?id=151834

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

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::trap):
(JSC::FTL::Output::stackmapIntrinsic): Deleted.
(JSC::FTL::Output::frameAddressIntrinsic): Deleted.
(JSC::FTL::Output::patchpointInt64Intrinsic): Deleted.
(JSC::FTL::Output::patchpointVoidIntrinsic): Deleted.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::probe):

6:26 PM Changeset in webkit [193505] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix Value::returnsBool() after r193436
https://bugs.webkit.org/show_bug.cgi?id=151902

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-12-04
Reviewed by Saam Barati.

I forgot to carry a test from Branch and Select :(

  • b3/B3Value.cpp:

(JSC::B3::Value::returnsBool):

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

Merge r191825. rdar://problem/23732363

5:48 PM Changeset in webkit [193503] by matthew_hanson@apple.com
  • 29 edits
    3 copies
    377 adds in branches/safari-601-branch

Merge r191128. rdar://problem/23732363

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

Merge r190231. rdar://problem/23732363

5:47 PM Changeset in webkit [193501] by matthew_hanson@apple.com
  • 19 edits
    19 adds in branches/safari-601-branch

Merge r190209. rdar://problem/23732363

5:45 PM Changeset in webkit [193500] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

Place an upper bound on canvas pixel count
https://bugs.webkit.org/show_bug.cgi?id=151825
<rdar://problem/23324916>

Reviewed by Simon Fraser.

Malformed JavaScript can attempt to create lots of canvas contexts. Limit the amount of memory
we will use for this purpose to some percentage of system RAM.

  • html/HTMLCanvasElement.cpp:

(WebCore::removeFromActivePixelMemory): Added helper function
(WebCore::HTMLCanvasElement::~HTMLCanvasElement): Call new 'releaseImageBufferAndContext' method
to ensure ImageBuffer and graphics context state are properly cleaned up.
(WebCore::maxActivePixels): Use one quarter of the system RAM, or 1 GB (whichever is more) as
an upper bound on active pixel memory.
(WebCore::HTMLCanvasElement::getContext): If we are attempting to create a context that will cause
us to exceed the allowed active pixel count, fail.
(WebCore::HTMLCanvasElement::releaseImageBufferAndContext): Added helper function
(WebCore::HTMLCanvasElement::setSurfaceSize): Use the new 'releaseImageBufferAndContext' method
to handle active pixel memory counts.
(WebCore::HTMLCanvasElement::createImageBuffer): Refuse to create a backing buffer if it will
exceed our available pixel memory.

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

Crash when secondary clicking on a link on yahoo.com
https://bugs.webkit.org/show_bug.cgi?id=151900
rdar://problem/23765149

Reviewed by Beth Dakin.

Don't use +[NSURL URLWithString:] since it doesn't handle invalid URLs as well as WebCore::URL.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::createShareMenuItem):

5:35 PM Changeset in webkit [193498] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Fix toggling so hidden links are not clickable still.

  • wp-content/themes/webkit/status.php:
5:28 PM Changeset in webkit [193497] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

5:23 PM Changeset in webkit [193496] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Fix another place where feature status internal reference links were wrong.

  • wp-content/themes/webkit/status.php:
5:23 PM Changeset in webkit [193495] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.5.3

New tag.

5:21 PM Changeset in webkit [193494] by beidson@apple.com
  • 9 edits in trunk

Modern IDB: Add some more custom exception messages, passing some more tests.
https://bugs.webkit.org/show_bug.cgi?id=151895

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Some failing tests now pass).

  • Modules/indexeddb/client/IDBDatabaseImpl.cpp:

(WebCore::IDBClient::IDBDatabase::transaction):

  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::deleteIndex):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/aborted-versionchange-closes-expected.txt:
  • storage/indexeddb/cursor-continue-dir-expected.txt:
  • storage/indexeddb/cursor-continue-expected.txt:
  • storage/indexeddb/deleteIndex-expected.txt:
  • storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
5:14 PM Changeset in webkit [193493] by commit-queue@webkit.org
  • 8 edits
    4 adds in trunk

[INTL] Implement Number.prototype.toLocaleString in ECMA-402
https://bugs.webkit.org/show_bug.cgi?id=147610

Patch by Andy VanWagoner <thetalecrafter@gmail.com> on 2015-12-04
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Add toLocaleString in builtin JavaScript that delegates formatting to Intl.NumberFormat.
Keep exisiting native implementation for use if INTL flag is disabled.

  • CMakeLists.txt: Add NumberPrototype.js.
  • DerivedSources.make: Add NumberPrototype.js.
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/NumberPrototype.js: Added.

(toLocaleString):

  • runtime/CommonIdentifiers.h: Add private names for Intl constructors.
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init): Expose Intl constructors to builtin js.

  • runtime/NumberPrototype.cpp:

(JSC::NumberPrototype::finishCreation): Replace toLocaleString implementation.

LayoutTests:

Add tests for ECMA-402 Number.prototype.toLocaleString.
Since NumberFormat is not fully implemented, don't test locale-specific behavior yet.

  • js/number-toLocaleString-expected.txt: Added.
  • js/number-toLocaleString.html: Added.
  • js/script-tests/number-toLocaleString.js: Added.
5:06 PM Changeset in webkit [193492] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Fixed feature status internal reference links.

  • wp-content/themes/webkit/status.php:
5:04 PM Changeset in webkit [193491] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

CRASH: CodeBlock::setOptimizationThresholdBasedOnCompilationResult + 567
https://bugs.webkit.org/show_bug.cgi?id=151892

Reviewed by Mark Lam.

When the debugger is in the process of attaching and it recompiles functions
for debugging, there can also be a DFG compilation running concurrently.
When we go to update the optimization threshold and find that the replacement
is also baseline code, we shouldn't update the threshold.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::setOptimizationThresholdBasedOnCompilationResult):

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

Versioning.

4:53 PM Changeset in webkit [193489] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

Crash in clients using userData in
_immediateActionAnimationControllerForHitTestResult
https://bugs.webkit.org/show_bug.cgi?id=151887

Rubber-stamped by Anders Carlsson.

Follow-up fix to handle null userData.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _web_immediateActionAnimationControllerForHitTestResultInternal:withType:userData:]):

4:42 PM Changeset in webkit [193488] by Jon Davis
  • 6 edits in trunk

Update feature status for up-to-date status information.
https://bugs.webkit.org/show_bug.cgi?id=151821

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • features.json:

Source/WebCore:

  • features.json:

Websites/webkit.org:

  • wp-content/themes/webkit/status.php:
4:31 PM Changeset in webkit [193487] by beidson@apple.com
  • 8 edits in trunk

Modern IDB: Flip test expectations around so we only list failures.
https://bugs.webkit.org/show_bug.cgi?id=151880

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Covered by all existing tests).

  • Modules/indexeddb/client/IDBRequestImpl.cpp:

(WebCore::IDBClient::IDBRequest::stop):
(WebCore::IDBClient::IDBRequest::enqueueEvent):
(WebCore::IDBClient::IDBRequest::dispatchEvent):

  • Modules/indexeddb/client/IDBRequestImpl.h:
  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::abortDueToFailedRequest):
(WebCore::IDBClient::IDBTransaction::hasPendingActivity):
(WebCore::IDBClient::IDBTransaction::stop):
(WebCore::IDBClient::IDBTransaction::enqueueEvent):
(WebCore::IDBClient::IDBTransaction::dispatchEvent):

  • Modules/indexeddb/client/IDBTransactionImpl.h:
  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::idbKeyToScriptValue): Protection against a ScriptExecutionContext that no longer has an ExecState.

A full reworking on the binding utilities to prevent this through is covered by b/151890

LayoutTests:

  • platform/mac-wk1/TestExpectations:
4:12 PM Changeset in webkit [193486] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: when a marked-dirty subview is attached to a parent View, dirtyDescendantsCount gets out of sync
https://bugs.webkit.org/show_bug.cgi?id=151876

Reviewed by Brian Burg.

  • UserInterface/Views/NewTabContentView.js:

(WebInspector.NewTabContentView.prototype._updateShownTabs):
Removed workaround added in https://bugs.webkit.org/show_bug.cgi?id=151594.

  • UserInterface/Views/View.js:

(WebInspector.View._scheduleLayoutForView):
Always perform a synchronous layout when a view that isn't descended from the
root view schedules a layout.

4:04 PM Changeset in webkit [193485] by sbarati@apple.com
  • 14 edits in trunk/Source/JavaScriptCore

OSR exits that are exception handlers should emit less code eagerly in the thunk generator, and instead, should defer as much code generation as possible to be lazily generated in the exit itself
https://bugs.webkit.org/show_bug.cgi?id=151406

Reviewed by Filip Pizlo.

We no longer emit any extra code eagerly for an OSRExit that
is an exception handler. We emit all code lazily in the exit
itself. This has one interesting consequence which is that the
actual C call to compile the exit goes through an OSR exit generation
thunk that must now be aware of resetting the call frame and the stack
pointer to their proper values before making the compileOSRExit C
call. This has one interesting consequence in the FTL because the
FTL will do a pushToSaveImmediateWithoutTouchingRegisters with the
OSR exit index. We must take care to preserve this exit index when
we reset the stack pointer by re-pushing it onto the stack.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::setJITCode):
(JSC::CodeBlock::jitCode):
(JSC::CodeBlock::jitCodeOffset):
(JSC::CodeBlock::jitType):

  • dfg/DFGCommonData.h:

(JSC::DFG::CommonData::frameRegisterCountOffset):

  • dfg/DFGJITCode.h:

(JSC::DFG::JITCode::setOSREntryBlock):
(JSC::DFG::JITCode::clearOSREntryBlock):
(JSC::DFG::JITCode::commonDataOffset):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::linkOSRExits):

  • dfg/DFGOSRExitCompiler.cpp:
  • dfg/DFGOSRExitCompilerCommon.h:

(JSC::DFG::adjustFrameAndStackInOSRExitCompilerThunk):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitGenerationThunkGenerator):

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • ftl/FTLExitThunkGenerator.cpp:

(JSC::FTL::ExitThunkGenerator::~ExitThunkGenerator):
(JSC::FTL::ExitThunkGenerator::emitThunk):
(JSC::FTL::ExitThunkGenerator::emitThunks):

  • ftl/FTLExitThunkGenerator.h:

(JSC::FTL::ExitThunkGenerator::didThings):

  • ftl/FTLJITCode.h:

(JSC::FTL::JITCode::commonDataOffset):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):
(JSC::FTL::compileFTLOSRExit):

  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):
(JSC::FTL::osrExitGenerationThunkGenerator):
(JSC::FTL::lazySlowPathGenerationThunkGenerator):
(JSC::FTL::registerClobberCheck):

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

[Cocoa] Some fonts cause CTFontCopyAvailableTables() to return nullptr
https://bugs.webkit.org/show_bug.cgi?id=151884
<rdar://problem/23752253>

Reviewed by Brian Burg.

No new tests.

  • platform/graphics/opentype/OpenTypeCG.cpp:

(WebCore::OpenType::fontHasMathTable):

3:22 PM Changeset in webkit [193483] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

Crash in clients using userData in
_immediateActionAnimationControllerForHitTestResult
https://bugs.webkit.org/show_bug.cgi?id=151887

Reviewed by Sam Weinig.

Cast this correctly.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _web_immediateActionAnimationControllerForHitTestResultInternal:withType:userData:]):

3:15 PM Changeset in webkit [193482] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

Unreviewed build-fix; Add new parameter to overloaded createSession() method in MediaPlayerPrivateAVFoundationCF.

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

(WebCore::CDMSessionAVFoundationCF::CDMSessionAVFoundationCF):

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

(WebCore::MediaPlayerPrivateAVFoundationCF::createSession):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
3:09 PM Changeset in webkit [193481] by barraclough@apple.com
  • 8 edits in trunk/Source/WebKit2

Background state not being tracked correctly for PDFs on iOS
https://bugs.webkit.org/show_bug.cgi?id=151886

Reviewed by Anders Carlson.

The problem here is that when viewing a PDF we don't have an ApplicationStateTracker.
(While we do have a content view - which normally holds the ApplicationStateTracker -
the content view is not in a window, and only has an ApplicationStateTracker while in a
window). For now, let's give the WKPDFView an ApplicationStateTracker of its very own.
In the future we may want to refactor ownership of the ApplicationStateTracker up to
the WKWebView.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _isBackground]):

  • Added, checks background state of content/PDF view.
  • UIProcess/API/Cocoa/WKWebViewInternal.h:
    • expose _isBackground to PageClientImplIOS.
  • UIProcess/ApplicationStateTracker.h:

(WebKit::ApplicationStateTracker::isInBackground):

  • UIProcess/ApplicationStateTracker.mm:

(WebKit::isBackgroundState):
(WebKit::ApplicationStateTracker::ApplicationStateTracker):

  • generalize WKContentView -> UIView, so this may now also be a WKPDFView.
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::isViewVisible):

  • check background state via the WKWebView.
  • UIProcess/ios/WKPDFView.h:
  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView willMoveToWindow:]):
(-[WKPDFView didMoveToWindow]):
(-[WKPDFView isBackground]):
(-[WKPDFView _applicationDidEnterBackground]):
(-[WKPDFView _applicationWillEnterForeground]):

  • added methods to initialize ApplicationStateTracker, access background state, & callbacks to the page proxy.
2:54 PM Changeset in webkit [193480] by fpizlo@apple.com
  • 1 edit
    1 add in trunk/Source/JavaScriptCore

Having a bad time has a really awful time when it runs at the same time as the JIT
https://bugs.webkit.org/show_bug.cgi?id=151882
rdar://problem/23547038

Unreviewed, really adding the test this time.

  • tests/stress/ftl-has-a-bad-time.js: Added.

(foo):

2:41 PM Changeset in webkit [193479] by jer.noble@apple.com
  • 31 edits
    3 copies
    1 add in trunk/Source/WebCore

Adopt AVContentKeySession
https://bugs.webkit.org/show_bug.cgi?id=151221

Reviewed by Eric Carlson.

Adopt a new API for managing key state, AVContentKeySession. Because this necessitates a change
in both the initialization data returned by the needkey event, and passed into the createSession()
method, bump the protocol version number (to 3), and keep supporting the old key management API
for legacy content.

To do so, move most of the implementation of CDMPrivateMediaSourceAVFObjC into a new subclass,
CDMSessionAVStreamSession, and add a new subclass, CDMSessionAVContentKeySession, to support the
new API.

  • platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.h:

(WebCore::CDMPrivateMediaSourceAVFObjC::CDMPrivateMediaSourceAVFObjC): Moved to implementation file.

  • platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:

(WebCore::validKeySystemRE): Support "com.apple.fps.3_x".
(WebCore::CDMPrivateMediaSourceAVFObjC::~CDMPrivateMediaSourceAVFObjC): Invalidate all outstanding sessions.
(WebCore::CDMPrivateMediaSourceAVFObjC::supportsKeySystem): Only support "com.apple.fps.3_x" if the AVContentKeySession class is available.
(WebCore::CDMPrivateMediaSourceAVFObjC::createSession): Create an instance of CDMSessionAVContentKeySession if "com.apple.fps.3_x" is specified and AVContentKeySession is available.
(WebCore::CDMPrivateMediaSourceAVFObjC::invalidateSession): Remove session from the list of outstanding sessions.
(WebCore::CDMPrivateMediaSourceAVFObjC::supportsMIMEType): Deleted.

  • platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.h: Copied from Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h.

(WebCore::CDMSessionAVContentKeySession::hasContentKeySession): Simple accessor.
(WebCore::toCDMSessionAVContentKeySession): Safe casting.

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

(-[CDMSessionAVContentKeySessionDelegate initWithParent:]): Simple constructor.
(-[CDMSessionAVContentKeySessionDelegate invalidate]): Remove reference to parent.
(-[CDMSessionAVContentKeySessionDelegate contentKeySession:willProvideKeyRequestInitializationDataForTrackID:]): Pass to parent.
(-[CDMSessionAVContentKeySessionDelegate contentKeySession:didProvideKeyRequestInitializationData:requestHandling:]): Ditto.
(-[CDMSessionAVContentKeySessionDelegate contentKeySessionContentProtectionSessionIdentifierDidChange:]): Ditto.
(WebCore::CDMSessionAVContentKeySession::CDMSessionAVContentKeySession): Create the delegate.
(WebCore::CDMSessionAVContentKeySession::~CDMSessionAVContentKeySession): Invalidate the delegate and remove all parsers.
(WebCore::CDMSessionAVContentKeySession::isAvailable): Return true if AVContentKeySession class is available.
(WebCore::CDMSessionAVContentKeySession::generateKeyRequest): Support "keyrelease" message, setting of the certificate, and creating key request object.
(WebCore::CDMSessionAVContentKeySession::releaseKeys): Retrieve keys from storage location.
(WebCore::isEqual): Compares a Uint8Array to a char*.
(WebCore::CDMSessionAVContentKeySession::update): Support "acknowledged" message, "renew" message, and key addition.
(WebCore::CDMSessionAVContentKeySession::addParser): Add the parser to the AVContentKeySession.
(WebCore::CDMSessionAVContentKeySession::removeParser): Remove parser from same.
(WebCore::CDMSessionAVContentKeySession::generateKeyReleaseMessage): Retrieve key release message from AVContentKeySession.
(WebCore::CDMSessionAVContentKeySession::didProvideContentKeyRequest): Simple setter.
(WebCore::CDMSessionAVContentKeySession::contentKeySession): Lazily create the AVContentKeySession.

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

(WebCore::CDMSessionAVFoundationObjC::CDMSessionAVFoundationObjC):

  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.h: Copied from Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h.

(WebCore::toCDMSessionAVStreamSession):

  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm: Copied from Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm.

(-[CDMSessionAVStreamSessionObserver initWithParent:]): Moved from CDMSessionMediaSourceAVFObjcObserver.
(-[CDMSessionAVStreamSessionObserver contentProtectionSessionIdentifierChanged:]): Ditto.
(WebCore::CDMSessionAVStreamSession::CDMSessionAVStreamSession): Ditto.
(WebCore::CDMSessionAVStreamSession::~CDMSessionAVStreamSession): Ditto.
(WebCore::CDMSessionAVStreamSession::generateKeyRequest): Ditto.
(WebCore::CDMSessionAVStreamSession::releaseKeys): Ditto.
(WebCore::isEqual): Ditto.
(WebCore::CDMSessionAVStreamSession::update): Ditto.
(WebCore::CDMSessionAVStreamSession::setStreamSession): Ditto.
(WebCore::CDMSessionAVStreamSession::addParser): Ditto.
(WebCore::CDMSessionAVStreamSession::removeParser): Ditto.
(WebCore::CDMSessionAVStreamSession::generateKeyReleaseMessage): Ditto.

  • platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:

(WebCore::CDMSessionMediaSourceAVFObjC::invalidateCDM): Clear the m_cdm.
(WebCore::toCDMSessionMediaSourceAVFObjC):

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

(WebCore::CDMSessionMediaSourceAVFObjC::CDMSessionMediaSourceAVFObjC):
(WebCore::CDMSessionMediaSourceAVFObjC::~CDMSessionMediaSourceAVFObjC): Instruct our CDM to invalidate their references to us.
(WebCore::CDMSessionMediaSourceAVFObjC::addSourceBuffer): Call addParser().
(WebCore::CDMSessionMediaSourceAVFObjC::removeSourceBuffer): Call removeParser().
(WebCore::CDMSessionMediaSourceAVFObjC::layerDidReceiveError): Deleted.
(WebCore::CDMSessionMediaSourceAVFObjC::rendererDidReceiveError): Deleted.

To give us a chance to create a CDMPrivate before we continue decoding media data, "block" further decoding
on the background thread by creating a semaphore and passing it to the main thread, to be triggered when
a CDM is created and attached to this source buffer.

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

(-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]):
(WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::setCDMSession):
(-[WebAVStreamDataParserListener streamDataParserWillProvideContentKeyRequestInitializationData:forTrackID:]): Deleted.

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

Drive-by fix: Only throw an error from keyRequestTimerFired() if the underlying call to
generateKeyRequest() returned an error, rather than just failed to create a message.

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::keyRequestTimerFired):

Drive-by fix: Pass the CDMSessionClient into CDM::createSession() so that it is immediately available
in the CDMSessionPrivate constructor, rather than setting the client immediately after construction.

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::createSession):

  • Modules/encryptedmedia/CDM.h:
  • Modules/encryptedmedia/CDMPrivate.h:
  • Modules/encryptedmedia/CDMPrivateClearKey.cpp:

(WebCore::CDMPrivateClearKey::createSession):

  • Modules/encryptedmedia/CDMPrivateClearKey.h:
  • Modules/encryptedmedia/CDMPrivateMediaPlayer.cpp:

(WebCore::CDMPrivateMediaPlayer::createSession):

  • Modules/encryptedmedia/CDMPrivateMediaPlayer.h:
  • Modules/encryptedmedia/CDMSessionClearKey.cpp:

(WebCore::CDMSessionClearKey::CDMSessionClearKey):

  • Modules/encryptedmedia/CDMSessionClearKey.h:
  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::MediaKeySession):

  • platform/graphics/CDMSession.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::createSession):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::createSession):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createSession):

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::cdmSession):

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setCDMSession):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::keyNeeded): Deleted.

  • testing/MockCDM.cpp:

(WebCore::MockCDM::createSession):
(WebCore::MockCDMSession::MockCDMSession):

  • testing/MockCDM.h:

Add new files to the project:

  • WebCore.xcodeproj/project.pbxproj:
2:38 PM Changeset in webkit [193478] by matthew_hanson@apple.com
  • 18 edits
    7 adds in branches/safari-601-branch

Merge r191452. rdar://problem/23732400

2:38 PM Changeset in webkit [193477] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601-branch/Source/JavaScriptCore

Merge r192190. rdar://problem/23732407

2:38 PM Changeset in webkit [193476] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebKit2

Merge r191409. rdar://problem/23732400

2:38 PM Changeset in webkit [193475] by matthew_hanson@apple.com
  • 17 edits in branches/safari-601-branch/Source/WebKit2

Merge r191309. rdar://problem/23732400

2:38 PM Changeset in webkit [193474] by matthew_hanson@apple.com
  • 5 edits
    3 adds in branches/safari-601-branch

Merge r191072. rdar://problem/23732400

2:38 PM Changeset in webkit [193473] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-601-branch

Merge r190595. rdar://problem/23732402

2:37 PM Changeset in webkit [193472] by matthew_hanson@apple.com
  • 8 edits
    2 adds in branches/safari-601-branch

Merge r190446. rdar://problem/23732367

2:28 PM Changeset in webkit [193471] by mark.lam@apple.com
  • 14 edits
    7 adds in trunk/Source/JavaScriptCore

Snippefy bitwise operators for the baseline JIT.
https://bugs.webkit.org/show_bug.cgi?id=151680

Reviewed by Geoffrey Garen.

This patch has passed the JSC tests on x86 and x86_64. It has also passed the
layout tests on x86_64.

With the DFG enabled, perf is neutral on x86_64 and x86.
With the DFG disabled on x86_64, some AsmBench tests are showing progressions e.g.

gcc-loops.cpp 1.0269x faster
stepanov_container.cpp 1.0180x faster

With the DFG disabled on x86, perf is neutral.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::moveValueRegs):
(JSC::AssemblyHelpers::branchIfNotInt32):

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

(JSC::JIT::emitBitwiseBinaryOpFastPath):

  • Template for the bitwise operations.

(JSC::JIT::emit_op_bitand):
(JSC::JIT::emit_op_bitor):
(JSC::JIT::emit_op_bitxor):

  • Specializes emitBitwiseBinaryOpFastPath() with the respective snippet generators.

(JSC::JIT::emitSlow_op_bitand):
(JSC::JIT::emitSlow_op_bitor):
(JSC::JIT::emitSlow_op_bitxor):

  • Implement respective slow paths.
  • jit/JITArithmetic32_64.cpp:

(JSC::JIT::emit_op_bitand): Deleted.
(JSC::JIT::emitSlow_op_bitand): Deleted.
(JSC::JIT::emit_op_bitor): Deleted.
(JSC::JIT::emitSlow_op_bitor): Deleted.
(JSC::JIT::emit_op_bitxor): Deleted.
(JSC::JIT::emitSlow_op_bitxor): Deleted.

  • Now unified with the 64-bit version using snippets.
  • jit/JITBitAndGenerator.cpp: Added.

(JSC::JITBitAndGenerator::generateFastPath):

  • jit/JITBitAndGenerator.h: Added.

(JSC::JITBitAndGenerator::JITBitAndGenerator):

  • jit/JITBitOrGenerator.cpp: Added.

(JSC::JITBitOrGenerator::generateFastPath):

  • jit/JITBitOrGenerator.h: Added.

(JSC::JITBitOrGenerator::JITBitOrGenerator):

  • jit/JITBitXorGenerator.cpp: Added.

(JSC::JITBitXorGenerator::generateFastPath):

  • jit/JITBitXorGenerator.h: Added.

(JSC::JITBitXorGenerator::JITBitXorGenerator):

  • jit/JITBitwiseBinaryOpGenerator.h: Added.

(JSC::JITBitwiseBinaryOpGenerator::JITBitwiseBinaryOpGenerator):
(JSC::JITBitwiseBinaryOpGenerator::didEmitFastPath):
(JSC::JITBitwiseBinaryOpGenerator::endJumpList):
(JSC::JITBitwiseBinaryOpGenerator::slowPathJumpList):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_bitxor): Deleted.
(JSC::JIT::emit_op_bitor): Deleted.
(JSC::JIT::emitSlow_op_bitxor): Deleted.
(JSC::JIT::emitSlow_op_bitor): Deleted.

  • jit/SnippetOperand.h:

(JSC::SnippetOperand::SnippetOperand):

  • tests/stress/op_bitand.js:
  • tests/stress/op_bitor.js:
  • tests/stress/op_bitxor.js:
  • Fix a test value typo: it's supposed to be 0x7fffffff, not 0x7ffffff.
2:25 PM Changeset in webkit [193470] by fpizlo@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Having a bad time has a really awful time when it runs at the same time as the JIT
https://bugs.webkit.org/show_bug.cgi?id=151882
rdar://problem/23547038

Reviewed by Geoffrey Garen.

The DFG's use of watchpoints for havingABadTime goes back a long time. We introduced this feature
when we first introduced watchpoints. That left it open to a lot of bitrot. On top of that, this
code doesn't get tested much because having a bad time is not something that is really supposed to
happen.

Well, now I've got reports that it does happen - or at least, we know that it is because of
crashes in an assertion that could only be triggered if a bad time was had. In the meantime, we
added two new features without adequately testing havingABadTime: concurrent JIT and FTL.
Concurrency means that we have to worry about the havingABadTime watchpoint triggering during
compilation. FTL means that we have new code and new optimizations that needs to deal with this
feature correctly.

The bug can arise via race condition or just goofy profiling. As in the newly added test, we could
first profile an allocation thinking that it will allocate sane arrays. Then we might have a bad
time, and then compile that function with the FTL. The ByteCodeParser will represent the
allocation with a NewArray node that has a sane indexingType(). But when we go to lower the Node,
we observe that the Structure* that the JSGlobalObject tells us to use has a different indexing
type. This is a feature of havingABadTime that the DFG knew about, but the FTL didn't. The FTL
didn't know about it because we didn't have adequate tests, and this code rarely gets triggered in
the wild. So, the FTL had a silly assertion that the indexing types match. They absolutely don't
have to match.

There is another bug, a race condition, that remains even if we remove the bad assertion. We set
the havingABadTime watchpoint late in compilation, and we do it based on whether the watchpoint is
still OK. This means that we could parse a function before we have a bad time and then do
optimizations (for example in AbstractInterpreter) like proving that the structure set associated
with the value returned by the NewArray is the one with a sane indexing type. Then, after those
optimizations have already been done, we will go to set the watchpoint. But just as we are doing
this, we could haveABadTime on the main thread. Currently this sort of almost works because
having a bad time requires doing a GC, and we can't GC until the watchpoint collection phase. But
that feels too fragile. So, this phase moves the setting of the watchpoint to the FixupPhase. This
is consistent with our long-term goal of removing the WatchpointCollectionPhase. Moving this to
FixupPhase means that we set the watchpoint before doing any optimizations. So, if having a bad
time happens before the FixupPhase then all optimizations will agree that we're having a bad time
and so everything is fine; if we have a bad time after FixupPhase then we will cancel the
compilation anyway.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::watchHavingABadTime):
(JSC::DFG::FixupPhase::createToString):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasIndexingType):
(JSC::DFG::Node::indexingType):

  • dfg/DFGWatchpointCollectionPhase.cpp:

(JSC::DFG::WatchpointCollectionPhase::handle):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileNewArray):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewArrayBuffer):

  • tests/stress/ftl-has-a-bad-time.js: Added.
2:15 PM Changeset in webkit [193469] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

<rdar://problem/23764741> REGRESSION: Recording does not show the progress till the recording is stopped.

Fix a merge issue where variable names did not match and was causing an exception.

  • UserInterface/Models/ScriptTimelineRecord.js:
  • UserInterface/Views/TimelineRecordTreeElement.js:

(WebInspector.TimelineRecordTreeElement):

1:57 PM Changeset in webkit [193468] by Antti Koivisto
  • 8 edits
    2 moves in trunk/Source/WebKit2

Rename WebResourceLoadScheduler to WebLoaderStrategy
https://bugs.webkit.org/show_bug.cgi?id=151854

Reviewed by Anders Carlsson.

It implements WebCore::LoaderStrategy and doesn't do any scheduling.

  • CMakeLists.txt:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):

  • WebProcess/Network/WebLoaderStrategy.cpp: Copied from Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp.

(WebKit::WebLoaderStrategy::WebLoaderStrategy):
(WebKit::WebLoaderStrategy::~WebLoaderStrategy):
(WebKit::WebLoaderStrategy::loadResource):
(WebKit::WebLoaderStrategy::schedulePluginStreamLoad):
(WebKit::maximumBufferingTime):
(WebKit::WebLoaderStrategy::scheduleLoad):
(WebKit::WebLoaderStrategy::scheduleInternallyFailedLoad):
(WebKit::WebLoaderStrategy::internallyFailedLoadTimerFired):
(WebKit::WebLoaderStrategy::startLocalLoad):
(WebKit::WebLoaderStrategy::remove):
(WebKit::WebLoaderStrategy::setDefersLoading):
(WebKit::WebLoaderStrategy::crossOriginRedirectReceived):
(WebKit::WebLoaderStrategy::servePendingRequests):
(WebKit::WebLoaderStrategy::suspendPendingRequests):
(WebKit::WebLoaderStrategy::resumePendingRequests):
(WebKit::WebLoaderStrategy::networkProcessCrashed):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::createPingHandle):
(WebKit::WebResourceLoadScheduler::WebResourceLoadScheduler): Deleted.
(WebKit::WebResourceLoadScheduler::~WebResourceLoadScheduler): Deleted.
(WebKit::WebResourceLoadScheduler::loadResource): Deleted.
(WebKit::WebResourceLoadScheduler::schedulePluginStreamLoad): Deleted.
(WebKit::WebResourceLoadScheduler::scheduleLoad): Deleted.
(WebKit::WebResourceLoadScheduler::scheduleInternallyFailedLoad): Deleted.
(WebKit::WebResourceLoadScheduler::internallyFailedLoadTimerFired): Deleted.
(WebKit::WebResourceLoadScheduler::startLocalLoad): Deleted.
(WebKit::WebResourceLoadScheduler::remove): Deleted.
(WebKit::WebResourceLoadScheduler::setDefersLoading): Deleted.
(WebKit::WebResourceLoadScheduler::crossOriginRedirectReceived): Deleted.
(WebKit::WebResourceLoadScheduler::servePendingRequests): Deleted.
(WebKit::WebResourceLoadScheduler::suspendPendingRequests): Deleted.
(WebKit::WebResourceLoadScheduler::resumePendingRequests): Deleted.
(WebKit::WebResourceLoadScheduler::networkProcessCrashed): Deleted.
(WebKit::WebResourceLoadScheduler::loadResourceSynchronously): Deleted.
(WebKit::WebResourceLoadScheduler::createPingHandle): Deleted.

  • WebProcess/Network/WebLoaderStrategy.h: Copied from Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.h.

(WebKit::WebLoaderStrategy::webResourceLoaderForIdentifier):
(WebKit::WebResourceLoadScheduler::webResourceLoaderForIdentifier): Deleted.

  • WebProcess/Network/WebResourceLoadScheduler.cpp: Removed.
  • WebProcess/Network/WebResourceLoadScheduler.h: Removed.
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::Stream::start):
(WebKit::PluginView::Stream::cancel):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::createLoaderStrategy):
(WebKit::WebPlatformStrategies::createPasteboardStrategy):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::networkProcessConnectionClosed):
(WebKit::WebProcess::webLoaderStrategy):
(WebKit::WebProcess::webResourceLoadScheduler): Deleted.

  • WebProcess/WebProcess.h:
1:01 PM Changeset in webkit [193467] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/JavaScriptCore

Merge r192391. rdar://problem/23221163

1:01 PM Changeset in webkit [193466] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/JavaScriptCore

Merge r191397. rdar://problem/23221163

1:01 PM Changeset in webkit [193465] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/JavaScriptCore

Merge r188976. rdar://problem/23221163

1:01 PM Changeset in webkit [193464] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/JavaScriptCore

Merge r188656. rdar://problem/23221163

1:01 PM Changeset in webkit [193463] by timothy@apple.com
  • 5 edits in branches/safari-601-branch

Merge r187897. rdar://problem/23221163

12:54 PM Changeset in webkit [193462] by timothy@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merge r192391. rdar://problem/23581597

12:54 PM Changeset in webkit [193461] by timothy@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merge r191397. rdar://problem/23581597

12:54 PM Changeset in webkit [193460] by timothy@apple.com
  • 10 edits
    2 adds in branches/safari-601.1.46-branch

Merge r191355. rdar://problem/23581597

12:54 PM Changeset in webkit [193459] by timothy@apple.com
  • 7 edits in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merge r190542. rdar://problem/23581597

12:54 PM Changeset in webkit [193458] by timothy@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merge r189415. rdar://problem/23581597

12:54 PM Changeset in webkit [193457] by timothy@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merge r188976. rdar://problem/23581597

12:54 PM Changeset in webkit [193456] by timothy@apple.com
  • 22 edits in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merge r188965. rdar://problem/23581597

12:53 PM Changeset in webkit [193455] by timothy@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merge r188897. rdar://problem/23581597

12:53 PM Changeset in webkit [193454] by timothy@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merge r188656. rdar://problem/23581597

12:53 PM Changeset in webkit [193453] by timothy@apple.com
  • 7 edits in branches/safari-601.1.46-branch

Merge r188403. rdar://problem/23581597

12:53 PM Changeset in webkit [193452] by timothy@apple.com
  • 5 edits in branches/safari-601.1.46-branch

Merge r187897. rdar://problem/23581597

12:53 PM Changeset in webkit [193451] by timothy@apple.com
  • 4 edits
    3 adds in branches/safari-601.1.46-branch

Merge r192592. rdar://problem/23581597

12:53 PM Changeset in webkit [193450] by timothy@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r192585. rdar://problem/23581597

12:53 PM Changeset in webkit [193449] by timothy@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r188222. rdar://problem/23581597

12:53 PM Changeset in webkit [193448] by timothy@apple.com
  • 4 edits
    2 adds
    2 deletes in branches/safari-601.1.46-branch

Merge r186891. rdar://problem/23581597

12:53 PM Changeset in webkit [193447] by timothy@apple.com
  • 11 edits in branches/safari-601.1.46-branch/Source

Merge r191967. rdar://problem/23581597

12:52 PM Changeset in webkit [193446] by timothy@apple.com
  • 10 edits in branches/safari-601.1.46-branch/Source

Merge r191732. rdar://problem/23581597

12:52 PM Changeset in webkit [193445] by timothy@apple.com
  • 14 edits in branches/safari-601.1.46-branch/Source

Merge r191651. rdar://problem/23581597

12:52 PM Changeset in webkit [193444] by timothy@apple.com
  • 15 edits
    4 adds in branches/safari-601.1.46-branch

Merge r189104. rdar://problem/23581597

12:52 PM Changeset in webkit [193443] by timothy@apple.com
  • 17 edits
    11 adds in branches/safari-601.1.46-branch

Merge r189002. rdar://problem/23581597

12:52 PM Changeset in webkit [193442] by timothy@apple.com
  • 17 edits
    4 adds in branches/safari-601.1.46-branch

Merge r188631. rdar://problem/23581597

12:51 PM Changeset in webkit [193441] by timothy@apple.com
  • 25 edits
    6 adds in branches/safari-601.1.46-branch

Merge r187496. rdar://problem/23581597

12:51 PM Changeset in webkit [193440] by timothy@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r188227. rdar://problem/23581597

12:51 PM Changeset in webkit [193439] by timothy@apple.com
  • 17 edits
    2 adds in branches/safari-601.1.46-branch

Merge r187249. rdar://problem/23581597

12:51 PM Changeset in webkit [193438] by timothy@apple.com
  • 9 edits
    2 adds in branches/safari-601.1.46-branch

Merge r187211. rdar://problem/23581597

12:32 PM Changeset in webkit [193437] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Use Div and ChillDiv in FTL(B3)Output
https://bugs.webkit.org/show_bug.cgi?id=151844

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

I copied part of the code of compileArithDiv()
to create a new function FTLOutput::childDiv().

With childDiv() being a concept of FTLOutput,
FTLB3Output was updated accordingly.

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::div):
(JSC::FTL::Output::chillDiv):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileArithDiv):

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::chillDiv):

  • ftl/FTLOutput.h:
12:31 PM Changeset in webkit [193436] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Extend the strength reduction of B3's BitAnd with booleans
https://bugs.webkit.org/show_bug.cgi?id=151852

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-12-04
Reviewed by Saam Barati.

1) Masking a boolean with any pattern that has the lsb set

remains a boolean.

2) ReduceStrength on that particular pattern of BitAnd.

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

(JSC::B3::Value::returnsBool):

  • b3/testb3.cpp:

(JSC::B3::testBitAndWithMaskReturnsBooleans):
(JSC::B3::run):

12:29 PM Changeset in webkit [193435] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Add doubleRem() to FTLB3Output
https://bugs.webkit.org/show_bug.cgi?id=151851

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

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::doubleRem):

12:27 PM Changeset in webkit [193434] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Add signExt() to FTLB3Output
https://bugs.webkit.org/show_bug.cgi?id=151853

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

Rename signExt() to signExt32To64(). This is just to separate
it explicitly from the remaining signExt() used inside FTLOutput.

Then use the SExt32 for implementing that in B3.

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::signExt32To64):
(JSC::FTL::Output::signExt): Deleted.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileInt52Rep):
(JSC::FTL::DFG::LowerDFGToLLVM::compileGetDirectPname):
(JSC::FTL::DFG::LowerDFGToLLVM::strictInt52ToInt32):
(JSC::FTL::DFG::LowerDFGToLLVM::strictInt52ToJSValue):
(JSC::FTL::DFG::LowerDFGToLLVM::jsValueToStrictInt52):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::signExt32To64):
(JSC::FTL::Output::signExt):

12:15 PM Changeset in webkit [193433] by beidson@apple.com
  • 4 edits in trunk

Modern IDB: storage/indexeddb/cursor-update.html fails.
https://bugs.webkit.org/show_bug.cgi?id=151879

Reviewed by Oliver Hunt.

Source/WebCore:

No new tests (At least one failing test now passes).

  • Modules/indexeddb/client/IDBRequestImpl.cpp:

(WebCore::IDBClient::IDBRequest::IDBRequest):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
11:53 AM Changeset in webkit [193432] by BJ Burg
  • 15 edits in trunk/Source/WebInspectorUI

Web Inspector: support runtime registration of tab type associations
https://bugs.webkit.org/show_bug.cgi?id=151594

Reviewed by Joseph Pecoraro.

We want to add special tabs that only exist in engineering builds
for debugging purposes. Though the relevant models and views can be
put in the Debug/ directory to exclude them from production builds,
there's no way to register tabs conditionally at runtime; tabs are
hardcoded.

This patch makes it possible to register new tab types at runtime.
First, WebInspector keeps a map of known, registered tab classes.
Details that were hardcoded before---whether to show in New Tab,
whether a tab can be instantiated given the active domains, UI text,
etc.---are now static methods on the base TabContentView or overidden
in its subclasses. Lastly, a public method allows code in Bootstrap.js
to register tabs at runtime. Doing so sends a notification so the
NewTabContentView can show the newly available tab item.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
(WebInspector.isTabTypeAllowed):
(WebInspector.knownTabClasses): Added, used by NewTabContentView.
(WebInspector._createTabContentViewForType): Renamed from _tabContentViewForType.
(WebInspector._rememberOpenTabs):
(WebInspector._updateNewTabButtonState):
(WebInspector._tryToRestorePendingTabs): Added.

Whenever a new tab is registered, try to restore pending tabs, since
an extra tab won't be added initially when production tabs are added.
But, it could have been saved in the Setting for opened tabs.

(WebInspector.showNewTabTab):
(WebInspector.isNewTabWithTypeAllowed):
(WebInspector.createNewTabWithType):
(WebInspector._tabContentViewForType): Deleted.

  • UserInterface/Base/Object.js:
  • UserInterface/Views/ConsoleTabContentView.js:

(WebInspector.ConsoleTabContentView):
(WebInspector.ConsoleTabContentView.tabInfo): Added.

  • UserInterface/Views/DebuggerTabContentView.js:

(WebInspector.DebuggerTabContentView):
(WebInspector.DebuggerTabContentView.tabInfo): Added.

  • UserInterface/Views/ElementsTabContentView.js:

(WebInspector.ElementsTabContentView):
(WebInspector.ElementsTabContentView.tabInfo): Added.
(WebInspector.ElementsTabContentView.isTabAllowed): Added.

  • UserInterface/Views/NetworkTabContentView.js:

(WebInspector.NetworkTabContentView):
(WebInspector.NetworkTabContentView.tabInfo): Added.
(WebInspector.NetworkTabContentView.isTabAllowed): Added.

  • UserInterface/Views/NewTabContentView.js:

Keep a list of shown tab items, so we don't have to query the DOM
to update enabled/disabled state. Put tree construction inside a
layout() override and dirty the view whenever known tab types change.

(WebInspector.NewTabContentView):
(WebInspector.NewTabContentView.tabInfo): Added.
(WebInspector.NewTabContentView.isEphemeral): Added.
(WebInspector.NewTabContentView.shouldSaveTab): Added.
(WebInspector.NewTabContentView.prototype.layout): Added.
(WebInspector.NewTabContentView.prototype._updateShownTabs): Added.
(WebInspector.NewTabContentView.prototype._allowableTabTypes):
(WebInspector.NewTabContentView.prototype._updateTabItems):
(WebInspector.NewTabContentView.prototype.get tabItemElements): Deleted.

  • UserInterface/Views/ResourcesTabContentView.js:

(WebInspector.ResourcesTabContentView):
(WebInspector.ResourcesTabContentView.tabInfo): Added.

  • UserInterface/Views/SearchTabContentView.js:

(WebInspector.SearchTabContentView):
(WebInspector.SearchTabContentView.tabInfo): Added.
(WebInspector.SearchTabContentView.isEphemeral): Added.

  • UserInterface/Views/SettingsTabContentView.js:

(WebInspector.SettingsTabContentView.isTabAllowed): Added.
(WebInspector.SettingsTabContentView.shouldSaveTab): Added.

  • UserInterface/Views/StorageTabContentView.js:

(WebInspector.StorageTabContentView):
(WebInspector.StorageTabContentView.tabInfo): Added.
(WebInspector.StorageTabContentView.isTabAllowed): Added.

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser.showTabForContentView):

Add a workaround for <https://webkit.org/b/151876>. This bug is
revealed by the changes to NewTabContentView in this patch.

  • UserInterface/Views/TabContentView.js:

(WebInspector.TabContentView.isTabAllowed): Added.
(WebInspector.TabContentView.isEphemeral): Added.
(WebInspector.TabContentView.shouldSaveTab): Added.

  • UserInterface/Views/TimelineTabContentView.js:

(WebInspector.TimelineTabContentView):
(WebInspector.TimelineTabContentView.tabInfo): Added.
(WebInspector.TimelineTabContentView.isTabAllowed): Added.

11:41 AM Changeset in webkit [193431] by beidson@apple.com
  • 6 edits
    2 adds in trunk

Modern IDB: storage/indexeddb/version-change-exclusive.html fails
https://bugs.webkit.org/show_bug.cgi?id=151870

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/indexeddb/modern/double-open.html

storage/indexeddb/version-change-exclusive.html

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::openDatabaseConnection): Delay handling open operations

while the first is still in progress.

(WebCore::IDBServer::UniqueIDBDatabase::didOpenBackingStore):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/modern/double-open-expected.txt: Added.
  • storage/indexeddb/modern/double-open.html: Added.
  • storage/indexeddb/version-change-exclusive-expected.txt:
11:23 AM Changeset in webkit [193430] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Added redirects for old webkit.org archive.

  • .htaccess:
11:20 AM Changeset in webkit [193429] by Jon Davis
  • 1 edit
    9 deletes in trunk/Websites/webkit.org

Removing empty directories from the old site.

Reviewed by Timothy Hatcher.

  • blog: Removed.
  • blog/wp-admin: Removed.
  • blog/wp-admin/css: Removed.
  • blog/wp-admin/css/colors: Removed.
  • blog/wp-admin/css/colors/blue: Removed.
  • blog/wp-admin/css/colors/coffee: Removed.
  • blog/wp-admin/css/colors/ectoplasm: Removed.
  • blog/wp-admin/css/colors/light: Removed.
  • blog/wp-admin/css/colors/midnight: Removed.
  • blog/wp-admin/css/colors/ocean: Removed.
  • blog/wp-admin/css/colors/sunrise: Removed.
  • blog/wp-admin/images: Removed.
  • blog/wp-admin/includes: Removed.
  • blog/wp-admin/js: Removed.
  • blog/wp-admin/maint: Removed.
  • blog/wp-admin/network: Removed.
  • blog/wp-admin/user: Removed.
  • blog/wp-content: Removed.
  • blog/wp-content/plugins: Removed.
  • blog/wp-content/plugins/akismet: Removed.
  • blog/wp-content/themes: Removed.
  • blog/wp-content/themes/classic: Removed.
  • blog/wp-content/themes/default: Removed.
  • blog/wp-content/themes/default/images: Removed.
  • blog/wp-content/themes/webkit: Removed.
  • blog/wp-content/uploads: Removed.
  • blog/wp-content/uploads/2007: Removed.
  • blog/wp-content/uploads/2007/06: Removed.
  • blog/wp-includes: Removed.
  • blog/wp-includes/ID3: Removed.
  • blog/wp-includes/SimplePie: Removed.
  • blog/wp-includes/SimplePie/Cache: Removed.
  • blog/wp-includes/SimplePie/Content: Removed.
  • blog/wp-includes/SimplePie/Content/Type: Removed.
  • blog/wp-includes/SimplePie/Decode: Removed.
  • blog/wp-includes/SimplePie/Decode/HTML: Removed.
  • blog/wp-includes/SimplePie/HTTP: Removed.
  • blog/wp-includes/SimplePie/Net: Removed.
  • blog/wp-includes/SimplePie/Parse: Removed.
  • blog/wp-includes/SimplePie/XML: Removed.
  • blog/wp-includes/SimplePie/XML/Declaration: Removed.
  • blog/wp-includes/Text: Removed.
  • blog/wp-includes/Text/Diff: Removed.
  • blog/wp-includes/Text/Diff/Engine: Removed.
  • blog/wp-includes/Text/Diff/Renderer: Removed.
  • blog/wp-includes/certificates: Removed.
  • blog/wp-includes/css: Removed.
  • blog/wp-includes/fonts: Removed.
  • blog/wp-includes/images: Removed.
  • blog/wp-includes/images/crystal: Removed.
  • blog/wp-includes/images/media: Removed.
  • blog/wp-includes/images/smilies: Removed.
  • blog/wp-includes/images/wlw: Removed.
  • blog/wp-includes/js: Removed.
  • blog/wp-includes/js/crop: Removed.
  • blog/wp-includes/js/imgareaselect: Removed.
  • blog/wp-includes/js/jcrop: Removed.
  • blog/wp-includes/js/jquery: Removed.
  • blog/wp-includes/js/jquery/ui: Removed.
  • blog/wp-includes/js/mediaelement: Removed.
  • blog/wp-includes/js/plupload: Removed.
  • blog/wp-includes/js/scriptaculous: Removed.
  • blog/wp-includes/js/swfupload: Removed.
  • blog/wp-includes/js/swfupload/plugins: Removed.
  • blog/wp-includes/js/thickbox: Removed.
  • blog/wp-includes/js/tinymce: Removed.
  • blog/wp-includes/js/tinymce/langs: Removed.
  • blog/wp-includes/js/tinymce/plugins: Removed.
  • blog/wp-includes/js/tinymce/plugins/charmap: Removed.
  • blog/wp-includes/js/tinymce/plugins/colorpicker: Removed.
  • blog/wp-includes/js/tinymce/plugins/compat3x: Removed.
  • blog/wp-includes/js/tinymce/plugins/compat3x/css: Removed.
  • blog/wp-includes/js/tinymce/plugins/directionality: Removed.
  • blog/wp-includes/js/tinymce/plugins/fullscreen: Removed.
  • blog/wp-includes/js/tinymce/plugins/hr: Removed.
  • blog/wp-includes/js/tinymce/plugins/image: Removed.
  • blog/wp-includes/js/tinymce/plugins/inlinepopups: Removed.
  • blog/wp-includes/js/tinymce/plugins/inlinepopups/skins: Removed.
  • blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2: Removed.
  • blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img: Removed.
  • blog/wp-includes/js/tinymce/plugins/lists: Removed.
  • blog/wp-includes/js/tinymce/plugins/media: Removed.
  • blog/wp-includes/js/tinymce/plugins/media/css: Removed.
  • blog/wp-includes/js/tinymce/plugins/media/js: Removed.
  • blog/wp-includes/js/tinymce/plugins/paste: Removed.
  • blog/wp-includes/js/tinymce/plugins/paste/js: Removed.
  • blog/wp-includes/js/tinymce/plugins/spellchecker: Removed.
  • blog/wp-includes/js/tinymce/plugins/spellchecker/classes: Removed.
  • blog/wp-includes/js/tinymce/plugins/spellchecker/classes/utils: Removed.
  • blog/wp-includes/js/tinymce/plugins/spellchecker/css: Removed.
  • blog/wp-includes/js/tinymce/plugins/spellchecker/img: Removed.
  • blog/wp-includes/js/tinymce/plugins/spellchecker/includes: Removed.
  • blog/wp-includes/js/tinymce/plugins/tabfocus: Removed.
  • blog/wp-includes/js/tinymce/plugins/textcolor: Removed.
  • blog/wp-includes/js/tinymce/plugins/wordpress: Removed.
  • blog/wp-includes/js/tinymce/plugins/wordpress/css: Removed.
  • blog/wp-includes/js/tinymce/plugins/wordpress/img: Removed.
  • blog/wp-includes/js/tinymce/plugins/wpautoresize: Removed.
  • blog/wp-includes/js/tinymce/plugins/wpdialogs: Removed.
  • blog/wp-includes/js/tinymce/plugins/wpdialogs/js: Removed.
  • blog/wp-includes/js/tinymce/plugins/wpeditimage: Removed.
  • blog/wp-includes/js/tinymce/plugins/wpeditimage/css: Removed.
  • blog/wp-includes/js/tinymce/plugins/wpeditimage/img: Removed.
  • blog/wp-includes/js/tinymce/plugins/wpeditimage/js: Removed.
  • blog/wp-includes/js/tinymce/plugins/wpemoji: Removed.
  • blog/wp-includes/js/tinymce/plugins/wpfullscreen: Removed.
  • blog/wp-includes/js/tinymce/plugins/wpfullscreen/css: Removed.
  • blog/wp-includes/js/tinymce/plugins/wpgallery: Removed.
  • blog/wp-includes/js/tinymce/plugins/wpgallery/img: Removed.
  • blog/wp-includes/js/tinymce/plugins/wplink: Removed.
  • blog/wp-includes/js/tinymce/plugins/wplink/css: Removed.
  • blog/wp-includes/js/tinymce/plugins/wplink/img: Removed.
  • blog/wp-includes/js/tinymce/plugins/wplink/js: Removed.
  • blog/wp-includes/js/tinymce/plugins/wpview: Removed.
  • blog/wp-includes/js/tinymce/skins: Removed.
  • blog/wp-includes/js/tinymce/skins/lightgray: Removed.
  • blog/wp-includes/js/tinymce/skins/lightgray/fonts: Removed.
  • blog/wp-includes/js/tinymce/skins/lightgray/img: Removed.
  • blog/wp-includes/js/tinymce/skins/wordpress: Removed.
  • blog/wp-includes/js/tinymce/skins/wordpress/images: Removed.
  • blog/wp-includes/js/tinymce/themes: Removed.
  • blog/wp-includes/js/tinymce/themes/advanced: Removed.
  • blog/wp-includes/js/tinymce/themes/advanced/img: Removed.
  • blog/wp-includes/js/tinymce/themes/advanced/js: Removed.
  • blog/wp-includes/js/tinymce/themes/advanced/skins: Removed.
  • blog/wp-includes/js/tinymce/themes/advanced/skins/default: Removed.
  • blog/wp-includes/js/tinymce/themes/advanced/skins/default/img: Removed.
  • blog/wp-includes/js/tinymce/themes/advanced/skins/highcontrast: Removed.
  • blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7: Removed.
  • blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/img: Removed.
  • blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme: Removed.
  • blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img: Removed.
  • blog/wp-includes/js/tinymce/themes/modern: Removed.
  • blog/wp-includes/js/tinymce/utils: Removed.
  • blog/wp-includes/pomo: Removed.
  • blog/wp-includes/theme-compat: Removed.
  • building: Removed.
  • coding: Removed.
  • coding/images: Removed.
  • css: Removed.
  • images: Removed.
  • misc: Removed.
  • misc/DatabaseExample.html: Removed.
  • misc/DatabaseTester.html: Removed.
  • misc/WebKitDetect.html: Removed.
  • misc/WebKitDetect.js: Removed.
  • misc/drosera: Removed.
  • misc/drosera/demo.js: Removed.
  • misc/drosera/drosera.png: Removed.
  • misc/drosera/index.html: Removed.
  • misc/gradient-input.html: Removed.
  • misc/morph.html: Removed.
  • misc/related-target-and-shadow-dom.svg: Removed.
  • projects: Removed.
  • projects/accessibility: Removed.
  • projects/cleanup: Removed.
  • projects/compat: Removed.
  • projects/css: Removed.
  • projects/documentation: Removed.
  • projects/dom: Removed.
  • projects/editing: Removed.
  • projects/forms: Removed.
  • projects/html: Removed.
  • projects/javascript: Removed.
  • projects/layout: Removed.
  • projects/mathml: Removed.
  • projects/performance: Removed.
  • projects/plugins: Removed.
  • projects/portability: Removed.
  • projects/printing: Removed.
  • projects/svg: Removed.
  • projects/webkit: Removed.
  • projects/xml: Removed.
  • projects/xslt: Removed.
  • quality: Removed.
  • security: Removed.
11:07 AM Changeset in webkit [193428] by beidson@apple.com
  • 74 edits
    19 copies
    35 adds in trunk

Modern IDB: storage/indexeddb/exceptions.html fails.
https://bugs.webkit.org/show_bug.cgi?id=151732

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes).

  • Lots of customized exception messages for IDB code to match the text expectations.
  • Updates to the test expectations where we can't/won't match them exactly.
  • And a couple of little required behavior changes exposed by the test
  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBDatabase.h:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/indexeddb/IDBDatabaseException.cpp:

(WebCore::IDBDatabaseException::initializeDescription):

  • Modules/indexeddb/IDBFactory.h:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/IDBIndex.h:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/indexeddb/IDBRequest.h:
  • Modules/indexeddb/IDBRequest.idl:
  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/IDBTransaction.idl:
  • Modules/indexeddb/client/IDBCursorImpl.cpp:

(WebCore::IDBClient::IDBCursor::update):
(WebCore::IDBClient::IDBCursor::advance):
(WebCore::IDBClient::IDBCursor::continueFunction):
(WebCore::IDBClient::IDBCursor::deleteFunction):

  • Modules/indexeddb/client/IDBCursorImpl.h:
  • Modules/indexeddb/client/IDBDatabaseImpl.cpp:

(WebCore::IDBClient::IDBDatabase::createObjectStore):
(WebCore::IDBClient::IDBDatabase::transaction):
(WebCore::IDBClient::IDBDatabase::deleteObjectStore):

  • Modules/indexeddb/client/IDBDatabaseImpl.h:
  • Modules/indexeddb/client/IDBFactoryImpl.cpp:

(WebCore::IDBClient::IDBFactory::cmp):

  • Modules/indexeddb/client/IDBFactoryImpl.h:
  • Modules/indexeddb/client/IDBIndexImpl.cpp:

(WebCore::IDBClient::IDBIndex::openCursor):
(WebCore::IDBClient::IDBIndex::count):
(WebCore::IDBClient::IDBIndex::doCount):
(WebCore::IDBClient::IDBIndex::openKeyCursor):
(WebCore::IDBClient::IDBIndex::get):
(WebCore::IDBClient::IDBIndex::doGet):
(WebCore::IDBClient::IDBIndex::getKey):
(WebCore::IDBClient::IDBIndex::doGetKey):

  • Modules/indexeddb/client/IDBIndexImpl.h:
  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::openCursor):
(WebCore::IDBClient::IDBObjectStore::get):
(WebCore::IDBClient::IDBObjectStore::add):
(WebCore::IDBClient::IDBObjectStore::put):
(WebCore::IDBClient::IDBObjectStore::putForCursorUpdate):
(WebCore::IDBClient::IDBObjectStore::putOrAdd):
(WebCore::IDBClient::IDBObjectStore::deleteFunction):
(WebCore::IDBClient::IDBObjectStore::clear):
(WebCore::IDBClient::IDBObjectStore::createIndex):
(WebCore::IDBClient::IDBObjectStore::index):
(WebCore::IDBClient::IDBObjectStore::deleteIndex):
(WebCore::IDBClient::IDBObjectStore::count):
(WebCore::IDBClient::IDBObjectStore::doCount):

  • Modules/indexeddb/client/IDBObjectStoreImpl.h:
  • Modules/indexeddb/client/IDBRequestImpl.cpp:

(WebCore::IDBClient::IDBRequest::result):
(WebCore::IDBClient::IDBRequest::error):

  • Modules/indexeddb/client/IDBRequestImpl.h:
  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::objectStore):
(WebCore::IDBClient::IDBTransaction::abortDueToFailedRequest):
(WebCore::IDBClient::IDBTransaction::abort):

  • Modules/indexeddb/client/IDBTransactionImpl.h:
  • Modules/indexeddb/legacy/LegacyCursor.cpp:

(WebCore::LegacyCursor::update):
(WebCore::LegacyCursor::continueFunction):
(WebCore::LegacyCursor::deleteFunction):

  • Modules/indexeddb/legacy/LegacyCursor.h:
  • Modules/indexeddb/legacy/LegacyDatabase.cpp:

(WebCore::LegacyDatabase::createObjectStore):
(WebCore::LegacyDatabase::deleteObjectStore):
(WebCore::LegacyDatabase::transaction):
(WebCore::LegacyDatabase::forceClose):

  • Modules/indexeddb/legacy/LegacyDatabase.h:
  • Modules/indexeddb/legacy/LegacyFactory.cpp:

(WebCore::LegacyFactory::cmp):

  • Modules/indexeddb/legacy/LegacyFactory.h:
  • Modules/indexeddb/legacy/LegacyIndex.cpp:

(WebCore::LegacyIndex::openCursor):
(WebCore::LegacyIndex::count):
(WebCore::LegacyIndex::openKeyCursor):
(WebCore::LegacyIndex::get):
(WebCore::LegacyIndex::getKey):

  • Modules/indexeddb/legacy/LegacyIndex.h:
  • Modules/indexeddb/legacy/LegacyObjectStore.cpp:

(WebCore::LegacyObjectStore::get):
(WebCore::LegacyObjectStore::add):
(WebCore::LegacyObjectStore::put):
(WebCore::LegacyObjectStore::deleteFunction):
(WebCore::LegacyObjectStore::clear):
(WebCore::LegacyObjectStore::createIndex):
(WebCore::LegacyObjectStore::index):
(WebCore::LegacyObjectStore::deleteIndex):
(WebCore::LegacyObjectStore::openCursor):
(WebCore::LegacyObjectStore::count):

  • Modules/indexeddb/legacy/LegacyObjectStore.h:

(WebCore::LegacyObjectStore::createIndex):
(WebCore::LegacyObjectStore::count):

  • Modules/indexeddb/legacy/LegacyRequest.cpp:

(WebCore::LegacyRequest::result):
(WebCore::LegacyRequest::error):
(WebCore::LegacyRequest::dispatchEvent):
(WebCore::LegacyRequest::uncaughtExceptionInEventHandler):

  • Modules/indexeddb/legacy/LegacyRequest.h:
  • Modules/indexeddb/legacy/LegacyTransaction.cpp:

(WebCore::LegacyTransaction::objectStore):
(WebCore::LegacyTransaction::abort):
(WebCore::LegacyTransaction::stop):

  • Modules/indexeddb/legacy/LegacyTransaction.h:
  • bindings/js/JSDOMBinding.cpp:

(WebCore::createDOMException): For IDBDatabase exceptions, use createWithDescriptionAsMessage

  • bindings/js/JSIDBDatabaseCustom.cpp:

(WebCore::JSIDBDatabase::createObjectStore):
(WebCore::JSIDBDatabase::transaction):

  • bindings/js/JSIDBObjectStoreCustom.cpp:

(WebCore::putOrAdd):
(WebCore::JSIDBObjectStore::createIndex):

  • dom/DOMCoreException.h:

(WebCore::DOMCoreException::createWithDescriptionAsMessage): Create an exception whose message

is the description.

(WebCore::DOMCoreException::DOMCoreException):

  • dom/ExceptionBase.cpp:

(WebCore::ExceptionBase::ExceptionBase): Add a flag to determine where the message comes from

  • dom/ExceptionBase.h:
  • dom/make_dom_exceptions.pl:

(generateHeader): Add an IDBDatabaseException type

  • inspector/InspectorIndexedDBAgent.cpp:

LayoutTests:

Lots of new wk2-specific expectations to keep Legacy IDB passing for now.

  • platform/mac-wk1/TestExpectations:
  • platform/wk2/imported/w3c/indexeddb/idbcursor_continue_index5-expected.txt: Added.
  • platform/wk2/imported/w3c/indexeddb/idbcursor_continue_index6-expected.txt: Added.
  • platform/wk2/imported/w3c/indexeddb/idbcursor_continue_invalid-expected.txt: Added.
  • platform/wk2/imported/w3c/indexeddb/idbindex_get7-expected.txt: Added.
  • platform/wk2/imported/w3c/indexeddb/idbindex_getKey7-expected.txt: Added.
  • platform/wk2/imported/w3c/indexeddb/idbindex_openCursor2-expected.txt: Added.
  • platform/wk2/imported/w3c/indexeddb/idbindex_openKeyCursor3-expected.txt: Added.
  • platform/wk2/imported/w3c/indexeddb/keypath-expected.txt: Added.
  • platform/wk2/storage/indexeddb/aborted-versionchange-closes-expected.txt: Copied from LayoutTests/storage/indexeddb/aborted-versionchange-closes-expected.txt.
  • platform/wk2/storage/indexeddb/bad-keypath-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/bad-keypath-expected.txt.
  • platform/wk2/storage/indexeddb/basics-expected.txt: Copied from LayoutTests/storage/indexeddb/basics-expected.txt.
  • platform/wk2/storage/indexeddb/clear-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/clear-expected.txt.
  • platform/wk2/storage/indexeddb/create-and-remove-object-store-expected.txt: Copied from LayoutTests/storage/indexeddb/create-and-remove-object-store-expected.txt.
  • platform/wk2/storage/indexeddb/create-objectstore-basics-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/create-objectstore-basics-expected.txt.
  • platform/wk2/storage/indexeddb/cursor-continue-dir-expected.txt: Added.
  • platform/wk2/storage/indexeddb/cursor-continue-expected.txt: Added.
  • platform/wk2/storage/indexeddb/cursor-finished-expected.txt: Copied from LayoutTests/storage/indexeddb/cursor-finished-expected.txt.
  • platform/wk2/storage/indexeddb/cursors-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/cursors-expected.txt.
  • platform/wk2/storage/indexeddb/database-basics-expected.txt: Added.
  • platform/wk2/storage/indexeddb/deleteIndex-bug110792-expected.txt: Added.
  • platform/wk2/storage/indexeddb/index-count-expected.txt: Added.
  • platform/wk2/storage/indexeddb/intversion-close-in-oncomplete-expected.txt: Added.
  • platform/wk2/storage/indexeddb/intversion-close-in-upgradeneeded-expected.txt: Added.
  • platform/wk2/storage/indexeddb/invalid-keys-expected.txt: Added.
  • platform/wk2/storage/indexeddb/key-requirements-delete-null-key-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/key-requirements-delete-null-key-expected.txt.
  • platform/wk2/storage/indexeddb/key-requirements-inline-and-passed-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/key-requirements-inline-and-passed-expected.txt.
  • platform/wk2/storage/indexeddb/key-requirements-put-no-key-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/key-requirements-put-no-key-expected.txt.
  • platform/wk2/storage/indexeddb/key-requirements-put-null-key-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/key-requirements-put-null-key-expected.txt.
  • platform/wk2/storage/indexeddb/key-type-array-expected.txt: Added.
  • platform/wk2/storage/indexeddb/keypath-arrays-expected.txt: Added.
  • platform/wk2/storage/indexeddb/keypath-edges-expected.txt: Added.
  • platform/wk2/storage/indexeddb/keyrange-expected.txt: Added.
  • platform/wk2/storage/indexeddb/mozilla/clear-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/clear-expected.txt.
  • platform/wk2/storage/indexeddb/mozilla/create-objectstore-basics-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/create-objectstore-basics-expected.txt.
  • platform/wk2/storage/indexeddb/mozilla/cursors-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/cursors-expected.txt.
  • platform/wk2/storage/indexeddb/mozilla/key-requirements-delete-null-key-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/key-requirements-delete-null-key-expected.txt.
  • platform/wk2/storage/indexeddb/mozilla/readonly-transactions-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/readonly-transactions-expected.txt.
  • platform/wk2/storage/indexeddb/object-lookups-in-versionchange-expected.txt: Added.
  • platform/wk2/storage/indexeddb/objectstore-count-expected.txt: Added.
  • platform/wk2/storage/indexeddb/open-cursor-expected.txt: Added.
  • platform/wk2/storage/indexeddb/readonly-transactions-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/readonly-transactions-expected.txt.
  • platform/wk2/storage/indexeddb/removed-expected.txt: Added.
  • platform/wk2/storage/indexeddb/request-result-cache-expected.txt: Added.
  • platform/wk2/storage/indexeddb/transaction-abort-expected.txt: Copied from LayoutTests/storage/indexeddb/transaction-abort-expected.txt.
  • platform/wk2/storage/indexeddb/transaction-active-flag-expected.txt: Added.
  • platform/wk2/storage/indexeddb/transaction-after-close-expected.txt: Added.
  • platform/wk2/storage/indexeddb/transaction-read-only-expected.txt: Added.
  • platform/wk2/storage/indexeddb/version-change-exclusive-expected.txt: Added.
  • storage/indexeddb/aborted-versionchange-closes-expected.txt:
  • storage/indexeddb/basics-expected.txt:
  • storage/indexeddb/create-and-remove-object-store-expected.txt:
  • storage/indexeddb/cursor-finished-expected.txt:
  • storage/indexeddb/exceptions-expected.txt:
  • storage/indexeddb/modern/createobjectstore-failures-expected.txt:
  • storage/indexeddb/modern/double-abort-expected.txt:
  • storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-expected.txt:
  • storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
  • storage/indexeddb/mozilla/bad-keypath-expected.txt:
  • storage/indexeddb/mozilla/clear-expected.txt:
  • storage/indexeddb/mozilla/create-objectstore-basics-expected.txt:
  • storage/indexeddb/mozilla/cursors-expected.txt:
  • storage/indexeddb/mozilla/key-requirements-delete-null-key-expected.txt:
  • storage/indexeddb/mozilla/key-requirements-inline-and-passed-expected.txt:
  • storage/indexeddb/mozilla/key-requirements-put-no-key-expected.txt:
  • storage/indexeddb/mozilla/key-requirements-put-null-key-expected.txt:
  • storage/indexeddb/mozilla/readonly-transactions-expected.txt:
  • storage/indexeddb/resources/exceptions.js:

(testObjectStore):

  • storage/indexeddb/transaction-abort-expected.txt:
10:50 AM Changeset in webkit [193427] by Joseph Pecoraro
  • 6 edits in trunk

Web Inspector: Unskip many inspector/debugger tests
https://bugs.webkit.org/show_bug.cgi?id=151843

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • bindings/ScriptFunctionCall.cpp:

(Deprecated::ScriptFunctionCall::call):
Ignore TerminationExceptions, as those aren't real execution
exceptions and may be seen on Workers that have closed.

LayoutTests:

Skip specific tests.

  • platform/mac-wk2/TestExpectations:

Test no longer existed.

  • inspector/debugger/resources/exception.js:

(exceptionDOM):
Keep the code outputing a NotFoundException. This particular
invocation was recently changed to throw a TypeError.

10:50 AM Changeset in webkit [193426] by Joseph Pecoraro
  • 48 edits
    19 deletes in trunk

Web Inspector: Remove untested and unused Worker inspection
https://bugs.webkit.org/show_bug.cgi?id=151848

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • DerivedSources.make:
  • debugger/Debugger.cpp:

(JSC::Debugger::Debugger):
(JSC::Debugger::willExecuteProgram):

  • debugger/Debugger.h:
  • inspector/JSGlobalObjectScriptDebugServer.cpp:

(Inspector::JSGlobalObjectScriptDebugServer::JSGlobalObjectScriptDebugServer):

  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::ScriptDebugServer):

  • inspector/ScriptDebugServer.h:
  • inspector/agents/InspectorConsoleAgent.h:
  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::run): Deleted.

  • inspector/agents/InspectorRuntimeAgent.h:
  • inspector/agents/JSGlobalObjectConsoleAgent.h:
  • inspector/protocol/Runtime.json:
  • inspector/protocol/Worker.json: Removed.

Source/WebCore:

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/WorkerScriptController.cpp:
  • bindings/js/WorkerScriptDebugServer.cpp: Removed.
  • bindings/js/WorkerScriptDebugServer.h: Removed.
  • inspector/InspectorAllInOne.cpp:
  • inspector/InspectorConsoleInstrumentation.h:

(WebCore::InspectorInstrumentation::addMessageToConsole):

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController): Deleted.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::shouldPauseDedicatedWorkerOnStartImpl): Deleted.
(WebCore::InspectorInstrumentation::didStartWorkerGlobalScopeImpl): Deleted.
(WebCore::InspectorInstrumentation::willEvaluateWorkerScript): Deleted.
(WebCore::InspectorInstrumentation::workerGlobalScopeTerminatedImpl): Deleted.
(WebCore::InspectorInstrumentation::instrumentingAgentsForWorkerGlobalScope): Deleted.
(WebCore::InspectorInstrumentation::instrumentingAgentsForNonDocumentContext): Deleted.

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::instrumentingAgentsForContext):
(WebCore::InspectorInstrumentation::shouldPauseDedicatedWorkerOnStart): Deleted.
(WebCore::InspectorInstrumentation::didStartWorkerGlobalScope): Deleted.
(WebCore::InspectorInstrumentation::workerGlobalScopeTerminated): Deleted.

  • inspector/InspectorTimelineAgent.h:
  • inspector/InspectorWebAgentBase.h:

(WebCore::WorkerAgentContext::WorkerAgentContext): Deleted.

  • inspector/InspectorWorkerAgent.cpp: Removed.
  • inspector/InspectorWorkerAgent.h: Removed.
  • inspector/InspectorWorkerResource.h: Removed.
  • inspector/InstrumentingAgents.cpp:

(WebCore::InstrumentingAgents::reset): Deleted.

  • inspector/InstrumentingAgents.h:

(WebCore::InstrumentingAgents::workerRuntimeAgent): Deleted.
(WebCore::InstrumentingAgents::setWorkerRuntimeAgent): Deleted.
(WebCore::InstrumentingAgents::inspectorWorkerAgent): Deleted.
(WebCore::InstrumentingAgents::setInspectorWorkerAgent): Deleted.

  • inspector/PageConsoleAgent.h:
  • inspector/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::PageScriptDebugServer):

  • inspector/WorkerConsoleAgent.cpp: Removed.
  • inspector/WorkerConsoleAgent.h: Removed.
  • inspector/WorkerDebuggerAgent.cpp: Removed.
  • inspector/WorkerDebuggerAgent.h: Removed.
  • inspector/WorkerInspectorController.cpp: Removed.
  • inspector/WorkerInspectorController.h: Removed.
  • inspector/WorkerRuntimeAgent.cpp: Removed.
  • inspector/WorkerRuntimeAgent.h: Removed.
  • workers/Worker.cpp:

(WebCore::Worker::notifyFinished): Deleted.

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope): Deleted.
(WebCore::WorkerGlobalScope::~WorkerGlobalScope): Deleted.

  • workers/WorkerGlobalScope.h:

(WebCore::WorkerGlobalScope::workerInspectorController): Deleted.

  • workers/WorkerGlobalScopeProxy.h:

(WebCore::WorkerGlobalScopeProxy::PageInspector::~PageInspector): Deleted.
(WebCore::WorkerGlobalScopeProxy::connectToInspector): Deleted.
(WebCore::WorkerGlobalScopeProxy::disconnectFromInspector): Deleted.
(WebCore::WorkerGlobalScopeProxy::sendMessageToInspector): Deleted.

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::WorkerMessagingProxy): Deleted.
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope): Deleted.
(WebCore::WorkerMessagingProxy::connectToInspector): Deleted.
(WebCore::WorkerMessagingProxy::disconnectFromInspector): Deleted.
(WebCore::WorkerMessagingProxy::sendMessageToInspector): Deleted.
(WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyedInternal): Deleted.
(WebCore::WorkerMessagingProxy::terminateWorkerGlobalScope): Deleted.
(WebCore::WorkerMessagingProxy::postMessageToPageInspector): Deleted.

  • workers/WorkerMessagingProxy.h:
  • workers/WorkerReportingProxy.h:
  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::workerThread): Deleted.

Source/WebInspectorUI:

  • UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
  • Versions/Inspector-iOS-7.0.json:
  • Versions/Inspector-iOS-8.0.json:
  • Versions/Inspector-iOS-9.0.json:

Since this was untested in older releases as well, remove
the protocol interfaces for legacy versions.

LayoutTests:

  • inspector/debugger/pause-dedicated-worker-expected.txt: Removed.
  • inspector/debugger/pause-dedicated-worker.html: Removed.
  • inspector/debugger/resources/dedicated-worker.js: Removed.
  • inspector/debugger/terminate-dedicated-worker-while-paused-expected.txt: Removed.
  • inspector/debugger/terminate-dedicated-worker-while-paused.html: Removed.
10:49 AM Changeset in webkit [193425] by Joseph Pecoraro
  • 15 edits in trunk

Web Inspector: Specifically Identify the Global Lexical Environment Scope
https://bugs.webkit.org/show_bug.cgi?id=151828

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

Include the new scope type.

  • inspector/JSJavaScriptCallFrame.h:
  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::JSJavaScriptCallFrame::scopeType):
Set the new value for the new scope type.

  • inspector/JSJavaScriptCallFramePrototype.cpp:

(Inspector::JSJavaScriptCallFramePrototype::finishCreation): Deleted.
(Inspector::jsJavaScriptCallFrameConstantGLOBAL_SCOPE): Deleted.
(Inspector::jsJavaScriptCallFrameConstantLOCAL_SCOPE): Deleted.
(Inspector::jsJavaScriptCallFrameConstantWITH_SCOPE): Deleted.
(Inspector::jsJavaScriptCallFrameConstantCLOSURE_SCOPE): Deleted.
(Inspector::jsJavaScriptCallFrameConstantCATCH_SCOPE): Deleted.
(Inspector::jsJavaScriptCallFrameConstantFUNCTION_NAME_SCOPE): Deleted.
Remove unused constants on the JavaScriptCallFrame object.
Currently they are just hardcoded in InjectedScriptSource
and they don't make sense on instances anyways.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):

  • UserInterface/Models/ScopeChainNode.js:
  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
Include a new scope type and give it a localized string.

LayoutTests:

  • inspector/debugger/breakpoint-scope-expected.txt:
  • inspector/debugger/breakpoint-scope.html:
  • inspector/debugger/resources/scope.js:

Update the test to include something in the global lexical
environment and ensure it is identified as such.

10:45 AM Changeset in webkit [193424] by keith_miller@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Add an option to emit instructions validating exceptions in the DFG rather than always emiting them.
https://bugs.webkit.org/show_bug.cgi?id=151841

Reviewed by Saam Barati.

Add a new option that validates the DFG execption checking. The default value for the option is
true in Debug builds and false in Release builds. Additionally, renamed jitAssertNoException to
jitReleaseAssertNoException for consistency with our ASSERT naming convention.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::jitReleaseAssertNoException):
(JSC::AssemblyHelpers::jitAssertNoException): Deleted.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::jitAssertNoException): Deleted.

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

  • runtime/Options.h:
10:08 AM Changeset in webkit [193423] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Fix the !ENABLE(DFG_JIT) build after r190735
https://bugs.webkit.org/show_bug.cgi?id=151617

Reviewed by Filip Pizlo.

  • jit/GCAwareJITStubRoutine.cpp:

(JSC::GCAwareJITStubRoutineWithExceptionHandler::observeZeroRefCount):

9:11 AM Changeset in webkit [193422] by matthew_hanson@apple.com
  • 79 edits
    2 copies
    1 add in branches/safari-601-branch

Merge r188647. rdar://problem/23732386

9:10 AM Changeset in webkit [193421] by matthew_hanson@apple.com
  • 18 edits
    4 adds in branches/safari-601-branch

Merge r188530. rdar://problem/23732374

9:10 AM Changeset in webkit [193420] by matthew_hanson@apple.com
  • 8 edits
    5 adds in branches/safari-601-branch

Merge r188514. rdar://problem/23732374

9:10 AM Changeset in webkit [193419] by matthew_hanson@apple.com
  • 18 edits
    4 adds in branches/safari-601-branch

Merge r188512. rdar://problem/23732374

9:10 AM Changeset in webkit [193418] by matthew_hanson@apple.com
  • 5 edits
    2 adds in branches/safari-601-branch

Merge r190383. rdar://problem/23732393

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

Merge r189427. rdar://problem/23732393

9:10 AM Changeset in webkit [193416] by matthew_hanson@apple.com
  • 10 edits in branches/safari-601-branch

Merge r188194. rdar://problem/23732393

5:16 AM Changeset in webkit [193415] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[cmake] Fix the B3 build after r192946
https://bugs.webkit.org/show_bug.cgi?id=151857

Reviewed by Michael Saboff.

  • CMakeLists.txt:
5:01 AM Changeset in webkit [193414] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[AArch64] Typo fix after r189575
https://bugs.webkit.org/show_bug.cgi?id=151855

Reviewed by Michael Saboff.

  • ftl/FTLUnwindInfo.cpp:

(JSC::FTL::parseUnwindInfo):

3:14 AM Changeset in webkit [193413] by svillar@igalia.com
  • 3 edits
    2 adds in trunk

[css-grid] Fix height computation of grid items with borders inside fr tracks
https://bugs.webkit.org/show_bug.cgi?id=151798

Reviewed by Zalan Bujtas.

Source/WebCore:

Since r192154 we run a second pass of the track sizing
algorithm whenever the height of the grid is indefinite in
order to properly compute row sizes. The available space
passed to the track sizing algorithm must not contain neither
borders nor paddings, otherwise it will think that it has more
space available than the existing one. We should use the
height of the content box instead.

Test: fast/css-grid-layout/grid-item-with-border-in-fr.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):

LayoutTests:

  • fast/css-grid-layout/grid-item-with-border-in-fr-expected.txt: Added.
  • fast/css-grid-layout/grid-item-with-border-in-fr.html: Added.

Dec 3, 2015:

11:45 PM Changeset in webkit [193412] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] Test /webkit2/WebKitWebResource/get-data is flaky
https://bugs.webkit.org/show_bug.cgi?id=151797

Reviewed by Martin Robinson.

Since we switched to use the network process to run the unit tests
the test /webkit2/WebKitWebResource/get-data sometimes fails and
sometimes passes. We are now also getting the notification for the
css image. Since we wait for 3 resources, sometimes the css image
is loaded before and then checkResourceData is called for it, but
not handled. When the css image is the last one loaded the test
passes. So, we just need to wait for the 4 resources.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp:

(testWebResourceGetData):

10:40 PM Changeset in webkit [193411] by beidson@apple.com
  • 4 edits
    3 deletes in trunk/LayoutTests

Modern IDB: Fix up tests that refer to non-standard IDBVersionChangeEvent.dataLoss.
https://bugs.webkit.org/show_bug.cgi?id=151850

Reviewed by Andy Estes.

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/data-corruption-expected.txt: Removed.
  • storage/indexeddb/data-corruption.html: Removed.
  • storage/indexeddb/resources/data-corruption.js: Removed.
  • storage/indexeddb/events-expected.txt:
  • storage/indexeddb/resources/events.js:
9:55 PM Changeset in webkit [193410] by beidson@apple.com
  • 4 edits in trunk

Modern IDB: storage/indexeddb/cursor-index-delete.html fails.
https://bugs.webkit.org/show_bug.cgi?id=151847

Reviewed by Andy Estes.

Source/WebCore:

No new tests (At least one failing test now passes).

  • Modules/indexeddb/server/MemoryIndexCursor.cpp:

(WebCore::IDBServer::MemoryIndexCursor::MemoryIndexCursor):
(WebCore::IDBServer::MemoryIndexCursor::currentData):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
9:24 PM Changeset in webkit [193409] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

DumpRenderTree: Use-after-free in createBitmapContext() in PixelDumpSupportMac.mm
<http://webkit.org/b/151845>

Reviewed by Simon Fraser.

Fixes the following static analyzer warning:

DumpRenderTree/mac/PixelDumpSupportMac.mm:67:9: warning: Use of memory after it is freed

WTFLogAlways("DumpRenderTree: CGBitmapContextCreate(%p, %llu, %llu, 8, %llu, %p, 0x%x) failed\n", buffer, pixelsHigh, pixelsWide, rowBytes, colorSpace.get(), kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host);

  • DumpRenderTree/mac/PixelDumpSupportMac.mm:

(createBitmapContext): Free 'buffer' after using it in logging
to fix the use-after-free. Assign a value of nullptr to buffer
so we don't return with it set to a freed address.

9:21 PM Changeset in webkit [193408] by Gyuyoung Kim
  • 11 edits in trunk/Source/WebCore

Reduce uses of PassRefPtr in DOM - 1
https://bugs.webkit.org/show_bug.cgi?id=149788

Reviewed by Darin Adler.

As a step to purge PassRefPtr, this patch reduces the uses in WebCore/dom.

  • dom/ChildListMutationScope.cpp:

(WebCore::ChildListMutationAccumulator::getOrCreate):

  • dom/ChildListMutationScope.h:
  • dom/ClipboardEvent.cpp:

(WebCore::ClipboardEvent::ClipboardEvent):

  • dom/ClipboardEvent.h:
  • dom/CompositionEvent.cpp:

(WebCore::CompositionEvent::CompositionEvent):
(WebCore::CompositionEvent::initCompositionEvent):

  • dom/CompositionEvent.h:
  • dom/DOMNamedFlowCollection.cpp:

(WebCore::DOMNamedFlowCollection::item):

  • dom/DOMNamedFlowCollection.h:
  • dom/DOMStringList.h:
  • dom/DeviceMotionController.cpp:

(WebCore::DeviceMotionController::getLastEvent):

  • dom/DeviceMotionController.h:
  • dom/DeviceOrientationController.cpp:

(WebCore::DeviceOrientationController::getLastEvent):

  • dom/DeviceOrientationController.h:
  • editing/Editor.cpp:

(WebCore::Editor::dispatchCPPEvent):

  • page/DeviceController.h:

(WebCore::DeviceController::getLastEvent):

8:51 PM Changeset in webkit [193407] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Allow index.html indexes again.

  • .htaccess:
8:48 PM Changeset in webkit [193406] by timothy@apple.com
  • 1 edit
    121 deletes in trunk/Websites/webkit.org

Remove the old site files.

  • asking_questions.html: Removed.
  • building/active-scheme-xcode4.png: Removed.
  • building/build-settings-tab-xcode4.png: Removed.
  • building/build.html: Removed.
  • building/checkout.html: Removed.
  • building/custom-executable-xcode4.png: Removed.
  • building/cygwin-downloader.zip: Removed.
  • building/debug-mac-uiprocess.html: Removed.
  • building/debug.html: Removed.
  • building/launch-debugger-vs2010-small.png: Removed.
  • building/launch-debugger-vs2010.png: Removed.
  • building/run-xcode4.png: Removed.
  • building/run.html: Removed.
  • building/set-as-startup-project-vs2010.png: Removed.
  • building/set-debugging-properties-vs2010-small.png: Removed.
  • building/set-debugging-properties-vs2010.png: Removed.
  • building/tools.html: Removed.
  • coding/RefPtr.html: Removed.
  • coding/adding-features.html: Removed.
  • coding/assertion-guidelines.html: Removed.
  • coding/bsd-license.html: Removed.
  • coding/coding-style.html: Removed.
  • coding/commit-review-policy.html: Removed.
  • coding/contributing.html: Removed.
  • coding/dom-element-attach.html: Removed.
  • coding/images/contribute_add_attachment.png: Removed.
  • coding/images/contribute_mark_review.png: Removed.
  • coding/images/dom-element-attach-large.png: Removed.
  • coding/images/dom-element-attach-small.png: Removed.
  • coding/images/dom-element-attach.graffle: Removed.
  • coding/lgpl-license.html: Removed.
  • coding/major-objects.html: Removed.
  • coding/scripts.html: Removed.
  • coding/technical-articles.html: Removed.
  • contact.html: Removed.
  • css/blue.css: Removed.
  • css/gray.css: Removed.
  • css/green.css: Removed.
  • css/ie.css: Removed.
  • css/main.css: Removed.
  • css/pink.css: Removed.
  • css/purple.css: Removed.
  • css/yellow.css: Removed.
  • demos/index.html: Removed.
  • footer.inc: Removed.
  • header.inc: Removed.
  • images/DroseraPic.png: Removed.
  • images/blank.png: Removed.
  • images/blue-background.png: Removed.
  • images/blue-bullet.png: Removed.
  • images/download.png: Removed.
  • images/end.png: Removed.
  • images/gray-background.png: Removed.
  • images/green-background.png: Removed.
  • images/green-bullet.png: Removed.
  • images/icon-gold.png: Removed.
  • images/icon.png: Removed.
  • images/ie-nav.png: Removed.
  • images/middle.png: Removed.
  • images/nav.png: Removed.
  • images/pink-background.png: Removed.
  • images/pink-bullet.png: Removed.
  • images/purple-background.png: Removed.
  • images/purple-bullet.png: Removed.
  • images/surfin-safari.icns: Removed.
  • images/yellow-background.png: Removed.
  • images/yellow-bullet.png: Removed.
  • index.html: Removed.
  • nav.inc: Removed.
  • pngbehavior.htc: Removed.
  • projects/accessibility/index.html: Removed.
  • projects/cleanup/index.html: Removed.
  • projects/compat/index.html: Removed.
  • projects/css/index.html: Removed.
  • projects/documentation/index.html: Removed.
  • projects/dom/index.html: Removed.
  • projects/editing/index.html: Removed.
  • projects/forms/image-usemap.png: Removed.
  • projects/forms/image1.png: Removed.
  • projects/forms/image10.png: Removed.
  • projects/forms/image16.png: Removed.
  • projects/forms/index.html: Removed.
  • projects/forms/survey.html: Removed.
  • projects/goals.html: Removed.
  • projects/html/index.html: Removed.
  • projects/index.html: Removed.
  • projects/javascript/index.html: Removed.
  • projects/layout/index.html: Removed.
  • projects/mathml/index.html: Removed.
  • projects/performance/index.html: Removed.
  • projects/plugins/index.html: Removed.
  • projects/portability/index.html: Removed.
  • projects/printing/index.html: Removed.
  • projects/svg/index.html: Removed.
  • projects/svg/status.xml: Removed.
  • projects/svg/svg-status.css: Removed.
  • projects/svg/svg-status.xsl: Removed.
  • projects/webkit/index.html: Removed.
  • projects/xml/index.html: Removed.
  • projects/xslt/index.html: Removed.
  • quality/.htaccess: Removed.
  • quality/Ahem.ttf: Removed.
  • quality/bugpriorities.html: Removed.
  • quality/bugwriting.html: Removed.
  • quality/bugzilla.html: Removed.
  • quality/crashlogs.html: Removed.
  • quality/leakhunting.html: Removed.
  • quality/lifecycle.html: Removed.
  • quality/mac_reportbox.jpg: Removed.
  • quality/mac_viewtrace.jpg: Removed.
  • quality/reduction.html: Removed.
  • quality/reporting.html: Removed.
  • quality/testing.html: Removed.
  • quality/testwriting.html: Removed.
  • quality/win_installwatson.jpg: Removed.
  • quality/win_watsongui.jpg: Removed.
  • quality/win_watsoninstalled.jpg: Removed.
  • security/index.html: Removed.
  • security/security-group-members.html: Removed.
  • status.html: Removed.
  • team.html: Removed.
8:39 PM Changeset in webkit [193405] by timothy@apple.com
  • 2 edits
    1434 deletes in trunk/Websites/webkit.org

Yet another attempt to fix the http blog redirects.

Removing the blog folder should do it.

  • .htaccess:
  • blog: Removed.
8:30 PM Changeset in webkit [193404] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Another attempt to fix the http blog redirects.

  • .htaccess:
8:20 PM Changeset in webkit [193403] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Attempt to fix the http blog redirects.

  • .htaccess:
8:18 PM Changeset in webkit [193402] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Another attempt to fix the https redirect.

  • .htaccess:
8:16 PM Changeset in webkit [193401] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Attempt to fix the https redirect.

  • .htaccess:
8:13 PM Changeset in webkit [193400] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Fix blog.webkit.org redirects.

  • .htaccess:
7:58 PM Changeset in webkit [193399] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Add redirects for the demos folder.

  • .htaccess:
7:52 PM Changeset in webkit [193398] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Remove duplicate redirect.

  • .htaccess:
7:46 PM Changeset in webkit [193397] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

One more attempt to clean up redirects.

  • .htaccess:
7:37 PM Changeset in webkit [193396] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Avoid double slashes after redirect for directories.

  • .htaccess:
7:35 PM Changeset in webkit [193395] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Fix directory redirects some more.

  • .htaccess:
7:30 PM Changeset in webkit [193394] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Fix directory redirect ordering.

  • .htaccess:
7:29 PM Changeset in webkit [193393] by fpizlo@apple.com
  • 19 edits in trunk/Source/JavaScriptCore

B3 Patchpoint and Check opcodes should be able to specify WarmAny, ColdAny, and LateColdAny
https://bugs.webkit.org/show_bug.cgi?id=151335

Reviewed by Geoffrey Garen.

This removes ValueRep::Any and replaces it with ValueRep::WarmAny, ValueRep::ColdAny, and
ValueRep::LateColdAny. I think that conceptually the most obvious users of patchpoints are inline
caches, which would use WarmAny for their non-OSR inputs. For this reason, I make WarmAny the
default.

However, the StackmapValue optimization that provides a default ValueRep for any that are missing
was meant for OSR. So, this optimization now uses ColdAny.

This patch wires this change through the whole compiler and adds some tests.

  • b3/B3CheckSpecial.cpp:

(JSC::B3::CheckSpecial::Key::Key):
(JSC::B3::CheckSpecial::Key::dump):
(JSC::B3::CheckSpecial::CheckSpecial):

  • b3/B3CheckSpecial.h:

(JSC::B3::CheckSpecial::Key::Key):
(JSC::B3::CheckSpecial::Key::opcode):
(JSC::B3::CheckSpecial::Key::numArgs):
(JSC::B3::CheckSpecial::Key::stackmapRole):

  • b3/B3CheckValue.cpp:

(JSC::B3::CheckValue::CheckValue):

  • b3/B3ConstrainedValue.h:

(JSC::B3::ConstrainedValue::ConstrainedValue):

  • b3/B3LowerToAir.cpp:

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

  • b3/B3MoveConstants.cpp:
  • b3/B3PatchpointSpecial.cpp:

(JSC::B3::PatchpointSpecial::forEachArg):
(JSC::B3::PatchpointSpecial::isValid):
(JSC::B3::PatchpointSpecial::admitsStack):

  • b3/B3PatchpointValue.cpp:

(JSC::B3::PatchpointValue::PatchpointValue):

  • b3/B3PatchpointValue.h:
  • b3/B3StackmapSpecial.cpp:

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

  • b3/B3StackmapSpecial.h:
  • b3/B3StackmapValue.cpp:

(JSC::B3::StackmapValue::append):
(JSC::B3::StackmapValue::setConstraint):

  • b3/B3StackmapValue.h:
  • b3/B3Validate.cpp:
  • b3/B3ValueRep.cpp:

(JSC::B3::ValueRep::dump):
(WTF::printInternal):

  • b3/B3ValueRep.h:

(JSC::B3::ValueRep::ValueRep):
(JSC::B3::ValueRep::reg):
(JSC::B3::ValueRep::operator!=):
(JSC::B3::ValueRep::operator bool):
(JSC::B3::ValueRep::isAny):
(JSC::B3::ValueRep::isSomeRegister):

  • b3/testb3.cpp:

(JSC::B3::compileAndRun):
(JSC::B3::add32):
(JSC::B3::test42):
(JSC::B3::testSimplePatchpoint):
(JSC::B3::testPatchpointWithEarlyClobber):
(JSC::B3::testPatchpointFixedRegister):
(JSC::B3::testPatchpointAny):
(JSC::B3::testPatchpointLotsOfLateAnys):
(JSC::B3::testPatchpointAnyImm):
(JSC::B3::testPatchpointManyImms):
(JSC::B3::testPatchpointWithRegisterResult):
(JSC::B3::testPatchpointWithAnyResult):
(JSC::B3::run):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::blessSpeculation):

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

Fixed cache logic so download data is correctly available.

  • wp-content/themes/webkit/nightly.php:
7:06 PM Changeset in webkit [193391] by timothy@apple.com
  • 2 edits in trunk/Websites/webkit.org

Add some missing redirects for directories of the old site.

  • .htaccess:
4:49 PM Changeset in webkit [193390] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove the use of GraphicsContextStateSaver from RenderLayer::paintLayerByApplyingTransform
https://bugs.webkit.org/show_bug.cgi?id=151829

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-12-03
Reviewed by Simon Fraser.

Set the CTM of the GraphicsContext to its original value before changing
it. This is a lot cheaper than using GraphicsContextStateSaver to save the
whole state of the GraphicsContext and restore it back;

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerByApplyingTransform):

4:34 PM Changeset in webkit [193389] by eric.carlson@apple.com
  • 21 edits
    2 adds
    10 deletes in trunk

[MediaStream] Update MediaStreamTrack.getCapabilities
https://bugs.webkit.org/show_bug.cgi?id=151728

Reviewed by Jer Noble.

Source/WebCore:

Test: fast/mediastream/MediaStreamTrack-getCapabilities.html

  • CMakeLists.txt: Remove files deleted from the repository.
  • DerivedSources.make: Ditto.
  • Modules/mediastream/AllAudioCapabilities.h: Removed.
  • Modules/mediastream/AllAudioCapabilities.idl: Removed.
  • Modules/mediastream/AllVideoCapabilities.h: Removed.
  • Modules/mediastream/AllVideoCapabilities.idl: Removed.
  • Modules/mediastream/CapabilityRange.cpp: Removed.
  • Modules/mediastream/CapabilityRange.h: Removed.
  • Modules/mediastream/CapabilityRange.idl: Removed.
  • Modules/mediastream/MediaSourceSettings.h:

(WebCore::MediaSourceSettings::supportsVolume): Volume is a double.
(WebCore::MediaSourceSettings::volume): Double.

  • Modules/mediastream/MediaStreamCapabilities.cpp: Removed.
  • Modules/mediastream/MediaStreamCapabilities.h: Removed.
  • Modules/mediastream/MediaStreamCapabilities.idl: Removed.
  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::getCapabilities): MediaStreamCapabilities is gone, return a RealtimeMediaSourceCapabilities.

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/mediastream/MediaStreamTrack.idl:
  • WebCore.xcodeproj/project.pbxproj: Remove files deleted from the repository.
  • bindings/js/JSMediaStreamTrackCustom.cpp:

(WebCore::capabilityValue):
(WebCore::JSMediaStreamTrack::getCapabilities): Create and return a dictionary of capatilities.

  • platform/mediastream/RealtimeMediaSourceCapabilities.h:

(WebCore::CapabilityValueOrRange::type):
(WebCore::CapabilityValueOrRange::CapabilityValueOrRange):
(WebCore::CapabilityValueOrRange::rangeMin):
(WebCore::CapabilityValueOrRange::rangeMax):
(WebCore::CapabilityValueOrRange::value):
(WebCore::RealtimeMediaSourceCapabilities::create):
(WebCore::RealtimeMediaSourceCapabilities::~RealtimeMediaSourceCapabilities):
(WebCore::RealtimeMediaSourceCapabilities::supportsWidth):
(WebCore::RealtimeMediaSourceCapabilities::width):
(WebCore::RealtimeMediaSourceCapabilities::setWidth):
(WebCore::RealtimeMediaSourceCapabilities::supportsHeight):
(WebCore::RealtimeMediaSourceCapabilities::height):
(WebCore::RealtimeMediaSourceCapabilities::setHeight):
(WebCore::RealtimeMediaSourceCapabilities::supportsFrameRate):
(WebCore::RealtimeMediaSourceCapabilities::frameRate):
(WebCore::RealtimeMediaSourceCapabilities::setFrameRate):
(WebCore::RealtimeMediaSourceCapabilities::supportsFacingMode):
(WebCore::RealtimeMediaSourceCapabilities::facingMode):
(WebCore::RealtimeMediaSourceCapabilities::addFacingMode):
(WebCore::RealtimeMediaSourceCapabilities::supportsAspectRatio):
(WebCore::RealtimeMediaSourceCapabilities::aspectRatio):
(WebCore::RealtimeMediaSourceCapabilities::setAspectRatio):
(WebCore::RealtimeMediaSourceCapabilities::supportsVolume):
(WebCore::RealtimeMediaSourceCapabilities::volume):
(WebCore::RealtimeMediaSourceCapabilities::setVolume):
(WebCore::RealtimeMediaSourceCapabilities::supportsSampleRate):
(WebCore::RealtimeMediaSourceCapabilities::sampleRate):
(WebCore::RealtimeMediaSourceCapabilities::setSampleRate):
(WebCore::RealtimeMediaSourceCapabilities::supportsSampleSize):
(WebCore::RealtimeMediaSourceCapabilities::sampleSize):
(WebCore::RealtimeMediaSourceCapabilities::setSampleSize):
(WebCore::RealtimeMediaSourceCapabilities::supportsEchoCancellation):
(WebCore::RealtimeMediaSourceCapabilities::echoCancellation):
(WebCore::RealtimeMediaSourceCapabilities::setEchoCancellation):
(WebCore::RealtimeMediaSourceCapabilities::supportsDeviceId):
(WebCore::RealtimeMediaSourceCapabilities::deviceId):
(WebCore::RealtimeMediaSourceCapabilities::setDeviceId):
(WebCore::RealtimeMediaSourceCapabilities::supportsGroupId):
(WebCore::RealtimeMediaSourceCapabilities::groupId):
(WebCore::RealtimeMediaSourceCapabilities::setGroupId):
(WebCore::RealtimeMediaSourceCapabilities::RealtimeMediaSourceCapabilities):
(WebCore::RealtimeMediaSourceCapabilityRange::RealtimeMediaSourceCapabilityRange): Deleted.
(WebCore::RealtimeMediaSourceCapabilityRange::min): Deleted.
(WebCore::RealtimeMediaSourceCapabilityRange::max): Deleted.
(WebCore::RealtimeMediaSourceCapabilityRange::type): Deleted.
(WebCore::RealtimeMediaSourceCapabilityRange::supported): Deleted.
(WebCore::RealtimeMediaSourceCapabilities::sourceId): Deleted.
(WebCore::RealtimeMediaSourceCapabilities::setSourceId): Deleted.
(WebCore::RealtimeMediaSourceCapabilities::facingModes): Deleted.
(WebCore::RealtimeMediaSourceCapabilities::setWidthRange): Deleted.
(WebCore::RealtimeMediaSourceCapabilities::setHeightRange): Deleted.
(WebCore::RealtimeMediaSourceCapabilities::setFrameRateRange): Deleted.
(WebCore::RealtimeMediaSourceCapabilities::setAspectRatioRange): Deleted.
(WebCore::RealtimeMediaSourceCapabilities::setVolumeRange): Deleted.
(WebCore::RealtimeMediaSourceCapabilities::hasVideoSource): Deleted.
(WebCore::RealtimeMediaSourceCapabilities::setHasVideoSource): Deleted.

  • platform/mediastream/RealtimeMediaSourceSettings.h:

(WebCore::RealtimeMediaSourceSettings::volume): Volume is a double.
(WebCore::RealtimeMediaSourceSettings::setVolume): Ditt.

  • platform/mediastream/mac/AVAudioCaptureSource.mm:

(WebCore::AVAudioCaptureSource::initializeCapabilities): Initialize volume capability.

  • platform/mediastream/mac/AVMediaCaptureSource.mm:

(WebCore::AVMediaCaptureSource::capabilities): RealtimeMediaSourceCapabilities constructor takes

supportedConstraints. sourceId -> deviceId.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::initializeCapabilities): DeviceId is set by the base class.

  • platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm: Drive-by cleanup, remove unused code.
  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::initializeCapabilities): Updated.
(WebCore::MockRealtimeAudioSource::initializeSupportedConstraints): Ditto.

  • platform/mock/MockRealtimeMediaSource.cpp:

(WebCore::MockRealtimeMediaSource::capabilities): sourceId -> deviceId.

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::initializeCapabilities): Updated.
(WebCore::MockRealtimeVideoSource::initializeSupportedConstraints): Ditto.

LayoutTests:

  • fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt: Added.
  • fast/mediastream/MediaStreamTrack-getCapabilities.html: Added.
  • fast/mediastream/MediaStreamTrack-getSettings-expected.txt:
  • fast/mediastream/MediaStreamTrack-getSettings.html:
4:29 PM Changeset in webkit [193388] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.1.46.83

New Tag.

4:23 PM Changeset in webkit [193387] by Jon Davis
  • 4 edits in trunk/Websites/webkit.org

Fixed transient behavior when the cache plugin is enabled.

  • wp-content/themes/webkit/functions.php:
  • wp-content/themes/webkit/includes.php:
  • wp-content/themes/webkit/nightly.php:
4:11 PM Changeset in webkit [193386] by fpizlo@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

B3 patchpoints should allow specifying output constraints
https://bugs.webkit.org/show_bug.cgi?id=151809

Reviewed by Benjamin Poulain.

JS call patchpoints should put their result into the result register, while most other patchpoints
should put their results into some register. I think that it's best if we just allow arbitrary
constraints on the result of a patchpoint. And by "arbitrary" I mean allowing the same kinds of
constraints as we allow on the stackmap children.

This also adds a large comment in B3StackmapValue.h that lays out the philosophy of our stackmaps
and patchpoints. I found it useful to write down the plan since it's pretty subtle.

  • b3/B3LowerToAir.cpp:

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

  • b3/B3PatchpointSpecial.cpp:

(JSC::B3::PatchpointSpecial::isValid):
(JSC::B3::PatchpointSpecial::admitsStack):

  • b3/B3PatchpointValue.cpp:

(JSC::B3::PatchpointValue::~PatchpointValue):
(JSC::B3::PatchpointValue::dumpMeta):
(JSC::B3::PatchpointValue::PatchpointValue):

  • b3/B3PatchpointValue.h:

(JSC::B3::PatchpointValue::accepts):

  • b3/B3Procedure.h:

(JSC::B3::Procedure::code):

  • b3/B3StackmapSpecial.cpp:

(JSC::B3::StackmapSpecial::isValidImpl):
(JSC::B3::StackmapSpecial::appendRepsImpl):
(JSC::B3::StackmapSpecial::isArgValidForValue):
(JSC::B3::StackmapSpecial::isArgValidForRep):
(JSC::B3::StackmapSpecial::repForArg):

  • b3/B3StackmapSpecial.h:
  • b3/B3StackmapValue.h:
  • b3/B3Validate.cpp:
  • b3/B3ValueRep.h:

(JSC::B3::ValueRep::doubleValue):

  • b3/testb3.cpp:

(JSC::B3::testPatchpointManyImms):
(JSC::B3::testPatchpointWithRegisterResult):
(JSC::B3::testPatchpointWithStackArgumentResult):
(JSC::B3::testPatchpointWithAnyResult):
(JSC::B3::testSimpleCheck):
(JSC::B3::run):

  • jit/RegisterSet.h:
3:59 PM Changeset in webkit [193385] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

3:57 PM Changeset in webkit [193384] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.5.2

New tag.

3:54 PM Changeset in webkit [193383] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.5.1

New tag.

3:44 PM Changeset in webkit [193382] by Simon Fraser
  • 8 edits in trunk/Source

Have layer memory use consult the backing store format
https://bugs.webkit.org/show_bug.cgi?id=151827
rdar://problem/23746497

Reviewed by Dean Jackson.
Source/WebCore:

When computing the backing store memory size, take the pixel format into account,
rather than assuming 4 bytes per pixel.

  • platform/graphics/ca/GraphicsLayerCA.cpp:
  • platform/graphics/ca/PlatformCALayer.h:

Source/WebKit2:

When computing the backing store memory size, take the pixel format into account,
rather than assuming 4 bytes per pixel.

  • Shared/mac/RemoteLayerBackingStore.h:
  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::bytesPerPixel):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::backingStoreBytesPerPixel):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:
3:39 PM Changeset in webkit [193381] by jer.noble@apple.com
  • 14 edits in trunk

Expose WebCore's InvisibleAutoplayNotPermitted setting to WebKit & WebKit2
https://bugs.webkit.org/show_bug.cgi?id=151830

Reviewed by Anders Carlsson.

Source/WebKit/mac:

Add a new WebPreferences property invisibleAutoplayNotPermitted.

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

(-[WebPreferences invisibleAutoplayNotPermitted]):
(-[WebPreferences setInvisibleAutoplayNotPermitted:]):

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

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Add a new, private WKWebViewConfiguration property _invisibleAutoplayNotPermitted.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _invisibleAutoplayNotPermitted]):
(-[WKWebViewConfiguration _setInvisibleAutoplayNotPermitted:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

Set invisibleAutoplayNotPermitted to NO by default both in WKTR and DRT.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

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

It should be possible to use version 6 of the WKPageUIClient without adopting the new createNewPage
https://bugs.webkit.org/show_bug.cgi?id=151826

Reviewed by Anders Carlsson.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):
Pick which variant of createNewPage to use based on which function pointer is available,
not the version number.

2:47 PM Changeset in webkit [193379] by Jon Davis
  • 5 edits in trunk/Websites/webkit.org

Add sub-section anchors to code style guidelines
https://bugs.webkit.org/show_bug.cgi?id=151770

Reviewed by Timothy Hatcher.

  • code-style.md:
  • wp-content/plugins/table-of-contents.php:
  • wp-content/themes/webkit/includes.php:
  • wp-content/themes/webkit/style.css:

(a[name]):
(p > a[name]::before):
(a[name]:hover):
(h6 a[name]):
(.admin-bar a[name]):
(.admin-bar p > a[name]::before):
(.screen-reader-text):
(.table-of-contents ul li > ul):
(#post-4132 pre:nth-child(-n+10)):
(#post-4132 pre:nth-child(-n+8)): Deleted.

2:41 PM Changeset in webkit [193378] by andersca@apple.com
  • 76 edits in trunk

Remove Objective-C GC support
https://bugs.webkit.org/show_bug.cgi?id=151819
rdar://problem/23746991

Reviewed by Dan Bernstein.

Source/bmalloc:

  • Configurations/Base.xcconfig:

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:
  • Configurations/ToolExecutable.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig:

Source/WebCore:

  • Configurations/Base.xcconfig:
  • bindings/objc/WebScriptObject.mm:

(+[WebScriptObject initialize]): Deleted.
(-[WebScriptObject finalize]): Deleted.

  • bindings/scripts/CodeGeneratorObjC.pm:

(GenerateImplementation):

  • bindings/scripts/test/ObjC/DOMTestActiveDOMObject.mm:

(-[DOMTestActiveDOMObject finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMTestCallback.mm:

(-[DOMTestCallback finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMTestCallbackFunction.mm:

(-[DOMTestCallbackFunction finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMTestCustomConstructorWithNoInterfaceObject.mm:

(-[DOMTestCustomConstructorWithNoInterfaceObject finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMTestCustomNamedGetter.mm:

(-[DOMTestCustomNamedGetter finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMTestEventConstructor.mm:

(-[DOMTestEventConstructor finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMTestEventTarget.mm:

(-[DOMTestEventTarget finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMTestException.mm:

(-[DOMTestException finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.mm:

(-[DOMTestGenerateIsReachable finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMTestInterface.mm:

(-[DOMTestInterface finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.mm:

(-[DOMTestJSBuiltinConstructor finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMTestMediaQueryListListener.mm:

(-[DOMTestMediaQueryListListener finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMTestNamedConstructor.mm:

(-[DOMTestNamedConstructor finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMTestNondeterministic.mm:

(-[DOMTestNondeterministic finalize]): Deleted.

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

(-[DOMTestObj finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm:

(-[DOMTestOverloadedConstructors finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMTestOverrideBuiltins.mm:

(-[DOMTestOverrideBuiltins finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm:

(-[DOMTestSerializedScriptValueInterface finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMTestTypedefs.mm:

(-[DOMTestTypedefs finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMattribute.mm:

(-[DOMattribute finalize]): Deleted.

  • bindings/scripts/test/ObjC/DOMreadonly.mm:

(-[DOMreadonly finalize]): Deleted.

  • bridge/objc/objc_instance.mm:

(ObjcInstance::virtualBegin):
(allocateAutoReleasePool): Deleted.

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
  • platform/mac/SharedBufferMac.mm:

(+[WebCoreSharedBufferData initialize]): Deleted.
(-[WebCoreSharedBufferData finalize]): Deleted.

  • platform/mac/WebCoreObjCExtras.h:

(WebCoreObjCFinalizeOnMainThread): Deleted.

Source/WebInspectorUI:

  • Configurations/Base.xcconfig:

Source/WebKit/mac:

  • Carbon/CarbonWindowAdapter.mm:

(+[CarbonWindowAdapter initialize]): Deleted.
(-[CarbonWindowAdapter finalize]): Deleted.

  • Configurations/Base.xcconfig:
  • History/WebBackForwardList.mm:

(+[WebBackForwardList initialize]): Deleted.
(-[WebBackForwardList finalize]): Deleted.

  • History/WebHistory.mm:

(-[WebHistoryPrivate finalize]): Deleted.
(-[WebHistory finalize]): Deleted.

  • History/WebHistoryItem.mm:

(+[WebHistoryItem initialize]): Deleted.
(-[WebHistoryItem finalize]): Deleted.

  • Misc/WebElementDictionary.mm:

(+[WebElementDictionary initialize]): Deleted.
(-[WebElementDictionary finalize]): Deleted.

  • Plugins/Hosted/WebHostedNetscapePluginView.mm:

(+[WebHostedNetscapePluginView initialize]): Deleted.

  • Plugins/WebBaseNetscapePluginView.mm:

(-[WebBaseNetscapePluginView finalize]): Deleted.

  • Plugins/WebBasePluginPackage.mm:

(-[WebBasePluginPackage finalize]): Deleted.

  • Plugins/WebNetscapePluginView.mm:

(+[WebNetscapePluginView initialize]): Deleted.
(-[WebNetscapePluginView finalize]): Deleted.

  • Plugins/WebPluginContainerCheck.mm:

(-[WebPluginContainerCheck finalize]): Deleted.

  • WebCoreSupport/WebEditorClient.mm:

(+[WebUndoStep initialize]): Deleted.
(-[WebUndoStep finalize]): Deleted.

  • WebCoreSupport/WebFrameLoaderClient.mm:
  • WebCoreSupport/WebOpenPanelResultListener.mm:

(-[WebOpenPanelResultListener finalize]): Deleted.

  • WebCoreSupport/WebSecurityOrigin.mm:

(-[WebSecurityOrigin finalize]): Deleted.

  • WebView/WebArchive.mm:

(+[WebArchivePrivate initialize]): Deleted.

  • WebView/WebDataSource.mm:

(+[WebDataSource initialize]): Deleted.
(-[WebDataSource finalize]): Deleted.

  • WebView/WebDynamicScrollBarsView.mm:

(-[WebDynamicScrollBarsView finalize]): Deleted.

  • WebView/WebFrame.mm:

(-[WebFramePrivate setWebFrameView:]):
(-[WebFramePrivate finalize]): Deleted.
(-[WebFrame finalize]): Deleted.

  • WebView/WebFrameView.mm:

(-[WebFrameView finalize]): Deleted.

  • WebView/WebHTMLRepresentation.mm:

(-[WebHTMLRepresentation finalize]): Deleted.

  • WebView/WebHTMLView.mm:

(+[WebHTMLViewPrivate initialize]):
(-[WebHTMLViewPrivate finalize]): Deleted.
(+[WebHTMLView initialize]): Deleted.
(-[WebHTMLView finalize]): Deleted.

  • WebView/WebResource.mm:

(+[WebResourcePrivate initialize]): Deleted.
(-[WebResourcePrivate finalize]): Deleted.

  • WebView/WebTextIterator.mm:

(+[WebTextIteratorPrivate initialize]): Deleted.

  • WebView/WebView.mm:

(-[WebView finalize]): Deleted.

  • WebView/WebViewData.mm:

(+[WebViewPrivate initialize]): Deleted.
(-[WebViewPrivate init]): Deleted.
(-[WebViewPrivate finalize]): Deleted.

Source/WebKit2:

  • Configurations/Base.xcconfig:
  • Configurations/BaseLegacyProcess.xcconfig:
  • Configurations/BaseXPCService.xcconfig:
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject): Deleted.

Source/WTF:

  • Configurations/Base.xcconfig:
  • wtf/ThreadingPthreads.cpp:

(WTF::initializeCurrentThreadInternal): Deleted.

  • wtf/text/cf/StringImplCF.cpp:

(WTF::StringImpl::createCFString):
(garbageCollectionEnabled): Deleted.
(WTF::StringWrapperCFAllocator::create): Deleted.

Tools:

  • asan/asan.xcconfig:
2:32 PM Changeset in webkit [193377] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Attempt to fix GTK again after r193125

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-12-03

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::supportsLZCNT):

2:24 PM Changeset in webkit [193376] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Attempt to fix GTK after r193125

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-12-03

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::supportsLZCNT):
GCC is unable to handle EBX correctly when clobbered by inline asm.

2:06 PM Changeset in webkit [193375] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Uncaught Exception in Web Inspector: TypeError: null is not an object (evaluating 'dataGridNode.element.classList')
https://bugs.webkit.org/show_bug.cgi?id=151790

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGridNode):
(WebInspector.DataGridNode.prototype.get hidden):
(WebInspector.DataGridNode.prototype.set hidden):
Make hidden a property, so it can be set before the grid node's DOM element exists.
(WebInspector.DataGridNode.prototype.get selectable):
(WebInspector.DataGridNode.prototype.get element):
Add hidden style, if needed, when element is created.

  • UserInterface/Views/TreeOutlineDataGridSynchronizer.js:

(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementVisibilityDidChange):
(WebInspector.TreeOutlineDataGridSynchronizer):
Don't access the grid node's element directly, since it may not exist yet.

1:59 PM Changeset in webkit [193374] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Simple line layout: Print out simple line layout statistics for the current page from command line.
https://bugs.webkit.org/show_bug.cgi?id=151806

Reviewed Simon Fraser.

com.apple.WebKit.showSimpleLineLayoutCoverage prints out a coverage summary of the current page,
while com.apple.WebKit.showSimpleLineLayoutReasons lists the non-simple line layout blocks including the reasons why
they are not covered.

No change in functionality.

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForText):
(WebCore::SimpleLineLayout::canUseForFontAndText):
(WebCore::SimpleLineLayout::canUseForStyle):
(WebCore::SimpleLineLayout::canUseForWithReason):
(WebCore::SimpleLineLayout::canUseFor):
(WebCore::SimpleLineLayout::printReason):
(WebCore::SimpleLineLayout::printReasons):
(WebCore::SimpleLineLayout::printTextForSubtree):
(WebCore::SimpleLineLayout::textLengthForSubtree):
(WebCore::SimpleLineLayout::collectNonEmptyLeafRenderBlockFlows):
(WebCore::SimpleLineLayout::collectNonEmptyLeafRenderBlockFlowsForCurrentPage):
(WebCore::SimpleLineLayout::printSimpleLineLayoutBlockList):
(WebCore::SimpleLineLayout::printSimpleLineLayoutCoverage):

1:44 PM Changeset in webkit [193373] by msaboff@apple.com
  • 5 edits in trunk/Source/bmalloc

bmalloc: extra large allocations could be more efficient
https://bugs.webkit.org/show_bug.cgi?id=151817

Reviewed by Geoffrey Garen.

Reduced the super chunk size from 4MB to 2MB.

Added path to reallocate() of an extra large object to see if we can extend the allocation.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::reallocate):

  • bmalloc/SegregatedFreeList.h:
  • bmalloc/Sizes.h:
  • bmalloc/VMAllocate.h:

(bmalloc::tryVMAllocate):
(bmalloc::tryVMExtend):
(bmalloc::vmAllocate):

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

Removing deleted test storage/indexeddb/objectstore-keycursor.html from TestExpectations file
https://bugs.webkit.org/show_bug.cgi?id=151772

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:09 PM Changeset in webkit [193371] by sbarati@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

FTL::OSRExitDescriptor should use less memory by having a companion object that dies after compilation
https://bugs.webkit.org/show_bug.cgi?id=151795

Reviewed by Geoffrey Garen.

There were a few fields on FTL::OSRExitDescriptor that are only
needed during compilation. This patch introduces OSRExitDescriptorImpl
which is a struct that we create for each OSRExitDescriptor. The difference is
that OSRExitDescriptorImpl lives off of FTL::State so it dies after we compile.
This way no unnecessary fields persist after the compilation.

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • ftl/FTLExceptionHandlerManager.cpp:

(JSC::FTL::ExceptionHandlerManager::lazySlowPathExceptionTarget):
(JSC::FTL::ExceptionHandlerManager::getCallOSRExitCommon):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileInvalidationPoint):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExitArgumentsForPatchpointIfWillCatchException):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExitDescriptor):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExit):
(JSC::FTL::DFG::LowerDFGToLLVM::blessSpeculation):
(JSC::FTL::DFG::LowerDFGToLLVM::emitOSRExitCall):
(JSC::FTL::DFG::LowerDFGToLLVM::buildExitArguments):

  • ftl/FTLOSRExit.cpp:

(JSC::FTL::OSRExitDescriptor::OSRExitDescriptor):
(JSC::FTL::OSRExitDescriptor::validateReferences):
(JSC::FTL::OSRExitDescriptor::emitOSRExit):
(JSC::FTL::OSRExitDescriptor::emitOSRExitLater):
(JSC::FTL::OSRExitDescriptor::prepareOSRExitHandle):
(JSC::FTL::OSRExit::OSRExit):
(JSC::FTL::OSRExit::codeLocationForRepatch):
(JSC::FTL::OSRExit::gatherRegistersToSpillForCallIfException):
(JSC::FTL::OSRExit::willArriveAtExitFromIndirectExceptionCheck):
(JSC::FTL::exceptionTypeWillArriveAtOSRExitFromGenericUnwind):
(JSC::FTL::OSRExit::willArriveAtOSRExitFromGenericUnwind):
(JSC::FTL::OSRExit::willArriveAtOSRExitFromCallOperation):
(JSC::FTL::OSRExitDescriptor::isExceptionHandler): Deleted.

  • ftl/FTLOSRExit.h:

(JSC::FTL::OSRExitDescriptorImpl::OSRExitDescriptorImpl):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileFTLOSRExit):

  • ftl/FTLState.h:
12:57 PM Changeset in webkit [193370] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed build-fix; fix !HAVE(AVKIT) build after r193340.

  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::applicationDidBecomeActive):

12:56 PM Changeset in webkit [193369] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Add WebCrypto to status page
https://bugs.webkit.org/show_bug.cgi?id=151760

Reviewed by Timothy Hatcher.

  • features.json:
12:46 PM Changeset in webkit [193368] by commit-queue@webkit.org
  • 6 edits in trunk

[Win] fast/forms/HTMLOptionElement_label03.html failing on win7
https://bugs.webkit.org/show_bug.cgi?id=150909
rdar://problem/23539673

Patch by Keith Rollin <Keith Rollin> on 2015-12-03
Reviewed by Darin Adler.

Source/WebCore:

When returning text to be displayed, an <option> element will return
the value of a label attribute if it exists, or the text content as a
fallback. The failing test concerned the display of a <select>
element when it contained a sole <option> element that had a label
attribute set to a single space. When displayed, various
platform-specific bits of code will strip off the leading and trailing
whitespace. However, when WebKit would use this text to measure how
wide the <select> popup menu button should be, it would not strip off
spaces, leading to the calculated width being wider than necessary.
The approach taken to fix this is to strip whitespace in the label
attribute before it is returned from the <option> element.

No new tests. fast/forms/HTMLOptionElement_label03.html had been
marked as being expected to fail in TestExpectations; that test now
succeeds.

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::label):

LayoutTests:

Mark fast/forms/HTMLOptionElement_label03.html as being expected to
pass. Also update some text in HTMLOptionElement_label02.html and
HTMLOptionElement_label03.html so that it no longer refers to our
trying to match IE (which we are no longer doing).

  • fast/forms/HTMLOptionElement_label02.html:
  • fast/forms/HTMLOptionElement_label03.html:
  • platform/win/TestExpectations:
12:44 PM Changeset in webkit [193367] by weinig@apple.com
  • 2 edits in trunk/Source/WebKit2

Need completionHandler-based WebKit C SPI for alert, confirm, and prompt
<rdar://problem/23320863>
https://bugs.webkit.org/show_bug.cgi?id=151708

(Add missing function definitions)

  • UIProcess/API/C/WKPage.cpp:

(WKPageRunJavaScriptAlertResultListenerGetTypeID):
(WKPageRunJavaScriptAlertResultListenerCall):
(WKPageRunJavaScriptConfirmResultListenerGetTypeID):
(WKPageRunJavaScriptConfirmResultListenerCall):
(WKPageRunJavaScriptPromptResultListenerGetTypeID):
(WKPageRunJavaScriptPromptResultListenerCall):

12:39 PM Changeset in webkit [193366] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Try to fix the Windows build.

  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::JSWorkerGlobalScopeBase::javaScriptRuntimeFlags):
(WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):

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

Fix 64-bit Windows build after r193125.
https://bugs.webkit.org/show_bug.cgi?id=151799

Reviewed by Michael Saboff.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::supportsLZCNT):
Use cpuid intrinsic instead of inline assembly.

12:07 PM Changeset in webkit [193364] by beidson@apple.com
  • 14 edits in trunk

Modern IDB: storage/indexeddb/cursor-advance.html fails.
https://bugs.webkit.org/show_bug.cgi?id=151731

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes).

  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/client/IDBCursorImpl.cpp:

(WebCore::IDBClient::IDBCursor::advance): Return a custom exception message for TypeError.

  • Modules/indexeddb/client/IDBCursorImpl.h:
  • Modules/indexeddb/legacy/LegacyCursor.cpp:

(WebCore::LegacyCursor::advance):

  • Modules/indexeddb/legacy/LegacyCursor.h:
  • bindings/js/JSDOMBinding.cpp:

(WebCore::createDOMException):
(WebCore::setDOMException):

  • bindings/js/JSDOMBinding.h:
  • bindings/scripts/IDLAttributes.txt:
  • inspector/InspectorIndexedDBAgent.cpp:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/cursor-advance-expected.txt:
12:06 PM Changeset in webkit [193363] by Brent Fulgham
  • 6 edits
    2 adds in trunk

Allow JavaScript to iterate over plugins for local files
https://bugs.webkit.org/show_bug.cgi?id=151783
<rdar://problem/23692113>

Source/WebCore:

Reviewed by Alexey Proskuryakov.

Test: http/tests/plugins/plugin-javascript-access.html

plugins/plugin-javascript-access.html

  • page/Page.cpp:

(WebCore::Page::showAllPlugins): True if we set the debugging flag to show
all plugins, or if the document's origin is from a local file.

  • page/Page.h:

LayoutTests:

Modify the existing 'local file' plugin tests so that they don't turn on the debugging
flag to allow iterating over all plugins. Then create a new HTTP test (based on the
existing plugin-javascript-access test) to make sure that plugin iteration is blocked
for non-local-file access.

Reviewed by Alexey Proskuryakov.

  • http/tests/plugins/plugin-javascript-access-expected.txt: Added.
  • http/tests/plugins/plugin-javascript-access.html: Added.
  • plugins/plugin-javascript-access.html: Remove unneeded 'internals.setShowAllPlugins' call.
  • plugins/script-tests/navigator-mimeTypes-length.js: Ditto.
12:01 PM Changeset in webkit [193362] by fpizlo@apple.com
  • 29 edits
    2 adds in trunk/Source

FTL B3 should support OSR exit
https://bugs.webkit.org/show_bug.cgi?id=151710

Reviewed by Saam Barati.

Source/JavaScriptCore:

This adds OSR exit support using the same style that I established with lazy slow paths. All of
the work is driven by FTL::LowerDFGToLLVM, and from there any work that needs to be deferred
until after B3 finishes is attached to the stackmap generator. In order to make it easy to port
all of the different forms of OSR exit - invalidation points, exceptions, etc. - the logic for
registering an OSR exit is abstracted behind OSRExitDescriptor and OSRExitHandle.

An issue that I encountered repeatedly in this patch is OSRExitDescriptor being passed as a
reference (&) rather than pointer (*). The new code uses a lot of lambdas that run after the
current frame pops, so the capture list cannot be [&]. I believe that always listing all of the
captured variables is not scalable considering how sophisticated our use of lambdas is. So, it
makes sense to use [=]. But anytime we captured a variable whose type was OSRExitDescriptor&, it
would be captured by value, because that's how references work. One has to be mindful of these
things whenever using [=]. Note that it's not enough to say that we should have listed the
captured variables explicitly - in that case, we still could have made the mistake by forgetting
to put & in front of the variant. The pattern that worked for me to reason about whether I'm
capturing an object or a pointer to an object is to always use pointer types for pointers: either
RefPtr<> when we also want the lambda to prolong the object's life, or * if we are confident that
the object will stay alive. For this reason, this patch changes all code that references
OSRExitDescriptor to use * instead of &. Consistency makes the code easier to grok, and it made
it easier to introduce the required uses of * in places where there were lambdas.

I tested this by running imaging-gaussian-blur, and running some tests that reqiure OSR exit. I'm
not promising that all kinds of exits work, but we have to begin somewhere.

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

(JSC::B3::Compilation::Compilation):
(JSC::B3::Compilation::~Compilation):

  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::addDataSection):
(JSC::B3::Procedure::frameSize):
(JSC::B3::Procedure::calleeSaveRegisters):

  • b3/B3Procedure.h:

(JSC::B3::Procedure::releaseByproducts):
(JSC::B3::Procedure::code):
(JSC::B3::Procedure::takeByproducts): Deleted.

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::setFrameSize):
(JSC::B3::Air::Code::calleeSaveRegisters):

  • b3/air/AirGenerationContext.h:
  • ftl/FTLB3Compile.cpp:

(JSC::FTL::compile):

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • ftl/FTLExceptionHandlerManager.cpp:

(JSC::FTL::ExceptionHandlerManager::lazySlowPathExceptionTarget):
(JSC::FTL::ExceptionHandlerManager::getCallOSRExitCommon):

  • ftl/FTLExitThunkGenerator.cpp:
  • ftl/FTLExitThunkGenerator.h:
  • ftl/FTLJITCode.cpp:

(JSC::FTL::JITCode::JITCode):
(JSC::FTL::JITCode::initializeB3Code):
(JSC::FTL::JITCode::initializeB3Byproducts):
(JSC::FTL::JITCode::initializeExitThunks):
(JSC::FTL::JITCode::validateReferences):
(JSC::FTL::JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite):

  • ftl/FTLJITCode.h:
  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::finalizeFunction):

  • ftl/FTLJITFinalizer.h:
  • ftl/FTLJSCall.cpp:

(JSC::FTL::JSCall::emit):

  • ftl/FTLJSCallBase.cpp:

(JSC::FTL::JSCallBase::emit):

  • ftl/FTLJSTailCall.cpp:

(JSC::FTL::JSTailCall::JSTailCall):
(JSC::FTL::JSTailCall::emit):
(JSC::FTL::DFG::getRegisterWithAddend): Deleted.
(JSC::FTL::m_instructionOffset): Deleted.

  • ftl/FTLJSTailCall.h:

(JSC::FTL::JSTailCall::patchpoint):
(JSC::FTL::JSTailCall::stackmapID):
(JSC::FTL::JSTailCall::estimatedSize):
(JSC::FTL::JSTailCall::operator<):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileInvalidationPoint):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExitArgumentsForPatchpointIfWillCatchException):
(JSC::FTL::DFG::LowerDFGToLLVM::lowBlock):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExitDescriptor):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExit):
(JSC::FTL::DFG::LowerDFGToLLVM::blessSpeculation):
(JSC::FTL::DFG::LowerDFGToLLVM::emitOSRExitCall):
(JSC::FTL::DFG::LowerDFGToLLVM::buildExitArguments):
(JSC::FTL::DFG::LowerDFGToLLVM::callStackmap):
(JSC::FTL::lowerDFGToLLVM):

  • ftl/FTLOSRExit.cpp:

(JSC::FTL::OSRExitDescriptor::OSRExitDescriptor):
(JSC::FTL::OSRExitDescriptor::validateReferences):
(JSC::FTL::OSRExitDescriptor::appendOSRExit):
(JSC::FTL::OSRExitDescriptor::appendOSRExitLater):
(JSC::FTL::OSRExitDescriptor::prepareOSRExitHandle):
(JSC::FTL::OSRExit::OSRExit):
(JSC::FTL::OSRExit::codeLocationForRepatch):
(JSC::FTL::OSRExit::gatherRegistersToSpillForCallIfException):
(JSC::FTL::OSRExit::spillRegistersToSpillSlot):
(JSC::FTL::OSRExit::recoverRegistersFromSpillSlot):
(JSC::FTL::OSRExit::willArriveAtExitFromIndirectExceptionCheck):

  • ftl/FTLOSRExit.h:

(JSC::FTL::OSRExit::considerAddingAsFrequentExitSite):

  • ftl/FTLOSRExitCompilationInfo.h:

(JSC::FTL::OSRExitCompilationInfo::OSRExitCompilationInfo):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::reboxAccordingToFormat):
(JSC::FTL::compileRecovery):
(JSC::FTL::compileStub):
(JSC::FTL::compileFTLOSRExit):

  • ftl/FTLOSRExitHandle.cpp: Added.

(JSC::FTL::OSRExitHandle::emitExitThunk):

  • ftl/FTLOSRExitHandle.h: Added.

(JSC::FTL::OSRExitHandle::OSRExitHandle):

  • ftl/FTLState.cpp:

(JSC::FTL::State::State):
(JSC::FTL::State::~State):

Source/WTF:

Make sure that this has perfect forwarding.

  • wtf/SegmentedVector.h:

(WTF::SegmentedVector::append):
(WTF::SegmentedVector::alloc):

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

Unreviewed build-fix; missing include.

  • html/HTMLVideoElement.cpp:
11:52 AM Changeset in webkit [193360] by beidson@apple.com
  • 5 edits in trunk

Source/WebCore:
Modern IDB: storage/indexeddb/cursor-skip-deleted.html crashes.
https://bugs.webkit.org/show_bug.cgi?id=151794

Reviewed by Alex Christensen.

STL reverse_iterators are a tricky beast.

They are implemented in terms of a normal forward iterator (called the "base" iterator),
and they decrement a copy of that iterator when dereferenced.

So when monitoring deletes from a std::set to check if we should invalidate our current
reverse_iterator, we were incorrectly comparing the deleted key to the value pointed by the
reverse_iterator instead of its base iterator.

Since the iterators in question are bidirectional, anyways, we can just use a single iterator
and either increment or decrement it as needed.

No new tests (At least one failing (crashing) test now passes).

  • Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:

(WebCore::IDBServer::MemoryObjectStoreCursor::objectStoreCleared):
(WebCore::IDBServer::MemoryObjectStoreCursor::keyDeleted):
(WebCore::IDBServer::MemoryObjectStoreCursor::keyAdded):
(WebCore::IDBServer::MemoryObjectStoreCursor::setFirstInRemainingRange):
(WebCore::IDBServer::MemoryObjectStoreCursor::setForwardIteratorFromRemainingRange):
(WebCore::IDBServer::MemoryObjectStoreCursor::setReverseIteratorFromRemainingRange):
(WebCore::IDBServer::MemoryObjectStoreCursor::currentData):
(WebCore::IDBServer::MemoryObjectStoreCursor::incrementForwardIterator):
(WebCore::IDBServer::MemoryObjectStoreCursor::incrementReverseIterator):
(WebCore::IDBServer::MemoryObjectStoreCursor::iterate):
(WebCore::IDBServer::MemoryObjectStoreCursor::firstForwardIteratorInRemainingRange): Deleted.
(WebCore::IDBServer::MemoryObjectStoreCursor::firstReverseIteratorInRemainingRange): Deleted.
(WebCore::IDBServer::MemoryObjectStoreCursor::hasIterators): Deleted.
(WebCore::IDBServer::MemoryObjectStoreCursor::hasValidPosition): Deleted.
(WebCore::IDBServer::MemoryObjectStoreCursor::clearIterators): Deleted.

  • Modules/indexeddb/server/MemoryObjectStoreCursor.h:

LayoutTests:
Modern IDB: storage/indexeddb/cursor-skip-deleted.html fails.
https://bugs.webkit.org/show_bug.cgi?id=151794

Reviewed by Alex Christensen.

  • platform/mac-wk1/TestExpectations:
11:41 AM Changeset in webkit [193359] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r192971. rdar://problem/23726466

11:41 AM Changeset in webkit [193358] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r192922. rdar://problem/23726466

11:41 AM Changeset in webkit [193357] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebKit2

Merge r192811. rdar://problem/23730032

11:34 AM Changeset in webkit [193356] by Simon Fraser
  • 3 edits
    4 adds in trunk/PerformanceTests

Add a basic compositing Animometer test
https://bugs.webkit.org/show_bug.cgi?id=151724

Reviewed by Dean Jackson.

Add a "bouncing particles" test that moves composited layers around, optionally with a filter.

This is added under a new "Miscellaneous" category.

Remove the test templates category from the UI.

  • Animometer/runner/resources/tests.js:
  • Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:

(BouncingCssShape.prototype.animate):

  • Animometer/tests/misc/compositing-transforms.html: Added.
  • Animometer/tests/misc/resources/compositing-transforms.js: Added.

(BouncingCompositedImage):
(BouncingCompositedImage.prototype._move):
(BouncingCompositedImage.prototype.animate):
(CompositingTransformsStage):
(CompositingTransformsStage.prototype.createParticle):
(CompositingTransformsStage.prototype.particleWillBeRemoved):
(CompositedTransformsBenchmark):
(CompositedTransformsBenchmark.prototype.createStage):
(window.benchmarkClient.create):

11:33 AM Changeset in webkit [193355] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION:(r192753): Remote Web Inspector: RemoteInspector::sendMessageToRemote with null connection
https://bugs.webkit.org/show_bug.cgi?id=151789

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-12-03
Reviewed by Timothy Hatcher.

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::sendMessageToRemote):
Bail if the connection is no longer available. It may have
been closed remotely.

11:28 AM Changeset in webkit [193354] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION:(r192753): Remote Web Inspector: Window immediately closes after opening
https://bugs.webkit.org/show_bug.cgi?id=151788

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-12-03
Reviewed by Timothy Hatcher.

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::pushListingsNow):
The key at the outer level was not a string. Ensure it is a
string for backwards compatibility. One day we may use
non-numeric page identifiers as listing keys.

11:27 AM Changeset in webkit [193353] by peavo@outlook.com
  • 3 edits in trunk/Source/WebCore

[WinCairo][MediaFoundation] Main thread can block when session is destroyed.
https://bugs.webkit.org/show_bug.cgi?id=151803

Reviewed by Alex Christensen.

Set flag to make sure that the scheduler thread stops when the session ends.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::stopScheduler):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::processSamplesInQueue):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::schedulerThreadProcPrivate):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:

(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::stopThread):

11:20 AM Changeset in webkit [193352] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Address warnings from the console.assert stripping phase
for console.assert statements lacking a trailing semicolon.

  • UserInterface/Views/View.js:

(WebInspector.View.prototype.makeRootView):
(WebInspector.View.prototype.didDetach):

11:13 AM Changeset in webkit [193351] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/LayoutTests

Skip Inspector tests because the new test harness does not work on the branch currently.

  • platform/mac/TestExpectations:
11:13 AM Changeset in webkit [193350] by timothy@apple.com
  • 15 edits in branches/safari-601-branch/Source/WebInspectorUI

Convert arrow functions and default parameters to vanilla JS so things work on the branch.

  • UserInterface/Base/Main.js:

(WebInspector.createNewTabWithType):

  • UserInterface/Base/URLUtilities.js:

(WebInspector.truncateURL):

  • UserInterface/Controllers/DOMTreeManager.js:

(WebInspector.DOMTreeManager.prototype._buildHighlightConfig):

  • UserInterface/Controllers/DebuggerManager.js:
  • UserInterface/Views/CookieStorageContentView.js:

(WebInspector.CookieStorageContentView.prototype.update):
(WebInspector.CookieStorageContentView.prototype._filterCookies.resourceMatchesStorageDomain):
(WebInspector.CookieStorageContentView.prototype._filterCookies):

  • UserInterface/Views/FindBanner.js:

(WebInspector.FindBanner):

  • UserInterface/Views/NewTabContentView.js:

(WebInspector.NewTabContentView.prototype._allowableTabTypes):

  • UserInterface/Views/Popover.js:

(WebInspector.Popover.prototype.update):

  • UserInterface/Views/ProbeSetDetailsSection.js:

(WebInspector.ProbeSetDetailsSection.prototype._probeSetHasSamples):
(WebInspector.ProbeSetDetailsSection):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeReleased):

  • UserInterface/Views/TabBar.js:

(WebInspector.TabBar.prototype.hasNormalTab):

  • UserInterface/Views/TimelineOverviewGraph.js:

(WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout):
(WebInspector.TimelineOverviewGraph):

  • UserInterface/Views/TimelineRuler.js:

(WebInspector.TimelineRuler.prototype._needsMarkerLayout):
(WebInspector.TimelineRuler.prototype._needsSelectionLayout):

  • UserInterface/Views/VisualStyleBackgroundPicker.js:

(WebInspector.VisualStyleBackgroundPicker.prototype.parseValue):

11:13 AM Changeset in webkit [193349] by timothy@apple.com
  • 4 edits
    3 adds in branches/safari-601-branch

Merge r192592. rdar://problem/23221163

11:13 AM Changeset in webkit [193348] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebCore

Merge r192585. rdar://problem/23221163

11:13 AM Changeset in webkit [193347] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebCore

Merge r188222. rdar://problem/23221163

11:13 AM Changeset in webkit [193346] by timothy@apple.com
  • 4 edits
    2 adds
    2 deletes in branches/safari-601-branch

Merge r186891. rdar://problem/23221163

11:12 AM Changeset in webkit [193345] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192921. rdar://problem/23221163

11:12 AM Changeset in webkit [193344] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192908. rdar://problem/23221163

11:12 AM Changeset in webkit [193343] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192804. rdar://problem/23221163

11:12 AM Changeset in webkit [193342] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192785. rdar://problem/23221163

11:12 AM Changeset in webkit [193341] by timothy@apple.com
  • 5 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192784. rdar://problem/23221163

11:12 AM Changeset in webkit [193340] by jer.noble@apple.com
  • 17 edits in trunk/Source

[iOS] Fullscreen -> PiP should resume to Fullscreen, not inline
https://bugs.webkit.org/show_bug.cgi?id=150906

Reviewed by Simon Fraser.

Source/WebCore:

When restoring the user interface when exiting PiP, we should return to Fullscreen if that
is where fullscreen was initiated from. Additionally, when we "auto-PiP" by backgrounding the
app in Fullscreen mode, we should "auto-un-PiP" when restoring the application to foreground.

Rather than have a separate method to request exiting fullscreen, entering standard fullscreen,
and switching to & from PiP, add a new method setFullscreenMode() which does all three.

  • html/HTMLVideoElement.cpp:

(WebCore::presentationModeToFullscreenMode):
(WebCore::HTMLVideoElement::webkitSetPresentationMode):
(WebCore::HTMLVideoElement::setFullscreenMode):

  • html/HTMLVideoElement.h:

Add methods to for clients to request a specific fullscreen mode, and to query whether
the page is currently visible.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::requestFullscreenMode):
(WebVideoFullscreenControllerContext::isVisible):
(WebVideoFullscreenControllerContext::requestExitFullscreen): Deleted.

  • platform/ios/WebVideoFullscreenModel.h:
  • platform/ios/WebVideoFullscreenModelVideoElement.h:
  • platform/ios/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::requestFullscreenMode):
(WebVideoFullscreenModelVideoElement::isVisible):
(WebVideoFullscreenModelVideoElement::requestExitFullscreen): Deleted.

Track whether returning from PiP should enter fullscreen, or whether foregrounding the app
should cause PiP to return to fullscreen.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.h:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerLayer layoutSublayers]): Renamed from -setBounds:. -layoutSublayers is called

more consistently than -setBounds:, including when a sublayer is added to the layer.

(WebAVPlayerLayerView_stopRoutingVideoToPictureInPicturePlayerLayerView): The PiP WebAVPlayerLayer's

modelVideoLayerFrame property may have been modified, so pass it back up to the fullscreen
layer when exiting PiP.

(WebVideoFullscreenInterfaceAVKit::applicationDidBecomeActive): Request fullscreen if we auto-PiPed.
(WebVideoFullscreenInterfaceAVKit::setupFullscreen): Only recreate owned objects if they did not already exist.
(WebVideoFullscreenInterfaceAVKit::enterFullscreenStandard): If we are in PiP mode, enter fullscreen by stopping PiP.
(WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): requestExitFullscreen() -> requestFullscreenMode().
(WebVideoFullscreenInterfaceAVKit::willStartPictureInPicture): Animate out the fullscreen window, if exiting Fullscreen -> PiP.
(WebVideoFullscreenInterfaceAVKit::didStartPictureInPicture): Set m_shouldReturnToFullscreenAfterEnteringForeground if we auto-PiPed.
(WebVideoFullscreenInterfaceAVKit::failedToStartPictureInPicture): requestExitFullscreen() -> requestFullscreenMode().
(WebVideoFullscreenInterfaceAVKit::willStopPictureInPicture): If we are returning from PiP -> Fullscreen, do not hide the fullscreen window.
(WebVideoFullscreenInterfaceAVKit::didStopPictureInPicture): If we are returning from PiP -> Fullscreen, show the controls and notify clients.
(WebVideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler): Animate in the fullscreen window, if returning from PiP -> Fullscreen.
(WebVideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason): Set m_shouldReturnToFullscreenWhenStoppingPiP if we are entering PiP from Fullscreen.

  • platform/spi/cocoa/AVKitSPI.h:

Source/WebKit2:

Add methods to pass isVisible(), applicationDidBecomeActive(), and requestFullscreenMode()
to and from models and interfaces.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidBecomeActive): Notify the fullscreen manager, if preset.

  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenModelContext::requestFullscreenMode): Renamed from requestExitFullscreen(); takes a mode enum.
(WebKit::WebVideoFullscreenModelContext::isVisible): Added.
(WebKit::WebVideoFullscreenManagerProxy::applicationDidBecomeActive): Pass to all existing interfaces.
(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Do not re-create the view if it already exists.
(WebKit::WebVideoFullscreenManagerProxy::requestFullscreenMode): Renamed from requestExitFullscreen(); takes a mode enum.
(WebKit::WebVideoFullscreenManagerProxy::isVisible): Added. Query Page::isVisible() and Page::isInWindow(), the latter because

PiP will cause Page::isVisible() to be TRUE even when the containing tab is backgrounded.

(WebKit::WebVideoFullscreenModelContext::requestExitFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::requestExitFullscreen): Deleted.

  • WebProcess/ios/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement): Only resize the view if we are not already in one of

the fullscreen modes.

(WebKit::WebVideoFullscreenManager::requestFullscreenMode): Renamed from requestExitFullscreen().
(WebKit::WebVideoFullscreenManager::requestExitFullscreen): Deleted.

11:12 AM Changeset in webkit [193339] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192771. rdar://problem/23221163

11:12 AM Changeset in webkit [193338] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192764. rdar://problem/23221163

11:12 AM Changeset in webkit [193337] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192757. rdar://problem/23221163

11:12 AM Changeset in webkit [193336] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192755. rdar://problem/23221163

11:12 AM Changeset in webkit [193335] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source

Merge r192745. rdar://problem/23221163

11:11 AM Changeset in webkit [193334] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192735. rdar://problem/23221163

11:11 AM Changeset in webkit [193333] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192719. rdar://problem/23221163

11:11 AM Changeset in webkit [193332] by timothy@apple.com
  • 8 edits
    1 move
    3 adds
    1 delete in branches/safari-601-branch/Source/WebInspectorUI

Merge r192705. rdar://problem/23221163

11:11 AM Changeset in webkit [193331] by timothy@apple.com
  • 13 edits
    2 adds in branches/safari-601-branch/Source

Merge r192662. rdar://problem/23221163

11:11 AM Changeset in webkit [193330] by timothy@apple.com
  • 7 edits
    4 adds in branches/safari-601-branch

Merge r192641. rdar://problem/23221163

11:11 AM Changeset in webkit [193329] by timothy@apple.com
  • 8 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192616. rdar://problem/23221163

11:11 AM Changeset in webkit [193328] by timothy@apple.com
  • 4 edits
    2 adds in branches/safari-601-branch

Merge r192615. rdar://problem/23221163

11:11 AM Changeset in webkit [193327] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192614. rdar://problem/23221163

11:10 AM Changeset in webkit [193326] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192613. rdar://problem/23221163

11:10 AM Changeset in webkit [193325] by timothy@apple.com
  • 9 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192612. rdar://problem/23221163

11:10 AM Changeset in webkit [193324] by timothy@apple.com
  • 7 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192594. rdar://problem/23221163

11:10 AM Changeset in webkit [193323] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192584. rdar://problem/23221163

11:10 AM Changeset in webkit [193322] by timothy@apple.com
  • 6 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192560. rdar://problem/23221163

11:10 AM Changeset in webkit [193321] by timothy@apple.com
  • 5 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192551. rdar://problem/23221163

11:10 AM Changeset in webkit [193320] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192408. rdar://problem/23221163

11:10 AM Changeset in webkit [193319] by timothy@apple.com
  • 7 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192383. rdar://problem/23221163

11:10 AM Changeset in webkit [193318] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192363. rdar://problem/23221163

11:10 AM Changeset in webkit [193317] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192344. rdar://problem/23221163

11:09 AM Changeset in webkit [193316] by timothy@apple.com
  • 8 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192327. rdar://problem/23221163

11:09 AM Changeset in webkit [193315] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192283. rdar://problem/23221163

11:09 AM Changeset in webkit [193314] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192272. rdar://problem/23221163

11:09 AM Changeset in webkit [193313] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192264. rdar://problem/23221163

11:09 AM Changeset in webkit [193312] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192198. rdar://problem/23221163

11:09 AM Changeset in webkit [193311] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192188. rdar://problem/23221163

11:09 AM Changeset in webkit [193310] by timothy@apple.com
  • 6 edits
    3 adds in branches/safari-601-branch/Source/WebInspectorUI

Merge r192165. rdar://problem/23221163

11:09 AM Changeset in webkit [193309] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192110. rdar://problem/23221163

11:09 AM Changeset in webkit [193308] by timothy@apple.com
  • 16 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192086. rdar://problem/23221163

11:09 AM Changeset in webkit [193307] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192076. rdar://problem/23221163

11:08 AM Changeset in webkit [193306] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192070. rdar://problem/23221163

11:08 AM Changeset in webkit [193305] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192065. rdar://problem/23221163

11:08 AM Changeset in webkit [193304] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192063. rdar://problem/23221163

11:08 AM Changeset in webkit [193303] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192050. rdar://problem/23221163

11:08 AM Changeset in webkit [193302] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192049. rdar://problem/23221163

11:08 AM Changeset in webkit [193301] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192048. rdar://problem/23221163

11:08 AM Changeset in webkit [193300] by timothy@apple.com
  • 5 edits
    2 adds in branches/safari-601-branch

Merge r192040. rdar://problem/23221163

11:08 AM Changeset in webkit [193299] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r192005. rdar://problem/23221163

11:08 AM Changeset in webkit [193298] by timothy@apple.com
  • 22 edits
    1 add in branches/safari-601-branch/Source/WebInspectorUI

Merge r191976. rdar://problem/23221163

11:07 AM Changeset in webkit [193297] by timothy@apple.com
  • 11 edits in branches/safari-601-branch/Source

Merge r191967. rdar://problem/23221163

11:07 AM Changeset in webkit [193296] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191817. rdar://problem/23221163

11:07 AM Changeset in webkit [193295] by timothy@apple.com
  • 6 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191770. rdar://problem/23221163

11:07 AM Changeset in webkit [193294] by timothy@apple.com
  • 6 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191764. rdar://problem/23221163

11:07 AM Changeset in webkit [193293] by timothy@apple.com
  • 11 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191740. rdar://problem/23221163

11:07 AM Changeset in webkit [193292] by timothy@apple.com
  • 10 edits in branches/safari-601-branch/Source

Merge r191732. rdar://problem/23221163

11:07 AM Changeset in webkit [193291] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191715. rdar://problem/23221163

11:07 AM Changeset in webkit [193290] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191714. rdar://problem/23221163

11:07 AM Changeset in webkit [193289] by timothy@apple.com
  • 9 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191703. rdar://problem/23221163

11:06 AM Changeset in webkit [193288] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191697. rdar://problem/23221163

11:06 AM Changeset in webkit [193287] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191696. rdar://problem/23221163

11:06 AM Changeset in webkit [193286] by weinig@apple.com
  • 13 edits
    2 moves
    4 adds
    2 deletes in trunk

Promise callbacks should be called at microtask checkpoints
https://bugs.webkit.org/show_bug.cgi?id=147933

Reviewed by Chris Dumez.

Source/WebCore:

  • Re-names MicroTaskQueue and MicroTask to MicrotaskQueue and Microtask to match the spec language.
  • Re-implements MicrotaskQueue and Microtask support suspended Microtasks (via the new KeepInQueue result value a Microtask can have when running) and correct behavior when Microtasks are added to the queue during a Microtask checkpoint.
  • MicrotaskQueue now has a mainThreadQueue() static function, replacing the old singleton() function, which can be used for the Document (non-Worker) Microtasks. For Workers, the a MicrotaskQueue can be separately allocated for each WorkerGlobalScope (though this was not done in this change).
  • Adds a helper subclass of Microtask, ActiveDOMCallbackMicrotask, for Microtasks that are per-ScriptExecutationContext, and need to act as ActiveDOMCallbacks.
  • Re-implement Document (non-Worker) Promises on top of ActiveDOMCallbackMicrotask.
  • Re-implement MutationObserver delivery on top of Microtask.

Layout Test:

fast/dom/microtask-promise-mutation-observer-order.html

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

Add new files.

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::queueTaskToEventLoop):
Switch to using ActiveDOMCallbackMicrotask/MicrotaskQueue rather than ScriptExecutionContext's Task mechanism
for JavaScriptCore tasks.

  • bindings/js/JSMainThreadExecState.cpp:

(WebCore::JSMainThreadExecState::didLeaveScriptContext):
Perform a microtask checkpoint rather than calling MutationObserver code explicitly now that mutation observers
use microtasks.

  • dom/ActiveDOMCallbackMicrotask.cpp: Added.

(WebCore::ActiveDOMCallbackMicrotask::ActiveDOMCallbackMicrotask):
(WebCore::ActiveDOMCallbackMicrotask::~ActiveDOMCallbackMicrotask):
(WebCore::ActiveDOMCallbackMicrotask::run):
(WebCore::ActiveDOMCallbackMicrotask::contextDestroyed):

  • dom/ActiveDOMCallbackMicrotask.h: Added.

Add a helper subclass of Microtask which behaves like a ActiveDOMCallback (e.g. supports suspension
and context destruction).

  • dom/MicroTask.cpp: Renamed to Microtasks.cpp.
  • dom/MicroTask.h: Renamed to Microtasks.h.
  • dom/Microtasks.cpp: Renamed from Source/WebCore/dom/MicroTask.cpp.

(WebCore::Microtask::removeSelfFromQueue):
(WebCore::MicrotaskQueue::mainThreadQueue):
(WebCore::MicrotaskQueue::append):
(WebCore::MicrotaskQueue::remove):
(WebCore::MicrotaskQueue::performMicrotaskCheckpoint):
(WebCore::MicroTaskQueue::singleton): Deleted.
(WebCore::MicroTaskQueue::queueMicroTask): Deleted.
(WebCore::MicroTaskQueue::runMicroTasks): Deleted.

  • dom/Microtasks.h: Renamed from Source/WebCore/dom/MicroTask.h.

(WebCore::Microtask::~Microtask):
(WebCore::MicrotaskQueue::MicrotaskQueue):
(WebCore::MicrotaskQueue::~MicrotaskQueue):
(WebCore::MicroTask::~MicroTask): Deleted.
(WebCore::MicroTaskQueue::~MicroTaskQueue): Deleted.
(WebCore::MicroTaskQueue::MicroTaskQueue): Deleted.
Re-implement MicrotaskQueue and Microtask to support Microtask suspension (via the KeepInQueue result
value) and correct behavior when Microtasks are queued during checkpoints.

  • dom/MutationObserver.cpp:

(WebCore::suspendedMutationObservers):
(WebCore::MutationObserverMicrotask::MutationObserverMicrotask):
(WebCore::MutationObserverMicrotask::~MutationObserverMicrotask):
(WebCore::MutationObserverMicrotask::run):
(WebCore::queueMutationObserverCompoundMicrotask):
(WebCore::MutationObserver::enqueueMutationRecord):
(WebCore::MutationObserver::setHasTransientRegistration):

  • dom/MutationObserver.h:

Re-implement MutationObserver delivery on top of Microtasks.

  • dom/ScriptRunner.cpp:

(WebCore::ScriptRunner::timerFired):
Remove unnecessary call to runMicroTasks().

  • html/parser/HTMLScriptRunner.cpp:

(WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
(WebCore::HTMLScriptRunner::runScript):
Remove calls to MutationObserver::deliverAllMutations() now that the MicrotaskQueue will take care of it.

(WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
Remove unnecessary call to runMicroTasks().

  • testing/Internals.cpp:

(WebCore::Internals::queueMicroTask):
Use ActiveDOMCallbackMicrotask rather than a custom test subclass.

  • testing/MicroTaskTest.cpp: Removed.
  • testing/MicroTaskTest.h: Removed.

Remove custom test subclass of Microtask, just use ActiveDOMCallbackMicrotask directly.

LayoutTests:

  • fast/dom/microtask-promise-mutation-observer-order-expected.txt: Added.
  • fast/dom/microtask-promise-mutation-observer-order.html: Added.
11:06 AM Changeset in webkit [193285] by timothy@apple.com
  • 179 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191693. rdar://problem/23221163

11:05 AM Changeset in webkit [193284] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source

Merge r191692. rdar://problem/23221163

11:05 AM Changeset in webkit [193283] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191689. rdar://problem/23221163

11:05 AM Changeset in webkit [193282] by timothy@apple.com
  • 11 edits in branches/safari-601-branch/Source

Merge r191651. rdar://problem/23221163

11:05 AM Changeset in webkit [193281] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191640. rdar://problem/23221163

11:05 AM Changeset in webkit [193280] by timothy@apple.com
  • 5 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191639. rdar://problem/23221163

11:05 AM Changeset in webkit [193279] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191615. rdar://problem/23221163

11:04 AM Changeset in webkit [193278] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191614. rdar://problem/23221163

11:04 AM Changeset in webkit [193277] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191613. rdar://problem/23221163

11:04 AM Changeset in webkit [193276] by timothy@apple.com
  • 5 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191612. rdar://problem/23221163

11:04 AM Changeset in webkit [193275] by timothy@apple.com
  • 5 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191519. rdar://problem/23221163

11:04 AM Changeset in webkit [193274] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191496. rdar://problem/23221163

11:04 AM Changeset in webkit [193273] by timothy@apple.com
  • 13 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191493. rdar://problem/23221163

11:04 AM Changeset in webkit [193272] by timothy@apple.com
  • 26 edits
    6 adds
    16 deletes in branches/safari-601-branch/Source/WebInspectorUI

Merge r191488. rdar://problem/23221163

11:04 AM Changeset in webkit [193271] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191486. rdar://problem/23221163

11:03 AM Changeset in webkit [193270] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191478. rdar://problem/23221163

11:03 AM Changeset in webkit [193269] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191464. rdar://problem/23221163

11:03 AM Changeset in webkit [193268] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191454. rdar://problem/23221163

11:03 AM Changeset in webkit [193267] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191421. rdar://problem/23221163

11:03 AM Changeset in webkit [193266] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191418. rdar://problem/23221163

11:03 AM Changeset in webkit [193265] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191417. rdar://problem/23221163

11:03 AM Changeset in webkit [193264] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191416. rdar://problem/23221163

11:03 AM Changeset in webkit [193263] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191387. rdar://problem/23221163

11:03 AM Changeset in webkit [193262] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191371. rdar://problem/23221163

11:03 AM Changeset in webkit [193261] by timothy@apple.com
  • 11 edits
    2 adds in branches/safari-601-branch

Merge r191355. rdar://problem/23221163

11:02 AM Changeset in webkit [193260] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191281. rdar://problem/23221163

11:02 AM Changeset in webkit [193259] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191274. rdar://problem/23221163

11:02 AM Changeset in webkit [193258] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191187. rdar://problem/23221163

11:02 AM Changeset in webkit [193257] by timothy@apple.com
  • 7 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191071. rdar://problem/23221163

11:02 AM Changeset in webkit [193256] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191004. rdar://problem/23221163

11:02 AM Changeset in webkit [193255] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r191001. rdar://problem/23221163

11:02 AM Changeset in webkit [193254] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190839. rdar://problem/23221163

11:02 AM Changeset in webkit [193253] by timothy@apple.com
  • 5 edits in branches/safari-601-branch

Merge r190780. rdar://problem/23221163

11:02 AM Changeset in webkit [193252] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190727. rdar://problem/23221163

11:02 AM Changeset in webkit [193251] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190651. rdar://problem/23221163

11:02 AM Changeset in webkit [193250] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190640. rdar://problem/23221163

11:01 AM Changeset in webkit [193249] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190632. rdar://problem/23221163

11:01 AM Changeset in webkit [193248] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190571. rdar://problem/23221163

11:01 AM Changeset in webkit [193247] by timothy@apple.com
  • 4 edits in branches/safari-601-branch

Merge r190551. rdar://problem/23221163

11:01 AM Changeset in webkit [193246] by timothy@apple.com
  • 13 edits in branches/safari-601-branch/Source

Merge r190542. rdar://problem/23221163

11:01 AM Changeset in webkit [193245] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190540. rdar://problem/23221163

11:01 AM Changeset in webkit [193244] by timothy@apple.com
  • 5 edits
    2 adds in branches/safari-601-branch

Merge r190528. rdar://problem/23221163

11:01 AM Changeset in webkit [193243] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190521. rdar://problem/23221163

11:01 AM Changeset in webkit [193242] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190506. rdar://problem/23221163

11:01 AM Changeset in webkit [193241] by timothy@apple.com
  • 6 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190448. rdar://problem/23221163

11:01 AM Changeset in webkit [193240] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190436. rdar://problem/23221163

11:00 AM Changeset in webkit [193239] by timothy@apple.com
  • 5 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190426. rdar://problem/23221163

11:00 AM Changeset in webkit [193238] by timothy@apple.com
  • 6 edits in branches/safari-601-branch/Source

Merge r190416. rdar://problem/23221163

11:00 AM Changeset in webkit [193237] by timothy@apple.com
  • 6 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190381. rdar://problem/23221163

11:00 AM Changeset in webkit [193236] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190377. rdar://problem/23221163

11:00 AM Changeset in webkit [193235] by timothy@apple.com
  • 6 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190376. rdar://problem/23221163

11:00 AM Changeset in webkit [193234] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190342. rdar://problem/23221163

11:00 AM Changeset in webkit [193233] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190341. rdar://problem/23221163

11:00 AM Changeset in webkit [193232] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190286. rdar://problem/23221163

11:00 AM Changeset in webkit [193231] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190285. rdar://problem/23221163

11:00 AM Changeset in webkit [193230] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190186. rdar://problem/23221163

10:59 AM Changeset in webkit [193229] by timothy@apple.com
  • 6 edits in branches/safari-601-branch

Merge r190184. rdar://problem/23221163

10:59 AM Changeset in webkit [193228] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190149. rdar://problem/23221163

10:59 AM Changeset in webkit [193227] by timothy@apple.com
  • 9 edits
    1 add in branches/safari-601-branch

Merge r190146. rdar://problem/23221163

10:59 AM Changeset in webkit [193226] by timothy@apple.com
  • 7 edits in branches/safari-601-branch

Merge r190110. rdar://problem/23221163

10:59 AM Changeset in webkit [193225] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r190058. rdar://problem/23221163

10:59 AM Changeset in webkit [193224] by timothy@apple.com
  • 8 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189965. rdar://problem/23221163

10:59 AM Changeset in webkit [193223] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189933. rdar://problem/23221163

10:59 AM Changeset in webkit [193222] by timothy@apple.com
  • 5 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189924. rdar://problem/23221163

10:59 AM Changeset in webkit [193221] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189923. rdar://problem/23221163

10:58 AM Changeset in webkit [193220] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189909. rdar://problem/23221163

10:58 AM Changeset in webkit [193219] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189907. rdar://problem/23221163

10:58 AM Changeset in webkit [193218] by timothy@apple.com
  • 12 edits in branches/safari-601-branch/Source

Merge r189883. rdar://problem/23221163

10:58 AM Changeset in webkit [193217] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189872. rdar://problem/23221163

10:58 AM Changeset in webkit [193216] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189845. rdar://problem/23221163

10:58 AM Changeset in webkit [193215] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189828. rdar://problem/23221163

10:58 AM Changeset in webkit [193214] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189816. rdar://problem/23221163

10:58 AM Changeset in webkit [193213] by timothy@apple.com
  • 6 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189815. rdar://problem/23221163

10:58 AM Changeset in webkit [193212] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189814. rdar://problem/23221163

10:58 AM Changeset in webkit [193211] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189763. rdar://problem/23221163

10:57 AM Changeset in webkit [193210] by timothy@apple.com
  • 5 edits in branches/safari-601-branch

Merge r189761. rdar://problem/23221163

10:57 AM Changeset in webkit [193209] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189759. rdar://problem/23221163

10:57 AM Changeset in webkit [193208] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189733. rdar://problem/23221163

10:57 AM Changeset in webkit [193207] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189593. rdar://problem/23221163

10:57 AM Changeset in webkit [193206] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189590. rdar://problem/23221163

10:57 AM Changeset in webkit [193205] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189508. rdar://problem/23221163

10:57 AM Changeset in webkit [193204] by timothy@apple.com
  • 5 edits
    4 adds in branches/safari-601-branch

Merge r189415. rdar://problem/23221163

10:57 AM Changeset in webkit [193203] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189385. rdar://problem/23221163

10:57 AM Changeset in webkit [193202] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189374. rdar://problem/23221163

10:57 AM Changeset in webkit [193201] by timothy@apple.com
  • 5 edits
    8 adds in branches/safari-601-branch

Merge r189373. rdar://problem/23221163

10:57 AM Changeset in webkit [193200] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189238. rdar://problem/23221163

10:56 AM Changeset in webkit [193199] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189236. rdar://problem/23221163

10:56 AM Changeset in webkit [193198] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189232. rdar://problem/23221163

10:56 AM Changeset in webkit [193197] by timothy@apple.com
  • 11 edits
    2 copies
    1 delete in branches/safari-601-branch/Source/WebInspectorUI

Merge r189220. rdar://problem/23221163

10:56 AM Changeset in webkit [193196] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189210. rdar://problem/23221163

10:56 AM Changeset in webkit [193195] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189206. rdar://problem/23221163

10:56 AM Changeset in webkit [193194] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189190. rdar://problem/23221163

10:56 AM Changeset in webkit [193193] by timothy@apple.com
  • 4 edits
    1 move
    1 add in branches/safari-601-branch/Source/WebInspectorUI

Merge r189189. rdar://problem/23221163

10:56 AM Changeset in webkit [193192] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189183. rdar://problem/23221163

10:56 AM Changeset in webkit [193191] by timothy@apple.com
  • 5 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189142. rdar://problem/23221163

10:55 AM Changeset in webkit [193190] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189141. rdar://problem/23221163

10:55 AM Changeset in webkit [193189] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189118. rdar://problem/23221163

10:55 AM Changeset in webkit [193188] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r192753): Remote Web Inspector: Enabling Remote Inspection on Auto Inspect candidate Debuggable doesn't show up in debuggers
https://bugs.webkit.org/show_bug.cgi?id=151792

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-12-03
Reviewed by Brian Burg.

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::updateAutomaticInspectionCandidate):
When m_debuggablesMap was split into both m_targetMap and m_listingMap
this particular case was missed in updating both the target and listing
when the target is updated. We should match RemoteInspector::updateTarget
and update the listing map as the debuggable may have changed to be
allowed to debug.

10:55 AM Changeset in webkit [193187] by timothy@apple.com
  • 15 edits
    4 adds in branches/safari-601-branch

Merge r189104. rdar://problem/23221163

10:55 AM Changeset in webkit [193186] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189096. rdar://problem/23221163

10:55 AM Changeset in webkit [193185] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189095. rdar://problem/23221163

10:55 AM Changeset in webkit [193184] by timothy@apple.com
  • 14 edits in branches/safari-601-branch

Merge r189032. rdar://problem/23221163

10:55 AM Changeset in webkit [193183] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189008. rdar://problem/23221163

10:55 AM Changeset in webkit [193182] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r189006. rdar://problem/23221163

10:55 AM Changeset in webkit [193181] by timothy@apple.com
  • 17 edits
    11 adds in branches/safari-601-branch

Merge r189002. rdar://problem/23221163

10:54 AM Changeset in webkit [193180] by timothy@apple.com
  • 40 edits
    2 deletes in branches/safari-601-branch/Source/WebInspectorUI

Merge r188993. rdar://problem/23221163

10:54 AM Changeset in webkit [193179] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188967. rdar://problem/23221163

10:54 AM Changeset in webkit [193178] by timothy@apple.com
  • 26 edits in branches/safari-601-branch

Merge r188965. rdar://problem/23221163

10:54 AM Changeset in webkit [193177] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188964. rdar://problem/23221163

10:54 AM Changeset in webkit [193176] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188963. rdar://problem/23221163

10:53 AM Changeset in webkit [193175] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188962. rdar://problem/23221163

10:53 AM Changeset in webkit [193174] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188946. rdar://problem/23221163

10:53 AM Changeset in webkit [193173] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188916. rdar://problem/23221163

10:53 AM Changeset in webkit [193172] by timothy@apple.com
  • 4 edits
    4 adds in branches/safari-601-branch

Merge r188897. rdar://problem/23221163

10:53 AM Changeset in webkit [193171] by timothy@apple.com
  • 5 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188876. rdar://problem/23221163

10:53 AM Changeset in webkit [193170] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188862. rdar://problem/23221163

10:53 AM Changeset in webkit [193169] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188861. rdar://problem/23221163

10:53 AM Changeset in webkit [193168] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188848. rdar://problem/23221163

10:53 AM Changeset in webkit [193167] by timothy@apple.com
  • 14 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188837. rdar://problem/23221163

10:53 AM Changeset in webkit [193166] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188818. rdar://problem/23221163

10:52 AM Changeset in webkit [193165] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188816. rdar://problem/23221163

10:52 AM Changeset in webkit [193164] by timothy@apple.com
  • 7 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188760. rdar://problem/23221163

10:52 AM Changeset in webkit [193163] by timothy@apple.com
  • 4 edits
    6 adds in branches/safari-601-branch

Merge r188756. rdar://problem/23221163

10:52 AM Changeset in webkit [193162] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188750. rdar://problem/23221163

10:52 AM Changeset in webkit [193161] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188749. rdar://problem/23221163

10:52 AM Changeset in webkit [193160] by timothy@apple.com
  • 5 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188739. rdar://problem/23221163

10:52 AM Changeset in webkit [193159] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188733. rdar://problem/23221163

10:52 AM Changeset in webkit [193158] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188732. rdar://problem/23221163

10:52 AM Changeset in webkit [193157] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188731. rdar://problem/23221163

10:52 AM Changeset in webkit [193156] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188730. rdar://problem/23221163

10:51 AM Changeset in webkit [193155] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188728. rdar://problem/23221163

10:51 AM Changeset in webkit [193154] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188727. rdar://problem/23221163

10:51 AM Changeset in webkit [193153] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188725. rdar://problem/23221163

10:51 AM Changeset in webkit [193152] by timothy@apple.com
  • 26 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188708. rdar://problem/23221163

10:51 AM Changeset in webkit [193151] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188691. rdar://problem/23221163

10:51 AM Changeset in webkit [193150] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188683. rdar://problem/23221163

10:51 AM Changeset in webkit [193149] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188682. rdar://problem/23221163

10:51 AM Changeset in webkit [193148] by timothy@apple.com
  • 23 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188679. rdar://problem/23221163

10:51 AM Changeset in webkit [193147] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188678. rdar://problem/23221163

10:50 AM Changeset in webkit [193146] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188676. rdar://problem/23221163

10:50 AM Changeset in webkit [193145] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188670. rdar://problem/23221163

10:50 AM Changeset in webkit [193144] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188667. rdar://problem/23221163

10:50 AM Changeset in webkit [193143] by timothy@apple.com
  • 1 edit
    3 adds in branches/safari-601-branch/Source/WebInspectorUI

Merge r188665. rdar://problem/23221163

10:50 AM Changeset in webkit [193142] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188664. rdar://problem/23221163

10:50 AM Changeset in webkit [193141] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188655. rdar://problem/23221163

10:50 AM Changeset in webkit [193140] by timothy@apple.com
  • 10 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188650. rdar://problem/23221163

10:50 AM Changeset in webkit [193139] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188645. rdar://problem/23221163

10:50 AM Changeset in webkit [193138] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188637. rdar://problem/23221163

10:50 AM Changeset in webkit [193137] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188636. rdar://problem/23221163

10:50 AM Changeset in webkit [193136] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188635. rdar://problem/23221163

10:49 AM Changeset in webkit [193135] by timothy@apple.com
  • 14 edits
    4 adds in branches/safari-601-branch

Merge r188631. rdar://problem/23221163

10:49 AM Changeset in webkit [193134] by dbates@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

ASSERT_WITH_SECURITY_IMPLICATION in WebCore::DocumentOrderedMap::add()
https://bugs.webkit.org/show_bug.cgi?id=126662
<rdar://problem/15775508>

Reviewed by Brent Fulgham.

Add test to ensure that we do not assert when inserting a subtree that has an element with
a duplicate id before removing the original subtree.

  • svg/custom/insert-subtree-with-duplicate-id-before-removing-subtree-expected.txt: Added.
  • svg/custom/insert-subtree-with-duplicate-id-before-removing-subtree.svg: Added.
10:49 AM Changeset in webkit [193133] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188630. rdar://problem/23221163

10:49 AM Changeset in webkit [193132] by timothy@apple.com
  • 7 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188629. rdar://problem/23221163

10:49 AM Changeset in webkit [193131] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188628. rdar://problem/23221163

10:49 AM Changeset in webkit [193130] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188626. rdar://problem/23221163

10:49 AM Changeset in webkit [193129] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188621. rdar://problem/23221163

10:49 AM Changeset in webkit [193128] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188617. rdar://problem/23221163

10:49 AM Changeset in webkit [193127] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188616. rdar://problem/23221163

10:49 AM Changeset in webkit [193126] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188614. rdar://problem/23221163

10:49 AM Changeset in webkit [193125] by commit-queue@webkit.org
  • 15 edits in trunk/Source/JavaScriptCore

[JSC] Add CLZ support to B3
https://bugs.webkit.org/show_bug.cgi?id=151799

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-12-03
Reviewed by Michael Saboff.

Previously we were counting on LLVM to select LZCNT
when its available.
Since we have to do that ourself now, I added feature
detection based on the CPUID. The MacroAssembler just
pick the best available lowering based on the platform.

  • assembler/MacroAssemblerX86Common.cpp:
  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::countLeadingZeros32):
(JSC::MacroAssemblerX86Common::supportsLZCNT):
(JSC::MacroAssemblerX86Common::clz32AfterBsr):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::countLeadingZeros64):
(JSC::MacroAssemblerX86_64::clz64AfterBsr):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::lzcnt_rr):
(JSC::X86Assembler::lzcnt_mr):
(JSC::X86Assembler::lzcntq_rr):
(JSC::X86Assembler::lzcntq_mr):
(JSC::X86Assembler::bsr_mr):
(JSC::X86Assembler::bsrq_rr):
(JSC::X86Assembler::bsrq_mr):

  • b3/B3LowerToAir.cpp:

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

  • b3/B3Opcode.cpp:

(WTF::printInternal):

  • b3/B3Opcode.h:
  • b3/B3Validate.cpp:
  • b3/B3Value.cpp:

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

  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::countLeadingZero):
(JSC::B3::testClzArg64):
(JSC::B3::testClzMem64):
(JSC::B3::testClzArg32):
(JSC::B3::testClzMem32):
(JSC::B3::doubleOperands):
(JSC::B3::run):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::ctlz32):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileArithClz32):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::ctlz32):

10:49 AM Changeset in webkit [193124] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188601. rdar://problem/23221163

10:48 AM Changeset in webkit [193123] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188586. rdar://problem/23221163

10:48 AM Changeset in webkit [193122] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188581. rdar://problem/23221163

10:48 AM Changeset in webkit [193121] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188578. rdar://problem/23221163

10:48 AM Changeset in webkit [193120] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188576. rdar://problem/23221163

10:48 AM Changeset in webkit [193119] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188573. rdar://problem/23221163

10:48 AM Changeset in webkit [193118] by timothy@apple.com
  • 7 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188572. rdar://problem/23221163

10:48 AM Changeset in webkit [193117] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188571. rdar://problem/23221163

10:48 AM Changeset in webkit [193116] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188570. rdar://problem/23221163

10:48 AM Changeset in webkit [193115] by timothy@apple.com
  • 5 edits in branches/safari-601-branch/Source

Merge r188549. rdar://problem/23221163

10:48 AM Changeset in webkit [193114] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188546. rdar://problem/23221163

10:48 AM Changeset in webkit [193113] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188506. rdar://problem/23221163

10:47 AM Changeset in webkit [193112] by timothy@apple.com
  • 5 edits
    2 adds in branches/safari-601-branch/Source/WebInspectorUI

Merge r188503. rdar://problem/23221163

10:47 AM Changeset in webkit [193111] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188496. rdar://problem/23221163

10:47 AM Changeset in webkit [193110] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188494. rdar://problem/23221163

10:47 AM Changeset in webkit [193109] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188491. rdar://problem/23221163

10:47 AM Changeset in webkit [193108] by timothy@apple.com
  • 9 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188490. rdar://problem/23221163

10:47 AM Changeset in webkit [193107] by timothy@apple.com
  • 1 edit
    5 adds in branches/safari-601-branch/Source/WebInspectorUI

Merge r188484. rdar://problem/23221163

10:47 AM Changeset in webkit [193106] by timothy@apple.com
  • 2 edits
    5 adds in branches/safari-601-branch/Source/WebInspectorUI

Merge r188483. rdar://problem/23221163

10:47 AM Changeset in webkit [193105] by timothy@apple.com
  • 3 edits
    1 add in branches/safari-601-branch/Source/WebInspectorUI

Merge r188480. rdar://problem/23221163

10:47 AM Changeset in webkit [193104] by timothy@apple.com
  • 3 edits
    2 adds in branches/safari-601-branch/Source/WebInspectorUI

Merge r188479. rdar://problem/23221163

10:46 AM Changeset in webkit [193103] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188442. rdar://problem/23221163

10:46 AM Changeset in webkit [193102] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188429. rdar://problem/23221163

10:46 AM Changeset in webkit [193101] by beidson@apple.com
  • 10 edits in trunk/Source/WebCore

Add GetterRaisesExceptionWithMessage and SetterRaisesExceptionWithMessage to the code generator.
https://bugs.webkit.org/show_bug.cgi?id=151807

Reviewed by Alex Christensen.

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

While we're at it, rework the existing 'RaisesExceptionWithMessage' concept to use a struct instead of
two separate variables to reduce complexity.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateImplementationFunctionCall):
(GenerateConstructorDefinition):
(GenerateParametersCheck): Deleted.
(GenerateReturnParameters): Deleted.

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

(webkit_dom_test_obj_set_property):
(webkit_dom_test_obj_get_property):
(webkit_dom_test_obj_class_init):
(webkit_dom_test_obj_get_attr_with_getter_exception_with_message):
(webkit_dom_test_obj_set_attr_with_getter_exception_with_message):
(webkit_dom_test_obj_get_attr_with_setter_exception_with_message):
(webkit_dom_test_obj_set_attr_with_setter_exception_with_message):

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

(WebCore::jsTestObjAttrWithGetterExceptionWithMessage):
(WebCore::jsTestObjAttrWithSetterExceptionWithMessage):
(WebCore::setJSTestObjAttrWithGetterExceptionWithMessage):
(WebCore::setJSTestObjAttrWithSetterExceptionWithMessage):
(WebCore::jsTestObjPrototypeFunctionMethodWithExceptionWithMessage):

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

(-[DOMTestObj attrWithGetterExceptionWithMessage]):
(-[DOMTestObj setAttrWithGetterExceptionWithMessage:]):
(-[DOMTestObj attrWithSetterExceptionWithMessage]):
(-[DOMTestObj setAttrWithSetterExceptionWithMessage:]):

  • bindings/scripts/test/TestObj.idl:
  • dom/ExceptionCode.h:
10:46 AM Changeset in webkit [193100] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188427. rdar://problem/23221163

10:46 AM Changeset in webkit [193099] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188408. rdar://problem/23221163

10:46 AM Changeset in webkit [193098] by timothy@apple.com
  • 14 edits
    3 adds in branches/safari-601-branch

Merge r188407. rdar://problem/23221163

10:46 AM Changeset in webkit [193097] by timothy@apple.com
  • 7 edits in branches/safari-601-branch

Merge r188403. rdar://problem/23221163

10:46 AM Changeset in webkit [193096] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188398. rdar://problem/23221163

10:46 AM Changeset in webkit [193095] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188396. rdar://problem/23221163

10:46 AM Changeset in webkit [193094] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188382. rdar://problem/23221163

10:46 AM Changeset in webkit [193093] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188373. rdar://problem/23221163

10:45 AM Changeset in webkit [193092] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188372. rdar://problem/23221163

10:45 AM Changeset in webkit [193091] by timothy@apple.com
  • 10 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188360. rdar://problem/23221163

10:45 AM Changeset in webkit [193090] by timothy@apple.com
  • 5 edits
    3 adds in branches/safari-601-branch

Merge r188353. rdar://problem/23221163

10:45 AM Changeset in webkit [193089] by timothy@apple.com
  • 5 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188343. rdar://problem/23221163

10:45 AM Changeset in webkit [193088] by timothy@apple.com
  • 20 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188336. rdar://problem/23221163

10:45 AM Changeset in webkit [193087] by timothy@apple.com
  • 6 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188330. rdar://problem/23221163

10:45 AM Changeset in webkit [193086] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188328. rdar://problem/23221163

10:45 AM Changeset in webkit [193085] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188326. rdar://problem/23221163

10:44 AM Changeset in webkit [193084] by timothy@apple.com
  • 29 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188325. rdar://problem/23221163

10:44 AM Changeset in webkit [193083] by timothy@apple.com
  • 5 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188321. rdar://problem/23221163

10:44 AM Changeset in webkit [193082] by timothy@apple.com
  • 10 edits
    3 adds
    2 deletes in branches/safari-601-branch

Merge r188283. rdar://problem/23221163

10:44 AM Changeset in webkit [193081] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188260. rdar://problem/23221163

10:44 AM Changeset in webkit [193080] by timothy@apple.com
  • 1 edit
    8 adds in branches/safari-601-branch/Source/WebInspectorUI

Merge r188238. rdar://problem/23221163

10:44 AM Changeset in webkit [193079] by timothy@apple.com
  • 3 edits
    30 adds in branches/safari-601-branch/Source/WebInspectorUI

Merge r188229. rdar://problem/23221163

10:43 AM Changeset in webkit [193078] by timothy@apple.com
  • 5 edits
    4 adds in branches/safari-601-branch/Source/WebInspectorUI

Merge r188226. rdar://problem/23221163

10:43 AM Changeset in webkit [193077] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188221. rdar://problem/23221163

10:43 AM Changeset in webkit [193076] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188192. rdar://problem/23221163

10:43 AM Changeset in webkit [193075] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188191. rdar://problem/23221163

10:43 AM Changeset in webkit [193074] by timothy@apple.com
  • 7 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188188. rdar://problem/23221163

10:43 AM Changeset in webkit [193073] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188184. rdar://problem/23221163

10:43 AM Changeset in webkit [193072] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188138. rdar://problem/23221163

10:43 AM Changeset in webkit [193071] by timothy@apple.com
  • 7 edits
    1 delete in branches/safari-601-branch/Source/WebInspectorUI

Merge r188029. rdar://problem/23221163

10:43 AM Changeset in webkit [193070] by timothy@apple.com
  • 12 edits
    1 copy
    4 adds
    1 delete in branches/safari-601-branch/Source/WebInspectorUI

Merge r188028. rdar://problem/23221163

10:42 AM Changeset in webkit [193069] by timothy@apple.com
  • 11 edits
    3 copies
    3 adds in branches/safari-601-branch

Merge r188017. rdar://problem/23221163

10:42 AM Changeset in webkit [193068] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188015. rdar://problem/23221163

10:42 AM Changeset in webkit [193067] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188007. rdar://problem/23221163

10:42 AM Changeset in webkit [193066] by timothy@apple.com
  • 8 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r188006. rdar://problem/23221163

10:42 AM Changeset in webkit [193065] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187986. rdar://problem/23221163

10:42 AM Changeset in webkit [193064] by timothy@apple.com
  • 13 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187968. rdar://problem/23221163

10:42 AM Changeset in webkit [193063] by timothy@apple.com
  • 35 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187967. rdar://problem/23221163

10:41 AM Changeset in webkit [193062] by timothy@apple.com
  • 5 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187960. rdar://problem/23221163

10:41 AM Changeset in webkit [193061] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187929. rdar://problem/23221163

10:41 AM Changeset in webkit [193060] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187923. rdar://problem/23221163

10:41 AM Changeset in webkit [193059] by timothy@apple.com
  • 3 edits in branches/safari-601-branch

Merge r187903. rdar://problem/23221163

10:41 AM Changeset in webkit [193058] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187902. rdar://problem/23221163

10:41 AM Changeset in webkit [193057] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187900. rdar://problem/23221163

10:41 AM Changeset in webkit [193056] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187899. rdar://problem/23221163

10:41 AM Changeset in webkit [193055] by timothy@apple.com
  • 13 edits
    1 copy
    1 add in branches/safari-601-branch/Source/WebInspectorUI

Merge r187895. rdar://problem/23221163

10:35 AM Changeset in webkit [193054] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187887. rdar://problem/23221163

10:35 AM Changeset in webkit [193053] by timothy@apple.com
  • 17 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187873. rdar://problem/23221163

10:35 AM Changeset in webkit [193052] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187872. rdar://problem/23221163

10:35 AM Changeset in webkit [193051] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187775. rdar://problem/23221163

10:35 AM Changeset in webkit [193050] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187773. rdar://problem/23221163

10:35 AM Changeset in webkit [193049] by timothy@apple.com
  • 5 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187732. rdar://problem/23221163

10:35 AM Changeset in webkit [193048] by timothy@apple.com
  • 5 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187730. rdar://problem/23221163

10:35 AM Changeset in webkit [193047] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187715. rdar://problem/23221163

10:35 AM Changeset in webkit [193046] by timothy@apple.com
  • 5 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187714. rdar://problem/23221163

10:34 AM Changeset in webkit [193045] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187708. rdar://problem/23221163

10:34 AM Changeset in webkit [193044] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187700. rdar://problem/23221163

10:34 AM Changeset in webkit [193043] by timothy@apple.com
  • 20 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187689. rdar://problem/23221163

10:34 AM Changeset in webkit [193042] by timothy@apple.com
  • 7 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187634. rdar://problem/23221163

10:34 AM Changeset in webkit [193041] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187625. rdar://problem/23221163

10:34 AM Changeset in webkit [193040] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187619. rdar://problem/23221163

10:34 AM Changeset in webkit [193039] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187599. rdar://problem/23221163

10:34 AM Changeset in webkit [193038] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187598. rdar://problem/23221163

10:34 AM Changeset in webkit [193037] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187578. rdar://problem/23221163

10:34 AM Changeset in webkit [193036] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187577. rdar://problem/23221163

10:33 AM Changeset in webkit [193035] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187576. rdar://problem/23221163

10:33 AM Changeset in webkit [193034] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187570. rdar://problem/23221163

10:33 AM Changeset in webkit [193033] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187528. rdar://problem/23221163

10:33 AM Changeset in webkit [193032] by timothy@apple.com
  • 13 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187519. rdar://problem/23221163

10:33 AM Changeset in webkit [193031] by timothy@apple.com
  • 5 edits
    2 adds in branches/safari-601-branch

Merge r187507. rdar://problem/23221163

10:33 AM Changeset in webkit [193030] by timothy@apple.com
  • 6 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187500. rdar://problem/23221163

10:33 AM Changeset in webkit [193029] by timothy@apple.com
  • 25 edits
    6 adds in branches/safari-601-branch

Merge r187496. rdar://problem/23221163

10:33 AM Changeset in webkit [193028] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187480. rdar://problem/23221163

10:32 AM Changeset in webkit [193027] by timothy@apple.com
  • 13 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187468. rdar://problem/23221163

10:32 AM Changeset in webkit [193026] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187465. rdar://problem/23221163

10:32 AM Changeset in webkit [193025] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187450. rdar://problem/23221163

10:32 AM Changeset in webkit [193024] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187434. rdar://problem/23221163

10:32 AM Changeset in webkit [193023] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187405. rdar://problem/23221163

10:32 AM Changeset in webkit [193022] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187404. rdar://problem/23221163

10:32 AM Changeset in webkit [193021] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187350. rdar://problem/23221163

10:32 AM Changeset in webkit [193020] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187280. rdar://problem/23221163

10:32 AM Changeset in webkit [193019] by timothy@apple.com
  • 17 edits
    2 adds in branches/safari-601-branch

Merge r187249. rdar://problem/23221163

10:31 AM Changeset in webkit [193018] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187227. rdar://problem/23221163

10:31 AM Changeset in webkit [193017] by timothy@apple.com
  • 9 edits
    2 adds in branches/safari-601-branch

Merge r187211. rdar://problem/23221163

10:31 AM Changeset in webkit [193016] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187207. rdar://problem/23221163

10:31 AM Changeset in webkit [193015] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187195. rdar://problem/23221163

10:31 AM Changeset in webkit [193014] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187158. rdar://problem/23221163

10:31 AM Changeset in webkit [193013] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187147. rdar://problem/23221163

10:31 AM Changeset in webkit [193012] by timothy@apple.com
  • 73 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r187105. rdar://problem/23221163

10:30 AM Changeset in webkit [193011] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r186877. rdar://problem/23221163

10:30 AM Changeset in webkit [193010] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r186831. rdar://problem/23221163

10:30 AM Changeset in webkit [193009] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r186824. rdar://problem/23221163

10:30 AM Changeset in webkit [193008] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r186796. rdar://problem/23221163

10:30 AM Changeset in webkit [193007] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r186767. rdar://problem/23221163

10:30 AM Changeset in webkit [193006] by timothy@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r186748. rdar://problem/23221163

10:30 AM Changeset in webkit [193005] by timothy@apple.com
  • 10 edits in branches/safari-601-branch/Source

Merge r186724. rdar://problem/23221163

10:29 AM Changeset in webkit [193004] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r186717. rdar://problem/23221163

10:29 AM Changeset in webkit [193003] by timothy@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r186708. rdar://problem/23221163

10:29 AM Changeset in webkit [193002] by timothy@apple.com
  • 14 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r186698. rdar://problem/23221163

10:29 AM Changeset in webkit [193001] by timothy@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebInspectorUI

Merge r186695. rdar://problem/23221163

9:57 AM Changeset in webkit [193000] by jfernandez@igalia.com
  • 3 edits
    2 adds in trunk

[css-grid] margin-left:auto and margin-top:auto discards the margin on opposite side
https://bugs.webkit.org/show_bug.cgi?id=151802

Reviewed by Sergio Villar Senin.

Source/WebCore:

When resolving auto margins so that they use the available space, in the
corresponding axis, we must consider that there might be other specified
margins. Such margins must account to determine the actual available space.

Test: fast/css-grid-layout/grid-item-auto-margins-must-respect-specified-margins.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::updateAutoMarginsInRowAxisIfNeeded):
(WebCore::RenderGrid::updateAutoMarginsInColumnAxisIfNeeded):

LayoutTests:

Tests to verify the specified margins account for determining the available space for
auto-margins alignment.

  • fast/css-grid-layout/grid-item-auto-margins-must-respect-specified-margins-expected.txt: Added.
  • fast/css-grid-layout/grid-item-auto-margins-must-respect-specified-margins.html: Added.
9:08 AM Changeset in webkit [192999] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaselining svg/custom/bug78807.svg since actual results now match Mac expectations
https://bugs.webkit.org/show_bug.cgi?id=151804

Unreviewed test gardening.

  • platform/win/svg/custom/bug78807-expected.txt:
8:43 AM Changeset in webkit [192998] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skipping failing sputnik/Unicode/Unicode_510 tests pending further investigation
https://bugs.webkit.org/show_bug.cgi?id=151505

Unreviewed test gardening.

  • platform/win/TestExpectations:
8:18 AM Changeset in webkit [192997] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/css/pseudo-visited-background-color-on-input.html as failing on win
https://bugs.webkit.org/show_bug.cgi?id=151756

Unreviewed test gardening.

  • platform/win/TestExpectations:
8:14 AM Changeset in webkit [192996] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

fast/borders/hidpi-border-clipping-right-after-move.html
https://bugs.webkit.org/show_bug.cgi?id=151754

Unreviewed test gardening.

  • platform/win/TestExpectations:
4:51 AM Changeset in webkit [192995] by Antti Koivisto
  • 43 edits
    2 moves in trunk/Source

Move ResourceLoadScheduler to WebKit1
https://bugs.webkit.org/show_bug.cgi?id=151743

Reviewed by Alex Christensen.

Source/WebCore:

It is no longer used by WebKit2. Simplify the WebKit/WebCore interface.

  • WebCore.xcodeproj/project.pbxproj:
  • dom/ContainerNode.cpp:
  • dom/Document.cpp:

(WebCore::Document::styleForElementIgnoringPendingStylesheets):

  • dom/Document.h:
  • loader/DocumentLoader.h:
  • loader/LoaderStrategy.cpp:

(WebCore::LoaderStrategy::~LoaderStrategy):
(WebCore::ResourceLoadSuspender::ResourceLoadSuspender):
(WebCore::ResourceLoadSuspender::~ResourceLoadSuspender):
(WebCore::LoaderStrategy::resourceLoadScheduler): Deleted.
(WebCore::LoaderStrategy::loadResourceSynchronously): Deleted.
(WebCore::LoaderStrategy::createBlobRegistry): Deleted.
(WebCore::LoaderStrategy::createPingHandle): Deleted.

  • loader/LoaderStrategy.h:

Loading functions implemented on WebKit side move to pure virtual LoaderStrategy.

  • loader/ResourceLoadScheduler.cpp: Removed.
  • loader/ResourceLoadScheduler.h: Removed.

ResourceLoadScheduler moves to WebKit1 as WebResourceLoadScheduler.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::finishNetworkLoad):
(WebCore::ResourceLoader::setDefersLoading):
(WebCore::ResourceLoader::frameLoader):
(WebCore::ResourceLoader::willSwitchToSubstituteResource):
(WebCore::ResourceLoader::willSendRequestInternal):

  • loader/archive/ArchiveResourceCollection.h:
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::performPostLoadActions):
(WebCore::CachedResourceLoader::incrementRequestCount):

  • platform/PlatformStrategies.h:

(WebCore::PlatformStrategies::pluginStrategy):
(WebCore::PlatformStrategies::blobRegistry):

Move BlobRegistry factory function here from LoaderStrategy as this allows network process to have null loaderStrategy.
(it could be renamed BlobStrategy for consistency later).

(WebCore::PlatformStrategies::PlatformStrategies):

  • platform/network/BlobRegistry.cpp:

(WebCore::blobRegistry):
(WebCore::BlobRegistry::~BlobRegistry):

  • platform/network/ResourceRequestBase.h:
  • style/StyleResolveTree.cpp:

(WebCore::Style::PostResolutionCallbackDisabler::PostResolutionCallbackDisabler):
(WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler):

Source/WebKit:

  • WebCoreSupport/WebResourceLoadScheduler.cpp: Copied from Source/WebCore/loader/ResourceLoadScheduler.cpp.

(webResourceLoadScheduler):
(WebResourceLoadScheduler::hostForURL):
(WebResourceLoadScheduler::WebResourceLoadScheduler):
(WebResourceLoadScheduler::~WebResourceLoadScheduler):
(WebResourceLoadScheduler::scheduleSubresourceLoad):
(WebResourceLoadScheduler::loadResourceSynchronously):
(WebResourceLoadScheduler::schedulePluginStreamLoad):
(WebResourceLoadScheduler::scheduleLoad):
(WebResourceLoadScheduler::remove):
(WebResourceLoadScheduler::setDefersLoading):
(WebResourceLoadScheduler::crossOriginRedirectReceived):
(WebResourceLoadScheduler::servePendingRequests):
(WebResourceLoadScheduler::suspendPendingRequests):
(WebResourceLoadScheduler::resumePendingRequests):
(WebResourceLoadScheduler::scheduleServePendingRequests):
(WebResourceLoadScheduler::requestTimerFired):
(WebResourceLoadScheduler::HostInformation::HostInformation):
(WebResourceLoadScheduler::HostInformation::~HostInformation):
(WebResourceLoadScheduler::HostInformation::priorityToIndex):
(WebResourceLoadScheduler::HostInformation::schedule):
(WebResourceLoadScheduler::HostInformation::addLoadInProgress):
(WebResourceLoadScheduler::HostInformation::remove):
(WebResourceLoadScheduler::HostInformation::hasRequests):
(WebResourceLoadScheduler::HostInformation::limitRequests):
(WebResourceLoadScheduler::createPingHandle):
(WebCore::ResourceLoadScheduler::hostForURL): Deleted.
(WebCore::resourceLoadScheduler): Deleted.
(WebCore::ResourceLoadScheduler::ResourceLoadScheduler): Deleted.
(WebCore::ResourceLoadScheduler::~ResourceLoadScheduler): Deleted.
(WebCore::ResourceLoadScheduler::scheduleSubresourceLoad): Deleted.
(WebCore::ResourceLoadScheduler::schedulePluginStreamLoad): Deleted.
(WebCore::ResourceLoadScheduler::scheduleLoad): Deleted.
(WebCore::ResourceLoadScheduler::remove): Deleted.
(WebCore::ResourceLoadScheduler::setDefersLoading): Deleted.
(WebCore::ResourceLoadScheduler::crossOriginRedirectReceived): Deleted.
(WebCore::ResourceLoadScheduler::servePendingRequests): Deleted.
(WebCore::ResourceLoadScheduler::suspendPendingRequests): Deleted.
(WebCore::ResourceLoadScheduler::resumePendingRequests): Deleted.
(WebCore::ResourceLoadScheduler::scheduleServePendingRequests): Deleted.
(WebCore::ResourceLoadScheduler::requestTimerFired): Deleted.
(WebCore::ResourceLoadScheduler::HostInformation::HostInformation): Deleted.
(WebCore::ResourceLoadScheduler::HostInformation::~HostInformation): Deleted.
(WebCore::ResourceLoadScheduler::HostInformation::priorityToIndex): Deleted.
(WebCore::ResourceLoadScheduler::HostInformation::schedule): Deleted.
(WebCore::ResourceLoadScheduler::HostInformation::addLoadInProgress): Deleted.
(WebCore::ResourceLoadScheduler::HostInformation::remove): Deleted.
(WebCore::ResourceLoadScheduler::HostInformation::hasRequests): Deleted.
(WebCore::ResourceLoadScheduler::HostInformation::limitRequests): Deleted.

  • WebCoreSupport/WebResourceLoadScheduler.h: Copied from Source/WebCore/loader/ResourceLoadScheduler.h.

(WebResourceLoadScheduler::isSerialLoadingEnabled):
(WebResourceLoadScheduler::setSerialLoadingEnabled):
(WebResourceLoadScheduler::HostInformation::name):
(WebResourceLoadScheduler::HostInformation::requestsPending):
(WebCore::ResourceLoadScheduler::isSerialLoadingEnabled): Deleted.
(WebCore::ResourceLoadScheduler::setSerialLoadingEnabled): Deleted.
(WebCore::ResourceLoadScheduler::Suspender::Suspender): Deleted.
(WebCore::ResourceLoadScheduler::Suspender::~Suspender): Deleted.
(WebCore::ResourceLoadScheduler::HostInformation::name): Deleted.
(WebCore::ResourceLoadScheduler::HostInformation::requestsPending): Deleted.

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

  • Plugins/Hosted/HostedNetscapePluginStream.mm:

(WebKit::HostedNetscapePluginStream::start):
(WebKit::HostedNetscapePluginStream::stop):

  • Plugins/WebNetscapePluginStream.mm:

(WebNetscapePluginStream::start):
(WebNetscapePluginStream::stop):

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::createLoaderStrategy):
(WebPlatformStrategies::createPasteboardStrategy):
(WebPlatformStrategies::createPluginStrategy):
(WebPlatformStrategies::createBlobRegistry):
(WebPlatformStrategies::cookiesForDOM):

  • WebView/WebView.mm:

(-[WebView _dispatchPendingLoadRequests]):
(+[WebView _setLoadResourcesSerially:]):
(+[WebView _HTTPPipeliningEnabled]):

Source/WebKit2:

  • NetworkProcess/NetworkProcessPlatformStrategies.cpp:

(WebKit::NetworkProcessPlatformStrategies::createCookiesStrategy):
(WebKit::NetworkProcessPlatformStrategies::createLoaderStrategy):
(WebKit::NetworkProcessPlatformStrategies::createPasteboardStrategy):
(WebKit::NetworkProcessPlatformStrategies::createPluginStrategy):
(WebKit::NetworkProcessPlatformStrategies::createBlobRegistry):
(WebKit::NetworkProcessPlatformStrategies::resourceLoadScheduler): Deleted.
(WebKit::NetworkProcessPlatformStrategies::loadResourceSynchronously): Deleted.

  • NetworkProcess/NetworkProcessPlatformStrategies.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:
  • WebProcess/Network/WebResourceLoadScheduler.cpp:

(WebKit::WebResourceLoadScheduler::~WebResourceLoadScheduler):
(WebKit::WebResourceLoadScheduler::loadResource):
(WebKit::WebResourceLoadScheduler::resumePendingRequests):
(WebKit::WebResourceLoadScheduler::networkProcessCrashed):
(WebKit::WebResourceLoadScheduler::loadResourceSynchronously):
(WebKit::WebResourceLoadScheduler::createPingHandle):
(WebKit::WebResourceLoadScheduler::scheduleSubresourceLoad): Deleted.
(WebKit::WebResourceLoadScheduler::setSerialLoadingEnabled): Deleted.

  • WebProcess/Network/WebResourceLoadScheduler.h:

(WebKit::WebResourceLoadScheduler::webResourceLoaderForIdentifier):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::Stream::start):
(WebKit::PluginView::Stream::cancel):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::createLoaderStrategy):
(WebKit::WebPlatformStrategies::createPasteboardStrategy):
(WebKit::WebPlatformStrategies::createPluginStrategy):
(WebKit::WebPlatformStrategies::createBlobRegistry):
(WebKit::WebPlatformStrategies::cookiesForDOM):
(WebKit::WebPlatformStrategies::deleteCookie):
(WebKit::WebPlatformStrategies::refreshPlugins):
(WebKit::WebPlatformStrategies::resourceLoadScheduler): Deleted.
(WebKit::WebPlatformStrategies::loadResourceSynchronously): Deleted.
(WebKit::WebPlatformStrategies::createPingHandle): Deleted.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:
12:07 AM Changeset in webkit [192994] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

Unreviewed EFL urgent gardening. Skip web-platform-tests
because it has been timeout since r192796.

  • platform/efl/TestExpectations:

Dec 2, 2015:

9:42 PM Changeset in webkit [192993] by mark.lam@apple.com
  • 19 edits
    3 adds in trunk

Polymorphic operand types for DFG and FTL mul.
https://bugs.webkit.org/show_bug.cgi?id=151746

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Perf on benchmarks is neutral except for the newly added JSRegress ftl-object-mul
test which shows a 2.16x speed up on x86_64 FTL, 1.27x speed up on x86_64 DFG,
and 1.56x on x86 DFG.

The speed up comes not from the mul operator itself, but from the fact that the
polymorphic operand types support now allow the test function to run without OSR
exiting, thereby realizing the DFG and FTL's speed up on other work that the test
function does.

This patch has passed the layout tests on x86_64 with a debug build.
It passed the JSC tests with x86 and x86_64 debug builds.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

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

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithMul):

  • ftl/FTLCompile.cpp:
  • Changed to call generateBinaryOpFastPath() instead now, and let it dispatch to the appropriate snippet generator.
  • ftl/FTLCompileBinaryOp.cpp:

(JSC::FTL::generateBinaryArithOpFastPath):
(JSC::FTL::generateBinaryOpFastPath):
(JSC::FTL::generateArithSubFastPath): Deleted.
(JSC::FTL::generateValueAddFastPath): Deleted.

  • Refactored these functions to eliminate the need for copy-pasting every time we add support for another binary arithmetic snippet.
  • ftl/FTLCompileBinaryOp.h:
  • ftl/FTLInlineCacheDescriptor.h:
  • ftl/FTLInlineCacheDescriptorInlines.h:

(JSC::FTL::ArithMulDescriptor::ArithMulDescriptor):
(JSC::FTL::ArithMulDescriptor::icSize):

  • ftl/FTLInlineCacheSize.cpp:

(JSC::FTL::sizeOfArithMul):

  • ftl/FTLInlineCacheSize.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

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

  • jit/JITMulGenerator.h:

(JSC::JITMulGenerator::JITMulGenerator):

  • tests/stress/op_mul.js:
  • Updated a test value: the interesting value for imminent overflow from an int32 is 0x7fffffff, not 0x7ffffff.

LayoutTests:

  • js/regress/ftl-object-mul-expected.txt: Added.
  • js/regress/ftl-object-mul.html: Added.
  • js/regress/script-tests/ftl-object-mul.js: Added.

(o1.valueOf):
(foo):

8:08 PM Changeset in webkit [192992] by mmaxfield@apple.com
  • 31 edits
    2 adds in trunk

Unify font-variant-* with font-variant shorthand
https://bugs.webkit.org/show_bug.cgi?id=149773

Reviewed by Darin Adler.

Source/WebCore:

This patch makes font-variant a shorthand for the following properties:
font-variant-ligatures
font-variant-position
font-variant-caps
font-variant-numeric
font-variant-alternates
font-variant-east-asian

This is consistent with the CSS Fonts Level 3 spec.

This patch also migrates the "font" longhand to use the font-variant-caps
property.

Test: fast/text/font-variant-shorthand.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::fontVariantEastAsianPropertyValue): Rename FontVariantEastAsian values.
(WebCore::fontVariantFromStyle): We must consult with the longhand properties to determine
font-variant computed style.
(WebCore::ComputedStyleExtractor::propertyValue): Don't put any-old font-variant-caps inside
the font shorthand.

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::addFontFaceRule): Guard against incorrect downcasts (due to inherit
of the new shorthand property).

  • css/CSSParser.cpp: Parse font-variant as a shorthand. Also implement its "normal" and "none" values.

(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseFont):
(WebCore::CSSParser::parseSystemFont):
(WebCore::CSSParser::parseFontVariantLigatures):
(WebCore::CSSParser::parseFontVariantNumeric):
(WebCore::CSSParser::parseFontVariantEastAsian):
(WebCore::CSSParser::parseFontVariant):
(WebCore::isValidKeywordPropertyAndValue): Deleted.
(WebCore::isKeywordPropertyID): Deleted.

  • css/CSSParser.h:
  • css/CSSPropertyNames.in: Turn font-variant into a shorthand property.
  • css/FontVariantBuilder.h: Guard against incorrect downcasts. Also update for renamed

FontVariantEastAsian type.
(WebCore::applyValueFontVariantLigatures):
(WebCore::applyValueFontVariantNumeric):
(WebCore::applyValueFontVariantEastAsian):

  • css/StyleProperties.cpp: Update to use the more specific property.

(WebCore::StyleProperties::appendFontLonghandValueIfExplicit):
(WebCore::StyleProperties::fontValue):
(WebCore::StyleProperties::asText):

  • css/StyleResolver.cpp: Ditto.

(WebCore::StyleResolver::isValidCueStyleProperty):

  • editing/EditingStyle.cpp: Ditto.
  • editing/cocoa/HTMLConverter.mm: Ditto.

(HTMLConverterCaches::propertyValueForNode):
(HTMLConverter::computedAttributesForElement):

  • editing/ios/EditorIOS.mm: Ditto.

(WebCore::Editor::removeUnchangeableStyles):

  • html/canvas/CanvasRenderingContext2D.cpp: Ditto.

(WebCore::CanvasRenderingContext2D::font):
(WebCore::CanvasRenderingContext2D::setFont):

  • platform/graphics/FontCache.h: Removing duplicate cache key value.

(WebCore::FontDescriptionKey::makeFlagsKey):

  • platform/graphics/FontCascade.cpp: Migrate to the new font-variant-caps from the old member variable.

(WebCore::FontCascade::glyphDataForCharacter):

  • platform/graphics/FontCascade.h: Ditto.

(WebCore::FontCascade::isSmallCaps):

  • platform/graphics/FontDescription.cpp: Ditto.

(WebCore::FontDescription::FontDescription):

  • platform/graphics/FontDescription.h: Ditto.

(WebCore::FontCascadeDescription::equalForTextAutoSizing):
(WebCore::FontDescription::smallCaps): Deleted.
(WebCore::FontDescription::setSmallCaps): Deleted.
(WebCore::FontDescription::setIsSmallCaps): Deleted.
(WebCore::FontDescription::operator==): Deleted.

  • platform/graphics/cocoa/FontCacheCoreText.cpp: Rename FontVariantEastAsianWidth.

(WebCore::computeFeatureSettingsFromVariants):

  • platform/text/TextFlags.h: Ditto.

(WebCore::FontVariantSettings::operator==):

  • rendering/RenderText.cpp: Migrage to the new font-variant-caps from the old member variable.

(WebCore::RenderText::widthFromCache):

LayoutTests:

Update tests. Also temporarily skip existing font-features tests until
https://bugs.webkit.org/show_bug.cgi?id=149774 is fixed.

  • css3/font-variant-parsing-expected.txt:
  • css3/font-variant-parsing.html:
  • fast/css/font-property-priority-expected.txt:
  • fast/css/font-shorthand-expected.txt:
  • fast/css/parsing-font-variant-ligatures-expected.txt:
  • fast/css/parsing-font-variant-ligatures.html:
  • fast/inspector-support/style-expected.txt:
  • fast/text/font-variant-shorthand-expected.txt: Added.
  • fast/text/font-variant-shorthand.html: Added.
  • platform/mac/TestExpectations:
  • platform/mac/fast/writing-mode/broken-ideograph-small-caps-expected.txt:
8:05 PM Changeset in webkit [192991] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r192753): Remote Web Inspector: Applications and Debuggables not showing up in debuggers
https://bugs.webkit.org/show_bug.cgi?id=151787

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-12-02
Reviewed by Brian Burg.

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::receivedIndicateMessage):
Removed lock that was unnecessarily added in r192753. It was
protecting nothing.

7:44 PM Changeset in webkit [192990] by Yusuke Suzuki
  • 2 edits in trunk/Tools

Allow nil for unspecified benchmark pathes
https://bugs.webkit.org/show_bug.cgi?id=151784

Reviewed by Filip Pizlo.

Pathname.new(nil) will raise an error.
Only generate Pathname if the benchmark path is specified.

  • Scripts/run-jsc-benchmarks:
7:29 PM Changeset in webkit [192989] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Reduce size of ScriptElement
https://bugs.webkit.org/show_bug.cgi?id=151786

Patch by Alex Christensen <achristensen@webkit.org> on 2015-12-02
Reviewed by Andreas Kling.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::ScriptElement):
(WebCore::ScriptElement::requestScript):

  • dom/ScriptElement.h:

Use callOnMainThread instead of a Timer to save memory on a timer that is rarely used.
Use bit fields for the boolean values to save another 8 bytes per ScriptElement.
This reduces sizeof(ScriptElement) from 168 to 48 bytes.

7:17 PM Changeset in webkit [192988] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Insert a FIXME comment FTLLazySlowPath.h to remind us to remove/refactor the ScratchRegisterAllocator field.

Rubber-stamped by Filip Pizlo.

  • ftl/FTLLazySlowPath.h:
6:00 PM Changeset in webkit [192987] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Remove insertElement() from FTLB3Output
https://bugs.webkit.org/show_bug.cgi?id=151781

Reviewed by Sam Weinig.

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::insertElement): Deleted.
That's a LLVM concept.

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

Rebaselining fast/dom/adopt-attribute-crash-expected for win
https://bugs.webkit.org/show_bug.cgi?id=151762

Reviewed by Darin Adler.

  • platform/win/fast/dom/adopt-attribute-crash-expected.txt:
4:32 PM Changeset in webkit [192985] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Remove stuffs related to alloca from FTLB3Output
https://bugs.webkit.org/show_bug.cgi?id=151780

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

We can use the Phis directly with B3 :)

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::alloca): Deleted.
(JSC::FTL::Output::get): Deleted.
(JSC::FTL::Output::set): Deleted.

4:21 PM Changeset in webkit [192984] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Add sin(), cos(), pow() and log() to B3
https://bugs.webkit.org/show_bug.cgi?id=151778

Reviewed by Geoffrey Garen.

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::doubleSin):
(JSC::FTL::Output::doubleCos):
(JSC::FTL::Output::doublePow):
(JSC::FTL::Output::doubleLog):
(JSC::FTL::Output::callWithoutSideEffects):

3:55 PM Changeset in webkit [192983] by commit-queue@webkit.org
  • 8 edits
    3 adds in trunk

Asynchronously call onerror when a content blocker blocks ascript element's load
https://bugs.webkit.org/show_bug.cgi?id=151649

Patch by Alex Christensen <achristensen@webkit.org> on 2015-12-02
Reviewed by Brady Eidson.

Source/WebCore:

Test: http/tests/contentextensions/script-onerror.html

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::ScriptElement):
(WebCore::ScriptElement::requestScript):

  • dom/ScriptElement.h:

LayoutTests:

  • http/tests/contentextensions/script-onerror-expected.txt: Added.
  • http/tests/contentextensions/script-onerror.html: Added.
  • http/tests/contentextensions/script-onerror.html.json: Added.
  • http/tests/misc/unloadable-script-expected.txt:
  • http/tests/misc/unloadable-script.html:
  • http/tests/security/local-JavaScript-from-remote-expected.txt:
  • http/tests/security/local-JavaScript-from-remote.html:

Added testRunner.waitUntilDone and testRunner.notifyDone to reflect the fact that onerror is no longer called synchronously.

3:51 PM Changeset in webkit [192982] by achristensen@apple.com
  • 5 edits in trunk/Source/WebKit2

Fix authentication requests with NetworkSession and canHandleHTTPSServerTrustEvaluation true
https://bugs.webkit.org/show_bug.cgi?id=151775
rdar://problem/23586265

Reviewed by Chris Dumez.

In https://bugs.webkit.org/show_bug.cgi?id=150968 I copied functionality from
NetworkLoad::canAuthenticateAgainstProtectionSpaceAsync into NetworkLoad::didReceiveChallenge
but I overlooked the call to m_client.canAuthenticateAgainstProtectionSpaceAsync which is needed
if canHandleHTTPSServerTrustEvaluation is true. This adds that call and moves what should happen
after that to NetworkLoad::continueCanAuthenticateAgainstProtectionSpace.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didReceiveResponse):
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkSession.h:
  • Shared/Authentication/AuthenticationManager.h:
3:41 PM Changeset in webkit [192981] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Add a few obvious strength-reductions to Air
https://bugs.webkit.org/show_bug.cgi?id=151777

Reviewed by Mark Lam.

The absence of these optimizations was obnoxious.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::add32): lea 1(reg), reg -> add 1, reg.

  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::generate): Emit simpler prologue/epilogue if !frameSize.

  • b3/air/AirOpcode.opcodes: We have matching for BranchMul32 with immediate, but we forgot to add the instruction form.
  • jit/AssemblyHelpers.h: Support for the prologue/epilogue optimizations.

(JSC::AssemblyHelpers::emitFunctionPrologue):
(JSC::AssemblyHelpers::emitFunctionEpilogueWithEmptyFrame):
(JSC::AssemblyHelpers::emitFunctionEpilogue):

3:04 PM Changeset in webkit [192980] by eric.carlson@apple.com
  • 2 edits in trunk/LayoutTests

Fix flaky test added with r192954.

Unreviewed.

  • fast/mediastream/MediaStreamTrack-getSettings.html:
3:04 PM Changeset in webkit [192979] by matthew_hanson@apple.com
  • 8 edits
    3 adds in branches/safari-601.1.46-branch

Merge r192432. rdar://problem/23558672

3:04 PM Changeset in webkit [192978] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r192259. rdar://problem/23189749

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

Merge r192368. rdar://problem/23189763

3:04 PM Changeset in webkit [192976] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-601.1.46-branch

Merge r192169. rdar://problem/23189763

3:04 PM Changeset in webkit [192975] by matthew_hanson@apple.com
  • 5 edits
    2 adds in branches/safari-601.1.46-branch

Merge r190383. rdar://problem/23432383

3:04 PM Changeset in webkit [192974] by matthew_hanson@apple.com
  • 10 edits in branches/safari-601.1.46-branch

Merge r188194. rdar://problem/23432383

3:04 PM Changeset in webkit [192973] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r189427. rdar://problem/23432383

3:04 PM Changeset in webkit [192972] by matthew_hanson@apple.com
  • 7 edits in branches/safari-601.1.46-branch/Source

Merge r187544. rdar://problem/23395970

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

[iOS] Abrupt transition between Fullscreen -> PiP
https://bugs.webkit.org/show_bug.cgi?id=151719

Reviewed by Eric Carlson.

Follow-up to r192922: When moving from inline -> PiP, don't forget to hide the fullscreen
window once the PiP transition completes.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::didStartPictureInPicture):

2:52 PM Changeset in webkit [192970] by commit-queue@webkit.org
  • 68 edits
    3 deletes in trunk

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

A large number of the tests added with this change are failing
on Windows (Requested by ryanhaddad on #webkit).

Reverted changeset:

"[css border] border-image doesn't honor border-style"
https://bugs.webkit.org/show_bug.cgi?id=99922
http://trac.webkit.org/changeset/192955

2:41 PM Changeset in webkit [192969] by yoav@yoav.ws
  • 3 edits
    2 adds in trunk

Fix preloader issue with srcdoc documents.
https://bugs.webkit.org/show_bug.cgi?id=151744

Reviewed by Ryosuke Niwa.

Source/WebCore:

Make sure that PreloadRequest is resolving URLs based on the document's
baseURL() rather than using url() as the base URL, which is not how URLs
are resolved by the parser, and fails when document->url() diverges from
the document's base URL (e.g. in the case of srcdoc based documents).

Test: fast/preloader/iframe-srcdoc.html

  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::PreloadRequest::completeURL):

LayoutTests:

Added a test that makes sure that srcdoc based subresources are properly preloaded.

  • fast/preloader/iframe-srcdoc-expected.txt: Added.
  • fast/preloader/iframe-srcdoc.html: Added.
2:35 PM Changeset in webkit [192968] by benjamin@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

Update the interface added in r192967

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-12-02

  • b3/B3CCallValue.h:

Filip prefers explicit effects.

  • b3/testb3.cpp:

(JSC::B3::testCallSimplePure):

2:12 PM Changeset in webkit [192967] by benjamin@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Add a function attribute for Pure functions in B3
https://bugs.webkit.org/show_bug.cgi?id=151741

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-12-02
Reviewed by Geoffrey Garen.

We have plenty of functions without side effects
when lowering DFG.
This patch adds the "PureCall" flag to B3's CCall
to make sure those functions do not prevent optimizations.

  • b3/B3CCallValue.h:
  • b3/testb3.cpp:

(JSC::B3::testCallSimplePure):
(JSC::B3::run):

2:09 PM Changeset in webkit [192966] by jer.noble@apple.com
  • 22 edits
    2 adds in trunk

Add a setting and restriction which will pause invisible autoplaying video
https://bugs.webkit.org/show_bug.cgi?id=151412

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-restricted-invisible-autoplay-not-allowed.html

Drive-by fix: m_autoplaying is reset in many places by calling pause() or play(), where those
calls did not originate from an explicit request to pause or play, e.g., during an interruption.
This causes m_autoplaying to be set to false, thus breaking resumption of autoplaying when the
interruption ends. Update PlatformMediaSession to remember its client's "autoplaying" state and
restore it when an interruption ends.

Add a means to register for viewport visibility notifications to FrameView, RenderView,
and RenderElement. Elements who wish to recieve these notifications must do so through their
renderer, and thus will have to re-register whenever a new renderer is attached.

Add a restriction to HTMLMediaElement which will pause autoplaying video when that video scrolls
out of the viewport, or is hidden with CSS.

Add a setting which controls whether that new restriction is set.

  • dom/Element.h:

(WebCore::Element::isVisibleInViewportChanged): Add default empty virtual method.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::didMoveToNewDocument):
(WebCore::HTMLMediaElement::documentDidResumeFromPageCache):
(WebCore::HTMLMediaElement::removeBehaviorsRestrictionsAfterFirstUserGesture):
(WebCore::HTMLMediaElement::resumeAutoplaying):
(WebCore::mediaElementIsAllowedToAutoplay):
(WebCore::HTMLMediaElement::isVisibleInViewportChanged):
(WebCore::HTMLMediaElement::updateShouldAutoplay):
(WebCore::HTMLMediaElement::HTMLMediaElement): Set the new restriction based on the current Settings.
(WebCore::HTMLMediaElement::resumeAutoplaying): Continue autoplay, or begin playback.
(WebCore::HTMLMediaElement::didMoveToNewDocument): Update our autoplay state.
(WebCore::HTMLMediaElement::documentDidResumeFromPageCache): Ditto.
(WebCore::HTMLMediaElement::removedFrom): Ditto.
(WebCore::HTMLMediaElement::didAttachRenderers): Ditto.
(WebCore::HTMLMediaElement::didDetachRenderers): Ditto.
(WebCore::HTMLMediaElement::visibilityDidChange): Ditto.
(WebCore::HTMLMediaElement::willDetachRenderers): Unregister for visibility callbacks.
(WebCore::HTMLMediaElement::removeBehaviorsRestrictionsAfterFirstUserGesture): Clear new restriction.
(WebCore::mediaElementIsAllowedToAutoplay): Check for autoplay requirements.
(WebCore::HTMLMediaElement::isVisibleInViewportChanged): Added, update our autoplay state.
(WebCore::HTMLMediaElement::updateShouldAutoplay): Set interruption if necessary, clear otherwise.

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

(WebCore::restrictionName): Added support for new restriction.

  • html/MediaElementSession.h:
  • page/FrameView.cpp:

(WebCore::FrameView::viewportContentsChanged): Update clients of viewport visibility.

  • page/Settings.in:
  • platform/audio/PlatformMediaSession.cpp:

(WebCore::stateName): Add new "Autoplay" state.
(WebCore::interruptionName): Added new interruption type.
(WebCore::PlatformMediaSession::beginInterruption): Set the m_interruptionType.
(WebCore::PlatformMediaSession::clientWillBeginAutoplaying): Set the m_state to Autoplaying.

  • platform/audio/PlatformMediaSession.h:

(WebCore::PlatformMediaSession::interruptionType): Added getter.
(WebCore::PlatformMediaSessionClient::resumeAutoplaying): Added default.

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::sessionWillBeginPlayback): Only pause session if its state is playing.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::RenderElement): Set new ivars.
(WebCore::RenderElement::~RenderElement): Unregister for callbacks if necessary.
(WebCore::RenderElement::registerForVisibleInViewportCallback): Register for callbacks from RenderView.
(WebCore::RenderElement::unregisterForVisibleInViewportCallback): Unregister from same.
(WebCore::RenderElement::visibleInViewportStateChanged): Notify Element if value has changed.

  • rendering/RenderElement.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::registerForVisibleInViewportCallback): Add renderer to list of callbacks.
(WebCore::RenderView::unregisterForVisibleInViewportCallback): Remove renderer from same.
(WebCore::RenderView::updateVisibleViewportRect): Walk renderers setting their visiblility based on the viewport visible rect.

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

(WebCore::Internals::setMediaElementRestrictions): Support new restriction.

LayoutTests:

  • media/video-restricted-invisible-autoplay-not-allowed-expected.txt: Added.
  • media/video-restricted-invisible-autoplay-not-allowed.html: Added.
2:09 PM Changeset in webkit [192965] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Perf dashboard should avoid overflow during geometric mean computation
https://bugs.webkit.org/show_bug.cgi?id=151773

Reviewed by Chris Dumez.

  • public/include/report-processor.php:
2:04 PM Changeset in webkit [192964] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Rebaseline fast/parser/xml-declaration-missing-ending-mark.html, fast/parser/xml-colon-entity.html for Win
https://bugs.webkit.org/show_bug.cgi?id=151763

Reviewed by Brent Fulgham.

  • platform/win/fast/parser/xml-colon-entity-expected.txt:
  • platform/win/fast/parser/xml-declaration-missing-ending-mark-expected.txt:
1:47 PM Changeset in webkit [192963] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Rebaseline fast/dynamic/text-combine.html on win
https://bugs.webkit.org/show_bug.cgi?id=151761

Unreviewed test gardening.

  • platform/win/fast/dynamic/text-combine-expected.png:
  • platform/win/fast/dynamic/text-combine-expected.txt:
1:41 PM Changeset in webkit [192962] by Ryan Haddad
  • 2 edits in trunk/LayoutTests/imported/w3c

Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html after r192953
https://bugs.webkit.org/show_bug.cgi?id=116963

Unreviewed test gardening.

  • web-platform-tests/html/dom/interfaces-expected.txt:
1:37 PM Changeset in webkit [192961] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

1:33 PM Changeset in webkit [192960] by beidson@apple.com
  • 10 edits
    3 deletes in trunk/LayoutTests

Modern IDB: Remove all traces of IDBObjectStore::openKeyCursor from tests.
https://bugs.webkit.org/show_bug.cgi?id=151772

Reviewed by Alex Christensen.

IDBObjectStore::openKeyCursor no longer exists, so testing it is inherently bogus.

  • platform/mac-wk1/TestExpectations: Two tests now pass with small expectations changes.
  • storage/indexeddb/cursor-basics-expected.txt:
  • storage/indexeddb/cursor-overloads-expected.txt:
  • storage/indexeddb/cursor-overloads.html:
  • storage/indexeddb/optional-arguments.html:
  • storage/indexeddb/resources/cursor-basics.js:
  • storage/indexeddb/resources/deleted-objects.js:
  • storage/indexeddb/resources/exceptions.js:
  • storage/indexeddb/resources/objectstore-basics.js:
  • storage/indexeddb/objectstore-keycursor-expected.txt: Removed.
  • storage/indexeddb/objectstore-keycursor.html: Removed.
  • storage/indexeddb/resources/objectstore-keycursor.js: Removed.
12:57 PM Changeset in webkit [192959] by hyatt@apple.com
  • 1 edit
    4 adds in trunk/LayoutTests

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.

Add some more picture element layout tests
https://bugs.webkit.org/show_bug.cgi?id=151769

Reviewed by Dean Jackson.

  • fast/picture/image-picture-invalid-expected.txt: Added.
  • fast/picture/image-picture-invalid.html: Added.
  • fast/picture/image-picture-nested-expected.txt: Added.
  • fast/picture/image-picture-nested.html: Added.
12:53 PM Changeset in webkit [192958] by beidson@apple.com
  • 3 edits in trunk/LayoutTests

Modern IDB: Enable a couple more passing tests.
https://bugs.webkit.org/show_bug.cgi?id=151766

Reviewed by Beth Dakin.

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/create-object-store-options-expected.txt:
12:50 PM Changeset in webkit [192957] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skipping tests on Win that fail due to unimplemented showModalDialog function.
https://bugs.webkit.org/show_bug.cgi?id=151506

Unreviewed test gardening.

  • platform/win/TestExpectations:
12:32 PM Changeset in webkit [192956] by beidson@apple.com
  • 12 edits in trunk

Modern IDB: IDBTransaction::error is not exposed.
https://bugs.webkit.org/show_bug.cgi?id=151752

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least 3 failing tests now pass, plus changes to other faulty tests).

  • Modules/indexeddb/client/IDBRequestImpl.cpp:

(WebCore::IDBClient::IDBRequest::dispatchEvent):
(WebCore::IDBClient::IDBRequest::uncaughtExceptionInEventHandler):

  • Modules/indexeddb/client/IDBRequestImpl.h:
  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::error):
(WebCore::IDBClient::IDBTransaction::abortDueToFailedRequest):
(WebCore::IDBClient::IDBTransaction::abort):
(WebCore::IDBClient::IDBTransaction::didCreateIndexOnServer):

  • Modules/indexeddb/client/IDBTransactionImpl.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/modern/basic-add.html:
  • storage/indexeddb/modern/double-abort-expected.txt:
  • storage/indexeddb/modern/index-3.html:
  • storage/indexeddb/resources/transaction-error.js:
  • storage/indexeddb/transaction-error-expected.txt:
12:25 PM Changeset in webkit [192955] by cavalcantii@gmail.com
  • 68 edits
    3 adds in trunk

[css border] border-image doesn't honor border-style
https://bugs.webkit.org/show_bug.cgi?id=99922

Reviewed by Simon Fraser.

Source/WebCore:

Ensure that WebKit will be compliant to css-backgrounds spec where a
border with an image will only be rendered if there is a style defined.

Quote: "None: No border. Color and width are ignored (i.e., the border has width 0)".
Reference: http://www.w3.org/TR/css3-background/#border-style

From W3C discussion: "The fact that these properties set the style of the border is
normative". Reference: https://lists.w3.org/Archives/Public/www-style/2015Nov/0260.html

Test: fast/borders/border-image-should-not-display.html

  • rendering/style/BorderData.h:

(WebCore::BorderData::hasBorder):
(WebCore::BorderData::borderLeftWidth):
(WebCore::BorderData::borderRightWidth):
(WebCore::BorderData::borderTopWidth):
(WebCore::BorderData::borderBottomWidth):

  • rendering/style/BorderValue.h:

(WebCore::BorderValue::nonZero):
(WebCore::BorderValue::isVisible):

LayoutTests:

Ensure that WebKit will be compliant to css-backgrounds spec where
a border with an image will only be rendered if there is a style defined.

Previous border image tests had to be edited (i.e. define border-style)
to ensure that a decorated border would be rendered.

  • fast/borders/border-image-01.html:
  • fast/borders/border-image-border-radius.html:
  • fast/borders/border-image-fill-no-intrinsic-size.html:
  • fast/borders/border-image-longhand.html:
  • fast/borders/border-image-massive-scale.html:
  • fast/borders/border-image-omit-right-slice.html:
  • fast/borders/border-image-outset-in-shorthand.html:
  • fast/borders/border-image-outset-split-inline-expected.txt:
  • fast/borders/border-image-outset-split-inline-vertical-lr-expected.txt:
  • fast/borders/border-image-outset-split-inline-vertical-lr.html:
  • fast/borders/border-image-outset-split-inline.html:
  • fast/borders/border-image-outset.html:
  • fast/borders/border-image-repeat.html:
  • fast/borders/border-image-rotate-transform.html:
  • fast/borders/border-image-scale-transform.html:
  • fast/borders/border-image-scaled.html:
  • fast/borders/border-image-scrambled.html:
  • fast/borders/border-image-should-not-display-expected.html: Added.
  • fast/borders/border-image-should-not-display.html: Added.
  • fast/borders/border-image-side-reduction.html:
  • fast/borders/border-image-slice-constrained.html:
  • fast/borders/border-image-slice-missing-right.html:
  • fast/borders/border-image-slices.html:
  • fast/borders/border-image-source.html:
  • fast/borders/border-image-trumps-radius-expected.txt:
  • fast/borders/border-image-trumps-radius.html:
  • fast/borders/hidpi-border-image-gradient-on-subpixels.html:
  • fast/borders/resources/red.png: Added.
  • fast/borders/scaled-border-image.html:
  • fast/gradients/border-image-gradient-expected.txt:
  • fast/gradients/border-image-gradient.html:
  • fast/hidpi/image-set-border-image-comparison.html:
  • fast/hidpi/image-set-border-image-dynamic.html:
  • fast/hidpi/image-set-border-image-simple.html:
  • fast/writing-mode/border-image-horizontal-bt.html:
  • fast/writing-mode/border-image-vertical-lr.html:
  • fast/writing-mode/border-image-vertical-rl.html:
  • platform/mac/fast/borders/border-image-01-expected.txt:
  • platform/mac/fast/borders/border-image-border-radius-expected.txt:
  • platform/mac/fast/borders/border-image-longhand-expected.txt:
  • platform/mac/fast/borders/border-image-massive-scale-expected.txt:
  • platform/mac/fast/borders/border-image-omit-right-slice-expected.txt:
  • platform/mac/fast/borders/border-image-outset-expected.txt:
  • platform/mac/fast/borders/border-image-outset-in-shorthand-expected.txt:
  • platform/mac/fast/borders/border-image-repeat-expected.txt:
  • platform/mac/fast/borders/border-image-rotate-transform-expected.txt:
  • platform/mac/fast/borders/border-image-scale-transform-expected.txt:
  • platform/mac/fast/borders/border-image-scaled-expected.txt:
  • platform/mac/fast/borders/border-image-scrambled-expected.txt:
  • platform/mac/fast/borders/border-image-side-reduction-expected.txt:
  • platform/mac/fast/borders/border-image-slice-constrained-expected.txt:
  • platform/mac/fast/borders/border-image-slices-expected.txt:
  • platform/mac/fast/borders/border-image-source-expected.txt:
  • platform/mac/fast/borders/scaled-border-image-expected.txt:
  • platform/mac/fast/hidpi/image-set-border-image-comparison-expected.txt:
  • platform/mac/fast/hidpi/image-set-border-image-dynamic-expected.txt:
  • platform/mac/fast/hidpi/image-set-border-image-simple-expected.txt:
  • platform/mac/fast/writing-mode/border-image-horizontal-bt-expected.txt:
  • platform/mac/fast/writing-mode/border-image-vertical-lr-expected.txt:
  • platform/mac/fast/writing-mode/border-image-vertical-rl-expected.txt:
12:20 PM Changeset in webkit [192954] by eric.carlson@apple.com
  • 43 edits
    4 moves
    3 adds
    2 deletes in trunk

[MediaStream] Implement MediaStreamTrack.getSettings()
https://bugs.webkit.org/show_bug.cgi?id=151727

Reviewed by Jer Noble.

Source/WebCore:

MediaStreamTrack.getStates has been replaced by MediaStreamTrack.getSettings.

Test: fast/mediastream/MediaStreamTrack-getSettings.html

  • CMakeLists.txt: MediaSourceStates.* -> MediaSourceSettings.*.
  • DerivedSources.make: No more MediaSourceStates.idl.
  • Modules/mediastream/CapabilityRange.cpp: MediaSourceStates.* -> MediaSourceSettings.*.
  • Modules/mediastream/MediaSourceSettings.cpp: Copied from Source/WebCore/Modules/mediastream/MediaSourceStates.cpp.

(WebCore::MediaSourceSettings::create):
(WebCore::MediaSourceSettings::MediaSourceSettings):
(WebCore::MediaSourceSettings::facingMode):
(WebCore::MediaSourceStates::create): Deleted.
(WebCore::MediaSourceStates::MediaSourceStates): Deleted.
(WebCore::MediaSourceStates::sourceType): Deleted.
(WebCore::MediaSourceStates::facingMode): Deleted.

  • Modules/mediastream/MediaSourceSettings.h: Copied from Source/WebCore/Modules/mediastream/MediaSourceStates.h.

MediaSourceStates.* renamed to MediaSourceSettings.* and updated to new API.

  • Modules/mediastream/MediaSourceStates.cpp: Removed.
  • Modules/mediastream/MediaSourceStates.h: Removed.
  • Modules/mediastream/MediaSourceStates.idl: Removed.
  • Modules/mediastream/MediaStreamCapabilities.cpp:

(WebCore::MediaStreamCapabilities::sourceType): Return an empty vector for now, will be fixed

by the changes for https://bugs.webkit.org/show_bug.cgi?id=151728.

(WebCore::MediaStreamCapabilities::sourceId): RealtimeMediaSourceStates -> MediaSourceSettings.
(WebCore::MediaStreamCapabilities::facingMode): Ditto.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::getSettings): New.
(WebCore::MediaStreamTrack::getCapabilities): Don't modify states, just pass through whatever

private track returns.

(WebCore::MediaStreamTrack::trackSettingsChanged):
(WebCore::MediaStreamTrack::states): Deleted.
(WebCore::MediaStreamTrack::trackStatesChanged): Deleted.

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/mediastream/MediaStreamTrack.idl: MediaSourceStates -> MediaSourceSettings.
  • Modules/webaudio/MediaStreamAudioSource.cpp:

(WebCore::MediaStreamAudioSource::settings):
(WebCore::MediaStreamAudioSource::states): Deleted.

  • Modules/webaudio/MediaStreamAudioSource.h: MediaSourceStates -> MediaSourceSettings.
  • WebCore.xcodeproj/project.pbxproj: MediaSourceStates.* -> MediaSourceSettings.*.
  • bindings/js/JSMediaSourceStatesCustom.cpp: Removed.
  • bindings/js/JSMediaStreamTrackCustom.cpp: Added.

(WebCore::JSMediaStreamTrack::getSettings): MediaSourceSettings is a generic dictionary so

it has to be generated manually.

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::intrinsicSize): states -> settings.
(WebCore::MediaStreamPrivate::trackStatesChanged): Deleted.

  • platform/mediastream/MediaStreamPrivate.h:
  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::settings):
(WebCore::MediaStreamTrackPrivate::sourceSettingsChanged):
(WebCore::MediaStreamTrackPrivate::states): Deleted.
(WebCore::MediaStreamTrackPrivate::sourceStatesChanged): Deleted.

  • platform/mediastream/MediaStreamTrackPrivate.h:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::settingsDidChanged):
(WebCore::RealtimeMediaSource::statesDidChanged): Deleted.

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeMediaSourceCapabilities.h:

(WebCore::RealtimeMediaSourceCapabilities::facingModes): States -> Settings.
(WebCore::RealtimeMediaSourceCapabilities::addFacingMode): Ditto.
(WebCore::RealtimeMediaSourceCapabilities::sourceTypes): Deleted.
(WebCore::RealtimeMediaSourceCapabilities::setSourceType): Deleted.
(WebCore::RealtimeMediaSourceCapabilities::addSourceType): Deleted.

  • platform/mediastream/RealtimeMediaSourceCenter.h: States -> Settings.
  • platform/mediastream/RealtimeMediaSourceSettings.cpp: Copied from Source/WebCore/platform/mediastream/RealtimeMediaSourceStates.cpp.

(WebCore::RealtimeMediaSourceSettings::facingMode):
(WebCore::RealtimeMediaSourceStates::facingMode): Deleted.
(WebCore::RealtimeMediaSourceStates::sourceType): Deleted.

  • platform/mediastream/RealtimeMediaSourceSettings.h: Copied from Source/WebCore/platform/mediastream/RealtimeMediaSourceStates.h.
  • platform/mediastream/RealtimeMediaSourceStates.cpp: Removed.
  • platform/mediastream/RealtimeMediaSourceStates.h: Removed.
  • platform/mediastream/mac/AVAudioCaptureSource.h:
  • platform/mediastream/mac/AVAudioCaptureSource.mm:

(WebCore::AVAudioCaptureSource::updateStates): Deleted.

  • platform/mediastream/mac/AVCaptureDeviceManager.h:
  • platform/mediastream/mac/AVCaptureDeviceManager.mm:
  • platform/mediastream/mac/AVMediaCaptureSource.h:
  • platform/mediastream/mac/AVMediaCaptureSource.mm:

(WebCore::AVMediaCaptureSource::states): Deleted.

  • platform/mediastream/mac/AVVideoCaptureSource.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::updateStates): Deleted.

  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
  • platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h:
  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::initializeSupportedConstraints):
(WebCore::MockRealtimeAudioSource::updateStates): Deleted.

  • platform/mock/MockRealtimeAudioSource.h:
  • platform/mock/MockRealtimeMediaSource.cpp:

(WebCore::MockRealtimeMediaSource::capabilities): Minor cleanup.
(WebCore::MockRealtimeMediaSource::settings):
(WebCore::MockRealtimeMediaSource::supportedConstraints):
(WebCore::MockRealtimeMediaSource::states): Deleted.

  • platform/mock/MockRealtimeMediaSource.h:

(WebCore::MockRealtimeMediaSource::constraints):
(WebCore::MockRealtimeMediaSource::currentStates): Deleted.

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::updateSettings):
(WebCore::MockRealtimeVideoSource::initializeCapabilities):
(WebCore::MockRealtimeVideoSource::initializeSupportedConstraints):
(WebCore::MockRealtimeVideoSource::setFrameRate): states -> settings.
(WebCore::MockRealtimeVideoSource::setSize): Ditto.
(WebCore::MockRealtimeVideoSource::drawAnimation): Ditto.
(WebCore::MockRealtimeVideoSource::drawText): Ditto.
(WebCore::MockRealtimeVideoSource::updateStates): Deleted.
(WebCore::MockRealtimeVideoSource::setFacingMode): Deleted.

  • platform/mock/MockRealtimeVideoSource.h:

LayoutTests:

  • fast/mediastream/MediaStream-video-element-expected.txt:
  • fast/mediastream/MediaStream-video-element-track-stop-expected.txt:
  • fast/mediastream/MediaStream-video-element-track-stop.html:
  • fast/mediastream/MediaStream-video-element.html:
  • fast/mediastream/MediaStreamTrack-getSettings-expected.txt: Added.
  • fast/mediastream/MediaStreamTrack-getSettings.html: Added.
12:13 PM Changeset in webkit [192953] by hyatt@apple.com
  • 20 edits
    10 adds in trunk

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.

Implement the picture element.
https://bugs.webkit.org/show_bug.cgi?id=116963

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:

Source/WebCore:

Added fast/picture tests.

  • WebCore.xcodeproj/project.pbxproj:

Add HTMLPictureElement.* to the project.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
Remove the CURRENT_SRC ifdef.

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
New helper function that checks the <source> elements of a <picture> parent
for the best match.

(WebCore::HTMLImageElement::selectImageSource):
Pull out the process of image selection into its own function so that this can
be called from many places (to ensure that dynamic changes are reflected as elements
get changed, added or removed).

(WebCore::HTMLImageElement::parseAttribute):
Call selectImageSource when attributes change.

(WebCore::HTMLImageElement::insertedInto):
If inserted into a picture element, make sure to update the source.

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):
Remove the CURRENT_SRC ifdef.

  • html/HTMLImageElement.idl:

Remove the CURRENT_SRC ifdef.

  • html/HTMLPictureElement.cpp: Added.

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):

  • html/HTMLPictureElement.h: Added.

The new picture element. Has a sourcesChanged() function that is invoked whenever anything
about the <source> elements changes.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
(WebCore::HTMLSourceElement::parseAttribute):
Make sure to call sourcesChanged when new sources come and go or when attributes on
source elements change.

  • html/HTMLSourceElement.h:

Added parseAttribute function so we can see when attributes change that force us to
do a dynamic update.

  • html/HTMLTagNames.in:

Add the picture element.

  • html/parser/HTMLSrcsetParser.h:

(WebCore::ImageCandidate::srcOrigin):
(WebCore::ImageCandidate::isEmpty):
Some helpers for picture parsing.

LayoutTests:

  • fast/picture: Added.
  • fast/picture/image-picture-1x-expected.txt: Added.
  • fast/picture/image-picture-1x.html: Added.
  • fast/picture/resources: Added.
  • fast/picture/resources/blue_rect.jpg: Added.
  • fast/picture/resources/currentSrcHelper.js: Added.

(fileName):
(currentSrcFileName):
(currentSrcFileNameNoParams):

  • fast/picture/resources/image-set-4x.png: Added.
12:10 PM Changeset in webkit [192952] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Removed unnecessary #if USE(JSVALUE64).
https://bugs.webkit.org/show_bug.cgi?id=151733

Not reviewed.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

11:46 AM Changeset in webkit [192951] by peavo@outlook.com
  • 2 edits in trunk/Source/WebCore

[WinCairo][MediaFoundation] Video is not rendered correctly on some graphics cards.
https://bugs.webkit.org/show_bug.cgi?id=151757

Reviewed by Alex Christensen.

We need to make sure we use the same bitmap format as in the Direct3D surface
in video memory when copying surface data and rendering with Cairo.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::presentSample):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::paintCurrentFrame):

11:20 AM Changeset in webkit [192950] by mark.lam@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

Use the JITAddGenerator snippet in the FTL.
https://bugs.webkit.org/show_bug.cgi?id=151519

Reviewed by Geoffrey Garen.

One detail about how we choosing to handle operands to the binary snippets that
may be constant: the slow path call to a C++ function still needs the constant
operand loaded in a register. To simplify things, we're choosing to always tell
LLVM to load the operands into registers even if they may be constant. However,
even though a constant operand is preloaded in a register, the snippet generator
will not be made aware of it. It will continue to load the constant as an
immediate.

  • ftl/FTLCompile.cpp:
  • ftl/FTLCompileBinaryOp.cpp:

(JSC::FTL::generateArithSubFastPath):
(JSC::FTL::generateValueAddFastPath):

  • generateValueAddFastPath() currently is an exact copy of generateArithSubFastPath() except that it uses JITAddGenerator instead of JITSubGenerator. When we add support for JITMulGenerator later, the code will start to vary. We'll refactor these functions then when we have more insight into what needs to vary between the implementations.
  • ftl/FTLCompileBinaryOp.h:
  • ftl/FTLInlineCacheDescriptor.h:
  • ftl/FTLInlineCacheDescriptorInlines.h:

(JSC::FTL::ValueAddDescriptor::ValueAddDescriptor):
(JSC::FTL::ValueAddDescriptor::icSize):

  • ftl/FTLInlineCacheSize.cpp:

(JSC::FTL::sizeOfValueAdd):

  • ftl/FTLInlineCacheSize.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

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

11:15 AM Changeset in webkit [192949] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Teach DFG that ArithSub can now clobber the heap (and other things).
https://bugs.webkit.org/show_bug.cgi?id=151733

Reviewed by Geoffrey Garen.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

11:13 AM Changeset in webkit [192948] by beidson@apple.com
  • 12 edits in trunk/Source/WebCore

Modern IDB: Get rid of IDBExceptionCode.
https://bugs.webkit.org/show_bug.cgi?id=151753

Reviewed by Alex Christensen.

No new tests (No change in behavior).

  • Modules/indexeddb/client/IDBIndexImpl.cpp:

(WebCore::IDBClient::IDBIndex::count):
(WebCore::IDBClient::IDBIndex::doCount):
(WebCore::IDBClient::IDBIndex::get):
(WebCore::IDBClient::IDBIndex::doGet):
(WebCore::IDBClient::IDBIndex::getKey):
(WebCore::IDBClient::IDBIndex::doGetKey):

  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::get):
(WebCore::IDBClient::IDBObjectStore::deleteFunction):
(WebCore::IDBClient::IDBObjectStore::clear):
(WebCore::IDBClient::IDBObjectStore::createIndex):
(WebCore::IDBClient::IDBObjectStore::index):
(WebCore::IDBClient::IDBObjectStore::deleteIndex):
(WebCore::IDBClient::IDBObjectStore::count):
(WebCore::IDBClient::IDBObjectStore::doCount):

  • Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:

(WebCore::IDBClient::IDBOpenDBRequest::fireErrorAfterVersionChangeAbort):

  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::abortOnServerAndCancelRequests):

  • Modules/indexeddb/server/IndexValueStore.cpp:

(WebCore::IDBServer::IndexValueStore::addRecord):

  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::beginTransaction):
(WebCore::IDBServer::MemoryIDBBackingStore::abortTransaction):
(WebCore::IDBServer::MemoryIDBBackingStore::commitTransaction):
(WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::deleteObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::clearObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::createIndex):
(WebCore::IDBServer::MemoryIDBBackingStore::deleteIndex):
(WebCore::IDBServer::MemoryIDBBackingStore::deleteRange):
(WebCore::IDBServer::MemoryIDBBackingStore::addRecord):
(WebCore::IDBServer::MemoryIDBBackingStore::getRecord):
(WebCore::IDBServer::MemoryIDBBackingStore::getIndexRecord):
(WebCore::IDBServer::MemoryIDBBackingStore::getCount):
(WebCore::IDBServer::MemoryIDBBackingStore::openCursor):
(WebCore::IDBServer::MemoryIDBBackingStore::iterateCursor):

  • Modules/indexeddb/server/MemoryIndex.cpp:

(WebCore::IDBServer::MemoryIndex::putIndexKey):

  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::createIndex):
(WebCore::IDBServer::MemoryObjectStore::deleteIndex):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

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

  • Modules/indexeddb/shared/IDBError.cpp:

(WebCore::IDBError::IDBError):
(WebCore::IDBError::name):
(WebCore::IDBError::message):
(WebCore::idbErrorName): Deleted.
(WebCore::idbErrorDescription): Deleted.

  • Modules/indexeddb/shared/IDBError.h:

(WebCore::IDBError::code):
(WebCore::IDBError::isNull):

11:04 AM Changeset in webkit [192947] by jiewen_tan@apple.com
  • 3 edits
    2 adds in trunk

Null dereference loading Blink layout test fast/loader/unload-mutation-crash.html
https://bugs.webkit.org/show_bug.cgi?id=149305
<rdar://problem/22747892>

Reviewed by Brent Fulgham.

Source/WebCore:

Add an extra guard to replaceDocument() against rude JS in unload event handlers.

Test: fast/loader/unload-mutation-crash.html

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::replaceDocument):
(WebCore::DocumentWriter::begin):

LayoutTests:

This test case is from Blink r180918:
https://codereview.chromium.org/495743003

  • fast/loader/unload-mutation-crash-expected.txt: Added.
  • fast/loader/unload-mutation-crash.html: Added.
10:49 AM Changeset in webkit [192946] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk/Source/JavaScriptCore

[JSC] Handle x86 partial register stalls in Air
https://bugs.webkit.org/show_bug.cgi?id=151735

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

This patch adds a primitive false-dependency breaking
algorithm to Air. We look for redefinition of the same
variable that is too close to a partial definition.

There is not explicit dependency tracking going on,
but it is pretty fast and the extra xorps added on false-positives
are cheap anyway.

Typically, partial register stalls appear from instructions
interfering with themselves in small loops. Something like:

Label0:

cvtsi2sdq %eax, %xmm0
...
jmp Label0

Those are correctly detected by propagating the local distance
information from block to block until no unsafe chain is found.

The test testInt32ToDoublePartialRegisterStall() checks the kind
of cases we typically find from JavaScript.
The execution time is 20% faster with a register reset (which is
astounding since the very next instruction has a real dependency).

Future tweaks will be needed when we can run more JavaScript:
-Handle function calls differently.
-Anything with a special can have hidden instructions.

We need to take them into account.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::moveZeroToDouble):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::xorps_rr):
(JSC::X86Assembler::xorpd_rr):
According to the documentation, starting with Sandy Bridge,
registers reset can be done in the frontend with xorps.

  • b3/B3IndexSet.h:

(JSC::B3::IndexSet::remove):

  • b3/air/AirFixPartialRegisterStalls.cpp: Added.

(JSC::B3::Air::fixPartialRegisterStalls):

  • b3/air/AirFixPartialRegisterStalls.h: Added.
  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::prepareForGeneration):

  • b3/testb3.cpp:

(JSC::B3::testInt32ToDoublePartialRegisterStall):
(JSC::B3::run):

  • jit/FPRInfo.h:
9:27 AM Changeset in webkit [192945] by commit-queue@webkit.org
  • 6 edits in trunk

Web Inspector: Handle YieldExpressions in the ScriptSyntaxTree
https://bugs.webkit.org/show_bug.cgi?id=151730

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-12-02
Reviewed by Brian Burg.

Source/WebInspectorUI:

  • UserInterface/Models/NativeFunctionParameters.js:

Add the Generator API.

  • UserInterface/Models/ScriptSyntaxTree.js:

(WebInspector.ScriptSyntaxTree.prototype._recurse):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
Handle YieldExpressions.

LayoutTests:

  • inspector/model/parse-script-syntax-tree-expected.txt:
  • inspector/model/parse-script-syntax-tree.html:
8:53 AM Changeset in webkit [192944] by Brent Fulgham
  • 25 edits in trunk/Tools

[Win] Run non-http tests without Cygwin
https://bugs.webkit.org/show_bug.cgi?id=151721

Reviewed by Andy Estes.

Support native 32-bit and 64-bit Python (and Perl) builds
for running tests:

  1. Use "startswith('win')", rather than "== 'win32'" to support

various Windows build types.

  1. Supply full path for some native Windows utilities, since the

path environment does not always have the specified, and they are
guaranteed to exist in those specific locations.

  1. Make sure native Windows Python test runs pass proper environment

variables to run programs.

  1. Append 'exe' suffix when running Windows executables.
  2. Use the _winreg Python module on Windows, since the Cygwin 'regtool'

command doesn't exist.

  • Scripts/update-webkit: Use Perl $X command to refer to the path of

the current Perl executable, rather than requiring a new path search.

  • Scripts/webkitpy/common/find_files_unittest.py:

(TestWinNormalize.test_win): Use startswith('win').

  • Scripts/webkitpy/common/prettypatch_unittest.py:

(test_pretty_diff_encodings): Ditto.

  • Scripts/webkitpy/common/system/executive.py:

(Executive._should_close_fds): Ditto.
(Executive.shell_command_for_script): Use startswith('win').
(Executive.kill_process): Use full path to killall executable.
(Executive.check_running_pid): Use startswith('win').
(Executive.running_pids): Ditto.
(Executive.kill_all): Ditto. Also use path to 'killall' executable when
running under native Windows Python.
(Executive._child_process_encoding): Use startswith('win').
(Executive._should_encode_child_process_arguments): Ditto.
(Executive.popen): Recognize proper script engine on Windows, since it
does not support the shebang syntax.
(Executive.run_in_parallel): Use startswith('win').

  • Scripts/webkitpy/common/system/executive_unittest.py:

(never_ending_command): Ditto.
(ExecutiveTest.test_run_command_with_unicode): Ditto.
(ExecutiveTest.serial_test_kill_process): Ditto.
(ExecutiveTest.serial_test_kill_all): Ditto.
(ExecutiveTest.serial_test_check_running_pid): Ditto.
(ExecutiveTest.serial_test_run_in_parallel): Ditto.
(main): Ditto.

  • Scripts/webkitpy/common/system/file_lock.py:

(FileLock._create_lock): Ditto.
(FileLock._remove_lock): Ditto.

  • Scripts/webkitpy/common/system/filesystem_unittest.py:

(RealFileSystemTest.test_chdir): Ditto.
(RealFileSystemTest.test_chdirnotexists): Ditto.
(RealFileSystemTest.test_maybe_make_directory
failure): Ditto.

  • Scripts/webkitpy/common/system/path_unittest.py:

(AbspathTest.test_abspath_to_uri_win): Ditto.

  • Scripts/webkitpy/common/system/platforminfo.py:

(PlatformInfo._determine_os_name): Ditto.

  • Scripts/webkitpy/common/system/user.py: Ditto.
  • Scripts/webkitpy/layout_tests/controllers/manager_unittest.py:

(ManagerTest.integration_test_needs_servers): Ditto.

  • Scripts/webkitpy/layout_tests/servers/apache_http_server.py:

(LayoutTestApacheHttpd.init): Handle upper and lower-case
driver letters.
(LayoutTestApacheHttpd._get_apache_config_file_path): Ditto.

  • Scripts/webkitpy/layout_tests/servers/apache_http_server_unittest.py:

(TestLayoutTestApacheHttpd.test_start_cmd): Ditto.

  • Scripts/webkitpy/layout_tests/servers/http_server_base.py:

(HttpServerBase._check_that_all_ports_are_available): Ditto.

  • Scripts/webkitpy/layout_tests/servers/http_server_unittest.py:

(TestHttpServer.test_start_cmd): Ditto.

  • Scripts/webkitpy/port/base.py:

(Port.to.setup_environ_for_server): Include 'COMSPEC', 'SYSTEMDRIVE',
and 'SYSTEMROOT' in environment passed to test runners.
(Port._apache_config_file_name_for_platform): Use startswith('win').
(Port._build_path): Ditto.
(Port._path_to_driver): Include 'exe' suffix when running under native
Windows.

  • Scripts/webkitpy/port/driver.py:

(Driver._setup_environ_for_driver): Explicitly make some environment
variables strings.

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess.init): Use startswith('win').

  • Scripts/webkitpy/port/win.py:

(WinPort): Use the win32 registry utilities on Windows, and appropriate
registry key formats.
(WinPort._ntsd_location): Revise tool search paths for Windows 10.
(WinPort.read_registry_value): Revise to use _winreg library on Windows,
and regtool on Cygwin.
(WinPort.write_registry_value): Ditto.
(WinPort.setup_crash_log_saving): Ditto.
(WinPort.restore_crash_log_saving): Ditto.
(WinPort.prevent_error_dialogs): Ditto.
(WinPort.allow_error_dialogs): Ditto.
(WinPort.find_system_pid): Revise to use Windows management
infrastructure on native Windows, continue using 'ps' on Cygwin.
(WinPort.read_registry_string): Deleted.
(WinPort.write_registry_string): Deleted.

  • Scripts/webkitpy/test/main.py:

(main): Use startswith('win').
(Tester._parse_args): Ditto.

4:08 AM Changeset in webkit [192943] by peavo@outlook.com
  • 2 edits in trunk/Source/WebCore

[WinCairo] Compile error.
https://bugs.webkit.org/show_bug.cgi?id=151742

Reviewed by Csaba Osztrogonác.

System font flag has moved from Font class to FontData class.

  • platform/graphics/win/SimpleFontDataCairoWin.cpp:

(WebCore::Font::platformInit):

Dec 1, 2015:

11:49 PM Changeset in webkit [192942] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

11:48 PM Changeset in webkit [192941] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.13

New tag.

7:55 PM Changeset in webkit [192940] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

[Win] Test gardening after r192895

Unreviewed.

  • fast/text/emoji-overlap-expected.html:
  • fast/text/emoji-overlap.html:
7:38 PM Changeset in webkit [192939] by Hunseop Jeong
  • 2 edits in trunk/Source/WebKit2

Unreviewed, fix build after r192931.

  • CMakeLists.txt: Remove the WKOriginDataManager in CMakeLists.txt.
7:23 PM Changeset in webkit [192938] by commit-queue@webkit.org
  • 3 edits
    3 deletes in trunk

Unreviewed, rolling out r192894 and r192904.
https://bugs.webkit.org/show_bug.cgi?id=151738

Crashes sometimes on Windows (Requested by litherum on
#webkit).

Reverted changesets:

"[Win] Web fonts with small caps have excess whitespace with
the complex text codepath"
https://bugs.webkit.org/show_bug.cgi?id=151698
http://trac.webkit.org/changeset/192894

"Test gardening after r192894"
http://trac.webkit.org/changeset/192904

7:16 PM Changeset in webkit [192937] by Yusuke Suzuki
  • 90 edits
    2 copies
    28 adds in trunk

[ES6] Implement LLInt/Baseline Support for ES6 Generators and enable this feature
https://bugs.webkit.org/show_bug.cgi?id=150792

Reviewed by Saam Barati.

.:

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

Source/JavaScriptCore:

This patch implements basic functionality of ES6 Generators in LLInt and Baseline tiers.
While the implementation has some inefficient part, the implementation covers edge cases.
Later, we will make this efficient.

https://bugs.webkit.org/show_bug.cgi?id=151545
https://bugs.webkit.org/show_bug.cgi?id=151546
https://bugs.webkit.org/show_bug.cgi?id=151547
https://bugs.webkit.org/show_bug.cgi?id=151552
https://bugs.webkit.org/show_bug.cgi?id=151560
https://bugs.webkit.org/show_bug.cgi?id=151586

To encourage DFG / FTL later, we take the following design.

  1. Use switch_imm to jump to the save/resume points.

Instead of saving / restoring instruction pointer to resume from it, we use switch_imm to jump to the resume point.
This limits one entry point to a given generator function. This design makes inlining easy.
The generated code becomes the following.

function @generatorNext(@generator, @generatorState, @generatorValue, @generatorResumeMode)
{

switch (@generatorState) {
case Initial:

...
initial sequence.
...

op_save(Yield_0); op_save contains *virtual* jump to Yield_0.

CFG shows a jump edge to Yield_0 point, but it won't be actually used.

return ...;

case Yield_0:

op_resume();
if (@generatorResumeMode == Throw)

...

else if (@generatorResumeMode == Return)

...

...
sentValue is a value sent from a caller by generator.next(sentValue).
sentValue = @generatorValue;
...
op_save(Yield_1);
return ...;

case Yield_1:

op_resume();
if (@generatorResumeMode == Throw)

...

else if (@generatorResumeMode == Return)

...

...
sentValue = @generatorValue;
...

...
}

}

Resume sequence should not be emitted per yield.
This should be done in https://bugs.webkit.org/show_bug.cgi?id=151552.

  1. Store live frame registers to GeneratorFrame

To save and resume generator's state, we save all the live registers in GeneratorFrame.
And when resuming, we refill registers with saved ones.
Since saved register contains scope register, |this| etc., the environment including the scope chain will be recovered automatically.
While saving and resuming callee registers, we don't save parameter registers.
These registers will be used to control generator's resume behavior.

We perform BytecodeLivenessAnalysis in CodeBlock to determine actually *def*ined registers at that resume point.

  1. GeneratorFunction will evaluate parameters before generating Generator

Generator's parameter should be evaluated before entering Generator's body. For example,

function hello() { ... }
function *gen(a, b = hello())
{

yield b;

}
let g = gen(20); Now, hello should be called.

To enable this, we evaluate parameters in GeneratorFunction, and after that, we create a Generator and return it.
This can be explained by the following pseudo code.

function *gen(a, b = hello())
{

This is generator.
return {

@generatorNext: function (@generator, @generatorState, @generatorValue, @generatorResumeMode)
{

...

}

}

}

  1. op_save seems similar to conditional jump

We won't jump to elsewhere from op_save actually. But we add a *virtual* jump edge (flow) from op_save to the point so called *merge point*.
We construct the CFG as follows,

(global generator switch) -> (initial sequence) -> (op_save) ----+-> (merge point) -> (next sequence)*

| | |
| v |
| (op_ret) |
| |
+------------------------------------------->(op_resume)--+

By constructing such a graph,

  1. Since we have a flow from (op_save) to (merge point), at merge point, we can *use* locals that are defined before (op_save)
  2. op_save should claim that it does not define anything. And claim that it *use*s locals that are used in (merge point).
  3. at op_resume, we see *use*d locals at merge point and define all of them.

We can do the above things in use-def analysis because use-def analysis is backward analysis.
And after analyzing use-def chains, in op_save / op_resume, we only save / resume live registers at the head of merge point.

  • API/JSScriptRef.cpp:

(parseScript):

  • CMakeLists.txt:
  • Configurations/FeatureDefines.xcconfig:
  • DerivedSources.make:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/BuiltinExecutables.cpp:

(JSC::createExecutableInternal):

  • builtins/GeneratorPrototype.js: Added.

(generatorResume):
(next):
(return):
(throw):

  • bytecode/BytecodeBasicBlock.cpp:

(JSC::isBranch):

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeLivenessAnalysis.cpp:

(JSC::stepOverInstruction):
(JSC::computeLocalLivenessForBytecodeOffset):
(JSC::BytecodeLivenessAnalysis::runLivenessFixpoint):
(JSC::BytecodeLivenessAnalysis::computeFullLiveness):
(JSC::BytecodeLivenessAnalysis::computeKills):

  • bytecode/BytecodeUseDef.h:

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

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::shrinkToFit):
(JSC::CodeBlock::validate):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::numCalleeLocals):
(JSC::CodeBlock::liveCalleeLocalsAtYield):

  • bytecode/EvalCodeCache.h:

(JSC::EvalCodeCache::tryGet):
(JSC::EvalCodeCache::getSlow):
(JSC::EvalCodeCache::isCacheable):

  • bytecode/ExecutableInfo.h:

(JSC::ExecutableInfo::ExecutableInfo):
(JSC::ExecutableInfo::generatorThisMode):
(JSC::ExecutableInfo::superBinding):
(JSC::ExecutableInfo::parseMode):
(JSC::ExecutableInfo::isArrowFunction): Deleted.

  • bytecode/PreciseJumpTargets.cpp:

(JSC::getJumpTargetsForBytecodeOffset):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::parseMode):
(JSC::UnlinkedCodeBlock::generatorThisMode):
(JSC::UnlinkedCodeBlock::superBinding):
(JSC::UnlinkedCodeBlock::isArrowFunction): Deleted.

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):

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

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeParameters):
(JSC::BytecodeGenerator::newRegister):
(JSC::BytecodeGenerator::reclaimFreeRegisters):
(JSC::BytecodeGenerator::createVariable):
(JSC::BytecodeGenerator::emitCreateThis):
(JSC::BytecodeGenerator::emitNewFunctionExpressionCommon):
(JSC::BytecodeGenerator::emitNewFunctionExpression):
(JSC::BytecodeGenerator::emitNewArrowFunctionExpression):
(JSC::BytecodeGenerator::emitNewFunction):
(JSC::BytecodeGenerator::emitIteratorNextWithValue):
(JSC::BytecodeGenerator::emitYieldPoint):
(JSC::BytecodeGenerator::emitSave):
(JSC::BytecodeGenerator::emitResume):
(JSC::BytecodeGenerator::emitYield):
(JSC::BytecodeGenerator::emitDelegateYield):
(JSC::BytecodeGenerator::emitGeneratorStateChange):
(JSC::BytecodeGenerator::emitGeneratorStateLabel):
(JSC::BytecodeGenerator::beginGenerator):
(JSC::BytecodeGenerator::endGenerator):
(JSC::BytecodeGenerator::emitNewFunctionInternal): Deleted.
(JSC::BytecodeGenerator::emitNewFunctionCommon): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::generatorThisMode):
(JSC::BytecodeGenerator::superBinding):
(JSC::BytecodeGenerator::generatorRegister):
(JSC::BytecodeGenerator::generatorStateRegister):
(JSC::BytecodeGenerator::generatorValueRegister):
(JSC::BytecodeGenerator::generatorResumeModeRegister):
(JSC::BytecodeGenerator::parseMode):
(JSC::BytecodeGenerator::registerFor):
(JSC::BytecodeGenerator::makeFunction):

  • bytecompiler/NodesCodegen.cpp:

(JSC::ThisNode::emitBytecode):
(JSC::emitHomeObjectForCallee):
(JSC::emitSuperBaseForCallee):
(JSC::ReturnNode::emitBytecode):
(JSC::FunctionNode::emitBytecode):
(JSC::YieldExprNode::emitBytecode):

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGForAllKills.h:

(JSC::DFG::forAllKilledOperands):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::forAllLocalsLiveInBytecode):

  • dfg/DFGOSREntrypointCreationPhase.cpp:

(JSC::DFG::OSREntrypointCreationPhase::run):

  • dfg/DFGVariableEventStream.cpp:

(JSC::DFG::VariableEventStream::reconstruct):

  • ftl/FTLForOSREntryJITCode.cpp:

(JSC::FTL::ForOSREntryJITCode::initializeEntryBuffer):

  • ftl/FTLForOSREntryJITCode.h:
  • ftl/FTLOSREntry.cpp:

(JSC::FTL::prepareOSREntry):

  • ftl/FTLState.cpp:

(JSC::FTL::State::State):

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::isAtom):
(JSC::MarkedBlock::isLiveCell):

  • interpreter/Interpreter.cpp:

(JSC::eval):
(JSC::Interpreter::dumpRegisters):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::frameRegisterCountFor):

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

(JSC::JIT::emitNewFuncCommon):
(JSC::JIT::emit_op_new_func):
(JSC::JIT::emit_op_new_generator_func):
(JSC::JIT::emitNewFuncExprCommon):
(JSC::JIT::emit_op_new_func_exp):
(JSC::JIT::emit_op_new_generator_func_exp):
(JSC::JIT::emit_op_save):
(JSC::JIT::emit_op_resume):

  • jit/JITOperations.cpp:

(JSC::operationNewFunctionCommon):

  • jit/JITOperations.h:
  • llint/LLIntEntrypoint.cpp:

(JSC::LLInt::frameRegisterCountFor):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::traceFunctionPrologue):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createYield):
(JSC::ASTBuilder::createFunctionMetadata):
(JSC::ASTBuilder::propagateArgumentsUse):

  • parser/Nodes.cpp:

(JSC::FunctionMetadataNode::FunctionMetadataNode):

  • parser/Nodes.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseGeneratorFunctionSourceElements):
(JSC::Parser<LexerType>::parseFunctionBody):
(JSC::stringForFunctionMode):
(JSC::Parser<LexerType>::createGeneratorParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseYieldExpression):
(JSC::Parser<LexerType>::parsePropertyMethod):
(JSC::Parser<LexerType>::parseFunctionExpression):

  • parser/Parser.h:

(JSC::Scope::Scope):
(JSC::Scope::setSourceParseMode):
(JSC::Scope::hasArguments):
(JSC::Scope::collectFreeVariables):
(JSC::Scope::setIsFunction):
(JSC::Scope::setIsGeneratorFunction):
(JSC::Scope::setIsGenerator):
(JSC::parse):

  • parser/ParserModes.h:

(JSC::isFunctionParseMode):
(JSC::isModuleParseMode):
(JSC::isProgramParseMode):

  • parser/SourceCodeKey.h: Added.

(JSC::SourceCodeKey::SourceCodeKey):
(JSC::SourceCodeKey::isHashTableDeletedValue):
(JSC::SourceCodeKey::hash):
(JSC::SourceCodeKey::length):
(JSC::SourceCodeKey::isNull):
(JSC::SourceCodeKey::string):
(JSC::SourceCodeKey::operator==):
(JSC::SourceCodeKeyHash::hash):
(JSC::SourceCodeKeyHash::equal):
(JSC::SourceCodeKeyHashTraits::isEmptyValue):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createYield):
(JSC::SyntaxChecker::createFunctionMetadata):
(JSC::SyntaxChecker::operatorStackPop):

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):

  • runtime/CodeCache.h:

(JSC::SourceCodeKey::SourceCodeKey): Deleted.
(JSC::SourceCodeKey::isHashTableDeletedValue): Deleted.
(JSC::SourceCodeKey::hash): Deleted.
(JSC::SourceCodeKey::length): Deleted.
(JSC::SourceCodeKey::isNull): Deleted.
(JSC::SourceCodeKey::string): Deleted.
(JSC::SourceCodeKey::operator==): Deleted.
(JSC::SourceCodeKeyHash::hash): Deleted.
(JSC::SourceCodeKeyHash::equal): Deleted.
(JSC::SourceCodeKeyHashTraits::isEmptyValue): Deleted.

  • runtime/CommonIdentifiers.h:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • runtime/Completion.cpp:

(JSC::checkSyntax):
(JSC::checkModuleSyntax):

  • runtime/Executable.cpp:

(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ProgramExecutable::checkSyntax):

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

(JSC::constructFunction):
(JSC::constructFunctionSkippingEvalEnabledCheck):

  • runtime/FunctionConstructor.h:
  • runtime/GeneratorFrame.cpp: Added.

(JSC::GeneratorFrame::GeneratorFrame):
(JSC::GeneratorFrame::finishCreation):
(JSC::GeneratorFrame::createStructure):
(JSC::GeneratorFrame::create):
(JSC::GeneratorFrame::save):
(JSC::GeneratorFrame::resume):
(JSC::GeneratorFrame::visitChildren):

  • runtime/GeneratorFrame.h: Added.

(JSC::GeneratorFrame::locals):
(JSC::GeneratorFrame::localAt):
(JSC::GeneratorFrame::offsetOfLocals):
(JSC::GeneratorFrame::allocationSizeForLocals):

  • runtime/GeneratorFunctionConstructor.cpp: Added.

(JSC::GeneratorFunctionConstructor::GeneratorFunctionConstructor):
(JSC::GeneratorFunctionConstructor::finishCreation):
(JSC::callGeneratorFunctionConstructor):
(JSC::constructGeneratorFunctionConstructor):
(JSC::GeneratorFunctionConstructor::getCallData):
(JSC::GeneratorFunctionConstructor::getConstructData):

  • runtime/GeneratorFunctionConstructor.h: Added.

(JSC::GeneratorFunctionConstructor::create):
(JSC::GeneratorFunctionConstructor::createStructure):

  • runtime/GeneratorFunctionPrototype.cpp: Added.

(JSC::GeneratorFunctionPrototype::GeneratorFunctionPrototype):
(JSC::GeneratorFunctionPrototype::finishCreation):

  • runtime/GeneratorFunctionPrototype.h: Added.

(JSC::GeneratorFunctionPrototype::create):
(JSC::GeneratorFunctionPrototype::createStructure):

  • runtime/GeneratorPrototype.cpp: Copied from Source/JavaScriptCore/ftl/FTLForOSREntryJITCode.cpp.

(JSC::GeneratorPrototype::finishCreation):
(JSC::GeneratorPrototype::getOwnPropertySlot):

  • runtime/GeneratorPrototype.h: Copied from Source/JavaScriptCore/ftl/FTLForOSREntryJITCode.cpp.

(JSC::GeneratorPrototype::create):
(JSC::GeneratorPrototype::createStructure):
(JSC::GeneratorPrototype::GeneratorPrototype):

  • runtime/GeneratorThisMode.h: Added.
  • runtime/JSFunction.cpp:

(JSC::JSFunction::getOwnPropertySlot):

  • runtime/JSGeneratorFunction.cpp: Added.

(JSC::JSGeneratorFunction::JSGeneratorFunction):
(JSC::JSGeneratorFunction::createImpl):
(JSC::JSGeneratorFunction::create):
(JSC::JSGeneratorFunction::createWithInvalidatedReallocationWatchpoint):

  • runtime/JSGeneratorFunction.h: Added.

(JSC::JSGeneratorFunction::allocationSize):
(JSC::JSGeneratorFunction::createStructure):

  • runtime/JSGlobalObject.cpp:

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

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::generatorFunctionPrototype):
(JSC::JSGlobalObject::generatorPrototype):
(JSC::JSGlobalObject::generatorFunctionStructure):

  • runtime/ModuleLoaderObject.cpp:

(JSC::moduleLoaderObjectParseModule):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • tests/es6.yaml:
  • tests/es6/generators_yield_star_generic_iterables.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/es6/generators_yield_star_instances_of_iterables.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/es6/generators_yield_star_iterator_closing.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/es6/generators_yield_star_iterator_closing_via_throw.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/stress/generator-arguments-from-function.js: Added.

(shouldBe):
(test):

  • tests/stress/generator-arguments.js: Added.

(shouldBe):
(g1):

  • tests/stress/generator-class-methods-syntax.js: Added.

(testSyntax):
(testSyntaxError):
(testSyntaxError.Cocoa):
(testSyntax.Cocoa.prototype.ok):
(testSyntax.Cocoa):
(testSyntax.Cocoa.ok):

  • tests/stress/generator-class-methods.js: Added.

(shouldBe):
(prototype.gen):
(staticGen):
(shouldBe.g.next):

  • tests/stress/generator-eval-this.js: Added.

(shouldBe):
(shouldThrow):
(B):
(A):
(C.prototype.generator):
(C):
(TypeError):

  • tests/stress/generator-function-constructor.js: Added.

(shouldBe):
(generatorFunctionConstructor):

  • tests/stress/generator-function-name.js: Added.

(shouldBe):
(ok):

  • tests/stress/generator-methods-with-non-generator.js: Added.

(shouldThrow):

  • tests/stress/generator-relations.js: Added.

(shouldBe):
(generatorFunction):

  • tests/stress/generator-return-before-first-call.js: Added.

(shouldBe):
(shouldBeIteratorResult):

  • tests/stress/generator-return.js: Added.

(shouldBe):
(shouldBeIteratorResult):

  • tests/stress/generator-this.js: Added.

(shouldBe):
(shouldThrow):
(gen):
(shouldBe.g.next):

  • tests/stress/generator-throw-before-first-call.js: Added.

(unreachable):
(gen):
(catch):

  • tests/stress/generator-throw.js: Added.

(shouldBe):
(shouldBeIteratorResult):

  • tests/stress/generator-with-new-target.js: Added.

(shouldBe):
(gen):

  • tests/stress/generator-with-super.js: Added.

(shouldThrow):
(test):
(B.prototype.gen):
(B):
(A.prototype.gen):
(A):

  • tests/stress/generator-yield-star.js: Added.

(shouldBe):
(shouldThrow):
(prototype.call):
(Arrays):
(Arrays.prototype.Symbol.iterator):
(Iterator.prototype.next):
(Iterator.prototype.string_appeared_here):
(Iterator.prototype.Symbol.iterator):
(Iterator):
(gen):

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FastBitVector.h:

(WTF::FastBitVector::forEachSetBit):

  • wtf/FeatureDefines.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:

WebKitLibraries:

  • win/tools/vsprops/FeatureDefines.props:
  • win/tools/vsprops/FeatureDefinesCairo.props:
5:37 PM Changeset in webkit [192936] by Matt Baker
  • 14 edits in trunk/Source/WebInspectorUI

Web Inspector: TreeOutline should just dispatch events via WebInspector.Object
https://bugs.webkit.org/show_bug.cgi?id=148067

Reviewed by Timothy Hatcher.

TreeOutline now dispatches most events via WebInspector.Object. The onselect and
ondeselect callbacks are replaced by a SelectionDidChange event, which includes
both the selected and deselected elements in its event data. The onexpand and oncollapse
callbacks are replaced by an ElementDisclosureDidChange event. This is consistent with the
behavior of onhidden, which had no corresponding onvisible callback.

Alas, TimelineView and TreeOutlineDataGridSynchronizer depended on the order in which
TreeOutline.onselect callbacks were chained together. The synchronizer added its
callback after the timeline view, which ensured that the tree and grid were in sync
before the view handled onselect and dispatched a SelectionPathComponentsDidChange.
The change notification causes the view's path components to be read, and timeline
views need the grid selection to be in a valid state to build path components.

This is addressed by having timeline views dispatch SelectionPathComponentsDidChange
events when the grid selection changes, instead of the tree selection. The change
required that the synchronizer no longer suppress notifications when selecting grid nodes.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
(WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):

  • UserInterface/Views/NetworkGridContentView.js:

(WebInspector.NetworkGridContentView):
(WebInspector.NetworkGridContentView.prototype._treeSelectionDidChange):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype._treeSelectionDidChange):
(WebInspector.ResourceSidebarPanel.prototype._treeElementSelected): Deleted.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateWatchExpressionsSection):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._treeElementAdded):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._treeElementDisclosureDidChange):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeExpandHandler): Deleted.
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeCollapseHandler): Deleted.

  • UserInterface/Views/SearchSidebarPanel.js:

(WebInspector.SearchSidebarPanel):
(WebInspector.SearchSidebarPanel.prototype._treeSelectionDidChange):
(WebInspector.SearchSidebarPanel.prototype._treeElementSelected): Deleted.

  • UserInterface/Views/StorageSidebarPanel.js:

(WebInspector.StorageSidebarPanel):
(WebInspector.StorageSidebarPanel._treeSelectionDidChange):

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid.prototype._createPopoverContent):
(WebInspector.TimelineDataGrid.prototype._popoverCallStackTreeSelectionDidChange):
(WebInspector.TimelineDataGrid):

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype._recordingsTreeSelectionDidChange):
(WebInspector.TimelineSidebarPanel.prototype._timelinesTreeSelectionDidChange):
(WebInspector.TimelineSidebarPanel.prototype._timelinesTreeElementSelected): Deleted.

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype._treeSelectionDidChange):
(WebInspector.TimelineView.prototype.treeElementSelected):
Don't dispatch SelectionPathComponentsDidChange. Timeline views already do this
in response to grid selection events.

  • UserInterface/Views/TreeOutline.js:

(WebInspector.TreeOutline.prototype.appendChild):
(WebInspector.TreeOutline.prototype.insertChild):
(WebInspector.TreeOutline.prototype.removeChildAtIndex):
(WebInspector.TreeOutline.prototype.removeChildren):
(WebInspector.TreeOutline.prototype.removeChildrenRecursive):
(WebInspector.TreeOutline.prototype._treeElementDidChange):
(WebInspector.TreeElement.prototype.set hidden):
(WebInspector.TreeElement.prototype.collapse):
(WebInspector.TreeElement.prototype.expand):
(WebInspector.TreeElement.prototype.select):
(WebInspector.TreeElement.prototype.deselect):
(WebInspector.TreeElement.prototype.get childrenListElement): Deleted.
Removed dead code.

  • UserInterface/Views/TreeOutlineDataGridSynchronizer.js:

(WebInspector.TreeOutlineDataGridSynchronizer):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeSelectionDidChange):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementAdded):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementRemoved):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementDisclosureDidChange):
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementVisibilityDidChange):
(WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.onadd): Deleted.
(WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.onremove): Deleted.
(WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.onexpand): Deleted.
(WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.oncollapse): Deleted.
(WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.onhidden): Deleted.
(WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.onselect): Deleted.
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementSelected): Deleted.
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementExpanded): Deleted.
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementCollapsed): Deleted.
(WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementHiddenChanged): Deleted.

  • UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:

(WebInspector.VisualStyleCommaSeparatedKeywordEditor):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._treeSelectionDidChange):
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._treeElementSelected): Deleted.

5:37 PM Changeset in webkit [192935] by commit-queue@webkit.org
  • 90 edits
    30 deletes in trunk

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

JSC tests for this change are failing on 32 and 64-bit bots
(Requested by ryanhaddad on #webkit).

Reverted changeset:

"[ES6] Implement LLInt/Baseline Support for ES6 Generators and
enable this feature"
https://bugs.webkit.org/show_bug.cgi?id=150792
http://trac.webkit.org/changeset/192914

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

Versioning.

5:25 PM Changeset in webkit [192933] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

EventSenderProxy::swipeGestureWithWheelAndMomentumPhases() leaks an EventSenderSyntheticEvent
<http://webkit.org/b/151726>

Reviewed by Simon Fraser.

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::EventSenderProxy::swipeGestureWithWheelAndMomentumPhases):
Deploy RetainPtr<EventSenderSyntheticEvent> to fix leak.

5:24 PM Changeset in webkit [192932] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.82

New tag.

5:10 PM Changeset in webkit [192931] by andersca@apple.com
  • 6 edits
    2 deletes in trunk/Source/WebKit2

Remove WKOriginDataManager
https://bugs.webkit.org/show_bug.cgi?id=151723

Reviewed by Andy Estes.

  • UIProcess/API/C/WKOriginDataManager.cpp: Removed.

(WKOriginDataManagerGetTypeID): Deleted.
(WKOriginDataManagerGetOrigins): Deleted.
(WKOriginDataManagerDeleteEntriesForOrigin): Deleted.
(WKOriginDataManagerDeleteEntriesModifiedBetweenDates): Deleted.
(WKOriginDataManagerDeleteAllEntries): Deleted.

  • UIProcess/API/C/WKOriginDataManager.h: Removed.
  • WebKit2.xcodeproj/project.pbxproj:
4:57 PM Changeset in webkit [192930] by mmaxfield@apple.com
  • 23 edits in trunk

[SVG -> OTF Converter] Force UnitsPerEm to 1000
https://bugs.webkit.org/show_bug.cgi?id=151650

Reviewed by Antti Koivisto.

Source/WebCore:

According to the Adobe Type 1 Font Format:

"Type 1 font programs generally use a 1000 to 1 scaling matrix
for the definition of the relationship of character space unites
to user space units."

Windows actually disregards the "unitsPerEm" value in the "head"
table for some calculations, and hardcodes 1000 instead. In order
to have consistent renderings on Windows and OS X, this patch
forces all generated fonts to have a unitsPerEm of 1000, and
appropriately scales all necessary values.

Test: svg/W3C-SVG-1.1/fonts-elem-03-b.svg

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::scaleUnitsPerEm):
(WebCore::SVGToOTFFontConverter::appendHEADTable):
(WebCore::SVGToOTFFontConverter::appendOS2Table):
(WebCore::SVGToOTFFontConverter::appendVORGTable):
(WebCore::SVGToOTFFontConverter::appendVHEATable):
(WebCore::SVGToOTFFontConverter::appendVMTXTable):
(WebCore::SVGToOTFFontConverter::addKerningPair):
(WebCore::CFFBuilder::CFFBuilder):
(WebCore::CFFBuilder::boundingBox):
(WebCore::CFFBuilder::updateBoundingBox):
(WebCore::CFFBuilder::unscaledLineTo):
(WebCore::SVGToOTFFontConverter::transcodeGlyphPaths):
(WebCore::SVGToOTFFontConverter::processGlyphElement):
(WebCore::SVGToOTFFontConverter::appendLigatureGlyphs):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):

LayoutTests:

Some tests have quantization differences.

  • fast/ruby/ruby-expansion-cjk-2-expected.html:
  • fast/ruby/ruby-expansion-cjk-3-expected.html:
  • fast/ruby/ruby-expansion-cjk-4-expected.html:
  • fast/ruby/ruby-expansion-cjk-5-expected.html:
  • fast/ruby/ruby-expansion-cjk-expected.html:
  • platform/mac-wk2/svg/W3C-SVG-1.1/fonts-elem-04-b-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/fonts-elem-01-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/fonts-elem-02-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/fonts-elem-03-b-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/fonts-elem-07-b-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/text-intro-01-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/text-intro-02-b-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/text-intro-03-b-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/text-intro-04-t-expected.txt:
  • platform/mac/svg/batik/text/textEffect3-expected.txt:
  • platform/mac/svg/batik/text/textPosition2-expected.txt:
  • platform/mac/svg/wicd/test-rightsizing-b-expected.txt:
  • svg/custom/acid3-test-77-expected.txt:
4:50 PM Changeset in webkit [192929] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Add updated test result missing from http://trac.webkit.org/changeset/192924
https://bugs.webkit.org/show_bug.cgi?id=151725

  • storage/indexeddb/modern/opendatabase-request-event-expected.txt:
4:38 PM Changeset in webkit [192928] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Updated favicon.ico with the new logo.

  • favicon.ico:
4:38 PM Changeset in webkit [192927] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/xmlhttprequest/methods-async.html as flaky on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=151729

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:37 PM Changeset in webkit [192926] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Improved accessibility handling for the small drop-down menu.

  • wp-content/themes/webkit/scripts/global.js:
4:35 PM Changeset in webkit [192925] by Jon Davis
  • 5 edits in trunk/Websites/webkit.org

Fixed font rendering. Fixed SVG rendering for Firefox.

  • wp-content/themes/webkit/images/icons.svg:
  • wp-content/themes/webkit/images/inspector.svg:
  • wp-content/themes/webkit/images/twitter.svg:
  • wp-content/themes/webkit/style.css:

(code):
(a[name]):
(.screen-reader-text:focus):
(.page-width):
(.tile.category-web-inspector .background-image):
(.tile.category-performance .background-image):
(.tile.category-javascript .background-image):
(.tile.category-css .background-image):
(.tile.category-standards .background-image):
(.tile.category-contributing .background-image):
(.tile.category-storage .background-image):
(.tile.category-layout .background-image):
(.tile.tag-timeline .background-image):
(.tile.tag-console .background-image):
(.tile.tag-debugger .background-image):
(.tile.tag-shortcuts .background-image):
(.tile .background-image.loaded):
(body, input, textarea, select, button): Deleted.

4:20 PM Changeset in webkit [192924] by beidson@apple.com
  • 7 edits in trunk

Give a more detailed message for TypeErrors that result from EnforceRange.
https://bugs.webkit.org/show_bug.cgi?id=151725

Reviewed by Tim Horton.

Source/WebCore:

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

  • bindings/js/JSDOMBinding.cpp:

(WebCore::rangeErrorString):
(WebCore::enforceRange):

LayoutTests:

  • crypto/subtle/aes-cbc-generate-key-expected.txt:
  • js/dom/webidl-type-mapping-expected.txt:
  • storage/indexeddb/intversion-bad-parameters-expected.txt:
  • storage/indexeddb/version-change-event-basic-expected.txt:
4:13 PM Changeset in webkit [192923] by dburkart@apple.com
  • 4 edits in branches/safari-601-branch/Source/WebCore

Merge r192758. rdar://problem/23581476

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

[iOS] Abrupt transition between Fullscreen -> PiP
https://bugs.webkit.org/show_bug.cgi?id=151719

Reviewed by Eric Carlson.

Rather than abruptly hiding the fullscreen window, explicitly exit fullscreen mode upon entering PiP.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::didStartPictureInPicture):

3:46 PM Changeset in webkit [192921] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Timestamp in Tooltip of Event Markers is incorrect
https://bugs.webkit.org/show_bug.cgi?id=151722

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-12-01
Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineRuler.js:

(WebInspector.TimelineRuler.prototype.addMarker):
Convert the marker's time, to be relative to the start of the recording.

3:30 PM Changeset in webkit [192920] by mmaxfield@apple.com
  • 8 edits in trunk

Give String and AtomicString an existingHash() function
https://bugs.webkit.org/show_bug.cgi?id=151717

Reviewed by Andreas Kling.

Source/WebCore:

No new tests because there is no behavior change.

  • platform/graphics/Font.cpp:

(WebCore::CharacterFallbackMapKeyHash::hash):

Source/WTF:

Test: WTF.AtomicStringExistingHash

WTF.StringExistingHash

  • wtf/text/AtomicString.h:

(WTF::AtomicString::existingHash):

  • wtf/text/WTFString.h:

(WTF::String::existingHash):

Tools:

  • TestWebKitAPI/Tests/WTF/AtomicString.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/WTFString.cpp:

(TestWebKitAPI::TEST):

2:47 PM Changeset in webkit [192919] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] support CoverInitializedName in nested AssignmentPatterns
https://bugs.webkit.org/show_bug.cgi?id=151595

Patch by Caitlin Potter <caitpotter88@gmail.com> on 2015-12-01
Reviewed by Geoffrey Garen.

A regression introduced in bug https://bugs.webkit.org/show_bug.cgi?id=151026
causes the parser to fail when attempting to parse nested
ObjectAssignmentPatterns with CoverInitializedName destructuring targets.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseAssignmentExpressionOrPropagateErrorClass):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parseArrayLiteral):

  • parser/Parser.h:

(JSC::Parser::ExpressionErrorClassifier::propagateExpressionErrorClass):

  • tests/es6.yaml:
  • tests/es6/destructuring_assignment_nested_cover_initialized_name.js: Added.

(test1):
(test2):

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

Add new library dependency for LLVMForJavaScriptCore dylib
https://bugs.webkit.org/show_bug.cgi?id=151687

Changes on open source LLVM added a new dependency to libLLVMInstrumentation.a.
Adding this dependency should be backwards compatible, since LLVM has built and
shipped this library even before the creation of FTL.

Patch by Juergen Ributzka <juergen@apple.com> on 2015-12-01
Reviewed by Geoffrey Garen.

  • Configurations/LLVMForJSC.xcconfig:
2:43 PM Changeset in webkit [192917] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

[Win] Build fix after r192895

Unreviewed.

  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::isSystemFont):
(WebCore::FontPlatformData::setIsSystemFont):

  • platform/graphics/win/SimpleFontDataCGWin.cpp:

(WebCore::Font::platformInit):
(WebCore::Font::platformWidthForGlyph):

2:33 PM Changeset in webkit [192916] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Removed escpaes to correctly pass query string arguments.

  • .htaccess:
2:27 PM Changeset in webkit [192915] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

Update bindings test results after r192903.

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

(WebCore::JSTestEventConstructorConstructor::construct):

2:23 PM Changeset in webkit [192914] by Yusuke Suzuki
  • 90 edits
    2 copies
    28 adds in trunk

[ES6] Implement LLInt/Baseline Support for ES6 Generators and enable this feature
https://bugs.webkit.org/show_bug.cgi?id=150792

Reviewed by Saam Barati.

.:

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

Source/JavaScriptCore:

This patch implements basic functionality of ES6 Generators in LLInt and Baseline tiers.
While the implementation has some inefficient part, the implementation covers edge cases.
Later, we will make this efficient.

https://bugs.webkit.org/show_bug.cgi?id=151545
https://bugs.webkit.org/show_bug.cgi?id=151546
https://bugs.webkit.org/show_bug.cgi?id=151547
https://bugs.webkit.org/show_bug.cgi?id=151552
https://bugs.webkit.org/show_bug.cgi?id=151560
https://bugs.webkit.org/show_bug.cgi?id=151586

To encourage DFG / FTL later, we take the following design.

  1. Use switch_imm to jump to the save/resume points.

Instead of saving / restoring instruction pointer to resume from it, we use switch_imm to jump to the resume point.
This limits one entry point to a given generator function. This design makes inlining easy.
The generated code becomes the following.

function @generatorNext(@generator, @generatorState, @generatorValue, @generatorResumeMode)
{

switch (@generatorState) {
case Initial:

...
initial sequence.
...

op_save(Yield_0); op_save contains *virtual* jump to Yield_0.

CFG shows a jump edge to Yield_0 point, but it won't be actually used.

return ...;

case Yield_0:

op_resume();
if (@generatorResumeMode == Throw)

...

else if (@generatorResumeMode == Return)

...

...
sentValue is a value sent from a caller by generator.next(sentValue).
sentValue = @generatorValue;
...
op_save(Yield_1);
return ...;

case Yield_1:

op_resume();
if (@generatorResumeMode == Throw)

...

else if (@generatorResumeMode == Return)

...

...
sentValue = @generatorValue;
...

...
}

}

Resume sequence should not be emitted per yield.
This should be done in https://bugs.webkit.org/show_bug.cgi?id=151552.

  1. Store live frame registers to GeneratorFrame

To save and resume generator's state, we save all the live registers in GeneratorFrame.
And when resuming, we refill registers with saved ones.
Since saved register contains scope register, |this| etc., the environment including the scope chain will be recovered automatically.
While saving and resuming callee registers, we don't save parameter registers.
These registers will be used to control generator's resume behavior.

We perform BytecodeLivenessAnalysis in CodeBlock to determine actually *def*ined registers at that resume point.

  1. GeneratorFunction will evaluate parameters before generating Generator

Generator's parameter should be evaluated before entering Generator's body. For example,

function hello() { ... }
function *gen(a, b = hello())
{

yield b;

}
let g = gen(20); Now, hello should be called.

To enable this, we evaluate parameters in GeneratorFunction, and after that, we create a Generator and return it.
This can be explained by the following pseudo code.

function *gen(a, b = hello())
{

This is generator.
return {

@generatorNext: function (@generator, @generatorState, @generatorValue, @generatorResumeMode)
{

...

}

}

}

  1. op_save seems similar to conditional jump

We won't jump to elsewhere from op_save actually. But we add a *virtual* jump edge (flow) from op_save to the point so called *merge point*.
We construct the CFG as follows,

(global generator switch) -> (initial sequence) -> (op_save) ----+-> (merge point) -> (next sequence)*

| | |
| v |
| (op_ret) |
| |
+------------------------------------------->(op_resume)--+

By constructing such a graph,

  1. Since we have a flow from (op_save) to (merge point), at merge point, we can *use* locals that are defined before (op_save)
  2. op_save should claim that it does not define anything. And claim that it *use*s locals that are used in (merge point).
  3. at op_resume, we see *use*d locals at merge point and define all of them.

We can do the above things in use-def analysis because use-def analysis is backward analysis.
And after analyzing use-def chains, in op_save / op_resume, we only save / resume live registers at the head of merge point.

  • API/JSScriptRef.cpp:

(parseScript):

  • CMakeLists.txt:
  • Configurations/FeatureDefines.xcconfig:
  • DerivedSources.make:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/BuiltinExecutables.cpp:

(JSC::createExecutableInternal):

  • builtins/GeneratorPrototype.js: Added.

(generatorResume):
(next):
(return):
(throw):

  • bytecode/BytecodeBasicBlock.cpp:

(JSC::isBranch):

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeLivenessAnalysis.cpp:

(JSC::stepOverInstruction):
(JSC::computeLocalLivenessForBytecodeOffset):
(JSC::BytecodeLivenessAnalysis::runLivenessFixpoint):
(JSC::BytecodeLivenessAnalysis::computeFullLiveness):
(JSC::BytecodeLivenessAnalysis::computeKills):

  • bytecode/BytecodeUseDef.h:

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

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::shrinkToFit):
(JSC::CodeBlock::validate):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::numCalleeLocals):
(JSC::CodeBlock::liveCalleeLocalsAtYield):

  • bytecode/EvalCodeCache.h:

(JSC::EvalCodeCache::tryGet):
(JSC::EvalCodeCache::getSlow):
(JSC::EvalCodeCache::isCacheable):

  • bytecode/ExecutableInfo.h:

(JSC::ExecutableInfo::ExecutableInfo):
(JSC::ExecutableInfo::generatorThisMode):
(JSC::ExecutableInfo::superBinding):
(JSC::ExecutableInfo::parseMode):
(JSC::ExecutableInfo::isArrowFunction): Deleted.

  • bytecode/PreciseJumpTargets.cpp:

(JSC::getJumpTargetsForBytecodeOffset):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::parseMode):
(JSC::UnlinkedCodeBlock::generatorThisMode):
(JSC::UnlinkedCodeBlock::superBinding):
(JSC::UnlinkedCodeBlock::isArrowFunction): Deleted.

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):

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

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeParameters):
(JSC::BytecodeGenerator::newRegister):
(JSC::BytecodeGenerator::reclaimFreeRegisters):
(JSC::BytecodeGenerator::createVariable):
(JSC::BytecodeGenerator::emitCreateThis):
(JSC::BytecodeGenerator::emitNewFunctionExpressionCommon):
(JSC::BytecodeGenerator::emitNewFunctionExpression):
(JSC::BytecodeGenerator::emitNewArrowFunctionExpression):
(JSC::BytecodeGenerator::emitNewFunction):
(JSC::BytecodeGenerator::emitIteratorNextWithValue):
(JSC::BytecodeGenerator::emitYieldPoint):
(JSC::BytecodeGenerator::emitSave):
(JSC::BytecodeGenerator::emitResume):
(JSC::BytecodeGenerator::emitYield):
(JSC::BytecodeGenerator::emitDelegateYield):
(JSC::BytecodeGenerator::emitGeneratorStateChange):
(JSC::BytecodeGenerator::emitGeneratorStateLabel):
(JSC::BytecodeGenerator::beginGenerator):
(JSC::BytecodeGenerator::endGenerator):
(JSC::BytecodeGenerator::emitNewFunctionInternal): Deleted.
(JSC::BytecodeGenerator::emitNewFunctionCommon): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::generatorThisMode):
(JSC::BytecodeGenerator::superBinding):
(JSC::BytecodeGenerator::generatorRegister):
(JSC::BytecodeGenerator::generatorStateRegister):
(JSC::BytecodeGenerator::generatorValueRegister):
(JSC::BytecodeGenerator::generatorResumeModeRegister):
(JSC::BytecodeGenerator::parseMode):
(JSC::BytecodeGenerator::registerFor):
(JSC::BytecodeGenerator::makeFunction):

  • bytecompiler/NodesCodegen.cpp:

(JSC::ThisNode::emitBytecode):
(JSC::emitHomeObjectForCallee):
(JSC::emitSuperBaseForCallee):
(JSC::ReturnNode::emitBytecode):
(JSC::FunctionNode::emitBytecode):
(JSC::YieldExprNode::emitBytecode):

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGForAllKills.h:

(JSC::DFG::forAllKilledOperands):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::forAllLocalsLiveInBytecode):

  • dfg/DFGOSREntrypointCreationPhase.cpp:

(JSC::DFG::OSREntrypointCreationPhase::run):

  • dfg/DFGVariableEventStream.cpp:

(JSC::DFG::VariableEventStream::reconstruct):

  • ftl/FTLForOSREntryJITCode.cpp:

(JSC::FTL::ForOSREntryJITCode::initializeEntryBuffer):

  • ftl/FTLForOSREntryJITCode.h:
  • ftl/FTLOSREntry.cpp:

(JSC::FTL::prepareOSREntry):

  • ftl/FTLState.cpp:

(JSC::FTL::State::State):

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::isAtom):
(JSC::MarkedBlock::isLiveCell):

  • interpreter/Interpreter.cpp:

(JSC::eval):
(JSC::Interpreter::dumpRegisters):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::frameRegisterCountFor):

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

(JSC::JIT::emitNewFuncCommon):
(JSC::JIT::emit_op_new_func):
(JSC::JIT::emit_op_new_generator_func):
(JSC::JIT::emitNewFuncExprCommon):
(JSC::JIT::emit_op_new_func_exp):
(JSC::JIT::emit_op_new_generator_func_exp):
(JSC::JIT::emit_op_save):
(JSC::JIT::emit_op_resume):

  • jit/JITOperations.cpp:

(JSC::operationNewFunctionCommon):

  • jit/JITOperations.h:
  • llint/LLIntEntrypoint.cpp:

(JSC::LLInt::frameRegisterCountFor):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::traceFunctionPrologue):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createYield):
(JSC::ASTBuilder::createFunctionMetadata):
(JSC::ASTBuilder::propagateArgumentsUse):

  • parser/Nodes.cpp:

(JSC::FunctionMetadataNode::FunctionMetadataNode):

  • parser/Nodes.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseGeneratorFunctionSourceElements):
(JSC::Parser<LexerType>::parseFunctionBody):
(JSC::stringForFunctionMode):
(JSC::Parser<LexerType>::createGeneratorParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseYieldExpression):
(JSC::Parser<LexerType>::parsePropertyMethod):
(JSC::Parser<LexerType>::parseFunctionExpression):

  • parser/Parser.h:

(JSC::Scope::Scope):
(JSC::Scope::setSourceParseMode):
(JSC::Scope::hasArguments):
(JSC::Scope::collectFreeVariables):
(JSC::Scope::setIsFunction):
(JSC::Scope::setIsGeneratorFunction):
(JSC::Scope::setIsGenerator):
(JSC::parse):

  • parser/ParserModes.h:

(JSC::isFunctionParseMode):
(JSC::isModuleParseMode):
(JSC::isProgramParseMode):

  • parser/SourceCodeKey.h: Added.

(JSC::SourceCodeKey::SourceCodeKey):
(JSC::SourceCodeKey::isHashTableDeletedValue):
(JSC::SourceCodeKey::hash):
(JSC::SourceCodeKey::length):
(JSC::SourceCodeKey::isNull):
(JSC::SourceCodeKey::string):
(JSC::SourceCodeKey::operator==):
(JSC::SourceCodeKeyHash::hash):
(JSC::SourceCodeKeyHash::equal):
(JSC::SourceCodeKeyHashTraits::isEmptyValue):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createYield):
(JSC::SyntaxChecker::createFunctionMetadata):
(JSC::SyntaxChecker::operatorStackPop):

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):

  • runtime/CodeCache.h:

(JSC::SourceCodeKey::SourceCodeKey): Deleted.
(JSC::SourceCodeKey::isHashTableDeletedValue): Deleted.
(JSC::SourceCodeKey::hash): Deleted.
(JSC::SourceCodeKey::length): Deleted.
(JSC::SourceCodeKey::isNull): Deleted.
(JSC::SourceCodeKey::string): Deleted.
(JSC::SourceCodeKey::operator==): Deleted.
(JSC::SourceCodeKeyHash::hash): Deleted.
(JSC::SourceCodeKeyHash::equal): Deleted.
(JSC::SourceCodeKeyHashTraits::isEmptyValue): Deleted.

  • runtime/CommonIdentifiers.h:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • runtime/Completion.cpp:

(JSC::checkSyntax):
(JSC::checkModuleSyntax):

  • runtime/Executable.cpp:

(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ProgramExecutable::checkSyntax):

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

(JSC::constructFunction):
(JSC::constructFunctionSkippingEvalEnabledCheck):

  • runtime/FunctionConstructor.h:
  • runtime/GeneratorFrame.cpp: Added.

(JSC::GeneratorFrame::GeneratorFrame):
(JSC::GeneratorFrame::finishCreation):
(JSC::GeneratorFrame::createStructure):
(JSC::GeneratorFrame::create):
(JSC::GeneratorFrame::save):
(JSC::GeneratorFrame::resume):
(JSC::GeneratorFrame::visitChildren):

  • runtime/GeneratorFrame.h: Added.

(JSC::GeneratorFrame::locals):
(JSC::GeneratorFrame::localAt):
(JSC::GeneratorFrame::offsetOfLocals):
(JSC::GeneratorFrame::allocationSizeForLocals):

  • runtime/GeneratorFunctionConstructor.cpp: Added.

(JSC::GeneratorFunctionConstructor::GeneratorFunctionConstructor):
(JSC::GeneratorFunctionConstructor::finishCreation):
(JSC::callGeneratorFunctionConstructor):
(JSC::constructGeneratorFunctionConstructor):
(JSC::GeneratorFunctionConstructor::getCallData):
(JSC::GeneratorFunctionConstructor::getConstructData):

  • runtime/GeneratorFunctionConstructor.h: Added.

(JSC::GeneratorFunctionConstructor::create):
(JSC::GeneratorFunctionConstructor::createStructure):

  • runtime/GeneratorFunctionPrototype.cpp: Added.

(JSC::GeneratorFunctionPrototype::GeneratorFunctionPrototype):
(JSC::GeneratorFunctionPrototype::finishCreation):

  • runtime/GeneratorFunctionPrototype.h: Added.

(JSC::GeneratorFunctionPrototype::create):
(JSC::GeneratorFunctionPrototype::createStructure):

  • runtime/GeneratorPrototype.cpp: Copied from Source/JavaScriptCore/ftl/FTLForOSREntryJITCode.cpp.

(JSC::GeneratorPrototype::finishCreation):
(JSC::GeneratorPrototype::getOwnPropertySlot):

  • runtime/GeneratorPrototype.h: Copied from Source/JavaScriptCore/ftl/FTLForOSREntryJITCode.cpp.

(JSC::GeneratorPrototype::create):
(JSC::GeneratorPrototype::createStructure):
(JSC::GeneratorPrototype::GeneratorPrototype):

  • runtime/GeneratorThisMode.h: Added.
  • runtime/JSFunction.cpp:

(JSC::JSFunction::getOwnPropertySlot):

  • runtime/JSGeneratorFunction.cpp: Added.

(JSC::JSGeneratorFunction::JSGeneratorFunction):
(JSC::JSGeneratorFunction::createImpl):
(JSC::JSGeneratorFunction::create):
(JSC::JSGeneratorFunction::createWithInvalidatedReallocationWatchpoint):

  • runtime/JSGeneratorFunction.h: Added.

(JSC::JSGeneratorFunction::allocationSize):
(JSC::JSGeneratorFunction::createStructure):

  • runtime/JSGlobalObject.cpp:

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

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::generatorFunctionPrototype):
(JSC::JSGlobalObject::generatorPrototype):
(JSC::JSGlobalObject::generatorFunctionStructure):

  • runtime/ModuleLoaderObject.cpp:

(JSC::moduleLoaderObjectParseModule):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • tests/es6.yaml:
  • tests/es6/generators_yield_star_generic_iterables.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/es6/generators_yield_star_instances_of_iterables.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/es6/generators_yield_star_iterator_closing.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/es6/generators_yield_star_iterator_closing_via_throw.js:

(iterator.next):
(iterable.Symbol.iterator):
(createIterableObject):

  • tests/stress/generator-arguments-from-function.js: Added.

(shouldBe):
(test):

  • tests/stress/generator-arguments.js: Added.

(shouldBe):
(g1):

  • tests/stress/generator-class-methods-syntax.js: Added.

(testSyntax):
(testSyntaxError):
(testSyntaxError.Cocoa):
(testSyntax.Cocoa.prototype.ok):
(testSyntax.Cocoa):
(testSyntax.Cocoa.ok):

  • tests/stress/generator-class-methods.js: Added.

(shouldBe):
(prototype.gen):
(staticGen):
(shouldBe.g.next):

  • tests/stress/generator-eval-this.js: Added.

(shouldBe):
(shouldThrow):
(B):
(A):
(C.prototype.generator):
(C):
(TypeError):

  • tests/stress/generator-function-constructor.js: Added.

(shouldBe):
(generatorFunctionConstructor):

  • tests/stress/generator-function-name.js: Added.

(shouldBe):
(ok):

  • tests/stress/generator-methods-with-non-generator.js: Added.

(shouldThrow):

  • tests/stress/generator-relations.js: Added.

(shouldBe):
(generatorFunction):

  • tests/stress/generator-return-before-first-call.js: Added.

(shouldBe):
(shouldBeIteratorResult):

  • tests/stress/generator-return.js: Added.

(shouldBe):
(shouldBeIteratorResult):

  • tests/stress/generator-this.js: Added.

(shouldBe):
(shouldThrow):
(gen):
(shouldBe.g.next):

  • tests/stress/generator-throw-before-first-call.js: Added.

(unreachable):
(gen):
(catch):

  • tests/stress/generator-throw.js: Added.

(shouldBe):
(shouldBeIteratorResult):

  • tests/stress/generator-with-new-target.js: Added.

(shouldBe):
(gen):

  • tests/stress/generator-with-super.js: Added.

(shouldThrow):
(test):
(B.prototype.gen):
(B):
(A.prototype.gen):
(A):

  • tests/stress/generator-yield-star.js: Added.

(shouldBe):
(shouldThrow):
(prototype.call):
(Arrays):
(Arrays.prototype.Symbol.iterator):
(Iterator.prototype.next):
(Iterator.prototype.string_appeared_here):
(Iterator.prototype.Symbol.iterator):
(Iterator):
(gen):

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FastBitVector.h:

(WTF::FastBitVector::forEachSetBit):

  • wtf/FeatureDefines.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:

WebKitLibraries:

  • win/tools/vsprops/FeatureDefines.props:
  • win/tools/vsprops/FeatureDefinesCairo.props:
2:16 PM Changeset in webkit [192913] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Corrected rewrite rules to restore convenience paths.

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

Remove repetitive cruft from FTL OSR exit code in LowerDFGToLLVM
https://bugs.webkit.org/show_bug.cgi?id=151718

Reviewed by Geoffrey Garen.

  • b3/B3StackmapValue.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileInvalidationPoint):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExitArgumentsForPatchpointIfWillCatchException):
(JSC::FTL::DFG::LowerDFGToLLVM::lowBlock):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExitDescriptor):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExit):
(JSC::FTL::DFG::LowerDFGToLLVM::blessSpeculation):
(JSC::FTL::DFG::LowerDFGToLLVM::emitOSRExitCall):
(JSC::FTL::DFG::LowerDFGToLLVM::buildExitArguments):
(JSC::FTL::DFG::LowerDFGToLLVM::callStackmap):

2:09 PM Changeset in webkit [192911] by weinig@apple.com
  • 7 edits in trunk

Need completionHandler-based WebKit C SPI for alert, confirm, and prompt
<rdar://problem/23320863>
https://bugs.webkit.org/show_bug.cgi?id=151708

Reviewed by Anders Carlsson.

Source/WebKit2:

Add listener based versions of alert, confirm and prompt.

  • Shared/API/APIObject.h:
  • Shared/API/c/WKBase.h:
  • UIProcess/API/C/WKPage.cpp:

(WebKit::RunJavaScriptAlertResultListener::create):
(WebKit::RunJavaScriptAlertResultListener::~RunJavaScriptAlertResultListener):
(WebKit::RunJavaScriptAlertResultListener::call):
(WebKit::RunJavaScriptAlertResultListener::RunJavaScriptAlertResultListener):
(WebKit::RunJavaScriptConfirmResultListener::create):
(WebKit::RunJavaScriptConfirmResultListener::~RunJavaScriptConfirmResultListener):
(WebKit::RunJavaScriptConfirmResultListener::call):
(WebKit::RunJavaScriptConfirmResultListener::RunJavaScriptConfirmResultListener):
(WebKit::RunJavaScriptPromptResultListener::create):
(WebKit::RunJavaScriptPromptResultListener::~RunJavaScriptPromptResultListener):
(WebKit::RunJavaScriptPromptResultListener::call):
(WebKit::RunJavaScriptPromptResultListener::RunJavaScriptPromptResultListener):
(WKPageSetPageUIClient):

  • UIProcess/API/C/WKPageUIClient.h:

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createOtherPage):
(WTR::TestController::createWebViewWithOptions):
Update for new WKPageUIClient.

1:57 PM Changeset in webkit [192910] by andersca@apple.com
  • 10 edits
    5 deletes in trunk

Remove WebKit2.framework
https://bugs.webkit.org/show_bug.cgi?id=151715

Reviewed by Dan Bernstein.

Source/WebKit2:

  • Configurations/WebKit2.xcconfig: Removed.
  • UIProcess/API/Cocoa/WebKit2.h: Removed.
  • WebKit2.xcodeproj/project.pbxproj:
  • mac/Info-WebKit2.plist: Removed.
  • mac/MigrateHeadersToWebKit2.make: Removed.
  • mac/WebKit2.m: Removed.

Tools:

  • TestWebKitAPI/Tests/WebKit2/StopLoadingDuringDidFailProvisionalLoad.cpp:
  • TestWebKitAPI/Tests/WebKit2/StopLoadingDuringDidFailProvisionalLoad_bundle.cpp:
  • TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsInvalidScheme.mm:
  • TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsTest.mm:
  • TestWebKitAPI/Tests/WebKit2ObjC/PreventImageLoadWithAutoResizing.mm:
  • TestWebKitAPI/Tests/WebKit2ObjC/UserContentTest.mm:
  • TestWebKitAPI/mac/TestBrowsingContextLoadDelegate.h:
1:51 PM Changeset in webkit [192909] by Joseph Pecoraro
  • 4 edits in trunk

Unreviewed common typo fix "occurance" => "occurrence".

Source/WebInspectorUI:

  • Scripts/combine-resources.pl:

(concatenateFiles):

Tools:

  • Scripts/webkitpy/tool/commands/queries.py:

(FindFlakyTests._print_statistics):

1:51 PM Changeset in webkit [192908] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Spacebar to toggle Timeline recording doesn't work in Timeline tab after reloading the page
https://bugs.webkit.org/show_bug.cgi?id=151530

Reviewed by Timothy Hatcher.

If reloading the page caused the console to clear, that was triggering
the console prompt to be focused. When the console prompt is focused,
keyboard input like Spacebar, was just inputing characters instead of
triggering the keyboard shortcut that was expected.

This also means that console.clear() in the inspected page would cause
the inspector to focus the console. That is unexpected as well.

Focusing the console prompt whenever the console log is cleared
is not ideal. If we do want to focus the prompt the caller should
make that determination, not clear.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController.prototype.clear):

1:51 PM Changeset in webkit [192907] by Joseph Pecoraro
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Update Timeline UI based on the Instruments in the Active Recording
https://bugs.webkit.org/show_bug.cgi?id=151374

Reviewed by Brian Burg.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
Modernize as I was in this code while looking into this patch.

  • UserInterface/Views/TimelineSidebarPanel.css:

(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events): Deleted.
(.sidebar > .panel.navigation.timeline > .timelines-content): Deleted.
These defaults are no longer necessary, the UI overrides them anyways.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
Include both the basic and rendering frames toolbars. They will be
mutually exclusive based on if the FPSIntrument is available.

(WebInspector.TimelineSidebarPanel.prototype._recordingSelected):
(WebInspector.TimelineSidebarPanel.prototype._clearInstruments):
When loading a new Recording clear the UI.

(WebInspector.TimelineSidebarPanel.prototype._instrumentAdded):
(WebInspector.TimelineSidebarPanel.prototype._instrumentRemoved):
(WebInspector.TimelineSidebarPanel.prototype._addedFPSInstrument):
(WebInspector.TimelineSidebarPanel.prototype._removedFPSInstrument):
Handle toggling the toolbars when the FPS instrument is added/removed.

(WebInspector.TimelineSidebarPanel.prototype._timelineCountChanged):
(WebInspector.TimelineSidebarPanel.prototype._updateTimelineOverviewHeight):
(WebInspector.TimelineSidebarPanel.prototype._changeViewMode):
Properly update the sidebar's understanding of the TimelineOverview size.

1:51 PM Changeset in webkit [192906] by Joseph Pecoraro
  • 9 edits
    5 adds in trunk/Source/WebInspectorUI

Web Inspector: Initial support for variable timelines
https://bugs.webkit.org/show_bug.cgi?id=151372

Reviewed by NOBODY (OOPS!).

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.defaultInstruments):
(WebInspector.TimelineManager.prototype._loadNewRecording):
Keep the status quo which is the same set of instruments for each recording.

(WebInspector.TimelineManager.prototype.startCapturing):
(WebInspector.TimelineManager.prototype.stopCapturing):
Push responsibility of capturing to the Recording, which has a specific set
of instruments that know what they need to turn on an off from the backend.

  • UserInterface/Main.html:
  • UserInterface/Models/Instrument.js: Added.

(WebInspector.Instrument):
(WebInspector.Instrument.startLegacyTimelineAgent):
(WebInspector.Instrument.stopLegacyTimelineAgent):
(WebInspector.Instrument.prototype.get timelineRecordType):
(WebInspector.Instrument.prototype.startInstrumentation):
(WebInspector.Instrument.prototype.stopInstrumentation):
New class representing something that can be turned on and off
from the backend and produces a set of Timeline record types.
Currently instruments are 1-to-1 to a Timeline type.

  • UserInterface/Models/LayoutInstrument.js: Added.

(WebInspector.LayoutInstrument.prototype.get timelineRecordType):
(WebInspector.LayoutInstrument):

  • UserInterface/Models/NetworkInstrument.js: Added.

(WebInspector.NetworkInstrument.prototype.get timelineRecordType):
(WebInspector.NetworkInstrument.prototype.startInstrumentation):
(WebInspector.NetworkInstrument.prototype.stopInstrumentation):
(WebInspector.NetworkInstrument):

  • UserInterface/Models/ScriptInstrument.js: Added.

(WebInspector.ScriptInstrument.prototype.get timelineRecordType):
(WebInspector.ScriptInstrument):
The default set of instruments. Currently they all enable the TimelineAgent,
so they share code to enable/disable in the base class to avoid duplication.

  • UserInterface/Models/FPSInstrument.js: Added.

(WebInspector.FPSInstrument):
(WebInspector.FPSInstrument.supported):
(WebInspector.FPSInstrument.prototype.get timelineRecordType):
Provide a "supported" static method and simplify other code that
checks whether or not RenderingFrames is available or not.

  • UserInterface/Models/Timeline.js:

(WebInspector.Timeline.prototype.get displayName): Deleted.
(WebInspector.Timeline.prototype.get iconClassName): Deleted.
Move these to a View class, as this is primarily View logic.

  • UserInterface/Models/TimelineRecording.js:

(WebInspector.TimelineRecording):
(WebInspector.TimelineRecording.prototype.get instruments):
(WebInspector.TimelineRecording.prototype.start):
(WebInspector.TimelineRecording.prototype.stop):
(WebInspector.TimelineRecording.prototype.timelineForInstrument):
(WebInspector.TimelineRecording.prototype.addInstrument):
(WebInspector.TimelineRecording.prototype.removeInstrument):
(WebInspector.TimelineRecording.prototype.addEventMarker):
(WebInspector.TimelineRecording.prototype.addTimeline): Deleted.
(WebInspector.TimelineRecording.prototype.removeTimeline): Deleted.
A recording now has a set of Instruments and its own start/stop
which starts/stops its set of Instruments! Treat Instruments as
the variable property of a Recording instead of Timelines.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype._instrumentAdded):
(WebInspector.TimelineOverview.prototype._instrumentRemoved):
(WebInspector.TimelineOverview.prototype._timelineAdded): Deleted.
(WebInspector.TimelineOverview.prototype._timelineRemoved): Deleted.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype._instrumentAdded):
(WebInspector.TimelineRecordingContentView.prototype._instrumentRemoved):
(WebInspector.TimelineRecordingContentView.prototype._timelineAdded): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._timelineRemoved): Deleted.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.displayNameForTimeline):
(WebInspector.TimelineSidebarPanel.iconClassNameForTimeline):
(WebInspector.TimelineSidebarPanel.prototype.updateFrameSelection):
(WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie):
(WebInspector.TimelineSidebarPanel.prototype._recordingSelected):
(WebInspector.TimelineSidebarPanel.prototype._instrumentAdded):
(WebInspector.TimelineSidebarPanel.prototype._instrumentRemoved):
(WebInspector.TimelineSidebarPanel.prototype._changeViewMode):
(WebInspector.TimelineSidebarPanel.prototype._timelineAdded): Deleted.
(WebInspector.TimelineSidebarPanel.prototype._timelineRemoved): Deleted.
Update all TimelineAdded/TimelineRemoved clients to instead check
InstrumentAdded/InstrumentRemoved. Immediately convert from an Instrument
to a Timeline to keep the patch simple.

1:46 PM Changeset in webkit [192905] by beidson@apple.com
  • 8 edits in trunk/Source/WebCore

Add "RaisesExceptionWithMessage" IDL attribute.
https://bugs.webkit.org/show_bug.cgi?id=151720

Reviewed by Alex Christensen.

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

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateParametersCheck):
(GenerateReturnParameters):
(GenerateImplementationFunctionCall):
(GenerateConstructorDefinition):

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

(webkit_dom_test_obj_method_with_exception_with_message):

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

(WebCore::jsTestObjPrototypeFunctionMethodWithExceptionWithMessage):

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

(-[DOMTestObj methodWithExceptionWithMessage]):

  • bindings/scripts/test/TestObj.idl:
1:43 PM Changeset in webkit [192904] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

Test gardening after r192894

Unreviewed.

  • fast/text/small-caps-complex-expected.html:
  • fast/text/small-caps-complex.html:
1:14 PM Changeset in webkit [192903] by Darin Adler
  • 10 edits in trunk/Source

Fix anomaly where isMouseEvent returns false for wheel events
https://bugs.webkit.org/show_bug.cgi?id=151685

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Back three years ago when we made WheelEvent inherit from MouseEvent,
someone decided that isMouseEvent should return false for the wheel events.
An audit of all the callers of isMouseEvent indicated that in almost every
case, it's better to return true, so this patch does that.

All the other call sites that were checking isMouseEvent, here and in the
higher levels of WebKit, benefit from getting true even for wheel events.

  • bindings/objc/DOMEvents.mm:

(kitClass): Use eventInterface instead of isMouseEvent to create the appropriate
wrapper class.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorDefinition): Eliminated a peculiar search and replace
mistake; "stateution" instead of "execution".

  • dom/Node.cpp:

(WebCore::Node::handleLocalEvents): Add an isWheelEvent check here so that we
will not ignore wheel events. This preserves behavior. A FIXME questions whether
that is the behavior we want.

  • dom/WheelEvent.cpp:

(WebCore::WheelEvent::isMouseEvent): Deleted. No need to override and return false.

  • dom/WheelEvent.h: Ditto.
  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::defaultEventHandler): Removed unneeded checks for
drag events and wheel events; both are types of mouse event, and so a single
isMouseEvent check takes care of all three of these.

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::forwardEvent): Ditto.

Source/WebKit/win:

  • DOMEventsClasses.cpp:

(DOMEvent::createInstance): Use eventInterface instead of isMouseEvent to create the appropriate
wrapper class.

1:11 PM Changeset in webkit [192902] by Joseph Pecoraro
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Broken Inspector when resources are minified
https://bugs.webkit.org/show_bug.cgi?id=151711

Reviewed by Timothy Hatcher.

  • Scripts/combine-resources.pl:

(concatenateFiles):
Provide a way to just strip resources matches a pattern.

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

Strip "Debug/" resources before combining / minifying others.

  • UserInterface/Views/View.js:

(WebInspector.View.prototype.makeRootView):
(WebInspector.View.prototype.didDetach):
Address warnings from the console.assert stripping phase
for console.assert statements lacking a trailing semicolon.

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

Fixed static reference PHP syntax for compatibility with the server environment.

  • wp-content/plugins/table-of-contents.php:
12:26 PM Changeset in webkit [192900] by commit-queue@webkit.org
  • 36 edits in trunk/Source

Use Optional for matrix inverses
https://bugs.webkit.org/show_bug.cgi?id=151575

Patch by Alex Christensen <achristensen@webkit.org> on 2015-12-01
Reviewed by Myles C. Maxfield.

Source/WebCore:

This patch should have no change in behavior. Some unnecessary checks are removed.
There are a few places where we are no longer multiplying by the identity matrix.
This should remind future coders that not all matrices are invertible.

  • css/WebKitCSSMatrix.cpp:

(WebCore::WebKitCSSMatrix::inverse):
(WebCore::WebKitCSSMatrix::translate):

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::restore):
(WebCore::CanvasRenderingContext2D::scale):
(WebCore::CanvasRenderingContext2D::rotate):
(WebCore::CanvasRenderingContext2D::translate):
(WebCore::CanvasRenderingContext2D::transform):
(WebCore::CanvasRenderingContext2D::setTransform):
(WebCore::CanvasRenderingContext2D::isPointInPathInternal):
(WebCore::CanvasRenderingContext2D::isPointInStrokeInternal):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::computeLineBoundsAndAntialiasingModeForText):

  • platform/graphics/ShadowBlur.cpp:

(WebCore::ShadowBlur::calculateLayerBoundingRect):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::putByteArray):

  • platform/graphics/filters/Filter.h:

(WebCore::Filter::setFilterScale):
(WebCore::Filter::absoluteTransform):
(WebCore::Filter::mapAbsolutePointToLocalPoint):
(WebCore::Filter::renderingMode):
(WebCore::Filter::setRenderingMode):

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
(WebCore::TextureMapperLayer::replicaTransform):
(WebCore::TextureMapperLayer::setAnimatedFilters):
(WebCore::TextureMapperLayer::mapScrollOffset):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::transformedVisibleRect):
(WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):

  • platform/graphics/transforms/AffineTransform.cpp:

(WebCore::AffineTransform::yScale):
(WebCore::det):
(WebCore::AffineTransform::isInvertible):
(WebCore::AffineTransform::inverse):
(WebCore::AffineTransform::det): Deleted.

  • platform/graphics/transforms/AffineTransform.h:
  • platform/graphics/transforms/TransformState.cpp:

(WebCore::TransformState::mappedPoint):
(WebCore::TransformState::mappedQuad):
(WebCore::TransformState::mapQuad):
(WebCore::TransformState::flattenWithTransform):

  • platform/graphics/transforms/TransformationMatrix.cpp:

(WebCore::TransformationMatrix::isInvertible):
(WebCore::TransformationMatrix::inverse):

  • platform/graphics/transforms/TransformationMatrix.h:
  • rendering/HitTestingTransformState.cpp:

(WebCore::HitTestingTransformState::flattenWithTransform):
(WebCore::HitTestingTransformState::mappedPoint):
(WebCore::HitTestingTransformState::mappedQuad):
(WebCore::HitTestingTransformState::mappedArea):
(WebCore::HitTestingTransformState::boundsOfMappedArea):

  • rendering/PaintInfo.h:

(WebCore::PaintInfo::applyTransform):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerByApplyingTransform):
(WebCore::RenderLayer::hitTestLayer):

  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::RenderSVGContainer::nodeAtFloatPoint):

  • rendering/svg/RenderSVGForeignObject.cpp:

(WebCore::RenderSVGForeignObject::nodeAtFloatPoint):

  • rendering/svg/RenderSVGImage.cpp:

(WebCore::RenderSVGImage::nodeAtFloatPoint):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::hitTestClipContent):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::postApplyResource):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::nodeAtPoint):

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::setupNonScalingStrokeContext):
(WebCore::RenderSVGShape::nodeAtFloatPoint):
(WebCore::RenderSVGShape::calculateStrokeBoundingBox):

  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::nodeAtFloatPoint):

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::intersectRepaintRectWithShadows):

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::clipToImageBuffer):

  • svg/SVGLocatable.cpp:

(WebCore::SVGLocatable::getTransformToElement):

  • svg/SVGMatrix.h:

(WebCore::SVGMatrix::inverse):
(WebCore::SVGMatrix::rotateFromVector):

Source/WebKit2:

  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::convertFromRootView):

  • WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:

(WebKit::NetscapePlugin::convertPoint):

  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:

(WebKit::PDFPlugin::convertFromPDFViewToRootView):
(WebKit::PDFPlugin::convertFromPDFViewToScreen):
(WebKit::PDFPlugin::boundsOnScreen):
(WebKit::PDFPlugin::geometryDidChange):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::geometryDidChange):

12:11 PM Changeset in webkit [192899] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] add missing RequireObjectCoercible() step in destructuring
https://bugs.webkit.org/show_bug.cgi?id=151596

Patch by Caitlin Potter <caitp@igalia.com> on 2015-12-01
Reviewed by Darin Adler.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitRequireObjectCoercible):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::ObjectPatternNode::bindValue):

  • tests/stress/destructuring-assignment-require-object-coercible.js: Added.

(testTypeError):
(testOK):

11:57 AM Changeset in webkit [192898] by timothy_horton@apple.com
  • 23 edits in trunk/Source

Remove swipe snapshot before main document load if scroll position is already restored
https://bugs.webkit.org/show_bug.cgi?id=151224

Reviewed by Darin Adler.

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::didRestoreScrollPosition):

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

(WebKit::WebPageProxy::didRestoreScrollPosition):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::didRestoreScrollPosition):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::didRestoreScrollPosition):

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

(WebKit::WebPage::didRestoreScrollPosition):

  • WebProcess/WebPage/WebPage.h:

Plumb didRestoreScrollPosition through to ViewGestureController (yikes!).

  • UIProcess/ViewGestureController.cpp:

(WebKit::ViewGestureController::didFirstVisuallyNonEmptyLayoutForMainFrame):
Cancel waiting for any more loads if we get to firstVisuallyNonEmptyLayout.

(WebKit::ViewGestureController::didReachMainFrameLoadTerminalState):
Cancel waiting for scroll position restoration if we make it to main frame load,
because there is a chance we won't be able to restore the old scroll position, and
by main frame load time we've tried as hard as we're going to to restore it.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::endSwipeGesture):
Make some legacy-style-only code clearer that it's legacy-style-only.
Wait for scroll position restoration.

  • loader/FrameLoaderClient.h:
  • loader/HistoryController.cpp:

(WebCore::HistoryController::restoreScrollPositionAndViewState):
Each time we try to restore the scroll position, see if the requested
scroll position is something we can scroll to by going through ScrollView's
scroll position constraint logic. If we can scroll there, tell our client
(and eventually ViewGestureController) that we successfully restored the
scroll position!

11:44 AM Changeset in webkit [192897] by Jon Davis
  • 4 edits in trunk/Websites/webkit.org

Fixed PHP syntax for compatibility with the server environment.

  • wp-content/plugins/social-meta.php:
  • wp-content/themes/webkit/functions.php:
  • wp-content/themes/webkit/widgets/twitter.php:
11:31 AM Changeset in webkit [192896] by mark.lam@apple.com
  • 11 edits
    3 adds in trunk/Source/JavaScriptCore

Refactor FTL sub snippet code to support general binary op snippets.
https://bugs.webkit.org/show_bug.cgi?id=151706

Reviewed by Geoffrey Garen.

  • ftl/FTLCompile.cpp:
  • Moved the BinarySnippetRegisterContext to FTLCompileBinaryOp.cpp verbatim.
  • Generalize generateArithSubICFastPath() to generateBinaryOpICFastPath(). It now uses snippet specific helpers in FTLCompileBinaryOp.cpp to generate the fast paths.
  • ftl/FTLCompileBinaryOp.cpp: Added.

(JSC::FTL::BinarySnippetRegisterContext::BinarySnippetRegisterContext):
(JSC::FTL::BinarySnippetRegisterContext::initializeRegisters):
(JSC::FTL::BinarySnippetRegisterContext::restoreRegisters):

  • Moved here without changed from FTLCompile.cpp.

(JSC::FTL::generateArithSubFastPath):

  • ftl/FTLCompileBinaryOp.h: Added.
  • ftl/FTLInlineCacheDescriptor.h:

(JSC::FTL::BinaryOpDescriptor::nodeType):
(JSC::FTL::BinaryOpDescriptor::size):
(JSC::FTL::BinaryOpDescriptor::name):
(JSC::FTL::BinaryOpDescriptor::fastPathICName):
(JSC::FTL::BinaryOpDescriptor::slowPathFunction):
(JSC::FTL::BinaryOpDescriptor::leftOperand):
(JSC::FTL::BinaryOpDescriptor::rightOperand):
(JSC::FTL::BinaryOpDescriptor::BinaryOpDescriptor):
(JSC::FTL::ArithSubDescriptor::ArithSubDescriptor): Deleted.
(JSC::FTL::ArithSubDescriptor::leftType): Deleted.
(JSC::FTL::ArithSubDescriptor::rightType): Deleted.

  • Refactor ArithSubDescriptor into BinaryOpDescriptor, and re-add a sub-class ArithSubDescriptor as specializations of BinaryOpDescriptor.
  • ftl/FTLInlineCacheDescriptorInlines.h: Added.

(JSC::FTL::ArithSubDescriptor::ArithSubDescriptor):
(JSC::FTL::ArithSubDescriptor::icSize):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileArithAddOrSub):

  • ftl/FTLOSRExit.cpp:

(JSC::FTL::OSRExit::willArriveAtExitFromIndirectExceptionCheck):
(JSC::FTL::OSRExit::willArriveAtOSRExitFromCallOperation):

  • ftl/FTLOSRExit.h:
  • ftl/FTLState.h:
11:24 AM Changeset in webkit [192895] by mmaxfield@apple.com
  • 15 edits
    2 adds in trunk

[iOS] Adjacent emoji overlap each other
https://bugs.webkit.org/show_bug.cgi?id=151690
<rdar://problem/23430453>

Reviewed by Simon Fraser.

Source/WebCore:

This is a partial revert of r188737. It turns out that only CoreText gives correct
glyph advances for emoji. In r188737, I reverted the special iOS emoji processing,
but also removed the logic of using CoreText for emoji advances. This patch adds
the m_isEmoji boolean back, so we can tell if we need to force
platformWidthForGlyph() to use CoreText.

This patch also performs a little bit of cleanup by moving Font's m_isSystemFont
to FontPlatformData where it belongs.

Test: fast/text/emoji-overlap.html

  • platform/graphics/Font.cpp:

(WebCore::fillGlyphPage): Removed unnecessary argument.
(WebCore::Font::Font): Deleted.

  • platform/graphics/Font.h: Moved getters and booleans to FontPlatformData.

(WebCore::Font::hasCustomTracking): Deleted.
(WebCore::Font::isSystemFont): Deleted.

  • platform/graphics/FontPlatformData.cpp:

(WebCore::FontPlatformData::FontPlatformData): Initialize new booleans.
(WebCore::FontPlatformData::operator=): Ditto.

  • platform/graphics/FontPlatformData.h: Getters for new booleans.

(WebCore::FontPlatformData::isSystemFont):
(WebCore::FontPlatformData::hasCustomTracking):
(WebCore::FontPlatformData::isEmoji):

  • platform/graphics/GlyphPage.h: Remove unnecessary argument.
  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::advanceForColorBitmapFont): Return an Optional instead of using an out
argument.
(WebCore::canUseFastGlyphAdvanceGetter): Make sure that we use CoreText if we are
using the Emoji font.
(WebCore::Font::platformWidthForGlyph):
(WebCore::Font::platformInit): Deleted.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm: Deal with the new booleans.

(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::platformDataInit):
(WebCore::FontPlatformData::platformDataAssign):
(WebCore::FontPlatformData::setFont):

  • platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:

(WebCore::GlyphPage::fill): Removed unnecessary argument.

  • platform/graphics/mac/GlyphPageMac.cpp:

(WebCore::shouldUseCoreText): Use a reference instead of a pointer.
(WebCore::GlyphPage::fill): Removed unnecessary argument.

  • platform/graphics/win/FontCGWin.cpp:

(WebCore::FontCascade::drawGlyphs): Update for new location of booleans.

  • platform/graphics/win/GlyphPageTreeNodeCGWin.cpp:

(WebCore::GlyphPage::fill): Removed unnecessary argument.

  • platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp:

(WebCore::GlyphPage::fill): Removed unnecessary argument.

  • platform/graphics/win/UniscribeController.cpp:

(WebCore::UniscribeController::shapeAndPlaceItem): Update for new location of
booleans.

LayoutTests:

  • fast/text/emoji-overlap-expected.html: Added.
  • fast/text/emoji-overlap.html: Added.
11:10 AM Changeset in webkit [192894] by mmaxfield@apple.com
  • 3 edits
    3 adds in trunk

[Win] Web fonts with small caps have excess whitespace with the complex text codepath
https://bugs.webkit.org/show_bug.cgi?id=151698

Reviewed by Darin Adler.

Source/WebCore:

When performing small-caps on OS X, we bake in the smaller font size into the platform's native font
object. On Windows, we currently don't do that; instead, we just change some ancillary data inside
the FontPlatformData, and our advance & drawing calculations are sensitive to this ancillary data.
However, in the complex text codepath, Uniscribe only takes the native font object as input, and
therefore operates with the wrong font size.

The solution is to bake the smaller font size into the native platform font on Windows, similar to
OS X. It isn't clear why we didn't do this previously, but it seems like we weren't sure that
Windows would select the correct font when we provide new selection criteria. However, for web fonts,
we already use the same mechanism (CreateFontIndirect()) when we create the font in the first place;
therefore, this scaled font request will always work as well.

Test: fast/text/small-caps-complex.html

  • platform/graphics/win/SimpleFontDataWin.cpp:

(WebCore::Font::platformCreateScaledFont): Deleted.

LayoutTests:

  • fast/text/resources/tinyfont.svg: Added.
  • fast/text/small-caps-complex-expected.html: Added.
  • fast/text/small-caps-complex.html: Added.
11:08 AM Changeset in webkit [192893] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/xmlhttprequest/workers/methods.html as flaky on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=151709

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:50 AM Changeset in webkit [192892] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Skip some specific IDB tests in preparation for enabling the entire directory.

Reviewed in person by Sam Weinig.

  • platform/mac-wk1/TestExpectations:
10:30 AM Changeset in webkit [192891] by beidson@apple.com
  • 5 edits in trunk

Modern IDB: storage/indexeddb/create-and-remove-object-store.html fails.
https://bugs.webkit.org/show_bug.cgi?id=151704

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one previously failing test now passes).

  • Modules/indexeddb/client/IDBDatabaseImpl.cpp:

(WebCore::IDBClient::IDBDatabase::deleteObjectStore):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-expected.txt:
10:29 AM Changeset in webkit [192890] by beidson@apple.com
  • 11 edits in trunk

Modern IDB: storage/indexeddb/basics.html fails.
https://bugs.webkit.org/show_bug.cgi?id=151694

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes, and covered by changes to 3 previously incorrect tests).

  • Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:

(WebCore::IDBClient::IDBOpenDBRequest::versionChangeTransactionWillFinish): Set the flag determining whether

or not the request's transaction should be exposed to the DOM.

  • Modules/indexeddb/client/IDBOpenDBRequestImpl.h:
  • Modules/indexeddb/client/IDBRequestImpl.cpp:

(WebCore::IDBClient::IDBRequest::result): Throw an exception if the request is not done.
(WebCore::IDBClient::IDBRequest::error): Ditto.
(WebCore::IDBClient::IDBRequest::transaction): Only return the transaction to the DOM if the flag says so.

  • Modules/indexeddb/client/IDBRequestImpl.h:
  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::abort):
(WebCore::IDBClient::IDBTransaction::commit):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/modern/deletedatabase-1.html:
  • storage/indexeddb/modern/opendatabase-versions.html:
  • storage/indexeddb/modern/versionchange-event.html:
10:26 AM Changeset in webkit [192889] by dburkart@apple.com
  • 2 edits in trunk/Source/ThirdParty

Remove Mountain Lion support from gtest
https://bugs.webkit.org/show_bug.cgi?id=151705

Reviewed by Darin Adler.

  • gtest/xcode/Config/General.xcconfig:
9:40 AM Changeset in webkit [192888] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r192834): [GTK] Test /webkit2/WebKitWebView/editor-state/typing-attributes times out after r192834
https://bugs.webkit.org/show_bug.cgi?id=151699

Reviewed by Tim Horton.

In r192834 the code to send EditorStateChanged message to the UI
process from WebPage::didChangeSelection was removed for non-mac
ports.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didChangeSelection): Send EditorStateChanged
message to the UI process also for non-mac ports, as before r192834.

9:39 AM Changeset in webkit [192887] by Jon Davis
  • 3 edits
    1 add in trunk/Websites/webkit.org

Updated webkit.org to use the new theme and WordPress deployment.

  • .htaccess:
  • blog/.htaccess:
  • index.php: Added.
9:39 AM Changeset in webkit [192886] by ggaren@apple.com
  • 1 edit in trunk/Source/WTF/ChangeLog

Fixed a typo that Anders noticed.

9:35 AM Changeset in webkit [192885] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix timeouts in several HTTP layout tests in GTK+ after r192796.

In r192796, the initialization of m_ignoreTLSErrors in
WebProcessPool was removed by mistake, making all HTTP tests that use
HTTPS fail due to invalid certificate errors.

  • UIProcess/WebProcessPool.h: Bring back m_ignoreTLSErrors initialization.
9:34 AM Changeset in webkit [192884] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Fixed data return format for tweets when updating cache.

  • wp-content/themes/webkit/widgets/twitter.php:
9:31 AM Changeset in webkit [192883] by Jon Davis
  • 2 edits
    1 add in trunk/Websites/webkit.org

Theme update to tidy styles and add a theme screenshot.

  • wp-content/themes/webkit/screenshot.png: Added.
  • wp-content/themes/webkit/style.css:

(.featured-tile):
(.tile .background-image):

6:39 AM Changeset in webkit [192882] by Carlos Garcia Campos
  • 63 edits
    1 add
    13 deletes in trunk

Unreviewed, rolling out r192876.

It broke a lot of JSC and layout tests for GTK and EFL

Reverted changeset:

"[ES6] "super" and "this" should be lexically bound inside an
arrow function and should live in a JSLexicalEnvironment"
https://bugs.webkit.org/show_bug.cgi?id=149338
http://trac.webkit.org/changeset/192876

5:57 AM Changeset in webkit [192881] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2
REGRESSION(r192247): [GTK] ASSERTION FAILED: type == WebCore::ActionType
type == WebCore::CheckableActionType type == WebCore::SeparatorType

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

Reviewed by Martin Robinson.

This happens because we are using our own WebContextMenuItemGtk
derived from WebContextMenuItemData, but using our own submenu
items handling. We are using the non-submenu
WebContextMenuItemData constructor to create our submenu items
too, because WebContextMenuItemData always expect the submenu
items to be passed to the constructor, but we have a set_submenu
method in the public API. So we consider that a
WebContextMenuItemGtk is SubmenuType if it has submenu items, but
we use the action type internally. When converting a
WebContextMenuItemGtk to a generic WebContextMenuItemData, we
correctly set the type and pass the submenu items to the
approriate constructor.

  • Shared/gtk/WebContextMenuItemGtk.cpp:

(WebKit::WebContextMenuItemGtk::WebContextMenuItemGtk): When
constructing from a WebContextMenuItemData, set the type as
ActionType when it's a submenu type.

  • Shared/gtk/WebContextMenuItemGtk.h:

(WebKit::WebContextMenuItemGtk::type): Return SubmenuType if
submenu items vector is not empty, otherwise use the parent method.

  • UIProcess/API/gtk/WebKitContextMenuItem.cpp:

(webkit_context_menu_item_new_with_submenu): Create the
WebContextMenuItemGtk as ActionType.

4:23 AM Changeset in webkit [192880] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK] ASSERTION FAILED: m_table running /webkit2/BackForwardList/navigation in Debug build
https://bugs.webkit.org/show_bug.cgi?id=151700

Reviewed by Martin Robinson.

This happens when the frame notifies its observers that the page
will be detached. The m_table that asserts is the
FrameDestructionObserver HashSet. It happens when clearing the
GObject DOM cache wrappers during frame destruction, and there's a
Document object wrapped whose last reference is held by the DOM
wrapper. In that case, the Document object is destroyed while the
frame is being destroyed. Deleting the wrapper objects after the
frame destruction fixes the crash.

  • bindings/gobject/DOMObjectCache.cpp:
3:02 AM Changeset in webkit [192879] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk

[Streams API] pull function of tee should call readFromReadableStreamReader directly
https://bugs.webkit.org/show_bug.cgi?id=151497

Source/WebCore:

Reviewed by Darin Adler.

Covered by added test.

  • Modules/streams/ReadableStreamInternals.js:

(teeReadableStreamPullFunction): directly calling readFromReadableStreamReader.

LayoutTests:

Unreviewed.

Adding non regression test.

  • streams/streams-promises-expected.txt:
  • streams/streams-promises.html:
2:46 AM Changeset in webkit [192878] by youenn.fablet@crf.canon.fr
  • 4 edits in trunk/Source/WebCore

[Streams API] Clean-up JS built-in code using arrow functions
https://bugs.webkit.org/show_bug.cgi?id=151489

Reviewed by Darin Adler.

Using arrow functions to remove need for _this.
Made errorWritableStream take two parameters to simplify code and align it with the spec.

No change in behavior.

  • Modules/streams/ReadableStream.js:

(initializeReadableStream):

  • Modules/streams/WritableStream.js:

(initializeWritableStream):
(abort):
(write):

  • Modules/streams/WritableStreamInternals.js:

(errorWritableStream):
(writableStreamAdvanceQueue):
(closeWritableStream):

2:14 AM Changeset in webkit [192877] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk

[Streams API] teeReadableStream should not directly use stream.getReader()
https://bugs.webkit.org/show_bug.cgi?id=151487

Reviewed by Darin Adler.

Source/WebCore:

Covered by added test.

  • Modules/streams/ReadableStreamInternals.js:

(teeReadableStream): Create a @ReadableStreamReader instead of calling getReader() which may be disrupted by user scripts.

LayoutTests:

Adding non-regression test.

  • streams/streams-promises-expected.txt:
  • streams/streams-promises.html:
1:46 AM Changeset in webkit [192876] by commit-queue@webkit.org
  • 63 edits
    13 adds
    1 delete in trunk

[ES6] "super" and "this" should be lexically bound inside an arrow function and should live in a JSLexicalEnvironment
https://bugs.webkit.org/show_bug.cgi?id=149338

Source/JavaScriptCore:

Patch by Aleksandr Skachkov <gskachkov@gmail.com> on 2015-12-01
Reviewed by Saam Barati.

Implemented new version of the lexically bound 'this' in arrow function. In current version
'this' is stored inside of the lexical environment of the function. To store and load we use
op_get_from_scope and op_put_to_scope operations. Also new implementation prevent raising TDZ
error for arrow functions that are declared before super() but invoke after.

  • builtins/BuiltinExecutables.cpp:

(JSC::createExecutableInternal):

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

(JSC::CodeBlock::dumpBytecode):

  • bytecode/EvalCodeCache.h:

(JSC::EvalCodeCache::getSlow):

  • bytecode/ExecutableInfo.h:

(JSC::ExecutableInfo::ExecutableInfo):
(JSC::ExecutableInfo::isDerivedConstructorContext):
(JSC::ExecutableInfo::isArrowFunctionContext):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::isDerivedConstructorContext):
(JSC::UnlinkedCodeBlock::isArrowFunctionContext):

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):

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

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::variable):
(JSC::BytecodeGenerator::emitLoadArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitLoadThisFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitLoadNewTargetFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitLoadDerivedConstructorFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitPutNewTargetToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitPutDerivedConstructorToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitPutThisToArrowFunctionContextScope):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::isDerivedConstructorContext):
(JSC::BytecodeGenerator::usesArrowFunction):
(JSC::BytecodeGenerator::needsToUpdateArrowFunctionContext):
(JSC::BytecodeGenerator::usesEval):
(JSC::BytecodeGenerator::usesThis):
(JSC::BytecodeGenerator::newTarget):
(JSC::BytecodeGenerator::makeFunction):

  • bytecompiler/NodesCodegen.cpp:

(JSC::ThisNode::emitBytecode):
(JSC::SuperNode::emitBytecode):
(JSC::EvalFunctionCallNode::emitBytecode):
(JSC::FunctionCallValueNode::emitBytecode):
(JSC::FunctionNode::emitBytecode):

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::evaluate):

  • dfg/DFGAbstractInterpreterInlines.h:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:
  • dfg/DFGClobberize.h:
  • dfg/DFGDoesGC.cpp:
  • dfg/DFGFixupPhase.cpp:
  • dfg/DFGNodeType.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGPromotedHeapLocation.cpp:
  • dfg/DFGPromotedHeapLocation.h:
  • dfg/DFGSafeToExecute.h:
  • dfg/DFGSpeculativeJIT.cpp:
  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:
  • dfg/DFGSpeculativeJIT64.cpp:
  • ftl/FTLCapabilities.cpp:
  • ftl/FTLLowerDFGToLLVM.cpp:
  • ftl/FTLOperations.cpp:

(JSC::FTL::operationMaterializeObjectInOSR):

  • interpreter/Interpreter.cpp:

(JSC::eval):

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

(JSC::JIT::emitNewFuncExprCommon):

  • jit/JITOpcodes32_64.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createArrowFunctionExpr):
(JSC::ASTBuilder::usesArrowFunction):

  • parser/Nodes.h:

(JSC::ScopeNode::usesArrowFunction):

  • parser/Parser.cpp:

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

  • parser/ParserModes.h:
  • runtime/CodeCache.cpp:

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

  • runtime/CodeCache.h:
  • runtime/CommonIdentifiers.h:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/Executable.cpp:

(JSC::ScriptExecutable::ScriptExecutable):
(JSC::EvalExecutable::create):
(JSC::EvalExecutable::EvalExecutable):
(JSC::ProgramExecutable::ProgramExecutable):
(JSC::ModuleProgramExecutable::ModuleProgramExecutable):
(JSC::FunctionExecutable::FunctionExecutable):

  • runtime/Executable.h:

(JSC::ScriptExecutable::isArrowFunctionContext):
(JSC::ScriptExecutable::isDerivedConstructorContext):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::createEvalCodeBlock):

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

(JSC::globalFuncEval):

  • tests/es6.yaml:
  • tests/stress/arrowfunction-activation-sink-osrexit.js:
  • tests/stress/arrowfunction-activation-sink.js:
  • tests/stress/arrowfunction-lexical-bind-newtarget.js: Added.
  • tests/stress/arrowfunction-lexical-bind-supercall-1.js: Added.
  • tests/stress/arrowfunction-lexical-bind-supercall-2.js: Added.
  • tests/stress/arrowfunction-lexical-bind-supercall-3.js: Added.
  • tests/stress/arrowfunction-lexical-bind-supercall-4.js: Added.
  • tests/stress/arrowfunction-lexical-bind-this-1.js:
  • tests/stress/arrowfunction-lexical-bind-this-7.js: Added.
  • tests/stress/arrowfunction-tdz-1.js: Added.
  • tests/stress/arrowfunction-tdz-2.js: Added.
  • tests/stress/arrowfunction-tdz-3.js: Added.
  • tests/stress/arrowfunction-tdz-4.js: Added.
  • tests/stress/arrowfunction-tdz.js: Removed.

LayoutTests:

Patch by Skachkov Oleksandr <gskachkov@gmail.com> on 2015-12-01
Reviewed by Saam Barati.

  • js/arrowfunction-supercall-expected.txt: Added.
  • js/arrowfunction-supercall.html: Added.
  • js/arrowfunction-tdz-expected.txt: Added new expectation.
  • js/script-tests/arrowfunction-supercall.js: Added.
  • js/script-tests/arrowfunction-tdz.js: Added new cases.
1:24 AM Changeset in webkit [192875] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Add missing inspector files to the GTK+ build.

  • PlatformGTK.cmake: Add also Debug css files.
1:06 AM Changeset in webkit [192874] by youenn.fablet@crf.canon.fr
  • 9 edits in trunk

[Streams API] streams should not directly use Number and related methods
https://bugs.webkit.org/show_bug.cgi?id=151499

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • runtime/CommonIdentifiers.h: Adding isNaN as private symbol.
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init): Adding @isNaN function.

Source/WebCore:

Covered by updated test.

Using @Number, @isFinite and @isNaN in place of Number, Number.isFinite and Number.isNaN.

  • Modules/streams/ReadableStreamInternals.js:

(enqueueInReadableStream):

  • Modules/streams/StreamInternals.js:

(validateAndNormalizeQueuingStrategy):
(enqueueValueWithSize):

LayoutTests:

Added a non-regression test.

  • streams/streams-promises-expected.txt:
  • streams/streams-promises.html:
1:05 AM Changeset in webkit [192873] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Don't hide the argument name inside for block in AirIteratedRegisterCoalescing.cpp
https://bugs.webkit.org/show_bug.cgi?id=151622

Reviewed by Darin Adler.

  • b3/air/AirIteratedRegisterCoalescing.cpp:

(JSC::B3::Air::IteratedRegisterCoalescingAllocator::addEdges):

1:04 AM Changeset in webkit [192872] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

Unreviewed. Fix GTK+ build after r192849.

  • bindings/scripts/CodeGeneratorGObject.pm:

(GenerateFunction):

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

(webkit_dom_test_interface_supplemental_method1):
(webkit_dom_test_interface_supplemental_method2):
(webkit_dom_test_interface_set_supplemental_str2):
(webkit_dom_test_interface_get_supplemental_node):
(webkit_dom_test_interface_set_supplemental_node):

12:29 AM Changeset in webkit [192871] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebKit2

Merged r192742. rdar://problem/23693587

12:28 AM Changeset in webkit [192870] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merged r192709. rdar://problem/23693587

12:27 AM Changeset in webkit [192869] by bshafiei@apple.com
  • 7 edits in branches/safari-601.1.46-branch/Source

Merged r192701. rdar://problem/23693587

12:24 AM Changeset in webkit [192868] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Merged r192689. rdar://problem/23691644

12:18 AM Changeset in webkit [192867] by bshafiei@apple.com
  • 3 edits in branches/safari-601.1.46-branch/Source/WebCore

Merged r190894. rdar://problem/23691644

12:16 AM Changeset in webkit [192866] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/WebCore

Merged r190587. rdar://problem/23694043

12:15 AM Changeset in webkit [192865] by youenn.fablet@crf.canon.fr
  • 7 edits in trunk

[Streams API] Remove use of @catch for exposed promises
https://bugs.webkit.org/show_bug.cgi?id=151625

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • runtime/JSPromisePrototype.cpp:

(JSC::JSPromisePrototype::addOwnInternalSlots): Removing @catch from the prototype as it is not safe.

Source/WebCore:

Promise @catch is calling "then" which may be controlled by user scripts.
This patch simply replaces @catch by calling @then directly.

Covered by modified tests.

  • Modules/streams/ReadableStream.js:

(pipeTo):

  • Modules/streams/ReadableStreamInternals.js:

(teeReadableStream):

LayoutTests:

  • streams/streams-promises.html: beefing up the catch test by also overwritting Promise.prototype.then.
12:07 AM Changeset in webkit [192864] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merged r190576. rdar://problem/23694043

Nov 30, 2015:

11:03 PM Changeset in webkit [192863] by fpizlo@apple.com
  • 10 edits
    1 add in trunk/Source/JavaScriptCore

B3::ValueRep::Any should translate into a Arg::ColdUse role in Air
https://bugs.webkit.org/show_bug.cgi?id=151174

Reviewed by Geoffrey Garen and Benjamin Poulain.

This teaches the register allocator that it should pick spills based on whichever tmp has the
highest score:

score(tmp) = degree(tmp) / sum(for each use of tmp, block->frequency)

In other words, the numerator is the number of edges in the inteference graph and the denominator
is an estimate of the dynamic number of uses.

This also extends Arg::Role to know that there is such a thing as ColdUse, i.e. a Use that
doesn't count as such for the above formula. Because LateUse is always used in contexts where we
want it to be Cold, I've defined LateUse to imply ColdUse.

This gets rid of all spilling inside the hot loop in Kraken/imaging-gaussian-blur. But more
importantly, it makes our register allocator use a well-known heuristic based on reusable
building blocks like the new Air::UseCounts. Even if the heuristic is slightly wrong, the right
heuristic probably uses the same building blocks.

(JSC::B3::StackmapSpecial::forEachArgImpl):

  • b3/B3ValueRep.h:
  • b3/air/AirArg.cpp:

(WTF::printInternal):

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::isAnyUse):
(JSC::B3::Air::Arg::isColdUse):
(JSC::B3::Air::Arg::isWarmUse):
(JSC::B3::Air::Arg::isEarlyUse):
(JSC::B3::Air::Arg::isDef):

  • b3/air/AirIteratedRegisterCoalescing.cpp:

(JSC::B3::Air::iteratedRegisterCoalescing):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::IteratedRegisterCoalescingAllocator): Deleted.
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::allocatedReg): Deleted.
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::tmpArraySize): Deleted.
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::initializeDegrees): Deleted.
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::build): Deleted.
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::selectSpill): Deleted.
(JSC::B3::Air::isUselessMoveInst): Deleted.
(JSC::B3::Air::assignRegisterToTmpInProgram): Deleted.
(JSC::B3::Air::addSpillAndFillToProgram): Deleted.
(JSC::B3::Air::iteratedRegisterCoalescingOnType): Deleted.

  • b3/air/AirLiveness.h:
  • b3/air/AirSpillEverything.cpp:

(JSC::B3::Air::spillEverything):

  • b3/air/AirUseCounts.h: Added.

(JSC::B3::Air::UseCounts::Counts::dump):
(JSC::B3::Air::UseCounts::UseCounts):
(JSC::B3::Air::UseCounts::operator[]):
(JSC::B3::Air::UseCounts::dump):

  • runtime/Options.h:
10:58 PM Changeset in webkit [192862] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Fix the !ENABLE(DFG_JIT) build after r192699
https://bugs.webkit.org/show_bug.cgi?id=151616

Reviewed by Darin Adler.

  • assembler/MacroAssembler.h:
10:46 PM Changeset in webkit [192861] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Set max-height to prevent narrow images from upscaling.

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

(article figure > img):
(figure.widescreen):
(figure.widescreen figcaption):
(figure.widescreen img): Deleted.

9:34 PM Changeset in webkit [192860] by ljaehun.lim@samsung.com
  • 11 edits in trunk/Source/WebCore

Unreviewed, fix build after r192848 and r192849

  • Rename canSuspendForPageCache to canSuspendForDocumentSuspension
  • Use references instead of pointers
  • Modules/battery/BatteryManager.cpp:

(WebCore::BatteryManager::canSuspendForDocumentSuspension):
(WebCore::BatteryManager::canSuspendForPageCache): Deleted.

  • Modules/battery/BatteryManager.h:
  • Modules/battery/NavigatorBattery.cpp:

(WebCore::NavigatorBattery::webkitBattery):

  • Modules/battery/NavigatorBattery.h:
  • Modules/gamepad/deprecated/NavigatorGamepad.cpp:

(WebCore::NavigatorGamepad::webkitGetGamepads):

  • Modules/gamepad/deprecated/NavigatorGamepad.h:
  • Modules/navigatorcontentutils/NavigatorContentUtils.cpp:

(WebCore::NavigatorContentUtils::registerProtocolHandler):
(WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):
(WebCore::NavigatorContentUtils::unregisterProtocolHandler):

  • Modules/navigatorcontentutils/NavigatorContentUtils.h:
  • Modules/vibration/NavigatorVibration.cpp:

(WebCore::NavigatorVibration::vibrate):

  • Modules/vibration/NavigatorVibration.h:
9:20 PM Changeset in webkit [192859] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Modern IDB: Unskip "storage/indexeddb/mozilla" instead of each individual test inside of it.
https://bugs.webkit.org/show_bug.cgi?id=151693

Reviewed by Geoffrey Garen.

  • platform/mac-wk1/TestExpectations:
9:15 PM Changeset in webkit [192858] by Yusuke Suzuki
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Object::{freeze, seal} perform preventExtensionsTransition twice
https://bugs.webkit.org/show_bug.cgi?id=151606

Reviewed by Darin Adler.

In Structure::{freezeTransition, sealTransition}, we perform preventExtensionsTransition.
So it is unnecessary to perform preventExtensionsTransition before executing Structure::{freezeTransition, sealTransition}.

  • runtime/JSObject.cpp:

(JSC::JSObject::seal):
(JSC::JSObject::freeze):
(JSC::JSObject::preventExtensions):

  • tests/stress/freeze-and-seal-should-prevent-extensions.js: Added.

(shouldBe):
(shouldThrow):

8:59 PM Changeset in webkit [192857] by benjamin@webkit.org
  • 11 edits in trunk/Source/JavaScriptCore

[JSC] Add Sqrt to B3
https://bugs.webkit.org/show_bug.cgi?id=151692

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-11-30
Reviewed by Geoffrey Garen.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::sqrtDouble):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::sqrtsd_mr):

  • b3/B3LowerToAir.cpp:

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

  • b3/B3Opcode.cpp:

(WTF::printInternal):

  • b3/B3Opcode.h:
  • b3/B3Validate.cpp:
  • b3/B3Value.cpp:

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

  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::testSqrtArg):
(JSC::B3::testSqrtImm):
(JSC::B3::testSqrtMem):
(JSC::B3::run):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::doubleSqrt):

8:43 PM Changeset in webkit [192856] by fpizlo@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

FTL lazy slow paths should work with B3
https://bugs.webkit.org/show_bug.cgi?id=151667

Reviewed by Geoffrey Garen.

This adds all of the glue necessary to make FTL::LazySlowPath work with B3. The B3 approach
allows us to put all of the code in FTL::LowerDFGToLLVM, instead of having supporting data
structures on the side and a bunch of complex code in FTLCompile.cpp.

  • b3/B3CheckSpecial.cpp:

(JSC::B3::CheckSpecial::generate):

  • b3/B3LowerToAir.cpp:

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

  • b3/B3PatchpointSpecial.cpp:

(JSC::B3::PatchpointSpecial::generate):

  • b3/B3StackmapValue.h:
  • ftl/FTLJSTailCall.cpp:

(JSC::FTL::DFG::recoveryFor):
(JSC::FTL::JSTailCall::emit):

  • ftl/FTLLazySlowPath.cpp:

(JSC::FTL::LazySlowPath::LazySlowPath):
(JSC::FTL::LazySlowPath::generate):

  • ftl/FTLLazySlowPath.h:

(JSC::FTL::LazySlowPath::createGenerator):
(JSC::FTL::LazySlowPath::patchableJump):
(JSC::FTL::LazySlowPath::done):
(JSC::FTL::LazySlowPath::patchpoint):
(JSC::FTL::LazySlowPath::usedRegisters):
(JSC::FTL::LazySlowPath::callSiteIndex):
(JSC::FTL::LazySlowPath::stub):

  • ftl/FTLLocation.cpp:

(JSC::FTL::Location::forValueRep):
(JSC::FTL::Location::forStackmaps):
(JSC::FTL::Location::dump):
(JSC::FTL::Location::isGPR):
(JSC::FTL::Location::gpr):
(JSC::FTL::Location::isFPR):
(JSC::FTL::Location::fpr):
(JSC::FTL::Location::restoreInto):

  • ftl/FTLLocation.h:

(JSC::FTL::Location::Location):
(JSC::FTL::Location::forRegister):
(JSC::FTL::Location::forIndirect):
(JSC::FTL::Location::forConstant):
(JSC::FTL::Location::kind):
(JSC::FTL::Location::hasReg):
(JSC::FTL::Location::reg):
(JSC::FTL::Location::hasOffset):
(JSC::FTL::Location::offset):
(JSC::FTL::Location::hash):
(JSC::FTL::Location::hasDwarfRegNum): Deleted.
(JSC::FTL::Location::dwarfRegNum): Deleted.
(JSC::FTL::Location::hasDwarfReg): Deleted.
(JSC::FTL::Location::dwarfReg): Deleted.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::LowerDFGToLLVM):
(JSC::FTL::DFG::LowerDFGToLLVM::lazySlowPath):

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::stubUnavailableRegisters):
(JSC::RegisterSet::macroScratchRegisters):
(JSC::RegisterSet::calleeSaveRegisters):

  • jit/RegisterSet.h:
7:39 PM Changeset in webkit [192855] by ggaren@apple.com
  • 4 edits in trunk/Source

Use a better RNG for Math.random()
https://bugs.webkit.org/show_bug.cgi?id=151641

Reviewed by Anders Carlsson.

Source/JavaScriptCore:

Updated for interface change.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::setInputCursor):

Source/WTF:

Use 64 bits in the random number generator instead of 32 bit. (In
the end, JavaScript, which uses doubles, will only see 52 bits.) This
prevents programs that mulitply a random number by a large constant from
seeing non-random "banding" caused by zeroes in the low 20 bits.

I also took the opportunity to upgrade from GameRandom to Xorshift+,
since Xorshift+ passes more benchmarks for randomness, and is not any
slower or more complicated.

Now let us all remember the fateful words of Steve Weibe, who would be
King of Kong: "The randomness went the opposite way that it usually goes."

  • wtf/WeakRandom.h:

(WTF::WeakRandom::WeakRandom):
(WTF::WeakRandom::setSeed): Use standard naming.

(WTF::WeakRandom::seed): This function is safe now. "Unsafe" in function
names makes me itch.

(WTF::WeakRandom::get):
(WTF::WeakRandom::getUint32): Update to 64bit.

(WTF::WeakRandom::advance): The Xorshift+ algorithm.

(WTF::WeakRandom::initializeSeed): Deleted.
(WTF::WeakRandom::seedUnsafe): Deleted.

6:53 PM Changeset in webkit [192854] by jiewen_tan@apple.com
  • 3 edits
    2 adds in trunk

Amazon.com Additional Information links aren't clickable
https://bugs.webkit.org/show_bug.cgi?id=151401
<rdar://problem/23454261>

Reviewed by Darin Adler.

Source/WebCore:

The cause of this issue is that the painting order is different from the hittest order so we can end up
with visible but unreachable content. To fix this, the executation flow of hittest has been reordered.
According to the paint system, which renders the webpage from the bottom RenderLayer to the top, contents
are rendered before floats. Hence, for the hittest, which determines the hitted location from top RenderLayer
to the bottom, should do it reversedly. Now, hittest will first test floats then contents.

Test: fast/block/float/hit-test-on-overlapping-floats.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::nodeAtPoint):

LayoutTests:

  • fast/block/float/hit-test-on-overlapping-floats-expected.txt: Added.
  • fast/block/float/hit-test-on-overlapping-floats.html: Added.
6:46 PM Changeset in webkit [192853] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Fix possible crash with animated layers in reflections
https://bugs.webkit.org/show_bug.cgi?id=151689
rdar://problem/23018612

Reviewed by Darin Adler.

Reflections create additional PlatformCALayers whose owner is set to the GraphicsLayerCA.
Those PlatformCALayers need their owner pointer cleared out when the GraphicsLayerCA
is destroyed.

Tested by compositing/reflections/nested-reflection-transition.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:
  • platform/graphics/ca/GraphicsLayerCA.h:
6:29 PM Changeset in webkit [192852] by beidson@apple.com
  • 4 edits in trunk

Modern IDB: Iterating index cursors to a specific key is busted.
https://bugs.webkit.org/show_bug.cgi?id=151684

Reviewed by Darin Adler.

Source/WebCore:

No new tests (At least one failing test now passes).

  • Modules/indexeddb/server/MemoryIndexCursor.cpp:

(WebCore::IDBServer::MemoryIndexCursor::iterate):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
6:26 PM Changeset in webkit [192851] by benjamin@webkit.org
  • 11 edits
    1 add in trunk/Source

[JSC] Speed up Air Liveness Analysis on Tmps
https://bugs.webkit.org/show_bug.cgi?id=151556

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-11-30
Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Liveness Analysis scales poorly on large graphs like the ones
generated by testComplex().
This patch introduces a faster of Liveness using the continuous indices
of values instead of the values themselves.

There are two main areas of improvements:
1) Reduce the cost of doing a LocalCalc over a BasicBlock.
2) Reduce how many LocalCalc are needed to converge to a solution.

Most of the costs of LocalCalc are from HashSet manipulations.
The HashSet operations are O(1) but the constant is large enough
to be a problem.

I used a similar trick as the Register Allocator to remove hashing
and collision handling: the absolute value of the Tmp is used as an index
into a flat array.

I used Briggs's Sparse Set implementation for the local live information
at each instruction. It has great properties for doing the local calculation:
-No memory reallocation.
-O(1) add() and remove() with a small constant.
-Strict O(n) iteration.
-O(1) clear().

The values Live-At-Head are now stored into a Vector. The Sparse Set
is used to maintain the Tmp uniqueness.

When forwarding new liveness at head to the predecessor, I start by removing
everything that was already in live-at-head. We can assume that any value
in that list has already been added to the predecessors.
This leaves us with a small-ish number of Tmps to add to live-at-head
and to the predecessors.

The speed up convergence, I used the same trick as DFG's liveness: keep
a set of dirty blocks to process. In practice, all the blocks without
back-edges converge quickly, and we only propagate liveness as needed.

This patch reduces the time taken by "testComplex(64, 384)" by another 5%.

The remaining things to do for Liveness are:
-Skip the first block for the fix point (it is often large and doing a local

calc on it is useless).

-Find a better Data Structure for live-at-tail (updating the HashSet takes

50% of the total convergence time).

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/air/AirIteratedRegisterCoalescing.cpp:

(JSC::B3::Air::IteratedRegisterCoalescingAllocator::build):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::getAlias):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::getAliasWhenSpilling):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::allocatedReg):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::tmpArraySize):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::initializeDegrees):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::addEdges):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::addEdge):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::makeWorkList):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::simplify):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::forEachAdjacent):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::hasBeenSimplified):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::decrementDegree):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::forEachNodeMoves):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::isMoveRelated):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::enableMovesOnValue):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::precoloredCoalescingHeuristic):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::conservativeHeuristic):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::addWorkList):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::combine):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::freezeMoves):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::selectSpill):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::assignColors):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::dumpInterferenceGraphInDot):
(JSC::B3::Air::iteratedRegisterCoalescingOnType):
(JSC::B3::Air::iteratedRegisterCoalescing):
(JSC::B3::Air::AbsoluteTmpHelper<Arg::GP>::absoluteIndex): Deleted.
(JSC::B3::Air::AbsoluteTmpHelper<Arg::GP>::tmpFromAbsoluteIndex): Deleted.
(JSC::B3::Air::AbsoluteTmpHelper<Arg::FP>::absoluteIndex): Deleted.
(JSC::B3::Air::AbsoluteTmpHelper<Arg::FP>::tmpFromAbsoluteIndex): Deleted.

  • b3/air/AirReportUsedRegisters.cpp:

(JSC::B3::Air::reportUsedRegisters):

  • b3/air/AirTmpInlines.h:

(JSC::B3::Air::AbsoluteTmpMapper<Arg::GP>::absoluteIndex):
(JSC::B3::Air::AbsoluteTmpMapper<Arg::GP>::tmpFromAbsoluteIndex):
(JSC::B3::Air::AbsoluteTmpMapper<Arg::FP>::absoluteIndex):
(JSC::B3::Air::AbsoluteTmpMapper<Arg::FP>::tmpFromAbsoluteIndex):

  • b3/air/AirLiveness.h: Added.

Source/WTF:

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

(WTF::IndexSparseSet<OverflowHandler>::IndexSparseSet):
(WTF::IndexSparseSet<OverflowHandler>::add):
(WTF::IndexSparseSet<OverflowHandler>::remove):
(WTF::IndexSparseSet<OverflowHandler>::clear):
(WTF::IndexSparseSet<OverflowHandler>::size):
(WTF::IndexSparseSet<OverflowHandler>::isEmpty):
(WTF::IndexSparseSet<OverflowHandler>::contains):

6:15 PM Changeset in webkit [192850] by beidson@apple.com
  • 4 edits in trunk

Modern IDB: ObjectStore cursors should not be able to iterate out of their range.
https://bugs.webkit.org/show_bug.cgi?id=151683

Reviewed by Darin Adler.

Source/WebCore:

No new tests (Covered by at least one failing test that now passes).

  • Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:

(WebCore::IDBServer::MemoryObjectStoreCursor::incrementForwardIterator):
(WebCore::IDBServer::MemoryObjectStoreCursor::incrementReverseIterator):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
6:13 PM Changeset in webkit [192849] by andersca@apple.com
  • 24 edits in trunk/Source/WebCore

CTTE autogenerated bindings code
https://bugs.webkit.org/show_bug.cgi?id=151682

Reviewed by Darin Adler.

Make sure that JS bindings pass a reference to the object when calling static member functions.

  • Modules/gamepad/NavigatorGamepad.cpp:

(WebCore::NavigatorGamepad::getGamepads):

  • Modules/gamepad/NavigatorGamepad.h:
  • Modules/geolocation/NavigatorGeolocation.cpp:

(WebCore::NavigatorGeolocation::geolocation):

  • Modules/geolocation/NavigatorGeolocation.h:
  • Modules/mediasource/AudioTrackMediaSource.h:

(WebCore::AudioTrackMediaSource::sourceBuffer):

  • Modules/mediasource/TextTrackMediaSource.h:

(WebCore::TextTrackMediaSource::sourceBuffer):

  • Modules/mediasource/VideoTrackMediaSource.h:

(WebCore::VideoTrackMediaSource::sourceBuffer):

  • Modules/mediastream/HTMLMediaElementMediaStream.cpp:

(WebCore::HTMLMediaElementMediaStream::srcObject):
(WebCore::HTMLMediaElementMediaStream::setSrcObject):

  • Modules/mediastream/HTMLMediaElementMediaStream.h:
  • Modules/mediastream/NavigatorMediaDevices.cpp:

(WebCore::NavigatorMediaDevices::mediaDevices):

  • Modules/mediastream/NavigatorMediaDevices.h:
  • Modules/notifications/DOMWindowNotifications.cpp:

(WebCore::DOMWindowNotifications::webkitNotifications):

  • Modules/notifications/DOMWindowNotifications.h:
  • Modules/notifications/Notification.cpp:

(WebCore::Notification::Notification):

  • Modules/notifications/WorkerGlobalScopeNotifications.cpp:

(WebCore::WorkerGlobalScopeNotifications::webkitNotifications):

  • Modules/notifications/WorkerGlobalScopeNotifications.h:
  • Modules/speech/DOMWindowSpeechSynthesis.cpp:

(WebCore::DOMWindowSpeechSynthesis::speechSynthesis):

  • Modules/speech/DOMWindowSpeechSynthesis.h:
  • Modules/webdatabase/DOMWindowWebDatabase.cpp:

(WebCore::DOMWindowWebDatabase::openDatabase):

  • Modules/webdatabase/DOMWindowWebDatabase.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateParametersCheck):

  • testing/Internals.cpp:

(WebCore::Internals::enableMockSpeechSynthesizer):

5:55 PM Changeset in webkit [192848] by commit-queue@webkit.org
  • 81 edits in trunk/Source

Rename ActiveDOMObject/DOMWindow PageCacheSuspension code to support more reasons for suspension
https://bugs.webkit.org/show_bug.cgi?id=151677

Patch by Katlyn Graff <kgraff@apple.com> on 2015-11-30
Reviewed by Ryosuke Niwa.

Source/WebCore:

Simply a refactoring patch, so no new tests.

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::canSuspendForDocumentSuspension):
(WebCore::MediaKeySession::canSuspendForPageCache): Deleted.

  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::canSuspendForDocumentSuspension):
(WebCore::Geolocation::canSuspendForPageCache): Deleted.

  • Modules/geolocation/Geolocation.h:
  • Modules/indexeddb/DOMWindowIndexedDatabase.cpp:

(WebCore::DOMWindowIndexedDatabase::disconnectFrameForDocumentSuspension):
(WebCore::DOMWindowIndexedDatabase::reconnectFrameFromDocumentSuspension):
(WebCore::DOMWindowIndexedDatabase::disconnectFrameForPageCache): Deleted.
(WebCore::DOMWindowIndexedDatabase::reconnectFrameFromPageCache): Deleted.

  • Modules/indexeddb/DOMWindowIndexedDatabase.h:
  • Modules/indexeddb/client/IDBDatabaseImpl.cpp:

(WebCore::IDBClient::IDBDatabase::canSuspendForDocumentSuspension):
(WebCore::IDBClient::IDBDatabase::canSuspendForPageCache): Deleted.

  • Modules/indexeddb/client/IDBDatabaseImpl.h:
  • Modules/indexeddb/client/IDBRequestImpl.cpp:

(WebCore::IDBClient::IDBRequest::canSuspendForDocumentSuspension):
(WebCore::IDBClient::IDBRequest::canSuspendForPageCache): Deleted.

  • Modules/indexeddb/client/IDBRequestImpl.h:
  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::canSuspendForDocumentSuspension):
(WebCore::IDBClient::IDBTransaction::canSuspendForPageCache): Deleted.

  • Modules/indexeddb/client/IDBTransactionImpl.h:
  • Modules/indexeddb/legacy/LegacyDatabase.cpp:

(WebCore::LegacyDatabase::canSuspendForDocumentSuspension):
(WebCore::LegacyDatabase::canSuspendForPageCache): Deleted.

  • Modules/indexeddb/legacy/LegacyDatabase.h:
  • Modules/indexeddb/legacy/LegacyRequest.cpp:

(WebCore::LegacyRequest::canSuspendForDocumentSuspension):
(WebCore::LegacyRequest::canSuspendForPageCache): Deleted.

  • Modules/indexeddb/legacy/LegacyRequest.h:
  • Modules/indexeddb/legacy/LegacyTransaction.cpp:

(WebCore::LegacyTransaction::canSuspendForDocumentSuspension):
(WebCore::LegacyTransaction::canSuspendForPageCache): Deleted.

  • Modules/indexeddb/legacy/LegacyTransaction.h:
  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::canSuspendForDocumentSuspension):
(WebCore::MediaSource::canSuspendForPageCache): Deleted.

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

(WebCore::SourceBuffer::canSuspendForDocumentSuspension):
(WebCore::SourceBuffer::canSuspendForPageCache): Deleted.

  • Modules/mediasource/SourceBuffer.h:
  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::canSuspendForDocumentSuspension):
(WebCore::MediaStreamTrack::canSuspendForPageCache): Deleted.

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/mediastream/RTCDTMFSender.cpp:

(WebCore::RTCDTMFSender::canSuspendForDocumentSuspension):
(WebCore::RTCDTMFSender::canSuspendForPageCache): Deleted.

  • Modules/mediastream/RTCDTMFSender.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::canSuspendForDocumentSuspension):
(WebCore::RTCPeerConnection::canSuspendForPageCache): Deleted.

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/notifications/DOMWindowNotifications.cpp:

(WebCore::DOMWindowNotifications::disconnectFrameForDocumentSuspension):
(WebCore::DOMWindowNotifications::reconnectFrameFromDocumentSuspension):
(WebCore::DOMWindowNotifications::disconnectFrameForPageCache): Deleted.
(WebCore::DOMWindowNotifications::reconnectFrameFromPageCache): Deleted.

  • Modules/notifications/DOMWindowNotifications.h:
  • Modules/notifications/Notification.cpp:

(WebCore::Notification::canSuspendForDocumentSuspension):
(WebCore::Notification::canSuspendForPageCache): Deleted.

  • Modules/notifications/Notification.h:
  • Modules/notifications/NotificationCenter.cpp:

(WebCore::NotificationCenter::canSuspendForDocumentSuspension):
(WebCore::NotificationCenter::canSuspendForPageCache): Deleted.

  • Modules/notifications/NotificationCenter.h:
  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::canSuspendForDocumentSuspension):
(WebCore::AudioContext::canSuspendForPageCache): Deleted.

  • Modules/webaudio/AudioContext.h:
  • Modules/webdatabase/DatabaseContext.cpp:

(WebCore::DatabaseContext::canSuspendForDocumentSuspension):
(WebCore::DatabaseContext::canSuspendForPageCache): Deleted.

  • Modules/webdatabase/DatabaseContext.h:
  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::canSuspendForDocumentSuspension):
(WebCore::WebSocket::canSuspendForPageCache): Deleted.

  • Modules/websockets/WebSocket.h:
  • css/FontLoader.cpp:

(WebCore::FontLoader::canSuspendForDocumentSuspension):
(WebCore::FontLoader::canSuspendForPageCache): Deleted.

  • css/FontLoader.h:
  • dom/ActiveDOMObject.cpp:

(WebCore::ActiveDOMObject::canSuspendForDocumentSuspension):
(WebCore::ActiveDOMObject::canSuspendForPageCache): Deleted.

  • dom/ActiveDOMObject.h:
  • dom/Document.cpp:

(WebCore::Document::~Document):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::canSuspendActiveDOMObjectsForTabSuspension):
(WebCore::ScriptExecutionContext::canSuspendActiveDOMObjectsForPageCache): Deleted.

  • dom/ScriptExecutionContext.h:
  • fileapi/FileReader.cpp:

(WebCore::FileReader::canSuspendForDocumentSuspension):
(WebCore::FileReader::canSuspendForPageCache): Deleted.

  • fileapi/FileReader.h:
  • history/CachedFrame.cpp:

(WebCore::CachedFrame::CachedFrame):

  • history/PageCache.cpp:

(WebCore::canCacheFrame):

  • html/HTMLMarqueeElement.cpp:

(WebCore::HTMLMarqueeElement::canSuspendForDocumentSuspension):
(WebCore::HTMLMarqueeElement::canSuspendForPageCache): Deleted.

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

(WebCore::HTMLMediaElement::canSuspendForDocumentSuspension):
(WebCore::HTMLMediaElement::canSuspendForPageCache): Deleted.

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

(WebCore::HTMLSourceElement::canSuspendForDocumentSuspension):
(WebCore::HTMLSourceElement::canSuspendForPageCache): Deleted.

  • html/HTMLSourceElement.h:
  • html/PublicURLManager.cpp:

(WebCore::PublicURLManager::canSuspendForDocumentSuspension):
(WebCore::PublicURLManager::canSuspendForPageCache): Deleted.

  • html/PublicURLManager.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::canSuspendForDocumentSuspension):
(WebCore::WebGLRenderingContextBase::canSuspendForPageCache): Deleted.

  • html/canvas/WebGLRenderingContextBase.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::clear):
(WebCore::FrameLoader::open):

  • loader/appcache/DOMApplicationCache.cpp:

(WebCore::DOMApplicationCache::disconnectFrameForDocumentSuspension):
(WebCore::DOMApplicationCache::reconnectFrameFromDocumentSuspension):
(WebCore::DOMApplicationCache::disconnectFrameForPageCache): Deleted.
(WebCore::DOMApplicationCache::reconnectFrameFromPageCache): Deleted.

  • loader/appcache/DOMApplicationCache.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::DOMWindow):
(WebCore::DOMWindow::~DOMWindow):
(WebCore::DOMWindow::resetUnlessSuspendedForDocumentSuspension):
(WebCore::DOMWindow::suspendForDocumentSuspension):
(WebCore::DOMWindow::resumeFromDocumentSuspension):
(WebCore::DOMWindow::disconnectDOMWindowProperties):
(WebCore::DOMWindow::reconnectDOMWindowProperties):
(WebCore::DOMWindow::resetUnlessSuspendedForPageCache): Deleted.
(WebCore::DOMWindow::suspendForPageCache): Deleted.
(WebCore::DOMWindow::resumeFromPageCache): Deleted.

  • page/DOMWindow.h:
  • page/DOMWindowExtension.cpp:

(WebCore::DOMWindowExtension::disconnectFrameForDocumentSuspension):
(WebCore::DOMWindowExtension::reconnectFrameFromDocumentSuspension):
(WebCore::DOMWindowExtension::disconnectFrameForPageCache): Deleted.
(WebCore::DOMWindowExtension::reconnectFrameFromPageCache): Deleted.

  • page/DOMWindowExtension.h:
  • page/DOMWindowProperty.cpp:

(WebCore::DOMWindowProperty::disconnectFrameForDocumentSuspension):
(WebCore::DOMWindowProperty::reconnectFrameFromDocumentSuspension):
(WebCore::DOMWindowProperty::disconnectFrameForPageCache): Deleted.
(WebCore::DOMWindowProperty::reconnectFrameFromPageCache): Deleted.

  • page/DOMWindowProperty.h:
  • page/EventSource.cpp:

(WebCore::EventSource::canSuspendForDocumentSuspension):
(WebCore::EventSource::canSuspendForPageCache): Deleted.

  • page/EventSource.h:
  • page/SuspendableTimer.cpp:

(WebCore::SuspendableTimer::canSuspendForDocumentSuspension):
(WebCore::SuspendableTimer::canSuspendForPageCache): Deleted.

  • page/SuspendableTimer.h:
  • workers/Worker.cpp:

(WebCore::Worker::canSuspendForDocumentSuspension):
(WebCore::Worker::canSuspendForPageCache): Deleted.

  • workers/Worker.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::canSuspendForDocumentSuspension):
(WebCore::XMLHttpRequest::canSuspendForPageCache): Deleted.

  • xml/XMLHttpRequest.h:

Source/WebKit/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _cacheabilityDictionary]):

5:28 PM Changeset in webkit [192847] by beidson@apple.com
  • 13 edits in trunk

Modern IDB: "prevunique" cursors should point at the lowest primary key that matches, not the highest.
https://bugs.webkit.org/show_bug.cgi?id=151675.

Reviewed by Darin Adler.

Source/WebCore:

No new tests (Covered by at least one failing test that now passes, and updates to previously incorrect tests).

  • Modules/indexeddb/server/IndexValueEntry.cpp:

(WebCore::IDBServer::IndexValueEntry::reverseBegin): If CursorDuplicity is NoDuplicates, start at the lowest

entry instead of the highest.

(WebCore::IDBServer::IndexValueEntry::reverseFind):

  • Modules/indexeddb/server/IndexValueEntry.h:
  • Modules/indexeddb/server/IndexValueStore.cpp:

(WebCore::IDBServer::IndexValueStore::reverseFind):
(WebCore::IDBServer::IndexValueStore::Iterator::Iterator):
(WebCore::IDBServer::IndexValueStore::Iterator::nextIndexEntry):

  • Modules/indexeddb/server/IndexValueStore.h:
  • Modules/indexeddb/server/MemoryIndexCursor.cpp:

(WebCore::IDBServer::MemoryIndexCursor::MemoryIndexCursor):
(WebCore::IDBServer::MemoryIndexCursor::iterate):

  • Modules/indexeddb/shared/IDBCursorInfo.cpp:

(WebCore::IDBCursorInfo::duplicity):
(WebCore::IDBCursorInfo::isDirectionNoDuplicate): Deleted.

  • Modules/indexeddb/shared/IDBCursorInfo.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/modern/index-cursor-1-expected.txt:
  • storage/indexeddb/modern/index-cursor-2-expected.txt:
  • storage/indexeddb/modern/index-cursor-3-expected.txt:
5:05 PM Changeset in webkit [192846] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

Build fix for some compiler versions.

  • UIProcess/ios/forms/WKAirPlayRoutePicker.mm: Disable deprecation warnings while

processing SOFT_LINK_CLASS too.

4:55 PM Changeset in webkit [192845] by sbarati@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

FTL OSR Exits that are exception handlers should not have two different entrances. Instead, we should have two discrete OSR exits that do different things.
https://bugs.webkit.org/show_bug.cgi?id=151404

Reviewed by Filip Pizlo.

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • ftl/FTLExceptionHandlerManager.cpp:

(JSC::FTL::ExceptionHandlerManager::addNewExit):
(JSC::FTL::ExceptionHandlerManager::addNewCallOperationExit):
(JSC::FTL::ExceptionHandlerManager::callOperationExceptionTarget):
(JSC::FTL::ExceptionHandlerManager::lazySlowPathExceptionTarget):
(JSC::FTL::ExceptionHandlerManager::callOperationOSRExit):
(JSC::FTL::ExceptionHandlerManager::getByIdOSRExit): Deleted.
(JSC::FTL::ExceptionHandlerManager::subOSRExit): Deleted.

  • ftl/FTLExceptionHandlerManager.h:
  • ftl/FTLExitThunkGenerator.cpp:

(JSC::FTL::ExitThunkGenerator::emitThunk):

  • ftl/FTLOSRExit.cpp:

(JSC::FTL::OSRExitDescriptor::OSRExitDescriptor):
(JSC::FTL::OSRExitDescriptor::isExceptionHandler):
(JSC::FTL::OSRExit::OSRExit):
(JSC::FTL::OSRExit::spillRegistersToSpillSlot):
(JSC::FTL::OSRExit::recoverRegistersFromSpillSlot):
(JSC::FTL::OSRExit::willArriveAtExitFromIndirectExceptionCheck):
(JSC::FTL::OSRExit::willArriveAtOSRExitFromGenericUnwind):
(JSC::FTL::OSRExit::willArriveAtOSRExitFromCallOperation):
(JSC::FTL::OSRExit::needsRegisterRecoveryOnGenericUnwindOSRExitPath):
(JSC::FTL::OSRExitDescriptor::willArriveAtExitFromIndirectExceptionCheck): Deleted.
(JSC::FTL::OSRExitDescriptor::mightArriveAtOSRExitFromGenericUnwind): Deleted.
(JSC::FTL::OSRExitDescriptor::mightArriveAtOSRExitFromCallOperation): Deleted.
(JSC::FTL::OSRExitDescriptor::needsRegisterRecoveryOnGenericUnwindOSRExitPath): Deleted.

  • ftl/FTLOSRExit.h:
  • ftl/FTLOSRExitCompilationInfo.h:

(JSC::FTL::OSRExitCompilationInfo::OSRExitCompilationInfo):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileFTLOSRExit):

4:33 PM Changeset in webkit [192844] by jiewen_tan@apple.com
  • 7 edits
    3 adds in trunk

Null dereference loading Blink layout test http/tests/misc/detach-during-notifyDone.html
https://bugs.webkit.org/show_bug.cgi?id=149309
<rdar://problem/22748363>

Reviewed by Brent Fulgham.

Source/WebCore:

A weird order of event execution introduced by the test case will kill the webpage in a
subframe of the page while executing its |frame.loader().checkLoadCompleteForThisFrame()|.
Therefore, any frames comes after the failing subframe will have no page. Check it before
calling to those frames' |frame.loader().checkLoadCompleteForThisFrame()|, otherwise the
assertion in |frame.loader().checkLoadCompleteForThisFrame()| will fail.

Test: http/tests/misc/detach-during-notifyDone.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkLoadComplete):

Source/WebKit/mac:

  • WebView/WebDataSource.mm:

(WebDataSourcePrivate::~WebDataSourcePrivate):
Refine the assertion to treat <rdar://problem/9673866>.

Source/WebKit2:

Callback of bundle clients could kill the documentloader. Therefore, make a copy
of the navigationID before invoking the callback.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidChangeLocationWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidPushStateWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidReplaceStateWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidPopStateWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):

LayoutTests:

The test case is from Blink r175601:
https://codereview.chromium.org/317513002
The test case will generate a set of weird ordering events that affects the documentLoader:

  1. The subframe finishes loading, and since the frame’s testRunner is not set to wait until

done, WebKitTestRunner stops the load (by calling WKBundlePageStopLoading()).

  1. This causes the in-progress XHR to be aborted, which causes its readyState to become DONE

(this bug doesn’t always reproduce because sometimes the XHR has already finished before the
frame finishes loading).

  1. The onreadystatechange callback is executed, which sets innerHTML on the parent frame.
  2. Setting innerHTML disconnects the subframe, nulling out its DocumentLoader.
  3. We return to WebFrameLoaderClient::dispatchDidFinishLoad() from step #1, but now the

FrameLoader’s DocumentLoader is null. And WebKit crashes here.

Note that steps 2-4 happen synchronously inside WebFrameLoaderClient::dispatchDidFinishLoad().

  • http/tests/misc/detach-during-notifyDone-expected.txt: Added.
  • http/tests/misc/detach-during-notifyDone.html: Added.
  • http/tests/misc/resources/detached-frame.html: Added.
4:09 PM Changeset in webkit [192843] by commit-queue@webkit.org
  • 31 edits
    2 deletes in trunk

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

This change broke existing layout tests on Windows (Requested
by ryanhaddad on #webkit).

Reverted changeset:

"Unify font-variant-* with font-variant shorthand"
https://bugs.webkit.org/show_bug.cgi?id=149773
http://trac.webkit.org/changeset/192819

4:07 PM Changeset in webkit [192842] by mark.lam@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

Refactor the op_add, op_sub, and op_mul snippets to use the SnippetOperand class.
https://bugs.webkit.org/show_bug.cgi