Timeline
Sep 28, 2015:
- 11:51 PM Changeset in webkit [190304] by
-
- 8 edits in trunk/Tools
[WTR] Pixel tests generate the snapshots twice in Web and UI processes
https://bugs.webkit.org/show_bug.cgi?id=149595
Reviewed by Tim Horton.
All ports except IOS implement
PlatformWebView::windowSnapshotImage() to generate the snapshot
for the pixel tests in the UI process. But we are still generating
a snapshot for pixel tests in the Web process too, that is passed
to the UI process but ignored.
Whether a pixel result is needed or not, is only known by the web
process depending on whether the test called dumpAsText with
dumpPixels == true or not. Since the pixels are now dump in the UI
process, we need to pass that information to the UI process when
the test is done. For that we set a PixelResultIsPending bool
parameter to the Done message, and we only add the PixelResult
when UI process doesn't need to generate the pixels dump.
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::didReceiveMessageToPage): Set
m_pixelResultIsPending to false on reset.
(WTR::InjectedBundle::done): Add PixelResultIsPending parameter to the
Done message, and set the PixelResult if m_pixelResultIsPending is false.
- WebKitTestRunner/InjectedBundle/InjectedBundle.h:
(WTR::InjectedBundle::setPixelResult): Set m_pixelResultIsPending to false.
(WTR::InjectedBundle::setNeedsPixelResult): Set m_pixelResultIsPending.
- WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::dump): Only create a snapshot for IOS
port.
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::dumpResults): Use either the pixel result
from the web process or generate a pixel result from the web view
if need it.
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
- WebKitTestRunner/TestInvocation.h: Add SnapshotResultType enum
parameter to dumpPixelsAndCompareWithExpected, since the snapshot
is created by the caller now, but the CG implementation needs to
know if it's a Web or UI process snapshot.
- WebKitTestRunner/cairo/TestInvocationCairo.cpp:
(WTR::TestInvocation::dumpPixelsAndCompareWithExpected): Create a
cairo surface for the given image.
- WebKitTestRunner/cg/TestInvocationCG.cpp:
(WTR::TestInvocation::dumpPixelsAndCompareWithExpected): Create a
CGContext for the given image.
- 9:31 PM Changeset in webkit [190303] by
-
- 5 edits in trunk/Tools
Fix JS errors on dashboard metrics page
https://bugs.webkit.org/show_bug.cgi?id=149608
Patch by Dean Johnson <dean_johnson@apple.com> on 2015-09-28
Reviewed by Alexey Proskuryakov.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js: Updated to use Settings.
(initPlatformsByFamily):
(updateHiddenPlatforms):
(parsePlatformFamily): Deleted.
(updateToggleButtons): Deleted.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsMain.js:
(updateHiddenPlatforms): Added to remove errors.
(initPlatformsByFamily): Added to remove errors.
(unhiddenQueues): Updated to use Settings.
(documentReady): Added logic to add toggle buttons to the settings menu.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Settings.js:
(Settings.prototype.parsePlatformFamily): Moved duplicate logic from Main.js and
MetricsMain.js to Settings.
(Settings.prototype.updateToggleButtons): Moved duplicate logic from Main.js and
MetricsMain.js to Settings.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/QueueView.js:
(QueueView.prototype._updateHiddenState): Updated to use Settings.
- 7:38 PM Changeset in webkit [190302] by
-
- 3 edits in trunk/Source/JavaScriptCore
Remove unused parseMemoryAmount
https://bugs.webkit.org/show_bug.cgi?id=149611
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-09-28
Reviewed by Mark Lam.
- heap/HeapStatistics.cpp:
(JSC::HeapStatistics::parseMemoryAmount): Deleted.
- heap/HeapStatistics.h:
- 6:55 PM Changeset in webkit [190301] by
-
- 4 edits in trunk/Source/JavaScriptCore
Web Inspector: JSGlobalRuntimeAgent unintentionally overrides InspectorRuntimeAgent destruction handling
https://bugs.webkit.org/show_bug.cgi?id=149537
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-09-28
Reviewed by Darin Adler.
- inspector/agents/JSGlobalObjectRuntimeAgent.h:
- inspector/agents/JSGlobalObjectRuntimeAgent.cpp:
(Inspector::JSGlobalObjectRuntimeAgent::willDestroyFrontendAndBackend): Deleted.
Do not override method, super class implementation is sufficient.
- JavaScriptCore.xcodeproj/project.pbxproj:
Fix file ordering.
- inspector/agents/InspectorDebuggerAgent.h:
Remove unused member variable.
- 6:08 PM Changeset in webkit [190300] by
-
- 2 edits in trunk/Tools
Appscale query fails because of missing index
https://bugs.webkit.org/show_bug.cgi?id=149609
Patch by Aakash Jain <aakash_jain@apple.com> on 2015-09-28
Reviewed by Darin Adler.
- QueueStatusServer/index.yaml: Added the required index.
- 5:39 PM Changeset in webkit [190299] by
-
- 2 edits in trunk/Tools
[Win] Fix the 64-bit build after switch to cmake.
Reviewed by Alex Christensen.
- Scripts/webkitdirs.pm:
(generateBuildSystemFromCMakeProject): Use correct arguments for cmake to
run a 64-bit build.
- 5:06 PM Changeset in webkit [190298] by
-
- 2 edits in trunk/Source/WebCore
[Win] Fix build after r190295.
- PlatformWin.cmake: Add missing Forwarding Header.
- 4:58 PM Changeset in webkit [190297] by
-
- 3 edits in trunk/LayoutTests
fast/repaint/absolute-position-changed.html and fast/repaint/fixed.html are flaky.
Move .scrollTo() call to repaintTest() where we run the test code. (and add .offsetHeight call
to ensure that renderer tree is in clean state.)
Unreviewed gardening.
- fast/repaint/absolute-position-changed.html:
- fast/repaint/fixed.html:
- 4:45 PM Changeset in webkit [190296] by
-
- 3 edits in trunk/LayoutTests
Follow up to bug: https://bugs.webkit.org/show_bug.cgi?id=149599
We're now skipping getter-richards-try-catch on debug builds.
Unreviewed: skip long running test on debug builds.
- js/regress/script-tests/getter-richards-try-catch.js:
- platform/mac/TestExpectations:
- 4:41 PM Changeset in webkit [190295] by
-
- 2 edits in trunk/Source/WebCore
Add an IDB Server that can roundtrip a request back to the client.
https://bugs.webkit.org/show_bug.cgi?id=149603
Reviewed by NOBODY (Build fix).
- Modules/indexeddb/IDBRequest.h: Remove unneeded #include, fixing the WK/WK2 builds.
- 4:05 PM Changeset in webkit [190294] by
-
- 2 edits in trunk/LayoutTests
Follow up to bug: https://bugs.webkit.org/show_bug.cgi?id=149599
This patch makes the test run for even less time.
Unreviewed attempted fix for flakiness.
- js/regress/script-tests/getter-richards-try-catch.js:
(Packet.prototype.toString):
- 3:55 PM Changeset in webkit [190293] by
-
- 2 edits in trunk
[Win] Unreviewed build fix for internal systems.
- Source/cmake/OptionsWin.cmake: Preferentially use the build target
location for include and link libraries, rather than the system locations.
- 3:47 PM Changeset in webkit [190292] by
-
- 9 edits in trunk/Source
Expose 'geometryFlipped' state for debugging/logging purposes
https://bugs.webkit.org/show_bug.cgi?id=149557
Reviewed by Simon Fraser.
Source/WebCore:
No new tests: No new behavior.
- platform/graphics/ca/PlatformCALayer.h:
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(PlatformCALayerCocoa::geometryFlipped): Added.
- platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::geometryFlipped): Added.
(printLayer): Log flipped state of geometry.
- platform/graphics/ca/win/PlatformCALayerWin.h:
Source/WebKit2:
- WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::geometryFlipped): Added.
- WebProcess/WebPage/mac/PlatformCALayerRemote.h:
- 3:44 PM Changeset in webkit [190291] by
-
- 24 edits16 copies6 adds in trunk
Add an IDB Server that can roundtrip a request back to the client.
https://bugs.webkit.org/show_bug.cgi?id=149603
Reviewed by Alex Christensen.
Source/WebCore:
Test: storage/indexeddb/modern/deletedatabase-request-event.html
This is a critical piece of IDB infrastructure that:
- Puts a database client/server divide in place.
- Client synchronously sends requests to the server, and asynchronously receives a response back from it.
- Introduces a class structure that makes it easy for WebKit2 to add a thin layer to replace the in-process server with an out-of-process server.
To allow for the most basic of tests, the "delete database" request is hard coded as always failing
with an indeterminate error.
- Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
(WebCore::DOMWindowIndexedDatabase::indexedDB):
- Modules/indexeddb/IDBDatabaseIdentifier.cpp:
(WebCore::IDBDatabaseIdentifier::debugString):
- Modules/indexeddb/IDBDatabaseIdentifier.h:
- Modules/indexeddb/client/IDBConnectionToServer.cpp: Copied from Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp.
(WebCore::IDBClient::IDBConnectionToServer::create):
(WebCore::IDBClient::IDBConnectionToServer::IDBConnectionToServer):
(WebCore::IDBClient::IDBConnectionToServer::identifier):
(WebCore::IDBClient::IDBConnectionToServer::deleteDatabase):
(WebCore::IDBClient::IDBConnectionToServer::didDeleteDatabase):
- Modules/indexeddb/client/IDBConnectionToServer.h: Copied from Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.h.
- Modules/indexeddb/client/IDBConnectionToServerDelegate.h: Copied from Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.h.
(WebCore::IDBClient::IDBConnectionToServerDelegate::~IDBConnectionToServerDelegate):
- Modules/indexeddb/client/IDBFactoryImpl.cpp:
(WebCore::IDBClient::IDBFactory::create):
(WebCore::IDBClient::IDBFactory::IDBFactory):
(WebCore::IDBClient::IDBFactory::openInternal):
(WebCore::IDBClient::IDBFactory::deleteDatabase):
- Modules/indexeddb/client/IDBFactoryImpl.h:
- Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
(WebCore::IDBClient::IDBOpenDBRequest::createDeleteRequest):
(WebCore::IDBClient::IDBOpenDBRequest::createOpenRequest):
(WebCore::IDBClient::IDBOpenDBRequest::IDBOpenDBRequest):
(WebCore::IDBClient::IDBOpenDBRequest::~IDBOpenDBRequest):
(WebCore::IDBClient::IDBOpenDBRequest::requestCompleted):
- Modules/indexeddb/client/IDBOpenDBRequestImpl.h:
(WebCore::IDBClient::IDBOpenDBRequest::databaseIdentifier):
(WebCore::IDBClient::IDBOpenDBRequest::version):
(WebCore::IDBClient::IDBOpenDBRequest::create): Deleted.
- Modules/indexeddb/client/IDBRequestImpl.cpp:
(WebCore::IDBClient::IDBRequest::IDBRequest):
(WebCore::IDBClient::IDBRequest::enqueueEvent):
- Modules/indexeddb/client/IDBRequestImpl.h:
(WebCore::IDBClient::IDBRequest::requestIdentifier):
- Modules/indexeddb/server/IDBConnectionToClient.cpp: Copied from Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp.
(WebCore::IDBServer::IDBConnectionToClient::create):
(WebCore::IDBServer::IDBConnectionToClient::IDBConnectionToClient):
(WebCore::IDBServer::IDBConnectionToClient::identifier):
(WebCore::IDBServer::IDBConnectionToClient::didDeleteDatabase):
- Modules/indexeddb/server/IDBConnectionToClient.h: Copied from Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.h.
- Modules/indexeddb/server/IDBConnectionToClientDelegate.h: Copied from Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.h.
(WebCore::IDBServer::IDBConnectionToClientDelegate::~IDBConnectionToClientDelegate):
- Modules/indexeddb/server/IDBServer.cpp: Copied from Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.cpp.
(WebCore::IDBServer::IDBServer::create):
(WebCore::IDBServer::IDBServer::IDBServer):
(WebCore::IDBServer::IDBServer::registerConnection):
(WebCore::IDBServer::IDBServer::unregisterConnection):
(WebCore::IDBServer::IDBServer::deleteDatabase):
- Modules/indexeddb/server/IDBServer.h: Copied from Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.h.
- Modules/indexeddb/shared/IDBError.cpp: Copied from Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.cpp.
(WebCore::idbExceptionEntry):
(WebCore::IDBError::IDBError):
(WebCore::IDBError::operator=):
(WebCore::IDBError::name):
(WebCore::IDBError::message):
- Modules/indexeddb/shared/IDBError.h: Copied from Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.cpp.
(WebCore::IDBError::IDBError):
(WebCore::IDBError::isNull):
- Modules/indexeddb/shared/IDBRequestData.cpp: Copied from Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp.
(WebCore::IDBRequestData::IDBRequestData):
- Modules/indexeddb/shared/IDBRequestData.h: Copied from Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.h.
(WebCore::IDBRequestData::requestIdentifier):
(WebCore::IDBRequestData::databaseIdentifier):
- Modules/indexeddb/shared/IDBRequestIdentifier.cpp: Copied from Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.cpp.
(WebCore::nextRequestNumber):
(WebCore::IDBRequestIdentifier::IDBRequestIdentifier):
(WebCore::IDBRequestIdentifier::emptyValue):
(WebCore::IDBRequestIdentifier::deletedValue):
(WebCore::IDBRequestIdentifier::isHashTableDeletedValue):
- Modules/indexeddb/shared/IDBRequestIdentifier.h: Added.
(WebCore::IDBRequestIdentifier::isEmpty):
(WebCore::IDBRequestIdentifier::hash):
(WebCore::IDBRequestIdentifier::operator==):
(WebCore::IDBRequestIdentifier::connectionIdentifier):
(WebCore::IDBRequestIdentifierHash::hash):
(WebCore::IDBRequestIdentifierHash::equal):
(WebCore::IDBRequestIdentifierHashTraits::emptyValue):
(WebCore::IDBRequestIdentifierHashTraits::isEmptyValue):
(WebCore::IDBRequestIdentifierHashTraits::constructDeletedValue):
(WebCore::IDBRequestIdentifierHashTraits::isDeletedValue):
- Modules/indexeddb/shared/IDBResultData.cpp: Copied from Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp.
(WebCore::IDBResultData::IDBResultData):
- Modules/indexeddb/shared/IDBResultData.h: Copied from Source/WebCore/Modules/indexeddb/client/IDBOpenDBRequestImpl.h.
(WebCore::IDBResultData::requestIdentifier):
(WebCore::IDBResultData::error):
- Modules/indexeddb/shared/InProcessIDBServer.cpp: Added.
(WebCore::InProcessIDBServer::create):
(WebCore::InProcessIDBServer::InProcessIDBServer):
(WebCore::InProcessIDBServer::identifier):
(WebCore::InProcessIDBServer::connectionToServer):
(WebCore::InProcessIDBServer::connectionToClient):
(WebCore::InProcessIDBServer::deleteDatabase):
(WebCore::InProcessIDBServer::didDeleteDatabase):
- Modules/indexeddb/shared/InProcessIDBServer.h: Copied from Source/WebCore/Modules/indexeddb/client/IDBRequestImpl.h.
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- loader/EmptyClients.cpp:
- page/DatabaseProvider.h:
- page/Page.cpp:
(WebCore::Page::idbConnection):
- page/Page.h:
- page/SecurityOriginData.cpp:
(WebCore::SecurityOriginData::debugString):
- page/SecurityOriginData.h:
Source/WebKit:
- Storage/WebDatabaseProvider.cpp:
(WebDatabaseProvider::idbConnectionToServerForSession):
- Storage/WebDatabaseProvider.h:
Source/WebKit2:
- WebProcess/Databases/WebDatabaseProvider.h:
LayoutTests:
- storage/indexeddb/modern/deletedatabase-request-event-expected.txt: Added.
- storage/indexeddb/modern/deletedatabase-request-event.html: Added.
- 3:44 PM Changeset in webkit [190290] by
-
- 6 edits in trunk/Tools
[Win] Allow Windows to run test-webkitpy without Cygwin
https://bugs.webkit.org/show_bug.cgi?id=149602
Reviewed by Alex Christensen.
These changes mostly shift from hard-coded paths using UNIX-style
separators to Python's "os.path.join" syntax that uses the correct
path separator for each platform.
- Scripts/webkitpy/common/system/path.py:
(cygpath): Don't pass paths through Cygpath on native Windows.
- Scripts/webkitpy/port/win.py:
(WinPort._path_to_apache): Use os.path.join.
(WinPort._ntsd_location): Support 64-bit environment (ProgramW6432 doesn't exist
in 64-bit environments).
- Scripts/webkitpy/style/checker.py: Use os.path.join.
- Scripts/webkitpy/style/checker_unittest.py:
(GlobalVariablesTest.test_path_rules_specifier.assertNoCheck): Use os.path.join.
(GlobalVariablesTest.test_path_rules_specifier): Ditto.
(GlobalVariablesTest): Ditto.
(GlobalVariablesTest.test_max_reports_per_category): Ditto.
(CheckerDispatcherSkipTest.test_should_skip_with_warning): Ditto.
(CheckerDispatcherDispatchTest.test_js_paths): Ditto.
(CheckerDispatcherDispatchTest.test_json_paths): Ditto.
(CheckerDispatcherDispatchTest.test_python_paths): Ditto.
(CheckerDispatcherDispatchTest.test_text_paths): Ditto.
(CheckerDispatcherDispatchTest.test_xml_paths): Ditto.
(StyleProcessor_CodeCoverageTest._create_carriage_checker_class): Ditto.
(StyleProcessor_CodeCoverageTest): Ditto.
(StyleProcessor_CodeCoverageTest.test_should_processskip_without_warning): Ditto.
(StyleProcessor_CodeCoverageTest.test_should_processskip_with_warning): Ditto.
(StyleProcessor_CodeCoverageTest.test_should_processtrue_result): Ditto.
- Scripts/webkitpy/w3c/test_parser_unittest.py: Uses os.path.join rather than
manual string concatenation of paths.
- 3:37 PM Changeset in webkit [190289] by
-
- 33 edits8 adds in trunk
[ES6] Implement tail calls in the FTL
https://bugs.webkit.org/show_bug.cgi?id=148664
Source/JavaScriptCore:
Patch by basile_clement@apple.com <basile_clement@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc> on 2015-09-28
Reviewed by Filip Pizlo.
This patch implements the tail call opcodes in the FTL, making tail
calls available through all tiers. The changes are relatively
straightforward, although the frame shuffler had to be extended to
handle the possibility of running out of stack when spilling or
building a slow path frame. The other tiers always ensure that we have
enough stack space to build the new frame at the bottom of the old one,
but that is not true for the FTL.
Moreover, for efficiency, this adds to the shuffler the ability to
record the state of the TagTypeNumber, and to re-use the same register
when doing several consecutive integer boxings with no spilling in
between.
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/ValueRecovery.h:
(JSC::ValueRecovery::inRegister):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGNode.h:
(JSC::DFG::Node::isFunctionTerminal):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
- dfg/DFGTierUpCheckInjectionPhase.cpp:
(JSC::DFG::TierUpCheckInjectionPhase::run):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLCompile.cpp:
(JSC::FTL::mmAllocateDataSection):
- ftl/FTLInlineCacheSize.cpp:
(JSC::FTL::sizeOfTailCallVarargs):
(JSC::FTL::sizeOfTailCallForwardVarargs):
(JSC::FTL::sizeOfICFor):
- ftl/FTLInlineCacheSize.h:
- ftl/FTLJSCall.cpp:
(JSC::FTL::JSCall::JSCall):
- ftl/FTLJSCallBase.cpp:
(JSC::FTL::JSCallBase::emit):
(JSC::FTL::JSCallBase::link):
- ftl/FTLJSCallBase.h:
- ftl/FTLJSCallVarargs.cpp:
(JSC::FTL::JSCallVarargs::JSCallVarargs):
(JSC::FTL::JSCallVarargs::emit):
- ftl/FTLJSTailCall.cpp: Added.
(JSC::FTL::getRegisterWithAddend):
(JSC::FTL::recoveryFor):
(JSC::FTL::sizeFor):
(JSC::FTL::JSTailCall::JSTailCall):
(JSC::FTL::m_instructionOffset):
(JSC::FTL::JSTailCall::emit):
- ftl/FTLJSTailCall.h: Copied from Source/JavaScriptCore/ftl/FTLJSCallBase.h.
(JSC::FTL::JSTailCall::stackmapID):
(JSC::FTL::JSTailCall::estimatedSize):
(JSC::FTL::JSTailCall::numArguments):
(JSC::FTL::JSTailCall::operator<):
- ftl/FTLLocation.h:
(JSC::FTL::Location::operator bool):
(JSC::FTL::Location::operator!):
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::lower):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileTailCall):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToLLVM::callPreflight):
(JSC::FTL::DFG::LowerDFGToLLVM::exitValueForTailCall):
- ftl/FTLState.h:
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::emitExceptionCheck):
- jit/CallFrameShuffleData.h:
- jit/CallFrameShuffler.cpp:
(JSC::CallFrameShuffler::CallFrameShuffler):
(JSC::CallFrameShuffler::dump):
(JSC::CallFrameShuffler::spill):
(JSC::CallFrameShuffler::extendFrameIfNeeded):
(JSC::CallFrameShuffler::prepareForSlowPath):
(JSC::CallFrameShuffler::prepareAny):
- jit/CallFrameShuffler.h:
(JSC::CallFrameShuffler::restoreGPR):
(JSC::CallFrameShuffler::getFreeRegister):
(JSC::CallFrameShuffler::getFreeTempGPR):
(JSC::CallFrameShuffler::ensureTempGPR):
(JSC::CallFrameShuffler::addNew):
- jit/CallFrameShuffler64.cpp:
(JSC::CallFrameShuffler::emitBox):
(JSC::CallFrameShuffler::tryAcquireTagTypeNumber):
- jit/JITCall.cpp:
(JSC::JIT::compileOpCall):
- jit/Reg.h:
(JSC::Reg::Reg):
(JSC::Reg::isHashTableDeletedValue):
(JSC::Reg::deleted):
(JSC::RegHash::hash):
(JSC::RegHash::equal):
- test/es6.yaml:
LayoutTests:
Reviewed by Filip Pizlo.
Added one new tail call test and enabled other tail call tests.
- js/caller-property-expected.txt:
- js/script-tests/caller-property.js:
(string_appeared_here.nonStrictCallee):
(strictCallee):
(nonStrictCaller):
(strictCaller):
(strictTailCaller):
(getFooGetter):
- 3:11 PM Changeset in webkit [190288] by
-
- 4 edits2 adds in trunk
relatedNode should be retargeted respecting slots
https://bugs.webkit.org/show_bug.cgi?id=149591
Reviewed by Antti Koivisto.
Source/WebCore:
This patch retargets relatedNode with respect to shadow boundaries after r190214 as specified in
https://w3c.github.io/webcomponents/spec/shadow/#retargeting-relatedtarget
Naively implementing the spec'ed behavior can result in O(n2) behavior since we need to find the common tree scope
ancestor for each target in the event path. This patch avoids this by implementing an O(1) incremental update step
for when target's tree scope changes in the event path. See the description for moveToNewTreeScope below.
Test: fast/shadow-dom/event-with-related-target.html
- dom/EventContext.h: Replaced toMouseOrFocusEventContext by downcast<MouseOrFocusEventContext>.
- dom/EventDispatcher.cpp:
(WebCore::EventRelatedNodeResolver): Removed the code for relatedNode. This class is now only used for touch events.
(WebCore::EventPath): Added m_event as a member variable.
(WebCore::RelatedNodeRetargeter): Added.
(WebCore::RelatedNodeRetargeter::RelatedNodeRetargeter): Does the initial retargeting of relatedNode. When the
tree scope of relatedNode and the target are the same, we immediately exit without collecting ancestor tree scopes
of relatedNode as an optimization. We also special case when the relatedNode and the target are in two different
documents (relatedNode should be nullptr) and when one is in document and the other one is not in the document
(relatedNode should be the host of the outermost shadow root). Otherwise we have to do the real work by collecting
all tree scope ancestors and walking downwards from the document tree scope (note target and relatedNode share the
same document scope here since we would have exited early otherwise).
(WebCore::RelatedNodeRetargeter::currentNode): Returned relatedNode retargeted for the current tree scope.
(WebCore::RelatedNodeRetargeter::moveToNewTreeScope): Moves to a new tree scope. If the original target and
relatedNode were in different trees, there is nothing to be done. Note that we can only move out of a shadow root
to its host or move into a slot so newTreeScope (current target's tree scope) and previousTreeScope (previous
target's tree scope) must have a child-parent relationship.
If previousTreeScope did not contain the retargeted relatedNode, then neither can its child shadow trees. Thus,
there is nothing to be done when moving into a slot in this case. If we're moving out of previousTreeScope, then
newTreeScope may contain the retargeted relatedNode but that still doesn't require any work. So we exit early in
both cases.
Otherwise (previousTreeScope contained retargeted relatedNode), if we're moving out of a child shadow root
(previousTreeScope) then relatedNode should also move to previousTreeScope's shadow host since previousTreeScope
is a direct-child shadow tree of newTreeScope and previousTreeScope's shadow host resides in newTreeScope.
If we're moving into a child shadow root via a slot, then there are three possibilities: relatedNode is in
previousTreeScope, newTreeScope and its child shadow trees, or newTreeScope's sibling tree scopes and its children.
If it is in previousTreeScope (m_lowestCommonAncestorIndex is zero) or in newTreeScope's sibling, then
previousTreeScope is the lowest common tree scope ancestor so there is nothing to be done. If relatedNode is in
newTreeScope, then the retargeted relatedNode is either the shadow host of the shadow tree that contains
relatedNode or relatedNode itself.
(WebCore::RelatedNodeRetargeter::checkConsistency): Finds the retargeted relatedNode in the simplest way to verify
the correctness of the algorithm. We can disable this consistency check if it slows down debug builds too much.
(WebCore::RelatedNodeRetargeter::nodeInLowestCommonAncestor): Finds the
(WebCore::RelatedNodeRetargeter::collectTreeScopes):
(WebCore::EventPath::setRelatedTarget): Rewritten using RelatedNodeRetargeter.
LayoutTests:
Added a new testharness.js test for retargeting relatedNode.
- fast/shadow-dom/event-with-related-target.html: Added.
- 3:08 PM Changeset in webkit [190287] by
-
- 6 edits in trunk
Build WK1 with CMake on Mac
https://bugs.webkit.org/show_bug.cgi?id=149604
Patch by Alex Christensen <achristensen@webkit.org> on 2015-09-28
Reviewed by Chris Dumez.
.:
- Source/cmake/OptionsMac.cmake:
- Source/cmake/WebKitMacros.cmake:
ObjC bindings now have their own list of IDL files, but some of them still don't generate a .mm file.
Source/WebCore:
- CMakeLists.txt:
- PlatformMac.cmake:
Make a list of IDL files for the ObjC bindings.
- 3:03 PM Changeset in webkit [190286] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Hitting ESC while editing element tag name leaves element in bad state
https://bugs.webkit.org/show_bug.cgi?id=149506
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-09-28
Reviewed by Timothy Hatcher.
- UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._startEditingTagName.editingCancelled):
(WebInspector.DOMTreeElement.prototype._startEditingTagName):
When cancelling editing of a tag name, revert any changes we had
been making to the closing tag name.
- 2:44 PM Changeset in webkit [190285] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: search shortcut in split console moves focus to search box, but doesn't show caret
https://bugs.webkit.org/show_bug.cgi?id=149223
Patch by João Oliveira <hello@jxs.pt> on 2015-09-28
Reviewed by Timothy Hatcher.
When pressing console find shortcut (CMD+F) SearchBar now checks if there's text on _searchInput
if so text is selected, if the textbox is empty, textbox gains focus.
- UserInterface/Views/SearchBar.js:
(WebInspector.SearchBar.prototype.focus):
- 2:44 PM Changeset in webkit [190284] by
-
- 3 edits in trunk/Source/WebKit2
Heavy taps on links are sometimes interpreted as the preview gesture
https://bugs.webkit.org/show_bug.cgi?id=149304
-and corresponding-
rdar://problem/22689258
Rubber-stamped by Tim Horton.
Rolling out this patch. We should try to fix this at the UIKit-level.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]):
(-[WKContentView _interactionStoppedFromPreviewItemController:]):
- 12:08 PM Changeset in webkit [190283] by
-
- 2 edits in trunk/Source/JavaScriptCore
ObjectPropertyConditionSet::mergedWith does not produce a minimal intersection.
https://bugs.webkit.org/show_bug.cgi?id=149598
Reviewed by Michael Saboff.
mergedWith sometimes creates duplicates of an ObjectPropertyCondition, which causes GetByIdVariant
in believe that the condition has more than one slotBaseCondition when only one was necessary.
- bytecode/ObjectPropertyConditionSet.cpp:
(JSC::ObjectPropertyConditionSet::mergedWith):
- 11:57 AM Changeset in webkit [190282] by
-
- 3 edits in trunk/LayoutTests
js/regress/getter-richards-try-catch is timing out on debug layout tests
https://bugs.webkit.org/show_bug.cgi?id=149599
Reviewed by Alexey Proskuryakov.
- js/regress/script-tests/getter-richards-try-catch.js:
(Packet.prototype.toString):
- platform/mac/TestExpectations:
- 11:26 AM Changeset in webkit [190281] by
-
- 43 edits1 delete in trunk
Drop support for legacy EventException
https://bugs.webkit.org/show_bug.cgi?id=149597
<rdar://problem/22879795>
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Rebaseline W3C DOM test now that a new check is passing.
- web-platform-tests/dom/historical-expected.txt:
Source/WebCore:
Drop support for legacy EventException. Both Firefox and Chrome do not
support it, and our implementation no longer throws such exceptions.
No new tests, already covered by existing test.
- CMakeLists.txt:
- DerivedSources.cpp:
- DerivedSources.make:
- Modules/indexeddb/legacy/LegacyRequest.cpp:
- Modules/indexeddb/legacy/LegacyTransaction.cpp:
- Modules/websockets/WebSocket.cpp:
- WebCore.vcxproj/WebCore.vcxproj:
- WebCore.vcxproj/WebCore.vcxproj.filters:
- WebCore.xcodeproj/project.pbxproj:
- bindings/gobject/WebKitDOMPrivate.cpp:
- bindings/js/JSExceptionBase.cpp:
(WebCore::toExceptionBase): Deleted.
- dom/DOMAllInOne.cpp:
- dom/DOMExceptions.in:
- dom/EventException.cpp: Removed.
- dom/EventException.h:
(WebCore::EventException::EventException): Deleted.
- dom/EventException.idl:
- dom/EventListenerMap.cpp:
- dom/EventTarget.cpp:
- dom/MessagePort.cpp:
- dom/Node.cpp:
- loader/appcache/DOMApplicationCache.cpp:
- page/DOMWindow.cpp:
- page/EventSource.cpp:
- page/PerformanceUserTiming.h:
- workers/AbstractWorker.cpp:
- workers/Worker.cpp:
- workers/WorkerGlobalScope.cpp:
- xml/XMLHttpRequest.cpp:
- xml/XMLHttpRequestUpload.cpp:
LayoutTests:
Update / rebaseline several tests now that we no longer expose
EventException on the global Window object.
- fast/dom/Window/resources/window-properties.js:
- fast/dom/Window/window-lookup-precedence-expected.txt:
- js/dom/global-constructors-attributes-expected.txt:
- platform/efl/js/dom/global-constructors-attributes-expected.txt:
- platform/gtk/fast/dom/Window/window-lookup-precedence-expected.txt:
- platform/gtk/js/dom/global-constructors-attributes-expected.txt:
- platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
- platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
- platform/mac/fast/dom/Window/window-lookup-precedence-expected.txt:
- platform/mac/js/dom/global-constructors-attributes-expected.txt:
- platform/win/js/dom/global-constructors-attributes-expected.txt:
- 10:43 AM Changeset in webkit [190280] by
-
- 27 edits2 adds in trunk
Object.getOwnPropertyNames() does not return named properties
https://bugs.webkit.org/show_bug.cgi?id=149562
<rdar://problem/22879779>
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline existing W3C tests now that Object.getOwnPropertyNames()
returns named properties for HTMLCollection. We unfortunately still
don't pass those because 'length' / 'constructor' properties are
currently on the instance and they should be on the prototype.
- web-platform-tests/dom/collections/HTMLCollection-supported-property-names-expected.txt:
- web-platform-tests/dom/nodes/Document-getElementsByTagName-expected.txt:
- web-platform-tests/dom/nodes/Element-getElementsByTagName-expected.txt:
- web-platform-tests/html/dom/documents/dom-tree-accessors/document.forms-expected.txt:
Source/WebCore:
Previously, Object.getOwnPropertyNames() did not return named properties
for interfaces with named property getters. This patch adds support for
this in the JS bindings generator and uses it for HTMLCollection only
for now. Other interfaces will be taken care of independently.
Note that currently, even though the named properties are returned by
Object.getOwnPropertyNames(), these properties are still not enumerated.
This is because these are always unenumerable for existing DOM interfaces:
In the future, we may need to extend support if some interfaces require
those to be enumerable.
Test: fast/dom/htmlcollection-getownpropertynames.html
- Modules/mediastream/RTCStatsResponse.cpp:
(WebCore::WebCore::RTCStatsResponse::supportedPropertyNames):
- Modules/mediastream/RTCStatsResponse.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
- css/StyleSheetList.cpp:
(WebCore::StyleSheetList::supportedPropertyNames):
- css/StyleSheetList.h:
- dom/DOMNamedFlowCollection.cpp:
(WebCore::DOMNamedFlowCollection::supportedPropertyNames):
- dom/DOMNamedFlowCollection.h:
- dom/NamedNodeMap.cpp:
(WebCore::NamedNodeMap::supportedPropertyNames):
- dom/NamedNodeMap.h:
- html/HTMLCollection.cpp:
(WebCore::HTMLCollection::supportedPropertyNames):
- html/HTMLCollection.h:
(WebCore::CollectionNamedElementCache::propertyNames):
(WebCore::CollectionNamedElementCache::appendToIdCache):
(WebCore::CollectionNamedElementCache::appendToNameCache):
(WebCore::CollectionNamedElementCache::memoryCost):
(WebCore::CollectionNamedElementCache::append):
- plugins/DOMMimeTypeArray.cpp:
(WebCore::DOMMimeTypeArray::supportedPropertyNames):
- plugins/DOMMimeTypeArray.h:
- plugins/DOMPlugin.cpp:
(WebCore::DOMPlugin::supportedPropertyNames):
- plugins/DOMPlugin.h:
- plugins/DOMPluginArray.cpp:
(WebCore::DOMPluginArray::supportedPropertyNames):
- plugins/DOMPluginArray.h:
LayoutTests:
Add layout test that verifies that Object.getOwnPropertyNames() returns
an HTMLCollection's named properties, in addition to its indexes. It
also checks that they are not enumerable, as per the DOM specification.
- fast/dom/htmlcollection-getownpropertynames-expected.txt: Added.
- fast/dom/htmlcollection-getownpropertynames.html: Added.
- 10:33 AM Changeset in webkit [190279] by
-
- 2 edits in trunk/Source/WebCore
[Curl] Deadlock when downloading.
https://bugs.webkit.org/show_bug.cgi?id=149596
Reviewed by Alex Christensen.
Avoid grabbing the same lock twice.
- platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::init):
(WebCore::CurlDownload::addHeaders):
- 6:53 AM Changeset in webkit [190278] by
-
- 8 edits in trunk/Source/WebKit2
Expose a WKWebView API for allowing programmatic focus to trigger node assistance
https://bugs.webkit.org/show_bug.cgi?id=149567
Reviewed by Darin Adler.
Adds an API method to WKWebView that allows clients to override the default iOS behavior of not
starting node assistance when programmatically focusing. Also fixes a bug caused by naively
introducing the flag where the autofocus attribute could trigger node assistance before layout
occurs, causing an ASSERT to fail in EditorState::postLayoutData.
I fixed this issue by not assisting the node if the editor state is missing post layout data,
instead deferring node assistance until layout has occurred.
- UIProcess/API/Cocoa/WKWebView.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]): Initializes the new node assistance flag to NO, which
is the current default behavior.
(-[WKWebView canAssistOnProgrammaticFocus]):
(-[WKWebView setCanAssistOnProgrammaticFocus:]): New API method that allows clients to set node
assistance behavior upon programmatic focus.
- UIProcess/API/Cocoa/WKWebViewConfiguration.h:
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]): Added new node assistance flag to configuration.
(-[WKWebViewConfiguration _canAssistOnProgrammaticFocus]):
(-[WKWebViewConfiguration _setCanAssistOnProgrammaticFocus:]):
- UIProcess/WebPageProxy.h: Added NodeAssistanceArguments struct.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]): Do not return
early if the node assistance flag is set to allow programmatic focus.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didCommitLayerTree): After committing the layer tree, if we have deferred
starting node assistance, immediately trigger node assistance.
(WebKit::WebPageProxy::startAssistingNode): Defer starting node assistance if we have not yet repainted.
(WebKit::WebPageProxy::stopAssistingNode): Also cancel any deferred node assistance.
- 2:19 AM Changeset in webkit [190277] by
-
- 2 edits in trunk/Tools
Add bugzilla addresses of committers to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=149520
Reviewed by Darin Adler.
- Scripts/webkitpy/common/config/contributors.json:
- 2:15 AM Changeset in webkit [190276] by
-
- 3 edits in trunk/Tools
validate-committer-lists -b shouldn't need edituser privileges
https://bugs.webkit.org/show_bug.cgi?id=149519
Reviewed by Darin Adler.
- Scripts/validate-committer-lists:
(CommitterListBugzillaChecker._has_invalid_bugzilla_email):
- Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
(BugzillaQueries.is_invalid_bugzilla_email):
(BugzillaQueries): Deleted.
(BugzillaQueries.fetch_logins_matching_substring): Deleted.
- 12:49 AM Changeset in webkit [190275] by
-
- 2 edits in trunk/LayoutTests
Update bug numbers for failing test expectations in fast/shadow-dom.
- platform/mac/TestExpectations:
- 12:43 AM Changeset in webkit [190274] by
-
- 3 edits2 adds in trunk
Source/WebCore:
An SVG inherits the container size of the previously drawn HTMLImageElement when drawing it on a canvas
https://bugs.webkit.org/show_bug.cgi?id=148845
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-09-28
Reviewed by Darin Adler.
When drawing an SVG image on a canvas we need to make sure that the container
size of the SVG is set to the image source size. If we do not do that, the
previous container size will be used as the size of the image. When drawing
it as HTMLImageElement, the renderer calls SVGImage::drawForContainer() which
calls setContainerSize() and then calls draw(). This call ensures that the
size is set correctly for cached images. But when drawing the SVGImage on
CanvasRenderingContext2D, the SVGImage::draw() is called directly because
it calls it through the base class method Image::draw().
If the image.isSVGImage(), CanvasRenderingContext2D::drawImage() has to call
SVGImage::setContainerSize() before calling Image::draw().
Test: svg/as-image/svg-cached-draw-canvas.html
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):
Call SVGImage::setContainerSize() before calling Image::draw().
LayoutTests:
An SVG inherits the container size of the previously drawn HTMLImageElement when drawing it on canvas
https://bugs.webkit.org/show_bug.cgi?id=148845
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-09-28
Reviewed by Darin Adler.
Ensure that an SVG image with intrinsic size or with no intrinsic size can be
displayed on a canvas even if it is previously displayed by an HTMLImageElement.
- svg/as-image/svg-cached-draw-canvas-expected.html: Added.
- svg/as-image/svg-cached-draw-canvas.html: Added.
Sep 27, 2015:
- 8:43 PM Changeset in webkit [190273] by
-
- 2 edits in trunk/Source/WebCore
Rename all the variables and parameters of type HTMLImageElement in CanvasRenderingContext2D.cpp from 'image' to 'imageElement'
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-09-27
Reviewed by Darin Adler.
This does not change functionality in this file. It is a preparation for
the fix of the https://bugs.webkit.org/show_bug.cgi?id=148845.
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::size):
(WebCore::normalizeRect):
(WebCore::CanvasRenderingContext2D::drawImageFromRect):
(WebCore::CanvasRenderingContext2D::setAlpha):
(WebCore::CanvasRenderingContext2D::createRadialGradient):
(WebCore::CanvasRenderingContext2D::createPattern):
(WebCore::CanvasRenderingContext2D::drawImage):
- 3:24 PM Changeset in webkit [190272] by
-
- 10 edits6 adds in trunk/Source/WebCore
[ES6] Implement ES6 Module loader hook stubs in WebCore
https://bugs.webkit.org/show_bug.cgi?id=149574
Reviewed by Ryosuke Niwa.
In this patch, we implement the loader hooks in the WebCore side.
Since the fetcher and actual evaluation code are separated from
this patch, they become empty.
Here, WebCore implements 3 loader hooks.
- resolve hook
Takes the module name and resolve it to the unique module key.
In WebCore, we use URL as a module key.
And for the inlined module tag (e.g. <script type="module">import ...</script>),
we use the ES6 symbol as a module key.
In WebCore, we take the module name like "./hello.js" and resolve it by using
the URL of the importer module.
This functionality is implemented in this patch.
- fetch hook
Fetches the resource specified by the module key. In WebCore, the module key is
URL. We use CachedResource loading system to load the resource of the modules.
The actual code of the fetch hook will be implemented in the subsequent patch.
- evaluate hook
This is additional hook to instrument the module's execution for the inspector.
The actual code of the evaluate hook will be implemented in the subsequent patch.
In addition to that, we added required JSC forward headers for the module loader
implementation.
- CMakeLists.txt:
- ForwardingHeaders/runtime/JSInternalPromise.h: Added.
- ForwardingHeaders/runtime/JSInternalPromiseDeferred.h: Added.
- ForwardingHeaders/runtime/JSModuleRecord.h: Added.
- ForwardingHeaders/runtime/Symbol.h: Added.
- WebCore.vcxproj/WebCore.vcxproj:
- WebCore.vcxproj/WebCore.vcxproj.filters:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSBindingsAllInOne.cpp:
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::moduleLoaderResolve):
(WebCore::JSDOMWindowBase::moduleLoaderFetch):
(WebCore::JSDOMWindowBase::moduleLoaderEvaluate):
- bindings/js/JSDOMWindowBase.h:
- bindings/js/JSModuleLoader.cpp: Added.
(WebCore::JSModuleLoader::JSModuleLoader):
(WebCore::JSModuleLoader::resolve):
(WebCore::JSModuleLoader::fetch):
(WebCore::JSModuleLoader::evaluate):
- bindings/js/JSModuleLoader.h: Added.
(WebCore::JSModuleLoader::document):
- dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::~Document):
- dom/Document.h:
(WebCore::Document::moduleLoader):