Timeline
Feb 5, 2017:
- 10:23 PM Changeset in webkit [211716] by
-
- 3 edits in trunk/Source/WebCore
Data interaction fails in Safari splitscreen mode when dropping into a contenteditable
https://bugs.webkit.org/show_bug.cgi?id=167862
<rdar://problem/30368405>
Reviewed by Tim Horton.
Adds a counter to WebItemProviderPasteboard that can incremented, decremented, and queried by clients.
- platform/ios/WebItemProviderPasteboard.h:
- platform/ios/WebItemProviderPasteboard.mm:
(-[WebItemProviderPasteboard init]):
(-[WebItemProviderPasteboard hasPendingOperation]):
(-[WebItemProviderPasteboard incrementPendingOperationCount]):
(-[WebItemProviderPasteboard decrementPendingOperationCount]):
- 10:17 PM Changeset in webkit [211715] by
-
- 2 edits in branches/safari-603-branch/LayoutTests
Merge r211523. rdar://problem/29453068
- 10:17 PM Changeset in webkit [211714] by
-
- 22 edits in branches/safari-603-branch/Source
Merge r211482. rdar://problem/29711409
- 10:17 PM Changeset in webkit [211713] by
-
- 6 edits2 adds in branches/safari-603-branch
Merge r211504. rdar://problem/30301117
- 10:17 PM Changeset in webkit [211712] by
-
- 3 edits2 adds in branches/safari-603-branch
Merge r211659. rdar://problem/28725791
- 10:17 PM Changeset in webkit [211711] by
-
- 2 edits in branches/safari-603-branch/Source/WebCore
Merge r211676. rdar://problem/30229990
- 10:17 PM Changeset in webkit [211710] by
-
- 13 edits in branches/safari-603-branch/Source
Merge r211569. rdar://problem/30229990
- 10:17 PM Changeset in webkit [211709] by
-
- 2 edits in branches/safari-603-branch/Source/WebKit2
Merge r211565. rdar://problem/28896113
- 10:17 PM Changeset in webkit [211708] by
-
- 2 edits in branches/safari-603-branch/Source/WebKit2
Merge r211628. rdar://problem/26685576
- 10:17 PM Changeset in webkit [211707] by
-
- 2 edits in branches/safari-603-branch/Source/WebKit2
Merge r211626. rdar://problem/26685576
- 10:17 PM Changeset in webkit [211706] by
-
- 14 edits1 copy2 moves1 add in branches/safari-603-branch/Source
Merge r211551. rdar://problem/26685576
- 10:17 PM Changeset in webkit [211705] by
-
- 2 edits in branches/safari-603-branch/Source/JavaScriptCore
Merge r211630. rdar://problem/30318237
- 10:17 PM Changeset in webkit [211704] by
-
- 7 edits in branches/safari-603-branch/Source/JavaScriptCore
Merge r211658. rdar://problem/29144126
- 9:51 PM Changeset in webkit [211703] by
-
- 5 edits in branches/safari-603-branch
Merge r211446. rdar://problem/30273885
- 9:50 PM Changeset in webkit [211702] by
-
- 2 edits in branches/safari-603-branch/Source/WebCore
Merge r211455. rdar://problem/30241193
- 9:25 PM Changeset in webkit [211701] by
-
- 21 edits5 adds in branches/safari-603-branch
Merge r211656. rdar://problem/30102568
- 9:25 PM Changeset in webkit [211700] by
-
- 15 edits2 moves2 adds1 delete in branches/safari-603-branch/LayoutTests
Merge r211616. rdar://problem/30060142
- 9:25 PM Changeset in webkit [211699] by
-
- 2 edits in branches/safari-603-branch/Source/WebKit/win
Merge r211584. rdar://problem/29994156
- 9:25 PM Changeset in webkit [211698] by
-
- 6 edits1 add in branches/safari-603-branch
Merge r211207. rdar://problem/30154036
- 8:56 PM Changeset in webkit [211697] by
-
- 7 edits1 move3 adds1 delete in trunk/PerformanceTests
Change ES6SampleBench into ARES-6
https://bugs.webkit.org/show_bug.cgi?id=167863
Rubber stamped by Saam Barati.
This imports changes that Jonathan Davis (Jon Davis) made to ES6SampleBench to make it look
super awesome. Its now called ARES-6.
- ARES-6: Copied from PerformanceTests/ES6SampleBench.
- ARES-6/ARES-6.svg: Added.
- ARES-6/driver.js:
(Driver):
(Driver.prototype.readyTrigger):
(Driver.prototype.disableTrigger):
(Driver.prototype.start):
(Driver.prototype._updateIterations):
- ARES-6/glue.js:
- ARES-6/index.html:
- ARES-6/results.js:
(Results.prototype.reportRunning):
(Results.prototype.reportDone):
- ARES-6/stats.js:
(Stats.prototype.toString.return.span):
(Stats.prototype.toString.span.span):
(Stats.prototype.toString): Deleted.
- ARES-6/style.css: Removed.
- ARES-6/styles.css: Added.
(html):
(body):
(header,):
(p a):
(p a:hover):
(.flip):
(header):
(h2,):
(p):
(.about h2):
(.logo):
(.start):
(.start.ready):
(.start.ready:hover):
(.start:after):
(.start.ready .testrun):
(.tests):
(.test):
(.overall h2,):
(.test .indicator):
(.test .indicator.running):
(@keyframes test-running):
(100%):
(.score):
(.score label):
(.score .value):
(.score .units):
(.score .margin):
(.overall):
(.overall .score):
(.overall .margin):
(.testing, .about):
(.testing):
(.about):
(#about:target):
(@media only screen and (max-width: 784px)):
- ARES-6/swoop.svg: Added.
- ES6SampleBench: Removed.
- ES6SampleBench/Air: Removed.
- ES6SampleBench/Air/README.md: Removed.
- ES6SampleBench/Air/airjs-tests.yaml: Removed.
- ES6SampleBench/Air/all.js: Removed.
- ES6SampleBench/Air/allocate_stack.js: Removed.
- ES6SampleBench/Air/arg.js: Removed.
- ES6SampleBench/Air/basic_block.js: Removed.
- ES6SampleBench/Air/benchmark.js: Removed.
- ES6SampleBench/Air/code.js: Removed.
- ES6SampleBench/Air/custom.js: Removed.
- ES6SampleBench/Air/frequented_block.js: Removed.
- ES6SampleBench/Air/insertion_set.js: Removed.
- ES6SampleBench/Air/inst.js: Removed.
- ES6SampleBench/Air/liveness.js: Removed.
- ES6SampleBench/Air/make_dist.sh: Removed.
- ES6SampleBench/Air/opcode.js: Removed.
- ES6SampleBench/Air/payload-airjs-ACLj8C.js: Removed.
- ES6SampleBench/Air/payload-gbemu-executeIteration.js: Removed.
- ES6SampleBench/Air/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
- ES6SampleBench/Air/payload-typescript-scanIdentifier.js: Removed.
- ES6SampleBench/Air/reg.js: Removed.
- ES6SampleBench/Air/stack_slot.js: Removed.
- ES6SampleBench/Air/stress-test.js: Removed.
- ES6SampleBench/Air/strip-hash.rb: Removed.
- ES6SampleBench/Air/symbols.js: Removed.
- ES6SampleBench/Air/test.html: Removed.
- ES6SampleBench/Air/test.js: Removed.
- ES6SampleBench/Air/tmp.js: Removed.
- ES6SampleBench/Air/tmp_base.js: Removed.
- ES6SampleBench/Air/util.js: Removed.
- ES6SampleBench/Basic: Removed.
- ES6SampleBench/Basic/ast.js: Removed.
- ES6SampleBench/Basic/basic-tests.yaml: Removed.
- ES6SampleBench/Basic/basic.js: Removed.
- ES6SampleBench/Basic/benchmark.js: Removed.
- ES6SampleBench/Basic/caseless_map.js: Removed.
- ES6SampleBench/Basic/lexer.js: Removed.
- ES6SampleBench/Basic/number.js: Removed.
- ES6SampleBench/Basic/parser.js: Removed.
- ES6SampleBench/Basic/random.js: Removed.
- ES6SampleBench/Basic/state.js: Removed.
- ES6SampleBench/Basic/stress-test.js: Removed.
- ES6SampleBench/Basic/test.html: Removed.
- ES6SampleBench/Basic/test.js: Removed.
- ES6SampleBench/Basic/util.js: Removed.
- ES6SampleBench/air_benchmark.js: Removed.
- ES6SampleBench/basic_benchmark.js: Removed.
- ES6SampleBench/cli.js: Removed.
- ES6SampleBench/driver.js: Removed.
- ES6SampleBench/glue.js: Removed.
- ES6SampleBench/index.html: Removed.
- ES6SampleBench/results.js: Removed.
- ES6SampleBench/stats.js: Removed.
- ES6SampleBench/style.css: Removed.
- 8:03 PM Changeset in webkit [211696] by
-
- 5 edits2 adds in branches/safari-603-branch
Merge r211541. rdar://problem/30100286
- 8:03 PM Changeset in webkit [211695] by
-
- 2 edits in branches/safari-603-branch/Source/WebKit2
Merge r211538. rdar://problem/30229620
- 8:03 PM Changeset in webkit [211694] by
-
- 2 edits in branches/safari-603-branch/Tools
Merge r211526. rdar://problem/30301498
- 8:03 PM Changeset in webkit [211693] by
-
- 3 edits in branches/safari-603-branch/Source/JavaScriptCore
Merge r211486. rdar://problem/30167791
- 8:03 PM Changeset in webkit [211692] by
-
- 5 edits2 adds in branches/safari-603-branch
Merge r211471. rdar://problem/30270210
- 8:03 PM Changeset in webkit [211691] by
-
- 2 edits in branches/safari-603-branch/Source/JavaScriptCore
Merge r211463. rdar://problem/30296879
- 8:03 PM Changeset in webkit [211690] by
-
- 3 edits2 adds in branches/safari-603-branch
Merge r211433. rdar://problem/30091558
- 8:03 PM Changeset in webkit [211689] by
-
- 4 edits in branches/safari-603-branch/LayoutTests
Merge r211302. rdar://problem/23601055
- 3:04 PM Changeset in webkit [211688] by
-
- 7 edits in trunk/Source
Remove unparentsOffscreenTiles logic in TileController
https://bugs.webkit.org/show_bug.cgi?id=167823
Reviewed by Tim Horton.
Source/WebCore:
Give all TileGrids the "unparents offscreen tiles" behavior. This was enabled for
only the page tiles in WK2 on Mac and iOS, but there's no reason to not use it for
tiled composited layers also.
Also use more modern C++ idioms in a few places.
- platform/graphics/TiledBacking.h:
- platform/graphics/ca/TileController.h:
- platform/graphics/ca/TileGrid.cpp:
(WebCore::TileGrid::revalidateTiles):
(WebCore::TileGrid::ensureTilesForRect):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
Source/WebKit2:
Drive-by fix: make sure we put the tiled scrolling indicator's layer back when switching tabs.
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updateRootLayers):
- 12:55 PM Changeset in webkit [211687] by
-
- 7 edits3 adds in trunk
[Modern Media Controls] PiP button is not visible with a live broadcast video
https://bugs.webkit.org/show_bug.cgi?id=167794
<rdar://problem/30348790>
Patch by Antoine Quint <Antoine Quint> on 2017-02-05
Reviewed by Dean Jackson.
Source/WebCore:
We were only listening to the "loadedmetadata", "error", "webkitpresentationmodechanged"
and "webkitcurrentplaybacktargetiswirelesschanged" events to invalidate the enabled state
for the PiP button. We also need to check availability of video tracks, which we already
did for fullscreen, which is quite similar.
So we now listen to "addtrack", "removetrack" and "change" events on the media.videoTracks
property, which correctly invalidates the PiP button when the first video track becomes
available or the last video track is removed.
Since a couple of other MediaControllerSupport subclasses (FullscreenSupport and TracksSupport)
would also listen to those events on various track types, we add a new "tracksToMonitor"
property on MediaControllerSupport which subclasses can override to provide a list of tracks
that should listen to those events. This removes the need for dedicated construction and
destruction time in MediaControllerSupport subclasses that need to listen to events on
tracks rather than the media itself.
Test: http/tests/media/modern-media-controls/pip-support/pip-support-live-broadcast.html
- Modules/modern-media-controls/media/fullscreen-support.js:
(FullscreenSupport):
(FullscreenSupport.prototype.get tracksToMonitor):
(FullscreenSupport.prototype.destroy): Deleted.
- Modules/modern-media-controls/media/media-controller-support.js:
(MediaControllerSupport):
(MediaControllerSupport.prototype.destroy):
(MediaControllerSupport.prototype.get tracksToMonitor):
- Modules/modern-media-controls/media/pip-support.js:
(PiPSupport.prototype.get tracksToMonitor):
- Modules/modern-media-controls/media/tracks-support.js:
(TracksSupport):
(TracksSupport.prototype.get tracksToMonitor):
(TracksSupport.prototype.destroy): Deleted.
LayoutTests:
Add a new test to check that a live broadcast video shows the picture-in-picture button.
- http/tests/media/modern-media-controls/pip-support/pip-support-live-broadcast-expected.txt: Added.
- http/tests/media/modern-media-controls/pip-support/pip-support-live-broadcast.html: Added.
- platform/mac/TestExpectations:
- 12:41 PM Changeset in webkit [211686] by
-
- 1 edit1 add in trunk/PerformanceTests
Simple line layout: Add performance test with varying string and font-size to minimize width-cache hit.
https://bugs.webkit.org/show_bug.cgi?id=167859
<rdar://problem/30368070>
Reviewed by Antti Koivisto.
This is in preparation for webkit.org/b/167843.
- Layout/simple-line-layout-with-varying-content.html: Added.
- 12:40 PM Changeset in webkit [211685] by
-
- 3 edits2 adds in trunk
[Modern Media Controls] Time labels may wrap instead of displaying on a single line
https://bugs.webkit.org/show_bug.cgi?id=167835
<rdar://problem/30340534>
Patch by Antoine Quint <Antoine Quint> on 2017-02-05
Reviewed by Dean Jackson.
Source/WebCore:
No text in modern media controls is expected to wrap, so let's prevent any wrapping.
Test: media/modern-media-controls/time-label/time-label-white-space-nowrap.html
- Modules/modern-media-controls/controls/media-controls.css:
(.media-controls):
LayoutTests:
New test that checks that time labels have "white-space: nowrap" applied.
- media/modern-media-controls/time-label/time-label-white-space-nowrap-expected.txt: Added.
- media/modern-media-controls/time-label/time-label-white-space-nowrap.html: Added.
- 11:26 AM Changeset in webkit [211684] by
-
- 4 edits in trunk/Source/JavaScriptCore
The VMInspector should use an RAII Locker.
https://bugs.webkit.org/show_bug.cgi?id=167854
Reviewed by Saam Barati.
Previously, VMInspector::lock() was returning an expected LockToken, and there's
no way to unlock it when we're done with it. This was not a problem before
because the VMInspector had only one client, the SigillCrashAnalyzer, that
expected the process to crash due to a SIGILL shortly thereafter.
However, the VMInspector is useful as a debugging tool that we can apply in other
debugging tasks. Fixing VMInspector::lock() to return an RAII locker will enable
other use cases. Plus it's just bad form to be able to lock something and never
be able to unlock it.
- tools/SigillCrashAnalyzer.cpp:
(JSC::SigillCrashAnalyzer::analyze):
- tools/VMInspector.cpp:
- tools/VMInspector.h:
- 11:18 AM Changeset in webkit [211683] by
-
- 19 edits5 adds in trunk
Clean up how GraphicsLayer's "inWindow" state is set, and fix some issues with Page Overlays
https://bugs.webkit.org/show_bug.cgi?id=167850
Reviewed by Tim Horton.
Source/WebCore:
RenderLayerCompositor::setIsInWindowForLayerIncludingDescendants() walked the RenderLayer
tree to set the GraphicsLayer's "inWindow" state. This had the problem of skipping non-primary
GraphicsLayers. We also never did this work for page overlay layers.
Fix by giving GraphicsLayers a recursive function that sets the inWindow state, and call that
from RenderLayerCompositor::setIsInWindow() and PageOverlayController.
PageOverlayController also needs to implement tiledBackingUsageChanged so that tiled backings
created dynamically get the correct in-window state.
Page overlays also had some serious issues in MiniBrowser, in that they disappeared on reload,
and on hide/show web view. This was because the overlay root layers were re-parented, but
addChild() for each overlay's layer wasn't called. Clean up by replacing willAttachRootLayer() followed
by viewOverlayRootLayer()/documentOverlayRootLayer() with single calls that set up the layers,
update the inWindow state, and return the layer.
Make it possible to dump tile caches in page overlay tests.
Make showGraphicsLayers() always dump page overlay layers (source of much confusion).
Test: pageoverlay/overlay-remove-reinsert-view.html
- page/PageOverlayController.cpp:
(WebCore::PageOverlayController::documentOverlayRootLayer):
(WebCore::PageOverlayController::viewOverlayRootLayer):
(WebCore::PageOverlayController::layerWithDocumentOverlays):
(WebCore::PageOverlayController::layerWithViewOverlays):
(WebCore::PageOverlayController::tiledBackingUsageChanged):
(WebCore::PageOverlayController::willAttachRootLayer): Deleted.
- page/PageOverlayController.h:
- platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::setIsInWindowIncludingDescendants):
(WebCore::dumpChildren):
- platform/graphics/GraphicsLayer.h:
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::appendDocumentOverlayLayers):
(WebCore::RenderLayerCompositor::setIsInWindow):
(WebCore::RenderLayerCompositor::attachRootLayer):
(WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):
(WebCore::RenderLayerCompositor::setIsInWindowForLayerIncludingDescendants): Deleted.
- rendering/RenderLayerCompositor.h:
- testing/Internals.cpp:
(WebCore::toLayerTreeFlags):
(WebCore::Internals::layerTreeAsText):
(WebCore::Internals::pageOverlayLayerTreeAsText):
- testing/Internals.h:
- testing/Internals.idl:
- testing/MockPageOverlayClient.cpp:
(WebCore::MockPageOverlayClient::layerTreeAsText):
- testing/MockPageOverlayClient.h:
Tools:
- DumpRenderTree/TestRunner.cpp:
(TestRunner::uiScriptDidComplete): Fix an assertion that fires for non-16-bit strings.
LayoutTests:
- pageoverlay/overlay-large-document-expected.txt:
- pageoverlay/overlay-large-document-scrolled-expected.txt:
- pageoverlay/overlay-remove-reinsert-view-expected.txt: Added.
- pageoverlay/overlay-remove-reinsert-view.html: Added.
- platform/ios-simulator-wk2/pageoverlay/overlay-remove-reinsert-view-expected.txt: Added.
- platform/mac-wk1/pageoverlay/overlay-remove-reinsert-view-expected.txt: Added.
- tiled-drawing/tiled-backing-in-window-expected.txt:
- 10:01 AM Changeset in webkit [211682] by
-
- 3 edits2 adds in trunk
Simple line layout: Use RenderText::canUseSimpleFontCodePath() only as a hint.
https://bugs.webkit.org/show_bug.cgi?id=167853
<rdar://problem/30367302>
Reviewed by Simon Fraser.
Source/WebCore:
Apparently RenderText::canUseSimpleFontCodePath() only checks if the string is qualified for
the simple font code path. However certain css properties could still force us to use the complex
path.
In most cases, we still do only one string traversal thanks to TextRun::setCharacterScanForCodePath().
Test: fast/text/simple-line-layout-simple-text-but-complex-font-path.html
- rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForFontAndText):
LayoutTests:
- fast/text/simple-line-layout-simple-text-but-complex-font-path-expected.html: Added.
- fast/text/simple-line-layout-simple-text-but-complex-font-path.html: Added.
- 9:22 AM Changeset in webkit [211681] by
-
- 7 edits2 adds in trunk/Source/WebCore
Move TextureMapper-specific logic out of GraphicsContext3DPrivate
https://bugs.webkit.org/show_bug.cgi?id=167096
Reviewed by Alex Christensen.
Move the TextureMapper-specific functionality in GraphicsContext3DPrivate into a
separate class. The new TextureMapperGC3DPlatformLayer class inherits from the
class that's aliased to the PlatformLayer type, like GraphicsContext3DPrivate did
before.
In GraphicsContext3D, the new m_texmapLayer member variable of the
std::unique_ptr<TextureMapperGC3DPlatformLayer> type is used for configurations
that enable TextureMapper, largely the same way the GraphicsContext3DPrivate
object was used before. The remaining code in GraphicsContext3DPrivate is left
unchanged to keep it working for other ports.
No new tests -- no change in behavior.
- platform/TextureMapper.cmake:
- platform/graphics/GraphicsContext3D.h:
- platform/graphics/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
(WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate): Deleted.
(WebCore::GraphicsContext3DPrivate::proxy): Deleted.
(WebCore::GraphicsContext3DPrivate::swapBuffersIfNeeded): Deleted.
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper): Deleted.
- platform/graphics/GraphicsContext3DPrivate.h:
- platform/graphics/cairo/GraphicsContext3DCairo.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::~GraphicsContext3D):
(WebCore::GraphicsContext3D::makeContextCurrent):
(WebCore::GraphicsContext3D::platformGraphicsContext3D):
(WebCore::GraphicsContext3D::platformLayer):
- platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::createForCurrentGLContext):
- platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp: Copied from Source/WebCore/platform/graphics/GraphicsContext3DPrivate.cpp.
(WebCore::TextureMapperGC3DPlatformLayer::TextureMapperGC3DPlatformLayer):
(WebCore::TextureMapperGC3DPlatformLayer::~TextureMapperGC3DPlatformLayer):
(WebCore::TextureMapperGC3DPlatformLayer::makeContextCurrent):
(WebCore::TextureMapperGC3DPlatformLayer::platformContext):
(WebCore::TextureMapperGC3DPlatformLayer::proxy):
(WebCore::TextureMapperGC3DPlatformLayer::swapBuffersIfNeeded):
(WebCore::TextureMapperGC3DPlatformLayer::paintToTextureMapper):
- platform/graphics/texmap/TextureMapperGC3DPlatformLayer.h: Copied from Source/WebCore/platform/graphics/GraphicsContext3DPrivate.h.
(WebCore::TextureMapperGC3DPlatformLayer::renderStyle):
- 6:41 AM Changeset in webkit [211680] by
-
- 3 edits2 adds in trunk
Simple line layout: Bail out from Simple Line Layout on surrogate pairs.
https://bugs.webkit.org/show_bug.cgi?id=167840
<rdar://problem/30364784>
Reviewed by Myles C. Maxfield.
Source/WebCore:
Surrogate pairs require special line breaking logic.
Test: fast/text/simple-line-layout-no-surrogate-pairs.html
- rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForCharacter):
(WebCore::SimpleLineLayout::canUseForText): Checking against special characters is faster than
checking against glyphs. Reverse their order.
(WebCore::SimpleLineLayout::printReason):
LayoutTests:
- fast/text/simple-line-layout-no-surrogate-pairs-expected.html: Added.
- fast/text/simple-line-layout-no-surrogate-pairs.html: Added.
Feb 4, 2017:
- 11:19 PM Changeset in webkit [211679] by
-
- 14 edits in trunk/Source/WebKit2
Data interaction on an image should make it stand out when presenting the action sheet
https://bugs.webkit.org/show_bug.cgi?id=167846
<rdar://problem/30363014>
Reviewed by Tim Horton.
Adds infrastructure to improve the behavior of data interaction for images. We make two changes to accomplish
this: first, add some plumbing to WebKit so the web process can tell the UI process when it is done handling a
request to start data interaction, so that the UI process is able to clean up UI-side state in the event that
the page prevented the default behavior.
Secondly, this patch tweaks the heuristic used to present action sheets as popovers. For image elements, if
there is sufficient space around the element, we will use the element rect as the target rect; otherwise, we
fall back to presenting the popover at the touch location.
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didHandleStartDataInteractionRequest):
- UIProcess/ios/WKActionSheet.h:
- UIProcess/ios/WKActionSheet.mm:
(-[WKActionSheet presentSheet:]):
Added a presentation style parameter, used to specify whether or not WKActionSheet should present the popover
using the element rect as the target rect, or the touch location.
(-[WKActionSheet doneWithSheet]):
(-[WKActionSheet updateSheetPosition]):
(-[WKActionSheet presentSheet]): Deleted.
- UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant presentationRectForIndicatedElement]):
Returns the (inflated) bounds of the element that is currently being indicated.
(-[WKActionSheetAssistant showImageSheet]):
(-[WKActionSheetAssistant _presentationStyleForImageAtElementRect:]):
(-[WKActionSheetAssistant showLinkSheet]):
(-[WKActionSheetAssistant showDataDetectorsSheet]):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didHandleStartDataInteractionRequest):
- UIProcess/mac/PageClientImpl.h:
- UIProcess/mac/PageClientImpl.mm:
Remove unnecessary function declarations and implementations.
(WebKit::PageClientImpl::didPerformDataInteractionControllerOperation): Deleted.
(WebKit::PageClientImpl::startDataInteractionWithImage): Deleted.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::requestStartDataInteraction):
Notify the UI process that the web process is done handling a data interaction request, specifying whether or
not the request was granted.
- 11:02 PM Changeset in webkit [211678] by
-
- 2 edits in trunk/Source/JavaScriptCore
Static Analyzer: Value stored to 'recordedMachineThreads' during its initialization is never read
https://bugs.webkit.org/show_bug.cgi?id=167845
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-04
Reviewed by Saam Barati.
Source/JavaScriptCore/heap/MachineStackMarker.cpp:151:14: warning: Value stored to 'recordedMachineThreads' during its initialization is never read
auto recordedMachineThreads = m_set.take(machineThreads);
~
- heap/MachineStackMarker.cpp:
(JSC::ActiveMachineThreadsManager::remove):
- 10:23 PM Changeset in webkit [211677] by
-
- 2 edits in trunk/Source/WebCore
Static Analyzer: WebCoreNSURLExtras.mm: Potential leak of memory pointed to by 'allBytesBuffer'
https://bugs.webkit.org/show_bug.cgi?id=167849
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-04
Reviewed by Sam Weinig.
Source/WebCore/platform/mac/WebCoreNSURLExtras.mm:883:20: warning: Potential leak of memory pointed to by 'allBytesBuffer'
return nil;
- platform/mac/WebCoreNSURLExtras.mm:
(WebCore::dataForURLComponentType):
Free the potentially malloc'd buffer before the early return.
- 6:20 PM Changeset in webkit [211676] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix mistake in comment added in r211569.
- history/PageCache.cpp:
(WebCore::PageCache::removeAllItemsForPage):
- 5:26 PM Changeset in webkit [211675] by
-
- 3 edits in trunk/Source/JavaScriptCore
Static Analyzer: Value stored to 'prev' is never read
https://bugs.webkit.org/show_bug.cgi?id=167844
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-04
Reviewed by Saam Barati.
Source/JavaScriptCore/runtime/JSMapIterator.h:60:13: warning: Value stored to 'prev' is never read
prev = bucket;
Source/JavaScriptCore/runtime/JSSetIterator.h:60:13: warning: Value stored to 'prev' is never read
prev = bucket;
- runtime/JSMapIterator.h:
(JSC::JSMapIterator::advanceIter):
- runtime/JSSetIterator.h:
(JSC::JSSetIterator::advanceIter):
- 1:46 PM Changeset in webkit [211674] by
-
- 3 edits in trunk/Tools
Plug some leaks in TestController and UIScriptContext.
<https://webkit.org/b/167839>
Reviewed by Alexey Proskuryakov.
Fix a couple of the leaks seen on the leaks bot.
- TestRunnerShared/UIScriptContext/UIScriptContext.cpp:
(UIScriptContext::runUIScript):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::handleCheckOfUserMediaPermissionForOrigin):
(WTR::TestController::decidePolicyForUserMediaPermissionRequestIfPossible):
- 1:40 PM Changeset in webkit [211673] by
-
- 2 edits in trunk/Source/WebCore
Fix memory issues related to preload eviction.
https://bugs.webkit.org/show_bug.cgi?id=167838
Reviewed by Andreas Kling.
This avoids removing resources from m_preloads during the iteration
by creating a second HashSetList containing the remaining link preloads.
No new tests but this will fix crashes on the leak bots.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::clearPreloads):
- 11:34 AM Changeset in webkit [211672] by
-
- 2 edits in trunk/Source/WTF
[GTK] Fix huge ENABLE_RESOURCE_USAGE warning spam
Unreviewed. We shouldn't redefine ENABLE_RESOURCE_USAGE in Platform.h as
it's already defined in cmakeconfig.h.
- wtf/Platform.h:
- 8:34 AM Changeset in webkit [211671] by
-
- 2 edits in trunk/Source/WebCore
Simple line layout: Skip 16bit specific checks on 8bit content.
https://bugs.webkit.org/show_bug.cgi?id=167831
<rdar://problem/30361948>
Reviewed by Antti Koivisto and Myles C. Maxfield.
Skip various checks on 8bit content.
Covered by existing tests.
- rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForCharacter):
(WebCore::SimpleLineLayout::canUseForText):
(WebCore::SimpleLineLayout::canUseForFontAndText):
- 5:46 AM Changeset in webkit [211670] by
-
- 9 edits1 add in trunk
[JSC] Add operationToInt32SensibleSlow to optimize kraken pbkdf2 and sha256
https://bugs.webkit.org/show_bug.cgi?id=167736
Reviewed by Saam Barati.
JSTests:
- stress/to-int32-sensible.js: Added.
(shouldBe):
(toInt32):
(test):
Source/JavaScriptCore:
Add a new function operationToInt32SensibleSlow. This function is only
called after x86 cvttss2si_rr is failed. This means that the
given double number never in range of int32 truncatable numbers.
As a result, exp in operationToInt32 always becomes >= 31. So
we can change the condition fromexp < 32toexp == 31.
This makes missingOne constant. And it leads significantly good
code generation.
The original operationToInt32 code.
170: 66 48 0f 7e c1 movq %xmm0,%rcx
175: 31 c0 xor %eax,%eax
177: 66 48 0f 7e c6 movq %xmm0,%rsi
17c: 48 c1 f9 34 sar $0x34,%rcx
180: 81 e1 ff 07 00 00 and $0x7ff,%ecx
186: 8d 91 01 fc ff ff lea -0x3ff(%rcx),%edx
18c: 83 fa 53 cmp $0x53,%edx
18f: 77 37 ja 1c8 <_ZN3JSC16operationToInt32Ed+0x58>
191: 83 fa 34 cmp $0x34,%edx
194: 7f 3a jg 1d0 <_ZN3JSC16operationToInt32Ed+0x60>
196: b9 34 00 00 00 mov $0x34,%ecx
19b: 66 48 0f 7e c7 movq %xmm0,%rdi
1a0: 29 d1 sub %edx,%ecx
1a2: 48 d3 ff sar %cl,%rdi
1a5: 83 fa 1f cmp $0x1f,%edx
1a8: 89 f8 mov %edi,%eax
1aa: 7f 12 jg 1be <_ZN3JSC16operationToInt32Ed+0x4e>
1ac: 89 d1 mov %edx,%ecx
1ae: b8 01 00 00 00 mov $0x1,%eax
1b3: d3 e0 shl %cl,%eax
1b5: 89 c2 mov %eax,%edx
1b7: 8d 40 ff lea -0x1(%rax),%eax
1ba: 21 f8 and %edi,%eax
1bc: 01 d0 add %edx,%eax
1be: 89 c2 mov %eax,%edx
1c0: f7 da neg %edx
1c2: 48 85 f6 test %rsi,%rsi
1c5: 0f 48 c2 cmovs %edx,%eax
1c8: f3 c3 repz retq
1ca: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
1d0: 66 48 0f 7e c0 movq %xmm0,%rax
1d5: 81 e9 33 04 00 00 sub $0x433,%ecx
1db: 48 d3 e0 shl %cl,%rax
1de: eb de jmp 1be <_ZN3JSC16operationToInt32Ed+0x4e>
The operationToInt32SensibleSlow code.
1e0: 66 48 0f 7e c1 movq %xmm0,%rcx
1e5: 66 48 0f 7e c2 movq %xmm0,%rdx
1ea: 48 c1 f9 34 sar $0x34,%rcx
1ee: 81 e1 ff 07 00 00 and $0x7ff,%ecx
1f4: 8d b1 01 fc ff ff lea -0x3ff(%rcx),%esi
1fa: 83 fe 34 cmp $0x34,%esi
1fd: 7e 21 jle 220 <_ZN3JSC28operationToInt32SensibleSlowEd+0x40>
1ff: 66 48 0f 7e c0 movq %xmm0,%rax
204: 81 e9 33 04 00 00 sub $0x433,%ecx
20a: 48 d3 e0 shl %cl,%rax
20d: 89 c1 mov %eax,%ecx
20f: f7 d9 neg %ecx
211: 48 85 d2 test %rdx,%rdx
214: 0f 48 c1 cmovs %ecx,%eax
217: c3 retq
218: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
21f: 00
220: 66 48 0f 7e c0 movq %xmm0,%rax
225: b9 34 00 00 00 mov $0x34,%ecx
22a: 29 f1 sub %esi,%ecx
22c: 48 d3 f8 sar %cl,%rax
22f: 89 c1 mov %eax,%ecx
231: 81 c9 00 00 00 80 or $0x80000000,%ecx
237: 83 fe 1f cmp $0x1f,%esi
23a: 0f 44 c1 cmove %ecx,%eax
23d: 89 c1 mov %eax,%ecx
23f: f7 d9 neg %ecx
241: 48 85 d2 test %rdx,%rdx
244: 0f 48 c1 cmovs %ecx,%eax
247: c3 retq
248: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
24f: 00
This improves kraken pbkdf2 by 10.8% and sha256 by 7.5%.
baseline patched
stanford-crypto-pbkdf2 153.195+-2.745 138.204+-2.513 definitely 1.1085x faster
stanford-crypto-sha256-iterative 49.047+-1.038 45.610+-1.235 definitely 1.0754x faster
<arithmetic> 101.121+-1.379 91.907+-1.500 definitely 1.1003x faster
- assembler/CPU.h:
(JSC::hasSensibleDoubleToInt):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::doubleToInt32):
(JSC::FTL::DFG::LowerDFGToB3::sensibleDoubleToInt32):
- ftl/FTLOutput.cpp:
(JSC::FTL::Output::hasSensibleDoubleToInt): Deleted.
- ftl/FTLOutput.h:
- runtime/MathCommon.cpp:
(JSC::operationToInt32SensibleSlow):
- runtime/MathCommon.h:
- 12:25 AM Changeset in webkit [211669] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed. Fix the key shortcut to enable resource usage overlay in GTK+.
The condition to check for CTRL and Shift modifiers is wrong, causing the overlay to be shown on Shit+G and
making it impossible to write a 'G'.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseKeyPressEvent):