Timeline
Apr 19, 2015:
- 11:05 PM Changeset in webkit [183005] by
-
- 10 edits in trunk/Source/JavaScriptCore
Remove all the remaining uses of OwnPtr and PassOwnPtr in JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=143941
Reviewed by Gyuyoung Kim.
- API/JSCallbackObject.h: Use unique_ptr for m_callbackObjectData.
- API/JSCallbackObjectFunctions.h: Ditto.
- API/ObjCCallbackFunction.h: Use unique_ptr for the arguments to the
create function and the constructor and for m_impl.
- API/ObjCCallbackFunction.mm:
(CallbackArgumentOfClass::CallbackArgumentOfClass): Streamline this
class by using RetainPtr<Class>.
(ArgumentTypeDelegate::typeInteger): Use make_unique.
(ArgumentTypeDelegate::typeDouble): Ditto.
(ArgumentTypeDelegate::typeBool): Ditto.
(ArgumentTypeDelegate::typeVoid): Ditto.
(ArgumentTypeDelegate::typeId): Ditto.
(ArgumentTypeDelegate::typeOfClass): Ditto.
(ArgumentTypeDelegate::typeBlock): Ditto.
(ArgumentTypeDelegate::typeStruct): Ditto.
(ResultTypeDelegate::typeInteger): Ditto.
(ResultTypeDelegate::typeDouble): Ditto.
(ResultTypeDelegate::typeBool): Ditto.
(ResultTypeDelegate::typeVoid): Ditto.
(ResultTypeDelegate::typeId): Ditto.
(ResultTypeDelegate::typeOfClass): Ditto.
(ResultTypeDelegate::typeBlock): Ditto.
(ResultTypeDelegate::typeStruct): Ditto.
(JSC::ObjCCallbackFunctionImpl::ObjCCallbackFunctionImpl): Use
unique_ptr for the arguments to the constructor, m_arguments, and m_result.
Use RetainPtr<Class> for m_instanceClass.
(JSC::objCCallbackFunctionCallAsConstructor): Use nullptr instead of nil or 0
for non-Objective-C object pointer null.
(JSC::ObjCCallbackFunction::ObjCCallbackFunction): Use unique_ptr for
the arguments to the constructor and for m_impl.
(JSC::ObjCCallbackFunction::create): Use unique_ptr for arguments.
(skipNumber): Mark this static since it's local to this source file.
(objCCallbackFunctionForInvocation): Call parseObjCType without doing any
explicit adoptPtr since the types in the traits are now unique_ptr. Also use
nullptr instead of nil for JSObjectRef values.
(objCCallbackFunctionForMethod): Tweaked comment.
(objCCallbackFunctionForBlock): Use nullptr instead of 0 for JSObjectRef.
- bytecode/CallLinkInfo.h: Removed unneeded include of OwnPtr.h.
- heap/GCThread.cpp:
(JSC::GCThread::GCThread): Use unique_ptr.
- heap/GCThread.h: Use unique_ptr for arguments to the constructor and for
m_slotVisitor and m_copyVisitor.
- heap/GCThreadSharedData.cpp:
(JSC::GCThreadSharedData::GCThreadSharedData): Ditto.
- parser/SourceProvider.h: Removed unneeded include of PassOwnPtr.h.
- 10:32 PM Changeset in webkit [183004] by
-
- 5 edits in branches/safari-600.1.4.16-branch/Source
Versioning.
- 10:30 PM Changeset in webkit [183003] by
-
- 1 copy in branches/safari-600.1.4.16-branch
New Branch.
- 9:47 PM Changeset in webkit [183002] by
-
- 2 edits in trunk/Websites/webkit.org
Fixed a typo.
- coding/RefPtr.html:
- 9:42 PM Changeset in webkit [183001] by
-
- 9 edits in trunk
Update RefPtr documentation and deprecation
https://bugs.webkit.org/show_bug.cgi?id=143936
Reviewed by Andreas Kling.
Source/WTF:
- WTF.vcxproj/WTF.vcxproj: Removed PassRef.h
- WTF.vcxproj/WTF.vcxproj.filters: Ditto.
- WTF.xcodeproj/project.pbxproj: Ditto.
- wtf/CMakeLists.txt: Ditto.
Tools:
- Scripts/do-webcore-rename: Put in some DeprecatedPassRefPtr renames.
Websites/webkit.org:
- coding/RefPtr.html: Updated.
- 9:17 PM Changeset in webkit [183000] by
-
- 5 edits in branches/safari-600.6-branch/Source
Versioning.
- 9:08 PM Changeset in webkit [182999] by
-
- 1 copy in tags/Safari-600.6.2
New tag.
- 8:54 PM Changeset in webkit [182998] by
-
- 4 edits in trunk/Source
Improve the feature.json files
- features.json:
- 6:45 PM Changeset in webkit [182997] by
-
- 14 edits3 adds in trunk
Introduce bytecode intrinsics
https://bugs.webkit.org/show_bug.cgi?id=143926
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
This patch introduces bytecode level intrinsics into builtins/*.js JS code.
When implementing functions in builtins/*.js,
sometimes we require lower level functionality.
For example, in the current Array.from, we use
result[k] = value.
The spec requires[[DefineOwnProperty]]operation here.
However, usualresult[k] = valueis evaluated as[[Set]]. (PutValue=>[[Set]])
So if we implementArray.prototype[k]getter/setter, the difference is observable.
Ideally, reaching here, we would like to use put_by_val_direct bytecode.
However, there's no syntax to generate it directly.
This patch introduces bytecode level intrinsics into JSC BytecodeCompiler.
Like @call, @apply, we introduce a new node, Intrinsic.
These are generated when calling appropriate private symbols in privileged code.
AST parser detects them and generates Intrinsic nodes and
BytecodeCompiler detects them and generate required bytecodes.
Currently, Array.from implementation works fine without this patch.
This is because when the target code is builtin JS,
BytecodeGenerator emits put_by_val_direct instead of put_by_val.
This solves the above issue. However, instead of solving this issue,
it raises another issue; There's no way to emit[[Set]]operation.
[[Set]]operation is actually used in the spec (Array.from's "length" is set by[[Set]]).
So to implement it precisely, introducing bytecode level intrinsics is necessary.
In the subsequent fixes, we'll remove that special path emitting put_by_val_direct
forresult[k] = valueunder builtin JS environment. Instead of that special handling,
use bytecode intrinsics instead. It solves problems and it is more intuitive
because written JS code in builtin works as the same to the usual JS code.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
- JavaScriptCore.xcodeproj/project.pbxproj:
- builtins/ArrayConstructor.js:
(from):
- bytecode/BytecodeIntrinsicRegistry.cpp: Added.
(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
(JSC::BytecodeIntrinsicRegistry::lookup):
- bytecode/BytecodeIntrinsicRegistry.h: Added.
- bytecompiler/NodesCodegen.cpp:
(JSC::BytecodeIntrinsicNode::emitBytecode):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_putByValDirect):
- parser/ASTBuilder.h:
(JSC::ASTBuilder::makeFunctionCallNode):
- parser/NodeConstructors.h:
(JSC::BytecodeIntrinsicNode::BytecodeIntrinsicNode):
- parser/Nodes.h:
(JSC::BytecodeIntrinsicNode::identifier):
- runtime/CommonIdentifiers.cpp:
(JSC::CommonIdentifiers::CommonIdentifiers):
- runtime/CommonIdentifiers.h:
(JSC::CommonIdentifiers::bytecodeIntrinsicRegistry):
- tests/stress/array-from-with-accessors.js: Added.
(shouldBe):
Tools:
Change cpplint to accept emit_intrinsic_XXX.
- Scripts/webkitpy/style/checkers/cpp.py:
(check_identifier_name_in_declaration):
- 6:28 PM Changeset in webkit [182996] by
-
- 3 edits in trunk
[CMake] Synchronize variables between WebKitFeatures.cmake and cmakedonfig.h.cmake
https://bugs.webkit.org/show_bug.cgi?id=143935
Reviewed by Darin Adler.
Some variables aren't defined in these files or unused variables aren't removed. This
patch cleans up it as well as fix wrong alphabet order.
- Source/cmake/WebKitFeatures.cmake:
- Source/cmakeconfig.h.cmake:
- 11:59 AM Changeset in webkit [182995] by
-
- 5 edits1 add in trunk/Source/JavaScriptCore
Make Builtin functions non constructible
https://bugs.webkit.org/show_bug.cgi?id=143923
Reviewed by Darin Adler.
Builtin functions defined by builtins/*.js accidentally have Construct.
According to the spec, these functions except for explicitly defined as a constructor do not have Construct.
This patch fixes it. When the JS function used for a construction is builtin function, throw not a constructor error.
Ideally, returning ConstructTypeNone in JSFunction::getConstructData is enough.
However, to avoid calling getConstructData (it involves indirect call of function pointer of getConstructData), some places do not check ConstructType.
In these places, they only check the target function is JSFunction because previously JSFunction always has Construct.
So in this patch, we checkisBuiltinFunction()in those places.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::inliningCost):
- jit/JITOperations.cpp:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::setUpCall):
- runtime/JSFunction.cpp:
(JSC::JSFunction::getConstructData):
- tests/stress/builtin-function-is-construct-type-none.js: Added.
(shouldThrow):
- 11:08 AM Changeset in webkit [182994] by
-
- 12 edits11 adds in trunk
[ES6] Implement WeakSet
https://bugs.webkit.org/show_bug.cgi?id=142408
Reviewed by Darin Adler.
Source/JavaScriptCore:
This patch implements ES6 WeakSet.
Current implementation simply leverages WeakMapData with undefined value.
This WeakMapData should be optimized in the same manner as MapData/SetData in the subsequent patch[1].
And in this patch, we also fix WeakMap/WeakSet behavior to conform the ES6 spec.
Except for adders (WeakMap.prototype.set/WeakSet.prototype.add),
methods return false (or undefined for WeakMap.prototype.get)
when a key is not Object instead of throwing a type error.
[1]: https://bugs.webkit.org/show_bug.cgi?id=143919
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
- JavaScriptCore.xcodeproj/project.pbxproj:
- runtime/CommonIdentifiers.h:
- runtime/JSGlobalObject.cpp:
- runtime/JSGlobalObject.h:
- runtime/JSWeakSet.cpp: Added.
(JSC::JSWeakSet::finishCreation):
(JSC::JSWeakSet::visitChildren):
- runtime/JSWeakSet.h: Added.
(JSC::JSWeakSet::createStructure):
(JSC::JSWeakSet::create):
(JSC::JSWeakSet::weakMapData):
(JSC::JSWeakSet::JSWeakSet):
- runtime/WeakMapPrototype.cpp:
(JSC::getWeakMapData):
(JSC::protoFuncWeakMapDelete):
(JSC::protoFuncWeakMapGet):
(JSC::protoFuncWeakMapHas):
- runtime/WeakSetConstructor.cpp: Added.
(JSC::WeakSetConstructor::finishCreation):
(JSC::callWeakSet):
(JSC::constructWeakSet):
(JSC::WeakSetConstructor::getConstructData):
(JSC::WeakSetConstructor::getCallData):
- runtime/WeakSetConstructor.h: Added.
(JSC::WeakSetConstructor::create):
(JSC::WeakSetConstructor::createStructure):
(JSC::WeakSetConstructor::WeakSetConstructor):
- runtime/WeakSetPrototype.cpp: Added.
(JSC::WeakSetPrototype::finishCreation):
(JSC::getWeakMapData):
(JSC::protoFuncWeakSetDelete):
(JSC::protoFuncWeakSetHas):
(JSC::protoFuncWeakSetAdd):
- runtime/WeakSetPrototype.h: Added.
(JSC::WeakSetPrototype::create):
(JSC::WeakSetPrototype::createStructure):
(JSC::WeakSetPrototype::WeakSetPrototype):
- tests/stress/weak-set-constructor-adder.js: Added.
(WeakSet.prototype.add):
- tests/stress/weak-set-constructor.js: Added.
LayoutTests:
Add basic-weakset test and fix WeakMap behavior to conform the latest spec.
- js/dom/basic-weakmap-expected.txt:
- js/dom/basic-weakset-expected.txt: Added.
- js/dom/basic-weakset.html: Added.
- js/dom/script-tests/basic-weakmap.js:
- js/dom/script-tests/basic-weakset.js: Added.
- 9:17 AM Changeset in webkit [182993] by
-
- 2 edits in trunk
Restore the WebKit.xcworkspace to the way it was before r182899,
which inadvertently added the Source directory and a couple of source
files.
- WebKit.xcworkspace/contents.xcworkspacedata:
- 12:10 AM Changeset in webkit [182992] by
-
- 5 edits in branches/safari-600.6-branch/Source
Versioning.
Apr 18, 2015:
- 11:56 PM Changeset in webkit [182991] by
-
- 1 copy in tags/Safari-600.6.1
New tag.
- 9:20 PM Changeset in webkit [182990] by
-
- 17 edits in trunk/Source/WebInspectorUI
Web Inspector: Pass multiple arguments to classList.add and classList.remove
https://bugs.webkit.org/show_bug.cgi?id=143914
classList.add and classList.remove can accept multiple arguments, use that.
Reviewed by Timothy Hatcher.
- UserInterface/Base/Main.js:
(WebInspector.updateDockedState):
- UserInterface/Views/DOMTreeDataGrid.js:
(WebInspector.DOMTreeDataGrid):
- UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline):
- UserInterface/Views/DataGrid.js:
(WebInspector.DataGridNode.prototype.set hasChildren):
- UserInterface/Views/DatabaseContentView.js:
(WebInspector.DatabaseContentView):
- UserInterface/Views/DetailsSection.js:
(WebInspector.DetailsSection):
- UserInterface/Views/DetailsSectionPropertiesRow.js:
(WebInspector.DetailsSectionPropertiesRow):
- UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype.set classNames):
- UserInterface/Views/NavigationItem.js:
(WebInspector.NavigationItem):
- UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView):
- UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
- UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar):
- UserInterface/Views/SidebarPanel.js:
(WebInspector.SidebarPanel):
- UserInterface/Views/SourceCodeTextEditor.js:
- UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor):
- UserInterface/Views/TimelineRuler.js:
- 9:19 PM Changeset in webkit [182989] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Make prototype pill’s background semi-transparent
https://bugs.webkit.org/show_bug.cgi?id=143928
Reviewed by Timothy Hatcher.
- UserInterface/Views/ObjectTreePropertyTreeElement.css:
(.object-tree-property.prototype-property):
(.object-tree-property.prototype-property:hover, .object-tree-property.prototype-property:focus):
Slightly highlight the prototype pill when hovering over.
- 8:29 PM Changeset in webkit [182988] by
-
- 2 edits in trunk/Source/WebCore
[Mac] Time elapsed should be right-aligned
https://bugs.webkit.org/show_bug.cgi?id=143927
Reviewed by Eric Carlson.
Current time is left-aligned, which is visually jarring when going from < 1 hour to > 1 hour.
- Modules/mediacontrols/mediaControlsApple.css:
(audio::-webkit-media-controls-current-time-display): Set justify-content to flex-end.
(audio::-webkit-media-controls-time-remaining-display): Explicitly set justify-content to flex-start.
- 3:06 PM Changeset in webkit [182987] by
-
- 2 edits in trunk/Tools
Fix lldb_webkit.py to show StringImpls correctly
https://bugs.webkit.org/show_bug.cgi?id=143920
Reviewed by Andreas Kling.
Update WTFStringImplProvider's is_8bit to use the correct bitmask.
- lldb/lldb_webkit.py:
(WTFStringImplProvider.is_8bit):
- 1:15 PM Changeset in webkit [182986] by
-
- 8 edits1 add in trunk/LayoutTests
[EFL] Unreviewed gardening
Update test expectations for failing tests.
- platform/efl/TestExpectations:
- platform/efl/fast/css/text-overflow-ellipsis-bidi-expected.txt: Rebaseline after r182620.
- platform/efl/fast/dom/focus-contenteditable-expected.txt: Ditto.
- platform/efl/fast/forms/listbox-hit-test-zoomed-expected.txt: Ditto.
- platform/efl/fast/parser/open-comment-in-textarea-expected.txt: Ditto.
- platform/efl/fast/text/international/bidi-layout-across-linebreak-expected.txt: Ditto.
- platform/efl/inspector-protocol/debugger/regress-133182-expected.txt: Rebaseline after r181810.
- platform/efl/svg/wicd/test-rightsizing-b-expected.txt: Rebaseline after r182620.
- 12:39 PM Changeset in webkit [182985] by
-
- 25 edits2 adds in trunk
REGRESSION (r181656): Animated tiled layers are missing content
https://bugs.webkit.org/show_bug.cgi?id=143911
rdar://problem/20596328
Reviewed by Darin Adler.
Source/WebCore:
After r181656, all requestAnimationFrame was falling back to timers, and not
using the platform's DisplayRefreshMonitor, because of a Nullopt vs nullptr
fumble. As a result, GraphicsLayerUpdater (which updates tiled layers during
animations) was failing to do any updates.
Replace this confusing Optional<> code with simpler code that just forces the
clients to make a DisplayRefreshMonitor if they can, first asking
ChromeClient, and then falling back to createDefaultDisplayRefreshMonitor().
Make lots of things into references, and use C++11 initialization in some places.
Add Internals API to allow a test to get the number of layer flushes that have
occurred.
- dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::ScriptedAnimationController):
(WebCore::ScriptedAnimationController::windowScreenDidChange):
(WebCore::ScriptedAnimationController::scheduleAnimation):
(WebCore::ScriptedAnimationController::createDisplayRefreshMonitor):
- dom/ScriptedAnimationController.h:
- page/ChromeClient.h:
- platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::createDefaultDisplayRefreshMonitor):
(WebCore::DisplayRefreshMonitor::create):
(WebCore::DisplayRefreshMonitor::addClient):
(WebCore::DisplayRefreshMonitor::removeClient):
(WebCore::DisplayRefreshMonitor::displayDidRefresh):
- platform/graphics/DisplayRefreshMonitor.h:
- platform/graphics/DisplayRefreshMonitorClient.cpp:
(WebCore::DisplayRefreshMonitorClient::~DisplayRefreshMonitorClient):
- platform/graphics/DisplayRefreshMonitorClient.h:
- platform/graphics/DisplayRefreshMonitorManager.cpp:
(WebCore::DisplayRefreshMonitorManager::createMonitorForClient):
(WebCore::DisplayRefreshMonitorManager::registerClient):
(WebCore::DisplayRefreshMonitorManager::unregisterClient):
(WebCore::DisplayRefreshMonitorManager::scheduleAnimation):
(WebCore::DisplayRefreshMonitorManager::displayDidRefresh):
(WebCore::DisplayRefreshMonitorManager::windowScreenDidChange):
- platform/graphics/DisplayRefreshMonitorManager.h:
- platform/graphics/GraphicsLayerUpdater.cpp:
(WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
(WebCore::GraphicsLayerUpdater::scheduleUpdate):
(WebCore::GraphicsLayerUpdater::screenDidChange):
(WebCore::GraphicsLayerUpdater::displayRefreshFired):
(WebCore::GraphicsLayerUpdater::createDisplayRefreshMonitor):
- platform/graphics/GraphicsLayerUpdater.h:
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::RenderLayerCompositor::notifyFlushBeforeDisplayRefresh):
(WebCore::RenderLayerCompositor::flushLayersSoon):
(WebCore::RenderLayerCompositor::createDisplayRefreshMonitor):
(WebCore::RenderLayerCompositor::startTrackingLayerFlushes):
(WebCore::RenderLayerCompositor::layerFlushCount):
- rendering/RenderLayerCompositor.h:
- testing/Internals.cpp:
(WebCore::Internals::startTrackingLayerFlushes):
(WebCore::Internals::layerFlushCount):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit2:
After r181656, all requestAnimationFrame was falling back to timers, and not
using the platform's DisplayRefreshMonitor, because of a Nullopt vs nullptr
fumble.
Replace this confusing Optional<> code with simpler code that just forces the
clients to make a DisplayRefreshMonitor if they can, first asking
ChromeClient, and then falling back to createDefaultDisplayRefreshMonitor().
Make lots of things into references, and use C++11 initialization in some places.
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createDisplayRefreshMonitor):
- WebProcess/WebCoreSupport/WebChromeClient.h:
LayoutTests:
Test that animates a tiled layer, and checks that layer flushes occur while the
animation is running.
- compositing/animation/animation-backing-expected.txt: Added.
- compositing/animation/animation-backing.html: Added.
- 7:57 AM Changeset in webkit [182984] by
-
- 3 edits2 moves1 add in trunk/Source/WebKit2
SwipeShadow images are installed on iOS
https://bugs.webkit.org/show_bug.cgi?id=143915
Reviewed by Tim Horton.
- Configurations/WebKit.xcconfig: Added Resources/Mac/* to
EXCLUDED_SOURCE_FILE_NAMES[sdk=iphone*]. We could move more resources there and remove
individual patterns.
- Resources/SwipeShadow.png: Moved to mac.
- Resources/SwipeShadow@2x.png: Moved to mac.
- Resources/mac: Added.
- Resources/mac/SwipeShadow.png: Moved from Source/WebKit2/Resources/SwipeShadow.png.
- Resources/mac/SwipeShadow@2x.png: Moved from Source/WebKit2/Resources/SwipeShadow@2x.png.
- WebKit2.xcodeproj/project.pbxproj: Created mac group in the Resources group and moved
SwipeShadow*.png into it. Updated for file moves.
- 7:42 AM Changeset in webkit [182983] by
-
- 4 edits in trunk/Source/WebKit2
Fix NetworkCache Statistics database bootstrapping after r182803
https://bugs.webkit.org/show_bug.cgi?id=143890
Reviewed by Darin Adler.
Update the NetworkCache Statistics database bootstrapping code to use
the records path instead of the version path. Also check that the
filenames in the folder are valid hashes to discard the *-body files.
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::recordsPath):
(WebKit::NetworkCache::Cache::storagePath): Deleted.
- NetworkProcess/cache/NetworkCache.h:
- NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::Statistics::initialize):
(WebKit::NetworkCache::Statistics::bootstrapFromNetworkCache):
(WebKit::NetworkCache::Statistics::shrinkIfNeeded):