Timeline
Apr 28, 2015:
- 11:20 PM Changeset in webkit [183534] by
-
- 5 edits in trunk/Source
Versioning.
- 11:18 PM Changeset in webkit [183533] by
-
- 1 copy in tags/Safari-601.1.31
New tag.
- 11:18 PM Changeset in webkit [183532] by
-
- 3 edits in trunk/Source/WebKit2
[SOUP] Use xattrs to get/set the creation time of disk cache files
https://bugs.webkit.org/show_bug.cgi?id=144251
Reviewed by Martin Robinson.
The network process disk cache uses the creation time to compute a
worth value used to determine the order in which cached resources
are deleted when the cache is shrunk. In some operating systems
like Linux there's no st_birthtime in struct stat, but since cache
files are always created and deleted by us, we could use a custom
xattr to store and retrieve the creation time of cached resources.
- NetworkProcess/cache/NetworkCacheFileSystemPosix.h:
(WebKit::NetworkCache::fileTimes):
- NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::IOChannel::IOChannel):
- 11:14 PM Changeset in webkit [183531] by
-
- 3 edits in trunk/Source/WebKit2
Network Cache: Do not create a SharedBuffer for mapped resources unless explicitly requested
https://bugs.webkit.org/show_bug.cgi?id=144337
Reviewed by Antti Koivisto.
We send a buffer or a memory mapped handler to the web process
depending on whether the resource body is mapped or not, but we
are always creating a shared buffer even for mapped resources.
Split initializeBufferFromStorageRecord() moving the mapped memory
handler initialization to its own method.
- NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord):
Initialize the mapped memory handler if the body data is mapped.
(WebKit::NetworkCache::Entry::initializeBufferFromStorageRecord):
Initialize the buffer by wrapping the mapped memory if the body
data is mapped, or using the body data directly otherwise.
(WebKit::NetworkCache::Entry::shareableResourceHandle): Call
initializeShareableResourceHandleFromStorageRecord() if the
handler is null.
- NetworkProcess/cache/NetworkCacheEntry.h:
- 10:51 PM Changeset in webkit [183530] by
-
- 6 edits in trunk/Source
Make a non-static version of FrameView::yPositionForRootContentLayer()
https://bugs.webkit.org/show_bug.cgi?id=144375
Reviewed by Andy Estes.
There were two calls to the static FrameView::yPositionForRootContentLayer()
which passed in all the arguments for the same FrameView. Make a member
function for convenience.
Source/WebCore:
- page/FrameView.cpp:
(WebCore::FrameView::yPositionForRootContentLayer):
- page/FrameView.h:
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateRootLayerPosition):
Source/WebKit2:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::shadowLayerPositionForFrame):
- 10:05 PM Changeset in webkit [183529] by
-
- 31 edits5 moves1 delete in trunk
[CoordinatedGraphics] Merge TILED_BACKING_STORE guard with COORDINATED_GRAPHICS
https://bugs.webkit.org/show_bug.cgi?id=143001
Reviewed by Gyuyoung Kim.
.:
- Source/cmake/OptionsEfl.cmake: Removed TILED_BACKING_STORE definition.
- Source/cmake/OptionsGTK.cmake: Ditto.
Source/WebCore:
TiledBackingStore has only been used by Coordinated Graphics since Qt and WebKit1/Efl were dropped.
So, this patch replaces USE(TILED_BACKING_STORE) with USE(COORDINATED_GRAPHICS) to merge the features.
In addition, this moves TiledBackingStore and related files from platform to platform/texmap/coordinated
where other coordinated graphics files are located.
- CMakeLists.txt: Move TiledBackingStore.cpp because this is not common file.
- PlatformEfl.cmake:
- PlatformGTK.cmake:
- WebCore.vcxproj/WebCore.vcxproj: Follow new location of TiledBackingStore* files.
- WebCore.vcxproj/WebCore.vcxproj.filters:
- loader/EmptyClients.h:
- page/Chrome.cpp:
- page/Chrome.h:
- page/ChromeClient.h:
- page/Frame.cpp:
(WebCore::Frame::createView):
- page/FrameView.cpp:
(WebCore::FrameView::requestScrollPositionUpdate):
- page/FrameView.h:
- page/Page.cpp:
(WebCore::Page::setPageScaleFactor):
- platform/HostWindow.h:
- platform/ScrollView.cpp:
(WebCore::ScrollView::unscaledVisibleContentSizeIncludingObscuredArea):
(WebCore::ScrollView::unscaledUnobscuredVisibleContentSize):
(WebCore::ScrollView::visibleContentRectInternal):
(WebCore::ScrollView::scrollTo):
- platform/ScrollView.h:
- platform/graphics/cairo/TileCairo.h: Removed because it is dead code since r169328
- platform/graphics/texmap/coordinated/Tile.h: Renamed from Source/WebCore/platform/graphics/Tile.h.
- platform/graphics/texmap/coordinated/TiledBackingStore.cpp: Renamed from Source/WebCore/platform/graphics/TiledBackingStore.cpp.
- platform/graphics/texmap/coordinated/TiledBackingStore.h: Renamed from Source/WebCore/platform/graphics/TiledBackingStore.h.
- platform/graphics/texmap/coordinated/TiledBackingStoreBackend.h: Renamed from Source/WebCore/platform/graphics/TiledBackingStoreBackend.h.
- platform/graphics/texmap/coordinated/TiledBackingStoreClient.h: Renamed from Source/WebCore/platform/graphics/TiledBackingStoreClient.h.
Source/WebKit/win:
- WebCoreSupport/WebChromeClient.h:
(WebChromeClient::delegatedScrollRequested):
Deleted because WIN does not use Coordinated Graphics.
Source/WebKit2:
- UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::commitCoordinatedGraphicsState):
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::dispatchViewportPropertiesDidChange):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidLayout):
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setSize):
(WebKit::WebPage::setUseFixedLayout):
(WebKit::WebPage::canHandleUserEvents):
- WebProcess/WebPage/WebPage.h:
Tools:
- WebKitTestRunner/TestController.cpp:
(WTR::shouldUseFixedLayout):
- 9:39 PM Changeset in webkit [183528] by
-
- 5 edits in tags/Safari-601.1.30.2.1/Source
Versioning.
- 9:37 PM Changeset in webkit [183527] by
-
- 1 copy in tags/Safari-601.1.30.2.1
New tag.
- 8:56 PM Changeset in webkit [183526] by
-
- 2 edits in trunk/Source/JavaScriptCore
Deadlock on applications using JSContext on non-main thread
https://bugs.webkit.org/show_bug.cgi?id=144370
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-28
Reviewed by Timothy Hatcher.
- inspector/remote/RemoteInspector.mm:
(Inspector::RemoteInspector::singleton):
Prevent a possible deadlock by assuming we can synchronously
run something on the main queue at this time.
- 8:34 PM Changeset in webkit [183525] by
-
- 14 edits in trunk/Source/JavaScriptCore
FTL should fully support Switch (it currently lacks the SwitchString variant)
https://bugs.webkit.org/show_bug.cgi?id=144348
Reviewed by Benjamin Poulain.
This adds SwitchString support to the FTL. This is already tested by switch microbenchmarks
in LayoutTests/js/regress.
- dfg/DFGCommon.cpp:
(JSC::DFG::stringLessThan):
- dfg/DFGCommon.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::StringSwitchCase::operator<): Deleted.
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::StringSwitchCase::operator<):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLIntrinsicRepository.h:
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileSwitch):
(JSC::FTL::LowerDFGToLLVM::switchString):
(JSC::FTL::LowerDFGToLLVM::StringSwitchCase::StringSwitchCase):
(JSC::FTL::LowerDFGToLLVM::StringSwitchCase::operator<):
(JSC::FTL::LowerDFGToLLVM::CharacterCase::CharacterCase):
(JSC::FTL::LowerDFGToLLVM::CharacterCase::operator<):
(JSC::FTL::LowerDFGToLLVM::switchStringRecurse):
(JSC::FTL::LowerDFGToLLVM::switchStringSlow):
(JSC::FTL::LowerDFGToLLVM::appendOSRExit):
- ftl/FTLOutput.cpp:
(JSC::FTL::Output::check):
- ftl/FTLOutput.h:
- ftl/FTLWeight.h:
(JSC::FTL::Weight::inverse):
- jit/JITOperations.h:
- 7:26 PM Changeset in webkit [183524] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(180076): [Mac, iOS] Correct possible null dereference in printing code
https://bugs.webkit.org/show_bug.cgi?id=144366
<rdar://problem/20533513>
Reviewed by Dean Jackson.
- rendering/RenderBlockFlow.cpp:
(WebCore::needsAppleMailPaginationQuirk): Check if the document settings is a nullptr
before attempting to dereference it.
- 7:12 PM Changeset in webkit [183523] by
-
- 35 edits in trunk/Source/WebCore
Simplify DOM wrapper destruction, don't deref() in finalizers.
<https://webkit.org/b/144183>
Reviewed by Darin Adler.
DOM JS bindings had two mechanisms to call deref() on the WebCore object,
once through a weak finalizer, and once through the JSCell's regular destructor.
That was once believed to be an optimization, but these days the finalizer will
run just moments before the destructor anyway, all in the same call stack.
And more importantly, the finalizer is not guaranteed to run, for instance in the
case where a Weak is assigned to after going dead, but before the WeakBlock
has been swept by the incremental sweeper.
Simplify this by just removing the deref() from the generated finalizers.
This makes it easier to reason about DOM wrapper destruction, and eliminates
the awkward time window where a DOM wrapper could have a null impl().
We could spend more time on figuring out a way to have finalizers manage the
destruction of these wrappers, but that would require fundamental changes to
our implementation of JSC::Weak pointers. It would allow us to make JSDOMWrapper
destructor-less, and shrink each wrapper object by 1 pointer (the ClassInfo*.)
However the risk:reward ratio does not seem justified at this point in time.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
- bindings/js/JSCSSValueCustom.cpp:
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::JSTestActiveDOMObject::~JSTestActiveDOMObject):
(WebCore::JSTestActiveDOMObjectOwner::finalize):
- bindings/scripts/test/JS/JSTestActiveDOMObject.h:
- bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::JSTestCustomNamedGetter::~JSTestCustomNamedGetter):
(WebCore::JSTestCustomNamedGetterOwner::finalize):
- bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructor::~JSTestEventConstructor):
(WebCore::JSTestEventConstructorOwner::finalize):
- bindings/scripts/test/JS/JSTestEventConstructor.h:
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTarget::~JSTestEventTarget):
(WebCore::JSTestEventTargetOwner::finalize):
- bindings/scripts/test/JS/JSTestEventTarget.h:
- bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::JSTestException::~JSTestException):
(WebCore::JSTestExceptionOwner::finalize):
- bindings/scripts/test/JS/JSTestException.h:
- bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::JSTestGenerateIsReachable::~JSTestGenerateIsReachable):
(WebCore::JSTestGenerateIsReachableOwner::finalize):
- bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
- bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterface::~JSTestInterface):
(WebCore::JSTestInterfaceOwner::finalize):
- bindings/scripts/test/JS/JSTestInterface.h:
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListener::~JSTestMediaQueryListListener):
(WebCore::JSTestMediaQueryListListenerOwner::finalize):
- bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructor::~JSTestNamedConstructor):
(WebCore::JSTestNamedConstructorOwner::finalize):
- bindings/scripts/test/JS/JSTestNamedConstructor.h:
- bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::JSTestNondeterministic::~JSTestNondeterministic):
(WebCore::JSTestNondeterministicOwner::finalize):
- bindings/scripts/test/JS/JSTestNondeterministic.h:
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObj::~JSTestObj):
(WebCore::JSTestObjOwner::finalize):
- bindings/scripts/test/JS/JSTestObj.h:
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructors::~JSTestOverloadedConstructors):
(WebCore::JSTestOverloadedConstructorsOwner::finalize):
- bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterface::~JSTestSerializedScriptValueInterface):
(WebCore::JSTestSerializedScriptValueInterfaceOwner::finalize):
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefs::~JSTestTypedefs):
(WebCore::JSTestTypedefsOwner::finalize):
- bindings/scripts/test/JS/JSTestTypedefs.h:
- bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::JSattribute::~JSattribute):
(WebCore::JSattributeOwner::finalize):
- bindings/scripts/test/JS/JSattribute.h:
- bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::JSreadonly::~JSreadonly):
(WebCore::JSreadonlyOwner::finalize):
- bindings/scripts/test/JS/JSreadonly.h:
- 6:24 PM Changeset in webkit [183522] by
-
- 1 copy in tags/Safari-600.7.4
New tag.
- 5:57 PM Changeset in webkit [183521] by
-
- 3 edits in trunk/Source/WebCore
Build WinCairo without cygwin.
https://bugs.webkit.org/show_bug.cgi?id=144365
Reviewed by Myles Maxfield.
- WebCore.vcxproj/WebCoreGeneratedWinCairo.make:
Pass the CC executable to build-generated-files.pl like r182164.
- WebCore.vcxproj/build-generated-files.pl:
Default to 8 CPUs unless otherwise specified.
- 5:51 PM Changeset in webkit [183520] by
-
- 13 edits in trunk/Tools
Increase stablility of run-benchmark script
https://bugs.webkit.org/show_bug.cgi?id=144361
Patch by Dewei Zhu <Dewei Zhu> on 2015-04-28
Reviewed by Ryosuke Niwa.
- Scripts/run-benchmark:
(main):
- Scripts/webkitpy/benchmark_runner/README.md: Update readme due to changes.
- Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py:
(GenericBenchmarkBuilder.clean):
- Scripts/webkitpy/benchmark_runner/benchmark_runner.py: Improve error handling and remove an unnecessary loop.
(BenchmarkRunner.init):
(BenchmarkRunner.execute):
- Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:
(OSXSafariDriver.prepareEnv): Remove saved sessions of Safari.
- Scripts/webkitpy/benchmark_runner/data/patches/JetStream.patch: Upload 'results' rather than 'time'.
- Scripts/webkitpy/benchmark_runner/data/plans/jetstream.plan: Update formate.
- Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan: Update formate.
- Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:
(ServerControl.render_POST): Flush the buffer to make sure we can pass the result to stdout.
- Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:
(HTTPServerDriver.fetchResult):
(HTTPServerDriver):
(HTTPServerDriver.killServer): Add kill server interface.
(HTTPServerDriver.getReturnCode): Add get return code interface.
- Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py: Adjust to support new interfaces.
(SimpleHTTPServerDriver.serve):
(SimpleHTTPServerDriver.fetchResult):
(SimpleHTTPServerDriver):
(SimpleHTTPServerDriver.killServer):
(SimpleHTTPServerDriver.getReturnCode):
- Scripts/webkitpy/benchmark_runner/utils.py:
(forceRemove): Provide python version of 'rm -rf'.
- 5:32 PM Changeset in webkit [183519] by
-
- 4 edits9 copies in branches/safari-600.1.4.16-branch
Merged r183280. rdar://problem/20700030
- 5:22 PM Changeset in webkit [183518] by
-
- 7 edits in trunk
[Content Extensions] Process NFAs individually to avoid having all NFAs live at the same time
https://bugs.webkit.org/show_bug.cgi?id=144363
Reviewed by Alex Christensen.
Source/WebCore:
This brings dirty memory use when compiling our test content extension down from ~300MB to ~100MB.
- contentextensions/CombinedURLFilters.cpp:
(WebCore::ContentExtensions::CombinedURLFilters::processNFAs):
(WebCore::ContentExtensions::CombinedURLFilters::createNFAs): Deleted.
- contentextensions/CombinedURLFilters.h:
Replace function that creates a Vector of all the NFAs with one that allows incremental processing
as they are created.
- contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::addUniversalActionsToDFA):
Extract code to add universal actions into a helper, since we need to call it in two places now.
(WebCore::ContentExtensions::compileRuleList):
Adopt CombinedURLFilters::processNFAs. Now that we don't have a Vector of NFAs, we need to keep track
of whether or not any NFAs were processed and if we are currently processing the first NFA so we can
ensure that we have some bytecode generated event for empty rule sets, and that universal actions are
placed on the first DFA.
Tools:
- TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::createNFAs):
(TestWebKitAPI::TEST_F):
- TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp:
(TestWebKitAPI::countLiveNodes):
(TestWebKitAPI::createNFAs):
(TestWebKitAPI::buildDFAFromPatterns):
Update tests to use a hand rolled createNFAs function on top of CombinedURLFilters::processNFAs.
- 4:27 PM Changeset in webkit [183517] by
-
- 29 edits in trunk/Source
[TextIndicator] Yellow highlight takes too long to fade out on scroll
https://bugs.webkit.org/show_bug.cgi?id=144358
<rdar://problem/19451011>
Reviewed by Beth Dakin.
- page/TextIndicator.h:
Add Lifetime and DismissalAnimation enums.
(WebCore::TextIndicator::contentImageWithHighlight):
(WebCore::TextIndicator::contentImage):
Fix style.
- page/mac/TextIndicatorWindow.h:
- page/mac/TextIndicatorWindow.mm:
(WebCore::TextIndicatorWindow::TextIndicatorWindow):
(WebCore::TextIndicatorWindow::~TextIndicatorWindow):
(WebCore::TextIndicatorWindow::clearTextIndicator):
(WebCore::TextIndicatorWindow::setTextIndicator):
(WebCore::TextIndicatorWindow::closeWindow):
(WebCore::TextIndicatorWindow::startFadeOut):
Rename m_startFadeOutTimer to m_temporaryTextIndicatorTimer (and related).
This is just about temporary-lifetime TextIndicators, like the ones
you get when the find-in-page UI is hidden but you hit Cmd-G.
Add clearTextIndicator, which takes a DismissalAnimation, providing
clients an opportunity to avoid the normal fade-out animation, if it
was going to happen.
- WebView/WebActionMenuController.mm:
(-[WebActionMenuController _showTextIndicator]):
- WebView/WebHTMLView.mm:
(-[WebHTMLView quickLookWithEvent:]):
- WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController _defaultAnimationController]):
(-[WebImmediateActionController _animationControllerForDataDetectedText]):
(-[WebImmediateActionController _animationControllerForDataDetectedLink]):
Pull _clearTextIndicatorWithAnimation out, make it avoid using a dismissal animation
if we're called from didHandleScrollWheel.
- WebView/WebView.mm:
(-[WebView _animationControllerForDictionaryLookupPopupInfo:]):
(-[WebView _setTextIndicator:]):
(-[WebView _setTextIndicator:withLifetime:]):
(-[WebView _clearTextIndicator]):
(-[WebView _showDictionaryLookupPopup:]):
(-[WebView _dictionaryLookupPopoverWillClose:]):
(-[WebView _setTextIndicator:fadeOut:]): Deleted.
- WebView/WebViewInternal.h:
Make _setTextIndicator take a reference.
Add a variant of _setTextIndicator that takes a Lifetime.
Make _clearTextIndicatorWithAnimation take a DismissalAnimation.
- UIProcess/API/Cocoa/WKViewPrivate.h:
- UIProcess/API/mac/WKView.mm:
(-[WKView renewGState]):
(-[WKView viewDidMoveToWindow]):
(-[WKView _dictionaryLookupPopoverWillClose:]):
(-[WKView _setTextIndicator:]):
(-[WKView _setTextIndicator:withLifetime:]):
(-[WKView _clearTextIndicatorWithAnimation:]):
(-[WKView magnifyWithEvent:]):
(-[WKView smartMagnifyWithEvent:]):
(-[WKView setMagnification:centeredAtPoint:]):
(-[WKView setMagnification:]):
(-[WKView _dismissContentRelativeChildWindows]):
(-[WKView _dismissContentRelativeChildWindowsWithAnimation:]):
(-[WKView _setTextIndicator:fadeOut:]): Deleted.
- UIProcess/API/mac/WKViewInternal.h:
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::pageDidScroll):
(WebKit::WebPageProxy::setTextIndicator):
(WebKit::WebPageProxy::clearTextIndicator):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::setTextIndicator):
(WebKit::PageClientImpl::clearTextIndicator):
- UIProcess/mac/PageClientImpl.h:
- UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::setTextIndicator):
(WebKit::PageClientImpl::clearTextIndicator):
(WebKit::PageClientImpl::didPerformDictionaryLookup):
(WebKit::PageClientImpl::dismissContentRelativeChildWindows):
- UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
- UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController _animationControllerForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForDataDetectedLink]):
(-[WKImmediateActionController _animationControllerForText]):
- WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindIndicator):
Make _setTextIndicator take a reference.
Add a variant of _setTextIndicator that takes a Lifetime.
Make _clearTextIndicatorWithAnimation take a DismissalAnimation.
Make dismissContentRelativeChildWindows take a parameter indicating
whether the dismissal should include animation or not (currently
only applies to TextIndicator).
Don't animate when dismissal occurs because of scrolling, zooming,
or other things in which the content will have changed significantly
underneath the indicator and shouldn't have a slowly-fading-out yellow highlight.
- 4:16 PM Changeset in webkit [183516] by
-
- 14 edits in trunk
Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT
https://bugs.webkit.org/show_bug.cgi?id=144304
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig: Define ENABLE_JIT, enabled by default, instead of
ENABLE_LLINT_C_LOOP, disabled by default.
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL): Check ENABLE_JIT instead of ENABLE_LLINT_C_LOOP.
Source/WebCore:
Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.
- Configurations/FeatureDefines.xcconfig:
Source/WebKit/mac:
Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.
- Configurations/FeatureDefines.xcconfig:
Source/WTF:
No longer check ENABLE_LLINT_C_LOOP to determine the value of ENABLE_JIT.
- wtf/Platform.h:
Tools:
- Scripts/build-jsc: Use ENABLE_JIT instead of ENABLE_LLINT_C_LOOP on Mac. Always explicitly
set the value of ENABLE_JIT and ENABLE_FTL_JIT to avoid assumptions about the default value.
- Scripts/webkitperl/FeatureList.pm: Add --jit option to build-webkit.
- 4:04 PM Changeset in webkit [183515] by
-
- 14 edits in trunk
Unreviewed, rolling out r183514.
https://bugs.webkit.org/show_bug.cgi?id=144359
It broke cloop test bots (Requested by mcatanzaro on #webkit).
Reverted changeset:
"Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT"
https://bugs.webkit.org/show_bug.cgi?id=144304
http://trac.webkit.org/changeset/183514
- 3:50 PM Changeset in webkit [183514] by
-
- 14 edits in trunk
Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT
https://bugs.webkit.org/show_bug.cgi?id=144304
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig: Define ENABLE_JIT, enabled by default, instead of
ENABLE_LLINT_C_LOOP, disabled by default.
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL): Check ENABLE_JIT instead of ENABLE_LLINT_C_LOOP.
Source/WebCore:
Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.
- Configurations/FeatureDefines.xcconfig:
Source/WebKit/mac:
Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.
- Configurations/FeatureDefines.xcconfig:
Source/WTF:
No longer check ENABLE_LLINT_C_LOOP to determine the value of ENABLE_JIT.
- wtf/Platform.h:
Tools:
- Scripts/build-jsc: Use ENABLE_JIT instead of ENABLE_LLINT_C_LOOP on Mac. Perform sanity-
checking to ensure --cloop and --ftl-jit cannot be combined. Always explicitly set the value
of ENABLE_JIT and ENABLE_FTL_JIT to avoid assumptions about the default value.
- Scripts/webkitperl/FeatureList.pm: Add --jit option to build-webkit.
- 3:38 PM Changeset in webkit [183513] by
-
- 2 edits in trunk/LayoutTests
[WK2] fast/forms/input-search-press-escape-key.html crashes
https://bugs.webkit.org/show_bug.cgi?id=87168
rdar://problem/11508829
- platform/wk2/TestExpectations: This doesn't crash for me any more, unskipping.
- 3:35 PM Changeset in webkit [183512] by
-
- 3 edits in trunk/Tools
[CMake] Remove unnecessary include paths in TestWebKitAPI cmake files
https://bugs.webkit.org/show_bug.cgi?id=144319
Reviewed by Csaba Osztrogonác.
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/PlatformEfl.cmake:
- 3:21 PM Changeset in webkit [183511] by
-
- 3 edits2 adds in trunk
Checkboxes on bugs.webkit.org are painted with stripes at some zoom levels.
https://bugs.webkit.org/show_bug.cgi?id=144351
Reviewed by Simon Fraser.
This patch ensures that CG context is properly restored after painting dashed/dotted lines.
Source/WebCore:
Test: fast/forms/checkbox-painting-with-hr.html
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawLine):
LayoutTests:
- fast/forms/checkbox-painting-with-hr-expected.html: Added.
- fast/forms/checkbox-painting-with-hr.html: Added.
- 2:51 PM Changeset in webkit [183510] by
-
- 4 edits in trunk/Source/WebCore
Provide contentsToView() and viewToContents() functions on ScrollView, and use them
https://bugs.webkit.org/show_bug.cgi?id=144357
Reviewed by Tim Horton.
Too much code was consulting topContentInset() and headerHeight() directly. Replace
with calls to new contentsToView() and viewToContents() functions, which wrap the
exisiting documentScrollOffsetRelativeToViewOrigin().
Use the new functions in FrameView and ScrollView coordinate mapping functions.
No behavior change.
- page/FrameView.cpp:
(WebCore::FrameView::convertFromRendererToContainingView):
(WebCore::FrameView::convertFromContainingViewToRenderer):
- platform/ScrollView.cpp:
(WebCore::ScrollView::viewToContents):
(WebCore::ScrollView::contentsToView):
(WebCore::ScrollView::rootViewToContents):
(WebCore::ScrollView::contentsToRootView):
(WebCore::ScrollView::rootViewToTotalContents):
(WebCore::ScrollView::windowToContents):
(WebCore::ScrollView::contentsToWindow):
- platform/ScrollView.h:
- 2:40 PM Changeset in webkit [183509] by
-
- 15 edits in trunk/Source/WebCore
[Mac] Simplify code to support media engines which do not support target playback
https://bugs.webkit.org/show_bug.cgi?id=144332
Reviewed by Jer Noble.
- Modules/mediasession/WebMediaSessionManager.cpp:
(WebCore::WebMediaSessionManager::externalOutputDeviceAvailableDidChange): Always make client
callback, let them decide if it is significant or not.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): m_loadTimer -> m_pendingActionTimer.
(WebCore::HTMLMediaElement::scheduleDelayedAction): Handle CheckPlaybackTargetCompatablity.
(WebCore::HTMLMediaElement::scheduleNextSourceChild): m_loadTimer -> m_pendingActionTimer.
(WebCore::HTMLMediaElement::loadTimerFired): Renamed pendingActionTimerFired.
(WebCore::HTMLMediaElement::prepareForLoad): m_loadTimer -> m_pendingActionTimer.
(WebCore::HTMLMediaElement::setDefaultPlaybackRate): Add logging.
(WebCore::HTMLMediaElement::clearMediaPlayer): m_loadTimer -> m_pendingActionTimer.
(WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsSupported): Removed.
(WebCore::HTMLMediaElement::dispatchEvent): If a 'webkitcurrentplaybacktargetiswirelesschanged'
event is dispatched when the current target is wireless but the media engine does not support
wireless playback, tell the media engine not to play to the target.
- html/HTMLMediaElement.h:
- html/HTMLMediaElement.idl:
- html/HTMLMediaSession.cpp:
(WebCore::HTMLMediaSession::showPlaybackTargetPicker): Drive-by fix to disallow audio-only files.
(WebCore::HTMLMediaSession::currentPlaybackTargetIsSupported): Deleted.
- html/HTMLMediaSession.h:
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::isCurrentPlaybackTargetSupported): Deleted.
- platform/graphics/MediaPlayer.h:
- platform/graphics/MediaPlayerPrivate.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldPlayToPlaybackTarget): Use a RetainPtr
to explicitly manage the lifetime of the temporary object.
(WebCore::MediaPlayerPrivateAVFoundationObjC::isPlayingToWirelessPlaybackTarget): Ditto.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setShouldPlayToPlaybackTarget):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isCurrentPlaybackTargetWireless):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isCurrentPlaybackTargetSupported): Deleted.
- platform/graphics/mac/MediaPlayerPrivateQTKit.h:
- platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::setShouldPlayToPlaybackTarget):
(WebCore::MediaPlayerPrivateQTKit::isCurrentPlaybackTargetWireless):
(WebCore::MediaPlayerPrivateQTKit::isCurrentPlaybackTargetSupported): Deleted.
- 2:19 PM Changeset in webkit [183508] by
-
- 4 edits9 adds in branches/safari-600.7-branch
Merge r183280. rdar://problem/20694404
- 1:45 PM Changeset in webkit [183507] by
-
- 2 edits in trunk
Unreviewed, fix typo in previous commit
libsecretr -> libsecret in the error message.
- Source/cmake/OptionsGTK.cmake:
- 1:45 PM Changeset in webkit [183506] by
-
- 10 edits in trunk
Fix common typo "targetting" => "targeting"
https://bugs.webkit.org/show_bug.cgi?id=144349
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-28
Reviewed by Daniel Bates.
Source/JavaScriptCore:
- bytecode/ExecutionCounter.h:
Source/WebKit/mac:
- Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::loadRequest):
- Plugins/WebNetscapePluginView.mm:
(-[WebNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]):
- WebView/WebPolicyDelegate.h:
Source/WebKit/win:
- Interfaces/IWebPolicyDelegate.idl:
Tools:
- Scripts/webkitdirs.pm:
(execMacWebKitAppForDebugging):
- 1:39 PM Changeset in webkit [183505] by
-
- 2 edits in trunk
[GTK] Clean up feature detection and make it hard to accidentally build without optional features
https://bugs.webkit.org/show_bug.cgi?id=143546
Reviewed by Martin Robinson.
Add USE_GSTREAMER_MPEGTS option and turn it off by default. Turn off ENABLE_SUBTLE_CRYPTO
by default. Turn on ENABLE_GEOLOCATION by default. Add USE_LIBNOTIFY and turn it on by
default. Fail the build with an informative error message if an optional dependency required
for an enabled feature is not present. Perform find_package commands only when necessary.
Make ENABLE_API_TESTS private. Alphabetize the feature checks (yes, this is actually
possible now!).
- Source/cmake/OptionsGTK.cmake:
- 1:23 PM Changeset in webkit [183504] by
-
- 2 edits in trunk/Source/WTF
Properly reset deleted count when clearing HashTables.
https://bugs.webkit.org/show_bug.cgi?id=144343
Reviewed by Andreas Kling.
- wtf/HashTable.h:
(WTF::KeyTraits>::clear):
Reset m_deletedCount, which appears to have been forgotten.
- 1:18 PM Changeset in webkit [183503] by
-
- 7 edits in trunk/Source/WebKit2
Add support for lookup on iOS.
https://bugs.webkit.org/show_bug.cgi?id=144342
rdar://problem/19994090
Reviewed by Tim Horton.
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _lookup:]):
(-[WKContentView canPerformAction:withSender:]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::getLookupContextAtPoint):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getLookupContextAtPoint):
- 1:01 PM Changeset in webkit [183502] by
-
- 5 edits in tags/Safari-601.1.30.2/Source
Versioning.
- 12:59 PM Changeset in webkit [183501] by
-
- 1 copy in tags/Safari-601.1.30.2
New tag.
- 12:58 PM Changeset in webkit [183500] by
-
- 2 edits in trunk/Source/JavaScriptCore
Update the features.json for WeakSet, WeakMap, Template literals, Tagged templates
https://bugs.webkit.org/show_bug.cgi?id=144328
Reviewed by Andreas Kling.
Update the status of ES6 features.
- features.json:
- 12:40 PM Changeset in webkit [183499] by
-
- 9 edits in trunk/Source
[Content Extensions] Use less memory for CombinedURLFilters.
https://bugs.webkit.org/show_bug.cgi?id=144290
Patch by Alex Christensen <achristensen@webkit.org> on 2015-04-28
Reviewed by Andreas Kling.
Source/WebCore:
- contentextensions/CombinedURLFilters.cpp:
(WebCore::ContentExtensions::recursiveMemoryUsed):
(WebCore::ContentExtensions::CombinedURLFilters::addPattern):
(WebCore::ContentExtensions::generateNFAForSubtree):
(WebCore::ContentExtensions::CombinedURLFilters::createNFAs):
- contentextensions/NFA.cpp:
(WebCore::ContentExtensions::NFA::memoryUsed):
(WebCore::ContentExtensions::NFA::setActions):
- contentextensions/NFA.h:
- contentextensions/NFANode.h:
- contentextensions/Term.h:
(WebCore::ContentExtensions::Term::Term::generateGraph):
(WebCore::ContentExtensions::Term::generateSubgraphForAtom):
Use Vectors instead of HashTables in PrefixTreeVertex because the sets stay small and need to be more memory efficient.
Source/WTF:
- wtf/Forward.h:
- wtf/Vector.h:
Added a minCapacity template parameter to allow changing the minimum size of an
allocated buffer. The default minCapacity is kept at 16 unless otherwise specified
to have no change on existing code, but this could be changed later. A smaller
default minCapacity would use less memory with small Vectors but spend more time
copying when expanding to large Vectors.
- 12:38 PM Changeset in webkit [183498] by
-
- 20 edits in trunk/Source
Consolidate most "frame load" arguments into FrameLoadRequest.
https://bugs.webkit.org/show_bug.cgi?id=144276
Reviewed by Alexey Proskuryakov.
Source/WebCore:
No new tests (No change in behavior).
This patch starts the long overdue process of wrangling the insane load methods in FrameLoader.
Humble beginnings of this long process:
- Put most of the various "frame load" arguments that are passed around within FrameLoader on FrameLoadRequest.
- Get rid of the "easy" constructors of FrameLoadRequest, forcing users to actually think about what they're doing.
- Change a private FrameLoader load method (urlSelected) to take a FrameLoadRequest instead of argument gobbledygook.
- Change a public FrameLoader load methods (changeLocation) to take a FrameLoadRequest instead of gobbledygook.
These cover the straightforward changes where it was easy to figure out what the values of the FrameLoadRequest
arguments were from these various call sites.
Further refactoring can be done in much smaller patches, handling fewer cases at a time. Little by little we will be
able to reduce the number of "load" methods on FrameLoader and make sure that they mainly only take a FrameLoadRequest
as an argument.
- inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::openInNewTab):
- inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::navigate):
- loader/FrameLoadRequest.cpp:
(WebCore::FrameLoadRequest::FrameLoadRequest):
- loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::FrameLoadRequest):
(WebCore::FrameLoadRequest::lockHistory):
(WebCore::FrameLoadRequest::lockBackForwardList):
(WebCore::FrameLoadRequest::shouldSendReferrer):
(WebCore::FrameLoadRequest::allowNavigationToInvalidURL):
(WebCore::FrameLoadRequest::newFrameOpenerPolicy):
(WebCore::FrameLoadRequest::shouldReplaceDocumentIfJavaScriptURL):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::changeLocation):
(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::loadFrameRequest):
- loader/FrameLoader.h:
- loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::scheduleLocationChange):
- page/ContextMenuController.cpp:
(WebCore::openNewWindow):
(WebCore::ContextMenuController::contextMenuItemSelected):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::createWindow):
Source/WebKit/ios:
- WebView/WebPDFViewPlaceholder.mm:
(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):
Source/WebKit/mac:
- WebView/WebPDFView.mm:
(-[WebPDFView PDFViewWillClickOnLink:withURL:]):
Source/WebKit/win:
- Plugins/PluginView.cpp:
(WebCore::PluginView::start):
(WebCore::PluginView::getURLNotify):
(WebCore::PluginView::getURL):
(WebCore::PluginView::handlePost):
Source/WebKit2:
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::loadURL):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchCreatePage):
- WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::openInNewTab):
- 12:27 PM Changeset in webkit [183497] by
-
- 34 edits2 adds6 deletes in trunk/Source/JavaScriptCore
DFG should not use or preserve Phantoms during transformations
https://bugs.webkit.org/show_bug.cgi?id=143736
Reviewed by Geoffrey Garen.
Since http://trac.webkit.org/changeset/183207 and http://trac.webkit.org/changeset/183406, it is
no longer necessary to preserve Phantoms during transformations. They are still useful just
before FixupPhase to support backwards propagation analyses. They are still inserted late in the
game in the DFG backend. But transformations don't need to worry about them. Inside a basic
block, we can be sure that so long as the IR pinpoints the place where the value becomes
available in a bytecode register (using MovHint) and so long as there is a SetLocal anytime some
other block would need the value (either for OSR or for DFG execution), then we don't need any
liveness markers.
So, this removes any places where we inserted Phantoms just for liveness during transformation
and it replaces convertToPhantom() with remove(), which just converts the node to a Check. A
Check node only keeps its children so long as those children have checks.
The fact that we no longer convertToPhantom() means that we have to be more careful when
constant-folding GetLocal. Previously we would convertToPhantom() and use the fact that
Phantom(Phi) was a valid construct. It's not valid anymore. So, when constant folding encounters
a GetLocal it needs to insert a PhantomLocal directly. This allows us to simplify
Graph::convertToConstant() a bit. Luckily, none of the other users of this method would see
GetLocals.
The only Phantom-like cruft left over after this patch is:
- Phantoms before FixupPhase. I kind of like these. It means that before FixupPhase, we can do backwards analyses and rely on the fact that the users of a node in DFG IR are a superset of the users of the original local's live range in bytecode. This is essential for supporting our BackwardsPropagationPhase, which is an important optimization for things like asm.js.
- PhantomLocals and GetLocals being NodeMustGenerate. See discussion in https://bugs.webkit.org/show_bug.cgi?id=144086. It appears that this is not as evil as the alternatives. The best long-term plan is to simply ditch the ThreadedCPS IR entirely and have the DFG use SSA. For now, so long as any new DFG optimizations we add are block-local and treat GetLocal/SetLocal conservatively, this should all be sound.
This change should be perf-neutral although it does reduce the total work that the compiler
does.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.xcodeproj/project.pbxproj:
- dfg/DFGAdjacencyList.h:
(JSC::DFG::AdjacencyList::justChecks):
- dfg/DFGArgumentsEliminationPhase.cpp:
- dfg/DFGBasicBlock.cpp:
(JSC::DFG::BasicBlock::replaceTerminal):
- dfg/DFGBasicBlock.h:
(JSC::DFG::BasicBlock::findTerminal):
- dfg/DFGCFGSimplificationPhase.cpp:
(JSC::DFG::CFGSimplificationPhase::keepOperandAlive):
(JSC::DFG::CFGSimplificationPhase::mergeBlocks):
- dfg/DFGCPSRethreadingPhase.cpp:
(JSC::DFG::CPSRethreadingPhase::CPSRethreadingPhase):
(JSC::DFG::CPSRethreadingPhase::clearVariables):
(JSC::DFG::CPSRethreadingPhase::canonicalizeFlushOrPhantomLocalFor):
(JSC::DFG::CPSRethreadingPhase::canonicalizeLocalsInBlock):
- dfg/DFGCSEPhase.cpp:
- dfg/DFGCleanUpPhase.cpp: Copied from Source/JavaScriptCore/dfg/DFGPhantomRemovalPhase.cpp.
(JSC::DFG::CleanUpPhase::CleanUpPhase):
(JSC::DFG::CleanUpPhase::run):
(JSC::DFG::performCleanUp):
(JSC::DFG::PhantomRemovalPhase::PhantomRemovalPhase): Deleted.
(JSC::DFG::PhantomRemovalPhase::run): Deleted.
(JSC::DFG::performPhantomRemoval): Deleted.
- dfg/DFGCleanUpPhase.h: Copied from Source/JavaScriptCore/dfg/DFGPhantomRemovalPhase.h.
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
(JSC::DFG::ConstantFoldingPhase::addBaseCheck):
(JSC::DFG::ConstantFoldingPhase::fixUpsilons):
- dfg/DFGDCEPhase.cpp:
(JSC::DFG::DCEPhase::run):
(JSC::DFG::DCEPhase::fixupBlock):
(JSC::DFG::DCEPhase::cleanVariables):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupBlock):
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::convertStringAddUse):
(JSC::DFG::FixupPhase::attemptToMakeFastStringAdd):
(JSC::DFG::FixupPhase::checkArray):
(JSC::DFG::FixupPhase::fixIntConvertingEdge):
(JSC::DFG::FixupPhase::fixIntOrBooleanEdge):
(JSC::DFG::FixupPhase::fixDoubleOrBooleanEdge):
(JSC::DFG::FixupPhase::injectTypeConversionsInBlock):
(JSC::DFG::FixupPhase::tryToRelaxRepresentation):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):
(JSC::DFG::FixupPhase::addRequiredPhantom): Deleted.
(JSC::DFG::FixupPhase::addPhantomsIfNecessary): Deleted.
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::convertToConstant):
(JSC::DFG::Graph::mergeRelevantToOSR): Deleted.
- dfg/DFGGraph.h:
- dfg/DFGInsertionSet.h:
(JSC::DFG::InsertionSet::insertCheck):
- dfg/DFGIntegerCheckCombiningPhase.cpp:
(JSC::DFG::IntegerCheckCombiningPhase::handleBlock):
- dfg/DFGLICMPhase.cpp:
(JSC::DFG::LICMPhase::attemptHoist):
- dfg/DFGNode.cpp:
(JSC::DFG::Node::remove):
- dfg/DFGNode.h:
(JSC::DFG::Node::replaceWith):
(JSC::DFG::Node::convertToPhantom): Deleted.
(JSC::DFG::Node::convertToCheck): Deleted.
(JSC::DFG::Node::willHaveCodeGenOrOSR): Deleted.
- dfg/DFGNodeFlags.h:
- dfg/DFGNodeType.h:
- dfg/DFGObjectAllocationSinkingPhase.cpp:
(JSC::DFG::ObjectAllocationSinkingPhase::lowerNonReadingOperationsOnPhantomAllocations):
(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):
- dfg/DFGPhantomCanonicalizationPhase.cpp: Removed.
- dfg/DFGPhantomCanonicalizationPhase.h: Removed.
- dfg/DFGPhantomRemovalPhase.cpp: Removed.
- dfg/DFGPhantomRemovalPhase.h: Removed.
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
- dfg/DFGPutStackSinkingPhase.cpp:
- dfg/DFGResurrectionForValidationPhase.cpp: Removed.
- dfg/DFGResurrectionForValidationPhase.h: Removed.
- dfg/DFGSSAConversionPhase.cpp:
(JSC::DFG::SSAConversionPhase::run):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
- dfg/DFGStoreBarrierElisionPhase.cpp:
(JSC::DFG::StoreBarrierElisionPhase::elideBarrier):
- dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
(JSC::DFG::StrengthReductionPhase::convertToIdentityOverChild):
- dfg/DFGValidate.cpp:
(JSC::DFG::Validate::validate):
(JSC::DFG::Validate::validateCPS):
(JSC::DFG::Validate::validateSSA):
- dfg/DFGVarargsForwardingPhase.cpp:
- ftl/FTLLink.cpp:
(JSC::FTL::link):
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileNoOp):
(JSC::FTL::LowerDFGToLLVM::compilePhantom): Deleted.
- 11:56 AM Changeset in webkit [183496] by
-
- 2 edits in trunk/Tools
[GTK][jhbuild] Mesa build failure with llvm 3.6
https://bugs.webkit.org/show_bug.cgi?id=144250
Reviewed by Žan Doberšek.
Bump the version of Mesa to 10.5.4
- gtk/jhbuild.modules:
- 11:54 AM Changeset in webkit [183495] by
-
- 7 edits3 adds in trunk
Source/JavaScriptCore:
DFG+FTL should generate efficient code for branching on a string's boolean value.
<https://webkit.org/b/144317>
Reviewed by Geoff Garen & Filip Pizlo
Teach Branch nodes about StringUse and have them generate an efficient zero-length string check
instead of dropping out to C++ whenever we branch on a string.
The FTL JIT already handled Branch nodes with StringUse through its use of boolify(), so only
the DFG JIT gets some new codegen logic in this patch.
Test: js/regress/branch-on-string-as-boolean.js (~4.5x speedup)
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitStringBranch):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitBranch):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::emitBranch):
LayoutTests:
DFG should generate efficient code for branching on a string's boolean value.
<https://webkit.org/b/144317>
Reviewed by Geoff Garen & Filip Pizlo.
- js/regress/branch-on-string-as-boolean-expected.txt: Added.
- js/regress/branch-on-string-as-boolean.html: Added.
- js/regress/script-tests/branch-on-string-as-boolean.js: Added.
- 11:36 AM Changeset in webkit [183494] by
-
- 18 edits2 adds in trunk
Source/WebCore:
[Mac] [iOS] Implement font-synthesis CSS property
https://bugs.webkit.org/show_bug.cgi?id=144305
Reviewed by Andreas Kling.
This patch is fairly straightforward, though there are some particular pieces to the patch listed below.
The implementation of this font-synthesis CSS property lives inside FontCacheIOS and FontCacheMac. We already
determine if we should synthesize bold and italics, this CSS property simply guards that decision.
Because FontCache interacts with FontDescriptions and not RenderStyles, this patch moves the source of truth
regarding font-synthesis into FontDescription (from RenderStyle).
Test: fast/css3-text/font-synthesis.html
- css/CSSPropertyNames.in: Mark font-synthesis as a FontProperty, which means that the relevant state is kept
inside FontDescription. This also means that the property must be marked as a "high priority" property, which
is enforced by it existing at the top of CSSPropertyNames.in. The move to FontDescription must be done so that
FontCacheIOS and FontCacheMac have access to the saved state.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::fontSynthesisFromStyle): Update to look for state in FontDescription instead of RenderStyle.
- css/CSSSegmentedFontFace.cpp:
(WebCore::CSSSegmentedFontFace::fontRanges): Guard the synthetic bold and synthic italic decision on the new
FontSynthesis state inside FontDescription.
- css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertFontSynthesis): Moved from
StyleBuilderCustom::applyValueFontSynthesis(). This is because of the updated options inside of
CSSPropertyNames.in
- css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyValueFontSynthesis): Deleted.
- platform/graphics/FontDescription.h:
(WebCore::FontDescription::FontDescription): Moved from RenderStyle.
(WebCore::FontDescription::fontSynthesis): Ditto.
(WebCore::FontDescription::setFontSynthesis): Ditto.
(WebCore::FontDescription::initialFontSynthesis): Ditto.
(WebCore::FontDescription::operator==): Update to include new state.
- platform/graphics/FontCache.h:
(WebCore::FontDescriptionFontDataCacheKey::makeFlagKey): Make FontDescription hashes sensitive to the new
state inside FontDescription.
- platform/graphics/ios/FontCacheIOS.mm:
(WebCore::FontCache::createFontPlatformData): Guard the synthetic bold and synthetic italic decision on the
new FontSynthesis state inside FontDescription.
- platform/graphics/mac/FontCacheMac.mm:
(WebCore::FontCache::createFontPlatformData): Ditto.
- platform/text/TextFlags.h: Move FontSynthesis type from RenderStyleConstants.
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::fontSynthesis): Moved to FontDescription.
(WebCore::RenderStyle::setFontSynthesis): Ditto.
(WebCore::RenderStyle::initialFontSynthesis): Ditto.
- rendering/style/RenderStyleConstants.h: Moved FontSynthesis type to TextFlags.
- rendering/style/StyleRareInheritedData.h: Remove state regarding font synthesis (moved to FontDescription)
LayoutTests:
Implement font-synthesis CSS property
https://bugs.webkit.org/show_bug.cgi?id=144305
Reviewed by Andreas Kling.
Test all combinations of font-weight, font-style, and font-synthesis.
- fast/css3-text/font-synthesis-expected.html: Added.
- fast/css3-text/font-synthesis.html: Added.
- 11:04 AM Changeset in webkit [183493] by
-
- 3 edits1 add in trunk/LayoutTests
[Win] Temporarily disable WebGL support
https://bugs.webkit.org/show_bug.cgi?id=144291
- platform/win/TestExpectations:
- platform/win/js/dom/constructor-length-expected.txt: Added.
- platform/win/js/dom/global-constructors-attributes-expected.txt:
- 11:04 AM Changeset in webkit [183492] by
-
- 2 edits in trunk/Source/JavaScriptCore
VarargsForwardingPhase should only consider MovHints that have the candidate as a child
https://bugs.webkit.org/show_bug.cgi?id=144340
Reviewed by Michael Saboff and Mark Lam.
Since we were considering all MovHints, we'd assume that the CreateDirectArguments or
CreateClosedArguments node was live so long as any MovHinted bytecode variable was alive.
Basically, we'd keep it alive until the end of the block. This maximized the chances of
there being an interfering operation, which would prevent elimination.
The fix is to only consider MovHints that have the arguments candidate as a child. We only
care to track the liveness of those bytecode locals that would need an arguments object
recovery on OSR exit.
This is a speed-up on V8Spider/raytrace and Octane/raytrace because it undoes the regression
introduced in http://trac.webkit.org/changeset/183406.
- dfg/DFGVarargsForwardingPhase.cpp:
- 11:04 AM WebKitGTK/StartHacking edited by
- Added link to icecc usage instructions (diff)
- 11:01 AM Changeset in webkit [183491] by
-
- 2 edits in trunk
[GTK] Make all options actually options
https://bugs.webkit.org/show_bug.cgi?id=144106
Reviewed by Martin Robinson.
Use WEBKIT_OPTION_DEFINE to set ENABLE_GTKDOC, ENABLE_INTROSPECTION, ENABLE_X11_TARGET, and
ENABLE_WAYLAND_TARGET.
- Source/cmake/OptionsGTK.cmake:
- 10:57 AM Changeset in webkit [183490] by
-
- 5 edits in branches/safari-600.7-branch/Source
Versioning.
- 10:45 AM Changeset in webkit [183489] by
-
- 2 edits in trunk/Source/WebCore
SharedBuffer::copy is not computing the buffer size correctly when having m_dataArray
https://bugs.webkit.org/show_bug.cgi?id=144321
Reviewed by Darin Adler.
Patch correctness covered by existing tests.
- platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::copy): Direct appending to m_dataArray and not using append method as this method updates the SharedBuffer size.
- 10:44 AM Changeset in webkit [183488] by
-
- 2 edits in trunk/Tools
Disable App Nap in WebKitTestRunner UI process
https://bugs.webkit.org/show_bug.cgi?id=144308
Reviewed by Daniel Bates.
- WebKitTestRunner/mac/main.mm:
(disableAppNapInUIProcess):
(main):
- 10:38 AM Changeset in webkit [183487] by
-
- 1 edit in trunk/LayoutTests/ChangeLog
Unreviewed gardening; add results for new tests.
- media/audio-playback-restriction-autoplay-expected.txt: Added.
- media/audio-playback-restriction-play-expected.txt: Added.
- 10:36 AM Changeset in webkit [183486] by
-
- 2 edits in trunk/Tools
[GTK] Update JHBuild Mesa download directory
https://bugs.webkit.org/show_bug.cgi?id=144318
Update the download directory of Mesa module since the previous one
doesn't exist any more.
Patch by Marcos Chavarría Teijeiro <chavarria1991@gmail.com> on 2015-04-28
Reviewed by Žan Doberšek.
- gtk/jhbuild.modules:
- 10:28 AM Changeset in webkit [183485] by
-
- 2 edits in trunk/Source/WebCore
[Curl] Memory leak.
https://bugs.webkit.org/show_bug.cgi?id=144327
Reviewed by Brent Fulgham.
When a data url is loaded, the ResourceHandle is not released.
- platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::startJob):
- 10:14 AM Changeset in webkit [183484] by
-
- 1 edit5 adds in branches/safari-600.6-branch/LayoutTests
Unreviewed Mac gardening for safari-600.6-branch.
- platform/mac-mavericks/media/controls-after-reload-expected.png: Added.
- platform/mac-mavericks/media/controls-after-reload-expected.txt: Added.
- platform/mac-wk2/media/controls-after-reload-expected.png: Added.
- platform/mac-wk2/media/controls-after-reload-expected.txt: Added.
- 10:05 AM Changeset in webkit [183483] by
-
- 2 edits in trunk/LayoutTests
[Win] PHP scripts fail if HTTP_ORIGIN is not set.
https://bugs.webkit.org/show_bug.cgi?id=144333
Rubberstamped by Brady Eidson.
- http/tests/security/resources/cors-post-redirect-target.php: Check
that HTTP_ORIGIN key exists before using it to avoid PHP error.
- 10:05 AM Changeset in webkit [183482] by
-
- 2 edits in trunk/Websites/webkit.org
Fix the link noted 'contribute to features' in status.html
https://bugs.webkit.org/show_bug.cgi?id=144331
Reviewed by Csaba Osztrogonác.
Fix the href of the link to http://www.webkit.org/coding/contributing.html.
- status.html:
- 9:41 AM Changeset in webkit [183481] by
-
- 2 edits in trunk/Tools
Unreviewed, rolling out r183477.
https://bugs.webkit.org/show_bug.cgi?id=144334
Roll back the Mesa dependency bump in fear of uncaught
regressions while the testing bots are no-op. (Requested by
zdobersek on #webkit).
Reverted changeset:
"[GTK][jhbuild] Mesa build failure with llvm 3.6"
https://bugs.webkit.org/show_bug.cgi?id=144250
http://trac.webkit.org/changeset/183477
Patch by Commit Queue <commit-queue@webkit.org> on 2015-04-28
- 9:39 AM Changeset in webkit [183480] by
-
- 2 edits in trunk/Source/WebKit2
[WK2][Mac] Update WebContent process' sandbox profile for AWD
https://bugs.webkit.org/show_bug.cgi?id=144315
<rdar://problem/20719293>
Reviewed by Alexey Proskuryakov.
Update sandbox profile for AWD similarly to what was done for iOS in
r182278.
- WebProcess/com.apple.WebProcess.sb.in:
- 8:56 AM Changeset in webkit [183479] by
-
- 8 edits1 add in trunk
[Win] Deactivate WebGL until Windows tests work properly
https://bugs.webkit.org/show_bug.cgi?id=144291
<rdar://problem/20707307>
Reviewed by Zalan Bujtas.
Source/WebKit:
- WebKit.vcxproj/WebKit/WebKitANGLE.props: Added.
- WebKit.vcxproj/WebKit/WebKitCommon.props: Remove ANGLE link
libraries from common property sheet.
- WebKit.vcxproj/WebKit/WebKitDebugWinCairo.props: Reference
the WebKitANGLE property sheet.
- WebKit.vcxproj/WebKit/WebKitReleaseWinCairo.props: Ditto.
Source/WTF:
- wtf/FeatureDefines.h: Force WebGL off for Windows builds.
WebKitLibraries:
- win/tools/vsprops/FeatureDefines.props: Turn off the WEB_GL
feature for the Apple Windows port.
- 8:52 AM Changeset in webkit [183478] by
-
- 2 edits in trunk/Source/WebCore
Fix the Mavericks Debug build after r183467.
- platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::requester): Removed WEBCORE_EXPORT.
(WebCore::ResourceRequestBase::setRequester): Ditto.
- 8:47 AM Changeset in webkit [183477] by
-
- 2 edits in trunk/Tools
[GTK][jhbuild] Mesa build failure with llvm 3.6
https://bugs.webkit.org/show_bug.cgi?id=144250
Reviewed by Žan Doberšek.
Bump the version of Mesa to 10.5.4
- gtk/jhbuild.modules:
- 8:19 AM Changeset in webkit [183476] by
-
- 2 edits1 delete in trunk/Source/JavaScriptCore
Remove WinCE cruft from cmake build system
https://bugs.webkit.org/show_bug.cgi?id=144325
Reviewed by Gyuyoung Kim.
- CMakeLists.txt:
- create_jit_stubs: Removed.
- 8:11 AM Changeset in webkit [183475] by
-
- 1 edit1 delete in trunk/Source/WebCore
Remove make-file-arrays.py
https://bugs.webkit.org/show_bug.cgi?id=144324
Reviewed by Gyuyoung Kim.
- make-file-arrays.py: Removed.
- 8:03 AM Changeset in webkit [183474] by
-
- 3 edits in branches/safari-600.6-branch/Tools
Fix webkitpy tests after r183471.
- Scripts/webkitpy/port/mac_unittest.py:
(test_baseline_search_path): Taught about mac-mavericks.
- Scripts/webkitpy/tool/commands/rebaseline_unittest.py:
(TestRebaselineTest.test_baseline_directory): Ditto.
- 7:37 AM Changeset in webkit [183473] by
-
- 1 edit3 adds in trunk/LayoutTests
Add expectations for tests added in r183428 and r183450.
- js/regress/typed-array-get-set-by-val-profiling-expected.txt: Added.
- media/audio-playback-restriction-autoplay-expected.txt: Added.
- media/audio-playback-restriction-play-expected.txt: Added.
- 7:19 AM Changeset in webkit [183472] by
-
- 2 edits in trunk/Source/WebCore
Build fix.
- platform/network/ios/ResourceRequestIOS.mm:
(WebCore::ResourceRequest::ResourceRequest):
- 7:19 AM Changeset in webkit [183471] by
-
- 2 edits in branches/safari-600.6-branch/Tools
Tell mac.py about 'mac-yosemite' so that fallback to 'mac-mavericks' works properly.
- Scripts/webkitpy/port/mac.py:
(MacPort):
- 6:35 AM Changeset in webkit [183470] by
-
- 1 edit53 adds in branches/safari-600.6-branch/LayoutTests
Add results to platform/mac-mavericks/ that were previously in a separate repository.
- platform/mac-mavericks/TestExpectations: Added.
- platform/mac-mavericks/accessibility/aria-readonly-expected.txt: Added.
- platform/mac-mavericks/canvas/philip/tests/2d.line.join.parallel-expected.txt: Added.
- platform/mac-mavericks/css2.1/t0905-c5525-flthw-00-c-g-expected.txt: Added.
- platform/mac-mavericks/css2.1/t0905-c5526-flthw-00-c-g-expected.txt: Added.
- platform/mac-mavericks/fast/js/global-constructors-attributes-expected.txt: Added.
- platform/mac-mavericks/fast/replaced/width-and-height-of-positioned-replaced-elements-expected.txt: Added.
- platform/mac-mavericks/fast/text/hyphenate-locale-expected.txt: Added.
- platform/mac-mavericks/fast/text/international/bold-bengali-expected.txt: Added.
- platform/mac-mavericks/fast/text/international/cjk-segmentation-expected.txt: Added.
- platform/mac-mavericks/fast/text/international/hindi-spacing-expected.txt: Added.
- platform/mac-mavericks/fast/text/international/khmer-selection-expected.txt: Added.
- platform/mac-mavericks/fast/writing-mode/text-orientation-basic-expected.txt: Added.
- platform/mac-mavericks/fast/xsl/xslt-missing-namespace-in-xslt-expected.txt: Added.
- platform/mac-mavericks/fonts/cursive-expected.txt: Added.
- platform/mac-mavericks/http/tests/cache/partitioned-cache-expected.txt: Added.
- platform/mac-mavericks/http/tests/cache/partitioned-cache-iframe-expected.txt: Added.
- platform/mac-mavericks/http/tests/xmlhttprequest/head-redirection-expected.txt: Added.
- platform/mac-mavericks/media/video-controls-captions-trackmenu-includes-enabled-track-expected.txt: Added.
- platform/mac-mavericks/platform/mac-wk2/TestExpectations: Added.
- platform/mac-mavericks/platform/mac/accessibility/form-control-value-settable-expected.txt: Added.
- platform/mac-mavericks/platform/mac/accessibility/press-action-is-first-expected.txt: Added.
- platform/mac-mavericks/platform/mac/editing/spelling/removing-underline-after-accepting-autocorrection-using-punctuation-expected.txt: Added.
- platform/mac-mavericks/platform/mac/fast/loader/file-url-mimetypes-expected.txt: Added.
- platform/mac-mavericks/platform/mac/fast/text/systemFont-expected.png: Added.
- platform/mac-mavericks/svg/W3C-SVG-1.1/paths-data-03-f-expected.txt: Added.
- platform/mac-mavericks/svg/custom/use-on-symbol-inside-pattern-expected.txt: Added.
- platform/mac-mavericks/svg/hixie/intrinsic/003-expected.txt: Added.
- platform/mac-mavericks/transitions/default-timing-function-expected.txt: Added.
- 6:30 AM Changeset in webkit [183469] by
-
- 20 edits2 copies in trunk/Source/WebInspectorUI
Web Inspector: add a separate overview for the Rendering Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=144245
Patch by Matt Baker <Matt Baker> on 2015-04-28
Reviewed by Timothy Hatcher.
The Timelines tab now supports two view modes, labeled "Timelines" and "Rendering Frames", with each mode
having a seperate timeline overview and selected range. The Timelines mode displays the original time-based
graphs (Network, Layout, and Script), and switching to the Rendering Frames mode displays a frames graph
with a timeline ruler which shows frame indices.
If the rendering frames timeline is supported by the backend, a navigation bar is added to the timelines
sidebar with controls for switching between view modes. In addition to user-triggered view mode changes, the
timelines sidebar will automatically change the current view mode in response to content view changes that
are triggered elsewhere in the UI (for example, when a timeline that does not belong to the current view
mode is selected via the navigation path).
- UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.get activeRecording): Deleted.
(WebInspector.TimelineManager.prototype.get recordings): Deleted.
Removed unused code.
- UserInterface/Main.html:
New files.
- UserInterface/Models/RenderingFrameTimelineRecord.js:
(WebInspector.RenderingFrameTimelineRecord):
(WebInspector.RenderingFrameTimelineRecord.resetFrameIndex):
(WebInspector.RenderingFrameTimelineRecord.prototype.get frameIndex):
(WebInspector.RenderingFrameTimelineRecord.prototype.get frameNumber):
- UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.reset):
Frame number is now derived from frame index.
- UserInterface/Views/LinearTimelineOverview.js:
(WebInspector.LinearTimelineOverview):
(WebInspector.LinearTimelineOverview.prototype.canShowTimeline):
New overview class for time-based timeline graphs.
- UserInterface/Views/RenderingFrameDetailsSidebarPanel.js:
(WebInspector.RenderingFrameDetailsSidebarPanel):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype.updateRangeSelection):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype._getSelectedRecords):
Changed type of selected range from time to frame indices.
- UserInterface/Views/RenderingFrameTimelineOverview.js:
(WebInspector.RenderingFrameTimelineOverview.this.timelineRuler.formatLabelCallback):
(WebInspector.RenderingFrameTimelineOverview):
(WebInspector.RenderingFrameTimelineOverview.prototype.canShowTimeline):
New overview class for frame-based timeline graphs.
- UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:
(.timeline-overview > .graphs-container > .timeline-overview-graph.rendering-frame):
- UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
(WebInspector.RenderingFrameTimelineOverviewGraph):
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._updateDividers.createDividerAtPosition.get if):
Updated to use frame index ruler and removed frame combining logic.
- UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView):
Increased column widths.
- UserInterface/Views/TimelineOverview.css:
(.timeline-overview > .graphs-container):
(body.mac-platform.legacy .timeline-overview > .graphs-container):
Updated for new ruler height.
- UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.get secondsPerPixel):
(WebInspector.TimelineOverview.prototype.set secondsPerPixel):
(WebInspector.TimelineOverview.prototype.get visibleDuration):
(WebInspector.TimelineOverview.prototype.set selectionDuration):
(WebInspector.TimelineOverview.prototype.updateLayout):
(WebInspector.TimelineOverview.prototype.get timelineRuler):
(WebInspector.TimelineOverview.prototype.canShowTimeline):
(WebInspector.TimelineOverview.prototype._handleScrollEvent):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
(WebInspector.TimelineOverview.prototype._timelineRemoved):
(WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineOverview.prototype.set currentTime): Deleted.
(WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded): Deleted.
(WebInspector.TimelineOverview.prototype._needsLayout): Deleted.
Converted to base class. Derived classes provide settings and permitted timeline types.
- UserInterface/Views/TimelineRecordFrame.css:
(.timeline-record-frame):
(.timeline-record-frame > .frame):
(.timeline-record-frame > .frame > .duration):
(.timeline-record-frame > .frame > .duration.timeline-record-type-network):
(.timeline-record-frame > .frame > .duration.timeline-record-type-layout):
(.timeline-record-frame > .frame > .duration.timeline-record-type-script):
(.timeline-record-frame > .frame > .duration:last-child): Deleted.
New graph frames styles.
- UserInterface/Views/TimelineRecordFrame.js:
(WebInspector.TimelineRecordFrame):
(WebInspector.TimelineRecordFrame.prototype.get record):
(WebInspector.TimelineRecordFrame.prototype.set record):
(WebInspector.TimelineRecordFrame.prototype._updateChildElements.createDurationElement):
(WebInspector.TimelineRecordFrame.prototype.get element): Deleted.
Updated to use frame index ruler.
Removed dropped frames and frame combining logic.
- UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype.shown):
(WebInspector.TimelineRecordingContentView.prototype.hidden):
(WebInspector.TimelineRecordingContentView.prototype.updateLayout):
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
(WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
(WebInspector.TimelineRecordingContentView.prototype._getRenderingFrameTimeline):
(WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
(WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):
(WebInspector.TimelineRecordingContentView.prototype._recordingReset):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView): Deleted.
(WebInspector.TimelineRecordingContentView.prototype.goForward): Deleted.
(WebInspector.TimelineRecordingContentView.prototype.matchTreeElementAgainstCustomFilters): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._contentViewSupplementalRepresentedObjectsDidChange): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._update): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._debuggerPaused): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._debuggerResumed): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._recordingTimesUpdated): Deleted.
Maintains two timeline overviews, switching between them based on the current content view.
Updated tree element filtering to support both overview rulers.
- UserInterface/Views/TimelineRuler.css:
(.timeline-ruler > .header):
(body.mac-platform.legacy .timeline-ruler > .header):
(.timeline-ruler > .header > .divider > .label):
(.timeline-ruler > .selection-drag):
(body.mac-platform.legacy .timeline-ruler > .selection-drag):
(.timeline-ruler > .selection-handle):
(body.mac-platform.legacy .timeline-ruler > .selection-handle):
(.timeline-ruler > .header > .divider): Deleted.
(.timeline-ruler > .selection-drag:active): Deleted.
Updated for new ruler height.
- UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype.set formatLabelCallback):
(WebInspector.TimelineRuler.prototype.updateLayout):
(WebInspector.TimelineRuler.prototype._formatDividerLabelText):
(WebInspector.TimelineRuler.prototype.set allowsClippedLabels): Deleted.
(WebInspector.TimelineRuler.prototype._updateSelection): Deleted.
Added ability to customize label formatting.
- UserInterface/Views/TimelineSidebarPanel.css:
(.panel.timeline .navigation-bar.timelines-view):
(.sidebar > .panel.navigation.timeline > .title-bar):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar):
(.sidebar > .panel.navigation.timeline > .title-bar.timelines):
(.sidebar > .panel.navigation.timeline > .navigation-bar-container):
(.sidebar > .panel.navigation.timeline > .navigation-bar-container > .navigation-bar):
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
(.sidebar > .panel.navigation.timeline > .timelines-content):
(.sidebar > .panel.navigation.timeline > .empty-content-placeholder):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > :matches(.content, .empty-content-placeholder)):
(.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item): Deleted.
(body.window-inactive .sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item): Deleted.
Updated for new navigation bar and ruler height.
- UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.get viewMode):
(WebInspector.TimelineSidebarPanel.prototype.canShowTimeline):
(WebInspector.TimelineSidebarPanel.showTimelineViewForTimeline.this._timelineTreeElementMap.get select):
(WebInspector.TimelineSidebarPanel.get this):
(WebInspector.TimelineSidebarPanel._timelineAdded.set this):
Added support for two view modes: Timelines and Rendering Frames.
- WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
- WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
New files.
- 6:04 AM Changeset in webkit [183468] by
-
- 9 edits3 adds in trunk/Source/WebInspectorUI
Web Inspector: Add new tab button to make it easy to bring a closed tab back
https://bugs.webkit.org/show_bug.cgi?id=144297
Reviewed by Joseph Pecoraro.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector.isTabTypeAllowed):
(WebInspector._tabContentViewForType):
(WebInspector._rememberOpenTabs):
(WebInspector._updateNewTabButtonState):
(WebInspector._newTabItemClicked):
(WebInspector.isNewTabWithTypeAllowed):
(WebInspector.createNewTab):
(WebInspector.activateExtraDomains):
(WebInspector._restoreCookieForOpenTabs):
(WebInspector._saveCookieForOpenTabs):
(WebInspector._isTabTypeAllowed): Deleted.
- UserInterface/Images/NewTab.svg: Added.
- UserInterface/Images/NewTabPlus.svg:
- UserInterface/Main.html:
- UserInterface/Views/NewTabContentView.css: Added.
(.new-tab.tab.content-view):
(.new-tab.tab.content-view > .tab-item):
(.new-tab.tab.content-view > .tab-item.disabled):
(.new-tab.tab.content-view > .tab-item > .box):
(.new-tab.tab.content-view > .tab-item:not(.disabled):active > .box):
(.new-tab.tab.content-view > .tab-item > .box > img):
(.new-tab.tab.content-view > .tab-item > label):
- UserInterface/Views/NewTabContentView.js: Added.
(WebInspector.NewTabContentView):
(WebInspector.NewTabContentView.prototype.get type):
(WebInspector.NewTabContentView.prototype._createNewTab):
- UserInterface/Views/TabBar.css:
(.tab-bar > .item:not(.disabled).selected):
(.tab-bar > .item.new-tab-button:not(.disabled):hover):
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover + .item):
(.tab-bar > .item.disabled > .icon):
(.tab-bar > .item.new-tab-button:not(.disabled):hover > .icon):
(.tab-bar > .item.selected): Deleted.
(.tab-bar > .item.new-tab-button:hover): Deleted.
(.tab-bar:not(.animating) > .item:not(.selected):hover + .item): Deleted.
(.tab-bar > .item.new-tab-button:hover > .icon): Deleted.
- UserInterface/Views/TabBar.js:
(WebInspector.TabBar.prototype.set selectedTabBarItem):
(WebInspector.TabBar.prototype._handleMouseDown):
- UserInterface/Views/TabBarItem.js:
(WebInspector.TabBarItem.prototype.get disabled):
(WebInspector.TabBarItem.prototype.set disabled):
- UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype.addTabForContentView):
(WebInspector.TabBrowser.prototype.showTabForContentView):
(WebInspector.TabBrowser.prototype.closeTabForContentView):
- 5:49 AM Changeset in webkit [183467] by
-
- 22 edits2 adds in trunk
Network Cache: Disk cache getting filled by YouTube video data
https://bugs.webkit.org/show_bug.cgi?id=144259
Reviewed by Darin Adler.
Source/WebCore:
MSE media is loaded via XHR and tends to eventually fill the cache.
YouTube serves the media chunks cacheable, however they are rarely (if ever) reused.
We can reduce disk writes and keep more useful resources around by not caching them
Test: http/tests/cache/disk-cache/disk-cache-media.html
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::startLoadingMainResource):
Set the requester.
- loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::CachedRawResource):
- page/DiagnosticLoggingKeys.cpp:
(WebCore::DiagnosticLoggingKeys::streamingMedia):
- page/DiagnosticLoggingKeys.h:
- platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::adopt):
(WebCore::ResourceRequestBase::copyData):
(WebCore::equalIgnoringHeaderFields):
- platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::requester):
(WebCore::ResourceRequestBase::setRequester):
Add requester type to the request object. Currently this is main resource, xhr or unspecified.
(WebCore::ResourceRequestBase::encodeWithoutPlatformData):
(WebCore::ResourceRequestBase::decodeWithoutPlatformData):
- platform/network/cf/ResourceRequest.h:
(WebCore::ResourceRequest::deprecatedSetMainResourceRequest): Deleted.
(WebCore::ResourceRequest::deprecatedIsMainResourceRequest): Deleted.
Replace this iOS only field with shared mechanism.
- platform/network/ios/QuickLook.mm:
(WebCore::QuickLookHandle::create):
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::createRequest):
Set the requester.
Source/WebKit2:
MSE media is loaded via XHR and tends to eventually fill the cache.
YouTube serves the media chunks cacheable, however they are rarely (if ever) reused.
We can reduce disk writes and keep more useful resources around by not caching them
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveResponseAsync):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::makeStoreDecision):
Don't store if the requester is XHR and response has video or audio content type.
- NetworkProcess/cache/NetworkCache.h:
- NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::storeDecisionToDiagnosticKey):
- Shared/Network/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
(WebKit::NetworkResourceLoadParameters::encode):
(WebKit::NetworkResourceLoadParameters::decode):
- Shared/Network/NetworkResourceLoadParameters.h:
The requester type is now part of the ResourceRequest, no need for separate parameter.
- Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):
- WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleLoad):
LayoutTests:
- http/tests/cache/disk-cache/disk-cache-media-expected.txt: Added.
- http/tests/cache/disk-cache/disk-cache-media.html: Added.
- http/tests/cache/disk-cache/resources/cache-test.js:
(generateTestURL):
- 4:36 AM Changeset in webkit [183466] by
-
- 3 edits in trunk/Source/WebCore
Fix windows build error in WebCore related to bulk build.
https://bugs.webkit.org/show_bug.cgi?id=144313
Patch by Namhoon Kim <nakim@ea.com> on 2015-04-28
Reviewed by Csaba Osztrogonác.
No new tests because there is no behavior change.
- css/CSSAllInOne.cpp:
- dom/DOMAllInOne.cpp:
- 3:45 AM Changeset in webkit [183465] by
-
- 3 edits in trunk/WebKitLibraries
[Win] Enable ES6 template literals
https://bugs.webkit.org/show_bug.cgi?id=144316
Reviewed by Csaba Osztrogonác.
- win/tools/vsprops/FeatureDefines.props:
- win/tools/vsprops/FeatureDefinesCairo.props:
- 1:27 AM Changeset in webkit [183464] by
-
- 1 edit15 adds in branches/safari-600.6-branch/LayoutTests
Unreviewed Mac gardening for safari-600.6-branch.
- platform/mac-mavericks/media/audio-controls-rendering-expected.txt: Added.
- platform/mac-mavericks/media/controls-strict-expected.txt: Added.
- platform/mac-mavericks/media/video-no-audio-expected.txt: Added.
- platform/mac-mavericks/platform/mac/fast/text/systemFont-expected.txt: Added.
- platform/mac-mavericks/platform/mac/fast/text/vertical-no-sideways-expected.txt: Added.
- platform/mac-mountainlion/media/video-colorspace-yuv420-expected.png: Added.
- platform/mac-mountainlion/media/video-colorspace-yuv420-expected.txt: Added.
- platform/mac-mountainlion/media/video-colorspace-yuv422-expected.png: Added.
- platform/mac-mountainlion/media/video-colorspace-yuv422-expected.txt: Added.
- 1:09 AM Changeset in webkit [183463] by
-
- 3 edits in trunk/Source/WebKit2
[WK2] API::UserContentURLPattern creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144225
Reviewed by Darin Adler.
Have API::UserContentURLPattern creation functions return Ref<>.
Call-sites are also updated, using and operating on the returned Ref<>
object where possible.
- Shared/API/APIUserContentURLPattern.h:
(API::UserContentURLPattern::create):
- Shared/API/c/WKUserContentURLPattern.cpp:
(WKUserContentURLPatternCreate):
- 1:06 AM Changeset in webkit [183462] by
-
- 14 edits in trunk/Source/WebKit2
[WK2] API::URLRequest, API::URLResponse creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144224
Reviewed by Darin Adler.
Have API::URLRequest and API::URLResponse creation functions return Ref<>.
The call-sites are also updated, using and operating on the returned Ref<> object
where possible.
- Shared/API/APIURLRequest.h:
(API::URLRequest::create):
- Shared/API/APIURLResponse.h:
(API::URLResponse::create):
- Shared/API/c/WKURLRequest.cpp:
(WKURLRequestCreateWithWKURL):
- Shared/API/c/mac/WKURLRequestNS.mm:
(WKURLRequestCreateWithNSURLRequest):
- Shared/API/c/mac/WKURLResponseNS.mm:
(WKURLResponseCreateWithNSURLResponse):
- UIProcess/API/C/WKContext.cpp:
(WKContextSetDownloadClient):
- UIProcess/API/C/WKDownload.cpp:
(WKDownloadCopyRequest):
- UIProcess/API/C/WKNavigationDataRef.cpp:
(WKNavigationDataCopyOriginalRequest):
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPagePolicyClient):
(WKPageSetPageUIClient):
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
- UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.cpp:
(WebKit::WebSoupCustomProtocolRequestManagerClient::startLoading):
- WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(willSendRequestForFrame):
- WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp:
(WebKit::InjectedBundlePagePolicyClient::decidePolicyForNavigationAction):
(WebKit::InjectedBundlePagePolicyClient::decidePolicyForNewWindowAction):
(WebKit::InjectedBundlePagePolicyClient::decidePolicyForResponse):
Apr 27, 2015:
- 11:52 PM Changeset in webkit [183461] by
-
- 2 edits in trunk/Source/WebCore
Eliminate styleDidChange with StyleDifferenceEqual when updates are actually necessary
https://bugs.webkit.org/show_bug.cgi?id=144198
Followup: fix assertions seen in fullscreen and pseudo-element tests. These code
paths set the style to the existing pointer, but with a SyntheticStyleChange.
We have to avoid an early return in this case.
- rendering/RenderElement.cpp:
(WebCore::RenderElement::setStyle):
- 11:35 PM Changeset in webkit [183460] by
-
- 3 edits in trunk/Source/WebKit2
[WK2] API::Point, API::Size, API::Rect creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144223
Reviewed by Darin Adler.
Have API::Point, API::Size and API::Rect creation functions return Ref<>.
Call-sites are also updated, using and operating on the returned Ref<> object
where possible.
- Shared/API/APIGeometry.h:
(API::Size::create):
(API::Point::create):
(API::Rect::create):
- Shared/API/c/WKGeometry.cpp:
(WKPointCreate):
(WKSizeCreate):
(WKRectCreate):
- 11:31 PM Changeset in webkit [183459] by
-
- 8 edits in trunk/Source/WebKit2
[WK2] API::Error creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144222
Reviewed by Darin Adler.
Have API::Error creation functions return Ref<>.
The call-sites are also updated, using and operating
on the returned Ref<> object where possible.
- Shared/API/APIError.h:
(API::Error::create):
- Shared/API/c/cf/WKErrorCF.cpp:
(WKErrorCreateWithCFError):
- UIProcess/API/C/WKOriginDataManager.cpp:
(WKOriginDataManagerDeleteEntriesForOrigin):
(WKOriginDataManagerDeleteEntriesModifiedBetweenDates):
(WKOriginDataManagerDeleteAllEntries):
- UIProcess/API/C/WKPage.cpp:
(toGenericCallbackFunction):
(WKPageForceRepaint):
(WKPageValidateCommand):
(WKPageComputePagesForPrinting):
- UIProcess/API/C/WKPluginSiteDataManager.cpp:
(WKPluginSiteDataManagerClearSiteData):
(WKPluginSiteDataManagerClearAllSiteData):
- UIProcess/GenericCallback.h:
(WebKit::toGenericCallbackFunction):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::printFinishedCallback):
- 10:54 PM Changeset in webkit [183458] by
-
- 5 edits in trunk/Source/JavaScriptCore
RegExp matches arrays should use contiguous indexing.
<https://webkit.org/b/144286>
Reviewed by Geoffrey Garen.
We had a custom Structure being used for RegExp matches arrays that would
put the arrays into SlowPutArrayStorageShape mode. This was just left
from when matches arrays were custom, lazily initialized objects.
This change removes that Structure and switches the matches arrays to
using the default ContiguousShape Structure. This allows the FTL JIT
to compile the inner loop of the Octane/regexp benchmark.
Also made a version of initializeIndex() [inline] that takes the indexing
type in an argument, allowing createRegExpMatchesArray() to initialize
the entire array without branching on the indexing type for each entry.
~3% progression on Octane/regexp.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::mapStructure):
(JSC::JSGlobalObject::regExpMatchesArrayStructure): Deleted.
- runtime/JSObject.h:
(JSC::JSObject::initializeIndex):
- runtime/RegExpMatchesArray.cpp:
(JSC::createRegExpMatchesArray):
- 10:33 PM Changeset in webkit [183457] by
-
- 2 edits in trunk/Source/WebKit2
[GTK] Remove unnecessary semicolon from WebKitNotificationProvider.h.
https://bugs.webkit.org/show_bug.cgi?id=144312
Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-04-27
Reviewed by Martin Robinson.
No new tests, no behavior change.
- UIProcess/API/gtk/WebKitNotificationProvider.h:
- 10:24 PM Changeset in webkit [183456] by
-
- 2 edits in trunk
Unreviewed, fix GTK build after r183452
- Source/cmake/OptionsGTK.cmake:
- 10:13 PM Changeset in webkit [183455] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Cannot scroll Timeline Overview horizontally, scrollbar cannot be interacted with
https://bugs.webkit.org/show_bug.cgi?id=144302
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-27
Reviewed by Timothy Hatcher.
- UserInterface/Views/TimelineOverview.css:
(.timeline-overview > .scroll-container):
Increase the z-index of the scroll container over anything in the
overview so that it can be interacted with.
- 9:59 PM Changeset in webkit [183454] by
-
- 20 edits in trunk
Eliminate styleDidChange with StyleDifferenceEqual when updates are actually necessary
https://bugs.webkit.org/show_bug.cgi?id=144198
Reviewed by Darin Adler, Antti Koivisto.
Source/WebCore:
SyntheticStyleChange style recalcs are triggered for cases where behavior depends
on state which is outside of RenderStyle; this includes triggering compositing for
animations, for video and canvas, and for iframes with composited content.
In these cases, we'd run through RenderElement::setStyle() and its fan-out, but
with diff == StyleDifferenceEqual, and so be unable to determine if there
is actual work to be done.
This patch enforces the contract that the diff is never StyleDifferenceEqual if
compositing or other work has to happen from setStyle(). This is achieved by
passing in a 'hasSideEffects' flag, which causes the diff to become at least
StyleDifferenceRecompositeLayer.
RenderLayerCompositor::layerStyleChanged() can now safely early return
if the diff is equal. Future patches will reduce redundant work even more.
Test: compositing/animation/no-style-recalc-during-accelerated-animation.html
- page/animation/AnimationBase.h:
(WebCore::AnimationBase::animate): Returns a bool now if the state changed.
(WebCore::AnimationBase::state):
- page/animation/AnimationController.cpp:
(WebCore::AnimationController::updateAnimations): bool out param which indicates
whether any animations changed state.
- page/animation/AnimationController.h:
- page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::animate): If any transitions or animations changed
state, set the animationStateChanged out param to true.
- page/animation/CompositeAnimation.h:
- page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::animate): Return true if the state changed.
- page/animation/ImplicitAnimation.h:
- page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::animate): Return true if the state changed.
- page/animation/KeyframeAnimation.h:
- rendering/RenderElement.cpp:
(WebCore::RenderElement::adjustStyleDifference): We may enter here now with diff
!= StyleDifferenceEqual, but still need to do the check to see if layers changed.
(WebCore::RenderElement::initializeStyle): When setting style for the first time,
don't use StyleDifferenceEqual.
(WebCore::RenderElement::setStyle): Additional flag to indicate whether this style
change involves side effects. If the diff is equal but the flag is set, change
the diff to StyleDifferenceRecompositeLayer (the "lowest" non-zero diff).
- rendering/RenderElement.h:
(WebCore::RenderElement::setAnimatableStyle): Pass true to setStyle() if hasSideEffects
is true, or if animation state changed.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::styleChanged): Pass the diff down.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::layerStyleChanged): Return if the diff is equal.
- rendering/RenderLayerCompositor.h:
- rendering/style/RenderStyleConstants.h: StyleDifferenceNewStyle is used when
setting style for the first time.
- style/StyleResolveTree.cpp:
(WebCore::Style::createRendererIfNeeded): Provide animationsChanged bool (which is unused).
(WebCore::Style::resolveLocal): If the style change is synthetic, set the flag that
says there are side-effects.
LayoutTests:
New test that detects whether a "hardware" animation is firing the style recalc
timer on every frame, which happened during development of this patch.
- compositing/animation/no-style-recalc-during-accelerated-animation-expected.txt: Added.
- compositing/animation/no-style-recalc-during-accelerated-animation.html: Added.
- 9:44 PM Changeset in webkit [183453] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
FTL failed to initialize arguments.callee on the slow path as well as the fast path
https://bugs.webkit.org/show_bug.cgi?id=144293
Reviewed by Mark Lam.
The slow path doesn't fully initialize DirectArguments - it leaves callee blank. So, we need
to initialize the callee on the common path after the fast and slow path.
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileCreateDirectArguments):
- tests/stress/arguments-callee-uninitialized.js: Added.
(foo):
- 9:35 PM Changeset in webkit [183452] by
-
- 4 edits in trunk
[GTK] Add one single option to control all OpenGL-related options
https://bugs.webkit.org/show_bug.cgi?id=144105
Reviewed by Martin Robinson.
.:
Add public ENABLE_OPENGL option, which is mandatory for ENABLE_3D_TRANSFORMS,
ENABLE_ACCELERATED_2D_CANVAS, ENABLE_GLES2, ENABLE_THREADED_COMPOSITOR, ENABLE_WEBGL,
USE_REDIRECTED_XCOMPOSITE_WINDOW, and USE_GSTREAMER_GL. Make ENABLE_GLES2 a proper WebKit
option and move code around accordingly. Use WEBKIT_OPTION_DEPEND and rely on it. Add a
large comment to explain why default value of ENABLE_ACCELERATED_2D_CANVAS is based on the
presence of CairoGL.
- Source/cmake/OptionsGTK.cmake:
Source/WebCore:
Test WTF_USE_TEXTURE_MAPPER since USE_TEXTURE_MAPPER has been removed.
- PlatformGTK.cmake:
- 9:28 PM Changeset in webkit [183451] by
-
- 2 edits in trunk
[GTK] ENABLE_SMOOTH_SCROLLING should be private
https://bugs.webkit.org/show_bug.cgi?id=144306
Reviewed by Martin Robinson.
Make ENABLE_SMOOTH_SCROLLING private instead of public.
- Source/cmake/OptionsGTK.cmake:
- 9:16 PM Changeset in webkit [183450] by
-
- 6 edits4 adds in trunk
[JSC] Add support for typed arrays to the Array profiling
https://bugs.webkit.org/show_bug.cgi?id=143913
Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-04-27
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
This patch adds ArrayModes for every typed arrays. Having that information
let us generate better GetByVal and PutByVal when the type speculation
are not good enough.
A typical case where this is useful is any basic block for which the type
of the object is always more restrictive than the speculation (for example,
a basic block gated by a branch only taken for on type).
- bytecode/ArrayProfile.cpp:
(JSC::dumpArrayModes):
- bytecode/ArrayProfile.h:
(JSC::arrayModeFromStructure):
- dfg/DFGArrayMode.cpp:
(JSC::DFG::ArrayMode::fromObserved):
(JSC::DFG::ArrayMode::refine):
Maintain the refine() semantic. We do not support OutOfBounds access
for GetByVal on typed array.
- runtime/IndexingType.h:
- tests/stress/typed-array-get-by-val-profiling.js: Added.
(testArray.testCode):
(testArray):
- tests/stress/typed-array-put-by-val-profiling.js: Added.
(testArray.testCode):
(testArray):
LayoutTests:
- js/regress/script-tests/typed-array-get-set-by-val-profiling.js: Added.
- js/regress/typed-array-get-set-by-val-profiling.html: Added.
- 8:43 PM Changeset in webkit [183449] by
-
- 2 edits in trunk/Source/WebKit/mac
<rdar://problem/20721931> REGRESSION (r178753): All legacy framework headers are missing availability annotations
https://bugs.webkit.org/show_bug.cgi?id=144311
Reviewed by Adele Peterson.
- postprocess-headers.sh: Changed “macsox” to “macosx”.
- 8:05 PM Changeset in webkit [183448] by
-
- 2 edits23 adds2 deletes in trunk/LayoutTests
Break up select text into multiple tests
https://bugs.webkit.org/show_bug.cgi?id=144301
Patch by Doug Russell <d_russell@apple.com> on 2015-04-27
Reviewed by Alexey Proskuryakov.
- platform/mac/TestExpectations:
- platform/mac/accessibility/select-text-expected.txt: Removed.
- platform/mac/accessibility/select-text.html: Removed.
- platform/mac/accessibility/select-text/select-text-1-expected.txt: Added.
- platform/mac/accessibility/select-text/select-text-1.html: Added.
- platform/mac/accessibility/select-text/select-text-135546-expected.txt: Added.
- platform/mac/accessibility/select-text/select-text-135546.html: Added.
- platform/mac/accessibility/select-text/select-text-135575-expected.txt: Added.
- platform/mac/accessibility/select-text/select-text-135575.html: Added.
- platform/mac/accessibility/select-text/select-text-2-expected.txt: Added.
- platform/mac/accessibility/select-text/select-text-2.html: Added.
- platform/mac/accessibility/select-text/select-text-3-expected.txt: Added.
- platform/mac/accessibility/select-text/select-text-3.html: Added.
- platform/mac/accessibility/select-text/select-text-4-expected.txt: Added.
- platform/mac/accessibility/select-text/select-text-4.html: Added.
- platform/mac/accessibility/select-text/select-text-5-expected.txt: Added.
- platform/mac/accessibility/select-text/select-text-5.html: Added.
- platform/mac/accessibility/select-text/select-text-6-expected.txt: Added.
- platform/mac/accessibility/select-text/select-text-6.html: Added.
- platform/mac/accessibility/select-text/select-text-7-expected.txt: Added.
- platform/mac/accessibility/select-text/select-text-7.html: Added.
- platform/mac/accessibility/select-text/select-text-8-expected.txt: Added.
- platform/mac/accessibility/select-text/select-text-8.html: Added.
- platform/mac/accessibility/select-text/select-text-9-expected.txt: Added.
- platform/mac/accessibility/select-text/select-text-9.html: Added.
- 7:43 PM Changeset in webkit [183447] by
-
- 3 edits in trunk/Source/WebKit2
PDF action menu fixes
https://bugs.webkit.org/show_bug.cgi?id=144299
<rdar://problem/20702215>
Reviewed by Tim Horton.
Make two corrections to how PDFs are handled:
- When calculating the view rect for the user's selection, make sure
that we get coordinates for the correct PDF page. The existing code assumed
that the current PDFLayerControler's current page was correct, but this will
not be true if you zoom the PDF out so that several pages are displayed at
once. Each selection keeps track of the page it is referenced against.
- Revise the offsets calculated for the TextIndicator to take into account
the font descender (as well as the ascender), and to adjust by the scaled
amount of margin around the selected text.
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::viewRectForSelection): Use correct page for calculating
the coordinates.
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::dictionaryPopupInfoForSelectionInPDFPlugin): Include font 'descendant'
and (scaled) margin when adjusting the hit target for the TextIndicator to draw.
- 7:14 PM Changeset in webkit [183446] by
-
- 5 edits in trunk/Source/JavaScriptCore
Unreviewed, roll out r183438 "RegExp matches arrays should use contiguous indexing". It
causes many debug test failures.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::regExpMatchesArrayStructure):
- runtime/JSObject.h:
(JSC::JSObject::initializeIndex):
- runtime/RegExpMatchesArray.cpp:
(JSC::createRegExpMatchesArray):
- 6:25 PM Changeset in webkit [183445] by
-
- 3 edits in branches/safari-600.6-branch/LayoutTests
Unreviewed Mac gardening for safari-600.6-branch.
- fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt:
- fast/multicol/pagination/RightToLeft-rl-hittest-expected.txt:
- 6:16 PM Changeset in webkit [183444] by
-
- 2 edits in branches/safari-600.6-branch/LayoutTests
Marked platform/mac/fast/text/multiple-codeunit-vertical-upright.html as ImageOnlyFailure
https://bugs.webkit.org/show_bug.cgi?id=144303
- platform/mac/TestExpectations:
- 6:06 PM Changeset in webkit [183443] by
-
- 2 edits4 adds in trunk/Tools
Add 'init.py' and fix known bug in benchmark runner.
https://bugs.webkit.org/show_bug.cgi?id=144296
Patch by Dewei Zhu <Dewei Zhu> on 2015-04-27
Reviewed by Ryosuke Niwa
- Scripts/webkitpy/benchmark_runner/init.py: Make python to recognize this module.
- Scripts/webkitpy/benchmark_runner/benchmark_builder/init.py: Make python to recognize this module.
- Scripts/webkitpy/benchmark_runner/benchmark_runner.py:
(BenchmarkRunner.init):
(BenchmarkRunner.execute): Fix logic bug that '--output-file' option doesn't work, and empty output file bug.
- Scripts/webkitpy/benchmark_runner/browser_driver/init.py: Make python to recognize this module.
- Scripts/webkitpy/benchmark_runner/http_server_driver/init.py: Make python to recognize this module.
- 5:59 PM Changeset in webkit [183442] by
-
- 19 edits7 deletes in trunk/Source/WebCore
Consolidate one-line flag-related header files into TextFlags.h
https://bugs.webkit.org/show_bug.cgi?id=144295
Reviewed by Tim Horton.
There were a collection of single-line header files throughout platform/ which contain
single-line type declaractions of flags related to text layout & rendering. This patch
consolidates all these single-line headers into TextFlags.h
No new tests because there is no behavior change.
- WebCore.vcxproj/WebCore.vcxproj:
- WebCore.vcxproj/WebCore.vcxproj.filters:
- WebCore.xcodeproj/project.pbxproj:
- css/CSSFontFace.h:
- css/CSSPrimitiveValueMappings.h:
- loader/cache/CachedFont.h:
- loader/cache/CachedTextTrack.h:
- page/Settings.h:
- platform/DragImage.h:
- platform/graphics/FontDescription.h:
- platform/graphics/FontOrientation.h: Removed.
- platform/graphics/FontPlatformData.h:
- platform/graphics/FontRenderingMode.h: Removed.
- platform/graphics/FontSmoothingMode.h: Removed.
- platform/graphics/FontTraitsMask.h: Removed.
- platform/graphics/FontWidthVariant.h: Removed.
- platform/graphics/TextRenderingMode.h: Removed.
- platform/graphics/cairo/FontCustomPlatformData.h:
- platform/graphics/freetype/FontPlatformData.h:
- platform/graphics/mac/FontCustomPlatformData.h:
- platform/graphics/win/FontCustomPlatformData.h:
- platform/text/NonCJKGlyphOrientation.h: Removed.
- platform/text/TextFlags.h:
- rendering/TextPainter.h:
- style/StyleFontSizeFunctions.h:
- 5:46 PM Changeset in webkit [183441] by
-
- 2 edits in trunk/Websites/webkit.org
Add naver to team.html
https://bugs.webkit.org/show_bug.cgi?id=144298
Reviewed by Gyuyoung Kim.
- team.html:
- 5:31 PM Changeset in webkit [183440] by
-
- 2 edits in trunk/Websites/webkit.org
Status page: fix the email links
Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-04-27
- status.html:
- 5:22 PM Changeset in webkit [183439] by
-
- 2 edits in trunk/Tools
More build fix.
- WebKitTestRunner/InjectedBundle/mac/AccessibilityNotificationHandler.mm:
(-[AccessibilityNotificationHandler _notificationReceived:]):
Use -objectForKey:, not array subscript.
- 5:14 PM Changeset in webkit [183438] by
-
- 5 edits in trunk/Source/JavaScriptCore
RegExp matches arrays should use contiguous indexing.
<https://webkit.org/b/144286>
Reviewed by Geoffrey Garen.
We had a custom Structure being used for RegExp matches arrays that would
put the arrays into SlowPutArrayStorageShape mode. This was just left
from when matches arrays were custom, lazily initialized objects.
This change removes that Structure and switches the matches arrays to
using the default ContiguousShape Structure. This allows the FTL JIT
to compile the inner loop of the Octane/regexp benchmark.
Also made a version of initializeIndex() [inline] that takes the indexing
type in an argument, allowing createRegExpMatchesArray() to initialize
the entire array without branching on the indexing type for each entry.
~3% progression on Octane/regexp.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::mapStructure):
(JSC::JSGlobalObject::regExpMatchesArrayStructure): Deleted.
- runtime/JSObject.h:
(JSC::JSObject::initializeIndex):
- runtime/RegExpMatchesArray.cpp:
(JSC::createRegExpMatchesArray):
- 5:08 PM Changeset in webkit [183437] by
-
- 2 edits in branches/safari-600.6-branch/LayoutTests
Mark fast/text/ruby-justification-flush.html as ImageOnlyFailure
https://bugs.webkit.org/show_bug.cgi?id=144294
- 5:03 PM Changeset in webkit [183436] by
-
- 6 edits4 adds in trunk
Form control may be associated with the wrong HTML Form element after form id change
https://bugs.webkit.org/show_bug.cgi?id=133456
<rdar://problem/17095055>
Reviewed by Andy Estes.
Source/WebCore:
Fixes an issue where a form control may be associated with the wrong HTML Form element
after the id of the HTML Form element associated with the form control is changed when
there is more than one HTML Form element with the same id in the document. Specifically,
a form control that has an HTML form attribute value X will always be associated with
some HTML Form element f where f.id = X regardless of whether f.id is subsequently
changed.
Tests: fast/forms/change-form-id-to-be-unique-then-submit-form.html
fast/forms/change-form-id-to-be-unique.html
- dom/Element.cpp:
(WebCore::Element::attributeChanged): Notify observers when the id of an element changed.
(WebCore::Element::updateId): Added parameter NotifyObservers (defaults to NotifyObservers::Yes),
as to whether we should notify observers of the id change.
(WebCore::Element::updateIdForTreeScope): Ditto.
(WebCore::Element::willModifyAttribute): Do not notify observers of the id change immediately. As
indicated by the name of this method, we plan to modify the DOM attribute id of the element, but
we have not actually modified it when this method is called. Instead we will notify observers
in Element::attributeChanged(), which is called after the DOM attribute id is modified.
(WebCore::Element::cloneAttributesFromElement): Ditto.
- dom/Element.h: Defined enum class NotifyObservers.
- dom/TreeScope.cpp:
(WebCore::TreeScope::addElementById): Added boolean parameter notifyObservers (defaults to true)
as to whether we should dispatch a notification to all observers.
(WebCore::TreeScope::removeElementById): Ditto.
- dom/TreeScope.h:
LayoutTests:
Add tests to ensure that we associate the correct HTML Form element with a
<select> after changing the id of its associated HTML form element.
- fast/forms/change-form-id-to-be-unique-expected.txt: Added.
- fast/forms/change-form-id-to-be-unique-then-submit-form-expected.txt: Added.
- fast/forms/change-form-id-to-be-unique-then-submit-form.html: Added.
- fast/forms/change-form-id-to-be-unique.html: Added.
- 4:34 PM Changeset in webkit [183435] by
-
- 2 edits in trunk/Tools
Catch unexpected exits in DumpRenderTree
https://bugs.webkit.org/show_bug.cgi?id=144288
Reviewed by Tim Horton.
- DumpRenderTree/mac/DumpRenderTree.mm:
(atexitFunction):
(DumpRenderTreeMain):
- 4:18 PM Changeset in webkit [183434] by
-
- 2 edits in trunk/Tools
Build fix
- DumpRenderTree/mac/AccessibilityNotificationHandler.mm:
(-[AccessibilityNotificationHandler _notificationReceived:]):
Use -objectForKey:, not array subscript.
- 3:34 PM Changeset in webkit [183433] by
-
- 2 edits in trunk/Source/WebCore
Reduce allocations and memory usage when compiling content extensions.
https://bugs.webkit.org/show_bug.cgi?id=144277
Reviewed by Benjamin Poulain.
Covered by existing tests.
- contentextensions/Term.h:
(WebCore::ContentExtensions::Term::CharacterSet::set):
(WebCore::ContentExtensions::Term::CharacterSet::get):
(WebCore::ContentExtensions::Term::CharacterSet::invert):
(WebCore::ContentExtensions::Term::CharacterSet::inverted):
(WebCore::ContentExtensions::Term::CharacterSet::bitCount):
(WebCore::ContentExtensions::Term::CharacterSet::operator==):
(WebCore::ContentExtensions::Term::CharacterSet::hash):
(WebCore::ContentExtensions::Term::Term):
(WebCore::ContentExtensions::Term::addCharacter):
(WebCore::ContentExtensions::Term::isEndOfLineAssertion):
(WebCore::ContentExtensions::Term::isUniversalTransition):
(WebCore::ContentExtensions::Term::generateSubgraphForAtom):
Use two uint64_t's instead of a BitVector with a capacity of 128 bits.
- 3:30 PM Changeset in webkit [183432] by
-
- 35 edits in trunk
Rename WTF_USE_3D_GRAPHICS to ENABLE_GRAPHICS_CONTEXT_3D
https://bugs.webkit.org/show_bug.cgi?id=144193
Reviewed by Darin Adler.
.:
- Source/cmake/OptionsEfl.cmake:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWinCairo.cmake:
- Source/cmake/WebKitFeatures.cmake:
Source/WebCore:
- CMakeLists.txt:
- platform/graphics/ANGLEWebKitBridge.cpp:
- platform/graphics/FormatConverter.cpp:
- platform/graphics/FormatConverter.h:
- platform/graphics/GLContext.h:
- platform/graphics/GraphicsContext3D.cpp:
- platform/graphics/GraphicsContext3DPrivate.cpp:
- platform/graphics/OpenGLShims.cpp:
- platform/graphics/cairo/GraphicsContext3DCairo.cpp:
- platform/graphics/cg/GraphicsContext3DCG.cpp:
- platform/graphics/egl/GLContextEGL.cpp:
- platform/graphics/egl/GLContextEGL.h:
- platform/graphics/glx/GLContextGLX.cpp:
- platform/graphics/glx/GLContextGLX.h:
- platform/graphics/mac/GraphicsContext3DMac.mm:
- platform/graphics/opengl/Extensions3DOpenGL.cpp:
- platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
- platform/graphics/opengl/Extensions3DOpenGLES.cpp:
- platform/graphics/opengl/GLPlatformContext.cpp:
- platform/graphics/opengl/GLPlatformSurface.cpp:
- platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
- platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
- platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
- platform/graphics/opengl/TemporaryOpenGLSetting.cpp:
- platform/graphics/win/GraphicsContext3DWin.cpp:
Source/WebKit2:
- CMakeLists.txt:
Source/WTF:
- wtf/FeatureDefines.h:
- wtf/Platform.h:
- 3:24 PM Changeset in webkit [183431] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Video not centered in element on retina devices
https://bugs.webkit.org/show_bug.cgi?id=144274
Reviewed by Simon Fraser.
In r173702, a transform was added to the video layer (and a matching, inverse transform
in the UIProcess), but this transform affects the position property of the video layer
used to position the video content within the element bounds when their aspect ratios
do not match.
To work around this problem, pre-apply the transform during -setPosition:.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(-[WebVideoContainerLayer setPosition:]):
- 3:12 PM Changeset in webkit [183430] by
-
- 5 edits in tags/Safari-601.1.30.1/Source
Versioning.
- 3:10 PM Changeset in webkit [183429] by
-
- 1 copy in tags/Safari-601.1.30.1
New tag.
- 3:08 PM Changeset in webkit [183428] by
-
- 11 edits2 adds in trunk
Add a setting & restriction which prevents non-interactivte playback of audible media elements.
https://bugs.webkit.org/show_bug.cgi?id=143486
Reviewed by Eric Carlson.
Source/WebCore:
Tests: media/audio-playback-restriction-autoplay.html
media/audio-playback-restriction-play.html
To allow clients who want to allow non-user-interactive video-only playback, but still
restrict playback of audible media elements, add a new setting and matching restriction
which disallows playback of media elements containing audible characteristics.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Set the RequireUserGestureForAudioRateChange
restriction if the audioPlaybackRequiresUserGesture() setting is set.
(WebCore::HTMLMediaElement::parseAttribute): Drive-by fix. Move the opening brace
out of the #if, as this confuses the heck out of diff and makes all subsequent
changes appear to be within HTMLMediaElement::parseAttribute.
(WebCore::HTMLMediaElement::autoplay): Remove the restriction check from within autoplay().
It is checked again immediately after every autoplay() call site.
(WebCore::HTMLMediaElement::pauseInternal): Remove the iOS-only #if.
(WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack): Check whether playback
is permitted, and if not, pause.
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged): Ditto.
(WebCore::HTMLMediaElement::removeBehaviorsRestrictionsAfterFirstUserGesture): Ditto.
- html/HTMLMediaSession.cpp:
(WebCore::restrictionName): Since BehaviorRestrictions is a bitfield, check each bit
individually.
(WebCore::HTMLMediaSession::removeBehaviorRestriction): Handle RequireUserGestureForAudioRateChange.
(WebCore::HTMLMediaSession::playbackPermitted): Check whether the element has audio and
audio playback is restricted, and return false if so.
- html/HTMLMediaSession.h:
- page/Settings.cpp:
- page/Settings.in:
- testing/Internals.cpp:
(WebCore::Internals::setMediaSessionRestrictions): Added.
(WebCore::Internals::setMediaElementRestrictions): Added.
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- media/audio-playback-restriction-autoplay.html: Added.
- media/audio-playback-restriction-play.html: Added.
- media/video-test.js:
(setCaptionDisplayMode):
(runWithKeyDown.eventName.window.testRunner.eventSender.keyDown.string_appeared_here.string_appeared_here.thunk):
(runWithKeyDown):
- 3:04 PM Changeset in webkit [183427] by
-
- 2 edits in trunk
[CMake] Should be possible for an option to conflict with other options
https://bugs.webkit.org/show_bug.cgi?id=143956
Reviewed by Martin Robinson.
Add WEBKIT_OPTION_CONFLICT macro, which fails the build if conflicting options are on.
- Source/cmake/WebKitFeatures.cmake:
- 2:57 PM Changeset in webkit [183426] by
-
- 2 edits in trunk/Source/WebKit2
Context menus are not reshown after an orientation change
<https://bugs.webkit.org/show_bug.cgi?id=144143>
<rdar://problem/20679931>
Reviewed by Darin Adler.
- UIProcess/ios/WKActionSheet.mm:
(-[WKActionSheet updateSheetPosition]):
Return early if we're still in a rotation, not if the rotation is
complete.
- 2:43 PM Changeset in webkit [183425] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Attempt to workaround exception in TimelineRuler
https://bugs.webkit.org/show_bug.cgi?id=144228
Reviewed by Joseph Pecoraro.
- UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype.updateLayout):
Use firstChild instead of a custom _labelElement property on the dividerElement.
- 2:35 PM Changeset in webkit [183424] by
-
- 11 edits4 adds in trunk
[WebAudio] AudioContext does not remove user-gesture restriction during resume()
https://bugs.webkit.org/show_bug.cgi?id=144211
Reviewed by Eric Carlson.
Source/WebCore:
Tests: webaudio/audiocontext-restriction-audiobuffersourcenode-start.html
webaudio/audiocontext-restriction.html
Before the introduction of resume(), suspend(), and stop(), AudioContexts which required
a user-gesture would start normally, but would effectively mute their outputs. Now that
the AudioContext's state property is exposed to JavaScript, the AudioContext should stay
in the "suspended" state until the user-gesture restriction is lifted.
Add a new method, willBeginPlayback() which checks and potentially clears the context's
behavior restrictions before checking with the MediaSession. Call this new willBeginPlayback()
method when the state would transition to "running".
Because they may be called before any nodes are created, make sure to call lazyInitialize()
from within the JS-exposed resumePlayback(), suspendPlayback(), and stopPlayback() methods.
Instead of clearing the behavior restrictions directly, scheduled AudioNodes should instead
call a new method nodeWillBeginPlayback(). Because existing sites will call AudioNode.start()
inside a user-gesture handler to clear the user-gesture restriction, call startRendering()
from nodeWillBeginPlayback(). But because we don't want AudioNode.start() to resume playback
unconditionally, only do so when the user-gesture restriction is set.
Now that an AudioContext will not transition to "running" state without a user-gesture (if
that restriction is set), there's no reason to check for that restriction from inside
AudioDestinationNode.
Add some internal methods to set and clear AudioContext BehaviorRestrictions for testing purposes.
- Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::startPlaying):
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::nodeWillBeginPlayback):
(WebCore::AudioContext::willBeginPlayback):
(WebCore::AudioContext::willPausePlayback):
(WebCore::AudioContext::startRendering):
(WebCore::AudioContext::suspendContext):
(WebCore::AudioContext::resumeContext):
(WebCore::AudioContext::closeContext):
(WebCore::AudioContext::suspendPlayback):
(WebCore::AudioContext::mayResumePlayback):
- Modules/webaudio/AudioContext.h:
(WebCore::AudioContext::behaviorRestrictions):
(WebCore::AudioContext::userGestureRequiredForAudioStart):
(WebCore::AudioContext::pageConsentRequiredForAudioStart):
- Modules/webaudio/AudioDestinationNode.cpp:
(WebCore::AudioDestinationNode::render):
- Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::start):
- testing/Internals.cpp:
(WebCore::Internals::setAudioContextRestrictions):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- webaudio/audiocontext-restriction-audiobuffersourcenode-start-expected.txt: Added.
- webaudio/audiocontext-restriction-audiobuffersourcenode-start.html: Added.
- webaudio/audiocontext-restriction-expected.txt: Added.
- webaudio/audiocontext-restriction.html: Added.
- webaudio/resources/audio-testing.js:
(runWithKeyDown):
- 2:30 PM Changeset in webkit [183423] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Elements tab details sidebar becomes non-expandable after using Console tab
https://bugs.webkit.org/show_bug.cgi?id=144212
Show the DOM tree content view again on main resource change. This better matches what we did
in the pre tab user interface with the DOM being off the main resource tree element.
Reviewed by Joseph Pecoraro.
- UserInterface/Views/ElementsTabContentView.js:
(WebInspector.ElementsTabContentView): Listen for main resource change. Call _showDOMTreeContentView.
(WebInspector.ElementsTabContentView.prototype.closed): Fix a leak and exception.
The removeEventListener was wrong. Add a new removeEventListener for WebInspector.Frame.
(WebInspector.ElementsTabContentView.prototype._showDOMTreeContentView): Added.
(WebInspector.ElementsTabContentView.prototype._mainFrameDidChange): Call _showDOMTreeContentView.
(WebInspector.ElementsTabContentView.prototype._mainResourceDidChange): Added.
- 2:28 PM Changeset in webkit [183422] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: TabContentView closed() isn't being called when a tab is closed / removed
https://bugs.webkit.org/show_bug.cgi?id=144229
Reviewed by Joseph Pecoraro.
- UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype._disassociateFromContentView):
TabContentViews don't have a representedObject, so returning early and not
calling closed() was not correct.
- 2:08 PM Changeset in webkit [183421] by
-
- 4 edits in trunk/Source/JavaScriptCore
REGRESSION (r183373): ASSERT failed in wtf/SHA1.h
https://bugs.webkit.org/show_bug.cgi?id=144257
Temporarily disable skip these tests.
- tests/stress/template-literal-line-terminators.js:
- tests/stress/template-literal-syntax.js:
- tests/stress/template-literal.js:
- 2:02 PM Changeset in webkit [183420] by
-
- 2 edits in trunk/Source/WebCore
Build fix.
- accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::postTextReplacementPlatformNotification):
Use -setObject:forKey:, not array subscript.
- 1:42 PM Changeset in webkit [183419] by
-
- 3 edits in trunk/Source/JavaScriptCore
Function allocations shouldn't sink through Put operations
https://bugs.webkit.org/show_bug.cgi?id=144176
Patch by Basile Clement <basile_clement@apple.com> on 2015-04-27
Reviewed by Filip Pizlo.
By design, we don't support function allocation sinking through any
related operation ; however object allocation can sink through PutByOffset et
al.
Currently, the checks to prevent function allocation to sink through
these are misguided and do not prevent anything ; function allocation sinking
through these operations is prevented as a side effect of requiring an
AllocatePropertyStorage through which the function allocation is seen as
escaping.
This changes it so that ObjectAllocationSinkingPhase::handleNode()
checks properly that only object allocations sink through related write
operations.
- dfg/DFGObjectAllocationSinkingPhase.cpp:
(JSC::DFG::ObjectAllocationSinkingPhase::lowerNonReadingOperationsOnPhantomAllocations):
(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):
- 1:34 PM Changeset in webkit [183418] by
-
- 2 edits in trunk/Tools
fast/frames/flattening/iframe-flattening-resize-event-count.html times out on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=144155
Reviewed by Tim Horton.
- WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues):
Disable App Nap. I don't have positive evidence that it's the culprit, but it could be,
and we clearly don't want App Nap while testing.
- 1:33 PM Changeset in webkit [183417] by
-
- 2 edits in trunk/Source/WebCore
WirelessTargetPicker should not be visible unless a file is playable
https://bugs.webkit.org/show_bug.cgi?id=144271
<rdar://problem/20712003>
Reviewed by Jer Noble.
- Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.isPlayable): New.
(Controller.prototype.setStatusHidden): Call updateWirelessTargetAvailable.
(Controller.prototype.updateWirelessTargetAvailable): Don't show the button until the
status message has been hidden.
- 1:30 PM Changeset in webkit [183416] by
-
- 13 edits1 delete in trunk
[CMake] Autogenerate cmakeconfig.h.cmake
https://bugs.webkit.org/show_bug.cgi?id=143997
Reviewed by Csaba Osztrogonác.
.:
- CMakeLists.txt: Create the configuration header as the last part of the cmake run.
- Source/CMakeLists.txt: No longer use configure_file to create cmakeconfig.h.
- Source/cmake/OptionsCommon.cmake: Expose WTF_CPU_ARM64_CORTEXA53 to the build explicitly.
- Source/cmake/OptionsGTK.cmake: Expose variables to the build using SET_AND_EXPOSE_TO_BUILD.
Do some other miscellaneous related cleanup.
- Source/cmake/OptionsEFL.cmake: Expose HAVE_LLVM to the build.
- Source/cmake/WebKitFeatures.cmake: Expose all WebKit features to the build. Add support for
build exposed variables. Add a macro to generate a configuration from them.
- Source/cmakeconfig.h.cmake: Removed.
Source/WebCore:
- PlatformGTK.cmake: Use the WTF_USE style variables, because those are the same
as the ones exposed to the build.
Source/WTF:
- wtf/Platform.h: Move a GTK-specific setting from cmakeconfig.h to here.
Tools:
- DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt: Add XP_UNIX to the command-line
definitions since TestNetscapePlugIn does not use cmakeconfig.h.
- 1:28 PM Changeset in webkit [183415] by
-
- 2 edits in trunk/Source/WebKit/win
Unreviewed build fix after r183405
- WebActionPropertyBag.cpp:
(WebActionPropertyBag::Read): Cast the enum class to a LONG.
- 1:23 PM Changeset in webkit [183414] by
-
- 2 edits in trunk/LayoutTests
rdar://problem/16678392 Page visibility tests are broken in Yosemite
- platform/mac-wk2/TestExpectations: They don't seem to be broken any more, unskipping.
Maybe <http://trac.webkit.org/changeset/181866> fixed them?
Also updated the next line (media/video-background-tab-playback.html), as it didn't match what bots see now.
- 1:19 PM Changeset in webkit [183413] by
-
- 3 edits2 adds in trunk
Simple line layout: Wrong text offsetting when range does not start from the first renderer.
https://bugs.webkit.org/show_bug.cgi?id=144167
rdar://problem/20639857
Reviewed by Simon Fraser.
This patch ensures that TextIterator returns the right text when the input range starts
from a sibling node.
TextIterator::m_previousTextLengthInFlow keeps track of the current node offset from the parent.
Source/WebCore:
It is required to map simple line layout runs to RenderText positions.
This patch sets the offset value when the iteration start with a sibling node.
Test: fast/text/range-text-with-simple-line-layout.html
- editing/TextIterator.cpp:
(WebCore::TextIterator::TextIterator):
(WebCore::TextIterator::handleTextNode):
LayoutTests:
it is required to map simple line layout runs to RenderText positions.
This patch sets the offset value when the iteration start with a sibling node.
- fast/text/range-text-with-simple-line-layout-expected.txt: Added.
- fast/text/range-text-with-simple-line-layout.html: Added.
- 1:15 PM Changeset in webkit [183412] by
-
- 19 edits in trunk/Source/WebKit2
[WK2] API::Dictionary creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144221
Reviewed by Darin Adler.
Have API::Dictionary creation functions return Ref<>.
The call-sites are also updated, using and operating
on the returned Ref<> object where possible.
- Shared/API/APIDictionary.cpp:
(API::Dictionary::create):
- Shared/API/APIDictionary.h:
- Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(createEncodedObject):
- Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:
(-[_WKRemoteObjectRegistry _sendInvocation:interface:]):
- Shared/API/c/WKDictionary.cpp:
(WKDictionaryCreate):
- Shared/API/c/WKMutableDictionary.cpp:
(WKMutableDictionaryCreate):
- Shared/Plugins/Netscape/PluginInformation.cpp:
(WebKit::createPluginInformationDictionary):
- Shared/Plugins/Netscape/PluginInformation.h:
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
- UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_prefetch_dns):
- UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_get_snapshot):
- UIProcess/Plugins/PlugInAutoStartProvider.cpp:
(WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy):
- UIProcess/Plugins/PlugInAutoStartProvider.h:
- UIProcess/StatisticsRequest.cpp:
(WebKit::createDictionaryFromHashMap):
(WebKit::StatisticsRequest::completedRequest):
- UIProcess/WebFormClient.cpp:
(WebKit::WebFormClient::willSubmitForm):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didFailToInitializePlugin):
- WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(didInitiateLoadForResource):
(willSendRequestForFrame):
(didReceiveResponseForResource):
(didReceiveContentLengthForResource):
(didFinishLoadForResource):
(didFailLoadForResource):
(webkitWebPageDidReceiveMessage):
- WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
(WebKit::InjectedBundlePageFormClient::willSendSubmitEvent):
(WebKit::InjectedBundlePageFormClient::willSubmitForm):
- 1:13 PM Changeset in webkit [183411] by
-
- 15 edits in trunk/Source/WebKit2
[WK2] API::Data creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144220
Reviewed by Darin Adler.
Have API::Data creation functions return Ref<>.
The call-sites are also updated, using and operating
on the returned Ref<> object where possible.
- Shared/API/APIData.h:
(API::Data::createWithoutCopying):
(API::Data::create):
- Shared/API/c/WKData.cpp:
(WKDataCreate):
- Shared/API/c/mac/WKWebArchive.cpp:
(WKWebArchiveCopyData):
- Shared/API/c/mac/WKWebArchiveResource.cpp:
(WKWebArchiveResourceCopyData):
- Shared/APIWebArchive.h:
- Shared/APIWebArchive.mm:
(API::WebArchive::data):
- Shared/APIWebArchiveResource.h:
- Shared/APIWebArchiveResource.mm:
(API::WebArchiveResource::data):
- Shared/Cocoa/APIDataCocoa.mm:
(API::Data::createWithoutCopying):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView loadData:MIMEType:characterEncodingName:baseURL:]):
- UIProcess/API/gtk/WebKitURISchemeRequest.cpp:
(webkitURISchemeRequestReadCallback):
- UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_load_bytes):
- UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::createData):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dataCallback):
(WebKit::WebPageProxy::savePDFToFileInDownloadsFolder):
- 1:09 PM Changeset in webkit [183410] by
-
- 7 edits in trunk/Source/WebKit2
[WK2] API::URL creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144219
Reviewed by Darin Adler.
Have API::URL creation functions return Ref<>.
The call-sites are also updated, using and operating in the
returned Ref<> object, where possible.
- Shared/API/APIURL.h:
(API::URL::create):
- Shared/API/c/WKSharedAPICast.h:
(WebKit::toCopiedURLAPI):
- Shared/API/c/WKURL.cpp:
(WKURLCreateWithUTF8CString):
(WKURLCreateWithBaseURL):
- UIProcess/API/gtk/WebKitWebResource.cpp:
(webkit_web_resource_get_data):
- UIProcess/WebIconDatabase.cpp:
(WebKit::WebIconDatabase::didChangeIconForPageURL):
(WebKit::WebIconDatabase::notifyIconDataReadyForPageURL):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::userAgent):
- 1:05 PM Changeset in webkit [183409] by
-
- 9 edits in trunk/Source/WebKit2
[WK2] API::String creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144218
Reviewed by Darin Adler.
Have API::String creation functions return Ref<>.
The call-sites are also updated, using and operating on the returned
Ref<> object, where possible.
- Shared/API/APIString.h:
- Shared/API/c/WKPluginInformation.cpp:
(WKPluginInformationBundleIdentifierKey):
(WKPluginInformationBundleVersionKey):
(WKPluginInformationBundleShortVersionKey):
(WKPluginInformationPathKey):
(WKPluginInformationDisplayNameKey):
(WKPluginInformationDefaultLoadPolicyKey):
(WKPluginInformationUpdatePastLastBlockedVersionIsKnownAvailableKey):
(WKPluginInformationHasSandboxProfileKey):
(WKPluginInformationFrameURLKey):
(WKPluginInformationMIMETypeKey):
(WKPluginInformationPageURLKey):
(WKPluginInformationPluginspageAttributeURLKey):
(WKPluginInformationPluginURLKey):
(WKPlugInInformationReplacementObscuredKey):
- Shared/API/c/WKSharedAPICast.h:
(WebKit::ProxyingRefPtr::ProxyingRefPtr):
(WebKit::toCopiedAPI):
- Shared/API/c/WKString.cpp:
(WKStringCreateWithUTF8CString):
(WKStringCreateWithJSString):
- UIProcess/API/C/WKDatabaseManager.cpp:
(WKDatabaseManagerGetOriginKey):
(WKDatabaseManagerGetOriginQuotaKey):
(WKDatabaseManagerGetOriginUsageKey):
(WKDatabaseManagerGetDatabaseDetailsKey):
(WKDatabaseManagerGetDatabaseDetailsNameKey):
(WKDatabaseManagerGetDatabaseDetailsDisplayNameKey):
(WKDatabaseManagerGetDatabaseDetailsExpectedUsageKey):
(WKDatabaseManagerGetDatabaseDetailsCurrentUsageKey):
(WKDatabaseManagerGetDatabaseDetailsCreationTimeKey):
(WKDatabaseManagerGetDatabaseDetailsModificationTimeKey):
- UIProcess/API/C/WKKeyValueStorageManager.cpp:
(WKKeyValueStorageManagerGetOriginKey):
(WKKeyValueStorageManagerGetCreationTimeKey):
(WKKeyValueStorageManagerGetModificationTimeKey):
- UIProcess/API/C/WKPage.cpp:
(WKPageGetSessionHistoryURLValueType):
(WKPageGetSessionBackForwardListItemValueType):
(toGenericCallbackFunction):
(WKPageValidateCommand):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::didReceiveInvalidMessage):
- 12:36 PM Changeset in webkit [183408] by
-
- 10 edits4 deletes in trunk
Unreviewed, rolling out r183393.
https://bugs.webkit.org/show_bug.cgi?id=144272
Caused memory corruption detected by GuardMalloc (Requested by
ap on #webkit).
Reverted changeset:
"Synchronous XMLHttpRequest should get access to AppCache
resources stored as flat files"
https://bugs.webkit.org/show_bug.cgi?id=143711
http://trac.webkit.org/changeset/183393
- 11:57 AM Changeset in webkit [183407] by
-
- 4 edits in trunk/Source/WebCore
[Curl] Favicons loaded from disc cache are ignored.
https://bugs.webkit.org/show_bug.cgi?id=143953
Reviewed by Alex Christensen.
When a favicon is loaded from the Curl disc cache, the icon data is thrown away.
This happens because we give a 304 response, which makes the icon loader ignore
the response. We can solve this by responding with 200 OK.
- platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
- platform/network/curl/CurlCacheManager.cpp:
(WebCore::CurlCacheManager::didReceiveResponse):
- platform/network/curl/ResourceHandleManager.cpp:
(WebCore::headerCallback):
(WebCore::ResourceHandleManager::initializeHandle):
- 11:49 AM Changeset in webkit [183406] by
-
- 5 edits in trunk/Source/JavaScriptCore
VarargsForwardingPhase should use bytecode liveness in addition to other uses to determine the last point that a candidate is used
https://bugs.webkit.org/show_bug.cgi?id=143843
Reviewed by Geoffrey Garen.
It will soon come to pass that Phantom isn't available at the time that
VarargsForwardingPhase runs. So, it needs to use some other mechanism for discovering when
a value dies for OSR.
This is simplified by two things:
1) The bytecode kill analysis is now reusable. This patch makes it even more reusable than
before by polishing the API.
2) This phase already operates on one node at a time and allows itself to do a full search
of the enclosing basic block for that node. This is fine because CreateDirectArguments
and friends is a rarely occurring node. The fact that it operates on one node at a time
makes it even easier to reason about OSR liveness - we just track the list of locals in
which it is live.
This change has no effect right now but it is a necessary prerequisite to implementing
https://bugs.webkit.org/show_bug.cgi?id=143736.
- dfg/DFGBasicBlock.h:
(JSC::DFG::BasicBlock::tryAt):
- dfg/DFGForAllKills.h:
(JSC::DFG::forAllKilledOperands):
- dfg/DFGPhantomInsertionPhase.cpp:
- dfg/DFGVarargsForwardingPhase.cpp:
- 11:46 AM Changeset in webkit [183405] by
-
- 15 edits in trunk/Source
Make 'enum NavigationType' be an enum class
https://bugs.webkit.org/show_bug.cgi?id=144270
Reviewed by Alex Christensen.
Source/WebCore:
No new tests (No change in behavior).
I’ll be adding a new NavigationType for bug 144269 so it makes sense to make this
an enum class first.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::loadDifferentDocumentItem):
- loader/FrameLoaderTypes.h:
- loader/NavigationAction.cpp:
(WebCore::navigationType):
(WebCore::NavigationAction::NavigationAction):
- loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy):
- page/PerformanceNavigation.cpp:
(WebCore::PerformanceNavigation::type):
Source/WebKit/mac:
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::actionDictionary):
Source/WebKit2:
- Shared/API/c/WKSharedAPICast.h:
(WebKit::toAPI):
- Shared/NavigationActionData.cpp:
(WebKit::NavigationActionData::NavigationActionData):
- UIProcess/API/Cocoa/WKNavigationAction.mm:
(toWKNavigationType):
- UIProcess/API/gtk/WebKitPrivate.cpp:
(toWebKitNavigationType):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
- WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::openInNewTab):
- 11:42 AM Changeset in webkit [183404] by
-
- 4 edits2 adds in trunk
Fix viewport units in Media Queries
https://bugs.webkit.org/show_bug.cgi?id=144260
Reviewed by Darin Adler.
Source/WebCore:
This patch makes sure that viewport units are considered "length units"
in the context of Media Queries, by having MediaQueryExp use the unit logic
that is in CSSPrimitiveValue.
It does that by turning the relevant methods in CSSPrimitiveValue into static.
It also makes sure that the logic for "resolution units" is not maintained separately
in MediaQueryExp, to avoid similiar issues in the future with resolution units.
Test: fast/media/mq-viewport-units.html
- css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::isViewportPercentageLength): Added a static variant.
(WebCore::CSSPrimitiveValue::isLength): Added a static variant.
(WebCore::CSSPrimitiveValue::isResolution): Added a static variant.
- css/MediaQueryExp.cpp:
(WebCore::featureWithValidPositiveLenghtOrNumber): Call CSSPrimitiveValue's length unit logic.
(WebCore::featureWithValidDensity): Call CSSPrimitiveValue's resolution unit logic.
LayoutTests:
These tests make sure that viewport units are working as expected inside of Media Queries.
- fast/media/mq-viewport-units-expected.txt: Added.
- fast/media/mq-viewport-units.html: Added.
- 11:38 AM Changeset in webkit [183403] by
-
- 6 edits in trunk
REGRESSION(r182879): Images and video can no longer be downloaded
https://bugs.webkit.org/show_bug.cgi?id=144267
<rdar://problem/20702844>
Reviewed by Simon Fraser.
Source/WebKit/mac:
- WebView/WebActionMenuController.mm:
(-[WebActionMenuController _createActionMenuItemForTag:]): Check for
"!WebCore::protocolIs(..., "file")" for image and media downloads.
Source/WebKit2:
- UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _createActionMenuItemForTag:]): Check for
"!WebCore::protocolIs(..., "file")" for image and media downloads.
Tools:
Revise tests to check for proper download menu state.
- Downloading a loal image should be disabled.
- Downloading a local media file should be disabled.
- Downloading non-downloadable media should be disabled.
- TestWebKitAPI/Tests/WebKit2ObjC/ActionMenus.mm:
(TestWebKitAPI::TEST):
- 11:36 AM Changeset in webkit [183402] by
-
- 3 edits in trunk/Source/JavaScriptCore
Map#entries and Map#keys error for non-Maps is swapped
https://bugs.webkit.org/show_bug.cgi?id=144253
Patch by Jordan Harband <ljharb@gmail.com> on 2015-04-27
Reviewed by Simon Fraser.
Correcting error messages on Set/Map methods when called on
incompatible objects.
- runtime/MapPrototype.cpp:
(JSC::mapProtoFuncEntries):
(JSC::mapProtoFuncKeys):
- runtime/SetPrototype.cpp:
(JSC::setProtoFuncEntries):
- 11:31 AM Changeset in webkit [183401] by
-
- 23 edits4 adds in trunk/Source/JavaScriptCore
Rationalize DFG DCE handling of nodes that perform checks that propagate through AI
https://bugs.webkit.org/show_bug.cgi?id=144186
Reviewed by Geoffrey Garen.
If I do ArithAdd(Int32Use, Int32Use, CheckOverflow) then AI will prove that this returns
Int32. We may later perform code simplifications based on the proof that this is Int32, and
we may kill all DFG users of this ArithAdd. Then we may prove that there is no exit site at
which the ArithAdd is live. This seems like it is sufficient to then kill the ArithAdd,
except that we still need the overflow check!
Previously we mishandled this:
- In places where we want the overflow check we need to use MustGenerate(@ArithAdd) as a hack to keep it alive. That's dirty and it's just indicative of a deeper issue.
- Our MovHint removal doesn't do Phantom canonicalization which essentially makes it powerless. This was sort of hiding the bug.
- Nodes that have checks that AI leverages should always be NodeMustGenerate. You can't kill something that you are relying on for subsequent simplifications.
This fixes MovHint removal to also canonicalize Phantoms. This also adds ModeMustGenerate to
nodes that may perform checks that are used by AI to guarantee the result type. As a result,
we no longer need the weird MustGenerate node.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGArgumentsEliminationPhase.cpp:
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDCEPhase.cpp:
(JSC::DFG::DCEPhase::run):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::tryToRelaxRepresentation):
- dfg/DFGIntegerCheckCombiningPhase.cpp:
(JSC::DFG::IntegerCheckCombiningPhase::handleBlock):
(JSC::DFG::IntegerCheckCombiningPhase::insertMustAdd): Deleted.
- dfg/DFGMayExit.cpp:
(JSC::DFG::mayExit):
- dfg/DFGNode.h:
(JSC::DFG::Node::willHaveCodeGenOrOSR):
- dfg/DFGNodeType.h:
- dfg/DFGObjectAllocationSinkingPhase.cpp:
(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):
- dfg/DFGPhantomCanonicalizationPhase.cpp:
(JSC::DFG::PhantomCanonicalizationPhase::run):
- dfg/DFGPhantomRemovalPhase.cpp:
(JSC::DFG::PhantomRemovalPhase::run):
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
- dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGTypeCheckHoistingPhase.cpp:
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):
- dfg/DFGVarargsForwardingPhase.cpp:
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
- tests/stress/fold-based-on-int32-proof-mul-branch.js: Added.
(foo):
- tests/stress/fold-based-on-int32-proof-mul.js: Added.
(foo):
- tests/stress/fold-based-on-int32-proof-or-zero.js: Added.
(foo):
- tests/stress/fold-based-on-int32-proof.js: Added.
(foo):
- 11:19 AM Changeset in webkit [183400] by
-
- 8 edits1 delete in trunk/Tools
Merge run-launcher into run-minibrowser
https://bugs.webkit.org/show_bug.cgi?id=141928
Reviewed by Darin Adler.
- Scripts/run-iexploder-tests:
(runSafariWithIExploder):
- Scripts/run-launcher: Removed.
- Scripts/run-minibrowser:
- Scripts/webkitdirs.pm:
(launcherPath):
- Scripts/webkitpy/port/efl.py:
(EflPort.show_results_html_file):
- Scripts/webkitpy/port/efl_unittest.py:
(EflPortTest.test_show_results_html_file):
- Scripts/webkitpy/port/gtk.py:
(GtkPort.print_leaks_summary):
(GtkPort.show_results_html_file):
(GtkPort): Deleted.
- Scripts/webkitpy/port/gtk_unittest.py:
(GtkPortTest.test_show_results_html_file):
- 10:24 AM Changeset in webkit [183399] by
-
- 7 edits8 adds in trunk
[CSS Grid Layout] Support for the justify-self and justify-items in grid layout
https://bugs.webkit.org/show_bug.cgi?id=133280
Source/WebCore:
Reviewed by David Hyatt.
Implementation of justify-self and justify-items properties for grid. It supports
different writing-modes and direction. Margins, borders and paddings are also
considered when computing the final position and stretched size.
This patch applies also a quite important refactoring of the alignment logic in
order to share code between the two alignment dimensions, row-axis and column-axis.
Overflow handling is still missing and will be added later in a follow-up bug.
Tests: fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-lr.html
fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-rl.html
fast/css-grid-layout/grid-align-justify-margin-border-padding.html
fast/css-grid-layout/justify-self-cell.html
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::columnAxisPositionForChild):
(WebCore::RenderGrid::rowAxisPositionForChild):
(WebCore::RenderGrid::rowPositionForChild):
(WebCore::RenderGrid::columnPositionForChild):
(WebCore::RenderGrid::findChildLogicalPosition):
(WebCore::RenderGrid::allowedToStretchLogicalHeightForChild): Deleted.
(WebCore::RenderGrid::needToStretchChildLogicalHeight): Deleted.
(WebCore::RenderGrid::marginLogicalHeightForChild): Deleted.
(WebCore::RenderGrid::availableAlignmentSpaceForChildBeforeStretching): Deleted.
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded): Deleted.
- rendering/RenderGrid.h:
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::resolveJustification):
- rendering/style/RenderStyle.h:
LayoutTests:
Implementation of justify-self and justify-items properties for grid.
Added additional testing for ensuring margin, padding and border are considered when
computing grid item's position.
Reviewed by David Hyatt.
- fast/css-grid-layout/grid-align-justify-margin-border-padding-expected.txt: Added.
- fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-lr-expected.txt: Added.
- fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-lr.html: Added.
- fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-rl-expected.txt: Added.
- fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-rl.html: Added.
- fast/css-grid-layout/grid-align-justify-margin-border-padding.html: Added.
- fast/css-grid-layout/justify-self-cell-expected.txt: Added.
- fast/css-grid-layout/justify-self-cell.html: Added.
- fast/css-grid-layout/resources/grid.css:
(.directionLTR): Added. Useful for defining orthogonal flows.
- 10:07 AM Changeset in webkit [183398] by
-
- 2 edits in trunk/Source/WebCore
Crashes under IDBDatabase::closeConnection
https://bugs.webkit.org/show_bug.cgi?id=141745
Reviewed by Alexey Proskuryakov.
- Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::~IDBDatabase): Do the work of close/closeConnection without
actually calling those functions.
(WebCore::IDBDatabase::closeConnection): Protect the database so it's not destroyed
in the middle of this function's execution.
- 7:56 AM Changeset in webkit [183397] by
-
- 1 edit in trunk/LayoutTests/ChangeLog
Unreviewed.
Fixed timeout expectation of "closed should fulfill with
undefined" test. This doesn't time out anymore.
- streams/reference-implementation/readable-stream-templated.html:
- 7:54 AM Changeset in webkit [183396] by
-
- 2 edits in trunk/LayoutTests
Unreviewed.
Fixed timeout expectation of "closed should fulfill with
undefined" test. This doesn't time out anymore.
- streams/reference-implementation/readable-stream-templated.html:
- 6:31 AM Changeset in webkit [183395] by
-
- 12 edits in trunk
[Streams API] ReadableStream constructor start function should be able to close the stream
https://bugs.webkit.org/show_bug.cgi?id=143363
Reviewed by Benjamin Poulain.
Source/WebCore:
Implements https://streams.spec.whatwg.org/#close-readable-stream.
When the "close" JS function is called, the stream is getting closed.
The stream state is changed to close and if it has a reader, the reader gets closed as well:
The reader resolves the closed promise and releases the stream.
Enabled the possibility to resolve a promise with any JS value.
This is used to resolve closed promise with jsUndefined and will be used for read promises in
the future as well, though of course it is not restricted to Streams.
Covered by reference tests that are now passing.
- Modules/streams/ReadableStream.h:
- Modules/streams/ReadableStream.cpp:
(WebCore::ReadableStream::changeStateToClosed): Called by the JS function 'close'.
- Modules/streams/ReadableStreamReader.cpp:
(WebCore::ReadableStreamReader::ReadableStreamReader): Initialized stream.
(WebCore::ReadableStreamReader::initialize): Added to handle state change at constructor time
in particular closed/errored state.
(WebCore::ReadableStreamReader::releaseStream): Releases the stream.
(WebCore::ReadableStreamReader::closed): Stores the promise callbacks and invokes success
immediately if the stream is already closed.
(WebCore::ReadableStreamReader::changeStateToClosed): Changes the internal state to closed,
resolves the promise and releases the stream.
- Modules/streams/ReadableStreamReader.h:
(WebCore::ReadableStreamReader::State): Added.
- bindings/js/JSDOMPromise.h:
(WebCore::DeferredWrapper::resolve<JSC::JSValue>): Adds the ability to resolve a promise with
a custom JS value.
- bindings/js/JSReadableStreamControllerCustom.cpp:
(WebCore::JSReadableStreamController::close): Not "notImplemented" anymore. Now it closes the
stream.
- bindings/js/JSReadableStreamReaderCustom.cpp:
(WebCore::JSReadableStreamReader::closed): Resolves the promise with undefined.
LayoutTests:
Updated expectations with new passes.
- streams/reference-implementation/bad-underlying-sources-expected.txt:
- streams/reference-implementation/readable-stream-reader-expected.txt:
- streams/reference-implementation/readable-stream-templated-expected.txt:
- 4:10 AM Changeset in webkit [183394] by
-
- 2 edits in trunk/Source/WebCore
Fix the !ENABLE(CSS_GRID_LAYOUT) build after r183370
https://bugs.webkit.org/show_bug.cgi?id=144255
Reviewed by Carlos Garcia Campos.
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeLogicalHeight):
- 4:03 AM Changeset in webkit [183393] by
-
- 10 edits4 adds in trunk
Synchronous XMLHttpRequest should get access to AppCache resources stored as flat files
https://bugs.webkit.org/show_bug.cgi?id=143711
Reviewed by Darin Adler.
Source/WebCore:
This patch checks whether a substitute resource data is stored in memory or in file for synchronous loads.
If data is stored in file, it reads the data through SharedBuffer::createWithContentsOfFile.
This patch refactors some routines to replace Vector<char> by SharedBuffer to transmit response data.
Test: http/tests/appcache/simple-video-sync.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadRequest):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadResourceSynchronously):
- loader/FrameLoader.h:
- loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::maybeLoadResource):
(WebCore::ApplicationCacheHost::createFileURL):
(WebCore::ApplicationCacheHost::maybeLoadSynchronously):
(WebCore::ApplicationCacheHost::maybeLoadFallbackSynchronously):
- loader/appcache/ApplicationCacheHost.h:
- xml/XSLTProcessorLibxslt.cpp:
(WebCore::docLoaderFunc):
- xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::openFunc):
LayoutTests:
- http/tests/appcache/resources/fake-video.mp4: Added.
- http/tests/appcache/resources/simple-video-sync.manifest: Added.
- http/tests/appcache/simple-video-sync-expected.txt: Added.
- http/tests/appcache/simple-video-sync.html: Added.
- 3:23 AM Changeset in webkit [183392] by
-
- 2 edits in trunk/LayoutTests
Also skip it in run-javascriptcore-tests.
- js/script-tests/class-syntax-semicolon.js:
- 3:13 AM Changeset in webkit [183391] by
-
- 2 edits in trunk/LayoutTests
Temporarily skip the test added in r183384 as it's hitting an assertion per an existing bug.
The newly uncovered bug is tracked by webkit.org/b/144258.
- 3:05 AM Changeset in webkit [183390] by
-
- 3 edits in trunk/Tools
[buildbot] Fix the output of perf-test buildstep on timeout
https://bugs.webkit.org/show_bug.cgi?id=144097
Reviewed by Ryosuke Niwa.
- BuildSlaveSupport/build.webkit.org-config/master.cfg:
(RunAndUploadPerfTests.getText2):
- BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:
(RunAndUploadPerfTestsTest.test_buildbot_timeout):
(RunAndUploadPerfTestsTest.test_build_bad_preparation): Deleted.
- 3:02 AM Changeset in webkit [183389] by
-
- 5 edits in trunk
[EFL] TestWebKitAPI's forwarding header generator should depend on WebKit2's generator
https://bugs.webkit.org/show_bug.cgi?id=143874
Reviewed by Gyuyoung Kim.
Source/WebKit2:
- PlatformEfl.cmake: Rename the generator to have consistent name with other generators.
- Scripts/generate-forwarding-headers.pl: Removed the unnecessary multiple include-path support.
Tools:
- TestWebKitAPI/PlatformEfl.cmake: Add the new dependency.