Timeline



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?id=151678

Reviewed by Geoffrey Garen.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileArithSub):

  • ftl/FTLCompile.cpp:
  • jit/JITAddGenerator.cpp:

(JSC::JITAddGenerator::generateFastPath):

  • jit/JITAddGenerator.h:

(JSC::JITAddGenerator::JITAddGenerator):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_add):
(JSC::JIT::emit_op_mul):
(JSC::JIT::emit_op_sub):

  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateFastPath):

  • jit/JITMulGenerator.h:

(JSC::JITMulGenerator::JITMulGenerator):

  • jit/JITSubGenerator.cpp:

(JSC::JITSubGenerator::generateFastPath):

  • jit/JITSubGenerator.h:

(JSC::JITSubGenerator::JITSubGenerator):

  • jit/SnippetOperand.h:

(JSC::SnippetOperand::isPositiveConstInt32):

4:04 PM Changeset in webkit [192841] by fpizlo@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

B3 stackmaps should support early clobber
https://bugs.webkit.org/show_bug.cgi?id=151668

Reviewed by Geoffrey Garen.

While starting work on FTL lazy slow paths, I realized that we needed some way to say that r11 is
off limits. Not just that it's clobbered, but that it cannot be used for any input values to a
stackmap.

In LLVM we do this by having the AnyRegCC forbid r11.

In B3, we want something more flexible. In this and other cases, what we really want is an early
clobber set. B3 already supported a late clobber set for every stackmap value. Late clobber means
that the act of performing the operation will cause garbage to be written into those registers.
But here we want: assume that garbage magically appears in those registers in the moment before
the operation executes. Any registers in that set will be off-limits to the inputs to the
stackmap. This should be great for other things, like the way the we handle exceptions.

For the simple r11 issue, what we want is to call the StackmapValue::clobber() method, which now
means both early and late clobber. It's the weapon of choice whenever you're unsure.

This adds the early clobber feature, does some minor Inst refactoring to make this less scary,
and adds a test. The test is simple but it's very comprehensive - for example it tests the
early-clobber-after-Move special case.

  • b3/B3StackmapSpecial.cpp:

(JSC::B3::StackmapSpecial::extraClobberedRegs):
(JSC::B3::StackmapSpecial::extraEarlyClobberedRegs):
(JSC::B3::StackmapSpecial::forEachArgImpl):

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

(JSC::B3::StackmapValue::dumpMeta):
(JSC::B3::StackmapValue::StackmapValue):

  • b3/B3StackmapValue.h:
  • b3/air/AirCCallSpecial.cpp:

(JSC::B3::Air::CCallSpecial::extraClobberedRegs):
(JSC::B3::Air::CCallSpecial::extraEarlyClobberedRegs):
(JSC::B3::Air::CCallSpecial::dumpImpl):

  • b3/air/AirCCallSpecial.h:
  • b3/air/AirInst.h:
  • b3/air/AirInstInlines.h:

(JSC::B3::Air::Inst::extraClobberedRegs):
(JSC::B3::Air::Inst::extraEarlyClobberedRegs):
(JSC::B3::Air::Inst::forEachTmpWithExtraClobberedRegs):
(JSC::B3::Air::Inst::reportUsedRegisters):
(JSC::B3::Air::Inst::forEachDefAndExtraClobberedTmp): Deleted.

  • b3/air/AirIteratedRegisterCoalescing.cpp:

(JSC::B3::Air::IteratedRegisterCoalescingAllocator::IteratedRegisterCoalescingAllocator):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::build):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::allocate):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::initializeDegrees):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::addEdges):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::addEdge):
(JSC::B3::Air::iteratedRegisterCoalescingOnType):
(JSC::B3::Air::iteratedRegisterCoalescing):

  • b3/air/AirSpecial.h:
  • b3/air/AirSpillEverything.cpp:

(JSC::B3::Air::spillEverything):

  • b3/testb3.cpp:

(JSC::B3::testSimplePatchpointWithoutOuputClobbersGPArgs):
(JSC::B3::testSimplePatchpointWithOuputClobbersGPArgs):
(JSC::B3::testSimplePatchpointWithoutOuputClobbersFPArgs):
(JSC::B3::testSimplePatchpointWithOuputClobbersFPArgs):
(JSC::B3::testPatchpointWithEarlyClobber):
(JSC::B3::testPatchpointCallArg):
(JSC::B3::run):

  • dfg/DFGCommon.h:
4:03 PM Changeset in webkit [192840] by dburkart@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Remove Mountain Lion support from ANGLE
https://bugs.webkit.org/show_bug.cgi?id=151679

Reviewed by Darin Adler.

  • Configurations/Base.xcconfig:
3:57 PM Changeset in webkit [192839] by Darin Adler
  • 18 edits in trunk/Source/WebCore

Use Optional instead of isNull out argument for nullable getters
https://bugs.webkit.org/show_bug.cgi?id=151676

Reviewed by Anders Carlsson.

No behavior change, just cleaner code.

  • Modules/geolocation/Coordinates.cpp:

(WebCore::Coordinates::altitude): Return an Optional.
(WebCore::Coordinates::altitudeAccuracy): Ditto.
(WebCore::Coordinates::heading): Ditto.
(WebCore::Coordinates::speed): Ditto.

  • Modules/geolocation/Coordinates.h: Ditto.
  • Modules/indexeddb/IDBVersionChangeEvent.cpp:

(WebCore::IDBVersionChangeEvent::create): Added. The code before was calling
through to Event::create, which is clearly not what was wanted. Also removed
unneeded explicit destructor.

  • Modules/indexeddb/IDBVersionChangeEvent.h: Changed return type of newVersion

to Optional and updated for above change.

  • Modules/indexeddb/client/IDBVersionChangeEventImpl.cpp:

(WebCore::IDBClient::IDBVersionChangeEvent::newVersion): Changed to return
an Optional.

  • Modules/indexeddb/client/IDBVersionChangeEventImpl.h: Removed unused

default argument values; the event type one, at least, was clearly incorrect.
Made more things private, got rid of unneeded destructor, marked class final
instead of marking all functions final.

  • Modules/indexeddb/legacy/LegacyVersionChangeEvent.cpp:

(WebCore::LegacyVersionChangeEvent::newVersion): Same as above.

  • Modules/indexeddb/legacy/LegacyVersionChangeEvent.h: Ditto.
  • Modules/mediastream/MediaTrackConstraints.cpp:

(WebCore::MediaTrackConstraints::optional): Removed bogus bool value. If we
come back to finish later we will have to implement optional return values
for arrays in the JavaScript bindings generator, which should be straightforward.

  • Modules/mediastream/MediaTrackConstraints.h: Ditto.
  • bindings/js/JSDOMBinding.h:

(WebCore::toNullableJSNumber): Added. This function template is used for
return values that are nullable numbers.

  • bindings/scripts/CodeGeneratorGObject.pm:

(GenerateFunction): Replaced some existing bogus code to handle nullables with
new equally-bogus code that should be no worse and will compile.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation): Removed old support for nullables.
(NativeToJSValue): Added new support for nullable numbers.

  • bindings/scripts/CodeGeneratorObjC.pm:

(GenerateImplementation): Removed support for nullables. We almost certainly
won't need it for Objective-C bindings.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Updated.
  • bindings/scripts/test/JS/JSTestObj.cpp: Updated.
  • bindings/scripts/test/ObjC/DOMTestObj.mm: Updated.
3:48 PM Changeset in webkit [192838] by Wenson Hsieh
  • 7 edits
    4 adds in trunk/Source/WebCore

Split platform-independent logic in AVCaptureDeviceManager out into a new class
https://bugs.webkit.org/show_bug.cgi?id=151388
<rdar://problem/23593980>

Reviewed by Eric Carlson.

To prepare for creating a MockCaptureDeviceManager to be able to test
MediaDevices.getUserMedia, we create a platform-independent capture device manager
which all platforms should extend and add platform-specific logic to.

The methods CaptureDeviceManager::createMediaSourceForCaptureDeviceWithConstraints and
CaptureDeviceManager::captureDeviceList should be overridden by each platform
CaptureDeviceManager to respectively create a RealtimeMediaSource and return a list of
capture devices. createMediaSourceForCaptureDeviceWithConstraints attempts to create
a media source for a given device with some constraints; if the contraints cannot be
satisfied, this returns null.

The refactored capture device manager also introduces the notion of a platform-
independent capture session which may be extended by platform device managers for
determining whether a given constraint name, value and media type is valid.

A platform-independent CaptureDeviceInfo now represents either the video or audio
component of a capture device, but not both at once. This means a capture device that
supports both video and audio will emit two separate capture devices.

No new tests, since there should be no behavior change.

  • Modules/mediastream/CaptureDeviceInfo.h: Added.

(WebCore::CaptureSessionInfo::~CaptureSessionInfo):
(WebCore::CaptureSessionInfo::supportsVideoSize):
(WebCore::CaptureSessionInfo::bestSessionPresetForVideoDimensions):

  • Modules/mediastream/CaptureDeviceManager.cpp: Added.

(CaptureDeviceManager::~CaptureDeviceManager):
(CaptureDeviceManager::getSourcesInfo):
(CaptureDeviceManager::captureDeviceFromDeviceID):
(CaptureDeviceManager::verifyConstraintsForMediaType):
(CaptureDeviceManager::bestSourcesForTypeAndConstraints):
(CaptureDeviceManager::sourceWithUID):
(CaptureDeviceManager::bestDeviceForFacingMode):
(facingModeFromString):
(CaptureDeviceManager::sessionSupportsConstraint):
(CaptureDeviceManager::isSupportedFrameRate):

  • Modules/mediastream/CaptureDeviceManager.h: Added.

(WebCore::CaptureDeviceManager::refreshCaptureDeviceList):
(WebCore::CaptureDeviceManager::defaultCaptureSession):

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/RealtimeMediaSourceSupportedConstraints.cpp: Added.

(WebCore::RealtimeMediaSourceSupportedConstraints::nameForConstraint):
(WebCore::RealtimeMediaSourceSupportedConstraints::constraintFromName):
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsConstraint):

  • platform/mediastream/RealtimeMediaSourceSupportedConstraints.h:
  • platform/mediastream/mac/AVCaptureDeviceManager.h:
  • platform/mediastream/mac/AVCaptureDeviceManager.mm:

(WebCore::AVCaptureSessionInfo::AVCaptureSessionInfo):
(WebCore::AVCaptureSessionInfo::supportsVideoSize):
(WebCore::AVCaptureSessionInfo::bestSessionPresetForVideoDimensions):
(WebCore::AVCaptureDeviceManager::captureDeviceList):
(WebCore::shouldConsiderDeviceInDeviceList):
(WebCore::AVCaptureDeviceManager::refreshCaptureDeviceList):
(WebCore::AVCaptureDeviceManager::AVCaptureDeviceManager):
(WebCore::AVCaptureDeviceManager::bestSourcesForTypeAndConstraints):
(WebCore::AVCaptureDeviceManager::sourceWithUID):
(WebCore::AVCaptureDeviceManager::getSourcesInfo):
(WebCore::AVCaptureDeviceManager::verifyConstraintsForMediaType):
(WebCore::AVCaptureDeviceManager::defaultCaptureSession):
(WebCore::AVCaptureDeviceManager::sessionSupportsConstraint):
(WebCore::AVCaptureDeviceManager::createMediaSourceForCaptureDeviceWithConstraints):
(WebCore::AVCaptureDeviceManager::deviceDisconnected):
(WebCore::AVCaptureDeviceManager::isSupportedFrameRate):
(WebCore::CaptureDevice:::m_enabled): Deleted.
(WebCore::captureDeviceList): Deleted.
(WebCore::captureDeviceFromDeviceID): Deleted.
(WebCore::refreshCaptureDeviceList): Deleted.
(WebCore::AVCaptureDeviceManager::bestSessionPresetForVideoSize): Deleted.
(WebCore::AVCaptureDeviceManager::deviceSupportsFacingMode): Deleted.
(WebCore::AVCaptureDeviceManager::bestDeviceForFacingMode): Deleted.
(WebCore::AVCaptureDeviceManager::isValidConstraint): Deleted.
(WebCore::AVCaptureDeviceManager::validConstraintNames): Deleted.
(WebCore::AVCaptureDeviceManager::validFacingModes): Deleted.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::applyConstraints):

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

(WebCore::RealtimeMediaSourceCenterMac::validateRequestConstraints):
(WebCore::RealtimeMediaSourceCenterMac::createMediaStream):

3:27 PM Changeset in webkit [192837] by BJ Burg
  • 3 edits
    2 adds in trunk/Source/WebInspectorUI

Web Inspector: show something useful when the inspector frontend fails to load
https://bugs.webkit.org/show_bug.cgi?id=151643

Reviewed by Timothy Hatcher.

When a parse error or other early error happens before the inspector
is fully loaded, we can't use the second-level inspector to tell what's
going on. It would be better to catch any early errors and list them.

This patch adds an error page that shows the early errors that happened
during loading. It provides a list of errors, a link to reload the
inspector, and a link to submit a pre-filled bug report about the error.

For now, this page only shows up in engineering builds because it's
located in the Debug/ directory. We can move it later when it works
better in all cases. Follow-up patches can address smaller issues,
such as the transparent title bar and broken text selection.

  • UserInterface/Debug/CatchEarlyErrors.css: Added.
  • UserInterface/Debug/CatchEarlyErrors.js: Added.
  • UserInterface/Main.html:
  • UserInterface/Main.js: Abort setting up the UI if something happened.
3:13 PM Changeset in webkit [192836] by mark.lam@apple.com
  • 10 edits
    3 adds in trunk/Source/JavaScriptCore

Snippefy op_div for the baseline JIT.
https://bugs.webkit.org/show_bug.cgi?id=151607

Reviewed by Geoffrey Garen.

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

(JSC::JIT::emit_op_div):
(JSC::JIT::emitSlow_op_div):
(JSC::JIT::compileBinaryArithOpSlowCase): Deleted.

  • jit/JITArithmetic32_64.cpp:

(JSC::JIT::emitBinaryDoubleOp):
(JSC::JIT::emit_op_div): Deleted.
(JSC::JIT::emitSlow_op_div): Deleted.

  • Removed the 32-bit specific op_div implementation. The 64-bit version with the op_div snippet can now service both 32-bit and 64-bit.


  • jit/JITDivGenerator.cpp: Added.

(JSC::JITDivGenerator::loadOperand):
(JSC::JITDivGenerator::generateFastPath):

  • jit/JITDivGenerator.h: Added.

(JSC::JITDivGenerator::JITDivGenerator):
(JSC::JITDivGenerator::didEmitFastPath):
(JSC::JITDivGenerator::endJumpList):
(JSC::JITDivGenerator::slowPathJumpList):

  • jit/JITInlines.h:

(JSC::JIT::getOperandConstantDouble): Added.

  • jit/SnippetOperand.h: Added.

(JSC::SnippetOperand::SnippetOperand):
(JSC::SnippetOperand::mightBeNumber):
(JSC::SnippetOperand::definitelyIsNumber):
(JSC::SnippetOperand::isConst):
(JSC::SnippetOperand::isConstInt32):
(JSC::SnippetOperand::isConstDouble):
(JSC::SnippetOperand::asRawBits):
(JSC::SnippetOperand::asConstInt32):
(JSC::SnippetOperand::asConstDouble):
(JSC::SnippetOperand::setConstInt32):
(JSC::SnippetOperand::setConstDouble):

  • The SnippetOperand encapsulates operand constness, const type, and profiling information. As a result:
    1. The argument list to the JITDivGenerator constructor is now more concise.
    2. The logic of the JITDivGenerator is now less verbose and easier to express.
  • parser/ResultType.h:

(JSC::ResultType::isInt32):
(JSC::ResultType::definitelyIsNumber):
(JSC::ResultType::definitelyIsString):
(JSC::ResultType::definitelyIsBoolean):
(JSC::ResultType::mightBeNumber):
(JSC::ResultType::isNotNumber):

  • Made these functions const because they were always meant to be const. This also allows me to enforce constness in the SnippetOperand.
3:06 PM Changeset in webkit [192835] by commit-queue@webkit.org
  • 2 edits in trunk/PerformanceTests

Fix the graphics benchmark complexity bounds adjustment
https://bugs.webkit.org/show_bug.cgi?id=151670

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

Make sure the graphics benchmark complexity bounds adjustment is applied
to the absolute lower bound.

  • Animometer/tests/resources/math.js:

(PIDController.prototype._saturate):

3:06 PM Changeset in webkit [192834] by timothy_horton@apple.com
  • 17 edits in trunk/Source

Get rid of the !USE(ASYNC_NSTEXTINPUTCLIENT) codepath
https://bugs.webkit.org/show_bug.cgi?id=151673

Reviewed by Anders Carlsson.

Source/WebKit2:

  • UIProcess/API/Cocoa/WKWebView.mm:
  • UIProcess/API/mac/WKView.mm:
  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::resignFirstResponder): Deleted.
(WebKit::WebViewImpl::interpretKeyEvent): Deleted.
(WebKit::WebViewImpl::executeSavedKeypressCommands): Deleted.
(WebKit::WebViewImpl::doCommandBySelector): Deleted.
(WebKit::WebViewImpl::insertText): Deleted.
(WebKit::WebViewImpl::inputContext): Deleted.
(WebKit::WebViewImpl::selectedRange): Deleted.
(WebKit::WebViewImpl::hasMarkedText): Deleted.
(WebKit::WebViewImpl::unmarkText): Deleted.
(WebKit::WebViewImpl::setMarkedText): Deleted.
(WebKit::WebViewImpl::markedRange): Deleted.
(WebKit::WebViewImpl::attributedSubstringForProposedRange): Deleted.
(WebKit::WebViewImpl::characterIndexForPoint): Deleted.
(WebKit::WebViewImpl::firstRectForCharacterRange): Deleted.
(WebKit::WebViewImpl::performKeyEquivalent): Deleted.
(WebKit::WebViewImpl::keyUp): Deleted.
(WebKit::WebViewImpl::keyDown): Deleted.
(WebKit::WebViewImpl::flagsChanged): Deleted.

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy): Deleted.
(WebKit::WebPageProxy::resetStateAfterProcessExited): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::notifyApplicationAboutInputContextChange): Deleted.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::setComposition): Deleted.
(WebKit::WebPageProxy::confirmComposition): Deleted.
(WebKit::WebPageProxy::insertText): Deleted.
(WebKit::WebPageProxy::insertDictatedText): Deleted.
(WebKit::WebPageProxy::getMarkedRange): Deleted.
(WebKit::WebPageProxy::getSelectedRange): Deleted.
(WebKit::WebPageProxy::getAttributedSubstringFromRange): Deleted.
(WebKit::WebPageProxy::characterIndexForPoint): Deleted.
(WebKit::WebPageProxy::firstRectForCharacterRange): Deleted.
(WebKit::WebPageProxy::executeKeypressCommands): Deleted.
(WebKit::WebPageProxy::cancelComposition): Deleted.
(WebKit::WebPageProxy::editorStateChanged): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didChangeSelection):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::setComposition): Deleted.
(WebKit::WebPage::confirmComposition): Deleted.
(WebKit::WebPage::insertText): Deleted.
(WebKit::WebPage::insertDictatedText): Deleted.
(WebKit::WebPage::getMarkedRange): Deleted.
(WebKit::WebPage::getSelectedRange): Deleted.
(WebKit::WebPage::getAttributedSubstringFromRange): Deleted.
(WebKit::WebPage::characterIndexForPoint): Deleted.
(WebKit::WebPage::firstRectForCharacterRange): Deleted.
(WebKit::WebPage::executeKeypressCommands): Deleted.
(WebKit::WebPage::cancelComposition): Deleted.

Source/WTF:

  • wtf/Platform.h:
3:02 PM Changeset in webkit [192833] by beidson@apple.com
  • 8 edits in trunk

Modern IDB: Set the correct source on the IDBRequest for cursor updates
https://bugs.webkit.org/show_bug.cgi?id=151665

Reviewed by Andy Estes.

Source/WebCore:

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

  • Modules/indexeddb/client/IDBCursorImpl.cpp:

(WebCore::IDBClient::IDBCursor::update):

  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::putForCursorUpdate):
(WebCore::IDBClient::IDBObjectStore::putOrAdd):

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

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

  • Modules/indexeddb/client/IDBRequestImpl.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
2:21 PM Changeset in webkit [192832] by Jon Davis
  • 1 edit
    73 adds in trunk/Websites/webkit.org

Added a new theme and plugins for a redesigned webkit.org.

Reviewed by Timothy Hatcher.

  • apple-touch-icon-precomposed.png: Added.
  • code-style.md: Added.
  • commit-review.md: Added.
  • favicon.png: Added.
  • security-policy.md: Added.
  • tabicon.svg: Added.
  • wp-content: Added.
  • wp-content/index.php: Added.
  • wp-content/maintenance.php: Added.
  • wp-content/plugins: Added.
  • wp-content/plugins/analytics.php: Added.
  • wp-content/plugins/hyperlight: Added.
  • wp-content/plugins/hyperlight/hyperlight: Added.
  • wp-content/plugins/hyperlight/hyperlight.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/hyperlight.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages/apache.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages/blocklist.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages/code.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages/cpp.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages/csharp.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages/css.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages/diff.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages/filetypes: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages/html.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages/ini.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages/iphp.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages/javascript.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages/php.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages/python.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages/syntax.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages/vb.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/languages/xml.php: Added.
  • wp-content/plugins/hyperlight/hyperlight/preg_helper.php: Added.
  • wp-content/plugins/index.php: Added.
  • wp-content/plugins/social-meta.php: Added.
  • wp-content/plugins/table-of-contents.php: Added.
  • wp-content/plugins/visual-preview.php: Added.
  • wp-content/themes: Added.
  • wp-content/themes/index.php: Added.
  • wp-content/themes/webkit: Added.
  • wp-content/themes/webkit/404.php: Added.
  • wp-content/themes/webkit/444.php: Added.
  • wp-content/themes/webkit/footer.php: Added.
  • wp-content/themes/webkit/front-header.php: Added.
  • wp-content/themes/webkit/front-page.php: Added.
  • wp-content/themes/webkit/functions.php: Added.
  • wp-content/themes/webkit/header.php: Added.
  • wp-content/themes/webkit/images: Added.
  • wp-content/themes/webkit/images/download.svg: Added.
  • wp-content/themes/webkit/images/icons.svg: Added.
  • wp-content/themes/webkit/images/inspector.svg: Added.
  • wp-content/themes/webkit/images/menu-down.svg: Added.
  • wp-content/themes/webkit/images/squirrelfish-lives.svg: Added.
  • wp-content/themes/webkit/images/twitter.svg: Added.
  • wp-content/themes/webkit/images/webkit.svg: Added.
  • wp-content/themes/webkit/includes.php: Added.
  • wp-content/themes/webkit/index.php: Added.
  • wp-content/themes/webkit/loop.php: Added.
  • wp-content/themes/webkit/nightly.php: Added.
  • wp-content/themes/webkit/page.php: Added.
  • wp-content/themes/webkit/scripts: Added.
  • wp-content/themes/webkit/scripts/global.js: Added.
  • wp-content/themes/webkit/single.php: Added.
  • wp-content/themes/webkit/sitemap.php: Added.
  • wp-content/themes/webkit/status.php: Added.
  • wp-content/themes/webkit/style.css: Added.
  • wp-content/themes/webkit/team.php: Added.
  • wp-content/themes/webkit/widgets: Added.
  • wp-content/themes/webkit/widgets/icon.php: Added.
  • wp-content/themes/webkit/widgets/page.php: Added.
  • wp-content/themes/webkit/widgets/post.php: Added.
  • wp-content/themes/webkit/widgets/twitter.php: Added.
2:21 PM Changeset in webkit [192831] by Sukolsak Sakshuwong
  • 11 edits in trunk/Source/JavaScriptCore

Fix coding style of Intl code
https://bugs.webkit.org/show_bug.cgi?id=151491

Reviewed by Darin Adler.

This patch does three things:

  1. Rename pointers and references to ExecState from "exec" to "state".
  2. Pass parameters by references instead of pointers if the parameters are required.
  3. Remove the word "get" from the names of functions that don't return values through out arguments.
  • runtime/IntlCollator.cpp:

(JSC::IntlCollatorFuncCompare):

  • runtime/IntlCollatorConstructor.cpp:

(JSC::initializeCollator):
(JSC::constructIntlCollator):
(JSC::callIntlCollator):
(JSC::IntlCollatorConstructor::getOwnPropertySlot):
(JSC::IntlCollatorConstructorFuncSupportedLocalesOf):

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormatFuncFormatDateTime):

  • runtime/IntlDateTimeFormatConstructor.cpp:

(JSC::constructIntlDateTimeFormat):
(JSC::callIntlDateTimeFormat):
(JSC::IntlDateTimeFormatConstructor::getOwnPropertySlot):
(JSC::IntlDateTimeFormatConstructorFuncSupportedLocalesOf):

  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototype::getOwnPropertySlot):
(JSC::IntlDateTimeFormatPrototypeGetterFormat):
(JSC::IntlDateTimeFormatPrototypeFuncResolvedOptions):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormatFuncFormatNumber):

  • runtime/IntlNumberFormatConstructor.cpp:

(JSC::constructIntlNumberFormat):
(JSC::callIntlNumberFormat):
(JSC::IntlNumberFormatConstructor::getOwnPropertySlot):
(JSC::IntlNumberFormatConstructorFuncSupportedLocalesOf):

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototype::getOwnPropertySlot):
(JSC::IntlNumberFormatPrototypeGetterFormat):
(JSC::IntlNumberFormatPrototypeFuncResolvedOptions):

  • runtime/IntlObject.cpp:

(JSC::intlBooleanOption):
(JSC::intlStringOption):
(JSC::privateUseLangTag):
(JSC::canonicalLangTag):
(JSC::grandfatheredLangTag):
(JSC::canonicalizeLanguageTag):
(JSC::canonicalizeLocaleList):
(JSC::lookupSupportedLocales):
(JSC::bestFitSupportedLocales):
(JSC::supportedLocales):
(JSC::getIntlBooleanOption): Deleted.
(JSC::getIntlStringOption): Deleted.
(JSC::getPrivateUseLangTag): Deleted.
(JSC::getCanonicalLangTag): Deleted.
(JSC::getGrandfatheredLangTag): Deleted.

  • runtime/IntlObject.h:
2:19 PM Changeset in webkit [192830] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

Get rid of the legacy TextIndicatorWindow style
https://bugs.webkit.org/show_bug.cgi?id=151674

Reviewed by Anders Carlsson.

  • page/TextIndicator.h:
  • page/mac/TextIndicatorWindow.mm:

(-[WebTextIndicatorView initWithFrame:textIndicator:margin:offset:]): Deleted.

2:17 PM Changeset in webkit [192829] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebKit2

Remove some unused synchronous drawing SPI
https://bugs.webkit.org/show_bug.cgi?id=151672

Reviewed by Anders Carlsson.

  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/mac/WKView.mm:

(-[WKView forceAsyncDrawingAreaSizeUpdate:]): Deleted.
(-[WKView waitForAsyncDrawingAreaSizeUpdate]): Deleted.

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::forceAsyncDrawingAreaSizeUpdate): Deleted.
(WebKit::WebViewImpl::waitForAsyncDrawingAreaSizeUpdate): Deleted.

2:15 PM Changeset in webkit [192828] by commit-queue@webkit.org
  • 3 edits in trunk/PerformanceTests

Add an option to select the results form the graphics benchmark
https://bugs.webkit.org/show_bug.cgi?id=151666

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-11-30
Reviewed by Ryosuke Niwa.

We need an easy way to select the graphics benchmark results table such
that when it is copied to the clipboard, rich text format is set to the
clipboard.

  • Animometer/runner/animometer.html: Add a new button to select the results table or JSON.
  • Animometer/runner/resources/animometer.js:

(window.sectionsManager._sectionDataElement): Selects the container <data> element.
(window.sectionsManager._sectionDataDivElement): Replace a literal string with a string table entry.
(window.sectionsManager.showTestName): Replace a literal string with a string table entry.
(window.sectionsManager.selectData): Selects the container <data> element in a selection.
(window.sectionsManager.selectDataContents): Select the contents of container <data> element in a selection.
(window.benchmarkController.selectResults): Selects the results table.
(window.benchmarkController.showJSON): Function rename.
(window.benchmarkController.selectJSON): Selects the contents of the results JSON.
(window.benchmarkController.showJson): Deleted.

2:15 PM Changeset in webkit [192827] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/forms/state-restore-per-form.html as a flaky timeout on mac-wk2
https://bugs.webkit.org/show_bug.cgi?id=150542

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:56 PM Changeset in webkit [192826] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Simplify the loop that remove useless Air instructions
https://bugs.webkit.org/show_bug.cgi?id=151652

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-11-30
Reviewed by Andreas Kling.

  • b3/air/AirEliminateDeadCode.cpp:

(JSC::B3::Air::eliminateDeadCode):
Use Vector's removeAllMatching() instead of custom code.

It is likely faster too since we remove few values and Vector
is good at doing that.

1:51 PM Changeset in webkit [192825] by beidson@apple.com
  • 5 edits in trunk

Modern IDB: Correct handling of cursors finishing iteration.
https://bugs.webkit.org/show_bug.cgi?id=151664

Reviewed by Andy Estes.

Source/WebCore:

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

  • Modules/indexeddb/client/IDBCursorImpl.cpp:

(WebCore::IDBClient::IDBCursor::setGetResult):

  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::putOrAdd):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
1:50 PM Changeset in webkit [192824] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Get rid of the legacy swipe shadow style
https://bugs.webkit.org/show_bug.cgi?id=151671

Reviewed by Anders Carlsson.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::beginSwipeGesture): Deleted.
(WebKit::ViewGestureController::handleSwipeGesture): Deleted.
(WebKit::ViewGestureController::removeSwipeSnapshot): Deleted.
It is no longer needed.

1:49 PM Changeset in webkit [192823] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.12.1/Source/WebCore

Merged r192678. rdar://problem/23624934

1:48 PM Changeset in webkit [192822] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.12.1/Source/WebCore

Merged r192677. rdar://problem/23624934

1:45 PM Changeset in webkit [192821] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.12.1/Source

Versioning.

1:40 PM Changeset in webkit [192820] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.12.1

New tag.

1:20 PM Changeset in webkit [192819] 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:
1:12 PM Changeset in webkit [192818] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Perf dashboard should extend baseline and target to the future
https://bugs.webkit.org/show_bug.cgi?id=151511

Reviewed by Darin Adler.

  • public/v2/data.js:

(RunsData.prototype.timeSeriesByCommitTime): Added extendToFuture as an argument.
(RunsData.prototype.timeSeriesByBuildTime): Ditto.
(RunsData.prototype._timeSeriesByTimeInternal): Ditto.
(TimeSeries): Add a new point to the end if extendToFuture is set and the series is not empty.

  • public/v2/manifest.js:

(App.Manifest._formatFetchedData): Set extendToFuture to true for baselines and targets.

1:09 PM Changeset in webkit [192817] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Perf dashboard should always show comparison to baseline and target even if one is missing
https://bugs.webkit.org/show_bug.cgi?id=151510

Reviewed by Darin Adler.

Show the comparison status against the baseline when baseline is present but target is missing.

To make the code more readable, this patch splits the logic into three cases:

  1. Both baseline and target are present
  2. Only baseline is present
  3. Only target is present

Also extracted a helper function to construct the label.

  • public/v2/app.js:

(.labelForDiff): Added.
(App.Pane.computeStatus):

1:05 PM Changeset in webkit [192816] by fpizlo@apple.com
  • 6 edits
    2 adds in trunk/Source/JavaScriptCore

B3 should be be clever about choosing which child to reuse for result in two-operand commutative operations
https://bugs.webkit.org/show_bug.cgi?id=151321

Reviewed by Geoffrey Garen.

When lowering a commutative operation to a two-operand instruction, you have a choice of which
child value to move into the result tmp. For example we might have:

@x = Add(@y, @z)

Assuming no three-operand add is available, we could either lower it to this:

Move %y, %x
Add %z, %x

or to this:

Move %z, %x
Add %y, %x

Which is better depends on the likelihood of coalescing with %x. If it's more likely that %y will
coalesce with %x, then we want to use the first form. Otherwise, we should use the second form.

This implements two heuristics for selecting the right form, and makes those heuristics reusable
within the B3->Air lowering by abstracting it as preferRightForResult(). For non-commutative
operations we must use the first form, so the first form is the default. The heuristics are:

  • If the right child has only one user, then use the second form instead. This is profitable because that means that @z dies at the Add, so using the second form means that the Move will be coalesced away.
  • If one of the children is a Phi that this operation (the Add in this case) flows into via some Upsilon - possibly transitively through other Phis - then use the form that cases a Move on that child. This overrides everything else, and is meant to optimize variables that accumulate in a loop.

This required adding a reusable PhiChildren analysis, so I wrote one. It has an API that is mostly
based on iterators, and a higher-level API for looking at transitive children that is based on
functors.

I was originally implementing this for completeness, but when looking at how it interacted with
imaging-gaussian-blur, I realized the need for some heuristic for the loop-accumulator case. This
helps a lot on that benchmark. This widens the overall lead that B3 has on imaging-gaussian-blur, but
steady-state runs that exclude compile latency still show a slight deficit. That will most likely get
fixed by https://bugs.webkit.org/show_bug.cgi?id=151174.

No new tests because the commutativity appears to be covered by existing tests, and anyway, there are
no correctness implications to commuting a commutative operation.

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

(JSC::B3::Air::LowerToAir::LowerToAir):
(JSC::B3::Air::LowerToAir::canBeInternal):
(JSC::B3::Air::LowerToAir::appendUnOp):
(JSC::B3::Air::LowerToAir::preferRightForResult):
(JSC::B3::Air::LowerToAir::appendBinOp):
(JSC::B3::Air::LowerToAir::lower):

  • b3/B3PhiChildren.cpp: Added.

(JSC::B3::PhiChildren::PhiChildren):
(JSC::B3::PhiChildren::~PhiChildren):

  • b3/B3PhiChildren.h: Added.

(JSC::B3::PhiChildren::ValueCollection::ValueCollection):
(JSC::B3::PhiChildren::ValueCollection::size):
(JSC::B3::PhiChildren::ValueCollection::at):
(JSC::B3::PhiChildren::ValueCollection::operator[]):
(JSC::B3::PhiChildren::ValueCollection::contains):
(JSC::B3::PhiChildren::ValueCollection::iterator::iterator):
(JSC::B3::PhiChildren::ValueCollection::iterator::operator*):
(JSC::B3::PhiChildren::ValueCollection::iterator::operator++):
(JSC::B3::PhiChildren::ValueCollection::iterator::operator==):
(JSC::B3::PhiChildren::ValueCollection::iterator::operator!=):
(JSC::B3::PhiChildren::ValueCollection::begin):
(JSC::B3::PhiChildren::ValueCollection::end):
(JSC::B3::PhiChildren::UpsilonCollection::UpsilonCollection):
(JSC::B3::PhiChildren::UpsilonCollection::size):
(JSC::B3::PhiChildren::UpsilonCollection::at):
(JSC::B3::PhiChildren::UpsilonCollection::operator[]):
(JSC::B3::PhiChildren::UpsilonCollection::contains):
(JSC::B3::PhiChildren::UpsilonCollection::begin):
(JSC::B3::PhiChildren::UpsilonCollection::end):
(JSC::B3::PhiChildren::UpsilonCollection::values):
(JSC::B3::PhiChildren::UpsilonCollection::forAllTransitiveIncomingValues):
(JSC::B3::PhiChildren::UpsilonCollection::transitivelyUses):
(JSC::B3::PhiChildren::at):
(JSC::B3::PhiChildren::operator[]):

  • b3/B3Procedure.cpp:

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

  • b3/B3Procedure.h:
  • b3/B3UseCounts.cpp:

(JSC::B3::UseCounts::UseCounts):

  • b3/B3UseCounts.h:

(JSC::B3::UseCounts::numUses):
(JSC::B3::UseCounts::numUsingInstructions):
(JSC::B3::UseCounts::operator[]): Deleted.

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

REGRESSION(r192812): This change seems to have broken the iOS builds (Requested by ryanhaddad on #webkit).
https://bugs.webkit.org/show_bug.cgi?id=151669

Unreviewed, fix build.

  • dfg/DFGCommon.h:
12:36 PM Changeset in webkit [192814] by sbarati@apple.com
  • 33 edits in trunk/Source/JavaScriptCore

implement op_get_rest_length so that we can allocate the rest array with the right size from the start
https://bugs.webkit.org/show_bug.cgi?id=151467

Reviewed by Geoffrey Garen and Mark Lam.

This patch implements op_get_rest_length which returns the length
that the rest parameter array will be. We're implementing this because
it might be a constant value in the presence of inlining in the DFG.
We will take advantage of this optimization opportunity in a future patch:
https://bugs.webkit.org/show_bug.cgi?id=151454
to emit better code for op_copy_rest.

op_get_rest_length has two operands:
1) a destination
2) A constant indicating the number of parameters to skip when copying the rest array.

op_get_rest_length lowers to a JSConstant node when we're inlined
and not a varargs call (in this case, we statically know the arguments
length). When that condition isn't met, we lower op_get_rest_length to
GetRestArray. GetRestArray produces its result as an int32.

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

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

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitNewArray):
(JSC::BytecodeGenerator::emitNewArrayWithSize):
(JSC::BytecodeGenerator::emitNewFunction):
(JSC::BytecodeGenerator::emitExpectedFunctionSnippet):
(JSC::BytecodeGenerator::emitRestParameter):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::RestParameterNode::emit):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGMayExit.cpp:

(JSC::DFG::mayExit):

  • dfg/DFGNode.h:

(JSC::DFG::Node::numberOfArgumentsToSkip):

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

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCopyRest):
(JSC::DFG::SpeculativeJIT::compileGetRestLength):
(JSC::DFG::SpeculativeJIT::compileNotifyWrite):

  • dfg/DFGSpeculativeJIT.h:

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

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCopyRest):
(JSC::FTL::DFG::LowerDFGToLLVM::compileGetRestLength):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNewObject):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

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

(JSC::JIT::emit_op_copy_rest):
(JSC::JIT::emit_op_get_rest_length):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

12:12 PM Changeset in webkit [192813] by beidson@apple.com
  • 21 edits in trunk

Modern IDB: After versionchange transactions abort, fire onerror on the original IDBOpenDBRequest.
https://bugs.webkit.org/show_bug.cgi?id=151648

Reviewed by Andy Estes.

Source/WebCore:

No new tests. Covered by at least one existing failing test which now passes, and many
other tests updated to fix their incorrect behavior.

  • Modules/indexeddb/client/IDBDatabaseImpl.cpp:

(WebCore::IDBClient::IDBDatabase::transaction):
(WebCore::IDBClient::IDBDatabase::willAbortTransaction):
(WebCore::IDBClient::IDBDatabase::didAbortTransaction):

  • Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:

(WebCore::IDBClient::IDBOpenDBRequest::fireErrorAfterVersionChangeAbort):

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

(WebCore::IDBClient::IDBTransaction::notifyDidAbort):
(WebCore::IDBClient::IDBTransaction::didAbort):
(WebCore::IDBClient::IDBTransaction::didCommit):

  • Modules/indexeddb/client/IDBTransactionImpl.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/modern/abort-requests-cancelled-expected.txt:
  • storage/indexeddb/modern/abort-requests-cancelled.html:
  • storage/indexeddb/modern/aborted-put-expected.txt:
  • storage/indexeddb/modern/aborted-put.html:
  • storage/indexeddb/modern/createobjectstore-basic-expected.txt:
  • storage/indexeddb/modern/createobjectstore-basic.html:
  • storage/indexeddb/modern/deleteindex-2-expected.txt:
  • storage/indexeddb/modern/deleteindex-2.html:
  • storage/indexeddb/modern/deleteobjectstore-1-expected.txt:
  • storage/indexeddb/modern/deleteobjectstore-1.html:
  • storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
  • storage/indexeddb/modern/versionchange-abort-then-reopen-expected.txt:
  • storage/indexeddb/modern/versionchange-abort-then-reopen.html:
12:07 PM Changeset in webkit [192812] by fpizlo@apple.com
  • 9 edits
    2 adds in trunk/Source/JavaScriptCore

MacroAssembler needs an API for disabling scratch registers
https://bugs.webkit.org/show_bug.cgi?id=151010

Reviewed by Saam Barati and Michael Saboff.

This adds two scope classes, DisallowMacroScratchRegisterUsage and
AllowMacroScratchRegisterUsage. The default is that the scratch registers are enabled. Air
disables them before generation.

Henceforth the pattern inside B3 stackmap generator callbacks will be that you can only use
AllowMacroScratchRegisterUsage if you've either supplied the scratch register as a clobbered
register and arranged for all of the stackmap values to be late uses, or you're writing a test
and you're OK with it being fragile with respect to scratch registers. The latter holds in most
of testb3.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/AbstractMacroAssembler.h:

(JSC::optimizeForX86):
(JSC::AbstractMacroAssembler::setTempRegisterValid):

  • assembler/AllowMacroScratchRegisterUsage.h: Added.

(JSC::AllowMacroScratchRegisterUsage::AllowMacroScratchRegisterUsage):
(JSC::AllowMacroScratchRegisterUsage::~AllowMacroScratchRegisterUsage):

  • assembler/DisallowMacroScratchRegisterUsage.h: Added.

(JSC::DisallowMacroScratchRegisterUsage::DisallowMacroScratchRegisterUsage):
(JSC::DisallowMacroScratchRegisterUsage::~DisallowMacroScratchRegisterUsage):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::scratchRegister):
(JSC::MacroAssemblerX86Common::loadDouble):
(JSC::MacroAssemblerX86Common::branchConvertDoubleToInt32):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::add32):
(JSC::MacroAssemblerX86_64::and32):
(JSC::MacroAssemblerX86_64::or32):
(JSC::MacroAssemblerX86_64::sub32):
(JSC::MacroAssemblerX86_64::load8):
(JSC::MacroAssemblerX86_64::addDouble):
(JSC::MacroAssemblerX86_64::convertInt32ToDouble):
(JSC::MacroAssemblerX86_64::store32):
(JSC::MacroAssemblerX86_64::store8):
(JSC::MacroAssemblerX86_64::callWithSlowPathReturnType):
(JSC::MacroAssemblerX86_64::call):
(JSC::MacroAssemblerX86_64::jump):
(JSC::MacroAssemblerX86_64::tailRecursiveCall):
(JSC::MacroAssemblerX86_64::makeTailRecursiveCall):
(JSC::MacroAssemblerX86_64::branchAdd32):
(JSC::MacroAssemblerX86_64::add64):
(JSC::MacroAssemblerX86_64::addPtrNoFlags):
(JSC::MacroAssemblerX86_64::and64):
(JSC::MacroAssemblerX86_64::lshift64):
(JSC::MacroAssemblerX86_64::or64):
(JSC::MacroAssemblerX86_64::sub64):
(JSC::MacroAssemblerX86_64::store64):
(JSC::MacroAssemblerX86_64::store64WithAddressOffsetPatch):
(JSC::MacroAssemblerX86_64::branch64):
(JSC::MacroAssemblerX86_64::branchPtr):
(JSC::MacroAssemblerX86_64::branchTest64):
(JSC::MacroAssemblerX86_64::test64):
(JSC::MacroAssemblerX86_64::branchPtrWithPatch):
(JSC::MacroAssemblerX86_64::branch32WithPatch):
(JSC::MacroAssemblerX86_64::storePtrWithPatch):
(JSC::MacroAssemblerX86_64::branch8):
(JSC::MacroAssemblerX86_64::branchTest8):
(JSC::MacroAssemblerX86_64::convertInt64ToDouble):
(JSC::MacroAssemblerX86_64::readCallTarget):
(JSC::MacroAssemblerX86_64::haveScratchRegisterForBlinding):
(JSC::MacroAssemblerX86_64::scratchRegisterForBlinding):
(JSC::MacroAssemblerX86_64::canJumpReplacePatchableBranchPtrWithPatch):
(JSC::MacroAssemblerX86_64::canJumpReplacePatchableBranch32WithPatch):
(JSC::MacroAssemblerX86_64::revertJumpReplacementToPatchableBranchPtrWithPatch):
(JSC::MacroAssemblerX86_64::revertJumpReplacementToPatchableBranch32WithPatch):
(JSC::MacroAssemblerX86_64::revertJumpReplacementToBranchPtrWithPatch):
(JSC::MacroAssemblerX86_64::repatchCall):
(JSC::MacroAssemblerX86_64::add64AndSetFlags):

  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::generate):

  • b3/testb3.cpp:

(JSC::B3::testSimplePatchpoint):
(JSC::B3::testSimplePatchpointWithoutOuputClobbersGPArgs):
(JSC::B3::testSimplePatchpointWithOuputClobbersGPArgs):
(JSC::B3::testSimplePatchpointWithoutOuputClobbersFPArgs):
(JSC::B3::testSimplePatchpointWithOuputClobbersFPArgs):
(JSC::B3::testPatchpointCallArg):
(JSC::B3::testPatchpointFixedRegister):
(JSC::B3::testPatchpointAny):
(JSC::B3::testPatchpointAnyImm):
(JSC::B3::testSimpleCheck):
(JSC::B3::testCheckLessThan):
(JSC::B3::testCheckMegaCombo):
(JSC::B3::testCheckAddImm):
(JSC::B3::testCheckAddImmCommute):
(JSC::B3::testCheckAddImmSomeRegister):
(JSC::B3::testCheckAdd):
(JSC::B3::testCheckAdd64):
(JSC::B3::testCheckAddFoldFail):
(JSC::B3::testCheckSubImm):
(JSC::B3::testCheckSubBadImm):
(JSC::B3::testCheckSub):
(JSC::B3::testCheckSub64):
(JSC::B3::testCheckSubFoldFail):
(JSC::B3::testCheckNeg):
(JSC::B3::testCheckNeg64):
(JSC::B3::testCheckMul):
(JSC::B3::testCheckMulMemory):
(JSC::B3::testCheckMul2):
(JSC::B3::testCheckMul64):
(JSC::B3::testCheckMulFoldFail):
(JSC::B3::genericTestCompare):

  • dfg/DFGCommon.h:
  • jit/GPRInfo.h:

(JSC::GPRInfo::toRegister):
(JSC::GPRInfo::reservedRegisters):

11:52 AM Changeset in webkit [192811] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Option-up and Option-down should scroll a little less than a full page
https://bugs.webkit.org/show_bug.cgi?id=151538
<rdar://problem/23642675>

Reviewed by Simon Fraser.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _scrollOffsetForEvent:]):
(-[WKContentView _interpretKeyEvent:isCharEvent:]):
Clean up the code a little, and adjust so that we *always* use pageStep
instead of just scrolling by the unobscured rect when scrolling by a page.
Previously, we did for the spacebar, but not for option-up and option-down.

11:27 AM Changeset in webkit [192810] by Chris Dumez
  • 7 edits in trunk

location.origin is undefined in a web worker
https://bugs.webkit.org/show_bug.cgi?id=151614

Reviewed by Darin Adler.

Source/WebCore:

Expose location.origin to web workers, as per:
https://html.spec.whatwg.org/multipage/workers.html#workerlocation

This behavior is consistent with the behavior of Firefox and Chrome.

Test: fast/workers/worker-location.html

  • workers/WorkerLocation.cpp:

(WebCore::WorkerLocation::origin):

  • workers/WorkerLocation.h:
  • workers/WorkerLocation.idl:

LayoutTests:

Update existing layout test to confirm the existence of location.origin when in a
WorkerGlobalScope.

  • fast/workers/resources/worker-location.js:
  • fast/workers/worker-location-expected.txt:
11:25 AM Changeset in webkit [192809] by BJ Burg
  • 3 edits in trunk/Source/WebKit2

Web Inspector: using "Reload Web Inspector" when docked breaks dock-specific styles
https://bugs.webkit.org/show_bug.cgi?id=151642

Reviewed by Timothy Hatcher.

After a frontend loads, explicitly tell it about the current dock
state. This is necessary for force-reloading the inspector, since
the dock state isn't sent from UIProcess in this case.

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::frontendLoaded):
(WebKit::WebInspectorUI::setDockingUnavailable):

  • WebProcess/WebPage/WebInspectorUI.h:
11:11 AM Changeset in webkit [192808] by achristensen@apple.com
  • 19 edits
    1 delete in trunk

Make ProcessModel always MultipleSecondaryProcesses
https://bugs.webkit.org/show_bug.cgi?id=151662

Reviewed by Antti Koivisto.

Source/WebKit2:

Single WebProcess behavior can still be achieved by setting the maximum number of WebProcesses to 1.

  • Shared/API/c/WKDeprecatedFunctions.cpp:

(WKContextSetUsesNetworkProcess):
(WKContextSetProcessModel):
(WKContextGetProcessModel):
(WKGraphicsContextGetCGContext):

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKAPICast.h:

(WebKit::toAPI):
(WebKit::toFontSmoothingLevel):
(WebKit::toProcessModel): Deleted.

  • UIProcess/API/C/WKContext.cpp:

(WKContextGetCacheModel):
(WKContextSetMaximumNumberOfProcesses):
(WKContextSetProcessModel): Deleted.
(WKContextGetProcessModel): Deleted.

  • UIProcess/API/C/WKContext.h:
  • UIProcess/API/Cocoa/WKProcessGroup.mm:

(-[WKProcessGroup initWithInjectedBundleURL:]):

  • UIProcess/API/Cocoa/WKProcessPool.mm:
  • UIProcess/API/efl/ewk_context.cpp:

(EwkContext::cacheModel):
(EwkContext::setProcessModel):
(EwkContext::processModel):
(EwkContext::clearResourceCache):
(EwkContext::jsGlobalContext):
(ewk_context_message_from_extensions_callback_set):
(ewk_context_process_model_set):
(ewk_context_process_model_get):
(ewk_context_tls_error_policy_get):
(toWKProcessModel): Deleted.
(toEwkProcessModel): Deleted.

  • UIProcess/API/gtk/WebKitWebContext.cpp:
  • UIProcess/ProcessModel.h: Removed.
  • UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::shouldTerminate):
(WebKit::WebCookieManagerProxy::refWebContextSupplement):

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::inspectorProcessPool):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reattachToWebProcess):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::create):
(WebKit::WebProcessPool::setDownloadClient):
(WebKit::WebProcessPool::setMaximumNumberOfProcesses):
(WebKit::WebProcessPool::processDidCachePage):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::postMessageToInjectedBundle):
(WebKit::WebProcessPool::requestWebContentStatistics):
(WebKit::WebProcessPool::requestNetworkingStatistics):
(WebKit::WebProcessPool::setProcessModel): Deleted.
(WebKit::WebProcessPool::ensureSharedWebProcess): Deleted.

  • UIProcess/WebProcessPool.h:

(WebKit::WebProcessPool::sendToAllProcessesRelaunchingThemIfNecessary):
(WebKit::WebProcessPool::sendToOneProcess):

  • WebKit2.xcodeproj/project.pbxproj:

Tools:

  • TestWebKitAPI/Tests/WebKit2/Geolocation.cpp:

(TestWebKitAPI::TEST):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::generatePageConfiguration):

11:06 AM Changeset in webkit [192807] by Chris Dumez
  • 6 edits in trunk/Source/WebKit2

[WK2][Cache] We should not speculatively revalidate transient resources
https://bugs.webkit.org/show_bug.cgi?id=151402
<rdar://problem/23092196>

Reviewed by Antti Koivisto.

We should not speculatively revalidate transient resources. This patch
adds a simple and conservative algorithm to detect that a subresource is
transient and then ignores those when doing the speculative revalidation.

The algorithm is question marks as transient all subresources that are
not common to the 2 last loads of a main resource.

This is not perfect as I see the number of non-speculative revalidations
going up to 11-12 from 9 in the context of the warm PLT. However, it is
best to be conservative at first and we can improve this later.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::retrieve):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::create):
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::~PendingFrameLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::registerSubresource):
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::markLoadAsCompleted):
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::setExistingSubresourcesEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::PendingFrameLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::saveToDiskIfReady):
(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieveSubresourcesEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieve): Deleted.
(WebKit::NetworkCache::SpeculativeLoadManager::revalidateEntry): Deleted.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
  • NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:

(WebKit::NetworkCache::SubresourcesEntry::encodeAsStorageRecord):
(WebKit::NetworkCache::SubresourcesEntry::decodeStorageRecord):
(WebKit::NetworkCache::SubresourcesEntry::SubresourcesEntry):
(WebKit::NetworkCache::SubresourcesEntry::updateSubresourceKeys):

  • NetworkProcess/cache/NetworkCacheSubresourcesEntry.h:

(WebKit::NetworkCache::SubresourcesEntry::SubresourceInfo::encode):
(WebKit::NetworkCache::SubresourcesEntry::SubresourceInfo::decode):
(WebKit::NetworkCache::SubresourcesEntry::SubresourceInfo::SubresourceInfo):
(WebKit::NetworkCache::SubresourcesEntry::subresources):

11:05 AM Changeset in webkit [192806] by beidson@apple.com
  • 6 edits in trunk

Modern IDB: Support updating cursor values when the object store uses inline keys.
https://bugs.webkit.org/show_bug.cgi?id=151647

Reviewed by Andy Estes.

Source/WebCore:

No new tests (At least two previously failing tests now pass and are unskipped).

  • Modules/indexeddb/client/IDBCursorImpl.cpp:

(WebCore::IDBClient::IDBCursor::update): Use putForCursorUpdate() instead of put()

  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::add):
(WebCore::IDBClient::IDBObjectStore::put):
(WebCore::IDBClient::IDBObjectStore::putForCursorUpdate): Use the flag to skip the inline-key check.
(WebCore::IDBClient::IDBObjectStore::putOrAdd): Add a flag to skip the inline-key check.

  • Modules/indexeddb/client/IDBObjectStoreImpl.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
10:46 AM Changeset in webkit [192805] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit2

[Mac] Add font service permission to the sandbox profile
https://bugs.webkit.org/show_bug.cgi?id=151509
<rdar://problem/23508753>

Reviewed by Anders Carlsson.

Update the sandbox profile for Mac WebKit to allow access to the
"com.apple.fonts" service.

  • Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
10:26 AM Changeset in webkit [192804] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: delete-by-word and similar shortcuts should add text to the WebCore kill ring
https://bugs.webkit.org/show_bug.cgi?id=151312

Reviewed by Darin Adler.

Add support for other kill ring-eligible keybindinsg, such as
deleting by word, group, or line forwards and backwards.

  • UserInterface/Controllers/CodeMirrorTextKillController.js:

(WebInspector.CodeMirrorTextKillController):
(WebInspector.CodeMirrorTextKillController.prototype._handleTextKillCommand): Renamed from _handleKillLine.

Parameterize the function so it can handle any keybinding and
command. Take a kill ring insertion mode argument, too.

(WebInspector.CodeMirrorTextKillController.prototype._handleTextChange):

Add some special casing for changes received from Delete Line
(Cmd-D) so the right text is added to the kill ring. Thread the
kill ring insertion mode to the frontend host call.

(WebInspector.CodeMirrorTextKillController.prototype._handleKillLine): Deleted.

10:24 AM Changeset in webkit [192803] by beidson@apple.com
  • 5 edits in trunk/Source/WebCore

Modern IDB: Resolve flaky GC-vs-wrapper issue with IDBOpenDBRequest.
https://bugs.webkit.org/show_bug.cgi?id=151645

Reviewed by Andy Estes.

No new tests (Resolves flakiness with hundreds of existing IDB tests).

Do to improper management of the m_hasPendingActivity flag on IDBRequestImpl,
the request wrapper for an IDBOpenDBRequest might be garbage collected in between the
onUpgradeNeeded event and onSuccess event.

This manifested as flakiness in many tests, some more than others.

I tried to write a targeted 100% reproducible case manually forcing GC, but could not get
the timing right.

  • Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:

(WebCore::IDBClient::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit):

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

(WebCore::IDBClient::IDBRequest::dispatchEvent):
(WebCore::IDBClient::IDBRequest::willIterateCursor):

  • Modules/indexeddb/client/IDBRequestImpl.h:

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

10:22 AM Changeset in webkit [192802] by peavo@outlook.com
  • 3 edits in trunk/Source/WebCore

[WinCairo][MediaFoundation] Implement seek.
https://bugs.webkit.org/show_bug.cgi?id=151609

Reviewed by Alex Christensen.

The methods maxTimeSeekable() and buffered() needs to be implemented.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::seekDouble):
(WebCore::MediaPlayerPrivateMediaFoundation::durationDouble):
(WebCore::MediaPlayerPrivateMediaFoundation::readyState):
(WebCore::MediaPlayerPrivateMediaFoundation::maxTimeSeekable):
(WebCore::MediaPlayerPrivateMediaFoundation::buffered):
(WebCore::MediaPlayerPrivateMediaFoundation::didLoadingProgress):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::currentTime):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::isActive):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:

(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::maxTimeLoaded):

10:21 AM Changeset in webkit [192801] by aestes@apple.com
  • 25 edits
    3 deletes in trunk

Reverted r192769. It broke run-minibrowser, and made MiniBrowser.app not usable as a standalone bundle.

10:21 AM Changeset in webkit [192800] by beidson@apple.com
  • 24 edits in trunk

Modern IDB: openCursor() fix resulting in at least 4 more passing tests.
https://bugs.webkit.org/show_bug.cgi?id=151630

Reviewed by Andy Estes.

Source/WebCore:

No new tests (At least 4 failing tests now pass, and 9 other incorrect tests updated).

  • Modules/indexeddb/IDBGetResult.cpp:

(WebCore::IDBGetResult::isolatedCopy):

  • Modules/indexeddb/IDBGetResult.h:

(WebCore::IDBGetResult::IDBGetResult):
(WebCore::IDBGetResult::isDefined):

  • Modules/indexeddb/client/IDBRequestImpl.cpp:

(WebCore::IDBClient::IDBRequest::didOpenOrIterateCursor): If the IDBGetResult is undefined,

do not expose the cursor as the result property of the IDBRequest.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/modern/cursor-2-expected.txt:
  • storage/indexeddb/modern/cursor-2.html:
  • storage/indexeddb/modern/cursor-3-expected.txt:
  • storage/indexeddb/modern/cursor-3.html:
  • storage/indexeddb/modern/cursor-4-expected.txt:
  • storage/indexeddb/modern/cursor-4.html:
  • storage/indexeddb/modern/deleteindex-1-expected.txt:
  • storage/indexeddb/modern/deleteindex-1.html:
  • storage/indexeddb/modern/deleteindex-2-expected.txt:
  • storage/indexeddb/modern/deleteindex-2.html:
  • storage/indexeddb/modern/index-4-expected.txt:
  • storage/indexeddb/modern/index-4.html:
  • storage/indexeddb/modern/index-cursor-1-expected.txt:
  • storage/indexeddb/modern/index-cursor-1.html:
  • storage/indexeddb/modern/index-cursor-2-expected.txt:
  • storage/indexeddb/modern/index-cursor-2.html:
  • storage/indexeddb/modern/index-cursor-3-expected.txt:
  • storage/indexeddb/modern/index-cursor-3.html:
10:15 AM Changeset in webkit [192799] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

2015-11-30 Ryan Haddad <Ryan Haddad>

Marking http/tests/cache/disk-cache/disk-cache-request-max-stale.html as flaky on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=143159

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:11 AM Changeset in webkit [192798] by beidson@apple.com
  • 8 edits in trunk

Modern IDB: Support keyPath injection into object store records.
https://bugs.webkit.org/show_bug.cgi?id=151640

Reviewed by Andy Estes.

Source/WebCore:

No new tests (At least one existing failure now passes and is unskipped,
while many other existing failures are now closer to passing).

  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord): Use the new UniqueIDBDatabase VM/ExecState.
(WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords): Ditto
(WebCore::IDBServer::indexVM): Deleted.
(WebCore::IDBServer::indexGlobalExec): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::databaseThreadVM):
(WebCore::IDBServer::UniqueIDBDatabase::databaseThreadExecState):
(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd): If appropriate, inject the key that will be used into

the value before storing the record.

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

Add modern JSValue/ExecState& version of some binding utilities, for use today and in preparation of getting
rid of the DOMRequestState and Deprecated::ScriptValue versions later:

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::idbKeyToJSValue):
(WebCore::injectIDBKeyIntoScriptValue):
(WebCore::deserializeIDBValueData):
(WebCore::deserializeIDBValueDataToJSValue):

  • bindings/js/IDBBindingUtilities.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
10:06 AM Changeset in webkit [192797] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

[Content Filtering] Avoid creating a ContentFilter when loading the empty document
https://bugs.webkit.org/show_bug.cgi?id=151615

Reviewed by Daniel Bates.

It's expensive to create the first ContentFilter since two frameworks must be soft-linked. There's no reason to
pay this cost if we're just loading the empty document.

No new tests. It's not possible to write a test that would fail without this change since ContentFilter is not
notified of empty document loads.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource): Don't initialize m_contentFilter until we know we aren't
loading the empty document.
(WebCore::DocumentLoader::DocumentLoader):

9:49 AM Changeset in webkit [192796] by achristensen@apple.com
  • 33 edits in trunk

Make usesNetworkProcess always true
https://bugs.webkit.org/show_bug.cgi?id=151580

Reviewed by Darin Adler.

Source/WebKit2:

  • NetworkProcess/mac/RemoteNetworkingContext.mm:

(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):

  • Shared/API/c/WKDeprecatedFunctions.cpp:

(WKInspectorToggleJavaScriptProfiling):
(WKContextSetUsesNetworkProcess):
(WKGraphicsContextGetCGContext):

  • Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm:

(WebKit::CustomProtocolManager::initializeConnection):
(WebKit::CustomProtocolManager::initialize):

  • Shared/Network/CustomProtocols/CustomProtocolManager.h:
  • Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp:

(WebKit::CustomProtocolManager::initialize):

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetJavaScriptGarbageCollectorTimerEnabled):
(WKContextUseTestingNetworkSession):
(WKContextSetUsesNetworkProcess): Deleted.

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/API/Cocoa/WKProcessGroup.mm:

(-[WKProcessGroup initWithInjectedBundleURL:]):

  • UIProcess/API/efl/ewk_context.cpp:

(EwkContext::setProcessModel):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::updateProcessSuppressionState):
(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::cancel):
(WebKit::DownloadProxy::invalidate):

  • UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy):
(WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool):
(WebKit::m_processSuppressionDisabledForPageCounter):
(WebKit::WebProcessPool::networkingProcessConnection):
(WebKit::WebProcessPool::languageChanged):
(WebKit::WebProcessPool::textCheckerStateChanged):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::download):
(WebKit::WebProcessPool::resumeDownload):
(WebKit::WebProcessPool::setCanHandleHTTPSServerTrustEvaluation):
(WebKit::WebProcessPool::setCacheModel):
(WebKit::WebProcessPool::createDownloadProxy):
(WebKit::WebProcessPool::addMessageReceiver):
(WebKit::WebProcessPool::allowSpecificHTTPSCertificateForHost):
(WebKit::WebProcessPool::setHTTPPipeliningEnabled):
(WebKit::WebProcessPool::requestNetworkingStatistics):
(WebKit::WebProcessPool::setUsesNetworkProcess): Deleted.
(WebKit::WebProcessPool::usesNetworkProcess): Deleted.

  • UIProcess/WebProcessPool.h:

(WebKit::WebProcessPool::sendToNetworkingProcess):
(WebKit::WebProcessPool::sendToNetworkingProcessRelaunchingIfNecessary):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::removeWebPage):
(WebKit::WebProcessProxy::canTerminateChildProcess):
(WebKit::WebProcessProxy::updateTextCheckerState):
(WebKit::WebProcessProxy::didSaveToPageCache):
(WebKit::WebProcessProxy::didSetAssertionState):
(WebKit::WebProcessProxy::createDownloadProxy): Deleted.

  • UIProcess/WebProcessProxy.h:
  • UIProcess/efl/WebProcessPoolEfl.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::setIgnoreTLSErrors):

  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerFileBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURL):
(WebKit::BlobRegistryProxy::unregisterBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURLForSlice):
(WebKit::BlobRegistryProxy::blobSize):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::cookiesForDOM):
(WebKit::WebPlatformStrategies::setCookiesFromDOM):
(WebKit::WebPlatformStrategies::cookiesEnabled):
(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebKit::WebPlatformStrategies::getRawCookies):
(WebKit::WebPlatformStrategies::deleteCookie):
(WebKit::WebPlatformStrategies::resourceLoadScheduler):
(WebKit::WebPlatformStrategies::loadResourceSynchronously):
(WebKit::WebPlatformStrategies::createPingHandle):
(WebKit::WebPlatformStrategies::createBlobRegistry):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::startDownload):
(WebKit::WebFrame::convertMainResourceLoadToDownload):
(WebKit::WebFrame::source):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):
(WebKit::m_webSQLiteDatabaseTracker):
(WebKit::WebProcess::initializeConnection):
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::ensureNetworkProcessConnection):
(WebKit::WebProcess::destroyPrivateBrowsingSession):
(WebKit::WebProcess::pluginProcessConnectionManager):
(WebKit::WebProcess::shouldTerminate):
(WebKit::WebProcess::setInjectedBundleParameters):
(WebKit::WebProcess::networkConnection):
(WebKit::WebProcess::setEnhancedAccessibility):
(WebKit::WebProcess::prefetchDNS):
(WebKit::WebProcess::didCreateDownload): Deleted.
(WebKit::WebProcess::didDestroyDownload): Deleted.
(WebKit::WebProcess::downloadProxyConnection): Deleted.
(WebKit::WebProcess::downloadsAuthenticationManager): Deleted.
(WebKit::WebProcess::downloadManager): Deleted.
(WebKit::WebProcess::usesNetworkProcess): Deleted.
(WebKit::WebProcess::downloadRequest): Deleted.
(WebKit::WebProcess::resumeDownload): Deleted.
(WebKit::WebProcess::cancelDownload): Deleted.

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::textCheckerState):
(WebKit::WebProcess::eventDispatcher):

  • WebProcess/WebProcess.messages.in:
  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::WebProcess::platformSetCacheModel):
(WebKit::WebProcess::platformClearResourceCaches):
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformTerminate):
(WebKit::getCacheDiskFreeSize): Deleted.
(WebKit::setSoupSessionAcceptLanguage): Deleted.
(WebKit::languageChanged): Deleted.
(WebKit::WebProcess::setIgnoreTLSErrors): Deleted.
(WebKit::WebProcess::allowSpecificHTTPSCertificateForHost): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebKit2/Geolocation.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit2/mac/GetPIDAfterAbortedProcessLaunch.cpp:

(TestWebKitAPI::TEST):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::generatePageConfiguration):

8:56 AM Changeset in webkit [192795] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[ARM64] stress/op_div.js is failing on some divide by 0 cases.
https://bugs.webkit.org/show_bug.cgi?id=151515

Reviewed by Saam Barati.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithDiv):

  • Added a check for the divide by zero case.
  • tests/stress/op_div.js:
  • Un-skipped the test.
6:21 AM Changeset in webkit [192794] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Skip GTK+ test /webkit2/WebKitWebView/editable/editable in Debug.

Add a way to skip unit tests only for Debug or Release builds and
skipt the test /webkit2/WebKitWebView/editable/editable only for Debug.

  • Scripts/run-gtk-tests:

(SkippedTest):
(SkippedTest.init):
(SkippedTest.str):
(SkippedTest.skip_entire_suite):
(SkippedTest.skip_for_build_type):
(TestRunner):
(TestRunner.init):

3:26 AM Changeset in webkit [192793] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix a crash in GTK+ test /webkit2/WebKitWebView/custom-charset.

It's an assert hit because we are reloading a view loaded with
HTML data which is not supported. Use loadURI instead.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewCustomCharset):

1:39 AM Changeset in webkit [192792] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] UI process crash when the screensaver DBus proxy is being created while the web view is destroyed
https://bugs.webkit.org/show_bug.cgi?id=151653

Reviewed by Martin Robinson.

We correctly cancel the proxy creation, but when the async ready
callback is called, the view could be destroyed already. In that
case g_dbus_proxy_new_for_bus_finish() will return nullptr and
fail with cancelled error, but we are using the passed web view
without checking first if the creation failed or not.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(screenSaverProxyCreatedCallback):

12:05 AM Changeset in webkit [192791] by Carlos Garcia Campos
  • 7 edits
    5 deletes in trunk

[GLIB] Remove GMainLoopSource and GThreadSafeMainLoopSource
https://bugs.webkit.org/show_bug.cgi?id=151633

Reviewed by Csaba Osztrogonác.

Source/WTF:

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.vcxproj/WTF.vcxproj.filters:
  • wtf/PlatformEfl.cmake:
  • wtf/PlatformGTK.cmake:
  • wtf/glib/GMainLoopSource.cpp: Removed.
  • wtf/glib/GMainLoopSource.h: Removed.
  • wtf/glib/GThreadSafeMainLoopSource.cpp: Removed.
  • wtf/glib/GThreadSafeMainLoopSource.h: Removed.

Tools:

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp: Removed.

Nov 29, 2015:

4:56 PM Changeset in webkit [192790] by BJ Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Add context menu item to Reload the Inspector
https://bugs.webkit.org/show_bug.cgi?id=141742

Reviewed by Timothy Hatcher.

Add a global context menu and global shortcut (Cmd-Opt-Shift-R) to
reload the Web Inspector frontend without closing the browser.

This should make it possible to more quickly fix typos, small nits,
etc. without having to relaunch. It might also make state
restoration bugs more visible in engineering builds, since there
is hardly any delay between seeing the old and reloaded frontends.

Note that this functionality reloads scripts from the configuration's
build directory, so you still need to "build" WebInspectorUI to ensure
that any changed files are properly minified and staged.

  • UserInterface/Base/Main.js:

(WebInspector.unlocalizedString):

Added. Make it obvious when strings are intentionally not localized.

(WebInspector._contextMenuRequested):

If the "Show Debug UI" setting is available and true, add
a global "Reload Web Inspector" menu item to every context
menu. Otherwise, don't eagerly create a context menu.

  • UserInterface/Debug/Bootstrap.js: Add Cmd-Opt-Shift-R shortcut.
4:39 PM Changeset in webkit [192789] by BJ Burg
  • 17 edits in trunk/Source/WebInspectorUI

Web Inspector: allow multiple UI components to add menu items upon getting a "contextmenu" event
https://bugs.webkit.org/show_bug.cgi?id=151629

Reviewed by Timothy Hatcher.

The existing Context Menu system assumes that only one UI component
will need to provide context menu items. But in some scenarios, there
are multiple UI components that could provide relevant menu items. For
example, right-clicking on an DOM element in the console should show
menu items relevant to 1) the DOM element, 2) the console in general,
and 3) global menu items. Existing code shows menu items provided by
the first object that handles the event and calls ContextMenu.show().

This patch changes behavior so that a context menu can be built up
by multiple 'contextmenu' event handlers. A ContextMenu instance is
hidden on the 'contextmenu' event object; client code calls a
factory method that digs out this existing context menu or creates a
new one as needed. To actually show the context menu through the
InspectorFrontendHost methods, the top-level app controller adds a
bubbling listener for 'contextmenu' and shows the event's context
menu if one has been created.

Along the way, do some cleanup. Do s/var/let/, arrowize some functions,
use Array.{map,some}, and simplify some other code as a result.

No new tests yet, since we can't trigger context menu easily from
an inspector test. All affected context menus were manually verified.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):

  • UserInterface/Controllers/BreakpointPopoverController.js:

(WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems):
(WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.editBreakpoint): Deleted.
(WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.removeBreakpoint): Deleted.
(WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.toggleBreakpoint): Deleted.
(WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.toggleAutoContinue): Deleted.
(WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.revealOriginalSourceCodeLocation): Deleted.

  • UserInterface/Views/BreakpointTreeElement.js:

(WebInspector.BreakpointTreeElement.prototype.oncontextmenu):

  • UserInterface/Views/CSSStyleDeclarationSection.js:
  • UserInterface/Views/ContextMenu.js:

(WebInspector.ContextMenuItem.prototype._buildDescriptor):
(WebInspector.ContextMenuItem):
(WebInspector.ContextSubMenuItem.prototype.appendItem):
(WebInspector.ContextSubMenuItem.prototype.appendSubMenuItem):
(WebInspector.ContextSubMenuItem.prototype.appendCheckboxItem):
(WebInspector.ContextSubMenuItem.prototype._pushItem):
(WebInspector.ContextSubMenuItem.prototype._buildDescriptor):
(WebInspector.ContextSubMenuItem):
(WebInspector.ContextMenu.createFromEvent):
(WebInspector.ContextMenu.prototype.show):
(WebInspector.ContextMenu.prototype.handleEvent):
(WebInspector.ContextMenu.prototype._buildDescriptor):

  • UserInterface/Views/DOMTreeOutline.js:

(WebInspector.DOMTreeOutline.prototype._contextMenuEventFired):
(WebInspector.DOMTreeOutline.prototype._populateContextMenu.logElement):
(WebInspector.DOMTreeOutline.prototype._populateContextMenu):

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype._contextMenuInDataTable):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineContextMenuTreeElement):
(WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineContextMenuTreeElement.removeAllResourceBreakpoints): Deleted.
(WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineContextMenuTreeElement.toggleAllResourceBreakpoints): Deleted.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._handleContextMenuEvent):

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView.prototype._contextMenuHandler):
(WebInspector.ObjectPreviewView):

  • UserInterface/Views/ObjectTreeBaseTreeElement.js:

(WebInspector.ObjectTreeBaseTreeElement.prototype._contextMenuHandler):
(WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
(WebInspector.ObjectTreeBaseTreeElement):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.continueToLocation): Deleted.
(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.addBreakpoint): Deleted.
(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.revealInSidebar): Deleted.
(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.removeBreakpoints): Deleted.
(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.toggleBreakpoints): Deleted.

  • UserInterface/Views/TabBarItem.js:

(WebInspector.TabBarItem.prototype._handleContextMenuEvent):
(WebInspector.TabBarItem):
(WebInspector.TabBarItem.prototype._handleContextMenuEvent.closeTab): Deleted.
(WebInspector.TabBarItem.prototype._handleContextMenuEvent.closeOtherTabs): Deleted.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel.prototype._contextMenuNavigationBarOrStatusBar):
(WebInspector.TimelineSidebarPanel.prototype._contextMenuNavigationBarOrStatusBar.toggleReplayInterface): Deleted.

  • UserInterface/Views/Toolbar.js:

(WebInspector.Toolbar.prototype._handleContextMenuEvent):

  • UserInterface/Views/VisualStyleSelectorTreeItem.js:

(WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):

2:03 PM Changeset in webkit [192788] by commit-queue@webkit.org
  • 6 edits
    4 adds in trunk

Browser does not fall back to SVG attribute value when CSS style value is invalid or not supported
https://bugs.webkit.org/show_bug.cgi?id=147932

Patch by Antoine Quint <Antoine Quint> on 2015-11-29
Reviewed by Dean Jackson.

Source/WebCore:

Instead of returning an SVGPaint object of type SVG_PAINTTYPE_UNKNOWN when we encounter an SVG paint
value that cannot be parsed, we now return nullptr which will cause that value to be ignored and
let another paint value in the cascade be used instead. This is the same approach used for SVGColor.
Since we're removing the only call site for SVGPaint::createUnknown(), we remove that function entirely.

Tests: svg/css/invalid-color-cascade.svg

svg/css/invalid-paint-cascade.svg

  • css/SVGCSSParser.cpp:

(WebCore::CSSParser::parseSVGPaint):

  • svg/SVGPaint.h:

(WebCore::SVGPaint::createUnknown): Deleted.

LayoutTests:

Testing that we correctly fall back to the presentation attribute for SVGPaint and SVGColor values
specified with an invalid keyword in a style attribute. We also update the expected output for
svg/css/svg-attribute-parser-mode.html which is now in line with values returned by Firefox and
Chrome, where we correctly use the default value instead of null objects, which was definitely
an error.

  • svg/css/invalid-color-cascade-expected.svg: Added.
  • svg/css/invalid-color-cascade.svg: Added.
  • svg/css/invalid-paint-cascade-expected.svg: Added.
  • svg/css/invalid-paint-cascade.svg: Added.
  • svg/css/script-tests/svg-attribute-parser-mode.js:
  • svg/css/svg-attribute-parser-mode-expected.txt:
10:47 AM Changeset in webkit [192787] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Use SVGTransform::SVGTransformType instead of an unsigned short
https://bugs.webkit.org/show_bug.cgi?id=151637

Reviewed by Brady Eidson.

Make 'type' more strongly typed.

  • svg/SVGTransformable.cpp:

(WebCore::SVGTransformable::parseTransformValue):
(WebCore::parseAndSkipType):
(WebCore::SVGTransformable::parseTransformType):
(WebCore::SVGTransformable::parseTransformAttribute):

  • svg/SVGTransformable.h:

Nov 28, 2015:

1:30 PM Changeset in webkit [192786] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebKit2

Stop unnecessarily copying WKWebViewConfiguration in a few places
https://bugs.webkit.org/show_bug.cgi?id=151639

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):
(-[WKWebView dealloc]):
(-[WKWebView _contentProviderRegistry]):
(-[WKWebView _selectionGranularity]):
(-[WKWebView _setHasCustomContentView:loadedMIMEType:]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::mimeTypesWithCustomContentProviders):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):
(-[WKContentView _stopAssistingKeyboard]):
Looking at allocation traces I noticed that we were making way more
WKWebViewConfigurations than made sense; looking at backtraces I found
a few internal callers of -[WKWebView configuration], which copies the
configuration. There's no reason for these internal callers to make
such a copy, though.

I'm not exactly sure what the usual approach is here, but I added
getters so WKContentViewInteraction and PageClientImplIOS can get to
the values they're looking for without using the configuration property.

12:53 AM Changeset in webkit [192785] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles sidebar placeholder is misaligned
https://bugs.webkit.org/show_bug.cgi?id=151638

Patch by Devin Rousso <Devin Rousso> on 2015-11-28
Reviewed by Brian Burg.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.css:

(.css-style-text-editor > .CodeMirror .CodeMirror-placeholder):

12:51 AM Changeset in webkit [192784] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION: "Duplicate Selector" context menu item doesn't work
https://bugs.webkit.org/show_bug.cgi?id=151628

Patch by Devin Rousso <Devin Rousso> on 2015-11-28
Reviewed by Brian Burg.

Merged the two "add rule" functions inside DOMNodeStyles to create a
new rule with the given selector and use the generated best selector
for that node otherwise. This also preserves all fallbacks across all
functions for creating new CSS rules.

  • UserInterface/Models/DOMNodeStyles.js:

(WebInspector.DOMNodeStyles.prototype.addEmptyRule): Deleted.
(WebInspector.DOMNodeStyles.prototype.addRuleWithSelector): Deleted.
(WebInspector.DOMNodeStyles.prototype.addRule):
Creates a new CSS rule using either the provided selector or the best
selector for the current node.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection.prototype._handleContextMenuEvent):

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel.prototype.newRuleButtonClicked):

  • UserInterface/Views/VisualStyleSelectorSection.js:

(WebInspector.VisualStyleSelectorSection.prototype._addNewRule):

Nov 27, 2015:

9:50 AM Changeset in webkit [192783] by beidson@apple.com
  • 21 edits
    1 add in trunk/Source

Modern IDB: Class-ify IDBGetResult making it impossible to get the data members wrong.
https://bugs.webkit.org/show_bug.cgi?id=151627

Reviewed by Alexey Proskuryakov.

Source/WebCore:

No new tests (No change in behavior).

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • Modules/indexeddb/IDBGetResult.cpp: Added.

(WebCore::IDBGetResult::dataFromBuffer):
(WebCore::IDBGetResult::isolatedCopy):

  • Modules/indexeddb/IDBGetResult.h:

(WebCore::IDBGetResult::IDBGetResult):
(WebCore::IDBGetResult::valueBuffer):
(WebCore::IDBGetResult::keyData):
(WebCore::IDBGetResult::primaryKeyData):
(WebCore::IDBGetResult::keyPath):
(WebCore::IDBGetResult::setValueBuffer):
(WebCore::IDBGetResult::setKeyData):
(WebCore::IDBGetResult::setPrimaryKeyData):
(WebCore::IDBGetResult::setKeyPath):
(WebCore::IDBGetResult::dataFromBuffer): Deleted.
(WebCore::IDBGetResult::isolatedCopy): Deleted.

  • Modules/indexeddb/client/IDBCursorImpl.cpp:

(WebCore::IDBClient::IDBCursor::setGetResult):

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

(WebCore::IDBClient::IDBTransaction::didGetRecordOnServer):

  • Modules/indexeddb/legacy/IDBTransactionBackendOperations.cpp:

(WebCore::GetOperation::perform):

  • Modules/indexeddb/server/IDBBackingStore.h:
  • Modules/indexeddb/server/MemoryCursor.h:
  • Modules/indexeddb/server/MemoryIndexCursor.cpp:

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

  • Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:

(WebCore::IDBServer::MemoryObjectStoreCursor::currentData):

  • platform/CrossThreadCopier.h:

Source/WebKit2:

  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:

(WebKit::UniqueIDBDatabase::getRecordFromBackingStore):

  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
  • DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h:
  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:

(WebKit::UniqueIDBDatabaseBackingStoreSQLite::getIndexRecord):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<IDBGetResult>::encode):
(IPC::ArgumentCoder<IDBGetResult>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in:
8:54 AM Changeset in webkit [192782] by Carlos Garcia Campos
  • 9 edits in trunk

[GTK] Remove the remaining uses of GMainLoopSource
https://bugs.webkit.org/show_bug.cgi?id=151632

Reviewed by Žan Doberšek.

Source/WebKit2:

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(_WebKitWebViewBasePrivate::_WebKitWebViewBasePrivate):
(_WebKitWebViewBasePrivate::clearRedirectedWindowSoonTimerFired):
(webkitWebViewBaseClearRedirectedWindowSoon):
(webkitWebViewBaseEnterAcceleratedCompositingMode):

Tools:

  • TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp:

(testWebViewSyncRequestOnMaxConns):

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::TestRunner):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:

(WTR::TestRunner::invalidateWaitToDumpWatchdogTimer):
(WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded):

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::timeoutSource):
(WTR::TestController::notifyDone):
(WTR::TestController::platformRunUntil):

6:16 AM Changeset in webkit [192781] by Csaba Osztrogonác
  • 4 edits in trunk

[cmake] Add testb3 to the build system
https://bugs.webkit.org/show_bug.cgi?id=151619

Reviewed by Gyuyoung Kim.

Source/JavaScriptCore:

  • shell/CMakeLists.txt:

Tools:

  • Scripts/build-jsc:
5:56 AM Changeset in webkit [192780] by Csaba Osztrogonác
  • 3 edits in trunk/Tools

[jhbuild] Fix pixman build with clang
https://bugs.webkit.org/show_bug.cgi?id=151441

Reviewed by Carlos Garcia Campos.

  • efl/jhbuild.modules:
  • gtk/jhbuild.modules:
5:24 AM Changeset in webkit [192779] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WTF

Fix build warning in bignum.cc
https://bugs.webkit.org/show_bug.cgi?id=150797

Reviewed by Geoffrey Garen.

  • wtf/dtoa/bignum.cc:
5:01 AM Changeset in webkit [192778] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Use mark pragmas only if it is supported
https://bugs.webkit.org/show_bug.cgi?id=151621

Reviewed by Mark Lam.

  • b3/air/AirIteratedRegisterCoalescing.cpp:
5:01 AM Changeset in webkit [192777] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Fix the ENABLE(B3_JIT) build with GCC in B3Procedure.h
https://bugs.webkit.org/show_bug.cgi?id=151620

Reviewed by Mark Lam.

  • b3/B3Procedure.h:
4:59 AM Changeset in webkit [192776] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[cmake] Add new B3 source files to the build system
https://bugs.webkit.org/show_bug.cgi?id=151618

Reviewed by Gyuyoung Kim.

  • CMakeLists.txt:
12:37 AM Changeset in webkit [192775] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK] Do not use the WebCore garbage collector timer
https://bugs.webkit.org/show_bug.cgi?id=151623

Reviewed by Martin Robinson.

Now that garbage collector timers have been implemented in
JavaScriptCore for glib, we don't need to use another Timer in WebCore.

  • bindings/js/GCController.cpp:

(WebCore::GCController::garbageCollectSoon):
(WebCore::GCController::garbageCollectNowIfNotDoneRecently):

Nov 26, 2015:

8:43 AM Changeset in webkit [192774] by ddkilzer@apple.com
  • 2 edits
    2 adds in trunk/Tools

Extract prependToEnvironmentVariableList
<http://webkit.org/b/151536>

Reviewed by Daniel Bates.

Tests: webkitdirs_unittest/appendToEnvironmentVariableList.pl

webkitdirs_unittest/prependToEnvironmentVariableList.pl

  • Scripts/webkitdirs.pm: Export appendToEnvironmentVariableList

and prependToEnvironmentVariableList.
(appendToEnvironmentVariableList): Simplify variable name.
Switch to use $Config{path_sep}.
(prependToEnvironmentVariableList): Add new method.
(setupMacWebKitEnvironment): Switch to use
prependToEnvironmentVariableList().
(setupIOSWebKitEnvironment): Ditto.

  • Scripts/webkitperl/webkitdirs_unittest/appendToEnvironmentVariableList.pl: Added.
  • Scripts/webkitperl/webkitdirs_unittest/prependToEnvironmentVariableList.pl: Added.
5:52 AM Changeset in webkit [192773] by Carlos Garcia Campos
  • 10 edits in trunk/Source/JavaScriptCore

[GLIB] Implement garbage collector timers
https://bugs.webkit.org/show_bug.cgi?id=151391

Reviewed by Žan Doberšek.

Add GLib implementation using GSource.

  • heap/EdenGCActivityCallback.cpp:
  • heap/FullGCActivityCallback.cpp:
  • heap/GCActivityCallback.cpp:

(JSC::GCActivityCallback::GCActivityCallback):
(JSC::GCActivityCallback::scheduleTimer):
(JSC::GCActivityCallback::cancelTimer):

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

(JSC::Heap::Heap):

  • heap/HeapTimer.cpp:

(JSC::HeapTimer::HeapTimer):
(JSC::HeapTimer::~HeapTimer):
(JSC::HeapTimer::timerDidFire):

  • heap/HeapTimer.h:
  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::IncrementalSweeper):
(JSC::IncrementalSweeper::scheduleTimer):
(JSC::IncrementalSweeper::cancelTimer):

  • heap/IncrementalSweeper.h:
Note: See TracTimeline for information about the timeline view.